Bump TypeScript to 5.3 with verbatimModuleSyntax

This commit upgrades TypeScript to the latest version 5.3 and introduces
`verbatimModuleSyntax` in line with the official Vue guide
recommendatinos (vuejs/docs#2592).

By enforcing `import type` for type-only imports, this commit improves
code clarity and supports tooling optimization, ensuring imports are
only bundled when necessary for runtime.

Changes:

- Bump TypeScript to 5.3.3 across the project.
- Adjust import statements to utilize `import type` where applicable,
  promoting cleaner and more efficient code.
This commit is contained in:
undergroundwires
2024-02-27 04:20:22 +01:00
parent 98845e6cae
commit a721e82a4f
541 changed files with 1187 additions and 1184 deletions

View File

@@ -15,7 +15,7 @@
</template>
<script lang="ts">
import { defineAsyncComponent, defineComponent, Component } from 'vue';
import { defineAsyncComponent, defineComponent, type Component } from 'vue';
import TheHeader from '@/presentation/components/TheHeader.vue';
import TheFooter from '@/presentation/components/TheFooter/TheFooter.vue';
import TheCodeButtons from '@/presentation/components/Code/CodeButtons/TheCodeButtons.vue';

View File

@@ -17,8 +17,8 @@
</template>
<script lang="ts">
import { defineComponent, PropType } from 'vue';
import { IconName } from '@/presentation/components/Shared/Icon/IconName';
import { defineComponent, type PropType } from 'vue';
import type { IconName } from '@/presentation/components/Shared/Icon/IconName';
import AppIcon from '@/presentation/components/Shared/Icon/AppIcon.vue';
export default defineComponent({

View File

@@ -18,7 +18,7 @@ import {
import { injectKey } from '@/presentation/injectionSymbols';
import ModalDialog from '@/presentation/components/Shared/Modal/ModalDialog.vue';
import { ScriptingLanguage } from '@/domain/ScriptingLanguage';
import { IScriptingDefinition } from '@/domain/IScriptingDefinition';
import { type IScriptingDefinition } from '@/domain/IScriptingDefinition';
import { ScriptFilename } from '@/application/CodeRunner/ScriptFilename';
import { FileType } from '@/presentation/common/Dialog';
import IconButton from '../IconButton.vue';

View File

@@ -1,6 +1,6 @@
import { ScriptDiagnosticData, ScriptDiagnosticsCollector } from '@/application/ScriptDiagnostics/ScriptDiagnosticsCollector';
import type { ScriptDiagnosticData, ScriptDiagnosticsCollector } from '@/application/ScriptDiagnostics/ScriptDiagnosticsCollector';
import { OperatingSystem } from '@/domain/OperatingSystem';
import { Dialog } from '@/presentation/common/Dialog';
import type { Dialog } from '@/presentation/common/Dialog';
export async function createScriptErrorDialog(
information: ScriptErrorDetails,

View File

@@ -17,10 +17,10 @@ import {
defineComponent, onUnmounted, onMounted, ref,
} from 'vue';
import { injectKey } from '@/presentation/injectionSymbols';
import { ICodeChangedEvent } from '@/application/Context/State/Code/Event/ICodeChangedEvent';
import { IScript } from '@/domain/IScript';
import type { ICodeChangedEvent } from '@/application/Context/State/Code/Event/ICodeChangedEvent';
import type { IScript } from '@/domain/IScript';
import { ScriptingLanguage } from '@/domain/ScriptingLanguage';
import { IReadOnlyCategoryCollectionState } from '@/application/Context/State/ICategoryCollectionState';
import type { IReadOnlyCategoryCollectionState } from '@/application/Context/State/ICategoryCollectionState';
import { CodeBuilderFactory } from '@/application/Context/State/Code/Generation/CodeBuilderFactory';
import SizeObserver from '@/presentation/components/Shared/SizeObserver.vue';
import { NonCollapsing } from '@/presentation/components/Scripts/View/Cards/NonCollapsingDirective';

View File

@@ -1,4 +1,4 @@
import { IApplication } from '@/domain/IApplication';
import type { IApplication } from '@/domain/IApplication';
import { ApplicationFactory } from '@/application/ApplicationFactory';
export async function dumpNames(): Promise<string> {

View File

@@ -49,7 +49,7 @@
</template>
<script lang="ts">
import { PropType, defineComponent } from 'vue';
import { type PropType, defineComponent } from 'vue';
import AppIcon from '@/presentation/components/Shared/Icon/AppIcon.vue';
import CircleRating from './Rating/CircleRating.vue';

View File

@@ -1,9 +1,9 @@
import { IScript } from '@/domain/IScript';
import type { IScript } from '@/domain/IScript';
import { RecommendationLevel } from '@/domain/RecommendationLevel';
import { scrambledEqual } from '@/application/Common/Array';
import { ICategoryCollection } from '@/domain/ICategoryCollection';
import { ReadonlyScriptSelection, ScriptSelection } from '@/application/Context/State/Selection/Script/ScriptSelection';
import { SelectedScript } from '@/application/Context/State/Selection/Script/SelectedScript';
import type { ICategoryCollection } from '@/domain/ICategoryCollection';
import type { ReadonlyScriptSelection, ScriptSelection } from '@/application/Context/State/Selection/Script/ScriptSelection';
import type { SelectedScript } from '@/application/Context/State/Selection/Script/SelectedScript';
import { RecommendationStatusType } from './RecommendationStatusType';
export function setCurrentRecommendationStatus(

View File

@@ -90,7 +90,7 @@ import {
} from 'vue';
import { injectKey } from '@/presentation/injectionSymbols';
import TooltipWrapper from '@/presentation/components/Shared/TooltipWrapper.vue';
import { ICategoryCollection } from '@/domain/ICategoryCollection';
import type { ICategoryCollection } from '@/domain/ICategoryCollection';
import MenuOptionList from '../MenuOptionList.vue';
import MenuOptionListItem from '../MenuOptionListItem.vue';
import { setCurrentRecommendationStatus, getCurrentRecommendationStatus } from './RecommendationStatusHandler';

View File

@@ -25,9 +25,9 @@
</template>
<script lang="ts">
import { PropType, defineComponent } from 'vue';
import { type PropType, defineComponent } from 'vue';
import AppIcon from '@/presentation/components/Shared/Icon/AppIcon.vue';
import { IconName } from '@/presentation/components/Shared/Icon/IconName';
import type { IconName } from '@/presentation/components/Shared/Icon/IconName';
export default defineComponent({
components: {

View File

@@ -1,6 +1,6 @@
import { SelectedScript } from '@/application/Context/State/Selection/Script/SelectedScript';
import { ReadonlyScriptSelection, ScriptSelection } from '@/application/Context/State/Selection/Script/ScriptSelection';
import { ScriptSelectionChange } from '@/application/Context/State/Selection/Script/ScriptSelectionChange';
import type { SelectedScript } from '@/application/Context/State/Selection/Script/SelectedScript';
import type { ReadonlyScriptSelection, ScriptSelection } from '@/application/Context/State/Selection/Script/ScriptSelection';
import type { ScriptSelectionChange } from '@/application/Context/State/Selection/Script/ScriptSelectionChange';
import { RevertStatusType } from './RevertStatusType';
export function setCurrentRevertStatus(

View File

@@ -60,7 +60,7 @@ import {
import { injectKey } from '@/presentation/injectionSymbols';
import TooltipWrapper from '@/presentation/components/Shared/TooltipWrapper.vue';
import { RecommendationLevel } from '@/domain/RecommendationLevel';
import { IScript } from '@/domain/IScript';
import type { IScript } from '@/domain/IScript';
import MenuOptionList from '../MenuOptionList.vue';
import MenuOptionListItem from '../MenuOptionListItem.vue';
import RevertStatusDocumentation from './RevertStatusDocumentation.vue';

View File

@@ -16,8 +16,8 @@
<script lang="ts">
import { defineComponent, ref } from 'vue';
import { injectKey } from '@/presentation/injectionSymbols';
import { ReadonlyFilterContext } from '@/application/Context/State/Filter/FilterContext';
import { IEventSubscription } from '@/infrastructure/Events/IEventSource';
import type { ReadonlyFilterContext } from '@/application/Context/State/Filter/FilterContext';
import type { IEventSubscription } from '@/infrastructure/Events/IEventSource';
import TheOsChanger from './TheOsChanger.vue';
import TheViewChanger from './View/TheViewChanger.vue';
import { ViewType } from './View/ViewType';

View File

@@ -15,8 +15,8 @@
import { defineComponent, computed } from 'vue';
import AppIcon from '@/presentation/components/Shared/Icon/AppIcon.vue';
import { injectKey } from '@/presentation/injectionSymbols';
import { ICategory } from '@/domain/ICategory';
import { ICategoryCollection } from '@/domain/ICategoryCollection';
import type { ICategory } from '@/domain/ICategory';
import type { ICategoryCollection } from '@/domain/ICategoryCollection';
export default defineComponent({
components: {

View File

@@ -1,4 +1,4 @@
import { ObjectDirective } from 'vue';
import type { ObjectDirective } from 'vue';
const attributeName = 'data-interaction-does-not-collapse';

View File

@@ -37,14 +37,14 @@
<script lang="ts">
import {
defineComponent, PropType, ref, computed,
defineComponent, type PropType, ref, computed,
} from 'vue';
import { injectKey } from '@/presentation/injectionSymbols';
import ScriptsTree from '@/presentation/components/Scripts/View/Tree/ScriptsTree.vue';
import CardList from '@/presentation/components/Scripts/View/Cards/CardList.vue';
import { ViewType } from '@/presentation/components/Scripts/Menu/View/ViewType';
import { ReadonlyFilterContext } from '@/application/Context/State/Filter/FilterContext';
import { FilterResult } from '@/application/Context/State/Filter/Result/FilterResult';
import type { ReadonlyFilterContext } from '@/application/Context/State/Filter/FilterContext';
import type { FilterResult } from '@/application/Context/State/Filter/Result/FilterResult';
import FlatButton from '@/presentation/components/Shared/FlatButton.vue';
export default defineComponent({

View File

@@ -33,7 +33,7 @@
</template>
<script lang="ts">
import { defineComponent, ref, PropType } from 'vue';
import { defineComponent, ref, type PropType } from 'vue';
import ExpandCollapseTransition from '@/presentation/components/Shared/ExpandCollapse/ExpandCollapseTransition.vue';
import DocumentationText from './DocumentationText.vue';
import ToggleDocumentationButton from './ToggleDocumentationButton.vue';

View File

@@ -7,7 +7,7 @@
</template>
<script lang="ts">
import { defineComponent, PropType, computed } from 'vue';
import { defineComponent, type PropType, computed } from 'vue';
import MarkdownText from '../Markdown/MarkdownText.vue';
export default defineComponent({

View File

@@ -14,11 +14,11 @@
</template>
<script lang="ts">
import { defineComponent, PropType } from 'vue';
import { NodeMetadata } from './NodeMetadata';
import { defineComponent, type PropType } from 'vue';
import RevertToggle from './RevertToggle.vue';
import DocumentableNode from './Documentation/DocumentableNode.vue';
import NodeTitle from './NodeTitle.vue';
import type { NodeMetadata } from './NodeMetadata';
export default defineComponent({
components: {

View File

@@ -8,11 +8,11 @@
<script lang="ts">
import {
PropType, defineComponent, computed,
type PropType, defineComponent, computed,
} from 'vue';
import { injectKey } from '@/presentation/injectionSymbols';
import { NodeMetadata } from '@/presentation/components/Scripts/View/Tree/NodeContent/NodeMetadata';
import { ICategoryCollection } from '@/domain/ICategoryCollection';
import type { NodeMetadata } from '@/presentation/components/Scripts/View/Tree/NodeContent/NodeMetadata';
import type { ICategoryCollection } from '@/domain/ICategoryCollection';
import { getReverter } from './Reverter/ReverterFactory';
import ToggleSwitch from './ToggleSwitch.vue';
import type { Reverter } from './Reverter/Reverter';

View File

@@ -1,9 +1,9 @@
import { UserSelection } from '@/application/Context/State/Selection/UserSelection';
import { ICategoryCollection } from '@/domain/ICategoryCollection';
import { SelectedScript } from '@/application/Context/State/Selection/Script/SelectedScript';
import type { UserSelection } from '@/application/Context/State/Selection/UserSelection';
import type { ICategoryCollection } from '@/domain/ICategoryCollection';
import type { SelectedScript } from '@/application/Context/State/Selection/Script/SelectedScript';
import { getCategoryId } from '../../TreeViewAdapter/CategoryNodeMetadataConverter';
import { Reverter } from './Reverter';
import { ScriptReverter } from './ScriptReverter';
import type { Reverter } from './Reverter';
export class CategoryReverter implements Reverter {
private readonly categoryId: number;

View File

@@ -1,5 +1,5 @@
import { UserSelection } from '@/application/Context/State/Selection/UserSelection';
import { SelectedScript } from '@/application/Context/State/Selection/Script/SelectedScript';
import type { UserSelection } from '@/application/Context/State/Selection/UserSelection';
import type { SelectedScript } from '@/application/Context/State/Selection/Script/SelectedScript';
export interface Reverter {
getState(selectedScripts: ReadonlyArray<SelectedScript>): boolean;

View File

@@ -1,8 +1,8 @@
import { ICategoryCollection } from '@/domain/ICategoryCollection';
import { NodeMetadata, NodeType } from '../NodeMetadata';
import { Reverter } from './Reverter';
import type { ICategoryCollection } from '@/domain/ICategoryCollection';
import { type NodeMetadata, NodeType } from '../NodeMetadata';
import { ScriptReverter } from './ScriptReverter';
import { CategoryReverter } from './CategoryReverter';
import type { Reverter } from './Reverter';
export function getReverter(node: NodeMetadata, collection: ICategoryCollection): Reverter {
switch (node.type) {

View File

@@ -1,7 +1,7 @@
import { UserSelection } from '@/application/Context/State/Selection/UserSelection';
import { SelectedScript } from '@/application/Context/State/Selection/Script/SelectedScript';
import type { UserSelection } from '@/application/Context/State/Selection/UserSelection';
import type { SelectedScript } from '@/application/Context/State/Selection/Script/SelectedScript';
import { getScriptId } from '../../TreeViewAdapter/CategoryNodeMetadataConverter';
import { Reverter } from './Reverter';
import type { Reverter } from './Reverter';
export class ScriptReverter implements Reverter {
private readonly scriptId: string;

View File

@@ -31,8 +31,8 @@ import NodeContent from './NodeContent/NodeContent.vue';
import { useTreeViewFilterEvent } from './TreeViewAdapter/UseTreeViewFilterEvent';
import { useTreeViewNodeInput } from './TreeViewAdapter/UseTreeViewNodeInput';
import { useCollectionSelectionStateUpdater } from './TreeViewAdapter/UseCollectionSelectionStateUpdater';
import { TreeNodeStateChangedEmittedEvent } from './TreeView/Bindings/TreeNodeStateChangedEmittedEvent';
import { useSelectedScriptNodeIds } from './TreeViewAdapter/UseSelectedScriptNodeIds';
import type { TreeNodeStateChangedEmittedEvent } from './TreeView/Bindings/TreeNodeStateChangedEmittedEvent';
export default defineComponent({
components: {

View File

@@ -1,5 +1,5 @@
import { TreeNodeStateDescriptor } from '../Node/State/StateDescriptor';
import { ReadOnlyTreeNode } from '../Node/TreeNode';
import type { TreeNodeStateDescriptor } from '../Node/State/StateDescriptor';
import type { ReadOnlyTreeNode } from '../Node/TreeNode';
export interface TreeNodeStateChangedEmittedEvent {
readonly node: ReadOnlyTreeNode;

View File

@@ -51,13 +51,13 @@
<script lang="ts">
import { defineComponent, computed, toRef } from 'vue';
import ExpandCollapseTransition from '@/presentation/components/Shared/ExpandCollapse/ExpandCollapseTransition.vue';
import { TreeRoot } from '../TreeRoot/TreeRoot';
import { useCurrentTreeNodes } from '../UseCurrentTreeNodes';
import { NodeRenderingStrategy } from '../Rendering/Scheduling/NodeRenderingStrategy';
import { useNodeState } from './UseNodeState';
import { TreeNode } from './TreeNode';
import LeafTreeNode from './LeafTreeNode.vue';
import InteractableNode from './InteractableNode.vue';
import type { TreeRoot } from '../TreeRoot/TreeRoot';
import type { TreeNode } from './TreeNode';
import type { NodeRenderingStrategy } from '../Rendering/Scheduling/NodeRenderingStrategy';
import type { PropType } from 'vue';
export default defineComponent({

View File

@@ -1,5 +1,5 @@
import { TreeNode } from '../TreeNode';
import { HierarchyAccess } from './HierarchyAccess';
import type { TreeNode } from '../TreeNode';
import type { HierarchyAccess } from './HierarchyAccess';
export class TreeNodeHierarchy implements HierarchyAccess {
public parent: TreeNode | undefined = undefined;

View File

@@ -14,11 +14,11 @@
<script lang="ts">
import { defineComponent, computed, toRef } from 'vue';
import { TreeRoot } from '../TreeRoot/TreeRoot';
import { useCurrentTreeNodes } from '../UseCurrentTreeNodes';
import { useNodeState } from './UseNodeState';
import { useKeyboardInteractionState } from './UseKeyboardInteractionState';
import { TreeNode } from './TreeNode';
import type { TreeRoot } from '../TreeRoot/TreeRoot';
import type { TreeNode } from './TreeNode';
import type { PropType } from 'vue';
export default defineComponent({

View File

@@ -25,11 +25,11 @@
<script lang="ts">
import { defineComponent, computed, toRef } from 'vue';
import { TreeRoot } from '../TreeRoot/TreeRoot';
import { useCurrentTreeNodes } from '../UseCurrentTreeNodes';
import { TreeNode } from './TreeNode';
import NodeCheckbox from './NodeCheckbox.vue';
import InteractableNode from './InteractableNode.vue';
import type { TreeNode } from './TreeNode';
import type { TreeRoot } from '../TreeRoot/TreeRoot';
import type { PropType } from 'vue';
export default defineComponent({

View File

@@ -10,11 +10,11 @@
<script lang="ts">
import { defineComponent, computed, toRef } from 'vue';
import { TreeRoot } from '../TreeRoot/TreeRoot';
import { useCurrentTreeNodes } from '../UseCurrentTreeNodes';
import { useNodeState } from './UseNodeState';
import { TreeNode } from './TreeNode';
import { TreeNodeCheckState } from './State/CheckState';
import type { TreeRoot } from '../TreeRoot/TreeRoot';
import type { TreeNode } from './TreeNode';
import type { PropType } from 'vue';
export default defineComponent({

View File

@@ -1,6 +1,6 @@
import { IEventSource } from '@/infrastructure/Events/IEventSource';
import { TreeNodeStateDescriptor } from './StateDescriptor';
import type { IEventSource } from '@/infrastructure/Events/IEventSource';
import { TreeNodeCheckState } from './CheckState';
import type { TreeNodeStateDescriptor } from './StateDescriptor';
export interface NodeStateChangedEvent {
readonly oldState: TreeNodeStateDescriptor;

View File

@@ -1,8 +1,8 @@
import { EventSource } from '@/infrastructure/Events/EventSource';
import { NodeStateChangedEvent, TreeNodeStateAccess, TreeNodeStateTransaction } from './StateAccess';
import { TreeNodeStateDescriptor } from './StateDescriptor';
import { TreeNodeCheckState } from './CheckState';
import { TreeNodeStateTransactionDescriber } from './TreeNodeStateTransactionDescriber';
import { TreeNodeCheckState } from './CheckState';
import type { NodeStateChangedEvent, TreeNodeStateAccess, TreeNodeStateTransaction } from './StateAccess';
import type { TreeNodeStateDescriptor } from './StateDescriptor';
export class TreeNodeState implements TreeNodeStateAccess {
public current: TreeNodeStateDescriptor = {

View File

@@ -1,6 +1,6 @@
import { TreeNodeCheckState } from './CheckState';
import { TreeNodeStateTransaction } from './StateAccess';
import { TreeNodeStateDescriptor } from './StateDescriptor';
import type { TreeNodeStateTransaction } from './StateAccess';
import type { TreeNodeStateDescriptor } from './StateDescriptor';
export class TreeNodeStateTransactionDescriber implements TreeNodeStateTransaction {
constructor(public updatedState: Partial<TreeNodeStateDescriptor> = {}) { }

View File

@@ -1,8 +1,8 @@
import { TreeNode } from './TreeNode';
import { TreeNodeStateAccess } from './State/StateAccess';
import { TreeNodeState } from './State/TreeNodeState';
import { HierarchyAccess } from './Hierarchy/HierarchyAccess';
import { TreeNodeHierarchy } from './Hierarchy/TreeNodeHierarchy';
import { TreeNodeState } from './State/TreeNodeState';
import type { TreeNode } from './TreeNode';
import type { TreeNodeStateAccess } from './State/StateAccess';
import type { HierarchyAccess } from './Hierarchy/HierarchyAccess';
export class TreeNodeManager implements TreeNode {
public readonly state: TreeNodeStateAccess;

View File

@@ -2,8 +2,8 @@ import {
type Ref, shallowRef, watch, shallowReadonly,
} from 'vue';
import { injectKey } from '@/presentation/injectionSymbols';
import { ReadOnlyTreeNode } from './TreeNode';
import { TreeNodeStateDescriptor } from './State/StateDescriptor';
import type { ReadOnlyTreeNode } from './TreeNode';
import type { TreeNodeStateDescriptor } from './State/StateDescriptor';
export function useNodeState(
nodeRef: Readonly<Ref<ReadOnlyTreeNode>>,

View File

@@ -1,5 +1,5 @@
import { ReadOnlyTreeNode } from '../../Node/TreeNode';
import { RenderQueueOrderer } from './RenderQueueOrderer';
import type { ReadOnlyTreeNode } from '../../Node/TreeNode';
import type { RenderQueueOrderer } from './RenderQueueOrderer';
export class CollapsedParentOrderer implements RenderQueueOrderer {
public orderNodes(nodes: Iterable<ReadOnlyTreeNode>): ReadOnlyTreeNode[] {

View File

@@ -1,4 +1,4 @@
import { ReadOnlyTreeNode } from '../../Node/TreeNode';
import type { ReadOnlyTreeNode } from '../../Node/TreeNode';
export interface RenderQueueOrderer {
orderNodes(nodes: Iterable<ReadOnlyTreeNode>): ReadOnlyTreeNode[];

View File

@@ -1,4 +1,4 @@
import { TreeNode } from '../../Node/TreeNode';
import type { TreeNode } from '../../Node/TreeNode';
export interface NodeRenderingStrategy {
shouldRender(node: TreeNode): boolean;

View File

@@ -1,4 +1,4 @@
import { DelayScheduler } from '../DelayScheduler';
import type { DelayScheduler } from '../DelayScheduler';
export class TimeoutDelayScheduler implements DelayScheduler {
private timeoutId: ReturnType<typeof setTimeout> | undefined = undefined;

View File

@@ -1,16 +1,16 @@
import {
type Ref, shallowRef, triggerRef, watch,
} from 'vue';
import { ReadOnlyTreeNode } from '../Node/TreeNode';
import { useNodeStateChangeAggregator } from '../UseNodeStateChangeAggregator';
import { TreeRoot } from '../TreeRoot/TreeRoot';
import { useCurrentTreeNodes } from '../UseCurrentTreeNodes';
import { QueryableNodes } from '../TreeRoot/NodeCollection/Query/QueryableNodes';
import { NodeRenderingStrategy } from './Scheduling/NodeRenderingStrategy';
import { DelayScheduler } from './DelayScheduler';
import { TimeoutDelayScheduler } from './Scheduling/TimeoutDelayScheduler';
import { RenderQueueOrderer } from './Ordering/RenderQueueOrderer';
import { CollapsedParentOrderer } from './Ordering/CollapsedParentOrderer';
import type { ReadOnlyTreeNode } from '../Node/TreeNode';
import type { TreeRoot } from '../TreeRoot/TreeRoot';
import type { QueryableNodes } from '../TreeRoot/NodeCollection/Query/QueryableNodes';
import type { NodeRenderingStrategy } from './Scheduling/NodeRenderingStrategy';
import type { DelayScheduler } from './DelayScheduler';
import type { RenderQueueOrderer } from './Ordering/RenderQueueOrderer';
export interface NodeRenderingControl {
readonly renderingStrategy: NodeRenderingStrategy;

View File

@@ -1,6 +1,6 @@
import { ReadOnlyTreeNode, TreeNode } from '../../Node/TreeNode';
import { TreeNodeCollection } from '../NodeCollection/TreeNodeCollection';
import { SingleNodeFocusManager } from './SingleNodeFocusManager';
import type { ReadOnlyTreeNode, TreeNode } from '../../Node/TreeNode';
import type { TreeNodeCollection } from '../NodeCollection/TreeNodeCollection';
import type { SingleNodeFocusManager } from './SingleNodeFocusManager';
export class SingleNodeCollectionFocusManager implements SingleNodeFocusManager {
public get currentSingleFocusedNode(): TreeNode | undefined {

View File

@@ -1,4 +1,4 @@
import { ReadOnlyTreeNode, TreeNode } from '../../Node/TreeNode';
import type { ReadOnlyTreeNode, TreeNode } from '../../Node/TreeNode';
export interface SingleNodeFocusManager {
readonly currentSingleFocusedNode: TreeNode | undefined;

View File

@@ -1,4 +1,4 @@
import { ReadOnlyTreeNode, TreeNode } from '../../../Node/TreeNode';
import type { ReadOnlyTreeNode, TreeNode } from '../../../Node/TreeNode';
export interface ReadOnlyQueryableNodes {
readonly rootNodes: readonly ReadOnlyTreeNode[];

View File

@@ -1,5 +1,5 @@
import { TreeNode } from '../../../Node/TreeNode';
import { QueryableNodes } from './QueryableNodes';
import type { QueryableNodes } from './QueryableNodes';
import type { TreeNode } from '../../../Node/TreeNode';
export class TreeNodeNavigator implements QueryableNodes {
public readonly flattenedNodes: readonly TreeNode[];

View File

@@ -1,7 +1,7 @@
import { isArray } from '@/TypeHelpers';
import { TreeInputNodeData } from '../../Bindings/TreeInputNodeData';
import { TreeNode } from '../../Node/TreeNode';
import { TreeNodeManager } from '../../Node/TreeNodeManager';
import type { TreeInputNodeData } from '../../Bindings/TreeInputNodeData';
import type { TreeNode } from '../../Node/TreeNode';
export function parseTreeInput(
input: readonly TreeInputNodeData[],

View File

@@ -1,6 +1,6 @@
import { IEventSource } from '@/infrastructure/Events/IEventSource';
import { TreeInputNodeData } from '../../Bindings/TreeInputNodeData';
import { QueryableNodes, ReadOnlyQueryableNodes } from './Query/QueryableNodes';
import type { IEventSource } from '@/infrastructure/Events/IEventSource';
import type { TreeInputNodeData } from '../../Bindings/TreeInputNodeData';
import type { QueryableNodes, ReadOnlyQueryableNodes } from './Query/QueryableNodes';
export interface ReadOnlyTreeNodeCollection {
readonly nodes: ReadOnlyQueryableNodes;

View File

@@ -1,9 +1,9 @@
import { EventSource } from '@/infrastructure/Events/EventSource';
import { TreeInputNodeData } from '../../Bindings/TreeInputNodeData';
import { TreeNodeCollection } from './TreeNodeCollection';
import { parseTreeInput } from './TreeInputParser';
import { TreeNodeNavigator } from './Query/TreeNodeNavigator';
import { QueryableNodes } from './Query/QueryableNodes';
import { parseTreeInput } from './TreeInputParser';
import type { TreeInputNodeData } from '../../Bindings/TreeInputNodeData';
import type { TreeNodeCollection } from './TreeNodeCollection';
import type { QueryableNodes } from './Query/QueryableNodes';
export class TreeNodeInitializerAndUpdater implements TreeNodeCollection {
public nodes: QueryableNodes = new TreeNodeNavigator([]);

View File

@@ -1,5 +1,5 @@
import { SingleNodeFocusManager } from './Focus/SingleNodeFocusManager';
import { TreeNodeCollection } from './NodeCollection/TreeNodeCollection';
import type { SingleNodeFocusManager } from './Focus/SingleNodeFocusManager';
import type { TreeNodeCollection } from './NodeCollection/TreeNodeCollection';
export interface TreeRoot {
readonly collection: TreeNodeCollection;

View File

@@ -22,8 +22,8 @@ import {
} from 'vue';
import HierarchicalTreeNode from '../Node/HierarchicalTreeNode.vue';
import { useCurrentTreeNodes } from '../UseCurrentTreeNodes';
import { NodeRenderingStrategy } from '../Rendering/Scheduling/NodeRenderingStrategy';
import { TreeRoot } from './TreeRoot';
import type { NodeRenderingStrategy } from '../Rendering/Scheduling/NodeRenderingStrategy';
import type { TreeRoot } from './TreeRoot';
import type { PropType } from 'vue';
export default defineComponent({

View File

@@ -1,8 +1,8 @@
import { TreeRoot } from './TreeRoot';
import { TreeNodeInitializerAndUpdater } from './NodeCollection/TreeNodeInitializerAndUpdater';
import { TreeNodeCollection } from './NodeCollection/TreeNodeCollection';
import { SingleNodeFocusManager } from './Focus/SingleNodeFocusManager';
import { SingleNodeCollectionFocusManager } from './Focus/SingleNodeCollectionFocusManager';
import { TreeNodeInitializerAndUpdater } from './NodeCollection/TreeNodeInitializerAndUpdater';
import type { TreeRoot } from './TreeRoot';
import type { TreeNodeCollection } from './NodeCollection/TreeNodeCollection';
import type { SingleNodeFocusManager } from './Focus/SingleNodeFocusManager';
export class TreeRootManager implements TreeRoot {
public readonly collection: TreeNodeCollection;

View File

@@ -19,16 +19,16 @@ import {
} from 'vue';
import { TreeRootManager } from './TreeRoot/TreeRootManager';
import TreeRoot from './TreeRoot/TreeRoot.vue';
import { TreeInputNodeData } from './Bindings/TreeInputNodeData';
import { TreeViewFilterEvent } from './Bindings/TreeInputFilterEvent';
import { useTreeQueryFilter } from './UseTreeQueryFilter';
import { useTreeKeyboardNavigation } from './UseTreeKeyboardNavigation';
import { useNodeStateChangeAggregator } from './UseNodeStateChangeAggregator';
import { useLeafNodeCheckedStateUpdater } from './UseLeafNodeCheckedStateUpdater';
import { TreeNodeStateChangedEmittedEvent } from './Bindings/TreeNodeStateChangedEmittedEvent';
import { useAutoUpdateParentCheckState } from './UseAutoUpdateParentCheckState';
import { useAutoUpdateChildrenCheckState } from './UseAutoUpdateChildrenCheckState';
import { useGradualNodeRendering, NodeRenderingControl } from './Rendering/UseGradualNodeRendering';
import { useGradualNodeRendering, type NodeRenderingControl } from './Rendering/UseGradualNodeRendering';
import type { TreeNodeStateChangedEmittedEvent } from './Bindings/TreeNodeStateChangedEmittedEvent';
import type { TreeInputNodeData } from './Bindings/TreeInputNodeData';
import type { TreeViewFilterEvent } from './Bindings/TreeInputFilterEvent';
import type { PropType } from 'vue';
export default defineComponent({

View File

@@ -1,7 +1,7 @@
import { TreeRoot } from './TreeRoot/TreeRoot';
import { useNodeStateChangeAggregator } from './UseNodeStateChangeAggregator';
import { HierarchyAccess } from './Node/Hierarchy/HierarchyAccess';
import { TreeNodeCheckState } from './Node/State/CheckState';
import type { TreeRoot } from './TreeRoot/TreeRoot';
import type { HierarchyAccess } from './Node/Hierarchy/HierarchyAccess';
import type { Ref } from 'vue';
export function useAutoUpdateChildrenCheckState(

View File

@@ -1,8 +1,8 @@
import { TreeRoot } from './TreeRoot/TreeRoot';
import { useNodeStateChangeAggregator } from './UseNodeStateChangeAggregator';
import { HierarchyAccess } from './Node/Hierarchy/HierarchyAccess';
import { TreeNodeCheckState } from './Node/State/CheckState';
import { ReadOnlyTreeNode } from './Node/TreeNode';
import type { TreeRoot } from './TreeRoot/TreeRoot';
import type { HierarchyAccess } from './Node/Hierarchy/HierarchyAccess';
import type { ReadOnlyTreeNode } from './Node/TreeNode';
import type { Ref } from 'vue';
export function useAutoUpdateParentCheckState(

View File

@@ -2,8 +2,8 @@ import {
watch, shallowReadonly, shallowRef, type Ref,
} from 'vue';
import { injectKey } from '@/presentation/injectionSymbols';
import { TreeRoot } from './TreeRoot/TreeRoot';
import { QueryableNodes } from './TreeRoot/NodeCollection/Query/QueryableNodes';
import type { TreeRoot } from './TreeRoot/TreeRoot';
import type { QueryableNodes } from './TreeRoot/NodeCollection/Query/QueryableNodes';
export function useCurrentTreeNodes(treeRef: Readonly<Ref<TreeRoot>>) {
const { events } = injectKey((keys) => keys.useAutoUnsubscribedEvents);

View File

@@ -1,9 +1,9 @@
import { type Ref, watch } from 'vue';
import { TreeRoot } from './TreeRoot/TreeRoot';
import { TreeNode } from './Node/TreeNode';
import { QueryableNodes } from './TreeRoot/NodeCollection/Query/QueryableNodes';
import { useCurrentTreeNodes } from './UseCurrentTreeNodes';
import { TreeNodeCheckState } from './Node/State/CheckState';
import type { TreeRoot } from './TreeRoot/TreeRoot';
import type { TreeNode } from './Node/TreeNode';
import type { QueryableNodes } from './TreeRoot/NodeCollection/Query/QueryableNodes';
export function useLeafNodeCheckedStateUpdater(
treeRootRef: Readonly<Ref<TreeRoot>>,

View File

@@ -2,11 +2,11 @@ import {
watch, shallowRef, type Ref,
} from 'vue';
import { injectKey } from '@/presentation/injectionSymbols';
import { IEventSubscription } from '@/infrastructure/Events/IEventSource';
import { TreeRoot } from './TreeRoot/TreeRoot';
import { TreeNode } from './Node/TreeNode';
import type { IEventSubscription } from '@/infrastructure/Events/IEventSource';
import { useCurrentTreeNodes } from './UseCurrentTreeNodes';
import { TreeNodeStateDescriptor } from './Node/State/StateDescriptor';
import type { TreeNodeStateDescriptor } from './Node/State/StateDescriptor';
import type { TreeRoot } from './TreeRoot/TreeRoot';
import type { TreeNode } from './Node/TreeNode';
export type NodeStateChangeEventCallback = (args: NodeStateChangeEventArgs) => void;

View File

@@ -1,9 +1,9 @@
import { onMounted, onUnmounted, Ref } from 'vue';
import { TreeRoot } from './TreeRoot/TreeRoot';
import { onMounted, onUnmounted, type Ref } from 'vue';
import { TreeNodeCheckState } from './Node/State/CheckState';
import { SingleNodeFocusManager } from './TreeRoot/Focus/SingleNodeFocusManager';
import { QueryableNodes } from './TreeRoot/NodeCollection/Query/QueryableNodes';
import { TreeNode } from './Node/TreeNode';
import type { TreeNode } from './Node/TreeNode';
import type { TreeRoot } from './TreeRoot/TreeRoot';
import type { SingleNodeFocusManager } from './TreeRoot/Focus/SingleNodeFocusManager';
import type { QueryableNodes } from './TreeRoot/NodeCollection/Query/QueryableNodes';
type TreeNavigationKeyCodes = 'ArrowLeft' | 'ArrowUp' | 'ArrowRight' | 'ArrowDown' | ' ' | 'Enter';

View File

@@ -1,11 +1,11 @@
import { type Ref, watch } from 'vue';
import { TreeViewFilterAction, TreeViewFilterEvent, TreeViewFilterPredicate } from './Bindings/TreeInputFilterEvent';
import { ReadOnlyTreeNode, TreeNode } from './Node/TreeNode';
import { TreeRoot } from './TreeRoot/TreeRoot';
import { TreeViewFilterAction, type TreeViewFilterEvent, type TreeViewFilterPredicate } from './Bindings/TreeInputFilterEvent';
import { useCurrentTreeNodes } from './UseCurrentTreeNodes';
import { QueryableNodes, ReadOnlyQueryableNodes } from './TreeRoot/NodeCollection/Query/QueryableNodes';
import { TreeNodeStateTransaction } from './Node/State/StateAccess';
import { TreeNodeStateDescriptor } from './Node/State/StateDescriptor';
import type { QueryableNodes, ReadOnlyQueryableNodes } from './TreeRoot/NodeCollection/Query/QueryableNodes';
import type { TreeNodeStateTransaction } from './Node/State/StateAccess';
import type { TreeNodeStateDescriptor } from './Node/State/StateDescriptor';
import type { ReadOnlyTreeNode, TreeNode } from './Node/TreeNode';
import type { TreeRoot } from './TreeRoot/TreeRoot';
export function useTreeQueryFilter(
latestFilterEventRef: Readonly<Ref<TreeViewFilterEvent | undefined>>,

View File

@@ -1,6 +1,6 @@
import { ICategory, IScript } from '@/domain/ICategory';
import { ICategoryCollection } from '@/domain/ICategoryCollection';
import { NodeMetadata, NodeType } from '../NodeContent/NodeMetadata';
import type { ICategory, IScript } from '@/domain/ICategory';
import type { ICategoryCollection } from '@/domain/ICategoryCollection';
import { type NodeMetadata, NodeType } from '../NodeContent/NodeMetadata';
export function parseAllCategories(collection: ICategoryCollection): NodeMetadata[] {
return createCategoryNodes(collection.actions);

View File

@@ -1,6 +1,6 @@
import { NodeMetadata } from '../NodeContent/NodeMetadata';
import { ReadOnlyTreeNode } from '../TreeView/Node/TreeNode';
import { TreeInputNodeData } from '../TreeView/Bindings/TreeInputNodeData';
import type { NodeMetadata } from '../NodeContent/NodeMetadata';
import type { ReadOnlyTreeNode } from '../TreeView/Node/TreeNode';
import type { TreeInputNodeData } from '../TreeView/Bindings/TreeInputNodeData';
export function getNodeMetadata(
treeNode: ReadOnlyTreeNode,

View File

@@ -1,6 +1,6 @@
import { useUserSelectionState } from '@/presentation/components/Shared/Hooks/UseUserSelectionState';
import { TreeNodeCheckState } from '../TreeView/Node/State/CheckState';
import { TreeNodeStateChangedEmittedEvent } from '../TreeView/Bindings/TreeNodeStateChangedEmittedEvent';
import type { TreeNodeStateChangedEmittedEvent } from '../TreeView/Bindings/TreeNodeStateChangedEmittedEvent';
export function useCollectionSelectionStateUpdater(
useSelectionStateHook: ReturnType<typeof useUserSelectionState>,

View File

@@ -1,16 +1,16 @@
import {
Ref, shallowReadonly, shallowRef,
type Ref, shallowReadonly, shallowRef,
} from 'vue';
import { IScript } from '@/domain/IScript';
import { ICategory } from '@/domain/ICategory';
import type { IScript } from '@/domain/IScript';
import type { ICategory } from '@/domain/ICategory';
import { injectKey } from '@/presentation/injectionSymbols';
import { ReadonlyFilterContext } from '@/application/Context/State/Filter/FilterContext';
import { FilterResult } from '@/application/Context/State/Filter/Result/FilterResult';
import { TreeViewFilterEvent, createFilterRemovedEvent, createFilterTriggeredEvent } from '../TreeView/Bindings/TreeInputFilterEvent';
import { NodeMetadata } from '../NodeContent/NodeMetadata';
import { ReadOnlyTreeNode } from '../TreeView/Node/TreeNode';
import type { ReadonlyFilterContext } from '@/application/Context/State/Filter/FilterContext';
import type { FilterResult } from '@/application/Context/State/Filter/Result/FilterResult';
import { type TreeViewFilterEvent, createFilterRemovedEvent, createFilterTriggeredEvent } from '../TreeView/Bindings/TreeInputFilterEvent';
import { getNodeMetadata } from './TreeNodeMetadataConverter';
import { getCategoryNodeId, getScriptNodeId } from './CategoryNodeMetadataConverter';
import type { NodeMetadata } from '../NodeContent/NodeMetadata';
import type { ReadOnlyTreeNode } from '../TreeView/Node/TreeNode';
type TreeNodeFilterResultPredicate = (
node: ReadOnlyTreeNode,

View File

@@ -1,12 +1,12 @@
import {
type Ref, computed, shallowReadonly,
} from 'vue';
import { ICategoryCollection } from '@/domain/ICategoryCollection';
import type { ICategoryCollection } from '@/domain/ICategoryCollection';
import { injectKey } from '@/presentation/injectionSymbols';
import { TreeInputNodeData } from '../TreeView/Bindings/TreeInputNodeData';
import { NodeMetadata } from '../NodeContent/NodeMetadata';
import { convertToNodeInput } from './TreeNodeMetadataConverter';
import { parseSingleCategory, parseAllCategories } from './CategoryNodeMetadataConverter';
import { convertToNodeInput } from './TreeNodeMetadataConverter';
import type { TreeInputNodeData } from '../TreeView/Bindings/TreeInputNodeData';
import type { NodeMetadata } from '../NodeContent/NodeMetadata';
export function useTreeViewNodeInput(
categoryIdRef: Readonly<Ref<number | undefined>>,

View File

@@ -1,5 +1,5 @@
import { PlatformTimer } from '@/application/Common/Timing/PlatformTimer';
import { Timer } from '@/application/Common/Timing/Timer';
import type { Timer } from '@/application/Common/Timing/Timer';
export type AnimationFunction = (element: Element) => Promise<void>;

View File

@@ -15,9 +15,9 @@
</template>
<script lang="ts">
import { defineComponent, PropType } from 'vue';
import { defineComponent, type PropType } from 'vue';
import { NonCollapsing } from '@/presentation/components/Scripts/View/Cards/NonCollapsingDirective';
import { IconName } from '@/presentation/components/Shared/Icon/IconName';
import type { IconName } from '@/presentation/components/Shared/Icon/IconName';
import AppIcon from '@/presentation/components/Shared/Icon/AppIcon.vue';
export default defineComponent({

View File

@@ -1,4 +1,4 @@
import { Clipboard } from './Clipboard';
import type { Clipboard } from './Clipboard';
export type NavigatorClipboard = typeof globalThis.navigator.clipboard;

View File

@@ -1,6 +1,6 @@
import { FunctionKeys } from '@/TypeHelpers';
import type { FunctionKeys } from '@/TypeHelpers';
import { BrowserClipboard } from './BrowserClipboard';
import { Clipboard } from './Clipboard';
import type { Clipboard } from './Clipboard';
export function useClipboard(clipboard: Clipboard = new BrowserClipboard()) {
// Bind functions for direct use from destructured assignments such as `const { .. } = ...`.

View File

@@ -1,5 +1,5 @@
import { RuntimeEnvironment } from '@/infrastructure/RuntimeEnvironment/RuntimeEnvironment';
import { Dialog } from '@/presentation/common/Dialog';
import type { RuntimeEnvironment } from '@/infrastructure/RuntimeEnvironment/RuntimeEnvironment';
import type { Dialog } from '@/presentation/common/Dialog';
import { BrowserDialog } from '@/infrastructure/Dialog/Browser/BrowserDialog';
import { decorateWithLogging } from '@/infrastructure/Dialog/LoggingDialogDecorator';
import { ClientLoggerFactory } from '../Log/ClientLoggerFactory';

View File

@@ -1,4 +1,4 @@
import { Dialog } from '@/presentation/common/Dialog';
import type { Dialog } from '@/presentation/common/Dialog';
import { CurrentEnvironment } from '@/infrastructure/RuntimeEnvironment/RuntimeEnvironmentFactory';
import { createEnvironmentSpecificLoggedDialog } from './ClientDialogFactory';

View File

@@ -1,10 +1,10 @@
import { RuntimeEnvironment } from '@/infrastructure/RuntimeEnvironment/RuntimeEnvironment';
import type { RuntimeEnvironment } from '@/infrastructure/RuntimeEnvironment/RuntimeEnvironment';
import { ConsoleLogger } from '@/infrastructure/Log/ConsoleLogger';
import { Logger } from '@/application/Common/Log/Logger';
import type { Logger } from '@/application/Common/Log/Logger';
import { NoopLogger } from '@/infrastructure/Log/NoopLogger';
import { WindowInjectedLogger } from '@/infrastructure/Log/WindowInjectedLogger';
import { CurrentEnvironment } from '@/infrastructure/RuntimeEnvironment/RuntimeEnvironmentFactory';
import { LoggerFactory } from './LoggerFactory';
import type { LoggerFactory } from './LoggerFactory';
export class ClientLoggerFactory implements LoggerFactory {
public static readonly Current: LoggerFactory = new ClientLoggerFactory();

View File

@@ -1,4 +1,4 @@
import { Logger } from '@/application/Common/Log/Logger';
import type { Logger } from '@/application/Common/Log/Logger';
export interface LoggerFactory {
readonly logger: Logger;

View File

@@ -1,5 +1,5 @@
import { ClientLoggerFactory } from './ClientLoggerFactory';
import { LoggerFactory } from './LoggerFactory';
import type { LoggerFactory } from './LoggerFactory';
export function useLogger(factory: LoggerFactory = ClientLoggerFactory.Current) {
return {

View File

@@ -1,4 +1,4 @@
import { IApplication } from '@/domain/IApplication';
import type { IApplication } from '@/domain/IApplication';
export function useApplication(application: IApplication) {
return {

View File

@@ -1,6 +1,6 @@
import { onUnmounted } from 'vue';
import { EventSubscriptionCollection } from '@/infrastructure/Events/EventSubscriptionCollection';
import { IEventSubscriptionCollection } from '@/infrastructure/Events/IEventSubscriptionCollection';
import type { IEventSubscriptionCollection } from '@/infrastructure/Events/IEventSubscriptionCollection';
export function useAutoUnsubscribedEvents(
events: IEventSubscriptionCollection = new EventSubscriptionCollection(),

View File

@@ -1,4 +1,4 @@
import { WindowVariables } from '@/infrastructure/WindowVariables/WindowVariables';
import type { WindowVariables } from '@/infrastructure/WindowVariables/WindowVariables';
export function useCodeRunner(
window: WindowVariables = globalThis.window,

View File

@@ -1,7 +1,7 @@
import { shallowRef, shallowReadonly } from 'vue';
import { IApplicationContext, IReadOnlyApplicationContext } from '@/application/Context/IApplicationContext';
import { ICategoryCollectionState, IReadOnlyCategoryCollectionState } from '@/application/Context/State/ICategoryCollectionState';
import { IEventSubscriptionCollection } from '@/infrastructure/Events/IEventSubscriptionCollection';
import type { IApplicationContext, IReadOnlyApplicationContext } from '@/application/Context/IApplicationContext';
import type { ICategoryCollectionState, IReadOnlyCategoryCollectionState } from '@/application/Context/State/ICategoryCollectionState';
import type { IEventSubscriptionCollection } from '@/infrastructure/Events/IEventSubscriptionCollection';
export function useCollectionState(
context: IApplicationContext,

View File

@@ -1,6 +1,6 @@
import { ref } from 'vue';
import { IApplicationCode } from '@/application/Context/State/Code/IApplicationCode';
import { IEventSubscriptionCollection } from '@/infrastructure/Events/IEventSubscriptionCollection';
import type { IApplicationCode } from '@/application/Context/State/Code/IApplicationCode';
import type { IEventSubscriptionCollection } from '@/infrastructure/Events/IEventSubscriptionCollection';
import { useCollectionState } from './UseCollectionState';
export function useCurrentCode(

View File

@@ -1,4 +1,4 @@
import { RuntimeEnvironment } from '@/infrastructure/RuntimeEnvironment/RuntimeEnvironment';
import type { RuntimeEnvironment } from '@/infrastructure/RuntimeEnvironment/RuntimeEnvironment';
export function useRuntimeEnvironment(environment: RuntimeEnvironment) {
return environment;

View File

@@ -1,4 +1,4 @@
import { WindowVariables } from '@/infrastructure/WindowVariables/WindowVariables';
import type { WindowVariables } from '@/infrastructure/WindowVariables/WindowVariables';
export function useScriptDiagnosticsCollector(
window: Partial<WindowVariables> = globalThis.window,

View File

@@ -11,11 +11,11 @@
<script lang="ts">
import {
defineComponent,
PropType,
type PropType,
inject,
} from 'vue';
import { useSvgLoader } from './UseSvgLoader';
import { IconName } from './IconName';
import type { IconName } from './IconName';
export default defineComponent({
props: {

View File

@@ -1,8 +1,8 @@
import {
WatchSource, shallowReadonly, ref, watch,
type WatchSource, shallowReadonly, ref, watch,
} from 'vue';
import { AsyncLazy } from '@/infrastructure/Threading/AsyncLazy';
import { IconName } from './IconName';
import type { IconName } from './IconName';
export function useSvgLoader(
iconWatcher: WatchSource<IconName>,

View File

@@ -1,6 +1,6 @@
import { Ref, onBeforeUnmount, watch } from 'vue';
import { type Ref, onBeforeUnmount, watch } from 'vue';
import { getWindowDomState } from './WindowScrollDomStateAccessor';
import { ScrollDomStateAccessor } from './ScrollDomStateAccessor';
import type { ScrollDomStateAccessor } from './ScrollDomStateAccessor';
export function useLockBodyBackgroundScroll(
isActive: Ref<boolean>,

View File

@@ -1,4 +1,4 @@
import { ScrollDomStateAccessor } from './ScrollDomStateAccessor';
import type { ScrollDomStateAccessor } from './ScrollDomStateAccessor';
const HtmlElement = document.documentElement;
const BodyElement = document.body;

View File

@@ -1,4 +1,4 @@
import { Ref, computed, watch } from 'vue';
import { type Ref, computed, watch } from 'vue';
/**
* This function monitors a set of conditions (represented as refs) and

View File

@@ -1,4 +1,4 @@
import { Ref, watchEffect } from 'vue';
import { type Ref, watchEffect } from 'vue';
/**
* Manages focus transitions, ensuring good usability and accessibility.

View File

@@ -31,7 +31,7 @@
<script lang="ts">
import {
useFloating, arrow, shift, flip, Placement, offset, Side, Coords, autoUpdate,
useFloating, arrow, shift, flip, type Placement, offset, type Side, type Coords, autoUpdate,
} from '@floating-ui/vue';
import { defineComponent, shallowRef, computed } from 'vue';
import { useResizeObserverPolyfill } from '@/presentation/components/Shared/Hooks/UseResizeObserverPolyfill';

View File

@@ -12,7 +12,7 @@
<script lang="ts">
import {
defineComponent, PropType, computed,
defineComponent, type PropType, computed,
} from 'vue';
import { injectKey } from '@/presentation/injectionSymbols';
import { OperatingSystem } from '@/domain/OperatingSystem';

View File

@@ -19,9 +19,9 @@ import {
import { injectKey } from '@/presentation/injectionSymbols';
import { NonCollapsing } from '@/presentation/components/Scripts/View/Cards/NonCollapsingDirective';
import AppIcon from '@/presentation/components/Shared/Icon/AppIcon.vue';
import { ReadonlyFilterContext } from '@/application/Context/State/Filter/FilterContext';
import { FilterResult } from '@/application/Context/State/Filter/Result/FilterResult';
import { IEventSubscription } from '@/infrastructure/Events/IEventSource';
import type { ReadonlyFilterContext } from '@/application/Context/State/Filter/FilterContext';
import type { FilterResult } from '@/application/Context/State/Filter/Result/FilterResult';
import type { IEventSubscription } from '@/infrastructure/Events/IEventSource';
export default defineComponent({
components: { AppIcon },