@ngbase/adk 0.1.12 → 0.1.14

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.
@@ -93,7 +93,7 @@ class NgbDialogContainer extends BaseDialog {
93
93
  this.backdropColor = options.backdropColor || true;
94
94
  }
95
95
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbDialogContainer, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
96
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "20.2.0", type: NgbDialogContainer, isStandalone: true, selector: "[ngbDialog]", host: { listeners: { "@parentAnimation.done": "animationDone()" }, properties: { "@parentAnimation": "" } }, providers: [provideFocusTrapOptions(() => ({ initial: true }))], viewQueries: [{ propertyName: "myDialog", first: true, predicate: ["contentContainer"], descendants: true, read: ViewContainerRef, isSignal: true }], usesInheritance: true, hostDirectives: [{ directive: i1.FocusTrap }], ngImport: i0 }); }
96
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "20.2.0", type: NgbDialogContainer, isStandalone: true, selector: "[ngbDialog]", providers: [provideFocusTrapOptions(() => ({ initial: true }))], viewQueries: [{ propertyName: "myDialog", first: true, predicate: ["contentContainer"], descendants: true, read: ViewContainerRef, isSignal: true }], usesInheritance: true, hostDirectives: [{ directive: i1.FocusTrap }], ngImport: i0 }); }
97
97
  }
98
98
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbDialogContainer, decorators: [{
99
99
  type: Directive,
@@ -101,10 +101,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImpor
101
101
  selector: '[ngbDialog]',
102
102
  hostDirectives: [FocusTrap],
103
103
  providers: [provideFocusTrapOptions(() => ({ initial: true }))],
104
- host: {
105
- '[@parentAnimation]': '',
106
- '(@parentAnimation.done)': 'animationDone()',
107
- },
108
104
  }]
109
105
  }], ctorParameters: () => [] });
110
106
  class NgbDialogClose {
@@ -1 +1 @@
1
- {"version":3,"file":"ngbase-adk-dialog.mjs","sources":["../../../projects/adk/dialog/dialog.service.ts","../../../projects/adk/dialog/dialog.ts","../../../projects/adk/dialog/dialog.animation.ts","../../../projects/adk/dialog/public-api.ts","../../../projects/adk/dialog/ngbase-adk-dialog.ts"],"sourcesContent":["import { basePortal, DialogInput, DialogOptions } from '@ngbase/adk/portal';\nimport { NgbDialogContainer } from './dialog';\n\nexport function ngbDialogPortal(component: typeof NgbDialogContainer) {\n const NAME = 'dialog';\n const base = basePortal(NAME, component);\n\n function open<T>(component: DialogInput, opt?: DialogOptions) {\n const { diaRef } = base.open(\n component,\n (comp, options) => {\n comp.instance.setOptions(options);\n },\n opt,\n );\n\n return diaRef;\n }\n\n function closeAll() {\n base.closeAll();\n }\n return { open, closeAll };\n}\n\nexport type NgbDialog = ReturnType<typeof ngbDialogPortal>;\n","import {\n afterNextRender,\n computed,\n Directive,\n inject,\n signal,\n viewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { FocusTrap, provideFocusTrapOptions } from '@ngbase/adk/a11y';\nimport { BaseDialog, DialogOptions, NgbPortalClose } from '@ngbase/adk/portal';\nimport { Subject } from 'rxjs';\n\n@Directive({\n selector: '[ngbDialogMain]',\n host: {\n '[class]': `classNames()`,\n '[style]': `style()`,\n },\n})\nexport class NgbDialogMain {\n readonly dialog = inject(NgbDialogContainer);\n readonly options = this.dialog.options;\n readonly classNames = computed(() => this.options().classNames?.join(' ') || '');\n readonly style = computed(() => {\n return {\n width: this.options().fullWindow ? '100vw' : this.options().width,\n height: this.options().fullWindow ? '100vh' : this.options().height,\n maxWidth: this.options().fullWindow ? '100vw' : this.options().maxWidth,\n maxHeight: this.options().fullWindow ? '100vh' : this.options().maxHeight || '96vh',\n minHeight: this.options().minHeight,\n minWidth: this.options().minWidth,\n };\n });\n}\n\n@Directive({\n selector: '[ngbDialogBackdrop]',\n host: {\n '(click)': `close()`,\n },\n})\nexport class NgbDialogBackdrop {\n readonly dialog = inject(NgbDialogContainer);\n readonly options = this.dialog.options;\n\n close() {\n if (!this.options().disableClose) {\n this.dialog.close();\n }\n }\n}\n\n@Directive({\n selector: '[ngbDialog]',\n hostDirectives: [FocusTrap],\n providers: [provideFocusTrapOptions(() => ({ initial: true }))],\n host: {\n '[@parentAnimation]': '',\n '(@parentAnimation.done)': 'animationDone()',\n },\n})\nexport class NgbDialogContainer extends BaseDialog {\n readonly myDialog = viewChild('contentContainer', { read: ViewContainerRef });\n\n backdropColor = true;\n isSidePopup = true;\n\n readonly onDone = new Subject<any>();\n readonly options = signal<DialogOptions>(new DialogOptions());\n readonly showBackdrop = computed(() => !this.options().fullWindow && this.options().backdrop);\n isHideHeader = false;\n\n constructor() {\n super();\n afterNextRender(() => {\n this._afterViewSource.next(this.myDialog()!);\n });\n }\n\n override setOptions(options: DialogOptions) {\n this.options.set(options);\n this.isHideHeader = options.header === false;\n this.backdropColor = options.backdropColor || true;\n }\n}\n\n@Directive({\n selector: '[ngbDialogClose]',\n hostDirectives: [{ directive: NgbPortalClose, inputs: ['ngbPortalClose: ngbDialogClose'] }],\n})\nexport class NgbDialogClose {}\n\nexport function aliasDialog(dialog: typeof NgbDialogContainer) {\n return { provide: NgbDialogContainer, useExisting: dialog };\n}\n","import {\n animate,\n AnimationTriggerMetadata,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\n\nexport const sideAnimation: AnimationTriggerMetadata = trigger('sideAnimation', [\n state('1', style({ transform: 'none' })),\n state('void', style({ transform: '{{outTransform}}' }), {\n params: { outTransform: 'translate3d(100%, 0, 0)' },\n }),\n state('0', style({ transform: '{{outTransform}}' }), {\n params: { outTransform: 'translate3d(100%, 0, 0)' },\n }),\n transition('* => *', animate('300ms cubic-bezier(0.55, 0.31, 0.15, 0.93)')),\n]);\n\nexport const viewAnimation: AnimationTriggerMetadata = trigger('viewAnimation', [\n state('1', style({ transform: 'none', opacity: 1 })),\n state('void', style({ transform: 'translate3d(0, 10px, 0) scale(0.99)', opacity: 0 })),\n state('0', style({ transform: 'translate3d(0, 10px, 0)', opacity: 0 })),\n transition('* => *', animate('200ms ease')),\n]);\n// cubic-bezier(0.25, 0.8, 0.25, 1)\n","/*\n * Public API Surface of dialog\n */\n\nexport * from './dialog.service';\nexport * from './dialog';\nexport * from './dialog.animation';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;AAGM,SAAU,eAAe,CAAC,SAAoC,EAAA;IAClE,MAAM,IAAI,GAAG,QAAQ;IACrB,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC;AAExC,IAAA,SAAS,IAAI,CAAI,SAAsB,EAAE,GAAmB,EAAA;AAC1D,QAAA,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAC1B,SAAS,EACT,CAAC,IAAI,EAAE,OAAO,KAAI;AAChB,YAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC;SAClC,EACD,GAAG,CACJ;AAED,QAAA,OAAO,MAAM;;AAGf,IAAA,SAAS,QAAQ,GAAA;QACf,IAAI,CAAC,QAAQ,EAAE;;AAEjB,IAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC3B;;MCHa,aAAa,CAAA;AAP1B,IAAA,WAAA,GAAA;AAQW,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,kBAAkB,CAAC;AACnC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO;QAC7B,IAAU,CAAA,UAAA,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,sDAAC;AACvE,QAAA,IAAA,CAAA,KAAK,GAAG,QAAQ,CAAC,MAAK;YAC7B,OAAO;AACL,gBAAA,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,UAAU,GAAG,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK;AACjE,gBAAA,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,UAAU,GAAG,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM;AACnE,gBAAA,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,UAAU,GAAG,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ;gBACvE,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,UAAU,GAAG,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,IAAI,MAAM;AACnF,gBAAA,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS;AACnC,gBAAA,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ;aAClC;AACH,SAAC,iDAAC;AACH;8GAdY,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,cAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAPzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,CAAc,YAAA,CAAA;AACzB,wBAAA,SAAS,EAAE,CAAS,OAAA,CAAA;AACrB,qBAAA;AACF,iBAAA;;MAuBY,iBAAiB,CAAA;AAN9B,IAAA,WAAA,GAAA;AAOW,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,kBAAkB,CAAC;AACnC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO;AAOvC;IALC,KAAK,GAAA;QACH,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,YAAY,EAAE;AAChC,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;;;8GANZ,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAN7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,CAAS,OAAA,CAAA;AACrB,qBAAA;AACF,iBAAA;;AAqBK,MAAO,kBAAmB,SAAQ,UAAU,CAAA;AAWhD,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;AAXA,QAAA,IAAA,CAAA,QAAQ,GAAG,SAAS,CAAC,kBAAkB,4CAAI,IAAI,EAAE,gBAAgB,EAAA,CAAA,GAAA,CAAxB,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAC;QAE7E,IAAa,CAAA,aAAA,GAAG,IAAI;QACpB,IAAW,CAAA,WAAA,GAAG,IAAI;AAET,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,OAAO,EAAO;AAC3B,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAgB,IAAI,aAAa,EAAE,mDAAC;QACpD,IAAY,CAAA,YAAA,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,cAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;QAC7F,IAAY,CAAA,YAAA,GAAG,KAAK;QAIlB,eAAe,CAAC,MAAK;YACnB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAG,CAAC;AAC9C,SAAC,CAAC;;AAGK,IAAA,UAAU,CAAC,OAAsB,EAAA;AACxC,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;QACzB,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,MAAM,KAAK,KAAK;QAC5C,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,IAAI;;8GArBzC,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,uKANlB,CAAC,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,mHAOL,gBAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAD/D,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAT9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,aAAa;oBACvB,cAAc,EAAE,CAAC,SAAS,CAAC;AAC3B,oBAAA,SAAS,EAAE,CAAC,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC/D,oBAAA,IAAI,EAAE;AACJ,wBAAA,oBAAoB,EAAE,EAAE;AACxB,wBAAA,yBAAyB,EAAE,iBAAiB;AAC7C,qBAAA;AACF,iBAAA;;MA8BY,cAAc,CAAA;8GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,cAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,gCAAgC,CAAC,EAAE,CAAC;AAC5F,iBAAA;;AAGK,SAAU,WAAW,CAAC,MAAiC,EAAA;IAC3D,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,EAAE;AAC7D;;ACtFa,MAAA,aAAa,GAA6B,OAAO,CAAC,eAAe,EAAE;IAC9E,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;IACxC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,EAAE;AACtD,QAAA,MAAM,EAAE,EAAE,YAAY,EAAE,yBAAyB,EAAE;KACpD,CAAC;IACF,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,EAAE;AACnD,QAAA,MAAM,EAAE,EAAE,YAAY,EAAE,yBAAyB,EAAE;KACpD,CAAC;AACF,IAAA,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,4CAA4C,CAAC,CAAC;AAC5E,CAAA;AAEY,MAAA,aAAa,GAA6B,OAAO,CAAC,eAAe,EAAE;AAC9E,IAAA,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AACpD,IAAA,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,qCAAqC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AACtF,IAAA,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,yBAAyB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AACvE,IAAA,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;AAC5C,CAAA;AACD;;AC1BA;;AAEG;;ACFH;;AAEG;;;;"}
1
+ {"version":3,"file":"ngbase-adk-dialog.mjs","sources":["../../../projects/adk/dialog/dialog.service.ts","../../../projects/adk/dialog/dialog.ts","../../../projects/adk/dialog/dialog.animation.ts","../../../projects/adk/dialog/public-api.ts","../../../projects/adk/dialog/ngbase-adk-dialog.ts"],"sourcesContent":["import { basePortal, DialogInput, DialogOptions } from '@ngbase/adk/portal';\nimport { NgbDialogContainer } from './dialog';\n\nexport function ngbDialogPortal(component: typeof NgbDialogContainer) {\n const NAME = 'dialog';\n const base = basePortal(NAME, component);\n\n function open<T>(component: DialogInput, opt?: DialogOptions) {\n const { diaRef } = base.open(\n component,\n (comp, options) => {\n comp.instance.setOptions(options);\n },\n opt,\n );\n\n return diaRef;\n }\n\n function closeAll() {\n base.closeAll();\n }\n return { open, closeAll };\n}\n\nexport type NgbDialog = ReturnType<typeof ngbDialogPortal>;\n","import {\n afterNextRender,\n computed,\n Directive,\n inject,\n signal,\n viewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { FocusTrap, provideFocusTrapOptions } from '@ngbase/adk/a11y';\nimport { BaseDialog, DialogOptions, NgbPortalClose } from '@ngbase/adk/portal';\nimport { Subject } from 'rxjs';\n\n@Directive({\n selector: '[ngbDialogMain]',\n host: {\n '[class]': `classNames()`,\n '[style]': `style()`,\n },\n})\nexport class NgbDialogMain {\n readonly dialog = inject(NgbDialogContainer);\n readonly options = this.dialog.options;\n readonly classNames = computed(() => this.options().classNames?.join(' ') || '');\n readonly style = computed(() => {\n return {\n width: this.options().fullWindow ? '100vw' : this.options().width,\n height: this.options().fullWindow ? '100vh' : this.options().height,\n maxWidth: this.options().fullWindow ? '100vw' : this.options().maxWidth,\n maxHeight: this.options().fullWindow ? '100vh' : this.options().maxHeight || '96vh',\n minHeight: this.options().minHeight,\n minWidth: this.options().minWidth,\n };\n });\n}\n\n@Directive({\n selector: '[ngbDialogBackdrop]',\n host: {\n '(click)': `close()`,\n },\n})\nexport class NgbDialogBackdrop {\n readonly dialog = inject(NgbDialogContainer);\n readonly options = this.dialog.options;\n\n close() {\n if (!this.options().disableClose) {\n this.dialog.close();\n }\n }\n}\n\n@Directive({\n selector: '[ngbDialog]',\n hostDirectives: [FocusTrap],\n providers: [provideFocusTrapOptions(() => ({ initial: true }))],\n})\nexport class NgbDialogContainer extends BaseDialog {\n readonly myDialog = viewChild('contentContainer', { read: ViewContainerRef });\n\n backdropColor = true;\n isSidePopup = true;\n\n readonly onDone = new Subject<any>();\n readonly options = signal<DialogOptions>(new DialogOptions());\n readonly showBackdrop = computed(() => !this.options().fullWindow && this.options().backdrop);\n isHideHeader = false;\n\n constructor() {\n super();\n afterNextRender(() => {\n this._afterViewSource.next(this.myDialog()!);\n });\n }\n\n override setOptions(options: DialogOptions) {\n this.options.set(options);\n this.isHideHeader = options.header === false;\n this.backdropColor = options.backdropColor || true;\n }\n}\n\n@Directive({\n selector: '[ngbDialogClose]',\n hostDirectives: [{ directive: NgbPortalClose, inputs: ['ngbPortalClose: ngbDialogClose'] }],\n})\nexport class NgbDialogClose {}\n\nexport function aliasDialog(dialog: typeof NgbDialogContainer) {\n return { provide: NgbDialogContainer, useExisting: dialog };\n}\n","import {\n animate,\n AnimationTriggerMetadata,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\n\nexport const sideAnimation: AnimationTriggerMetadata = trigger('sideAnimation', [\n state('1', style({ transform: 'none' })),\n state('void', style({ transform: '{{outTransform}}' }), {\n params: { outTransform: 'translate3d(100%, 0, 0)' },\n }),\n state('0', style({ transform: '{{outTransform}}' }), {\n params: { outTransform: 'translate3d(100%, 0, 0)' },\n }),\n transition('* => *', animate('300ms cubic-bezier(0.55, 0.31, 0.15, 0.93)')),\n]);\n\nexport const viewAnimation: AnimationTriggerMetadata = trigger('viewAnimation', [\n state('1', style({ transform: 'none', opacity: 1 })),\n state('void', style({ transform: 'translate3d(0, 10px, 0) scale(0.99)', opacity: 0 })),\n state('0', style({ transform: 'translate3d(0, 10px, 0)', opacity: 0 })),\n transition('* => *', animate('200ms ease')),\n]);\n// cubic-bezier(0.25, 0.8, 0.25, 1)\n","/*\n * Public API Surface of dialog\n */\n\nexport * from './dialog.service';\nexport * from './dialog';\nexport * from './dialog.animation';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -27,12 +27,14 @@ function statusChange(sControl) {
27
27
  const statusChanges = signal(null, ...(ngDevMode ? [{ debugName: "statusChanges", equal: () => false }] : [{ equal: () => false }]));
28
28
  effect(cleanup => {
29
29
  const control = sControl();
30
- if (control) {
31
- const sub = control.statusChanges?.subscribe(() => {
32
- statusChanges.set(control.status);
33
- });
30
+ if (control?.statusChanges) {
31
+ const sub = control.statusChanges.subscribe(() => statusChanges.set(control.status));
34
32
  cleanup(() => sub?.unsubscribe());
35
33
  }
34
+ else if (control?.field) {
35
+ // For standalone controls without statusChanges observable
36
+ statusChanges.set(control.field().valid() ? 'VALID' : 'INVALID');
37
+ }
36
38
  });
37
39
  return statusChanges;
38
40
  }
@@ -58,17 +60,28 @@ class NgbInputError {
58
60
  }, []);
59
61
  }, ...(ngDevMode ? [{ debugName: "errorNames" }] : []));
60
62
  this.isFieldInvalid = computed(() => {
61
- const control = this.formField._control();
62
- const status = this.formField.status();
63
- const names = this.errorNames();
64
- return (status === 'INVALID' &&
65
- control?.touched &&
66
- names.every(n => !!control.errors?.[n.name] !== n.negated));
63
+ const control = this.formField.__control?.();
64
+ return control ? this.fieldInvalidFn(control) : this.oldIsFieldInvalid();
67
65
  }, ...(ngDevMode ? [{ debugName: "isFieldInvalid" }] : []));
68
66
  this.isInvalid = computed(() => {
69
67
  return this.invalid() ?? this.isFieldInvalid();
70
68
  }, ...(ngDevMode ? [{ debugName: "isInvalid" }] : []));
71
69
  }
70
+ oldIsFieldInvalid() {
71
+ const control = this.formField._control();
72
+ const status = this.formField.status();
73
+ const names = this.errorNames();
74
+ return (status === 'INVALID' &&
75
+ control?.touched &&
76
+ names.every(n => !!control.errors?.[n.name] !== n.negated));
77
+ }
78
+ fieldInvalidFn(control) {
79
+ // const control = this.formField.__control();
80
+ const names = this.errorNames();
81
+ const field = control?.field()();
82
+ return (field?.touched() &&
83
+ names.every(n => !!field?.errors().some((x) => x.kind == n.name) !== n.negated));
84
+ }
72
85
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbInputError, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
73
86
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.0", type: NgbInputError, isStandalone: true, selector: "[ngbError]", inputs: { ngbError: { classPropertyName: "ngbError", publicName: "ngbError", isSignal: true, isRequired: true, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "hidden": "!animate() && !isInvalid()" } }, ngImport: i0 }); }
74
87
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ngbase-adk-form-field.mjs","sources":["../../../projects/adk/form-field/form-field.ts","../../../projects/adk/form-field/error.ts","../../../projects/adk/form-field/input.ts","../../../projects/adk/form-field/auto-height.ts","../../../projects/adk/form-field/label.ts","../../../projects/adk/form-field/currency-mask.ng.ts","../../../projects/adk/form-field/ngbase-adk-form-field.ts"],"sourcesContent":["import {\n computed,\n contentChild,\n contentChildren,\n Directive,\n effect,\n forwardRef,\n signal,\n Signal,\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { uniqueId } from '@ngbase/adk/utils';\nimport { NgbInputError } from './error';\n\n@Directive({\n selector: 'ngb-form-field, [ngbFormField]',\n})\nexport class NgbFormField {\n readonly _control = contentChild(NgControl, { descendants: true });\n readonly _id = uniqueId();\n\n // we need to forwardRef the error component to avoid circular dependency\n readonly status = statusChange(this._control);\n private readonly _invalid = computed(\n () => this.status() === 'INVALID' && this._control()?.touched,\n );\n\n readonly errors = contentChildren<NgbInputError>(forwardRef(() => NgbInputError));\n readonly hasErrors = computed(() => this._invalid() || this.errors().some(e => e.isInvalid()));\n}\n\nfunction statusChange(sControl: Signal<NgControl | undefined>): Signal<string | null> {\n const statusChanges = signal<string | null>(null, { equal: () => false });\n effect(cleanup => {\n const control = sControl();\n if (control) {\n const sub = control.statusChanges?.subscribe(() => {\n statusChanges.set(control.status);\n });\n cleanup(() => sub?.unsubscribe());\n }\n });\n return statusChanges;\n}\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { computed, Directive, inject, input, signal } from '@angular/core';\nimport { AbstractControl, FormArray, FormGroup } from '@angular/forms';\nimport { NgbFormField } from './form-field';\n\n@Directive({\n selector: '[ngbError]',\n host: {\n '[hidden]': '!animate() && !isInvalid()',\n },\n})\nexport class NgbInputError {\n private readonly formField = inject(NgbFormField);\n /* the input can have comma separated error names like\n * 'required' or '!required && minlength'\n */\n readonly ngbError = input.required<string>();\n readonly invalid = input<boolean>();\n readonly animate = signal(false);\n\n private readonly errorNames = computed(() => {\n const names = (this.ngbError() ?? '').split('&&');\n return names.reduce(\n (acc, n) => {\n const trimmed = n.trim();\n if (trimmed) {\n const negated = trimmed.startsWith('!');\n acc.push({ name: trimmed.slice(negated ? 1 : 0), negated });\n }\n return acc;\n },\n [] as { name: string; negated: boolean }[],\n );\n });\n\n readonly isFieldInvalid = computed(() => {\n const control = this.formField._control();\n const status = this.formField.status();\n const names = this.errorNames();\n\n return (\n status === 'INVALID' &&\n control?.touched &&\n names.every(n => !!control.errors?.[n.name] !== n.negated)\n );\n });\n\n readonly isInvalid = computed(() => {\n return this.invalid() ?? this.isFieldInvalid();\n });\n}\n\nexport function markControlsTouched(\n control: AbstractControl,\n options = { touched: true, dirty: false },\n) {\n if (control instanceof FormGroup || control instanceof FormArray) {\n Object.values(control.controls).forEach(c => markControlsTouched(c, options));\n }\n if (options.dirty) control.markAsTouched();\n if (options.touched) control.markAsTouched();\n control.updateValueAndValidity();\n}\n\nexport const toggleDiv = trigger('toggleDiv', [\n state('hidden', style({ opacity: 0, height: '0px', visibility: 'hidden' })),\n state('visible', style({ opacity: 1, height: '*', visibility: 'visible' })),\n transition('hidden <=> visible', [animate('150ms ease-in-out')]),\n]);\n","import { Directive, inject, model } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { provideValueAccessor, uniqueId } from '@ngbase/adk/utils';\nimport { NgbFormField } from './form-field';\n\n@Directive({\n selector: 'input[ngbInputBase]',\n providers: [provideValueAccessor(InputBase)],\n host: {\n role: 'textbox',\n '[attr.id]': 'id',\n '[value]': 'value()',\n '(input)': 'setInputValue($event)',\n },\n})\nexport class InputBase<T = unknown> implements ControlValueAccessor {\n readonly formField = inject(NgbFormField, { optional: true });\n readonly value = model<T>('' as any);\n\n readonly id = this.formField?._id ?? uniqueId();\n\n onChange?: (_: string) => void;\n onTouched?: () => void;\n\n protected setInputValue(ev: Event): void {\n const value = (ev.target as HTMLInputElement).value;\n this.setValue(value, true);\n }\n\n setValue(value: any, fromInput = false): void {\n this.value.set(value);\n if (fromInput) {\n this.onChange?.(value);\n this.onTouched?.();\n }\n }\n\n writeValue(value: string): void {\n this.setValue(value);\n }\n\n registerOnChange(fn: (value: string) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: VoidFunction): void {\n this.onTouched = fn;\n }\n}\n","import {\n afterNextRender,\n Directive,\n effect,\n ElementRef,\n inject,\n Injector,\n input,\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { InputBase } from './input';\n\n@Directive({\n selector: 'textarea[ngbAutoHeight]',\n})\nexport class AutoHeight {\n private el = inject<ElementRef<HTMLInputElement>>(ElementRef);\n private model = inject(NgControl, { optional: true });\n private ngbInput = inject(InputBase, { optional: true });\n\n readonly maxHeight = input<number>();\n\n constructor() {\n // Disable textarea resizing\n this.el.nativeElement.style.resize = 'none';\n\n const injector = inject(Injector);\n effect(cleanup => {\n // required for updating the height for the initial value\n this.update();\n\n const sub = this.model?.valueChanges?.subscribe(v => {\n if (v === this.el.nativeElement.value) {\n this.update();\n } else {\n // Wait for Angular to update the DOM with the new value\n // Use a settimeout to wait for the next tick\n afterNextRender(() => this.update(), { injector });\n }\n });\n cleanup(() => sub?.unsubscribe());\n\n const ro = new ResizeObserver(entries => {\n for (let entry of entries) {\n this.update();\n }\n });\n\n // Observe one or multiple elements\n ro.observe(this.el.nativeElement);\n cleanup(() => ro.disconnect());\n });\n\n effect(() => {\n const _ = this.ngbInput?.value();\n this.update();\n });\n }\n\n private update() {\n const el = this.el.nativeElement;\n el.style.height = 'auto';\n // also we need to consider the border so we need to calculate the border using height\n const borderHeight = el.offsetHeight - el.clientHeight;\n const height = el.scrollHeight + borderHeight;\n const maxHeight = this.maxHeight();\n if (maxHeight) {\n el.style.height = Math.min(height, maxHeight) + 'px';\n } else {\n el.style.height = height + 'px';\n }\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { NgbFormField } from './form-field';\n\n@Directive({\n selector: '[ngbLabel]',\n host: {\n '[attr.for]': 'id',\n },\n})\nexport class NgbLabel {\n private readonly formField = inject(NgbFormField);\n readonly id = this.formField._id;\n}\n","import { Directive, ElementRef, input, inject } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { provideValueAccessor } from '@ngbase/adk/utils';\n\n@Directive({\n selector: '[numberFormat]',\n providers: [provideValueAccessor(NumberFormat)],\n host: {\n '(input)': 'onInput($event)',\n '(blur)': 'onBlur()',\n '(keydown)': 'onKeyDown($event)',\n },\n})\nexport class NumberFormat implements ControlValueAccessor {\n // Input signals with default values\n private readonly el = inject<ElementRef<HTMLInputElement>>(ElementRef);\n\n readonly decimals = input<number>(2);\n readonly decimalSeparator = input<string>('.');\n readonly thousandSeparator = input<string>(',');\n\n // Private members\n private onChange = (_: any) => {};\n private onTouched = () => {};\n private rawValue = '';\n\n private readonly specialKeys = [\n 'Backspace',\n 'Tab',\n 'End',\n 'Home',\n 'ArrowLeft',\n 'ArrowRight',\n 'Delete',\n ];\n\n // Handles input changes\n onInput(ev: Event) {\n const value = (ev.target as any).value.toString();\n const position = this.el.nativeElement.selectionStart;\n const cleanedValue = this.cleanValue(value);\n\n if (this.isValidNumber(cleanedValue)) {\n this.rawValue = cleanedValue;\n this.formatDisplayValue(cleanedValue);\n this.onChange(this.rawValue);\n this.onTouched();\n this.updateCursorPosition(value, position ?? 0);\n }\n }\n\n // Handles keydown events to validate input\n onKeyDown(event: KeyboardEvent) {\n if (this.specialKeys.includes(event.key)) return;\n\n const value = this.el.nativeElement.value;\n const position = this.el.nativeElement.selectionStart;\n\n // Handle decimal separator\n if (event.key === this.decimalSeparator()) {\n if (value.includes(this.decimalSeparator())) {\n event.preventDefault();\n }\n return;\n }\n\n // Only allow digits\n if (!/^\\d$/.test(event.key)) {\n event.preventDefault();\n return;\n }\n\n // Check decimal digits limit\n if (this.isDecimalPartFull(value, position ?? 0)) {\n event.preventDefault();\n }\n }\n\n // Handle blur event\n onBlur() {\n if (this.rawValue) {\n this.formatDisplayValue(this.rawValue);\n }\n this.onTouched();\n }\n\n // ControlValueAccessor implementation\n writeValue(value: string) {\n if (value) {\n const cleanValue = this.cleanValue(value);\n this.rawValue = cleanValue;\n this.formatDisplayValue(cleanValue);\n } else {\n this.reset();\n }\n }\n\n private reset() {\n this.el.nativeElement.value = '';\n this.rawValue = '';\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.el.nativeElement.disabled = isDisabled;\n }\n\n // Private helper methods\n private cleanValue(value: string | number): string {\n return value\n .toString()\n .replace(new RegExp(`[^\\\\d${this.escapeRegExp(this.decimalSeparator())}]`, 'g'), '');\n }\n\n private isValidNumber(value: string): boolean {\n const parts = value.split(this.decimalSeparator());\n return parts.length <= 2 && parts.every(part => /^\\d*$/.test(part));\n }\n\n private formatDisplayValue(value: string) {\n if (!value) {\n this.reset();\n return;\n }\n\n const parts = value.split(this.decimalSeparator());\n let integerPart = parts[0]\n .replace(/^0+(?=\\d)/, '')\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, this.thousandSeparator());\n const decimalPart = parts.length > 1 ? parts[1].substring(0, this.decimals()) : undefined;\n\n this.el.nativeElement.value =\n decimalPart !== undefined\n ? `${integerPart}${this.decimalSeparator()}${decimalPart}`\n : integerPart;\n }\n\n private updateCursorPosition(originalValue: string, originalPosition: number) {\n setTimeout(() => {\n const el = this.el.nativeElement;\n if (originalPosition === originalValue.length) {\n // If cursor was at the end, keep it at the end\n el.setSelectionRange(el.value.length, el.value.length);\n return;\n }\n\n // Calculate new cursor position based on thousand separators\n const oldSeparatorCount = this.countSeparators(originalValue.substring(0, originalPosition));\n const newValueUpToOldPos = el.value.substring(0, originalPosition + 1);\n const newSeparatorCount = this.countSeparators(newValueUpToOldPos);\n\n const newPosition = originalPosition + (newSeparatorCount - oldSeparatorCount);\n el.setSelectionRange(newPosition, newPosition);\n }, 0);\n }\n\n private countSeparators(value: string): number {\n const regex = new RegExp(this.escapeRegExp(this.thousandSeparator()), 'g');\n return (value.match(regex) || []).length;\n }\n\n private isDecimalPartFull(value: string, position: number): boolean {\n const decimalPos = value.indexOf(this.decimalSeparator());\n return (\n decimalPos !== -1 &&\n position > decimalPos &&\n value.substring(decimalPos + 1).length >= this.decimals()\n );\n }\n\n private escapeRegExp(str: string): string {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n }\n}\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":"ngbase-adk-form-field.mjs","sources":["../../../projects/adk/form-field/form-field.ts","../../../projects/adk/form-field/error.ts","../../../projects/adk/form-field/input.ts","../../../projects/adk/form-field/auto-height.ts","../../../projects/adk/form-field/label.ts","../../../projects/adk/form-field/currency-mask.ng.ts","../../../projects/adk/form-field/ngbase-adk-form-field.ts"],"sourcesContent":["import {\n computed,\n contentChild,\n contentChildren,\n Directive,\n effect,\n forwardRef,\n signal,\n Signal,\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { uniqueId } from '@ngbase/adk/utils';\nimport { NgbInputError } from './error';\n\n@Directive({\n selector: 'ngb-form-field, [ngbFormField]',\n})\nexport class NgbFormField {\n readonly _control = contentChild(NgControl, { descendants: true });\n readonly _id = uniqueId();\n\n // we need to forwardRef the error component to avoid circular dependency\n readonly status = statusChange(this._control);\n private readonly _invalid = computed(\n () => this.status() === 'INVALID' && this._control()?.touched,\n );\n\n readonly errors = contentChildren<NgbInputError>(forwardRef(() => NgbInputError));\n readonly hasErrors = computed(() => this._invalid() || this.errors().some(e => e.isInvalid()));\n}\n\nfunction statusChange(sControl: Signal<NgControl | undefined>): Signal<string | null> {\n const statusChanges = signal<string | null>(null, { equal: () => false });\n effect(cleanup => {\n const control = sControl();\n if (control?.statusChanges) {\n const sub = control.statusChanges.subscribe(() => statusChanges.set(control.status));\n cleanup(() => sub?.unsubscribe());\n } else if ((control as any)?.field) {\n // For standalone controls without statusChanges observable\n statusChanges.set((control as any).field().valid() ? 'VALID' : 'INVALID');\n }\n });\n return statusChanges;\n}\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { computed, Directive, inject, input, signal } from '@angular/core';\nimport { AbstractControl, FormArray, FormGroup } from '@angular/forms';\nimport { NgbFormField } from './form-field';\n\n@Directive({\n selector: '[ngbError]',\n host: {\n '[hidden]': '!animate() && !isInvalid()',\n },\n})\nexport class NgbInputError {\n private readonly formField = inject(NgbFormField);\n /* the input can have comma separated error names like\n * 'required' or '!required && minlength'\n */\n readonly ngbError = input.required<string>();\n readonly invalid = input<boolean>();\n readonly animate = signal(false);\n\n private readonly errorNames = computed(() => {\n const names = (this.ngbError() ?? '').split('&&');\n return names.reduce(\n (acc, n) => {\n const trimmed = n.trim();\n if (trimmed) {\n const negated = trimmed.startsWith('!');\n acc.push({ name: trimmed.slice(negated ? 1 : 0), negated });\n }\n return acc;\n },\n [] as { name: string; negated: boolean }[],\n );\n });\n\n readonly isFieldInvalid = computed(() => {\n const control = (this.formField as any).__control?.();\n return control ? this.fieldInvalidFn(control) : this.oldIsFieldInvalid();\n });\n\n oldIsFieldInvalid() {\n const control = this.formField._control();\n const status = this.formField.status();\n const names = this.errorNames();\n\n return (\n status === 'INVALID' &&\n control?.touched &&\n names.every(n => !!control.errors?.[n.name] !== n.negated)\n );\n }\n\n fieldInvalidFn(control: any) {\n // const control = this.formField.__control();\n const names = this.errorNames();\n const field = control?.field()();\n\n return (\n field?.touched() &&\n names.every(n => !!field?.errors().some((x: any) => x.kind == n.name) !== n.negated)\n );\n }\n\n readonly isInvalid = computed(() => {\n return this.invalid() ?? this.isFieldInvalid();\n });\n}\n\nexport function markControlsTouched(\n control: AbstractControl,\n options = { touched: true, dirty: false },\n) {\n if (control instanceof FormGroup || control instanceof FormArray) {\n Object.values(control.controls).forEach(c => markControlsTouched(c, options));\n }\n if (options.dirty) control.markAsTouched();\n if (options.touched) control.markAsTouched();\n control.updateValueAndValidity();\n}\n\nexport const toggleDiv = trigger('toggleDiv', [\n state('hidden', style({ opacity: 0, height: '0px', visibility: 'hidden' })),\n state('visible', style({ opacity: 1, height: '*', visibility: 'visible' })),\n transition('hidden <=> visible', [animate('150ms ease-in-out')]),\n]);\n","import { Directive, inject, model } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { provideValueAccessor, uniqueId } from '@ngbase/adk/utils';\nimport { NgbFormField } from './form-field';\n\n@Directive({\n selector: 'input[ngbInputBase]',\n providers: [provideValueAccessor(InputBase)],\n host: {\n role: 'textbox',\n '[attr.id]': 'id',\n '[value]': 'value()',\n '(input)': 'setInputValue($event)',\n },\n})\nexport class InputBase<T = unknown> implements ControlValueAccessor {\n readonly formField = inject(NgbFormField, { optional: true });\n readonly value = model<T>('' as any);\n\n readonly id = this.formField?._id ?? uniqueId();\n\n onChange?: (_: string) => void;\n onTouched?: () => void;\n\n protected setInputValue(ev: Event): void {\n const value = (ev.target as HTMLInputElement).value;\n this.setValue(value, true);\n }\n\n setValue(value: any, fromInput = false): void {\n this.value.set(value);\n if (fromInput) {\n this.onChange?.(value);\n this.onTouched?.();\n }\n }\n\n writeValue(value: string): void {\n this.setValue(value);\n }\n\n registerOnChange(fn: (value: string) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: VoidFunction): void {\n this.onTouched = fn;\n }\n}\n","import {\n afterNextRender,\n Directive,\n effect,\n ElementRef,\n inject,\n Injector,\n input,\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { InputBase } from './input';\n\n@Directive({\n selector: 'textarea[ngbAutoHeight]',\n})\nexport class AutoHeight {\n private el = inject<ElementRef<HTMLInputElement>>(ElementRef);\n private model = inject(NgControl, { optional: true });\n private ngbInput = inject(InputBase, { optional: true });\n\n readonly maxHeight = input<number>();\n\n constructor() {\n // Disable textarea resizing\n this.el.nativeElement.style.resize = 'none';\n\n const injector = inject(Injector);\n effect(cleanup => {\n // required for updating the height for the initial value\n this.update();\n\n const sub = this.model?.valueChanges?.subscribe(v => {\n if (v === this.el.nativeElement.value) {\n this.update();\n } else {\n // Wait for Angular to update the DOM with the new value\n // Use a settimeout to wait for the next tick\n afterNextRender(() => this.update(), { injector });\n }\n });\n cleanup(() => sub?.unsubscribe());\n\n const ro = new ResizeObserver(entries => {\n for (let entry of entries) {\n this.update();\n }\n });\n\n // Observe one or multiple elements\n ro.observe(this.el.nativeElement);\n cleanup(() => ro.disconnect());\n });\n\n effect(() => {\n const _ = this.ngbInput?.value();\n this.update();\n });\n }\n\n private update() {\n const el = this.el.nativeElement;\n el.style.height = 'auto';\n // also we need to consider the border so we need to calculate the border using height\n const borderHeight = el.offsetHeight - el.clientHeight;\n const height = el.scrollHeight + borderHeight;\n const maxHeight = this.maxHeight();\n if (maxHeight) {\n el.style.height = Math.min(height, maxHeight) + 'px';\n } else {\n el.style.height = height + 'px';\n }\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { NgbFormField } from './form-field';\n\n@Directive({\n selector: '[ngbLabel]',\n host: {\n '[attr.for]': 'id',\n },\n})\nexport class NgbLabel {\n private readonly formField = inject(NgbFormField);\n readonly id = this.formField._id;\n}\n","import { Directive, ElementRef, input, inject } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { provideValueAccessor } from '@ngbase/adk/utils';\n\n@Directive({\n selector: '[numberFormat]',\n providers: [provideValueAccessor(NumberFormat)],\n host: {\n '(input)': 'onInput($event)',\n '(blur)': 'onBlur()',\n '(keydown)': 'onKeyDown($event)',\n },\n})\nexport class NumberFormat implements ControlValueAccessor {\n // Input signals with default values\n private readonly el = inject<ElementRef<HTMLInputElement>>(ElementRef);\n\n readonly decimals = input<number>(2);\n readonly decimalSeparator = input<string>('.');\n readonly thousandSeparator = input<string>(',');\n\n // Private members\n private onChange = (_: any) => {};\n private onTouched = () => {};\n private rawValue = '';\n\n private readonly specialKeys = [\n 'Backspace',\n 'Tab',\n 'End',\n 'Home',\n 'ArrowLeft',\n 'ArrowRight',\n 'Delete',\n ];\n\n // Handles input changes\n onInput(ev: Event) {\n const value = (ev.target as any).value.toString();\n const position = this.el.nativeElement.selectionStart;\n const cleanedValue = this.cleanValue(value);\n\n if (this.isValidNumber(cleanedValue)) {\n this.rawValue = cleanedValue;\n this.formatDisplayValue(cleanedValue);\n this.onChange(this.rawValue);\n this.onTouched();\n this.updateCursorPosition(value, position ?? 0);\n }\n }\n\n // Handles keydown events to validate input\n onKeyDown(event: KeyboardEvent) {\n if (this.specialKeys.includes(event.key)) return;\n\n const value = this.el.nativeElement.value;\n const position = this.el.nativeElement.selectionStart;\n\n // Handle decimal separator\n if (event.key === this.decimalSeparator()) {\n if (value.includes(this.decimalSeparator())) {\n event.preventDefault();\n }\n return;\n }\n\n // Only allow digits\n if (!/^\\d$/.test(event.key)) {\n event.preventDefault();\n return;\n }\n\n // Check decimal digits limit\n if (this.isDecimalPartFull(value, position ?? 0)) {\n event.preventDefault();\n }\n }\n\n // Handle blur event\n onBlur() {\n if (this.rawValue) {\n this.formatDisplayValue(this.rawValue);\n }\n this.onTouched();\n }\n\n // ControlValueAccessor implementation\n writeValue(value: string) {\n if (value) {\n const cleanValue = this.cleanValue(value);\n this.rawValue = cleanValue;\n this.formatDisplayValue(cleanValue);\n } else {\n this.reset();\n }\n }\n\n private reset() {\n this.el.nativeElement.value = '';\n this.rawValue = '';\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.el.nativeElement.disabled = isDisabled;\n }\n\n // Private helper methods\n private cleanValue(value: string | number): string {\n return value\n .toString()\n .replace(new RegExp(`[^\\\\d${this.escapeRegExp(this.decimalSeparator())}]`, 'g'), '');\n }\n\n private isValidNumber(value: string): boolean {\n const parts = value.split(this.decimalSeparator());\n return parts.length <= 2 && parts.every(part => /^\\d*$/.test(part));\n }\n\n private formatDisplayValue(value: string) {\n if (!value) {\n this.reset();\n return;\n }\n\n const parts = value.split(this.decimalSeparator());\n let integerPart = parts[0]\n .replace(/^0+(?=\\d)/, '')\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, this.thousandSeparator());\n const decimalPart = parts.length > 1 ? parts[1].substring(0, this.decimals()) : undefined;\n\n this.el.nativeElement.value =\n decimalPart !== undefined\n ? `${integerPart}${this.decimalSeparator()}${decimalPart}`\n : integerPart;\n }\n\n private updateCursorPosition(originalValue: string, originalPosition: number) {\n setTimeout(() => {\n const el = this.el.nativeElement;\n if (originalPosition === originalValue.length) {\n // If cursor was at the end, keep it at the end\n el.setSelectionRange(el.value.length, el.value.length);\n return;\n }\n\n // Calculate new cursor position based on thousand separators\n const oldSeparatorCount = this.countSeparators(originalValue.substring(0, originalPosition));\n const newValueUpToOldPos = el.value.substring(0, originalPosition + 1);\n const newSeparatorCount = this.countSeparators(newValueUpToOldPos);\n\n const newPosition = originalPosition + (newSeparatorCount - oldSeparatorCount);\n el.setSelectionRange(newPosition, newPosition);\n }, 0);\n }\n\n private countSeparators(value: string): number {\n const regex = new RegExp(this.escapeRegExp(this.thousandSeparator()), 'g');\n return (value.match(regex) || []).length;\n }\n\n private isDecimalPartFull(value: string, position: number): boolean {\n const decimalPos = value.indexOf(this.decimalSeparator());\n return (\n decimalPos !== -1 &&\n position > decimalPos &&\n value.substring(decimalPos + 1).length >= this.decimals()\n );\n }\n\n private escapeRegExp(str: string): string {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -9,8 +9,10 @@ declare class NgbInputError {
9
9
  readonly invalid: i0.InputSignal<boolean | undefined>;
10
10
  readonly animate: i0.WritableSignal<boolean>;
11
11
  private readonly errorNames;
12
- readonly isFieldInvalid: i0.Signal<boolean | null | undefined>;
13
- readonly isInvalid: i0.Signal<boolean | null | undefined>;
12
+ readonly isFieldInvalid: i0.Signal<any>;
13
+ oldIsFieldInvalid(): boolean | null | undefined;
14
+ fieldInvalidFn(control: any): any;
15
+ readonly isInvalid: i0.Signal<any>;
14
16
  static ɵfac: i0.ɵɵFactoryDeclaration<NgbInputError, never>;
15
17
  static ɵdir: i0.ɵɵDirectiveDeclaration<NgbInputError, "[ngbError]", never, { "ngbError": { "alias": "ngbError"; "required": true; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
16
18
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ngbase/adk",
3
- "version": "0.1.12",
3
+ "version": "0.1.14",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/ng-base/ngbase.git"
@@ -36,26 +36,26 @@
36
36
  "types": "./a11y/index.d.ts",
37
37
  "default": "./fesm2022/ngbase-adk-a11y.mjs"
38
38
  },
39
- "./accordion": {
40
- "types": "./accordion/index.d.ts",
41
- "default": "./fesm2022/ngbase-adk-accordion.mjs"
42
- },
43
- "./bidi": {
44
- "types": "./bidi/index.d.ts",
45
- "default": "./fesm2022/ngbase-adk-bidi.mjs"
39
+ "./avatar": {
40
+ "types": "./avatar/index.d.ts",
41
+ "default": "./fesm2022/ngbase-adk-avatar.mjs"
46
42
  },
47
43
  "./autocomplete": {
48
44
  "types": "./autocomplete/index.d.ts",
49
45
  "default": "./fesm2022/ngbase-adk-autocomplete.mjs"
50
46
  },
51
- "./avatar": {
52
- "types": "./avatar/index.d.ts",
53
- "default": "./fesm2022/ngbase-adk-avatar.mjs"
47
+ "./accordion": {
48
+ "types": "./accordion/index.d.ts",
49
+ "default": "./fesm2022/ngbase-adk-accordion.mjs"
54
50
  },
55
51
  "./breadcrumb": {
56
52
  "types": "./breadcrumb/index.d.ts",
57
53
  "default": "./fesm2022/ngbase-adk-breadcrumb.mjs"
58
54
  },
55
+ "./bidi": {
56
+ "types": "./bidi/index.d.ts",
57
+ "default": "./fesm2022/ngbase-adk-bidi.mjs"
58
+ },
59
59
  "./cache": {
60
60
  "types": "./cache/index.d.ts",
61
61
  "default": "./fesm2022/ngbase-adk-cache.mjs"
@@ -68,10 +68,6 @@
68
68
  "types": "./checkbox/index.d.ts",
69
69
  "default": "./fesm2022/ngbase-adk-checkbox.mjs"
70
70
  },
71
- "./clipboard": {
72
- "types": "./clipboard/index.d.ts",
73
- "default": "./fesm2022/ngbase-adk-clipboard.mjs"
74
- },
75
71
  "./chip": {
76
72
  "types": "./chip/index.d.ts",
77
73
  "default": "./fesm2022/ngbase-adk-chip.mjs"
@@ -80,78 +76,78 @@
80
76
  "types": "./collections/index.d.ts",
81
77
  "default": "./fesm2022/ngbase-adk-collections.mjs"
82
78
  },
79
+ "./clipboard": {
80
+ "types": "./clipboard/index.d.ts",
81
+ "default": "./fesm2022/ngbase-adk-clipboard.mjs"
82
+ },
83
83
  "./color-picker": {
84
84
  "types": "./color-picker/index.d.ts",
85
85
  "default": "./fesm2022/ngbase-adk-color-picker.mjs"
86
86
  },
87
- "./dialog": {
88
- "types": "./dialog/index.d.ts",
89
- "default": "./fesm2022/ngbase-adk-dialog.mjs"
90
- },
91
87
  "./cookies": {
92
88
  "types": "./cookies/index.d.ts",
93
89
  "default": "./fesm2022/ngbase-adk-cookies.mjs"
94
90
  },
91
+ "./dialog": {
92
+ "types": "./dialog/index.d.ts",
93
+ "default": "./fesm2022/ngbase-adk-dialog.mjs"
94
+ },
95
95
  "./drag": {
96
96
  "types": "./drag/index.d.ts",
97
97
  "default": "./fesm2022/ngbase-adk-drag.mjs"
98
98
  },
99
- "./form-field": {
100
- "types": "./form-field/index.d.ts",
101
- "default": "./fesm2022/ngbase-adk-form-field.mjs"
102
- },
103
99
  "./datepicker": {
104
100
  "types": "./datepicker/index.d.ts",
105
101
  "default": "./fesm2022/ngbase-adk-datepicker.mjs"
106
102
  },
107
- "./icon": {
108
- "types": "./icon/index.d.ts",
109
- "default": "./fesm2022/ngbase-adk-icon.mjs"
103
+ "./form-field": {
104
+ "types": "./form-field/index.d.ts",
105
+ "default": "./fesm2022/ngbase-adk-form-field.mjs"
110
106
  },
111
107
  "./hover-card": {
112
108
  "types": "./hover-card/index.d.ts",
113
109
  "default": "./fesm2022/ngbase-adk-hover-card.mjs"
114
110
  },
115
- "./jwt": {
116
- "types": "./jwt/index.d.ts",
117
- "default": "./fesm2022/ngbase-adk-jwt.mjs"
111
+ "./icon": {
112
+ "types": "./icon/index.d.ts",
113
+ "default": "./fesm2022/ngbase-adk-icon.mjs"
118
114
  },
119
115
  "./inline-edit": {
120
116
  "types": "./inline-edit/index.d.ts",
121
117
  "default": "./fesm2022/ngbase-adk-inline-edit.mjs"
122
118
  },
123
- "./keys": {
124
- "types": "./keys/index.d.ts",
125
- "default": "./fesm2022/ngbase-adk-keys.mjs"
126
- },
127
119
  "./layout": {
128
120
  "types": "./layout/index.d.ts",
129
121
  "default": "./fesm2022/ngbase-adk-layout.mjs"
130
122
  },
123
+ "./jwt": {
124
+ "types": "./jwt/index.d.ts",
125
+ "default": "./fesm2022/ngbase-adk-jwt.mjs"
126
+ },
131
127
  "./list": {
132
128
  "types": "./list/index.d.ts",
133
129
  "default": "./fesm2022/ngbase-adk-list.mjs"
134
130
  },
131
+ "./keys": {
132
+ "types": "./keys/index.d.ts",
133
+ "default": "./fesm2022/ngbase-adk-keys.mjs"
134
+ },
135
135
  "./mask": {
136
136
  "types": "./mask/index.d.ts",
137
137
  "default": "./fesm2022/ngbase-adk-mask.mjs"
138
138
  },
139
- "./network": {
140
- "types": "./network/index.d.ts",
141
- "default": "./fesm2022/ngbase-adk-network.mjs"
142
- },
143
139
  "./menu": {
144
140
  "types": "./menu/index.d.ts",
145
141
  "default": "./fesm2022/ngbase-adk-menu.mjs"
146
142
  },
143
+ "./network": {
144
+ "types": "./network/index.d.ts",
145
+ "default": "./fesm2022/ngbase-adk-network.mjs"
146
+ },
147
147
  "./otp": {
148
148
  "types": "./otp/index.d.ts",
149
149
  "default": "./fesm2022/ngbase-adk-otp.mjs"
150
150
  },
151
- "./pagination": {
152
- "types": "./pagination/index.d.ts",
153
- "default": "./fesm2022/ngbase-adk-pagination.mjs"
154
- },
155
151
  "./popover": {
156
152
  "types": "./popover/index.d.ts",
157
153
  "default": "./fesm2022/ngbase-adk-popover.mjs"
@@ -164,6 +160,10 @@
164
160
  "types": "./progress/index.d.ts",
165
161
  "default": "./fesm2022/ngbase-adk-progress.mjs"
166
162
  },
163
+ "./pagination": {
164
+ "types": "./pagination/index.d.ts",
165
+ "default": "./fesm2022/ngbase-adk-pagination.mjs"
166
+ },
167
167
  "./radio": {
168
168
  "types": "./radio/index.d.ts",
169
169
  "default": "./fesm2022/ngbase-adk-radio.mjs"
@@ -208,10 +208,6 @@
208
208
  "types": "./switch/index.d.ts",
209
209
  "default": "./fesm2022/ngbase-adk-switch.mjs"
210
210
  },
211
- "./table": {
212
- "types": "./table/index.d.ts",
213
- "default": "./fesm2022/ngbase-adk-table.mjs"
214
- },
215
211
  "./test": {
216
212
  "types": "./test/index.d.ts",
217
213
  "default": "./fesm2022/ngbase-adk-test.mjs"
@@ -220,22 +216,26 @@
220
216
  "types": "./tabs/index.d.ts",
221
217
  "default": "./fesm2022/ngbase-adk-tabs.mjs"
222
218
  },
223
- "./toggle-group": {
224
- "types": "./toggle-group/index.d.ts",
225
- "default": "./fesm2022/ngbase-adk-toggle-group.mjs"
226
- },
227
- "./tooltip": {
228
- "types": "./tooltip/index.d.ts",
229
- "default": "./fesm2022/ngbase-adk-tooltip.mjs"
219
+ "./table": {
220
+ "types": "./table/index.d.ts",
221
+ "default": "./fesm2022/ngbase-adk-table.mjs"
230
222
  },
231
223
  "./toggle": {
232
224
  "types": "./toggle/index.d.ts",
233
225
  "default": "./fesm2022/ngbase-adk-toggle.mjs"
234
226
  },
227
+ "./toggle-group": {
228
+ "types": "./toggle-group/index.d.ts",
229
+ "default": "./fesm2022/ngbase-adk-toggle-group.mjs"
230
+ },
235
231
  "./tour": {
236
232
  "types": "./tour/index.d.ts",
237
233
  "default": "./fesm2022/ngbase-adk-tour.mjs"
238
234
  },
235
+ "./tooltip": {
236
+ "types": "./tooltip/index.d.ts",
237
+ "default": "./fesm2022/ngbase-adk-tooltip.mjs"
238
+ },
239
239
  "./translate": {
240
240
  "types": "./translate/index.d.ts",
241
241
  "default": "./fesm2022/ngbase-adk-translate.mjs"
@@ -253,4 +253,4 @@
253
253
  "default": "./fesm2022/ngbase-adk-virtualizer.mjs"
254
254
  }
255
255
  }
256
- }
256
+ }
@@ -9,7 +9,7 @@ export interface AlertOptions {
9
9
  actions?: {
10
10
  text: string;
11
11
  type?: ButtonVariant;
12
- handler: (fn: VoidFunction) => any;
12
+ handler: (fn: (v?: any) => any) => any;
13
13
  }[];
14
14
  }
15
15
 
@@ -45,7 +45,7 @@ export function alertPortal() {
45
45
  imports: [Button],
46
46
  template: `
47
47
  <h4 class="mb-2 text-base font-bold">{{ data?.title }}</h4>
48
- <p class="pb-3 text-muted-foreground">{{ data?.description }}</p>
48
+ <p class="text-muted-foreground pb-3">{{ data?.description }}</p>
49
49
  <div class="flex justify-end gap-4 pt-1">
50
50
  @for (action of data?.actions; track action) {
51
51
  <button [<%= name %>Button]="action.type || 'primary'" (click)="action.handler(diaRef.close)">
@@ -2,6 +2,20 @@ import { ChangeDetectionStrategy, Component, computed, inject, input } from '@an
2
2
  import { NgbAvatar, NgbAvatarGroup, aliasAvatar } from '@ngbase/adk/avatar';
3
3
 
4
4
  type AvatarSize = 'xs' | 'sm' | 'md' | 'lg';
5
+ export type AvatarVariant = 'primary' | 'secondary' | 'default';
6
+
7
+ const avatarSizesStyles = {
8
+ xs: 'h-5 w-5 text-[10px] !border',
9
+ sm: 'h-6 w-6',
10
+ md: 'h-8 w-8 text-xs',
11
+ lg: 'h-10 w-10',
12
+ };
13
+
14
+ const avatarVariantStyles = {
15
+ primary: ' bg-primary text-white',
16
+ secondary: ' bg-primary-foreground text-primary',
17
+ default: ' bg-background text-muted-foreground border-2 border-muted',
18
+ };
5
19
 
6
20
  @Component({
7
21
  selector: '<%= name %>-avatar-group',
@@ -29,14 +43,19 @@ export class AvatarGroup {
29
43
  `,
30
44
  host: {
31
45
  class:
32
- 'inline-flex aspect-square rounded-full overflow-hidden border-2 border-muted relative bg-background text-muted-foreground items-center justify-center',
33
- '[class]': `aSize() === 'xs' ? 'h-5 w-5 text-[10px] !border' : aSize() === 'sm' ? 'h-6 w-6' : aSize() === 'md' ? 'h-8 w-8' : aSize() === 'lg' ? 'h-10 w-10' : ''`,
46
+ 'inline-flex aspect-square rounded-full overflow-hidden relative items-center justify-center flex-none',
47
+ '[class]': `classess()`,
34
48
  },
35
49
  })
36
50
  export class Avatar extends NgbAvatar {
37
51
  readonly group = inject(AvatarGroup, { optional: true });
38
52
 
39
53
  readonly size = input<AvatarSize>();
54
+ readonly variant = input<AvatarVariant>('default');
40
55
 
41
56
  readonly aSize = computed(() => this.size() ?? this.group?.size() ?? 'md');
57
+
58
+ readonly classess = computed(() => {
59
+ return `${avatarSizesStyles[this.aSize()]} ${avatarVariantStyles[this.variant()]}`;
60
+ });
42
61
  }
@@ -1,5 +1,7 @@
1
1
  import { ChangeDetectionStrategy, Component, input } from '@angular/core';
2
2
 
3
+ export type BadgeVariant = 'default' | 'secondary' | 'outline' | 'destructive';
4
+
3
5
  @Component({
4
6
  selector: '<%= name %>-badge, [<%= name %>Badge]',
5
7
  changeDetection: ChangeDetectionStrategy.OnPush,
@@ -7,7 +9,7 @@ import { ChangeDetectionStrategy, Component, input } from '@angular/core';
7
9
  host: {
8
10
  class: 'inline-flex items-center gap-1 rounded-md border px-2.5 py-0.5 text-xs font-semibold',
9
11
  '[class]': `variant() === 'default'
10
- ? 'bg-primary text-primary-foreground hover:bg-primary/80 border-transparent'
12
+ ? 'bg-primary text-primary-foreground border-transparent'
11
13
  : variant() === 'secondary' ? 'bg-secondary text-secondary-foreground hover:bg-secondary/80 border-transparent'
12
14
  : variant() === 'outline' ? 'text-foreground border-input bg-background hover:bg-accent border-border'
13
15
  : variant() === 'destructive' ? 'bg-destructive text-destructive-foreground hover:bg-destructive/80 border-transparent'
@@ -15,5 +17,5 @@ import { ChangeDetectionStrategy, Component, input } from '@angular/core';
15
17
  },
16
18
  })
17
19
  export class Badge {
18
- readonly variant = input<'default' | 'secondary' | 'outline' | 'destructive'>('default');
20
+ readonly variant = input<BadgeVariant>('default');
19
21
  }
@@ -51,19 +51,30 @@ export class AddTaskComponent {
51
51
  }
52
52
  }
53
53
 
54
- const ref = dialog.open(AddTaskComponent, {
55
- backdrop: true,
56
- hideOverlay: false,
57
- data: {},
58
- });
54
+ @Component({
55
+ selector: 'app-root',
56
+ templateUrl: './app.component.html',
57
+ })
58
+ export class AppComponent {
59
+ readonly dialog = dialogPortal();
60
+
61
+ open() {
62
+ const ref = dialog.open(AddTaskComponent, {
63
+ backdrop: true,
64
+ hideOverlay: false,
65
+ data: {},
66
+ });
59
67
 
60
- ref.afterClosed.subscribe(data => {
61
- console.log(data);
62
- });
68
+ ref.afterClosed.subscribe(data => {
69
+ console.log(data);
70
+ });
63
71
 
64
- dialog.open(dialogContent(), {
65
- backdrop: true,
66
- hideOverlay: false,
67
- data: {},
68
- });
72
+ // or with template
73
+ dialog.open(dialogContent(), {
74
+ backdrop: true,
75
+ hideOverlay: false,
76
+ data: {},
77
+ });
78
+ }
79
+ }
69
80
  ```
@@ -64,6 +64,8 @@ import { createHostAnimation, fadeAnimation } from '@ngbase/adk/utils';
64
64
  `,
65
65
  host: {
66
66
  class: 'fixed block top-0 bottom-0 left-0 right-0 overflow-auto pointer-events-none z-p',
67
+ '[@parentAnimation]': '',
68
+ '(@parentAnimation.done)': 'animationDone()',
67
69
  },
68
70
  animations: [
69
71
  createHostAnimation(['@viewAnimation', '@fadeAnimation']),
@@ -37,7 +37,7 @@ export class SelectOption<T> {}
37
37
  <button
38
38
  ngbSelectValue
39
39
  [class.opacity-50]="disabled()"
40
- class="flex min-h-5 w-full items-center gap-1 text-left whitespace-nowrap outline-none"
40
+ class="flex min-h-5 w-full cursor-pointer items-center gap-1 text-left whitespace-nowrap outline-none"
41
41
  >
42
42
  <!-- Prefix template -->
43
43
  <ng-content select=".select-prefix" />