@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.
- 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.mjs +12 -4
- package/dist/fesm2022/wirekyt-angular.mjs.map +1 -1
- package/dist/package.json +21 -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-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.d.ts +1 -1
- 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
|