@bootkit/ng0 0.0.0-alpha.39 → 0.0.0-alpha.40

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 (67) hide show
  1. package/fesm2022/bootkit-ng0-common.mjs +3 -3
  2. package/fesm2022/bootkit-ng0-common.mjs.map +1 -1
  3. package/fesm2022/bootkit-ng0-components-accordion.mjs +10 -10
  4. package/fesm2022/bootkit-ng0-components-accordion.mjs.map +1 -1
  5. package/fesm2022/bootkit-ng0-components-backdrop.mjs +3 -3
  6. package/fesm2022/bootkit-ng0-components-backdrop.mjs.map +1 -1
  7. package/fesm2022/bootkit-ng0-components-button.mjs +7 -7
  8. package/fesm2022/bootkit-ng0-components-button.mjs.map +1 -1
  9. package/fesm2022/bootkit-ng0-components-card.mjs +10 -10
  10. package/fesm2022/bootkit-ng0-components-card.mjs.map +1 -1
  11. package/fesm2022/bootkit-ng0-components-code.mjs +6 -6
  12. package/fesm2022/bootkit-ng0-components-code.mjs.map +1 -1
  13. package/fesm2022/bootkit-ng0-components-collapse.mjs +10 -10
  14. package/fesm2022/bootkit-ng0-components-collapse.mjs.map +1 -1
  15. package/fesm2022/bootkit-ng0-components-confirmation.mjs +13 -13
  16. package/fesm2022/bootkit-ng0-components-confirmation.mjs.map +1 -1
  17. package/fesm2022/bootkit-ng0-components-dropdown.mjs +22 -22
  18. package/fesm2022/bootkit-ng0-components-dropdown.mjs.map +1 -1
  19. package/fesm2022/bootkit-ng0-components-form-field.mjs +7 -7
  20. package/fesm2022/bootkit-ng0-components-form-field.mjs.map +1 -1
  21. package/fesm2022/bootkit-ng0-components-list.mjs +10 -10
  22. package/fesm2022/bootkit-ng0-components-list.mjs.map +1 -1
  23. package/fesm2022/bootkit-ng0-components-modal.mjs +7 -7
  24. package/fesm2022/bootkit-ng0-components-modal.mjs.map +1 -1
  25. package/fesm2022/bootkit-ng0-components-nav.mjs +19 -19
  26. package/fesm2022/bootkit-ng0-components-nav.mjs.map +1 -1
  27. package/fesm2022/bootkit-ng0-components-offcanvas.mjs +7 -7
  28. package/fesm2022/bootkit-ng0-components-offcanvas.mjs.map +1 -1
  29. package/fesm2022/bootkit-ng0-components-pagination.mjs +7 -7
  30. package/fesm2022/bootkit-ng0-components-pagination.mjs.map +1 -1
  31. package/fesm2022/bootkit-ng0-components-popover.mjs +6 -6
  32. package/fesm2022/bootkit-ng0-components-popover.mjs.map +1 -1
  33. package/fesm2022/bootkit-ng0-components-select.mjs +7 -7
  34. package/fesm2022/bootkit-ng0-components-select.mjs.map +1 -1
  35. package/fesm2022/bootkit-ng0-components-sidenav.mjs +13 -13
  36. package/fesm2022/bootkit-ng0-components-sidenav.mjs.map +1 -1
  37. package/fesm2022/bootkit-ng0-components-stepper.mjs +10 -10
  38. package/fesm2022/bootkit-ng0-components-stepper.mjs.map +1 -1
  39. package/fesm2022/bootkit-ng0-components-table.mjs +13 -13
  40. package/fesm2022/bootkit-ng0-components-table.mjs.map +1 -1
  41. package/fesm2022/bootkit-ng0-components-toast.mjs +6 -6
  42. package/fesm2022/bootkit-ng0-components-toast.mjs.map +1 -1
  43. package/fesm2022/bootkit-ng0-components-tooltip.mjs +6 -6
  44. package/fesm2022/bootkit-ng0-components-tooltip.mjs.map +1 -1
  45. package/fesm2022/bootkit-ng0-components-vertical-menu.mjs +19 -19
  46. package/fesm2022/bootkit-ng0-components-vertical-menu.mjs.map +1 -1
  47. package/fesm2022/bootkit-ng0-form.mjs +25 -25
  48. package/fesm2022/bootkit-ng0-form.mjs.map +1 -1
  49. package/fesm2022/bootkit-ng0-http.mjs +3 -3
  50. package/fesm2022/bootkit-ng0-http.mjs.map +1 -1
  51. package/fesm2022/bootkit-ng0-layouts-layout1.mjs +19 -19
  52. package/fesm2022/bootkit-ng0-layouts-layout1.mjs.map +1 -1
  53. package/fesm2022/bootkit-ng0-localization.mjs +34 -34
  54. package/fesm2022/bootkit-ng0-localization.mjs.map +1 -1
  55. package/fesm2022/bootkit-ng0-platform-browser.mjs +10 -10
  56. package/fesm2022/bootkit-ng0-platform-browser.mjs.map +1 -1
  57. package/fesm2022/bootkit-ng0-routing.mjs +3 -3
  58. package/fesm2022/bootkit-ng0-routing.mjs.map +1 -1
  59. package/fesm2022/bootkit-ng0-script.mjs +3 -3
  60. package/fesm2022/bootkit-ng0-script.mjs.map +1 -1
  61. package/fesm2022/bootkit-ng0-security.mjs +13 -13
  62. package/fesm2022/bootkit-ng0-security.mjs.map +1 -1
  63. package/fesm2022/bootkit-ng0-utils.mjs +75 -0
  64. package/fesm2022/bootkit-ng0-utils.mjs.map +1 -0
  65. package/package.json +24 -20
  66. package/platform/browser/index.d.ts +1 -1
  67. package/utils/index.d.ts +42 -0
@@ -95,10 +95,10 @@ class ListItem {
95
95
  return this.isActive() ? 0 : -1;
96
96
  }
97
97
  }
98
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: ListItem, deps: [], target: i0.ɵɵFactoryTarget.Directive });
99
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.9", type: ListItem, isStandalone: true, selector: "ng0-list-item", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.id": "id()", "attr.tabIndex": "_getTabIndex()" } }, exportAs: ["ng0ListItem"], ngImport: i0 });
98
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: ListItem, deps: [], target: i0.ɵɵFactoryTarget.Directive });
99
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.11", type: ListItem, isStandalone: true, selector: "ng0-list-item", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.id": "id()", "attr.tabIndex": "_getTabIndex()" } }, exportAs: ["ng0ListItem"], ngImport: i0 });
100
100
  }
101
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: ListItem, decorators: [{
101
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: ListItem, decorators: [{
102
102
  type: Directive,
103
103
  args: [{
104
104
  selector: 'ng0-list-item',
@@ -497,14 +497,14 @@ class ListComponent {
497
497
  this._activeItem()?.focus();
498
498
  }
499
499
  }
500
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: ListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
501
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: ListComponent, isStandalone: true, selector: "ng0-list, ng0-select-list", inputs: { source: { classPropertyName: "source", publicName: "source", isSignal: true, isRequired: true, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, showSelectionIndicator: { classPropertyName: "showSelectionIndicator", publicName: "showSelectionIndicator", isSignal: true, isRequired: false, transformFunction: null }, compareBy: { classPropertyName: "compareBy", publicName: "compareBy", isSignal: true, isRequired: false, transformFunction: null }, formatBy: { classPropertyName: "formatBy", publicName: "formatBy", isSignal: true, isRequired: false, transformFunction: null }, writeBy: { classPropertyName: "writeBy", publicName: "writeBy", isSignal: true, isRequired: false, transformFunction: null }, filterBy: { classPropertyName: "filterBy", publicName: "filterBy", isSignal: true, isRequired: false, transformFunction: null }, trackBy: { classPropertyName: "trackBy", publicName: "trackBy", isSignal: true, isRequired: false, transformFunction: null }, itemClass: { classPropertyName: "itemClass", publicName: "itemClass", isSignal: true, isRequired: false, transformFunction: null }, focusMode: { classPropertyName: "focusMode", publicName: "focusMode", isSignal: true, isRequired: false, transformFunction: null }, idGenerator: { classPropertyName: "idGenerator", publicName: "idGenerator", isSignal: true, isRequired: false, transformFunction: null }, itemTemplate: { classPropertyName: "itemTemplate", publicName: "itemTemplate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemSelect: "itemSelect" }, host: { listeners: { "blur": "_onHostBlur()", "keydown": "_onKeydown($event)" }, properties: { "class.ng0-list-loading": "source().isLoading()", "attr.aria-activedescendant": "_hostAriaActiveDescendant()", "attr.disabled": "_isDisabled() ? \"\" : undefined", "attr.aria-disabled": "_isDisabled() ? \"\" : undefined", "attr.tabindex": "_hostTabIndex()" } }, providers: [{
500
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: ListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
501
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.11", type: ListComponent, isStandalone: true, selector: "ng0-list, ng0-select-list", inputs: { source: { classPropertyName: "source", publicName: "source", isSignal: true, isRequired: true, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, showSelectionIndicator: { classPropertyName: "showSelectionIndicator", publicName: "showSelectionIndicator", isSignal: true, isRequired: false, transformFunction: null }, compareBy: { classPropertyName: "compareBy", publicName: "compareBy", isSignal: true, isRequired: false, transformFunction: null }, formatBy: { classPropertyName: "formatBy", publicName: "formatBy", isSignal: true, isRequired: false, transformFunction: null }, writeBy: { classPropertyName: "writeBy", publicName: "writeBy", isSignal: true, isRequired: false, transformFunction: null }, filterBy: { classPropertyName: "filterBy", publicName: "filterBy", isSignal: true, isRequired: false, transformFunction: null }, trackBy: { classPropertyName: "trackBy", publicName: "trackBy", isSignal: true, isRequired: false, transformFunction: null }, itemClass: { classPropertyName: "itemClass", publicName: "itemClass", isSignal: true, isRequired: false, transformFunction: null }, focusMode: { classPropertyName: "focusMode", publicName: "focusMode", isSignal: true, isRequired: false, transformFunction: null }, idGenerator: { classPropertyName: "idGenerator", publicName: "idGenerator", isSignal: true, isRequired: false, transformFunction: null }, itemTemplate: { classPropertyName: "itemTemplate", publicName: "itemTemplate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemSelect: "itemSelect" }, host: { listeners: { "blur": "_onHostBlur()", "keydown": "_onKeydown($event)" }, properties: { "class.ng0-list-loading": "source().isLoading()", "attr.aria-activedescendant": "_hostAriaActiveDescendant()", "attr.disabled": "_isDisabled() ? \"\" : undefined", "attr.aria-disabled": "_isDisabled() ? \"\" : undefined", "attr.tabindex": "_hostTabIndex()" } }, providers: [{
502
502
  provide: NG_VALUE_ACCESSOR,
503
503
  useExisting: forwardRef(() => ListComponent),
504
504
  multi: true
505
505
  }], queries: [{ propertyName: "_itemTemplate", first: true, predicate: TemplateRef, descendants: true }], viewQueries: [{ propertyName: "listItems", predicate: ListItem, descendants: true }], exportAs: ["ng0List"], ngImport: i0, template: "@let filter = filterBy();\r\n@let formatter = formatBy();\r\n\r\n@for (item of _sourceItems(); track trackBy()($index, item)) {\r\n\r\n<ng0-list-item #listItem=\"ng0ListItem\"\r\n *ng0If=\"!filter || filter(item)\"\r\n [value]=\"item\"\r\n [id]=\"idGenerator()?.(item)\"\r\n [class.active]=\"isActive(listItem)\"\r\n [class.selected]=\"isSelected(item)\"\r\n [ngClass]=\"itemClass()?.(item)\"\r\n (click)=\"_handleUserSelection(listItem, $index);\">\r\n\r\n @if(itemTemplate() || _itemTemplate) {\r\n @let template = itemTemplate() || _itemTemplate;\r\n <ng-container *ngTemplateOutlet=\"template; context: { $implicit: {item: listItem, value: item}}\" />\r\n } @else {\r\n @if(showSelectionIndicator()) {\r\n <input class=\"form-check-input ng0-selection-indicator\"\r\n tabindex=\"-1\"\r\n [checked]=\"isSelected(item)\"\r\n [attr.type]=\"multiple() ? 'checkbox' : 'radio'\">\r\n }\r\n\r\n {{formatter(item)}}\r\n }\r\n</ng0-list-item>\r\n}\r\n\r\n@if(_showLoadingSppiner()) {\r\n@if(_sourceItems().length == 0) {\r\n<div style=\"text-align: center; padding: 0.5rem 0;\">\r\n <ng-container *ngTemplateOutlet=\"spinner\"></ng-container>\r\n</div>\r\n}@else {\r\n<div class=\"ng0-list-loading-cover\">\r\n <ng-container *ngTemplateOutlet=\"spinner\"></ng-container>\r\n</div>\r\n}\r\n}\r\n\r\n<ng-template #spinner>\r\n <div class=\"spinner-border spinner-sm text-primary ng0-list-loading-indicator\" role=\"status\">\r\n <span class=\"visually-hidden\">Loading...</span>\r\n </div>\r\n</ng-template>", styles: ["ng0-list:not(.ng0-list-unstyled){display:block;position:relative;-webkit-user-select:none;user-select:none;border:1px solid var(--bs-border-color);border-radius:var(--bs-border-radius)}ng0-list:not(.ng0-list-unstyled):focus,ng0-list:not(.ng0-list-unstyled):focus-visible{outline:0;box-shadow:var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0) var(--bs-focus-ring-width) var(--bs-focus-ring-color)}ng0-list:not(.ng0-list-unstyled)[disabled],ng0-list:not(.ng0-list-unstyled).disabled{opacity:.5;pointer-events:none}ng0-list:not(.ng0-list-unstyled) .ng0-list-loading-cover{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#ffffffb3;display:flex;align-items:center;justify-content:center}ng0-list:not(.ng0-list-unstyled) ng0-list-item{display:flex}ng0-list:not(.ng0-list-unstyled) ng0-list-item .ng0-selection-indicator{margin-inline-end:.5rem}ng0-list:not(.ng0-list-unstyled) ng0-list-item:focus,ng0-list:not(.ng0-list-unstyled) ng0-list-item:focus-visible{outline:0;box-shadow:var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0) var(--bs-focus-ring-width) var(--bs-focus-ring-color)}ng0-list:not(.ng0-list-unstyled) ng0-list-item{padding:.5rem}ng0-list:not(.ng0-list-unstyled) ng0-list-item.selected{background-color:var(--bs-primary);color:var(--bs-light)}ng0-list:not(.ng0-list-unstyled) ng0-list-item.active:not(.selected){background-color:color-mix(in srgb,var(--bs-primary),white 85%)}ng0-list:not(.ng0-list-unstyled) ng0-list-item:hover:not(.selected):not(.disabled):not(.active){background-color:color-mix(in srgb,var(--bs-primary),white 95%)}ng0-list:not(.ng0-list-unstyled) ng0-list-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}ng0-list:not(.ng0-list-unstyled) ng0-list-item:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: IfDirective, selector: "[ng0If]", inputs: ["ng0If"], exportAs: ["ng0If"] }, { kind: "directive", type: ListItem, selector: "ng0-list-item", inputs: ["value", "id"], exportAs: ["ng0ListItem"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
506
506
  }
507
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: ListComponent, decorators: [{
507
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: ListComponent, decorators: [{
508
508
  type: Component,
509
509
  args: [{ selector: 'ng0-list, ng0-select-list', exportAs: 'ng0List', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [
510
510
  CommonModule,
@@ -542,11 +542,11 @@ const Items = [ListComponent];
542
542
  * List module.
543
543
  */
544
544
  class ListModule {
545
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: ListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
546
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.9", ngImport: i0, type: ListModule, imports: [ListComponent], exports: [ListComponent] });
547
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: ListModule, imports: [Items] });
545
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: ListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
546
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.11", ngImport: i0, type: ListModule, imports: [ListComponent], exports: [ListComponent] });
547
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: ListModule, imports: [Items] });
548
548
  }
549
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: ListModule, decorators: [{
549
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: ListModule, decorators: [{
550
550
  type: NgModule,
551
551
  args: [{
552
552
  imports: Items,
@@ -1 +1 @@
1
- {"version":3,"file":"bootkit-ng0-components-list.mjs","sources":["../../../projects/ng0/components/list/list-item.ts","../../../projects/ng0/components/list/list.component.ts","../../../projects/ng0/components/list/list.component.html","../../../projects/ng0/components/list/list.module.ts","../../../projects/ng0/components/list/public-api.ts","../../../projects/ng0/components/list/bootkit-ng0-components-list.ts"],"sourcesContent":["import { inject, input, ElementRef, Directive } from '@angular/core';\r\nimport { ListComponent } from './list.component';\r\n\r\n/**\r\n * ListItem represents an individual item within a ListComponent.\r\n */\r\n@Directive({\r\n selector: 'ng0-list-item',\r\n exportAs: 'ng0ListItem',\r\n standalone: true,\r\n host: {\r\n '[attr.id]': 'id()',\r\n '[attr.tabIndex]': '_getTabIndex()'\r\n }\r\n})\r\nexport class ListItem {\r\n /**\r\n * The value associated with the item. This can be of any type.\r\n */\r\n public readonly value = input<any>();\r\n\r\n /**\r\n * The id of the item.\r\n */\r\n public readonly id = input<any>();\r\n\r\n /**\r\n * Reference to the parent list component\r\n */\r\n public readonly list = inject(ListComponent);\r\n\r\n /**\r\n * Reference to the host element\r\n */\r\n public readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\r\n\r\n /**\r\n * Indicates whether the item is active.\r\n * @returns True if the item is active, false otherwise.\r\n */\r\n public isActive() {\r\n return this.list.isActive(this);\r\n }\r\n\r\n /**\r\n * Indicates whether the item is selected.\r\n * @returns True if the item is selected, false otherwise.\r\n */\r\n public isSelected() {\r\n return this.list.isSelected(this.value());\r\n }\r\n\r\n /**\r\n * Selects the item.\r\n * @returns \r\n */\r\n public select() {\r\n return this.list.select(this.value());\r\n }\r\n\r\n /**\r\n * Deselects the item.\r\n * @returns \r\n */\r\n public deselect() {\r\n this.list.deselect(this);\r\n }\r\n\r\n /**\r\n * Toggles the selection state of the item.\r\n * @returns void\r\n */\r\n public toggle() {\r\n this.list.toggle(this.value());\r\n }\r\n\r\n // /**\r\n // * Indicates whether the item is disabled. Default is false.\r\n // */\r\n // public readonly disabled = input(false, { transform: booleanAttribute });\r\n\r\n /**\r\n * Scrolls the item into view within its parent container.\r\n * @param position The vertical alignment of the item after scrolling.\r\n * Can be 'start', 'center', 'end', or 'nearest'.\r\n * Default is 'nearest'.\r\n * @param behavior The scrolling behavior.\r\n */\r\n public scrollIntoView(position?: ScrollLogicalPosition, behavior?: ScrollBehavior) {\r\n this.elementRef.nativeElement.scrollIntoView({ block: position, behavior: behavior });\r\n }\r\n\r\n /**\r\n * Sets focus on the item.\r\n */\r\n public focus() {\r\n this.elementRef.nativeElement.focus();\r\n }\r\n\r\n private _getTabIndex() {\r\n let focus = this.list.focusMode();\r\n // if (this.list.isDisabled()) {\r\n // return undefined;\r\n // }\r\n\r\n if (focus == 'none' || focus == 'activeDescendant') {\r\n return undefined;\r\n } else {\r\n // focus: roving\r\n return this.isActive() ? 0 : -1\r\n }\r\n }\r\n}\r\n","import { Component, ElementRef, input, signal, HostListener, inject, forwardRef, TemplateRef, ContentChild, ChangeDetectionStrategy, booleanAttribute, ChangeDetectorRef, effect, EventEmitter, Output, computed, ViewChildren, QueryList, ViewEncapsulation, ViewContainerRef, HostBinding, OnInit, AfterViewInit, untracked, model, Renderer2, EnvironmentInjector, runInInjectionContext } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { dataSourceAttribute, DataRequest, DataSource, DataSourceLike } from '@bootkit/ng0/data';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { objectFormatterAttribute, defaultFormatter, LocalizationService } from '@bootkit/ng0/localization';\r\nimport { ListItem } from \"./list-item\";\r\nimport {\r\n CssClassAttribute, defaultEqualityComparer, equalityComparerAttribute, valueWriterAttribute,\r\n defaultValueWriter, filterPredicateAttribute, noopFilter, IdGeneratorAttribute, TrackByAttribute, trackByIndex, IfDirective\r\n} from '@bootkit/ng0/common';\r\n\r\n/** \r\n * ListComponent is a versatile component that displays a list of items with support for single or multiple selection,\r\n * custom item templates, filtering, and keyboard navigation.\r\n */\r\n@Component({\r\n selector: 'ng0-list, ng0-select-list',\r\n exportAs: 'ng0List',\r\n templateUrl: './list.component.html',\r\n styleUrl: './list.component.scss',\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n imports: [\r\n CommonModule,\r\n IfDirective,\r\n ListItem\r\n ],\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ListComponent),\r\n multi: true\r\n }],\r\n host: {\r\n '[class.ng0-list-loading]': 'source().isLoading()',\r\n '[attr.aria-activedescendant]': '_hostAriaActiveDescendant()',\r\n '[attr.disabled]': '_isDisabled() ? \"\" : undefined',\r\n '[attr.aria-disabled]': '_isDisabled() ? \"\" : undefined',\r\n '[attr.tabindex]': '_hostTabIndex()',\r\n }\r\n})\r\nexport class ListComponent implements ControlValueAccessor {\r\n private _localizationService = inject(LocalizationService);\r\n private _changeDetector = inject(ChangeDetectorRef);\r\n private _injector = inject(EnvironmentInjector);\r\n private _changeCallback?: (value: any) => void;\r\n private _touchCallback?: () => void;\r\n private readonly _selectedItems = new Set<any>();\r\n\r\n protected readonly _sourceItems = signal<any[]>([]);\r\n @ContentChild(TemplateRef) protected _itemTemplate?: TemplateRef<any>;\r\n protected readonly _activeItem = signal<ListItem | undefined>(undefined);\r\n protected readonly _isDisabled = signal<boolean>(false);\r\n private readonly _value = signal<any>(undefined);\r\n private _renderer = inject(Renderer2);\r\n\r\n /**\r\n * A list of all visible list items.\r\n */\r\n @ViewChildren(ListItem) public readonly listItems?: QueryList<ListItem>;\r\n\r\n /**\r\n * Reference to the host element\r\n */\r\n public elementRef = inject<ElementRef<HTMLElement>>(ElementRef<HTMLElement>);\r\n\r\n /**\r\n * The data source for the select component.\r\n * This can be an array of data, a function that returns an observable of data,\r\n * or an instance of DataSource.\r\n */\r\n public readonly source = input.required<DataSource<any>, DataSourceLike<any>>({\r\n transform: v => dataSourceAttribute(v)\r\n });\r\n\r\n /** \r\n * Indicates whether multi selection is enabled or not.\r\n */\r\n public readonly multiple = input(false, {\r\n transform: booleanAttribute\r\n });\r\n\r\n /**\r\n * Indicates whether to show selection indicator (checkbox/radio) next to each item.\r\n * Default is false.\r\n */\r\n public readonly showSelectionIndicator = input(false, {\r\n transform: booleanAttribute\r\n });\r\n\r\n /**\r\n * A comparer to compare items for selection.\r\n * Default uses strict equality (===).\r\n */\r\n public readonly compareBy = input(defaultEqualityComparer, {\r\n transform: equalityComparerAttribute\r\n });\r\n\r\n /**\r\n * A fromatter to convert each item to a string for display.\r\n * Default converts the item to a string using its toString method.\r\n */\r\n public readonly formatBy = input(defaultFormatter, {\r\n transform: objectFormatterAttribute(this._injector)\r\n });\r\n\r\n /**\r\n * Custom value writer to extract the value of any object while writing values.\r\n */\r\n public readonly writeBy = input(defaultValueWriter, {\r\n transform: valueWriterAttribute\r\n });\r\n\r\n /**\r\n * Custom filter function to filter items.\r\n * Default is a noop filter that does not filter any items.\r\n */\r\n public readonly filterBy = input(noopFilter, {\r\n transform: filterPredicateAttribute\r\n });\r\n\r\n /**\r\n * A function that uniquely identifies each item in the list.\r\n * If set to a function, it will be called with the index and item as arguments to generate the unique id.\r\n * If set to a string, it will be used as the property name to extract the unique id from each item.\r\n * Two predifined trackBy options are available:\r\n * - '@index': uses the index of the item as its unique id.\r\n * - '@item': uses the item itself as its unique id.\r\n * @example\r\n * trackBy=\"@index\"\r\n * trackBy=\"@item\"\r\n * trackBy=\"objectFieldName\"\r\n * [trackBy]=\"customTrackByFunction\"\r\n * @default trackByIndex\r\n */\r\n public readonly trackBy = input(trackByIndex, {\r\n transform: TrackByAttribute\r\n });\r\n\r\n /**\r\n * CSS class or classes to apply to the list container.\r\n * Default is undefined.\r\n */\r\n public readonly itemClass = input(undefined, {\r\n transform: CssClassAttribute\r\n });\r\n\r\n /**\r\n * Defines the focus behavior of the list component.\r\n * - 'none': No keyboard interaction is possible. The list cannot be focused.\r\n * - 'roving': Roving tabindex is enabled. The list can be focused and the active item is tabbable.\r\n * - 'activeDescendant': The list can be focused, but no item is tabbable. The active item is indicated using aria-activedescendant.\r\n * @default 'activeDescendant'.\r\n */\r\n public readonly focusMode = input<'none' | 'roving' | 'activeDescendant'>('activeDescendant');\r\n\r\n /**\r\n * A function that generates unique ids for each item in the list.\r\n * If set to a function, it will be called with the item as an argument to generate the id.\r\n * If set to undefined, no ids will be generated for the items.\r\n * @default undefined\r\n */\r\n public readonly idGenerator = input(undefined, {\r\n transform: IdGeneratorAttribute\r\n });\r\n\r\n /**\r\n * Event emitted when the selection state of an item changes by user interaction.\r\n */\r\n @Output() public readonly itemSelect = new EventEmitter<ListItemSelectEvent>();\r\n\r\n /**\r\n * The template to use for each item in the list.\r\n */\r\n public readonly itemTemplate = input<TemplateRef<any> | undefined>(undefined);\r\n\r\n constructor() {\r\n effect(() => {\r\n this.source().load(new DataRequest()).subscribe(res => {\r\n untracked(() => {\r\n this._activeItem.set(undefined);\r\n this._sourceItems.set(res.data);\r\n this._updateSelectedItems();\r\n this._activateFirstSelectedItem();\r\n });\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * Indicates whether an item is active.\r\n * @param item \r\n * @returns \r\n */\r\n public isActive(item: ListItem): boolean {\r\n return item === this._activeItem();\r\n }\r\n\r\n /**\r\n * Indicates whether the given value is selected.\r\n * @param item \r\n * @returns \r\n */\r\n public isSelected(value: any): boolean {\r\n return this._selectedItems.has(value);\r\n }\r\n\r\n /**\r\n * Selects the given value.\r\n * @param item \r\n */\r\n public select(value: any): void {\r\n if (this.multiple()) {\r\n if (!this._selectedItems.has(value)) {\r\n this._selectedItems.add(value);\r\n this._updateValue();\r\n this._changeCallback?.(this._value())\r\n }\r\n } else {\r\n this._selectedItems.clear();\r\n this._selectedItems.add(value);\r\n this._updateValue();\r\n this._changeCallback?.(this._value())\r\n }\r\n }\r\n\r\n /**\r\n * Deselects the given value.\r\n * @param item \r\n */\r\n public deselect(value: any): void {\r\n this._selectedItems.delete(value);\r\n this._updateValue();\r\n this._changeCallback?.(this._value());\r\n }\r\n\r\n /**\r\n * Toggles the selection state of the given value.\r\n * @param item\r\n */\r\n public toggle(value: any): void {\r\n if (this.isSelected(value)) {\r\n this.deselect(value);\r\n } else {\r\n this.select(value);\r\n }\r\n }\r\n\r\n /**\r\n * Deselects all items in the list.\r\n */\r\n public deselectAll(): void {\r\n this._selectedItems.clear();\r\n this._updateValue();\r\n this._changeCallback?.(this._value());\r\n }\r\n\r\n /**\r\n * Selects all items in the list. Only applicable in multiple selection mode.\r\n */\r\n public selectAll(): void {\r\n if (this.multiple()) {\r\n this._selectedItems.clear();\r\n this._sourceItems().forEach(i => this._selectedItems.add(i));\r\n this._updateValue();\r\n this._changeCallback?.(this._value());\r\n } else {\r\n throw new Error('selectAll is only available in multiple selection mode.');\r\n }\r\n }\r\n\r\n /**\r\n * Gets the current value(s) of the list.\r\n */\r\n public get value(): ReadonlyArray<any | any[]> {\r\n return this._value();\r\n }\r\n\r\n /**\r\n * Gets the current items in the list.\r\n */\r\n public get items(): ReadonlyArray<any[]> {\r\n return this._sourceItems();\r\n }\r\n\r\n writeValue(value: any): void {\r\n if (this.multiple()) {\r\n if (value === null || value === undefined) {\r\n value = [];\r\n } else if (!Array.isArray(value)) {\r\n throw Error('invalid value. Expected an array in multiple selection mode.');\r\n }\r\n }\r\n\r\n this._value.set(value);\r\n this._updateSelectedItems();\r\n this._activateFirstSelectedItem();\r\n this._changeDetector.markForCheck();\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this._changeCallback = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this._touchCallback = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this._isDisabled.set(isDisabled);\r\n }\r\n\r\n protected _handleUserSelection(item: ListItem, index: number) {\r\n let value = item.value();\r\n\r\n if (this.multiple()) {\r\n this.toggle(value);\r\n } else {\r\n this.select(value);\r\n }\r\n\r\n this._activeItem.set(item);\r\n this.itemSelect.emit({ value: item.value(), item: item, list: this });\r\n this._changeDetector.detectChanges();\r\n }\r\n\r\n protected _showLoadingSppiner = computed(() => {\r\n let source = this.source();\r\n return source.isLoading() && source.type == 'remote';\r\n });\r\n\r\n private _updateSelectedItems(): void {\r\n let value = this._value();\r\n let compareBy = this.compareBy();\r\n let findAndSelect = (v: any) => {\r\n let index = this._sourceItems().findIndex(i => compareBy(i, v));\r\n if (index > -1) {\r\n let item = this._sourceItems().at(index)!;\r\n this._selectedItems.add(item);\r\n }\r\n\r\n return index;\r\n };\r\n\r\n this._selectedItems.clear();\r\n if (this.multiple()) {\r\n if (Array.isArray(value)) {\r\n (value as any[]).forEach(v => findAndSelect(v));\r\n }\r\n } else {\r\n findAndSelect(value);\r\n }\r\n }\r\n\r\n private _activateFirstSelectedItem(): void {\r\n if (this._selectedItems.size > 0) {\r\n let value = this._selectedItems.values().next().value;\r\n let item = this.listItems?.find(i => i.value() === value);\r\n if (item) {\r\n this._activeItem.set(item);\r\n }\r\n }\r\n }\r\n\r\n private _updateValue(): void {\r\n let value: any;\r\n\r\n if (this.multiple()) {\r\n let values: any[] = [];\r\n this._selectedItems.forEach(v => {\r\n values.push(this.writeBy()(v));\r\n });\r\n value = values;\r\n } else {\r\n if (this._selectedItems.size > 0) {\r\n let first = this._selectedItems.values().next().value;\r\n value = this.writeBy()(first);\r\n } else {\r\n value = undefined;\r\n }\r\n }\r\n\r\n this._value.set(value);\r\n }\r\n\r\n private _hostAriaActiveDescendant = computed(() => {\r\n if (this._activeItem() && !this._isDisabled() && this.focusMode() == 'activeDescendant') {\r\n return this._activeItem()!.id();\r\n }\r\n\r\n return undefined;\r\n });\r\n\r\n private _hostTabIndex = computed(() => {\r\n let isDisabled = this._isDisabled(); // track the value\r\n let activeItem = this._activeItem(); // track the value\r\n\r\n if (isDisabled) {\r\n return undefined;\r\n }\r\n\r\n switch (this.focusMode()) {\r\n case 'none':\r\n return undefined;\r\n case 'activeDescendant':\r\n return 0;\r\n case 'roving':\r\n\r\n return activeItem ? undefined : 0;\r\n }\r\n });\r\n\r\n @HostListener('blur')\r\n private _onHostBlur() {\r\n this._touchCallback?.();\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n private _onKeydown(e: KeyboardEvent) {\r\n if (this._isDisabled())\r\n return;\r\n\r\n let listLength = this.listItems!.length;\r\n if (listLength == 0) {\r\n return;\r\n }\r\n\r\n let activeItem = this._activeItem();\r\n let activeItemindex = activeItem ? this.listItems!.toArray().findIndex(i => i === activeItem) : -1;\r\n\r\n switch (e.key) {\r\n case 'ArrowDown':\r\n if (activeItemindex < listLength - 1) {\r\n const next = this.listItems!.get(activeItemindex + 1);\r\n this._activeItem.set(next);\r\n }\r\n e.preventDefault();\r\n break;\r\n case 'ArrowUp':\r\n if (activeItemindex == -1) {\r\n const last = this.listItems!.get(listLength - 1);\r\n this._activeItem.set(last);\r\n } else if (activeItemindex > 0) {\r\n const previous = this.listItems!.get(activeItemindex - 1);\r\n this._activeItem.set(previous);\r\n }\r\n e.preventDefault();\r\n break;\r\n case 'Enter':\r\n if (activeItem) {\r\n this._handleUserSelection(activeItem, activeItemindex);\r\n }\r\n break;\r\n case 'Home':\r\n const first = this.listItems!.get(0);\r\n this._activeItem.set(first);\r\n e.preventDefault();\r\n break;\r\n case 'End':\r\n const last = this.listItems!.get(listLength - 1);\r\n this._activeItem.set(last);\r\n e.preventDefault();\r\n break;\r\n }\r\n\r\n this._activeItem()?.scrollIntoView('nearest', listLength > 100 ? 'instant' : 'smooth');\r\n if (this.focusMode() === 'roving') {\r\n this._activeItem()?.focus();\r\n }\r\n }\r\n}\r\n\r\n\r\n/**\r\n * Event emitted when the selection state of the list changes by user interaction.\r\n */\r\nexport interface ListItemSelectEvent {\r\n /**\r\n * The value of the item that was selected or deselected.\r\n */\r\n value: any;\r\n\r\n /**\r\n * The item that was selected or deselected.\r\n */\r\n readonly item: ListItem;\r\n\r\n /**\r\n * The list component that emitted the event.\r\n */\r\n readonly list: ListComponent\r\n}\r\n","@let filter = filterBy();\r\n@let formatter = formatBy();\r\n\r\n@for (item of _sourceItems(); track trackBy()($index, item)) {\r\n\r\n<ng0-list-item #listItem=\"ng0ListItem\"\r\n *ng0If=\"!filter || filter(item)\"\r\n [value]=\"item\"\r\n [id]=\"idGenerator()?.(item)\"\r\n [class.active]=\"isActive(listItem)\"\r\n [class.selected]=\"isSelected(item)\"\r\n [ngClass]=\"itemClass()?.(item)\"\r\n (click)=\"_handleUserSelection(listItem, $index);\">\r\n\r\n @if(itemTemplate() || _itemTemplate) {\r\n @let template = itemTemplate() || _itemTemplate;\r\n <ng-container *ngTemplateOutlet=\"template; context: { $implicit: {item: listItem, value: item}}\" />\r\n } @else {\r\n @if(showSelectionIndicator()) {\r\n <input class=\"form-check-input ng0-selection-indicator\"\r\n tabindex=\"-1\"\r\n [checked]=\"isSelected(item)\"\r\n [attr.type]=\"multiple() ? 'checkbox' : 'radio'\">\r\n }\r\n\r\n {{formatter(item)}}\r\n }\r\n</ng0-list-item>\r\n}\r\n\r\n@if(_showLoadingSppiner()) {\r\n@if(_sourceItems().length == 0) {\r\n<div style=\"text-align: center; padding: 0.5rem 0;\">\r\n <ng-container *ngTemplateOutlet=\"spinner\"></ng-container>\r\n</div>\r\n}@else {\r\n<div class=\"ng0-list-loading-cover\">\r\n <ng-container *ngTemplateOutlet=\"spinner\"></ng-container>\r\n</div>\r\n}\r\n}\r\n\r\n<ng-template #spinner>\r\n <div class=\"spinner-border spinner-sm text-primary ng0-list-loading-indicator\" role=\"status\">\r\n <span class=\"visually-hidden\">Loading...</span>\r\n </div>\r\n</ng-template>","import { NgModule } from '@angular/core';\r\nimport { ListComponent } from './list.component';\r\n\r\nconst Items = [ListComponent]\r\n\r\n/**\r\n * List module.\r\n */\r\n@NgModule({\r\n imports: Items,\r\n exports: Items\r\n})\r\nexport class ListModule { }\r\n","// export * from './types';\r\nexport * from './list.component';\r\nexport * from './list.module';\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-list.mjs","sources":["../../../projects/ng0/components/list/list-item.ts","../../../projects/ng0/components/list/list.component.ts","../../../projects/ng0/components/list/list.component.html","../../../projects/ng0/components/list/list.module.ts","../../../projects/ng0/components/list/public-api.ts","../../../projects/ng0/components/list/bootkit-ng0-components-list.ts"],"sourcesContent":["import { inject, input, ElementRef, Directive } from '@angular/core';\r\nimport { ListComponent } from './list.component';\r\n\r\n/**\r\n * ListItem represents an individual item within a ListComponent.\r\n */\r\n@Directive({\r\n selector: 'ng0-list-item',\r\n exportAs: 'ng0ListItem',\r\n standalone: true,\r\n host: {\r\n '[attr.id]': 'id()',\r\n '[attr.tabIndex]': '_getTabIndex()'\r\n }\r\n})\r\nexport class ListItem {\r\n /**\r\n * The value associated with the item. This can be of any type.\r\n */\r\n public readonly value = input<any>();\r\n\r\n /**\r\n * The id of the item.\r\n */\r\n public readonly id = input<any>();\r\n\r\n /**\r\n * Reference to the parent list component\r\n */\r\n public readonly list = inject(ListComponent);\r\n\r\n /**\r\n * Reference to the host element\r\n */\r\n public readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\r\n\r\n /**\r\n * Indicates whether the item is active.\r\n * @returns True if the item is active, false otherwise.\r\n */\r\n public isActive() {\r\n return this.list.isActive(this);\r\n }\r\n\r\n /**\r\n * Indicates whether the item is selected.\r\n * @returns True if the item is selected, false otherwise.\r\n */\r\n public isSelected() {\r\n return this.list.isSelected(this.value());\r\n }\r\n\r\n /**\r\n * Selects the item.\r\n * @returns \r\n */\r\n public select() {\r\n return this.list.select(this.value());\r\n }\r\n\r\n /**\r\n * Deselects the item.\r\n * @returns \r\n */\r\n public deselect() {\r\n this.list.deselect(this);\r\n }\r\n\r\n /**\r\n * Toggles the selection state of the item.\r\n * @returns void\r\n */\r\n public toggle() {\r\n this.list.toggle(this.value());\r\n }\r\n\r\n // /**\r\n // * Indicates whether the item is disabled. Default is false.\r\n // */\r\n // public readonly disabled = input(false, { transform: booleanAttribute });\r\n\r\n /**\r\n * Scrolls the item into view within its parent container.\r\n * @param position The vertical alignment of the item after scrolling.\r\n * Can be 'start', 'center', 'end', or 'nearest'.\r\n * Default is 'nearest'.\r\n * @param behavior The scrolling behavior.\r\n */\r\n public scrollIntoView(position?: ScrollLogicalPosition, behavior?: ScrollBehavior) {\r\n this.elementRef.nativeElement.scrollIntoView({ block: position, behavior: behavior });\r\n }\r\n\r\n /**\r\n * Sets focus on the item.\r\n */\r\n public focus() {\r\n this.elementRef.nativeElement.focus();\r\n }\r\n\r\n private _getTabIndex() {\r\n let focus = this.list.focusMode();\r\n // if (this.list.isDisabled()) {\r\n // return undefined;\r\n // }\r\n\r\n if (focus == 'none' || focus == 'activeDescendant') {\r\n return undefined;\r\n } else {\r\n // focus: roving\r\n return this.isActive() ? 0 : -1\r\n }\r\n }\r\n}\r\n","import { Component, ElementRef, input, signal, HostListener, inject, forwardRef, TemplateRef, ContentChild, ChangeDetectionStrategy, booleanAttribute, ChangeDetectorRef, effect, EventEmitter, Output, computed, ViewChildren, QueryList, ViewEncapsulation, ViewContainerRef, HostBinding, OnInit, AfterViewInit, untracked, model, Renderer2, EnvironmentInjector, runInInjectionContext } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { dataSourceAttribute, DataRequest, DataSource, DataSourceLike } from '@bootkit/ng0/data';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { objectFormatterAttribute, defaultFormatter, LocalizationService } from '@bootkit/ng0/localization';\r\nimport { ListItem } from \"./list-item\";\r\nimport {\r\n CssClassAttribute, defaultEqualityComparer, equalityComparerAttribute, valueWriterAttribute,\r\n defaultValueWriter, filterPredicateAttribute, noopFilter, IdGeneratorAttribute, TrackByAttribute, trackByIndex, IfDirective\r\n} from '@bootkit/ng0/common';\r\n\r\n/** \r\n * ListComponent is a versatile component that displays a list of items with support for single or multiple selection,\r\n * custom item templates, filtering, and keyboard navigation.\r\n */\r\n@Component({\r\n selector: 'ng0-list, ng0-select-list',\r\n exportAs: 'ng0List',\r\n templateUrl: './list.component.html',\r\n styleUrl: './list.component.scss',\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n imports: [\r\n CommonModule,\r\n IfDirective,\r\n ListItem\r\n ],\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ListComponent),\r\n multi: true\r\n }],\r\n host: {\r\n '[class.ng0-list-loading]': 'source().isLoading()',\r\n '[attr.aria-activedescendant]': '_hostAriaActiveDescendant()',\r\n '[attr.disabled]': '_isDisabled() ? \"\" : undefined',\r\n '[attr.aria-disabled]': '_isDisabled() ? \"\" : undefined',\r\n '[attr.tabindex]': '_hostTabIndex()',\r\n }\r\n})\r\nexport class ListComponent implements ControlValueAccessor {\r\n private _localizationService = inject(LocalizationService);\r\n private _changeDetector = inject(ChangeDetectorRef);\r\n private _injector = inject(EnvironmentInjector);\r\n private _changeCallback?: (value: any) => void;\r\n private _touchCallback?: () => void;\r\n private readonly _selectedItems = new Set<any>();\r\n\r\n protected readonly _sourceItems = signal<any[]>([]);\r\n @ContentChild(TemplateRef) protected _itemTemplate?: TemplateRef<any>;\r\n protected readonly _activeItem = signal<ListItem | undefined>(undefined);\r\n protected readonly _isDisabled = signal<boolean>(false);\r\n private readonly _value = signal<any>(undefined);\r\n private _renderer = inject(Renderer2);\r\n\r\n /**\r\n * A list of all visible list items.\r\n */\r\n @ViewChildren(ListItem) public readonly listItems?: QueryList<ListItem>;\r\n\r\n /**\r\n * Reference to the host element\r\n */\r\n public elementRef = inject<ElementRef<HTMLElement>>(ElementRef<HTMLElement>);\r\n\r\n /**\r\n * The data source for the select component.\r\n * This can be an array of data, a function that returns an observable of data,\r\n * or an instance of DataSource.\r\n */\r\n public readonly source = input.required<DataSource<any>, DataSourceLike<any>>({\r\n transform: v => dataSourceAttribute(v)\r\n });\r\n\r\n /** \r\n * Indicates whether multi selection is enabled or not.\r\n */\r\n public readonly multiple = input(false, {\r\n transform: booleanAttribute\r\n });\r\n\r\n /**\r\n * Indicates whether to show selection indicator (checkbox/radio) next to each item.\r\n * Default is false.\r\n */\r\n public readonly showSelectionIndicator = input(false, {\r\n transform: booleanAttribute\r\n });\r\n\r\n /**\r\n * A comparer to compare items for selection.\r\n * Default uses strict equality (===).\r\n */\r\n public readonly compareBy = input(defaultEqualityComparer, {\r\n transform: equalityComparerAttribute\r\n });\r\n\r\n /**\r\n * A fromatter to convert each item to a string for display.\r\n * Default converts the item to a string using its toString method.\r\n */\r\n public readonly formatBy = input(defaultFormatter, {\r\n transform: objectFormatterAttribute(this._injector)\r\n });\r\n\r\n /**\r\n * Custom value writer to extract the value of any object while writing values.\r\n */\r\n public readonly writeBy = input(defaultValueWriter, {\r\n transform: valueWriterAttribute\r\n });\r\n\r\n /**\r\n * Custom filter function to filter items.\r\n * Default is a noop filter that does not filter any items.\r\n */\r\n public readonly filterBy = input(noopFilter, {\r\n transform: filterPredicateAttribute\r\n });\r\n\r\n /**\r\n * A function that uniquely identifies each item in the list.\r\n * If set to a function, it will be called with the index and item as arguments to generate the unique id.\r\n * If set to a string, it will be used as the property name to extract the unique id from each item.\r\n * Two predifined trackBy options are available:\r\n * - '@index': uses the index of the item as its unique id.\r\n * - '@item': uses the item itself as its unique id.\r\n * @example\r\n * trackBy=\"@index\"\r\n * trackBy=\"@item\"\r\n * trackBy=\"objectFieldName\"\r\n * [trackBy]=\"customTrackByFunction\"\r\n * @default trackByIndex\r\n */\r\n public readonly trackBy = input(trackByIndex, {\r\n transform: TrackByAttribute\r\n });\r\n\r\n /**\r\n * CSS class or classes to apply to the list container.\r\n * Default is undefined.\r\n */\r\n public readonly itemClass = input(undefined, {\r\n transform: CssClassAttribute\r\n });\r\n\r\n /**\r\n * Defines the focus behavior of the list component.\r\n * - 'none': No keyboard interaction is possible. The list cannot be focused.\r\n * - 'roving': Roving tabindex is enabled. The list can be focused and the active item is tabbable.\r\n * - 'activeDescendant': The list can be focused, but no item is tabbable. The active item is indicated using aria-activedescendant.\r\n * @default 'activeDescendant'.\r\n */\r\n public readonly focusMode = input<'none' | 'roving' | 'activeDescendant'>('activeDescendant');\r\n\r\n /**\r\n * A function that generates unique ids for each item in the list.\r\n * If set to a function, it will be called with the item as an argument to generate the id.\r\n * If set to undefined, no ids will be generated for the items.\r\n * @default undefined\r\n */\r\n public readonly idGenerator = input(undefined, {\r\n transform: IdGeneratorAttribute\r\n });\r\n\r\n /**\r\n * Event emitted when the selection state of an item changes by user interaction.\r\n */\r\n @Output() public readonly itemSelect = new EventEmitter<ListItemSelectEvent>();\r\n\r\n /**\r\n * The template to use for each item in the list.\r\n */\r\n public readonly itemTemplate = input<TemplateRef<any> | undefined>(undefined);\r\n\r\n constructor() {\r\n effect(() => {\r\n this.source().load(new DataRequest()).subscribe(res => {\r\n untracked(() => {\r\n this._activeItem.set(undefined);\r\n this._sourceItems.set(res.data);\r\n this._updateSelectedItems();\r\n this._activateFirstSelectedItem();\r\n });\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * Indicates whether an item is active.\r\n * @param item \r\n * @returns \r\n */\r\n public isActive(item: ListItem): boolean {\r\n return item === this._activeItem();\r\n }\r\n\r\n /**\r\n * Indicates whether the given value is selected.\r\n * @param item \r\n * @returns \r\n */\r\n public isSelected(value: any): boolean {\r\n return this._selectedItems.has(value);\r\n }\r\n\r\n /**\r\n * Selects the given value.\r\n * @param item \r\n */\r\n public select(value: any): void {\r\n if (this.multiple()) {\r\n if (!this._selectedItems.has(value)) {\r\n this._selectedItems.add(value);\r\n this._updateValue();\r\n this._changeCallback?.(this._value())\r\n }\r\n } else {\r\n this._selectedItems.clear();\r\n this._selectedItems.add(value);\r\n this._updateValue();\r\n this._changeCallback?.(this._value())\r\n }\r\n }\r\n\r\n /**\r\n * Deselects the given value.\r\n * @param item \r\n */\r\n public deselect(value: any): void {\r\n this._selectedItems.delete(value);\r\n this._updateValue();\r\n this._changeCallback?.(this._value());\r\n }\r\n\r\n /**\r\n * Toggles the selection state of the given value.\r\n * @param item\r\n */\r\n public toggle(value: any): void {\r\n if (this.isSelected(value)) {\r\n this.deselect(value);\r\n } else {\r\n this.select(value);\r\n }\r\n }\r\n\r\n /**\r\n * Deselects all items in the list.\r\n */\r\n public deselectAll(): void {\r\n this._selectedItems.clear();\r\n this._updateValue();\r\n this._changeCallback?.(this._value());\r\n }\r\n\r\n /**\r\n * Selects all items in the list. Only applicable in multiple selection mode.\r\n */\r\n public selectAll(): void {\r\n if (this.multiple()) {\r\n this._selectedItems.clear();\r\n this._sourceItems().forEach(i => this._selectedItems.add(i));\r\n this._updateValue();\r\n this._changeCallback?.(this._value());\r\n } else {\r\n throw new Error('selectAll is only available in multiple selection mode.');\r\n }\r\n }\r\n\r\n /**\r\n * Gets the current value(s) of the list.\r\n */\r\n public get value(): ReadonlyArray<any | any[]> {\r\n return this._value();\r\n }\r\n\r\n /**\r\n * Gets the current items in the list.\r\n */\r\n public get items(): ReadonlyArray<any[]> {\r\n return this._sourceItems();\r\n }\r\n\r\n writeValue(value: any): void {\r\n if (this.multiple()) {\r\n if (value === null || value === undefined) {\r\n value = [];\r\n } else if (!Array.isArray(value)) {\r\n throw Error('invalid value. Expected an array in multiple selection mode.');\r\n }\r\n }\r\n\r\n this._value.set(value);\r\n this._updateSelectedItems();\r\n this._activateFirstSelectedItem();\r\n this._changeDetector.markForCheck();\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this._changeCallback = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this._touchCallback = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this._isDisabled.set(isDisabled);\r\n }\r\n\r\n protected _handleUserSelection(item: ListItem, index: number) {\r\n let value = item.value();\r\n\r\n if (this.multiple()) {\r\n this.toggle(value);\r\n } else {\r\n this.select(value);\r\n }\r\n\r\n this._activeItem.set(item);\r\n this.itemSelect.emit({ value: item.value(), item: item, list: this });\r\n this._changeDetector.detectChanges();\r\n }\r\n\r\n protected _showLoadingSppiner = computed(() => {\r\n let source = this.source();\r\n return source.isLoading() && source.type == 'remote';\r\n });\r\n\r\n private _updateSelectedItems(): void {\r\n let value = this._value();\r\n let compareBy = this.compareBy();\r\n let findAndSelect = (v: any) => {\r\n let index = this._sourceItems().findIndex(i => compareBy(i, v));\r\n if (index > -1) {\r\n let item = this._sourceItems().at(index)!;\r\n this._selectedItems.add(item);\r\n }\r\n\r\n return index;\r\n };\r\n\r\n this._selectedItems.clear();\r\n if (this.multiple()) {\r\n if (Array.isArray(value)) {\r\n (value as any[]).forEach(v => findAndSelect(v));\r\n }\r\n } else {\r\n findAndSelect(value);\r\n }\r\n }\r\n\r\n private _activateFirstSelectedItem(): void {\r\n if (this._selectedItems.size > 0) {\r\n let value = this._selectedItems.values().next().value;\r\n let item = this.listItems?.find(i => i.value() === value);\r\n if (item) {\r\n this._activeItem.set(item);\r\n }\r\n }\r\n }\r\n\r\n private _updateValue(): void {\r\n let value: any;\r\n\r\n if (this.multiple()) {\r\n let values: any[] = [];\r\n this._selectedItems.forEach(v => {\r\n values.push(this.writeBy()(v));\r\n });\r\n value = values;\r\n } else {\r\n if (this._selectedItems.size > 0) {\r\n let first = this._selectedItems.values().next().value;\r\n value = this.writeBy()(first);\r\n } else {\r\n value = undefined;\r\n }\r\n }\r\n\r\n this._value.set(value);\r\n }\r\n\r\n private _hostAriaActiveDescendant = computed(() => {\r\n if (this._activeItem() && !this._isDisabled() && this.focusMode() == 'activeDescendant') {\r\n return this._activeItem()!.id();\r\n }\r\n\r\n return undefined;\r\n });\r\n\r\n private _hostTabIndex = computed(() => {\r\n let isDisabled = this._isDisabled(); // track the value\r\n let activeItem = this._activeItem(); // track the value\r\n\r\n if (isDisabled) {\r\n return undefined;\r\n }\r\n\r\n switch (this.focusMode()) {\r\n case 'none':\r\n return undefined;\r\n case 'activeDescendant':\r\n return 0;\r\n case 'roving':\r\n\r\n return activeItem ? undefined : 0;\r\n }\r\n });\r\n\r\n @HostListener('blur')\r\n private _onHostBlur() {\r\n this._touchCallback?.();\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n private _onKeydown(e: KeyboardEvent) {\r\n if (this._isDisabled())\r\n return;\r\n\r\n let listLength = this.listItems!.length;\r\n if (listLength == 0) {\r\n return;\r\n }\r\n\r\n let activeItem = this._activeItem();\r\n let activeItemindex = activeItem ? this.listItems!.toArray().findIndex(i => i === activeItem) : -1;\r\n\r\n switch (e.key) {\r\n case 'ArrowDown':\r\n if (activeItemindex < listLength - 1) {\r\n const next = this.listItems!.get(activeItemindex + 1);\r\n this._activeItem.set(next);\r\n }\r\n e.preventDefault();\r\n break;\r\n case 'ArrowUp':\r\n if (activeItemindex == -1) {\r\n const last = this.listItems!.get(listLength - 1);\r\n this._activeItem.set(last);\r\n } else if (activeItemindex > 0) {\r\n const previous = this.listItems!.get(activeItemindex - 1);\r\n this._activeItem.set(previous);\r\n }\r\n e.preventDefault();\r\n break;\r\n case 'Enter':\r\n if (activeItem) {\r\n this._handleUserSelection(activeItem, activeItemindex);\r\n }\r\n break;\r\n case 'Home':\r\n const first = this.listItems!.get(0);\r\n this._activeItem.set(first);\r\n e.preventDefault();\r\n break;\r\n case 'End':\r\n const last = this.listItems!.get(listLength - 1);\r\n this._activeItem.set(last);\r\n e.preventDefault();\r\n break;\r\n }\r\n\r\n this._activeItem()?.scrollIntoView('nearest', listLength > 100 ? 'instant' : 'smooth');\r\n if (this.focusMode() === 'roving') {\r\n this._activeItem()?.focus();\r\n }\r\n }\r\n}\r\n\r\n\r\n/**\r\n * Event emitted when the selection state of the list changes by user interaction.\r\n */\r\nexport interface ListItemSelectEvent {\r\n /**\r\n * The value of the item that was selected or deselected.\r\n */\r\n value: any;\r\n\r\n /**\r\n * The item that was selected or deselected.\r\n */\r\n readonly item: ListItem;\r\n\r\n /**\r\n * The list component that emitted the event.\r\n */\r\n readonly list: ListComponent\r\n}\r\n","@let filter = filterBy();\r\n@let formatter = formatBy();\r\n\r\n@for (item of _sourceItems(); track trackBy()($index, item)) {\r\n\r\n<ng0-list-item #listItem=\"ng0ListItem\"\r\n *ng0If=\"!filter || filter(item)\"\r\n [value]=\"item\"\r\n [id]=\"idGenerator()?.(item)\"\r\n [class.active]=\"isActive(listItem)\"\r\n [class.selected]=\"isSelected(item)\"\r\n [ngClass]=\"itemClass()?.(item)\"\r\n (click)=\"_handleUserSelection(listItem, $index);\">\r\n\r\n @if(itemTemplate() || _itemTemplate) {\r\n @let template = itemTemplate() || _itemTemplate;\r\n <ng-container *ngTemplateOutlet=\"template; context: { $implicit: {item: listItem, value: item}}\" />\r\n } @else {\r\n @if(showSelectionIndicator()) {\r\n <input class=\"form-check-input ng0-selection-indicator\"\r\n tabindex=\"-1\"\r\n [checked]=\"isSelected(item)\"\r\n [attr.type]=\"multiple() ? 'checkbox' : 'radio'\">\r\n }\r\n\r\n {{formatter(item)}}\r\n }\r\n</ng0-list-item>\r\n}\r\n\r\n@if(_showLoadingSppiner()) {\r\n@if(_sourceItems().length == 0) {\r\n<div style=\"text-align: center; padding: 0.5rem 0;\">\r\n <ng-container *ngTemplateOutlet=\"spinner\"></ng-container>\r\n</div>\r\n}@else {\r\n<div class=\"ng0-list-loading-cover\">\r\n <ng-container *ngTemplateOutlet=\"spinner\"></ng-container>\r\n</div>\r\n}\r\n}\r\n\r\n<ng-template #spinner>\r\n <div class=\"spinner-border spinner-sm text-primary ng0-list-loading-indicator\" role=\"status\">\r\n <span class=\"visually-hidden\">Loading...</span>\r\n </div>\r\n</ng-template>","import { NgModule } from '@angular/core';\r\nimport { ListComponent } from './list.component';\r\n\r\nconst Items = [ListComponent]\r\n\r\n/**\r\n * List module.\r\n */\r\n@NgModule({\r\n imports: Items,\r\n exports: Items\r\n})\r\nexport class ListModule { }\r\n","// export * from './types';\r\nexport * from './list.component';\r\nexport * from './list.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -43,10 +43,10 @@ class ModalComponent {
43
43
  this._modalStatic.set(true);
44
44
  setTimeout(() => this._modalStatic.set(false), 100);
45
45
  }
46
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: ModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
47
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.9", type: ModalComponent, isStandalone: true, selector: "ng0-modal", inputs: { scrollable: { classPropertyName: "scrollable", publicName: "scrollable", isSignal: true, isRequired: false, transformFunction: null }, centered: { classPropertyName: "centered", publicName: "centered", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, fullscreen: { classPropertyName: "fullscreen", publicName: "fullscreen", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closeRequest: "closeRequest", backdropClick: "backdropClick" }, host: { listeners: { "document:keydown": "_onDocumentKeyDown($event)" } }, exportAs: ["ng0Modal"], ngImport: i0, template: "@let fullscreenValue=fullscreen();\r\n@let sizeValue=size();\r\n\r\n<div class=\"modal d-block\"\r\n (click)=\"$event.target == $event.currentTarget ? _onBackdropClick($event): ''\"\r\n [class.modal-static]=\"_modalStatic()\">\r\n\r\n <div class=\"modal-dialog\"\r\n [class]=\"{\r\n 'modal-dialog-scrollable': scrollable(),\r\n 'modal-dialog-centered': centered(),\r\n 'modal-fullscreen': fullscreenValue == 'always',\r\n 'modal-fullscreen-sm-down': fullscreenValue == 'sm',\r\n 'modal-fullscreen-md-down': fullscreenValue == 'md',\r\n 'modal-fullscreen-lg-down': fullscreenValue == 'lg',\r\n 'modal-fullscreen-xl-down': fullscreenValue == 'xl',\r\n 'modal-fullscreen-xxl-down': fullscreenValue == 'xxl',\r\n 'modal-sm': sizeValue == 'sm',\r\n 'modal-lg': sizeValue == 'lg',\r\n 'modal-xl': sizeValue == 'xl',\r\n }\">\r\n <div class=\"modal-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"modal-backdrop fade show\"></div>", dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
46
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: ModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
47
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.11", type: ModalComponent, isStandalone: true, selector: "ng0-modal", inputs: { scrollable: { classPropertyName: "scrollable", publicName: "scrollable", isSignal: true, isRequired: false, transformFunction: null }, centered: { classPropertyName: "centered", publicName: "centered", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, fullscreen: { classPropertyName: "fullscreen", publicName: "fullscreen", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closeRequest: "closeRequest", backdropClick: "backdropClick" }, host: { listeners: { "document:keydown": "_onDocumentKeyDown($event)" } }, exportAs: ["ng0Modal"], ngImport: i0, template: "@let fullscreenValue=fullscreen();\r\n@let sizeValue=size();\r\n\r\n<div class=\"modal d-block\"\r\n (click)=\"$event.target == $event.currentTarget ? _onBackdropClick($event): ''\"\r\n [class.modal-static]=\"_modalStatic()\">\r\n\r\n <div class=\"modal-dialog\"\r\n [class]=\"{\r\n 'modal-dialog-scrollable': scrollable(),\r\n 'modal-dialog-centered': centered(),\r\n 'modal-fullscreen': fullscreenValue == 'always',\r\n 'modal-fullscreen-sm-down': fullscreenValue == 'sm',\r\n 'modal-fullscreen-md-down': fullscreenValue == 'md',\r\n 'modal-fullscreen-lg-down': fullscreenValue == 'lg',\r\n 'modal-fullscreen-xl-down': fullscreenValue == 'xl',\r\n 'modal-fullscreen-xxl-down': fullscreenValue == 'xxl',\r\n 'modal-sm': sizeValue == 'sm',\r\n 'modal-lg': sizeValue == 'lg',\r\n 'modal-xl': sizeValue == 'xl',\r\n }\">\r\n <div class=\"modal-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"modal-backdrop fade show\"></div>", dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
48
48
  }
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: ModalComponent, decorators: [{
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: ModalComponent, decorators: [{
50
50
  type: Component,
51
51
  args: [{ selector: 'ng0-modal', exportAs: 'ng0Modal', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
52
52
  CommonModule,
@@ -61,11 +61,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImpor
61
61
  }] } });
62
62
 
63
63
  class ModalModule {
64
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: ModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
65
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.9", ngImport: i0, type: ModalModule, imports: [ModalComponent], exports: [ModalComponent] });
66
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: ModalModule, imports: [ModalComponent] });
64
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: ModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
65
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.11", ngImport: i0, type: ModalModule, imports: [ModalComponent], exports: [ModalComponent] });
66
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: ModalModule, imports: [ModalComponent] });
67
67
  }
68
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: ModalModule, decorators: [{
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: ModalModule, decorators: [{
69
69
  type: NgModule,
70
70
  args: [{
71
71
  imports: [
@@ -1 +1 @@
1
- {"version":3,"file":"bootkit-ng0-components-modal.mjs","sources":["../../../projects/ng0/components/modal/modal.component.ts","../../../projects/ng0/components/modal/modal.component.html","../../../projects/ng0/components/modal/modal.module.ts","../../../projects/ng0/components/modal/bootkit-ng0-components-modal.ts"],"sourcesContent":["import { Component, Output, EventEmitter, ChangeDetectionStrategy, input, signal, HostListener } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ModalCloseRequest } from './types';\r\n\r\n@Component({\r\n selector: 'ng0-modal',\r\n exportAs: 'ng0Modal',\r\n templateUrl: 'modal.component.html',\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n CommonModule,\r\n ]\r\n})\r\nexport class ModalComponent {\r\n /**\r\n * Is modal scrollable?\r\n */\r\n public scrollable = input<boolean>(false);\r\n\r\n /** Is modal vertically centered? */\r\n public centered = input<boolean>(false);\r\n\r\n /**\r\n * Size of the modal.\r\n */\r\n public size = input<'sm' | 'default' | 'lg' | 'xl'>('default');\r\n\r\n /**\r\n * Is modal fullscreen?\r\n */\r\n public fullscreen = input<'always' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl'>();\r\n\r\n /**\r\n * Emitted when user clicks the backdrop or presses the escape key.\r\n */\r\n @Output() public closeRequest = new EventEmitter<ModalCloseRequest>();\r\n\r\n /**\r\n * Emitted when the backdrop is clicked.\r\n */\r\n @Output() public backdropClick = new EventEmitter<Event>();\r\n\r\n protected _modalStatic = signal(false);\r\n\r\n constructor() {\r\n }\r\n\r\n protected _onBackdropClick(event: MouseEvent) {\r\n this.closeRequest.emit({ reason: 'backdrop', event });\r\n this.backdropClick.emit(event);\r\n this._shakeModal(); // if user closes the modal, shake will not occure.\r\n }\r\n\r\n @HostListener('document:keydown', ['$event'])\r\n private _onDocumentKeyDown(event: KeyboardEvent) {\r\n if (event.key === 'Escape') {\r\n this.closeRequest.emit({ reason: 'escape', event });\r\n this._shakeModal();\r\n }\r\n }\r\n\r\n private _shakeModal() {\r\n this._modalStatic.set(true);\r\n setTimeout(() => this._modalStatic.set(false), 100);\r\n }\r\n}\r\n","@let fullscreenValue=fullscreen();\r\n@let sizeValue=size();\r\n\r\n<div class=\"modal d-block\"\r\n (click)=\"$event.target == $event.currentTarget ? _onBackdropClick($event): ''\"\r\n [class.modal-static]=\"_modalStatic()\">\r\n\r\n <div class=\"modal-dialog\"\r\n [class]=\"{\r\n 'modal-dialog-scrollable': scrollable(),\r\n 'modal-dialog-centered': centered(),\r\n 'modal-fullscreen': fullscreenValue == 'always',\r\n 'modal-fullscreen-sm-down': fullscreenValue == 'sm',\r\n 'modal-fullscreen-md-down': fullscreenValue == 'md',\r\n 'modal-fullscreen-lg-down': fullscreenValue == 'lg',\r\n 'modal-fullscreen-xl-down': fullscreenValue == 'xl',\r\n 'modal-fullscreen-xxl-down': fullscreenValue == 'xxl',\r\n 'modal-sm': sizeValue == 'sm',\r\n 'modal-lg': sizeValue == 'lg',\r\n 'modal-xl': sizeValue == 'xl',\r\n }\">\r\n <div class=\"modal-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"modal-backdrop fade show\"></div>","import { NgModule } from '@angular/core';\r\nimport { ModalComponent } from './modal.component';\r\n\r\n@NgModule({\r\n imports: [\r\n ModalComponent,\r\n ],\r\n exports: [\r\n ModalComponent,\r\n ]\r\n})\r\nexport class ModalModule {\r\n}\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-modal.mjs","sources":["../../../projects/ng0/components/modal/modal.component.ts","../../../projects/ng0/components/modal/modal.component.html","../../../projects/ng0/components/modal/modal.module.ts","../../../projects/ng0/components/modal/bootkit-ng0-components-modal.ts"],"sourcesContent":["import { Component, Output, EventEmitter, ChangeDetectionStrategy, input, signal, HostListener } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ModalCloseRequest } from './types';\r\n\r\n@Component({\r\n selector: 'ng0-modal',\r\n exportAs: 'ng0Modal',\r\n templateUrl: 'modal.component.html',\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n CommonModule,\r\n ]\r\n})\r\nexport class ModalComponent {\r\n /**\r\n * Is modal scrollable?\r\n */\r\n public scrollable = input<boolean>(false);\r\n\r\n /** Is modal vertically centered? */\r\n public centered = input<boolean>(false);\r\n\r\n /**\r\n * Size of the modal.\r\n */\r\n public size = input<'sm' | 'default' | 'lg' | 'xl'>('default');\r\n\r\n /**\r\n * Is modal fullscreen?\r\n */\r\n public fullscreen = input<'always' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl'>();\r\n\r\n /**\r\n * Emitted when user clicks the backdrop or presses the escape key.\r\n */\r\n @Output() public closeRequest = new EventEmitter<ModalCloseRequest>();\r\n\r\n /**\r\n * Emitted when the backdrop is clicked.\r\n */\r\n @Output() public backdropClick = new EventEmitter<Event>();\r\n\r\n protected _modalStatic = signal(false);\r\n\r\n constructor() {\r\n }\r\n\r\n protected _onBackdropClick(event: MouseEvent) {\r\n this.closeRequest.emit({ reason: 'backdrop', event });\r\n this.backdropClick.emit(event);\r\n this._shakeModal(); // if user closes the modal, shake will not occure.\r\n }\r\n\r\n @HostListener('document:keydown', ['$event'])\r\n private _onDocumentKeyDown(event: KeyboardEvent) {\r\n if (event.key === 'Escape') {\r\n this.closeRequest.emit({ reason: 'escape', event });\r\n this._shakeModal();\r\n }\r\n }\r\n\r\n private _shakeModal() {\r\n this._modalStatic.set(true);\r\n setTimeout(() => this._modalStatic.set(false), 100);\r\n }\r\n}\r\n","@let fullscreenValue=fullscreen();\r\n@let sizeValue=size();\r\n\r\n<div class=\"modal d-block\"\r\n (click)=\"$event.target == $event.currentTarget ? _onBackdropClick($event): ''\"\r\n [class.modal-static]=\"_modalStatic()\">\r\n\r\n <div class=\"modal-dialog\"\r\n [class]=\"{\r\n 'modal-dialog-scrollable': scrollable(),\r\n 'modal-dialog-centered': centered(),\r\n 'modal-fullscreen': fullscreenValue == 'always',\r\n 'modal-fullscreen-sm-down': fullscreenValue == 'sm',\r\n 'modal-fullscreen-md-down': fullscreenValue == 'md',\r\n 'modal-fullscreen-lg-down': fullscreenValue == 'lg',\r\n 'modal-fullscreen-xl-down': fullscreenValue == 'xl',\r\n 'modal-fullscreen-xxl-down': fullscreenValue == 'xxl',\r\n 'modal-sm': sizeValue == 'sm',\r\n 'modal-lg': sizeValue == 'lg',\r\n 'modal-xl': sizeValue == 'xl',\r\n }\">\r\n <div class=\"modal-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"modal-backdrop fade show\"></div>","import { NgModule } from '@angular/core';\r\nimport { ModalComponent } from './modal.component';\r\n\r\n@NgModule({\r\n imports: [\r\n ModalComponent,\r\n ],\r\n exports: [\r\n ModalComponent,\r\n ]\r\n})\r\nexport class ModalModule {\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -14,10 +14,10 @@ class NavDirective {
14
14
  disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
15
15
  constructor() {
16
16
  }
17
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NavDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
18
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.9", type: NavDirective, isStandalone: true, selector: "[ng0Nav]", inputs: { activeItem: { classPropertyName: "activeItem", publicName: "activeItem", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activeItem: "activeItemChange" }, exportAs: ["ng0Nav"], ngImport: i0 });
17
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NavDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
18
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.11", type: NavDirective, isStandalone: true, selector: "[ng0Nav]", inputs: { activeItem: { classPropertyName: "activeItem", publicName: "activeItem", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activeItem: "activeItemChange" }, exportAs: ["ng0Nav"], ngImport: i0 });
19
19
  }
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NavDirective, decorators: [{
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NavDirective, decorators: [{
21
21
  type: Directive,
22
22
  args: [{
23
23
  selector: '[ng0Nav]',
@@ -33,10 +33,10 @@ class NavItemDirective {
33
33
  constructor(elementRef) {
34
34
  this.elementRef = elementRef;
35
35
  }
36
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NavItemDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
37
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.9", type: NavItemDirective, isStandalone: true, selector: "[ng0NavItem]", inputs: { id: { classPropertyName: "id", publicName: "ng0NavItem", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["ng0NavItem"], ngImport: i0 });
36
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NavItemDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
37
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.11", type: NavItemDirective, isStandalone: true, selector: "[ng0NavItem]", inputs: { id: { classPropertyName: "id", publicName: "ng0NavItem", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["ng0NavItem"], ngImport: i0 });
38
38
  }
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NavItemDirective, decorators: [{
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NavItemDirective, decorators: [{
40
40
  type: Directive,
41
41
  args: [{
42
42
  selector: '[ng0NavItem]',
@@ -63,10 +63,10 @@ class NavLinkDirective {
63
63
  get _disabled() {
64
64
  return this._nav.disabled() || this._navItem.disabled();
65
65
  }
66
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NavLinkDirective, deps: [{ token: i0.ElementRef }, { token: NavDirective }, { token: NavItemDirective }], target: i0.ɵɵFactoryTarget.Directive });
67
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.9", type: NavLinkDirective, isStandalone: true, selector: "[ng0NavLink]", host: { listeners: { "click": "_onClick()" }, properties: { "class.active": "this._active", "class.disabled": "this._disabled" } }, exportAs: ["ng0NavLink"], ngImport: i0 });
66
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NavLinkDirective, deps: [{ token: i0.ElementRef }, { token: NavDirective }, { token: NavItemDirective }], target: i0.ɵɵFactoryTarget.Directive });
67
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.11", type: NavLinkDirective, isStandalone: true, selector: "[ng0NavLink]", host: { listeners: { "click": "_onClick()" }, properties: { "class.active": "this._active", "class.disabled": "this._disabled" } }, exportAs: ["ng0NavLink"], ngImport: i0 });
68
68
  }
69
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NavLinkDirective, decorators: [{
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NavLinkDirective, decorators: [{
70
70
  type: Directive,
71
71
  args: [{
72
72
  selector: '[ng0NavLink]',
@@ -90,10 +90,10 @@ class NavContentDirective {
90
90
  constructor(templateRef) {
91
91
  this.templateRef = templateRef;
92
92
  }
93
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NavContentDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
94
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.9", type: NavContentDirective, isStandalone: true, selector: "[ng0NavContent]", inputs: { id: { classPropertyName: "id", publicName: "ng0NavContent", isSignal: true, isRequired: true, transformFunction: null } }, exportAs: ["ng0NavContent"], ngImport: i0 });
93
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NavContentDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
94
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.11", type: NavContentDirective, isStandalone: true, selector: "[ng0NavContent]", inputs: { id: { classPropertyName: "id", publicName: "ng0NavContent", isSignal: true, isRequired: true, transformFunction: null } }, exportAs: ["ng0NavContent"], ngImport: i0 });
95
95
  }
96
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NavContentDirective, decorators: [{
96
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NavContentDirective, decorators: [{
97
97
  type: Directive,
98
98
  args: [{
99
99
  selector: '[ng0NavContent]',
@@ -118,10 +118,10 @@ class NavContentContainerComponent {
118
118
  ngOnInit() {
119
119
  this._renderer.addClass(this._elementRef.nativeElement, 'tab-content');
120
120
  }
121
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NavContentContainerComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
122
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: NavContentContainerComponent, isStandalone: true, selector: "ng0-navcontent-container", inputs: { nav: { classPropertyName: "nav", publicName: "nav", isSignal: true, isRequired: true, transformFunction: null } }, queries: [{ propertyName: "_contents", predicate: NavContentDirective }], exportAs: ["ng0Navcontent"], ngImport: i0, template: "@for (content of _contents; track $index) {\r\n @if(content.id() === _activeItem()) {\r\n <ng-container *ngTemplateOutlet=\"content.templateRef;\"></ng-container>\r\n }\r\n}\r\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
121
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NavContentContainerComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
122
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.11", type: NavContentContainerComponent, isStandalone: true, selector: "ng0-navcontent-container", inputs: { nav: { classPropertyName: "nav", publicName: "nav", isSignal: true, isRequired: true, transformFunction: null } }, queries: [{ propertyName: "_contents", predicate: NavContentDirective }], exportAs: ["ng0Navcontent"], ngImport: i0, template: "@for (content of _contents; track $index) {\r\n @if(content.id() === _activeItem()) {\r\n <ng-container *ngTemplateOutlet=\"content.templateRef;\"></ng-container>\r\n }\r\n}\r\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
123
123
  }
124
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NavContentContainerComponent, decorators: [{
124
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NavContentContainerComponent, decorators: [{
125
125
  type: Component,
126
126
  args: [{ selector: 'ng0-navcontent-container', exportAs: 'ng0Navcontent', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule], template: "@for (content of _contents; track $index) {\r\n @if(content.id() === _activeItem()) {\r\n <ng-container *ngTemplateOutlet=\"content.templateRef;\"></ng-container>\r\n }\r\n}\r\n", styles: [":host{display:block}\n"] }]
127
127
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { nav: [{ type: i0.Input, args: [{ isSignal: true, alias: "nav", required: true }] }], _contents: [{
@@ -137,8 +137,8 @@ const items = [
137
137
  NavContentDirective
138
138
  ];
139
139
  class NavModule {
140
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NavModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
141
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.9", ngImport: i0, type: NavModule, imports: [NavDirective,
140
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NavModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
141
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.11", ngImport: i0, type: NavModule, imports: [NavDirective,
142
142
  NavItemDirective,
143
143
  NavLinkDirective,
144
144
  NavContentContainerComponent,
@@ -147,9 +147,9 @@ class NavModule {
147
147
  NavLinkDirective,
148
148
  NavContentContainerComponent,
149
149
  NavContentDirective] });
150
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NavModule, imports: [NavContentContainerComponent] });
150
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NavModule, imports: [NavContentContainerComponent] });
151
151
  }
152
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NavModule, decorators: [{
152
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NavModule, decorators: [{
153
153
  type: NgModule,
154
154
  args: [{
155
155
  imports: items,
@@ -1 +1 @@
1
- {"version":3,"file":"bootkit-ng0-components-nav.mjs","sources":["../../../projects/ng0/components/nav/nav.directive.ts","../../../projects/ng0/components/nav/nav-item.directive.ts","../../../projects/ng0/components/nav/nav-link.directive.ts","../../../projects/ng0/components/nav/nav-content.directive.ts","../../../projects/ng0/components/nav/nav-content-container.component.ts","../../../projects/ng0/components/nav/nav-content-container.component.html","../../../projects/ng0/components/nav/nav.module.ts","../../../projects/ng0/components/nav/bootkit-ng0-components-nav.ts"],"sourcesContent":["import { Directive, ElementRef, Renderer2, input, model } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[ng0Nav]',\r\n exportAs: 'ng0Nav',\r\n standalone: true,\r\n})\r\nexport class NavDirective {\r\n /**\r\n * The active item.\r\n */\r\n activeItem = model<any>(0);\r\n\r\n /**\r\n * Whether the navigation is disabled.\r\n */\r\n disabled = input(false);\r\n\r\n constructor() {\r\n }\r\n}\r\n","import { Directive, ElementRef, Renderer2, input } from '@angular/core';\r\nimport { NavDirective } from './nav.directive';\r\n\r\n@Directive({\r\n selector: '[ng0NavItem]',\r\n exportAs: 'ng0NavItem',\r\n standalone: true,\r\n})\r\nexport class NavItemDirective {\r\n id = input.required<any>({alias: 'ng0NavItem'});\r\n disabled = input(false);\r\n\r\n constructor(public elementRef: ElementRef) {\r\n }\r\n}\r\n","import { Directive, ElementRef, HostBinding, HostListener, Renderer2, input } from '@angular/core';\r\nimport { NavDirective } from './nav.directive';\r\nimport { NavItemDirective } from './nav-item.directive';\r\n\r\n@Directive({\r\n selector: '[ng0NavLink]',\r\n exportAs: 'ng0NavLink',\r\n standalone: true,\r\n})\r\nexport class NavLinkDirective {\r\n constructor(public elementRef: ElementRef, private _nav: NavDirective, private _navItem: NavItemDirective) {\r\n }\r\n\r\n @HostListener('click')\r\n private _onClick() {\r\n this._nav.activeItem.set(this._navItem.id());\r\n }\r\n\r\n @HostBinding('class.active') \r\n private get _active() {\r\n return this._nav.activeItem() === this._navItem.id();\r\n }\r\n\r\n @HostBinding('class.disabled') \r\n private get _disabled() {\r\n return this._nav.disabled() || this._navItem.disabled();\r\n }\r\n}\r\n","import { Directive, input, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[ng0NavContent]',\r\n exportAs: 'ng0NavContent',\r\n standalone: true,\r\n})\r\nexport class NavContentDirective {\r\n id = input.required<any>({alias: 'ng0NavContent'});\r\n \r\n constructor(public templateRef: TemplateRef<any>) {\r\n }\r\n}\r\n","import { Component, ContentChildren, QueryList, ElementRef, Renderer2, OnInit, input, ChangeDetectionStrategy, computed } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NavContentDirective } from './nav-content.directive';\r\nimport { NavDirective } from './nav.directive';\r\n\r\n@Component({\r\n selector: 'ng0-navcontent-container',\r\n exportAs: 'ng0Navcontent',\r\n templateUrl: './nav-content-container.component.html',\r\n styles: `:host{display: block;}`,\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [CommonModule]\r\n})\r\nexport class NavContentContainerComponent implements OnInit {\r\n /** \r\n * The navigation directive that this content belongs to.\r\n */\r\n nav = input.required<NavDirective>();\r\n\r\n @ContentChildren(NavContentDirective) protected _contents!: QueryList<NavContentDirective>;\r\n protected _activeItem = computed(() => this.nav().activeItem());\r\n\r\n constructor(private _elementRef: ElementRef, private _renderer: Renderer2) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this._renderer.addClass(this._elementRef.nativeElement, 'tab-content');\r\n }\r\n}\r\n","@for (content of _contents; track $index) {\r\n @if(content.id() === _activeItem()) {\r\n <ng-container *ngTemplateOutlet=\"content.templateRef;\"></ng-container>\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { NavDirective } from './nav.directive';\r\nimport { NavLinkDirective } from './nav-link.directive';\r\nimport { NavContentContainerComponent } from './nav-content-container.component';\r\nimport { NavContentDirective } from './nav-content.directive';\r\nimport { NavItemDirective } from './nav-item.directive';\r\n\r\nconst items = [\r\n NavDirective,\r\n NavItemDirective,\r\n NavLinkDirective,\r\n NavContentContainerComponent,\r\n NavContentDirective\r\n];\r\n\r\n@NgModule({\r\n imports: items,\r\n exports: items\r\n})\r\nexport class NavModule {\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.NavDirective","i2.NavItemDirective"],"mappings":"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"}
1
+ {"version":3,"file":"bootkit-ng0-components-nav.mjs","sources":["../../../projects/ng0/components/nav/nav.directive.ts","../../../projects/ng0/components/nav/nav-item.directive.ts","../../../projects/ng0/components/nav/nav-link.directive.ts","../../../projects/ng0/components/nav/nav-content.directive.ts","../../../projects/ng0/components/nav/nav-content-container.component.ts","../../../projects/ng0/components/nav/nav-content-container.component.html","../../../projects/ng0/components/nav/nav.module.ts","../../../projects/ng0/components/nav/bootkit-ng0-components-nav.ts"],"sourcesContent":["import { Directive, ElementRef, Renderer2, input, model } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[ng0Nav]',\r\n exportAs: 'ng0Nav',\r\n standalone: true,\r\n})\r\nexport class NavDirective {\r\n /**\r\n * The active item.\r\n */\r\n activeItem = model<any>(0);\r\n\r\n /**\r\n * Whether the navigation is disabled.\r\n */\r\n disabled = input(false);\r\n\r\n constructor() {\r\n }\r\n}\r\n","import { Directive, ElementRef, Renderer2, input } from '@angular/core';\r\nimport { NavDirective } from './nav.directive';\r\n\r\n@Directive({\r\n selector: '[ng0NavItem]',\r\n exportAs: 'ng0NavItem',\r\n standalone: true,\r\n})\r\nexport class NavItemDirective {\r\n id = input.required<any>({alias: 'ng0NavItem'});\r\n disabled = input(false);\r\n\r\n constructor(public elementRef: ElementRef) {\r\n }\r\n}\r\n","import { Directive, ElementRef, HostBinding, HostListener, Renderer2, input } from '@angular/core';\r\nimport { NavDirective } from './nav.directive';\r\nimport { NavItemDirective } from './nav-item.directive';\r\n\r\n@Directive({\r\n selector: '[ng0NavLink]',\r\n exportAs: 'ng0NavLink',\r\n standalone: true,\r\n})\r\nexport class NavLinkDirective {\r\n constructor(public elementRef: ElementRef, private _nav: NavDirective, private _navItem: NavItemDirective) {\r\n }\r\n\r\n @HostListener('click')\r\n private _onClick() {\r\n this._nav.activeItem.set(this._navItem.id());\r\n }\r\n\r\n @HostBinding('class.active') \r\n private get _active() {\r\n return this._nav.activeItem() === this._navItem.id();\r\n }\r\n\r\n @HostBinding('class.disabled') \r\n private get _disabled() {\r\n return this._nav.disabled() || this._navItem.disabled();\r\n }\r\n}\r\n","import { Directive, input, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[ng0NavContent]',\r\n exportAs: 'ng0NavContent',\r\n standalone: true,\r\n})\r\nexport class NavContentDirective {\r\n id = input.required<any>({alias: 'ng0NavContent'});\r\n \r\n constructor(public templateRef: TemplateRef<any>) {\r\n }\r\n}\r\n","import { Component, ContentChildren, QueryList, ElementRef, Renderer2, OnInit, input, ChangeDetectionStrategy, computed } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NavContentDirective } from './nav-content.directive';\r\nimport { NavDirective } from './nav.directive';\r\n\r\n@Component({\r\n selector: 'ng0-navcontent-container',\r\n exportAs: 'ng0Navcontent',\r\n templateUrl: './nav-content-container.component.html',\r\n styles: `:host{display: block;}`,\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [CommonModule]\r\n})\r\nexport class NavContentContainerComponent implements OnInit {\r\n /** \r\n * The navigation directive that this content belongs to.\r\n */\r\n nav = input.required<NavDirective>();\r\n\r\n @ContentChildren(NavContentDirective) protected _contents!: QueryList<NavContentDirective>;\r\n protected _activeItem = computed(() => this.nav().activeItem());\r\n\r\n constructor(private _elementRef: ElementRef, private _renderer: Renderer2) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this._renderer.addClass(this._elementRef.nativeElement, 'tab-content');\r\n }\r\n}\r\n","@for (content of _contents; track $index) {\r\n @if(content.id() === _activeItem()) {\r\n <ng-container *ngTemplateOutlet=\"content.templateRef;\"></ng-container>\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { NavDirective } from './nav.directive';\r\nimport { NavLinkDirective } from './nav-link.directive';\r\nimport { NavContentContainerComponent } from './nav-content-container.component';\r\nimport { NavContentDirective } from './nav-content.directive';\r\nimport { NavItemDirective } from './nav-item.directive';\r\n\r\nconst items = [\r\n NavDirective,\r\n NavItemDirective,\r\n NavLinkDirective,\r\n NavContentContainerComponent,\r\n NavContentDirective\r\n];\r\n\r\n@NgModule({\r\n imports: items,\r\n exports: items\r\n})\r\nexport class NavModule {\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.NavDirective","i2.NavItemDirective"],"mappings":";;;;;MAOa,YAAY,CAAA;AACnB;;AAEG;AACH,IAAA,UAAU,GAAG,KAAK,CAAM,CAAC,sDAAC;AAE1B;;AAEG;AACH,IAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,oDAAC;AAEvB,IAAA,WAAA,GAAA;IACA;wGAZO,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAZ,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBALxB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACL,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,QAAQ,EAAE,QAAQ;AAClB,oBAAA,UAAU,EAAE,IAAI;AACrB,iBAAA;;;MCEY,gBAAgB,CAAA;AAIJ,IAAA,UAAA;AAHnB,IAAA,EAAE,GAAG,KAAK,CAAC,QAAQ,qCAAO,KAAK,EAAE,YAAY,EAAA,CAAA,GAAA,CAApB,EAAC,KAAK,EAAE,YAAY,EAAC,GAAC;AAC/C,IAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,oDAAC;AAEvB,IAAA,WAAA,CAAmB,UAAsB,EAAA;QAAtB,IAAA,CAAA,UAAU,GAAV,UAAU;IAC7B;wGALO,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACL,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,UAAU,EAAE,IAAI;AACrB,iBAAA;;;MCEY,gBAAgB,CAAA;AACJ,IAAA,UAAA;AAAgC,IAAA,IAAA;AAA4B,IAAA,QAAA;AAA/E,IAAA,WAAA,CAAmB,UAAsB,EAAU,IAAkB,EAAU,QAA0B,EAAA;QAAtF,IAAA,CAAA,UAAU,GAAV,UAAU;QAAsB,IAAA,CAAA,IAAI,GAAJ,IAAI;QAAwB,IAAA,CAAA,QAAQ,GAAR,QAAQ;IACvF;IAGQ,QAAQ,GAAA;AACV,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;IAClD;AAEA,IAAA,IACY,OAAO,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;IAC1D;AAEA,IAAA,IACY,SAAS,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;IAC7D;wGAjBO,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,YAAA,EAAA,EAAA,UAAA,EAAA,EAAA,cAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACL,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,UAAU,EAAE,IAAI;AACrB,iBAAA;;sBAKM,YAAY;uBAAC,OAAO;;sBAKpB,WAAW;uBAAC,cAAc;;sBAK1B,WAAW;uBAAC,gBAAgB;;;MChBtB,mBAAmB,CAAA;AAGP,IAAA,WAAA;AAFnB,IAAA,EAAE,GAAG,KAAK,CAAC,QAAQ,qCAAO,KAAK,EAAE,eAAe,EAAA,CAAA,GAAA,CAAvB,EAAC,KAAK,EAAE,eAAe,EAAC,GAAC;AAElD,IAAA,WAAA,CAAmB,WAA6B,EAAA;QAA7B,IAAA,CAAA,WAAW,GAAX,WAAW;IAC9B;wGAJO,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACL,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,UAAU,EAAE,IAAI;AACrB,iBAAA;;;MCQY,4BAA4B,CAAA;AASjB,IAAA,WAAA;AAAiC,IAAA,SAAA;AARrD;;AAEG;AACH,IAAA,GAAG,GAAG,KAAK,CAAC,QAAQ,8CAAgB;AAEY,IAAA,SAAS;AAC/C,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,uDAAC;IAE/D,WAAA,CAAoB,WAAuB,EAAU,SAAoB,EAAA;QAArD,IAAA,CAAA,WAAW,GAAX,WAAW;QAAsB,IAAA,CAAA,SAAS,GAAT,SAAS;IAC9D;IAEA,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,aAAa,CAAC;IAC1E;wGAdS,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA5B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,SAAA,EAMpB,mBAAmB,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpBxC,gMAKA,+EDOc,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAEb,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBATxC,SAAS;+BACI,0BAA0B,EAAA,QAAA,EAC1B,eAAe,EAAA,UAAA,EAGb,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,gMAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;;sBAQtB,eAAe;uBAAC,mBAAmB;;;AEbxC,MAAM,KAAK,GAAG;IACZ,YAAY;IACZ,gBAAgB;IAChB,gBAAgB;IAChB,4BAA4B;IAC5B;CACD;MAMY,SAAS,CAAA;wGAAT,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAT,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,SAAS,YAXpB,YAAY;YACZ,gBAAgB;YAChB,gBAAgB;YAChB,4BAA4B;AAC5B,YAAA,mBAAmB,aAJnB,YAAY;YACZ,gBAAgB;YAChB,gBAAgB;YAChB,4BAA4B;YAC5B,mBAAmB,CAAA,EAAA,CAAA;AAOR,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,SAAS,YARpB,4BAA4B,CAAA,EAAA,CAAA;;4FAQjB,SAAS,EAAA,UAAA,EAAA,CAAA;kBAJrB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,OAAO,EAAE;AACV,iBAAA;;;AClBD;;AAEG;;;;"}
@@ -107,10 +107,10 @@ class OffcanvasDirective {
107
107
  ngOnDestroy() {
108
108
  this._destroyBackdrop();
109
109
  }
110
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: OffcanvasDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
111
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.9", type: OffcanvasDirective, isStandalone: true, selector: "[ng0Offcanvas]", inputs: { show: { classPropertyName: "show", publicName: "show", isSignal: true, isRequired: false, transformFunction: null }, hasBackdrop: { classPropertyName: "hasBackdrop", publicName: "hasBackdrop", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { backdropClick: "backdropClick" }, host: { listeners: { "transitionend": "_onTransitionend($event)" } }, exportAs: ["ng0Offcanvas"], ngImport: i0 });
110
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: OffcanvasDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
111
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.11", type: OffcanvasDirective, isStandalone: true, selector: "[ng0Offcanvas]", inputs: { show: { classPropertyName: "show", publicName: "show", isSignal: true, isRequired: false, transformFunction: null }, hasBackdrop: { classPropertyName: "hasBackdrop", publicName: "hasBackdrop", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { backdropClick: "backdropClick" }, host: { listeners: { "transitionend": "_onTransitionend($event)" } }, exportAs: ["ng0Offcanvas"], ngImport: i0 });
112
112
  }
113
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: OffcanvasDirective, decorators: [{
113
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: OffcanvasDirective, decorators: [{
114
114
  type: Directive,
115
115
  args: [{
116
116
  selector: '[ng0Offcanvas]',
@@ -128,11 +128,11 @@ const items = [
128
128
  OffcanvasDirective,
129
129
  ];
130
130
  class OffcanvasModule {
131
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: OffcanvasModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
132
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.9", ngImport: i0, type: OffcanvasModule, imports: [OffcanvasDirective], exports: [OffcanvasDirective] });
133
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: OffcanvasModule });
131
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: OffcanvasModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
132
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.11", ngImport: i0, type: OffcanvasModule, imports: [OffcanvasDirective], exports: [OffcanvasDirective] });
133
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: OffcanvasModule });
134
134
  }
135
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: OffcanvasModule, decorators: [{
135
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: OffcanvasModule, decorators: [{
136
136
  type: NgModule,
137
137
  args: [{
138
138
  imports: items,
@@ -1 +1 @@
1
- {"version":3,"file":"bootkit-ng0-components-offcanvas.mjs","sources":["../../../projects/ng0/components/offcanvas/offcanvas.directive.ts","../../../projects/ng0/components/offcanvas/offcanvas.module.ts","../../../projects/ng0/components/offcanvas/bootkit-ng0-components-offcanvas.ts"],"sourcesContent":["import { ElementRef, Renderer2, effect, HostListener, Directive, input, Output, EventEmitter, OnDestroy, afterNextRender, untracked, booleanAttribute } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[ng0Offcanvas]',\r\n exportAs: 'ng0Offcanvas',\r\n standalone: true,\r\n})\r\nexport class OffcanvasDirective implements OnDestroy {\r\n /**\r\n * Whether to show the offcanvas element.\r\n */\r\n public show = input(false, { transform: booleanAttribute });\r\n\r\n /**\r\n * Whether to show a backdrop element behind the offcanvas.\r\n */\r\n public hasBackdrop = input(false, { transform: booleanAttribute });\r\n\r\n /**\r\n * Emitted when the backdrop is clicked.\r\n */\r\n @Output() public backdropClick = new EventEmitter<MouseEvent>;\r\n\r\n private _firstShowEffectRun = true;\r\n private _firstBackdropEffectRun = true;\r\n private _backdropElement?: any;\r\n private _backdropClickUnlistenFunc?: any;\r\n private _backdropTransitionendUnlistenFunc?: any;\r\n private addClass = (c: string) => this._renderer.addClass(this._el.nativeElement, c);\r\n\r\n constructor(private _el: ElementRef, private _renderer: Renderer2) {\r\n\r\n afterNextRender(() => {\r\n if (this.show() && this.hasBackdrop()) {\r\n this._createBackdrop();\r\n }\r\n });\r\n\r\n effect(() => {\r\n var show = this.show();\r\n var backdrop = untracked(() => this.hasBackdrop());\r\n\r\n if (this._firstShowEffectRun) {\r\n if (show) {\r\n this.addClass('show');\r\n }\r\n this._firstShowEffectRun = false;\r\n return;\r\n }\r\n\r\n\r\n if (show) {\r\n this.addClass('show');\r\n if (backdrop)\r\n this._createBackdrop();\r\n } else {\r\n this.addClass('hiding');\r\n this._hideBackdrop(); // we first hide backdrop, after hide transition completed, we destroy it.\r\n }\r\n });\r\n\r\n effect(() => {\r\n var backdrop = this.hasBackdrop();\r\n var show = untracked(() => this.show());\r\n\r\n if (this._firstBackdropEffectRun) {\r\n this._firstBackdropEffectRun = false;\r\n return;\r\n }\r\n\r\n if (show) {\r\n if (backdrop)\r\n this._createBackdrop();\r\n else\r\n this._destroyBackdrop();\r\n }\r\n });\r\n }\r\n\r\n\r\n private _createBackdrop() {\r\n if (!this._backdropElement) {\r\n this._backdropElement = this._renderer.createElement('div');\r\n ['offcanvas-backdrop', 'fade', 'show'].forEach(c => this._renderer.addClass(this._backdropElement, c));\r\n\r\n // Append the new element next to the host element\r\n const parent = this._renderer.parentNode(this._el.nativeElement);\r\n const nextSibling = this._renderer.nextSibling(this._el.nativeElement);\r\n this._renderer.insertBefore(parent, this._backdropElement, nextSibling);\r\n\r\n this._backdropClickUnlistenFunc = this._renderer.listen(this._backdropElement, 'click', (e) => {\r\n this.backdropClick.emit(e);\r\n });\r\n\r\n this._backdropTransitionendUnlistenFunc = this._renderer.listen(this._backdropElement, 'transitionend', (e) => {\r\n if (!this.show()) {\r\n this._destroyBackdrop();\r\n }\r\n });\r\n }\r\n }\r\n\r\n private _destroyBackdrop() {\r\n if (this._backdropElement) {\r\n const parent = this._renderer.parentNode(this._el.nativeElement);\r\n this._renderer.removeChild(parent, this._backdropElement, false);\r\n this._backdropClickUnlistenFunc()\r\n\r\n this._backdropClickUnlistenFunc = undefined;\r\n this._backdropElement = undefined\r\n }\r\n }\r\n\r\n private _hideBackdrop() {\r\n if (this._backdropElement) {\r\n this._renderer.removeClass(this._backdropElement, 'show');\r\n }\r\n }\r\n\r\n @HostListener('transitionend', ['$event'])\r\n private _onTransitionend(e: TransitionEvent): void {\r\n if (!this.show() && e.propertyName == 'transform') {\r\n ['show', 'hiding'].forEach(x => this._renderer.removeClass(this._el.nativeElement, x));\r\n // if (this.backdrop())\r\n // this._destroyBackdrop();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._destroyBackdrop()\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { OffcanvasDirective } from './offcanvas.directive';\r\n\r\nconst items = [\r\n OffcanvasDirective,\r\n];\r\n\r\n@NgModule({\r\n imports: items,\r\n exports: items\r\n})\r\nexport class OffcanvasModule {\r\n}\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-offcanvas.mjs","sources":["../../../projects/ng0/components/offcanvas/offcanvas.directive.ts","../../../projects/ng0/components/offcanvas/offcanvas.module.ts","../../../projects/ng0/components/offcanvas/bootkit-ng0-components-offcanvas.ts"],"sourcesContent":["import { ElementRef, Renderer2, effect, HostListener, Directive, input, Output, EventEmitter, OnDestroy, afterNextRender, untracked, booleanAttribute } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[ng0Offcanvas]',\r\n exportAs: 'ng0Offcanvas',\r\n standalone: true,\r\n})\r\nexport class OffcanvasDirective implements OnDestroy {\r\n /**\r\n * Whether to show the offcanvas element.\r\n */\r\n public show = input(false, { transform: booleanAttribute });\r\n\r\n /**\r\n * Whether to show a backdrop element behind the offcanvas.\r\n */\r\n public hasBackdrop = input(false, { transform: booleanAttribute });\r\n\r\n /**\r\n * Emitted when the backdrop is clicked.\r\n */\r\n @Output() public backdropClick = new EventEmitter<MouseEvent>;\r\n\r\n private _firstShowEffectRun = true;\r\n private _firstBackdropEffectRun = true;\r\n private _backdropElement?: any;\r\n private _backdropClickUnlistenFunc?: any;\r\n private _backdropTransitionendUnlistenFunc?: any;\r\n private addClass = (c: string) => this._renderer.addClass(this._el.nativeElement, c);\r\n\r\n constructor(private _el: ElementRef, private _renderer: Renderer2) {\r\n\r\n afterNextRender(() => {\r\n if (this.show() && this.hasBackdrop()) {\r\n this._createBackdrop();\r\n }\r\n });\r\n\r\n effect(() => {\r\n var show = this.show();\r\n var backdrop = untracked(() => this.hasBackdrop());\r\n\r\n if (this._firstShowEffectRun) {\r\n if (show) {\r\n this.addClass('show');\r\n }\r\n this._firstShowEffectRun = false;\r\n return;\r\n }\r\n\r\n\r\n if (show) {\r\n this.addClass('show');\r\n if (backdrop)\r\n this._createBackdrop();\r\n } else {\r\n this.addClass('hiding');\r\n this._hideBackdrop(); // we first hide backdrop, after hide transition completed, we destroy it.\r\n }\r\n });\r\n\r\n effect(() => {\r\n var backdrop = this.hasBackdrop();\r\n var show = untracked(() => this.show());\r\n\r\n if (this._firstBackdropEffectRun) {\r\n this._firstBackdropEffectRun = false;\r\n return;\r\n }\r\n\r\n if (show) {\r\n if (backdrop)\r\n this._createBackdrop();\r\n else\r\n this._destroyBackdrop();\r\n }\r\n });\r\n }\r\n\r\n\r\n private _createBackdrop() {\r\n if (!this._backdropElement) {\r\n this._backdropElement = this._renderer.createElement('div');\r\n ['offcanvas-backdrop', 'fade', 'show'].forEach(c => this._renderer.addClass(this._backdropElement, c));\r\n\r\n // Append the new element next to the host element\r\n const parent = this._renderer.parentNode(this._el.nativeElement);\r\n const nextSibling = this._renderer.nextSibling(this._el.nativeElement);\r\n this._renderer.insertBefore(parent, this._backdropElement, nextSibling);\r\n\r\n this._backdropClickUnlistenFunc = this._renderer.listen(this._backdropElement, 'click', (e) => {\r\n this.backdropClick.emit(e);\r\n });\r\n\r\n this._backdropTransitionendUnlistenFunc = this._renderer.listen(this._backdropElement, 'transitionend', (e) => {\r\n if (!this.show()) {\r\n this._destroyBackdrop();\r\n }\r\n });\r\n }\r\n }\r\n\r\n private _destroyBackdrop() {\r\n if (this._backdropElement) {\r\n const parent = this._renderer.parentNode(this._el.nativeElement);\r\n this._renderer.removeChild(parent, this._backdropElement, false);\r\n this._backdropClickUnlistenFunc()\r\n\r\n this._backdropClickUnlistenFunc = undefined;\r\n this._backdropElement = undefined\r\n }\r\n }\r\n\r\n private _hideBackdrop() {\r\n if (this._backdropElement) {\r\n this._renderer.removeClass(this._backdropElement, 'show');\r\n }\r\n }\r\n\r\n @HostListener('transitionend', ['$event'])\r\n private _onTransitionend(e: TransitionEvent): void {\r\n if (!this.show() && e.propertyName == 'transform') {\r\n ['show', 'hiding'].forEach(x => this._renderer.removeClass(this._el.nativeElement, x));\r\n // if (this.backdrop())\r\n // this._destroyBackdrop();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._destroyBackdrop()\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { OffcanvasDirective } from './offcanvas.directive';\r\n\r\nconst items = [\r\n OffcanvasDirective,\r\n];\r\n\r\n@NgModule({\r\n imports: items,\r\n exports: items\r\n})\r\nexport class OffcanvasModule {\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}