@wirekyt/angular 0.0.25 → 0.0.28
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-date-input.mjs +0 -1
- package/dist/fesm2022/wirekyt-angular-date-input.mjs.map +1 -1
- package/dist/fesm2022/wirekyt-angular-drawer.mjs +0 -2
- package/dist/fesm2022/wirekyt-angular-drawer.mjs.map +1 -1
- package/dist/fesm2022/wirekyt-angular-editable.mjs +499 -0
- package/dist/fesm2022/wirekyt-angular-editable.mjs.map +1 -0
- package/dist/fesm2022/wirekyt-angular-file-upload.mjs +604 -0
- package/dist/fesm2022/wirekyt-angular-file-upload.mjs.map +1 -0
- package/dist/fesm2022/wirekyt-angular-floating-panel.mjs +0 -36
- package/dist/fesm2022/wirekyt-angular-floating-panel.mjs.map +1 -1
- package/dist/fesm2022/wirekyt-angular-hover-card.mjs +430 -0
- package/dist/fesm2022/wirekyt-angular-hover-card.mjs.map +1 -0
- package/dist/package.json +13 -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-input.d.ts +0 -1
- package/dist/types/wirekyt-angular-date-input.d.ts.map +1 -1
- package/dist/types/wirekyt-angular-date-picker.d.ts +1 -1
- package/dist/types/wirekyt-angular-drawer.d.ts +0 -2
- package/dist/types/wirekyt-angular-drawer.d.ts.map +1 -1
- package/dist/types/wirekyt-angular-editable.d.ts +153 -0
- package/dist/types/wirekyt-angular-editable.d.ts.map +1 -0
- package/dist/types/wirekyt-angular-file-upload.d.ts +182 -0
- package/dist/types/wirekyt-angular-file-upload.d.ts.map +1 -0
- package/dist/types/wirekyt-angular-floating-panel.d.ts +0 -36
- package/dist/types/wirekyt-angular-floating-panel.d.ts.map +1 -1
- package/dist/types/wirekyt-angular-hover-card.d.ts +122 -0
- package/dist/types/wirekyt-angular-hover-card.d.ts.map +1 -0
- package/package.json +14 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wirekyt-angular-file-upload.mjs","sources":["../../src/components/file-upload/use-context.ts","../../src/components/file-upload/context.ts","../../src/components/file-upload/use-item-context.ts","../../src/components/file-upload/use.ts","../../src/components/file-upload/root.ts","../../src/components/file-upload/root-provider.ts","../../src/components/file-upload/label.ts","../../src/components/file-upload/trigger.ts","../../src/components/file-upload/dropzone.ts","../../src/components/file-upload/hidden-input.ts","../../src/components/file-upload/clear-trigger.ts","../../src/components/file-upload/item-group.ts","../../src/components/file-upload/item.ts","../../src/components/file-upload/item-name.ts","../../src/components/file-upload/item-size-text.ts","../../src/components/file-upload/item-preview.ts","../../src/components/file-upload/item-preview-image.ts","../../src/components/file-upload/item-delete-trigger.ts","../../src/components/file-upload/wirekyt-angular-file-upload.ts"],"sourcesContent":["import { InjectionToken, inject } from \"@angular/core\";\n\nimport type { UseFileUploadReturn } from \"./use\";\n\nexport const FILE_UPLOAD_CONTEXT = new InjectionToken<UseFileUploadReturn>(\n \"WIREKYT.FILE_UPLOAD_CONTEXT\",\n);\n\nexport function injectFileUploadContext(): UseFileUploadReturn {\n return inject(FILE_UPLOAD_CONTEXT);\n}\n","import {\n DestroyRef,\n Directive,\n TemplateRef,\n ViewContainerRef,\n effect,\n inject,\n} from \"@angular/core\";\n\nimport type { UseFileUploadReturn } from \"./use\";\n\nimport { injectFileUploadContext } from \"./use-context\";\n\nexport interface FileUploadContextTemplate {\n $implicit: UseFileUploadReturn[\"api\"];\n api: UseFileUploadReturn[\"api\"];\n}\n\n@Directive({\n selector: \"[file-upload-context]\",\n standalone: true,\n exportAs: \"fileUploadContext\",\n})\nexport class FileUploadContext {\n static ngTemplateContextGuard(\n _directive: FileUploadContext,\n context: unknown,\n ): context is FileUploadContextTemplate {\n void context;\n return true;\n }\n\n private readonly fileUpload = injectFileUploadContext();\n private readonly templateRef = inject<TemplateRef<FileUploadContextTemplate>>(TemplateRef);\n private readonly viewContainer = inject(ViewContainerRef);\n\n constructor() {\n const view = this.viewContainer.createEmbeddedView(this.templateRef, {\n $implicit: this.fileUpload.api,\n api: this.fileUpload.api,\n });\n\n effect(() => {\n this.fileUpload.api();\n view.detectChanges();\n });\n\n inject(DestroyRef).onDestroy(() => view.destroy());\n }\n}\n","import { InjectionToken, inject, type Signal } from \"@angular/core\";\n\nimport type { FileUploadItemType } from \"./types\";\n\nexport interface FileUploadItemContext {\n file: Signal<File>;\n type: Signal<FileUploadItemType | undefined>;\n}\n\nexport const FILE_UPLOAD_ITEM_CONTEXT = new InjectionToken<FileUploadItemContext>(\n \"WIREKYT.FILE_UPLOAD_ITEM_CONTEXT\",\n);\n\nexport function injectFileUploadItemContext(): FileUploadItemContext {\n const context = inject(FILE_UPLOAD_ITEM_CONTEXT, { optional: true });\n if (!context) {\n throw new Error(\n \"FILE_UPLOAD_ITEM_CONTEXT not found: a file-upload item part directive must be used inside a [file-upload-item] directive.\",\n );\n }\n return 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 { injectFieldContextOptional } from \"@wirekyt/angular/field\";\nimport * as fileUpload from \"@wirekyt/dom/machines/file-upload\";\n\nimport type { FileUploadElementIds, FileUploadMachineProps } from \"./types\";\n\ntype OptionalId<T extends { id: string }> = Omit<T, \"id\"> & { id?: string };\n\nexport interface UseFileUploadProps extends OptionalId<\n Omit<FileUploadMachineProps, \"dir\" | \"getRootNode\">\n> {}\n\nexport type UseFileUploadReturn = UseMachineReturn<\n fileUpload.Service[\"state\"],\n fileUpload.Api,\n fileUpload.Service\n>;\n\nexport interface UseFileUploadOptions {\n context: () => UseFileUploadProps;\n}\n\ntype FileUploadContext = Record<string, unknown>;\ntype FileUploadSchema = fileUpload.Machine extends Machine<infer TSchema> ? TSchema : never;\n\ntype MergedContext = {\n dir: \"ltr\" | \"rtl\";\n locale: string;\n getRootNode: () => ShadowRoot | Document | Node | undefined;\n id: string;\n ids?: FileUploadElementIds;\n disabled?: boolean;\n invalid?: boolean;\n readOnly?: boolean;\n required?: boolean;\n} & Omit<UseFileUploadProps, \"id\" | \"ids\" | \"disabled\" | \"invalid\" | \"readOnly\" | \"required\">;\n\nexport function useFileUpload(options: UseFileUploadOptions): UseFileUploadReturn {\n const locale = injectLocale();\n const environment = injectEnvironment();\n const field = injectFieldContextOptional();\n const fallbackId = createId();\n\n return useMachine<FileUploadSchema, fileUpload.Api>({\n machine: fileUpload.machine,\n context: () => {\n const props = options.context();\n const id = props.id ?? fallbackId;\n const merged: MergedContext = {\n dir: locale.dir,\n locale: locale.locale,\n getRootNode: environment.getRootNode,\n ...props,\n id,\n };\n if (field) {\n const fieldIds = field.ids;\n const baseIds = (props.ids ?? {}) as NonNullable<FileUploadElementIds>;\n merged.ids = {\n label: fieldIds.label,\n hiddenInput: fieldIds.control,\n ...baseIds,\n };\n const disabled = Boolean(props.disabled) || field.disabled();\n const invalid = Boolean(props.invalid) || field.invalid();\n const readOnly = Boolean(props.readOnly) || field.readOnly();\n const required = Boolean(props.required) || field.required();\n merged.disabled = disabled || undefined;\n merged.invalid = invalid || undefined;\n merged.readOnly = readOnly || undefined;\n merged.required = required || undefined;\n }\n return merged as unknown as FileUploadContext;\n },\n connect: (service, normalize) => fileUpload.connect(service, normalize),\n });\n}\n","import type * as fileUpload from \"@wirekyt/dom/machines/file-upload\";\n\nimport {\n DestroyRef,\n Directive,\n ElementRef,\n Renderer2,\n booleanAttribute,\n forwardRef,\n inject,\n input,\n model,\n numberAttribute,\n output,\n type InputSignal,\n type InputSignalWithTransform,\n type ModelSignal,\n type OutputEmitterRef,\n type Signal,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport type {\n FileAcceptDetails,\n FileChangeDetails,\n FileError,\n FileMimeType,\n FileRejectDetails,\n FileUploadElementIds,\n FileUploadIntlTranslations,\n FileValidateDetails,\n} from \"./types\";\n\nimport { useFileUpload, type UseFileUploadReturn } from \"./use\";\nimport { FILE_UPLOAD_CONTEXT } from \"./use-context\";\n\nconst optionalNumberAttribute = (value: unknown): number | undefined => {\n if (value === null || value === undefined || value === \"\") return undefined;\n const next = numberAttribute(value);\n return Number.isFinite(next) ? next : undefined;\n};\n\n@Directive({\n selector: \"[file-upload-root]\",\n standalone: true,\n exportAs: \"fileUploadRoot\",\n providers: [{ provide: FILE_UPLOAD_CONTEXT, useExisting: forwardRef(() => FileUploadRoot) }],\n})\nexport class FileUploadRoot implements UseFileUploadReturn {\n readonly id: InputSignal<string | undefined> = input<string | undefined>(undefined);\n readonly elementIds: InputSignal<FileUploadElementIds | undefined> = input<\n FileUploadElementIds | undefined\n >(undefined, { alias: \"ids\" });\n readonly translations: InputSignal<FileUploadIntlTranslations | undefined> = input<\n FileUploadIntlTranslations | undefined\n >(undefined);\n readonly name: InputSignal<string | undefined> = input<string | undefined>(undefined);\n readonly accept: InputSignal<\n Record<string, string[]> | FileMimeType | FileMimeType[] | undefined\n > = input<Record<string, string[]> | FileMimeType | FileMimeType[] | undefined>(undefined);\n readonly disabled: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n readonly required: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n readonly invalid: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n readonly readOnly: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n readonly allowDrop: InputSignalWithTransform<boolean | undefined, unknown> = input<\n boolean | undefined,\n unknown\n >(undefined, {\n transform: (value: unknown) =>\n value === undefined || value === null ? undefined : booleanAttribute(value),\n });\n readonly maxFileSize: InputSignalWithTransform<number | undefined, unknown> = input<\n number | undefined,\n unknown\n >(undefined, { transform: optionalNumberAttribute });\n readonly minFileSize: InputSignalWithTransform<number | undefined, unknown> = input<\n number | undefined,\n unknown\n >(undefined, { transform: optionalNumberAttribute });\n readonly maxFiles: InputSignalWithTransform<number | undefined, unknown> = input<\n number | undefined,\n unknown\n >(undefined, { transform: optionalNumberAttribute });\n readonly preventDocumentDrop: InputSignalWithTransform<boolean | undefined, unknown> = input<\n boolean | undefined,\n unknown\n >(undefined, {\n transform: (value: unknown) =>\n value === undefined || value === null ? undefined : booleanAttribute(value),\n });\n readonly validate: InputSignal<\n ((file: File, details: FileValidateDetails) => FileError[] | null) | undefined\n > = input<((file: File, details: FileValidateDetails) => FileError[] | null) | undefined>(\n undefined,\n );\n readonly defaultAcceptedFiles: InputSignal<File[] | undefined> = input<File[] | undefined>(\n undefined,\n );\n readonly acceptedFiles: ModelSignal<File[] | undefined> = model<File[] | undefined>(undefined);\n readonly capture: InputSignal<\"user\" | \"environment\" | undefined> = input<\n \"user\" | \"environment\" | undefined\n >(undefined);\n readonly directory: InputSignalWithTransform<boolean | undefined, unknown> = input<\n boolean | undefined,\n unknown\n >(undefined, {\n transform: (value: unknown) =>\n value === undefined || value === null ? undefined : booleanAttribute(value),\n });\n readonly transformFiles: InputSignal<((files: File[]) => Promise<File[]>) | undefined> = input<\n ((files: File[]) => Promise<File[]>) | undefined\n >(undefined);\n readonly locale: InputSignal<string | undefined> = input<string | undefined>(undefined);\n\n readonly fileChange: OutputEmitterRef<FileChangeDetails> = output<FileChangeDetails>();\n readonly fileAccept: OutputEmitterRef<FileAcceptDetails> = output<FileAcceptDetails>();\n readonly fileReject: OutputEmitterRef<FileRejectDetails> = output<FileRejectDetails>();\n\n private readonly machine = useFileUpload({\n context: () => ({\n id: this.id(),\n ids: this.elementIds(),\n translations: this.translations(),\n name: this.name(),\n accept: this.accept(),\n disabled: this.disabled() || undefined,\n required: this.required() || undefined,\n invalid: this.invalid() || undefined,\n readOnly: this.readOnly() || undefined,\n allowDrop: this.allowDrop(),\n maxFileSize: this.maxFileSize(),\n minFileSize: this.minFileSize(),\n maxFiles: this.maxFiles(),\n preventDocumentDrop: this.preventDocumentDrop(),\n validate: this.validate(),\n defaultAcceptedFiles: this.defaultAcceptedFiles(),\n acceptedFiles: this.acceptedFiles(),\n capture: this.capture(),\n directory: this.directory(),\n transformFiles: this.transformFiles(),\n locale: this.locale(),\n onFileChange: (details: FileChangeDetails) => {\n if (!filesShallowEqual(this.acceptedFiles(), details.acceptedFiles)) {\n this.acceptedFiles.set([...details.acceptedFiles]);\n }\n this.fileChange.emit(details);\n },\n onFileAccept: (details: FileAcceptDetails) => this.fileAccept.emit(details),\n onFileReject: (details: FileRejectDetails) => this.fileReject.emit(details),\n }),\n });\n\n readonly state: Signal<fileUpload.Service[\"state\"]> = this.machine.state;\n readonly api: Signal<fileUpload.Api> = this.machine.api;\n readonly service: fileUpload.Service = this.machine.service;\n readonly send: fileUpload.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\nconst filesShallowEqual = (a: File[] | undefined, b: File[]): boolean =>\n Array.isArray(a) && a.length === b.length && a.every((file, index) => file === b[index]);\n","import type * as fileUpload from \"@wirekyt/dom/machines/file-upload\";\n\nimport {\n DestroyRef,\n Directive,\n ElementRef,\n Renderer2,\n type InputSignal,\n type Signal,\n computed,\n forwardRef,\n inject,\n input,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport type { UseFileUploadReturn } from \"./use\";\n\nimport { FILE_UPLOAD_CONTEXT } from \"./use-context\";\n\n@Directive({\n selector: \"[file-upload-root-provider]\",\n standalone: true,\n exportAs: \"fileUploadRootProvider\",\n providers: [\n { provide: FILE_UPLOAD_CONTEXT, useExisting: forwardRef(() => FileUploadRootProvider) },\n ],\n})\nexport class FileUploadRootProvider implements UseFileUploadReturn {\n readonly value: InputSignal<UseFileUploadReturn> = input.required<UseFileUploadReturn>();\n readonly state: Signal<fileUpload.Service[\"state\"]> = computed(() => this.value().state());\n readonly api: Signal<fileUpload.Api> = computed(() => this.value().api());\n readonly send: fileUpload.Service[\"send\"] = (event) => this.value().send(event);\n\n get service(): fileUpload.Service {\n return this.value().service;\n }\n\n resolveValue(): UseFileUploadReturn {\n return this.value();\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 { injectFileUploadContext } from \"./use-context\";\n\n@Directive({\n selector: \"[file-upload-label]\",\n standalone: true,\n exportAs: \"fileUploadLabel\",\n})\nexport class FileUploadLabel {\n constructor() {\n const context = injectFileUploadContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getLabelProps(),\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectFileUploadContext } from \"./use-context\";\n\n@Directive({\n selector: \"[file-upload-trigger]\",\n standalone: true,\n exportAs: \"fileUploadTrigger\",\n})\nexport class FileUploadTrigger {\n constructor() {\n const context = injectFileUploadContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getTriggerProps(),\n });\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 { injectFileUploadContext } from \"./use-context\";\n\n@Directive({\n selector: \"[file-upload-dropzone]\",\n standalone: true,\n exportAs: \"fileUploadDropzone\",\n})\nexport class FileUploadDropzone {\n readonly disableClick: InputSignalWithTransform<boolean | undefined, unknown> = input<\n boolean | undefined,\n unknown\n >(undefined, {\n transform: (value: unknown) =>\n value === undefined || value === null ? undefined : booleanAttribute(value),\n });\n\n constructor() {\n const context = injectFileUploadContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getDropzoneProps({ disableClick: this.disableClick() }),\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\nimport { injectFieldContextOptional } from \"@wirekyt/angular/field\";\n\nimport { injectFileUploadContext } from \"./use-context\";\n\n@Directive({\n selector: \"input[file-upload-hidden-input]\",\n standalone: true,\n exportAs: \"fileUploadHiddenInput\",\n})\nexport class FileUploadHiddenInput {\n constructor() {\n const context = injectFileUploadContext();\n const field = injectFieldContextOptional();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => ({\n ...context.api().getHiddenInputProps(),\n \"aria-describedby\": field?.ariaDescribedby(),\n }),\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectFileUploadContext } from \"./use-context\";\n\n@Directive({\n selector: \"[file-upload-clear-trigger]\",\n standalone: true,\n exportAs: \"fileUploadClearTrigger\",\n})\nexport class FileUploadClearTrigger {\n constructor() {\n const context = injectFileUploadContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getClearTriggerProps(),\n });\n }\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n InjectionToken,\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\";\n\nimport type { FileUploadItemType } from \"./types\";\n\nimport { injectFileUploadContext } from \"./use-context\";\n\nexport interface FileUploadItemGroupContext {\n type: Signal<FileUploadItemType | undefined>;\n}\n\nexport const FILE_UPLOAD_ITEM_GROUP_CONTEXT = new InjectionToken<FileUploadItemGroupContext>(\n \"WIREKYT.FILE_UPLOAD_ITEM_GROUP_CONTEXT\",\n);\n\nexport function injectFileUploadItemGroupContextOptional(): FileUploadItemGroupContext | null {\n return inject(FILE_UPLOAD_ITEM_GROUP_CONTEXT, { optional: true });\n}\n\n@Directive({\n selector: \"[file-upload-item-group]\",\n standalone: true,\n exportAs: \"fileUploadItemGroup\",\n providers: [\n { provide: FILE_UPLOAD_ITEM_GROUP_CONTEXT, useExisting: forwardRef(() => FileUploadItemGroup) },\n ],\n})\nexport class FileUploadItemGroup implements FileUploadItemGroupContext {\n readonly type: InputSignal<FileUploadItemType | undefined> = input<\n FileUploadItemType | undefined\n >(undefined);\n\n constructor() {\n const context = injectFileUploadContext();\n const typeSignal: Signal<FileUploadItemType | undefined> = computed(() => this.type());\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getItemGroupProps({ type: typeSignal() }),\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\";\n\nimport type { FileUploadItemType } from \"./types\";\n\nimport { injectFileUploadItemGroupContextOptional } from \"./item-group\";\nimport { injectFileUploadContext } from \"./use-context\";\nimport { FILE_UPLOAD_ITEM_CONTEXT, type FileUploadItemContext } from \"./use-item-context\";\n\n@Directive({\n selector: \"[file-upload-item]\",\n standalone: true,\n exportAs: \"fileUploadItem\",\n providers: [{ provide: FILE_UPLOAD_ITEM_CONTEXT, useExisting: forwardRef(() => FileUploadItem) }],\n})\nexport class FileUploadItem implements FileUploadItemContext {\n readonly file: InputSignal<File> = input.required<File>();\n\n private readonly group = injectFileUploadItemGroupContextOptional();\n readonly type: Signal<FileUploadItemType | undefined> = computed(() => this.group?.type());\n\n constructor() {\n const context = injectFileUploadContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getItemProps({ file: this.file(), type: this.type() }),\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, effect, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectFileUploadContext } from \"./use-context\";\nimport { injectFileUploadItemContext } from \"./use-item-context\";\n\n@Directive({\n selector: \"[file-upload-item-name]\",\n standalone: true,\n exportAs: \"fileUploadItemName\",\n})\nexport class FileUploadItemName {\n constructor() {\n const context = injectFileUploadContext();\n const item = injectFileUploadItemContext();\n const elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n const renderer = inject(Renderer2);\n const destroyRef = inject(DestroyRef);\n let ownsTextContent = false;\n\n effect(() => {\n const fileName = item.file().name;\n queueMicrotask(() => {\n if (!ownsTextContent && elementRef.nativeElement.textContent?.trim().length !== 0) return;\n ownsTextContent = true;\n renderer.setProperty(elementRef.nativeElement, \"textContent\", fileName);\n });\n });\n\n bindProps({\n elementRef,\n renderer,\n destroyRef,\n props: () => context.api().getItemNameProps({ file: item.file(), type: item.type() }),\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, effect, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectFileUploadContext } from \"./use-context\";\nimport { injectFileUploadItemContext } from \"./use-item-context\";\n\n@Directive({\n selector: \"[file-upload-item-size-text]\",\n standalone: true,\n exportAs: \"fileUploadItemSizeText\",\n})\nexport class FileUploadItemSizeText {\n constructor() {\n const context = injectFileUploadContext();\n const item = injectFileUploadItemContext();\n const elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n const renderer = inject(Renderer2);\n const destroyRef = inject(DestroyRef);\n let ownsTextContent = false;\n\n effect(() => {\n const sizeText = context.api().getFileSize(item.file());\n queueMicrotask(() => {\n if (!ownsTextContent && elementRef.nativeElement.textContent?.trim().length !== 0) return;\n ownsTextContent = true;\n renderer.setProperty(elementRef.nativeElement, \"textContent\", sizeText);\n });\n });\n\n bindProps({\n elementRef,\n renderer,\n destroyRef,\n props: () => context.api().getItemSizeTextProps({ file: item.file(), type: item.type() }),\n });\n }\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n Renderer2,\n computed,\n inject,\n input,\n type InputSignal,\n type Signal,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectFileUploadContext } from \"./use-context\";\nimport { injectFileUploadItemContext } from \"./use-item-context\";\n\n@Directive({\n selector: \"[file-upload-item-preview]\",\n standalone: true,\n exportAs: \"fileUploadItemPreview\",\n})\nexport class FileUploadItemPreview {\n readonly type: InputSignal<string | undefined> = input<string | undefined>(undefined);\n\n private readonly context = injectFileUploadContext();\n private readonly item = injectFileUploadItemContext();\n\n readonly matches: Signal<boolean> = computed(() => {\n const pattern = this.type();\n if (!pattern || pattern === \"*/*\") return true;\n const mimeType = this.item.file().type;\n if (pattern.endsWith(\"/*\")) {\n return mimeType.startsWith(pattern.slice(0, -1));\n }\n if (/[\\^$*?()[\\]{}|\\\\]/.test(pattern)) {\n try {\n return new RegExp(pattern).test(mimeType);\n } catch {\n return false;\n }\n }\n return mimeType === pattern;\n });\n\n constructor() {\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => ({\n ...this.context\n .api()\n .getItemPreviewProps({ file: this.item.file(), type: this.item.type() }),\n hidden: this.matches() ? undefined : true,\n }),\n });\n }\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n Renderer2,\n effect,\n inject,\n signal,\n untracked,\n type Signal,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectFileUploadContext } from \"./use-context\";\nimport { injectFileUploadItemContext } from \"./use-item-context\";\n\n@Directive({\n selector: \"img[file-upload-item-preview-image]\",\n standalone: true,\n exportAs: \"fileUploadItemPreviewImage\",\n})\nexport class FileUploadItemPreviewImage {\n private readonly urlSignal = signal<string | undefined>(undefined);\n readonly url: Signal<string | undefined> = this.urlSignal.asReadonly();\n\n constructor() {\n const context = injectFileUploadContext();\n const item = injectFileUploadItemContext();\n\n effect((onCleanup) => {\n const file = item.file();\n if (!file.type.startsWith(\"image/\")) {\n this.urlSignal.set(undefined);\n return;\n }\n\n const revoke = untracked(() =>\n context.api().createFileUrl(file, (url) => untracked(() => this.urlSignal.set(url))),\n );\n onCleanup(() => {\n this.urlSignal.set(undefined);\n revoke();\n });\n });\n\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => {\n const url = this.urlSignal();\n if (!url) return { hidden: true };\n\n return context\n .api()\n .getItemPreviewImageProps({ file: item.file(), type: item.type(), url });\n },\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectFileUploadContext } from \"./use-context\";\nimport { injectFileUploadItemContext } from \"./use-item-context\";\n\n@Directive({\n selector: \"[file-upload-item-delete-trigger]\",\n standalone: true,\n exportAs: \"fileUploadItemDeleteTrigger\",\n})\nexport class FileUploadItemDeleteTrigger {\n constructor() {\n const context = injectFileUploadContext();\n const item = injectFileUploadItemContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () =>\n context.api().getItemDeleteTriggerProps({ file: item.file(), type: item.type() }),\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -41,83 +41,52 @@ const arePointsEqual = (left, right) => left !== undefined && Object.is(left.x,
|
|
|
41
41
|
const areSizesEqual = (left, right) => left !== undefined && Object.is(left.width, right.width) && Object.is(left.height, right.height);
|
|
42
42
|
const areDetailsEqual = (left, right) => JSON.stringify(left) === JSON.stringify(right);
|
|
43
43
|
class FloatingPanelRoot extends PresenceBase {
|
|
44
|
-
/** The unique identifier of the floating panel. */
|
|
45
44
|
id = input(undefined, /* @ts-ignore */
|
|
46
45
|
...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
|
|
47
|
-
/** The ids of the floating panel elements. Useful for composition. */
|
|
48
46
|
ids = input(undefined, /* @ts-ignore */
|
|
49
47
|
...(ngDevMode ? [{ debugName: "ids" }] : /* istanbul ignore next */ []));
|
|
50
|
-
/** The controlled open state of the floating panel. */
|
|
51
48
|
open = model(undefined, /* @ts-ignore */
|
|
52
49
|
...(ngDevMode ? [{ debugName: "open" }] : /* istanbul ignore next */ []));
|
|
53
|
-
/** The initial open state of the floating panel when uncontrolled. */
|
|
54
50
|
defaultOpen = input(false, { ...(ngDevMode ? { debugName: "defaultOpen" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
55
|
-
/** The controlled position of the floating panel. */
|
|
56
51
|
position = model(undefined, /* @ts-ignore */
|
|
57
52
|
...(ngDevMode ? [{ debugName: "position" }] : /* istanbul ignore next */ []));
|
|
58
|
-
/** The initial position of the floating panel when uncontrolled. */
|
|
59
53
|
defaultPosition = input(undefined, /* @ts-ignore */
|
|
60
54
|
...(ngDevMode ? [{ debugName: "defaultPosition" }] : /* istanbul ignore next */ []));
|
|
61
|
-
/** The controlled size of the floating panel. */
|
|
62
55
|
size = model(undefined, /* @ts-ignore */
|
|
63
56
|
...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
64
|
-
/** The initial size of the floating panel when uncontrolled. */
|
|
65
57
|
defaultSize = input(undefined, /* @ts-ignore */
|
|
66
58
|
...(ngDevMode ? [{ debugName: "defaultSize" }] : /* istanbul ignore next */ []));
|
|
67
|
-
/** The minimum size of the floating panel. */
|
|
68
59
|
minSize = input(undefined, /* @ts-ignore */
|
|
69
60
|
...(ngDevMode ? [{ debugName: "minSize" }] : /* istanbul ignore next */ []));
|
|
70
|
-
/** The maximum size of the floating panel. */
|
|
71
61
|
maxSize = input(undefined, /* @ts-ignore */
|
|
72
62
|
...(ngDevMode ? [{ debugName: "maxSize" }] : /* istanbul ignore next */ []));
|
|
73
|
-
/** The positioning strategy to use. */
|
|
74
63
|
strategy = input("fixed", /* @ts-ignore */
|
|
75
64
|
...(ngDevMode ? [{ debugName: "strategy" }] : /* istanbul ignore next */ []));
|
|
76
|
-
/** Whether the panel may overflow the boundary while dragging. */
|
|
77
65
|
allowOverflow = input(true, { ...(ngDevMode ? { debugName: "allowOverflow" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
78
|
-
/** Whether the floating panel is draggable. */
|
|
79
66
|
draggable = input(true, { ...(ngDevMode ? { debugName: "draggable" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
80
|
-
/** Whether the floating panel is resizable. */
|
|
81
67
|
resizable = input(true, { ...(ngDevMode ? { debugName: "resizable" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
82
|
-
/** Whether resizing locks the panel to its aspect ratio. */
|
|
83
68
|
lockAspectRatio = input(false, { ...(ngDevMode ? { debugName: "lockAspectRatio" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
84
|
-
/** Whether the floating panel closes when the escape key is pressed. */
|
|
85
69
|
closeOnEscape = input(false, { ...(ngDevMode ? { debugName: "closeOnEscape" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
86
|
-
/** Whether focus should be restored when the floating panel closes. */
|
|
87
70
|
restoreFocus = input(true, { ...(ngDevMode ? { debugName: "restoreFocus" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
88
|
-
/** Whether the floating panel is disabled. */
|
|
89
71
|
disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
90
|
-
/** Whether size and position should be preserved when the floating panel closes. */
|
|
91
72
|
persistRect = input(false, { ...(ngDevMode ? { debugName: "persistRect" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
92
|
-
/** The snap grid for dragging and keyboard movement. */
|
|
93
73
|
gridSize = input(1, /* @ts-ignore */
|
|
94
74
|
...(ngDevMode ? [{ debugName: "gridSize" }] : /* istanbul ignore next */ []));
|
|
95
|
-
/** Localized strings for control labels. */
|
|
96
75
|
translations = input(undefined, /* @ts-ignore */
|
|
97
76
|
...(ngDevMode ? [{ debugName: "translations" }] : /* istanbul ignore next */ []));
|
|
98
|
-
/** Function that returns the initial panel position when opened. */
|
|
99
77
|
getAnchorPosition = input(undefined, /* @ts-ignore */
|
|
100
78
|
...(ngDevMode ? [{ debugName: "getAnchorPosition" }] : /* istanbul ignore next */ []));
|
|
101
|
-
/** Function that returns the boundary element for dragging and resizing. */
|
|
102
79
|
getBoundaryEl = input(undefined, /* @ts-ignore */
|
|
103
80
|
...(ngDevMode ? [{ debugName: "getBoundaryEl" }] : /* istanbul ignore next */ []));
|
|
104
|
-
/** Element to receive focus when the floating panel opens. */
|
|
105
81
|
initialFocusEl = input(undefined, /* @ts-ignore */
|
|
106
82
|
...(ngDevMode ? [{ debugName: "initialFocusEl" }] : /* istanbul ignore next */ []));
|
|
107
|
-
/** Element to receive focus when the floating panel closes. */
|
|
108
83
|
finalFocusEl = input(undefined, /* @ts-ignore */
|
|
109
84
|
...(ngDevMode ? [{ debugName: "finalFocusEl" }] : /* istanbul ignore next */ []));
|
|
110
|
-
/** Emits details when the panel open state changes. */
|
|
111
85
|
openChangeDetails = output();
|
|
112
|
-
/** Emits details when the panel position changes via dragging or API calls. */
|
|
113
86
|
positionDetailsChange = output();
|
|
114
|
-
/** Emits details when a position-changing drag interaction ends. */
|
|
115
87
|
positionChangeEnd = output();
|
|
116
|
-
/** Emits details when the panel size changes via resizing or API calls. */
|
|
117
88
|
sizeDetailsChange = output();
|
|
118
|
-
/** Emits details when a size-changing resize interaction ends. */
|
|
119
89
|
sizeChangeEnd = output();
|
|
120
|
-
/** Emits details when the panel stage changes. */
|
|
121
90
|
stageChange = output();
|
|
122
91
|
lastPositionDetails;
|
|
123
92
|
lastPositionEndDetails;
|
|
@@ -210,7 +179,6 @@ class FloatingPanelRoot extends PresenceBase {
|
|
|
210
179
|
originInjector: inject(Injector),
|
|
211
180
|
environmentInjector: inject(EnvironmentInjector),
|
|
212
181
|
});
|
|
213
|
-
/** @internal Exposed for floating panel part directives to consume through portals. */
|
|
214
182
|
getContextCarrier() {
|
|
215
183
|
return this.contextCarrier;
|
|
216
184
|
}
|
|
@@ -260,7 +228,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImpor
|
|
|
260
228
|
}], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], ids: [{ type: i0.Input, args: [{ isSignal: true, alias: "ids", required: false }] }], open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }, { type: i0.Output, args: ["openChange"] }], defaultOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultOpen", required: false }] }], position: [{ type: i0.Input, args: [{ isSignal: true, alias: "position", required: false }] }, { type: i0.Output, args: ["positionChange"] }], defaultPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultPosition", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }, { type: i0.Output, args: ["sizeChange"] }], defaultSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultSize", required: false }] }], minSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "minSize", required: false }] }], maxSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxSize", required: false }] }], strategy: [{ type: i0.Input, args: [{ isSignal: true, alias: "strategy", required: false }] }], allowOverflow: [{ type: i0.Input, args: [{ isSignal: true, alias: "allowOverflow", required: false }] }], draggable: [{ type: i0.Input, args: [{ isSignal: true, alias: "draggable", required: false }] }], resizable: [{ type: i0.Input, args: [{ isSignal: true, alias: "resizable", required: false }] }], lockAspectRatio: [{ type: i0.Input, args: [{ isSignal: true, alias: "lockAspectRatio", required: false }] }], closeOnEscape: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnEscape", required: false }] }], restoreFocus: [{ type: i0.Input, args: [{ isSignal: true, alias: "restoreFocus", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], persistRect: [{ type: i0.Input, args: [{ isSignal: true, alias: "persistRect", required: false }] }], gridSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "gridSize", required: false }] }], translations: [{ type: i0.Input, args: [{ isSignal: true, alias: "translations", required: false }] }], getAnchorPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "getAnchorPosition", required: false }] }], getBoundaryEl: [{ type: i0.Input, args: [{ isSignal: true, alias: "getBoundaryEl", required: false }] }], initialFocusEl: [{ type: i0.Input, args: [{ isSignal: true, alias: "initialFocusEl", required: false }] }], finalFocusEl: [{ type: i0.Input, args: [{ isSignal: true, alias: "finalFocusEl", required: false }] }], openChangeDetails: [{ type: i0.Output, args: ["openChangeDetails"] }], positionDetailsChange: [{ type: i0.Output, args: ["positionDetailsChange"] }], positionChangeEnd: [{ type: i0.Output, args: ["positionChangeEnd"] }], sizeDetailsChange: [{ type: i0.Output, args: ["sizeDetailsChange"] }], sizeChangeEnd: [{ type: i0.Output, args: ["sizeChangeEnd"] }], stageChange: [{ type: i0.Output, args: ["stageChange"] }] } });
|
|
261
229
|
|
|
262
230
|
class FloatingPanelRootProvider extends PresenceBase {
|
|
263
|
-
/** The floating panel machine returned by useFloatingPanel(). */
|
|
264
231
|
value = input.required(/* @ts-ignore */
|
|
265
232
|
...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
|
|
266
233
|
state = computed(() => this.value().state(), /* @ts-ignore */
|
|
@@ -289,7 +256,6 @@ class FloatingPanelRootProvider extends PresenceBase {
|
|
|
289
256
|
originInjector: inject(Injector),
|
|
290
257
|
environmentInjector: inject(EnvironmentInjector),
|
|
291
258
|
});
|
|
292
|
-
/** @internal Exposed for floating panel part directives to consume through portals. */
|
|
293
259
|
getContextCarrier() {
|
|
294
260
|
return this.contextCarrier;
|
|
295
261
|
}
|
|
@@ -592,7 +558,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImpor
|
|
|
592
558
|
}], ctorParameters: () => [] });
|
|
593
559
|
|
|
594
560
|
class FloatingPanelResizeTrigger {
|
|
595
|
-
/** The axis of the resize handle. */
|
|
596
561
|
axis = input.required(/* @ts-ignore */
|
|
597
562
|
...(ngDevMode ? [{ debugName: "axis" }] : /* istanbul ignore next */ []));
|
|
598
563
|
constructor() {
|
|
@@ -617,7 +582,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImpor
|
|
|
617
582
|
}], ctorParameters: () => [], propDecorators: { axis: [{ type: i0.Input, args: [{ isSignal: true, alias: "axis", required: true }] }] } });
|
|
618
583
|
|
|
619
584
|
class FloatingPanelStageTrigger {
|
|
620
|
-
/** The stage to apply when the trigger is clicked. */
|
|
621
585
|
stage = input.required(/* @ts-ignore */
|
|
622
586
|
...(ngDevMode ? [{ debugName: "stage" }] : /* istanbul ignore next */ []));
|
|
623
587
|
constructor() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wirekyt-angular-floating-panel.mjs","sources":["../../src/components/floating-panel/use-context.ts","../../src/components/floating-panel/use.ts","../../src/components/floating-panel/root.ts","../../src/components/floating-panel/root-provider.ts","../../src/components/floating-panel/trigger.ts","../../src/components/floating-panel/positioner.ts","../../src/components/floating-panel/content.ts","../../src/components/floating-panel/control.ts","../../src/components/floating-panel/header.ts","../../src/components/floating-panel/body.ts","../../src/components/floating-panel/title.ts","../../src/components/floating-panel/close-trigger.ts","../../src/components/floating-panel/drag-trigger.ts","../../src/components/floating-panel/resize-trigger.ts","../../src/components/floating-panel/stage-trigger.ts","../../src/components/floating-panel/context.ts","../../src/components/floating-panel/wirekyt-angular-floating-panel.ts"],"sourcesContent":["import type { ContextCarrier } from \"@wirekyt/angular\";\n\nimport { InjectionToken, inject, type Signal } from \"@angular/core\";\n\nimport type { UseFloatingPanelReturn } from \"./use\";\n\nexport const FLOATING_PANEL_CONTEXT = new InjectionToken<UseFloatingPanelReturn>(\n \"WIREKYT.FLOATING_PANEL_CONTEXT\",\n);\n\nexport function injectFloatingPanelContext(): UseFloatingPanelReturn {\n return inject(FLOATING_PANEL_CONTEXT);\n}\n\nexport const FLOATING_PANEL_CONTEXT_CARRIER = new InjectionToken<\n ContextCarrier<UseFloatingPanelReturn>\n>(\"WIREKYT.FLOATING_PANEL_CONTEXT_CARRIER\");\n\nexport function injectFloatingPanelContextCarrier(): ContextCarrier<UseFloatingPanelReturn> {\n return inject(FLOATING_PANEL_CONTEXT_CARRIER);\n}\n\nexport interface FloatingPanelRenderStrategyContext {\n readonly lazyMount: Signal<boolean>;\n readonly unmountOnExit: Signal<boolean>;\n}\n\nexport const FLOATING_PANEL_RENDER_STRATEGY_CONTEXT =\n new InjectionToken<FloatingPanelRenderStrategyContext>(\n \"WIREKYT.FLOATING_PANEL_RENDER_STRATEGY_CONTEXT\",\n );\n\nexport function injectFloatingPanelRenderStrategyContext(): FloatingPanelRenderStrategyContext {\n return inject(FLOATING_PANEL_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 floatingPanel from \"@wirekyt/dom/machines/floating-panel\";\n\ntype OptionalId<T extends { id: string }> = Omit<T, \"id\"> & { id?: string };\n\nexport interface UseFloatingPanelProps extends OptionalId<\n Omit<floatingPanel.Props, \"dir\" | \"getRootNode\">\n> {}\n\nexport type UseFloatingPanelReturn = UseMachineReturn<\n floatingPanel.Service[\"state\"],\n floatingPanel.Api,\n floatingPanel.Service\n>;\n\nexport interface UseFloatingPanelOptions {\n context: () => UseFloatingPanelProps;\n}\n\ntype FloatingPanelContext = Record<string, unknown>;\ntype FloatingPanelSchema = floatingPanel.Machine extends Machine<infer TSchema> ? TSchema : never;\n\nexport function useFloatingPanel(options: UseFloatingPanelOptions): UseFloatingPanelReturn {\n const locale = injectLocale();\n const environment = injectEnvironment();\n const fallbackId = createId();\n\n return useMachine<FloatingPanelSchema, floatingPanel.Api>({\n machine: floatingPanel.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 FloatingPanelContext;\n },\n connect: (service, normalize) => floatingPanel.connect(service, normalize),\n });\n}\n","import type { ContextCarrier } from \"@wirekyt/angular\";\nimport type * as floatingPanel from \"@wirekyt/dom/machines/floating-panel\";\n\nimport {\n Directive,\n EnvironmentInjector,\n Injector,\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 OutputEmitterRef,\n type Signal,\n} from \"@angular/core\";\nimport { buildRootCarrier } from \"@wirekyt/angular\";\nimport { PRESENCE_CONTEXT, PresenceBase } from \"@wirekyt/angular/presence\";\n\nimport type {\n FloatingPanelAnchorPositionDetails,\n FloatingPanelElementIds,\n FloatingPanelIntlTranslations,\n FloatingPanelOpenChangeDetails,\n FloatingPanelPoint,\n FloatingPanelPositionChangeDetails,\n FloatingPanelSize,\n FloatingPanelSizeChangeDetails,\n FloatingPanelStageChangeDetails,\n} from \"./types\";\n\nimport { useFloatingPanel, type UseFloatingPanelReturn } from \"./use\";\nimport {\n FLOATING_PANEL_CONTEXT,\n FLOATING_PANEL_CONTEXT_CARRIER,\n FLOATING_PANEL_RENDER_STRATEGY_CONTEXT,\n} from \"./use-context\";\n\nconst arePointsEqual = (left: FloatingPanelPoint | undefined, right: FloatingPanelPoint): boolean =>\n left !== undefined && Object.is(left.x, right.x) && Object.is(left.y, right.y);\n\nconst areSizesEqual = (left: FloatingPanelSize | undefined, right: FloatingPanelSize): boolean =>\n left !== undefined && Object.is(left.width, right.width) && Object.is(left.height, right.height);\n\nconst areDetailsEqual = (left: unknown, right: unknown): boolean =>\n JSON.stringify(left) === JSON.stringify(right);\n\n@Directive({\n selector: \"[floating-panel-root]\",\n standalone: true,\n exportAs: \"floatingPanelRoot\",\n providers: [\n {\n provide: PRESENCE_CONTEXT,\n useFactory: (root: FloatingPanelRoot) => root.presence,\n deps: [forwardRef(() => FloatingPanelRoot)],\n },\n {\n provide: FLOATING_PANEL_RENDER_STRATEGY_CONTEXT,\n useExisting: forwardRef(() => FloatingPanelRoot),\n },\n { provide: FLOATING_PANEL_CONTEXT, useExisting: forwardRef(() => FloatingPanelRoot) },\n {\n provide: FLOATING_PANEL_CONTEXT_CARRIER,\n useFactory: (root: FloatingPanelRoot) => root.getContextCarrier(),\n deps: [forwardRef(() => FloatingPanelRoot)],\n },\n ],\n})\nexport class FloatingPanelRoot extends PresenceBase implements UseFloatingPanelReturn {\n /** The unique identifier of the floating panel. */\n readonly id: InputSignal<string | undefined> = input<string | undefined>(undefined);\n /** The ids of the floating panel elements. Useful for composition. */\n readonly ids: InputSignal<Partial<FloatingPanelElementIds> | undefined> = input<\n Partial<FloatingPanelElementIds> | undefined\n >(undefined);\n /** The controlled open state of the floating panel. */\n readonly open: ModelSignal<boolean | undefined> = model<boolean | undefined>(undefined);\n /** The initial open state of the floating panel when uncontrolled. */\n readonly defaultOpen: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n /** The controlled position of the floating panel. */\n readonly position: ModelSignal<FloatingPanelPoint | undefined> = model<\n FloatingPanelPoint | undefined\n >(undefined);\n /** The initial position of the floating panel when uncontrolled. */\n readonly defaultPosition: InputSignal<FloatingPanelPoint | undefined> = input<\n FloatingPanelPoint | undefined\n >(undefined);\n /** The controlled size of the floating panel. */\n readonly size: ModelSignal<FloatingPanelSize | undefined> = model<FloatingPanelSize | undefined>(\n undefined,\n );\n /** The initial size of the floating panel when uncontrolled. */\n readonly defaultSize: InputSignal<FloatingPanelSize | undefined> = input<\n FloatingPanelSize | undefined\n >(undefined);\n /** The minimum size of the floating panel. */\n readonly minSize: InputSignal<FloatingPanelSize | undefined> = input<\n FloatingPanelSize | undefined\n >(undefined);\n /** The maximum size of the floating panel. */\n readonly maxSize: InputSignal<FloatingPanelSize | undefined> = input<\n FloatingPanelSize | undefined\n >(undefined);\n /** The positioning strategy to use. */\n readonly strategy: InputSignal<floatingPanel.Props[\"strategy\"]> =\n input<floatingPanel.Props[\"strategy\"]>(\"fixed\");\n /** Whether the panel may overflow the boundary while dragging. */\n readonly allowOverflow: InputSignalWithTransform<boolean, unknown> = input(true, {\n transform: booleanAttribute,\n });\n /** Whether the floating panel is draggable. */\n readonly draggable: InputSignalWithTransform<boolean, unknown> = input(true, {\n transform: booleanAttribute,\n });\n /** Whether the floating panel is resizable. */\n readonly resizable: InputSignalWithTransform<boolean, unknown> = input(true, {\n transform: booleanAttribute,\n });\n /** Whether resizing locks the panel to its aspect ratio. */\n readonly lockAspectRatio: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n /** Whether the floating panel closes when the escape key is pressed. */\n readonly closeOnEscape: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n /** Whether focus should be restored when the floating panel closes. */\n readonly restoreFocus: InputSignalWithTransform<boolean, unknown> = input(true, {\n transform: booleanAttribute,\n });\n /** Whether the floating panel is disabled. */\n readonly disabled: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n /** Whether size and position should be preserved when the floating panel closes. */\n readonly persistRect: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n /** The snap grid for dragging and keyboard movement. */\n readonly gridSize: InputSignal<number | undefined> = input<number | undefined>(1);\n /** Localized strings for control labels. */\n readonly translations: InputSignal<FloatingPanelIntlTranslations | undefined> = input<\n FloatingPanelIntlTranslations | undefined\n >(undefined);\n /** Function that returns the initial panel position when opened. */\n readonly getAnchorPosition: InputSignal<\n ((details: FloatingPanelAnchorPositionDetails) => FloatingPanelPoint) | undefined\n > = input<((details: FloatingPanelAnchorPositionDetails) => FloatingPanelPoint) | undefined>(\n undefined,\n );\n /** Function that returns the boundary element for dragging and resizing. */\n readonly getBoundaryEl: InputSignal<(() => HTMLElement | null) | undefined> = input<\n (() => HTMLElement | null) | undefined\n >(undefined);\n /** Element to receive focus when the floating panel opens. */\n readonly initialFocusEl: InputSignal<(() => HTMLElement | null) | undefined> = input<\n (() => HTMLElement | null) | undefined\n >(undefined);\n /** Element to receive focus when the floating panel closes. */\n readonly finalFocusEl: InputSignal<(() => HTMLElement | null) | undefined> = input<\n (() => HTMLElement | null) | undefined\n >(undefined);\n\n /** Emits details when the panel open state changes. */\n readonly openChangeDetails: OutputEmitterRef<FloatingPanelOpenChangeDetails> =\n output<FloatingPanelOpenChangeDetails>();\n /** Emits details when the panel position changes via dragging or API calls. */\n readonly positionDetailsChange: OutputEmitterRef<FloatingPanelPositionChangeDetails> =\n output<FloatingPanelPositionChangeDetails>();\n /** Emits details when a position-changing drag interaction ends. */\n readonly positionChangeEnd: OutputEmitterRef<FloatingPanelPositionChangeDetails> =\n output<FloatingPanelPositionChangeDetails>();\n /** Emits details when the panel size changes via resizing or API calls. */\n readonly sizeDetailsChange: OutputEmitterRef<FloatingPanelSizeChangeDetails> =\n output<FloatingPanelSizeChangeDetails>();\n /** Emits details when a size-changing resize interaction ends. */\n readonly sizeChangeEnd: OutputEmitterRef<FloatingPanelSizeChangeDetails> =\n output<FloatingPanelSizeChangeDetails>();\n /** Emits details when the panel stage changes. */\n readonly stageChange: OutputEmitterRef<FloatingPanelStageChangeDetails> =\n output<FloatingPanelStageChangeDetails>();\n\n private lastPositionDetails: FloatingPanelPositionChangeDetails | undefined;\n private lastPositionEndDetails: FloatingPanelPositionChangeDetails | undefined;\n private lastSizeDetails: FloatingPanelSizeChangeDetails | undefined;\n private lastSizeEndDetails: FloatingPanelSizeChangeDetails | undefined;\n private lastStageDetails: FloatingPanelStageChangeDetails | undefined;\n\n private readonly machine = useFloatingPanel({\n context: () => ({\n id: this.id(),\n ids: this.ids(),\n open: this.open(),\n defaultOpen: this.defaultOpen(),\n position: this.position(),\n defaultPosition: this.defaultPosition(),\n size: this.size(),\n defaultSize: this.defaultSize(),\n minSize: this.minSize(),\n maxSize: this.maxSize(),\n strategy: this.strategy(),\n allowOverflow: this.allowOverflow(),\n draggable: this.draggable(),\n resizable: this.resizable(),\n lockAspectRatio: this.lockAspectRatio(),\n closeOnEscape: this.closeOnEscape(),\n restoreFocus: this.restoreFocus(),\n disabled: this.disabled(),\n persistRect: this.persistRect(),\n gridSize: this.gridSize(),\n translations: this.translations(),\n getAnchorPosition: this.getAnchorPosition(),\n getBoundaryEl: this.getBoundaryEl(),\n initialFocusEl: this.initialFocusEl(),\n finalFocusEl: this.finalFocusEl(),\n onOpenChange: (details) => {\n if (this.open() !== details.open) {\n this.open.set(details.open);\n }\n this.openChangeDetails.emit(details);\n },\n onPositionChange: (details) => {\n if (areDetailsEqual(this.lastPositionDetails, details)) return;\n this.lastPositionDetails = details;\n if (!arePointsEqual(this.position(), details.position)) {\n this.position.set({ ...details.position });\n }\n this.positionDetailsChange.emit(details);\n },\n onPositionChangeEnd: (details) => {\n if (areDetailsEqual(this.lastPositionEndDetails, details)) return;\n this.lastPositionEndDetails = details;\n this.positionChangeEnd.emit(details);\n },\n onSizeChange: (details) => {\n if (areDetailsEqual(this.lastSizeDetails, details)) return;\n this.lastSizeDetails = details;\n if (!areSizesEqual(this.size(), details.size)) {\n this.size.set({ ...details.size });\n }\n this.sizeDetailsChange.emit(details);\n },\n onSizeChangeEnd: (details) => {\n if (areDetailsEqual(this.lastSizeEndDetails, details)) return;\n this.lastSizeEndDetails = details;\n this.sizeChangeEnd.emit(details);\n },\n onStageChange: (details) => {\n if (areDetailsEqual(this.lastStageDetails, details)) return;\n this.lastStageDetails = details;\n this.stageChange.emit(details);\n },\n }),\n });\n\n readonly state: Signal<floatingPanel.Service[\"state\"]> = this.machine.state;\n readonly api: Signal<floatingPanel.Api> = this.machine.api;\n readonly service: floatingPanel.Service = this.machine.service;\n readonly send: floatingPanel.Service[\"send\"] = this.machine.send;\n readonly presence = this.createPresence(() => this.api().open);\n\n protected readonly contextCarrier: ContextCarrier<FloatingPanelRoot> =\n buildRootCarrier<FloatingPanelRoot>({\n providers: [\n { provide: PRESENCE_CONTEXT, useValue: this.presence },\n { provide: FLOATING_PANEL_RENDER_STRATEGY_CONTEXT, useValue: this },\n ],\n root: this,\n rootToken: FLOATING_PANEL_CONTEXT as ProviderToken<FloatingPanelRoot>,\n originInjector: inject(Injector),\n environmentInjector: inject(EnvironmentInjector),\n });\n\n /** @internal Exposed for floating panel part directives to consume through portals. */\n getContextCarrier(): ContextCarrier<FloatingPanelRoot> {\n return this.contextCarrier;\n }\n}\n","import type { ContextCarrier } from \"@wirekyt/angular\";\nimport type * as floatingPanel from \"@wirekyt/dom/machines/floating-panel\";\n\nimport {\n Directive,\n EnvironmentInjector,\n Injector,\n type InputSignal,\n type ProviderToken,\n type Signal,\n computed,\n forwardRef,\n inject,\n input,\n} from \"@angular/core\";\nimport { buildRootCarrier } from \"@wirekyt/angular\";\nimport { PRESENCE_CONTEXT, PresenceBase } from \"@wirekyt/angular/presence\";\n\nimport type { UseFloatingPanelReturn } from \"./use\";\n\nimport {\n FLOATING_PANEL_CONTEXT,\n FLOATING_PANEL_CONTEXT_CARRIER,\n FLOATING_PANEL_RENDER_STRATEGY_CONTEXT,\n} from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-root-provider]\",\n standalone: true,\n exportAs: \"floatingPanelRootProvider\",\n providers: [\n {\n provide: PRESENCE_CONTEXT,\n useFactory: (provider: FloatingPanelRootProvider) => provider.presence,\n deps: [forwardRef(() => FloatingPanelRootProvider)],\n },\n {\n provide: FLOATING_PANEL_RENDER_STRATEGY_CONTEXT,\n useExisting: forwardRef(() => FloatingPanelRootProvider),\n },\n {\n provide: FLOATING_PANEL_CONTEXT,\n useExisting: forwardRef(() => FloatingPanelRootProvider),\n },\n {\n provide: FLOATING_PANEL_CONTEXT_CARRIER,\n useFactory: (provider: FloatingPanelRootProvider) => provider.getContextCarrier(),\n deps: [forwardRef(() => FloatingPanelRootProvider)],\n },\n ],\n})\nexport class FloatingPanelRootProvider extends PresenceBase implements UseFloatingPanelReturn {\n /** The floating panel machine returned by useFloatingPanel(). */\n readonly value: InputSignal<UseFloatingPanelReturn> = input.required<UseFloatingPanelReturn>();\n readonly state: Signal<floatingPanel.Service[\"state\"]> = computed(() => this.value().state());\n readonly api: Signal<floatingPanel.Api> = computed(() => this.value().api());\n readonly send: floatingPanel.Service[\"send\"] = (event) => this.value().send(event);\n\n get service(): floatingPanel.Service {\n return this.value().service;\n }\n\n readonly presence = this.createPresence(() => {\n try {\n return this.api().open;\n } catch {\n return false;\n }\n });\n\n protected readonly contextCarrier: ContextCarrier<FloatingPanelRootProvider> =\n buildRootCarrier<FloatingPanelRootProvider>({\n providers: [\n { provide: PRESENCE_CONTEXT, useValue: this.presence },\n { provide: FLOATING_PANEL_RENDER_STRATEGY_CONTEXT, useValue: this },\n ],\n root: this,\n rootToken: FLOATING_PANEL_CONTEXT as ProviderToken<FloatingPanelRootProvider>,\n originInjector: inject(Injector),\n environmentInjector: inject(EnvironmentInjector),\n });\n\n /** @internal Exposed for floating panel part directives to consume through portals. */\n getContextCarrier(): ContextCarrier<FloatingPanelRootProvider> {\n return this.contextCarrier;\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectFloatingPanelContext } from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-trigger]\",\n standalone: true,\n exportAs: \"floatingPanelTrigger\",\n})\nexport class FloatingPanelTrigger {\n constructor() {\n const context = injectFloatingPanelContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getTriggerProps(),\n });\n }\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n EmbeddedViewRef,\n Renderer2,\n TemplateRef,\n ViewContainerRef,\n effect,\n inject,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\nimport { injectPresenceContext } from \"@wirekyt/angular/presence\";\n\nimport { injectFloatingPanelContext } from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-positioner]\",\n standalone: true,\n exportAs: \"floatingPanelPositioner\",\n})\nexport class FloatingPanelPositioner {\n constructor() {\n const context = injectFloatingPanelContext();\n const presence = injectPresenceContext();\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 = 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 });\n\n bindProps({\n elementRef,\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => {\n const unmounted = presence.unmounted();\n return { ...context.api().getPositionerProps(), hidden: unmounted };\n },\n });\n }\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n EmbeddedViewRef,\n Renderer2,\n TemplateRef,\n ViewContainerRef,\n effect,\n inject,\n untracked,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\nimport { injectPresenceContext } from \"@wirekyt/angular/presence\";\n\nimport { injectFloatingPanelContext } from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-content]\",\n standalone: true,\n exportAs: \"floatingPanelContent\",\n})\nexport class FloatingPanelContent {\n constructor() {\n const context = injectFloatingPanelContext();\n const presence = injectPresenceContext();\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 = 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(() => presence.setNode(elementRef.nativeElement));\n });\n\n bindProps({\n elementRef,\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => {\n presence.unmounted();\n return { ...context.api().getContentProps(), ...presence.getPresenceProps() };\n },\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectFloatingPanelContext } from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-control]\",\n standalone: true,\n exportAs: \"floatingPanelControl\",\n})\nexport class FloatingPanelControl {\n constructor() {\n const context = injectFloatingPanelContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getControlProps(),\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectFloatingPanelContext } from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-header]\",\n standalone: true,\n exportAs: \"floatingPanelHeader\",\n})\nexport class FloatingPanelHeader {\n constructor() {\n const context = injectFloatingPanelContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getHeaderProps(),\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectFloatingPanelContext } from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-body]\",\n standalone: true,\n exportAs: \"floatingPanelBody\",\n})\nexport class FloatingPanelBody {\n constructor() {\n const context = injectFloatingPanelContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getBodyProps(),\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectFloatingPanelContext } from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-title]\",\n standalone: true,\n exportAs: \"floatingPanelTitle\",\n})\nexport class FloatingPanelTitle {\n constructor() {\n const context = injectFloatingPanelContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getTitleProps(),\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectFloatingPanelContext } from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-close-trigger]\",\n standalone: true,\n exportAs: \"floatingPanelCloseTrigger\",\n})\nexport class FloatingPanelCloseTrigger {\n constructor() {\n const context = injectFloatingPanelContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getCloseTriggerProps(),\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectFloatingPanelContext } from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-drag-trigger]\",\n standalone: true,\n exportAs: \"floatingPanelDragTrigger\",\n})\nexport class FloatingPanelDragTrigger {\n constructor() {\n const context = injectFloatingPanelContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getDragTriggerProps(),\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 type { FloatingPanelResizeTriggerAxis } from \"./types\";\n\nimport { injectFloatingPanelContext } from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-resize-trigger]\",\n standalone: true,\n exportAs: \"floatingPanelResizeTrigger\",\n})\nexport class FloatingPanelResizeTrigger {\n /** The axis of the resize handle. */\n readonly axis: InputSignal<FloatingPanelResizeTriggerAxis> =\n input.required<FloatingPanelResizeTriggerAxis>();\n\n constructor() {\n const context = injectFloatingPanelContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getResizeTriggerProps({ axis: this.axis() }),\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 type { FloatingPanelStage } from \"./types\";\n\nimport { injectFloatingPanelContext } from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-stage-trigger]\",\n standalone: true,\n exportAs: \"floatingPanelStageTrigger\",\n})\nexport class FloatingPanelStageTrigger {\n /** The stage to apply when the trigger is clicked. */\n readonly stage: InputSignal<FloatingPanelStage> = input.required<FloatingPanelStage>();\n\n constructor() {\n const context = injectFloatingPanelContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getStageTriggerProps({ stage: this.stage() }),\n });\n }\n}\n","import { Directive, TemplateRef, ViewContainerRef, effect, inject } from \"@angular/core\";\n\nimport type { UseFloatingPanelReturn } from \"./use\";\n\nimport { injectFloatingPanelContext } from \"./use-context\";\n\nexport interface FloatingPanelContextTemplate {\n $implicit: UseFloatingPanelReturn[\"api\"];\n api: UseFloatingPanelReturn[\"api\"];\n}\n\n@Directive({\n selector: \"[floating-panel-context]\",\n standalone: true,\n exportAs: \"floatingPanelContext\",\n})\nexport class FloatingPanelContext {\n static ngTemplateContextGuard(\n _directive: FloatingPanelContext,\n context: unknown,\n ): context is FloatingPanelContextTemplate {\n void context;\n return true;\n }\n\n private readonly floatingPanel = injectFloatingPanelContext();\n private readonly templateRef = inject<TemplateRef<FloatingPanelContextTemplate>>(TemplateRef);\n private readonly viewContainer = inject(ViewContainerRef);\n\n constructor() {\n const view = this.viewContainer.createEmbeddedView(this.templateRef, {\n $implicit: this.floatingPanel.api,\n api: this.floatingPanel.api,\n });\n\n effect(() => {\n this.floatingPanel.api();\n view.detectChanges();\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"wirekyt-angular-floating-panel.mjs","sources":["../../src/components/floating-panel/use-context.ts","../../src/components/floating-panel/use.ts","../../src/components/floating-panel/root.ts","../../src/components/floating-panel/root-provider.ts","../../src/components/floating-panel/trigger.ts","../../src/components/floating-panel/positioner.ts","../../src/components/floating-panel/content.ts","../../src/components/floating-panel/control.ts","../../src/components/floating-panel/header.ts","../../src/components/floating-panel/body.ts","../../src/components/floating-panel/title.ts","../../src/components/floating-panel/close-trigger.ts","../../src/components/floating-panel/drag-trigger.ts","../../src/components/floating-panel/resize-trigger.ts","../../src/components/floating-panel/stage-trigger.ts","../../src/components/floating-panel/context.ts","../../src/components/floating-panel/wirekyt-angular-floating-panel.ts"],"sourcesContent":["import type { ContextCarrier } from \"@wirekyt/angular\";\n\nimport { InjectionToken, inject, type Signal } from \"@angular/core\";\n\nimport type { UseFloatingPanelReturn } from \"./use\";\n\nexport const FLOATING_PANEL_CONTEXT = new InjectionToken<UseFloatingPanelReturn>(\n \"WIREKYT.FLOATING_PANEL_CONTEXT\",\n);\n\nexport function injectFloatingPanelContext(): UseFloatingPanelReturn {\n return inject(FLOATING_PANEL_CONTEXT);\n}\n\nexport const FLOATING_PANEL_CONTEXT_CARRIER = new InjectionToken<\n ContextCarrier<UseFloatingPanelReturn>\n>(\"WIREKYT.FLOATING_PANEL_CONTEXT_CARRIER\");\n\nexport function injectFloatingPanelContextCarrier(): ContextCarrier<UseFloatingPanelReturn> {\n return inject(FLOATING_PANEL_CONTEXT_CARRIER);\n}\n\nexport interface FloatingPanelRenderStrategyContext {\n readonly lazyMount: Signal<boolean>;\n readonly unmountOnExit: Signal<boolean>;\n}\n\nexport const FLOATING_PANEL_RENDER_STRATEGY_CONTEXT =\n new InjectionToken<FloatingPanelRenderStrategyContext>(\n \"WIREKYT.FLOATING_PANEL_RENDER_STRATEGY_CONTEXT\",\n );\n\nexport function injectFloatingPanelRenderStrategyContext(): FloatingPanelRenderStrategyContext {\n return inject(FLOATING_PANEL_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 floatingPanel from \"@wirekyt/dom/machines/floating-panel\";\n\ntype OptionalId<T extends { id: string }> = Omit<T, \"id\"> & { id?: string };\n\nexport interface UseFloatingPanelProps extends OptionalId<\n Omit<floatingPanel.Props, \"dir\" | \"getRootNode\">\n> {}\n\nexport type UseFloatingPanelReturn = UseMachineReturn<\n floatingPanel.Service[\"state\"],\n floatingPanel.Api,\n floatingPanel.Service\n>;\n\nexport interface UseFloatingPanelOptions {\n context: () => UseFloatingPanelProps;\n}\n\ntype FloatingPanelContext = Record<string, unknown>;\ntype FloatingPanelSchema = floatingPanel.Machine extends Machine<infer TSchema> ? TSchema : never;\n\nexport function useFloatingPanel(options: UseFloatingPanelOptions): UseFloatingPanelReturn {\n const locale = injectLocale();\n const environment = injectEnvironment();\n const fallbackId = createId();\n\n return useMachine<FloatingPanelSchema, floatingPanel.Api>({\n machine: floatingPanel.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 FloatingPanelContext;\n },\n connect: (service, normalize) => floatingPanel.connect(service, normalize),\n });\n}\n","import type { ContextCarrier } from \"@wirekyt/angular\";\nimport type * as floatingPanel from \"@wirekyt/dom/machines/floating-panel\";\n\nimport {\n Directive,\n EnvironmentInjector,\n Injector,\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 OutputEmitterRef,\n type Signal,\n} from \"@angular/core\";\nimport { buildRootCarrier } from \"@wirekyt/angular\";\nimport { PRESENCE_CONTEXT, PresenceBase } from \"@wirekyt/angular/presence\";\n\nimport type {\n FloatingPanelAnchorPositionDetails,\n FloatingPanelElementIds,\n FloatingPanelIntlTranslations,\n FloatingPanelOpenChangeDetails,\n FloatingPanelPoint,\n FloatingPanelPositionChangeDetails,\n FloatingPanelSize,\n FloatingPanelSizeChangeDetails,\n FloatingPanelStageChangeDetails,\n} from \"./types\";\n\nimport { useFloatingPanel, type UseFloatingPanelReturn } from \"./use\";\nimport {\n FLOATING_PANEL_CONTEXT,\n FLOATING_PANEL_CONTEXT_CARRIER,\n FLOATING_PANEL_RENDER_STRATEGY_CONTEXT,\n} from \"./use-context\";\n\nconst arePointsEqual = (left: FloatingPanelPoint | undefined, right: FloatingPanelPoint): boolean =>\n left !== undefined && Object.is(left.x, right.x) && Object.is(left.y, right.y);\n\nconst areSizesEqual = (left: FloatingPanelSize | undefined, right: FloatingPanelSize): boolean =>\n left !== undefined && Object.is(left.width, right.width) && Object.is(left.height, right.height);\n\nconst areDetailsEqual = (left: unknown, right: unknown): boolean =>\n JSON.stringify(left) === JSON.stringify(right);\n\n@Directive({\n selector: \"[floating-panel-root]\",\n standalone: true,\n exportAs: \"floatingPanelRoot\",\n providers: [\n {\n provide: PRESENCE_CONTEXT,\n useFactory: (root: FloatingPanelRoot) => root.presence,\n deps: [forwardRef(() => FloatingPanelRoot)],\n },\n {\n provide: FLOATING_PANEL_RENDER_STRATEGY_CONTEXT,\n useExisting: forwardRef(() => FloatingPanelRoot),\n },\n { provide: FLOATING_PANEL_CONTEXT, useExisting: forwardRef(() => FloatingPanelRoot) },\n {\n provide: FLOATING_PANEL_CONTEXT_CARRIER,\n useFactory: (root: FloatingPanelRoot) => root.getContextCarrier(),\n deps: [forwardRef(() => FloatingPanelRoot)],\n },\n ],\n})\nexport class FloatingPanelRoot extends PresenceBase implements UseFloatingPanelReturn {\n readonly id: InputSignal<string | undefined> = input<string | undefined>(undefined);\n readonly ids: InputSignal<Partial<FloatingPanelElementIds> | undefined> = input<\n Partial<FloatingPanelElementIds> | undefined\n >(undefined);\n readonly open: ModelSignal<boolean | undefined> = model<boolean | undefined>(undefined);\n readonly defaultOpen: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n readonly position: ModelSignal<FloatingPanelPoint | undefined> = model<\n FloatingPanelPoint | undefined\n >(undefined);\n readonly defaultPosition: InputSignal<FloatingPanelPoint | undefined> = input<\n FloatingPanelPoint | undefined\n >(undefined);\n readonly size: ModelSignal<FloatingPanelSize | undefined> = model<FloatingPanelSize | undefined>(\n undefined,\n );\n readonly defaultSize: InputSignal<FloatingPanelSize | undefined> = input<\n FloatingPanelSize | undefined\n >(undefined);\n readonly minSize: InputSignal<FloatingPanelSize | undefined> = input<\n FloatingPanelSize | undefined\n >(undefined);\n readonly maxSize: InputSignal<FloatingPanelSize | undefined> = input<\n FloatingPanelSize | undefined\n >(undefined);\n readonly strategy: InputSignal<floatingPanel.Props[\"strategy\"]> =\n input<floatingPanel.Props[\"strategy\"]>(\"fixed\");\n readonly allowOverflow: InputSignalWithTransform<boolean, unknown> = input(true, {\n transform: booleanAttribute,\n });\n readonly draggable: InputSignalWithTransform<boolean, unknown> = input(true, {\n transform: booleanAttribute,\n });\n readonly resizable: InputSignalWithTransform<boolean, unknown> = input(true, {\n transform: booleanAttribute,\n });\n readonly lockAspectRatio: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n readonly closeOnEscape: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n readonly restoreFocus: InputSignalWithTransform<boolean, unknown> = input(true, {\n transform: booleanAttribute,\n });\n readonly disabled: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n readonly persistRect: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n readonly gridSize: InputSignal<number | undefined> = input<number | undefined>(1);\n readonly translations: InputSignal<FloatingPanelIntlTranslations | undefined> = input<\n FloatingPanelIntlTranslations | undefined\n >(undefined);\n readonly getAnchorPosition: InputSignal<\n ((details: FloatingPanelAnchorPositionDetails) => FloatingPanelPoint) | undefined\n > = input<((details: FloatingPanelAnchorPositionDetails) => FloatingPanelPoint) | undefined>(\n undefined,\n );\n readonly getBoundaryEl: InputSignal<(() => HTMLElement | null) | undefined> = input<\n (() => HTMLElement | null) | undefined\n >(undefined);\n readonly initialFocusEl: InputSignal<(() => HTMLElement | null) | undefined> = input<\n (() => HTMLElement | null) | undefined\n >(undefined);\n readonly finalFocusEl: InputSignal<(() => HTMLElement | null) | undefined> = input<\n (() => HTMLElement | null) | undefined\n >(undefined);\n\n readonly openChangeDetails: OutputEmitterRef<FloatingPanelOpenChangeDetails> =\n output<FloatingPanelOpenChangeDetails>();\n readonly positionDetailsChange: OutputEmitterRef<FloatingPanelPositionChangeDetails> =\n output<FloatingPanelPositionChangeDetails>();\n readonly positionChangeEnd: OutputEmitterRef<FloatingPanelPositionChangeDetails> =\n output<FloatingPanelPositionChangeDetails>();\n readonly sizeDetailsChange: OutputEmitterRef<FloatingPanelSizeChangeDetails> =\n output<FloatingPanelSizeChangeDetails>();\n readonly sizeChangeEnd: OutputEmitterRef<FloatingPanelSizeChangeDetails> =\n output<FloatingPanelSizeChangeDetails>();\n readonly stageChange: OutputEmitterRef<FloatingPanelStageChangeDetails> =\n output<FloatingPanelStageChangeDetails>();\n\n private lastPositionDetails: FloatingPanelPositionChangeDetails | undefined;\n private lastPositionEndDetails: FloatingPanelPositionChangeDetails | undefined;\n private lastSizeDetails: FloatingPanelSizeChangeDetails | undefined;\n private lastSizeEndDetails: FloatingPanelSizeChangeDetails | undefined;\n private lastStageDetails: FloatingPanelStageChangeDetails | undefined;\n\n private readonly machine = useFloatingPanel({\n context: () => ({\n id: this.id(),\n ids: this.ids(),\n open: this.open(),\n defaultOpen: this.defaultOpen(),\n position: this.position(),\n defaultPosition: this.defaultPosition(),\n size: this.size(),\n defaultSize: this.defaultSize(),\n minSize: this.minSize(),\n maxSize: this.maxSize(),\n strategy: this.strategy(),\n allowOverflow: this.allowOverflow(),\n draggable: this.draggable(),\n resizable: this.resizable(),\n lockAspectRatio: this.lockAspectRatio(),\n closeOnEscape: this.closeOnEscape(),\n restoreFocus: this.restoreFocus(),\n disabled: this.disabled(),\n persistRect: this.persistRect(),\n gridSize: this.gridSize(),\n translations: this.translations(),\n getAnchorPosition: this.getAnchorPosition(),\n getBoundaryEl: this.getBoundaryEl(),\n initialFocusEl: this.initialFocusEl(),\n finalFocusEl: this.finalFocusEl(),\n onOpenChange: (details) => {\n if (this.open() !== details.open) {\n this.open.set(details.open);\n }\n this.openChangeDetails.emit(details);\n },\n onPositionChange: (details) => {\n if (areDetailsEqual(this.lastPositionDetails, details)) return;\n this.lastPositionDetails = details;\n if (!arePointsEqual(this.position(), details.position)) {\n this.position.set({ ...details.position });\n }\n this.positionDetailsChange.emit(details);\n },\n onPositionChangeEnd: (details) => {\n if (areDetailsEqual(this.lastPositionEndDetails, details)) return;\n this.lastPositionEndDetails = details;\n this.positionChangeEnd.emit(details);\n },\n onSizeChange: (details) => {\n if (areDetailsEqual(this.lastSizeDetails, details)) return;\n this.lastSizeDetails = details;\n if (!areSizesEqual(this.size(), details.size)) {\n this.size.set({ ...details.size });\n }\n this.sizeDetailsChange.emit(details);\n },\n onSizeChangeEnd: (details) => {\n if (areDetailsEqual(this.lastSizeEndDetails, details)) return;\n this.lastSizeEndDetails = details;\n this.sizeChangeEnd.emit(details);\n },\n onStageChange: (details) => {\n if (areDetailsEqual(this.lastStageDetails, details)) return;\n this.lastStageDetails = details;\n this.stageChange.emit(details);\n },\n }),\n });\n\n readonly state: Signal<floatingPanel.Service[\"state\"]> = this.machine.state;\n readonly api: Signal<floatingPanel.Api> = this.machine.api;\n readonly service: floatingPanel.Service = this.machine.service;\n readonly send: floatingPanel.Service[\"send\"] = this.machine.send;\n readonly presence = this.createPresence(() => this.api().open);\n\n protected readonly contextCarrier: ContextCarrier<FloatingPanelRoot> =\n buildRootCarrier<FloatingPanelRoot>({\n providers: [\n { provide: PRESENCE_CONTEXT, useValue: this.presence },\n { provide: FLOATING_PANEL_RENDER_STRATEGY_CONTEXT, useValue: this },\n ],\n root: this,\n rootToken: FLOATING_PANEL_CONTEXT as ProviderToken<FloatingPanelRoot>,\n originInjector: inject(Injector),\n environmentInjector: inject(EnvironmentInjector),\n });\n\n getContextCarrier(): ContextCarrier<FloatingPanelRoot> {\n return this.contextCarrier;\n }\n}\n","import type { ContextCarrier } from \"@wirekyt/angular\";\nimport type * as floatingPanel from \"@wirekyt/dom/machines/floating-panel\";\n\nimport {\n Directive,\n EnvironmentInjector,\n Injector,\n type InputSignal,\n type ProviderToken,\n type Signal,\n computed,\n forwardRef,\n inject,\n input,\n} from \"@angular/core\";\nimport { buildRootCarrier } from \"@wirekyt/angular\";\nimport { PRESENCE_CONTEXT, PresenceBase } from \"@wirekyt/angular/presence\";\n\nimport type { UseFloatingPanelReturn } from \"./use\";\n\nimport {\n FLOATING_PANEL_CONTEXT,\n FLOATING_PANEL_CONTEXT_CARRIER,\n FLOATING_PANEL_RENDER_STRATEGY_CONTEXT,\n} from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-root-provider]\",\n standalone: true,\n exportAs: \"floatingPanelRootProvider\",\n providers: [\n {\n provide: PRESENCE_CONTEXT,\n useFactory: (provider: FloatingPanelRootProvider) => provider.presence,\n deps: [forwardRef(() => FloatingPanelRootProvider)],\n },\n {\n provide: FLOATING_PANEL_RENDER_STRATEGY_CONTEXT,\n useExisting: forwardRef(() => FloatingPanelRootProvider),\n },\n {\n provide: FLOATING_PANEL_CONTEXT,\n useExisting: forwardRef(() => FloatingPanelRootProvider),\n },\n {\n provide: FLOATING_PANEL_CONTEXT_CARRIER,\n useFactory: (provider: FloatingPanelRootProvider) => provider.getContextCarrier(),\n deps: [forwardRef(() => FloatingPanelRootProvider)],\n },\n ],\n})\nexport class FloatingPanelRootProvider extends PresenceBase implements UseFloatingPanelReturn {\n readonly value: InputSignal<UseFloatingPanelReturn> = input.required<UseFloatingPanelReturn>();\n readonly state: Signal<floatingPanel.Service[\"state\"]> = computed(() => this.value().state());\n readonly api: Signal<floatingPanel.Api> = computed(() => this.value().api());\n readonly send: floatingPanel.Service[\"send\"] = (event) => this.value().send(event);\n\n get service(): floatingPanel.Service {\n return this.value().service;\n }\n\n readonly presence = this.createPresence(() => {\n try {\n return this.api().open;\n } catch {\n return false;\n }\n });\n\n protected readonly contextCarrier: ContextCarrier<FloatingPanelRootProvider> =\n buildRootCarrier<FloatingPanelRootProvider>({\n providers: [\n { provide: PRESENCE_CONTEXT, useValue: this.presence },\n { provide: FLOATING_PANEL_RENDER_STRATEGY_CONTEXT, useValue: this },\n ],\n root: this,\n rootToken: FLOATING_PANEL_CONTEXT as ProviderToken<FloatingPanelRootProvider>,\n originInjector: inject(Injector),\n environmentInjector: inject(EnvironmentInjector),\n });\n\n getContextCarrier(): ContextCarrier<FloatingPanelRootProvider> {\n return this.contextCarrier;\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectFloatingPanelContext } from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-trigger]\",\n standalone: true,\n exportAs: \"floatingPanelTrigger\",\n})\nexport class FloatingPanelTrigger {\n constructor() {\n const context = injectFloatingPanelContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getTriggerProps(),\n });\n }\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n EmbeddedViewRef,\n Renderer2,\n TemplateRef,\n ViewContainerRef,\n effect,\n inject,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\nimport { injectPresenceContext } from \"@wirekyt/angular/presence\";\n\nimport { injectFloatingPanelContext } from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-positioner]\",\n standalone: true,\n exportAs: \"floatingPanelPositioner\",\n})\nexport class FloatingPanelPositioner {\n constructor() {\n const context = injectFloatingPanelContext();\n const presence = injectPresenceContext();\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 = 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 });\n\n bindProps({\n elementRef,\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => {\n const unmounted = presence.unmounted();\n return { ...context.api().getPositionerProps(), hidden: unmounted };\n },\n });\n }\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n EmbeddedViewRef,\n Renderer2,\n TemplateRef,\n ViewContainerRef,\n effect,\n inject,\n untracked,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\nimport { injectPresenceContext } from \"@wirekyt/angular/presence\";\n\nimport { injectFloatingPanelContext } from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-content]\",\n standalone: true,\n exportAs: \"floatingPanelContent\",\n})\nexport class FloatingPanelContent {\n constructor() {\n const context = injectFloatingPanelContext();\n const presence = injectPresenceContext();\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 = 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(() => presence.setNode(elementRef.nativeElement));\n });\n\n bindProps({\n elementRef,\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => {\n presence.unmounted();\n return { ...context.api().getContentProps(), ...presence.getPresenceProps() };\n },\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectFloatingPanelContext } from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-control]\",\n standalone: true,\n exportAs: \"floatingPanelControl\",\n})\nexport class FloatingPanelControl {\n constructor() {\n const context = injectFloatingPanelContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getControlProps(),\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectFloatingPanelContext } from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-header]\",\n standalone: true,\n exportAs: \"floatingPanelHeader\",\n})\nexport class FloatingPanelHeader {\n constructor() {\n const context = injectFloatingPanelContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getHeaderProps(),\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectFloatingPanelContext } from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-body]\",\n standalone: true,\n exportAs: \"floatingPanelBody\",\n})\nexport class FloatingPanelBody {\n constructor() {\n const context = injectFloatingPanelContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getBodyProps(),\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectFloatingPanelContext } from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-title]\",\n standalone: true,\n exportAs: \"floatingPanelTitle\",\n})\nexport class FloatingPanelTitle {\n constructor() {\n const context = injectFloatingPanelContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getTitleProps(),\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectFloatingPanelContext } from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-close-trigger]\",\n standalone: true,\n exportAs: \"floatingPanelCloseTrigger\",\n})\nexport class FloatingPanelCloseTrigger {\n constructor() {\n const context = injectFloatingPanelContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getCloseTriggerProps(),\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectFloatingPanelContext } from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-drag-trigger]\",\n standalone: true,\n exportAs: \"floatingPanelDragTrigger\",\n})\nexport class FloatingPanelDragTrigger {\n constructor() {\n const context = injectFloatingPanelContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getDragTriggerProps(),\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 type { FloatingPanelResizeTriggerAxis } from \"./types\";\n\nimport { injectFloatingPanelContext } from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-resize-trigger]\",\n standalone: true,\n exportAs: \"floatingPanelResizeTrigger\",\n})\nexport class FloatingPanelResizeTrigger {\n readonly axis: InputSignal<FloatingPanelResizeTriggerAxis> =\n input.required<FloatingPanelResizeTriggerAxis>();\n\n constructor() {\n const context = injectFloatingPanelContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getResizeTriggerProps({ axis: this.axis() }),\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 type { FloatingPanelStage } from \"./types\";\n\nimport { injectFloatingPanelContext } from \"./use-context\";\n\n@Directive({\n selector: \"[floating-panel-stage-trigger]\",\n standalone: true,\n exportAs: \"floatingPanelStageTrigger\",\n})\nexport class FloatingPanelStageTrigger {\n readonly stage: InputSignal<FloatingPanelStage> = input.required<FloatingPanelStage>();\n\n constructor() {\n const context = injectFloatingPanelContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getStageTriggerProps({ stage: this.stage() }),\n });\n }\n}\n","import { Directive, TemplateRef, ViewContainerRef, effect, inject } from \"@angular/core\";\n\nimport type { UseFloatingPanelReturn } from \"./use\";\n\nimport { injectFloatingPanelContext } from \"./use-context\";\n\nexport interface FloatingPanelContextTemplate {\n $implicit: UseFloatingPanelReturn[\"api\"];\n api: UseFloatingPanelReturn[\"api\"];\n}\n\n@Directive({\n selector: \"[floating-panel-context]\",\n standalone: true,\n exportAs: \"floatingPanelContext\",\n})\nexport class FloatingPanelContext {\n static ngTemplateContextGuard(\n _directive: FloatingPanelContext,\n context: unknown,\n ): context is FloatingPanelContextTemplate {\n void context;\n return true;\n }\n\n private readonly floatingPanel = injectFloatingPanelContext();\n private readonly templateRef = inject<TemplateRef<FloatingPanelContextTemplate>>(TemplateRef);\n private readonly viewContainer = inject(ViewContainerRef);\n\n constructor() {\n const view = this.viewContainer.createEmbeddedView(this.templateRef, {\n $implicit: this.floatingPanel.api,\n api: this.floatingPanel.api,\n });\n\n effect(() => {\n this.floatingPanel.api();\n view.detectChanges();\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|