@wirekyt/angular 0.0.32 → 0.0.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/fesm2022/wirekyt-angular-field.mjs +1 -1
- package/dist/fesm2022/wirekyt-angular-field.mjs.map +1 -1
- package/dist/fesm2022/wirekyt-angular-image-cropper.mjs +336 -0
- package/dist/fesm2022/wirekyt-angular-image-cropper.mjs.map +1 -0
- package/dist/fesm2022/wirekyt-angular-json-tree-view.mjs +768 -0
- package/dist/fesm2022/wirekyt-angular-json-tree-view.mjs.map +1 -0
- package/dist/fesm2022/wirekyt-angular-marquee.mjs +296 -0
- package/dist/fesm2022/wirekyt-angular-marquee.mjs.map +1 -0
- package/dist/fesm2022/wirekyt-angular-navigation-menu.mjs +777 -0
- package/dist/fesm2022/wirekyt-angular-navigation-menu.mjs.map +1 -0
- package/dist/fesm2022/wirekyt-angular-pagination.mjs +321 -0
- package/dist/fesm2022/wirekyt-angular-pagination.mjs.map +1 -0
- package/dist/fesm2022/wirekyt-angular-portal.mjs +98 -0
- package/dist/fesm2022/wirekyt-angular-portal.mjs.map +1 -0
- package/dist/fesm2022/wirekyt-angular-qr-code.mjs +308 -0
- package/dist/fesm2022/wirekyt-angular-qr-code.mjs.map +1 -0
- package/dist/fesm2022/wirekyt-angular-tree-view.mjs +858 -0
- package/dist/fesm2022/wirekyt-angular-tree-view.mjs.map +1 -0
- package/dist/fesm2022/wirekyt-angular.mjs +12 -4
- package/dist/fesm2022/wirekyt-angular.mjs.map +1 -1
- package/dist/package.json +33 -1
- package/dist/types/wirekyt-angular-checkbox.d.ts +1 -1
- package/dist/types/wirekyt-angular-color-picker.d.ts +1 -1
- package/dist/types/wirekyt-angular-combobox.d.ts +1 -1
- package/dist/types/wirekyt-angular-date-picker.d.ts +1 -1
- package/dist/types/wirekyt-angular-image-cropper.d.ts +122 -0
- package/dist/types/wirekyt-angular-image-cropper.d.ts.map +1 -0
- package/dist/types/wirekyt-angular-json-tree-view.d.ts +173 -0
- package/dist/types/wirekyt-angular-json-tree-view.d.ts.map +1 -0
- package/dist/types/wirekyt-angular-marquee.d.ts +111 -0
- package/dist/types/wirekyt-angular-marquee.d.ts.map +1 -0
- package/dist/types/wirekyt-angular-navigation-menu.d.ts +187 -0
- package/dist/types/wirekyt-angular-navigation-menu.d.ts.map +1 -0
- package/dist/types/wirekyt-angular-pagination.d.ts +114 -0
- package/dist/types/wirekyt-angular-pagination.d.ts.map +1 -0
- package/dist/types/wirekyt-angular-portal.d.ts +30 -0
- package/dist/types/wirekyt-angular-portal.d.ts.map +1 -0
- package/dist/types/wirekyt-angular-qr-code.d.ts +109 -0
- package/dist/types/wirekyt-angular-qr-code.d.ts.map +1 -0
- package/dist/types/wirekyt-angular-tree-view.d.ts +278 -0
- package/dist/types/wirekyt-angular-tree-view.d.ts.map +1 -0
- package/dist/types/wirekyt-angular.d.ts +1 -1
- package/package.json +34 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wirekyt-angular-tree-view.mjs","sources":["../../src/components/tree-view/use-context.ts","../../src/components/tree-view/use.ts","../../src/components/tree-view/root.ts","../../src/components/tree-view/root-provider.ts","../../src/components/tree-view/node-provider.ts","../../src/components/tree-view/context.ts","../../src/components/tree-view/node-context.ts","../../src/components/tree-view/node-props.ts","../../src/components/tree-view/branch.ts","../../src/components/tree-view/branch-content.ts","../../src/components/tree-view/branch-control.ts","../../src/components/tree-view/branch-indent-guide.ts","../../src/components/tree-view/branch-indicator.ts","../../src/components/tree-view/branch-text.ts","../../src/components/tree-view/branch-trigger.ts","../../src/components/tree-view/item.ts","../../src/components/tree-view/item-indicator.ts","../../src/components/tree-view/item-text.ts","../../src/components/tree-view/label.ts","../../src/components/tree-view/node-checkbox.ts","../../src/components/tree-view/node-checkbox-indicator.ts","../../src/components/tree-view/node-rename-input.ts","../../src/components/tree-view/tree.ts","../../src/components/tree-view/wirekyt-angular-tree-view.ts"],"sourcesContent":["import type { TreeNode } from \"@wirekyt/dom/collection\";\n\nimport { InjectionToken, type Signal, inject } from \"@angular/core\";\n\nimport type { TreeViewNodeProps, TreeViewNodeState } from \"./types\";\nimport type { UseTreeViewReturn } from \"./use\";\n\nexport interface TreeViewRootContext<T extends TreeNode = TreeNode> extends UseTreeViewReturn<T> {\n readonly lazyMount: Signal<boolean>;\n readonly unmountOnExit: Signal<boolean>;\n}\n\nexport const TREE_VIEW_CONTEXT = new InjectionToken<TreeViewRootContext>(\"TREE_VIEW_CONTEXT\");\n\nexport function injectTreeViewContext<T extends TreeNode = TreeNode>(): TreeViewRootContext<T> {\n return inject(TREE_VIEW_CONTEXT) as TreeViewRootContext<T>;\n}\n\nexport type UseTreeViewNodeContext = Signal<TreeViewNodeState>;\nexport type UseTreeViewNodePropsContext<T extends TreeNode = TreeNode> = Signal<\n TreeViewNodeProps & { node: T }\n>;\n\nexport const TREE_VIEW_NODE_CONTEXT = new InjectionToken<UseTreeViewNodeContext>(\n \"TREE_VIEW_NODE_CONTEXT\",\n);\n\nexport function injectTreeViewNodeContext(): UseTreeViewNodeContext {\n return inject(TREE_VIEW_NODE_CONTEXT);\n}\n\nexport const TREE_VIEW_NODE_PROPS_CONTEXT = new InjectionToken<UseTreeViewNodePropsContext>(\n \"TREE_VIEW_NODE_PROPS_CONTEXT\",\n);\n\nexport function injectTreeViewNodePropsContext<\n T extends TreeNode = TreeNode,\n>(): UseTreeViewNodePropsContext<T> {\n return inject(TREE_VIEW_NODE_PROPS_CONTEXT) as UseTreeViewNodePropsContext<T>;\n}\n","import type { Machine } from \"@wirekyt/dom\";\nimport type { TreeCollection, TreeNode } from \"@wirekyt/dom/collection\";\nimport type { PropTypes } from \"@wirekyt/dom/types\";\n\nimport {\n createId,\n injectEnvironment,\n injectLocale,\n useMachine,\n type UseMachineReturn,\n} from \"@wirekyt/angular\";\nimport * as treeView from \"@wirekyt/dom/machines/tree-view\";\n\ntype OptionalId<T extends { id?: string | undefined }> = Omit<T, \"id\"> & { id?: string };\n\nexport interface UseTreeViewProps<T extends TreeNode = TreeNode> extends OptionalId<\n Omit<treeView.Props<T>, \"dir\" | \"getRootNode\" | \"collection\">\n> {\n collection: TreeCollection<T>;\n}\n\nexport type UseTreeViewApi<T extends TreeNode = TreeNode> = treeView.Api<PropTypes, T>;\n\nexport type UseTreeViewReturn<T extends TreeNode = TreeNode> = UseMachineReturn<\n treeView.Service<T>[\"state\"],\n UseTreeViewApi<T>,\n treeView.Service<T>\n>;\n\nexport interface UseTreeViewOptions<T extends TreeNode = TreeNode> {\n context: () => UseTreeViewProps<T>;\n}\n\ntype TreeViewContext = Record<string, unknown>;\ntype TreeViewSchema<T extends TreeNode> =\n treeView.Machine<T> extends Machine<infer TSchema> ? TSchema : never;\n\nexport function useTreeView<T extends TreeNode = TreeNode>(\n options: UseTreeViewOptions<T>,\n): UseTreeViewReturn<T> {\n const locale = injectLocale();\n const environment = injectEnvironment();\n const fallbackId = createId();\n\n return useMachine<TreeViewSchema<T>, UseTreeViewApi<T>>({\n machine: treeView.machine as unknown as Machine<TreeViewSchema<T>>,\n context: () => {\n const props = options.context();\n return {\n ...props,\n dir: locale.dir,\n getRootNode: environment.getRootNode,\n id: props.id ?? fallbackId,\n } as TreeViewContext;\n },\n connect: (service, normalize) =>\n treeView.connect(service as unknown as treeView.Service<T>, normalize) as UseTreeViewApi<T>,\n }) as UseTreeViewReturn<T>;\n}\n","import type * as treeView from \"@wirekyt/dom/machines/tree-view\";\n\nimport {\n DestroyRef,\n Directive,\n ElementRef,\n EnvironmentInjector,\n Injector,\n type ProviderToken,\n Renderer2,\n booleanAttribute,\n forwardRef,\n inject,\n input,\n model,\n output,\n type InputSignal,\n type InputSignalWithTransform,\n type ModelSignal,\n type OutputEmitterRef,\n type Signal,\n} from \"@angular/core\";\nimport { bindProps, buildRootCarrier, type ContextCarrier } from \"@wirekyt/angular\";\nimport { TreeCollection, type TreeNode } from \"@wirekyt/dom/collection\";\n\nimport type {\n TreeViewCheckedChangeDetails,\n TreeViewElementIds,\n TreeViewExpandedChangeDetails,\n TreeViewFocusChangeDetails,\n TreeViewIntlTranslations,\n TreeViewLoadChildrenCompleteDetails,\n TreeViewLoadChildrenDetails,\n TreeViewLoadChildrenErrorDetails,\n TreeViewRenameCompleteDetails,\n TreeViewRenameStartDetails,\n TreeViewScrollToIndexDetails,\n TreeViewSelectionChangeDetails,\n} from \"./types\";\n\nimport { useTreeView, type UseTreeViewApi } from \"./use\";\nimport { TREE_VIEW_CONTEXT, type TreeViewRootContext } from \"./use-context\";\n\nconst optionalBooleanAttribute = (value: unknown): boolean | undefined =>\n value === undefined || value === null ? undefined : booleanAttribute(value);\n\n@Directive({\n selector: \"[tree-view-root]\",\n standalone: true,\n exportAs: \"treeViewRoot\",\n providers: [{ provide: TREE_VIEW_CONTEXT, useExisting: forwardRef(() => TreeViewRoot) }],\n})\nexport class TreeViewRoot<T extends TreeNode = TreeNode> implements TreeViewRootContext<T> {\n readonly id: InputSignal<string | undefined> = input<string | undefined>(undefined);\n readonly ids: InputSignal<Partial<TreeViewElementIds> | undefined> = input<\n Partial<TreeViewElementIds> | undefined\n >(undefined);\n readonly collection: InputSignal<TreeCollection<T>> = input.required<TreeCollection<T>>();\n readonly expandedValue: ModelSignal<string[] | undefined> = model<string[] | undefined>(\n undefined,\n );\n readonly defaultExpandedValue: InputSignal<string[] | undefined> = input<string[] | undefined>(\n undefined,\n );\n readonly selectedValue: ModelSignal<string[] | undefined> = model<string[] | undefined>(\n undefined,\n );\n readonly defaultSelectedValue: InputSignal<string[] | undefined> = input<string[] | undefined>(\n undefined,\n );\n readonly checkedValue: ModelSignal<string[] | undefined> = model<string[] | undefined>(undefined);\n readonly defaultCheckedValue: InputSignal<string[] | undefined> = input<string[] | undefined>(\n undefined,\n );\n readonly focusedValue: ModelSignal<string | null | undefined> = model<string | null | undefined>(\n undefined,\n );\n readonly defaultFocusedValue: InputSignal<string | null | undefined> = input<\n string | null | undefined\n >(undefined);\n readonly expandOnClick: InputSignalWithTransform<boolean | undefined, unknown> = input<\n boolean | undefined,\n unknown\n >(undefined, { transform: optionalBooleanAttribute });\n readonly typeahead: InputSignalWithTransform<boolean | undefined, unknown> = input<\n boolean | undefined,\n unknown\n >(undefined, { transform: optionalBooleanAttribute });\n readonly lazyMount: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n readonly unmountOnExit: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n readonly selectionMode: InputSignal<\"single\" | \"multiple\" | undefined> = input<\n \"single\" | \"multiple\" | undefined\n >(undefined);\n readonly translations: InputSignal<TreeViewIntlTranslations | undefined> = input<\n TreeViewIntlTranslations | undefined\n >(undefined);\n readonly loadChildren: InputSignal<\n ((details: TreeViewLoadChildrenDetails<T>) => Promise<T[]>) | undefined\n > = input<((details: TreeViewLoadChildrenDetails<T>) => Promise<T[]>) | undefined>(undefined);\n readonly canRename: InputSignal<((node: T, indexPath: number[]) => boolean) | undefined> = input<\n ((node: T, indexPath: number[]) => boolean) | undefined\n >(undefined);\n readonly scrollToIndexFn: InputSignal<\n ((details: TreeViewScrollToIndexDetails<T>) => void) | undefined\n > = input<((details: TreeViewScrollToIndexDetails<T>) => void) | undefined>(undefined);\n\n readonly expandedChange: OutputEmitterRef<TreeViewExpandedChangeDetails<T>> =\n output<TreeViewExpandedChangeDetails<T>>();\n readonly selectionChange: OutputEmitterRef<TreeViewSelectionChangeDetails<T>> =\n output<TreeViewSelectionChangeDetails<T>>();\n readonly checkedChange: OutputEmitterRef<TreeViewCheckedChangeDetails> =\n output<TreeViewCheckedChangeDetails>();\n readonly focusChange: OutputEmitterRef<TreeViewFocusChangeDetails<T>> =\n output<TreeViewFocusChangeDetails<T>>();\n readonly loadChildrenComplete: OutputEmitterRef<TreeViewLoadChildrenCompleteDetails<T>> =\n output<TreeViewLoadChildrenCompleteDetails<T>>();\n readonly loadChildrenError: OutputEmitterRef<TreeViewLoadChildrenErrorDetails<T>> =\n output<TreeViewLoadChildrenErrorDetails<T>>();\n readonly renameStart: OutputEmitterRef<TreeViewRenameStartDetails<T>> =\n output<TreeViewRenameStartDetails<T>>();\n readonly beforeRename: OutputEmitterRef<TreeViewRenameCompleteDetails> =\n output<TreeViewRenameCompleteDetails>();\n readonly renameComplete: OutputEmitterRef<TreeViewRenameCompleteDetails> =\n output<TreeViewRenameCompleteDetails>();\n\n private readonly fallbackCollection = new TreeCollection<T>({\n rootNode: { id: \"__wirekyt_tree_view_root__\" } as unknown as T,\n nodeToValue: () => \"__wirekyt_tree_view_root__\",\n nodeToString: () => \"\",\n nodeToChildren: () => [],\n });\n\n private readCollection(): TreeCollection<T> {\n try {\n return this.collection();\n } catch {\n return this.fallbackCollection;\n }\n }\n\n private readonly machine = useTreeView<T>({\n context: () => ({\n id: this.id(),\n ids: this.ids(),\n collection: this.readCollection(),\n expandedValue: this.expandedValue(),\n defaultExpandedValue: this.defaultExpandedValue(),\n selectedValue: this.selectedValue(),\n defaultSelectedValue: this.defaultSelectedValue(),\n checkedValue: this.checkedValue(),\n defaultCheckedValue: this.defaultCheckedValue(),\n focusedValue: this.focusedValue(),\n defaultFocusedValue: this.defaultFocusedValue(),\n expandOnClick: this.expandOnClick(),\n typeahead: this.typeahead(),\n selectionMode: this.selectionMode(),\n translations: this.translations(),\n loadChildren: this.loadChildren(),\n canRename: this.canRename(),\n scrollToIndexFn: this.scrollToIndexFn(),\n onExpandedChange: (details) => {\n if (!arraysShallowEqual(this.expandedValue(), details.expandedValue)) {\n this.expandedValue.set([...details.expandedValue]);\n }\n this.expandedChange.emit(details);\n },\n onSelectionChange: (details) => {\n if (!arraysShallowEqual(this.selectedValue(), details.selectedValue)) {\n this.selectedValue.set([...details.selectedValue]);\n }\n this.selectionChange.emit(details);\n },\n onCheckedChange: (details) => {\n if (!arraysShallowEqual(this.checkedValue(), details.checkedValue)) {\n this.checkedValue.set([...details.checkedValue]);\n }\n this.checkedChange.emit(details);\n },\n onFocusChange: (details) => {\n if (this.focusedValue() !== details.focusedValue) {\n this.focusedValue.set(details.focusedValue);\n }\n this.focusChange.emit(details);\n },\n onLoadChildrenComplete: (details) => {\n this.loadChildrenComplete.emit(details);\n },\n onLoadChildrenError: (details) => {\n this.loadChildrenError.emit(details);\n },\n onRenameStart: (details) => {\n this.renameStart.emit(details);\n },\n onBeforeRename: (details) => {\n this.beforeRename.emit(details);\n const renameDetails = details as unknown as { node: T; indexPath: number[] };\n return this.canRename()?.(renameDetails.node, renameDetails.indexPath) ?? true;\n },\n onRenameComplete: (details) => {\n this.renameComplete.emit(details);\n },\n }),\n });\n\n readonly state: Signal<treeView.Service<T>[\"state\"]> = this.machine.state;\n readonly api: Signal<UseTreeViewApi<T>> = this.machine.api;\n readonly service: treeView.Service<T> = this.machine.service;\n readonly send: treeView.Service<T>[\"send\"] = this.machine.send;\n\n protected readonly contextCarrier: ContextCarrier<TreeViewRoot<T>> = buildRootCarrier<\n TreeViewRoot<T>\n >({\n root: this,\n rootToken: TREE_VIEW_CONTEXT as ProviderToken<TreeViewRoot<T>>,\n originInjector: inject(Injector),\n environmentInjector: inject(EnvironmentInjector),\n });\n\n constructor() {\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => this.api().getRootProps(),\n });\n }\n\n getContextCarrier(): ContextCarrier<TreeViewRoot<T>> {\n return this.contextCarrier;\n }\n}\n\nfunction arraysShallowEqual(a: string[] | undefined, b: string[] | undefined): boolean {\n if (a === b) return true;\n if (!a || !b) return false;\n if (a.length !== b.length) return false;\n for (let index = 0; index < a.length; index++) {\n if (a[index] !== b[index]) return false;\n }\n return true;\n}\n","import type { TreeNode } from \"@wirekyt/dom/collection\";\nimport type * as treeView from \"@wirekyt/dom/machines/tree-view\";\n\nimport {\n DestroyRef,\n Directive,\n ElementRef,\n EnvironmentInjector,\n Injector,\n type ProviderToken,\n Renderer2,\n booleanAttribute,\n computed,\n forwardRef,\n inject,\n input,\n type InputSignal,\n type InputSignalWithTransform,\n type Signal,\n} from \"@angular/core\";\nimport { bindProps, buildRootCarrier, type ContextCarrier } from \"@wirekyt/angular\";\n\nimport type { UseTreeViewApi, UseTreeViewReturn } from \"./use\";\n\nimport { TREE_VIEW_CONTEXT, type TreeViewRootContext } from \"./use-context\";\n\n@Directive({\n selector: \"[tree-view-root-provider]\",\n standalone: true,\n exportAs: \"treeViewRootProvider\",\n providers: [{ provide: TREE_VIEW_CONTEXT, useExisting: forwardRef(() => TreeViewRootProvider) }],\n})\nexport class TreeViewRootProvider<T extends TreeNode = TreeNode> implements TreeViewRootContext<T> {\n readonly value: InputSignal<UseTreeViewReturn<T>> = input.required<UseTreeViewReturn<T>>();\n readonly lazyMount: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n readonly unmountOnExit: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n readonly state: Signal<treeView.Service<T>[\"state\"]> = computed(() => this.value().state());\n readonly api: Signal<UseTreeViewApi<T>> = computed(() => this.value().api());\n readonly send: treeView.Service<T>[\"send\"] = (event) => this.value().send(event);\n\n get service(): treeView.Service<T> {\n return this.value().service;\n }\n\n protected readonly contextCarrier: ContextCarrier<TreeViewRootProvider<T>> = buildRootCarrier<\n TreeViewRootProvider<T>\n >({\n root: this,\n rootToken: TREE_VIEW_CONTEXT as ProviderToken<TreeViewRootProvider<T>>,\n originInjector: inject(Injector),\n environmentInjector: inject(EnvironmentInjector),\n });\n\n constructor() {\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => this.api().getRootProps(),\n });\n }\n\n getContextCarrier(): ContextCarrier<TreeViewRootProvider<T>> {\n return this.contextCarrier;\n }\n}\n","import type { TreeNode } from \"@wirekyt/dom/collection\";\n\nimport {\n Directive,\n computed,\n forwardRef,\n input,\n type InputSignal,\n type Signal,\n} from \"@angular/core\";\n\nimport type { TreeViewNodeProps, TreeViewNodeState } from \"./types\";\n\nimport {\n TREE_VIEW_NODE_CONTEXT,\n TREE_VIEW_NODE_PROPS_CONTEXT,\n injectTreeViewContext,\n} from \"./use-context\";\n\n@Directive({\n selector: \"[tree-view-node-provider]\",\n standalone: true,\n exportAs: \"treeViewNodeProvider\",\n providers: [\n {\n provide: TREE_VIEW_NODE_CONTEXT,\n useFactory: (provider: TreeViewNodeProvider) => provider.nodeState,\n deps: [forwardRef(() => TreeViewNodeProvider)],\n },\n {\n provide: TREE_VIEW_NODE_PROPS_CONTEXT,\n useFactory: (provider: TreeViewNodeProvider) => provider.nodeProps,\n deps: [forwardRef(() => TreeViewNodeProvider)],\n },\n ],\n})\nexport class TreeViewNodeProvider<T extends TreeNode = TreeNode> {\n readonly node: InputSignal<T> = input.required<T>();\n readonly indexPath: InputSignal<number[]> = input.required<number[]>();\n\n private readonly treeView = injectTreeViewContext<T>();\n readonly nodeProps: Signal<TreeViewNodeProps & { node: T }> = computed(() => ({\n node: this.node(),\n indexPath: this.indexPath(),\n }));\n readonly nodeState: Signal<TreeViewNodeState> = computed(() =>\n this.treeView.api().getNodeState(this.nodeProps()),\n );\n}\n","import {\n DestroyRef,\n Directive,\n TemplateRef,\n ViewContainerRef,\n effect,\n inject,\n} from \"@angular/core\";\n\nimport type { UseTreeViewReturn } from \"./use\";\n\nimport { injectTreeViewContext } from \"./use-context\";\n\nexport interface TreeViewContextTemplate {\n $implicit: UseTreeViewReturn[\"api\"];\n api: UseTreeViewReturn[\"api\"];\n}\n\n@Directive({\n selector: \"[tree-view-context]\",\n standalone: true,\n exportAs: \"treeViewContext\",\n})\nexport class TreeViewContext {\n static ngTemplateContextGuard(\n _directive: TreeViewContext,\n context: unknown,\n ): context is TreeViewContextTemplate {\n void context;\n return true;\n }\n\n private readonly treeView = injectTreeViewContext();\n private readonly templateRef = inject<TemplateRef<TreeViewContextTemplate>>(TemplateRef);\n private readonly viewContainer = inject(ViewContainerRef);\n\n constructor() {\n const view = this.viewContainer.createEmbeddedView(this.templateRef, {\n $implicit: this.treeView.api,\n api: this.treeView.api,\n });\n\n effect(() => {\n this.treeView.api();\n view.detectChanges();\n });\n\n inject(DestroyRef).onDestroy(() => view.destroy());\n }\n}\n","import {\n DestroyRef,\n Directive,\n TemplateRef,\n ViewContainerRef,\n effect,\n inject,\n} from \"@angular/core\";\n\nimport { injectTreeViewNodeContext, type UseTreeViewNodeContext } from \"./use-context\";\n\nexport interface TreeViewNodeContextTemplate {\n $implicit: UseTreeViewNodeContext;\n state: UseTreeViewNodeContext;\n}\n\n@Directive({\n selector: \"[tree-view-node-context]\",\n standalone: true,\n exportAs: \"treeViewNodeContext\",\n})\nexport class TreeViewNodeContext {\n static ngTemplateContextGuard(\n _directive: TreeViewNodeContext,\n context: unknown,\n ): context is TreeViewNodeContextTemplate {\n void context;\n return true;\n }\n\n private readonly state = injectTreeViewNodeContext();\n private readonly templateRef = inject<TemplateRef<TreeViewNodeContextTemplate>>(TemplateRef);\n private readonly viewContainer = inject(ViewContainerRef);\n\n constructor() {\n const view = this.viewContainer.createEmbeddedView(this.templateRef, {\n $implicit: this.state,\n state: this.state,\n });\n\n effect(() => {\n this.state();\n view.detectChanges();\n });\n\n inject(DestroyRef).onDestroy(() => view.destroy());\n }\n}\n","import type { TreeNode } from \"@wirekyt/dom/collection\";\n\nimport { type InputSignal, inject } from \"@angular/core\";\n\nimport type { TreeViewNodeProps } from \"./types\";\n\nimport { TREE_VIEW_NODE_PROPS_CONTEXT, type UseTreeViewNodePropsContext } from \"./use-context\";\n\nexport type TreeViewResolvedNodeProps<T extends TreeNode = TreeNode> = TreeViewNodeProps & {\n node: T;\n};\n\nexport function createTreeViewNodePropsResolver<T extends TreeNode>(\n partName: string,\n node: InputSignal<T | undefined>,\n indexPath: InputSignal<number[] | undefined>,\n): () => TreeViewResolvedNodeProps<T> {\n const provider = inject(TREE_VIEW_NODE_PROPS_CONTEXT, {\n optional: true,\n }) as UseTreeViewNodePropsContext<T> | null;\n\n return () => {\n const explicitNode = node();\n const explicitIndexPath = indexPath();\n if (explicitNode !== undefined && explicitIndexPath !== undefined) {\n return { node: explicitNode, indexPath: explicitIndexPath };\n }\n if (explicitNode === undefined && explicitIndexPath === undefined && provider) {\n return provider();\n }\n throw new Error(\n `${partName} requires [node] and [indexPath] inputs or an ancestor [tree-view-node-provider].`,\n );\n };\n}\n","import type { TreeNode } from \"@wirekyt/dom/collection\";\n\nimport {\n DestroyRef,\n Directive,\n ElementRef,\n Renderer2,\n computed,\n forwardRef,\n inject,\n input,\n type InputSignal,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\nimport {\n COLLAPSIBLE_CONTEXT,\n useCollapsible,\n type UseCollapsibleReturn,\n} from \"@wirekyt/angular/collapsible\";\n\nimport { createTreeViewNodePropsResolver } from \"./node-props\";\nimport { injectTreeViewContext } from \"./use-context\";\n\n@Directive({\n selector: \"[tree-view-branch]\",\n standalone: true,\n exportAs: \"treeViewBranch\",\n providers: [\n {\n provide: COLLAPSIBLE_CONTEXT,\n useFactory: (branch: TreeViewBranch) => branch.collapsible,\n deps: [forwardRef(() => TreeViewBranch)],\n },\n ],\n})\nexport class TreeViewBranch<T extends TreeNode = TreeNode> {\n readonly node: InputSignal<T | undefined> = input<T | undefined>(undefined);\n readonly indexPath: InputSignal<number[] | undefined> = input<number[] | undefined>(undefined);\n\n private readonly context = injectTreeViewContext<T>();\n private readonly nodeProps = createTreeViewNodePropsResolver(\n \"TreeViewBranch\",\n this.node,\n this.indexPath,\n );\n private readonly nodeState = computed(() => this.context.api().getNodeState(this.nodeProps()));\n readonly collapsible: UseCollapsibleReturn = useCollapsible({\n context: () => ({\n open: this.nodeState().expanded,\n ids: { content: this.context.api().getBranchContentProps(this.nodeProps())[\"id\"] },\n lazyMount: this.context.lazyMount(),\n unmountOnExit: this.context.unmountOnExit(),\n }),\n });\n\n constructor() {\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => ({\n ...this.collapsible.api().getRootProps(),\n ...this.context.api().getBranchProps(this.nodeProps()),\n }),\n });\n }\n}\n","import type { TreeNode } from \"@wirekyt/dom/collection\";\n\nimport {\n DestroyRef,\n Directive,\n ElementRef,\n EmbeddedViewRef,\n Renderer2,\n TemplateRef,\n ViewContainerRef,\n effect,\n inject,\n input,\n type InputSignal,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\nimport { injectCollapsibleContext } from \"@wirekyt/angular/collapsible\";\n\nimport { createTreeViewNodePropsResolver } from \"./node-props\";\nimport { injectTreeViewContext } from \"./use-context\";\n\n@Directive({\n selector: \"[tree-view-branch-content]\",\n standalone: true,\n exportAs: \"treeViewBranchContent\",\n})\nexport class TreeViewBranchContent<T extends TreeNode = TreeNode> {\n readonly node: InputSignal<T | undefined> = input<T | undefined>(undefined);\n readonly indexPath: InputSignal<number[] | undefined> = input<number[] | undefined>(undefined);\n\n private readonly context = injectTreeViewContext<T>();\n private readonly collapsible = injectCollapsibleContext();\n private readonly nodeProps = createTreeViewNodePropsResolver(\n \"TreeViewBranchContent\",\n this.node,\n this.indexPath,\n );\n private readonly template = inject(TemplateRef<unknown>);\n private readonly viewContainer = inject(ViewContainerRef);\n private readonly elementRef = { nativeElement: null as HTMLElement | null };\n private view: EmbeddedViewRef<unknown> | undefined;\n\n constructor() {\n effect(() => {\n if (this.collapsible.isUnmounted()) {\n this.elementRef.nativeElement = null;\n this.viewContainer.clear();\n this.view = undefined;\n return;\n }\n\n if (!this.view) {\n this.view = this.viewContainer.createEmbeddedView(this.template);\n this.elementRef.nativeElement =\n this.view.rootNodes.find((node: Node) => node.nodeType === 1) ?? null;\n }\n });\n\n bindProps({\n elementRef: this.elementRef as ElementRef<HTMLElement>,\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => {\n this.collapsible.isUnmounted();\n const branchContentProps = {\n ...this.context.api().getBranchContentProps(this.nodeProps()),\n };\n delete branchContentProps[\"hidden\"];\n delete branchContentProps[\"data-state\"];\n return {\n ...branchContentProps,\n ...this.collapsible.api().getContentProps(),\n };\n },\n });\n }\n}\n","import type { TreeNode } from \"@wirekyt/dom/collection\";\n\nimport {\n DestroyRef,\n Directive,\n ElementRef,\n Renderer2,\n inject,\n input,\n type InputSignal,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { createTreeViewNodePropsResolver } from \"./node-props\";\nimport { injectTreeViewContext } from \"./use-context\";\n\n@Directive({\n selector: \"[tree-view-branch-control]\",\n standalone: true,\n exportAs: \"treeViewBranchControl\",\n})\nexport class TreeViewBranchControl<T extends TreeNode = TreeNode> {\n readonly node: InputSignal<T | undefined> = input<T | undefined>(undefined);\n readonly indexPath: InputSignal<number[] | undefined> = input<number[] | undefined>(undefined);\n\n constructor() {\n const context = injectTreeViewContext<T>();\n const nodeProps = createTreeViewNodePropsResolver(\n \"TreeViewBranchControl\",\n this.node,\n this.indexPath,\n );\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getBranchControlProps(nodeProps()),\n });\n }\n}\n","import type { TreeNode } from \"@wirekyt/dom/collection\";\n\nimport {\n DestroyRef,\n Directive,\n ElementRef,\n Renderer2,\n inject,\n input,\n type InputSignal,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { createTreeViewNodePropsResolver } from \"./node-props\";\nimport { injectTreeViewContext } from \"./use-context\";\n\n@Directive({\n selector: \"[tree-view-branch-indent-guide]\",\n standalone: true,\n exportAs: \"treeViewBranchIndentGuide\",\n})\nexport class TreeViewBranchIndentGuide<T extends TreeNode = TreeNode> {\n readonly node: InputSignal<T | undefined> = input<T | undefined>(undefined);\n readonly indexPath: InputSignal<number[] | undefined> = input<number[] | undefined>(undefined);\n\n constructor() {\n const context = injectTreeViewContext<T>();\n const nodeProps = createTreeViewNodePropsResolver(\n \"TreeViewBranchIndentGuide\",\n this.node,\n this.indexPath,\n );\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getBranchIndentGuideProps(nodeProps()),\n });\n }\n}\n","import type { TreeNode } from \"@wirekyt/dom/collection\";\n\nimport {\n DestroyRef,\n Directive,\n ElementRef,\n Renderer2,\n inject,\n input,\n type InputSignal,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { createTreeViewNodePropsResolver } from \"./node-props\";\nimport { injectTreeViewContext } from \"./use-context\";\n\n@Directive({\n selector: \"[tree-view-branch-indicator]\",\n standalone: true,\n exportAs: \"treeViewBranchIndicator\",\n})\nexport class TreeViewBranchIndicator<T extends TreeNode = TreeNode> {\n readonly node: InputSignal<T | undefined> = input<T | undefined>(undefined);\n readonly indexPath: InputSignal<number[] | undefined> = input<number[] | undefined>(undefined);\n\n constructor() {\n const context = injectTreeViewContext<T>();\n const nodeProps = createTreeViewNodePropsResolver(\n \"TreeViewBranchIndicator\",\n this.node,\n this.indexPath,\n );\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getBranchIndicatorProps(nodeProps()),\n });\n }\n}\n","import type { TreeNode } from \"@wirekyt/dom/collection\";\n\nimport {\n DestroyRef,\n Directive,\n ElementRef,\n Renderer2,\n inject,\n input,\n type InputSignal,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { createTreeViewNodePropsResolver } from \"./node-props\";\nimport { injectTreeViewContext } from \"./use-context\";\n\n@Directive({\n selector: \"[tree-view-branch-text]\",\n standalone: true,\n exportAs: \"treeViewBranchText\",\n})\nexport class TreeViewBranchText<T extends TreeNode = TreeNode> {\n readonly node: InputSignal<T | undefined> = input<T | undefined>(undefined);\n readonly indexPath: InputSignal<number[] | undefined> = input<number[] | undefined>(undefined);\n\n constructor() {\n const context = injectTreeViewContext<T>();\n const nodeProps = createTreeViewNodePropsResolver(\n \"TreeViewBranchText\",\n this.node,\n this.indexPath,\n );\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getBranchTextProps(nodeProps()),\n });\n }\n}\n","import type { TreeNode } from \"@wirekyt/dom/collection\";\n\nimport {\n DestroyRef,\n Directive,\n ElementRef,\n Renderer2,\n inject,\n input,\n type InputSignal,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { createTreeViewNodePropsResolver } from \"./node-props\";\nimport { injectTreeViewContext } from \"./use-context\";\n\n@Directive({\n selector: \"[tree-view-branch-trigger]\",\n standalone: true,\n exportAs: \"treeViewBranchTrigger\",\n})\nexport class TreeViewBranchTrigger<T extends TreeNode = TreeNode> {\n readonly node: InputSignal<T | undefined> = input<T | undefined>(undefined);\n readonly indexPath: InputSignal<number[] | undefined> = input<number[] | undefined>(undefined);\n\n constructor() {\n const context = injectTreeViewContext<T>();\n const nodeProps = createTreeViewNodePropsResolver(\n \"TreeViewBranchTrigger\",\n this.node,\n this.indexPath,\n );\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getBranchTriggerProps(nodeProps()),\n });\n }\n}\n","import type { TreeNode } from \"@wirekyt/dom/collection\";\n\nimport {\n DestroyRef,\n Directive,\n ElementRef,\n Renderer2,\n inject,\n input,\n type InputSignal,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { createTreeViewNodePropsResolver } from \"./node-props\";\nimport { injectTreeViewContext } from \"./use-context\";\n\n@Directive({\n selector: \"[tree-view-item]\",\n standalone: true,\n exportAs: \"treeViewItem\",\n})\nexport class TreeViewItem<T extends TreeNode = TreeNode> {\n readonly node: InputSignal<T | undefined> = input<T | undefined>(undefined);\n readonly indexPath: InputSignal<number[] | undefined> = input<number[] | undefined>(undefined);\n\n constructor() {\n const context = injectTreeViewContext<T>();\n const nodeProps = createTreeViewNodePropsResolver(\"TreeViewItem\", this.node, this.indexPath);\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getItemProps(nodeProps()),\n });\n }\n}\n","import type { TreeNode } from \"@wirekyt/dom/collection\";\n\nimport {\n DestroyRef,\n Directive,\n ElementRef,\n Renderer2,\n inject,\n input,\n type InputSignal,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { createTreeViewNodePropsResolver } from \"./node-props\";\nimport { injectTreeViewContext } from \"./use-context\";\n\n@Directive({\n selector: \"[tree-view-item-indicator]\",\n standalone: true,\n exportAs: \"treeViewItemIndicator\",\n})\nexport class TreeViewItemIndicator<T extends TreeNode = TreeNode> {\n readonly node: InputSignal<T | undefined> = input<T | undefined>(undefined);\n readonly indexPath: InputSignal<number[] | undefined> = input<number[] | undefined>(undefined);\n\n constructor() {\n const context = injectTreeViewContext<T>();\n const nodeProps = createTreeViewNodePropsResolver(\n \"TreeViewItemIndicator\",\n this.node,\n this.indexPath,\n );\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getItemIndicatorProps(nodeProps()),\n });\n }\n}\n","import type { TreeNode } from \"@wirekyt/dom/collection\";\n\nimport {\n DestroyRef,\n Directive,\n ElementRef,\n Renderer2,\n inject,\n input,\n type InputSignal,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { createTreeViewNodePropsResolver } from \"./node-props\";\nimport { injectTreeViewContext } from \"./use-context\";\n\n@Directive({\n selector: \"[tree-view-item-text]\",\n standalone: true,\n exportAs: \"treeViewItemText\",\n})\nexport class TreeViewItemText<T extends TreeNode = TreeNode> {\n readonly node: InputSignal<T | undefined> = input<T | undefined>(undefined);\n readonly indexPath: InputSignal<number[] | undefined> = input<number[] | undefined>(undefined);\n\n constructor() {\n const context = injectTreeViewContext<T>();\n const nodeProps = createTreeViewNodePropsResolver(\n \"TreeViewItemText\",\n this.node,\n this.indexPath,\n );\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getItemTextProps(nodeProps()),\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectTreeViewContext } from \"./use-context\";\n\n@Directive({\n selector: \"[tree-view-label]\",\n standalone: true,\n exportAs: \"treeViewLabel\",\n})\nexport class TreeViewLabel {\n constructor() {\n const context = injectTreeViewContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getLabelProps(),\n });\n }\n}\n","import type { TreeNode } from \"@wirekyt/dom/collection\";\n\nimport {\n DestroyRef,\n Directive,\n ElementRef,\n Renderer2,\n inject,\n input,\n type InputSignal,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { createTreeViewNodePropsResolver } from \"./node-props\";\nimport { injectTreeViewContext } from \"./use-context\";\n\n@Directive({\n selector: \"[tree-view-node-checkbox]\",\n standalone: true,\n exportAs: \"treeViewNodeCheckbox\",\n})\nexport class TreeViewNodeCheckbox<T extends TreeNode = TreeNode> {\n readonly node: InputSignal<T | undefined> = input<T | undefined>(undefined);\n readonly indexPath: InputSignal<number[] | undefined> = input<number[] | undefined>(undefined);\n\n constructor() {\n const context = injectTreeViewContext<T>();\n const nodeProps = createTreeViewNodePropsResolver(\n \"TreeViewNodeCheckbox\",\n this.node,\n this.indexPath,\n );\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getNodeCheckboxProps(nodeProps()),\n });\n }\n}\n","import type { TreeNode } from \"@wirekyt/dom/collection\";\n\nimport {\n Directive,\n HostBinding,\n computed,\n input,\n type InputSignal,\n type Signal,\n} from \"@angular/core\";\n\nimport type { TreeViewCheckedState } from \"./types\";\n\nimport { createTreeViewNodePropsResolver } from \"./node-props\";\nimport { injectTreeViewContext } from \"./use-context\";\n\ntype TreeViewNodeCheckboxIndicatorState = \"checked\" | \"unchecked\" | \"indeterminate\";\n\n@Directive({\n selector: \"[tree-view-node-checkbox-indicator]\",\n standalone: true,\n exportAs: \"treeViewNodeCheckboxIndicator\",\n})\nexport class TreeViewNodeCheckboxIndicator<T extends TreeNode = TreeNode> {\n readonly node: InputSignal<T | undefined> = input<T | undefined>(undefined);\n readonly indexPath: InputSignal<number[] | undefined> = input<number[] | undefined>(undefined);\n readonly state: InputSignal<TreeViewNodeCheckboxIndicatorState | undefined> = input<\n TreeViewNodeCheckboxIndicatorState | undefined\n >(undefined);\n\n private readonly context = injectTreeViewContext<T>();\n private readonly nodeProps = createTreeViewNodePropsResolver(\n \"TreeViewNodeCheckboxIndicator\",\n this.node,\n this.indexPath,\n );\n readonly checked: Signal<TreeViewCheckedState> = computed(\n () => this.context.api().getNodeState(this.nodeProps()).checked,\n );\n readonly dataState: Signal<TreeViewNodeCheckboxIndicatorState> = computed(() => {\n const checked = this.checked();\n if (checked === \"indeterminate\") return \"indeterminate\";\n return checked ? \"checked\" : \"unchecked\";\n });\n\n @HostBinding(\"attr.data-state\")\n protected get hostDataState(): TreeViewNodeCheckboxIndicatorState {\n return this.dataState();\n }\n\n @HostBinding(\"attr.aria-hidden\")\n protected readonly ariaHidden = \"true\";\n\n @HostBinding(\"hidden\")\n protected get hidden(): boolean {\n const state = this.state();\n return state !== undefined && this.dataState() !== state;\n }\n}\n","import type { TreeNode } from \"@wirekyt/dom/collection\";\n\nimport {\n DestroyRef,\n Directive,\n ElementRef,\n Renderer2,\n inject,\n input,\n type InputSignal,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { createTreeViewNodePropsResolver } from \"./node-props\";\nimport { injectTreeViewContext } from \"./use-context\";\n\n@Directive({\n selector: \"[tree-view-node-rename-input]\",\n standalone: true,\n exportAs: \"treeViewNodeRenameInput\",\n})\nexport class TreeViewNodeRenameInput<T extends TreeNode = TreeNode> {\n readonly node: InputSignal<T | undefined> = input<T | undefined>(undefined);\n readonly indexPath: InputSignal<number[] | undefined> = input<number[] | undefined>(undefined);\n\n constructor() {\n const context = injectTreeViewContext<T>();\n const nodeProps = createTreeViewNodePropsResolver(\n \"TreeViewNodeRenameInput\",\n this.node,\n this.indexPath,\n );\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getNodeRenameInputProps(nodeProps()),\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectTreeViewContext } from \"./use-context\";\n\n@Directive({\n selector: \"[tree-view-tree]\",\n standalone: true,\n exportAs: \"treeViewTree\",\n})\nexport class TreeViewTree {\n constructor() {\n const context = injectTreeViewContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getTreeProps(),\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -172,7 +172,7 @@ function bindProps(options) {
|
|
|
172
172
|
}
|
|
173
173
|
prev = {};
|
|
174
174
|
};
|
|
175
|
-
effect(() => {
|
|
175
|
+
const effectRef = effect(() => {
|
|
176
176
|
const el = elementRef.nativeElement;
|
|
177
177
|
const next = (options.props() ?? {});
|
|
178
178
|
if (el !== prevElement) {
|
|
@@ -258,11 +258,19 @@ function bindProps(options) {
|
|
|
258
258
|
removeProperty(el, key);
|
|
259
259
|
}
|
|
260
260
|
prev = { ...next };
|
|
261
|
-
}
|
|
262
|
-
|
|
261
|
+
}, /* @ts-ignore */
|
|
262
|
+
...(ngDevMode ? [{ debugName: "effectRef" }] : /* istanbul ignore next */ []));
|
|
263
|
+
let destroyed = false;
|
|
264
|
+
const destroy = () => {
|
|
265
|
+
if (destroyed)
|
|
266
|
+
return;
|
|
267
|
+
destroyed = true;
|
|
268
|
+
effectRef.destroy();
|
|
263
269
|
resetElement(prevElement);
|
|
264
270
|
prevElement = null;
|
|
265
|
-
}
|
|
271
|
+
};
|
|
272
|
+
destroyRef.onDestroy(destroy);
|
|
273
|
+
return destroy;
|
|
266
274
|
}
|
|
267
275
|
|
|
268
276
|
const normalizeProps = createNormalizer((v) => v);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wirekyt-angular.mjs","sources":["../../src/core/bind-props.ts","../../src/core/normalize-props.ts","../../src/core/machine.ts","../../src/providers/environment/environment.ts","../../src/providers/interaction/interaction.ts","../../src/providers/locale/locale.ts","../../src/utils/context-carrier.ts","../../src/utils/forms-diagnostics.ts","../../src/utils/control-value-accessor.ts","../../src/utils/id.ts","../../src/wirekyt-angular.ts"],"sourcesContent":["import {\n RendererStyleFlags2,\n effect,\n type DestroyRef,\n type ElementRef,\n type Renderer2,\n} from \"@angular/core\";\n\ntype WireProps = Record<string, unknown>;\n\nexport interface BindPropsOptions {\n elementRef: ElementRef<HTMLElement>;\n renderer: Renderer2;\n destroyRef: DestroyRef;\n props: () => WireProps | undefined;\n}\n\nconst isAttributeKey = (key: string): boolean =>\n key === \"role\" ||\n key === \"id\" ||\n key === \"tabindex\" ||\n key.startsWith(\"aria-\") ||\n key.startsWith(\"data-\");\n\nconst eventNameFromHandlerKey = (key: string, el: HTMLElement): string | undefined => {\n if (!/^on[A-Z]/.test(key)) return undefined;\n if (key === \"onDoubleClick\") return \"dblclick\";\n if (key === \"onChange\") {\n const tagName = el.tagName.toLowerCase();\n if (tagName === \"textarea\") return \"input\";\n if (tagName === \"input\") {\n const type = (el as HTMLInputElement).type;\n return type === \"checkbox\" || type === \"radio\" || type === \"file\" ? \"change\" : \"input\";\n }\n if (tagName === \"select\") return \"change\";\n }\n return key.slice(2).toLowerCase();\n};\n\nconst isClassKey = (key: string): boolean => key === \"class\" || key === \"className\";\n\nconst isStyleKey = (key: string): boolean => key === \"style\";\n\nconst tokenizeClassString = (value: string): string[] =>\n value.split(/\\s+/).filter((token) => token.length > 0);\n\nconst parseStyleString = (value: string): Record<string, string> => {\n const result: Record<string, string> = {};\n for (const part of value.split(\";\")) {\n const trimmed = part.trim();\n if (trimmed.length === 0) continue;\n const colon = trimmed.indexOf(\":\");\n if (colon < 0) continue;\n const name = trimmed.slice(0, colon).trim();\n const styleValue = trimmed.slice(colon + 1).trim();\n if (name.length === 0) continue;\n result[name] = styleValue;\n }\n return result;\n};\n\nconst computeClassSet = (value: unknown): Set<string> => {\n const result = new Set<string>();\n if (value == null || value === false) return result;\n if (typeof value === \"string\") {\n for (const token of tokenizeClassString(value)) result.add(token);\n return result;\n }\n if (Array.isArray(value)) {\n for (const item of value) {\n if (typeof item === \"string\" && item.length > 0) result.add(item);\n }\n return result;\n }\n if (typeof value === \"object\") {\n const entries = value as Record<string, unknown>;\n for (const key of Object.keys(entries)) {\n if (entries[key]) result.add(key);\n }\n return result;\n }\n return result;\n};\n\nconst computeStyleMap = (value: unknown): Map<string, string> => {\n const result = new Map<string, string>();\n if (value == null || value === false) return result;\n if (typeof value === \"string\") {\n for (const [name, styleValue] of Object.entries(parseStyleString(value))) {\n result.set(name, styleValue);\n }\n return result;\n }\n if (typeof value === \"object\") {\n const entries = value as Record<string, unknown>;\n for (const key of Object.keys(entries)) {\n const styleValue = entries[key];\n if (styleValue == null || styleValue === false) continue;\n result.set(key, String(styleValue));\n }\n return result;\n }\n return result;\n};\n\nexport function bindProps(options: BindPropsOptions): void {\n const { elementRef, renderer, destroyRef } = options;\n\n let prev: Record<string, unknown> = {};\n let prevElement: HTMLElement | null = null;\n const listeners = new Map<string, { eventName: string; dispose: () => void }>();\n const appliedClasses = new Set<string>();\n const appliedStyles = new Set<string>();\n\n const removeListener = (key: string): void => {\n const listener = listeners.get(key);\n if (!listener) return;\n listener.dispose();\n listeners.delete(key);\n };\n\n const removeAttribute = (el: HTMLElement, key: string): void => {\n renderer.removeAttribute(el, key);\n };\n\n const removeProperty = (el: HTMLElement, key: string): void => {\n renderer.setProperty(el, key, \"\");\n };\n\n const applyClasses = (el: HTMLElement, nextValue: unknown): void => {\n const nextSet = computeClassSet(nextValue);\n for (const token of appliedClasses) {\n if (!nextSet.has(token)) {\n renderer.removeClass(el, token);\n appliedClasses.delete(token);\n }\n }\n for (const token of nextSet) {\n if (!appliedClasses.has(token)) {\n renderer.addClass(el, token);\n appliedClasses.add(token);\n }\n }\n };\n\n const removeAllClasses = (el: HTMLElement): void => {\n for (const token of appliedClasses) {\n renderer.removeClass(el, token);\n }\n appliedClasses.clear();\n };\n\n const styleFlags = (name: string): RendererStyleFlags2 | undefined =>\n name.startsWith(\"--\") ? RendererStyleFlags2.DashCase : undefined;\n\n const applyStyles = (el: HTMLElement, nextValue: unknown): void => {\n const nextMap = computeStyleMap(nextValue);\n for (const name of appliedStyles) {\n if (!nextMap.has(name)) {\n renderer.removeStyle(el, name, styleFlags(name));\n appliedStyles.delete(name);\n }\n }\n for (const [name, styleValue] of nextMap) {\n renderer.setStyle(el, name, styleValue, styleFlags(name));\n appliedStyles.add(name);\n }\n };\n\n const removeAllStyles = (el: HTMLElement): void => {\n for (const name of appliedStyles) {\n renderer.removeStyle(el, name, styleFlags(name));\n }\n appliedStyles.clear();\n };\n\n const resetElement = (el: HTMLElement | null): void => {\n for (const { dispose } of listeners.values()) dispose();\n listeners.clear();\n if (el) {\n removeAllClasses(el);\n removeAllStyles(el);\n } else {\n appliedClasses.clear();\n appliedStyles.clear();\n }\n prev = {};\n };\n\n effect(() => {\n const el = elementRef.nativeElement;\n const next = (options.props() ?? {}) as Record<string, unknown>;\n if (el !== prevElement) {\n resetElement(prevElement);\n prevElement = el;\n }\n if (!el) return;\n\n for (const key of Object.keys(next)) {\n const nextValue = next[key];\n const prevValue = prev[key];\n\n const eventName = eventNameFromHandlerKey(key, el);\n if (eventName && typeof nextValue === \"function\") {\n const listener = listeners.get(key);\n if (prevValue === nextValue && listener?.eventName === eventName) continue;\n removeListener(key);\n const dispose = renderer.listen(el, eventName, nextValue as (event: Event) => void);\n listeners.set(key, { eventName, dispose });\n continue;\n }\n if (eventName && listeners.has(key) && typeof nextValue !== \"function\") {\n removeListener(key);\n if (nextValue == null || nextValue === false) continue;\n }\n\n if (isClassKey(key)) {\n if (Object.is(prevValue, nextValue)) continue;\n applyClasses(el, nextValue);\n continue;\n }\n\n if (isStyleKey(key)) {\n if (Object.is(prevValue, nextValue)) continue;\n applyStyles(el, nextValue);\n continue;\n }\n\n if (isAttributeKey(key)) {\n const remove = nextValue == null || (nextValue === false && !key.startsWith(\"aria-\"));\n if (remove) {\n if (prevValue !== undefined && prevValue !== null && prevValue !== false) {\n removeAttribute(el, key);\n }\n continue;\n }\n if (Object.is(prevValue, nextValue)) continue;\n renderer.setAttribute(el, key, String(nextValue));\n continue;\n }\n\n if (nextValue == null) {\n if (prevValue !== undefined && prevValue !== null) {\n removeProperty(el, key);\n }\n continue;\n }\n\n if (Object.is(prevValue, nextValue)) continue;\n renderer.setProperty(el, key, nextValue);\n }\n\n for (const key of Object.keys(prev)) {\n if (key in next) continue;\n const prevValue = prev[key];\n\n const eventName = eventNameFromHandlerKey(key, el);\n if (eventName && typeof prevValue === \"function\") {\n removeListener(key);\n continue;\n }\n\n if (isClassKey(key)) {\n applyClasses(el, undefined);\n continue;\n }\n\n if (isStyleKey(key)) {\n applyStyles(el, undefined);\n continue;\n }\n\n if (isAttributeKey(key)) {\n removeAttribute(el, key);\n continue;\n }\n\n removeProperty(el, key);\n }\n\n prev = { ...next };\n });\n\n destroyRef.onDestroy(() => {\n resetElement(prevElement);\n prevElement = null;\n });\n}\n","import { createNormalizer, type JSX } from \"@wirekyt/dom/types\";\n\nexport type PropTypes = JSX.IntrinsicElements & {\n element: JSX.HTMLAttributes<HTMLElement> & Record<string, unknown>;\n style: JSX.CSSProperties;\n};\n\nexport const normalizeProps = createNormalizer<PropTypes>((v) => v);\n","import {\n DestroyRef,\n afterNextRender,\n computed,\n effect,\n inject,\n signal,\n untracked,\n type EffectRef,\n type WritableSignal,\n} from \"@angular/core\";\nimport {\n INIT_STATE,\n MachineStatus,\n createScope,\n findTransition,\n getExitEnterStates,\n hasTag,\n matchesState,\n resolveStateValue,\n type Bindable,\n type BindableParams,\n type MachineSchema,\n type Service,\n type Transition,\n} from \"@wirekyt/dom\";\nimport {\n callAll,\n compact,\n ensure,\n isEqual,\n isFunction,\n isString,\n toArray,\n warn,\n} from \"@wirekyt/dom/utils\";\n\nimport type { UseMachineOptions, UseMachineReturn } from \"./types\";\n\nimport { normalizeProps } from \"./normalize-props\";\n\ntype AnyFn = (...args: unknown[]) => unknown;\ntype EventFor<TSchema extends MachineSchema> = TSchema[\"event\"] & { type: string };\ntype StateFor<TSchema extends MachineSchema> = Service<TSchema>[\"state\"];\ntype ExtendedService<TSchema extends MachineSchema> = Service<TSchema> & {\n subscribe: (listener: (state: StateFor<TSchema>) => void) => () => void;\n setContext: (patch: Record<string, unknown>) => void;\n stop: () => void;\n};\n\nfunction isPlainFunction(value: unknown): value is AnyFn {\n return typeof value === \"function\";\n}\n\nconst flush = (fn: VoidFunction): void => {\n queueMicrotask(fn);\n};\n\nexport function useMachine<TSchema extends MachineSchema, TApi>(\n options: UseMachineOptions<TSchema, TApi>,\n): UseMachineReturn<StateFor<TSchema>, TApi, Service<TSchema>> {\n const destroyRef = inject(DestroyRef);\n const machine = options.machine;\n\n const latestFns = new Map<string, AnyFn>();\n const wrappers = new Map<string, AnyFn>();\n\n const resolveValue = (key: string, value: unknown): unknown => {\n if (!isPlainFunction(value)) return value;\n latestFns.set(key, value);\n let wrapper = wrappers.get(key);\n if (!wrapper) {\n wrapper = (...args: unknown[]) => latestFns.get(key)?.(...args);\n wrappers.set(key, wrapper);\n }\n return wrapper;\n };\n\n const resolveContext = (raw: Record<string, unknown>): Record<string, unknown> => {\n const resolved: Record<string, unknown> = {};\n for (const key of Object.keys(raw)) {\n resolved[key] = resolveValue(key, raw[key]);\n }\n return resolved;\n };\n\n const initialContextRaw = options.context() as Record<string, unknown>;\n const initialContext = resolveContext(initialContextRaw);\n const currentProps = signal<Record<string, unknown>>(initialContext);\n\n const scope = computed(() => {\n const props = currentProps() as { id?: unknown; ids?: unknown; getRootNode?: unknown };\n const getRootNode = props.getRootNode as (() => ShadowRoot | Document | Element) | undefined;\n return createScope({\n id: props.id as string | undefined,\n ids: props.ids as Record<string, unknown> | undefined,\n getRootNode: getRootNode ?? (() => document),\n });\n });\n\n const props = computed(() => {\n return (\n machine.props?.({ props: compact(currentProps()) as never, scope: scope() }) ?? currentProps()\n );\n });\n\n const prop = ((key: string) => props()[key]) as Service<TSchema>[\"prop\"];\n\n const createBindable = <T>(params: () => BindableParams<T>): Bindable<T> => {\n const initialParams = params();\n const initial =\n initialParams.value !== undefined ? initialParams.value : initialParams.defaultValue;\n const value = signal<T | undefined>(initial);\n const ref = { current: initial };\n let defaultEffectInitialized = false;\n let defaultHydrationChecked = false;\n let userTouched = false;\n\n effect(() => {\n const nextParams = params();\n const nextDefault = nextParams.defaultValue;\n const controlled = nextParams.value !== undefined;\n if (!defaultEffectInitialized) {\n defaultEffectInitialized = true;\n return;\n }\n if (userTouched || controlled || defaultHydrationChecked) return;\n defaultHydrationChecked = true;\n if (nextDefault === undefined) return;\n if (!(nextParams.isEqual ?? Object.is)(untracked(value), nextDefault)) {\n value.set(nextDefault);\n }\n });\n\n const get = (): T => {\n const controlled = params().value !== undefined;\n const next = controlled ? params().value : value();\n ref.current = next;\n return next as T;\n };\n\n return {\n initial,\n ref,\n get,\n set(nextValue) {\n const commit = () => {\n const prev = get();\n const next = isFunction(nextValue) ? (nextValue as (prev: T) => T)(prev) : nextValue;\n if (params().debug) {\n console.log(`[bindable > ${params().debug}] setValue`, { next, prev });\n }\n if (params().value === undefined) {\n userTouched = true;\n value.set(next);\n }\n if (!(params().isEqual ?? Object.is)(next, prev)) {\n params().onChange?.(next, prev);\n }\n };\n if (params().sync) untracked(commit);\n else commit();\n },\n invoke(nextValue, prevValue) {\n params().onChange?.(nextValue, prevValue);\n },\n hash(valueToHash) {\n return params().hash?.(valueToHash) ?? String(valueToHash);\n },\n };\n };\n\n createBindable.cleanup = (fn: VoidFunction): void => {\n destroyRef.onDestroy(fn);\n };\n\n createBindable.ref = <T>(defaultValue: T) => {\n let value = defaultValue;\n return {\n get: () => value,\n set: (next: T) => {\n value = next;\n },\n };\n };\n\n const context = machine.context?.({\n prop,\n bindable: createBindable,\n get scope() {\n return scope();\n },\n flush,\n getContext: () => ctx,\n getComputed: () => computedValue,\n getRefs: () => refs,\n getEvent: () => getEvent(),\n } as never);\n\n const ctx = {\n get(key: string) {\n return (context as Record<string, Bindable<unknown>> | undefined)?.[key]?.get();\n },\n set(key: string, value: unknown) {\n (context as Record<string, Bindable<unknown>> | undefined)?.[key]?.set(value);\n },\n initial(key: string) {\n return (context as Record<string, Bindable<unknown>> | undefined)?.[key]?.initial;\n },\n hash(key: string) {\n const binding = (context as Record<string, Bindable<unknown>> | undefined)?.[key];\n return binding?.hash(binding.get());\n },\n } as Service<TSchema>[\"context\"];\n\n const refs = (() => {\n const values = machine.refs?.({ prop, context: ctx } as never) ?? {};\n const ref = { current: values as Record<string, unknown> };\n return {\n get(key: string) {\n return ref.current[key];\n },\n set(key: string, value: unknown) {\n ref.current[key] = value;\n },\n } as Service<TSchema>[\"refs\"];\n })();\n\n let status = MachineStatus.NotStarted;\n let transitionRef: Transition<TSchema> | null = null;\n let previousEvent: EventFor<TSchema> | null = null;\n let currentEvent = { type: \"\" } as EventFor<TSchema>;\n let pendingEvents: Array<EventFor<TSchema>> = [];\n let effects = new Map<string, VoidFunction>();\n const trackedEffects = new Set<EffectRef>();\n const listeners = new Set<(state: StateFor<TSchema>) => void>();\n\n let stateSignal: WritableSignal<StateFor<TSchema>>;\n\n const getEvent = () =>\n ({\n ...currentEvent,\n current: () => currentEvent,\n previous: () => previousEvent,\n }) as Service<TSchema>[\"event\"];\n\n const getState = (): StateFor<TSchema> =>\n ({\n ...state,\n matches(...values: TSchema[\"state\"][]) {\n const current = state.get();\n return values.some((value) => matchesState(current as string | undefined, value as string));\n },\n hasTag(tag: TSchema[\"tag\"]) {\n return hasTag(machine, state.get(), tag);\n },\n }) as StateFor<TSchema>;\n\n const notifyState = (): void => {\n const next = getState();\n stateSignal.set(next);\n for (const listener of listeners) listener(next);\n };\n\n const getParams = () => ({\n state: getState(),\n context: ctx,\n event: getEvent(),\n prop,\n send,\n action,\n guard,\n track,\n refs,\n computed: computedValue,\n flush,\n get scope() {\n return scope();\n },\n choose,\n });\n\n const action = (keys: unknown): void => {\n const actionKeys = isFunction(keys) ? keys(getParams()) : keys;\n if (!actionKeys) return;\n const fns = toArray(actionKeys).map((key) => {\n const fn = (\n machine.implementations?.actions as Record<string, ((params: unknown) => void) | undefined>\n )?.[String(key)];\n if (!fn) warn(`[wirekyt] No implementation found for action \"${JSON.stringify(key)}\"`);\n return fn;\n });\n for (const fn of fns) {\n fn?.(getParams());\n }\n };\n\n const guard = (key: unknown): boolean | undefined => {\n if (isFunction(key)) return key(getParams()) as boolean;\n return (\n machine.implementations?.guards as Record<string, ((params: unknown) => boolean) | undefined>\n )?.[String(key)]?.(getParams());\n };\n\n const runEffects = (keys: unknown): VoidFunction | undefined => {\n const effectKeys = isFunction(keys) ? keys(getParams()) : keys;\n if (!effectKeys) return undefined;\n const fns = toArray(effectKeys).map((key) => {\n const fn = (\n machine.implementations?.effects as Record<\n string,\n ((params: unknown) => undefined | VoidFunction) | undefined\n >\n )?.[String(key)];\n if (!fn) warn(`[wirekyt] No implementation found for effect \"${JSON.stringify(key)}\"`);\n return fn;\n });\n const cleanups: VoidFunction[] = [];\n for (const fn of fns) {\n const cleanup = fn?.(getParams());\n if (cleanup) cleanups.push(cleanup);\n }\n return cleanups.length > 0\n ? () => {\n for (const cleanup of cleanups) cleanup();\n }\n : undefined;\n };\n\n const choose = (transitions: unknown): Transition<TSchema> | undefined => {\n return toArray(transitions as Transition<TSchema> | Transition<TSchema>[] | undefined).find(\n (transition) => {\n let result = !transition.guard;\n if (isString(transition.guard)) result = !!guard(transition.guard);\n else if (isFunction(transition.guard)) result = transition.guard(getParams() as never);\n return result;\n },\n );\n };\n\n const computedValue = ((key: string) => {\n ensure(machine.computed, () => `[wirekyt] No computed object found on machine`);\n const fn = (machine.computed as Record<string, ((params: unknown) => unknown) | undefined>)[\n key\n ];\n return fn?.({\n context: ctx,\n event: getEvent(),\n prop,\n refs,\n get scope() {\n return scope();\n },\n computed: computedValue,\n });\n }) as Service<TSchema>[\"computed\"];\n\n const track = (deps: Array<() => unknown>, fn: VoidFunction): void => {\n let initialized = false;\n let previous: unknown[] = [];\n const ref = effect(() => {\n const current = deps.map((dep) => dep());\n if (!initialized) {\n initialized = true;\n previous = current;\n return;\n }\n if (current.some((value, index) => !isEqual(previous[index], value))) {\n previous = current;\n fn();\n }\n });\n trackedEffects.add(ref);\n };\n\n const state = createBindable<TSchema[\"state\"]>(() => ({\n defaultValue: resolveStateValue(machine, machine.initialState({ prop })),\n onChange(nextState, prevState) {\n const { exiting, entering } = getExitEnterStates(\n machine,\n prevState,\n nextState,\n transitionRef?.reenter,\n );\n for (const item of exiting) {\n const cleanup = effects.get(item.path);\n cleanup?.();\n effects.delete(item.path);\n }\n for (const item of exiting) {\n action(item.state?.exit);\n }\n action(transitionRef?.actions);\n for (const item of entering) {\n const cleanup = runEffects(item.state?.effects);\n if (cleanup) {\n const existing = effects.get(item.path);\n effects.set(item.path, existing ? callAll(existing, cleanup) : cleanup);\n }\n }\n if (prevState === INIT_STATE) {\n action(machine.entry);\n const cleanup = runEffects(machine.effects);\n if (cleanup) {\n const existing = effects.get(INIT_STATE);\n effects.set(INIT_STATE, existing ? callAll(existing, cleanup) : cleanup);\n }\n }\n for (const item of entering) {\n action(item.state?.entry);\n }\n notifyState();\n },\n }));\n\n stateSignal = signal(getState());\n\n const send = (event: EventFor<TSchema>): void => {\n if (status === MachineStatus.Stopped) return;\n if (status !== MachineStatus.Started) {\n pendingEvents.push(event);\n return;\n }\n previousEvent = currentEvent;\n currentEvent = event;\n const currentState = untracked(() => state.get());\n const { transitions, source } = findTransition(machine, currentState, event.type);\n const transition = choose(transitions);\n if (!transition) return;\n transitionRef = transition;\n const target = resolveStateValue(machine, transition.target ?? currentState, source);\n if (target !== currentState) {\n state.set(target);\n } else if (transition.reenter) {\n state.invoke(currentState, currentState);\n } else {\n action(transition.actions);\n }\n };\n\n const setContext = (patch: Record<string, unknown>): void => {\n currentProps.update((previous) => ({ ...previous, ...patch }));\n notifyState();\n };\n\n const stop = (): void => {\n if (status === MachineStatus.Stopped) return;\n status = MachineStatus.Stopped;\n pendingEvents = [];\n for (const ref of trackedEffects) ref.destroy();\n trackedEffects.clear();\n for (const cleanup of effects.values()) cleanup();\n effects = new Map();\n transitionRef = null;\n action(machine.exit);\n listeners.clear();\n };\n\n const service: ExtendedService<TSchema> = {\n getStatus: () => status,\n get state() {\n return getState();\n },\n context: ctx,\n send,\n prop,\n get scope() {\n return scope();\n },\n refs,\n computed: computedValue,\n get event() {\n return getEvent();\n },\n subscribe(listener) {\n listeners.add(listener);\n return () => listeners.delete(listener);\n },\n setContext,\n stop,\n };\n\n let prevRawContext = initialContextRaw;\n let prevResolvedContext = initialContext;\n\n effect(() => {\n const nextRaw = options.context() as Record<string, unknown>;\n const nextKeys = new Set(Object.keys(nextRaw));\n for (const key of Object.keys(prevRawContext)) {\n nextKeys.add(key);\n }\n const patch: Record<string, unknown> = {};\n let hasChanges = false;\n const nextResolvedContext: Record<string, unknown> = {};\n for (const key of nextKeys) {\n const nextRawValue = nextRaw[key];\n const prevRawValue = prevRawContext[key];\n const nextResolvedValue = key in nextRaw ? resolveValue(key, nextRawValue) : undefined;\n if (key in nextRaw) {\n nextResolvedContext[key] = nextResolvedValue;\n }\n if (\n !Object.is(prevRawValue, nextRawValue) &&\n !Object.is(prevResolvedContext[key], nextResolvedValue)\n ) {\n patch[key] = nextResolvedValue;\n hasChanges = true;\n }\n }\n if (hasChanges) {\n service.setContext(patch);\n }\n prevRawContext = nextRaw;\n prevResolvedContext = nextResolvedContext;\n });\n\n machine.watch?.(getParams() as never);\n\n afterNextRender(() => {\n if (status === MachineStatus.Stopped) return;\n status = MachineStatus.Started;\n state.invoke(state.initial, INIT_STATE as TSchema[\"state\"]);\n const events = pendingEvents;\n pendingEvents = [];\n for (const event of events) {\n send(event);\n }\n });\n\n const api = computed(() => {\n void stateSignal();\n return options.connect(service, normalizeProps);\n });\n\n destroyRef.onDestroy(stop);\n\n return {\n state: stateSignal.asReadonly(),\n send: service.send as UseMachineReturn<StateFor<TSchema>, TApi, Service<TSchema>>[\"send\"],\n service,\n api,\n };\n}\n","import { isPlatformBrowser } from \"@angular/common\";\nimport { InjectionToken, PLATFORM_ID, type Provider, inject } from \"@angular/core\";\n\nexport interface EnvironmentContext {\n getRootNode: () => Document | ShadowRoot | undefined;\n}\n\nexport interface ProvideEnvironmentConfig {\n getRootNode?: () => Document | ShadowRoot | undefined;\n}\n\nexport const ENVIRONMENT_TOKEN = new InjectionToken<EnvironmentContext>(\n \"WIREKIT.ENVIRONMENT_TOKEN\",\n);\n\nconst createDefaultContext = (platformId: object): EnvironmentContext => ({\n getRootNode: () => (isPlatformBrowser(platformId) ? document : undefined),\n});\n\nexport function provideEnvironment(config: ProvideEnvironmentConfig = {}): Provider {\n return {\n provide: ENVIRONMENT_TOKEN,\n useFactory: () => {\n if (config.getRootNode) {\n const getRootNode = config.getRootNode;\n return { getRootNode };\n }\n const platformId = inject(PLATFORM_ID);\n return createDefaultContext(platformId);\n },\n };\n}\n\nexport function injectEnvironment(): EnvironmentContext {\n const platformId = inject(PLATFORM_ID);\n const ctx = inject(ENVIRONMENT_TOKEN, { optional: true });\n return ctx ?? createDefaultContext(platformId);\n}\n","import { DOCUMENT, isPlatformBrowser } from \"@angular/common\";\nimport {\n DestroyRef,\n Injectable,\n InjectionToken,\n PLATFORM_ID,\n type Provider,\n type Signal,\n computed,\n inject,\n signal,\n} from \"@angular/core\";\n\nexport type InteractionModality = \"pointer\" | \"keyboard\" | null;\n\nexport interface InteractionContext {\n readonly modality: Signal<InteractionModality>;\n readonly isFocusVisible: Signal<boolean>;\n}\n\nconst MODALITY_KEYS = new Set([\n \"Tab\",\n \"ArrowUp\",\n \"ArrowDown\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \"Enter\",\n \"Escape\",\n \" \",\n]);\n\nfunction isModalityKey(key: string): boolean {\n return MODALITY_KEYS.has(key);\n}\n\n@Injectable()\nexport class InteractionService implements InteractionContext {\n private readonly _modality = signal<InteractionModality>(null);\n readonly modality: Signal<InteractionModality> = this._modality.asReadonly();\n readonly isFocusVisible: Signal<boolean> = computed(() => this._modality() === \"keyboard\");\n\n constructor() {\n const platformId = inject(PLATFORM_ID);\n const document = inject(DOCUMENT);\n const destroyRef = inject(DestroyRef);\n if (!isPlatformBrowser(platformId)) return;\n\n const onPointer = () => this._modality.set(\"pointer\");\n const onKey = (event: KeyboardEvent) => {\n if (isModalityKey(event.key)) this._modality.set(\"keyboard\");\n };\n\n document.addEventListener(\"pointerdown\", onPointer, true);\n document.addEventListener(\"keydown\", onKey, true);\n\n destroyRef.onDestroy(() => {\n document.removeEventListener(\"pointerdown\", onPointer, true);\n document.removeEventListener(\"keydown\", onKey, true);\n });\n }\n}\n\nexport const INTERACTION_TOKEN = new InjectionToken<InteractionContext>(\n \"WIREKIT.INTERACTION_TOKEN\",\n);\n\nexport function provideInteraction(): Provider[] {\n return [InteractionService, { provide: INTERACTION_TOKEN, useExisting: InteractionService }];\n}\n\nexport function injectInteraction(): InteractionContext {\n const ctx = inject(INTERACTION_TOKEN, { optional: true });\n if (ctx) return ctx;\n return {\n modality: signal<InteractionModality>(null).asReadonly(),\n isFocusVisible: signal(false).asReadonly(),\n };\n}\n","import { InjectionToken, type Provider, inject } from \"@angular/core\";\n\nexport const DEFAULT_LOCALE = \"en-US\";\n\nexport type Direction = \"ltr\" | \"rtl\";\n\nconst RTL_LANG_CODES = new Set([\n \"ae\",\n \"ar\",\n \"arc\",\n \"bcc\",\n \"bqi\",\n \"ckb\",\n \"dv\",\n \"fa\",\n \"glk\",\n \"he\",\n \"iw\",\n \"khw\",\n \"ks\",\n \"ku\",\n \"mzn\",\n \"nqo\",\n \"pnb\",\n \"ps\",\n \"sd\",\n \"ug\",\n \"ur\",\n \"yi\",\n]);\n\nexport function getDirection(locale: string): Direction {\n const lang = locale.toLowerCase().split(\"-\")[0] ?? \"\";\n return RTL_LANG_CODES.has(lang) ? \"rtl\" : \"ltr\";\n}\n\nexport interface LocaleContext {\n locale: string;\n dir: Direction;\n}\n\nexport const LOCALE_TOKEN = new InjectionToken<LocaleContext>(\"WIREKYT.LOCALE_TOKEN\");\n\nexport interface ProvideLocaleConfig {\n locale?: string;\n dir?: Direction;\n}\n\nexport function provideLocale(config: ProvideLocaleConfig = {}): Provider {\n return {\n provide: LOCALE_TOKEN,\n useFactory: () => {\n const locale = config.locale ?? DEFAULT_LOCALE;\n const dir = config.dir ?? getDirection(locale);\n return { locale, dir };\n },\n };\n}\n\nexport function injectLocale(): LocaleContext {\n const ctx = inject(LOCALE_TOKEN, { optional: true });\n return ctx ?? { locale: DEFAULT_LOCALE, dir: getDirection(DEFAULT_LOCALE) };\n}\n\nconst collatorCache = new Map<string, Intl.Collator>();\nconst dateFormatterCache = new Map<string, Intl.DateTimeFormat>();\nconst filterCache = new Map<string, Filter>();\nconst MAX_CACHE_SIZE = 64;\n\nconst stableSerialize = (value: unknown): string => {\n if (value === null || typeof value !== \"object\") return JSON.stringify(value);\n if (Array.isArray(value)) return `[${value.map(stableSerialize).join(\",\")}]`;\n const record = value as Record<string, unknown>;\n return `{${Object.keys(record)\n .sort()\n .filter((key) => record[key] !== undefined)\n .map((key) => `${JSON.stringify(key)}:${stableSerialize(record[key])}`)\n .join(\",\")}}`;\n};\n\nconst cacheKey = (locale: string, options: object | undefined): string =>\n `${locale}:${stableSerialize(options ?? {})}`;\n\nconst setCached = <K, V>(cache: Map<K, V>, key: K, value: V): void => {\n if (!cache.has(key) && cache.size >= MAX_CACHE_SIZE) {\n const oldest = cache.keys().next().value;\n if (oldest !== undefined) cache.delete(oldest);\n }\n cache.set(key, value);\n};\n\nexport function getCollator(locale: string, options?: Intl.CollatorOptions): Intl.Collator {\n const key = cacheKey(locale, options);\n let collator = collatorCache.get(key);\n if (!collator) {\n collator = new Intl.Collator(locale, options);\n setCached(collatorCache, key, collator);\n }\n return collator;\n}\n\nexport function getDateFormatter(\n locale: string,\n options?: Intl.DateTimeFormatOptions,\n): Intl.DateTimeFormat {\n const key = cacheKey(locale, options);\n let formatter = dateFormatterCache.get(key);\n if (!formatter) {\n formatter = new Intl.DateTimeFormat(locale, options);\n setCached(dateFormatterCache, key, formatter);\n }\n return formatter;\n}\n\nexport interface Filter {\n contains(string: string, substring: string): boolean;\n startsWith(string: string, substring: string): boolean;\n endsWith(string: string, substring: string): boolean;\n}\n\nexport function getFilter(\n locale: string,\n options: Intl.CollatorOptions = { sensitivity: \"base\" },\n): Filter {\n const normalizedOptions = { ...options, usage: \"search\" } satisfies Intl.CollatorOptions;\n const key = cacheKey(locale, normalizedOptions);\n const cached = filterCache.get(key);\n if (cached) return cached;\n const collator = getCollator(locale, normalizedOptions);\n const filter: Filter = {\n contains(s, sub) {\n if (sub.length === 0) return true;\n for (let i = 0; i + sub.length <= s.length; i++) {\n if (collator.compare(s.slice(i, i + sub.length), sub) === 0) return true;\n }\n return false;\n },\n startsWith(s, sub) {\n if (sub.length > s.length) return false;\n return collator.compare(s.slice(0, sub.length), sub) === 0;\n },\n endsWith(s, sub) {\n if (sub.length > s.length) return false;\n return collator.compare(s.slice(s.length - sub.length), sub) === 0;\n },\n };\n setCached(filterCache, key, filter);\n return filter;\n}\n","import {\n ComponentRef,\n createComponent,\n EmbeddedViewRef,\n Injector,\n ProviderToken,\n StaticProvider,\n TemplateRef,\n Type,\n ViewContainerRef,\n type EnvironmentInjector,\n} from \"@angular/core\";\n\nexport interface ContextCarrier<TRoot> {\n readonly originInjector: Injector;\n readonly environmentInjector: EnvironmentInjector;\n readonly elementInjector: Injector;\n readonly root: TRoot;\n}\n\nexport interface CreateContextCarrierOptions<TRoot> {\n originInjector: Injector;\n environmentInjector: EnvironmentInjector;\n elementInjector: Injector;\n root: TRoot;\n}\n\nexport function createContextCarrier<TRoot>(\n options: CreateContextCarrierOptions<TRoot>,\n): ContextCarrier<TRoot> {\n return {\n originInjector: options.originInjector,\n environmentInjector: options.environmentInjector,\n elementInjector: options.elementInjector,\n root: options.root,\n };\n}\n\nexport function createEmbeddedViewWithCarrier<C, TRoot>(\n viewContainer: ViewContainerRef,\n template: TemplateRef<C>,\n carrier: ContextCarrier<TRoot>,\n context?: C,\n): EmbeddedViewRef<C> {\n return viewContainer.createEmbeddedView(template, context, {\n injector: carrier.elementInjector,\n });\n}\n\nexport function createComponentWithCarrier<C, TRoot>(\n component: Type<C>,\n carrier: ContextCarrier<TRoot>,\n): ComponentRef<C> {\n return createComponent(component, {\n environmentInjector: carrier.environmentInjector,\n elementInjector: carrier.elementInjector,\n });\n}\n\nexport interface BuildRootCarrierOptions<TRoot> {\n root: TRoot;\n rootToken: ProviderToken<TRoot>;\n originInjector: Injector;\n environmentInjector: EnvironmentInjector;\n providers?: StaticProvider[];\n}\n\nexport function buildRootCarrier<TRoot>(\n options: BuildRootCarrierOptions<TRoot>,\n): ContextCarrier<TRoot> {\n const elementInjector = Injector.create({\n parent: options.originInjector,\n providers: [\n { provide: options.rootToken, useValue: options.root },\n ...(options.providers ?? []),\n ],\n });\n return createContextCarrier({\n originInjector: options.originInjector,\n environmentInjector: options.environmentInjector,\n elementInjector,\n root: options.root,\n });\n}\n","import { isDevMode } from \"@angular/core\";\n\nexport const warnMixedFormAndModelBinding = (componentName: string): void => {\n if (!isDevMode()) return;\n console.warn(\n `[@wyrekit/angular] ${componentName}: a form binding and [(value)] are both present on the same root. The form binding remains the source of truth.`,\n );\n};\n","import type { ModelSignal } from \"@angular/core\";\n\nimport { warnMixedFormAndModelBinding } from \"./forms-diagnostics\";\n\nexport interface CvaController<T> {\n writeValue(value: T | null): void;\n registerOnChange(fn: (value: T | undefined) => void): void;\n registerOnTouched(fn: () => void): void;\n setDisabledState(disabled: boolean): void;\n notifyValueChange(value: T | undefined): void;\n markTouched(): void;\n}\n\nexport interface CvaControllerOptions<T> {\n value: ModelSignal<T | undefined>;\n setDisabled: (disabled: boolean) => void;\n componentName: string;\n hasExternalModelBinding: () => boolean;\n}\n\nconst noopChange = <T>(_value: T | undefined): void => {};\nconst noopTouched = (): void => {};\n\nexport const createCvaController = <T>(options: CvaControllerOptions<T>): CvaController<T> => {\n let onChange: (value: T | undefined) => void = noopChange;\n let onTouched: () => void = noopTouched;\n let warned = false;\n\n const maybeWarn = () => {\n if (warned) return;\n if (!options.hasExternalModelBinding()) return;\n warned = true;\n warnMixedFormAndModelBinding(options.componentName);\n };\n\n return {\n writeValue(value) {\n maybeWarn();\n options.value.set(value === null ? undefined : value);\n },\n registerOnChange(fn) {\n maybeWarn();\n onChange = fn;\n },\n registerOnTouched(fn) {\n onTouched = fn;\n },\n setDisabledState(disabled) {\n options.setDisabled(disabled);\n },\n notifyValueChange(value) {\n onChange(value);\n },\n markTouched() {\n onTouched();\n },\n };\n};\n","let counter = 0;\n\nexport const createId = (): string => {\n counter += 1;\n return String(counter);\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"wirekyt-angular.mjs","sources":["../../src/core/bind-props.ts","../../src/core/normalize-props.ts","../../src/core/machine.ts","../../src/providers/environment/environment.ts","../../src/providers/interaction/interaction.ts","../../src/providers/locale/locale.ts","../../src/utils/context-carrier.ts","../../src/utils/forms-diagnostics.ts","../../src/utils/control-value-accessor.ts","../../src/utils/id.ts","../../src/wirekyt-angular.ts"],"sourcesContent":["import {\n RendererStyleFlags2,\n effect,\n type DestroyRef,\n type ElementRef,\n type Renderer2,\n} from \"@angular/core\";\n\ntype WireProps = Record<string, unknown>;\n\nexport interface BindPropsOptions {\n elementRef: ElementRef<HTMLElement>;\n renderer: Renderer2;\n destroyRef: DestroyRef;\n props: () => WireProps | undefined;\n}\n\nconst isAttributeKey = (key: string): boolean =>\n key === \"role\" ||\n key === \"id\" ||\n key === \"tabindex\" ||\n key.startsWith(\"aria-\") ||\n key.startsWith(\"data-\");\n\nconst eventNameFromHandlerKey = (key: string, el: HTMLElement): string | undefined => {\n if (!/^on[A-Z]/.test(key)) return undefined;\n if (key === \"onDoubleClick\") return \"dblclick\";\n if (key === \"onChange\") {\n const tagName = el.tagName.toLowerCase();\n if (tagName === \"textarea\") return \"input\";\n if (tagName === \"input\") {\n const type = (el as HTMLInputElement).type;\n return type === \"checkbox\" || type === \"radio\" || type === \"file\" ? \"change\" : \"input\";\n }\n if (tagName === \"select\") return \"change\";\n }\n return key.slice(2).toLowerCase();\n};\n\nconst isClassKey = (key: string): boolean => key === \"class\" || key === \"className\";\n\nconst isStyleKey = (key: string): boolean => key === \"style\";\n\nconst tokenizeClassString = (value: string): string[] =>\n value.split(/\\s+/).filter((token) => token.length > 0);\n\nconst parseStyleString = (value: string): Record<string, string> => {\n const result: Record<string, string> = {};\n for (const part of value.split(\";\")) {\n const trimmed = part.trim();\n if (trimmed.length === 0) continue;\n const colon = trimmed.indexOf(\":\");\n if (colon < 0) continue;\n const name = trimmed.slice(0, colon).trim();\n const styleValue = trimmed.slice(colon + 1).trim();\n if (name.length === 0) continue;\n result[name] = styleValue;\n }\n return result;\n};\n\nconst computeClassSet = (value: unknown): Set<string> => {\n const result = new Set<string>();\n if (value == null || value === false) return result;\n if (typeof value === \"string\") {\n for (const token of tokenizeClassString(value)) result.add(token);\n return result;\n }\n if (Array.isArray(value)) {\n for (const item of value) {\n if (typeof item === \"string\" && item.length > 0) result.add(item);\n }\n return result;\n }\n if (typeof value === \"object\") {\n const entries = value as Record<string, unknown>;\n for (const key of Object.keys(entries)) {\n if (entries[key]) result.add(key);\n }\n return result;\n }\n return result;\n};\n\nconst computeStyleMap = (value: unknown): Map<string, string> => {\n const result = new Map<string, string>();\n if (value == null || value === false) return result;\n if (typeof value === \"string\") {\n for (const [name, styleValue] of Object.entries(parseStyleString(value))) {\n result.set(name, styleValue);\n }\n return result;\n }\n if (typeof value === \"object\") {\n const entries = value as Record<string, unknown>;\n for (const key of Object.keys(entries)) {\n const styleValue = entries[key];\n if (styleValue == null || styleValue === false) continue;\n result.set(key, String(styleValue));\n }\n return result;\n }\n return result;\n};\n\nexport function bindProps(options: BindPropsOptions): () => void {\n const { elementRef, renderer, destroyRef } = options;\n\n let prev: Record<string, unknown> = {};\n let prevElement: HTMLElement | null = null;\n const listeners = new Map<string, { eventName: string; dispose: () => void }>();\n const appliedClasses = new Set<string>();\n const appliedStyles = new Set<string>();\n\n const removeListener = (key: string): void => {\n const listener = listeners.get(key);\n if (!listener) return;\n listener.dispose();\n listeners.delete(key);\n };\n\n const removeAttribute = (el: HTMLElement, key: string): void => {\n renderer.removeAttribute(el, key);\n };\n\n const removeProperty = (el: HTMLElement, key: string): void => {\n renderer.setProperty(el, key, \"\");\n };\n\n const applyClasses = (el: HTMLElement, nextValue: unknown): void => {\n const nextSet = computeClassSet(nextValue);\n for (const token of appliedClasses) {\n if (!nextSet.has(token)) {\n renderer.removeClass(el, token);\n appliedClasses.delete(token);\n }\n }\n for (const token of nextSet) {\n if (!appliedClasses.has(token)) {\n renderer.addClass(el, token);\n appliedClasses.add(token);\n }\n }\n };\n\n const removeAllClasses = (el: HTMLElement): void => {\n for (const token of appliedClasses) {\n renderer.removeClass(el, token);\n }\n appliedClasses.clear();\n };\n\n const styleFlags = (name: string): RendererStyleFlags2 | undefined =>\n name.startsWith(\"--\") ? RendererStyleFlags2.DashCase : undefined;\n\n const applyStyles = (el: HTMLElement, nextValue: unknown): void => {\n const nextMap = computeStyleMap(nextValue);\n for (const name of appliedStyles) {\n if (!nextMap.has(name)) {\n renderer.removeStyle(el, name, styleFlags(name));\n appliedStyles.delete(name);\n }\n }\n for (const [name, styleValue] of nextMap) {\n renderer.setStyle(el, name, styleValue, styleFlags(name));\n appliedStyles.add(name);\n }\n };\n\n const removeAllStyles = (el: HTMLElement): void => {\n for (const name of appliedStyles) {\n renderer.removeStyle(el, name, styleFlags(name));\n }\n appliedStyles.clear();\n };\n\n const resetElement = (el: HTMLElement | null): void => {\n for (const { dispose } of listeners.values()) dispose();\n listeners.clear();\n if (el) {\n removeAllClasses(el);\n removeAllStyles(el);\n } else {\n appliedClasses.clear();\n appliedStyles.clear();\n }\n prev = {};\n };\n\n const effectRef = effect(() => {\n const el = elementRef.nativeElement;\n const next = (options.props() ?? {}) as Record<string, unknown>;\n if (el !== prevElement) {\n resetElement(prevElement);\n prevElement = el;\n }\n if (!el) return;\n\n for (const key of Object.keys(next)) {\n const nextValue = next[key];\n const prevValue = prev[key];\n\n const eventName = eventNameFromHandlerKey(key, el);\n if (eventName && typeof nextValue === \"function\") {\n const listener = listeners.get(key);\n if (prevValue === nextValue && listener?.eventName === eventName) continue;\n removeListener(key);\n const dispose = renderer.listen(el, eventName, nextValue as (event: Event) => void);\n listeners.set(key, { eventName, dispose });\n continue;\n }\n if (eventName && listeners.has(key) && typeof nextValue !== \"function\") {\n removeListener(key);\n if (nextValue == null || nextValue === false) continue;\n }\n\n if (isClassKey(key)) {\n if (Object.is(prevValue, nextValue)) continue;\n applyClasses(el, nextValue);\n continue;\n }\n\n if (isStyleKey(key)) {\n if (Object.is(prevValue, nextValue)) continue;\n applyStyles(el, nextValue);\n continue;\n }\n\n if (isAttributeKey(key)) {\n const remove = nextValue == null || (nextValue === false && !key.startsWith(\"aria-\"));\n if (remove) {\n if (prevValue !== undefined && prevValue !== null && prevValue !== false) {\n removeAttribute(el, key);\n }\n continue;\n }\n if (Object.is(prevValue, nextValue)) continue;\n renderer.setAttribute(el, key, String(nextValue));\n continue;\n }\n\n if (nextValue == null) {\n if (prevValue !== undefined && prevValue !== null) {\n removeProperty(el, key);\n }\n continue;\n }\n\n if (Object.is(prevValue, nextValue)) continue;\n renderer.setProperty(el, key, nextValue);\n }\n\n for (const key of Object.keys(prev)) {\n if (key in next) continue;\n const prevValue = prev[key];\n\n const eventName = eventNameFromHandlerKey(key, el);\n if (eventName && typeof prevValue === \"function\") {\n removeListener(key);\n continue;\n }\n\n if (isClassKey(key)) {\n applyClasses(el, undefined);\n continue;\n }\n\n if (isStyleKey(key)) {\n applyStyles(el, undefined);\n continue;\n }\n\n if (isAttributeKey(key)) {\n removeAttribute(el, key);\n continue;\n }\n\n removeProperty(el, key);\n }\n\n prev = { ...next };\n });\n\n let destroyed = false;\n const destroy = (): void => {\n if (destroyed) return;\n destroyed = true;\n effectRef.destroy();\n resetElement(prevElement);\n prevElement = null;\n };\n\n destroyRef.onDestroy(destroy);\n return destroy;\n}\n","import { createNormalizer, type JSX } from \"@wirekyt/dom/types\";\n\nexport type PropTypes = JSX.IntrinsicElements & {\n element: JSX.HTMLAttributes<HTMLElement> & Record<string, unknown>;\n style: JSX.CSSProperties;\n};\n\nexport const normalizeProps = createNormalizer<PropTypes>((v) => v);\n","import {\n DestroyRef,\n afterNextRender,\n computed,\n effect,\n inject,\n signal,\n untracked,\n type EffectRef,\n type WritableSignal,\n} from \"@angular/core\";\nimport {\n INIT_STATE,\n MachineStatus,\n createScope,\n findTransition,\n getExitEnterStates,\n hasTag,\n matchesState,\n resolveStateValue,\n type Bindable,\n type BindableParams,\n type MachineSchema,\n type Service,\n type Transition,\n} from \"@wirekyt/dom\";\nimport {\n callAll,\n compact,\n ensure,\n isEqual,\n isFunction,\n isString,\n toArray,\n warn,\n} from \"@wirekyt/dom/utils\";\n\nimport type { UseMachineOptions, UseMachineReturn } from \"./types\";\n\nimport { normalizeProps } from \"./normalize-props\";\n\ntype AnyFn = (...args: unknown[]) => unknown;\ntype EventFor<TSchema extends MachineSchema> = TSchema[\"event\"] & { type: string };\ntype StateFor<TSchema extends MachineSchema> = Service<TSchema>[\"state\"];\ntype ExtendedService<TSchema extends MachineSchema> = Service<TSchema> & {\n subscribe: (listener: (state: StateFor<TSchema>) => void) => () => void;\n setContext: (patch: Record<string, unknown>) => void;\n stop: () => void;\n};\n\nfunction isPlainFunction(value: unknown): value is AnyFn {\n return typeof value === \"function\";\n}\n\nconst flush = (fn: VoidFunction): void => {\n queueMicrotask(fn);\n};\n\nexport function useMachine<TSchema extends MachineSchema, TApi>(\n options: UseMachineOptions<TSchema, TApi>,\n): UseMachineReturn<StateFor<TSchema>, TApi, Service<TSchema>> {\n const destroyRef = inject(DestroyRef);\n const machine = options.machine;\n\n const latestFns = new Map<string, AnyFn>();\n const wrappers = new Map<string, AnyFn>();\n\n const resolveValue = (key: string, value: unknown): unknown => {\n if (!isPlainFunction(value)) return value;\n latestFns.set(key, value);\n let wrapper = wrappers.get(key);\n if (!wrapper) {\n wrapper = (...args: unknown[]) => latestFns.get(key)?.(...args);\n wrappers.set(key, wrapper);\n }\n return wrapper;\n };\n\n const resolveContext = (raw: Record<string, unknown>): Record<string, unknown> => {\n const resolved: Record<string, unknown> = {};\n for (const key of Object.keys(raw)) {\n resolved[key] = resolveValue(key, raw[key]);\n }\n return resolved;\n };\n\n const initialContextRaw = options.context() as Record<string, unknown>;\n const initialContext = resolveContext(initialContextRaw);\n const currentProps = signal<Record<string, unknown>>(initialContext);\n\n const scope = computed(() => {\n const props = currentProps() as { id?: unknown; ids?: unknown; getRootNode?: unknown };\n const getRootNode = props.getRootNode as (() => ShadowRoot | Document | Element) | undefined;\n return createScope({\n id: props.id as string | undefined,\n ids: props.ids as Record<string, unknown> | undefined,\n getRootNode: getRootNode ?? (() => document),\n });\n });\n\n const props = computed(() => {\n return (\n machine.props?.({ props: compact(currentProps()) as never, scope: scope() }) ?? currentProps()\n );\n });\n\n const prop = ((key: string) => props()[key]) as Service<TSchema>[\"prop\"];\n\n const createBindable = <T>(params: () => BindableParams<T>): Bindable<T> => {\n const initialParams = params();\n const initial =\n initialParams.value !== undefined ? initialParams.value : initialParams.defaultValue;\n const value = signal<T | undefined>(initial);\n const ref = { current: initial };\n let defaultEffectInitialized = false;\n let defaultHydrationChecked = false;\n let userTouched = false;\n\n effect(() => {\n const nextParams = params();\n const nextDefault = nextParams.defaultValue;\n const controlled = nextParams.value !== undefined;\n if (!defaultEffectInitialized) {\n defaultEffectInitialized = true;\n return;\n }\n if (userTouched || controlled || defaultHydrationChecked) return;\n defaultHydrationChecked = true;\n if (nextDefault === undefined) return;\n if (!(nextParams.isEqual ?? Object.is)(untracked(value), nextDefault)) {\n value.set(nextDefault);\n }\n });\n\n const get = (): T => {\n const controlled = params().value !== undefined;\n const next = controlled ? params().value : value();\n ref.current = next;\n return next as T;\n };\n\n return {\n initial,\n ref,\n get,\n set(nextValue) {\n const commit = () => {\n const prev = get();\n const next = isFunction(nextValue) ? (nextValue as (prev: T) => T)(prev) : nextValue;\n if (params().debug) {\n console.log(`[bindable > ${params().debug}] setValue`, { next, prev });\n }\n if (params().value === undefined) {\n userTouched = true;\n value.set(next);\n }\n if (!(params().isEqual ?? Object.is)(next, prev)) {\n params().onChange?.(next, prev);\n }\n };\n if (params().sync) untracked(commit);\n else commit();\n },\n invoke(nextValue, prevValue) {\n params().onChange?.(nextValue, prevValue);\n },\n hash(valueToHash) {\n return params().hash?.(valueToHash) ?? String(valueToHash);\n },\n };\n };\n\n createBindable.cleanup = (fn: VoidFunction): void => {\n destroyRef.onDestroy(fn);\n };\n\n createBindable.ref = <T>(defaultValue: T) => {\n let value = defaultValue;\n return {\n get: () => value,\n set: (next: T) => {\n value = next;\n },\n };\n };\n\n const context = machine.context?.({\n prop,\n bindable: createBindable,\n get scope() {\n return scope();\n },\n flush,\n getContext: () => ctx,\n getComputed: () => computedValue,\n getRefs: () => refs,\n getEvent: () => getEvent(),\n } as never);\n\n const ctx = {\n get(key: string) {\n return (context as Record<string, Bindable<unknown>> | undefined)?.[key]?.get();\n },\n set(key: string, value: unknown) {\n (context as Record<string, Bindable<unknown>> | undefined)?.[key]?.set(value);\n },\n initial(key: string) {\n return (context as Record<string, Bindable<unknown>> | undefined)?.[key]?.initial;\n },\n hash(key: string) {\n const binding = (context as Record<string, Bindable<unknown>> | undefined)?.[key];\n return binding?.hash(binding.get());\n },\n } as Service<TSchema>[\"context\"];\n\n const refs = (() => {\n const values = machine.refs?.({ prop, context: ctx } as never) ?? {};\n const ref = { current: values as Record<string, unknown> };\n return {\n get(key: string) {\n return ref.current[key];\n },\n set(key: string, value: unknown) {\n ref.current[key] = value;\n },\n } as Service<TSchema>[\"refs\"];\n })();\n\n let status = MachineStatus.NotStarted;\n let transitionRef: Transition<TSchema> | null = null;\n let previousEvent: EventFor<TSchema> | null = null;\n let currentEvent = { type: \"\" } as EventFor<TSchema>;\n let pendingEvents: Array<EventFor<TSchema>> = [];\n let effects = new Map<string, VoidFunction>();\n const trackedEffects = new Set<EffectRef>();\n const listeners = new Set<(state: StateFor<TSchema>) => void>();\n\n let stateSignal: WritableSignal<StateFor<TSchema>>;\n\n const getEvent = () =>\n ({\n ...currentEvent,\n current: () => currentEvent,\n previous: () => previousEvent,\n }) as Service<TSchema>[\"event\"];\n\n const getState = (): StateFor<TSchema> =>\n ({\n ...state,\n matches(...values: TSchema[\"state\"][]) {\n const current = state.get();\n return values.some((value) => matchesState(current as string | undefined, value as string));\n },\n hasTag(tag: TSchema[\"tag\"]) {\n return hasTag(machine, state.get(), tag);\n },\n }) as StateFor<TSchema>;\n\n const notifyState = (): void => {\n const next = getState();\n stateSignal.set(next);\n for (const listener of listeners) listener(next);\n };\n\n const getParams = () => ({\n state: getState(),\n context: ctx,\n event: getEvent(),\n prop,\n send,\n action,\n guard,\n track,\n refs,\n computed: computedValue,\n flush,\n get scope() {\n return scope();\n },\n choose,\n });\n\n const action = (keys: unknown): void => {\n const actionKeys = isFunction(keys) ? keys(getParams()) : keys;\n if (!actionKeys) return;\n const fns = toArray(actionKeys).map((key) => {\n const fn = (\n machine.implementations?.actions as Record<string, ((params: unknown) => void) | undefined>\n )?.[String(key)];\n if (!fn) warn(`[wirekyt] No implementation found for action \"${JSON.stringify(key)}\"`);\n return fn;\n });\n for (const fn of fns) {\n fn?.(getParams());\n }\n };\n\n const guard = (key: unknown): boolean | undefined => {\n if (isFunction(key)) return key(getParams()) as boolean;\n return (\n machine.implementations?.guards as Record<string, ((params: unknown) => boolean) | undefined>\n )?.[String(key)]?.(getParams());\n };\n\n const runEffects = (keys: unknown): VoidFunction | undefined => {\n const effectKeys = isFunction(keys) ? keys(getParams()) : keys;\n if (!effectKeys) return undefined;\n const fns = toArray(effectKeys).map((key) => {\n const fn = (\n machine.implementations?.effects as Record<\n string,\n ((params: unknown) => undefined | VoidFunction) | undefined\n >\n )?.[String(key)];\n if (!fn) warn(`[wirekyt] No implementation found for effect \"${JSON.stringify(key)}\"`);\n return fn;\n });\n const cleanups: VoidFunction[] = [];\n for (const fn of fns) {\n const cleanup = fn?.(getParams());\n if (cleanup) cleanups.push(cleanup);\n }\n return cleanups.length > 0\n ? () => {\n for (const cleanup of cleanups) cleanup();\n }\n : undefined;\n };\n\n const choose = (transitions: unknown): Transition<TSchema> | undefined => {\n return toArray(transitions as Transition<TSchema> | Transition<TSchema>[] | undefined).find(\n (transition) => {\n let result = !transition.guard;\n if (isString(transition.guard)) result = !!guard(transition.guard);\n else if (isFunction(transition.guard)) result = transition.guard(getParams() as never);\n return result;\n },\n );\n };\n\n const computedValue = ((key: string) => {\n ensure(machine.computed, () => `[wirekyt] No computed object found on machine`);\n const fn = (machine.computed as Record<string, ((params: unknown) => unknown) | undefined>)[\n key\n ];\n return fn?.({\n context: ctx,\n event: getEvent(),\n prop,\n refs,\n get scope() {\n return scope();\n },\n computed: computedValue,\n });\n }) as Service<TSchema>[\"computed\"];\n\n const track = (deps: Array<() => unknown>, fn: VoidFunction): void => {\n let initialized = false;\n let previous: unknown[] = [];\n const ref = effect(() => {\n const current = deps.map((dep) => dep());\n if (!initialized) {\n initialized = true;\n previous = current;\n return;\n }\n if (current.some((value, index) => !isEqual(previous[index], value))) {\n previous = current;\n fn();\n }\n });\n trackedEffects.add(ref);\n };\n\n const state = createBindable<TSchema[\"state\"]>(() => ({\n defaultValue: resolveStateValue(machine, machine.initialState({ prop })),\n onChange(nextState, prevState) {\n const { exiting, entering } = getExitEnterStates(\n machine,\n prevState,\n nextState,\n transitionRef?.reenter,\n );\n for (const item of exiting) {\n const cleanup = effects.get(item.path);\n cleanup?.();\n effects.delete(item.path);\n }\n for (const item of exiting) {\n action(item.state?.exit);\n }\n action(transitionRef?.actions);\n for (const item of entering) {\n const cleanup = runEffects(item.state?.effects);\n if (cleanup) {\n const existing = effects.get(item.path);\n effects.set(item.path, existing ? callAll(existing, cleanup) : cleanup);\n }\n }\n if (prevState === INIT_STATE) {\n action(machine.entry);\n const cleanup = runEffects(machine.effects);\n if (cleanup) {\n const existing = effects.get(INIT_STATE);\n effects.set(INIT_STATE, existing ? callAll(existing, cleanup) : cleanup);\n }\n }\n for (const item of entering) {\n action(item.state?.entry);\n }\n notifyState();\n },\n }));\n\n stateSignal = signal(getState());\n\n const send = (event: EventFor<TSchema>): void => {\n if (status === MachineStatus.Stopped) return;\n if (status !== MachineStatus.Started) {\n pendingEvents.push(event);\n return;\n }\n previousEvent = currentEvent;\n currentEvent = event;\n const currentState = untracked(() => state.get());\n const { transitions, source } = findTransition(machine, currentState, event.type);\n const transition = choose(transitions);\n if (!transition) return;\n transitionRef = transition;\n const target = resolveStateValue(machine, transition.target ?? currentState, source);\n if (target !== currentState) {\n state.set(target);\n } else if (transition.reenter) {\n state.invoke(currentState, currentState);\n } else {\n action(transition.actions);\n }\n };\n\n const setContext = (patch: Record<string, unknown>): void => {\n currentProps.update((previous) => ({ ...previous, ...patch }));\n notifyState();\n };\n\n const stop = (): void => {\n if (status === MachineStatus.Stopped) return;\n status = MachineStatus.Stopped;\n pendingEvents = [];\n for (const ref of trackedEffects) ref.destroy();\n trackedEffects.clear();\n for (const cleanup of effects.values()) cleanup();\n effects = new Map();\n transitionRef = null;\n action(machine.exit);\n listeners.clear();\n };\n\n const service: ExtendedService<TSchema> = {\n getStatus: () => status,\n get state() {\n return getState();\n },\n context: ctx,\n send,\n prop,\n get scope() {\n return scope();\n },\n refs,\n computed: computedValue,\n get event() {\n return getEvent();\n },\n subscribe(listener) {\n listeners.add(listener);\n return () => listeners.delete(listener);\n },\n setContext,\n stop,\n };\n\n let prevRawContext = initialContextRaw;\n let prevResolvedContext = initialContext;\n\n effect(() => {\n const nextRaw = options.context() as Record<string, unknown>;\n const nextKeys = new Set(Object.keys(nextRaw));\n for (const key of Object.keys(prevRawContext)) {\n nextKeys.add(key);\n }\n const patch: Record<string, unknown> = {};\n let hasChanges = false;\n const nextResolvedContext: Record<string, unknown> = {};\n for (const key of nextKeys) {\n const nextRawValue = nextRaw[key];\n const prevRawValue = prevRawContext[key];\n const nextResolvedValue = key in nextRaw ? resolveValue(key, nextRawValue) : undefined;\n if (key in nextRaw) {\n nextResolvedContext[key] = nextResolvedValue;\n }\n if (\n !Object.is(prevRawValue, nextRawValue) &&\n !Object.is(prevResolvedContext[key], nextResolvedValue)\n ) {\n patch[key] = nextResolvedValue;\n hasChanges = true;\n }\n }\n if (hasChanges) {\n service.setContext(patch);\n }\n prevRawContext = nextRaw;\n prevResolvedContext = nextResolvedContext;\n });\n\n machine.watch?.(getParams() as never);\n\n afterNextRender(() => {\n if (status === MachineStatus.Stopped) return;\n status = MachineStatus.Started;\n state.invoke(state.initial, INIT_STATE as TSchema[\"state\"]);\n const events = pendingEvents;\n pendingEvents = [];\n for (const event of events) {\n send(event);\n }\n });\n\n const api = computed(() => {\n void stateSignal();\n return options.connect(service, normalizeProps);\n });\n\n destroyRef.onDestroy(stop);\n\n return {\n state: stateSignal.asReadonly(),\n send: service.send as UseMachineReturn<StateFor<TSchema>, TApi, Service<TSchema>>[\"send\"],\n service,\n api,\n };\n}\n","import { isPlatformBrowser } from \"@angular/common\";\nimport { InjectionToken, PLATFORM_ID, type Provider, inject } from \"@angular/core\";\n\nexport interface EnvironmentContext {\n getRootNode: () => Document | ShadowRoot | undefined;\n}\n\nexport interface ProvideEnvironmentConfig {\n getRootNode?: () => Document | ShadowRoot | undefined;\n}\n\nexport const ENVIRONMENT_TOKEN = new InjectionToken<EnvironmentContext>(\n \"WIREKIT.ENVIRONMENT_TOKEN\",\n);\n\nconst createDefaultContext = (platformId: object): EnvironmentContext => ({\n getRootNode: () => (isPlatformBrowser(platformId) ? document : undefined),\n});\n\nexport function provideEnvironment(config: ProvideEnvironmentConfig = {}): Provider {\n return {\n provide: ENVIRONMENT_TOKEN,\n useFactory: () => {\n if (config.getRootNode) {\n const getRootNode = config.getRootNode;\n return { getRootNode };\n }\n const platformId = inject(PLATFORM_ID);\n return createDefaultContext(platformId);\n },\n };\n}\n\nexport function injectEnvironment(): EnvironmentContext {\n const platformId = inject(PLATFORM_ID);\n const ctx = inject(ENVIRONMENT_TOKEN, { optional: true });\n return ctx ?? createDefaultContext(platformId);\n}\n","import { DOCUMENT, isPlatformBrowser } from \"@angular/common\";\nimport {\n DestroyRef,\n Injectable,\n InjectionToken,\n PLATFORM_ID,\n type Provider,\n type Signal,\n computed,\n inject,\n signal,\n} from \"@angular/core\";\n\nexport type InteractionModality = \"pointer\" | \"keyboard\" | null;\n\nexport interface InteractionContext {\n readonly modality: Signal<InteractionModality>;\n readonly isFocusVisible: Signal<boolean>;\n}\n\nconst MODALITY_KEYS = new Set([\n \"Tab\",\n \"ArrowUp\",\n \"ArrowDown\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \"Enter\",\n \"Escape\",\n \" \",\n]);\n\nfunction isModalityKey(key: string): boolean {\n return MODALITY_KEYS.has(key);\n}\n\n@Injectable()\nexport class InteractionService implements InteractionContext {\n private readonly _modality = signal<InteractionModality>(null);\n readonly modality: Signal<InteractionModality> = this._modality.asReadonly();\n readonly isFocusVisible: Signal<boolean> = computed(() => this._modality() === \"keyboard\");\n\n constructor() {\n const platformId = inject(PLATFORM_ID);\n const document = inject(DOCUMENT);\n const destroyRef = inject(DestroyRef);\n if (!isPlatformBrowser(platformId)) return;\n\n const onPointer = () => this._modality.set(\"pointer\");\n const onKey = (event: KeyboardEvent) => {\n if (isModalityKey(event.key)) this._modality.set(\"keyboard\");\n };\n\n document.addEventListener(\"pointerdown\", onPointer, true);\n document.addEventListener(\"keydown\", onKey, true);\n\n destroyRef.onDestroy(() => {\n document.removeEventListener(\"pointerdown\", onPointer, true);\n document.removeEventListener(\"keydown\", onKey, true);\n });\n }\n}\n\nexport const INTERACTION_TOKEN = new InjectionToken<InteractionContext>(\n \"WIREKIT.INTERACTION_TOKEN\",\n);\n\nexport function provideInteraction(): Provider[] {\n return [InteractionService, { provide: INTERACTION_TOKEN, useExisting: InteractionService }];\n}\n\nexport function injectInteraction(): InteractionContext {\n const ctx = inject(INTERACTION_TOKEN, { optional: true });\n if (ctx) return ctx;\n return {\n modality: signal<InteractionModality>(null).asReadonly(),\n isFocusVisible: signal(false).asReadonly(),\n };\n}\n","import { InjectionToken, type Provider, inject } from \"@angular/core\";\n\nexport const DEFAULT_LOCALE = \"en-US\";\n\nexport type Direction = \"ltr\" | \"rtl\";\n\nconst RTL_LANG_CODES = new Set([\n \"ae\",\n \"ar\",\n \"arc\",\n \"bcc\",\n \"bqi\",\n \"ckb\",\n \"dv\",\n \"fa\",\n \"glk\",\n \"he\",\n \"iw\",\n \"khw\",\n \"ks\",\n \"ku\",\n \"mzn\",\n \"nqo\",\n \"pnb\",\n \"ps\",\n \"sd\",\n \"ug\",\n \"ur\",\n \"yi\",\n]);\n\nexport function getDirection(locale: string): Direction {\n const lang = locale.toLowerCase().split(\"-\")[0] ?? \"\";\n return RTL_LANG_CODES.has(lang) ? \"rtl\" : \"ltr\";\n}\n\nexport interface LocaleContext {\n locale: string;\n dir: Direction;\n}\n\nexport const LOCALE_TOKEN = new InjectionToken<LocaleContext>(\"WIREKYT.LOCALE_TOKEN\");\n\nexport interface ProvideLocaleConfig {\n locale?: string;\n dir?: Direction;\n}\n\nexport function provideLocale(config: ProvideLocaleConfig = {}): Provider {\n return {\n provide: LOCALE_TOKEN,\n useFactory: () => {\n const locale = config.locale ?? DEFAULT_LOCALE;\n const dir = config.dir ?? getDirection(locale);\n return { locale, dir };\n },\n };\n}\n\nexport function injectLocale(): LocaleContext {\n const ctx = inject(LOCALE_TOKEN, { optional: true });\n return ctx ?? { locale: DEFAULT_LOCALE, dir: getDirection(DEFAULT_LOCALE) };\n}\n\nconst collatorCache = new Map<string, Intl.Collator>();\nconst dateFormatterCache = new Map<string, Intl.DateTimeFormat>();\nconst filterCache = new Map<string, Filter>();\nconst MAX_CACHE_SIZE = 64;\n\nconst stableSerialize = (value: unknown): string => {\n if (value === null || typeof value !== \"object\") return JSON.stringify(value);\n if (Array.isArray(value)) return `[${value.map(stableSerialize).join(\",\")}]`;\n const record = value as Record<string, unknown>;\n return `{${Object.keys(record)\n .sort()\n .filter((key) => record[key] !== undefined)\n .map((key) => `${JSON.stringify(key)}:${stableSerialize(record[key])}`)\n .join(\",\")}}`;\n};\n\nconst cacheKey = (locale: string, options: object | undefined): string =>\n `${locale}:${stableSerialize(options ?? {})}`;\n\nconst setCached = <K, V>(cache: Map<K, V>, key: K, value: V): void => {\n if (!cache.has(key) && cache.size >= MAX_CACHE_SIZE) {\n const oldest = cache.keys().next().value;\n if (oldest !== undefined) cache.delete(oldest);\n }\n cache.set(key, value);\n};\n\nexport function getCollator(locale: string, options?: Intl.CollatorOptions): Intl.Collator {\n const key = cacheKey(locale, options);\n let collator = collatorCache.get(key);\n if (!collator) {\n collator = new Intl.Collator(locale, options);\n setCached(collatorCache, key, collator);\n }\n return collator;\n}\n\nexport function getDateFormatter(\n locale: string,\n options?: Intl.DateTimeFormatOptions,\n): Intl.DateTimeFormat {\n const key = cacheKey(locale, options);\n let formatter = dateFormatterCache.get(key);\n if (!formatter) {\n formatter = new Intl.DateTimeFormat(locale, options);\n setCached(dateFormatterCache, key, formatter);\n }\n return formatter;\n}\n\nexport interface Filter {\n contains(string: string, substring: string): boolean;\n startsWith(string: string, substring: string): boolean;\n endsWith(string: string, substring: string): boolean;\n}\n\nexport function getFilter(\n locale: string,\n options: Intl.CollatorOptions = { sensitivity: \"base\" },\n): Filter {\n const normalizedOptions = { ...options, usage: \"search\" } satisfies Intl.CollatorOptions;\n const key = cacheKey(locale, normalizedOptions);\n const cached = filterCache.get(key);\n if (cached) return cached;\n const collator = getCollator(locale, normalizedOptions);\n const filter: Filter = {\n contains(s, sub) {\n if (sub.length === 0) return true;\n for (let i = 0; i + sub.length <= s.length; i++) {\n if (collator.compare(s.slice(i, i + sub.length), sub) === 0) return true;\n }\n return false;\n },\n startsWith(s, sub) {\n if (sub.length > s.length) return false;\n return collator.compare(s.slice(0, sub.length), sub) === 0;\n },\n endsWith(s, sub) {\n if (sub.length > s.length) return false;\n return collator.compare(s.slice(s.length - sub.length), sub) === 0;\n },\n };\n setCached(filterCache, key, filter);\n return filter;\n}\n","import {\n ComponentRef,\n createComponent,\n EmbeddedViewRef,\n Injector,\n ProviderToken,\n StaticProvider,\n TemplateRef,\n Type,\n ViewContainerRef,\n type EnvironmentInjector,\n} from \"@angular/core\";\n\nexport interface ContextCarrier<TRoot> {\n readonly originInjector: Injector;\n readonly environmentInjector: EnvironmentInjector;\n readonly elementInjector: Injector;\n readonly root: TRoot;\n}\n\nexport interface CreateContextCarrierOptions<TRoot> {\n originInjector: Injector;\n environmentInjector: EnvironmentInjector;\n elementInjector: Injector;\n root: TRoot;\n}\n\nexport function createContextCarrier<TRoot>(\n options: CreateContextCarrierOptions<TRoot>,\n): ContextCarrier<TRoot> {\n return {\n originInjector: options.originInjector,\n environmentInjector: options.environmentInjector,\n elementInjector: options.elementInjector,\n root: options.root,\n };\n}\n\nexport function createEmbeddedViewWithCarrier<C, TRoot>(\n viewContainer: ViewContainerRef,\n template: TemplateRef<C>,\n carrier: ContextCarrier<TRoot>,\n context?: C,\n): EmbeddedViewRef<C> {\n return viewContainer.createEmbeddedView(template, context, {\n injector: carrier.elementInjector,\n });\n}\n\nexport function createComponentWithCarrier<C, TRoot>(\n component: Type<C>,\n carrier: ContextCarrier<TRoot>,\n): ComponentRef<C> {\n return createComponent(component, {\n environmentInjector: carrier.environmentInjector,\n elementInjector: carrier.elementInjector,\n });\n}\n\nexport interface BuildRootCarrierOptions<TRoot> {\n root: TRoot;\n rootToken: ProviderToken<TRoot>;\n originInjector: Injector;\n environmentInjector: EnvironmentInjector;\n providers?: StaticProvider[];\n}\n\nexport function buildRootCarrier<TRoot>(\n options: BuildRootCarrierOptions<TRoot>,\n): ContextCarrier<TRoot> {\n const elementInjector = Injector.create({\n parent: options.originInjector,\n providers: [\n { provide: options.rootToken, useValue: options.root },\n ...(options.providers ?? []),\n ],\n });\n return createContextCarrier({\n originInjector: options.originInjector,\n environmentInjector: options.environmentInjector,\n elementInjector,\n root: options.root,\n });\n}\n","import { isDevMode } from \"@angular/core\";\n\nexport const warnMixedFormAndModelBinding = (componentName: string): void => {\n if (!isDevMode()) return;\n console.warn(\n `[@wyrekit/angular] ${componentName}: a form binding and [(value)] are both present on the same root. The form binding remains the source of truth.`,\n );\n};\n","import type { ModelSignal } from \"@angular/core\";\n\nimport { warnMixedFormAndModelBinding } from \"./forms-diagnostics\";\n\nexport interface CvaController<T> {\n writeValue(value: T | null): void;\n registerOnChange(fn: (value: T | undefined) => void): void;\n registerOnTouched(fn: () => void): void;\n setDisabledState(disabled: boolean): void;\n notifyValueChange(value: T | undefined): void;\n markTouched(): void;\n}\n\nexport interface CvaControllerOptions<T> {\n value: ModelSignal<T | undefined>;\n setDisabled: (disabled: boolean) => void;\n componentName: string;\n hasExternalModelBinding: () => boolean;\n}\n\nconst noopChange = <T>(_value: T | undefined): void => {};\nconst noopTouched = (): void => {};\n\nexport const createCvaController = <T>(options: CvaControllerOptions<T>): CvaController<T> => {\n let onChange: (value: T | undefined) => void = noopChange;\n let onTouched: () => void = noopTouched;\n let warned = false;\n\n const maybeWarn = () => {\n if (warned) return;\n if (!options.hasExternalModelBinding()) return;\n warned = true;\n warnMixedFormAndModelBinding(options.componentName);\n };\n\n return {\n writeValue(value) {\n maybeWarn();\n options.value.set(value === null ? undefined : value);\n },\n registerOnChange(fn) {\n maybeWarn();\n onChange = fn;\n },\n registerOnTouched(fn) {\n onTouched = fn;\n },\n setDisabledState(disabled) {\n options.setDisabled(disabled);\n },\n notifyValueChange(value) {\n onChange(value);\n },\n markTouched() {\n onTouched();\n },\n };\n};\n","let counter = 0;\n\nexport const createId = (): string => {\n counter += 1;\n return String(counter);\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|