@bootkit/ng0 0.0.0-alpha.28 → 0.0.0-alpha.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/components/form-field/index.d.ts +1 -1
  2. package/data/index.d.ts +5 -0
  3. package/fesm2022/bootkit-ng0-common.mjs +4 -4
  4. package/fesm2022/bootkit-ng0-components-accordion.mjs +12 -12
  5. package/fesm2022/bootkit-ng0-components-accordion.mjs.map +1 -1
  6. package/fesm2022/bootkit-ng0-components-backdrop.mjs +3 -3
  7. package/fesm2022/bootkit-ng0-components-button.mjs +8 -8
  8. package/fesm2022/bootkit-ng0-components-card.mjs +11 -11
  9. package/fesm2022/bootkit-ng0-components-code.mjs +7 -7
  10. package/fesm2022/bootkit-ng0-components-collapse.mjs +12 -12
  11. package/fesm2022/bootkit-ng0-components-collapse.mjs.map +1 -1
  12. package/fesm2022/bootkit-ng0-components-confirmation.mjs +13 -13
  13. package/fesm2022/bootkit-ng0-components-confirmation.mjs.map +1 -1
  14. package/fesm2022/bootkit-ng0-components-dropdown.mjs +25 -25
  15. package/fesm2022/bootkit-ng0-components-dropdown.mjs.map +1 -1
  16. package/fesm2022/bootkit-ng0-components-form-field.mjs +9 -8
  17. package/fesm2022/bootkit-ng0-components-form-field.mjs.map +1 -1
  18. package/fesm2022/bootkit-ng0-components-list.mjs +15 -15
  19. package/fesm2022/bootkit-ng0-components-list.mjs.map +1 -1
  20. package/fesm2022/bootkit-ng0-components-modal.mjs +8 -8
  21. package/fesm2022/bootkit-ng0-components-modal.mjs.map +1 -1
  22. package/fesm2022/bootkit-ng0-components-nav.mjs +23 -23
  23. package/fesm2022/bootkit-ng0-components-nav.mjs.map +1 -1
  24. package/fesm2022/bootkit-ng0-components-offcanvas.mjs +8 -8
  25. package/fesm2022/bootkit-ng0-components-offcanvas.mjs.map +1 -1
  26. package/fesm2022/bootkit-ng0-components-pagination.mjs +8 -8
  27. package/fesm2022/bootkit-ng0-components-pagination.mjs.map +1 -1
  28. package/fesm2022/bootkit-ng0-components-popover.mjs +7 -7
  29. package/fesm2022/bootkit-ng0-components-popover.mjs.map +1 -1
  30. package/fesm2022/bootkit-ng0-components-select.mjs +8 -8
  31. package/fesm2022/bootkit-ng0-components-select.mjs.map +1 -1
  32. package/fesm2022/bootkit-ng0-components-sidenav.mjs +11 -11
  33. package/fesm2022/bootkit-ng0-components-sidenav.mjs.map +1 -1
  34. package/fesm2022/bootkit-ng0-components-stepper.mjs +12 -12
  35. package/fesm2022/bootkit-ng0-components-stepper.mjs.map +1 -1
  36. package/fesm2022/bootkit-ng0-components-table.mjs +15 -15
  37. package/fesm2022/bootkit-ng0-components-table.mjs.map +1 -1
  38. package/fesm2022/bootkit-ng0-components-toast.mjs +6 -6
  39. package/fesm2022/bootkit-ng0-components-toast.mjs.map +1 -1
  40. package/fesm2022/bootkit-ng0-components-tooltip.mjs +7 -7
  41. package/fesm2022/bootkit-ng0-components-tooltip.mjs.map +1 -1
  42. package/fesm2022/bootkit-ng0-components-vertical-menu.mjs +22 -22
  43. package/fesm2022/bootkit-ng0-components-vertical-menu.mjs.map +1 -1
  44. package/fesm2022/bootkit-ng0-data.mjs +15 -15
  45. package/fesm2022/bootkit-ng0-data.mjs.map +1 -1
  46. package/fesm2022/bootkit-ng0-form.mjs +29 -29
  47. package/fesm2022/bootkit-ng0-form.mjs.map +1 -1
  48. package/fesm2022/bootkit-ng0-http.mjs +3 -3
  49. package/fesm2022/bootkit-ng0-layouts-layout1.mjs +10 -10
  50. package/fesm2022/bootkit-ng0-localization.mjs +34 -34
  51. package/fesm2022/bootkit-ng0-platform-browser.mjs +7 -7
  52. package/fesm2022/bootkit-ng0-platform-browser.mjs.map +1 -1
  53. package/fesm2022/bootkit-ng0-routing.mjs +3 -3
  54. package/fesm2022/bootkit-ng0-script.mjs +3 -3
  55. package/fesm2022/bootkit-ng0-security.mjs +14 -14
  56. package/package.json +26 -26
@@ -1 +1 @@
1
- {"version":3,"file":"bootkit-ng0-components-confirmation.mjs","sources":["../../../projects/ng0/components/confirmation/confirmation.component.ts","../../../projects/ng0/components/confirmation/confirmation.component.html","../../../projects/ng0/components/confirmation/types.ts","../../../projects/ng0/components/confirmation/confirmation.service.ts","../../../projects/ng0/components/confirmation/confirmation.directive.ts","../../../projects/ng0/components/confirmation/confirmation.module.ts","../../../projects/ng0/components/confirmation/bootkit-ng0-components-confirmation.ts"],"sourcesContent":["import { Component, OnInit } from '@angular/core';\r\nimport { ConfirmationConfig, ConfirmationRef } from './types';\r\nimport { DialogModule } from '@angular/cdk/dialog';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LocalizationModule } from '@bootkit/ng0/localization';\r\n\r\n@Component({\r\n selector: 'ng0-confirmation',\r\n exportAs: 'ng0Confirmation',\r\n templateUrl: 'confirmation.component.html',\r\n styleUrls: ['confirmation.component.scss'],\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n DialogModule,\r\n LocalizationModule,\r\n ],\r\n})\r\nexport class ConfirmationComponent implements OnInit {\r\n confirmationRef!: ConfirmationRef;\r\n _config?: ConfirmationConfig;\r\n _clicked = false;\r\n\r\n constructor() {\r\n }\r\n\r\n _onClick(result: boolean) {\r\n this._clicked = true;\r\n if (result) {\r\n this.confirmationRef.confirm();\r\n } else {\r\n this.confirmationRef.cancel();\r\n }\r\n\r\n if (this._config?.autoClose == null || this._config?.autoClose === true) {\r\n this.confirmationRef.close();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.confirmationRef.configChanged.subscribe(x => this._config = x);\r\n // var addClass = (c: string) => this._renderer.addClass(this._element.nativeElement, c);\r\n\r\n // ['card', 'show'].forEach(c => addClass(c));\r\n // if (this.config?.color) {\r\n // addClass('text-bg-' + this.config?.color);\r\n // }\r\n }\r\n}\r\n","<div class=\"modal d-block\" tabindex=\"-1\">\r\n <div class=\"modal-dialog\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h5 class=\"modal-title\">{{_config?.title ?? 'warning' | ng0Translate }}</h5>\r\n </div>\r\n\r\n <div class=\"modal-body\">\r\n {{ _config?.message ?? 'areYouSure' | ng0Translate }}\r\n </div>\r\n\r\n <div class=\"modal-footer\">\r\n <div>\r\n <button type=\"button\" class=\"btn btn-success me-1\" aria-label=\"Confirm\" [disabled]=\"_clicked\"\r\n (click)=\"_onClick(true)\">\r\n {{'ok' | ng0Translate}}\r\n </button>\r\n\r\n <button type=\"button\" class=\"btn btn-secondary\" aria-label=\"Close\" [disabled]=\"_clicked\"\r\n (click)=\"_onClick(false)\">\r\n {{'cancel' | ng0Translate}}\r\n </button>\r\n </div>\r\n\r\n <div class=\"ms-auto\">\r\n <div class=\"spinner-border text-success\" role=\"status\" *ngIf=\"_config?.icon == 'loading'\">\r\n <span class=\"visually-hidden\">Processing</span>\r\n </div>\r\n\r\n <svg *ngIf=\"_config?.icon == 'check'\" xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'\r\n width=\"32\" height=\"32\">\r\n <path fill='#0493A8'\r\n d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z' />\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { DialogRef } from \"@angular/cdk/dialog\";\r\nimport { BehaviorSubject, Subject } from \"rxjs\";\r\n\r\nexport interface ConfirmationConfig {\r\n message?: string;\r\n title?: string;\r\n // color?: BootstrapColor,\r\n icon?: 'loading' | 'check';\r\n /** automaticaly close confirmation after confirmation/cancelation. default is true */\r\n autoClose?: boolean;\r\n}\r\n\r\nexport class ConfirmationRef {\r\n private _configChangeSubject = new Subject<ConfirmationConfig>();\r\n public configChanged = this._configChangeSubject.asObservable();\r\n\r\n private _confirmSubject = new Subject();\r\n public confirmed = this._confirmSubject.asObservable();\r\n\r\n private _cancelSubject = new Subject();\r\n public canceled = this._cancelSubject.asObservable();\r\n\r\n constructor(private _dialogRef: DialogRef<any, any>, private _config: ConfirmationConfig) {\r\n }\r\n\r\n confirm() {\r\n this._confirmSubject.next(undefined);\r\n }\r\n\r\n cancel() {\r\n this._cancelSubject.next(undefined);\r\n }\r\n\r\n close() {\r\n this._dialogRef.close();\r\n }\r\n\r\n update(config: ConfirmationConfig) {\r\n for (const key in config as any) {\r\n if (Object.prototype.hasOwnProperty.call(config, key)) {\r\n const element = (config as any)[key];\r\n if(element !== undefined) {\r\n (this._config as any)[key] = element;\r\n }\r\n }\r\n }\r\n\r\n this._configChangeSubject.next(this._config);\r\n }\r\n}\r\n","import { Dialog } from '@angular/cdk/dialog';\r\nimport { Injectable } from '@angular/core';\r\nimport { ConfirmationComponent } from './confirmation.component';\r\nimport { ConfirmationConfig, ConfirmationRef } from './types';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConfirmationService {\r\n constructor(private dialog: Dialog) { }\r\n\r\n open(config: ConfirmationConfig = {}): ConfirmationRef {\r\n var dlgRef = this.dialog.open(ConfirmationComponent, {\r\n disableClose: false,\r\n });\r\n\r\n var componentRef = dlgRef.componentInstance!;\r\n componentRef.confirmationRef = new ConfirmationRef(dlgRef, config);\r\n return componentRef.confirmationRef;\r\n }\r\n}\r\n\r\n","import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';\r\nimport { ConfirmationService } from './confirmation.service';\r\nimport { ConfirmationConfig, ConfirmationRef } from './types';\r\n\r\n@Directive({\r\n selector: '[ng0Confirmation]',\r\n exportAs: 'ng0Confirmation',\r\n standalone: true\r\n})\r\nexport class ConfirmationDirective {\r\n @Input() config?: ConfirmationConfig;\r\n @Output() confirm = new EventEmitter<ConfirmationRef>();\r\n @Output() cancel = new EventEmitter<ConfirmationRef>();\r\n\r\n constructor(private confirmationService: ConfirmationService) {\r\n }\r\n\r\n @HostListener('click') private _onClick() {\r\n var ref = this.confirmationService.open(this.config);\r\n ref.confirmed.subscribe(x => this.confirm.emit(ref));\r\n ref.canceled.subscribe(x => this.cancel.emit(ref));\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { ConfirmationComponent } from './confirmation.component';\r\nimport { ConfirmationDirective } from './confirmation.directive';\r\n\r\n@NgModule({\r\n imports: [\r\n ConfirmationComponent,\r\n ConfirmationDirective\r\n ],\r\n exports: [\r\n ConfirmationComponent,\r\n ConfirmationDirective\r\n ]\r\n})\r\nexport class ConfirmationModule {\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i1.ConfirmationService"],"mappings":"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"}
1
+ {"version":3,"file":"bootkit-ng0-components-confirmation.mjs","sources":["../../../projects/ng0/components/confirmation/confirmation.component.ts","../../../projects/ng0/components/confirmation/confirmation.component.html","../../../projects/ng0/components/confirmation/types.ts","../../../projects/ng0/components/confirmation/confirmation.service.ts","../../../projects/ng0/components/confirmation/confirmation.directive.ts","../../../projects/ng0/components/confirmation/confirmation.module.ts","../../../projects/ng0/components/confirmation/bootkit-ng0-components-confirmation.ts"],"sourcesContent":["import { Component, OnInit } from '@angular/core';\r\nimport { ConfirmationConfig, ConfirmationRef } from './types';\r\nimport { DialogModule } from '@angular/cdk/dialog';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LocalizationModule } from '@bootkit/ng0/localization';\r\n\r\n@Component({\r\n selector: 'ng0-confirmation',\r\n exportAs: 'ng0Confirmation',\r\n templateUrl: 'confirmation.component.html',\r\n styleUrls: ['confirmation.component.scss'],\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n DialogModule,\r\n LocalizationModule,\r\n ],\r\n})\r\nexport class ConfirmationComponent implements OnInit {\r\n confirmationRef!: ConfirmationRef;\r\n _config?: ConfirmationConfig;\r\n _clicked = false;\r\n\r\n constructor() {\r\n }\r\n\r\n _onClick(result: boolean) {\r\n this._clicked = true;\r\n if (result) {\r\n this.confirmationRef.confirm();\r\n } else {\r\n this.confirmationRef.cancel();\r\n }\r\n\r\n if (this._config?.autoClose == null || this._config?.autoClose === true) {\r\n this.confirmationRef.close();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.confirmationRef.configChanged.subscribe(x => this._config = x);\r\n // var addClass = (c: string) => this._renderer.addClass(this._element.nativeElement, c);\r\n\r\n // ['card', 'show'].forEach(c => addClass(c));\r\n // if (this.config?.color) {\r\n // addClass('text-bg-' + this.config?.color);\r\n // }\r\n }\r\n}\r\n","<div class=\"modal d-block\" tabindex=\"-1\">\r\n <div class=\"modal-dialog\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h5 class=\"modal-title\">{{_config?.title ?? 'warning' | ng0Translate }}</h5>\r\n </div>\r\n\r\n <div class=\"modal-body\">\r\n {{ _config?.message ?? 'areYouSure' | ng0Translate }}\r\n </div>\r\n\r\n <div class=\"modal-footer\">\r\n <div>\r\n <button type=\"button\" class=\"btn btn-success me-1\" aria-label=\"Confirm\" [disabled]=\"_clicked\"\r\n (click)=\"_onClick(true)\">\r\n {{'ok' | ng0Translate}}\r\n </button>\r\n\r\n <button type=\"button\" class=\"btn btn-secondary\" aria-label=\"Close\" [disabled]=\"_clicked\"\r\n (click)=\"_onClick(false)\">\r\n {{'cancel' | ng0Translate}}\r\n </button>\r\n </div>\r\n\r\n <div class=\"ms-auto\">\r\n <div class=\"spinner-border text-success\" role=\"status\" *ngIf=\"_config?.icon == 'loading'\">\r\n <span class=\"visually-hidden\">Processing</span>\r\n </div>\r\n\r\n <svg *ngIf=\"_config?.icon == 'check'\" xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'\r\n width=\"32\" height=\"32\">\r\n <path fill='#0493A8'\r\n d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z' />\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { DialogRef } from \"@angular/cdk/dialog\";\r\nimport { BehaviorSubject, Subject } from \"rxjs\";\r\n\r\nexport interface ConfirmationConfig {\r\n message?: string;\r\n title?: string;\r\n // color?: BootstrapColor,\r\n icon?: 'loading' | 'check';\r\n /** automaticaly close confirmation after confirmation/cancelation. default is true */\r\n autoClose?: boolean;\r\n}\r\n\r\nexport class ConfirmationRef {\r\n private _configChangeSubject = new Subject<ConfirmationConfig>();\r\n public configChanged = this._configChangeSubject.asObservable();\r\n\r\n private _confirmSubject = new Subject();\r\n public confirmed = this._confirmSubject.asObservable();\r\n\r\n private _cancelSubject = new Subject();\r\n public canceled = this._cancelSubject.asObservable();\r\n\r\n constructor(private _dialogRef: DialogRef<any, any>, private _config: ConfirmationConfig) {\r\n }\r\n\r\n confirm() {\r\n this._confirmSubject.next(undefined);\r\n }\r\n\r\n cancel() {\r\n this._cancelSubject.next(undefined);\r\n }\r\n\r\n close() {\r\n this._dialogRef.close();\r\n }\r\n\r\n update(config: ConfirmationConfig) {\r\n for (const key in config as any) {\r\n if (Object.prototype.hasOwnProperty.call(config, key)) {\r\n const element = (config as any)[key];\r\n if(element !== undefined) {\r\n (this._config as any)[key] = element;\r\n }\r\n }\r\n }\r\n\r\n this._configChangeSubject.next(this._config);\r\n }\r\n}\r\n","import { Dialog } from '@angular/cdk/dialog';\r\nimport { Injectable } from '@angular/core';\r\nimport { ConfirmationComponent } from './confirmation.component';\r\nimport { ConfirmationConfig, ConfirmationRef } from './types';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConfirmationService {\r\n constructor(private dialog: Dialog) { }\r\n\r\n open(config: ConfirmationConfig = {}): ConfirmationRef {\r\n var dlgRef = this.dialog.open(ConfirmationComponent, {\r\n disableClose: false,\r\n });\r\n\r\n var componentRef = dlgRef.componentInstance!;\r\n componentRef.confirmationRef = new ConfirmationRef(dlgRef, config);\r\n return componentRef.confirmationRef;\r\n }\r\n}\r\n\r\n","import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';\r\nimport { ConfirmationService } from './confirmation.service';\r\nimport { ConfirmationConfig, ConfirmationRef } from './types';\r\n\r\n@Directive({\r\n selector: '[ng0Confirmation]',\r\n exportAs: 'ng0Confirmation',\r\n standalone: true\r\n})\r\nexport class ConfirmationDirective {\r\n @Input() config?: ConfirmationConfig;\r\n @Output() confirm = new EventEmitter<ConfirmationRef>();\r\n @Output() cancel = new EventEmitter<ConfirmationRef>();\r\n\r\n constructor(private confirmationService: ConfirmationService) {\r\n }\r\n\r\n @HostListener('click') private _onClick() {\r\n var ref = this.confirmationService.open(this.config);\r\n ref.confirmed.subscribe(x => this.confirm.emit(ref));\r\n ref.canceled.subscribe(x => this.cancel.emit(ref));\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { ConfirmationComponent } from './confirmation.component';\r\nimport { ConfirmationDirective } from './confirmation.directive';\r\n\r\n@NgModule({\r\n imports: [\r\n ConfirmationComponent,\r\n ConfirmationDirective\r\n ],\r\n exports: [\r\n ConfirmationComponent,\r\n ConfirmationDirective\r\n ]\r\n})\r\nexport class ConfirmationModule {\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i1.ConfirmationService"],"mappings":"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"}
@@ -8,10 +8,10 @@ import * as i1$1 from '@angular/cdk/overlay';
8
8
  import { OverlayModule } from '@angular/cdk/overlay';
9
9
 
10
10
  class DropdownDividerComponent {
11
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: DropdownDividerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.1", type: DropdownDividerComponent, isStandalone: true, selector: "ng0-dropdown-divider", exportAs: ["ng0DropdownDivider"], ngImport: i0, template: `<hr class="dropdown-divider">`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
11
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: DropdownDividerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.9", type: DropdownDividerComponent, isStandalone: true, selector: "ng0-dropdown-divider", exportAs: ["ng0DropdownDivider"], ngImport: i0, template: `<hr class="dropdown-divider">`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13
13
  }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: DropdownDividerComponent, decorators: [{
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: DropdownDividerComponent, decorators: [{
15
15
  type: Component,
16
16
  args: [{
17
17
  selector: 'ng0-dropdown-divider',
@@ -43,16 +43,16 @@ class DropdownItemComponent {
43
43
  e.preventDefault();
44
44
  }
45
45
  }
46
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: DropdownItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
47
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.2.1", type: DropdownItemComponent, isStandalone: true, selector: "ng0-dropdown-item", inputs: { cssClass: { classPropertyName: "cssClass", publicName: "cssClass", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "_onClick($event)" } }, exportAs: ["ng0DropdownItem"], ngImport: i0, template: "<button class=\"dropdown-item\" [ngClass]=\"cssClass()\" [class.disabled]=\"disabled()\" [attr.aria-disabled]=\"disabled()\">\r\n <ng-content></ng-content>\r\n</button>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: RouterModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
46
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: DropdownItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
47
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.9", type: DropdownItemComponent, isStandalone: true, selector: "ng0-dropdown-item", inputs: { cssClass: { classPropertyName: "cssClass", publicName: "cssClass", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "_onClick($event)" } }, exportAs: ["ng0DropdownItem"], ngImport: i0, template: "<button class=\"dropdown-item\" [ngClass]=\"cssClass()\" [class.disabled]=\"disabled()\" [attr.aria-disabled]=\"disabled()\">\r\n <ng-content></ng-content>\r\n</button>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: RouterModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
48
48
  }
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: DropdownItemComponent, decorators: [{
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: DropdownItemComponent, decorators: [{
50
50
  type: Component,
51
51
  args: [{ selector: 'ng0-dropdown-item', exportAs: 'ng0DropdownItem', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
52
52
  CommonModule,
53
53
  RouterModule
54
54
  ], template: "<button class=\"dropdown-item\" [ngClass]=\"cssClass()\" [class.disabled]=\"disabled()\" [attr.aria-disabled]=\"disabled()\">\r\n <ng-content></ng-content>\r\n</button>" }]
55
- }], propDecorators: { _onClick: [{
55
+ }], propDecorators: { cssClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "cssClass", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], _onClick: [{
56
56
  type: HostListener,
57
57
  args: ['click', ['$event']]
58
58
  }] } });
@@ -64,10 +64,10 @@ class DropdownMenuComponent {
64
64
  constructor() {
65
65
  this._renderer.addClass(this.elementRef.nativeElement, 'dropdown-menu');
66
66
  }
67
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: DropdownMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
68
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.1", type: DropdownMenuComponent, isStandalone: true, selector: "ng0-dropdown-menu", exportAs: ["ng0Dropdownmenu"], ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, styles: [":host{display:block;position:relative}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
67
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: DropdownMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
68
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.9", type: DropdownMenuComponent, isStandalone: true, selector: "ng0-dropdown-menu", exportAs: ["ng0Dropdownmenu"], ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, styles: [":host{display:block;position:relative}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
69
69
  }
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: DropdownMenuComponent, decorators: [{
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: DropdownMenuComponent, decorators: [{
71
71
  type: Component,
72
72
  args: [{ selector: 'ng0-dropdown-menu', exportAs: 'ng0Dropdownmenu', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
73
73
  CommonModule,
@@ -176,10 +176,10 @@ class DropdownComponent {
176
176
  }
177
177
  }
178
178
  }
179
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: DropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
180
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.1", type: DropdownComponent, isStandalone: true, selector: "ng0-dropdown", inputs: { placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, cssClass: { classPropertyName: "cssClass", publicName: "cssClass", isSignal: true, isRequired: false, transformFunction: null }, splitCssClass: { classPropertyName: "splitCssClass", publicName: "splitCssClass", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, split: { classPropertyName: "split", publicName: "split", isSignal: true, isRequired: false, transformFunction: null }, autoClose: { classPropertyName: "autoClose", publicName: "autoClose", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange" }, host: { listeners: { "document:click": "_onDocumentClick($event)" }, properties: { "class": "_directionCssClass()" } }, queries: [{ propertyName: "_dropdownMenu", first: true, predicate: DropdownMenuComponent, descendants: true }], viewQueries: [{ propertyName: "_mainButton", first: true, predicate: ["mainButton"], descendants: true }, { propertyName: "_splitButton", first: true, predicate: ["splitButton"], descendants: true }], exportAs: ["ng0Dropdown"], ngImport: i0, template: "<button #mainButton\r\n [class]=\"cssClass()\"\r\n [class.dropdown-toggle]=\"!split()\"\r\n [class.btn-sm]=\"size() == 'small'\"\r\n [class.btn-lg]=\"size() == 'large'\"\r\n type=\"button\">\r\n <ng-content></ng-content>\r\n</button>\r\n\r\n@if(split()) {\r\n<button #splitButton\r\n type=\"button\"\r\n [class]=\"splitCssClass()\"\r\n [class.btn-sm]=\"size() == 'small'\"\r\n [class.btn-lg]=\"size() == 'large'\"\r\n class=\"dropdown-toggle dropdown-toggle-split\">\r\n <span class=\"visually-hidden\">Toggle Dropdown</span>\r\n</button>\r\n}\r\n\r\n<ng-template cdkConnectedOverlay\r\n [cdkConnectedOverlayOrigin]=\"_el.nativeElement\"\r\n [cdkConnectedOverlayOpen]=\"open()\"\r\n [cdkConnectedOverlayPush]=\"false\"\r\n [cdkConnectedOverlayFlexibleDimensions]=\"true\">\r\n <ng-content select=\"ng0-dropdown-menu\"></ng-content>\r\n</ng-template>\r\n\r\n<style>\r\n :host {\r\n display: inline-block;\r\n }\r\n</style>", styles: [":host{display:inline-block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i1$1.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
179
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: DropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
180
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: DropdownComponent, isStandalone: true, selector: "ng0-dropdown", inputs: { placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, cssClass: { classPropertyName: "cssClass", publicName: "cssClass", isSignal: true, isRequired: false, transformFunction: null }, splitCssClass: { classPropertyName: "splitCssClass", publicName: "splitCssClass", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, split: { classPropertyName: "split", publicName: "split", isSignal: true, isRequired: false, transformFunction: null }, autoClose: { classPropertyName: "autoClose", publicName: "autoClose", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange" }, host: { listeners: { "document:click": "_onDocumentClick($event)" }, properties: { "class": "_directionCssClass()" } }, queries: [{ propertyName: "_dropdownMenu", first: true, predicate: DropdownMenuComponent, descendants: true }], viewQueries: [{ propertyName: "_mainButton", first: true, predicate: ["mainButton"], descendants: true }, { propertyName: "_splitButton", first: true, predicate: ["splitButton"], descendants: true }], exportAs: ["ng0Dropdown"], ngImport: i0, template: "<button #mainButton\r\n [class]=\"cssClass()\"\r\n [class.dropdown-toggle]=\"!split()\"\r\n [class.btn-sm]=\"size() == 'small'\"\r\n [class.btn-lg]=\"size() == 'large'\"\r\n type=\"button\">\r\n <ng-content></ng-content>\r\n</button>\r\n\r\n@if(split()) {\r\n<button #splitButton\r\n type=\"button\"\r\n [class]=\"splitCssClass()\"\r\n [class.btn-sm]=\"size() == 'small'\"\r\n [class.btn-lg]=\"size() == 'large'\"\r\n class=\"dropdown-toggle dropdown-toggle-split\">\r\n <span class=\"visually-hidden\">Toggle Dropdown</span>\r\n</button>\r\n}\r\n\r\n<ng-template cdkConnectedOverlay\r\n [cdkConnectedOverlayOrigin]=\"_el.nativeElement\"\r\n [cdkConnectedOverlayOpen]=\"open()\"\r\n [cdkConnectedOverlayPush]=\"false\"\r\n [cdkConnectedOverlayFlexibleDimensions]=\"true\">\r\n <ng-content select=\"ng0-dropdown-menu\"></ng-content>\r\n</ng-template>\r\n\r\n<style>\r\n :host {\r\n display: inline-block;\r\n }\r\n</style>", styles: [":host{display:inline-block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i1$1.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
181
181
  }
182
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: DropdownComponent, decorators: [{
182
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: DropdownComponent, decorators: [{
183
183
  type: Component,
184
184
  args: [{ selector: 'ng0-dropdown', exportAs: 'ng0Dropdown', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
185
185
  CommonModule,
@@ -196,16 +196,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
196
196
  }], _splitButton: [{
197
197
  type: ViewChild,
198
198
  args: ['splitButton']
199
- }], _onDocumentClick: [{
199
+ }], placement: [{ type: i0.Input, args: [{ isSignal: true, alias: "placement", required: false }] }], cssClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "cssClass", required: false }] }], splitCssClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "splitCssClass", required: false }] }], open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }, { type: i0.Output, args: ["openChange"] }], split: [{ type: i0.Input, args: [{ isSignal: true, alias: "split", required: false }] }], autoClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoClose", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], _onDocumentClick: [{
200
200
  type: HostListener,
201
201
  args: ['document:click', ['$event']]
202
202
  }] } });
203
203
 
204
204
  class DropdownHeaderComponent {
205
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: DropdownHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
206
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.1", type: DropdownHeaderComponent, isStandalone: true, selector: "ng0-dropdown-header", exportAs: ["ng0DropdownItem"], ngImport: i0, template: `<h6 class="dropdown-header"><ng-content></ng-content></h6>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
205
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: DropdownHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
206
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.9", type: DropdownHeaderComponent, isStandalone: true, selector: "ng0-dropdown-header", exportAs: ["ng0DropdownItem"], ngImport: i0, template: `<h6 class="dropdown-header"><ng-content></ng-content></h6>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
207
207
  }
208
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: DropdownHeaderComponent, decorators: [{
208
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: DropdownHeaderComponent, decorators: [{
209
209
  type: Component,
210
210
  args: [{
211
211
  selector: 'ng0-dropdown-header',
@@ -243,16 +243,16 @@ class DropdownLinkComponent {
243
243
  e.stopPropagation();
244
244
  }
245
245
  }
246
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: DropdownLinkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
247
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.2.1", type: DropdownLinkComponent, isStandalone: true, selector: "ng0-dropdown-link", inputs: { link: { classPropertyName: "link", publicName: "link", isSignal: true, isRequired: true, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, target: { classPropertyName: "target", publicName: "target", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "_onClick($event)" } }, exportAs: ["ng0DropdownLink"], ngImport: i0, template: "<a class=\"dropdown-item\" [routerLink]=\"link()\" [target]=\"target()\" [routerLinkActive]=\"active()\" [class.disabled]=\"disabled()\" [attr.aria-disabled]=\"disabled()\">\r\n <ng-content></ng-content>\r\n</a>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1$2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
246
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: DropdownLinkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
247
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.9", type: DropdownLinkComponent, isStandalone: true, selector: "ng0-dropdown-link", inputs: { link: { classPropertyName: "link", publicName: "link", isSignal: true, isRequired: true, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, target: { classPropertyName: "target", publicName: "target", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "_onClick($event)" } }, exportAs: ["ng0DropdownLink"], ngImport: i0, template: "<a class=\"dropdown-item\" [routerLink]=\"link()\" [target]=\"target()\" [routerLinkActive]=\"active()\" [class.disabled]=\"disabled()\" [attr.aria-disabled]=\"disabled()\">\r\n <ng-content></ng-content>\r\n</a>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1$2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
248
248
  }
249
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: DropdownLinkComponent, decorators: [{
249
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: DropdownLinkComponent, decorators: [{
250
250
  type: Component,
251
251
  args: [{ selector: 'ng0-dropdown-link', exportAs: 'ng0DropdownLink', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
252
252
  CommonModule,
253
253
  RouterModule
254
254
  ], template: "<a class=\"dropdown-item\" [routerLink]=\"link()\" [target]=\"target()\" [routerLinkActive]=\"active()\" [class.disabled]=\"disabled()\" [attr.aria-disabled]=\"disabled()\">\r\n <ng-content></ng-content>\r\n</a>" }]
255
- }], propDecorators: { _onClick: [{
255
+ }], propDecorators: { link: [{ type: i0.Input, args: [{ isSignal: true, alias: "link", required: true }] }], active: [{ type: i0.Input, args: [{ isSignal: true, alias: "active", required: false }] }], target: [{ type: i0.Input, args: [{ isSignal: true, alias: "target", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], _onClick: [{
256
256
  type: HostListener,
257
257
  args: ['click', ['$event']]
258
258
  }] } });
@@ -266,8 +266,8 @@ const Items = [
266
266
  DropdownDividerComponent
267
267
  ];
268
268
  class DropdownModule {
269
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: DropdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
270
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.2.1", ngImport: i0, type: DropdownModule, imports: [DropdownComponent,
269
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: DropdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
270
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.9", ngImport: i0, type: DropdownModule, imports: [DropdownComponent,
271
271
  DropdownMenuComponent,
272
272
  DropdownItemComponent,
273
273
  DropdownLinkComponent,
@@ -278,13 +278,13 @@ class DropdownModule {
278
278
  DropdownLinkComponent,
279
279
  DropdownHeaderComponent,
280
280
  DropdownDividerComponent] });
281
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: DropdownModule, imports: [DropdownComponent,
281
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: DropdownModule, imports: [DropdownComponent,
282
282
  DropdownMenuComponent,
283
283
  DropdownItemComponent,
284
284
  DropdownLinkComponent,
285
285
  DropdownDividerComponent] });
286
286
  }
287
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: DropdownModule, decorators: [{
287
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: DropdownModule, decorators: [{
288
288
  type: NgModule,
289
289
  args: [{
290
290
  imports: Items,
@@ -1 +1 @@
1
- {"version":3,"file":"bootkit-ng0-components-dropdown.mjs","sources":["../../../projects/ng0/components/dropdown/dropdown-divider.component.ts","../../../projects/ng0/components/dropdown/dropdown-item.component.ts","../../../projects/ng0/components/dropdown/dropdown-item.component.html","../../../projects/ng0/components/dropdown/dropdown-menu.component.ts","../../../projects/ng0/components/dropdown/dropdown.component.ts","../../../projects/ng0/components/dropdown/dropdown.component.html","../../../projects/ng0/components/dropdown/dropdown-header.component.ts","../../../projects/ng0/components/dropdown/dropdown-link.component.ts","../../../projects/ng0/components/dropdown/dropdown-link.component.html","../../../projects/ng0/components/dropdown/dropdown.module.ts","../../../projects/ng0/components/dropdown/types.ts","../../../projects/ng0/components/dropdown/bootkit-ng0-components-dropdown.ts"],"sourcesContent":["import { Component, ChangeDetectionStrategy } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'ng0-dropdown-divider',\r\n exportAs: 'ng0DropdownDivider',\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n CommonModule,\r\n ],\r\n template: `<hr class=\"dropdown-divider\">`,\r\n})\r\nexport class DropdownDividerComponent {\r\n}\r\n","import { Component, ChangeDetectionStrategy, input, booleanAttribute, HostListener } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule } from '@angular/router';\r\nimport { CssClass } from '@bootkit/ng0/common';\r\n\r\n/**\r\n * An item within a dropdown menu.\r\n */\r\n@Component({\r\n selector: 'ng0-dropdown-item',\r\n exportAs: 'ng0DropdownItem',\r\n standalone: true,\r\n templateUrl: './dropdown-item.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n CommonModule,\r\n RouterModule\r\n ],\r\n})\r\nexport class DropdownItemComponent {\r\n /**\r\n * The CSS classes to apply to the dropdown item.\r\n * */\r\n public readonly cssClass = input<CssClass>();\r\n\r\n /**\r\n * Whether the dropdown item is disabled.\r\n */\r\n public readonly disabled = input(false, { transform: booleanAttribute });\r\n\r\n @HostListener('click', ['$event'])\r\n private _onClick(e: MouseEvent) {\r\n if (this.disabled()) {\r\n e.stopImmediatePropagation();\r\n e.preventDefault();\r\n }\r\n }\r\n}\r\n","<button class=\"dropdown-item\" [ngClass]=\"cssClass()\" [class.disabled]=\"disabled()\" [attr.aria-disabled]=\"disabled()\">\r\n <ng-content></ng-content>\r\n</button>","import { Component, ElementRef, Renderer2, ChangeDetectionStrategy, inject, input, HostListener } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DropdownComponent } from './dropdown.component';\r\n\r\n\r\n@Component({\r\n selector: 'ng0-dropdown-menu',\r\n exportAs: 'ng0Dropdownmenu',\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n CommonModule,\r\n ],\r\n template: `<ng-content></ng-content>`,\r\n styles: `:host { display: block; position: relative; }`,\r\n})\r\nexport class DropdownMenuComponent {\r\n private _renderer = inject(Renderer2);\r\n private _dropdown = inject(DropdownComponent);\r\n\r\n public elementRef = inject(ElementRef);\r\n\r\n constructor() {\r\n this._renderer.addClass(this.elementRef.nativeElement, 'dropdown-menu');\r\n }\r\n\r\n // @HostListener('click')\r\n // private _onClick() {\r\n // if (this._dropdown.autoClose() == 'default' || this._dropdown.autoClose() == 'inside') {\r\n // this._dropdown.open.set(false);\r\n // }\r\n // }\r\n}\r\n","import { Component, ElementRef, Renderer2, ChangeDetectionStrategy, inject, input, model, HostListener, ContentChild, booleanAttribute, ViewChild, computed } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CssClass, Placement } from '@bootkit/ng0/common';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\nimport { DropdownAutoCloseBehavior, DropdownSize } from './types';\r\nimport { DropdownMenuComponent } from './dropdown-menu.component';\r\n\r\n@Component({\r\n selector: 'ng0-dropdown',\r\n exportAs: 'ng0Dropdown',\r\n templateUrl: './dropdown.component.html',\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n CommonModule,\r\n OverlayModule,\r\n ],\r\n host: {\r\n '[class]': '_directionCssClass()',\r\n }\r\n})\r\nexport class DropdownComponent {\r\n // @ContentChildren(DropdownItemComponent) private _items!: QueryList<DropdownItemComponent>;\r\n @ContentChild(DropdownMenuComponent) private _dropdownMenu!: DropdownMenuComponent;\r\n @ViewChild('mainButton') private _mainButton!: ElementRef<HTMLButtonElement>;\r\n @ViewChild('splitButton') private _splitButton?: ElementRef<HTMLButtonElement>;\r\n // protected _scrollStrategy!: ScrollStrategy;\r\n protected _el = inject(ElementRef);\r\n private _renderer = inject(Renderer2);\r\n\r\n\r\n /**\r\n * The placement of the dropdown menu in relation to the dropdown toggle.\r\n */\r\n public placement = input<Placement>('bottom');\r\n\r\n /**\r\n * The CSS classes to apply to the dropdown toggle button.\r\n * @default 'btn btn-primary'\r\n */\r\n public cssClass = input<CssClass>('btn btn-primary');\r\n\r\n /**\r\n * The CSS classes to apply to the dropdown split button.\r\n * @default 'btn btn-primary'\r\n */\r\n public splitCssClass = input<CssClass>('btn btn-primary');\r\n\r\n /** \r\n * Indicates whether the dropdown is open or closed.\r\n * @default false\r\n */\r\n public readonly open = model(false);\r\n\r\n /**\r\n * Indicates whether the dropdown is a split button. \r\n * A split button dropdown has a separate toggle button.\r\n * @default false\r\n */\r\n public readonly split = input(false, { transform: booleanAttribute });\r\n\r\n /**\r\n * Indicates whether the dropdown has an automatic close behavior.\r\n * @default 'default'\r\n */\r\n public readonly autoClose = input<DropdownAutoCloseBehavior>('default');\r\n\r\n /**\r\n * Dropdown size\r\n * @default 'default'\r\n */\r\n public readonly size = input<DropdownSize>('default');\r\n\r\n protected _directionCssClass = computed(() => {\r\n switch (this.placement()) {\r\n case 'top':\r\n return 'dropup';\r\n case 'start':\r\n return 'dropstart';\r\n case 'end':\r\n return 'dropend';\r\n case 'bottom':\r\n default:\r\n return undefined;\r\n }\r\n })\r\n\r\n constructor() {\r\n this._renderer.addClass(this._el.nativeElement, 'btn-group');\r\n // this._scrollStrategy = this._overlay.scrollStrategies.block();\r\n }\r\n\r\n /**\r\n * Toggle the dropdown open or closed.\r\n */\r\n public toggle() {\r\n this.open.set(!this.open());\r\n }\r\n\r\n @HostListener('document:click', ['$event'])\r\n private _onDocumentClick(e: MouseEvent) {\r\n const splitButtonClicked = e.target === this._splitButton?.nativeElement;\r\n const mainButtonClicked = e.target === this._mainButton?.nativeElement;\r\n const toggleClicked = this.split() ? splitButtonClicked : mainButtonClicked;\r\n const dropdownClicked = splitButtonClicked || mainButtonClicked;\r\n const menuClicked = this._dropdownMenu.elementRef.nativeElement.contains(e.target);\r\n const outsideClicked = !dropdownClicked && !menuClicked;\r\n\r\n if (this.open()) {\r\n if (toggleClicked) {\r\n this.open.set(false);\r\n return;\r\n }\r\n\r\n switch (this.autoClose()) {\r\n case 'default':\r\n this.open.set(false);\r\n break;\r\n case 'outside':\r\n if (outsideClicked || mainButtonClicked) {\r\n this.open.set(false);\r\n }\r\n break;\r\n case 'inside':\r\n if (menuClicked) {\r\n this.open.set(false);\r\n }\r\n break;\r\n case 'manual':\r\n break;\r\n }\r\n } else {\r\n if (toggleClicked) {\r\n this.open.set(true);\r\n }\r\n }\r\n }\r\n}\r\n","<button #mainButton\r\n [class]=\"cssClass()\"\r\n [class.dropdown-toggle]=\"!split()\"\r\n [class.btn-sm]=\"size() == 'small'\"\r\n [class.btn-lg]=\"size() == 'large'\"\r\n type=\"button\">\r\n <ng-content></ng-content>\r\n</button>\r\n\r\n@if(split()) {\r\n<button #splitButton\r\n type=\"button\"\r\n [class]=\"splitCssClass()\"\r\n [class.btn-sm]=\"size() == 'small'\"\r\n [class.btn-lg]=\"size() == 'large'\"\r\n class=\"dropdown-toggle dropdown-toggle-split\">\r\n <span class=\"visually-hidden\">Toggle Dropdown</span>\r\n</button>\r\n}\r\n\r\n<ng-template cdkConnectedOverlay\r\n [cdkConnectedOverlayOrigin]=\"_el.nativeElement\"\r\n [cdkConnectedOverlayOpen]=\"open()\"\r\n [cdkConnectedOverlayPush]=\"false\"\r\n [cdkConnectedOverlayFlexibleDimensions]=\"true\">\r\n <ng-content select=\"ng0-dropdown-menu\"></ng-content>\r\n</ng-template>\r\n\r\n<style>\r\n :host {\r\n display: inline-block;\r\n }\r\n</style>","import { Component, ElementRef, Renderer2, ChangeDetectionStrategy, inject, input, HostListener } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'ng0-dropdown-header',\r\n exportAs: 'ng0DropdownItem',\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n template: `<h6 class=\"dropdown-header\"><ng-content></ng-content></h6>`,\r\n})\r\nexport class DropdownHeaderComponent {\r\n}\r\n","import { Component, ChangeDetectionStrategy, input, booleanAttribute, HostListener } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule } from '@angular/router';\r\n\r\n/**\r\n * A link item within a dropdown menu.\r\n * This component is used to create a navigable link inside a dropdown.\r\n */\r\n@Component({\r\n selector: 'ng0-dropdown-link',\r\n exportAs: 'ng0DropdownLink',\r\n standalone: true,\r\n templateUrl: './dropdown-link.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n CommonModule,\r\n RouterModule\r\n ],\r\n})\r\nexport class DropdownLinkComponent {\r\n /**\r\n * The link or URL to navigate to when the dropdown item is clicked.\r\n */\r\n public readonly link = input.required<string | string[] | undefined>();\r\n\r\n /**\r\n * The router link active class to apply when the link is active.\r\n */\r\n public readonly active = input<string | string[]>('');\r\n\r\n /**\r\n * Specifies where to open the linked document.\r\n */\r\n public readonly target = input<'_self' | '_blank' | '_parent' | '_top' | undefined>(undefined);\r\n\r\n /**\r\n * Whether the dropdown link is disabled.\r\n */\r\n public readonly disabled = input(false, { transform: booleanAttribute });\r\n\r\n\r\n @HostListener('click', ['$event'])\r\n private _onClick(e: MouseEvent) {\r\n if (this.disabled()) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n }\r\n}\r\n","<a class=\"dropdown-item\" [routerLink]=\"link()\" [target]=\"target()\" [routerLinkActive]=\"active()\" [class.disabled]=\"disabled()\" [attr.aria-disabled]=\"disabled()\">\r\n <ng-content></ng-content>\r\n</a>","import { NgModule } from '@angular/core';\r\nimport { DropdownItemComponent } from './dropdown-item.component';\r\nimport { DropdownComponent } from './dropdown.component';\r\nimport { DropdownHeaderComponent } from './dropdown-header.component';\r\nimport { DropdownDividerComponent } from './dropdown-divider.component';\r\nimport { DropdownMenuComponent } from './dropdown-menu.component';\r\nimport { DropdownLinkComponent } from './dropdown-link.component';\r\n\r\n\r\nconst Items = [\r\n DropdownComponent,\r\n DropdownMenuComponent,\r\n DropdownItemComponent,\r\n DropdownLinkComponent,\r\n DropdownHeaderComponent,\r\n DropdownDividerComponent\r\n]\r\n\r\n@NgModule({\r\n imports: Items,\r\n exports: Items\r\n})\r\nexport class DropdownModule { }\r\n","\r\n/**\r\n * Defines the possible values for the dropdown auto-close behavior.\r\n * \r\n * 'default': The dropdown will close when clicking inside or outside the menu.\r\n * 'inside': The dropdown will close only when clicking inside the menu.\r\n * 'outside': The dropdown will close only when clicking outside the menu.\r\n * 'manual': The dropdown will not close automatically; it must be closed programmatically.\r\n */\r\nexport type DropdownAutoCloseBehavior = 'default' | 'inside' | 'outside' | 'manual';\r\n\r\n/**\r\n * \r\n */\r\nexport type DropdownSize = 'default' | 'small' | 'large';\r\n\r\n\r\n// export type DropdownToggleTriggerMode = 'click' | 'hover' | 'focus';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"bootkit-ng0-components-dropdown.mjs","sources":["../../../projects/ng0/components/dropdown/dropdown-divider.component.ts","../../../projects/ng0/components/dropdown/dropdown-item.component.ts","../../../projects/ng0/components/dropdown/dropdown-item.component.html","../../../projects/ng0/components/dropdown/dropdown-menu.component.ts","../../../projects/ng0/components/dropdown/dropdown.component.ts","../../../projects/ng0/components/dropdown/dropdown.component.html","../../../projects/ng0/components/dropdown/dropdown-header.component.ts","../../../projects/ng0/components/dropdown/dropdown-link.component.ts","../../../projects/ng0/components/dropdown/dropdown-link.component.html","../../../projects/ng0/components/dropdown/dropdown.module.ts","../../../projects/ng0/components/dropdown/types.ts","../../../projects/ng0/components/dropdown/bootkit-ng0-components-dropdown.ts"],"sourcesContent":["import { Component, ChangeDetectionStrategy } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'ng0-dropdown-divider',\r\n exportAs: 'ng0DropdownDivider',\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n CommonModule,\r\n ],\r\n template: `<hr class=\"dropdown-divider\">`,\r\n})\r\nexport class DropdownDividerComponent {\r\n}\r\n","import { Component, ChangeDetectionStrategy, input, booleanAttribute, HostListener } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule } from '@angular/router';\r\nimport { CssClass } from '@bootkit/ng0/common';\r\n\r\n/**\r\n * An item within a dropdown menu.\r\n */\r\n@Component({\r\n selector: 'ng0-dropdown-item',\r\n exportAs: 'ng0DropdownItem',\r\n standalone: true,\r\n templateUrl: './dropdown-item.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n CommonModule,\r\n RouterModule\r\n ],\r\n})\r\nexport class DropdownItemComponent {\r\n /**\r\n * The CSS classes to apply to the dropdown item.\r\n * */\r\n public readonly cssClass = input<CssClass>();\r\n\r\n /**\r\n * Whether the dropdown item is disabled.\r\n */\r\n public readonly disabled = input(false, { transform: booleanAttribute });\r\n\r\n @HostListener('click', ['$event'])\r\n private _onClick(e: MouseEvent) {\r\n if (this.disabled()) {\r\n e.stopImmediatePropagation();\r\n e.preventDefault();\r\n }\r\n }\r\n}\r\n","<button class=\"dropdown-item\" [ngClass]=\"cssClass()\" [class.disabled]=\"disabled()\" [attr.aria-disabled]=\"disabled()\">\r\n <ng-content></ng-content>\r\n</button>","import { Component, ElementRef, Renderer2, ChangeDetectionStrategy, inject, input, HostListener } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DropdownComponent } from './dropdown.component';\r\n\r\n\r\n@Component({\r\n selector: 'ng0-dropdown-menu',\r\n exportAs: 'ng0Dropdownmenu',\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n CommonModule,\r\n ],\r\n template: `<ng-content></ng-content>`,\r\n styles: `:host { display: block; position: relative; }`,\r\n})\r\nexport class DropdownMenuComponent {\r\n private _renderer = inject(Renderer2);\r\n private _dropdown = inject(DropdownComponent);\r\n\r\n public elementRef = inject(ElementRef);\r\n\r\n constructor() {\r\n this._renderer.addClass(this.elementRef.nativeElement, 'dropdown-menu');\r\n }\r\n\r\n // @HostListener('click')\r\n // private _onClick() {\r\n // if (this._dropdown.autoClose() == 'default' || this._dropdown.autoClose() == 'inside') {\r\n // this._dropdown.open.set(false);\r\n // }\r\n // }\r\n}\r\n","import { Component, ElementRef, Renderer2, ChangeDetectionStrategy, inject, input, model, HostListener, ContentChild, booleanAttribute, ViewChild, computed } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CssClass, Placement } from '@bootkit/ng0/common';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\nimport { DropdownAutoCloseBehavior, DropdownSize } from './types';\r\nimport { DropdownMenuComponent } from './dropdown-menu.component';\r\n\r\n@Component({\r\n selector: 'ng0-dropdown',\r\n exportAs: 'ng0Dropdown',\r\n templateUrl: './dropdown.component.html',\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n CommonModule,\r\n OverlayModule,\r\n ],\r\n host: {\r\n '[class]': '_directionCssClass()',\r\n }\r\n})\r\nexport class DropdownComponent {\r\n // @ContentChildren(DropdownItemComponent) private _items!: QueryList<DropdownItemComponent>;\r\n @ContentChild(DropdownMenuComponent) private _dropdownMenu!: DropdownMenuComponent;\r\n @ViewChild('mainButton') private _mainButton!: ElementRef<HTMLButtonElement>;\r\n @ViewChild('splitButton') private _splitButton?: ElementRef<HTMLButtonElement>;\r\n // protected _scrollStrategy!: ScrollStrategy;\r\n protected _el = inject(ElementRef);\r\n private _renderer = inject(Renderer2);\r\n\r\n\r\n /**\r\n * The placement of the dropdown menu in relation to the dropdown toggle.\r\n */\r\n public placement = input<Placement>('bottom');\r\n\r\n /**\r\n * The CSS classes to apply to the dropdown toggle button.\r\n * @default 'btn btn-primary'\r\n */\r\n public cssClass = input<CssClass>('btn btn-primary');\r\n\r\n /**\r\n * The CSS classes to apply to the dropdown split button.\r\n * @default 'btn btn-primary'\r\n */\r\n public splitCssClass = input<CssClass>('btn btn-primary');\r\n\r\n /** \r\n * Indicates whether the dropdown is open or closed.\r\n * @default false\r\n */\r\n public readonly open = model(false);\r\n\r\n /**\r\n * Indicates whether the dropdown is a split button. \r\n * A split button dropdown has a separate toggle button.\r\n * @default false\r\n */\r\n public readonly split = input(false, { transform: booleanAttribute });\r\n\r\n /**\r\n * Indicates whether the dropdown has an automatic close behavior.\r\n * @default 'default'\r\n */\r\n public readonly autoClose = input<DropdownAutoCloseBehavior>('default');\r\n\r\n /**\r\n * Dropdown size\r\n * @default 'default'\r\n */\r\n public readonly size = input<DropdownSize>('default');\r\n\r\n protected _directionCssClass = computed(() => {\r\n switch (this.placement()) {\r\n case 'top':\r\n return 'dropup';\r\n case 'start':\r\n return 'dropstart';\r\n case 'end':\r\n return 'dropend';\r\n case 'bottom':\r\n default:\r\n return undefined;\r\n }\r\n })\r\n\r\n constructor() {\r\n this._renderer.addClass(this._el.nativeElement, 'btn-group');\r\n // this._scrollStrategy = this._overlay.scrollStrategies.block();\r\n }\r\n\r\n /**\r\n * Toggle the dropdown open or closed.\r\n */\r\n public toggle() {\r\n this.open.set(!this.open());\r\n }\r\n\r\n @HostListener('document:click', ['$event'])\r\n private _onDocumentClick(e: MouseEvent) {\r\n const splitButtonClicked = e.target === this._splitButton?.nativeElement;\r\n const mainButtonClicked = e.target === this._mainButton?.nativeElement;\r\n const toggleClicked = this.split() ? splitButtonClicked : mainButtonClicked;\r\n const dropdownClicked = splitButtonClicked || mainButtonClicked;\r\n const menuClicked = this._dropdownMenu.elementRef.nativeElement.contains(e.target);\r\n const outsideClicked = !dropdownClicked && !menuClicked;\r\n\r\n if (this.open()) {\r\n if (toggleClicked) {\r\n this.open.set(false);\r\n return;\r\n }\r\n\r\n switch (this.autoClose()) {\r\n case 'default':\r\n this.open.set(false);\r\n break;\r\n case 'outside':\r\n if (outsideClicked || mainButtonClicked) {\r\n this.open.set(false);\r\n }\r\n break;\r\n case 'inside':\r\n if (menuClicked) {\r\n this.open.set(false);\r\n }\r\n break;\r\n case 'manual':\r\n break;\r\n }\r\n } else {\r\n if (toggleClicked) {\r\n this.open.set(true);\r\n }\r\n }\r\n }\r\n}\r\n","<button #mainButton\r\n [class]=\"cssClass()\"\r\n [class.dropdown-toggle]=\"!split()\"\r\n [class.btn-sm]=\"size() == 'small'\"\r\n [class.btn-lg]=\"size() == 'large'\"\r\n type=\"button\">\r\n <ng-content></ng-content>\r\n</button>\r\n\r\n@if(split()) {\r\n<button #splitButton\r\n type=\"button\"\r\n [class]=\"splitCssClass()\"\r\n [class.btn-sm]=\"size() == 'small'\"\r\n [class.btn-lg]=\"size() == 'large'\"\r\n class=\"dropdown-toggle dropdown-toggle-split\">\r\n <span class=\"visually-hidden\">Toggle Dropdown</span>\r\n</button>\r\n}\r\n\r\n<ng-template cdkConnectedOverlay\r\n [cdkConnectedOverlayOrigin]=\"_el.nativeElement\"\r\n [cdkConnectedOverlayOpen]=\"open()\"\r\n [cdkConnectedOverlayPush]=\"false\"\r\n [cdkConnectedOverlayFlexibleDimensions]=\"true\">\r\n <ng-content select=\"ng0-dropdown-menu\"></ng-content>\r\n</ng-template>\r\n\r\n<style>\r\n :host {\r\n display: inline-block;\r\n }\r\n</style>","import { Component, ElementRef, Renderer2, ChangeDetectionStrategy, inject, input, HostListener } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'ng0-dropdown-header',\r\n exportAs: 'ng0DropdownItem',\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n template: `<h6 class=\"dropdown-header\"><ng-content></ng-content></h6>`,\r\n})\r\nexport class DropdownHeaderComponent {\r\n}\r\n","import { Component, ChangeDetectionStrategy, input, booleanAttribute, HostListener } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule } from '@angular/router';\r\n\r\n/**\r\n * A link item within a dropdown menu.\r\n * This component is used to create a navigable link inside a dropdown.\r\n */\r\n@Component({\r\n selector: 'ng0-dropdown-link',\r\n exportAs: 'ng0DropdownLink',\r\n standalone: true,\r\n templateUrl: './dropdown-link.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n CommonModule,\r\n RouterModule\r\n ],\r\n})\r\nexport class DropdownLinkComponent {\r\n /**\r\n * The link or URL to navigate to when the dropdown item is clicked.\r\n */\r\n public readonly link = input.required<string | string[] | undefined>();\r\n\r\n /**\r\n * The router link active class to apply when the link is active.\r\n */\r\n public readonly active = input<string | string[]>('');\r\n\r\n /**\r\n * Specifies where to open the linked document.\r\n */\r\n public readonly target = input<'_self' | '_blank' | '_parent' | '_top' | undefined>(undefined);\r\n\r\n /**\r\n * Whether the dropdown link is disabled.\r\n */\r\n public readonly disabled = input(false, { transform: booleanAttribute });\r\n\r\n\r\n @HostListener('click', ['$event'])\r\n private _onClick(e: MouseEvent) {\r\n if (this.disabled()) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n }\r\n}\r\n","<a class=\"dropdown-item\" [routerLink]=\"link()\" [target]=\"target()\" [routerLinkActive]=\"active()\" [class.disabled]=\"disabled()\" [attr.aria-disabled]=\"disabled()\">\r\n <ng-content></ng-content>\r\n</a>","import { NgModule } from '@angular/core';\r\nimport { DropdownItemComponent } from './dropdown-item.component';\r\nimport { DropdownComponent } from './dropdown.component';\r\nimport { DropdownHeaderComponent } from './dropdown-header.component';\r\nimport { DropdownDividerComponent } from './dropdown-divider.component';\r\nimport { DropdownMenuComponent } from './dropdown-menu.component';\r\nimport { DropdownLinkComponent } from './dropdown-link.component';\r\n\r\n\r\nconst Items = [\r\n DropdownComponent,\r\n DropdownMenuComponent,\r\n DropdownItemComponent,\r\n DropdownLinkComponent,\r\n DropdownHeaderComponent,\r\n DropdownDividerComponent\r\n]\r\n\r\n@NgModule({\r\n imports: Items,\r\n exports: Items\r\n})\r\nexport class DropdownModule { }\r\n","\r\n/**\r\n * Defines the possible values for the dropdown auto-close behavior.\r\n * \r\n * 'default': The dropdown will close when clicking inside or outside the menu.\r\n * 'inside': The dropdown will close only when clicking inside the menu.\r\n * 'outside': The dropdown will close only when clicking outside the menu.\r\n * 'manual': The dropdown will not close automatically; it must be closed programmatically.\r\n */\r\nexport type DropdownAutoCloseBehavior = 'default' | 'inside' | 'outside' | 'manual';\r\n\r\n/**\r\n * \r\n */\r\nexport type DropdownSize = 'default' | 'small' | 'large';\r\n\r\n\r\n// export type DropdownToggleTriggerMode = 'click' | 'hover' | 'focus';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
@@ -47,6 +47,7 @@ class FormFieldComponent {
47
47
  ngAfterContentInit() {
48
48
  this._hasRequiredControl.set(this._isControlRequired());
49
49
  if (this._ngControl) {
50
+ this._status.set(this._ngControl.status);
50
51
  this._ngControl?.statusChanges?.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(change => {
51
52
  this._status.set(change);
52
53
  this._updateControlStyles();
@@ -69,10 +70,10 @@ class FormFieldComponent {
69
70
  _onFocusOut() {
70
71
  this._updateControlStyles();
71
72
  }
72
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: FormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
73
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.1", type: FormFieldComponent, isStandalone: true, selector: "ng0-form-field, ng0-field", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, hint: { classPropertyName: "hint", publicName: "hint", isSignal: true, isRequired: false, transformFunction: null }, showErrors: { classPropertyName: "showErrors", publicName: "showErrors", isSignal: true, isRequired: false, transformFunction: null }, showRequired: { classPropertyName: "showRequired", publicName: "showRequired", isSignal: true, isRequired: false, transformFunction: null }, showSubscripts: { classPropertyName: "showSubscripts", publicName: "showSubscripts", isSignal: true, isRequired: false, transformFunction: null }, inputGroup: { classPropertyName: "inputGroup", publicName: "inputGroup", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "focusout": "_onFocusOut()" }, properties: { "class.ng0-form-field-required": "_hasRequiredControl()" } }, queries: [{ propertyName: "_ngControlElement", first: true, predicate: NgControl, descendants: true, read: ElementRef, static: true }, { propertyName: "_ngControl", first: true, predicate: NgControl, descendants: true }], exportAs: ["ng0FormField"], ngImport: i0, template: "@let errorText = _errorText();\r\n@let showRequiredIndicator = showRequired();\r\n\r\n@if(label()) {\r\n<label class=\"ng0-form-field-label\">\r\n {{label()}}\r\n @if((showRequiredIndicator === true || (showRequiredIndicator == undefined && _hasRequiredControl()))) {\r\n <span class=\"ng0-form-field-required-indicator\">*</span>\r\n }\r\n</label>\r\n}\r\n\r\n@if(inputGroup()) {\r\n<div class=\"input-group\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n</div>\r\n}@else {\r\n<ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n}\r\n\r\n<ng-template #contentTemplate>\r\n <ng-content></ng-content>\r\n</ng-template>\r\n\r\n@if(showSubscripts()) {\r\n<div class=\"ng0-form-field-subscript\">\r\n @if(showErrors() && errorText && _ngControl?.touched) {\r\n <small class=\"ng0-form-field-error text-danger\" animate.enter=\"ng0-form-field-fadein\">\r\n {{errorText}}\r\n </small>\r\n }@else if(hint()) {\r\n <small class=\"ng0-form-field-hint\">\r\n {{hint()}}\r\n </small>\r\n }\r\n</div>\r\n}", styles: [":host{display:block}.ng0-form-field-subscript{min-height:1.5em;line-height:1.5em;text-align:justify;position:relative}.ng0-form-field-subscript .ng0-form-field-error{position:absolute;will-change:transform}.ng0-form-field-subscript .ng0-form-field-hint{position:absolute}.ng0-form-field-fadein{animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
73
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: FormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
74
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: FormFieldComponent, isStandalone: true, selector: "ng0-form-field, ng0-field", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, hint: { classPropertyName: "hint", publicName: "hint", isSignal: true, isRequired: false, transformFunction: null }, showErrors: { classPropertyName: "showErrors", publicName: "showErrors", isSignal: true, isRequired: false, transformFunction: null }, showRequired: { classPropertyName: "showRequired", publicName: "showRequired", isSignal: true, isRequired: false, transformFunction: null }, showSubscripts: { classPropertyName: "showSubscripts", publicName: "showSubscripts", isSignal: true, isRequired: false, transformFunction: null }, inputGroup: { classPropertyName: "inputGroup", publicName: "inputGroup", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "focusout": "_onFocusOut()" }, properties: { "class.ng0-form-field-required": "_hasRequiredControl()" } }, queries: [{ propertyName: "_ngControlElement", first: true, predicate: NgControl, descendants: true, read: ElementRef, static: true }, { propertyName: "_ngControl", first: true, predicate: NgControl, descendants: true }], exportAs: ["ng0FormField"], ngImport: i0, template: "@let errorText = _errorText();\r\n@let showRequiredIndicator = showRequired();\r\n\r\n@if(label()) {\r\n<label class=\"ng0-form-field-label\">\r\n {{label()}}\r\n @if((showRequiredIndicator === true || (showRequiredIndicator == undefined && _hasRequiredControl()))) {\r\n <span class=\"ng0-form-field-required-indicator\">*</span>\r\n }\r\n</label>\r\n}\r\n\r\n@if(inputGroup()) {\r\n<div class=\"input-group\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n</div>\r\n}@else {\r\n<ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n}\r\n\r\n<ng-template #contentTemplate>\r\n <ng-content></ng-content>\r\n</ng-template>\r\n\r\n@if(showSubscripts()) {\r\n<div class=\"ng0-form-field-subscript\">\r\n @if(showErrors() && errorText && _ngControl?.touched) {\r\n <small class=\"ng0-form-field-error text-danger\" animate.enter=\"ng0-form-field-fadein\">\r\n {{errorText}}\r\n </small>\r\n }@else if(hint()) {\r\n <small class=\"ng0-form-field-hint\">\r\n {{hint()}}\r\n </small>\r\n }\r\n</div>\r\n}", styles: [":host{display:block}.ng0-form-field-subscript{min-height:1.5em;line-height:1.5em;text-align:justify;position:relative}.ng0-form-field-subscript .ng0-form-field-error{position:absolute;will-change:transform}.ng0-form-field-subscript .ng0-form-field-hint{position:absolute}.ng0-form-field-fadein{animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
74
75
  }
75
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: FormFieldComponent, decorators: [{
76
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: FormFieldComponent, decorators: [{
76
77
  type: Component,
77
78
  args: [{ selector: 'ng0-form-field, ng0-field', exportAs: 'ng0FormField', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule], host: {
78
79
  '[class.ng0-form-field-required]': '_hasRequiredControl()',
@@ -83,19 +84,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
83
84
  }], _ngControl: [{
84
85
  type: ContentChild,
85
86
  args: [NgControl]
86
- }], _onFocusOut: [{
87
+ }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], hint: [{ type: i0.Input, args: [{ isSignal: true, alias: "hint", required: false }] }], showErrors: [{ type: i0.Input, args: [{ isSignal: true, alias: "showErrors", required: false }] }], showRequired: [{ type: i0.Input, args: [{ isSignal: true, alias: "showRequired", required: false }] }], showSubscripts: [{ type: i0.Input, args: [{ isSignal: true, alias: "showSubscripts", required: false }] }], inputGroup: [{ type: i0.Input, args: [{ isSignal: true, alias: "inputGroup", required: false }] }], _onFocusOut: [{
87
88
  type: HostListener,
88
89
  args: ['focusout']
89
90
  }] } });
90
91
 
91
92
  class FormFieldModule {
92
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: FormFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
93
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.2.1", ngImport: i0, type: FormFieldModule, imports: [CommonModule,
93
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: FormFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
94
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.9", ngImport: i0, type: FormFieldModule, imports: [CommonModule,
94
95
  FormFieldComponent], exports: [FormFieldComponent] });
95
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: FormFieldModule, imports: [CommonModule,
96
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: FormFieldModule, imports: [CommonModule,
96
97
  FormFieldComponent] });
97
98
  }
98
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: FormFieldModule, decorators: [{
99
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: FormFieldModule, decorators: [{
99
100
  type: NgModule,
100
101
  args: [{
101
102
  imports: [
@@ -1 +1 @@
1
- {"version":3,"file":"bootkit-ng0-components-form-field.mjs","sources":["../../../projects/ng0/components/form-field/form-field.component.ts","../../../projects/ng0/components/form-field/form-field.component.html","../../../projects/ng0/components/form-field/form-field.module.ts","../../../projects/ng0/components/form-field/bootkit-ng0-components-form-field.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\r\nimport { booleanAttribute, ChangeDetectionStrategy, computed, DestroyRef, ElementRef, HostListener, inject, input, Renderer2, signal, ViewEncapsulation } from '@angular/core';\r\nimport { Component, ContentChild, AfterContentInit } from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { FormControl, NgControl, NgForm } from '@angular/forms';\r\nimport { LocalizationService } from '@bootkit/ng0/localization';\r\n\r\n@Component({\r\n selector: 'ng0-form-field, ng0-field',\r\n exportAs: 'ng0FormField',\r\n templateUrl: './form-field.component.html',\r\n styleUrls: ['./form-field.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [CommonModule],\r\n host: {\r\n '[class.ng0-form-field-required]': '_hasRequiredControl()',\r\n }\r\n})\r\nexport class FormFieldComponent implements AfterContentInit {\r\n @ContentChild(NgControl, { static: true, read: ElementRef }) private _ngControlElement?: ElementRef;\r\n private _destroyRef = inject(DestroyRef);\r\n private _renderer = inject(Renderer2);\r\n private _localizationService = inject(LocalizationService);\r\n // private _form = inject(NgForm, { optional: true });\r\n @ContentChild(NgControl) protected _ngControl?: NgControl;\r\n protected _status = signal('');\r\n protected _hasRequiredControl = signal(false);\r\n protected _errorText = computed<string | undefined>(() =>\r\n this._status() === 'INVALID' ?\r\n this._localizationService.get()?.translateFirstError(this._ngControl!.errors, 'Invalid')?.text :\r\n undefined\r\n );\r\n\r\n /**\r\n * The label text for the form field.\r\n */\r\n public readonly label = input<string>();\r\n\r\n /**\r\n * The hint text to display below the form field.\r\n */\r\n public readonly hint = input<string>();\r\n\r\n /**\r\n * If true, the form-field will show validation errors.\r\n */\r\n public readonly showErrors = input(true, { transform: booleanAttribute });\r\n\r\n /**\r\n * If undefined, the indicator will be shown based on the control's required state.\r\n * If true, the form-field will show a required indicator (*) next to the label (regardless of the control's required state).\r\n * If false, the required indicator will not be shown (regardless of the control's required state).\r\n */\r\n public readonly showRequired = input<boolean | undefined>(undefined);\r\n\r\n /**\r\n * If true, the form-field will show subscripts (e.g. hints, errors) for the field label.\r\n */\r\n public readonly showSubscripts = input(true, { transform: booleanAttribute });\r\n\r\n /**\r\n * If true, the form-field will be rendered inside a \".input-group\" element.\r\n */\r\n public readonly inputGroup = input(true, { transform: booleanAttribute });\r\n\r\n ngAfterContentInit(): void {\r\n this._hasRequiredControl.set(this._isControlRequired());\r\n\r\n if (this._ngControl) {\r\n this._ngControl?.statusChanges?.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(change => {\r\n this._status.set(change);\r\n this._updateControlStyles();\r\n });\r\n }\r\n }\r\n\r\n private _isControlRequired(): boolean {\r\n const validator = this._ngControl?.validator || this._ngControl?.control?.validator;\r\n const errors = validator && validator(new FormControl(null));\r\n return errors != null && errors['required'] === true;\r\n }\r\n\r\n private _updateControlStyles() {\r\n if (this._ngControl?.touched) {\r\n let invalid = this._status() === 'INVALID';\r\n let elm = this._ngControlElement!.nativeElement;\r\n this._renderer.addClass(elm, invalid ? 'is-invalid' : 'is-valid');\r\n this._renderer.removeClass(elm, invalid ? 'is-valid' : 'is-invalid');\r\n }\r\n }\r\n\r\n @HostListener('focusout')\r\n private _onFocusOut() {\r\n this._updateControlStyles();\r\n }\r\n}\r\n","@let errorText = _errorText();\r\n@let showRequiredIndicator = showRequired();\r\n\r\n@if(label()) {\r\n<label class=\"ng0-form-field-label\">\r\n {{label()}}\r\n @if((showRequiredIndicator === true || (showRequiredIndicator == undefined && _hasRequiredControl()))) {\r\n <span class=\"ng0-form-field-required-indicator\">*</span>\r\n }\r\n</label>\r\n}\r\n\r\n@if(inputGroup()) {\r\n<div class=\"input-group\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n</div>\r\n}@else {\r\n<ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n}\r\n\r\n<ng-template #contentTemplate>\r\n <ng-content></ng-content>\r\n</ng-template>\r\n\r\n@if(showSubscripts()) {\r\n<div class=\"ng0-form-field-subscript\">\r\n @if(showErrors() && errorText && _ngControl?.touched) {\r\n <small class=\"ng0-form-field-error text-danger\" animate.enter=\"ng0-form-field-fadein\">\r\n {{errorText}}\r\n </small>\r\n }@else if(hint()) {\r\n <small class=\"ng0-form-field-hint\">\r\n {{hint()}}\r\n </small>\r\n }\r\n</div>\r\n}","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormFieldComponent } from './form-field.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormFieldComponent,\r\n ],\r\n exports: [\r\n FormFieldComponent,\r\n ]\r\n})\r\nexport class FormFieldModule { }\r\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":"bootkit-ng0-components-form-field.mjs","sources":["../../../projects/ng0/components/form-field/form-field.component.ts","../../../projects/ng0/components/form-field/form-field.component.html","../../../projects/ng0/components/form-field/form-field.module.ts","../../../projects/ng0/components/form-field/bootkit-ng0-components-form-field.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\r\nimport { booleanAttribute, ChangeDetectionStrategy, computed, DestroyRef, ElementRef, HostListener, inject, input, Renderer2, signal, ViewEncapsulation } from '@angular/core';\r\nimport { Component, ContentChild, AfterContentInit } from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { FormControl, NgControl, NgForm } from '@angular/forms';\r\nimport { LocalizationService } from '@bootkit/ng0/localization';\r\n\r\n@Component({\r\n selector: 'ng0-form-field, ng0-field',\r\n exportAs: 'ng0FormField',\r\n templateUrl: './form-field.component.html',\r\n styleUrls: ['./form-field.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [CommonModule],\r\n host: {\r\n '[class.ng0-form-field-required]': '_hasRequiredControl()',\r\n }\r\n})\r\nexport class FormFieldComponent implements AfterContentInit {\r\n @ContentChild(NgControl, { static: true, read: ElementRef }) private _ngControlElement?: ElementRef;\r\n private _destroyRef = inject(DestroyRef);\r\n private _renderer = inject(Renderer2);\r\n private _localizationService = inject(LocalizationService);\r\n // private _form = inject(NgForm, { optional: true });\r\n @ContentChild(NgControl) protected _ngControl?: NgControl;\r\n protected _status = signal<string | null>('');\r\n protected _hasRequiredControl = signal(false);\r\n protected _errorText = computed<string | undefined>(() =>\r\n this._status() === 'INVALID' ?\r\n this._localizationService.get()?.translateFirstError(this._ngControl!.errors, 'Invalid')?.text :\r\n undefined\r\n );\r\n\r\n /**\r\n * The label text for the form field.\r\n */\r\n public readonly label = input<string>();\r\n\r\n /**\r\n * The hint text to display below the form field.\r\n */\r\n public readonly hint = input<string>();\r\n\r\n /**\r\n * If true, the form-field will show validation errors.\r\n */\r\n public readonly showErrors = input(true, { transform: booleanAttribute });\r\n\r\n /**\r\n * If undefined, the indicator will be shown based on the control's required state.\r\n * If true, the form-field will show a required indicator (*) next to the label (regardless of the control's required state).\r\n * If false, the required indicator will not be shown (regardless of the control's required state).\r\n */\r\n public readonly showRequired = input<boolean | undefined>(undefined);\r\n\r\n /**\r\n * If true, the form-field will show subscripts (e.g. hints, errors) for the field label.\r\n */\r\n public readonly showSubscripts = input(true, { transform: booleanAttribute });\r\n\r\n /**\r\n * If true, the form-field will be rendered inside a \".input-group\" element.\r\n */\r\n public readonly inputGroup = input(true, { transform: booleanAttribute });\r\n\r\n ngAfterContentInit(): void {\r\n this._hasRequiredControl.set(this._isControlRequired());\r\n\r\n if (this._ngControl) {\r\n this._status.set(this._ngControl.status); \r\n this._ngControl?.statusChanges?.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(change => {\r\n this._status.set(change);\r\n this._updateControlStyles();\r\n });\r\n }\r\n }\r\n\r\n private _isControlRequired(): boolean {\r\n const validator = this._ngControl?.validator || this._ngControl?.control?.validator;\r\n const errors = validator && validator(new FormControl(null));\r\n return errors != null && errors['required'] === true;\r\n }\r\n\r\n private _updateControlStyles() {\r\n if (this._ngControl?.touched) {\r\n let invalid = this._status() === 'INVALID';\r\n let elm = this._ngControlElement!.nativeElement;\r\n this._renderer.addClass(elm, invalid ? 'is-invalid' : 'is-valid');\r\n this._renderer.removeClass(elm, invalid ? 'is-valid' : 'is-invalid');\r\n }\r\n }\r\n\r\n @HostListener('focusout')\r\n private _onFocusOut() {\r\n this._updateControlStyles();\r\n }\r\n}\r\n","@let errorText = _errorText();\r\n@let showRequiredIndicator = showRequired();\r\n\r\n@if(label()) {\r\n<label class=\"ng0-form-field-label\">\r\n {{label()}}\r\n @if((showRequiredIndicator === true || (showRequiredIndicator == undefined && _hasRequiredControl()))) {\r\n <span class=\"ng0-form-field-required-indicator\">*</span>\r\n }\r\n</label>\r\n}\r\n\r\n@if(inputGroup()) {\r\n<div class=\"input-group\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n</div>\r\n}@else {\r\n<ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n}\r\n\r\n<ng-template #contentTemplate>\r\n <ng-content></ng-content>\r\n</ng-template>\r\n\r\n@if(showSubscripts()) {\r\n<div class=\"ng0-form-field-subscript\">\r\n @if(showErrors() && errorText && _ngControl?.touched) {\r\n <small class=\"ng0-form-field-error text-danger\" animate.enter=\"ng0-form-field-fadein\">\r\n {{errorText}}\r\n </small>\r\n }@else if(hint()) {\r\n <small class=\"ng0-form-field-hint\">\r\n {{hint()}}\r\n </small>\r\n }\r\n</div>\r\n}","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormFieldComponent } from './form-field.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormFieldComponent,\r\n ],\r\n exports: [\r\n FormFieldComponent,\r\n ]\r\n})\r\nexport class FormFieldModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}