@wirekyt/angular 0.0.33 → 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.
Files changed (29) hide show
  1. package/dist/fesm2022/wirekyt-angular-marquee.mjs +296 -0
  2. package/dist/fesm2022/wirekyt-angular-marquee.mjs.map +1 -0
  3. package/dist/fesm2022/wirekyt-angular-navigation-menu.mjs +777 -0
  4. package/dist/fesm2022/wirekyt-angular-navigation-menu.mjs.map +1 -0
  5. package/dist/fesm2022/wirekyt-angular-pagination.mjs +321 -0
  6. package/dist/fesm2022/wirekyt-angular-pagination.mjs.map +1 -0
  7. package/dist/fesm2022/wirekyt-angular-portal.mjs +98 -0
  8. package/dist/fesm2022/wirekyt-angular-portal.mjs.map +1 -0
  9. package/dist/fesm2022/wirekyt-angular-qr-code.mjs +308 -0
  10. package/dist/fesm2022/wirekyt-angular-qr-code.mjs.map +1 -0
  11. package/dist/fesm2022/wirekyt-angular.mjs +12 -4
  12. package/dist/fesm2022/wirekyt-angular.mjs.map +1 -1
  13. package/dist/package.json +21 -1
  14. package/dist/types/wirekyt-angular-checkbox.d.ts +1 -1
  15. package/dist/types/wirekyt-angular-color-picker.d.ts +1 -1
  16. package/dist/types/wirekyt-angular-combobox.d.ts +1 -1
  17. package/dist/types/wirekyt-angular-date-picker.d.ts +1 -1
  18. package/dist/types/wirekyt-angular-marquee.d.ts +111 -0
  19. package/dist/types/wirekyt-angular-marquee.d.ts.map +1 -0
  20. package/dist/types/wirekyt-angular-navigation-menu.d.ts +187 -0
  21. package/dist/types/wirekyt-angular-navigation-menu.d.ts.map +1 -0
  22. package/dist/types/wirekyt-angular-pagination.d.ts +114 -0
  23. package/dist/types/wirekyt-angular-pagination.d.ts.map +1 -0
  24. package/dist/types/wirekyt-angular-portal.d.ts +30 -0
  25. package/dist/types/wirekyt-angular-portal.d.ts.map +1 -0
  26. package/dist/types/wirekyt-angular-qr-code.d.ts +109 -0
  27. package/dist/types/wirekyt-angular-qr-code.d.ts.map +1 -0
  28. package/dist/types/wirekyt-angular.d.ts +1 -1
  29. package/package.json +22 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wirekyt-angular-navigation-menu.mjs","sources":["../../src/components/navigation-menu/use-context.ts","../../src/components/navigation-menu/use.ts","../../src/components/navigation-menu/root.ts","../../src/components/navigation-menu/root-provider.ts","../../src/components/navigation-menu/list.ts","../../src/components/navigation-menu/use-item-context.ts","../../src/components/navigation-menu/item.ts","../../src/components/navigation-menu/trigger.ts","../../src/components/navigation-menu/content.ts","../../src/components/navigation-menu/link.ts","../../src/components/navigation-menu/indicator.ts","../../src/components/navigation-menu/item-indicator.ts","../../src/components/navigation-menu/use-viewport-context.ts","../../src/components/navigation-menu/viewport.ts","../../src/components/navigation-menu/viewport-positioner.ts","../../src/components/navigation-menu/arrow.ts","../../src/components/navigation-menu/context.ts","../../src/components/navigation-menu/wirekyt-angular-navigation-menu.ts"],"sourcesContent":["import type { ContextCarrier } from \"@wirekyt/angular\";\n\nimport { InjectionToken, inject, type Signal } from \"@angular/core\";\n\nimport type { UseNavigationMenuReturn } from \"./use\";\n\nexport const NAVIGATION_MENU_CONTEXT = new InjectionToken<UseNavigationMenuReturn>(\n \"WIREKYT.NAVIGATION_MENU_CONTEXT\",\n);\n\nexport function injectNavigationMenuContext(): UseNavigationMenuReturn {\n return inject(NAVIGATION_MENU_CONTEXT);\n}\n\nexport const NAVIGATION_MENU_CONTEXT_CARRIER = new InjectionToken<\n ContextCarrier<UseNavigationMenuReturn>\n>(\"WIREKYT.NAVIGATION_MENU_CONTEXT_CARRIER\");\n\nexport function injectNavigationMenuContextCarrier(): ContextCarrier<UseNavigationMenuReturn> {\n return inject(NAVIGATION_MENU_CONTEXT_CARRIER);\n}\n\nexport interface NavigationMenuRenderStrategyContext {\n readonly lazyMount: Signal<boolean>;\n readonly unmountOnExit: Signal<boolean>;\n}\n\nexport const NAVIGATION_MENU_RENDER_STRATEGY_CONTEXT =\n new InjectionToken<NavigationMenuRenderStrategyContext>(\n \"WIREKYT.NAVIGATION_MENU_RENDER_STRATEGY_CONTEXT\",\n );\n\nexport function injectNavigationMenuRenderStrategyContext(): NavigationMenuRenderStrategyContext {\n return inject(NAVIGATION_MENU_RENDER_STRATEGY_CONTEXT);\n}\n","import type { Machine } from \"@wirekyt/dom\";\n\nimport {\n createId,\n injectEnvironment,\n injectLocale,\n useMachine,\n type UseMachineReturn,\n} from \"@wirekyt/angular\";\nimport * as navigationMenu from \"@wirekyt/dom/machines/navigation-menu\";\n\ntype OptionalId<T extends { id: string }> = Omit<T, \"id\"> & { id?: string };\n\nexport interface UseNavigationMenuProps extends OptionalId<\n Omit<navigationMenu.Props, \"dir\" | \"getRootNode\">\n> {}\n\nexport type UseNavigationMenuReturn = UseMachineReturn<\n navigationMenu.Service[\"state\"],\n navigationMenu.Api,\n navigationMenu.Service\n>;\n\nexport interface UseNavigationMenuOptions {\n context: () => UseNavigationMenuProps;\n}\n\ntype NavigationMenuContext = Record<string, unknown>;\ntype NavigationMenuSchema = navigationMenu.Machine extends Machine<infer TSchema> ? TSchema : never;\n\nexport function useNavigationMenu(options: UseNavigationMenuOptions): UseNavigationMenuReturn {\n const locale = injectLocale();\n const environment = injectEnvironment();\n const fallbackId = createId();\n\n return useMachine<NavigationMenuSchema, navigationMenu.Api>({\n machine: navigationMenu.machine,\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 NavigationMenuContext;\n },\n connect: (service, normalize) => navigationMenu.connect(service, normalize),\n });\n}\n","import type * as navigationMenu from \"@wirekyt/dom/machines/navigation-menu\";\n\nimport {\n DestroyRef,\n Directive,\n ElementRef,\n EnvironmentInjector,\n Injector,\n Renderer2,\n type OutputEmitterRef,\n type ProviderToken,\n booleanAttribute,\n forwardRef,\n inject,\n input,\n model,\n output,\n type InputSignal,\n type InputSignalWithTransform,\n type ModelSignal,\n type Signal,\n} from \"@angular/core\";\nimport { bindProps, buildRootCarrier, type ContextCarrier } from \"@wirekyt/angular\";\n\nimport type {\n NavigationMenuElementIds,\n NavigationMenuIntlTranslations,\n NavigationMenuValueChangeDetails,\n} from \"./types\";\n\nimport { useNavigationMenu, type UseNavigationMenuReturn } from \"./use\";\nimport {\n NAVIGATION_MENU_CONTEXT,\n NAVIGATION_MENU_CONTEXT_CARRIER,\n NAVIGATION_MENU_RENDER_STRATEGY_CONTEXT,\n} from \"./use-context\";\n\n@Directive({\n selector: \"[navigation-menu-root]\",\n standalone: true,\n exportAs: \"navigationMenuRoot\",\n providers: [\n { provide: NAVIGATION_MENU_CONTEXT, useExisting: forwardRef(() => NavigationMenuRoot) },\n {\n provide: NAVIGATION_MENU_RENDER_STRATEGY_CONTEXT,\n useExisting: forwardRef(() => NavigationMenuRoot),\n },\n {\n provide: NAVIGATION_MENU_CONTEXT_CARRIER,\n useFactory: (root: NavigationMenuRoot) => root.getContextCarrier(),\n deps: [forwardRef(() => NavigationMenuRoot)],\n },\n ],\n})\nexport class NavigationMenuRoot implements UseNavigationMenuReturn {\n readonly id: InputSignal<string | undefined> = input<string | undefined>(undefined);\n readonly ids: InputSignal<Partial<NavigationMenuElementIds> | undefined> = input<\n Partial<NavigationMenuElementIds> | undefined\n >(undefined);\n readonly value: ModelSignal<string | undefined> = model<string | undefined>(undefined);\n readonly defaultValue: InputSignal<string | undefined> = input<string | undefined>(undefined);\n readonly orientation: InputSignal<navigationMenu.Props[\"orientation\"]> =\n input<navigationMenu.Props[\"orientation\"]>(undefined);\n readonly openDelay: InputSignal<number | undefined> = input<number | undefined>(undefined);\n readonly closeDelay: InputSignal<number | undefined> = input<number | undefined>(undefined);\n readonly disableClickTrigger: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n readonly disableHoverTrigger: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n readonly disablePointerLeaveClose: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n readonly translations: InputSignal<NavigationMenuIntlTranslations | undefined> = input<\n NavigationMenuIntlTranslations | undefined\n >(undefined);\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\n readonly valueDetailsChange: OutputEmitterRef<NavigationMenuValueChangeDetails> =\n output<NavigationMenuValueChangeDetails>();\n\n private readonly machine = useNavigationMenu({\n context: () => ({\n id: this.id(),\n ids: this.ids(),\n value: this.value(),\n defaultValue: this.defaultValue(),\n orientation: this.orientation(),\n openDelay: this.openDelay(),\n closeDelay: this.closeDelay(),\n disableClickTrigger: this.disableClickTrigger(),\n disableHoverTrigger: this.disableHoverTrigger(),\n disablePointerLeaveClose: this.disablePointerLeaveClose(),\n translations: this.translations(),\n onValueChange: (details) => {\n if (this.value() !== details.value) this.value.set(details.value);\n this.valueDetailsChange.emit(details);\n },\n }),\n });\n\n readonly state: Signal<navigationMenu.Service[\"state\"]> = this.machine.state;\n readonly api: Signal<navigationMenu.Api> = this.machine.api;\n readonly service: navigationMenu.Service = this.machine.service;\n readonly send: navigationMenu.Service[\"send\"] = this.machine.send;\n\n protected readonly contextCarrier: ContextCarrier<NavigationMenuRoot> =\n buildRootCarrier<NavigationMenuRoot>({\n providers: [{ provide: NAVIGATION_MENU_RENDER_STRATEGY_CONTEXT, useValue: this }],\n root: this,\n rootToken: NAVIGATION_MENU_CONTEXT as ProviderToken<NavigationMenuRoot>,\n originInjector: inject(Injector),\n environmentInjector: inject(EnvironmentInjector),\n });\n\n getContextCarrier(): ContextCarrier<NavigationMenuRoot> {\n return this.contextCarrier;\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","import type * as navigationMenu from \"@wirekyt/dom/machines/navigation-menu\";\n\nimport {\n DestroyRef,\n Directive,\n ElementRef,\n EnvironmentInjector,\n Injector,\n Renderer2,\n booleanAttribute,\n type InputSignal,\n type InputSignalWithTransform,\n type ProviderToken,\n type Signal,\n computed,\n forwardRef,\n inject,\n input,\n} from \"@angular/core\";\nimport { bindProps, buildRootCarrier, type ContextCarrier } from \"@wirekyt/angular\";\n\nimport type { UseNavigationMenuReturn } from \"./use\";\n\nimport {\n NAVIGATION_MENU_CONTEXT,\n NAVIGATION_MENU_CONTEXT_CARRIER,\n NAVIGATION_MENU_RENDER_STRATEGY_CONTEXT,\n} from \"./use-context\";\n\n@Directive({\n selector: \"[navigation-menu-root-provider]\",\n standalone: true,\n exportAs: \"navigationMenuRootProvider\",\n providers: [\n {\n provide: NAVIGATION_MENU_CONTEXT,\n useExisting: forwardRef(() => NavigationMenuRootProvider),\n },\n {\n provide: NAVIGATION_MENU_RENDER_STRATEGY_CONTEXT,\n useExisting: forwardRef(() => NavigationMenuRootProvider),\n },\n {\n provide: NAVIGATION_MENU_CONTEXT_CARRIER,\n useFactory: (provider: NavigationMenuRootProvider) => provider.getContextCarrier(),\n deps: [forwardRef(() => NavigationMenuRootProvider)],\n },\n ],\n})\nexport class NavigationMenuRootProvider implements UseNavigationMenuReturn {\n readonly value: InputSignal<UseNavigationMenuReturn> = input.required<UseNavigationMenuReturn>();\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<navigationMenu.Service[\"state\"]> = computed(() => this.value().state());\n readonly api: Signal<navigationMenu.Api> = computed(() => this.value().api());\n readonly send: navigationMenu.Service[\"send\"] = (event) => this.value().send(event);\n\n get service(): navigationMenu.Service {\n return this.value().service;\n }\n\n protected readonly contextCarrier: ContextCarrier<NavigationMenuRootProvider> =\n buildRootCarrier<NavigationMenuRootProvider>({\n providers: [{ provide: NAVIGATION_MENU_RENDER_STRATEGY_CONTEXT, useValue: this }],\n root: this,\n rootToken: NAVIGATION_MENU_CONTEXT as ProviderToken<NavigationMenuRootProvider>,\n originInjector: inject(Injector),\n environmentInjector: inject(EnvironmentInjector),\n });\n\n getContextCarrier(): ContextCarrier<NavigationMenuRootProvider> {\n return this.contextCarrier;\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","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectNavigationMenuContext } from \"./use-context\";\n\n@Directive({\n selector: \"[navigation-menu-list]\",\n standalone: true,\n exportAs: \"navigationMenuList\",\n})\nexport class NavigationMenuList {\n constructor() {\n const context = injectNavigationMenuContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getListProps(),\n });\n }\n}\n","import { InjectionToken, inject, type Signal } from \"@angular/core\";\n\nexport interface NavigationMenuItemContext {\n readonly value: Signal<string>;\n readonly disabled: Signal<boolean | undefined>;\n}\n\nexport const NAVIGATION_MENU_ITEM_CONTEXT = new InjectionToken<NavigationMenuItemContext>(\n \"WIREKYT.NAVIGATION_MENU_ITEM_CONTEXT\",\n);\n\nexport function injectNavigationMenuItemContext(): NavigationMenuItemContext {\n return inject(NAVIGATION_MENU_ITEM_CONTEXT);\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n Renderer2,\n booleanAttribute,\n computed,\n forwardRef,\n inject,\n input,\n type InputSignal,\n type InputSignalWithTransform,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectNavigationMenuContext } from \"./use-context\";\nimport { NAVIGATION_MENU_ITEM_CONTEXT, type NavigationMenuItemContext } from \"./use-item-context\";\n\n@Directive({\n selector: \"[navigation-menu-item]\",\n standalone: true,\n exportAs: \"navigationMenuItem\",\n providers: [\n {\n provide: NAVIGATION_MENU_ITEM_CONTEXT,\n useFactory: (item: NavigationMenuItem) => item.getItemContext(),\n deps: [forwardRef(() => NavigationMenuItem)],\n },\n ],\n})\nexport class NavigationMenuItem {\n readonly value: InputSignal<string> = input.required<string>();\n readonly disabled: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n\n private readonly itemContext: NavigationMenuItemContext = {\n value: computed(() => this.value()),\n disabled: computed(() => this.disabled()),\n };\n\n constructor() {\n const context = injectNavigationMenuContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () =>\n context.api().getItemProps({\n value: this.value(),\n disabled: this.disabled(),\n }),\n });\n }\n\n getItemContext(): NavigationMenuItemContext {\n return this.itemContext;\n }\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n Renderer2,\n booleanAttribute,\n inject,\n input,\n type InputSignalWithTransform,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectNavigationMenuContext } from \"./use-context\";\nimport { injectNavigationMenuItemContext } from \"./use-item-context\";\n\nconst optionalBooleanAttribute = (value: unknown): boolean | undefined =>\n value === undefined || value === null ? undefined : booleanAttribute(value);\n\n@Directive({\n selector: \"[navigation-menu-trigger]\",\n standalone: true,\n exportAs: \"navigationMenuTrigger\",\n})\nexport class NavigationMenuTrigger {\n readonly disabled: InputSignalWithTransform<boolean | undefined, unknown> = input<\n boolean | undefined,\n unknown\n >(undefined, { transform: optionalBooleanAttribute });\n\n constructor() {\n const context = injectNavigationMenuContext();\n const item = injectNavigationMenuItemContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () =>\n context.api().getTriggerProps({\n value: item.value(),\n disabled: this.disabled() ?? item.disabled(),\n }),\n });\n }\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n EmbeddedViewRef,\n Renderer2,\n TemplateRef,\n ViewContainerRef,\n effect,\n forwardRef,\n inject,\n input,\n untracked,\n type InputSignal,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\nimport { PRESENCE_CONTEXT, usePresence } from \"@wirekyt/angular/presence\";\n\nimport {\n injectNavigationMenuContext,\n injectNavigationMenuRenderStrategyContext,\n} from \"./use-context\";\nimport { NAVIGATION_MENU_ITEM_CONTEXT } from \"./use-item-context\";\n\n@Directive({\n selector: \"[navigation-menu-content]\",\n standalone: true,\n exportAs: \"navigationMenuContent\",\n providers: [\n {\n provide: PRESENCE_CONTEXT,\n useFactory: (content: NavigationMenuContent) => content.presence,\n deps: [forwardRef(() => NavigationMenuContent)],\n },\n ],\n})\nexport class NavigationMenuContent {\n readonly value: InputSignal<string | undefined> = input<string | undefined>(undefined);\n\n private readonly context = injectNavigationMenuContext();\n private readonly item = inject(NAVIGATION_MENU_ITEM_CONTEXT, { optional: true });\n private readonly renderStrategy = injectNavigationMenuRenderStrategyContext();\n\n private get resolvedValue(): string {\n const value = this.value() ?? this.item?.value();\n if (value === undefined) {\n throw new Error(\n \"[navigation-menu-content] requires either a [value] input or an ancestor [navigation-menu-item].\",\n );\n }\n return value;\n }\n\n readonly presence = usePresence({\n context: () => ({\n present: this.context.api().value === this.resolvedValue,\n lazyMount: this.renderStrategy.lazyMount(),\n unmountOnExit: this.renderStrategy.unmountOnExit(),\n }),\n });\n\n constructor() {\n const renderer = inject(Renderer2);\n const destroyRef = inject(DestroyRef);\n const template = inject(TemplateRef<unknown>, { optional: true });\n const container = inject(ViewContainerRef);\n const host = inject(ElementRef);\n const hostNode = host.nativeElement as Node;\n const originalParent = renderer.parentNode(hostNode) as Node | null;\n const anchor = template ? hostNode : renderer.createComment(\"navigation-menu-content\");\n const elementRef = template ? { nativeElement: null as HTMLElement | null } : host;\n const viewportProxyRef = { nativeElement: renderer.createElement(\"div\") as HTMLElement };\n const triggerProxyRef = { nativeElement: renderer.createElement(\"div\") as HTMLElement };\n let view: EmbeddedViewRef<unknown> | undefined;\n\n if (!template && originalParent) {\n renderer.insertBefore(originalParent, anchor, renderer.nextSibling(hostNode));\n }\n\n const detach = (node: Node): void => {\n const parent = renderer.parentNode(node);\n if (parent) renderer.removeChild(parent, node);\n };\n\n effect(() => {\n const unmounted = this.presence.unmounted();\n const api = this.context.api();\n\n if (template) {\n if (unmounted) {\n elementRef.nativeElement = null;\n container.clear();\n view = undefined;\n } else if (!view) {\n view = container.createEmbeddedView(template);\n elementRef.nativeElement =\n view.rootNodes.find((node: Node) => node.nodeType === 1) ?? null;\n }\n }\n\n const element = elementRef.nativeElement;\n untracked(() => this.presence.setNode(element));\n\n const viewportNode = api.getViewportNode();\n const shouldPortal = !unmounted && api.isViewportRendered && viewportNode !== null;\n\n if (shouldPortal && element && originalParent) {\n if (renderer.parentNode(viewportProxyRef.nativeElement) !== originalParent) {\n renderer.insertBefore(originalParent, viewportProxyRef.nativeElement, anchor);\n renderer.insertBefore(originalParent, triggerProxyRef.nativeElement, anchor);\n }\n if (renderer.parentNode(element) !== viewportNode) {\n renderer.appendChild(viewportNode, element);\n }\n } else {\n detach(viewportProxyRef.nativeElement);\n detach(triggerProxyRef.nativeElement);\n if (element && originalParent && renderer.parentNode(element) !== originalParent) {\n renderer.insertBefore(originalParent, element, anchor);\n }\n }\n });\n\n bindProps({\n elementRef,\n renderer,\n destroyRef,\n props: () => {\n this.presence.unmounted();\n return {\n ...this.context.api().getContentProps({ value: this.resolvedValue }),\n ...this.presence.getPresenceProps(),\n };\n },\n });\n\n bindProps({\n elementRef: viewportProxyRef,\n renderer,\n destroyRef,\n props: () => this.context.api().getViewportProxyProps({ value: this.resolvedValue }),\n });\n\n bindProps({\n elementRef: triggerProxyRef,\n renderer,\n destroyRef,\n props: () => this.context.api().getTriggerProxyProps({ value: this.resolvedValue }),\n });\n\n destroyRef.onDestroy(() => {\n const element = elementRef.nativeElement;\n if (element && originalParent && renderer.parentNode(element) !== originalParent) {\n renderer.insertBefore(originalParent, element, anchor);\n }\n detach(viewportProxyRef.nativeElement);\n detach(triggerProxyRef.nativeElement);\n if (!template && originalParent && renderer.parentNode(anchor) === originalParent) {\n renderer.removeChild(originalParent, anchor);\n }\n });\n }\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n Renderer2,\n booleanAttribute,\n inject,\n input,\n output,\n type InputSignal,\n type InputSignalWithTransform,\n type OutputEmitterRef,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectNavigationMenuContext } from \"./use-context\";\nimport { NAVIGATION_MENU_ITEM_CONTEXT, type NavigationMenuItemContext } from \"./use-item-context\";\n\n@Directive({\n selector: \"[navigation-menu-link]\",\n standalone: true,\n exportAs: \"navigationMenuLink\",\n})\nexport class NavigationMenuLink {\n readonly value: InputSignal<string | undefined> = input<string | undefined>(undefined);\n readonly current: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n readonly closeOnClick: InputSignal<boolean | undefined> = input<boolean | undefined>(undefined);\n readonly select: OutputEmitterRef<CustomEvent> = output<CustomEvent>();\n\n private readonly itemContext: NavigationMenuItemContext | null = inject(\n NAVIGATION_MENU_ITEM_CONTEXT,\n { optional: true },\n );\n\n constructor() {\n const context = injectNavigationMenuContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => {\n const value = this.value() ?? this.itemContext?.value();\n if (value === undefined) {\n throw new Error(\n \"[navigation-menu-link] requires either a [value] input or an ancestor [navigation-menu-item].\",\n );\n }\n return context.api().getLinkProps({\n value,\n current: this.current(),\n closeOnClick: this.closeOnClick(),\n onSelect: (event) => {\n this.select.emit(event);\n },\n });\n },\n });\n }\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n EmbeddedViewRef,\n Renderer2,\n TemplateRef,\n ViewContainerRef,\n effect,\n forwardRef,\n inject,\n untracked,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\nimport { PRESENCE_CONTEXT, usePresence } from \"@wirekyt/angular/presence\";\n\nimport {\n injectNavigationMenuContext,\n injectNavigationMenuRenderStrategyContext,\n} from \"./use-context\";\n\n@Directive({\n selector: \"[navigation-menu-indicator]\",\n standalone: true,\n exportAs: \"navigationMenuIndicator\",\n providers: [\n {\n provide: PRESENCE_CONTEXT,\n useFactory: (indicator: NavigationMenuIndicator) => indicator.presence,\n deps: [forwardRef(() => NavigationMenuIndicator)],\n },\n ],\n})\nexport class NavigationMenuIndicator {\n private readonly context = injectNavigationMenuContext();\n private readonly renderStrategy = injectNavigationMenuRenderStrategyContext();\n readonly presence = usePresence({\n context: () => ({\n present: this.context.api().open,\n lazyMount: this.renderStrategy.lazyMount(),\n unmountOnExit: this.renderStrategy.unmountOnExit(),\n }),\n });\n\n constructor() {\n const template = inject(TemplateRef<unknown>, { optional: true });\n const container = inject(ViewContainerRef);\n const host = inject(ElementRef);\n const elementRef = template ? { nativeElement: null as HTMLElement | null } : host;\n let view: EmbeddedViewRef<unknown> | undefined;\n\n effect(() => {\n const unmounted = this.presence.unmounted();\n if (template) {\n if (unmounted) {\n elementRef.nativeElement = null;\n container.clear();\n view = undefined;\n } else if (!view) {\n view = container.createEmbeddedView(template);\n elementRef.nativeElement =\n view.rootNodes.find((node: Node) => node.nodeType === 1) ?? null;\n }\n }\n untracked(() => this.presence.setNode(elementRef.nativeElement));\n });\n\n bindProps({\n elementRef,\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => {\n this.presence.unmounted();\n return {\n ...this.context.api().getIndicatorProps(),\n ...this.presence.getPresenceProps(),\n };\n },\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectNavigationMenuContext } from \"./use-context\";\nimport { injectNavigationMenuItemContext } from \"./use-item-context\";\n\n@Directive({\n selector: \"[navigation-menu-item-indicator]\",\n standalone: true,\n exportAs: \"navigationMenuItemIndicator\",\n})\nexport class NavigationMenuItemIndicator {\n constructor() {\n const context = injectNavigationMenuContext();\n const item = injectNavigationMenuItemContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () =>\n context.api().getItemIndicatorProps({\n value: item.value(),\n disabled: item.disabled(),\n }),\n });\n }\n}\n","import { InjectionToken, inject, type Signal } from \"@angular/core\";\n\nimport type { NavigationMenuViewportProps } from \"./types\";\n\nexport interface NavigationMenuViewportContext {\n readonly align: Signal<NavigationMenuViewportProps[\"align\"]>;\n}\n\nexport const NAVIGATION_MENU_VIEWPORT_CONTEXT = new InjectionToken<NavigationMenuViewportContext>(\n \"WIREKYT.NAVIGATION_MENU_VIEWPORT_CONTEXT\",\n);\n\nexport function injectNavigationMenuViewportContext(): NavigationMenuViewportContext {\n return inject(NAVIGATION_MENU_VIEWPORT_CONTEXT);\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n EmbeddedViewRef,\n Renderer2,\n TemplateRef,\n ViewContainerRef,\n effect,\n forwardRef,\n inject,\n untracked,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\nimport { PRESENCE_CONTEXT, usePresence } from \"@wirekyt/angular/presence\";\n\nimport {\n injectNavigationMenuContext,\n injectNavigationMenuRenderStrategyContext,\n} from \"./use-context\";\nimport { injectNavigationMenuViewportContext } from \"./use-viewport-context\";\n\n@Directive({\n selector: \"[navigation-menu-viewport]\",\n standalone: true,\n exportAs: \"navigationMenuViewport\",\n providers: [\n {\n provide: PRESENCE_CONTEXT,\n useFactory: (viewport: NavigationMenuViewport) => viewport.presence,\n deps: [forwardRef(() => NavigationMenuViewport)],\n },\n ],\n})\nexport class NavigationMenuViewport {\n private readonly context = injectNavigationMenuContext();\n private readonly viewport = injectNavigationMenuViewportContext();\n private readonly renderStrategy = injectNavigationMenuRenderStrategyContext();\n readonly presence = usePresence({\n context: () => ({\n present: this.context.api().open,\n lazyMount: this.renderStrategy.lazyMount(),\n unmountOnExit: this.renderStrategy.unmountOnExit(),\n }),\n });\n\n constructor() {\n const template = inject(TemplateRef<unknown>, { optional: true });\n const container = inject(ViewContainerRef);\n const host = inject(ElementRef);\n const elementRef = template ? { nativeElement: null as HTMLElement | null } : host;\n let view: EmbeddedViewRef<unknown> | undefined;\n\n effect(() => {\n const unmounted = this.presence.unmounted();\n if (template) {\n if (unmounted) {\n elementRef.nativeElement = null;\n container.clear();\n view = undefined;\n } else if (!view) {\n view = container.createEmbeddedView(template);\n elementRef.nativeElement =\n view.rootNodes.find((node: Node) => node.nodeType === 1) ?? null;\n }\n }\n untracked(() => this.presence.setNode(elementRef.nativeElement));\n });\n\n bindProps({\n elementRef,\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => {\n this.presence.unmounted();\n return {\n ...this.context.api().getViewportProps({ align: this.viewport.align() }),\n ...this.presence.getPresenceProps(),\n };\n },\n });\n }\n}\n","import {\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\";\n\nimport type { NavigationMenuViewportProps } from \"./types\";\n\nimport { injectNavigationMenuContext } from \"./use-context\";\nimport {\n NAVIGATION_MENU_VIEWPORT_CONTEXT,\n type NavigationMenuViewportContext,\n} from \"./use-viewport-context\";\n\n@Directive({\n selector: \"[navigation-menu-viewport-positioner]\",\n standalone: true,\n exportAs: \"navigationMenuViewportPositioner\",\n providers: [\n {\n provide: NAVIGATION_MENU_VIEWPORT_CONTEXT,\n useFactory: (positioner: NavigationMenuViewportPositioner) => positioner.getViewportContext(),\n deps: [forwardRef(() => NavigationMenuViewportPositioner)],\n },\n ],\n})\nexport class NavigationMenuViewportPositioner {\n readonly align: InputSignal<NavigationMenuViewportProps[\"align\"]> =\n input<NavigationMenuViewportProps[\"align\"]>(undefined);\n\n private readonly viewportContext: NavigationMenuViewportContext = {\n align: computed(() => this.align()),\n };\n\n constructor() {\n const context = injectNavigationMenuContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () =>\n context.api().getViewportPositionerProps({\n align: this.align(),\n }),\n });\n }\n\n getViewportContext(): NavigationMenuViewportContext {\n return this.viewportContext;\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectNavigationMenuContext } from \"./use-context\";\nimport { NAVIGATION_MENU_ITEM_CONTEXT } from \"./use-item-context\";\n\n@Directive({\n selector: \"[navigation-menu-arrow]\",\n standalone: true,\n exportAs: \"navigationMenuArrow\",\n})\nexport class NavigationMenuArrow {\n private readonly itemContext = inject(NAVIGATION_MENU_ITEM_CONTEXT, { optional: true });\n\n constructor() {\n const context = injectNavigationMenuContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => {\n const value = this.itemContext?.value();\n if (value != null) {\n return context.api().getArrowProps({ value });\n }\n return context.api().getArrowProps();\n },\n });\n }\n}\n","import {\n DestroyRef,\n Directive,\n TemplateRef,\n ViewContainerRef,\n effect,\n inject,\n} from \"@angular/core\";\n\nimport type { UseNavigationMenuReturn } from \"./use\";\n\nimport { injectNavigationMenuContext } from \"./use-context\";\n\nexport interface NavigationMenuContextTemplate {\n $implicit: UseNavigationMenuReturn[\"api\"];\n api: UseNavigationMenuReturn[\"api\"];\n}\n\n@Directive({\n selector: \"[navigation-menu-context]\",\n standalone: true,\n exportAs: \"navigationMenuContext\",\n})\nexport class NavigationMenuContext {\n static ngTemplateContextGuard(\n _directive: NavigationMenuContext,\n context: unknown,\n ): context is NavigationMenuContextTemplate {\n void context;\n return true;\n }\n\n private readonly navigationMenu = injectNavigationMenuContext();\n private readonly templateRef = inject<TemplateRef<NavigationMenuContextTemplate>>(TemplateRef);\n private readonly viewContainer = inject(ViewContainerRef);\n\n constructor() {\n const view = this.viewContainer.createEmbeddedView(this.templateRef, {\n $implicit: this.navigationMenu.api,\n api: this.navigationMenu.api,\n });\n\n effect(() => {\n this.navigationMenu.api();\n view.detectChanges();\n });\n\n inject(DestroyRef).onDestroy(() => view.destroy());\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,321 @@
1
+ import * as pagination from '@wirekyt/dom/machines/pagination';
2
+ export { anatomy as paginationAnatomy } from '@wirekyt/dom/machines/pagination';
3
+ import * as i0 from '@angular/core';
4
+ import { InjectionToken, inject, input, model, output, DestroyRef, Renderer2, ElementRef, forwardRef, Directive, computed, TemplateRef, ViewContainerRef, effect } from '@angular/core';
5
+ import { injectLocale, injectEnvironment, createId, useMachine, bindProps } from '@wirekyt/angular';
6
+
7
+ const PAGINATION_CONTEXT = new InjectionToken("WIREKYT.PAGINATION_CONTEXT");
8
+ function injectPaginationContext() {
9
+ return inject(PAGINATION_CONTEXT);
10
+ }
11
+
12
+ function usePagination(options = { context: () => ({}) }) {
13
+ const locale = injectLocale();
14
+ const environment = injectEnvironment();
15
+ const fallbackId = createId();
16
+ return useMachine({
17
+ machine: pagination.machine,
18
+ context: () => {
19
+ const props = options.context();
20
+ return {
21
+ ...props,
22
+ dir: locale.dir,
23
+ getRootNode: environment.getRootNode,
24
+ id: props.id ?? fallbackId,
25
+ };
26
+ },
27
+ connect: (service, normalize) => pagination.connect(service, normalize),
28
+ });
29
+ }
30
+
31
+ class PaginationRoot {
32
+ id = input(undefined, /* @ts-ignore */
33
+ ...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
34
+ ids = input(undefined, /* @ts-ignore */
35
+ ...(ngDevMode ? [{ debugName: "ids" }] : /* istanbul ignore next */ []));
36
+ count = input(undefined, /* @ts-ignore */
37
+ ...(ngDevMode ? [{ debugName: "count" }] : /* istanbul ignore next */ []));
38
+ page = model(undefined, /* @ts-ignore */
39
+ ...(ngDevMode ? [{ debugName: "page" }] : /* istanbul ignore next */ []));
40
+ defaultPage = input(undefined, /* @ts-ignore */
41
+ ...(ngDevMode ? [{ debugName: "defaultPage" }] : /* istanbul ignore next */ []));
42
+ pageSize = model(undefined, /* @ts-ignore */
43
+ ...(ngDevMode ? [{ debugName: "pageSize" }] : /* istanbul ignore next */ []));
44
+ defaultPageSize = input(undefined, /* @ts-ignore */
45
+ ...(ngDevMode ? [{ debugName: "defaultPageSize" }] : /* istanbul ignore next */ []));
46
+ siblingCount = input(undefined, /* @ts-ignore */
47
+ ...(ngDevMode ? [{ debugName: "siblingCount" }] : /* istanbul ignore next */ []));
48
+ boundaryCount = input(undefined, /* @ts-ignore */
49
+ ...(ngDevMode ? [{ debugName: "boundaryCount" }] : /* istanbul ignore next */ []));
50
+ type = input(undefined, /* @ts-ignore */
51
+ ...(ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ []));
52
+ getPageUrl = input(undefined, /* @ts-ignore */
53
+ ...(ngDevMode ? [{ debugName: "getPageUrl" }] : /* istanbul ignore next */ []));
54
+ translations = input(undefined, /* @ts-ignore */
55
+ ...(ngDevMode ? [{ debugName: "translations" }] : /* istanbul ignore next */ []));
56
+ pageDetailsChange = output();
57
+ pageSizeDetailsChange = output();
58
+ machine = usePagination({
59
+ context: () => ({
60
+ id: this.id(),
61
+ ids: this.ids(),
62
+ count: this.count(),
63
+ page: this.page(),
64
+ defaultPage: this.defaultPage(),
65
+ pageSize: this.pageSize(),
66
+ defaultPageSize: this.defaultPageSize(),
67
+ siblingCount: this.siblingCount(),
68
+ boundaryCount: this.boundaryCount(),
69
+ type: this.type(),
70
+ getPageUrl: this.getPageUrl(),
71
+ translations: this.translations(),
72
+ onPageChange: (details) => {
73
+ const currentPage = this.page();
74
+ if (currentPage !== details.page) {
75
+ this.page.set(details.page);
76
+ }
77
+ this.pageDetailsChange.emit(details);
78
+ },
79
+ onPageSizeChange: (details) => {
80
+ const currentPageSize = this.pageSize();
81
+ if (currentPageSize !== details.pageSize) {
82
+ this.pageSize.set(details.pageSize);
83
+ }
84
+ this.pageSizeDetailsChange.emit(details);
85
+ },
86
+ }),
87
+ });
88
+ state = this.machine.state;
89
+ api = this.machine.api;
90
+ service = this.machine.service;
91
+ send = this.machine.send;
92
+ constructor() {
93
+ bindProps({
94
+ elementRef: inject(ElementRef),
95
+ renderer: inject(Renderer2),
96
+ destroyRef: inject(DestroyRef),
97
+ props: () => this.api().getRootProps(),
98
+ });
99
+ }
100
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: PaginationRoot, deps: [], target: i0.ɵɵFactoryTarget.Directive });
101
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.3", type: PaginationRoot, isStandalone: true, selector: "[pagination-root]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, ids: { classPropertyName: "ids", publicName: "ids", isSignal: true, isRequired: false, transformFunction: null }, count: { classPropertyName: "count", publicName: "count", isSignal: true, isRequired: false, transformFunction: null }, page: { classPropertyName: "page", publicName: "page", isSignal: true, isRequired: false, transformFunction: null }, defaultPage: { classPropertyName: "defaultPage", publicName: "defaultPage", isSignal: true, isRequired: false, transformFunction: null }, pageSize: { classPropertyName: "pageSize", publicName: "pageSize", isSignal: true, isRequired: false, transformFunction: null }, defaultPageSize: { classPropertyName: "defaultPageSize", publicName: "defaultPageSize", isSignal: true, isRequired: false, transformFunction: null }, siblingCount: { classPropertyName: "siblingCount", publicName: "siblingCount", isSignal: true, isRequired: false, transformFunction: null }, boundaryCount: { classPropertyName: "boundaryCount", publicName: "boundaryCount", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, getPageUrl: { classPropertyName: "getPageUrl", publicName: "getPageUrl", isSignal: true, isRequired: false, transformFunction: null }, translations: { classPropertyName: "translations", publicName: "translations", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { page: "pageChange", pageSize: "pageSizeChange", pageDetailsChange: "pageDetailsChange", pageSizeDetailsChange: "pageSizeDetailsChange" }, providers: [{ provide: PAGINATION_CONTEXT, useExisting: forwardRef(() => PaginationRoot) }], exportAs: ["paginationRoot"], ngImport: i0 });
102
+ }
103
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: PaginationRoot, decorators: [{
104
+ type: Directive,
105
+ args: [{
106
+ selector: "[pagination-root]",
107
+ standalone: true,
108
+ exportAs: "paginationRoot",
109
+ providers: [{ provide: PAGINATION_CONTEXT, useExisting: forwardRef(() => PaginationRoot) }],
110
+ }]
111
+ }], ctorParameters: () => [], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], ids: [{ type: i0.Input, args: [{ isSignal: true, alias: "ids", required: false }] }], count: [{ type: i0.Input, args: [{ isSignal: true, alias: "count", required: false }] }], page: [{ type: i0.Input, args: [{ isSignal: true, alias: "page", required: false }] }, { type: i0.Output, args: ["pageChange"] }], defaultPage: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultPage", required: false }] }], pageSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageSize", required: false }] }, { type: i0.Output, args: ["pageSizeChange"] }], defaultPageSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultPageSize", required: false }] }], siblingCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "siblingCount", required: false }] }], boundaryCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "boundaryCount", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], getPageUrl: [{ type: i0.Input, args: [{ isSignal: true, alias: "getPageUrl", required: false }] }], translations: [{ type: i0.Input, args: [{ isSignal: true, alias: "translations", required: false }] }], pageDetailsChange: [{ type: i0.Output, args: ["pageDetailsChange"] }], pageSizeDetailsChange: [{ type: i0.Output, args: ["pageSizeDetailsChange"] }] } });
112
+
113
+ class PaginationRootProvider {
114
+ value = input.required(/* @ts-ignore */
115
+ ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
116
+ state = computed(() => this.value().state(), /* @ts-ignore */
117
+ ...(ngDevMode ? [{ debugName: "state" }] : /* istanbul ignore next */ []));
118
+ api = computed(() => this.value().api(), /* @ts-ignore */
119
+ ...(ngDevMode ? [{ debugName: "api" }] : /* istanbul ignore next */ []));
120
+ send = (event) => this.value().send(event);
121
+ get service() {
122
+ return this.value().service;
123
+ }
124
+ constructor() {
125
+ bindProps({
126
+ elementRef: inject(ElementRef),
127
+ renderer: inject(Renderer2),
128
+ destroyRef: inject(DestroyRef),
129
+ props: () => this.api().getRootProps(),
130
+ });
131
+ }
132
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: PaginationRootProvider, deps: [], target: i0.ɵɵFactoryTarget.Directive });
133
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.3", type: PaginationRootProvider, isStandalone: true, selector: "[pagination-root-provider]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null } }, providers: [
134
+ { provide: PAGINATION_CONTEXT, useExisting: forwardRef(() => PaginationRootProvider) },
135
+ ], exportAs: ["paginationRootProvider"], ngImport: i0 });
136
+ }
137
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: PaginationRootProvider, decorators: [{
138
+ type: Directive,
139
+ args: [{
140
+ selector: "[pagination-root-provider]",
141
+ standalone: true,
142
+ exportAs: "paginationRootProvider",
143
+ providers: [
144
+ { provide: PAGINATION_CONTEXT, useExisting: forwardRef(() => PaginationRootProvider) },
145
+ ],
146
+ }]
147
+ }], ctorParameters: () => [], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: true }] }] } });
148
+
149
+ class PaginationItem {
150
+ value = input.required(/* @ts-ignore */
151
+ ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
152
+ constructor() {
153
+ const pagination = injectPaginationContext();
154
+ bindProps({
155
+ elementRef: inject(ElementRef),
156
+ renderer: inject(Renderer2),
157
+ destroyRef: inject(DestroyRef),
158
+ props: () => pagination.api().getItemProps({ type: "page", value: this.value() }),
159
+ });
160
+ }
161
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: PaginationItem, deps: [], target: i0.ɵɵFactoryTarget.Directive });
162
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.3", type: PaginationItem, isStandalone: true, selector: "[pagination-item]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null } }, exportAs: ["paginationItem"], ngImport: i0 });
163
+ }
164
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: PaginationItem, decorators: [{
165
+ type: Directive,
166
+ args: [{
167
+ selector: "[pagination-item]",
168
+ standalone: true,
169
+ exportAs: "paginationItem",
170
+ }]
171
+ }], ctorParameters: () => [], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: true }] }] } });
172
+
173
+ class PaginationEllipsis {
174
+ index = input.required(/* @ts-ignore */
175
+ ...(ngDevMode ? [{ debugName: "index" }] : /* istanbul ignore next */ []));
176
+ constructor() {
177
+ const pagination = injectPaginationContext();
178
+ bindProps({
179
+ elementRef: inject(ElementRef),
180
+ renderer: inject(Renderer2),
181
+ destroyRef: inject(DestroyRef),
182
+ props: () => pagination.api().getEllipsisProps({ index: this.index() }),
183
+ });
184
+ }
185
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: PaginationEllipsis, deps: [], target: i0.ɵɵFactoryTarget.Directive });
186
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.3", type: PaginationEllipsis, isStandalone: true, selector: "[pagination-ellipsis]", inputs: { index: { classPropertyName: "index", publicName: "index", isSignal: true, isRequired: true, transformFunction: null } }, exportAs: ["paginationEllipsis"], ngImport: i0 });
187
+ }
188
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: PaginationEllipsis, decorators: [{
189
+ type: Directive,
190
+ args: [{
191
+ selector: "[pagination-ellipsis]",
192
+ standalone: true,
193
+ exportAs: "paginationEllipsis",
194
+ }]
195
+ }], ctorParameters: () => [], propDecorators: { index: [{ type: i0.Input, args: [{ isSignal: true, alias: "index", required: true }] }] } });
196
+
197
+ class PaginationPrevTrigger {
198
+ constructor() {
199
+ const pagination = injectPaginationContext();
200
+ bindProps({
201
+ elementRef: inject(ElementRef),
202
+ renderer: inject(Renderer2),
203
+ destroyRef: inject(DestroyRef),
204
+ props: () => pagination.api().getPrevTriggerProps(),
205
+ });
206
+ }
207
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: PaginationPrevTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });
208
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.3", type: PaginationPrevTrigger, isStandalone: true, selector: "[pagination-prev-trigger]", exportAs: ["paginationPrevTrigger"], ngImport: i0 });
209
+ }
210
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: PaginationPrevTrigger, decorators: [{
211
+ type: Directive,
212
+ args: [{
213
+ selector: "[pagination-prev-trigger]",
214
+ standalone: true,
215
+ exportAs: "paginationPrevTrigger",
216
+ }]
217
+ }], ctorParameters: () => [] });
218
+
219
+ class PaginationNextTrigger {
220
+ constructor() {
221
+ const pagination = injectPaginationContext();
222
+ bindProps({
223
+ elementRef: inject(ElementRef),
224
+ renderer: inject(Renderer2),
225
+ destroyRef: inject(DestroyRef),
226
+ props: () => pagination.api().getNextTriggerProps(),
227
+ });
228
+ }
229
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: PaginationNextTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });
230
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.3", type: PaginationNextTrigger, isStandalone: true, selector: "[pagination-next-trigger]", exportAs: ["paginationNextTrigger"], ngImport: i0 });
231
+ }
232
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: PaginationNextTrigger, decorators: [{
233
+ type: Directive,
234
+ args: [{
235
+ selector: "[pagination-next-trigger]",
236
+ standalone: true,
237
+ exportAs: "paginationNextTrigger",
238
+ }]
239
+ }], ctorParameters: () => [] });
240
+
241
+ class PaginationFirstTrigger {
242
+ constructor() {
243
+ const pagination = injectPaginationContext();
244
+ bindProps({
245
+ elementRef: inject(ElementRef),
246
+ renderer: inject(Renderer2),
247
+ destroyRef: inject(DestroyRef),
248
+ props: () => pagination.api().getFirstTriggerProps(),
249
+ });
250
+ }
251
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: PaginationFirstTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });
252
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.3", type: PaginationFirstTrigger, isStandalone: true, selector: "[pagination-first-trigger]", exportAs: ["paginationFirstTrigger"], ngImport: i0 });
253
+ }
254
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: PaginationFirstTrigger, decorators: [{
255
+ type: Directive,
256
+ args: [{
257
+ selector: "[pagination-first-trigger]",
258
+ standalone: true,
259
+ exportAs: "paginationFirstTrigger",
260
+ }]
261
+ }], ctorParameters: () => [] });
262
+
263
+ class PaginationLastTrigger {
264
+ constructor() {
265
+ const pagination = injectPaginationContext();
266
+ bindProps({
267
+ elementRef: inject(ElementRef),
268
+ renderer: inject(Renderer2),
269
+ destroyRef: inject(DestroyRef),
270
+ props: () => pagination.api().getLastTriggerProps(),
271
+ });
272
+ }
273
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: PaginationLastTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });
274
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.3", type: PaginationLastTrigger, isStandalone: true, selector: "[pagination-last-trigger]", exportAs: ["paginationLastTrigger"], ngImport: i0 });
275
+ }
276
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: PaginationLastTrigger, decorators: [{
277
+ type: Directive,
278
+ args: [{
279
+ selector: "[pagination-last-trigger]",
280
+ standalone: true,
281
+ exportAs: "paginationLastTrigger",
282
+ }]
283
+ }], ctorParameters: () => [] });
284
+
285
+ class PaginationContext {
286
+ static ngTemplateContextGuard(_directive, context) {
287
+ void context;
288
+ return true;
289
+ }
290
+ pagination = injectPaginationContext();
291
+ templateRef = inject(TemplateRef);
292
+ viewContainer = inject(ViewContainerRef);
293
+ constructor() {
294
+ const view = this.viewContainer.createEmbeddedView(this.templateRef, {
295
+ $implicit: this.pagination.api,
296
+ api: this.pagination.api,
297
+ });
298
+ effect(() => {
299
+ this.pagination.api();
300
+ view.detectChanges();
301
+ });
302
+ inject(DestroyRef).onDestroy(() => view.destroy());
303
+ }
304
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: PaginationContext, deps: [], target: i0.ɵɵFactoryTarget.Directive });
305
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.3", type: PaginationContext, isStandalone: true, selector: "[pagination-context]", exportAs: ["paginationContext"], ngImport: i0 });
306
+ }
307
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: PaginationContext, decorators: [{
308
+ type: Directive,
309
+ args: [{
310
+ selector: "[pagination-context]",
311
+ standalone: true,
312
+ exportAs: "paginationContext",
313
+ }]
314
+ }], ctorParameters: () => [] });
315
+
316
+ /**
317
+ * Generated bundle index. Do not edit.
318
+ */
319
+
320
+ export { PAGINATION_CONTEXT, PaginationContext, PaginationEllipsis, PaginationFirstTrigger, PaginationItem, PaginationLastTrigger, PaginationNextTrigger, PaginationPrevTrigger, PaginationRoot, PaginationRootProvider, injectPaginationContext, usePagination };
321
+ //# sourceMappingURL=wirekyt-angular-pagination.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wirekyt-angular-pagination.mjs","sources":["../../src/components/pagination/use-context.ts","../../src/components/pagination/use.ts","../../src/components/pagination/root.ts","../../src/components/pagination/root-provider.ts","../../src/components/pagination/item.ts","../../src/components/pagination/ellipsis.ts","../../src/components/pagination/prev-trigger.ts","../../src/components/pagination/next-trigger.ts","../../src/components/pagination/first-trigger.ts","../../src/components/pagination/last-trigger.ts","../../src/components/pagination/context.ts","../../src/components/pagination/wirekyt-angular-pagination.ts"],"sourcesContent":["import { InjectionToken, inject } from \"@angular/core\";\n\nimport type { UsePaginationReturn } from \"./use\";\n\nexport const PAGINATION_CONTEXT = new InjectionToken<UsePaginationReturn>(\n \"WIREKYT.PAGINATION_CONTEXT\",\n);\n\nexport function injectPaginationContext(): UsePaginationReturn {\n return inject(PAGINATION_CONTEXT);\n}\n","import type { Machine } from \"@wirekyt/dom\";\n\nimport {\n createId,\n injectEnvironment,\n injectLocale,\n useMachine,\n type UseMachineReturn,\n} from \"@wirekyt/angular\";\nimport * as pagination from \"@wirekyt/dom/machines/pagination\";\n\ntype OptionalId<T extends { id: string }> = Omit<T, \"id\"> & { id?: string };\n\nexport interface UsePaginationProps extends OptionalId<\n Omit<pagination.Props, \"dir\" | \"getRootNode\">\n> {}\n\nexport type UsePaginationReturn = UseMachineReturn<\n pagination.Service[\"state\"],\n pagination.Api,\n pagination.Service\n>;\n\nexport interface UsePaginationOptions {\n context: () => UsePaginationProps;\n}\n\ntype PaginationContext = Record<string, unknown>;\ntype PaginationSchema = pagination.Machine extends Machine<infer TSchema> ? TSchema : never;\n\nexport function usePagination(\n options: UsePaginationOptions = { context: () => ({}) },\n): UsePaginationReturn {\n const locale = injectLocale();\n const environment = injectEnvironment();\n const fallbackId = createId();\n\n return useMachine<PaginationSchema, pagination.Api>({\n machine: pagination.machine,\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 PaginationContext;\n },\n connect: (service, normalize) => pagination.connect(service, normalize),\n });\n}\n","import type * as pagination from \"@wirekyt/dom/machines/pagination\";\n\nimport {\n DestroyRef,\n Directive,\n ElementRef,\n Renderer2,\n forwardRef,\n inject,\n input,\n model,\n output,\n type InputSignal,\n type ModelSignal,\n type OutputEmitterRef,\n type Signal,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport type {\n PaginationElementIds,\n PaginationIntlTranslations,\n PaginationPageChangeDetails,\n PaginationPageSizeChangeDetails,\n PaginationPageUrlDetails,\n} from \"./types\";\n\nimport { usePagination, type UsePaginationReturn } from \"./use\";\nimport { PAGINATION_CONTEXT } from \"./use-context\";\n\n@Directive({\n selector: \"[pagination-root]\",\n standalone: true,\n exportAs: \"paginationRoot\",\n providers: [{ provide: PAGINATION_CONTEXT, useExisting: forwardRef(() => PaginationRoot) }],\n})\nexport class PaginationRoot implements UsePaginationReturn {\n readonly id: InputSignal<string | undefined> = input<string | undefined>(undefined);\n readonly ids: InputSignal<PaginationElementIds | undefined> = input<\n PaginationElementIds | undefined\n >(undefined);\n readonly count: InputSignal<number | undefined> = input<number | undefined>(undefined);\n readonly page: ModelSignal<number | undefined> = model<number | undefined>(undefined);\n readonly defaultPage: InputSignal<number | undefined> = input<number | undefined>(undefined);\n readonly pageSize: ModelSignal<number | undefined> = model<number | undefined>(undefined);\n readonly defaultPageSize: InputSignal<number | undefined> = input<number | undefined>(undefined);\n readonly siblingCount: InputSignal<number | undefined> = input<number | undefined>(undefined);\n readonly boundaryCount: InputSignal<number | undefined> = input<number | undefined>(undefined);\n readonly type: InputSignal<pagination.Props[\"type\"] | undefined> = input<\n pagination.Props[\"type\"] | undefined\n >(undefined);\n readonly getPageUrl: InputSignal<((details: PaginationPageUrlDetails) => string) | undefined> =\n input<((details: PaginationPageUrlDetails) => string) | undefined>(undefined);\n readonly translations: InputSignal<PaginationIntlTranslations | undefined> = input<\n PaginationIntlTranslations | undefined\n >(undefined);\n\n readonly pageDetailsChange: OutputEmitterRef<PaginationPageChangeDetails> =\n output<PaginationPageChangeDetails>();\n readonly pageSizeDetailsChange: OutputEmitterRef<PaginationPageSizeChangeDetails> =\n output<PaginationPageSizeChangeDetails>();\n\n private readonly machine = usePagination({\n context: () => ({\n id: this.id(),\n ids: this.ids(),\n count: this.count(),\n page: this.page(),\n defaultPage: this.defaultPage(),\n pageSize: this.pageSize(),\n defaultPageSize: this.defaultPageSize(),\n siblingCount: this.siblingCount(),\n boundaryCount: this.boundaryCount(),\n type: this.type(),\n getPageUrl: this.getPageUrl(),\n translations: this.translations(),\n onPageChange: (details) => {\n const currentPage = this.page();\n if (currentPage !== details.page) {\n this.page.set(details.page);\n }\n this.pageDetailsChange.emit(details);\n },\n onPageSizeChange: (details) => {\n const currentPageSize = this.pageSize();\n if (currentPageSize !== details.pageSize) {\n this.pageSize.set(details.pageSize);\n }\n this.pageSizeDetailsChange.emit(details);\n },\n }),\n });\n\n readonly state: Signal<pagination.Service[\"state\"]> = this.machine.state;\n readonly api: Signal<pagination.Api> = this.machine.api;\n readonly service: pagination.Service = this.machine.service;\n readonly send: pagination.Service[\"send\"] = this.machine.send;\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","import {\n DestroyRef,\n Directive,\n ElementRef,\n Renderer2,\n computed,\n forwardRef,\n inject,\n input,\n type InputSignal,\n type Signal,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\nimport * as pagination from \"@wirekyt/dom/machines/pagination\";\n\nimport type { UsePaginationReturn } from \"./use\";\n\nimport { PAGINATION_CONTEXT } from \"./use-context\";\n\n@Directive({\n selector: \"[pagination-root-provider]\",\n standalone: true,\n exportAs: \"paginationRootProvider\",\n providers: [\n { provide: PAGINATION_CONTEXT, useExisting: forwardRef(() => PaginationRootProvider) },\n ],\n})\nexport class PaginationRootProvider implements UsePaginationReturn {\n readonly value: InputSignal<UsePaginationReturn> = input.required<UsePaginationReturn>();\n readonly state: Signal<pagination.Service[\"state\"]> = computed(() => this.value().state());\n readonly api: Signal<pagination.Api> = computed(() => this.value().api());\n readonly send: pagination.Service[\"send\"] = (event) => this.value().send(event);\n\n get service(): pagination.Service {\n return this.value().service;\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","import {\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 { injectPaginationContext } from \"./use-context\";\n\n@Directive({\n selector: \"[pagination-item]\",\n standalone: true,\n exportAs: \"paginationItem\",\n})\nexport class PaginationItem {\n readonly value: InputSignal<number> = input.required<number>();\n\n constructor() {\n const pagination = injectPaginationContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => pagination.api().getItemProps({ type: \"page\", value: this.value() }),\n });\n }\n}\n","import {\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 { injectPaginationContext } from \"./use-context\";\n\n@Directive({\n selector: \"[pagination-ellipsis]\",\n standalone: true,\n exportAs: \"paginationEllipsis\",\n})\nexport class PaginationEllipsis {\n readonly index: InputSignal<number> = input.required<number>();\n\n constructor() {\n const pagination = injectPaginationContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => pagination.api().getEllipsisProps({ index: this.index() }),\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectPaginationContext } from \"./use-context\";\n\n@Directive({\n selector: \"[pagination-prev-trigger]\",\n standalone: true,\n exportAs: \"paginationPrevTrigger\",\n})\nexport class PaginationPrevTrigger {\n constructor() {\n const pagination = injectPaginationContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => pagination.api().getPrevTriggerProps(),\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectPaginationContext } from \"./use-context\";\n\n@Directive({\n selector: \"[pagination-next-trigger]\",\n standalone: true,\n exportAs: \"paginationNextTrigger\",\n})\nexport class PaginationNextTrigger {\n constructor() {\n const pagination = injectPaginationContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => pagination.api().getNextTriggerProps(),\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectPaginationContext } from \"./use-context\";\n\n@Directive({\n selector: \"[pagination-first-trigger]\",\n standalone: true,\n exportAs: \"paginationFirstTrigger\",\n})\nexport class PaginationFirstTrigger {\n constructor() {\n const pagination = injectPaginationContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => pagination.api().getFirstTriggerProps(),\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectPaginationContext } from \"./use-context\";\n\n@Directive({\n selector: \"[pagination-last-trigger]\",\n standalone: true,\n exportAs: \"paginationLastTrigger\",\n})\nexport class PaginationLastTrigger {\n constructor() {\n const pagination = injectPaginationContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => pagination.api().getLastTriggerProps(),\n });\n }\n}\n","import {\n DestroyRef,\n Directive,\n TemplateRef,\n ViewContainerRef,\n effect,\n inject,\n} from \"@angular/core\";\n\nimport type { UsePaginationReturn } from \"./use\";\n\nimport { injectPaginationContext } from \"./use-context\";\n\nexport interface PaginationContextTemplate {\n $implicit: UsePaginationReturn[\"api\"];\n api: UsePaginationReturn[\"api\"];\n}\n\n@Directive({\n selector: \"[pagination-context]\",\n standalone: true,\n exportAs: \"paginationContext\",\n})\nexport class PaginationContext {\n static ngTemplateContextGuard(\n _directive: PaginationContext,\n context: unknown,\n ): context is PaginationContextTemplate {\n void context;\n return true;\n }\n\n private readonly pagination = injectPaginationContext();\n private readonly templateRef = inject<TemplateRef<PaginationContextTemplate>>(TemplateRef);\n private readonly viewContainer = inject(ViewContainerRef);\n\n constructor() {\n const view = this.viewContainer.createEmbeddedView(this.templateRef, {\n $implicit: this.pagination.api,\n api: this.pagination.api,\n });\n\n effect(() => {\n this.pagination.api();\n view.detectChanges();\n });\n\n inject(DestroyRef).onDestroy(() => view.destroy());\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,98 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, booleanAttribute, inject, ElementRef, ViewContainerRef, viewChild, Injector, DestroyRef, signal, afterNextRender, effect, ChangeDetectionStrategy, Component } from '@angular/core';
3
+ import { injectEnvironment } from '@wirekyt/angular';
4
+
5
+ class Portal {
6
+ disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
7
+ container = input(undefined, /* @ts-ignore */
8
+ ...(ngDevMode ? [{ debugName: "container" }] : /* istanbul ignore next */ []));
9
+ originInjector = input(undefined, /* @ts-ignore */
10
+ ...(ngDevMode ? [{ debugName: "originInjector" }] : /* istanbul ignore next */ []));
11
+ host = inject(ElementRef);
12
+ vcRef = inject(ViewContainerRef);
13
+ contentTpl = viewChild.required("content", /* @ts-ignore */
14
+ ...(ngDevMode ? [{ debugName: "contentTpl" }] : /* istanbul ignore next */ []));
15
+ elementInjector = inject(Injector);
16
+ destroyRef = inject(DestroyRef);
17
+ environment = injectEnvironment();
18
+ view = signal(null, /* @ts-ignore */
19
+ ...(ngDevMode ? [{ debugName: "view" }] : /* istanbul ignore next */ []));
20
+ parkingFragment;
21
+ constructor() {
22
+ afterNextRender(() => {
23
+ const view = this.vcRef.createEmbeddedView(this.contentTpl(), undefined, {
24
+ injector: this.originInjector() ?? this.elementInjector,
25
+ });
26
+ view.detectChanges();
27
+ this.view.set(view);
28
+ this.destroyRef.onDestroy(() => {
29
+ for (const node of view.rootNodes) {
30
+ node.parentNode?.removeChild(node);
31
+ }
32
+ view.destroy();
33
+ });
34
+ });
35
+ effect(() => {
36
+ const view = this.view();
37
+ if (!view)
38
+ return;
39
+ const mountNode = this.resolveContainer(view);
40
+ if (!mountNode)
41
+ return;
42
+ for (const node of view.rootNodes) {
43
+ mountNode.appendChild(node);
44
+ }
45
+ });
46
+ }
47
+ resolveContainer(view) {
48
+ if (this.disabled())
49
+ return this.host.nativeElement;
50
+ const container = this.container();
51
+ if (container)
52
+ return container;
53
+ const root = this.environment.getRootNode();
54
+ if (!root)
55
+ return this.getParkingFragment(view);
56
+ if ("body" in root)
57
+ return root.body;
58
+ return root;
59
+ }
60
+ getParkingFragment(view) {
61
+ if (this.parkingFragment)
62
+ return this.parkingFragment;
63
+ const ownerDocument = view.rootNodes.find((node) => node.ownerDocument)?.ownerDocument ??
64
+ this.environment.getRootNode()?.ownerDocument ??
65
+ null;
66
+ if (!ownerDocument)
67
+ return null;
68
+ this.parkingFragment = ownerDocument.createDocumentFragment();
69
+ return this.parkingFragment;
70
+ }
71
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: Portal, deps: [], target: i0.ɵɵFactoryTarget.Component });
72
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.1.3", type: Portal, isStandalone: true, selector: "portal", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, container: { classPropertyName: "container", publicName: "container", isSignal: true, isRequired: false, transformFunction: null }, originInjector: { classPropertyName: "originInjector", publicName: "originInjector", isSignal: true, isRequired: false, transformFunction: null } }, host: { styleAttribute: "display: contents" }, viewQueries: [{ propertyName: "contentTpl", first: true, predicate: ["content"], descendants: true, isSignal: true }], ngImport: i0, template: `
73
+ <ng-template #content>
74
+ <ng-content></ng-content>
75
+ </ng-template>
76
+ `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
77
+ }
78
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: Portal, decorators: [{
79
+ type: Component,
80
+ args: [{
81
+ selector: "portal",
82
+ standalone: true,
83
+ changeDetection: ChangeDetectionStrategy.OnPush,
84
+ host: { style: "display: contents" },
85
+ template: `
86
+ <ng-template #content>
87
+ <ng-content></ng-content>
88
+ </ng-template>
89
+ `,
90
+ }]
91
+ }], ctorParameters: () => [], propDecorators: { disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], container: [{ type: i0.Input, args: [{ isSignal: true, alias: "container", required: false }] }], originInjector: [{ type: i0.Input, args: [{ isSignal: true, alias: "originInjector", required: false }] }], contentTpl: [{ type: i0.ViewChild, args: ["content", { isSignal: true }] }] } });
92
+
93
+ /**
94
+ * Generated bundle index. Do not edit.
95
+ */
96
+
97
+ export { Portal };
98
+ //# sourceMappingURL=wirekyt-angular-portal.mjs.map