@3ddv/software-division-components 2.0.6 → 2.0.10

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.
@@ -1 +1 @@
1
- {"version":3,"file":"3ddv-software-division-components-generic-dialog.mjs","sources":["../../generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-overlay.ts","../../generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog.ts","../../generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-close.ts","../../generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-content.ts","../../generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-description.ts","../../generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-footer.ts","../../generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-header.ts","../../generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-title.ts","../../generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog.service.ts","../../generic/dialog/libs/ui-dialog-helm/src/index.ts","../../generic/dialog/dialog.component.ts","../../generic/dialog/dialog.component.html","../../generic/dialog/public-api.ts","../../generic/dialog/3ddv-software-division-components-generic-dialog.ts"],"sourcesContent":["import { computed, Directive, effect, input, untracked } from '@angular/core';\nimport { hlm, injectCustomClassSettable } from '@spartan-ng/brain/core';\nimport type { ClassValue } from 'clsx';\n\nexport const hlmDialogOverlayClass =\n 'bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0';\n\n@Directive({\n selector: '[hlmDialogOverlay],brn-dialog-overlay[hlm]',\n})\nexport class HlmDialogOverlay {\n private readonly _classSettable = injectCustomClassSettable({ optional: true, host: true });\n\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() => hlm(hlmDialogOverlayClass, this.userClass()));\n\n constructor() {\n effect(() => {\n const newClass = this._computedClass();\n untracked(() => this._classSettable?.setClassToCustomElement(newClass));\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, forwardRef, ViewEncapsulation } from '@angular/core';\nimport { BrnDialog, BrnDialogOverlay, provideBrnDialogDefaultOptions } from '@spartan-ng/brain/dialog';\nimport { HlmDialogOverlay } from './hlm-dialog-overlay';\n\n@Component({\n selector: 'hlm-dialog',\n\n imports: [BrnDialogOverlay, HlmDialogOverlay],\n providers: [\n {\n provide: BrnDialog,\n useExisting: forwardRef(() => HlmDialog),\n },\n provideBrnDialogDefaultOptions({\n hasBackdrop: true,\n disableClose: false,\n closeOnBackdropClick: true,\n closeOnOutsidePointerEvents: true,\n scrollStrategy: 'reposition',\n attachPositions: [{ originX: 'center', originY: 'center', overlayX: 'center', overlayY: 'center' }],\n }),\n ],\n template: `\n <brn-dialog-overlay hlm />\n <ng-content />\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'hlmDialog',\n})\nexport class HlmDialog extends BrnDialog {}\n","import { computed, Directive, input } from '@angular/core';\nimport { hlm } from '@spartan-ng/brain/core';\nimport type { ClassValue } from 'clsx';\n\n@Directive({\n selector: '[hlmDialogClose],[brnDialogClose][hlm]',\n host: {\n '[class]': '_computedClass()',\n },\n})\nexport class HlmDialogClose {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly _computedClass = computed(() =>\n hlm(\n 'absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground',\n this.userClass()\n )\n );\n}\n","import { HlmIcon } from '@3ddv/software-division-components/generic/icon';\nimport { NgComponentOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, inject, input, ViewEncapsulation } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideX } from '@ng-icons/lucide';\nimport { hlm } from '@spartan-ng/brain/core';\nimport { BrnDialogClose, BrnDialogRef, injectBrnDialogContext } from '@spartan-ng/brain/dialog';\nimport type { ClassValue } from 'clsx';\nimport { HlmDialogClose } from './hlm-dialog-close';\n\n@Component({\n selector: 'hlm-dialog-content',\n\n imports: [NgComponentOutlet, BrnDialogClose, HlmDialogClose, NgIcon, HlmIcon],\n providers: [provideIcons({ lucideX })],\n host: {\n '[class]': '_computedClass()',\n '[attr.data-state]': 'state()',\n },\n template: `\n @if (component) {\n <ng-container [ngComponentOutlet]=\"component\" [ngComponentOutletInputs]=\"componentInputs()\" />\n } @else {\n <ng-content />\n }\n\n <button brnDialogClose class=\"animated-button\" hlm>\n <span class=\"sr-only\">Close</span>\n <ng-icon hlm name=\"lucideX\" size=\"sm\" />\n </button>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class HlmDialogContent {\n private readonly _dialogRef = inject(BrnDialogRef);\n private readonly _dialogContext = injectBrnDialogContext({ optional: true });\n\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n public readonly fitContent = input<boolean>(false);\n\n public readonly state = computed(() => this._dialogRef?.state() ?? 'closed');\n public readonly componentInputs = computed(() => {\n const { $component, $dynamicComponentClass, $fitContent, close, ...rest } = this._dialogContext;\n return rest;\n });\n protected readonly _computedClass = computed(() =>\n hlm(\n 'border-border grid w-full relative gap-4 border bg-white p-6 shadow-lg [animation-duration:200] data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-top-[2%] data-[state=open]:slide-in-from-top-[2%] rounded-lg md:w-full',\n this.userClass(),\n this.fitContent() || this._fitContent ? '' : 'max-w-lg',\n this._dynamicComponentClass\n )\n );\n\n public readonly component = this._dialogContext?.$component;\n private readonly _dynamicComponentClass = this._dialogContext?.$dynamicComponentClass;\n private readonly _fitContent = this._dialogContext?.$fitContent ?? false;\n}\n","import { computed, Directive, input } from '@angular/core';\nimport { hlm } from '@spartan-ng/brain/core';\nimport { BrnDialogDescription } from '@spartan-ng/brain/dialog';\nimport type { ClassValue } from 'clsx';\n\n@Directive({\n selector: '[hlmDialogDescription]',\n\n host: {\n '[class]': '_computedClass()',\n },\n hostDirectives: [BrnDialogDescription],\n})\nexport class HlmDialogDescription {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() => hlm('text-sm text-muted-foreground', this.userClass()));\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { hlm } from '@spartan-ng/brain/core';\nimport type { ClassValue } from 'clsx';\n\n@Component({\n selector: 'hlm-dialog-footer',\n\n template: ` <ng-content /> `,\n host: {\n '[class]': '_computedClass()',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HlmDialogFooter {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected _computedClass = computed(() =>\n hlm('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', this.userClass())\n );\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { hlm } from '@spartan-ng/brain/core';\nimport type { ClassValue } from 'clsx';\n\n@Component({\n selector: 'hlm-dialog-header',\n\n template: ` <ng-content /> `,\n host: {\n '[class]': '_computedClass()',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HlmDialogHeader {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected _computedClass = computed(() =>\n hlm('flex flex-col space-y-1.5 text-center sm:text-left', this.userClass())\n );\n}\n","import { computed, Directive, input } from '@angular/core';\nimport { hlm } from '@spartan-ng/brain/core';\nimport { BrnDialogTitle } from '@spartan-ng/brain/dialog';\nimport type { ClassValue } from 'clsx';\n\n@Directive({\n selector: '[hlmDialogTitle]',\n\n host: {\n '[class]': '_computedClass()',\n },\n hostDirectives: [BrnDialogTitle],\n})\nexport class HlmDialogTitle {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() =>\n hlm('text-lg font-semibold leading-none tracking-tight', this.userClass())\n );\n}\n","import type { ComponentType } from '@angular/cdk/portal';\nimport { inject, Injectable, signal, type TemplateRef } from '@angular/core';\nimport {\n BrnDialog,\n type BrnDialogOptions,\n BrnDialogRef,\n BrnDialogService,\n cssClassesToArray,\n DEFAULT_BRN_DIALOG_OPTIONS,\n} from '@spartan-ng/brain/dialog';\nimport { HlmDialogContent } from './hlm-dialog-content';\nimport { hlmDialogOverlayClass } from './hlm-dialog-overlay';\n\nexport type HlmDialogOptions<DialogContext = unknown> = BrnDialogOptions & {\n contentClass?: string;\n fitContent?: boolean;\n context?: DialogContext;\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class HlmDialogService {\n public ref = signal<BrnDialogRef<any> | null>(null);\n public component = signal<BrnDialog | null>(null);\n private readonly _brnDialogService = inject(BrnDialogService);\n\n public open(\n component: ComponentType<unknown> | TemplateRef<unknown>,\n options?: Partial<HlmDialogOptions>\n ): { reference: BrnDialogRef<any>; component: ComponentType<unknown> | TemplateRef<unknown> } {\n if (options) {\n options.panelClass = 'dialog-overlay-margin';\n } else {\n options = { panelClass: 'dialog-overlay-margin' };\n }\n\n const mergedOptions = {\n ...DEFAULT_BRN_DIALOG_OPTIONS,\n ...options,\n backdropClass: cssClassesToArray(`${hlmDialogOverlayClass} ${options?.backdropClass ?? ''} dialog-container`),\n context: {\n ...(typeof options?.context === 'object' && options?.context !== null ? options.context : {}),\n $component: component,\n $dynamicComponentClass: options?.contentClass,\n $fitContent: options?.fitContent,\n },\n };\n const reference = this._brnDialogService.open(HlmDialogContent, undefined, mergedOptions.context, mergedOptions);\n this.ref.set(reference);\n return { reference, component };\n }\n\n public close(): void {\n if (!this.ref()) {\n return;\n }\n\n this.ref()?.close();\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { HlmDialog } from './lib/hlm-dialog';\nimport { HlmDialogClose } from './lib/hlm-dialog-close';\nimport { HlmDialogContent } from './lib/hlm-dialog-content';\nimport { HlmDialogDescription } from './lib/hlm-dialog-description';\nimport { HlmDialogFooter } from './lib/hlm-dialog-footer';\nimport { HlmDialogHeader } from './lib/hlm-dialog-header';\nimport { HlmDialogOverlay } from './lib/hlm-dialog-overlay';\nimport { HlmDialogTitle } from './lib/hlm-dialog-title';\n\nexport * from './lib/hlm-dialog';\nexport * from './lib/hlm-dialog-close';\nexport * from './lib/hlm-dialog-content';\nexport * from './lib/hlm-dialog-description';\nexport * from './lib/hlm-dialog-footer';\nexport * from './lib/hlm-dialog-header';\nexport * from './lib/hlm-dialog-overlay';\nexport * from './lib/hlm-dialog-title';\nexport * from './lib/hlm-dialog.service';\n\nexport const HlmDialogImports = [\n HlmDialog,\n HlmDialogClose,\n HlmDialogContent,\n HlmDialogDescription,\n HlmDialogFooter,\n HlmDialogHeader,\n HlmDialogOverlay,\n HlmDialogTitle,\n] as const;\n\n@NgModule({\n // imports: [...HlmDialogImports],\n // exports: [...HlmDialogImports],\n})\nexport class HlmDialogModule {}\n","import { ChangeDetectionStrategy, Component, effect, inject, input, viewChild } from '@angular/core';\nimport { BrnDialog } from '@spartan-ng/brain/dialog';\nimport { HlmDialog, HlmDialogContent, HlmDialogService } from './libs/ui-dialog-helm/src';\n\n@Component({\n selector: 'sdc-dialog',\n imports: [HlmDialogContent, HlmDialog],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './dialog.component.html',\n})\nexport class DialogComponent {\n public dialogService = inject(HlmDialogService);\n public dialogComponent = viewChild(BrnDialog);\n public fitContent = input<boolean>(false);\n\n public constructor() {\n effect(() => {\n this.dialogService.component.set(this.dialogComponent() ?? null);\n });\n }\n}\n","<hlm-dialog #dialogRef>\n <hlm-dialog-content *hlmDialogContent=\"let ctx\" [fitContent]=\"fitContent()\" class=\"dialog-content\" />\n</hlm-dialog>\n","/*\n * Public API Surface of software-division-components\n */\n\nexport * from './dialog.component';\nexport * from './libs/ui-dialog-helm/src';\nexport { HlmDialogService as DialogService } from './libs/ui-dialog-helm/src/lib/hlm-dialog.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;AAIO,MAAM,qBAAqB,GAChC;MAKW,gBAAgB,CAAA;AACV,IAAA,cAAc,GAAG,yBAAyB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAE3E,SAAS,GAAG,KAAK,CAAa,EAAE,sDAAI,KAAK,EAAE,OAAO,EAAA,CAAG;AAClD,IAAA,cAAc,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,qBAAqB,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,0DAAC;AAEhG,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE;AACtC,YAAA,SAAS,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,uBAAuB,CAAC,QAAQ,CAAC,CAAC;AACzE,QAAA,CAAC,CAAC;IACJ;uGAXW,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4CAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,4CAA4C;AACvD,iBAAA;;;ACqBK,MAAO,SAAU,SAAQ,SAAS,CAAA;uGAA3B,SAAS,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAT,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,SAAA,EAtBT;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,SAAS;AAClB,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,SAAS,CAAC;AACzC,aAAA;AACD,YAAA,8BAA8B,CAAC;AAC7B,gBAAA,WAAW,EAAE,IAAI;AACjB,gBAAA,YAAY,EAAE,KAAK;AACnB,gBAAA,oBAAoB,EAAE,IAAI;AAC1B,gBAAA,2BAA2B,EAAE,IAAI;AACjC,gBAAA,cAAc,EAAE,YAAY;AAC5B,gBAAA,eAAe,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;aACpG,CAAC;SACH,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EACS;;;GAGT,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAlBS,gBAAgB,kFAAE,gBAAgB,EAAA,QAAA,EAAA,4CAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAuBjC,SAAS,EAAA,UAAA,EAAA,CAAA;kBA1BrB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,YAAY;AAEtB,oBAAA,OAAO,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;AAC7C,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,SAAS;AAClB,4BAAA,WAAW,EAAE,UAAU,CAAC,eAAe,CAAC;AACzC,yBAAA;AACD,wBAAA,8BAA8B,CAAC;AAC7B,4BAAA,WAAW,EAAE,IAAI;AACjB,4BAAA,YAAY,EAAE,KAAK;AACnB,4BAAA,oBAAoB,EAAE,IAAI;AAC1B,4BAAA,2BAA2B,EAAE,IAAI;AACjC,4BAAA,cAAc,EAAE,YAAY;AAC5B,4BAAA,eAAe,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;yBACpG,CAAC;AACH,qBAAA;AACD,oBAAA,QAAQ,EAAE;;;AAGT,EAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACrC,oBAAA,QAAQ,EAAE,WAAW;AACtB,iBAAA;;;MCnBY,cAAc,CAAA;IACT,SAAS,GAAG,KAAK,CAAa,EAAE,sDAAI,KAAK,EAAE,OAAO,EAAA,CAAG;AAElD,IAAA,cAAc,GAAG,QAAQ,CAAC,MAC3C,GAAG,CACD,+QAA+Q,EAC/Q,IAAI,CAAC,SAAS,EAAE,CACjB,0DACF;uGARU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wCAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAN1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wCAAwC;AAClD,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,kBAAkB;AAC9B,qBAAA;AACF,iBAAA;;;MCyBY,gBAAgB,CAAA;AACV,IAAA,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC;IACjC,cAAc,GAAG,sBAAsB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAE5D,SAAS,GAAG,KAAK,CAAa,EAAE,sDAAI,KAAK,EAAE,OAAO,EAAA,CAAG;AACrD,IAAA,UAAU,GAAG,KAAK,CAAU,KAAK,sDAAC;AAElC,IAAA,KAAK,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,QAAQ,iDAAC;AAC5D,IAAA,eAAe,GAAG,QAAQ,CAAC,MAAK;AAC9C,QAAA,MAAM,EAAE,UAAU,EAAE,sBAAsB,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,cAAc;AAC/F,QAAA,OAAO,IAAI;AACb,IAAA,CAAC,2DAAC;AACiB,IAAA,cAAc,GAAG,QAAQ,CAAC,MAC3C,GAAG,CACD,+XAA+X,EAC/X,IAAI,CAAC,SAAS,EAAE,EAChB,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,WAAW,GAAG,EAAE,GAAG,UAAU,EACvD,IAAI,CAAC,sBAAsB,CAC5B,0DACF;AAEe,IAAA,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE,UAAU;AAC1C,IAAA,sBAAsB,GAAG,IAAI,CAAC,cAAc,EAAE,sBAAsB;IACpE,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,WAAW,IAAI,KAAK;uGAvB7D,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,EAAA,EAAA,SAAA,EApBhB,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAK5B;;;;;;;;;;;GAWT,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAjBS,iBAAiB,yRAAE,cAAc,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,cAAc,EAAA,QAAA,EAAA,wCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,MAAM,6GAAE,OAAO,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAqBjE,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAxB5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;oBAE9B,OAAO,EAAE,CAAC,iBAAiB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC;oBAC7E,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;AACtC,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,kBAAkB;AAC7B,wBAAA,mBAAmB,EAAE,SAAS;AAC/B,qBAAA;AACD,oBAAA,QAAQ,EAAE;;;;;;;;;;;AAWT,EAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACtC,iBAAA;;;MCpBY,oBAAoB,CAAA;IACf,SAAS,GAAG,KAAK,CAAa,EAAE,sDAAI,KAAK,EAAE,OAAO,EAAA,CAAG;AAClD,IAAA,cAAc,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,+BAA+B,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,0DAAC;uGAF/F,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBARhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wBAAwB;AAElC,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,kBAAkB;AAC9B,qBAAA;oBACD,cAAc,EAAE,CAAC,oBAAoB,CAAC;AACvC,iBAAA;;;MCCY,eAAe,CAAA;IACV,SAAS,GAAG,KAAK,CAAa,EAAE,sDAAI,KAAK,EAAE,OAAO,EAAA,CAAG;AAC3D,IAAA,cAAc,GAAG,QAAQ,CAAC,MAClC,GAAG,CAAC,+DAA+D,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,0DACvF;uGAJU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,gRANhB,CAAA,gBAAA,CAAkB,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAMjB,eAAe,EAAA,UAAA,EAAA,CAAA;kBAT3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAE7B,oBAAA,QAAQ,EAAE,CAAA,gBAAA,CAAkB;AAC5B,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,kBAAkB;AAC9B,qBAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAChD,iBAAA;;;MCCY,eAAe,CAAA;IACV,SAAS,GAAG,KAAK,CAAa,EAAE,sDAAI,KAAK,EAAE,OAAO,EAAA,CAAG;AAC3D,IAAA,cAAc,GAAG,QAAQ,CAAC,MAClC,GAAG,CAAC,oDAAoD,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,0DAC5E;uGAJU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,gRANhB,CAAA,gBAAA,CAAkB,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAMjB,eAAe,EAAA,UAAA,EAAA,CAAA;kBAT3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAE7B,oBAAA,QAAQ,EAAE,CAAA,gBAAA,CAAkB;AAC5B,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,kBAAkB;AAC9B,qBAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAChD,iBAAA;;;MCCY,cAAc,CAAA;IACT,SAAS,GAAG,KAAK,CAAa,EAAE,sDAAI,KAAK,EAAE,OAAO,EAAA,CAAG;AAClD,IAAA,cAAc,GAAG,QAAQ,CAAC,MAC3C,GAAG,CAAC,mDAAmD,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,0DAC3E;uGAJU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,cAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAR1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;AAE5B,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,kBAAkB;AAC9B,qBAAA;oBACD,cAAc,EAAE,CAAC,cAAc,CAAC;AACjC,iBAAA;;;MCUY,gBAAgB,CAAA;AACpB,IAAA,GAAG,GAAG,MAAM,CAA2B,IAAI,+CAAC;AAC5C,IAAA,SAAS,GAAG,MAAM,CAAmB,IAAI,qDAAC;AAChC,IAAA,iBAAiB,GAAG,MAAM,CAAC,gBAAgB,CAAC;IAEtD,IAAI,CACT,SAAwD,EACxD,OAAmC,EAAA;QAEnC,IAAI,OAAO,EAAE;AACX,YAAA,OAAO,CAAC,UAAU,GAAG,uBAAuB;QAC9C;aAAO;AACL,YAAA,OAAO,GAAG,EAAE,UAAU,EAAE,uBAAuB,EAAE;QACnD;AAEA,QAAA,MAAM,aAAa,GAAG;AACpB,YAAA,GAAG,0BAA0B;AAC7B,YAAA,GAAG,OAAO;AACV,YAAA,aAAa,EAAE,iBAAiB,CAAC,CAAA,EAAG,qBAAqB,CAAA,CAAA,EAAI,OAAO,EAAE,aAAa,IAAI,EAAE,CAAA,iBAAA,CAAmB,CAAC;AAC7G,YAAA,OAAO,EAAE;gBACP,IAAI,OAAO,OAAO,EAAE,OAAO,KAAK,QAAQ,IAAI,OAAO,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC;AAC7F,gBAAA,UAAU,EAAE,SAAS;gBACrB,sBAAsB,EAAE,OAAO,EAAE,YAAY;gBAC7C,WAAW,EAAE,OAAO,EAAE,UAAU;AACjC,aAAA;SACF;AACD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,EAAE,SAAS,EAAE,aAAa,CAAC,OAAO,EAAE,aAAa,CAAC;AAChH,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC;AACvB,QAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE;IACjC;IAEO,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE;YACf;QACF;AAEA,QAAA,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE;IACrB;uGArCW,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAhB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFf,MAAM,EAAA,CAAA;;2FAEP,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;ACAM,MAAM,gBAAgB,GAAG;IAC9B,SAAS;IACT,cAAc;IACd,gBAAgB;IAChB,oBAAoB;IACpB,eAAe;IACf,eAAe;IACf,gBAAgB;IAChB,cAAc;;MAOH,eAAe,CAAA;uGAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;wGAAf,eAAe,EAAA,CAAA;wGAAf,eAAe,EAAA,CAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;;;AAGT,iBAAA;;;MCzBY,eAAe,CAAA;AACnB,IAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACxC,IAAA,eAAe,GAAG,SAAS,CAAC,SAAS,2DAAC;AACtC,IAAA,UAAU,GAAG,KAAK,CAAU,KAAK,sDAAC;AAEzC,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC;AAClE,QAAA,CAAC,CAAC;IACJ;uGATW,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,0QAES,SAAS,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECZ9C,yJAGA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDGY,gBAAgB,gGAAE,SAAS,EAAA,QAAA,EAAA,YAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAI1B,eAAe,EAAA,UAAA,EAAA,CAAA;kBAN3B,SAAS;+BACE,YAAY,EAAA,OAAA,EACb,CAAC,gBAAgB,EAAE,SAAS,CAAC,EAAA,eAAA,EACrB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,yJAAA,EAAA;2HAKZ,SAAS,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AEZ9C;;AAEG;;ACFH;;AAEG;;;;"}
1
+ {"version":3,"file":"3ddv-software-division-components-generic-dialog.mjs","sources":["../../generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-overlay.ts","../../generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog.ts","../../generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-close.ts","../../generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-content.ts","../../generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-description.ts","../../generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-footer.ts","../../generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-header.ts","../../generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-title.ts","../../generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog.service.ts","../../generic/dialog/libs/ui-dialog-helm/src/index.ts","../../generic/dialog/dialog.component.ts","../../generic/dialog/dialog.component.html","../../generic/dialog/public-api.ts","../../generic/dialog/3ddv-software-division-components-generic-dialog.ts"],"sourcesContent":["import { computed, Directive, effect, input, untracked } from '@angular/core';\nimport { hlm, injectCustomClassSettable } from '@spartan-ng/brain/core';\nimport type { ClassValue } from 'clsx';\n\nexport const hlmDialogOverlayClass =\n 'bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0';\n\n@Directive({\n selector: '[hlmDialogOverlay],brn-dialog-overlay[hlm]',\n})\nexport class HlmDialogOverlay {\n private readonly _classSettable = injectCustomClassSettable({ optional: true, host: true });\n\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() => hlm(hlmDialogOverlayClass, this.userClass()));\n\n constructor() {\n effect(() => {\n const newClass = this._computedClass();\n untracked(() => this._classSettable?.setClassToCustomElement(newClass));\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, forwardRef, ViewEncapsulation } from '@angular/core';\nimport { BrnDialog, BrnDialogOverlay, provideBrnDialogDefaultOptions } from '@spartan-ng/brain/dialog';\nimport { HlmDialogOverlay } from './hlm-dialog-overlay';\n\n@Component({\n selector: 'hlm-dialog',\n\n imports: [BrnDialogOverlay, HlmDialogOverlay],\n providers: [\n {\n provide: BrnDialog,\n useExisting: forwardRef(() => HlmDialog),\n },\n provideBrnDialogDefaultOptions({\n hasBackdrop: true,\n disableClose: false,\n closeOnBackdropClick: true,\n closeOnOutsidePointerEvents: true,\n scrollStrategy: 'reposition',\n attachPositions: [{ originX: 'center', originY: 'center', overlayX: 'center', overlayY: 'center' }],\n }),\n ],\n template: `\n <brn-dialog-overlay hlm />\n <ng-content />\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'hlmDialog',\n})\nexport class HlmDialog extends BrnDialog {}\n","import { computed, Directive, input } from '@angular/core';\nimport { hlm } from '@spartan-ng/brain/core';\nimport type { ClassValue } from 'clsx';\n\n@Directive({\n selector: '[hlmDialogClose],[brnDialogClose][hlm]',\n host: {\n '[class]': '_computedClass()',\n },\n})\nexport class HlmDialogClose {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly _computedClass = computed(() =>\n hlm(\n 'absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground',\n this.userClass()\n )\n );\n}\n","import { HlmIcon } from '@3ddv/software-division-components/generic/icon';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n computed,\n inject,\n input,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideX } from '@ng-icons/lucide';\nimport { hlm } from '@spartan-ng/brain/core';\nimport { BrnDialogClose, BrnDialogRef, injectBrnDialogContext } from '@spartan-ng/brain/dialog';\nimport type { ClassValue } from 'clsx';\nimport { HlmDialogClose } from './hlm-dialog-close';\n\n@Component({\n selector: 'hlm-dialog-content',\n imports: [BrnDialogClose, HlmDialogClose, NgIcon, HlmIcon],\n providers: [provideIcons({ lucideX })],\n host: {\n '[class]': '_computedClass()',\n '[attr.data-state]': 'state()',\n },\n template: `\n @if (component) {\n <ng-container #outlet />\n } @else {\n <ng-content />\n }\n\n <button brnDialogClose class=\"animated-button\" hlm>\n <span class=\"sr-only\">Close</span>\n <ng-icon hlm name=\"lucideX\" size=\"sm\" />\n </button>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class HlmDialogContent implements AfterViewInit {\n private readonly _dialogRef = inject(BrnDialogRef);\n private readonly _dialogContext = injectBrnDialogContext({ optional: true });\n\n @ViewChild('outlet', { read: ViewContainerRef }) private readonly _outlet!: ViewContainerRef;\n\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n public readonly fitContent = input<boolean>(false);\n public projectedRef: ComponentRef<unknown> | null = null;\n\n public readonly state = computed(() => this._dialogRef?.state() ?? 'closed');\n public readonly componentInputs = computed(() => {\n const { $component, $dynamicComponentClass, $fitContent, close, ...rest } = this._dialogContext;\n return rest;\n });\n protected readonly _computedClass = computed(() =>\n hlm(\n 'border-border grid w-full relative gap-4 border bg-white p-6 shadow-lg [animation-duration:200] data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-top-[2%] data-[state=open]:slide-in-from-top-[2%] rounded-lg md:w-full',\n this.userClass(),\n this.fitContent() || this._fitContent ? '' : 'max-w-lg',\n this._dynamicComponentClass\n )\n );\n\n public readonly component = this._dialogContext?.$component;\n private readonly _dynamicComponentClass = this._dialogContext?.$dynamicComponentClass;\n private readonly _fitContent = this._dialogContext?.$fitContent ?? false;\n\n public ngAfterViewInit(): void {\n if (!this.component || !this._outlet) {\n return;\n }\n this.projectedRef = this._outlet.createComponent(this.component);\n for (const [key, value] of Object.entries(this.componentInputs())) {\n this.projectedRef.setInput(key, value);\n }\n }\n}\n","import { computed, Directive, input } from '@angular/core';\nimport { hlm } from '@spartan-ng/brain/core';\nimport { BrnDialogDescription } from '@spartan-ng/brain/dialog';\nimport type { ClassValue } from 'clsx';\n\n@Directive({\n selector: '[hlmDialogDescription]',\n\n host: {\n '[class]': '_computedClass()',\n },\n hostDirectives: [BrnDialogDescription],\n})\nexport class HlmDialogDescription {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() => hlm('text-sm text-muted-foreground', this.userClass()));\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { hlm } from '@spartan-ng/brain/core';\nimport type { ClassValue } from 'clsx';\n\n@Component({\n selector: 'hlm-dialog-footer',\n\n template: ` <ng-content /> `,\n host: {\n '[class]': '_computedClass()',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HlmDialogFooter {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected _computedClass = computed(() =>\n hlm('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', this.userClass())\n );\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { hlm } from '@spartan-ng/brain/core';\nimport type { ClassValue } from 'clsx';\n\n@Component({\n selector: 'hlm-dialog-header',\n\n template: ` <ng-content /> `,\n host: {\n '[class]': '_computedClass()',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HlmDialogHeader {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected _computedClass = computed(() =>\n hlm('flex flex-col space-y-1.5 text-center sm:text-left', this.userClass())\n );\n}\n","import { computed, Directive, input } from '@angular/core';\nimport { hlm } from '@spartan-ng/brain/core';\nimport { BrnDialogTitle } from '@spartan-ng/brain/dialog';\nimport type { ClassValue } from 'clsx';\n\n@Directive({\n selector: '[hlmDialogTitle]',\n\n host: {\n '[class]': '_computedClass()',\n },\n hostDirectives: [BrnDialogTitle],\n})\nexport class HlmDialogTitle {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() =>\n hlm('text-lg font-semibold leading-none tracking-tight', this.userClass())\n );\n}\n","import type { ComponentType } from '@angular/cdk/portal';\nimport { inject, Injectable, OutputEmitterRef, signal, TemplateRef } from '@angular/core';\nimport {\n BrnDialog,\n type BrnDialogOptions,\n BrnDialogRef,\n BrnDialogService,\n cssClassesToArray,\n DEFAULT_BRN_DIALOG_OPTIONS,\n} from '@spartan-ng/brain/dialog';\nimport { HlmDialogContent } from './hlm-dialog-content';\nimport { hlmDialogOverlayClass } from './hlm-dialog-overlay';\n\nexport type HlmDialogOptions<DialogContext = unknown> = BrnDialogOptions & {\n contentClass?: string;\n fitContent?: boolean;\n context?: DialogContext;\n};\n\nexport type OutputsOf<T> = {\n [K in keyof T as T[K] extends OutputEmitterRef<any> ? K : never]: T[K];\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class HlmDialogService {\n public ref = signal<BrnDialogRef<any> | null>(null);\n public component = signal<BrnDialog | null>(null);\n private readonly _brnDialogService = inject(BrnDialogService);\n\n public open<T = unknown>(\n component: ComponentType<T> | TemplateRef<T>,\n options?: Partial<HlmDialogOptions>\n ): { reference: BrnDialogRef<any>; outputs: OutputsOf<T> | null } {\n if (options) {\n options.panelClass = 'dialog-overlay-margin';\n } else {\n options = { panelClass: 'dialog-overlay-margin' };\n }\n\n const mergedOptions = {\n ...DEFAULT_BRN_DIALOG_OPTIONS,\n ...options,\n backdropClass: cssClassesToArray(`${hlmDialogOverlayClass} ${options?.backdropClass ?? ''} dialog-container`),\n context: {\n ...(typeof options?.context === 'object' && options?.context !== null ? options.context : {}),\n $component: component,\n $dynamicComponentClass: options?.contentClass,\n $fitContent: options?.fitContent,\n },\n };\n const reference = this._brnDialogService.open(HlmDialogContent, undefined, mergedOptions.context, mergedOptions);\n this.ref.set(reference);\n\n const cdkRef = (reference as any)._cdkDialogRef;\n cdkRef?.componentRef?.changeDetectorRef?.detectChanges();\n\n const contentInstance = cdkRef?.componentRef?.instance as HlmDialogContent;\n const instance = contentInstance?.projectedRef?.instance as T | undefined;\n\n // We only expose the component outputs here\n let outputs: OutputsOf<T> | null = null;\n if (instance) {\n const result = {} as Record<string, unknown>;\n for (const key of Object.getOwnPropertyNames(instance)) {\n if ((instance as any)[key] instanceof OutputEmitterRef) {\n result[key] = (instance as any)[key];\n }\n }\n outputs = result as OutputsOf<T>;\n }\n\n return { reference, outputs };\n }\n\n public close(): void {\n if (!this.ref()) {\n return;\n }\n\n this.ref()?.close();\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { HlmDialog } from './lib/hlm-dialog';\nimport { HlmDialogClose } from './lib/hlm-dialog-close';\nimport { HlmDialogContent } from './lib/hlm-dialog-content';\nimport { HlmDialogDescription } from './lib/hlm-dialog-description';\nimport { HlmDialogFooter } from './lib/hlm-dialog-footer';\nimport { HlmDialogHeader } from './lib/hlm-dialog-header';\nimport { HlmDialogOverlay } from './lib/hlm-dialog-overlay';\nimport { HlmDialogTitle } from './lib/hlm-dialog-title';\n\nexport * from './lib/hlm-dialog';\nexport * from './lib/hlm-dialog-close';\nexport * from './lib/hlm-dialog-content';\nexport * from './lib/hlm-dialog-description';\nexport * from './lib/hlm-dialog-footer';\nexport * from './lib/hlm-dialog-header';\nexport * from './lib/hlm-dialog-overlay';\nexport * from './lib/hlm-dialog-title';\nexport * from './lib/hlm-dialog.service';\n\nexport const HlmDialogImports = [\n HlmDialog,\n HlmDialogClose,\n HlmDialogContent,\n HlmDialogDescription,\n HlmDialogFooter,\n HlmDialogHeader,\n HlmDialogOverlay,\n HlmDialogTitle,\n] as const;\n\n@NgModule({\n // imports: [...HlmDialogImports],\n // exports: [...HlmDialogImports],\n})\nexport class HlmDialogModule {}\n","import { ChangeDetectionStrategy, Component, effect, inject, input, viewChild } from '@angular/core';\nimport { BrnDialog } from '@spartan-ng/brain/dialog';\nimport { HlmDialog, HlmDialogContent, HlmDialogService } from './libs/ui-dialog-helm/src';\n\n@Component({\n selector: 'sdc-dialog',\n imports: [HlmDialogContent, HlmDialog],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './dialog.component.html',\n})\nexport class DialogComponent {\n public dialogService = inject(HlmDialogService);\n public dialogComponent = viewChild(BrnDialog);\n public fitContent = input<boolean>(false);\n\n public constructor() {\n effect(() => {\n this.dialogService.component.set(this.dialogComponent() ?? null);\n });\n }\n}\n","<hlm-dialog #dialogRef>\n <hlm-dialog-content *hlmDialogContent=\"let ctx\" [fitContent]=\"fitContent()\" class=\"dialog-content\" />\n</hlm-dialog>\n","/*\n * Public API Surface of software-division-components\n */\n\nexport * from './dialog.component';\nexport * from './libs/ui-dialog-helm/src';\nexport { HlmDialogService as DialogService } from './libs/ui-dialog-helm/src/lib/hlm-dialog.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -4,10 +4,11 @@ import { inject, ElementRef, input, signal, effect, ChangeDetectionStrategy, Vie
4
4
  import { DomSanitizer } from '@angular/platform-browser';
5
5
  import { map, shareReplay } from 'rxjs';
6
6
 
7
+ const iconCache = new Map();
7
8
  class SvgIconComponent {
8
9
  // DI
9
10
  http = inject(HttpClient);
10
- cache = new Map();
11
+ cache = iconCache;
11
12
  sanitizer = inject(DomSanitizer);
12
13
  elementRef = inject(ElementRef);
13
14
  // INPUTS / OUTPUTS
@@ -1 +1 @@
1
- {"version":3,"file":"3ddv-software-division-components-generic-icon.mjs","sources":["../../generic/icon/icon.component.ts","../../generic/icon/icon.component.html","../../generic/icon/lib/ui-icon-helm/src/lib/hlm-icon.token.ts","../../generic/icon/lib/ui-icon-helm/src/lib/hlm-icon.ts","../../generic/icon/lib/ui-icon-helm/src/index.ts","../../generic/icon/public-api.ts","../../generic/icon/3ddv-software-division-components-generic-icon.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\nimport {\n ChangeDetectionStrategy,\n Component,\n effect,\n ElementRef,\n inject,\n input,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { map, Observable, shareReplay } from 'rxjs';\n\n@Component({\n selector: 'sdc-svg-icon',\n templateUrl: './icon.component.html',\n styleUrl: './icon.component.css',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'className()',\n },\n})\nexport class SvgIconComponent {\n // DI\n private readonly http = inject(HttpClient);\n private readonly cache = new Map<string, Observable<string>>();\n private readonly sanitizer = inject(DomSanitizer);\n private readonly elementRef = inject(ElementRef);\n\n // INPUTS / OUTPUTS\n public readonly name = input.required<string>();\n public readonly iconFolder = input<string>();\n public readonly className = input<string>('');\n public readonly color = input<string>('currentColor');\n public readonly strokeWidth = input<number>(1);\n\n // STATE\n public readonly svgContent = signal<SafeHtml | null>(null);\n\n public constructor() {\n effect(() => {\n this.getIcon(this.name()).subscribe({\n next: svg => {\n const element = this.elementRef.nativeElement as HTMLElement;\n\n // Apply dynamic properties\n element.style.setProperty('--icon-color', this.resolveColor(this.color()));\n element.style.setProperty('--icon-stroke-width', this.strokeWidth().toString());\n\n this.svgContent.set(this.sanitizer.bypassSecurityTrustHtml(svg));\n },\n error: (error: unknown) => {\n console.error('Failed to load icon:', error);\n // Optional: set a minimal fallback SVG or clear content\n this.svgContent.set(\n this.sanitizer.bypassSecurityTrustHtml(\n `<svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12 8v4m0 4h.01\"\n stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" fill=\"none\"/></svg>`\n )\n );\n },\n });\n });\n }\n\n public getIcon(name: string): Observable<string> {\n if (!this.cache.has(name)) {\n const folder = this.iconFolder() ?? 'assets';\n const icon$ = this.http.get(`/${folder}/${name}.svg`, { responseType: 'text' }).pipe(\n map(svg => this.sanitizeSvg(svg)),\n shareReplay({ bufferSize: 1, refCount: true })\n );\n\n this.cache.set(name, icon$);\n }\n\n return this.cache.get(name)!;\n }\n\n private sanitizeSvg(svg: string): string {\n return (\n svg\n // Remove any existing width/height attributes to make the SVG more flexible\n .replace(/\\swidth=\"[^\"]*\"/g, '')\n .replace(/\\sheight=\"[^\"]*\"/g, '')\n // Strip hardcoded fill/stroke so CSS variable takes effect\n .replace(/\\sfill=\"(?!none)[^\"]*\"/g, '')\n .replace(/\\sstroke=\"(?!none)[^\"]*\"/g, '')\n );\n }\n\n /**\n * Resolves the color input to a valid CSS value.\n * - Already-valid CSS values (var(), #hex, rgb(), hsl(), currentColor) pass through unchanged.\n * - A raw CSS variable name starting with \"--\" is wrapped: \"--my-var\" → \"var(--my-var)\".\n * - Any other string is treated as a design-token name and resolved via the\n * \"--color-\" prefix convention: \"accent\" → \"var(--color-accent)\".\n */\n private resolveColor(color: string): string {\n const passThroughPrefixes = ['currentColor', 'var(', '#', 'rgb(', 'rgba(', 'hsl(', 'hsla('];\n\n if (passThroughPrefixes.some(prefix => color.startsWith(prefix))) {\n return color;\n }\n\n if (color.startsWith('--')) {\n return `var(${color})`;\n }\n\n return `var(--color-${color})`;\n }\n}\n","@if (svgContent(); as content) {\n <span class=\"inline-block app-svg-icon\" [innerHTML]=\"content\"></span>\n}\n","import { InjectionToken, ValueProvider, inject } from '@angular/core';\nimport type { IconSize } from './hlm-icon';\n\nexport interface HlmIconConfig {\n size: IconSize;\n}\n\nconst defaultConfig: HlmIconConfig = {\n size: 'base',\n};\n\nconst HlmIconConfigToken = new InjectionToken<HlmIconConfig>('HlmIconConfig');\n\nexport function provideHlmIconConfig(config: Partial<HlmIconConfig>): ValueProvider {\n return { provide: HlmIconConfigToken, useValue: { ...defaultConfig, ...config } };\n}\n\nexport function injectHlmIconConfig(): HlmIconConfig {\n return inject(HlmIconConfigToken, { optional: true }) ?? defaultConfig;\n}\n","import { Directive, computed, input } from '@angular/core';\nimport { injectHlmIconConfig } from './hlm-icon.token';\n\nexport type IconSize = 'xs' | 'sm' | 'base' | 'lg' | 'xl' | 'none' | (Record<never, never> & string);\n\n@Directive({\n selector: 'ng-icon[hlm]',\n standalone: true,\n host: {\n '[style.--ng-icon__size]': '_computedSize()',\n },\n})\nexport class HlmIcon {\n private readonly _config = injectHlmIconConfig();\n public readonly size = input<IconSize>(this._config.size);\n public readonly variant = input<'light' | 'dark'>('light');\n\n protected readonly _computedSize = computed(() => {\n const size = this.size();\n\n switch (size) {\n case 'xs':\n return '12px';\n case 'sm':\n return '16px';\n case 'base':\n return '24px';\n case 'lg':\n return '32px';\n case 'xl':\n return '48px';\n default: {\n return size;\n }\n }\n });\n}\n","import { NgModule } from '@angular/core';\nimport { HlmIcon } from './lib/hlm-icon';\n\nexport * from './lib/hlm-icon';\nexport * from './lib/hlm-icon.token';\n\n@NgModule({\n imports: [HlmIcon],\n exports: [HlmIcon],\n})\nexport class HlmIconModule {}\n","/*\n * Public API Surface of software-division-components\n */\n\nexport * from './icon.component';\nexport { HlmIcon, HlmIconModule } from './lib/ui-icon-helm/src';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"3ddv-software-division-components-generic-icon.mjs","sources":["../../generic/icon/icon.component.ts","../../generic/icon/icon.component.html","../../generic/icon/lib/ui-icon-helm/src/lib/hlm-icon.token.ts","../../generic/icon/lib/ui-icon-helm/src/lib/hlm-icon.ts","../../generic/icon/lib/ui-icon-helm/src/index.ts","../../generic/icon/public-api.ts","../../generic/icon/3ddv-software-division-components-generic-icon.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\nimport {\n ChangeDetectionStrategy,\n Component,\n effect,\n ElementRef,\n inject,\n input,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { map, Observable, shareReplay } from 'rxjs';\n\nconst iconCache = new Map<string, Observable<string>>();\n\n@Component({\n selector: 'sdc-svg-icon',\n templateUrl: './icon.component.html',\n styleUrl: './icon.component.css',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'className()',\n },\n})\nexport class SvgIconComponent {\n // DI\n private readonly http = inject(HttpClient);\n private readonly cache = iconCache;\n private readonly sanitizer = inject(DomSanitizer);\n private readonly elementRef = inject(ElementRef);\n\n // INPUTS / OUTPUTS\n public readonly name = input.required<string>();\n public readonly iconFolder = input<string>();\n public readonly className = input<string>('');\n public readonly color = input<string>('currentColor');\n public readonly strokeWidth = input<number>(1);\n\n // STATE\n public readonly svgContent = signal<SafeHtml | null>(null);\n\n public constructor() {\n effect(() => {\n this.getIcon(this.name()).subscribe({\n next: svg => {\n const element = this.elementRef.nativeElement as HTMLElement;\n\n // Apply dynamic properties\n element.style.setProperty('--icon-color', this.resolveColor(this.color()));\n element.style.setProperty('--icon-stroke-width', this.strokeWidth().toString());\n\n this.svgContent.set(this.sanitizer.bypassSecurityTrustHtml(svg));\n },\n error: (error: unknown) => {\n console.error('Failed to load icon:', error);\n // Optional: set a minimal fallback SVG or clear content\n this.svgContent.set(\n this.sanitizer.bypassSecurityTrustHtml(\n `<svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12 8v4m0 4h.01\"\n stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" fill=\"none\"/></svg>`\n )\n );\n },\n });\n });\n }\n\n public getIcon(name: string): Observable<string> {\n if (!this.cache.has(name)) {\n const folder = this.iconFolder() ?? 'assets';\n const icon$ = this.http.get(`/${folder}/${name}.svg`, { responseType: 'text' }).pipe(\n map(svg => this.sanitizeSvg(svg)),\n shareReplay({ bufferSize: 1, refCount: true })\n );\n\n this.cache.set(name, icon$);\n }\n\n return this.cache.get(name)!;\n }\n\n private sanitizeSvg(svg: string): string {\n return (\n svg\n // Remove any existing width/height attributes to make the SVG more flexible\n .replace(/\\swidth=\"[^\"]*\"/g, '')\n .replace(/\\sheight=\"[^\"]*\"/g, '')\n // Strip hardcoded fill/stroke so CSS variable takes effect\n .replace(/\\sfill=\"(?!none)[^\"]*\"/g, '')\n .replace(/\\sstroke=\"(?!none)[^\"]*\"/g, '')\n );\n }\n\n /**\n * Resolves the color input to a valid CSS value.\n * - Already-valid CSS values (var(), #hex, rgb(), hsl(), currentColor) pass through unchanged.\n * - A raw CSS variable name starting with \"--\" is wrapped: \"--my-var\" → \"var(--my-var)\".\n * - Any other string is treated as a design-token name and resolved via the\n * \"--color-\" prefix convention: \"accent\" → \"var(--color-accent)\".\n */\n private resolveColor(color: string): string {\n const passThroughPrefixes = ['currentColor', 'var(', '#', 'rgb(', 'rgba(', 'hsl(', 'hsla('];\n\n if (passThroughPrefixes.some(prefix => color.startsWith(prefix))) {\n return color;\n }\n\n if (color.startsWith('--')) {\n return `var(${color})`;\n }\n\n return `var(--color-${color})`;\n }\n}\n","@if (svgContent(); as content) {\n <span class=\"inline-block app-svg-icon\" [innerHTML]=\"content\"></span>\n}\n","import { InjectionToken, ValueProvider, inject } from '@angular/core';\nimport type { IconSize } from './hlm-icon';\n\nexport interface HlmIconConfig {\n size: IconSize;\n}\n\nconst defaultConfig: HlmIconConfig = {\n size: 'base',\n};\n\nconst HlmIconConfigToken = new InjectionToken<HlmIconConfig>('HlmIconConfig');\n\nexport function provideHlmIconConfig(config: Partial<HlmIconConfig>): ValueProvider {\n return { provide: HlmIconConfigToken, useValue: { ...defaultConfig, ...config } };\n}\n\nexport function injectHlmIconConfig(): HlmIconConfig {\n return inject(HlmIconConfigToken, { optional: true }) ?? defaultConfig;\n}\n","import { Directive, computed, input } from '@angular/core';\nimport { injectHlmIconConfig } from './hlm-icon.token';\n\nexport type IconSize = 'xs' | 'sm' | 'base' | 'lg' | 'xl' | 'none' | (Record<never, never> & string);\n\n@Directive({\n selector: 'ng-icon[hlm]',\n standalone: true,\n host: {\n '[style.--ng-icon__size]': '_computedSize()',\n },\n})\nexport class HlmIcon {\n private readonly _config = injectHlmIconConfig();\n public readonly size = input<IconSize>(this._config.size);\n public readonly variant = input<'light' | 'dark'>('light');\n\n protected readonly _computedSize = computed(() => {\n const size = this.size();\n\n switch (size) {\n case 'xs':\n return '12px';\n case 'sm':\n return '16px';\n case 'base':\n return '24px';\n case 'lg':\n return '32px';\n case 'xl':\n return '48px';\n default: {\n return size;\n }\n }\n });\n}\n","import { NgModule } from '@angular/core';\nimport { HlmIcon } from './lib/hlm-icon';\n\nexport * from './lib/hlm-icon';\nexport * from './lib/hlm-icon.token';\n\n@NgModule({\n imports: [HlmIcon],\n exports: [HlmIcon],\n})\nexport class HlmIconModule {}\n","/*\n * Public API Surface of software-division-components\n */\n\nexport * from './icon.component';\nexport { HlmIcon, HlmIconModule } from './lib/ui-icon-helm/src';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@3ddv/software-division-components",
3
- "version": "2.0.6",
3
+ "version": "2.0.10",
4
4
  "main": "./fesm2022/3ddv-software-division-components.mjs",
5
5
  "module": "fesm2022/3ddv-software-division-components.mjs",
6
6
  "typings": "types/3ddv-software-division-components.d.ts",
@@ -330,6 +330,7 @@ declare abstract class BasePopoverComponent implements OnInit, OnDestroy {
330
330
  declare class SeatPopoverComponent extends BasePopoverComponent implements OnInit {
331
331
  data: SeatPopoverData;
332
332
  showLoader: boolean;
333
+ load3dView: EventEmitter<void>;
333
334
  private readonly thumbnailProvider;
334
335
  protected readonly cdr: ChangeDetectorRef;
335
336
  protected thumbnail?: string;
@@ -340,8 +341,9 @@ declare class SeatPopoverComponent extends BasePopoverComponent implements OnIni
340
341
  protected get formattedSeat(): string;
341
342
  protected onEnter(event: MouseEvent): void;
342
343
  protected onLeave(event: MouseEvent): void;
344
+ protected onLoad3dView(): void;
343
345
  static ɵfac: i0.ɵɵFactoryDeclaration<SeatPopoverComponent, never>;
344
- static ɵcmp: i0.ɵɵComponentDeclaration<SeatPopoverComponent, "sdc-seat-popover", never, { "data": { "alias": "data"; "required": false; }; "showLoader": { "alias": "showLoader"; "required": false; }; }, {}, never, never, true, never>;
346
+ static ɵcmp: i0.ɵɵComponentDeclaration<SeatPopoverComponent, "sdc-seat-popover", never, { "data": { "alias": "data"; "required": false; }; "showLoader": { "alias": "showLoader"; "required": false; }; }, { "load3dView": "load3dView"; }, never, never, true, never>;
345
347
  }
346
348
 
347
349
  declare class SectionPopoverComponent extends BasePopoverComponent implements OnInit {
@@ -351,6 +353,7 @@ declare class SectionPopoverComponent extends BasePopoverComponent implements On
351
353
  showOpenSeatMap: boolean;
352
354
  excludeSeatMapSections: string[];
353
355
  isTicketFeeEnabled: boolean;
356
+ isAdaEnabled: boolean;
354
357
  load3dView: EventEmitter<void>;
355
358
  selectForBA: EventEmitter<boolean>;
356
359
  openSeatMap: EventEmitter<void>;
@@ -369,7 +372,7 @@ declare class SectionPopoverComponent extends BasePopoverComponent implements On
369
372
  protected onSelectForBA(): void;
370
373
  protected onOpenSeatMap(): void;
371
374
  static ɵfac: i0.ɵɵFactoryDeclaration<SectionPopoverComponent, never>;
372
- static ɵcmp: i0.ɵɵComponentDeclaration<SectionPopoverComponent, "sdc-section-popover", never, { "data": { "alias": "data"; "required": false; }; "showLoader": { "alias": "showLoader"; "required": false; }; "showBestAvailable": { "alias": "showBestAvailable"; "required": false; }; "showOpenSeatMap": { "alias": "showOpenSeatMap"; "required": false; }; "excludeSeatMapSections": { "alias": "excludeSeatMapSections"; "required": false; }; "isTicketFeeEnabled": { "alias": "isTicketFeeEnabled"; "required": false; }; }, { "load3dView": "load3dView"; "selectForBA": "selectForBA"; "openSeatMap": "openSeatMap"; }, never, never, true, never>;
375
+ static ɵcmp: i0.ɵɵComponentDeclaration<SectionPopoverComponent, "sdc-section-popover", never, { "data": { "alias": "data"; "required": false; }; "showLoader": { "alias": "showLoader"; "required": false; }; "showBestAvailable": { "alias": "showBestAvailable"; "required": false; }; "showOpenSeatMap": { "alias": "showOpenSeatMap"; "required": false; }; "excludeSeatMapSections": { "alias": "excludeSeatMapSections"; "required": false; }; "isTicketFeeEnabled": { "alias": "isTicketFeeEnabled"; "required": false; }; "isAdaEnabled": { "alias": "isAdaEnabled"; "required": false; }; }, { "load3dView": "load3dView"; "selectForBA": "selectForBA"; "openSeatMap": "openSeatMap"; }, never, never, true, never>;
373
376
  }
374
377
 
375
378
  /**
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { TemplateRef } from '@angular/core';
2
+ import { AfterViewInit, ComponentRef, TemplateRef, OutputEmitterRef } from '@angular/core';
3
3
  import * as i1 from '@spartan-ng/brain/dialog';
4
4
  import { BrnDialog, BrnDialogRef, BrnDialogOptions } from '@spartan-ng/brain/dialog';
5
5
  import { ComponentType } from '@angular/cdk/portal';
@@ -17,17 +17,20 @@ declare class HlmDialogClose {
17
17
  static ɵdir: i0.ɵɵDirectiveDeclaration<HlmDialogClose, "[hlmDialogClose],[brnDialogClose][hlm]", never, { "userClass": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
18
18
  }
19
19
 
20
- declare class HlmDialogContent {
20
+ declare class HlmDialogContent implements AfterViewInit {
21
21
  private readonly _dialogRef;
22
22
  private readonly _dialogContext;
23
+ private readonly _outlet;
23
24
  readonly userClass: i0.InputSignal<ClassValue>;
24
25
  readonly fitContent: i0.InputSignal<boolean>;
26
+ projectedRef: ComponentRef<unknown> | null;
25
27
  readonly state: i0.Signal<i1.BrnDialogState>;
26
28
  readonly componentInputs: i0.Signal<any>;
27
29
  protected readonly _computedClass: i0.Signal<string>;
28
30
  readonly component: any;
29
31
  private readonly _dynamicComponentClass;
30
32
  private readonly _fitContent;
33
+ ngAfterViewInit(): void;
31
34
  static ɵfac: i0.ɵɵFactoryDeclaration<HlmDialogContent, never>;
32
35
  static ɵcmp: i0.ɵɵComponentDeclaration<HlmDialogContent, "hlm-dialog-content", never, { "userClass": { "alias": "class"; "required": false; "isSignal": true; }; "fitContent": { "alias": "fitContent"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
33
36
  }
@@ -75,13 +78,16 @@ type HlmDialogOptions<DialogContext = unknown> = BrnDialogOptions & {
75
78
  fitContent?: boolean;
76
79
  context?: DialogContext;
77
80
  };
81
+ type OutputsOf<T> = {
82
+ [K in keyof T as T[K] extends OutputEmitterRef<any> ? K : never]: T[K];
83
+ };
78
84
  declare class HlmDialogService {
79
85
  ref: i0.WritableSignal<BrnDialogRef<any> | null>;
80
86
  component: i0.WritableSignal<BrnDialog | null>;
81
87
  private readonly _brnDialogService;
82
- open(component: ComponentType<unknown> | TemplateRef<unknown>, options?: Partial<HlmDialogOptions>): {
88
+ open<T = unknown>(component: ComponentType<T> | TemplateRef<T>, options?: Partial<HlmDialogOptions>): {
83
89
  reference: BrnDialogRef<any>;
84
- component: ComponentType<unknown> | TemplateRef<unknown>;
90
+ outputs: OutputsOf<T> | null;
85
91
  };
86
92
  close(): void;
87
93
  static ɵfac: i0.ɵɵFactoryDeclaration<HlmDialogService, never>;
@@ -105,4 +111,4 @@ declare class DialogComponent {
105
111
  }
106
112
 
107
113
  export { DialogComponent, HlmDialogService as DialogService, HlmDialog, HlmDialogClose, HlmDialogContent, HlmDialogDescription, HlmDialogFooter, HlmDialogHeader, HlmDialogImports, HlmDialogModule, HlmDialogOverlay, HlmDialogService, HlmDialogTitle, hlmDialogOverlayClass };
108
- export type { HlmDialogOptions };
114
+ export type { HlmDialogOptions, OutputsOf };