@tetacom/ng-components 1.4.18 → 1.4.19

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 (110) hide show
  1. package/component/property-grid/property-grid/property-grid-item/property-grid-item.component.d.ts +2 -2
  2. package/esm2022/common/contract/teta-content-ref.mjs +1 -1
  3. package/esm2022/common/service/dynamic-component.service.mjs +1 -1
  4. package/esm2022/common/util/array-util.mjs +1 -1
  5. package/esm2022/common/util/position-util.mjs +1 -1
  6. package/esm2022/component/accordion/accordion-head/accordion-head.component.mjs +3 -3
  7. package/esm2022/component/accordion/accordion-item/accordion-item.component.mjs +3 -3
  8. package/esm2022/component/avatar/avatar/avatar.component.mjs +3 -3
  9. package/esm2022/component/chart-3d/chart3d/chart3d.component.mjs +1 -1
  10. package/esm2022/component/checkbox/checkbox/checkbox.component.mjs +3 -3
  11. package/esm2022/component/date-picker/base-calendar.mjs +1 -1
  12. package/esm2022/component/date-picker/base-picker.mjs +1 -1
  13. package/esm2022/component/date-picker/date-picker/date-calendar/date-calendar.component.mjs +3 -3
  14. package/esm2022/component/date-picker/date-picker/date-picker.component.mjs +3 -3
  15. package/esm2022/component/date-picker/date-range/date-range.component.mjs +3 -3
  16. package/esm2022/component/date-picker/date-range/range-calendar/range-calendar.component.mjs +3 -3
  17. package/esm2022/component/date-picker/day-picker/day-picker.component.mjs +3 -3
  18. package/esm2022/component/date-picker/month-picker/month-picker.component.mjs +3 -3
  19. package/esm2022/component/date-picker/year-picker/year-picker.component.mjs +3 -3
  20. package/esm2022/component/divider/divider/divider.component.mjs +3 -3
  21. package/esm2022/component/dropdown/dropdown/dropdown.component.mjs +1 -1
  22. package/esm2022/component/dropdown/dropdown-base.mjs +1 -1
  23. package/esm2022/component/dropdown/dropdown.directive.mjs +1 -1
  24. package/esm2022/component/expand-card/expand-card/expand-card.component.mjs +3 -3
  25. package/esm2022/component/expand-card/expand-item/expand-item.component.mjs +3 -3
  26. package/esm2022/component/expand-panel/expand-panel/expand-panel.component.mjs +3 -3
  27. package/esm2022/component/filter/boolean-filter/boolean-filter.component.mjs +3 -3
  28. package/esm2022/component/filter/date-filter/date-filter.component.mjs +3 -3
  29. package/esm2022/component/filter/list-filter/list-filter.component.mjs +3 -3
  30. package/esm2022/component/filter/numeric-filter/numeric-filter.component.mjs +3 -3
  31. package/esm2022/component/filter/string-filter/string-filter.component.mjs +1 -1
  32. package/esm2022/component/icon/icon.service.mjs +1 -1
  33. package/esm2022/component/input/input/input.component.mjs +3 -3
  34. package/esm2022/component/input/text-field/text-field.component.mjs +3 -3
  35. package/esm2022/component/message/message/message.component.mjs +3 -3
  36. package/esm2022/component/message/message-host/message-host.component.mjs +3 -3
  37. package/esm2022/component/modal/dialog/dialog.component.mjs +3 -3
  38. package/esm2022/component/modal/dialog.service.mjs +1 -1
  39. package/esm2022/component/modal/modal.service.mjs +1 -1
  40. package/esm2022/component/modal/model/modal-instance.mjs +1 -1
  41. package/esm2022/component/progress-bar/progress-bar/progress-bar.component.mjs +1 -1
  42. package/esm2022/component/property-grid/property-grid/property-grid-group/property-grid-group.component.mjs +3 -3
  43. package/esm2022/component/property-grid/property-grid/property-grid-item/property-grid-item.component.mjs +4 -4
  44. package/esm2022/component/property-grid/property-grid/property-grid.component.mjs +16 -7
  45. package/esm2022/component/radio/radio-button/radio-button.component.mjs +3 -3
  46. package/esm2022/component/resize-panel/resize-panel/resize-panel.component.mjs +1 -1
  47. package/esm2022/component/select/select/select.component.mjs +3 -3
  48. package/esm2022/component/sidebar/sidebar/sidebar.component.mjs +3 -3
  49. package/esm2022/component/stepper/stepper/stepper.component.mjs +3 -3
  50. package/esm2022/component/switch/switch/switch.component.mjs +1 -1
  51. package/esm2022/component/switch/switch-button/switch-button.component.mjs +1 -1
  52. package/esm2022/component/table/base/cell-component-base.mjs +1 -1
  53. package/esm2022/component/table/default/boolean-cell/boolean-cell.component.mjs +3 -3
  54. package/esm2022/component/table/default/date-cell/date-cell.component.mjs +3 -3
  55. package/esm2022/component/table/default/date-time-cell/date-time-cell.component.mjs +3 -3
  56. package/esm2022/component/table/default/default-head-cell/default-head-cell.component.mjs +3 -3
  57. package/esm2022/component/table/default/list-cell/list-cell.component.mjs +3 -3
  58. package/esm2022/component/table/default/numeric-cell/numeric-cell.component.mjs +3 -3
  59. package/esm2022/component/table/default/string-cell/string-cell.component.mjs +3 -3
  60. package/esm2022/component/table/head-cell/head-cell.component.mjs +3 -3
  61. package/esm2022/component/table/head-cell-dropdown/head-cell-dropdown.component.mjs +3 -3
  62. package/esm2022/component/table/selection-cell/selection-cell.component.mjs +1 -1
  63. package/esm2022/component/table/selection-head-cell/selection-head-cell.component.mjs +1 -1
  64. package/esm2022/component/table/service/table.service.mjs +1 -1
  65. package/esm2022/component/table/table/table.component.mjs +1 -1
  66. package/esm2022/component/table/table-body/table-body.component.mjs +3 -3
  67. package/esm2022/component/table/table-head/filter-dropdown-tab/filter-dropdown-tab.component.mjs +3 -3
  68. package/esm2022/component/table/table-head/main-dropdown-tab/main-dropdown-tab.component.mjs +3 -3
  69. package/esm2022/component/table/table-head/table-head.component.mjs +3 -3
  70. package/esm2022/component/table/table-head/visibility-dropdown-tab/visibility-dropdown-tab.component.mjs +3 -3
  71. package/esm2022/component/table/table-head-group/table-head-group.component.mjs +3 -3
  72. package/esm2022/component/table/util/state-util.mjs +1 -1
  73. package/esm2022/component/tabs/tabs/tabs.component.mjs +3 -3
  74. package/esm2022/component/toggle/toggle/toggle.component.mjs +3 -3
  75. package/esm2022/component/tree/tree/tree.component.mjs +3 -3
  76. package/esm2022/component/tree/tree-item/tree-item.component.mjs +1 -1
  77. package/esm2022/component/tree/tree-item-toggle/tree-item-toggle.component.mjs +1 -1
  78. package/esm2022/directive/auto-position/auto-position.directive.mjs +1 -1
  79. package/esm2022/directive/click-outside/click-outside.directive.mjs +1 -1
  80. package/esm2022/directive/context-menu/context-menu.directive.mjs +1 -1
  81. package/esm2022/directive/drag-drop/drag-container.directive.mjs +1 -1
  82. package/esm2022/directive/drag-drop/drag-drop.service.mjs +1 -1
  83. package/esm2022/directive/drag-drop/drag.directive.mjs +1 -1
  84. package/esm2022/directive/drag-sort/drag-sort-item.directive.mjs +1 -1
  85. package/esm2022/directive/dynamic-content-base.directive.mjs +1 -1
  86. package/esm2022/directive/highlight/highlight.directive.mjs +1 -1
  87. package/esm2022/directive/hint/hint.directive.mjs +1 -1
  88. package/esm2022/directive/let/let.directive.mjs +1 -1
  89. package/esm2022/directive/loader/loader.directive.mjs +1 -1
  90. package/esm2022/directive/no-autofill/no-autofill.directive.mjs +1 -1
  91. package/esm2022/directive/only-number/only-number.directive.mjs +1 -1
  92. package/esm2022/directive/scroll-into-view/scroll-into-view.directive.mjs +1 -1
  93. package/esm2022/directive/scrollable/scrollable/scrollable.component.mjs +1 -1
  94. package/esm2022/directive/tooltip/tooltip.directive.mjs +1 -1
  95. package/esm2022/observable/animation-frame.mjs +1 -1
  96. package/esm2022/observable/zone-observable.mjs +1 -1
  97. package/esm2022/pipe/number-pipe/number.pipe.mjs +1 -1
  98. package/esm2022/pipe/util/number-helper.mjs +1 -1
  99. package/esm2022/util/date-util.mjs +1 -1
  100. package/esm2022/util/forms-util.mjs +1 -1
  101. package/fesm2022/tetacom-ng-components.mjs +111 -103
  102. package/fesm2022/tetacom-ng-components.mjs.map +1 -1
  103. package/package.json +1 -1
  104. package/style/accordion.scss +3 -1
  105. package/style/chips.scss +5 -1
  106. package/style/datepicker.scss +3 -1
  107. package/style/input.scss +3 -1
  108. package/style/select.scss +3 -1
  109. package/style/tabs.scss +3 -1
  110. package/style/tag.scss +3 -1
@@ -77,11 +77,11 @@ class AccordionItemComponent {
77
77
  this.cdr$.detectChanges();
78
78
  }
79
79
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: AccordionItemComponent, deps: [{ token: AccordionComponent, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
80
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: AccordionItemComponent, isStandalone: true, selector: "teta-accordion-item", inputs: { open: "open", disabled: "disabled", divider: "divider", viewType: "viewType" }, host: { properties: { "class.accordion-item_active": "this.open", "class.accordion-item": "this.accordionItemClass", "class.accordion-item_divider": "this.dividerClass", "class": "this.class" } }, queries: [{ propertyName: "content", first: true, predicate: AccordionContentDirective, descendants: true }], ngImport: i0, template: "<ng-content select=\"teta-accordion-head\"></ng-content>\n@if (open) {\n<div class=\"accordion-content\">\n <ng-container *ngTemplateOutlet=\"content!.template\"></ng-container>\n</div>\n}\n", styles: [""], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
80
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: AccordionItemComponent, isStandalone: true, selector: "teta-accordion-item", inputs: { open: "open", disabled: "disabled", divider: "divider", viewType: "viewType" }, host: { properties: { "class.accordion-item_active": "this.open", "class.accordion-item": "this.accordionItemClass", "class.accordion-item_divider": "this.dividerClass", "class": "this.class" } }, queries: [{ propertyName: "content", first: true, predicate: AccordionContentDirective, descendants: true }], ngImport: i0, template: "<ng-content select=\"teta-accordion-head\"></ng-content>\n@if (open) {\n <div class=\"accordion-content\">\n <ng-container *ngTemplateOutlet=\"content!.template\"></ng-container>\n </div>\n}\n", styles: [""], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
81
81
  }
82
82
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: AccordionItemComponent, decorators: [{
83
83
  type: Component,
84
- args: [{ selector: 'teta-accordion-item', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgTemplateOutlet], template: "<ng-content select=\"teta-accordion-head\"></ng-content>\n@if (open) {\n<div class=\"accordion-content\">\n <ng-container *ngTemplateOutlet=\"content!.template\"></ng-container>\n</div>\n}\n" }]
84
+ args: [{ selector: 'teta-accordion-item', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgTemplateOutlet], template: "<ng-content select=\"teta-accordion-head\"></ng-content>\n@if (open) {\n <div class=\"accordion-content\">\n <ng-container *ngTemplateOutlet=\"content!.template\"></ng-container>\n </div>\n}\n" }]
85
85
  }], ctorParameters: () => [{ type: AccordionComponent, decorators: [{
86
86
  type: Optional
87
87
  }, {
@@ -273,11 +273,11 @@ class AccordionHeadComponent {
273
273
  }
274
274
  ngOnInit() { }
275
275
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: AccordionHeadComponent, deps: [{ token: AccordionItemComponent, host: true }], target: i0.ɵɵFactoryTarget.Component }); }
276
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: AccordionHeadComponent, isStandalone: true, selector: "teta-accordion-head", inputs: { showToggle: "showToggle" }, host: { listeners: { "click": "toggle()" }, properties: { "class.accordion-head": "this.accordionHeadClass", "class.accordion-head_open": "this.open", "class.accordion-head_disabled": "this.disabled" } }, ngImport: i0, template: "<ng-content></ng-content>\n@if (showToggle) {\n<div class=\"accordion-toggle\" [class.accordion-toggle_opened]=\"open\">\n <teta-icon [name]=\"'arrowDownKey'\"></teta-icon>\n</div>\n}\n", styles: [""], dependencies: [{ kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
276
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: AccordionHeadComponent, isStandalone: true, selector: "teta-accordion-head", inputs: { showToggle: "showToggle" }, host: { listeners: { "click": "toggle()" }, properties: { "class.accordion-head": "this.accordionHeadClass", "class.accordion-head_open": "this.open", "class.accordion-head_disabled": "this.disabled" } }, ngImport: i0, template: "<ng-content></ng-content>\n@if (showToggle) {\n <div class=\"accordion-toggle\" [class.accordion-toggle_opened]=\"open\">\n <teta-icon [name]=\"'arrowDownKey'\"></teta-icon>\n </div>\n}\n", styles: [""], dependencies: [{ kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
277
277
  }
278
278
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: AccordionHeadComponent, decorators: [{
279
279
  type: Component,
280
- args: [{ selector: 'teta-accordion-head', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [IconComponent], template: "<ng-content></ng-content>\n@if (showToggle) {\n<div class=\"accordion-toggle\" [class.accordion-toggle_opened]=\"open\">\n <teta-icon [name]=\"'arrowDownKey'\"></teta-icon>\n</div>\n}\n" }]
280
+ args: [{ selector: 'teta-accordion-head', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [IconComponent], template: "<ng-content></ng-content>\n@if (showToggle) {\n <div class=\"accordion-toggle\" [class.accordion-toggle_opened]=\"open\">\n <teta-icon [name]=\"'arrowDownKey'\"></teta-icon>\n </div>\n}\n" }]
281
281
  }], ctorParameters: () => [{ type: AccordionItemComponent, decorators: [{
282
282
  type: Host
283
283
  }, {
@@ -352,11 +352,11 @@ class AvatarComponent {
352
352
  }
353
353
  ngOnInit() { }
354
354
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: AvatarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
355
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: AvatarComponent, isStandalone: true, selector: "teta-avatar", inputs: { photo: "photo", name: "name", id: "id", viewType: "viewType", size: "size" }, host: { properties: { "class": "this.avatar" } }, ngImport: i0, template: "<div [class]=\"avatar\">\n @if (photo) {\n <img [class]=\"'avatar_' + this.viewType\" [src]=\"photo\" alt=\"\" />\n } @else {\n <div\n [class]=\"'avatar_' + this.viewType\"\n [style.background-color]=\"colorMap.get(id % 17) || colorMap.get(0)\"\n class=\"column align-center justify-content-center position-relative\"\n >\n @if (name) {\n <p>{{ name }}</p>\n } @else {\n <teta-icon\n class=\"width-10 height-10\"\n style=\"fill: white;width:{{ size }}px; height:{{ size }}px\"\n name=\"photoCamera\"\n ></teta-icon>\n }\n <div\n [class]=\"'avatar_' + this.viewType\"\n class=\"position-absolute\"\n style=\"width: 100%;z-index:1;height: 100%; background: linear-gradient(180deg, rgba(255, 255, 255, 0.24) 0%, rgba(255, 255, 255, 0) 100%);'\"\n ></div>\n </div>\n }\n</div>\n", styles: [".avatar{font-style:normal;font-weight:600;line-height:16px}.avatar_brick{border-radius:var(--radius-base-brick)}.avatar_circle{border-radius:var(--radius-base-circle)}.avatar_rounded{border-radius:var(--radius-base-round)}.avatar-size-24{height:24px;width:24px;font-size:11px}.avatar-size-24 img,.avatar-size-24 div{height:24px;width:24px}.avatar-size-28{height:28px;width:28px;font-size:11px}.avatar-size-28 img,.avatar-size-28 div{height:28px;width:28px}.avatar-size-32{height:32px;width:32px;font-size:11px}.avatar-size-32 img,.avatar-size-32 div{height:32px;width:32px}.avatar-size-44{height:44px;width:44px;font-size:14px}.avatar-size-44 img,.avatar-size-44 div{height:44px;width:44px}.avatar-size-64{height:64px;width:64px;font-size:16px}.avatar-size-64 img,.avatar-size-64 div{height:64px;width:64px}.avatar-size-128{height:128px;width:128px;font-size:28px}.avatar-size-128 img,.avatar-size-128 div{height:128px;width:128px}.avatar-size-200{height:200px;width:200px;font-size:35px}.avatar-size-200 img,.avatar-size-200 div{height:200px;width:200px}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
355
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: AvatarComponent, isStandalone: true, selector: "teta-avatar", inputs: { photo: "photo", name: "name", id: "id", viewType: "viewType", size: "size" }, host: { properties: { "class": "this.avatar" } }, ngImport: i0, template: "<div [class]=\"avatar\">\n @if (photo) {\n <img [class]=\"'avatar_' + this.viewType\" [src]=\"photo\" alt=\"\" />\n } @else {\n <div\n [class]=\"'avatar_' + this.viewType\"\n [style.background-color]=\"colorMap.get(id % 17) || colorMap.get(0)\"\n class=\"column align-center justify-content-center position-relative\"\n >\n @if (name) {\n <p>{{ name }}</p>\n } @else {\n <teta-icon\n class=\"width-10 height-10\"\n style=\"fill: white;width:{{ size }}px; height:{{ size }}px\"\n name=\"photoCamera\"\n ></teta-icon>\n }\n <div\n [class]=\"'avatar_' + this.viewType\"\n class=\"position-absolute\"\n style=\"width: 100%;z-index:1;height: 100%; background: linear-gradient(180deg, rgba(255, 255, 255, 0.24) 0%, rgba(255, 255, 255, 0) 100%);'\"\n ></div>\n </div>\n }\n</div>\n", styles: [".avatar{font-style:normal;font-weight:600;line-height:16px}.avatar_brick{border-radius:var(--radius-base-brick)}.avatar_circle{border-radius:var(--radius-base-circle)}.avatar_rounded{border-radius:var(--radius-base-round)}.avatar-size-24{height:24px;width:24px;font-size:11px}.avatar-size-24 img,.avatar-size-24 div{height:24px;width:24px}.avatar-size-28{height:28px;width:28px;font-size:11px}.avatar-size-28 img,.avatar-size-28 div{height:28px;width:28px}.avatar-size-32{height:32px;width:32px;font-size:11px}.avatar-size-32 img,.avatar-size-32 div{height:32px;width:32px}.avatar-size-44{height:44px;width:44px;font-size:14px}.avatar-size-44 img,.avatar-size-44 div{height:44px;width:44px}.avatar-size-64{height:64px;width:64px;font-size:16px}.avatar-size-64 img,.avatar-size-64 div{height:64px;width:64px}.avatar-size-128{height:128px;width:128px;font-size:28px}.avatar-size-128 img,.avatar-size-128 div{height:128px;width:128px}.avatar-size-200{height:200px;width:200px;font-size:35px}.avatar-size-200 img,.avatar-size-200 div{height:200px;width:200px}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
356
356
  }
357
357
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: AvatarComponent, decorators: [{
358
358
  type: Component,
359
- args: [{ selector: 'teta-avatar', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [IconComponent], template: "<div [class]=\"avatar\">\n @if (photo) {\n <img [class]=\"'avatar_' + this.viewType\" [src]=\"photo\" alt=\"\" />\n } @else {\n <div\n [class]=\"'avatar_' + this.viewType\"\n [style.background-color]=\"colorMap.get(id % 17) || colorMap.get(0)\"\n class=\"column align-center justify-content-center position-relative\"\n >\n @if (name) {\n <p>{{ name }}</p>\n } @else {\n <teta-icon\n class=\"width-10 height-10\"\n style=\"fill: white;width:{{ size }}px; height:{{ size }}px\"\n name=\"photoCamera\"\n ></teta-icon>\n }\n <div\n [class]=\"'avatar_' + this.viewType\"\n class=\"position-absolute\"\n style=\"width: 100%;z-index:1;height: 100%; background: linear-gradient(180deg, rgba(255, 255, 255, 0.24) 0%, rgba(255, 255, 255, 0) 100%);'\"\n ></div>\n </div>\n }\n</div>\n", styles: [".avatar{font-style:normal;font-weight:600;line-height:16px}.avatar_brick{border-radius:var(--radius-base-brick)}.avatar_circle{border-radius:var(--radius-base-circle)}.avatar_rounded{border-radius:var(--radius-base-round)}.avatar-size-24{height:24px;width:24px;font-size:11px}.avatar-size-24 img,.avatar-size-24 div{height:24px;width:24px}.avatar-size-28{height:28px;width:28px;font-size:11px}.avatar-size-28 img,.avatar-size-28 div{height:28px;width:28px}.avatar-size-32{height:32px;width:32px;font-size:11px}.avatar-size-32 img,.avatar-size-32 div{height:32px;width:32px}.avatar-size-44{height:44px;width:44px;font-size:14px}.avatar-size-44 img,.avatar-size-44 div{height:44px;width:44px}.avatar-size-64{height:64px;width:64px;font-size:16px}.avatar-size-64 img,.avatar-size-64 div{height:64px;width:64px}.avatar-size-128{height:128px;width:128px;font-size:28px}.avatar-size-128 img,.avatar-size-128 div{height:128px;width:128px}.avatar-size-200{height:200px;width:200px;font-size:35px}.avatar-size-200 img,.avatar-size-200 div{height:200px;width:200px}\n"] }]
359
+ args: [{ selector: 'teta-avatar', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [IconComponent], template: "<div [class]=\"avatar\">\n @if (photo) {\n <img [class]=\"'avatar_' + this.viewType\" [src]=\"photo\" alt=\"\" />\n } @else {\n <div\n [class]=\"'avatar_' + this.viewType\"\n [style.background-color]=\"colorMap.get(id % 17) || colorMap.get(0)\"\n class=\"column align-center justify-content-center position-relative\"\n >\n @if (name) {\n <p>{{ name }}</p>\n } @else {\n <teta-icon\n class=\"width-10 height-10\"\n style=\"fill: white;width:{{ size }}px; height:{{ size }}px\"\n name=\"photoCamera\"\n ></teta-icon>\n }\n <div\n [class]=\"'avatar_' + this.viewType\"\n class=\"position-absolute\"\n style=\"width: 100%;z-index:1;height: 100%; background: linear-gradient(180deg, rgba(255, 255, 255, 0.24) 0%, rgba(255, 255, 255, 0) 100%);'\"\n ></div>\n </div>\n }\n</div>\n", styles: [".avatar{font-style:normal;font-weight:600;line-height:16px}.avatar_brick{border-radius:var(--radius-base-brick)}.avatar_circle{border-radius:var(--radius-base-circle)}.avatar_rounded{border-radius:var(--radius-base-round)}.avatar-size-24{height:24px;width:24px;font-size:11px}.avatar-size-24 img,.avatar-size-24 div{height:24px;width:24px}.avatar-size-28{height:28px;width:28px;font-size:11px}.avatar-size-28 img,.avatar-size-28 div{height:28px;width:28px}.avatar-size-32{height:32px;width:32px;font-size:11px}.avatar-size-32 img,.avatar-size-32 div{height:32px;width:32px}.avatar-size-44{height:44px;width:44px;font-size:14px}.avatar-size-44 img,.avatar-size-44 div{height:44px;width:44px}.avatar-size-64{height:64px;width:64px;font-size:16px}.avatar-size-64 img,.avatar-size-64 div{height:64px;width:64px}.avatar-size-128{height:128px;width:128px;font-size:28px}.avatar-size-128 img,.avatar-size-128 div{height:128px;width:128px}.avatar-size-200{height:200px;width:200px;font-size:35px}.avatar-size-200 img,.avatar-size-200 div{height:200px;width:200px}\n"] }]
360
360
  }], ctorParameters: () => [], propDecorators: { photo: [{
361
361
  type: Input
362
362
  }], name: [{
@@ -814,11 +814,11 @@ class CheckboxComponent {
814
814
  this.cdr.detectChanges();
815
815
  }
816
816
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: CheckboxComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
817
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: CheckboxComponent, isStandalone: true, selector: "teta-checkbox", inputs: { class: "class", palette: "palette", noLabel: "noLabel", disabled: "disabled", value: "value", binary: "binary", labelPosition: "labelPosition", allowNull: "allowNull" }, host: { listeners: { "click": "changeValue()" }, properties: { "attr.tabindex": "this.tabindex", "class": "this.getClass", "class.checkbox_disabled": "this.disabled" } }, providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "@if (labelPosition==='right') {\n<div class=\"checkbox__tick\" [class.checkbox__tick_active]=\"checked != false\">\n <teta-icon [name]=\"checked ? 'tick' : checked === false ? '' : 'dash'\"></teta-icon>\n</div>\n@if (!noLabel) {\n<span class=\"font-body-3\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</span>\n} } @if (labelPosition==='left') { @if (!noLabel) {\n<span class=\"font-body-3\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</span>\n}\n<div class=\"checkbox__tick\" [class.checkbox__tick_active]=\"checked != false\">\n <teta-icon [name]=\"checked ? 'tick' : checked === false ? '' : 'dash'\"></teta-icon>\n</div>\n}\n<ng-template #content><ng-content></ng-content></ng-template>\n", styles: [""], dependencies: [{ kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
817
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: CheckboxComponent, isStandalone: true, selector: "teta-checkbox", inputs: { class: "class", palette: "palette", noLabel: "noLabel", disabled: "disabled", value: "value", binary: "binary", labelPosition: "labelPosition", allowNull: "allowNull" }, host: { listeners: { "click": "changeValue()" }, properties: { "attr.tabindex": "this.tabindex", "class": "this.getClass", "class.checkbox_disabled": "this.disabled" } }, providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "@if (labelPosition === 'right') {\n <div class=\"checkbox__tick\" [class.checkbox__tick_active]=\"checked != false\">\n <teta-icon [name]=\"checked ? 'tick' : checked === false ? '' : 'dash'\"></teta-icon>\n </div>\n @if (!noLabel) {\n <span class=\"font-body-3\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </span>\n }\n}\n@if (labelPosition === 'left') {\n @if (!noLabel) {\n <span class=\"font-body-3\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </span>\n }\n <div class=\"checkbox__tick\" [class.checkbox__tick_active]=\"checked != false\">\n <teta-icon [name]=\"checked ? 'tick' : checked === false ? '' : 'dash'\"></teta-icon>\n </div>\n}\n<ng-template #content><ng-content></ng-content></ng-template>\n", styles: [""], dependencies: [{ kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
818
818
  }
819
819
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: CheckboxComponent, decorators: [{
820
820
  type: Component,
821
- args: [{ selector: 'teta-checkbox', providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [IconComponent, NgTemplateOutlet], template: "@if (labelPosition==='right') {\n<div class=\"checkbox__tick\" [class.checkbox__tick_active]=\"checked != false\">\n <teta-icon [name]=\"checked ? 'tick' : checked === false ? '' : 'dash'\"></teta-icon>\n</div>\n@if (!noLabel) {\n<span class=\"font-body-3\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</span>\n} } @if (labelPosition==='left') { @if (!noLabel) {\n<span class=\"font-body-3\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</span>\n}\n<div class=\"checkbox__tick\" [class.checkbox__tick_active]=\"checked != false\">\n <teta-icon [name]=\"checked ? 'tick' : checked === false ? '' : 'dash'\"></teta-icon>\n</div>\n}\n<ng-template #content><ng-content></ng-content></ng-template>\n" }]
821
+ args: [{ selector: 'teta-checkbox', providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [IconComponent, NgTemplateOutlet], template: "@if (labelPosition === 'right') {\n <div class=\"checkbox__tick\" [class.checkbox__tick_active]=\"checked != false\">\n <teta-icon [name]=\"checked ? 'tick' : checked === false ? '' : 'dash'\"></teta-icon>\n </div>\n @if (!noLabel) {\n <span class=\"font-body-3\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </span>\n }\n}\n@if (labelPosition === 'left') {\n @if (!noLabel) {\n <span class=\"font-body-3\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </span>\n }\n <div class=\"checkbox__tick\" [class.checkbox__tick_active]=\"checked != false\">\n <teta-icon [name]=\"checked ? 'tick' : checked === false ? '' : 'dash'\"></teta-icon>\n </div>\n}\n<ng-template #content><ng-content></ng-content></ng-template>\n" }]
822
822
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { tabindex: [{
823
823
  type: HostBinding,
824
824
  args: ['attr.tabindex']
@@ -1235,11 +1235,11 @@ class YearPickerComponent {
1235
1235
  return false;
1236
1236
  }
1237
1237
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: YearPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1238
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: YearPickerComponent, isStandalone: true, selector: "teta-year-picker", inputs: { selectedYear: "selectedYear", viewType: "viewType", minMax: "minMax", locale: "locale" }, outputs: { selectYear: "selectYear" }, ngImport: i0, template: "<div class=\"column\">\n <div class=\"font-title-3 padding-v-4 padding-h-3\">\n <p>{{ locale.selectYear }}</p>\n </div>\n <div class=\"datepicker-year overflow-y-auto\">\n @for (y of years; track y) {\n <div class=\"font-button-2\" (click)=\"pickYear(y.id, y.disabled)\">\n <div\n [ngClass]=\"{ 'datepicker-year_item_active': y.isSelected, 'datepicker-year_item_disabled': y.disabled }\"\n [class]=\"'datepicker-year_item column align-center justify-content-center datepicker_' + viewType\"\n >\n @if ( y.isSelected===true) {\n <div tetaScrollToSelectedYear>\n <span>{{ y.id }}</span>\n </div>\n } @if (!y.isSelected) {\n <div>\n <span>{{ y.id }} </span>\n </div>\n }\n </div>\n </div>\n }\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: ScrollToSelectedYearDirective, selector: "[tetaScrollToSelectedYear]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1238
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: YearPickerComponent, isStandalone: true, selector: "teta-year-picker", inputs: { selectedYear: "selectedYear", viewType: "viewType", minMax: "minMax", locale: "locale" }, outputs: { selectYear: "selectYear" }, ngImport: i0, template: "<div class=\"column\">\n <div class=\"font-title-3 padding-v-4 padding-h-3\">\n <p>{{ locale.selectYear }}</p>\n </div>\n <div class=\"datepicker-year overflow-y-auto\">\n @for (y of years; track y) {\n <div class=\"font-button-2\" (click)=\"pickYear(y.id, y.disabled)\">\n <div\n [ngClass]=\"{ 'datepicker-year_item_active': y.isSelected, 'datepicker-year_item_disabled': y.disabled }\"\n [class]=\"'datepicker-year_item column align-center justify-content-center datepicker_' + viewType\"\n >\n @if (y.isSelected === true) {\n <div tetaScrollToSelectedYear>\n <span>{{ y.id }}</span>\n </div>\n }\n @if (!y.isSelected) {\n <div>\n <span>{{ y.id }} </span>\n </div>\n }\n </div>\n </div>\n }\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: ScrollToSelectedYearDirective, selector: "[tetaScrollToSelectedYear]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1239
1239
  }
1240
1240
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: YearPickerComponent, decorators: [{
1241
1241
  type: Component,
1242
- args: [{ selector: 'teta-year-picker', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass, ScrollToSelectedYearDirective], template: "<div class=\"column\">\n <div class=\"font-title-3 padding-v-4 padding-h-3\">\n <p>{{ locale.selectYear }}</p>\n </div>\n <div class=\"datepicker-year overflow-y-auto\">\n @for (y of years; track y) {\n <div class=\"font-button-2\" (click)=\"pickYear(y.id, y.disabled)\">\n <div\n [ngClass]=\"{ 'datepicker-year_item_active': y.isSelected, 'datepicker-year_item_disabled': y.disabled }\"\n [class]=\"'datepicker-year_item column align-center justify-content-center datepicker_' + viewType\"\n >\n @if ( y.isSelected===true) {\n <div tetaScrollToSelectedYear>\n <span>{{ y.id }}</span>\n </div>\n } @if (!y.isSelected) {\n <div>\n <span>{{ y.id }} </span>\n </div>\n }\n </div>\n </div>\n }\n </div>\n</div>\n" }]
1242
+ args: [{ selector: 'teta-year-picker', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass, ScrollToSelectedYearDirective], template: "<div class=\"column\">\n <div class=\"font-title-3 padding-v-4 padding-h-3\">\n <p>{{ locale.selectYear }}</p>\n </div>\n <div class=\"datepicker-year overflow-y-auto\">\n @for (y of years; track y) {\n <div class=\"font-button-2\" (click)=\"pickYear(y.id, y.disabled)\">\n <div\n [ngClass]=\"{ 'datepicker-year_item_active': y.isSelected, 'datepicker-year_item_disabled': y.disabled }\"\n [class]=\"'datepicker-year_item column align-center justify-content-center datepicker_' + viewType\"\n >\n @if (y.isSelected === true) {\n <div tetaScrollToSelectedYear>\n <span>{{ y.id }}</span>\n </div>\n }\n @if (!y.isSelected) {\n <div>\n <span>{{ y.id }} </span>\n </div>\n }\n </div>\n </div>\n }\n </div>\n</div>\n" }]
1243
1243
  }], ctorParameters: () => [], propDecorators: { selectedYear: [{
1244
1244
  type: Input
1245
1245
  }], viewType: [{
@@ -1275,11 +1275,11 @@ class MonthPickerComponent {
1275
1275
  });
1276
1276
  }
1277
1277
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: MonthPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1278
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: MonthPickerComponent, isStandalone: true, selector: "teta-month-picker", inputs: { selectedMonth: "selectedMonth", viewType: "viewType", currentYear: "currentYear", localeMoths: "localeMoths" }, outputs: { selectMonth: "selectMonth", changeYear: "changeYear" }, ngImport: i0, template: "<div class=\"padding-h-3 padding-v-2 gap-8 column datepicker-month-wrapper\">\n <div class=\"row align-center justify-content-between font-button-2\">\n <teta-button\n [class]=\"'change-month-button datepicker_' + viewType\"\n [square]=\"true\"\n (click)=\"pickYear(currentYear - 1)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <p>{{ currentYear }}</p>\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n (click)=\"pickYear(currentYear + 1)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div class=\"datepicker-month font-body-3 color-text-90\" style=\"width: 100%\">\n @for (month of months; track month) {\n <div (click)=\"pickMonth(month.id)\">\n <div\n [ngClass]=\"{ 'datepicker-month_item_active': month['isSelected'] }\"\n [class]=\"'datepicker-month_item column align-center justify-content-center datepicker_' + viewType\"\n >\n <p>\n {{ month.name }}\n </p>\n </div>\n </div>\n }\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1278
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: MonthPickerComponent, isStandalone: true, selector: "teta-month-picker", inputs: { selectedMonth: "selectedMonth", viewType: "viewType", currentYear: "currentYear", localeMoths: "localeMoths" }, outputs: { selectMonth: "selectMonth", changeYear: "changeYear" }, ngImport: i0, template: "<div class=\"padding-h-3 padding-v-2 gap-8 column datepicker-month-wrapper\">\n <div class=\"row align-center justify-content-between font-button-2\">\n <teta-button\n [class]=\"'change-month-button datepicker_' + viewType\"\n [square]=\"true\"\n (click)=\"pickYear(currentYear - 1)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <p>{{ currentYear }}</p>\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n (click)=\"pickYear(currentYear + 1)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div class=\"datepicker-month font-body-3 color-text-90\" style=\"width: 100%\">\n @for (month of months; track month) {\n <div (click)=\"pickMonth(month.id)\">\n <div\n [ngClass]=\"{ 'datepicker-month_item_active': month['isSelected'] }\"\n [class]=\"'datepicker-month_item column align-center justify-content-center datepicker_' + viewType\"\n >\n <p>\n {{ month.name }}\n </p>\n </div>\n </div>\n }\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1279
1279
  }
1280
1280
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: MonthPickerComponent, decorators: [{
1281
1281
  type: Component,
1282
- args: [{ selector: 'teta-month-picker', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ButtonComponent, IconComponent, NgClass], template: "<div class=\"padding-h-3 padding-v-2 gap-8 column datepicker-month-wrapper\">\n <div class=\"row align-center justify-content-between font-button-2\">\n <teta-button\n [class]=\"'change-month-button datepicker_' + viewType\"\n [square]=\"true\"\n (click)=\"pickYear(currentYear - 1)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <p>{{ currentYear }}</p>\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n (click)=\"pickYear(currentYear + 1)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div class=\"datepicker-month font-body-3 color-text-90\" style=\"width: 100%\">\n @for (month of months; track month) {\n <div (click)=\"pickMonth(month.id)\">\n <div\n [ngClass]=\"{ 'datepicker-month_item_active': month['isSelected'] }\"\n [class]=\"'datepicker-month_item column align-center justify-content-center datepicker_' + viewType\"\n >\n <p>\n {{ month.name }}\n </p>\n </div>\n </div>\n }\n </div>\n</div>\n" }]
1282
+ args: [{ selector: 'teta-month-picker', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ButtonComponent, IconComponent, NgClass], template: "<div class=\"padding-h-3 padding-v-2 gap-8 column datepicker-month-wrapper\">\n <div class=\"row align-center justify-content-between font-button-2\">\n <teta-button\n [class]=\"'change-month-button datepicker_' + viewType\"\n [square]=\"true\"\n (click)=\"pickYear(currentYear - 1)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <p>{{ currentYear }}</p>\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n (click)=\"pickYear(currentYear + 1)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div class=\"datepicker-month font-body-3 color-text-90\" style=\"width: 100%\">\n @for (month of months; track month) {\n <div (click)=\"pickMonth(month.id)\">\n <div\n [ngClass]=\"{ 'datepicker-month_item_active': month['isSelected'] }\"\n [class]=\"'datepicker-month_item column align-center justify-content-center datepicker_' + viewType\"\n >\n <p>\n {{ month.name }}\n </p>\n </div>\n </div>\n }\n </div>\n</div>\n" }]
1283
1283
  }], ctorParameters: () => [], propDecorators: { selectedMonth: [{
1284
1284
  type: Input
1285
1285
  }], viewType: [{
@@ -1392,11 +1392,11 @@ class DayPickerComponent {
1392
1392
  this.dayOrder = arr;
1393
1393
  }
1394
1394
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DayPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1395
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DayPickerComponent, isStandalone: true, selector: "teta-day-picker", inputs: { date: "date", calendar: "calendar", viewType: "viewType", range: "range", min: "min", max: "max", locale: "locale", hoveredDate: "hoveredDate" }, outputs: { hoveredDateChange: "hoveredDateChange", selectDate: "selectDate" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"datepicker-week font-caption\">\n @for (day of dayOrder; track day) {\n <p class=\"datepicker-day\">\n {{ day }}\n </p>\n }\n</div>\n<div class=\"datepicker-picker color-text-90 font-body-3\">\n @for (day of calendar; track day.date.getTime()) {\n <div\n [class]=\"getRangeActiveClass(day) + ' datepicker-date font-body-3 datepicker_' + viewType\"\n (mouseenter)=\"hover(day.date)\"\n (click)=\"pickDate(day)\"\n [ngClass]=\"{\n 'datepicker-date_active': day.selected || (day.date === hoveredDate && range && !range.to),\n 'datepicker-date-range_hover': range && isHoveredRange(day),\n 'datepicker-date_disabled': day.disabled,\n 'color-text-30': day.disabled || (!range && !day.isCurrentMonth),\n 'datepicker-date-range_disabled': !day.isCurrentMonth && range,\n 'datepicker-date-range_active': isActiveRange(day)\n }\"\n >\n <teta-day-item [day]=\"day\"></teta-day-item>\n </div>\n }\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: DayItemComponent, selector: "teta-day-item", inputs: ["day"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1395
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DayPickerComponent, isStandalone: true, selector: "teta-day-picker", inputs: { date: "date", calendar: "calendar", viewType: "viewType", range: "range", min: "min", max: "max", locale: "locale", hoveredDate: "hoveredDate" }, outputs: { hoveredDateChange: "hoveredDateChange", selectDate: "selectDate" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"datepicker-week font-caption\">\n @for (day of dayOrder; track day) {\n <p class=\"datepicker-day\">\n {{ day }}\n </p>\n }\n</div>\n<div class=\"datepicker-picker color-text-90 font-body-3\">\n @for (day of calendar; track day.date.getTime()) {\n <div\n [class]=\"getRangeActiveClass(day) + ' datepicker-date font-body-3 datepicker_' + viewType\"\n (mouseenter)=\"hover(day.date)\"\n (click)=\"pickDate(day)\"\n [ngClass]=\"{\n 'datepicker-date_active': day.selected || (day.date === hoveredDate && range && !range.to),\n 'datepicker-date-range_hover': range && isHoveredRange(day),\n 'datepicker-date_disabled': day.disabled,\n 'color-text-30': day.disabled || (!range && !day.isCurrentMonth),\n 'datepicker-date-range_disabled': !day.isCurrentMonth && range,\n 'datepicker-date-range_active': isActiveRange(day),\n }\"\n >\n <teta-day-item [day]=\"day\"></teta-day-item>\n </div>\n }\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: DayItemComponent, selector: "teta-day-item", inputs: ["day"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1396
1396
  }
1397
1397
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DayPickerComponent, decorators: [{
1398
1398
  type: Component,
1399
- args: [{ selector: 'teta-day-picker', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass, DayItemComponent], template: "<div class=\"datepicker-week font-caption\">\n @for (day of dayOrder; track day) {\n <p class=\"datepicker-day\">\n {{ day }}\n </p>\n }\n</div>\n<div class=\"datepicker-picker color-text-90 font-body-3\">\n @for (day of calendar; track day.date.getTime()) {\n <div\n [class]=\"getRangeActiveClass(day) + ' datepicker-date font-body-3 datepicker_' + viewType\"\n (mouseenter)=\"hover(day.date)\"\n (click)=\"pickDate(day)\"\n [ngClass]=\"{\n 'datepicker-date_active': day.selected || (day.date === hoveredDate && range && !range.to),\n 'datepicker-date-range_hover': range && isHoveredRange(day),\n 'datepicker-date_disabled': day.disabled,\n 'color-text-30': day.disabled || (!range && !day.isCurrentMonth),\n 'datepicker-date-range_disabled': !day.isCurrentMonth && range,\n 'datepicker-date-range_active': isActiveRange(day)\n }\"\n >\n <teta-day-item [day]=\"day\"></teta-day-item>\n </div>\n }\n</div>\n" }]
1399
+ args: [{ selector: 'teta-day-picker', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass, DayItemComponent], template: "<div class=\"datepicker-week font-caption\">\n @for (day of dayOrder; track day) {\n <p class=\"datepicker-day\">\n {{ day }}\n </p>\n }\n</div>\n<div class=\"datepicker-picker color-text-90 font-body-3\">\n @for (day of calendar; track day.date.getTime()) {\n <div\n [class]=\"getRangeActiveClass(day) + ' datepicker-date font-body-3 datepicker_' + viewType\"\n (mouseenter)=\"hover(day.date)\"\n (click)=\"pickDate(day)\"\n [ngClass]=\"{\n 'datepicker-date_active': day.selected || (day.date === hoveredDate && range && !range.to),\n 'datepicker-date-range_hover': range && isHoveredRange(day),\n 'datepicker-date_disabled': day.disabled,\n 'color-text-30': day.disabled || (!range && !day.isCurrentMonth),\n 'datepicker-date-range_disabled': !day.isCurrentMonth && range,\n 'datepicker-date-range_active': isActiveRange(day),\n }\"\n >\n <teta-day-item [day]=\"day\"></teta-day-item>\n </div>\n }\n</div>\n" }]
1400
1400
  }], ctorParameters: () => [], propDecorators: { date: [{
1401
1401
  type: Input
1402
1402
  }], calendar: [{
@@ -1435,11 +1435,11 @@ class DateCalendarComponent extends BaseCalendar {
1435
1435
  });
1436
1436
  }
1437
1437
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DateCalendarComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
1438
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DateCalendarComponent, isStandalone: true, selector: "teta-date-calendar", inputs: { selectedDate: "selectedDate", open: "open", locale: "locale", viewType: "viewType", min: "min", isDateNull: "isDateNull", max: "max" }, outputs: { setDate: "setDate" }, usesInheritance: true, ngImport: i0, template: "@if ({currentMonth:currentMonth|async,currentYear:currentYear|async,selectedPicker:selectedPicker|async}; as data) {\n<div class=\"datepicker-content overflow-y-auto\">\n @if (data.selectedPicker==='day') {\n <div class=\"padding-h-3 padding-v-2\" (wheel)=\"scrollMonth($event, data.currentMonth, data.currentYear)\">\n <div class=\"row align-center justify-content-between\">\n <teta-button\n [class]=\"'change-month-button datepicker_' + viewType\"\n [square]=\"true\"\n (click)=\"changeMonth(data.currentMonth - 1, data.currentYear)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2\">\n <button\n [class]=\"'datepicker_' + viewType\"\n teta-button\n view=\"ghost\"\n palette=\"text\"\n (click)=\"selectPicker('month')\"\n >\n {{ getMothName(data.currentMonth) }}\n </button>\n <button\n [class]=\"'datepicker_' + viewType\"\n teta-button\n view=\"ghost\"\n palette=\"text\"\n (click)=\"selectPicker('year')\"\n >\n {{ data.currentYear }}\n </button>\n </div>\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n (click)=\"changeMonth(data.currentMonth + 1, data.currentYear)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker\n [viewType]=\"viewType\"\n (selectDate)=\"selectDate($event)\"\n [locale]=\"locale\"\n [calendar]=\"calendar\"\n ></teta-day-picker>\n </div>\n </div>\n } @if (data.selectedPicker==='month') {\n <teta-month-picker\n [localeMoths]=\"locale.months\"\n [currentYear]=\"data.currentYear\"\n (changeYear)=\"setYear($event)\"\n [selectedMonth]=\"data.currentMonth\"\n [viewType]=\"viewType\"\n (selectMonth)=\"selectMonth($event)\"\n ></teta-month-picker>\n } @if (data.selectedPicker==='year') {\n <teta-year-picker\n [locale]=\"locale\"\n [viewType]=\"viewType\"\n (selectYear)=\"selectYear($event)\"\n [selectedYear]=\"data.currentYear\"\n ></teta-year-picker>\n }\n</div>\n}\n", styles: [".change-month-button{-webkit-user-select:none;user-select:none}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "component", type: DayPickerComponent, selector: "teta-day-picker", inputs: ["date", "calendar", "viewType", "range", "min", "max", "locale", "hoveredDate"], outputs: ["hoveredDateChange", "selectDate"] }, { kind: "component", type: MonthPickerComponent, selector: "teta-month-picker", inputs: ["selectedMonth", "viewType", "currentYear", "localeMoths"], outputs: ["selectMonth", "changeYear"] }, { kind: "component", type: YearPickerComponent, selector: "teta-year-picker", inputs: ["selectedYear", "viewType", "minMax", "locale"], outputs: ["selectYear"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1438
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DateCalendarComponent, isStandalone: true, selector: "teta-date-calendar", inputs: { selectedDate: "selectedDate", open: "open", locale: "locale", viewType: "viewType", min: "min", isDateNull: "isDateNull", max: "max" }, outputs: { setDate: "setDate" }, usesInheritance: true, ngImport: i0, template: "@if (\n { currentMonth: currentMonth | async, currentYear: currentYear | async, selectedPicker: selectedPicker | async };\n as data\n) {\n <div class=\"datepicker-content overflow-y-auto\">\n @if (data.selectedPicker === 'day') {\n <div class=\"padding-h-3 padding-v-2\" (wheel)=\"scrollMonth($event, data.currentMonth, data.currentYear)\">\n <div class=\"row align-center justify-content-between\">\n <teta-button\n [class]=\"'change-month-button datepicker_' + viewType\"\n [square]=\"true\"\n (click)=\"changeMonth(data.currentMonth - 1, data.currentYear)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2\">\n <button\n [class]=\"'datepicker_' + viewType\"\n teta-button\n view=\"ghost\"\n palette=\"text\"\n (click)=\"selectPicker('month')\"\n >\n {{ getMothName(data.currentMonth) }}\n </button>\n <button\n [class]=\"'datepicker_' + viewType\"\n teta-button\n view=\"ghost\"\n palette=\"text\"\n (click)=\"selectPicker('year')\"\n >\n {{ data.currentYear }}\n </button>\n </div>\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n (click)=\"changeMonth(data.currentMonth + 1, data.currentYear)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker\n [viewType]=\"viewType\"\n (selectDate)=\"selectDate($event)\"\n [locale]=\"locale\"\n [calendar]=\"calendar\"\n ></teta-day-picker>\n </div>\n </div>\n }\n @if (data.selectedPicker === 'month') {\n <teta-month-picker\n [localeMoths]=\"locale.months\"\n [currentYear]=\"data.currentYear\"\n (changeYear)=\"setYear($event)\"\n [selectedMonth]=\"data.currentMonth\"\n [viewType]=\"viewType\"\n (selectMonth)=\"selectMonth($event)\"\n ></teta-month-picker>\n }\n @if (data.selectedPicker === 'year') {\n <teta-year-picker\n [locale]=\"locale\"\n [viewType]=\"viewType\"\n (selectYear)=\"selectYear($event)\"\n [selectedYear]=\"data.currentYear\"\n ></teta-year-picker>\n }\n </div>\n}\n", styles: [".change-month-button{-webkit-user-select:none;user-select:none}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "component", type: DayPickerComponent, selector: "teta-day-picker", inputs: ["date", "calendar", "viewType", "range", "min", "max", "locale", "hoveredDate"], outputs: ["hoveredDateChange", "selectDate"] }, { kind: "component", type: MonthPickerComponent, selector: "teta-month-picker", inputs: ["selectedMonth", "viewType", "currentYear", "localeMoths"], outputs: ["selectMonth", "changeYear"] }, { kind: "component", type: YearPickerComponent, selector: "teta-year-picker", inputs: ["selectedYear", "viewType", "minMax", "locale"], outputs: ["selectYear"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1439
1439
  }
1440
1440
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DateCalendarComponent, decorators: [{
1441
1441
  type: Component,
1442
- args: [{ selector: 'teta-date-calendar', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ButtonComponent, IconComponent, DayPickerComponent, MonthPickerComponent, YearPickerComponent, AsyncPipe], template: "@if ({currentMonth:currentMonth|async,currentYear:currentYear|async,selectedPicker:selectedPicker|async}; as data) {\n<div class=\"datepicker-content overflow-y-auto\">\n @if (data.selectedPicker==='day') {\n <div class=\"padding-h-3 padding-v-2\" (wheel)=\"scrollMonth($event, data.currentMonth, data.currentYear)\">\n <div class=\"row align-center justify-content-between\">\n <teta-button\n [class]=\"'change-month-button datepicker_' + viewType\"\n [square]=\"true\"\n (click)=\"changeMonth(data.currentMonth - 1, data.currentYear)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2\">\n <button\n [class]=\"'datepicker_' + viewType\"\n teta-button\n view=\"ghost\"\n palette=\"text\"\n (click)=\"selectPicker('month')\"\n >\n {{ getMothName(data.currentMonth) }}\n </button>\n <button\n [class]=\"'datepicker_' + viewType\"\n teta-button\n view=\"ghost\"\n palette=\"text\"\n (click)=\"selectPicker('year')\"\n >\n {{ data.currentYear }}\n </button>\n </div>\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n (click)=\"changeMonth(data.currentMonth + 1, data.currentYear)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker\n [viewType]=\"viewType\"\n (selectDate)=\"selectDate($event)\"\n [locale]=\"locale\"\n [calendar]=\"calendar\"\n ></teta-day-picker>\n </div>\n </div>\n } @if (data.selectedPicker==='month') {\n <teta-month-picker\n [localeMoths]=\"locale.months\"\n [currentYear]=\"data.currentYear\"\n (changeYear)=\"setYear($event)\"\n [selectedMonth]=\"data.currentMonth\"\n [viewType]=\"viewType\"\n (selectMonth)=\"selectMonth($event)\"\n ></teta-month-picker>\n } @if (data.selectedPicker==='year') {\n <teta-year-picker\n [locale]=\"locale\"\n [viewType]=\"viewType\"\n (selectYear)=\"selectYear($event)\"\n [selectedYear]=\"data.currentYear\"\n ></teta-year-picker>\n }\n</div>\n}\n", styles: [".change-month-button{-webkit-user-select:none;user-select:none}\n"] }]
1442
+ args: [{ selector: 'teta-date-calendar', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ButtonComponent, IconComponent, DayPickerComponent, MonthPickerComponent, YearPickerComponent, AsyncPipe], template: "@if (\n { currentMonth: currentMonth | async, currentYear: currentYear | async, selectedPicker: selectedPicker | async };\n as data\n) {\n <div class=\"datepicker-content overflow-y-auto\">\n @if (data.selectedPicker === 'day') {\n <div class=\"padding-h-3 padding-v-2\" (wheel)=\"scrollMonth($event, data.currentMonth, data.currentYear)\">\n <div class=\"row align-center justify-content-between\">\n <teta-button\n [class]=\"'change-month-button datepicker_' + viewType\"\n [square]=\"true\"\n (click)=\"changeMonth(data.currentMonth - 1, data.currentYear)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2\">\n <button\n [class]=\"'datepicker_' + viewType\"\n teta-button\n view=\"ghost\"\n palette=\"text\"\n (click)=\"selectPicker('month')\"\n >\n {{ getMothName(data.currentMonth) }}\n </button>\n <button\n [class]=\"'datepicker_' + viewType\"\n teta-button\n view=\"ghost\"\n palette=\"text\"\n (click)=\"selectPicker('year')\"\n >\n {{ data.currentYear }}\n </button>\n </div>\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n (click)=\"changeMonth(data.currentMonth + 1, data.currentYear)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker\n [viewType]=\"viewType\"\n (selectDate)=\"selectDate($event)\"\n [locale]=\"locale\"\n [calendar]=\"calendar\"\n ></teta-day-picker>\n </div>\n </div>\n }\n @if (data.selectedPicker === 'month') {\n <teta-month-picker\n [localeMoths]=\"locale.months\"\n [currentYear]=\"data.currentYear\"\n (changeYear)=\"setYear($event)\"\n [selectedMonth]=\"data.currentMonth\"\n [viewType]=\"viewType\"\n (selectMonth)=\"selectMonth($event)\"\n ></teta-month-picker>\n }\n @if (data.selectedPicker === 'year') {\n <teta-year-picker\n [locale]=\"locale\"\n [viewType]=\"viewType\"\n (selectYear)=\"selectYear($event)\"\n [selectedYear]=\"data.currentYear\"\n ></teta-year-picker>\n }\n </div>\n}\n", styles: [".change-month-button{-webkit-user-select:none;user-select:none}\n"] }]
1443
1443
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { selectedDate: [{
1444
1444
  type: Input
1445
1445
  }], open: [{
@@ -2078,11 +2078,11 @@ class InputComponent {
2078
2078
  return !this.horizontal;
2079
2079
  }
2080
2080
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: InputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2081
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: InputComponent, isStandalone: true, selector: "teta-input", inputs: { label: "label", hint: "hint", viewType: "viewType", horizontal: "horizontal", required: "required" }, host: { properties: { "class.row": "this.horizontal", "class.column": "this.column" } }, ngImport: i0, template: "@if (label?.length > 0) {\n<div\n class=\"font-caption color-text-70 align-center row nowrap overflow-hidden text-overflow-ellipsis\"\n [class.row_6]=\"horizontal\"\n [class.text-field_required]=\"required\"\n>\n <span\n class=\"overflow-hidden text-overflow-ellipsis\"\n [tetaHint]=\"hint ?? label\"\n [align]=\"align.left\"\n [overflownOnly]=\"!hint || hint === label\"\n >\n {{ label }}\n </span>\n</div>\n}\n<div [class]=\"'input-container input_' + viewType\" [class.row_6]=\"horizontal\">\n <ng-content></ng-content>\n <div class=\"input-message font-error-message font-caption\">\n <ng-content select=\"message\"></ng-content>\n </div>\n</div>\n", styles: [":host{display:flex;grid-gap:4px;flex-grow:1;flex-basis:10px}\n"], dependencies: [{ kind: "directive", type: HintDirective, selector: "[tetaHint]", inputs: ["tetaHint", "align", "verticalAlign", "delay", "viewType", "overflownOnly"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2081
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: InputComponent, isStandalone: true, selector: "teta-input", inputs: { label: "label", hint: "hint", viewType: "viewType", horizontal: "horizontal", required: "required" }, host: { properties: { "class.row": "this.horizontal", "class.column": "this.column" } }, ngImport: i0, template: "@if (label?.length > 0) {\n <div\n class=\"font-caption color-text-70 align-center row nowrap overflow-hidden text-overflow-ellipsis\"\n [class.row_6]=\"horizontal\"\n [class.text-field_required]=\"required\"\n >\n <span\n class=\"overflow-hidden text-overflow-ellipsis\"\n [tetaHint]=\"hint ?? label\"\n [align]=\"align.left\"\n [overflownOnly]=\"!hint || hint === label\"\n >\n {{ label }}\n </span>\n </div>\n}\n<div [class]=\"'input-container input_' + viewType\" [class.row_6]=\"horizontal\">\n <ng-content></ng-content>\n <div class=\"input-message font-error-message font-caption\">\n <ng-content select=\"message\"></ng-content>\n </div>\n</div>\n", styles: [":host{display:flex;grid-gap:4px;flex-grow:1;flex-basis:10px}\n"], dependencies: [{ kind: "directive", type: HintDirective, selector: "[tetaHint]", inputs: ["tetaHint", "align", "verticalAlign", "delay", "viewType", "overflownOnly"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2082
2082
  }
2083
2083
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: InputComponent, decorators: [{
2084
2084
  type: Component,
2085
- args: [{ selector: 'teta-input', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [HintDirective], template: "@if (label?.length > 0) {\n<div\n class=\"font-caption color-text-70 align-center row nowrap overflow-hidden text-overflow-ellipsis\"\n [class.row_6]=\"horizontal\"\n [class.text-field_required]=\"required\"\n>\n <span\n class=\"overflow-hidden text-overflow-ellipsis\"\n [tetaHint]=\"hint ?? label\"\n [align]=\"align.left\"\n [overflownOnly]=\"!hint || hint === label\"\n >\n {{ label }}\n </span>\n</div>\n}\n<div [class]=\"'input-container input_' + viewType\" [class.row_6]=\"horizontal\">\n <ng-content></ng-content>\n <div class=\"input-message font-error-message font-caption\">\n <ng-content select=\"message\"></ng-content>\n </div>\n</div>\n", styles: [":host{display:flex;grid-gap:4px;flex-grow:1;flex-basis:10px}\n"] }]
2085
+ args: [{ selector: 'teta-input', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [HintDirective], template: "@if (label?.length > 0) {\n <div\n class=\"font-caption color-text-70 align-center row nowrap overflow-hidden text-overflow-ellipsis\"\n [class.row_6]=\"horizontal\"\n [class.text-field_required]=\"required\"\n >\n <span\n class=\"overflow-hidden text-overflow-ellipsis\"\n [tetaHint]=\"hint ?? label\"\n [align]=\"align.left\"\n [overflownOnly]=\"!hint || hint === label\"\n >\n {{ label }}\n </span>\n </div>\n}\n<div [class]=\"'input-container input_' + viewType\" [class.row_6]=\"horizontal\">\n <ng-content></ng-content>\n <div class=\"input-message font-error-message font-caption\">\n <ng-content select=\"message\"></ng-content>\n </div>\n</div>\n", styles: [":host{display:flex;grid-gap:4px;flex-grow:1;flex-basis:10px}\n"] }]
2086
2086
  }], propDecorators: { label: [{
2087
2087
  type: Input
2088
2088
  }], hint: [{
@@ -2494,7 +2494,7 @@ class DatePickerComponent extends BasePicker {
2494
2494
  this.prepareInput(false);
2495
2495
  }
2496
2496
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DatePickerComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1$1.DatePipe }, { token: TetaConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
2497
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DatePickerComponent, isStandalone: true, selector: "teta-date-picker", inputs: { date: "date", showTime: "showTime", minDate: "minDate", maxDate: "maxDate", invalid: "invalid", disabled: "disabled", align: "align", verticalAlign: "verticalAlign", viewType: "viewType", appendToBody: "appendToBody", backdrop: "backdrop", allowNull: "allowNull", firstDayOfWeek: "firstDayOfWeek", disabledDates: "disabledDates", disabledPeriods: "disabledPeriods", disabledDays: "disabledDays", minYearDate: "minYearDate", maxYearDate: "maxYearDate" }, outputs: { selectDate: "selectDate" }, host: { properties: { "class.datepicker": "this.classDatepicker", "class.datepicker-time": "this.dateTimeClass", "tabindex": "this.tabindex" } }, providers: [DATE_PICKER_CONTROL_VALUE_ACCESSOR, DatePipe], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if ({ selectedDate:selectedDate | async }; as data) {\n<teta-dropdown\n class=\"row row_auto\"\n [appendToBody]=\"appendToBody\"\n [backdrop]=\"backdrop\"\n [open]=\"open\"\n (openChange)=\"openChange($event)\"\n [viewType]=\"viewType\"\n [disabled]=\"disabled\"\n [verticalAlign]=\"verticalAlign\"\n [align]=\"align\"\n [autoCloseIgnore]=\"['esc', 'inside', 'enter']\"\n>\n <div\n tetaDropdownHead\n [class]=\"'datepicker-head font-body-3 gap-8 datepicker_' + viewType\"\n [ngClass]=\"{ 'datepicker-head_invalid': invalid, 'datepicker-head_disabled': disabled }\"\n >\n <teta-input class=\"row row_auto flex\">\n <div [class]=\"'row_auto row datepicker_' + viewType\">\n <div class=\"row row_auto position-relative font-body-3 align-center\">\n <input\n [ngClass]=\"{ 'color-text-90': !disabled }\"\n [disabled]=\"disabled\"\n #input\n style=\"z-index: 1\"\n class=\"row_auto border-0\"\n (keydown)=\"checkEnter($event)\"\n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"changeInput($event)\"\n [maskito]=\"maskitoOptions\"\n />\n @if (data.selectedDate||allowNull) {\n <div (click)=\"input.focus()\" class=\"position-absolute color-text-10\" style=\"cursor: text; user-select: none\">\n {{ placeholder }}\n </div>\n }\n </div>\n <teta-icon [name]=\"'calendar'\" [palette]=\"'text'\"></teta-icon>\n </div>\n </teta-input>\n </div>\n <div tetaDropdownContent (click)=\"$event.preventDefault()\">\n <teta-date-calendar\n [isDateNull]=\"date === null\"\n [open]=\"open\"\n [max]=\"maxDate\"\n [min]=\"minDate\"\n (setDate)=\"changeSelectedDate($event)\"\n [selectedDate]=\"data.selectedDate\"\n [viewType]=\"viewType\"\n [locale]=\"locale | async\"\n ></teta-date-calendar>\n </div>\n</teta-dropdown>\n}\n", styles: [""], dependencies: [{ kind: "component", type: DropdownComponent, selector: "teta-dropdown", exportAs: ["dropdown"] }, { kind: "directive", type: DropdownHeadDirective, selector: "[tetaDropdownHead]" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: InputComponent, selector: "teta-input", inputs: ["label", "hint", "viewType", "horizontal", "required"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MaskitoModule }, { kind: "directive", type: i4.MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { kind: "directive", type: i4.MaskitoCVA, selector: "input[maskito], textarea[maskito]", inputs: ["maskito"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "directive", type: DropdownContentDirective, selector: "[tetaDropdownContent]" }, { kind: "component", type: DateCalendarComponent, selector: "teta-date-calendar", inputs: ["selectedDate", "open", "locale", "viewType", "min", "isDateNull", "max"], outputs: ["setDate"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2497
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DatePickerComponent, isStandalone: true, selector: "teta-date-picker", inputs: { date: "date", showTime: "showTime", minDate: "minDate", maxDate: "maxDate", invalid: "invalid", disabled: "disabled", align: "align", verticalAlign: "verticalAlign", viewType: "viewType", appendToBody: "appendToBody", backdrop: "backdrop", allowNull: "allowNull", firstDayOfWeek: "firstDayOfWeek", disabledDates: "disabledDates", disabledPeriods: "disabledPeriods", disabledDays: "disabledDays", minYearDate: "minYearDate", maxYearDate: "maxYearDate" }, outputs: { selectDate: "selectDate" }, host: { properties: { "class.datepicker": "this.classDatepicker", "class.datepicker-time": "this.dateTimeClass", "tabindex": "this.tabindex" } }, providers: [DATE_PICKER_CONTROL_VALUE_ACCESSOR, DatePipe], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if ({ selectedDate: selectedDate | async }; as data) {\n <teta-dropdown\n class=\"row row_auto\"\n [appendToBody]=\"appendToBody\"\n [backdrop]=\"backdrop\"\n [open]=\"open\"\n (openChange)=\"openChange($event)\"\n [viewType]=\"viewType\"\n [disabled]=\"disabled\"\n [verticalAlign]=\"verticalAlign\"\n [align]=\"align\"\n [autoCloseIgnore]=\"['esc', 'inside', 'enter']\"\n >\n <div\n tetaDropdownHead\n [class]=\"'datepicker-head font-body-3 gap-8 datepicker_' + viewType\"\n [ngClass]=\"{ 'datepicker-head_invalid': invalid, 'datepicker-head_disabled': disabled }\"\n >\n <teta-input class=\"row row_auto flex\">\n <div [class]=\"'row_auto row datepicker_' + viewType\">\n <div class=\"row row_auto position-relative font-body-3 align-center\">\n <input\n [ngClass]=\"{ 'color-text-90': !disabled }\"\n [disabled]=\"disabled\"\n #input\n style=\"z-index: 1\"\n class=\"row_auto border-0\"\n (keydown)=\"checkEnter($event)\"\n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"changeInput($event)\"\n [maskito]=\"maskitoOptions\"\n />\n @if (data.selectedDate || allowNull) {\n <div\n (click)=\"input.focus()\"\n class=\"position-absolute color-text-10\"\n style=\"cursor: text; user-select: none\"\n >\n {{ placeholder }}\n </div>\n }\n </div>\n <teta-icon [name]=\"'calendar'\" [palette]=\"'text'\"></teta-icon>\n </div>\n </teta-input>\n </div>\n <div tetaDropdownContent (click)=\"$event.preventDefault()\">\n <teta-date-calendar\n [isDateNull]=\"date === null\"\n [open]=\"open\"\n [max]=\"maxDate\"\n [min]=\"minDate\"\n (setDate)=\"changeSelectedDate($event)\"\n [selectedDate]=\"data.selectedDate\"\n [viewType]=\"viewType\"\n [locale]=\"locale | async\"\n ></teta-date-calendar>\n </div>\n </teta-dropdown>\n}\n", styles: [""], dependencies: [{ kind: "component", type: DropdownComponent, selector: "teta-dropdown", exportAs: ["dropdown"] }, { kind: "directive", type: DropdownHeadDirective, selector: "[tetaDropdownHead]" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: InputComponent, selector: "teta-input", inputs: ["label", "hint", "viewType", "horizontal", "required"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MaskitoModule }, { kind: "directive", type: i4.MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { kind: "directive", type: i4.MaskitoCVA, selector: "input[maskito], textarea[maskito]", inputs: ["maskito"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "directive", type: DropdownContentDirective, selector: "[tetaDropdownContent]" }, { kind: "component", type: DateCalendarComponent, selector: "teta-date-calendar", inputs: ["selectedDate", "open", "locale", "viewType", "min", "isDateNull", "max"], outputs: ["setDate"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2498
2498
  }
2499
2499
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DatePickerComponent, decorators: [{
2500
2500
  type: Component,
@@ -2509,7 +2509,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
2509
2509
  DropdownContentDirective,
2510
2510
  DateCalendarComponent,
2511
2511
  AsyncPipe,
2512
- ], template: "@if ({ selectedDate:selectedDate | async }; as data) {\n<teta-dropdown\n class=\"row row_auto\"\n [appendToBody]=\"appendToBody\"\n [backdrop]=\"backdrop\"\n [open]=\"open\"\n (openChange)=\"openChange($event)\"\n [viewType]=\"viewType\"\n [disabled]=\"disabled\"\n [verticalAlign]=\"verticalAlign\"\n [align]=\"align\"\n [autoCloseIgnore]=\"['esc', 'inside', 'enter']\"\n>\n <div\n tetaDropdownHead\n [class]=\"'datepicker-head font-body-3 gap-8 datepicker_' + viewType\"\n [ngClass]=\"{ 'datepicker-head_invalid': invalid, 'datepicker-head_disabled': disabled }\"\n >\n <teta-input class=\"row row_auto flex\">\n <div [class]=\"'row_auto row datepicker_' + viewType\">\n <div class=\"row row_auto position-relative font-body-3 align-center\">\n <input\n [ngClass]=\"{ 'color-text-90': !disabled }\"\n [disabled]=\"disabled\"\n #input\n style=\"z-index: 1\"\n class=\"row_auto border-0\"\n (keydown)=\"checkEnter($event)\"\n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"changeInput($event)\"\n [maskito]=\"maskitoOptions\"\n />\n @if (data.selectedDate||allowNull) {\n <div (click)=\"input.focus()\" class=\"position-absolute color-text-10\" style=\"cursor: text; user-select: none\">\n {{ placeholder }}\n </div>\n }\n </div>\n <teta-icon [name]=\"'calendar'\" [palette]=\"'text'\"></teta-icon>\n </div>\n </teta-input>\n </div>\n <div tetaDropdownContent (click)=\"$event.preventDefault()\">\n <teta-date-calendar\n [isDateNull]=\"date === null\"\n [open]=\"open\"\n [max]=\"maxDate\"\n [min]=\"minDate\"\n (setDate)=\"changeSelectedDate($event)\"\n [selectedDate]=\"data.selectedDate\"\n [viewType]=\"viewType\"\n [locale]=\"locale | async\"\n ></teta-date-calendar>\n </div>\n</teta-dropdown>\n}\n" }]
2512
+ ], template: "@if ({ selectedDate: selectedDate | async }; as data) {\n <teta-dropdown\n class=\"row row_auto\"\n [appendToBody]=\"appendToBody\"\n [backdrop]=\"backdrop\"\n [open]=\"open\"\n (openChange)=\"openChange($event)\"\n [viewType]=\"viewType\"\n [disabled]=\"disabled\"\n [verticalAlign]=\"verticalAlign\"\n [align]=\"align\"\n [autoCloseIgnore]=\"['esc', 'inside', 'enter']\"\n >\n <div\n tetaDropdownHead\n [class]=\"'datepicker-head font-body-3 gap-8 datepicker_' + viewType\"\n [ngClass]=\"{ 'datepicker-head_invalid': invalid, 'datepicker-head_disabled': disabled }\"\n >\n <teta-input class=\"row row_auto flex\">\n <div [class]=\"'row_auto row datepicker_' + viewType\">\n <div class=\"row row_auto position-relative font-body-3 align-center\">\n <input\n [ngClass]=\"{ 'color-text-90': !disabled }\"\n [disabled]=\"disabled\"\n #input\n style=\"z-index: 1\"\n class=\"row_auto border-0\"\n (keydown)=\"checkEnter($event)\"\n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"changeInput($event)\"\n [maskito]=\"maskitoOptions\"\n />\n @if (data.selectedDate || allowNull) {\n <div\n (click)=\"input.focus()\"\n class=\"position-absolute color-text-10\"\n style=\"cursor: text; user-select: none\"\n >\n {{ placeholder }}\n </div>\n }\n </div>\n <teta-icon [name]=\"'calendar'\" [palette]=\"'text'\"></teta-icon>\n </div>\n </teta-input>\n </div>\n <div tetaDropdownContent (click)=\"$event.preventDefault()\">\n <teta-date-calendar\n [isDateNull]=\"date === null\"\n [open]=\"open\"\n [max]=\"maxDate\"\n [min]=\"minDate\"\n (setDate)=\"changeSelectedDate($event)\"\n [selectedDate]=\"data.selectedDate\"\n [viewType]=\"viewType\"\n [locale]=\"locale | async\"\n ></teta-date-calendar>\n </div>\n </teta-dropdown>\n}\n" }]
2513
2513
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$1.DatePipe }, { type: TetaConfigService }], propDecorators: { date: [{
2514
2514
  type: Input
2515
2515
  }], showTime: [{
@@ -2632,7 +2632,7 @@ class RangeCalendarComponent extends BaseCalendar {
2632
2632
  }
2633
2633
  }
2634
2634
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RangeCalendarComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
2635
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: RangeCalendarComponent, isStandalone: true, selector: "teta-range-calendar", inputs: { locale: "locale", open: "open", date: "date", viewType: "viewType", allowNull: "allowNull", selectedDate: "selectedDate", min: "min", isDateNull: "isDateNull", max: "max" }, outputs: { hoveredDateChange: "hoveredDateChange", setDate: "setDate" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if\n({currentMonth:currentMonth|async,currentYear:currentYear|async,selectedPicker:selectedPicker|async,minMax:minMax|async};\nas data) {\n<div class=\"datepicker-content overflow-y-auto\">\n @if (data.selectedPicker==='day') {\n <div class=\"row\" (wheel)=\"scrollMonth($event, data.currentMonth, data.currentYear)\">\n <div class=\"padding-h-3 padding-v-2\">\n <div class=\"row align-center justify-content-between\">\n <teta-button\n [ngClass]=\"{ 'datepicker-arrow_hidden': !isLastDaySuitable(data.currentMonth - 1, data.currentYear, min) }\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n [square]=\"true\"\n (click)=\"changeMonth(data.currentMonth - 1, data.currentYear)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2 align-center padding-left-1\">\n <p>{{ getMothName(data.currentMonth) }}</p>\n <button\n [class]=\"'datepicker_' + viewType\"\n teta-button\n view=\"ghost\"\n palette=\"text\"\n (click)=\"selectPicker('year')\"\n >\n {{ data.currentYear }}\n </button>\n </div>\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker-arrow_hidden datepicker_' + viewType\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker\n [(hoveredDate)]=\"hoveredDate\"\n [range]=\"getFromTo()\"\n [viewType]=\"viewType\"\n (selectDate)=\"selectDate($event)\"\n [locale]=\"locale\"\n [calendar]=\"calendar.currentMonth\"\n ></teta-day-picker>\n </div>\n </div>\n @if (getAvailableMonthYear(data.currentMonth+1,data.currentYear); as availableMonthYear) {\n <div class=\"padding-h-3 padding-v-2\">\n <div class=\"row align-center justify-content-between\">\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker-arrow_hidden datepicker_' + viewType\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2 align-center padding-left-1\">\n <p>{{ getMothName(availableMonthYear.availableMonth) }}</p>\n <button\n [class]=\"'datepicker_' + viewType\"\n teta-button\n view=\"ghost\"\n palette=\"text\"\n (click)=\"selectPicker('year')\"\n >\n {{ availableMonthYear.availableYear }}\n </button>\n </div>\n <teta-button\n [square]=\"true\"\n [ngClass]=\"{ 'datepicker-arrow_hidden': !isFirstDaySuitable(data.currentMonth + 2, data.currentYear, max) }\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n (click)=\"changeMonth(data.currentMonth + 1, data.currentYear)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker\n [(hoveredDate)]=\"hoveredDate\"\n [range]=\"getFromTo()\"\n [viewType]=\"viewType\"\n (selectDate)=\"selectDate($event)\"\n [locale]=\"locale\"\n [calendar]=\"calendar.nextMonth\"\n ></teta-day-picker>\n </div>\n </div>\n }\n </div>\n } @if (data.selectedPicker==='month') {\n <teta-month-picker\n [localeMoths]=\"locale.months\"\n [currentYear]=\"data.currentYear\"\n (changeYear)=\"setYear($event)\"\n [selectedMonth]=\"data.currentMonth\"\n [viewType]=\"viewType\"\n (selectMonth)=\"selectMonth($event)\"\n ></teta-month-picker>\n } @if (data.selectedPicker==='year') {\n <teta-year-picker\n [minMax]=\"data.minMax\"\n [locale]=\"locale\"\n [viewType]=\"viewType\"\n (selectYear)=\"selectYear($event)\"\n [selectedYear]=\"data.currentYear\"\n ></teta-year-picker>\n }\n</div>\n}\n", styles: [".change-month-button{-webkit-user-select:none;user-select:none}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "component", type: DayPickerComponent, selector: "teta-day-picker", inputs: ["date", "calendar", "viewType", "range", "min", "max", "locale", "hoveredDate"], outputs: ["hoveredDateChange", "selectDate"] }, { kind: "component", type: MonthPickerComponent, selector: "teta-month-picker", inputs: ["selectedMonth", "viewType", "currentYear", "localeMoths"], outputs: ["selectMonth", "changeYear"] }, { kind: "component", type: YearPickerComponent, selector: "teta-year-picker", inputs: ["selectedYear", "viewType", "minMax", "locale"], outputs: ["selectYear"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2635
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: RangeCalendarComponent, isStandalone: true, selector: "teta-range-calendar", inputs: { locale: "locale", open: "open", date: "date", viewType: "viewType", allowNull: "allowNull", selectedDate: "selectedDate", min: "min", isDateNull: "isDateNull", max: "max" }, outputs: { hoveredDateChange: "hoveredDateChange", setDate: "setDate" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (\n {\n currentMonth: currentMonth | async,\n currentYear: currentYear | async,\n selectedPicker: selectedPicker | async,\n minMax: minMax | async,\n };\n as data\n) {\n <div class=\"datepicker-content overflow-y-auto\">\n @if (data.selectedPicker === 'day') {\n <div class=\"row\" (wheel)=\"scrollMonth($event, data.currentMonth, data.currentYear)\">\n <div class=\"padding-h-3 padding-v-2\">\n <div class=\"row align-center justify-content-between\">\n <teta-button\n [ngClass]=\"{\n 'datepicker-arrow_hidden': !isLastDaySuitable(data.currentMonth - 1, data.currentYear, min),\n }\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n [square]=\"true\"\n (click)=\"changeMonth(data.currentMonth - 1, data.currentYear)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2 align-center padding-left-1\">\n <p>{{ getMothName(data.currentMonth) }}</p>\n <button\n [class]=\"'datepicker_' + viewType\"\n teta-button\n view=\"ghost\"\n palette=\"text\"\n (click)=\"selectPicker('year')\"\n >\n {{ data.currentYear }}\n </button>\n </div>\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker-arrow_hidden datepicker_' + viewType\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker\n [(hoveredDate)]=\"hoveredDate\"\n [range]=\"getFromTo()\"\n [viewType]=\"viewType\"\n (selectDate)=\"selectDate($event)\"\n [locale]=\"locale\"\n [calendar]=\"calendar.currentMonth\"\n ></teta-day-picker>\n </div>\n </div>\n @if (getAvailableMonthYear(data.currentMonth + 1, data.currentYear); as availableMonthYear) {\n <div class=\"padding-h-3 padding-v-2\">\n <div class=\"row align-center justify-content-between\">\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker-arrow_hidden datepicker_' + viewType\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2 align-center padding-left-1\">\n <p>{{ getMothName(availableMonthYear.availableMonth) }}</p>\n <button\n [class]=\"'datepicker_' + viewType\"\n teta-button\n view=\"ghost\"\n palette=\"text\"\n (click)=\"selectPicker('year')\"\n >\n {{ availableMonthYear.availableYear }}\n </button>\n </div>\n <teta-button\n [square]=\"true\"\n [ngClass]=\"{\n 'datepicker-arrow_hidden': !isFirstDaySuitable(data.currentMonth + 2, data.currentYear, max),\n }\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n (click)=\"changeMonth(data.currentMonth + 1, data.currentYear)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker\n [(hoveredDate)]=\"hoveredDate\"\n [range]=\"getFromTo()\"\n [viewType]=\"viewType\"\n (selectDate)=\"selectDate($event)\"\n [locale]=\"locale\"\n [calendar]=\"calendar.nextMonth\"\n ></teta-day-picker>\n </div>\n </div>\n }\n </div>\n }\n @if (data.selectedPicker === 'month') {\n <teta-month-picker\n [localeMoths]=\"locale.months\"\n [currentYear]=\"data.currentYear\"\n (changeYear)=\"setYear($event)\"\n [selectedMonth]=\"data.currentMonth\"\n [viewType]=\"viewType\"\n (selectMonth)=\"selectMonth($event)\"\n ></teta-month-picker>\n }\n @if (data.selectedPicker === 'year') {\n <teta-year-picker\n [minMax]=\"data.minMax\"\n [locale]=\"locale\"\n [viewType]=\"viewType\"\n (selectYear)=\"selectYear($event)\"\n [selectedYear]=\"data.currentYear\"\n ></teta-year-picker>\n }\n </div>\n}\n", styles: [".change-month-button{-webkit-user-select:none;user-select:none}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "component", type: DayPickerComponent, selector: "teta-day-picker", inputs: ["date", "calendar", "viewType", "range", "min", "max", "locale", "hoveredDate"], outputs: ["hoveredDateChange", "selectDate"] }, { kind: "component", type: MonthPickerComponent, selector: "teta-month-picker", inputs: ["selectedMonth", "viewType", "currentYear", "localeMoths"], outputs: ["selectMonth", "changeYear"] }, { kind: "component", type: YearPickerComponent, selector: "teta-year-picker", inputs: ["selectedYear", "viewType", "minMax", "locale"], outputs: ["selectYear"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2636
2636
  }
2637
2637
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RangeCalendarComponent, decorators: [{
2638
2638
  type: Component,
@@ -2644,7 +2644,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
2644
2644
  MonthPickerComponent,
2645
2645
  YearPickerComponent,
2646
2646
  AsyncPipe,
2647
- ], template: "@if\n({currentMonth:currentMonth|async,currentYear:currentYear|async,selectedPicker:selectedPicker|async,minMax:minMax|async};\nas data) {\n<div class=\"datepicker-content overflow-y-auto\">\n @if (data.selectedPicker==='day') {\n <div class=\"row\" (wheel)=\"scrollMonth($event, data.currentMonth, data.currentYear)\">\n <div class=\"padding-h-3 padding-v-2\">\n <div class=\"row align-center justify-content-between\">\n <teta-button\n [ngClass]=\"{ 'datepicker-arrow_hidden': !isLastDaySuitable(data.currentMonth - 1, data.currentYear, min) }\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n [square]=\"true\"\n (click)=\"changeMonth(data.currentMonth - 1, data.currentYear)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2 align-center padding-left-1\">\n <p>{{ getMothName(data.currentMonth) }}</p>\n <button\n [class]=\"'datepicker_' + viewType\"\n teta-button\n view=\"ghost\"\n palette=\"text\"\n (click)=\"selectPicker('year')\"\n >\n {{ data.currentYear }}\n </button>\n </div>\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker-arrow_hidden datepicker_' + viewType\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker\n [(hoveredDate)]=\"hoveredDate\"\n [range]=\"getFromTo()\"\n [viewType]=\"viewType\"\n (selectDate)=\"selectDate($event)\"\n [locale]=\"locale\"\n [calendar]=\"calendar.currentMonth\"\n ></teta-day-picker>\n </div>\n </div>\n @if (getAvailableMonthYear(data.currentMonth+1,data.currentYear); as availableMonthYear) {\n <div class=\"padding-h-3 padding-v-2\">\n <div class=\"row align-center justify-content-between\">\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker-arrow_hidden datepicker_' + viewType\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2 align-center padding-left-1\">\n <p>{{ getMothName(availableMonthYear.availableMonth) }}</p>\n <button\n [class]=\"'datepicker_' + viewType\"\n teta-button\n view=\"ghost\"\n palette=\"text\"\n (click)=\"selectPicker('year')\"\n >\n {{ availableMonthYear.availableYear }}\n </button>\n </div>\n <teta-button\n [square]=\"true\"\n [ngClass]=\"{ 'datepicker-arrow_hidden': !isFirstDaySuitable(data.currentMonth + 2, data.currentYear, max) }\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n (click)=\"changeMonth(data.currentMonth + 1, data.currentYear)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker\n [(hoveredDate)]=\"hoveredDate\"\n [range]=\"getFromTo()\"\n [viewType]=\"viewType\"\n (selectDate)=\"selectDate($event)\"\n [locale]=\"locale\"\n [calendar]=\"calendar.nextMonth\"\n ></teta-day-picker>\n </div>\n </div>\n }\n </div>\n } @if (data.selectedPicker==='month') {\n <teta-month-picker\n [localeMoths]=\"locale.months\"\n [currentYear]=\"data.currentYear\"\n (changeYear)=\"setYear($event)\"\n [selectedMonth]=\"data.currentMonth\"\n [viewType]=\"viewType\"\n (selectMonth)=\"selectMonth($event)\"\n ></teta-month-picker>\n } @if (data.selectedPicker==='year') {\n <teta-year-picker\n [minMax]=\"data.minMax\"\n [locale]=\"locale\"\n [viewType]=\"viewType\"\n (selectYear)=\"selectYear($event)\"\n [selectedYear]=\"data.currentYear\"\n ></teta-year-picker>\n }\n</div>\n}\n", styles: [".change-month-button{-webkit-user-select:none;user-select:none}\n"] }]
2647
+ ], template: "@if (\n {\n currentMonth: currentMonth | async,\n currentYear: currentYear | async,\n selectedPicker: selectedPicker | async,\n minMax: minMax | async,\n };\n as data\n) {\n <div class=\"datepicker-content overflow-y-auto\">\n @if (data.selectedPicker === 'day') {\n <div class=\"row\" (wheel)=\"scrollMonth($event, data.currentMonth, data.currentYear)\">\n <div class=\"padding-h-3 padding-v-2\">\n <div class=\"row align-center justify-content-between\">\n <teta-button\n [ngClass]=\"{\n 'datepicker-arrow_hidden': !isLastDaySuitable(data.currentMonth - 1, data.currentYear, min),\n }\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n [square]=\"true\"\n (click)=\"changeMonth(data.currentMonth - 1, data.currentYear)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2 align-center padding-left-1\">\n <p>{{ getMothName(data.currentMonth) }}</p>\n <button\n [class]=\"'datepicker_' + viewType\"\n teta-button\n view=\"ghost\"\n palette=\"text\"\n (click)=\"selectPicker('year')\"\n >\n {{ data.currentYear }}\n </button>\n </div>\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker-arrow_hidden datepicker_' + viewType\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker\n [(hoveredDate)]=\"hoveredDate\"\n [range]=\"getFromTo()\"\n [viewType]=\"viewType\"\n (selectDate)=\"selectDate($event)\"\n [locale]=\"locale\"\n [calendar]=\"calendar.currentMonth\"\n ></teta-day-picker>\n </div>\n </div>\n @if (getAvailableMonthYear(data.currentMonth + 1, data.currentYear); as availableMonthYear) {\n <div class=\"padding-h-3 padding-v-2\">\n <div class=\"row align-center justify-content-between\">\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker-arrow_hidden datepicker_' + viewType\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2 align-center padding-left-1\">\n <p>{{ getMothName(availableMonthYear.availableMonth) }}</p>\n <button\n [class]=\"'datepicker_' + viewType\"\n teta-button\n view=\"ghost\"\n palette=\"text\"\n (click)=\"selectPicker('year')\"\n >\n {{ availableMonthYear.availableYear }}\n </button>\n </div>\n <teta-button\n [square]=\"true\"\n [ngClass]=\"{\n 'datepicker-arrow_hidden': !isFirstDaySuitable(data.currentMonth + 2, data.currentYear, max),\n }\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n (click)=\"changeMonth(data.currentMonth + 1, data.currentYear)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker\n [(hoveredDate)]=\"hoveredDate\"\n [range]=\"getFromTo()\"\n [viewType]=\"viewType\"\n (selectDate)=\"selectDate($event)\"\n [locale]=\"locale\"\n [calendar]=\"calendar.nextMonth\"\n ></teta-day-picker>\n </div>\n </div>\n }\n </div>\n }\n @if (data.selectedPicker === 'month') {\n <teta-month-picker\n [localeMoths]=\"locale.months\"\n [currentYear]=\"data.currentYear\"\n (changeYear)=\"setYear($event)\"\n [selectedMonth]=\"data.currentMonth\"\n [viewType]=\"viewType\"\n (selectMonth)=\"selectMonth($event)\"\n ></teta-month-picker>\n }\n @if (data.selectedPicker === 'year') {\n <teta-year-picker\n [minMax]=\"data.minMax\"\n [locale]=\"locale\"\n [viewType]=\"viewType\"\n (selectYear)=\"selectYear($event)\"\n [selectedYear]=\"data.currentYear\"\n ></teta-year-picker>\n }\n </div>\n}\n", styles: [".change-month-button{-webkit-user-select:none;user-select:none}\n"] }]
2648
2648
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { locale: [{
2649
2649
  type: Input
2650
2650
  }], open: [{
@@ -2830,7 +2830,7 @@ class DateRangeComponent extends BasePicker {
2830
2830
  }
2831
2831
  onChange(date) { }
2832
2832
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DateRangeComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1$1.DatePipe }, { token: TetaConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
2833
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DateRangeComponent, isStandalone: true, selector: "teta-date-range", inputs: { date: "date", showTime: "showTime", minDate: "minDate", maxDate: "maxDate", invalid: "invalid", disabled: "disabled", align: "align", verticalAlign: "verticalAlign", viewType: "viewType", appendToBody: "appendToBody", backdrop: "backdrop", allowNull: "allowNull" }, outputs: { selectDate: "selectDate" }, host: { properties: { "class.daterange": "this.classDaterange" } }, providers: [DATE_Range_CONTROL_VALUE_ACCESSOR, DatePipe], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "@if ({selectedDate:selectedDate|async};as data) {\n<teta-dropdown\n [appendToBody]=\"appendToBody\"\n [backdrop]=\"backdrop\"\n class=\"row row_auto\"\n [(open)]=\"open\"\n (openChange)=\"openChange($event)\"\n [viewType]=\"viewType\"\n [disabled]=\"disabled\"\n [verticalAlign]=\"verticalAlign\"\n [align]=\"align\"\n [autoCloseIgnore]=\"['esc', 'inside', 'enter']\"\n>\n <div\n tetaDropdownHead\n [class]=\"'datepicker-head font-body-3 gap-8 datepicker_' + viewType\"\n [ngClass]=\"{ 'datepicker-head_invalid': invalid, 'datepicker-head_disabled': disabled }\"\n >\n <teta-input class=\"row row_auto flex\">\n <div [class]=\"'row_auto row datepicker_' + viewType\">\n <div class=\"row row_auto position-relative font-body-3 align-center\">\n <input\n [ngClass]=\"{ 'color-text-90': !disabled }\"\n [disabled]=\"disabled\"\n #input\n style=\"z-index: 1\"\n class=\"border-0 color-text-90\"\n (keydown)=\"checkEnter($event)\"\n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"changeInput($event)\"\n [maskito]=\"maskitoOptions\"\n />\n @if (data.selectedDate||allowNull) {\n <div (click)=\"input.focus()\" class=\"position-absolute color-text-10\" style=\"cursor: text; user-select: none\">\n {{ placeholder }}\n </div>\n }\n </div>\n <teta-icon [name]=\"'calendar'\" [palette]=\"'text'\"></teta-icon>\n </div>\n </teta-input>\n </div>\n <div tetaDropdownContent class=\"scrollable\" (click)=\"$event.preventDefault()\">\n @if (open) {\n <div class=\"row\">\n <teta-range-calendar\n [isDateNull]=\"date === null || (date?.from === null && date?.to === null)\"\n [open]=\"open\"\n [max]=\"maxDate\"\n [allowNull]=\"allowNull\"\n [min]=\"minDate\"\n (setDate)=\"changeSelectedDate($event, data.selectedDate)\"\n [selectedDate]=\"data.selectedDate\"\n [date]=\"date\"\n [viewType]=\"viewType\"\n [locale]=\"locale | async\"\n ></teta-range-calendar>\n </div>\n }\n </div>\n</teta-dropdown>\n}\n", styles: [""], dependencies: [{ kind: "component", type: DropdownComponent, selector: "teta-dropdown", exportAs: ["dropdown"] }, { kind: "directive", type: DropdownHeadDirective, selector: "[tetaDropdownHead]" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: InputComponent, selector: "teta-input", inputs: ["label", "hint", "viewType", "horizontal", "required"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MaskitoModule }, { kind: "directive", type: i4.MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { kind: "directive", type: i4.MaskitoCVA, selector: "input[maskito], textarea[maskito]", inputs: ["maskito"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "directive", type: DropdownContentDirective, selector: "[tetaDropdownContent]" }, { kind: "component", type: RangeCalendarComponent, selector: "teta-range-calendar", inputs: ["locale", "open", "date", "viewType", "allowNull", "selectedDate", "min", "isDateNull", "max"], outputs: ["hoveredDateChange", "setDate"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2833
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DateRangeComponent, isStandalone: true, selector: "teta-date-range", inputs: { date: "date", showTime: "showTime", minDate: "minDate", maxDate: "maxDate", invalid: "invalid", disabled: "disabled", align: "align", verticalAlign: "verticalAlign", viewType: "viewType", appendToBody: "appendToBody", backdrop: "backdrop", allowNull: "allowNull" }, outputs: { selectDate: "selectDate" }, host: { properties: { "class.daterange": "this.classDaterange" } }, providers: [DATE_Range_CONTROL_VALUE_ACCESSOR, DatePipe], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "@if ({ selectedDate: selectedDate | async }; as data) {\n <teta-dropdown\n [appendToBody]=\"appendToBody\"\n [backdrop]=\"backdrop\"\n class=\"row row_auto\"\n [(open)]=\"open\"\n (openChange)=\"openChange($event)\"\n [viewType]=\"viewType\"\n [disabled]=\"disabled\"\n [verticalAlign]=\"verticalAlign\"\n [align]=\"align\"\n [autoCloseIgnore]=\"['esc', 'inside', 'enter']\"\n >\n <div\n tetaDropdownHead\n [class]=\"'datepicker-head font-body-3 gap-8 datepicker_' + viewType\"\n [ngClass]=\"{ 'datepicker-head_invalid': invalid, 'datepicker-head_disabled': disabled }\"\n >\n <teta-input class=\"row row_auto flex\">\n <div [class]=\"'row_auto row datepicker_' + viewType\">\n <div class=\"row row_auto position-relative font-body-3 align-center\">\n <input\n [ngClass]=\"{ 'color-text-90': !disabled }\"\n [disabled]=\"disabled\"\n #input\n style=\"z-index: 1\"\n class=\"border-0 color-text-90\"\n (keydown)=\"checkEnter($event)\"\n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"changeInput($event)\"\n [maskito]=\"maskitoOptions\"\n />\n @if (data.selectedDate || allowNull) {\n <div\n (click)=\"input.focus()\"\n class=\"position-absolute color-text-10\"\n style=\"cursor: text; user-select: none\"\n >\n {{ placeholder }}\n </div>\n }\n </div>\n <teta-icon [name]=\"'calendar'\" [palette]=\"'text'\"></teta-icon>\n </div>\n </teta-input>\n </div>\n <div tetaDropdownContent class=\"scrollable\" (click)=\"$event.preventDefault()\">\n @if (open) {\n <div class=\"row\">\n <teta-range-calendar\n [isDateNull]=\"date === null || (date?.from === null && date?.to === null)\"\n [open]=\"open\"\n [max]=\"maxDate\"\n [allowNull]=\"allowNull\"\n [min]=\"minDate\"\n (setDate)=\"changeSelectedDate($event, data.selectedDate)\"\n [selectedDate]=\"data.selectedDate\"\n [date]=\"date\"\n [viewType]=\"viewType\"\n [locale]=\"locale | async\"\n ></teta-range-calendar>\n </div>\n }\n </div>\n </teta-dropdown>\n}\n", styles: [""], dependencies: [{ kind: "component", type: DropdownComponent, selector: "teta-dropdown", exportAs: ["dropdown"] }, { kind: "directive", type: DropdownHeadDirective, selector: "[tetaDropdownHead]" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: InputComponent, selector: "teta-input", inputs: ["label", "hint", "viewType", "horizontal", "required"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MaskitoModule }, { kind: "directive", type: i4.MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { kind: "directive", type: i4.MaskitoCVA, selector: "input[maskito], textarea[maskito]", inputs: ["maskito"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "directive", type: DropdownContentDirective, selector: "[tetaDropdownContent]" }, { kind: "component", type: RangeCalendarComponent, selector: "teta-range-calendar", inputs: ["locale", "open", "date", "viewType", "allowNull", "selectedDate", "min", "isDateNull", "max"], outputs: ["hoveredDateChange", "setDate"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2834
2834
  }
2835
2835
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DateRangeComponent, decorators: [{
2836
2836
  type: Component,
@@ -2845,7 +2845,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
2845
2845
  DropdownContentDirective,
2846
2846
  RangeCalendarComponent,
2847
2847
  AsyncPipe,
2848
- ], template: "@if ({selectedDate:selectedDate|async};as data) {\n<teta-dropdown\n [appendToBody]=\"appendToBody\"\n [backdrop]=\"backdrop\"\n class=\"row row_auto\"\n [(open)]=\"open\"\n (openChange)=\"openChange($event)\"\n [viewType]=\"viewType\"\n [disabled]=\"disabled\"\n [verticalAlign]=\"verticalAlign\"\n [align]=\"align\"\n [autoCloseIgnore]=\"['esc', 'inside', 'enter']\"\n>\n <div\n tetaDropdownHead\n [class]=\"'datepicker-head font-body-3 gap-8 datepicker_' + viewType\"\n [ngClass]=\"{ 'datepicker-head_invalid': invalid, 'datepicker-head_disabled': disabled }\"\n >\n <teta-input class=\"row row_auto flex\">\n <div [class]=\"'row_auto row datepicker_' + viewType\">\n <div class=\"row row_auto position-relative font-body-3 align-center\">\n <input\n [ngClass]=\"{ 'color-text-90': !disabled }\"\n [disabled]=\"disabled\"\n #input\n style=\"z-index: 1\"\n class=\"border-0 color-text-90\"\n (keydown)=\"checkEnter($event)\"\n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"changeInput($event)\"\n [maskito]=\"maskitoOptions\"\n />\n @if (data.selectedDate||allowNull) {\n <div (click)=\"input.focus()\" class=\"position-absolute color-text-10\" style=\"cursor: text; user-select: none\">\n {{ placeholder }}\n </div>\n }\n </div>\n <teta-icon [name]=\"'calendar'\" [palette]=\"'text'\"></teta-icon>\n </div>\n </teta-input>\n </div>\n <div tetaDropdownContent class=\"scrollable\" (click)=\"$event.preventDefault()\">\n @if (open) {\n <div class=\"row\">\n <teta-range-calendar\n [isDateNull]=\"date === null || (date?.from === null && date?.to === null)\"\n [open]=\"open\"\n [max]=\"maxDate\"\n [allowNull]=\"allowNull\"\n [min]=\"minDate\"\n (setDate)=\"changeSelectedDate($event, data.selectedDate)\"\n [selectedDate]=\"data.selectedDate\"\n [date]=\"date\"\n [viewType]=\"viewType\"\n [locale]=\"locale | async\"\n ></teta-range-calendar>\n </div>\n }\n </div>\n</teta-dropdown>\n}\n" }]
2848
+ ], template: "@if ({ selectedDate: selectedDate | async }; as data) {\n <teta-dropdown\n [appendToBody]=\"appendToBody\"\n [backdrop]=\"backdrop\"\n class=\"row row_auto\"\n [(open)]=\"open\"\n (openChange)=\"openChange($event)\"\n [viewType]=\"viewType\"\n [disabled]=\"disabled\"\n [verticalAlign]=\"verticalAlign\"\n [align]=\"align\"\n [autoCloseIgnore]=\"['esc', 'inside', 'enter']\"\n >\n <div\n tetaDropdownHead\n [class]=\"'datepicker-head font-body-3 gap-8 datepicker_' + viewType\"\n [ngClass]=\"{ 'datepicker-head_invalid': invalid, 'datepicker-head_disabled': disabled }\"\n >\n <teta-input class=\"row row_auto flex\">\n <div [class]=\"'row_auto row datepicker_' + viewType\">\n <div class=\"row row_auto position-relative font-body-3 align-center\">\n <input\n [ngClass]=\"{ 'color-text-90': !disabled }\"\n [disabled]=\"disabled\"\n #input\n style=\"z-index: 1\"\n class=\"border-0 color-text-90\"\n (keydown)=\"checkEnter($event)\"\n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"changeInput($event)\"\n [maskito]=\"maskitoOptions\"\n />\n @if (data.selectedDate || allowNull) {\n <div\n (click)=\"input.focus()\"\n class=\"position-absolute color-text-10\"\n style=\"cursor: text; user-select: none\"\n >\n {{ placeholder }}\n </div>\n }\n </div>\n <teta-icon [name]=\"'calendar'\" [palette]=\"'text'\"></teta-icon>\n </div>\n </teta-input>\n </div>\n <div tetaDropdownContent class=\"scrollable\" (click)=\"$event.preventDefault()\">\n @if (open) {\n <div class=\"row\">\n <teta-range-calendar\n [isDateNull]=\"date === null || (date?.from === null && date?.to === null)\"\n [open]=\"open\"\n [max]=\"maxDate\"\n [allowNull]=\"allowNull\"\n [min]=\"minDate\"\n (setDate)=\"changeSelectedDate($event, data.selectedDate)\"\n [selectedDate]=\"data.selectedDate\"\n [date]=\"date\"\n [viewType]=\"viewType\"\n [locale]=\"locale | async\"\n ></teta-range-calendar>\n </div>\n }\n </div>\n </teta-dropdown>\n}\n" }]
2849
2849
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1$1.DatePipe }, { type: TetaConfigService }], propDecorators: { date: [{
2850
2850
  type: Input
2851
2851
  }], showTime: [{
@@ -3026,11 +3026,11 @@ class ExpandCardComponent {
3026
3026
  this.openChange.emit(this.open);
3027
3027
  }
3028
3028
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ExpandCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3029
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ExpandCardComponent, isStandalone: true, selector: "teta-expand-card", inputs: { open: "open", showCross: "showCross" }, outputs: { openChange: "openChange", crossClick: "crossClick" }, exportAs: ["expand-card"], ngImport: i0, template: "<teta-toolbar class=\"justify-content-between align-center\">\n <ng-content select=\"head\"></ng-content>\n <div class=\"row gap align-center\">\n <button type=\"button\" teta-button (click)=\"setOpen()\" [palette]=\"'text'\" [view]=\"'ghost'\" [square]=\"true\">\n <teta-icon [name]=\"open ? 'arrowUpKey' : 'arrowDownKey'\" [palette]=\"'text'\"></teta-icon>\n </button>\n @if (showCross) {\n <teta-delimiter [palette]=\"'text'\" class=\"height-4\"></teta-delimiter>\n <button\n type=\"button\"\n teta-button\n (click)=\"crossClick.emit($event)\"\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n [square]=\"true\"\n >\n <teta-icon [name]=\"'closeBig'\" [palette]=\"'text'\"></teta-icon>\n </button>\n }\n </div>\n</teta-toolbar>\n@if (open) {\n<div class=\"content\">\n <ng-content></ng-content>\n</div>\n}\n", styles: [":host{border:solid 1px var(--color-text-5);border-radius:4px;animation:append-animate .5s linear;transition:order 5s ease-in}.content{padding:0 12px 12px;animation:append-animate .5s linear}@keyframes append-animate{0%{opacity:0}to{opacity:1}}\n"], dependencies: [{ kind: "component", type: ToolbarComponent, selector: "teta-toolbar", inputs: ["palette", "class"] }, { kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "component", type: DelimiterComponent, selector: "teta-delimiter", inputs: ["direction", "palette", "height", "verticalMargin", "horizontalMargin", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3029
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ExpandCardComponent, isStandalone: true, selector: "teta-expand-card", inputs: { open: "open", showCross: "showCross" }, outputs: { openChange: "openChange", crossClick: "crossClick" }, exportAs: ["expand-card"], ngImport: i0, template: "<teta-toolbar class=\"justify-content-between align-center\">\n <ng-content select=\"head\"></ng-content>\n <div class=\"row gap align-center\">\n <button type=\"button\" teta-button (click)=\"setOpen()\" [palette]=\"'text'\" [view]=\"'ghost'\" [square]=\"true\">\n <teta-icon [name]=\"open ? 'arrowUpKey' : 'arrowDownKey'\" [palette]=\"'text'\"></teta-icon>\n </button>\n @if (showCross) {\n <teta-delimiter [palette]=\"'text'\" class=\"height-4\"></teta-delimiter>\n <button\n type=\"button\"\n teta-button\n (click)=\"crossClick.emit($event)\"\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n [square]=\"true\"\n >\n <teta-icon [name]=\"'closeBig'\" [palette]=\"'text'\"></teta-icon>\n </button>\n }\n </div>\n</teta-toolbar>\n@if (open) {\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n}\n", styles: [":host{border:solid 1px var(--color-text-5);border-radius:4px;animation:append-animate .5s linear;transition:order 5s ease-in}.content{padding:0 12px 12px;animation:append-animate .5s linear}@keyframes append-animate{0%{opacity:0}to{opacity:1}}\n"], dependencies: [{ kind: "component", type: ToolbarComponent, selector: "teta-toolbar", inputs: ["palette", "class"] }, { kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "component", type: DelimiterComponent, selector: "teta-delimiter", inputs: ["direction", "palette", "height", "verticalMargin", "horizontalMargin", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3030
3030
  }
3031
3031
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ExpandCardComponent, decorators: [{
3032
3032
  type: Component,
3033
- args: [{ selector: 'teta-expand-card', changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'expand-card', standalone: true, imports: [ToolbarComponent, ButtonComponent, IconComponent, DelimiterComponent], template: "<teta-toolbar class=\"justify-content-between align-center\">\n <ng-content select=\"head\"></ng-content>\n <div class=\"row gap align-center\">\n <button type=\"button\" teta-button (click)=\"setOpen()\" [palette]=\"'text'\" [view]=\"'ghost'\" [square]=\"true\">\n <teta-icon [name]=\"open ? 'arrowUpKey' : 'arrowDownKey'\" [palette]=\"'text'\"></teta-icon>\n </button>\n @if (showCross) {\n <teta-delimiter [palette]=\"'text'\" class=\"height-4\"></teta-delimiter>\n <button\n type=\"button\"\n teta-button\n (click)=\"crossClick.emit($event)\"\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n [square]=\"true\"\n >\n <teta-icon [name]=\"'closeBig'\" [palette]=\"'text'\"></teta-icon>\n </button>\n }\n </div>\n</teta-toolbar>\n@if (open) {\n<div class=\"content\">\n <ng-content></ng-content>\n</div>\n}\n", styles: [":host{border:solid 1px var(--color-text-5);border-radius:4px;animation:append-animate .5s linear;transition:order 5s ease-in}.content{padding:0 12px 12px;animation:append-animate .5s linear}@keyframes append-animate{0%{opacity:0}to{opacity:1}}\n"] }]
3033
+ args: [{ selector: 'teta-expand-card', changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'expand-card', standalone: true, imports: [ToolbarComponent, ButtonComponent, IconComponent, DelimiterComponent], template: "<teta-toolbar class=\"justify-content-between align-center\">\n <ng-content select=\"head\"></ng-content>\n <div class=\"row gap align-center\">\n <button type=\"button\" teta-button (click)=\"setOpen()\" [palette]=\"'text'\" [view]=\"'ghost'\" [square]=\"true\">\n <teta-icon [name]=\"open ? 'arrowUpKey' : 'arrowDownKey'\" [palette]=\"'text'\"></teta-icon>\n </button>\n @if (showCross) {\n <teta-delimiter [palette]=\"'text'\" class=\"height-4\"></teta-delimiter>\n <button\n type=\"button\"\n teta-button\n (click)=\"crossClick.emit($event)\"\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n [square]=\"true\"\n >\n <teta-icon [name]=\"'closeBig'\" [palette]=\"'text'\"></teta-icon>\n </button>\n }\n </div>\n</teta-toolbar>\n@if (open) {\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n}\n", styles: [":host{border:solid 1px var(--color-text-5);border-radius:4px;animation:append-animate .5s linear;transition:order 5s ease-in}.content{padding:0 12px 12px;animation:append-animate .5s linear}@keyframes append-animate{0%{opacity:0}to{opacity:1}}\n"] }]
3034
3034
  }], ctorParameters: () => [], propDecorators: { open: [{
3035
3035
  type: Input
3036
3036
  }], openChange: [{
@@ -3051,11 +3051,11 @@ class ExpandItemComponent {
3051
3051
  this.openChange.emit(this.open);
3052
3052
  }
3053
3053
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ExpandItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3054
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ExpandItemComponent, isStandalone: true, selector: "teta-expand-item", inputs: { open: "open" }, outputs: { openChange: "openChange" }, exportAs: ["expand-item"], ngImport: i0, template: "<div class=\"row align-center gap color-text-90 height-6\">\n <div class=\"row row_auto align-center font-title-2\">\n <ng-content select=\"head\"></ng-content>\n </div>\n <button type=\"button\" teta-button (click)=\"setOpen()\" [palette]=\"'text'\" [view]=\"'ghost'\" [square]=\"true\">\n <teta-icon [name]=\"open ? 'arrowUpKey' : 'arrowDownKey'\" [palette]=\"'text'\"></teta-icon>\n </button>\n</div>\n@if (open) {\n<div class=\"content\">\n <ng-content></ng-content>\n</div>\n}\n", styles: [":host{animation:append-animate .5s linear;transition:order 5s ease-in;display:flex;flex-direction:column;gap:12px}.content{animation:append-animate .5s linear}@keyframes append-animate{0%{opacity:0}to{opacity:1}}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3054
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ExpandItemComponent, isStandalone: true, selector: "teta-expand-item", inputs: { open: "open" }, outputs: { openChange: "openChange" }, exportAs: ["expand-item"], ngImport: i0, template: "<div class=\"row align-center gap color-text-90 height-6\">\n <div class=\"row row_auto align-center font-title-2\">\n <ng-content select=\"head\"></ng-content>\n </div>\n <button type=\"button\" teta-button (click)=\"setOpen()\" [palette]=\"'text'\" [view]=\"'ghost'\" [square]=\"true\">\n <teta-icon [name]=\"open ? 'arrowUpKey' : 'arrowDownKey'\" [palette]=\"'text'\"></teta-icon>\n </button>\n</div>\n@if (open) {\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n}\n", styles: [":host{animation:append-animate .5s linear;transition:order 5s ease-in;display:flex;flex-direction:column;gap:12px}.content{animation:append-animate .5s linear}@keyframes append-animate{0%{opacity:0}to{opacity:1}}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3055
3055
  }
3056
3056
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ExpandItemComponent, decorators: [{
3057
3057
  type: Component,
3058
- args: [{ selector: 'teta-expand-item', changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'expand-item', standalone: true, imports: [ButtonComponent, IconComponent], template: "<div class=\"row align-center gap color-text-90 height-6\">\n <div class=\"row row_auto align-center font-title-2\">\n <ng-content select=\"head\"></ng-content>\n </div>\n <button type=\"button\" teta-button (click)=\"setOpen()\" [palette]=\"'text'\" [view]=\"'ghost'\" [square]=\"true\">\n <teta-icon [name]=\"open ? 'arrowUpKey' : 'arrowDownKey'\" [palette]=\"'text'\"></teta-icon>\n </button>\n</div>\n@if (open) {\n<div class=\"content\">\n <ng-content></ng-content>\n</div>\n}\n", styles: [":host{animation:append-animate .5s linear;transition:order 5s ease-in;display:flex;flex-direction:column;gap:12px}.content{animation:append-animate .5s linear}@keyframes append-animate{0%{opacity:0}to{opacity:1}}\n"] }]
3058
+ args: [{ selector: 'teta-expand-item', changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'expand-item', standalone: true, imports: [ButtonComponent, IconComponent], template: "<div class=\"row align-center gap color-text-90 height-6\">\n <div class=\"row row_auto align-center font-title-2\">\n <ng-content select=\"head\"></ng-content>\n </div>\n <button type=\"button\" teta-button (click)=\"setOpen()\" [palette]=\"'text'\" [view]=\"'ghost'\" [square]=\"true\">\n <teta-icon [name]=\"open ? 'arrowUpKey' : 'arrowDownKey'\" [palette]=\"'text'\"></teta-icon>\n </button>\n</div>\n@if (open) {\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n}\n", styles: [":host{animation:append-animate .5s linear;transition:order 5s ease-in;display:flex;flex-direction:column;gap:12px}.content{animation:append-animate .5s linear}@keyframes append-animate{0%{opacity:0}to{opacity:1}}\n"] }]
3059
3059
  }], propDecorators: { open: [{
3060
3060
  type: Input
3061
3061
  }], openChange: [{
@@ -3126,11 +3126,11 @@ class ExpandPanelComponent {
3126
3126
  this.openChange.emit(this.open);
3127
3127
  }
3128
3128
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ExpandPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3129
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ExpandPanelComponent, isStandalone: true, selector: "teta-expand-panel", inputs: { placeholder: "placeholder", open: "open", cookieName: "cookieName", direction: "direction" }, outputs: { openChange: "openChange" }, queries: [{ propertyName: "content", first: true, predicate: ExpandPanelContentDirective, descendants: true }, { propertyName: "head", first: true, predicate: ExpandPanelHeadDirective, descendants: true }], ngImport: i0, template: "@if (open) {\n<teta-toolbar\n style=\"display: flex\"\n [style.justifyContent]=\"direction === 'right' ? 'space-between' : 'unset'\"\n [style.flexDirection]=\"direction === 'right' ? 'row-reverse' : 'row'\"\n>\n <button teta-button [square]=\"true\" [palette]=\"'text'\" [view]=\"'ghost'\" (click)=\"closePanel()\">\n <teta-icon [palette]=\"'text'\" [name]=\"direction === 'right' ? 'start' : 'end'\"></teta-icon>\n </button>\n <span class=\"font-title-2\" style=\"display: contents\">\n <ng-container *ngTemplateOutlet=\"head?.template\"></ng-container>\n </span>\n</teta-toolbar>\n<ng-container *ngTemplateOutlet=\"content?.template\"></ng-container>\n} @if (!open) {\n<div class=\"width-10 overflow-hidden\" style=\"height: 100%\">\n <button\n teta-button\n style=\"transform-origin: 0 0; transform: rotate(-90deg) translateX(-100%); margin: 6px\"\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n (click)=\"openPanel()\"\n >\n <div class=\"font-button-2 nowrap\">{{ placeholder }}</div>\n <teta-icon\n style=\"transform-origin: 0 0; transform: rotate(-90deg) translateX(-100%)\"\n [palette]=\"'text'\"\n [name]=\"direction === 'right' ? 'start' : 'end'\"\n ></teta-icon>\n </button>\n</div>\n}\n", styles: [":host{display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;min-width:0;min-height:0;height:100%}\n"], dependencies: [{ kind: "component", type: ToolbarComponent, selector: "teta-toolbar", inputs: ["palette", "class"] }, { kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3129
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ExpandPanelComponent, isStandalone: true, selector: "teta-expand-panel", inputs: { placeholder: "placeholder", open: "open", cookieName: "cookieName", direction: "direction" }, outputs: { openChange: "openChange" }, queries: [{ propertyName: "content", first: true, predicate: ExpandPanelContentDirective, descendants: true }, { propertyName: "head", first: true, predicate: ExpandPanelHeadDirective, descendants: true }], ngImport: i0, template: "@if (open) {\n <teta-toolbar\n style=\"display: flex\"\n [style.justifyContent]=\"direction === 'right' ? 'space-between' : 'unset'\"\n [style.flexDirection]=\"direction === 'right' ? 'row-reverse' : 'row'\"\n >\n <button teta-button [square]=\"true\" [palette]=\"'text'\" [view]=\"'ghost'\" (click)=\"closePanel()\">\n <teta-icon [palette]=\"'text'\" [name]=\"direction === 'right' ? 'start' : 'end'\"></teta-icon>\n </button>\n <span class=\"font-title-2\" style=\"display: contents\">\n <ng-container *ngTemplateOutlet=\"head?.template\"></ng-container>\n </span>\n </teta-toolbar>\n <ng-container *ngTemplateOutlet=\"content?.template\"></ng-container>\n}\n@if (!open) {\n <div class=\"width-10 overflow-hidden\" style=\"height: 100%\">\n <button\n teta-button\n style=\"transform-origin: 0 0; transform: rotate(-90deg) translateX(-100%); margin: 6px\"\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n (click)=\"openPanel()\"\n >\n <div class=\"font-button-2 nowrap\">{{ placeholder }}</div>\n <teta-icon\n style=\"transform-origin: 0 0; transform: rotate(-90deg) translateX(-100%)\"\n [palette]=\"'text'\"\n [name]=\"direction === 'right' ? 'start' : 'end'\"\n ></teta-icon>\n </button>\n </div>\n}\n", styles: [":host{display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;min-width:0;min-height:0;height:100%}\n"], dependencies: [{ kind: "component", type: ToolbarComponent, selector: "teta-toolbar", inputs: ["palette", "class"] }, { kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3130
3130
  }
3131
3131
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ExpandPanelComponent, decorators: [{
3132
3132
  type: Component,
3133
- args: [{ selector: 'teta-expand-panel', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ToolbarComponent, ButtonComponent, IconComponent, NgTemplateOutlet], template: "@if (open) {\n<teta-toolbar\n style=\"display: flex\"\n [style.justifyContent]=\"direction === 'right' ? 'space-between' : 'unset'\"\n [style.flexDirection]=\"direction === 'right' ? 'row-reverse' : 'row'\"\n>\n <button teta-button [square]=\"true\" [palette]=\"'text'\" [view]=\"'ghost'\" (click)=\"closePanel()\">\n <teta-icon [palette]=\"'text'\" [name]=\"direction === 'right' ? 'start' : 'end'\"></teta-icon>\n </button>\n <span class=\"font-title-2\" style=\"display: contents\">\n <ng-container *ngTemplateOutlet=\"head?.template\"></ng-container>\n </span>\n</teta-toolbar>\n<ng-container *ngTemplateOutlet=\"content?.template\"></ng-container>\n} @if (!open) {\n<div class=\"width-10 overflow-hidden\" style=\"height: 100%\">\n <button\n teta-button\n style=\"transform-origin: 0 0; transform: rotate(-90deg) translateX(-100%); margin: 6px\"\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n (click)=\"openPanel()\"\n >\n <div class=\"font-button-2 nowrap\">{{ placeholder }}</div>\n <teta-icon\n style=\"transform-origin: 0 0; transform: rotate(-90deg) translateX(-100%)\"\n [palette]=\"'text'\"\n [name]=\"direction === 'right' ? 'start' : 'end'\"\n ></teta-icon>\n </button>\n</div>\n}\n", styles: [":host{display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;min-width:0;min-height:0;height:100%}\n"] }]
3133
+ args: [{ selector: 'teta-expand-panel', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ToolbarComponent, ButtonComponent, IconComponent, NgTemplateOutlet], template: "@if (open) {\n <teta-toolbar\n style=\"display: flex\"\n [style.justifyContent]=\"direction === 'right' ? 'space-between' : 'unset'\"\n [style.flexDirection]=\"direction === 'right' ? 'row-reverse' : 'row'\"\n >\n <button teta-button [square]=\"true\" [palette]=\"'text'\" [view]=\"'ghost'\" (click)=\"closePanel()\">\n <teta-icon [palette]=\"'text'\" [name]=\"direction === 'right' ? 'start' : 'end'\"></teta-icon>\n </button>\n <span class=\"font-title-2\" style=\"display: contents\">\n <ng-container *ngTemplateOutlet=\"head?.template\"></ng-container>\n </span>\n </teta-toolbar>\n <ng-container *ngTemplateOutlet=\"content?.template\"></ng-container>\n}\n@if (!open) {\n <div class=\"width-10 overflow-hidden\" style=\"height: 100%\">\n <button\n teta-button\n style=\"transform-origin: 0 0; transform: rotate(-90deg) translateX(-100%); margin: 6px\"\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n (click)=\"openPanel()\"\n >\n <div class=\"font-button-2 nowrap\">{{ placeholder }}</div>\n <teta-icon\n style=\"transform-origin: 0 0; transform: rotate(-90deg) translateX(-100%)\"\n [palette]=\"'text'\"\n [name]=\"direction === 'right' ? 'start' : 'end'\"\n ></teta-icon>\n </button>\n </div>\n}\n", styles: [":host{display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;min-width:0;min-height:0;height:100%}\n"] }]
3134
3134
  }], ctorParameters: () => [], propDecorators: { content: [{
3135
3135
  type: ContentChild,
3136
3136
  args: [ExpandPanelContentDirective, { static: false }]
@@ -3563,11 +3563,11 @@ class DateFilterComponent extends FilterComponentBase {
3563
3563
  return filter;
3564
3564
  }
3565
3565
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DateFilterComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: TetaConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
3566
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DateFilterComponent, isStandalone: true, selector: "teta-date-filter", inputs: { column: "column", data: "data", filterOptions: "filterOptions", state: "state" }, outputs: { filterChanged: "filterChanged" }, usesInheritance: true, ngImport: i0, template: "@if (locale | async; as loc) {\n<div class=\"form-row padding-3\">\n <teta-input [label]=\"loc.from\">\n <teta-date-picker\n style=\"width: 110px\"\n [ngModel]=\"filter.value?.greaterThan\"\n [appendToBody]=\"false\"\n (ngModelChange)=\"filter.value.greaterThan = $event\"\n ></teta-date-picker>\n </teta-input>\n <teta-input [label]=\"loc.to\">\n <teta-date-picker\n style=\"width: 110px\"\n [ngModel]=\"filter.value?.lessThan\"\n [appendToBody]=\"false\"\n (ngModelChange)=\"filter.value.lessThan = $event\"\n ></teta-date-picker>\n </teta-input>\n</div>\n}\n", styles: [""], dependencies: [{ kind: "component", type: InputComponent, selector: "teta-input", inputs: ["label", "hint", "viewType", "horizontal", "required"] }, { kind: "component", type: DatePickerComponent, selector: "teta-date-picker", inputs: ["date", "showTime", "minDate", "maxDate", "invalid", "disabled", "align", "verticalAlign", "viewType", "appendToBody", "backdrop", "allowNull", "firstDayOfWeek", "disabledDates", "disabledPeriods", "disabledDays", "minYearDate", "maxYearDate"], outputs: ["selectDate"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3566
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DateFilterComponent, isStandalone: true, selector: "teta-date-filter", inputs: { column: "column", data: "data", filterOptions: "filterOptions", state: "state" }, outputs: { filterChanged: "filterChanged" }, usesInheritance: true, ngImport: i0, template: "@if (locale | async; as loc) {\n <div class=\"form-row padding-3\">\n <teta-input [label]=\"loc.from\">\n <teta-date-picker\n style=\"width: 110px\"\n [ngModel]=\"filter.value?.greaterThan\"\n [appendToBody]=\"false\"\n (ngModelChange)=\"filter.value.greaterThan = $event\"\n ></teta-date-picker>\n </teta-input>\n <teta-input [label]=\"loc.to\">\n <teta-date-picker\n style=\"width: 110px\"\n [ngModel]=\"filter.value?.lessThan\"\n [appendToBody]=\"false\"\n (ngModelChange)=\"filter.value.lessThan = $event\"\n ></teta-date-picker>\n </teta-input>\n </div>\n}\n", styles: [""], dependencies: [{ kind: "component", type: InputComponent, selector: "teta-input", inputs: ["label", "hint", "viewType", "horizontal", "required"] }, { kind: "component", type: DatePickerComponent, selector: "teta-date-picker", inputs: ["date", "showTime", "minDate", "maxDate", "invalid", "disabled", "align", "verticalAlign", "viewType", "appendToBody", "backdrop", "allowNull", "firstDayOfWeek", "disabledDates", "disabledPeriods", "disabledDays", "minYearDate", "maxYearDate"], outputs: ["selectDate"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3567
3567
  }
3568
3568
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DateFilterComponent, decorators: [{
3569
3569
  type: Component,
3570
- args: [{ selector: 'teta-date-filter', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [InputComponent, DatePickerComponent, FormsModule, AsyncPipe], template: "@if (locale | async; as loc) {\n<div class=\"form-row padding-3\">\n <teta-input [label]=\"loc.from\">\n <teta-date-picker\n style=\"width: 110px\"\n [ngModel]=\"filter.value?.greaterThan\"\n [appendToBody]=\"false\"\n (ngModelChange)=\"filter.value.greaterThan = $event\"\n ></teta-date-picker>\n </teta-input>\n <teta-input [label]=\"loc.to\">\n <teta-date-picker\n style=\"width: 110px\"\n [ngModel]=\"filter.value?.lessThan\"\n [appendToBody]=\"false\"\n (ngModelChange)=\"filter.value.lessThan = $event\"\n ></teta-date-picker>\n </teta-input>\n</div>\n}\n" }]
3570
+ args: [{ selector: 'teta-date-filter', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [InputComponent, DatePickerComponent, FormsModule, AsyncPipe], template: "@if (locale | async; as loc) {\n <div class=\"form-row padding-3\">\n <teta-input [label]=\"loc.from\">\n <teta-date-picker\n style=\"width: 110px\"\n [ngModel]=\"filter.value?.greaterThan\"\n [appendToBody]=\"false\"\n (ngModelChange)=\"filter.value.greaterThan = $event\"\n ></teta-date-picker>\n </teta-input>\n <teta-input [label]=\"loc.to\">\n <teta-date-picker\n style=\"width: 110px\"\n [ngModel]=\"filter.value?.lessThan\"\n [appendToBody]=\"false\"\n (ngModelChange)=\"filter.value.lessThan = $event\"\n ></teta-date-picker>\n </teta-input>\n </div>\n}\n" }]
3571
3571
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: TetaConfigService }], propDecorators: { column: [{
3572
3572
  type: Input
3573
3573
  }], data: [{
@@ -4002,7 +4002,7 @@ class TextFieldComponent {
4002
4002
  useExisting: forwardRef(() => TextFieldComponent),
4003
4003
  multi: true,
4004
4004
  },
4005
- ], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "@if (leftIconName) {\n<teta-icon [name]=\"leftIconName\" [palette]=\"'text'\"></teta-icon>\n}\n<input\n #input\n [ngModel]=\"value | tetaNumber : (!onlyNumber ? null : inputFocused ? 1000 : decimalPart)\"\n [tetaOnlyNumber]=\"onlyNumber\"\n (ngModelChange)=\"value = $event; onChange($event)\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [ngClass]=\"{ 'color-text-40': disabled }\"\n (focus)=\"inputFocused = true\"\n (blur)=\"inputFocused = false; emitBlur()\"\n (keydown)=\"keyPress($event)\"\n type=\"text\"\n/>\n@if (value && !disabled) {\n<teta-icon class=\"close-icon\" [name]=\"'closeCircle'\" [palette]=\"'text'\" (click)=\"value = ''; onChange('')\"></teta-icon>\n}\n", styles: [""], dependencies: [{ kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: OnlyNumberDirective, selector: "[tetaOnlyNumber]", inputs: ["tetaOnlyNumber", "allowDecimals", "allowSign", "decimalSeparator", "commaSeparator", "onlyPositive"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: NumberPipe, name: "tetaNumber" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4005
+ ], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "@if (leftIconName) {\n <teta-icon [name]=\"leftIconName\" [palette]=\"'text'\"></teta-icon>\n}\n<input\n #input\n [ngModel]=\"value | tetaNumber: (!onlyNumber ? null : inputFocused ? 1000 : decimalPart)\"\n [tetaOnlyNumber]=\"onlyNumber\"\n (ngModelChange)=\"value = $event; onChange($event)\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [ngClass]=\"{ 'color-text-40': disabled }\"\n (focus)=\"inputFocused = true\"\n (blur)=\"inputFocused = false; emitBlur()\"\n (keydown)=\"keyPress($event)\"\n type=\"text\"\n/>\n@if (value && !disabled) {\n <teta-icon\n class=\"close-icon\"\n [name]=\"'closeCircle'\"\n [palette]=\"'text'\"\n (click)=\"value = ''; onChange('')\"\n ></teta-icon>\n}\n", styles: [""], dependencies: [{ kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: OnlyNumberDirective, selector: "[tetaOnlyNumber]", inputs: ["tetaOnlyNumber", "allowDecimals", "allowSign", "decimalSeparator", "commaSeparator", "onlyPositive"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: NumberPipe, name: "tetaNumber" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4006
4006
  }
4007
4007
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TextFieldComponent, decorators: [{
4008
4008
  type: Component,
@@ -4012,7 +4012,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
4012
4012
  useExisting: forwardRef(() => TextFieldComponent),
4013
4013
  multi: true,
4014
4014
  },
4015
- ], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [IconComponent, FormsModule, OnlyNumberDirective, NgClass, NumberPipe], template: "@if (leftIconName) {\n<teta-icon [name]=\"leftIconName\" [palette]=\"'text'\"></teta-icon>\n}\n<input\n #input\n [ngModel]=\"value | tetaNumber : (!onlyNumber ? null : inputFocused ? 1000 : decimalPart)\"\n [tetaOnlyNumber]=\"onlyNumber\"\n (ngModelChange)=\"value = $event; onChange($event)\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [ngClass]=\"{ 'color-text-40': disabled }\"\n (focus)=\"inputFocused = true\"\n (blur)=\"inputFocused = false; emitBlur()\"\n (keydown)=\"keyPress($event)\"\n type=\"text\"\n/>\n@if (value && !disabled) {\n<teta-icon class=\"close-icon\" [name]=\"'closeCircle'\" [palette]=\"'text'\" (click)=\"value = ''; onChange('')\"></teta-icon>\n}\n" }]
4015
+ ], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [IconComponent, FormsModule, OnlyNumberDirective, NgClass, NumberPipe], template: "@if (leftIconName) {\n <teta-icon [name]=\"leftIconName\" [palette]=\"'text'\"></teta-icon>\n}\n<input\n #input\n [ngModel]=\"value | tetaNumber: (!onlyNumber ? null : inputFocused ? 1000 : decimalPart)\"\n [tetaOnlyNumber]=\"onlyNumber\"\n (ngModelChange)=\"value = $event; onChange($event)\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [ngClass]=\"{ 'color-text-40': disabled }\"\n (focus)=\"inputFocused = true\"\n (blur)=\"inputFocused = false; emitBlur()\"\n (keydown)=\"keyPress($event)\"\n type=\"text\"\n/>\n@if (value && !disabled) {\n <teta-icon\n class=\"close-icon\"\n [name]=\"'closeCircle'\"\n [palette]=\"'text'\"\n (click)=\"value = ''; onChange('')\"\n ></teta-icon>\n}\n" }]
4016
4016
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { placeholder: [{
4017
4017
  type: Input
4018
4018
  }], leftIconName: [{
@@ -4106,11 +4106,11 @@ class ListFilterComponent extends FilterComponentBase {
4106
4106
  return filter;
4107
4107
  }
4108
4108
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ListFilterComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: TetaConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
4109
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ListFilterComponent, isStandalone: true, selector: "teta-list-filter", inputs: { column: "column", data: "data", filterOptions: "filterOptions", state: "state" }, outputs: { filterChanged: "filterChanged" }, usesInheritance: true, ngImport: i0, template: "<div class=\"padding-2\">\n <teta-text-field [(ngModel)]=\"search\"></teta-text-field>\n</div>\n<teta-scrollable class=\"column column_auto\" [contentClass]=\"['list', 'padding-v-2']\">\n <div class=\"list-item\">\n <teta-checkbox [binary]=\"true\" [allowNull]=\"true\" [ngModel]=\"all()\" (ngModelChange)=\"setAll($event)\">\n {{ (locale | async)?.all }}\n </teta-checkbox>\n </div>\n <div class=\"list-divider\"></div>\n @for (option of visibleOptions; track option) {\n <div class=\"list-item\">\n <teta-checkbox [ngModel]=\"filter.value\" (ngModelChange)=\"setFilter($event)\" [value]=\"option.id\" [binary]=\"false\">\n {{ option.name }}\n </teta-checkbox>\n </div>\n }\n</teta-scrollable>\n", styles: [":host{display:flex;flex-direction:column;flex-grow:1;min-height:0;min-width:0}\n"], dependencies: [{ kind: "component", type: TextFieldComponent, selector: "teta-text-field", inputs: ["placeholder", "leftIconName", "disabled", "onlyNumber", "decimalPart", "invalid"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ScrollableComponent, selector: "teta-scrollable", inputs: ["direction", "showScrollbars", "contentClass"], outputs: ["scroll"] }, { kind: "component", type: CheckboxComponent, selector: "teta-checkbox", inputs: ["class", "palette", "noLabel", "disabled", "value", "binary", "labelPosition", "allowNull"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4109
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ListFilterComponent, isStandalone: true, selector: "teta-list-filter", inputs: { column: "column", data: "data", filterOptions: "filterOptions", state: "state" }, outputs: { filterChanged: "filterChanged" }, usesInheritance: true, ngImport: i0, template: "<div class=\"padding-2\">\n <teta-text-field [(ngModel)]=\"search\"></teta-text-field>\n</div>\n<teta-scrollable class=\"column column_auto\" [contentClass]=\"['list', 'padding-v-2']\">\n <div class=\"list-item\">\n <teta-checkbox [binary]=\"true\" [allowNull]=\"true\" [ngModel]=\"all()\" (ngModelChange)=\"setAll($event)\">\n {{ (locale | async)?.all }}\n </teta-checkbox>\n </div>\n <div class=\"list-divider\"></div>\n @for (option of visibleOptions; track option) {\n <div class=\"list-item\">\n <teta-checkbox [ngModel]=\"filter.value\" (ngModelChange)=\"setFilter($event)\" [value]=\"option.id\" [binary]=\"false\">\n {{ option.name }}\n </teta-checkbox>\n </div>\n }\n</teta-scrollable>\n", styles: [":host{display:flex;flex-direction:column;flex-grow:1;min-height:0;min-width:0}\n"], dependencies: [{ kind: "component", type: TextFieldComponent, selector: "teta-text-field", inputs: ["placeholder", "leftIconName", "disabled", "onlyNumber", "decimalPart", "invalid"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ScrollableComponent, selector: "teta-scrollable", inputs: ["direction", "showScrollbars", "contentClass"], outputs: ["scroll"] }, { kind: "component", type: CheckboxComponent, selector: "teta-checkbox", inputs: ["class", "palette", "noLabel", "disabled", "value", "binary", "labelPosition", "allowNull"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4110
4110
  }
4111
4111
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ListFilterComponent, decorators: [{
4112
4112
  type: Component,
4113
- args: [{ selector: 'teta-list-filter', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [TextFieldComponent, FormsModule, ScrollableComponent, CheckboxComponent, AsyncPipe], template: "<div class=\"padding-2\">\n <teta-text-field [(ngModel)]=\"search\"></teta-text-field>\n</div>\n<teta-scrollable class=\"column column_auto\" [contentClass]=\"['list', 'padding-v-2']\">\n <div class=\"list-item\">\n <teta-checkbox [binary]=\"true\" [allowNull]=\"true\" [ngModel]=\"all()\" (ngModelChange)=\"setAll($event)\">\n {{ (locale | async)?.all }}\n </teta-checkbox>\n </div>\n <div class=\"list-divider\"></div>\n @for (option of visibleOptions; track option) {\n <div class=\"list-item\">\n <teta-checkbox [ngModel]=\"filter.value\" (ngModelChange)=\"setFilter($event)\" [value]=\"option.id\" [binary]=\"false\">\n {{ option.name }}\n </teta-checkbox>\n </div>\n }\n</teta-scrollable>\n", styles: [":host{display:flex;flex-direction:column;flex-grow:1;min-height:0;min-width:0}\n"] }]
4113
+ args: [{ selector: 'teta-list-filter', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [TextFieldComponent, FormsModule, ScrollableComponent, CheckboxComponent, AsyncPipe], template: "<div class=\"padding-2\">\n <teta-text-field [(ngModel)]=\"search\"></teta-text-field>\n</div>\n<teta-scrollable class=\"column column_auto\" [contentClass]=\"['list', 'padding-v-2']\">\n <div class=\"list-item\">\n <teta-checkbox [binary]=\"true\" [allowNull]=\"true\" [ngModel]=\"all()\" (ngModelChange)=\"setAll($event)\">\n {{ (locale | async)?.all }}\n </teta-checkbox>\n </div>\n <div class=\"list-divider\"></div>\n @for (option of visibleOptions; track option) {\n <div class=\"list-item\">\n <teta-checkbox [ngModel]=\"filter.value\" (ngModelChange)=\"setFilter($event)\" [value]=\"option.id\" [binary]=\"false\">\n {{ option.name }}\n </teta-checkbox>\n </div>\n }\n</teta-scrollable>\n", styles: [":host{display:flex;flex-direction:column;flex-grow:1;min-height:0;min-width:0}\n"] }]
4114
4114
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: TetaConfigService }], propDecorators: { column: [{
4115
4115
  type: Input
4116
4116
  }], data: [{
@@ -4156,11 +4156,11 @@ class NumericFilterComponent extends FilterComponentBase {
4156
4156
  return filter;
4157
4157
  }
4158
4158
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: NumericFilterComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: TetaConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
4159
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: NumericFilterComponent, isStandalone: true, selector: "teta-numeric-filter", inputs: { column: "column", data: "data", filterOptions: "filterOptions", state: "state" }, outputs: { filterChanged: "filterChanged" }, usesInheritance: true, ngImport: i0, template: "@if (locale | async; as loc) {\n<div class=\"form-row padding-3\">\n <teta-input [label]=\"loc.from\">\n <input\n class=\"input\"\n type=\"text\"\n style=\"width: 110px\"\n [tetaOnlyNumber]=\"true\"\n [ngModel]=\"filter.value?.greaterThan\"\n (ngModelChange)=\"filter.value.greaterThan = $event\"\n />\n </teta-input>\n <teta-input [label]=\"loc.to\">\n <input\n class=\"input\"\n type=\"text\"\n style=\"width: 110px\"\n [tetaOnlyNumber]=\"true\"\n [ngModel]=\"filter.value?.lessThan\"\n (ngModelChange)=\"filter.value.lessThan = $event\"\n />\n </teta-input>\n</div>\n}\n", styles: [""], dependencies: [{ kind: "component", type: InputComponent, selector: "teta-input", inputs: ["label", "hint", "viewType", "horizontal", "required"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: OnlyNumberDirective, selector: "[tetaOnlyNumber]", inputs: ["tetaOnlyNumber", "allowDecimals", "allowSign", "decimalSeparator", "commaSeparator", "onlyPositive"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4159
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: NumericFilterComponent, isStandalone: true, selector: "teta-numeric-filter", inputs: { column: "column", data: "data", filterOptions: "filterOptions", state: "state" }, outputs: { filterChanged: "filterChanged" }, usesInheritance: true, ngImport: i0, template: "@if (locale | async; as loc) {\n <div class=\"form-row padding-3\">\n <teta-input [label]=\"loc.from\">\n <input\n class=\"input\"\n type=\"text\"\n style=\"width: 110px\"\n [tetaOnlyNumber]=\"true\"\n [ngModel]=\"filter.value?.greaterThan\"\n (ngModelChange)=\"filter.value.greaterThan = $event\"\n />\n </teta-input>\n <teta-input [label]=\"loc.to\">\n <input\n class=\"input\"\n type=\"text\"\n style=\"width: 110px\"\n [tetaOnlyNumber]=\"true\"\n [ngModel]=\"filter.value?.lessThan\"\n (ngModelChange)=\"filter.value.lessThan = $event\"\n />\n </teta-input>\n </div>\n}\n", styles: [""], dependencies: [{ kind: "component", type: InputComponent, selector: "teta-input", inputs: ["label", "hint", "viewType", "horizontal", "required"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: OnlyNumberDirective, selector: "[tetaOnlyNumber]", inputs: ["tetaOnlyNumber", "allowDecimals", "allowSign", "decimalSeparator", "commaSeparator", "onlyPositive"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4160
4160
  }
4161
4161
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: NumericFilterComponent, decorators: [{
4162
4162
  type: Component,
4163
- args: [{ selector: 'teta-numeric-filter', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [InputComponent, FormsModule, OnlyNumberDirective, AsyncPipe], template: "@if (locale | async; as loc) {\n<div class=\"form-row padding-3\">\n <teta-input [label]=\"loc.from\">\n <input\n class=\"input\"\n type=\"text\"\n style=\"width: 110px\"\n [tetaOnlyNumber]=\"true\"\n [ngModel]=\"filter.value?.greaterThan\"\n (ngModelChange)=\"filter.value.greaterThan = $event\"\n />\n </teta-input>\n <teta-input [label]=\"loc.to\">\n <input\n class=\"input\"\n type=\"text\"\n style=\"width: 110px\"\n [tetaOnlyNumber]=\"true\"\n [ngModel]=\"filter.value?.lessThan\"\n (ngModelChange)=\"filter.value.lessThan = $event\"\n />\n </teta-input>\n</div>\n}\n" }]
4163
+ args: [{ selector: 'teta-numeric-filter', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [InputComponent, FormsModule, OnlyNumberDirective, AsyncPipe], template: "@if (locale | async; as loc) {\n <div class=\"form-row padding-3\">\n <teta-input [label]=\"loc.from\">\n <input\n class=\"input\"\n type=\"text\"\n style=\"width: 110px\"\n [tetaOnlyNumber]=\"true\"\n [ngModel]=\"filter.value?.greaterThan\"\n (ngModelChange)=\"filter.value.greaterThan = $event\"\n />\n </teta-input>\n <teta-input [label]=\"loc.to\">\n <input\n class=\"input\"\n type=\"text\"\n style=\"width: 110px\"\n [tetaOnlyNumber]=\"true\"\n [ngModel]=\"filter.value?.lessThan\"\n (ngModelChange)=\"filter.value.lessThan = $event\"\n />\n </teta-input>\n </div>\n}\n" }]
4164
4164
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: TetaConfigService }], propDecorators: { column: [{
4165
4165
  type: Input
4166
4166
  }], data: [{
@@ -4491,11 +4491,11 @@ class RadioButtonComponent {
4491
4491
  this.radio._removeButton(this);
4492
4492
  }
4493
4493
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RadioButtonComponent, deps: [{ token: i0.ViewContainerRef }, { token: RadioComponent, host: true }], target: i0.ɵɵFactoryTarget.Component }); }
4494
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: RadioButtonComponent, isStandalone: true, selector: "teta-radio-button", inputs: { checked: "checked", disabled: "disabled", value: "value" }, host: { listeners: { "click": "hostClick()" }, properties: { "class.radio-button": "this.radioButton", "class.radio-button-selected": "this.selected", "class.radio-button-checked": "this.checked", "class.radio-button_disabled": "this.disabled" } }, ngImport: i0, template: "<div class=\"radio-button-icon\">\n @if (checked) {\n <div class=\"radio-button-small-icon\"></div>\n }\n</div>\n<ng-content></ng-content>\n", styles: [""], encapsulation: i0.ViewEncapsulation.None }); }
4494
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: RadioButtonComponent, isStandalone: true, selector: "teta-radio-button", inputs: { checked: "checked", disabled: "disabled", value: "value" }, host: { listeners: { "click": "hostClick()" }, properties: { "class.radio-button": "this.radioButton", "class.radio-button-selected": "this.selected", "class.radio-button-checked": "this.checked", "class.radio-button_disabled": "this.disabled" } }, ngImport: i0, template: "<div class=\"radio-button-icon\">\n @if (checked) {\n <div class=\"radio-button-small-icon\"></div>\n }\n</div>\n<ng-content></ng-content>\n", styles: [""], encapsulation: i0.ViewEncapsulation.None }); }
4495
4495
  }
4496
4496
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RadioButtonComponent, decorators: [{
4497
4497
  type: Component,
4498
- args: [{ selector: 'teta-radio-button', encapsulation: ViewEncapsulation.None, standalone: true, template: "<div class=\"radio-button-icon\">\n @if (checked) {\n <div class=\"radio-button-small-icon\"></div>\n }\n</div>\n<ng-content></ng-content>\n" }]
4498
+ args: [{ selector: 'teta-radio-button', encapsulation: ViewEncapsulation.None, standalone: true, template: "<div class=\"radio-button-icon\">\n @if (checked) {\n <div class=\"radio-button-small-icon\"></div>\n }\n</div>\n<ng-content></ng-content>\n" }]
4499
4499
  }], ctorParameters: () => [{ type: i0.ViewContainerRef }, { type: RadioComponent, decorators: [{
4500
4500
  type: Host
4501
4501
  }] }], propDecorators: { radioButton: [{
@@ -4554,11 +4554,11 @@ class BooleanFilterComponent extends FilterComponentBase {
4554
4554
  return filter;
4555
4555
  }
4556
4556
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: BooleanFilterComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: TetaConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
4557
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: BooleanFilterComponent, isStandalone: true, selector: "teta-boolean-filter", inputs: { column: "column", data: "data", filterOptions: "filterOptions", state: "state" }, outputs: { filterChanged: "filterChanged" }, usesInheritance: true, ngImport: i0, template: "@if (locale | async; as loc) {\n<div class=\"padding-3\">\n <teta-radio [ngModel]=\"filter.value\" (ngModelChange)=\"setFilter()\">\n <teta-radio-button [value]=\"null\">{{ loc?.notSelected }}</teta-radio-button>\n <teta-radio-button [value]=\"true\">{{ loc?.yes }}</teta-radio-button>\n <teta-radio-button [value]=\"false\">{{ loc?.no }}</teta-radio-button>\n </teta-radio>\n</div>\n}\n", styles: [""], dependencies: [{ kind: "component", type: RadioComponent, selector: "teta-radio", inputs: ["inline", "checkChangeSelected", "disabled", "value"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: RadioButtonComponent, selector: "teta-radio-button", inputs: ["checked", "disabled", "value"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4557
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: BooleanFilterComponent, isStandalone: true, selector: "teta-boolean-filter", inputs: { column: "column", data: "data", filterOptions: "filterOptions", state: "state" }, outputs: { filterChanged: "filterChanged" }, usesInheritance: true, ngImport: i0, template: "@if (locale | async; as loc) {\n <div class=\"padding-3\">\n <teta-radio [ngModel]=\"filter.value\" (ngModelChange)=\"setFilter()\">\n <teta-radio-button [value]=\"null\">{{ loc?.notSelected }}</teta-radio-button>\n <teta-radio-button [value]=\"true\">{{ loc?.yes }}</teta-radio-button>\n <teta-radio-button [value]=\"false\">{{ loc?.no }}</teta-radio-button>\n </teta-radio>\n </div>\n}\n", styles: [""], dependencies: [{ kind: "component", type: RadioComponent, selector: "teta-radio", inputs: ["inline", "checkChangeSelected", "disabled", "value"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: RadioButtonComponent, selector: "teta-radio-button", inputs: ["checked", "disabled", "value"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4558
4558
  }
4559
4559
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: BooleanFilterComponent, decorators: [{
4560
4560
  type: Component,
4561
- args: [{ selector: 'teta-boolean-filter', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [RadioComponent, FormsModule, RadioButtonComponent, AsyncPipe], template: "@if (locale | async; as loc) {\n<div class=\"padding-3\">\n <teta-radio [ngModel]=\"filter.value\" (ngModelChange)=\"setFilter()\">\n <teta-radio-button [value]=\"null\">{{ loc?.notSelected }}</teta-radio-button>\n <teta-radio-button [value]=\"true\">{{ loc?.yes }}</teta-radio-button>\n <teta-radio-button [value]=\"false\">{{ loc?.no }}</teta-radio-button>\n </teta-radio>\n</div>\n}\n" }]
4561
+ args: [{ selector: 'teta-boolean-filter', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [RadioComponent, FormsModule, RadioButtonComponent, AsyncPipe], template: "@if (locale | async; as loc) {\n <div class=\"padding-3\">\n <teta-radio [ngModel]=\"filter.value\" (ngModelChange)=\"setFilter()\">\n <teta-radio-button [value]=\"null\">{{ loc?.notSelected }}</teta-radio-button>\n <teta-radio-button [value]=\"true\">{{ loc?.yes }}</teta-radio-button>\n <teta-radio-button [value]=\"false\">{{ loc?.no }}</teta-radio-button>\n </teta-radio>\n </div>\n}\n" }]
4562
4562
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: TetaConfigService }], propDecorators: { column: [{
4563
4563
  type: Input
4564
4564
  }], data: [{
@@ -4871,11 +4871,11 @@ class MessageComponent {
4871
4871
  this.reset();
4872
4872
  }
4873
4873
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: MessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4874
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: MessageComponent, isStandalone: true, selector: "teta-message", inputs: { message: "message", index: "index", class: "class" }, outputs: { closed: "closed" }, host: { listeners: { "mouseleave": "init()", "mouseenter": "reset()" }, properties: { "class": "this.getClass" } }, ngImport: i0, template: "<div class=\"row align-center justify-content-between\">\n <div class=\"font-title-2 padding-left-4\">\n {{ message.title }}\n </div>\n <button teta-button type=\"button\" [square]=\"true\" [view]=\"'ghost'\" (click)=\"closeMe($event)\">\n <teta-icon class=\"fill-text-90\" [name]=\"'closeBig'\"></teta-icon>\n </button>\n</div>\n@if (!message.template && message.text) {\n<div class=\"font-body-3 padding-v-2 padding-left-4\">\n {{ message.text }}\n</div>\n} @if (message.template) {\n<ng-container *ngTemplateOutlet=\"message.template; context: { $implicit: message }\"></ng-container>\n}\n", styles: [""], dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4874
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: MessageComponent, isStandalone: true, selector: "teta-message", inputs: { message: "message", index: "index", class: "class" }, outputs: { closed: "closed" }, host: { listeners: { "mouseleave": "init()", "mouseenter": "reset()" }, properties: { "class": "this.getClass" } }, ngImport: i0, template: "<div class=\"row align-center justify-content-between\">\n <div class=\"font-title-2 padding-left-4\">\n {{ message.title }}\n </div>\n <button teta-button type=\"button\" [square]=\"true\" [view]=\"'ghost'\" (click)=\"closeMe($event)\">\n <teta-icon class=\"fill-text-90\" [name]=\"'closeBig'\"></teta-icon>\n </button>\n</div>\n@if (!message.template && message.text) {\n <div class=\"font-body-3 padding-v-2 padding-left-4\">\n {{ message.text }}\n </div>\n}\n@if (message.template) {\n <ng-container *ngTemplateOutlet=\"message.template; context: { $implicit: message }\"></ng-container>\n}\n", styles: [""], dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4875
4875
  }
4876
4876
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: MessageComponent, decorators: [{
4877
4877
  type: Component,
4878
- args: [{ selector: 'teta-message', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ButtonComponent, IconComponent, NgTemplateOutlet], template: "<div class=\"row align-center justify-content-between\">\n <div class=\"font-title-2 padding-left-4\">\n {{ message.title }}\n </div>\n <button teta-button type=\"button\" [square]=\"true\" [view]=\"'ghost'\" (click)=\"closeMe($event)\">\n <teta-icon class=\"fill-text-90\" [name]=\"'closeBig'\"></teta-icon>\n </button>\n</div>\n@if (!message.template && message.text) {\n<div class=\"font-body-3 padding-v-2 padding-left-4\">\n {{ message.text }}\n</div>\n} @if (message.template) {\n<ng-container *ngTemplateOutlet=\"message.template; context: { $implicit: message }\"></ng-container>\n}\n" }]
4878
+ args: [{ selector: 'teta-message', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ButtonComponent, IconComponent, NgTemplateOutlet], template: "<div class=\"row align-center justify-content-between\">\n <div class=\"font-title-2 padding-left-4\">\n {{ message.title }}\n </div>\n <button teta-button type=\"button\" [square]=\"true\" [view]=\"'ghost'\" (click)=\"closeMe($event)\">\n <teta-icon class=\"fill-text-90\" [name]=\"'closeBig'\"></teta-icon>\n </button>\n</div>\n@if (!message.template && message.text) {\n <div class=\"font-body-3 padding-v-2 padding-left-4\">\n {{ message.text }}\n </div>\n}\n@if (message.template) {\n <ng-container *ngTemplateOutlet=\"message.template; context: { $implicit: message }\"></ng-container>\n}\n" }]
4879
4879
  }], ctorParameters: () => [], propDecorators: { message: [{
4880
4880
  type: Input
4881
4881
  }], index: [{
@@ -4953,11 +4953,11 @@ class MessageHostComponent {
4953
4953
  this._alive = false;
4954
4954
  }
4955
4955
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: MessageHostComponent, deps: [{ token: MessageService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
4956
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: MessageHostComponent, isStandalone: true, selector: "teta-message-host", inputs: { class: "class", align: "align", verticalAlign: "verticalAlign" }, outputs: { itemClose: "itemClose" }, host: { properties: { "class": "this.getClass" } }, ngImport: i0, template: "@for (message of messages; track message; let i = $index) {\n<teta-message (closed)=\"closedItem($event)\" [message]=\"message\" [index]=\"i\"> </teta-message>\n}\n", styles: [""], dependencies: [{ kind: "component", type: MessageComponent, selector: "teta-message", inputs: ["message", "index", "class"], outputs: ["closed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4956
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: MessageHostComponent, isStandalone: true, selector: "teta-message-host", inputs: { class: "class", align: "align", verticalAlign: "verticalAlign" }, outputs: { itemClose: "itemClose" }, host: { properties: { "class": "this.getClass" } }, ngImport: i0, template: "@for (message of messages; track message; let i = $index) {\n <teta-message (closed)=\"closedItem($event)\" [message]=\"message\" [index]=\"i\"> </teta-message>\n}\n", styles: [""], dependencies: [{ kind: "component", type: MessageComponent, selector: "teta-message", inputs: ["message", "index", "class"], outputs: ["closed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4957
4957
  }
4958
4958
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: MessageHostComponent, decorators: [{
4959
4959
  type: Component,
4960
- args: [{ selector: 'teta-message-host', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MessageComponent], template: "@for (message of messages; track message; let i = $index) {\n<teta-message (closed)=\"closedItem($event)\" [message]=\"message\" [index]=\"i\"> </teta-message>\n}\n" }]
4960
+ args: [{ selector: 'teta-message-host', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MessageComponent], template: "@for (message of messages; track message; let i = $index) {\n <teta-message (closed)=\"closedItem($event)\" [message]=\"message\" [index]=\"i\"> </teta-message>\n}\n" }]
4961
4961
  }], ctorParameters: () => [{ type: MessageService }, { type: i0.ChangeDetectorRef }], propDecorators: { class: [{
4962
4962
  type: Input
4963
4963
  }], align: [{
@@ -5072,11 +5072,11 @@ class DialogComponent {
5072
5072
  }
5073
5073
  ngOnInit() { }
5074
5074
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DialogComponent, deps: [{ token: CurrentModal }, { token: DynamicData }], target: i0.ɵɵFactoryTarget.Component }); }
5075
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DialogComponent, isStandalone: true, selector: "teta-dialog", inputs: { message: "message", buttonText: "buttonText", buttonIcon: "buttonIcon", buttonPalette: "buttonPalette", showCancelButton: "showCancelButton" }, ngImport: i0, template: "<div class=\"padding-2 font-body-2\">\n {{ message | transloco }}\n</div>\n<teta-toolbar class=\"justify-content-end\">\n @if (showCancelButton) {\n <button teta-button (click)=\"cancel()\" [palette]=\"'text'\" [view]=\"'ghost'\">\n {{ 'common.cancel' | transloco }}\n </button>\n }\n\n <button teta-button (click)=\"ok()\" [square]=\"!buttonText?.length\" [palette]=\"buttonPalette\">\n @if (buttonIcon) {\n <teta-icon [name]=\"buttonIcon\"></teta-icon>\n } @if (buttonText?.length > 0) {\n {{ buttonText | transloco }}\n }\n </button>\n</teta-toolbar>\n", styles: [":host{display:flex;flex-direction:column;width:300px}\n"], dependencies: [{ kind: "component", type: ToolbarComponent, selector: "teta-toolbar", inputs: ["palette", "class"] }, { kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "pipe", type: i1$2.TranslocoPipe, name: "transloco" }] }); }
5075
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DialogComponent, isStandalone: true, selector: "teta-dialog", inputs: { message: "message", buttonText: "buttonText", buttonIcon: "buttonIcon", buttonPalette: "buttonPalette", showCancelButton: "showCancelButton" }, ngImport: i0, template: "<div class=\"padding-2 font-body-2\">\n {{ message | transloco }}\n</div>\n<teta-toolbar class=\"justify-content-end\">\n @if (showCancelButton) {\n <button teta-button (click)=\"cancel()\" [palette]=\"'text'\" [view]=\"'ghost'\">\n {{ 'common.cancel' | transloco }}\n </button>\n }\n\n <button teta-button (click)=\"ok()\" [square]=\"!buttonText?.length\" [palette]=\"buttonPalette\">\n @if (buttonIcon) {\n <teta-icon [name]=\"buttonIcon\"></teta-icon>\n }\n @if (buttonText?.length > 0) {\n {{ buttonText | transloco }}\n }\n </button>\n</teta-toolbar>\n", styles: [":host{display:flex;flex-direction:column;width:300px}\n"], dependencies: [{ kind: "component", type: ToolbarComponent, selector: "teta-toolbar", inputs: ["palette", "class"] }, { kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "pipe", type: i1$2.TranslocoPipe, name: "transloco" }] }); }
5076
5076
  }
5077
5077
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DialogComponent, decorators: [{
5078
5078
  type: Component,
5079
- args: [{ selector: 'teta-dialog', standalone: true, imports: [ToolbarComponent, ButtonComponent, IconComponent, TranslocoModule], template: "<div class=\"padding-2 font-body-2\">\n {{ message | transloco }}\n</div>\n<teta-toolbar class=\"justify-content-end\">\n @if (showCancelButton) {\n <button teta-button (click)=\"cancel()\" [palette]=\"'text'\" [view]=\"'ghost'\">\n {{ 'common.cancel' | transloco }}\n </button>\n }\n\n <button teta-button (click)=\"ok()\" [square]=\"!buttonText?.length\" [palette]=\"buttonPalette\">\n @if (buttonIcon) {\n <teta-icon [name]=\"buttonIcon\"></teta-icon>\n } @if (buttonText?.length > 0) {\n {{ buttonText | transloco }}\n }\n </button>\n</teta-toolbar>\n", styles: [":host{display:flex;flex-direction:column;width:300px}\n"] }]
5079
+ args: [{ selector: 'teta-dialog', standalone: true, imports: [ToolbarComponent, ButtonComponent, IconComponent, TranslocoModule], template: "<div class=\"padding-2 font-body-2\">\n {{ message | transloco }}\n</div>\n<teta-toolbar class=\"justify-content-end\">\n @if (showCancelButton) {\n <button teta-button (click)=\"cancel()\" [palette]=\"'text'\" [view]=\"'ghost'\">\n {{ 'common.cancel' | transloco }}\n </button>\n }\n\n <button teta-button (click)=\"ok()\" [square]=\"!buttonText?.length\" [palette]=\"buttonPalette\">\n @if (buttonIcon) {\n <teta-icon [name]=\"buttonIcon\"></teta-icon>\n }\n @if (buttonText?.length > 0) {\n {{ buttonText | transloco }}\n }\n </button>\n</teta-toolbar>\n", styles: [":host{display:flex;flex-direction:column;width:300px}\n"] }]
5080
5080
  }], ctorParameters: () => [{ type: CurrentModal }, { type: DynamicData }], propDecorators: { message: [{
5081
5081
  type: Input
5082
5082
  }], buttonText: [{
@@ -5693,11 +5693,11 @@ class ToggleComponent {
5693
5693
  this.cdr.markForCheck();
5694
5694
  }
5695
5695
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ToggleComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
5696
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ToggleComponent, isStandalone: true, selector: "teta-toggle", inputs: { palette: "palette", noLabel: "noLabel", disabled: "disabled" }, host: { listeners: { "click": "changeValue()" }, properties: { "attr.tabindex": "this.tabindex", "class.toggle": "this.toggleClass", "class.toggle_disabled": "this.disabled" } }, providers: [TOGGLE_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "@if (!noLabel) {\n<span class=\"font-body-3 row_auto\">\n <ng-content></ng-content>\n</span>\n}\n<div class=\"toggle-button\" [class.toggle-button-on]=\"model\" [ngClass]=\"paletteClass\">\n <div class=\"toggle-button-circle\"></div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5696
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ToggleComponent, isStandalone: true, selector: "teta-toggle", inputs: { palette: "palette", noLabel: "noLabel", disabled: "disabled" }, host: { listeners: { "click": "changeValue()" }, properties: { "attr.tabindex": "this.tabindex", "class.toggle": "this.toggleClass", "class.toggle_disabled": "this.disabled" } }, providers: [TOGGLE_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "@if (!noLabel) {\n <span class=\"font-body-3 row_auto\">\n <ng-content></ng-content>\n </span>\n}\n<div class=\"toggle-button\" [class.toggle-button-on]=\"model\" [ngClass]=\"paletteClass\">\n <div class=\"toggle-button-circle\"></div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5697
5697
  }
5698
5698
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ToggleComponent, decorators: [{
5699
5699
  type: Component,
5700
- args: [{ selector: 'teta-toggle', providers: [TOGGLE_CONTROL_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass], template: "@if (!noLabel) {\n<span class=\"font-body-3 row_auto\">\n <ng-content></ng-content>\n</span>\n}\n<div class=\"toggle-button\" [class.toggle-button-on]=\"model\" [ngClass]=\"paletteClass\">\n <div class=\"toggle-button-circle\"></div>\n</div>\n" }]
5700
+ args: [{ selector: 'teta-toggle', providers: [TOGGLE_CONTROL_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass], template: "@if (!noLabel) {\n <span class=\"font-body-3 row_auto\">\n <ng-content></ng-content>\n </span>\n}\n<div class=\"toggle-button\" [class.toggle-button-on]=\"model\" [ngClass]=\"paletteClass\">\n <div class=\"toggle-button-circle\"></div>\n</div>\n" }]
5701
5701
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { tabindex: [{
5702
5702
  type: HostBinding,
5703
5703
  args: ['attr.tabindex']
@@ -5981,7 +5981,7 @@ class SelectComponent {
5981
5981
  useExisting: forwardRef(() => SelectComponent),
5982
5982
  multi: true,
5983
5983
  },
5984
- ], queries: [{ propertyName: "optionDirective", first: true, predicate: SelectOptionDirective, descendants: true, static: true }, { propertyName: "valueDirective", first: true, predicate: SelectValueDirective, descendants: true, static: true }], ngImport: i0, template: "@if (locale|async; as loc) {\n<teta-dropdown\n [align]=\"align\"\n [verticalAlign]=\"verticalAlign\"\n [autoClose]=\"autoClose\"\n [autoCloseIgnore]=\"autoCloseIgnore\"\n [(open)]=\"open\"\n [appendToBody]=\"appendToBody\"\n [disabled]=\"disabled\"\n [viewType]=\"viewType\"\n class=\"row row_auto\"\n>\n <div tetaDropdownHead [class]=\"'row row_auto select-head select_' + viewType\" [class.select-head_invalid]=\"invalid\">\n <div class=\"row_auto flex align-center\">\n @if (icon) {\n <teta-icon [name]=\"icon\" [palette]=\"'text'\" class=\"margin-right-1\"></teta-icon>\n } @if ((value === null || value === undefined || value?.length === 0) && !multiple) {\n <span class=\"placeholder\">\n {{ placeholder || loc.notSelected }}\n </span>\n }\n <ng-container\n *ngTemplateOutlet=\"\n valueDirective ? valueDirective.template : valueDefault;\n context: { $implicit: value, value: value }\n \"\n ></ng-container>\n </div>\n <teta-icon [name]=\"'arrowDownSmall'\" [palette]=\"'text'\"></teta-icon>\n </div>\n @if (options?.length) {\n <div tetaDropdownContent class=\"select-body row_auto\" (click)=\"$event.preventDefault()\">\n @if (searchRef) {\n <div class=\"select-search padding-h-2 padding-top-2\">\n <teta-text-field\n [ngModel]=\"searchText\"\n [class]=\"'select_' + viewType\"\n (ngModelChange)=\"search($event)\"\n [placeholder]=\"loc.search\"\n [leftIconName]=\"'search'\"\n ></teta-text-field>\n </div>\n } @if (visibleOptions?.length) { @if (!multiple && allowNull) {\n <div [class]=\"'margin-h-2 list-item list-item_interactive select_' + viewType\" (click)=\"clear()\">\n {{ loc.notSelected }}\n </div>\n <div class=\"list-divider margin-bottom-0\"></div>\n } @if (virtual) {\n <teta-scrollable class=\"column column_auto\">\n <cdk-virtual-scroll-viewport tetaScrollable [itemSize]=\"40\" minBufferPx=\"200\" maxBufferPx=\"600\">\n <div\n [class]=\"'list-item list-item_interactive justify-content-between select_' + viewType\"\n *cdkVirtualFor=\"let option of visibleOptions; templateCacheSize: 0\"\n [class.list-item_active]=\"itemSelected(option)\"\n [tetaHighlight]=\"searchText\"\n (click)=\"clickOption(option, $event)\"\n >\n <div [tetaHighlight]=\"searchText\">\n <ng-container\n *ngTemplateOutlet=\"\n optionDirective ? optionDirective.template : optionDefault;\n context: { $implicit: option, option: option }\n \"\n >\n </ng-container>\n </div>\n @if (itemSelected(option)) {\n <teta-icon [name]=\"'tick'\" [palette]=\"'text'\" class=\"margin-left-2\"></teta-icon>\n }\n </div>\n </cdk-virtual-scroll-viewport>\n </teta-scrollable>\n } @else {\n <teta-scrollable class=\"column column_auto\" [contentClass]=\"['column', 'column_auto']\">\n <div class=\"list\">\n @for (option of visibleOptions; track option) {\n <div\n [class]=\"'list-item list-item_interactive justify-content-between select_' + viewType\"\n [class.list-item_active]=\"itemSelected(option)\"\n (click)=\"clickOption(option, $event)\"\n >\n <span [tetaHighlight]=\"searchText\">\n <ng-container\n *ngTemplateOutlet=\"\n optionDirective ? optionDirective.template : optionDefault;\n context: { $implicit: option, option: option }\n \"\n >\n </ng-container>\n </span>\n @if (itemSelected(option) && multiple) {\n <teta-icon [name]=\"'tick'\" [palette]=\"'text'\"></teta-icon>\n }\n </div>\n }\n </div>\n </teta-scrollable>\n } } @else {\n <p class=\"padding-h-3 text-overflow-ellipsis overflow-hidden select-not-found-option\">\n {{ notFoundText || loc.notFound }}\n </p>\n } @if (multiple && value?.length) {\n <div class=\"row row_auto select-chip-field flex-wrap\">\n @for (item of value; track item) {\n <div class=\"tag\">\n <p>{{ getText(item) }}</p>\n <teta-icon\n class=\"cursor-pointer\"\n [palette]=\"'text'\"\n [name]=\"'closeCircle'\"\n (click)=\"removeItemClick(item, $event)\"\n ></teta-icon>\n </div>\n }\n </div>\n }\n </div>\n }\n</teta-dropdown>\n<ng-template #notFound>\n <p class=\"padding-h-3 text-overflow-ellipsis overflow-hidden select-not-found-option\">\n {{ notFoundText || loc.notFound }}\n </p>\n</ng-template>\n<ng-template #optionDefault let-option>\n {{ getText(option) }}\n</ng-template>\n<ng-template #valueDefault let-value>\n @if (multiple) {\n <div class=\"row_auto overflow-hidden text-overflow-ellipsis\">\n {{ loc.selected + ' ' + value?.length }}\n </div>\n } @if (!multiple) {\n <span class=\"row row_auto overflow-hidden text-overflow-ellipsis\">{{ getText(value) }}</span>\n }\n</ng-template>\n}\n", styles: [""], dependencies: [{ kind: "component", type: DropdownComponent, selector: "teta-dropdown", exportAs: ["dropdown"] }, { kind: "directive", type: DropdownHeadDirective, selector: "[tetaDropdownHead]" }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: DropdownContentDirective, selector: "[tetaDropdownContent]" }, { kind: "component", type: TextFieldComponent, selector: "teta-text-field", inputs: ["placeholder", "leftIconName", "disabled", "onlyNumber", "decimalPart", "invalid"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ScrollableComponent, selector: "teta-scrollable", inputs: ["direction", "showScrollbars", "contentClass"], outputs: ["scroll"] }, { kind: "component", type: CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: ScrollableDirective, selector: "[tetaScrollable]" }, { kind: "directive", type: CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "directive", type: HighlightDirective, selector: "[tetaHighlight]", inputs: ["tetaHighlight"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5984
+ ], queries: [{ propertyName: "optionDirective", first: true, predicate: SelectOptionDirective, descendants: true, static: true }, { propertyName: "valueDirective", first: true, predicate: SelectValueDirective, descendants: true, static: true }], ngImport: i0, template: "@if (locale | async; as loc) {\n <teta-dropdown\n [align]=\"align\"\n [verticalAlign]=\"verticalAlign\"\n [autoClose]=\"autoClose\"\n [autoCloseIgnore]=\"autoCloseIgnore\"\n [(open)]=\"open\"\n [appendToBody]=\"appendToBody\"\n [disabled]=\"disabled\"\n [viewType]=\"viewType\"\n class=\"row row_auto\"\n >\n <div tetaDropdownHead [class]=\"'row row_auto select-head select_' + viewType\" [class.select-head_invalid]=\"invalid\">\n <div class=\"row_auto flex align-center\">\n @if (icon) {\n <teta-icon [name]=\"icon\" [palette]=\"'text'\" class=\"margin-right-1\"></teta-icon>\n }\n @if ((value === null || value === undefined || value?.length === 0) && !multiple) {\n <span class=\"placeholder\">\n {{ placeholder || loc.notSelected }}\n </span>\n }\n <ng-container\n *ngTemplateOutlet=\"\n valueDirective ? valueDirective.template : valueDefault;\n context: { $implicit: value, value: value }\n \"\n ></ng-container>\n </div>\n <teta-icon [name]=\"'arrowDownSmall'\" [palette]=\"'text'\"></teta-icon>\n </div>\n @if (options?.length) {\n <div tetaDropdownContent class=\"select-body row_auto\" (click)=\"$event.preventDefault()\">\n @if (searchRef) {\n <div class=\"select-search padding-h-2 padding-top-2\">\n <teta-text-field\n [ngModel]=\"searchText\"\n [class]=\"'select_' + viewType\"\n (ngModelChange)=\"search($event)\"\n [placeholder]=\"loc.search\"\n [leftIconName]=\"'search'\"\n ></teta-text-field>\n </div>\n }\n @if (visibleOptions?.length) {\n @if (!multiple && allowNull) {\n <div [class]=\"'margin-h-2 list-item list-item_interactive select_' + viewType\" (click)=\"clear()\">\n {{ loc.notSelected }}\n </div>\n <div class=\"list-divider margin-bottom-0\"></div>\n }\n @if (virtual) {\n <teta-scrollable class=\"column column_auto\">\n <cdk-virtual-scroll-viewport tetaScrollable [itemSize]=\"40\" minBufferPx=\"200\" maxBufferPx=\"600\">\n <div\n [class]=\"'list-item list-item_interactive justify-content-between select_' + viewType\"\n *cdkVirtualFor=\"let option of visibleOptions; templateCacheSize: 0\"\n [class.list-item_active]=\"itemSelected(option)\"\n [tetaHighlight]=\"searchText\"\n (click)=\"clickOption(option, $event)\"\n >\n <div [tetaHighlight]=\"searchText\">\n <ng-container\n *ngTemplateOutlet=\"\n optionDirective ? optionDirective.template : optionDefault;\n context: { $implicit: option, option: option }\n \"\n >\n </ng-container>\n </div>\n @if (itemSelected(option)) {\n <teta-icon [name]=\"'tick'\" [palette]=\"'text'\" class=\"margin-left-2\"></teta-icon>\n }\n </div>\n </cdk-virtual-scroll-viewport>\n </teta-scrollable>\n } @else {\n <teta-scrollable class=\"column column_auto\" [contentClass]=\"['column', 'column_auto']\">\n <div class=\"list\">\n @for (option of visibleOptions; track option) {\n <div\n [class]=\"'list-item list-item_interactive justify-content-between select_' + viewType\"\n [class.list-item_active]=\"itemSelected(option)\"\n (click)=\"clickOption(option, $event)\"\n >\n <span [tetaHighlight]=\"searchText\">\n <ng-container\n *ngTemplateOutlet=\"\n optionDirective ? optionDirective.template : optionDefault;\n context: { $implicit: option, option: option }\n \"\n >\n </ng-container>\n </span>\n @if (itemSelected(option) && multiple) {\n <teta-icon [name]=\"'tick'\" [palette]=\"'text'\"></teta-icon>\n }\n </div>\n }\n </div>\n </teta-scrollable>\n }\n } @else {\n <p class=\"padding-h-3 text-overflow-ellipsis overflow-hidden select-not-found-option\">\n {{ notFoundText || loc.notFound }}\n </p>\n }\n @if (multiple && value?.length) {\n <div class=\"row row_auto select-chip-field flex-wrap\">\n @for (item of value; track item) {\n <div class=\"tag\">\n <p>{{ getText(item) }}</p>\n <teta-icon\n class=\"cursor-pointer\"\n [palette]=\"'text'\"\n [name]=\"'closeCircle'\"\n (click)=\"removeItemClick(item, $event)\"\n ></teta-icon>\n </div>\n }\n </div>\n }\n </div>\n }\n </teta-dropdown>\n <ng-template #notFound>\n <p class=\"padding-h-3 text-overflow-ellipsis overflow-hidden select-not-found-option\">\n {{ notFoundText || loc.notFound }}\n </p>\n </ng-template>\n <ng-template #optionDefault let-option>\n {{ getText(option) }}\n </ng-template>\n <ng-template #valueDefault let-value>\n @if (multiple) {\n <div class=\"row_auto overflow-hidden text-overflow-ellipsis\">\n {{ loc.selected + ' ' + value?.length }}\n </div>\n }\n @if (!multiple) {\n <span class=\"row row_auto overflow-hidden text-overflow-ellipsis\">{{ getText(value) }}</span>\n }\n </ng-template>\n}\n", styles: [""], dependencies: [{ kind: "component", type: DropdownComponent, selector: "teta-dropdown", exportAs: ["dropdown"] }, { kind: "directive", type: DropdownHeadDirective, selector: "[tetaDropdownHead]" }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: DropdownContentDirective, selector: "[tetaDropdownContent]" }, { kind: "component", type: TextFieldComponent, selector: "teta-text-field", inputs: ["placeholder", "leftIconName", "disabled", "onlyNumber", "decimalPart", "invalid"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ScrollableComponent, selector: "teta-scrollable", inputs: ["direction", "showScrollbars", "contentClass"], outputs: ["scroll"] }, { kind: "component", type: CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: ScrollableDirective, selector: "[tetaScrollable]" }, { kind: "directive", type: CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "directive", type: HighlightDirective, selector: "[tetaHighlight]", inputs: ["tetaHighlight"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5985
5985
  }
5986
5986
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: SelectComponent, decorators: [{
5987
5987
  type: Component,
@@ -6007,7 +6007,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
6007
6007
  CdkVirtualForOf,
6008
6008
  HighlightDirective,
6009
6009
  AsyncPipe,
6010
- ], template: "@if (locale|async; as loc) {\n<teta-dropdown\n [align]=\"align\"\n [verticalAlign]=\"verticalAlign\"\n [autoClose]=\"autoClose\"\n [autoCloseIgnore]=\"autoCloseIgnore\"\n [(open)]=\"open\"\n [appendToBody]=\"appendToBody\"\n [disabled]=\"disabled\"\n [viewType]=\"viewType\"\n class=\"row row_auto\"\n>\n <div tetaDropdownHead [class]=\"'row row_auto select-head select_' + viewType\" [class.select-head_invalid]=\"invalid\">\n <div class=\"row_auto flex align-center\">\n @if (icon) {\n <teta-icon [name]=\"icon\" [palette]=\"'text'\" class=\"margin-right-1\"></teta-icon>\n } @if ((value === null || value === undefined || value?.length === 0) && !multiple) {\n <span class=\"placeholder\">\n {{ placeholder || loc.notSelected }}\n </span>\n }\n <ng-container\n *ngTemplateOutlet=\"\n valueDirective ? valueDirective.template : valueDefault;\n context: { $implicit: value, value: value }\n \"\n ></ng-container>\n </div>\n <teta-icon [name]=\"'arrowDownSmall'\" [palette]=\"'text'\"></teta-icon>\n </div>\n @if (options?.length) {\n <div tetaDropdownContent class=\"select-body row_auto\" (click)=\"$event.preventDefault()\">\n @if (searchRef) {\n <div class=\"select-search padding-h-2 padding-top-2\">\n <teta-text-field\n [ngModel]=\"searchText\"\n [class]=\"'select_' + viewType\"\n (ngModelChange)=\"search($event)\"\n [placeholder]=\"loc.search\"\n [leftIconName]=\"'search'\"\n ></teta-text-field>\n </div>\n } @if (visibleOptions?.length) { @if (!multiple && allowNull) {\n <div [class]=\"'margin-h-2 list-item list-item_interactive select_' + viewType\" (click)=\"clear()\">\n {{ loc.notSelected }}\n </div>\n <div class=\"list-divider margin-bottom-0\"></div>\n } @if (virtual) {\n <teta-scrollable class=\"column column_auto\">\n <cdk-virtual-scroll-viewport tetaScrollable [itemSize]=\"40\" minBufferPx=\"200\" maxBufferPx=\"600\">\n <div\n [class]=\"'list-item list-item_interactive justify-content-between select_' + viewType\"\n *cdkVirtualFor=\"let option of visibleOptions; templateCacheSize: 0\"\n [class.list-item_active]=\"itemSelected(option)\"\n [tetaHighlight]=\"searchText\"\n (click)=\"clickOption(option, $event)\"\n >\n <div [tetaHighlight]=\"searchText\">\n <ng-container\n *ngTemplateOutlet=\"\n optionDirective ? optionDirective.template : optionDefault;\n context: { $implicit: option, option: option }\n \"\n >\n </ng-container>\n </div>\n @if (itemSelected(option)) {\n <teta-icon [name]=\"'tick'\" [palette]=\"'text'\" class=\"margin-left-2\"></teta-icon>\n }\n </div>\n </cdk-virtual-scroll-viewport>\n </teta-scrollable>\n } @else {\n <teta-scrollable class=\"column column_auto\" [contentClass]=\"['column', 'column_auto']\">\n <div class=\"list\">\n @for (option of visibleOptions; track option) {\n <div\n [class]=\"'list-item list-item_interactive justify-content-between select_' + viewType\"\n [class.list-item_active]=\"itemSelected(option)\"\n (click)=\"clickOption(option, $event)\"\n >\n <span [tetaHighlight]=\"searchText\">\n <ng-container\n *ngTemplateOutlet=\"\n optionDirective ? optionDirective.template : optionDefault;\n context: { $implicit: option, option: option }\n \"\n >\n </ng-container>\n </span>\n @if (itemSelected(option) && multiple) {\n <teta-icon [name]=\"'tick'\" [palette]=\"'text'\"></teta-icon>\n }\n </div>\n }\n </div>\n </teta-scrollable>\n } } @else {\n <p class=\"padding-h-3 text-overflow-ellipsis overflow-hidden select-not-found-option\">\n {{ notFoundText || loc.notFound }}\n </p>\n } @if (multiple && value?.length) {\n <div class=\"row row_auto select-chip-field flex-wrap\">\n @for (item of value; track item) {\n <div class=\"tag\">\n <p>{{ getText(item) }}</p>\n <teta-icon\n class=\"cursor-pointer\"\n [palette]=\"'text'\"\n [name]=\"'closeCircle'\"\n (click)=\"removeItemClick(item, $event)\"\n ></teta-icon>\n </div>\n }\n </div>\n }\n </div>\n }\n</teta-dropdown>\n<ng-template #notFound>\n <p class=\"padding-h-3 text-overflow-ellipsis overflow-hidden select-not-found-option\">\n {{ notFoundText || loc.notFound }}\n </p>\n</ng-template>\n<ng-template #optionDefault let-option>\n {{ getText(option) }}\n</ng-template>\n<ng-template #valueDefault let-value>\n @if (multiple) {\n <div class=\"row_auto overflow-hidden text-overflow-ellipsis\">\n {{ loc.selected + ' ' + value?.length }}\n </div>\n } @if (!multiple) {\n <span class=\"row row_auto overflow-hidden text-overflow-ellipsis\">{{ getText(value) }}</span>\n }\n</ng-template>\n}\n" }]
6010
+ ], template: "@if (locale | async; as loc) {\n <teta-dropdown\n [align]=\"align\"\n [verticalAlign]=\"verticalAlign\"\n [autoClose]=\"autoClose\"\n [autoCloseIgnore]=\"autoCloseIgnore\"\n [(open)]=\"open\"\n [appendToBody]=\"appendToBody\"\n [disabled]=\"disabled\"\n [viewType]=\"viewType\"\n class=\"row row_auto\"\n >\n <div tetaDropdownHead [class]=\"'row row_auto select-head select_' + viewType\" [class.select-head_invalid]=\"invalid\">\n <div class=\"row_auto flex align-center\">\n @if (icon) {\n <teta-icon [name]=\"icon\" [palette]=\"'text'\" class=\"margin-right-1\"></teta-icon>\n }\n @if ((value === null || value === undefined || value?.length === 0) && !multiple) {\n <span class=\"placeholder\">\n {{ placeholder || loc.notSelected }}\n </span>\n }\n <ng-container\n *ngTemplateOutlet=\"\n valueDirective ? valueDirective.template : valueDefault;\n context: { $implicit: value, value: value }\n \"\n ></ng-container>\n </div>\n <teta-icon [name]=\"'arrowDownSmall'\" [palette]=\"'text'\"></teta-icon>\n </div>\n @if (options?.length) {\n <div tetaDropdownContent class=\"select-body row_auto\" (click)=\"$event.preventDefault()\">\n @if (searchRef) {\n <div class=\"select-search padding-h-2 padding-top-2\">\n <teta-text-field\n [ngModel]=\"searchText\"\n [class]=\"'select_' + viewType\"\n (ngModelChange)=\"search($event)\"\n [placeholder]=\"loc.search\"\n [leftIconName]=\"'search'\"\n ></teta-text-field>\n </div>\n }\n @if (visibleOptions?.length) {\n @if (!multiple && allowNull) {\n <div [class]=\"'margin-h-2 list-item list-item_interactive select_' + viewType\" (click)=\"clear()\">\n {{ loc.notSelected }}\n </div>\n <div class=\"list-divider margin-bottom-0\"></div>\n }\n @if (virtual) {\n <teta-scrollable class=\"column column_auto\">\n <cdk-virtual-scroll-viewport tetaScrollable [itemSize]=\"40\" minBufferPx=\"200\" maxBufferPx=\"600\">\n <div\n [class]=\"'list-item list-item_interactive justify-content-between select_' + viewType\"\n *cdkVirtualFor=\"let option of visibleOptions; templateCacheSize: 0\"\n [class.list-item_active]=\"itemSelected(option)\"\n [tetaHighlight]=\"searchText\"\n (click)=\"clickOption(option, $event)\"\n >\n <div [tetaHighlight]=\"searchText\">\n <ng-container\n *ngTemplateOutlet=\"\n optionDirective ? optionDirective.template : optionDefault;\n context: { $implicit: option, option: option }\n \"\n >\n </ng-container>\n </div>\n @if (itemSelected(option)) {\n <teta-icon [name]=\"'tick'\" [palette]=\"'text'\" class=\"margin-left-2\"></teta-icon>\n }\n </div>\n </cdk-virtual-scroll-viewport>\n </teta-scrollable>\n } @else {\n <teta-scrollable class=\"column column_auto\" [contentClass]=\"['column', 'column_auto']\">\n <div class=\"list\">\n @for (option of visibleOptions; track option) {\n <div\n [class]=\"'list-item list-item_interactive justify-content-between select_' + viewType\"\n [class.list-item_active]=\"itemSelected(option)\"\n (click)=\"clickOption(option, $event)\"\n >\n <span [tetaHighlight]=\"searchText\">\n <ng-container\n *ngTemplateOutlet=\"\n optionDirective ? optionDirective.template : optionDefault;\n context: { $implicit: option, option: option }\n \"\n >\n </ng-container>\n </span>\n @if (itemSelected(option) && multiple) {\n <teta-icon [name]=\"'tick'\" [palette]=\"'text'\"></teta-icon>\n }\n </div>\n }\n </div>\n </teta-scrollable>\n }\n } @else {\n <p class=\"padding-h-3 text-overflow-ellipsis overflow-hidden select-not-found-option\">\n {{ notFoundText || loc.notFound }}\n </p>\n }\n @if (multiple && value?.length) {\n <div class=\"row row_auto select-chip-field flex-wrap\">\n @for (item of value; track item) {\n <div class=\"tag\">\n <p>{{ getText(item) }}</p>\n <teta-icon\n class=\"cursor-pointer\"\n [palette]=\"'text'\"\n [name]=\"'closeCircle'\"\n (click)=\"removeItemClick(item, $event)\"\n ></teta-icon>\n </div>\n }\n </div>\n }\n </div>\n }\n </teta-dropdown>\n <ng-template #notFound>\n <p class=\"padding-h-3 text-overflow-ellipsis overflow-hidden select-not-found-option\">\n {{ notFoundText || loc.notFound }}\n </p>\n </ng-template>\n <ng-template #optionDefault let-option>\n {{ getText(option) }}\n </ng-template>\n <ng-template #valueDefault let-value>\n @if (multiple) {\n <div class=\"row_auto overflow-hidden text-overflow-ellipsis\">\n {{ loc.selected + ' ' + value?.length }}\n </div>\n }\n @if (!multiple) {\n <span class=\"row row_auto overflow-hidden text-overflow-ellipsis\">{{ getText(value) }}</span>\n }\n </ng-template>\n}\n" }]
6011
6011
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: TetaConfigService }], propDecorators: { multiple: [{
6012
6012
  type: HostBinding,
6013
6013
  args: ['class.select_multiple']
@@ -6172,7 +6172,7 @@ class PropertyGridItemComponent {
6172
6172
  this._alive = false;
6173
6173
  this._formSub?.unsubscribe();
6174
6174
  }
6175
- ngOnChanges(changes) {
6175
+ ngOnChanges() {
6176
6176
  if (this.column() && this.item()) {
6177
6177
  if (!this.formGroup.get(this.column().name)) {
6178
6178
  this.formGroup.setControl(this.column().name, FormsUtil.initControlFromColumn(this.column(), this.item()));
@@ -6189,7 +6189,7 @@ class PropertyGridItemComponent {
6189
6189
  }
6190
6190
  }
6191
6191
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: PropertyGridItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6192
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: PropertyGridItemComponent, isStandalone: true, selector: "teta-property-grid-item", inputs: { column: { classPropertyName: "column", publicName: "column", isSignal: true, isRequired: false, transformFunction: null }, hideNonEditable: { classPropertyName: "hideNonEditable", publicName: "hideNonEditable", isSignal: true, isRequired: false, transformFunction: null }, dict: { classPropertyName: "dict", publicName: "dict", isSignal: true, isRequired: false, transformFunction: null }, decimalPart: { classPropertyName: "decimalPart", publicName: "decimalPart", isSignal: true, isRequired: false, transformFunction: null }, item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null }, itemTemplates: { classPropertyName: "itemTemplates", publicName: "itemTemplates", isSignal: true, isRequired: false, transformFunction: null }, horizontal: { classPropertyName: "horizontal", publicName: "horizontal", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { controlValueChange: "controlValueChange" }, usesOnChanges: true, ngImport: i0, template: "@if (editable() || !hideNonEditable()) {\n<teta-input\n [label]=\"caption()\"\n [hint]=\"column().hint\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal()\"\n [required]=\"column().required\"\n>\n @if (template()) {\n <ng-container\n *ngTemplateOutlet=\"template().template; context: { $implicit: formGroup?.get(column().name) }\"\n ></ng-container>\n } @else { @if (formGroup?.get(column().name)) { @switch (column().filterType) { @case (filterTypeEnum.list) {\n <teta-select\n class=\"row_auto\"\n [tetaDisableControl]=\"!editable()\"\n [searchRef]=\"getDict()?.length > 10 ? 'name' : ''\"\n [allowNull]=\"!column().required\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column().name)\"\n [formControlName]=\"column().name\"\n [options]=\"getDict()\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [multiple]=\"false\"\n ></teta-select>\n } @case (filterTypeEnum.date) {\n <teta-date-picker\n class=\"row_auto\"\n [appendToBody]=\"true\"\n [tetaDisableControl]=\"!editable()\"\n [invalid]=\"controlIsInvalid(column().name)\"\n [formControlName]=\"column().name\"\n ></teta-date-picker>\n } @case (filterTypeEnum.boolean) {\n <teta-toggle [tetaDisableControl]=\"!editable()\" [formControlName]=\"column().name\">\n {{ column().caption }}\n </teta-toggle>\n } @default {\n <teta-text-field\n class=\"row_auto\"\n [tetaDisableControl]=\"!editable()\"\n [decimalPart]=\"column().filterType === filterTypeEnum.number ? decimalPart() : null\"\n [onlyNumber]=\"column().filterType === filterTypeEnum.number\"\n [placeholder]=\"column().caption\"\n [invalid]=\"controlIsInvalid(column().name)\"\n [formControlName]=\"column().name\"\n ></teta-text-field>\n } } } } @if (controlIsInvalid(column().name)) {\n <div ngProjectAs=\"message\" class=\"color-red-50\">\n {{ getError(column()) }}\n </div>\n }\n</teta-input>\n}\n", styles: [""], dependencies: [{ kind: "component", type: InputComponent, selector: "teta-input", inputs: ["label", "hint", "viewType", "horizontal", "required"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SelectComponent, selector: "teta-select", inputs: ["multiple", "options", "invalid", "align", "verticalAlign", "autoClose", "autoCloseIgnore", "disabled", "itemSize", "virtual", "icon", "placeholder", "appendToBody", "allowNull", "viewType", "notFoundText", "valueRef", "textRef", "searchRef"] }, { kind: "component", type: DatePickerComponent, selector: "teta-date-picker", inputs: ["date", "showTime", "minDate", "maxDate", "invalid", "disabled", "align", "verticalAlign", "viewType", "appendToBody", "backdrop", "allowNull", "firstDayOfWeek", "disabledDates", "disabledPeriods", "disabledDays", "minYearDate", "maxYearDate"], outputs: ["selectDate"] }, { kind: "component", type: ToggleComponent, selector: "teta-toggle", inputs: ["palette", "noLabel", "disabled"] }, { kind: "component", type: TextFieldComponent, selector: "teta-text-field", inputs: ["placeholder", "leftIconName", "disabled", "onlyNumber", "decimalPart", "invalid"] }, { kind: "directive", type: DisableControlDirective, selector: "[tetaDisableControl]", inputs: ["tetaDisableControl"] }], viewProviders: [FormsUtil.formProvider], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
6192
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: PropertyGridItemComponent, isStandalone: true, selector: "teta-property-grid-item", inputs: { column: { classPropertyName: "column", publicName: "column", isSignal: true, isRequired: false, transformFunction: null }, hideNonEditable: { classPropertyName: "hideNonEditable", publicName: "hideNonEditable", isSignal: true, isRequired: false, transformFunction: null }, dict: { classPropertyName: "dict", publicName: "dict", isSignal: true, isRequired: false, transformFunction: null }, decimalPart: { classPropertyName: "decimalPart", publicName: "decimalPart", isSignal: true, isRequired: false, transformFunction: null }, item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null }, itemTemplates: { classPropertyName: "itemTemplates", publicName: "itemTemplates", isSignal: true, isRequired: false, transformFunction: null }, horizontal: { classPropertyName: "horizontal", publicName: "horizontal", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { controlValueChange: "controlValueChange" }, usesOnChanges: true, ngImport: i0, template: "@if (editable() || !hideNonEditable()) {\n <teta-input\n [label]=\"caption()\"\n [hint]=\"column().hint\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal()\"\n [required]=\"column().required\"\n >\n @if (template()) {\n <ng-container\n *ngTemplateOutlet=\"template().template; context: { $implicit: formGroup?.get(column().name) }\"\n ></ng-container>\n } @else {\n @if (formGroup?.get(column().name)) {\n @switch (column().filterType) {\n @case (filterTypeEnum.list) {\n <teta-select\n class=\"row_auto\"\n [tetaDisableControl]=\"!editable()\"\n [searchRef]=\"getDict()?.length > 10 ? 'name' : ''\"\n [allowNull]=\"!column().required\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column().name)\"\n [formControlName]=\"column().name\"\n [options]=\"getDict()\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [multiple]=\"false\"\n ></teta-select>\n }\n @case (filterTypeEnum.date) {\n <teta-date-picker\n class=\"row_auto\"\n [appendToBody]=\"true\"\n [tetaDisableControl]=\"!editable()\"\n [invalid]=\"controlIsInvalid(column().name)\"\n [formControlName]=\"column().name\"\n ></teta-date-picker>\n }\n @case (filterTypeEnum.boolean) {\n <teta-toggle [tetaDisableControl]=\"!editable()\" [formControlName]=\"column().name\">\n {{ column().caption }}\n </teta-toggle>\n }\n @default {\n <teta-text-field\n class=\"row_auto\"\n [tetaDisableControl]=\"!editable()\"\n [decimalPart]=\"column().filterType === filterTypeEnum.number ? decimalPart() : null\"\n [onlyNumber]=\"column().filterType === filterTypeEnum.number\"\n [placeholder]=\"column().caption\"\n [invalid]=\"controlIsInvalid(column().name)\"\n [formControlName]=\"column().name\"\n ></teta-text-field>\n }\n }\n }\n }\n @if (controlIsInvalid(column().name)) {\n <div ngProjectAs=\"message\" class=\"color-red-50\">\n {{ getError(column()) }}\n </div>\n }\n </teta-input>\n}\n", styles: [""], dependencies: [{ kind: "component", type: InputComponent, selector: "teta-input", inputs: ["label", "hint", "viewType", "horizontal", "required"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SelectComponent, selector: "teta-select", inputs: ["multiple", "options", "invalid", "align", "verticalAlign", "autoClose", "autoCloseIgnore", "disabled", "itemSize", "virtual", "icon", "placeholder", "appendToBody", "allowNull", "viewType", "notFoundText", "valueRef", "textRef", "searchRef"] }, { kind: "component", type: DatePickerComponent, selector: "teta-date-picker", inputs: ["date", "showTime", "minDate", "maxDate", "invalid", "disabled", "align", "verticalAlign", "viewType", "appendToBody", "backdrop", "allowNull", "firstDayOfWeek", "disabledDates", "disabledPeriods", "disabledDays", "minYearDate", "maxYearDate"], outputs: ["selectDate"] }, { kind: "component", type: ToggleComponent, selector: "teta-toggle", inputs: ["palette", "noLabel", "disabled"] }, { kind: "component", type: TextFieldComponent, selector: "teta-text-field", inputs: ["placeholder", "leftIconName", "disabled", "onlyNumber", "decimalPart", "invalid"] }, { kind: "directive", type: DisableControlDirective, selector: "[tetaDisableControl]", inputs: ["tetaDisableControl"] }], viewProviders: [FormsUtil.formProvider], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
6193
6193
  }
6194
6194
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: PropertyGridItemComponent, decorators: [{
6195
6195
  type: Component,
@@ -6203,7 +6203,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
6203
6203
  ToggleComponent,
6204
6204
  TextFieldComponent,
6205
6205
  DisableControlDirective,
6206
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (editable() || !hideNonEditable()) {\n<teta-input\n [label]=\"caption()\"\n [hint]=\"column().hint\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal()\"\n [required]=\"column().required\"\n>\n @if (template()) {\n <ng-container\n *ngTemplateOutlet=\"template().template; context: { $implicit: formGroup?.get(column().name) }\"\n ></ng-container>\n } @else { @if (formGroup?.get(column().name)) { @switch (column().filterType) { @case (filterTypeEnum.list) {\n <teta-select\n class=\"row_auto\"\n [tetaDisableControl]=\"!editable()\"\n [searchRef]=\"getDict()?.length > 10 ? 'name' : ''\"\n [allowNull]=\"!column().required\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column().name)\"\n [formControlName]=\"column().name\"\n [options]=\"getDict()\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [multiple]=\"false\"\n ></teta-select>\n } @case (filterTypeEnum.date) {\n <teta-date-picker\n class=\"row_auto\"\n [appendToBody]=\"true\"\n [tetaDisableControl]=\"!editable()\"\n [invalid]=\"controlIsInvalid(column().name)\"\n [formControlName]=\"column().name\"\n ></teta-date-picker>\n } @case (filterTypeEnum.boolean) {\n <teta-toggle [tetaDisableControl]=\"!editable()\" [formControlName]=\"column().name\">\n {{ column().caption }}\n </teta-toggle>\n } @default {\n <teta-text-field\n class=\"row_auto\"\n [tetaDisableControl]=\"!editable()\"\n [decimalPart]=\"column().filterType === filterTypeEnum.number ? decimalPart() : null\"\n [onlyNumber]=\"column().filterType === filterTypeEnum.number\"\n [placeholder]=\"column().caption\"\n [invalid]=\"controlIsInvalid(column().name)\"\n [formControlName]=\"column().name\"\n ></teta-text-field>\n } } } } @if (controlIsInvalid(column().name)) {\n <div ngProjectAs=\"message\" class=\"color-red-50\">\n {{ getError(column()) }}\n </div>\n }\n</teta-input>\n}\n" }]
6206
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (editable() || !hideNonEditable()) {\n <teta-input\n [label]=\"caption()\"\n [hint]=\"column().hint\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal()\"\n [required]=\"column().required\"\n >\n @if (template()) {\n <ng-container\n *ngTemplateOutlet=\"template().template; context: { $implicit: formGroup?.get(column().name) }\"\n ></ng-container>\n } @else {\n @if (formGroup?.get(column().name)) {\n @switch (column().filterType) {\n @case (filterTypeEnum.list) {\n <teta-select\n class=\"row_auto\"\n [tetaDisableControl]=\"!editable()\"\n [searchRef]=\"getDict()?.length > 10 ? 'name' : ''\"\n [allowNull]=\"!column().required\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column().name)\"\n [formControlName]=\"column().name\"\n [options]=\"getDict()\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [multiple]=\"false\"\n ></teta-select>\n }\n @case (filterTypeEnum.date) {\n <teta-date-picker\n class=\"row_auto\"\n [appendToBody]=\"true\"\n [tetaDisableControl]=\"!editable()\"\n [invalid]=\"controlIsInvalid(column().name)\"\n [formControlName]=\"column().name\"\n ></teta-date-picker>\n }\n @case (filterTypeEnum.boolean) {\n <teta-toggle [tetaDisableControl]=\"!editable()\" [formControlName]=\"column().name\">\n {{ column().caption }}\n </teta-toggle>\n }\n @default {\n <teta-text-field\n class=\"row_auto\"\n [tetaDisableControl]=\"!editable()\"\n [decimalPart]=\"column().filterType === filterTypeEnum.number ? decimalPart() : null\"\n [onlyNumber]=\"column().filterType === filterTypeEnum.number\"\n [placeholder]=\"column().caption\"\n [invalid]=\"controlIsInvalid(column().name)\"\n [formControlName]=\"column().name\"\n ></teta-text-field>\n }\n }\n }\n }\n @if (controlIsInvalid(column().name)) {\n <div ngProjectAs=\"message\" class=\"color-red-50\">\n {{ getError(column()) }}\n </div>\n }\n </teta-input>\n}\n" }]
6207
6207
  }], ctorParameters: () => [] });
6208
6208
 
6209
6209
  class PropertyGridGroupComponent {
@@ -6218,11 +6218,11 @@ class PropertyGridGroupComponent {
6218
6218
  this.itemTemplates = input();
6219
6219
  }
6220
6220
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: PropertyGridGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6221
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: PropertyGridGroupComponent, isStandalone: true, selector: "teta-property-grid-group", inputs: { column: { classPropertyName: "column", publicName: "column", isSignal: true, isRequired: false, transformFunction: null }, hideNonEditable: { classPropertyName: "hideNonEditable", publicName: "hideNonEditable", isSignal: true, isRequired: false, transformFunction: null }, dict: { classPropertyName: "dict", publicName: "dict", isSignal: true, isRequired: false, transformFunction: null }, item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null }, horizontal: { classPropertyName: "horizontal", publicName: "horizontal", isSignal: true, isRequired: false, transformFunction: null }, decimalPart: { classPropertyName: "decimalPart", publicName: "decimalPart", isSignal: true, isRequired: false, transformFunction: null }, itemTemplates: { classPropertyName: "itemTemplates", publicName: "itemTemplates", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { controlValueChange: "controlValueChange" }, ngImport: i0, template: "<teta-expand-item>\n <span ngProjectAs=\"head\">\n {{ column().caption }}\n </span>\n <div class=\"form-container\">\n @for (col of column().columns; track col.name) { @if (col.columns?.length < 1) { @if (column().editable ||\n !hideNonEditable) {\n <teta-property-grid-item\n [id]=\"col.name\"\n [dict]=\"dict()\"\n [column]=\"col\"\n [item]=\"item()\"\n [itemTemplates]=\"itemTemplates()\"\n [decimalPart]=\"decimalPart()\"\n [hideNonEditable]=\"hideNonEditable()\"\n (controlValueChange)=\"controlValueChange.emit($event)\"\n [horizontal]=\"horizontal()\"\n ></teta-property-grid-item>\n } } @else {\n <teta-property-grid-group\n [id]=\"col.name\"\n [dict]=\"dict()\"\n [column]=\"col\"\n [item]=\"item()\"\n [itemTemplates]=\"itemTemplates()\"\n [decimalPart]=\"decimalPart()\"\n [hideNonEditable]=\"hideNonEditable()\"\n [horizontal]=\"horizontal()\"\n (controlValueChange)=\"controlValueChange.emit($event)\"\n ></teta-property-grid-group>\n } }\n </div>\n</teta-expand-item>\n", styles: [":host{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "component", type: PropertyGridGroupComponent, selector: "teta-property-grid-group", inputs: ["column", "hideNonEditable", "dict", "item", "horizontal", "decimalPart", "itemTemplates"], outputs: ["controlValueChange"] }, { kind: "component", type: ExpandItemComponent, selector: "teta-expand-item", inputs: ["open"], outputs: ["openChange"], exportAs: ["expand-item"] }, { kind: "component", type: PropertyGridItemComponent, selector: "teta-property-grid-item", inputs: ["column", "hideNonEditable", "dict", "decimalPart", "item", "itemTemplates", "horizontal"], outputs: ["controlValueChange"] }], viewProviders: [FormsUtil.formProvider], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
6221
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: PropertyGridGroupComponent, isStandalone: true, selector: "teta-property-grid-group", inputs: { column: { classPropertyName: "column", publicName: "column", isSignal: true, isRequired: false, transformFunction: null }, hideNonEditable: { classPropertyName: "hideNonEditable", publicName: "hideNonEditable", isSignal: true, isRequired: false, transformFunction: null }, dict: { classPropertyName: "dict", publicName: "dict", isSignal: true, isRequired: false, transformFunction: null }, item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null }, horizontal: { classPropertyName: "horizontal", publicName: "horizontal", isSignal: true, isRequired: false, transformFunction: null }, decimalPart: { classPropertyName: "decimalPart", publicName: "decimalPart", isSignal: true, isRequired: false, transformFunction: null }, itemTemplates: { classPropertyName: "itemTemplates", publicName: "itemTemplates", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { controlValueChange: "controlValueChange" }, ngImport: i0, template: "<teta-expand-item>\n <span ngProjectAs=\"head\">\n {{ column().caption }}\n </span>\n <div class=\"form-container\">\n @for (col of column().columns; track col.name) {\n @if (col.columns?.length < 1) {\n @if (column().editable || !hideNonEditable) {\n <teta-property-grid-item\n [id]=\"col.name\"\n [dict]=\"dict()\"\n [column]=\"col\"\n [item]=\"item()\"\n [itemTemplates]=\"itemTemplates()\"\n [decimalPart]=\"decimalPart()\"\n [hideNonEditable]=\"hideNonEditable()\"\n (controlValueChange)=\"controlValueChange.emit($event)\"\n [horizontal]=\"horizontal()\"\n ></teta-property-grid-item>\n }\n } @else {\n <teta-property-grid-group\n [id]=\"col.name\"\n [dict]=\"dict()\"\n [column]=\"col\"\n [item]=\"item()\"\n [itemTemplates]=\"itemTemplates()\"\n [decimalPart]=\"decimalPart()\"\n [hideNonEditable]=\"hideNonEditable()\"\n [horizontal]=\"horizontal()\"\n (controlValueChange)=\"controlValueChange.emit($event)\"\n ></teta-property-grid-group>\n }\n }\n </div>\n</teta-expand-item>\n", styles: [":host{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "component", type: PropertyGridGroupComponent, selector: "teta-property-grid-group", inputs: ["column", "hideNonEditable", "dict", "item", "horizontal", "decimalPart", "itemTemplates"], outputs: ["controlValueChange"] }, { kind: "component", type: ExpandItemComponent, selector: "teta-expand-item", inputs: ["open"], outputs: ["openChange"], exportAs: ["expand-item"] }, { kind: "component", type: PropertyGridItemComponent, selector: "teta-property-grid-item", inputs: ["column", "hideNonEditable", "dict", "decimalPart", "item", "itemTemplates", "horizontal"], outputs: ["controlValueChange"] }], viewProviders: [FormsUtil.formProvider], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
6222
6222
  }
6223
6223
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: PropertyGridGroupComponent, decorators: [{
6224
6224
  type: Component,
6225
- args: [{ selector: 'teta-property-grid-group', viewProviders: [FormsUtil.formProvider], standalone: true, imports: [ExpandItemComponent, PropertyGridItemComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<teta-expand-item>\n <span ngProjectAs=\"head\">\n {{ column().caption }}\n </span>\n <div class=\"form-container\">\n @for (col of column().columns; track col.name) { @if (col.columns?.length < 1) { @if (column().editable ||\n !hideNonEditable) {\n <teta-property-grid-item\n [id]=\"col.name\"\n [dict]=\"dict()\"\n [column]=\"col\"\n [item]=\"item()\"\n [itemTemplates]=\"itemTemplates()\"\n [decimalPart]=\"decimalPart()\"\n [hideNonEditable]=\"hideNonEditable()\"\n (controlValueChange)=\"controlValueChange.emit($event)\"\n [horizontal]=\"horizontal()\"\n ></teta-property-grid-item>\n } } @else {\n <teta-property-grid-group\n [id]=\"col.name\"\n [dict]=\"dict()\"\n [column]=\"col\"\n [item]=\"item()\"\n [itemTemplates]=\"itemTemplates()\"\n [decimalPart]=\"decimalPart()\"\n [hideNonEditable]=\"hideNonEditable()\"\n [horizontal]=\"horizontal()\"\n (controlValueChange)=\"controlValueChange.emit($event)\"\n ></teta-property-grid-group>\n } }\n </div>\n</teta-expand-item>\n", styles: [":host{display:flex;flex-direction:column}\n"] }]
6225
+ args: [{ selector: 'teta-property-grid-group', viewProviders: [FormsUtil.formProvider], standalone: true, imports: [ExpandItemComponent, PropertyGridItemComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<teta-expand-item>\n <span ngProjectAs=\"head\">\n {{ column().caption }}\n </span>\n <div class=\"form-container\">\n @for (col of column().columns; track col.name) {\n @if (col.columns?.length < 1) {\n @if (column().editable || !hideNonEditable) {\n <teta-property-grid-item\n [id]=\"col.name\"\n [dict]=\"dict()\"\n [column]=\"col\"\n [item]=\"item()\"\n [itemTemplates]=\"itemTemplates()\"\n [decimalPart]=\"decimalPart()\"\n [hideNonEditable]=\"hideNonEditable()\"\n (controlValueChange)=\"controlValueChange.emit($event)\"\n [horizontal]=\"horizontal()\"\n ></teta-property-grid-item>\n }\n } @else {\n <teta-property-grid-group\n [id]=\"col.name\"\n [dict]=\"dict()\"\n [column]=\"col\"\n [item]=\"item()\"\n [itemTemplates]=\"itemTemplates()\"\n [decimalPart]=\"decimalPart()\"\n [hideNonEditable]=\"hideNonEditable()\"\n [horizontal]=\"horizontal()\"\n (controlValueChange)=\"controlValueChange.emit($event)\"\n ></teta-property-grid-group>\n }\n }\n </div>\n</teta-expand-item>\n", styles: [":host{display:flex;flex-direction:column}\n"] }]
6226
6226
  }] });
6227
6227
 
6228
6228
  class PropertyGridComponent {
@@ -6247,13 +6247,21 @@ class PropertyGridComponent {
6247
6247
  this.decimalPart = input();
6248
6248
  this.controlValueChange = output();
6249
6249
  effect(() => {
6250
- if (this.item() && this.formGroup) {
6250
+ if (this.item() && this.columns()?.length && this.formGroup) {
6251
6251
  for (const key in this.item()) {
6252
6252
  if (Object.prototype.hasOwnProperty.call(this.item(), key)) {
6253
6253
  if (!this.formGroup.get(key)) {
6254
- this.formGroup.setControl(key, new UntypedFormControl(this.item()[key], { updateOn: 'blur' }), {
6255
- emitEvent: false,
6256
- });
6254
+ const currentColumn = ArrayUtil.findRecursive(this.columns(), (item) => item.name === key, 'columns');
6255
+ if (currentColumn) {
6256
+ this.formGroup.setControl(key, FormsUtil.initControlFromColumn(currentColumn, this.item()), {
6257
+ emitEvent: false,
6258
+ });
6259
+ }
6260
+ else {
6261
+ this.formGroup.setControl(key, new UntypedFormControl(this.item()[key]), {
6262
+ emitEvent: false,
6263
+ });
6264
+ }
6257
6265
  }
6258
6266
  else {
6259
6267
  this.formGroup.patchValue(this.item(), {
@@ -6292,11 +6300,11 @@ class PropertyGridComponent {
6292
6300
  return this.dict()[name]?.find((_) => _.id === value);
6293
6301
  }
6294
6302
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: PropertyGridComponent, deps: [{ token: i2.ControlContainer, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
6295
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: PropertyGridComponent, isStandalone: true, selector: "teta-property-grid", inputs: { hideNonEditable: { classPropertyName: "hideNonEditable", publicName: "hideNonEditable", isSignal: true, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, dict: { classPropertyName: "dict", publicName: "dict", isSignal: true, isRequired: false, transformFunction: null }, item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null }, horizontal: { classPropertyName: "horizontal", publicName: "horizontal", isSignal: true, isRequired: false, transformFunction: null }, decimalPart: { classPropertyName: "decimalPart", publicName: "decimalPart", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { controlValueChange: "controlValueChange" }, host: { properties: { "class.form-container": "this.formClass" } }, queries: [{ propertyName: "itemTemplates", predicate: PropertyGridItemDescriptionDirective, isSignal: true }], ngImport: i0, template: "@if (columns()?.length) { @for (column of columns(); track column.name) { @if (column.columns?.length < 1 &&\n(getEditable(column) || !hideNonEditable())) {\n<teta-property-grid-item\n [dict]=\"dict()\"\n [column]=\"column\"\n [item]=\"item()\"\n [id]=\"column.name\"\n [itemTemplates]=\"itemTemplates()\"\n [decimalPart]=\"decimalPart()\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal()\"\n (controlValueChange)=\"onControlValueChange($event)\"\n [hideNonEditable]=\"hideNonEditable()\"\n></teta-property-grid-item>\n} @if (column.columns?.length > 0 && (getEditable(column) || !hideNonEditable())) {\n<teta-property-grid-group\n [id]=\"column.name\"\n [dict]=\"dict()\"\n [column]=\"column\"\n [item]=\"item()\"\n [itemTemplates]=\"itemTemplates()\"\n [decimalPart]=\"decimalPart()\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal()\"\n (controlValueChange)=\"onControlValueChange($event)\"\n [hideNonEditable]=\"hideNonEditable()\"\n></teta-property-grid-group>\n} } }\n", styles: [":host{padding:12px 8px}\n"], dependencies: [{ kind: "component", type: PropertyGridItemComponent, selector: "teta-property-grid-item", inputs: ["column", "hideNonEditable", "dict", "decimalPart", "item", "itemTemplates", "horizontal"], outputs: ["controlValueChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: PropertyGridGroupComponent, selector: "teta-property-grid-group", inputs: ["column", "hideNonEditable", "dict", "item", "horizontal", "decimalPart", "itemTemplates"], outputs: ["controlValueChange"] }], viewProviders: [FormsUtil.formProvider], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
6303
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: PropertyGridComponent, isStandalone: true, selector: "teta-property-grid", inputs: { hideNonEditable: { classPropertyName: "hideNonEditable", publicName: "hideNonEditable", isSignal: true, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, dict: { classPropertyName: "dict", publicName: "dict", isSignal: true, isRequired: false, transformFunction: null }, item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null }, horizontal: { classPropertyName: "horizontal", publicName: "horizontal", isSignal: true, isRequired: false, transformFunction: null }, decimalPart: { classPropertyName: "decimalPart", publicName: "decimalPart", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { controlValueChange: "controlValueChange" }, host: { properties: { "class.form-container": "this.formClass" } }, queries: [{ propertyName: "itemTemplates", predicate: PropertyGridItemDescriptionDirective, isSignal: true }], ngImport: i0, template: "@if (columns()?.length) {\n @for (column of columns(); track column.name) {\n @if (column.columns?.length < 1 && (getEditable(column) || !hideNonEditable())) {\n <teta-property-grid-item\n [dict]=\"dict()\"\n [column]=\"column\"\n [item]=\"item()\"\n [id]=\"column.name\"\n [itemTemplates]=\"itemTemplates()\"\n [decimalPart]=\"decimalPart()\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal()\"\n (controlValueChange)=\"onControlValueChange($event)\"\n [hideNonEditable]=\"hideNonEditable()\"\n ></teta-property-grid-item>\n }\n @if (column.columns?.length > 0 && (getEditable(column) || !hideNonEditable())) {\n <teta-property-grid-group\n [id]=\"column.name\"\n [dict]=\"dict()\"\n [column]=\"column\"\n [item]=\"item()\"\n [itemTemplates]=\"itemTemplates()\"\n [decimalPart]=\"decimalPart()\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal()\"\n (controlValueChange)=\"onControlValueChange($event)\"\n [hideNonEditable]=\"hideNonEditable()\"\n ></teta-property-grid-group>\n }\n }\n}\n", styles: [":host{padding:12px 8px}\n"], dependencies: [{ kind: "component", type: PropertyGridItemComponent, selector: "teta-property-grid-item", inputs: ["column", "hideNonEditable", "dict", "decimalPart", "item", "itemTemplates", "horizontal"], outputs: ["controlValueChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: PropertyGridGroupComponent, selector: "teta-property-grid-group", inputs: ["column", "hideNonEditable", "dict", "item", "horizontal", "decimalPart", "itemTemplates"], outputs: ["controlValueChange"] }], viewProviders: [FormsUtil.formProvider], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
6296
6304
  }
6297
6305
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: PropertyGridComponent, decorators: [{
6298
6306
  type: Component,
6299
- args: [{ selector: 'teta-property-grid', viewProviders: [FormsUtil.formProvider], standalone: true, imports: [PropertyGridItemComponent, FormsModule, ReactiveFormsModule, PropertyGridGroupComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (columns()?.length) { @for (column of columns(); track column.name) { @if (column.columns?.length < 1 &&\n(getEditable(column) || !hideNonEditable())) {\n<teta-property-grid-item\n [dict]=\"dict()\"\n [column]=\"column\"\n [item]=\"item()\"\n [id]=\"column.name\"\n [itemTemplates]=\"itemTemplates()\"\n [decimalPart]=\"decimalPart()\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal()\"\n (controlValueChange)=\"onControlValueChange($event)\"\n [hideNonEditable]=\"hideNonEditable()\"\n></teta-property-grid-item>\n} @if (column.columns?.length > 0 && (getEditable(column) || !hideNonEditable())) {\n<teta-property-grid-group\n [id]=\"column.name\"\n [dict]=\"dict()\"\n [column]=\"column\"\n [item]=\"item()\"\n [itemTemplates]=\"itemTemplates()\"\n [decimalPart]=\"decimalPart()\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal()\"\n (controlValueChange)=\"onControlValueChange($event)\"\n [hideNonEditable]=\"hideNonEditable()\"\n></teta-property-grid-group>\n} } }\n", styles: [":host{padding:12px 8px}\n"] }]
6307
+ args: [{ selector: 'teta-property-grid', viewProviders: [FormsUtil.formProvider], standalone: true, imports: [PropertyGridItemComponent, FormsModule, ReactiveFormsModule, PropertyGridGroupComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (columns()?.length) {\n @for (column of columns(); track column.name) {\n @if (column.columns?.length < 1 && (getEditable(column) || !hideNonEditable())) {\n <teta-property-grid-item\n [dict]=\"dict()\"\n [column]=\"column\"\n [item]=\"item()\"\n [id]=\"column.name\"\n [itemTemplates]=\"itemTemplates()\"\n [decimalPart]=\"decimalPart()\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal()\"\n (controlValueChange)=\"onControlValueChange($event)\"\n [hideNonEditable]=\"hideNonEditable()\"\n ></teta-property-grid-item>\n }\n @if (column.columns?.length > 0 && (getEditable(column) || !hideNonEditable())) {\n <teta-property-grid-group\n [id]=\"column.name\"\n [dict]=\"dict()\"\n [column]=\"column\"\n [item]=\"item()\"\n [itemTemplates]=\"itemTemplates()\"\n [decimalPart]=\"decimalPart()\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal()\"\n (controlValueChange)=\"onControlValueChange($event)\"\n [hideNonEditable]=\"hideNonEditable()\"\n ></teta-property-grid-group>\n }\n }\n}\n", styles: [":host{padding:12px 8px}\n"] }]
6300
6308
  }], ctorParameters: () => [{ type: i2.ControlContainer, decorators: [{
6301
6309
  type: Optional
6302
6310
  }] }], propDecorators: { formClass: [{
@@ -6325,7 +6333,7 @@ class SidebarComponent {
6325
6333
  }
6326
6334
  ngOnInit() { }
6327
6335
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: SidebarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6328
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: SidebarComponent, isStandalone: true, selector: "teta-sidebar", inputs: { position: "position", backdrop: "backdrop", open: "open", className: "className" }, outputs: { openChange: "openChange" }, host: { properties: { "style.z-index": "this.zIndex" } }, ngImport: i0, template: "@if (backdrop && open) {\n<div [@sidebar] (click)=\"setOpen(false)\" class=\"sidebar-backdrop\"></div>\n} @if (open) {\n<div\n class=\"sidebar\"\n [@sidebar]\n [ngClass]=\"className\"\n [class.sidebar-top]=\"position === sidebarPosition.top\"\n [class.sidebar-bottom]=\"position === sidebarPosition.bottom\"\n [class.sidebar-left]=\"position === sidebarPosition.left\"\n [class.sidebar-right]=\"position === sidebarPosition.right\"\n>\n <ng-content></ng-content>\n</div>\n}\n", styles: [""], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], animations: [
6336
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: SidebarComponent, isStandalone: true, selector: "teta-sidebar", inputs: { position: "position", backdrop: "backdrop", open: "open", className: "className" }, outputs: { openChange: "openChange" }, host: { properties: { "style.z-index": "this.zIndex" } }, ngImport: i0, template: "@if (backdrop && open) {\n <div [@sidebar] (click)=\"setOpen(false)\" class=\"sidebar-backdrop\"></div>\n}\n@if (open) {\n <div\n class=\"sidebar\"\n [@sidebar]\n [ngClass]=\"className\"\n [class.sidebar-top]=\"position === sidebarPosition.top\"\n [class.sidebar-bottom]=\"position === sidebarPosition.bottom\"\n [class.sidebar-left]=\"position === sidebarPosition.left\"\n [class.sidebar-right]=\"position === sidebarPosition.right\"\n >\n <ng-content></ng-content>\n </div>\n}\n", styles: [""], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], animations: [
6329
6337
  trigger('sidebar', [
6330
6338
  transition('void => *', [style({ opacity: '0' }), animate(300, style({ opacity: '1' }))]),
6331
6339
  transition('* => void', [animate(300, style({ opacity: '0' }))]),
@@ -6339,7 +6347,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
6339
6347
  transition('void => *', [style({ opacity: '0' }), animate(300, style({ opacity: '1' }))]),
6340
6348
  transition('* => void', [animate(300, style({ opacity: '0' }))]),
6341
6349
  ]),
6342
- ], standalone: true, imports: [NgClass], template: "@if (backdrop && open) {\n<div [@sidebar] (click)=\"setOpen(false)\" class=\"sidebar-backdrop\"></div>\n} @if (open) {\n<div\n class=\"sidebar\"\n [@sidebar]\n [ngClass]=\"className\"\n [class.sidebar-top]=\"position === sidebarPosition.top\"\n [class.sidebar-bottom]=\"position === sidebarPosition.bottom\"\n [class.sidebar-left]=\"position === sidebarPosition.left\"\n [class.sidebar-right]=\"position === sidebarPosition.right\"\n>\n <ng-content></ng-content>\n</div>\n}\n" }]
6350
+ ], standalone: true, imports: [NgClass], template: "@if (backdrop && open) {\n <div [@sidebar] (click)=\"setOpen(false)\" class=\"sidebar-backdrop\"></div>\n}\n@if (open) {\n <div\n class=\"sidebar\"\n [@sidebar]\n [ngClass]=\"className\"\n [class.sidebar-top]=\"position === sidebarPosition.top\"\n [class.sidebar-bottom]=\"position === sidebarPosition.bottom\"\n [class.sidebar-left]=\"position === sidebarPosition.left\"\n [class.sidebar-right]=\"position === sidebarPosition.right\"\n >\n <ng-content></ng-content>\n </div>\n}\n" }]
6343
6351
  }], ctorParameters: () => [], propDecorators: { position: [{
6344
6352
  type: Input
6345
6353
  }], backdrop: [{
@@ -7737,11 +7745,11 @@ class NumericCellComponent extends CellComponentBase {
7737
7745
  this.cdr.markForCheck();
7738
7746
  }
7739
7747
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: NumericCellComponent, deps: [{ token: TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
7740
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: NumericCellComponent, isStandalone: true, selector: "teta-numeric-cell", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span [style.display]=\"edit ? 'none' : 'block'\" class=\"cell-text\" [class.cell-text_disabled]=\"!editable\">\n {{ control?.value | tetaNumber : 2 }}\n</span>\n@if (edit) {\n<input\n #input\n [tetaOnlyNumber]=\"true\"\n type=\"text\"\n class=\"input row_auto border-radius-0\"\n (keydown.enter)=\"input.blur()\"\n [formControl]=\"control\"\n/>\n}\n", styles: [""], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: OnlyNumberDirective, selector: "[tetaOnlyNumber]", inputs: ["tetaOnlyNumber", "allowDecimals", "allowSign", "decimalSeparator", "commaSeparator", "onlyPositive"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: NumberPipe, name: "tetaNumber" }], viewProviders: [FormsUtil.formProvider], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7748
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: NumericCellComponent, isStandalone: true, selector: "teta-numeric-cell", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span [style.display]=\"edit ? 'none' : 'block'\" class=\"cell-text\" [class.cell-text_disabled]=\"!editable\">\n {{ control?.value | tetaNumber: 2 }}\n</span>\n@if (edit) {\n <input\n #input\n [tetaOnlyNumber]=\"true\"\n type=\"text\"\n class=\"input row_auto border-radius-0\"\n (keydown.enter)=\"input.blur()\"\n [formControl]=\"control\"\n />\n}\n", styles: [""], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: OnlyNumberDirective, selector: "[tetaOnlyNumber]", inputs: ["tetaOnlyNumber", "allowDecimals", "allowSign", "decimalSeparator", "commaSeparator", "onlyPositive"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: NumberPipe, name: "tetaNumber" }], viewProviders: [FormsUtil.formProvider], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7741
7749
  }
7742
7750
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: NumericCellComponent, decorators: [{
7743
7751
  type: Component,
7744
- args: [{ selector: 'teta-numeric-cell', changeDetection: ChangeDetectionStrategy.OnPush, viewProviders: [FormsUtil.formProvider], standalone: true, imports: [FormsModule, OnlyNumberDirective, ReactiveFormsModule, NumberPipe], template: "<span [style.display]=\"edit ? 'none' : 'block'\" class=\"cell-text\" [class.cell-text_disabled]=\"!editable\">\n {{ control?.value | tetaNumber : 2 }}\n</span>\n@if (edit) {\n<input\n #input\n [tetaOnlyNumber]=\"true\"\n type=\"text\"\n class=\"input row_auto border-radius-0\"\n (keydown.enter)=\"input.blur()\"\n [formControl]=\"control\"\n/>\n}\n" }]
7752
+ args: [{ selector: 'teta-numeric-cell', changeDetection: ChangeDetectionStrategy.OnPush, viewProviders: [FormsUtil.formProvider], standalone: true, imports: [FormsModule, OnlyNumberDirective, ReactiveFormsModule, NumberPipe], template: "<span [style.display]=\"edit ? 'none' : 'block'\" class=\"cell-text\" [class.cell-text_disabled]=\"!editable\">\n {{ control?.value | tetaNumber: 2 }}\n</span>\n@if (edit) {\n <input\n #input\n [tetaOnlyNumber]=\"true\"\n type=\"text\"\n class=\"input row_auto border-radius-0\"\n (keydown.enter)=\"input.blur()\"\n [formControl]=\"control\"\n />\n}\n" }]
7745
7753
  }], ctorParameters: () => [{ type: TableService }, { type: i0.ChangeDetectorRef }], propDecorators: { input: [{
7746
7754
  type: ViewChild,
7747
7755
  args: ['input', { static: false }]
@@ -7768,11 +7776,11 @@ class DateCellComponent extends CellComponentBase {
7768
7776
  this.cdr.markForCheck();
7769
7777
  }
7770
7778
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DateCellComponent, deps: [{ token: TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
7771
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DateCellComponent, isStandalone: true, selector: "teta-date-cell", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span [style.display]=\"edit ? 'none' : 'block'\" class=\"cell-text\" [class.cell-text_disabled]=\"!editable\">\n {{ control?.value | date : 'dd.MM.yyyy' }}\n</span>\n@if (edit) {\n<teta-date-picker\n class=\"datepicker-table\"\n #input\n [allowNull]=\"!column.required\"\n [appendToBody]=\"true\"\n [showTime]=\"false\"\n [formControl]=\"control\"\n></teta-date-picker>\n}\n", styles: [""], dependencies: [{ kind: "component", type: DatePickerComponent, selector: "teta-date-picker", inputs: ["date", "showTime", "minDate", "maxDate", "invalid", "disabled", "align", "verticalAlign", "viewType", "appendToBody", "backdrop", "allowNull", "firstDayOfWeek", "disabledDates", "disabledPeriods", "disabledDays", "minYearDate", "maxYearDate"], outputs: ["selectDate"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7779
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DateCellComponent, isStandalone: true, selector: "teta-date-cell", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span [style.display]=\"edit ? 'none' : 'block'\" class=\"cell-text\" [class.cell-text_disabled]=\"!editable\">\n {{ control?.value | date: 'dd.MM.yyyy' }}\n</span>\n@if (edit) {\n <teta-date-picker\n class=\"datepicker-table\"\n #input\n [allowNull]=\"!column.required\"\n [appendToBody]=\"true\"\n [showTime]=\"false\"\n [formControl]=\"control\"\n ></teta-date-picker>\n}\n", styles: [""], dependencies: [{ kind: "component", type: DatePickerComponent, selector: "teta-date-picker", inputs: ["date", "showTime", "minDate", "maxDate", "invalid", "disabled", "align", "verticalAlign", "viewType", "appendToBody", "backdrop", "allowNull", "firstDayOfWeek", "disabledDates", "disabledPeriods", "disabledDays", "minYearDate", "maxYearDate"], outputs: ["selectDate"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7772
7780
  }
7773
7781
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DateCellComponent, decorators: [{
7774
7782
  type: Component,
7775
- args: [{ selector: 'teta-date-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [DatePickerComponent, FormsModule, ReactiveFormsModule, DatePipe], template: "<span [style.display]=\"edit ? 'none' : 'block'\" class=\"cell-text\" [class.cell-text_disabled]=\"!editable\">\n {{ control?.value | date : 'dd.MM.yyyy' }}\n</span>\n@if (edit) {\n<teta-date-picker\n class=\"datepicker-table\"\n #input\n [allowNull]=\"!column.required\"\n [appendToBody]=\"true\"\n [showTime]=\"false\"\n [formControl]=\"control\"\n></teta-date-picker>\n}\n" }]
7783
+ args: [{ selector: 'teta-date-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [DatePickerComponent, FormsModule, ReactiveFormsModule, DatePipe], template: "<span [style.display]=\"edit ? 'none' : 'block'\" class=\"cell-text\" [class.cell-text_disabled]=\"!editable\">\n {{ control?.value | date: 'dd.MM.yyyy' }}\n</span>\n@if (edit) {\n <teta-date-picker\n class=\"datepicker-table\"\n #input\n [allowNull]=\"!column.required\"\n [appendToBody]=\"true\"\n [showTime]=\"false\"\n [formControl]=\"control\"\n ></teta-date-picker>\n}\n" }]
7776
7784
  }], ctorParameters: () => [{ type: TableService }, { type: i0.ChangeDetectorRef }], propDecorators: { input: [{
7777
7785
  type: ViewChild,
7778
7786
  args: ['input', { static: false }]
@@ -7819,11 +7827,11 @@ class ListCellComponent extends CellComponentBase {
7819
7827
  return item.name;
7820
7828
  }
7821
7829
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ListCellComponent, deps: [{ token: TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
7822
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ListCellComponent, isStandalone: true, selector: "teta-list-cell", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span [style.display]=\"edit ? 'none' : 'block'\" class=\"cell-text\" [class.cell-text_disabled]=\"!editable\">\n {{ getValue(control.value) }}\n</span>\n@if (edit) {\n<teta-select\n #input\n class=\"row_auto select-table\"\n [allowNull]=\"!column.required\"\n [verticalAlign]=\"verticalAlign.auto\"\n [appendToBody]=\"true\"\n [options]=\"displayFilterOptions\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [searchRef]=\"displayFilterOptions?.length > 20 ? 'name' : ''\"\n [formControl]=\"control\"\n>\n</teta-select>\n}\n", styles: [""], dependencies: [{ kind: "component", type: SelectComponent, selector: "teta-select", inputs: ["multiple", "options", "invalid", "align", "verticalAlign", "autoClose", "autoCloseIgnore", "disabled", "itemSize", "virtual", "icon", "placeholder", "appendToBody", "allowNull", "viewType", "notFoundText", "valueRef", "textRef", "searchRef"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7830
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ListCellComponent, isStandalone: true, selector: "teta-list-cell", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span [style.display]=\"edit ? 'none' : 'block'\" class=\"cell-text\" [class.cell-text_disabled]=\"!editable\">\n {{ getValue(control.value) }}\n</span>\n@if (edit) {\n <teta-select\n #input\n class=\"row_auto select-table\"\n [allowNull]=\"!column.required\"\n [verticalAlign]=\"verticalAlign.auto\"\n [appendToBody]=\"true\"\n [options]=\"displayFilterOptions\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [searchRef]=\"displayFilterOptions?.length > 20 ? 'name' : ''\"\n [formControl]=\"control\"\n >\n </teta-select>\n}\n", styles: [""], dependencies: [{ kind: "component", type: SelectComponent, selector: "teta-select", inputs: ["multiple", "options", "invalid", "align", "verticalAlign", "autoClose", "autoCloseIgnore", "disabled", "itemSize", "virtual", "icon", "placeholder", "appendToBody", "allowNull", "viewType", "notFoundText", "valueRef", "textRef", "searchRef"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7823
7831
  }
7824
7832
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ListCellComponent, decorators: [{
7825
7833
  type: Component,
7826
- args: [{ selector: 'teta-list-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [SelectComponent, FormsModule, ReactiveFormsModule], template: "<span [style.display]=\"edit ? 'none' : 'block'\" class=\"cell-text\" [class.cell-text_disabled]=\"!editable\">\n {{ getValue(control.value) }}\n</span>\n@if (edit) {\n<teta-select\n #input\n class=\"row_auto select-table\"\n [allowNull]=\"!column.required\"\n [verticalAlign]=\"verticalAlign.auto\"\n [appendToBody]=\"true\"\n [options]=\"displayFilterOptions\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [searchRef]=\"displayFilterOptions?.length > 20 ? 'name' : ''\"\n [formControl]=\"control\"\n>\n</teta-select>\n}\n" }]
7834
+ args: [{ selector: 'teta-list-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [SelectComponent, FormsModule, ReactiveFormsModule], template: "<span [style.display]=\"edit ? 'none' : 'block'\" class=\"cell-text\" [class.cell-text_disabled]=\"!editable\">\n {{ getValue(control.value) }}\n</span>\n@if (edit) {\n <teta-select\n #input\n class=\"row_auto select-table\"\n [allowNull]=\"!column.required\"\n [verticalAlign]=\"verticalAlign.auto\"\n [appendToBody]=\"true\"\n [options]=\"displayFilterOptions\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [searchRef]=\"displayFilterOptions?.length > 20 ? 'name' : ''\"\n [formControl]=\"control\"\n >\n </teta-select>\n}\n" }]
7827
7835
  }], ctorParameters: () => [{ type: TableService }, { type: i0.ChangeDetectorRef }], propDecorators: { input: [{
7828
7836
  type: ViewChild,
7829
7837
  args: ['input', { static: false }]
@@ -7850,11 +7858,11 @@ class StringCellComponent extends CellComponentBase {
7850
7858
  this.cdr.detectChanges();
7851
7859
  }
7852
7860
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: StringCellComponent, deps: [{ token: TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
7853
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: StringCellComponent, isStandalone: true, selector: "teta-string-cell", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span\n [style.display]=\"edit ? 'none' : 'block'\"\n class=\"cell-text\"\n [tetaHint]=\"row[column.name]\"\n [align]=\"align.auto\"\n [appendToBody]=\"true\"\n [overflownOnly]=\"true\"\n [class.cell-text_disabled]=\"!editable\"\n>\n {{ control.value }}\n</span>\n@if (edit) {\n<input\n #input\n type=\"text\"\n class=\"input row_auto border-radius-0\"\n (keydown.enter)=\"input.blur()\"\n [formControl]=\"control\"\n/>\n}\n", styles: [""], dependencies: [{ kind: "directive", type: HintDirective, selector: "[tetaHint]", inputs: ["tetaHint", "align", "verticalAlign", "delay", "viewType", "overflownOnly"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7861
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: StringCellComponent, isStandalone: true, selector: "teta-string-cell", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span\n [style.display]=\"edit ? 'none' : 'block'\"\n class=\"cell-text\"\n [tetaHint]=\"row[column.name]\"\n [align]=\"align.auto\"\n [appendToBody]=\"true\"\n [overflownOnly]=\"true\"\n [class.cell-text_disabled]=\"!editable\"\n>\n {{ control.value }}\n</span>\n@if (edit) {\n <input\n #input\n type=\"text\"\n class=\"input row_auto border-radius-0\"\n (keydown.enter)=\"input.blur()\"\n [formControl]=\"control\"\n />\n}\n", styles: [""], dependencies: [{ kind: "directive", type: HintDirective, selector: "[tetaHint]", inputs: ["tetaHint", "align", "verticalAlign", "delay", "viewType", "overflownOnly"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7854
7862
  }
7855
7863
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: StringCellComponent, decorators: [{
7856
7864
  type: Component,
7857
- args: [{ selector: 'teta-string-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [HintDirective, FormsModule, ReactiveFormsModule], template: "<span\n [style.display]=\"edit ? 'none' : 'block'\"\n class=\"cell-text\"\n [tetaHint]=\"row[column.name]\"\n [align]=\"align.auto\"\n [appendToBody]=\"true\"\n [overflownOnly]=\"true\"\n [class.cell-text_disabled]=\"!editable\"\n>\n {{ control.value }}\n</span>\n@if (edit) {\n<input\n #input\n type=\"text\"\n class=\"input row_auto border-radius-0\"\n (keydown.enter)=\"input.blur()\"\n [formControl]=\"control\"\n/>\n}\n" }]
7865
+ args: [{ selector: 'teta-string-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [HintDirective, FormsModule, ReactiveFormsModule], template: "<span\n [style.display]=\"edit ? 'none' : 'block'\"\n class=\"cell-text\"\n [tetaHint]=\"row[column.name]\"\n [align]=\"align.auto\"\n [appendToBody]=\"true\"\n [overflownOnly]=\"true\"\n [class.cell-text_disabled]=\"!editable\"\n>\n {{ control.value }}\n</span>\n@if (edit) {\n <input\n #input\n type=\"text\"\n class=\"input row_auto border-radius-0\"\n (keydown.enter)=\"input.blur()\"\n [formControl]=\"control\"\n />\n}\n" }]
7858
7866
  }], ctorParameters: () => [{ type: TableService }, { type: i0.ChangeDetectorRef }], propDecorators: { input: [{
7859
7867
  type: ViewChild,
7860
7868
  args: ['input', { static: false }]
@@ -7881,11 +7889,11 @@ class BooleanCellComponent extends CellComponentBase {
7881
7889
  this.cdr.markForCheck();
7882
7890
  }
7883
7891
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: BooleanCellComponent, deps: [{ token: TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
7884
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: BooleanCellComponent, isStandalone: true, selector: "teta-boolean-cell", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span [style.display]=\"edit ? 'none' : 'block'\" class=\"cell-text\" [class.cell-text_disabled]=\"!editable\">\n {{ control?.value }}\n</span>\n@if (edit) {\n<teta-checkbox #input [binary]=\"true\" [formControl]=\"control\"></teta-checkbox>\n}\n", styles: [""], dependencies: [{ kind: "component", type: CheckboxComponent, selector: "teta-checkbox", inputs: ["class", "palette", "noLabel", "disabled", "value", "binary", "labelPosition", "allowNull"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7892
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: BooleanCellComponent, isStandalone: true, selector: "teta-boolean-cell", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span [style.display]=\"edit ? 'none' : 'block'\" class=\"cell-text\" [class.cell-text_disabled]=\"!editable\">\n {{ control?.value }}\n</span>\n@if (edit) {\n <teta-checkbox #input [binary]=\"true\" [formControl]=\"control\"></teta-checkbox>\n}\n", styles: [""], dependencies: [{ kind: "component", type: CheckboxComponent, selector: "teta-checkbox", inputs: ["class", "palette", "noLabel", "disabled", "value", "binary", "labelPosition", "allowNull"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7885
7893
  }
7886
7894
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: BooleanCellComponent, decorators: [{
7887
7895
  type: Component,
7888
- args: [{ selector: 'teta-boolean-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CheckboxComponent, FormsModule, ReactiveFormsModule], template: "<span [style.display]=\"edit ? 'none' : 'block'\" class=\"cell-text\" [class.cell-text_disabled]=\"!editable\">\n {{ control?.value }}\n</span>\n@if (edit) {\n<teta-checkbox #input [binary]=\"true\" [formControl]=\"control\"></teta-checkbox>\n}\n" }]
7896
+ args: [{ selector: 'teta-boolean-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CheckboxComponent, FormsModule, ReactiveFormsModule], template: "<span [style.display]=\"edit ? 'none' : 'block'\" class=\"cell-text\" [class.cell-text_disabled]=\"!editable\">\n {{ control?.value }}\n</span>\n@if (edit) {\n <teta-checkbox #input [binary]=\"true\" [formControl]=\"control\"></teta-checkbox>\n}\n" }]
7889
7897
  }], ctorParameters: () => [{ type: TableService }, { type: i0.ChangeDetectorRef }], propDecorators: { input: [{
7890
7898
  type: ViewChild,
7891
7899
  args: ['input', { static: false }]
@@ -8188,7 +8196,7 @@ class TableBodyComponent {
8188
8196
  return this.data?.reduce((accum, current) => (accum != null && accum >= current.data[columnName] ? accum : current.data[columnName]), null);
8189
8197
  }
8190
8198
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TableBodyComponent, deps: [{ token: TableService }, { token: i0.ElementRef }, { token: TetaConfigService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
8191
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: TableBodyComponent, isStandalone: true, selector: "teta-table-body", inputs: { virtual: { classPropertyName: "virtual", publicName: "virtual", isSignal: false, isRequired: false, transformFunction: null }, activeRow: { classPropertyName: "activeRow", publicName: "activeRow", isSignal: false, isRequired: false, transformFunction: null }, selectedRows: { classPropertyName: "selectedRows", publicName: "selectedRows", isSignal: false, isRequired: false, transformFunction: null }, additionalComponent: { classPropertyName: "additionalComponent", publicName: "additionalComponent", isSignal: false, isRequired: false, transformFunction: null }, aggregate: { classPropertyName: "aggregate", publicName: "aggregate", isSignal: false, isRequired: false, transformFunction: null }, selectType: { classPropertyName: "selectType", publicName: "selectType", isSignal: false, isRequired: false, transformFunction: null }, rowClass: { classPropertyName: "rowClass", publicName: "rowClass", isSignal: false, isRequired: false, transformFunction: null }, trackRow: { classPropertyName: "trackRow", publicName: "trackRow", isSignal: false, isRequired: false, transformFunction: null }, trackColumns: { classPropertyName: "trackColumns", publicName: "trackColumns", isSignal: false, isRequired: false, transformFunction: null }, rowHeight: { classPropertyName: "rowHeight", publicName: "rowHeight", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { scrollChange: "scrollChange" }, host: { properties: { "class.table-body": "this.tableBodyClass" } }, viewQueries: [{ propertyName: "viewport", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], ngImport: i0, template: "@if (virtual && data.length > 0) {\n<teta-scrollable class=\"table-body-container\" style=\"padding-bottom: 12px\" [showScrollbars]=\"true\">\n <cdk-virtual-scroll-viewport\n tetaScrollable\n class=\"table-body-container\"\n (scroll)=\"emitScroll($event)\"\n [itemSize]=\"rowHeight()\"\n >\n <ng-container *cdkVirtualFor=\"let row of data; templateCacheSize: 0; let rowIndex = index; trackBy: trackTableRow\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: { row: row, rowIndex: rowIndex }\"></ng-container>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n</teta-scrollable>\n} @else {\n<teta-scrollable\n class=\"table-body-container\"\n style=\"padding-bottom: 12px\"\n direction=\"column\"\n [showScrollbars]=\"true\"\n (scroll)=\"emitScroll($event)\"\n>\n <div class=\"table-body-container\">\n @if (!data?.length) {\n <div class=\"column column_auto\" style=\"position: absolute; top: 0; bottom: 16px; left: 0; right: 0\">\n <ng-content></ng-content>\n </div>\n } @for (row of data; track trackTableRow(rowIndex, row); let rowIndex = $index) {\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: { row: row, rowIndex: rowIndex }\"></ng-container>\n } @if (aggregate) {\n <ng-container *ngTemplateOutlet=\"aggTemplate\"></ng-container>\n }\n <ng-container *ngTemplateOutlet=\"emptyRow\"></ng-container>\n </div>\n</teta-scrollable>\n}\n\n<ng-template #bodyTemplate let-row=\"row\" let-rowIndex=\"rowIndex\">\n <teta-table-row\n class=\"table-row\"\n ngForm\n [style.height.px]=\"rowHeight()\"\n [row]=\"row\"\n (click)=\"setActiveRow(row.data, $event)\"\n [attr.data-row]=\"rowIndex\"\n [class.table-row_odd]=\"rowIndex % 2 === 1\"\n [ngClass]=\"rowClass ? rowClass(row.data, rowIndex) : ''\"\n [class.table-row_selected]=\"selectedRows && selectedRows.indexOf(row.data) >= 0\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\"\n >\n @if (locked.length > 0) {\n <div\n class=\"table-row_locked\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\"\n [style.zIndex]=\"row.data === activeRow ? 2 : 1\"\n >\n @if (selectType === selectTypeEnum.checkBox && locked.length) {\n <teta-selection-cell [row]=\"row.data\" style=\"width: 28px\"></teta-selection-cell>\n } @for (column of locked; track trackColumns(colIndex, column); let colIndex = $index) {\n <teta-cell\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict ? dict[column.name] : []\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n ></teta-cell>\n }\n </div>\n } @if (selectType === selectTypeEnum.checkBox && locked.length < 1) {\n <teta-selection-cell [row]=\"row.data\" style=\"width: 28px\"></teta-selection-cell>\n } @for (column of unlocked; track trackColumns(colIndex, column); let colIndex = $index) {\n <teta-cell\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict ? dict[column.name] : []\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n ></teta-cell>\n }\n </teta-table-row>\n</ng-template>\n\n<ng-template #aggTemplate>\n @if (locale | async; as loc) { @if (aggregate) {\n <div\n class=\"table-row\"\n [style.height.px]=\"rowHeight()\"\n [class.table-row_virtual]=\"virtual\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\"\n >\n @if (locked.length > 0) {\n <div\n class=\"table-row_locked\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\"\n >\n @if (selectType === selectTypeEnum.checkBox && locked.length < 1) {\n <div class=\"cell align-center justify-content-center\" style=\"width: 28px\">\n <teta-icon [name]=\"'sumColor'\"></teta-icon>\n </div>\n } @for (column of locked; track trackColumns(colIndex, column); let colIndex = $index) {\n <div\n class=\"cell cell-component aggregate-cell\"\n [attr.data-column]=\"column.name\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n >\n @if (column.aggregate !== aggregationType.none) {\n <span class=\"cell-text cell-text_numeric font-title-3\">\n {{ loc[getAggregateText(column)] }}:\n {{ getAggregateValue(column) | tetaNumber : 2 }}\n </span>\n }\n </div>\n }\n </div>\n } @if (selectType === selectTypeEnum.checkBox && locked.length < 1) {\n <div class=\"cell align-center justify-content-center\" style=\"width: 28px\">\n <teta-icon [name]=\"'sumColor'\"></teta-icon>\n </div>\n } @for (column of unlocked; track trackColumns(colIndex, column); let colIndex = $index) {\n <div\n class=\"cell cell-component aggregate-cell\"\n [attr.data-column]=\"column.name\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n >\n @if (column.aggregate !== aggregationType.none) {\n <span class=\"cell-text cell-text_numeric font-title-3\">\n {{ loc[getAggregateText(column)] }}:\n {{ getAggregateValue(column) | tetaNumber : 2 }}\n </span>\n }\n </div>\n }\n </div>\n } }\n</ng-template>\n<ng-template #emptyRow>\n <div\n class=\"empty-table-row\"\n style=\"height: 0.1px\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\"\n ></div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "component", type: ScrollableComponent, selector: "teta-scrollable", inputs: ["direction", "showScrollbars", "contentClass"], outputs: ["scroll"] }, { kind: "component", type: CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: ScrollableDirective, selector: "[tetaScrollable]" }, { kind: "directive", type: CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: SelectionCellComponent, selector: "teta-selection-cell", inputs: ["row"] }, { kind: "component", type: CellComponent, selector: "teta-cell", inputs: ["column", "filterOptions", "dict", "row"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: NumberPipe, name: "tetaNumber" }, { kind: "component", type: TableRowComponent, selector: "teta-table-row", inputs: ["row"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8199
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: TableBodyComponent, isStandalone: true, selector: "teta-table-body", inputs: { virtual: { classPropertyName: "virtual", publicName: "virtual", isSignal: false, isRequired: false, transformFunction: null }, activeRow: { classPropertyName: "activeRow", publicName: "activeRow", isSignal: false, isRequired: false, transformFunction: null }, selectedRows: { classPropertyName: "selectedRows", publicName: "selectedRows", isSignal: false, isRequired: false, transformFunction: null }, additionalComponent: { classPropertyName: "additionalComponent", publicName: "additionalComponent", isSignal: false, isRequired: false, transformFunction: null }, aggregate: { classPropertyName: "aggregate", publicName: "aggregate", isSignal: false, isRequired: false, transformFunction: null }, selectType: { classPropertyName: "selectType", publicName: "selectType", isSignal: false, isRequired: false, transformFunction: null }, rowClass: { classPropertyName: "rowClass", publicName: "rowClass", isSignal: false, isRequired: false, transformFunction: null }, trackRow: { classPropertyName: "trackRow", publicName: "trackRow", isSignal: false, isRequired: false, transformFunction: null }, trackColumns: { classPropertyName: "trackColumns", publicName: "trackColumns", isSignal: false, isRequired: false, transformFunction: null }, rowHeight: { classPropertyName: "rowHeight", publicName: "rowHeight", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { scrollChange: "scrollChange" }, host: { properties: { "class.table-body": "this.tableBodyClass" } }, viewQueries: [{ propertyName: "viewport", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], ngImport: i0, template: "@if (virtual && data.length > 0) {\n <teta-scrollable class=\"table-body-container\" style=\"padding-bottom: 12px\" [showScrollbars]=\"true\">\n <cdk-virtual-scroll-viewport\n tetaScrollable\n class=\"table-body-container\"\n (scroll)=\"emitScroll($event)\"\n [itemSize]=\"rowHeight()\"\n >\n <ng-container\n *cdkVirtualFor=\"let row of data; templateCacheSize: 0; let rowIndex = index; trackBy: trackTableRow\"\n >\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: { row: row, rowIndex: rowIndex }\"></ng-container>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </teta-scrollable>\n} @else {\n <teta-scrollable\n class=\"table-body-container\"\n style=\"padding-bottom: 12px\"\n direction=\"column\"\n [showScrollbars]=\"true\"\n (scroll)=\"emitScroll($event)\"\n >\n <div class=\"table-body-container\">\n @if (!data?.length) {\n <div class=\"column column_auto\" style=\"position: absolute; top: 0; bottom: 16px; left: 0; right: 0\">\n <ng-content></ng-content>\n </div>\n }\n @for (row of data; track trackTableRow(rowIndex, row); let rowIndex = $index) {\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: { row: row, rowIndex: rowIndex }\"></ng-container>\n }\n @if (aggregate) {\n <ng-container *ngTemplateOutlet=\"aggTemplate\"></ng-container>\n }\n <ng-container *ngTemplateOutlet=\"emptyRow\"></ng-container>\n </div>\n </teta-scrollable>\n}\n\n<ng-template #bodyTemplate let-row=\"row\" let-rowIndex=\"rowIndex\">\n <teta-table-row\n class=\"table-row\"\n ngForm\n [style.height.px]=\"rowHeight()\"\n [row]=\"row\"\n (click)=\"setActiveRow(row.data, $event)\"\n [attr.data-row]=\"rowIndex\"\n [class.table-row_odd]=\"rowIndex % 2 === 1\"\n [ngClass]=\"rowClass ? rowClass(row.data, rowIndex) : ''\"\n [class.table-row_selected]=\"selectedRows && selectedRows.indexOf(row.data) >= 0\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\"\n >\n @if (locked.length > 0) {\n <div\n class=\"table-row_locked\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\"\n [style.zIndex]=\"row.data === activeRow ? 2 : 1\"\n >\n @if (selectType === selectTypeEnum.checkBox && locked.length) {\n <teta-selection-cell [row]=\"row.data\" style=\"width: 28px\"></teta-selection-cell>\n }\n @for (column of locked; track trackColumns(colIndex, column); let colIndex = $index) {\n <teta-cell\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict ? dict[column.name] : []\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n ></teta-cell>\n }\n </div>\n }\n @if (selectType === selectTypeEnum.checkBox && locked.length < 1) {\n <teta-selection-cell [row]=\"row.data\" style=\"width: 28px\"></teta-selection-cell>\n }\n @for (column of unlocked; track trackColumns(colIndex, column); let colIndex = $index) {\n <teta-cell\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict ? dict[column.name] : []\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n ></teta-cell>\n }\n </teta-table-row>\n</ng-template>\n\n<ng-template #aggTemplate>\n @if (locale | async; as loc) {\n @if (aggregate) {\n <div\n class=\"table-row\"\n [style.height.px]=\"rowHeight()\"\n [class.table-row_virtual]=\"virtual\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\"\n >\n @if (locked.length > 0) {\n <div\n class=\"table-row_locked\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\"\n >\n @if (selectType === selectTypeEnum.checkBox && locked.length < 1) {\n <div class=\"cell align-center justify-content-center\" style=\"width: 28px\">\n <teta-icon [name]=\"'sumColor'\"></teta-icon>\n </div>\n }\n @for (column of locked; track trackColumns(colIndex, column); let colIndex = $index) {\n <div\n class=\"cell cell-component aggregate-cell\"\n [attr.data-column]=\"column.name\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n >\n @if (column.aggregate !== aggregationType.none) {\n <span class=\"cell-text cell-text_numeric font-title-3\">\n {{ loc[getAggregateText(column)] }}:\n {{ getAggregateValue(column) | tetaNumber: 2 }}\n </span>\n }\n </div>\n }\n </div>\n }\n @if (selectType === selectTypeEnum.checkBox && locked.length < 1) {\n <div class=\"cell align-center justify-content-center\" style=\"width: 28px\">\n <teta-icon [name]=\"'sumColor'\"></teta-icon>\n </div>\n }\n @for (column of unlocked; track trackColumns(colIndex, column); let colIndex = $index) {\n <div\n class=\"cell cell-component aggregate-cell\"\n [attr.data-column]=\"column.name\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n >\n @if (column.aggregate !== aggregationType.none) {\n <span class=\"cell-text cell-text_numeric font-title-3\">\n {{ loc[getAggregateText(column)] }}:\n {{ getAggregateValue(column) | tetaNumber: 2 }}\n </span>\n }\n </div>\n }\n </div>\n }\n }\n</ng-template>\n<ng-template #emptyRow>\n <div\n class=\"empty-table-row\"\n style=\"height: 0.1px\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\"\n ></div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "component", type: ScrollableComponent, selector: "teta-scrollable", inputs: ["direction", "showScrollbars", "contentClass"], outputs: ["scroll"] }, { kind: "component", type: CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: ScrollableDirective, selector: "[tetaScrollable]" }, { kind: "directive", type: CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: SelectionCellComponent, selector: "teta-selection-cell", inputs: ["row"] }, { kind: "component", type: CellComponent, selector: "teta-cell", inputs: ["column", "filterOptions", "dict", "row"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: NumberPipe, name: "tetaNumber" }, { kind: "component", type: TableRowComponent, selector: "teta-table-row", inputs: ["row"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8192
8200
  }
8193
8201
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TableBodyComponent, decorators: [{
8194
8202
  type: Component,
@@ -8207,7 +8215,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
8207
8215
  AsyncPipe,
8208
8216
  NumberPipe,
8209
8217
  TableRowComponent,
8210
- ], template: "@if (virtual && data.length > 0) {\n<teta-scrollable class=\"table-body-container\" style=\"padding-bottom: 12px\" [showScrollbars]=\"true\">\n <cdk-virtual-scroll-viewport\n tetaScrollable\n class=\"table-body-container\"\n (scroll)=\"emitScroll($event)\"\n [itemSize]=\"rowHeight()\"\n >\n <ng-container *cdkVirtualFor=\"let row of data; templateCacheSize: 0; let rowIndex = index; trackBy: trackTableRow\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: { row: row, rowIndex: rowIndex }\"></ng-container>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n</teta-scrollable>\n} @else {\n<teta-scrollable\n class=\"table-body-container\"\n style=\"padding-bottom: 12px\"\n direction=\"column\"\n [showScrollbars]=\"true\"\n (scroll)=\"emitScroll($event)\"\n>\n <div class=\"table-body-container\">\n @if (!data?.length) {\n <div class=\"column column_auto\" style=\"position: absolute; top: 0; bottom: 16px; left: 0; right: 0\">\n <ng-content></ng-content>\n </div>\n } @for (row of data; track trackTableRow(rowIndex, row); let rowIndex = $index) {\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: { row: row, rowIndex: rowIndex }\"></ng-container>\n } @if (aggregate) {\n <ng-container *ngTemplateOutlet=\"aggTemplate\"></ng-container>\n }\n <ng-container *ngTemplateOutlet=\"emptyRow\"></ng-container>\n </div>\n</teta-scrollable>\n}\n\n<ng-template #bodyTemplate let-row=\"row\" let-rowIndex=\"rowIndex\">\n <teta-table-row\n class=\"table-row\"\n ngForm\n [style.height.px]=\"rowHeight()\"\n [row]=\"row\"\n (click)=\"setActiveRow(row.data, $event)\"\n [attr.data-row]=\"rowIndex\"\n [class.table-row_odd]=\"rowIndex % 2 === 1\"\n [ngClass]=\"rowClass ? rowClass(row.data, rowIndex) : ''\"\n [class.table-row_selected]=\"selectedRows && selectedRows.indexOf(row.data) >= 0\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\"\n >\n @if (locked.length > 0) {\n <div\n class=\"table-row_locked\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\"\n [style.zIndex]=\"row.data === activeRow ? 2 : 1\"\n >\n @if (selectType === selectTypeEnum.checkBox && locked.length) {\n <teta-selection-cell [row]=\"row.data\" style=\"width: 28px\"></teta-selection-cell>\n } @for (column of locked; track trackColumns(colIndex, column); let colIndex = $index) {\n <teta-cell\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict ? dict[column.name] : []\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n ></teta-cell>\n }\n </div>\n } @if (selectType === selectTypeEnum.checkBox && locked.length < 1) {\n <teta-selection-cell [row]=\"row.data\" style=\"width: 28px\"></teta-selection-cell>\n } @for (column of unlocked; track trackColumns(colIndex, column); let colIndex = $index) {\n <teta-cell\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict ? dict[column.name] : []\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n ></teta-cell>\n }\n </teta-table-row>\n</ng-template>\n\n<ng-template #aggTemplate>\n @if (locale | async; as loc) { @if (aggregate) {\n <div\n class=\"table-row\"\n [style.height.px]=\"rowHeight()\"\n [class.table-row_virtual]=\"virtual\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\"\n >\n @if (locked.length > 0) {\n <div\n class=\"table-row_locked\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\"\n >\n @if (selectType === selectTypeEnum.checkBox && locked.length < 1) {\n <div class=\"cell align-center justify-content-center\" style=\"width: 28px\">\n <teta-icon [name]=\"'sumColor'\"></teta-icon>\n </div>\n } @for (column of locked; track trackColumns(colIndex, column); let colIndex = $index) {\n <div\n class=\"cell cell-component aggregate-cell\"\n [attr.data-column]=\"column.name\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n >\n @if (column.aggregate !== aggregationType.none) {\n <span class=\"cell-text cell-text_numeric font-title-3\">\n {{ loc[getAggregateText(column)] }}:\n {{ getAggregateValue(column) | tetaNumber : 2 }}\n </span>\n }\n </div>\n }\n </div>\n } @if (selectType === selectTypeEnum.checkBox && locked.length < 1) {\n <div class=\"cell align-center justify-content-center\" style=\"width: 28px\">\n <teta-icon [name]=\"'sumColor'\"></teta-icon>\n </div>\n } @for (column of unlocked; track trackColumns(colIndex, column); let colIndex = $index) {\n <div\n class=\"cell cell-component aggregate-cell\"\n [attr.data-column]=\"column.name\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n >\n @if (column.aggregate !== aggregationType.none) {\n <span class=\"cell-text cell-text_numeric font-title-3\">\n {{ loc[getAggregateText(column)] }}:\n {{ getAggregateValue(column) | tetaNumber : 2 }}\n </span>\n }\n </div>\n }\n </div>\n } }\n</ng-template>\n<ng-template #emptyRow>\n <div\n class=\"empty-table-row\"\n style=\"height: 0.1px\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\"\n ></div>\n</ng-template>\n" }]
8218
+ ], template: "@if (virtual && data.length > 0) {\n <teta-scrollable class=\"table-body-container\" style=\"padding-bottom: 12px\" [showScrollbars]=\"true\">\n <cdk-virtual-scroll-viewport\n tetaScrollable\n class=\"table-body-container\"\n (scroll)=\"emitScroll($event)\"\n [itemSize]=\"rowHeight()\"\n >\n <ng-container\n *cdkVirtualFor=\"let row of data; templateCacheSize: 0; let rowIndex = index; trackBy: trackTableRow\"\n >\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: { row: row, rowIndex: rowIndex }\"></ng-container>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </teta-scrollable>\n} @else {\n <teta-scrollable\n class=\"table-body-container\"\n style=\"padding-bottom: 12px\"\n direction=\"column\"\n [showScrollbars]=\"true\"\n (scroll)=\"emitScroll($event)\"\n >\n <div class=\"table-body-container\">\n @if (!data?.length) {\n <div class=\"column column_auto\" style=\"position: absolute; top: 0; bottom: 16px; left: 0; right: 0\">\n <ng-content></ng-content>\n </div>\n }\n @for (row of data; track trackTableRow(rowIndex, row); let rowIndex = $index) {\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: { row: row, rowIndex: rowIndex }\"></ng-container>\n }\n @if (aggregate) {\n <ng-container *ngTemplateOutlet=\"aggTemplate\"></ng-container>\n }\n <ng-container *ngTemplateOutlet=\"emptyRow\"></ng-container>\n </div>\n </teta-scrollable>\n}\n\n<ng-template #bodyTemplate let-row=\"row\" let-rowIndex=\"rowIndex\">\n <teta-table-row\n class=\"table-row\"\n ngForm\n [style.height.px]=\"rowHeight()\"\n [row]=\"row\"\n (click)=\"setActiveRow(row.data, $event)\"\n [attr.data-row]=\"rowIndex\"\n [class.table-row_odd]=\"rowIndex % 2 === 1\"\n [ngClass]=\"rowClass ? rowClass(row.data, rowIndex) : ''\"\n [class.table-row_selected]=\"selectedRows && selectedRows.indexOf(row.data) >= 0\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\"\n >\n @if (locked.length > 0) {\n <div\n class=\"table-row_locked\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\"\n [style.zIndex]=\"row.data === activeRow ? 2 : 1\"\n >\n @if (selectType === selectTypeEnum.checkBox && locked.length) {\n <teta-selection-cell [row]=\"row.data\" style=\"width: 28px\"></teta-selection-cell>\n }\n @for (column of locked; track trackColumns(colIndex, column); let colIndex = $index) {\n <teta-cell\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict ? dict[column.name] : []\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n ></teta-cell>\n }\n </div>\n }\n @if (selectType === selectTypeEnum.checkBox && locked.length < 1) {\n <teta-selection-cell [row]=\"row.data\" style=\"width: 28px\"></teta-selection-cell>\n }\n @for (column of unlocked; track trackColumns(colIndex, column); let colIndex = $index) {\n <teta-cell\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict ? dict[column.name] : []\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n ></teta-cell>\n }\n </teta-table-row>\n</ng-template>\n\n<ng-template #aggTemplate>\n @if (locale | async; as loc) {\n @if (aggregate) {\n <div\n class=\"table-row\"\n [style.height.px]=\"rowHeight()\"\n [class.table-row_virtual]=\"virtual\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\"\n >\n @if (locked.length > 0) {\n <div\n class=\"table-row_locked\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\"\n >\n @if (selectType === selectTypeEnum.checkBox && locked.length < 1) {\n <div class=\"cell align-center justify-content-center\" style=\"width: 28px\">\n <teta-icon [name]=\"'sumColor'\"></teta-icon>\n </div>\n }\n @for (column of locked; track trackColumns(colIndex, column); let colIndex = $index) {\n <div\n class=\"cell cell-component aggregate-cell\"\n [attr.data-column]=\"column.name\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n >\n @if (column.aggregate !== aggregationType.none) {\n <span class=\"cell-text cell-text_numeric font-title-3\">\n {{ loc[getAggregateText(column)] }}:\n {{ getAggregateValue(column) | tetaNumber: 2 }}\n </span>\n }\n </div>\n }\n </div>\n }\n @if (selectType === selectTypeEnum.checkBox && locked.length < 1) {\n <div class=\"cell align-center justify-content-center\" style=\"width: 28px\">\n <teta-icon [name]=\"'sumColor'\"></teta-icon>\n </div>\n }\n @for (column of unlocked; track trackColumns(colIndex, column); let colIndex = $index) {\n <div\n class=\"cell cell-component aggregate-cell\"\n [attr.data-column]=\"column.name\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n >\n @if (column.aggregate !== aggregationType.none) {\n <span class=\"cell-text cell-text_numeric font-title-3\">\n {{ loc[getAggregateText(column)] }}:\n {{ getAggregateValue(column) | tetaNumber: 2 }}\n </span>\n }\n </div>\n }\n </div>\n }\n }\n</ng-template>\n<ng-template #emptyRow>\n <div\n class=\"empty-table-row\"\n style=\"height: 0.1px\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\"\n ></div>\n</ng-template>\n" }]
8211
8219
  }], ctorParameters: () => [{ type: TableService }, { type: i0.ElementRef }, { type: TetaConfigService }, { type: i0.ChangeDetectorRef }], propDecorators: { virtual: [{
8212
8220
  type: Input
8213
8221
  }], activeRow: [{
@@ -8739,7 +8747,7 @@ class TreeComponent {
8739
8747
  this._obs.disconnect();
8740
8748
  }
8741
8749
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TreeComponent, deps: [{ token: TreeService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
8742
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: TreeComponent, isStandalone: true, selector: "teta-tree", inputs: { data: "data", padding: "padding", childNodeName: "childNodeName", virtual: "virtual", height: "height", openItems: "openItems", compareItems: "compareItems" }, outputs: { service: "service", openItemsChange: "openItemsChange" }, host: { properties: { "class.tree": "this.treeClass" } }, providers: [TreeService], queries: [{ propertyName: "template", first: true, predicate: TetaTemplateDirective, descendants: true, static: true }], viewQueries: [{ propertyName: "viewport", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (virtual) {\n<teta-scrollable class=\"column column_auto\">\n <cdk-virtual-scroll-viewport tetaScrollable class=\"table-body-container\" [itemSize]=\"height\">\n <teta-tree-item\n *cdkVirtualFor=\"let item of displayData; templateCacheSize: 0; trackBy: trackRow\"\n [item]=\"item\"\n [style.height.px]=\"height\"\n [depth]=\"item['level']\"\n [padding]=\"padding\"\n [childNodeName]=\"childNodeName\"\n [childPadding]=\"childPadding\"\n [template]=\"template?.template\"\n ></teta-tree-item>\n </cdk-virtual-scroll-viewport>\n</teta-scrollable>\n} @else {\n<teta-scrollable class=\"column column_auto\" direction=\"column\">\n @for (item of displayData; track trackRow($index, item)) {\n <teta-tree-item\n [item]=\"item\"\n [style.height.px]=\"height\"\n [depth]=\"item['level']\"\n [padding]=\"padding\"\n [childNodeName]=\"childNodeName\"\n [childPadding]=\"childPadding\"\n [template]=\"template?.template\"\n ></teta-tree-item>\n }\n</teta-scrollable>\n}\n", styles: [""], dependencies: [{ kind: "component", type: ScrollableComponent, selector: "teta-scrollable", inputs: ["direction", "showScrollbars", "contentClass"], outputs: ["scroll"] }, { kind: "component", type: CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: ScrollableDirective, selector: "[tetaScrollable]" }, { kind: "directive", type: CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: TreeItemComponent, selector: "teta-tree-item", inputs: ["item", "depth", "padding", "childNodeName", "template", "childPadding"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8750
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: TreeComponent, isStandalone: true, selector: "teta-tree", inputs: { data: "data", padding: "padding", childNodeName: "childNodeName", virtual: "virtual", height: "height", openItems: "openItems", compareItems: "compareItems" }, outputs: { service: "service", openItemsChange: "openItemsChange" }, host: { properties: { "class.tree": "this.treeClass" } }, providers: [TreeService], queries: [{ propertyName: "template", first: true, predicate: TetaTemplateDirective, descendants: true, static: true }], viewQueries: [{ propertyName: "viewport", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (virtual) {\n <teta-scrollable class=\"column column_auto\">\n <cdk-virtual-scroll-viewport tetaScrollable class=\"table-body-container\" [itemSize]=\"height\">\n <teta-tree-item\n *cdkVirtualFor=\"let item of displayData; templateCacheSize: 0; trackBy: trackRow\"\n [item]=\"item\"\n [style.height.px]=\"height\"\n [depth]=\"item['level']\"\n [padding]=\"padding\"\n [childNodeName]=\"childNodeName\"\n [childPadding]=\"childPadding\"\n [template]=\"template?.template\"\n ></teta-tree-item>\n </cdk-virtual-scroll-viewport>\n </teta-scrollable>\n} @else {\n <teta-scrollable class=\"column column_auto\" direction=\"column\">\n @for (item of displayData; track trackRow($index, item)) {\n <teta-tree-item\n [item]=\"item\"\n [style.height.px]=\"height\"\n [depth]=\"item['level']\"\n [padding]=\"padding\"\n [childNodeName]=\"childNodeName\"\n [childPadding]=\"childPadding\"\n [template]=\"template?.template\"\n ></teta-tree-item>\n }\n </teta-scrollable>\n}\n", styles: [""], dependencies: [{ kind: "component", type: ScrollableComponent, selector: "teta-scrollable", inputs: ["direction", "showScrollbars", "contentClass"], outputs: ["scroll"] }, { kind: "component", type: CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: ScrollableDirective, selector: "[tetaScrollable]" }, { kind: "directive", type: CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: TreeItemComponent, selector: "teta-tree-item", inputs: ["item", "depth", "padding", "childNodeName", "template", "childPadding"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8743
8751
  }
8744
8752
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TreeComponent, decorators: [{
8745
8753
  type: Component,
@@ -8750,7 +8758,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
8750
8758
  ScrollableDirective,
8751
8759
  CdkVirtualForOf,
8752
8760
  TreeItemComponent,
8753
- ], template: "@if (virtual) {\n<teta-scrollable class=\"column column_auto\">\n <cdk-virtual-scroll-viewport tetaScrollable class=\"table-body-container\" [itemSize]=\"height\">\n <teta-tree-item\n *cdkVirtualFor=\"let item of displayData; templateCacheSize: 0; trackBy: trackRow\"\n [item]=\"item\"\n [style.height.px]=\"height\"\n [depth]=\"item['level']\"\n [padding]=\"padding\"\n [childNodeName]=\"childNodeName\"\n [childPadding]=\"childPadding\"\n [template]=\"template?.template\"\n ></teta-tree-item>\n </cdk-virtual-scroll-viewport>\n</teta-scrollable>\n} @else {\n<teta-scrollable class=\"column column_auto\" direction=\"column\">\n @for (item of displayData; track trackRow($index, item)) {\n <teta-tree-item\n [item]=\"item\"\n [style.height.px]=\"height\"\n [depth]=\"item['level']\"\n [padding]=\"padding\"\n [childNodeName]=\"childNodeName\"\n [childPadding]=\"childPadding\"\n [template]=\"template?.template\"\n ></teta-tree-item>\n }\n</teta-scrollable>\n}\n" }]
8761
+ ], template: "@if (virtual) {\n <teta-scrollable class=\"column column_auto\">\n <cdk-virtual-scroll-viewport tetaScrollable class=\"table-body-container\" [itemSize]=\"height\">\n <teta-tree-item\n *cdkVirtualFor=\"let item of displayData; templateCacheSize: 0; trackBy: trackRow\"\n [item]=\"item\"\n [style.height.px]=\"height\"\n [depth]=\"item['level']\"\n [padding]=\"padding\"\n [childNodeName]=\"childNodeName\"\n [childPadding]=\"childPadding\"\n [template]=\"template?.template\"\n ></teta-tree-item>\n </cdk-virtual-scroll-viewport>\n </teta-scrollable>\n} @else {\n <teta-scrollable class=\"column column_auto\" direction=\"column\">\n @for (item of displayData; track trackRow($index, item)) {\n <teta-tree-item\n [item]=\"item\"\n [style.height.px]=\"height\"\n [depth]=\"item['level']\"\n [padding]=\"padding\"\n [childNodeName]=\"childNodeName\"\n [childPadding]=\"childPadding\"\n [template]=\"template?.template\"\n ></teta-tree-item>\n }\n </teta-scrollable>\n}\n" }]
8754
8762
  }], ctorParameters: () => [{ type: TreeService }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }], propDecorators: { data: [{
8755
8763
  type: Input
8756
8764
  }], padding: [{
@@ -8887,7 +8895,7 @@ class VisibilityDropdownTabComponent {
8887
8895
  this._alive = false;
8888
8896
  }
8889
8897
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: VisibilityDropdownTabComponent, deps: [{ token: TableService }, { token: TetaConfigService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
8890
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: VisibilityDropdownTabComponent, isStandalone: true, selector: "teta-visibility-dropdown-tab", inputs: { columns: "columns", column: "column", state: "state", data: "data", close: "close" }, ngImport: i0, template: "@if (locale | async; as loc) {\n<div class=\"list-item padding-left-6 padding-top-2\" [class.padding-left-9]=\"childMode\">\n <teta-checkbox\n [binary]=\"true\"\n [allowNull]=\"true\"\n [ngModel]=\"allColumnsVisible()\"\n (ngModelChange)=\"setAllColumns($event)\"\n >\n {{ loc.all }}\n </teta-checkbox>\n</div>\n<div class=\"list-divider\"></div>\n<teta-scrollable class=\"padding-v-2 column column_auto\">\n <teta-tree\n [data]=\"columns\"\n [openItems]=\"openItems\"\n (openItemsChange)=\"openItems = $event\"\n [childNodeName]=\"'columns'\"\n [compareItems]=\"compareItems\"\n >\n <ng-template tetaTemplate let-item>\n <div class=\"tree__item\" style=\"align-items: unset\">\n @if (item.columns?.length > 0) {\n <teta-tree-item-toggle [item]=\"item\"></teta-tree-item-toggle>\n }\n <teta-checkbox\n style=\"flex-grow: 1\"\n [ngModel]=\"!columnIsHidden(item)\"\n (ngModelChange)=\"setColumnVisibility(item, $event)\"\n (click)=\"$event.stopPropagation()\"\n [binary]=\"true\"\n >\n {{ item.caption }}\n </teta-checkbox>\n </div>\n </ng-template>\n </teta-tree>\n</teta-scrollable>\n<teta-toolbar class=\"justify-content-end\">\n <button\n type=\"button\"\n teta-button\n [disabled]=\"allColumnsVisible() === false\"\n [palette]=\"'primary'\"\n (click)=\"setColumnsVisibility()\"\n >\n {{ loc.apply }}\n </button>\n</teta-toolbar>\n}\n", styles: [":host{display:flex;flex-direction:column;flex-grow:1;min-height:0}\n"], dependencies: [{ kind: "component", type: CheckboxComponent, selector: "teta-checkbox", inputs: ["class", "palette", "noLabel", "disabled", "value", "binary", "labelPosition", "allowNull"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ScrollableComponent, selector: "teta-scrollable", inputs: ["direction", "showScrollbars", "contentClass"], outputs: ["scroll"] }, { kind: "component", type: TreeComponent, selector: "teta-tree", inputs: ["data", "padding", "childNodeName", "virtual", "height", "openItems", "compareItems"], outputs: ["service", "openItemsChange"] }, { kind: "directive", type: TetaTemplateDirective, selector: "[tetaTemplate]", inputs: ["tetaTemplate"] }, { kind: "component", type: TreeItemToggleComponent, selector: "teta-tree-item-toggle", inputs: ["item"] }, { kind: "component", type: ToolbarComponent, selector: "teta-toolbar", inputs: ["palette", "class"] }, { kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8898
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: VisibilityDropdownTabComponent, isStandalone: true, selector: "teta-visibility-dropdown-tab", inputs: { columns: "columns", column: "column", state: "state", data: "data", close: "close" }, ngImport: i0, template: "@if (locale | async; as loc) {\n <div class=\"list-item padding-left-6 padding-top-2\" [class.padding-left-9]=\"childMode\">\n <teta-checkbox\n [binary]=\"true\"\n [allowNull]=\"true\"\n [ngModel]=\"allColumnsVisible()\"\n (ngModelChange)=\"setAllColumns($event)\"\n >\n {{ loc.all }}\n </teta-checkbox>\n </div>\n <div class=\"list-divider\"></div>\n <teta-scrollable class=\"padding-v-2 column column_auto\">\n <teta-tree\n [data]=\"columns\"\n [openItems]=\"openItems\"\n (openItemsChange)=\"openItems = $event\"\n [childNodeName]=\"'columns'\"\n [compareItems]=\"compareItems\"\n >\n <ng-template tetaTemplate let-item>\n <div class=\"tree__item\" style=\"align-items: unset\">\n @if (item.columns?.length > 0) {\n <teta-tree-item-toggle [item]=\"item\"></teta-tree-item-toggle>\n }\n <teta-checkbox\n style=\"flex-grow: 1\"\n [ngModel]=\"!columnIsHidden(item)\"\n (ngModelChange)=\"setColumnVisibility(item, $event)\"\n (click)=\"$event.stopPropagation()\"\n [binary]=\"true\"\n >\n {{ item.caption }}\n </teta-checkbox>\n </div>\n </ng-template>\n </teta-tree>\n </teta-scrollable>\n <teta-toolbar class=\"justify-content-end\">\n <button\n type=\"button\"\n teta-button\n [disabled]=\"allColumnsVisible() === false\"\n [palette]=\"'primary'\"\n (click)=\"setColumnsVisibility()\"\n >\n {{ loc.apply }}\n </button>\n </teta-toolbar>\n}\n", styles: [":host{display:flex;flex-direction:column;flex-grow:1;min-height:0}\n"], dependencies: [{ kind: "component", type: CheckboxComponent, selector: "teta-checkbox", inputs: ["class", "palette", "noLabel", "disabled", "value", "binary", "labelPosition", "allowNull"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ScrollableComponent, selector: "teta-scrollable", inputs: ["direction", "showScrollbars", "contentClass"], outputs: ["scroll"] }, { kind: "component", type: TreeComponent, selector: "teta-tree", inputs: ["data", "padding", "childNodeName", "virtual", "height", "openItems", "compareItems"], outputs: ["service", "openItemsChange"] }, { kind: "directive", type: TetaTemplateDirective, selector: "[tetaTemplate]", inputs: ["tetaTemplate"] }, { kind: "component", type: TreeItemToggleComponent, selector: "teta-tree-item-toggle", inputs: ["item"] }, { kind: "component", type: ToolbarComponent, selector: "teta-toolbar", inputs: ["palette", "class"] }, { kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8891
8899
  }
8892
8900
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: VisibilityDropdownTabComponent, decorators: [{
8893
8901
  type: Component,
@@ -8901,7 +8909,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
8901
8909
  ToolbarComponent,
8902
8910
  ButtonComponent,
8903
8911
  AsyncPipe,
8904
- ], template: "@if (locale | async; as loc) {\n<div class=\"list-item padding-left-6 padding-top-2\" [class.padding-left-9]=\"childMode\">\n <teta-checkbox\n [binary]=\"true\"\n [allowNull]=\"true\"\n [ngModel]=\"allColumnsVisible()\"\n (ngModelChange)=\"setAllColumns($event)\"\n >\n {{ loc.all }}\n </teta-checkbox>\n</div>\n<div class=\"list-divider\"></div>\n<teta-scrollable class=\"padding-v-2 column column_auto\">\n <teta-tree\n [data]=\"columns\"\n [openItems]=\"openItems\"\n (openItemsChange)=\"openItems = $event\"\n [childNodeName]=\"'columns'\"\n [compareItems]=\"compareItems\"\n >\n <ng-template tetaTemplate let-item>\n <div class=\"tree__item\" style=\"align-items: unset\">\n @if (item.columns?.length > 0) {\n <teta-tree-item-toggle [item]=\"item\"></teta-tree-item-toggle>\n }\n <teta-checkbox\n style=\"flex-grow: 1\"\n [ngModel]=\"!columnIsHidden(item)\"\n (ngModelChange)=\"setColumnVisibility(item, $event)\"\n (click)=\"$event.stopPropagation()\"\n [binary]=\"true\"\n >\n {{ item.caption }}\n </teta-checkbox>\n </div>\n </ng-template>\n </teta-tree>\n</teta-scrollable>\n<teta-toolbar class=\"justify-content-end\">\n <button\n type=\"button\"\n teta-button\n [disabled]=\"allColumnsVisible() === false\"\n [palette]=\"'primary'\"\n (click)=\"setColumnsVisibility()\"\n >\n {{ loc.apply }}\n </button>\n</teta-toolbar>\n}\n", styles: [":host{display:flex;flex-direction:column;flex-grow:1;min-height:0}\n"] }]
8912
+ ], template: "@if (locale | async; as loc) {\n <div class=\"list-item padding-left-6 padding-top-2\" [class.padding-left-9]=\"childMode\">\n <teta-checkbox\n [binary]=\"true\"\n [allowNull]=\"true\"\n [ngModel]=\"allColumnsVisible()\"\n (ngModelChange)=\"setAllColumns($event)\"\n >\n {{ loc.all }}\n </teta-checkbox>\n </div>\n <div class=\"list-divider\"></div>\n <teta-scrollable class=\"padding-v-2 column column_auto\">\n <teta-tree\n [data]=\"columns\"\n [openItems]=\"openItems\"\n (openItemsChange)=\"openItems = $event\"\n [childNodeName]=\"'columns'\"\n [compareItems]=\"compareItems\"\n >\n <ng-template tetaTemplate let-item>\n <div class=\"tree__item\" style=\"align-items: unset\">\n @if (item.columns?.length > 0) {\n <teta-tree-item-toggle [item]=\"item\"></teta-tree-item-toggle>\n }\n <teta-checkbox\n style=\"flex-grow: 1\"\n [ngModel]=\"!columnIsHidden(item)\"\n (ngModelChange)=\"setColumnVisibility(item, $event)\"\n (click)=\"$event.stopPropagation()\"\n [binary]=\"true\"\n >\n {{ item.caption }}\n </teta-checkbox>\n </div>\n </ng-template>\n </teta-tree>\n </teta-scrollable>\n <teta-toolbar class=\"justify-content-end\">\n <button\n type=\"button\"\n teta-button\n [disabled]=\"allColumnsVisible() === false\"\n [palette]=\"'primary'\"\n (click)=\"setColumnsVisibility()\"\n >\n {{ loc.apply }}\n </button>\n </teta-toolbar>\n}\n", styles: [":host{display:flex;flex-direction:column;flex-grow:1;min-height:0}\n"] }]
8905
8913
  }], ctorParameters: () => [{ type: TableService }, { type: TetaConfigService }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { columns: [{
8906
8914
  type: Input
8907
8915
  }], column: [{
@@ -8938,11 +8946,11 @@ class FilterDropdownTabComponent {
8938
8946
  }
8939
8947
  ngOnInit() { }
8940
8948
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: FilterDropdownTabComponent, deps: [{ token: TableService }, { token: TetaConfigService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
8941
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: FilterDropdownTabComponent, isStandalone: true, selector: "teta-filter-dropdown-tab", inputs: { columns: "columns", column: "column", state: "state", data: "data", close: "close" }, host: { listeners: { "keydown.enter": "enter()" } }, ngImport: i0, template: "@if (locale | async; as loc) { @if (filterOptions | async; as options) {\n<teta-filter-host\n [column]=\"column\"\n [data]=\"data\"\n [state]=\"state\"\n [filterOptions]=\"options[column.name]\"\n></teta-filter-host>\n}\n<teta-toolbar class=\"justify-content-between\">\n <button type=\"button\" teta-button [palette]=\"'text'\" [view]=\"'ghost'\" (click)=\"clearFilter()\">\n {{ loc.clear }}\n </button>\n <button type=\"button\" teta-button [palette]=\"'primary'\" (click)=\"applyFilter()\">\n <teta-icon [name]=\"'tick'\" [palette]=\"'white'\"></teta-icon>\n {{ loc.apply }}\n </button>\n</teta-toolbar>\n}\n", styles: [":host{display:flex;flex-direction:column;min-height:0;min-width:0}\n"], dependencies: [{ kind: "component", type: FilterHostComponent, selector: "teta-filter-host", inputs: ["column", "state", "data", "filterOptions"], outputs: ["filterChanged"] }, { kind: "component", type: ToolbarComponent, selector: "teta-toolbar", inputs: ["palette", "class"] }, { kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8949
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: FilterDropdownTabComponent, isStandalone: true, selector: "teta-filter-dropdown-tab", inputs: { columns: "columns", column: "column", state: "state", data: "data", close: "close" }, host: { listeners: { "keydown.enter": "enter()" } }, ngImport: i0, template: "@if (locale | async; as loc) {\n @if (filterOptions | async; as options) {\n <teta-filter-host\n [column]=\"column\"\n [data]=\"data\"\n [state]=\"state\"\n [filterOptions]=\"options[column.name]\"\n ></teta-filter-host>\n }\n <teta-toolbar class=\"justify-content-between\">\n <button type=\"button\" teta-button [palette]=\"'text'\" [view]=\"'ghost'\" (click)=\"clearFilter()\">\n {{ loc.clear }}\n </button>\n <button type=\"button\" teta-button [palette]=\"'primary'\" (click)=\"applyFilter()\">\n <teta-icon [name]=\"'tick'\" [palette]=\"'white'\"></teta-icon>\n {{ loc.apply }}\n </button>\n </teta-toolbar>\n}\n", styles: [":host{display:flex;flex-direction:column;min-height:0;min-width:0}\n"], dependencies: [{ kind: "component", type: FilterHostComponent, selector: "teta-filter-host", inputs: ["column", "state", "data", "filterOptions"], outputs: ["filterChanged"] }, { kind: "component", type: ToolbarComponent, selector: "teta-toolbar", inputs: ["palette", "class"] }, { kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8942
8950
  }
8943
8951
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: FilterDropdownTabComponent, decorators: [{
8944
8952
  type: Component,
8945
- args: [{ selector: 'teta-filter-dropdown-tab', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [FilterHostComponent, ToolbarComponent, ButtonComponent, IconComponent, AsyncPipe], template: "@if (locale | async; as loc) { @if (filterOptions | async; as options) {\n<teta-filter-host\n [column]=\"column\"\n [data]=\"data\"\n [state]=\"state\"\n [filterOptions]=\"options[column.name]\"\n></teta-filter-host>\n}\n<teta-toolbar class=\"justify-content-between\">\n <button type=\"button\" teta-button [palette]=\"'text'\" [view]=\"'ghost'\" (click)=\"clearFilter()\">\n {{ loc.clear }}\n </button>\n <button type=\"button\" teta-button [palette]=\"'primary'\" (click)=\"applyFilter()\">\n <teta-icon [name]=\"'tick'\" [palette]=\"'white'\"></teta-icon>\n {{ loc.apply }}\n </button>\n</teta-toolbar>\n}\n", styles: [":host{display:flex;flex-direction:column;min-height:0;min-width:0}\n"] }]
8953
+ args: [{ selector: 'teta-filter-dropdown-tab', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [FilterHostComponent, ToolbarComponent, ButtonComponent, IconComponent, AsyncPipe], template: "@if (locale | async; as loc) {\n @if (filterOptions | async; as options) {\n <teta-filter-host\n [column]=\"column\"\n [data]=\"data\"\n [state]=\"state\"\n [filterOptions]=\"options[column.name]\"\n ></teta-filter-host>\n }\n <teta-toolbar class=\"justify-content-between\">\n <button type=\"button\" teta-button [palette]=\"'text'\" [view]=\"'ghost'\" (click)=\"clearFilter()\">\n {{ loc.clear }}\n </button>\n <button type=\"button\" teta-button [palette]=\"'primary'\" (click)=\"applyFilter()\">\n <teta-icon [name]=\"'tick'\" [palette]=\"'white'\"></teta-icon>\n {{ loc.apply }}\n </button>\n </teta-toolbar>\n}\n", styles: [":host{display:flex;flex-direction:column;min-height:0;min-width:0}\n"] }]
8946
8954
  }], ctorParameters: () => [{ type: TableService }, { type: TetaConfigService }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { columns: [{
8947
8955
  type: Input
8948
8956
  }], column: [{
@@ -9024,11 +9032,11 @@ class MainDropdownTabComponent {
9024
9032
  }
9025
9033
  ngOnInit() { }
9026
9034
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: MainDropdownTabComponent, deps: [{ token: TableService }, { token: TetaConfigService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
9027
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: MainDropdownTabComponent, isStandalone: true, selector: "teta-main-dropdown-tab", inputs: { columns: "columns", column: "column", state: "state", data: "data", close: "close", headCellElementRef: "headCellElementRef" }, ngImport: i0, template: "@if (locale | async; as loc) {\n<div class=\"list column_auto\">\n @if (!parent) {\n <div class=\"list-item list-item_interactive\" (click)=\"pinColumn()\">\n {{ column.locked ? loc.unpin : loc.pin }}\n </div>\n <div class=\"list-divider\"></div>\n } @if (column.sortable) {\n <div class=\"list-item list-item_interactive\" (click)=\"sortAsc($event)\">\n {{ loc.sortAsc }}\n </div>\n <div class=\"list-item list-item_interactive\" (click)=\"sortDesc($event)\">\n {{ loc.sortDesc }}\n </div>\n @if (hasSortedColumns()) { @if (sortParam) {\n <div class=\"list-item list-item_interactive\" (click)=\"clearSort()\">\n {{ loc.clearSort }}\n </div>\n }\n <div class=\"list-item list-item_interactive\" (click)=\"clearAllSort()\">\n {{ loc.clearAllSort }}\n </div>\n <div class=\"list-divider\"></div>\n } } @if (hasFilteredColumns()) { @if (filtered) {\n <div class=\"list-item list-item_interactive\" (click)=\"clearFilter()\">\n {{ loc.clearFilter }}\n </div>\n }\n <div class=\"list-item list-item_interactive\" (click)=\"clearAllFilters()\">\n {{ loc.clearAllFilters }}\n </div>\n <div class=\"list-divider\"></div>\n }\n <div class=\"list-item list-item_interactive\" (click)=\"autosizeColumn()\">\n {{ loc.autosizeColumn }}\n </div>\n <div class=\"list-item list-item_interactive\" (click)=\"autosizeAllColumns()\">\n {{ loc.autosizeAll }}\n </div>\n <div class=\"list-divider\"></div>\n <div class=\"list-item list-item_interactive\" (click)=\"restoreDefaultColumns()\">\n {{ loc.resetColumnsSize }}\n </div>\n</div>\n}\n", styles: [":host{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9035
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: MainDropdownTabComponent, isStandalone: true, selector: "teta-main-dropdown-tab", inputs: { columns: "columns", column: "column", state: "state", data: "data", close: "close", headCellElementRef: "headCellElementRef" }, ngImport: i0, template: "@if (locale | async; as loc) {\n <div class=\"list column_auto\">\n @if (!parent) {\n <div class=\"list-item list-item_interactive\" (click)=\"pinColumn()\">\n {{ column.locked ? loc.unpin : loc.pin }}\n </div>\n <div class=\"list-divider\"></div>\n }\n @if (column.sortable) {\n <div class=\"list-item list-item_interactive\" (click)=\"sortAsc($event)\">\n {{ loc.sortAsc }}\n </div>\n <div class=\"list-item list-item_interactive\" (click)=\"sortDesc($event)\">\n {{ loc.sortDesc }}\n </div>\n @if (hasSortedColumns()) {\n @if (sortParam) {\n <div class=\"list-item list-item_interactive\" (click)=\"clearSort()\">\n {{ loc.clearSort }}\n </div>\n }\n <div class=\"list-item list-item_interactive\" (click)=\"clearAllSort()\">\n {{ loc.clearAllSort }}\n </div>\n <div class=\"list-divider\"></div>\n }\n }\n @if (hasFilteredColumns()) {\n @if (filtered) {\n <div class=\"list-item list-item_interactive\" (click)=\"clearFilter()\">\n {{ loc.clearFilter }}\n </div>\n }\n <div class=\"list-item list-item_interactive\" (click)=\"clearAllFilters()\">\n {{ loc.clearAllFilters }}\n </div>\n <div class=\"list-divider\"></div>\n }\n <div class=\"list-item list-item_interactive\" (click)=\"autosizeColumn()\">\n {{ loc.autosizeColumn }}\n </div>\n <div class=\"list-item list-item_interactive\" (click)=\"autosizeAllColumns()\">\n {{ loc.autosizeAll }}\n </div>\n <div class=\"list-divider\"></div>\n <div class=\"list-item list-item_interactive\" (click)=\"restoreDefaultColumns()\">\n {{ loc.resetColumnsSize }}\n </div>\n </div>\n}\n", styles: [":host{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9028
9036
  }
9029
9037
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: MainDropdownTabComponent, decorators: [{
9030
9038
  type: Component,
9031
- args: [{ selector: 'teta-main-dropdown-tab', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [AsyncPipe], template: "@if (locale | async; as loc) {\n<div class=\"list column_auto\">\n @if (!parent) {\n <div class=\"list-item list-item_interactive\" (click)=\"pinColumn()\">\n {{ column.locked ? loc.unpin : loc.pin }}\n </div>\n <div class=\"list-divider\"></div>\n } @if (column.sortable) {\n <div class=\"list-item list-item_interactive\" (click)=\"sortAsc($event)\">\n {{ loc.sortAsc }}\n </div>\n <div class=\"list-item list-item_interactive\" (click)=\"sortDesc($event)\">\n {{ loc.sortDesc }}\n </div>\n @if (hasSortedColumns()) { @if (sortParam) {\n <div class=\"list-item list-item_interactive\" (click)=\"clearSort()\">\n {{ loc.clearSort }}\n </div>\n }\n <div class=\"list-item list-item_interactive\" (click)=\"clearAllSort()\">\n {{ loc.clearAllSort }}\n </div>\n <div class=\"list-divider\"></div>\n } } @if (hasFilteredColumns()) { @if (filtered) {\n <div class=\"list-item list-item_interactive\" (click)=\"clearFilter()\">\n {{ loc.clearFilter }}\n </div>\n }\n <div class=\"list-item list-item_interactive\" (click)=\"clearAllFilters()\">\n {{ loc.clearAllFilters }}\n </div>\n <div class=\"list-divider\"></div>\n }\n <div class=\"list-item list-item_interactive\" (click)=\"autosizeColumn()\">\n {{ loc.autosizeColumn }}\n </div>\n <div class=\"list-item list-item_interactive\" (click)=\"autosizeAllColumns()\">\n {{ loc.autosizeAll }}\n </div>\n <div class=\"list-divider\"></div>\n <div class=\"list-item list-item_interactive\" (click)=\"restoreDefaultColumns()\">\n {{ loc.resetColumnsSize }}\n </div>\n</div>\n}\n", styles: [":host{display:flex;flex-direction:column}\n"] }]
9039
+ args: [{ selector: 'teta-main-dropdown-tab', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [AsyncPipe], template: "@if (locale | async; as loc) {\n <div class=\"list column_auto\">\n @if (!parent) {\n <div class=\"list-item list-item_interactive\" (click)=\"pinColumn()\">\n {{ column.locked ? loc.unpin : loc.pin }}\n </div>\n <div class=\"list-divider\"></div>\n }\n @if (column.sortable) {\n <div class=\"list-item list-item_interactive\" (click)=\"sortAsc($event)\">\n {{ loc.sortAsc }}\n </div>\n <div class=\"list-item list-item_interactive\" (click)=\"sortDesc($event)\">\n {{ loc.sortDesc }}\n </div>\n @if (hasSortedColumns()) {\n @if (sortParam) {\n <div class=\"list-item list-item_interactive\" (click)=\"clearSort()\">\n {{ loc.clearSort }}\n </div>\n }\n <div class=\"list-item list-item_interactive\" (click)=\"clearAllSort()\">\n {{ loc.clearAllSort }}\n </div>\n <div class=\"list-divider\"></div>\n }\n }\n @if (hasFilteredColumns()) {\n @if (filtered) {\n <div class=\"list-item list-item_interactive\" (click)=\"clearFilter()\">\n {{ loc.clearFilter }}\n </div>\n }\n <div class=\"list-item list-item_interactive\" (click)=\"clearAllFilters()\">\n {{ loc.clearAllFilters }}\n </div>\n <div class=\"list-divider\"></div>\n }\n <div class=\"list-item list-item_interactive\" (click)=\"autosizeColumn()\">\n {{ loc.autosizeColumn }}\n </div>\n <div class=\"list-item list-item_interactive\" (click)=\"autosizeAllColumns()\">\n {{ loc.autosizeAll }}\n </div>\n <div class=\"list-divider\"></div>\n <div class=\"list-item list-item_interactive\" (click)=\"restoreDefaultColumns()\">\n {{ loc.resetColumnsSize }}\n </div>\n </div>\n}\n", styles: [":host{display:flex;flex-direction:column}\n"] }]
9032
9040
  }], ctorParameters: () => [{ type: TableService }, { type: TetaConfigService }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { columns: [{
9033
9041
  type: Input
9034
9042
  }], column: [{
@@ -9232,11 +9240,11 @@ class TabsComponent {
9232
9240
  return tabsWithId.length ? tabsWithId[0] : null;
9233
9241
  }
9234
9242
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9235
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: TabsComponent, isStandalone: true, selector: "teta-tabs", inputs: { activeId: "activeId", direction: "direction", size: "size", destroyOnHide: "destroyOnHide" }, outputs: { tabChange: "tabChange" }, host: { properties: { "class.tabs": "this.classTabs", "class.tabs_vertical": "this.verticalClassTabs" } }, queries: [{ propertyName: "tabs", predicate: TabComponent }], ngImport: i0, template: "<div role=\"tablist\" class=\"tabs-head\" [class.tabs-head_small]=\"size === 's'\">\n @for (tab of tabs; track tab) {\n <button\n type=\"button\"\n class=\"tabs-head-item\"\n (click)=\"select(tab.id)\"\n [class.tabs-head-item_active]=\"tab.id === activeId\"\n [disabled]=\"tab.disabled\"\n >\n <span\n [id]=\"tab.id\"\n class=\"tabs-title\"\n role=\"tab\"\n [attr.tabindex]=\"tab.disabled ? '-1' : undefined\"\n [attr.aria-controls]=\"!destroyOnHide || tab.id === activeId ? tab.id + '-panel' : null\"\n [attr.aria-expanded]=\"tab.id === activeId\"\n [attr.aria-disabled]=\"tab.disabled\"\n >\n {{ tab.title }}\n <ng-template [ngTemplateOutlet]=\"tab.titleTpl?.template\"></ng-template>\n </span>\n </button>\n }\n</div>\n<div class=\"tabs-content\">\n @for (tab of tabs; track tab) { @if (!destroyOnHide || tab.id === activeId) {\n <ng-template [ngTemplateOutlet]=\"tab.contentTpl?.template\"></ng-template>\n } }\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
9243
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: TabsComponent, isStandalone: true, selector: "teta-tabs", inputs: { activeId: "activeId", direction: "direction", size: "size", destroyOnHide: "destroyOnHide" }, outputs: { tabChange: "tabChange" }, host: { properties: { "class.tabs": "this.classTabs", "class.tabs_vertical": "this.verticalClassTabs" } }, queries: [{ propertyName: "tabs", predicate: TabComponent }], ngImport: i0, template: "<div role=\"tablist\" class=\"tabs-head\" [class.tabs-head_small]=\"size === 's'\">\n @for (tab of tabs; track tab) {\n <button\n type=\"button\"\n class=\"tabs-head-item\"\n (click)=\"select(tab.id)\"\n [class.tabs-head-item_active]=\"tab.id === activeId\"\n [disabled]=\"tab.disabled\"\n >\n <span\n [id]=\"tab.id\"\n class=\"tabs-title\"\n role=\"tab\"\n [attr.tabindex]=\"tab.disabled ? '-1' : undefined\"\n [attr.aria-controls]=\"!destroyOnHide || tab.id === activeId ? tab.id + '-panel' : null\"\n [attr.aria-expanded]=\"tab.id === activeId\"\n [attr.aria-disabled]=\"tab.disabled\"\n >\n {{ tab.title }}\n <ng-template [ngTemplateOutlet]=\"tab.titleTpl?.template\"></ng-template>\n </span>\n </button>\n }\n</div>\n<div class=\"tabs-content\">\n @for (tab of tabs; track tab) {\n @if (!destroyOnHide || tab.id === activeId) {\n <ng-template [ngTemplateOutlet]=\"tab.contentTpl?.template\"></ng-template>\n }\n }\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
9236
9244
  }
9237
9245
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TabsComponent, decorators: [{
9238
9246
  type: Component,
9239
- args: [{ selector: 'teta-tabs', standalone: true, imports: [NgTemplateOutlet], template: "<div role=\"tablist\" class=\"tabs-head\" [class.tabs-head_small]=\"size === 's'\">\n @for (tab of tabs; track tab) {\n <button\n type=\"button\"\n class=\"tabs-head-item\"\n (click)=\"select(tab.id)\"\n [class.tabs-head-item_active]=\"tab.id === activeId\"\n [disabled]=\"tab.disabled\"\n >\n <span\n [id]=\"tab.id\"\n class=\"tabs-title\"\n role=\"tab\"\n [attr.tabindex]=\"tab.disabled ? '-1' : undefined\"\n [attr.aria-controls]=\"!destroyOnHide || tab.id === activeId ? tab.id + '-panel' : null\"\n [attr.aria-expanded]=\"tab.id === activeId\"\n [attr.aria-disabled]=\"tab.disabled\"\n >\n {{ tab.title }}\n <ng-template [ngTemplateOutlet]=\"tab.titleTpl?.template\"></ng-template>\n </span>\n </button>\n }\n</div>\n<div class=\"tabs-content\">\n @for (tab of tabs; track tab) { @if (!destroyOnHide || tab.id === activeId) {\n <ng-template [ngTemplateOutlet]=\"tab.contentTpl?.template\"></ng-template>\n } }\n</div>\n" }]
9247
+ args: [{ selector: 'teta-tabs', standalone: true, imports: [NgTemplateOutlet], template: "<div role=\"tablist\" class=\"tabs-head\" [class.tabs-head_small]=\"size === 's'\">\n @for (tab of tabs; track tab) {\n <button\n type=\"button\"\n class=\"tabs-head-item\"\n (click)=\"select(tab.id)\"\n [class.tabs-head-item_active]=\"tab.id === activeId\"\n [disabled]=\"tab.disabled\"\n >\n <span\n [id]=\"tab.id\"\n class=\"tabs-title\"\n role=\"tab\"\n [attr.tabindex]=\"tab.disabled ? '-1' : undefined\"\n [attr.aria-controls]=\"!destroyOnHide || tab.id === activeId ? tab.id + '-panel' : null\"\n [attr.aria-expanded]=\"tab.id === activeId\"\n [attr.aria-disabled]=\"tab.disabled\"\n >\n {{ tab.title }}\n <ng-template [ngTemplateOutlet]=\"tab.titleTpl?.template\"></ng-template>\n </span>\n </button>\n }\n</div>\n<div class=\"tabs-content\">\n @for (tab of tabs; track tab) {\n @if (!destroyOnHide || tab.id === activeId) {\n <ng-template [ngTemplateOutlet]=\"tab.contentTpl?.template\"></ng-template>\n }\n }\n</div>\n" }]
9240
9248
  }], ctorParameters: () => [], propDecorators: { classTabs: [{
9241
9249
  type: HostBinding,
9242
9250
  args: ['class.tabs']
@@ -9273,11 +9281,11 @@ class HeadCellDropdownComponent {
9273
9281
  return index;
9274
9282
  }
9275
9283
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: HeadCellDropdownComponent, deps: [{ token: TableService }, { token: TetaConfigService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
9276
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: HeadCellDropdownComponent, isStandalone: true, selector: "teta-head-cell-dropdown", inputs: { columns: "columns", column: "column", state: "state", data: "data", tabTemplates: "tabTemplates", dropDownOpen: "dropDownOpen" }, outputs: { dropDownOpenChange: "dropDownOpenChange" }, ngImport: i0, template: "@if (dropDownOpen) {\n<teta-tabs class=\"column_auto\">\n @for (tab of tabTemplates; track trackIndex($index)) { @if (tab.showTab(column)) {\n <teta-tab>\n <ng-template tetaTabTitle>\n @if (tab.icon) {\n <teta-icon [name]=\"tab.icon\" [palette]=\"'text'\"></teta-icon>\n }\n </ng-template>\n <ng-template tetaTabContent>\n <ng-container\n *ngTemplateOutlet=\"\n tab.template;\n context: {\n column: column,\n columns: columns,\n data: data,\n state: state,\n close: closeDropdown\n }\n \"\n ></ng-container>\n </ng-template>\n </teta-tab>\n } }\n</teta-tabs>\n}\n", styles: [":host{display:flex;flex-grow:1;min-height:0;min-width:250px}\n"], dependencies: [{ kind: "component", type: TabsComponent, selector: "teta-tabs", inputs: ["activeId", "direction", "size", "destroyOnHide"], outputs: ["tabChange"] }, { kind: "component", type: TabComponent, selector: "teta-tab", inputs: ["id", "title", "disabled"] }, { kind: "directive", type: TabTitleDirective, selector: "[tetaTabTitle]" }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "directive", type: TabContentDirective, selector: "[tetaTabContent]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9284
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: HeadCellDropdownComponent, isStandalone: true, selector: "teta-head-cell-dropdown", inputs: { columns: "columns", column: "column", state: "state", data: "data", tabTemplates: "tabTemplates", dropDownOpen: "dropDownOpen" }, outputs: { dropDownOpenChange: "dropDownOpenChange" }, ngImport: i0, template: "@if (dropDownOpen) {\n <teta-tabs class=\"column_auto\">\n @for (tab of tabTemplates; track trackIndex($index)) {\n @if (tab.showTab(column)) {\n <teta-tab>\n <ng-template tetaTabTitle>\n @if (tab.icon) {\n <teta-icon [name]=\"tab.icon\" [palette]=\"'text'\"></teta-icon>\n }\n </ng-template>\n <ng-template tetaTabContent>\n <ng-container\n *ngTemplateOutlet=\"\n tab.template;\n context: {\n column: column,\n columns: columns,\n data: data,\n state: state,\n close: closeDropdown,\n }\n \"\n ></ng-container>\n </ng-template>\n </teta-tab>\n }\n }\n </teta-tabs>\n}\n", styles: [":host{display:flex;flex-grow:1;min-height:0;min-width:250px}\n"], dependencies: [{ kind: "component", type: TabsComponent, selector: "teta-tabs", inputs: ["activeId", "direction", "size", "destroyOnHide"], outputs: ["tabChange"] }, { kind: "component", type: TabComponent, selector: "teta-tab", inputs: ["id", "title", "disabled"] }, { kind: "directive", type: TabTitleDirective, selector: "[tetaTabTitle]" }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "directive", type: TabContentDirective, selector: "[tetaTabContent]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9277
9285
  }
9278
9286
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: HeadCellDropdownComponent, decorators: [{
9279
9287
  type: Component,
9280
- args: [{ selector: 'teta-head-cell-dropdown', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [TabsComponent, TabComponent, TabTitleDirective, IconComponent, TabContentDirective, NgTemplateOutlet], template: "@if (dropDownOpen) {\n<teta-tabs class=\"column_auto\">\n @for (tab of tabTemplates; track trackIndex($index)) { @if (tab.showTab(column)) {\n <teta-tab>\n <ng-template tetaTabTitle>\n @if (tab.icon) {\n <teta-icon [name]=\"tab.icon\" [palette]=\"'text'\"></teta-icon>\n }\n </ng-template>\n <ng-template tetaTabContent>\n <ng-container\n *ngTemplateOutlet=\"\n tab.template;\n context: {\n column: column,\n columns: columns,\n data: data,\n state: state,\n close: closeDropdown\n }\n \"\n ></ng-container>\n </ng-template>\n </teta-tab>\n } }\n</teta-tabs>\n}\n", styles: [":host{display:flex;flex-grow:1;min-height:0;min-width:250px}\n"] }]
9288
+ args: [{ selector: 'teta-head-cell-dropdown', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [TabsComponent, TabComponent, TabTitleDirective, IconComponent, TabContentDirective, NgTemplateOutlet], template: "@if (dropDownOpen) {\n <teta-tabs class=\"column_auto\">\n @for (tab of tabTemplates; track trackIndex($index)) {\n @if (tab.showTab(column)) {\n <teta-tab>\n <ng-template tetaTabTitle>\n @if (tab.icon) {\n <teta-icon [name]=\"tab.icon\" [palette]=\"'text'\"></teta-icon>\n }\n </ng-template>\n <ng-template tetaTabContent>\n <ng-container\n *ngTemplateOutlet=\"\n tab.template;\n context: {\n column: column,\n columns: columns,\n data: data,\n state: state,\n close: closeDropdown,\n }\n \"\n ></ng-container>\n </ng-template>\n </teta-tab>\n }\n }\n </teta-tabs>\n}\n", styles: [":host{display:flex;flex-grow:1;min-height:0;min-width:250px}\n"] }]
9281
9289
  }], ctorParameters: () => [{ type: TableService }, { type: TetaConfigService }, { type: i0.ChangeDetectorRef }], propDecorators: { columns: [{
9282
9290
  type: Input
9283
9291
  }], column: [{
@@ -9337,11 +9345,11 @@ class DefaultHeadCellComponent extends HeadCellComponentBase {
9337
9345
  }
9338
9346
  ngOnInit() { }
9339
9347
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DefaultHeadCellComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
9340
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DefaultHeadCellComponent, isStandalone: true, selector: "teta-default-head-cell", inputs: { column: "column", columns: "columns", data: "data" }, usesInheritance: true, ngImport: i0, template: "<div class=\"column column_auto align-start justify-content-center\" [tetaHint]=\"column.hint || column.caption\">\n <div class=\"table-head__cell__text\">\n {{ column.caption }}\n </div>\n @if (column.unit) {\n <div class=\"table-head__cell__text font-caption color-text-70\">[{{ column.unit }}]</div>\n }\n</div>\n", styles: [":host{display:flex;min-width:0;padding:6px 8px;flex-grow:1}\n"], dependencies: [{ kind: "directive", type: HintDirective, selector: "[tetaHint]", inputs: ["tetaHint", "align", "verticalAlign", "delay", "viewType", "overflownOnly"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9348
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DefaultHeadCellComponent, isStandalone: true, selector: "teta-default-head-cell", inputs: { column: "column", columns: "columns", data: "data" }, usesInheritance: true, ngImport: i0, template: "<div class=\"column column_auto align-start justify-content-center\" [tetaHint]=\"column.hint || column.caption\">\n <div class=\"table-head__cell__text\">\n {{ column.caption }}\n </div>\n @if (column.unit) {\n <div class=\"table-head__cell__text font-caption color-text-70\">[{{ column.unit }}]</div>\n }\n</div>\n", styles: [":host{display:flex;min-width:0;padding:6px 8px;flex-grow:1}\n"], dependencies: [{ kind: "directive", type: HintDirective, selector: "[tetaHint]", inputs: ["tetaHint", "align", "verticalAlign", "delay", "viewType", "overflownOnly"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9341
9349
  }
9342
9350
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DefaultHeadCellComponent, decorators: [{
9343
9351
  type: Component,
9344
- args: [{ selector: 'teta-default-head-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [HintDirective], template: "<div class=\"column column_auto align-start justify-content-center\" [tetaHint]=\"column.hint || column.caption\">\n <div class=\"table-head__cell__text\">\n {{ column.caption }}\n </div>\n @if (column.unit) {\n <div class=\"table-head__cell__text font-caption color-text-70\">[{{ column.unit }}]</div>\n }\n</div>\n", styles: [":host{display:flex;min-width:0;padding:6px 8px;flex-grow:1}\n"] }]
9352
+ args: [{ selector: 'teta-default-head-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [HintDirective], template: "<div class=\"column column_auto align-start justify-content-center\" [tetaHint]=\"column.hint || column.caption\">\n <div class=\"table-head__cell__text\">\n {{ column.caption }}\n </div>\n @if (column.unit) {\n <div class=\"table-head__cell__text font-caption color-text-70\">[{{ column.unit }}]</div>\n }\n</div>\n", styles: [":host{display:flex;min-width:0;padding:6px 8px;flex-grow:1}\n"] }]
9345
9353
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { column: [{
9346
9354
  type: Input
9347
9355
  }], columns: [{
@@ -9534,7 +9542,7 @@ class HeadCellComponent {
9534
9542
  this._startPosition = null;
9535
9543
  }
9536
9544
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: HeadCellComponent, deps: [{ token: TableService }, { token: i0.ApplicationRef }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
9537
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: HeadCellComponent, isStandalone: true, selector: "teta-head-cell", inputs: { column: "column", showHeadCellMenu: "showHeadCellMenu", data: "data" }, host: { listeners: { "dragenter": "dragenter($event)", "dragover": "allowDrop($event)", "dragleave": "dragleave($event)", "dragend": "dragend($event)", "drop": "drop($event)" }, properties: { "class.table-head__cell_active": "this.dropDownOpen" } }, viewQueries: [{ propertyName: "mainTemplate", first: true, predicate: ["mainTemplate"], descendants: true, static: true }, { propertyName: "filterTemplate", first: true, predicate: ["filterTemplate"], descendants: true, static: true }, { propertyName: "columnsTemplate", first: true, predicate: ["columnsTemplate"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"row row_auto\">\n <teta-dropdown\n [autoCloseIgnore]=\"['enter', 'inside']\"\n [verticalAlign]=\"verticalAlign.auto\"\n [appendToBody]=\"true\"\n [(open)]=\"dropDownOpen\"\n [align]=\"align.auto\"\n (click)=\"$event.preventDefault()\"\n [class.table-head__cell__menu_open]=\"dropDownOpen\"\n class=\"column column_auto justify-content-center\"\n >\n <div\n tetaDropdownHead\n draggable=\"true\"\n class=\"table-head__cell__wrapper\"\n (dragstart)=\"dragstart($event)\"\n [ngClass]=\"column.headCellClass\"\n >\n <teta-head-cell-host [column]=\"column\" [columns]=\"columns | async\" [data]=\"data\"></teta-head-cell-host>\n @if (iconName | async; as icon) {\n <teta-icon [palette]=\"'text'\" [name]=\"icon\"></teta-icon>\n }\n </div>\n @if (showHeadCellMenu) {\n <teta-head-cell-dropdown\n tetaDropdownContent\n [tabTemplates]=\"tabTemplates\"\n [data]=\"data\"\n [column]=\"column\"\n [columns]=\"columns | async\"\n [state]=\"state | async\"\n [(dropDownOpen)]=\"dropDownOpen\"\n ></teta-head-cell-dropdown>\n }\n </teta-dropdown>\n @if (showDrag) {\n <div\n class=\"drop-area\"\n draggable=\"false\"\n [class.drop-area_left]=\"showDrag === 'left'\"\n [class.drop-area_right]=\"showDrag === 'right'\"\n ></div>\n }\n</div>\n<div\n class=\"table-head__cell__resize\"\n draggable=\"false\"\n (dragstart)=\"$event.preventDefault(); $event.stopPropagation()\"\n (drag)=\"$event.preventDefault(); $event.stopPropagation()\"\n [tetaResizeDrag]=\"'vertical'\"\n (resizeStart)=\"resizeStart()\"\n (resizeProcess)=\"resizeProcess($event)\"\n (resizeEnd)=\"resizeEnd()\"\n>\n <div class=\"table-head__cell__resize_drag\"></div>\n</div>\n<ng-template\n #mainTemplate\n let-column=\"column\"\n let-columns=\"columns\"\n let-data=\"data\"\n let-state=\"state\"\n let-close=\"close\"\n>\n <teta-main-dropdown-tab\n [column]=\"column\"\n [state]=\"state\"\n [close]=\"close\"\n [headCellElementRef]=\"elementRef\"\n ></teta-main-dropdown-tab>\n</ng-template>\n<ng-template\n #filterTemplate\n let-column=\"column\"\n let-columns=\"columns\"\n let-data=\"data\"\n let-state=\"state\"\n let-close=\"close\"\n>\n <teta-filter-dropdown-tab [column]=\"column\" [state]=\"state\" [close]=\"close\" [data]=\"data\"></teta-filter-dropdown-tab>\n</ng-template>\n<ng-template\n #columnsTemplate\n let-column=\"column\"\n let-columns=\"columns\"\n let-data=\"data\"\n let-state=\"state\"\n let-close=\"close\"\n>\n <teta-visibility-dropdown-tab\n [column]=\"column\"\n [columns]=\"columns\"\n [state]=\"state\"\n [close]=\"close\"\n [data]=\"data\"\n ></teta-visibility-dropdown-tab>\n</ng-template>\n", styles: [".drop-area{position:absolute;width:1px;background:var(--color-text-50);top:0;bottom:0;z-index:10}.drop-area_left{left:-1px}.drop-area_right{right:-1px}\n"], dependencies: [{ kind: "component", type: DropdownComponent, selector: "teta-dropdown", exportAs: ["dropdown"] }, { kind: "directive", type: DropdownHeadDirective, selector: "[tetaDropdownHead]" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: HeadCellHostComponent, selector: "teta-head-cell-host", inputs: ["column", "columns", "data"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "component", type: HeadCellDropdownComponent, selector: "teta-head-cell-dropdown", inputs: ["columns", "column", "state", "data", "tabTemplates", "dropDownOpen"], outputs: ["dropDownOpenChange"] }, { kind: "directive", type: DropdownContentDirective, selector: "[tetaDropdownContent]" }, { kind: "directive", type: ResizeDragDirective, selector: "[tetaResizeDrag]", inputs: ["tetaResizeDrag"], outputs: ["resizeStart", "resizeProcess", "resizeEnd"] }, { kind: "component", type: MainDropdownTabComponent, selector: "teta-main-dropdown-tab", inputs: ["columns", "column", "state", "data", "close", "headCellElementRef"] }, { kind: "component", type: FilterDropdownTabComponent, selector: "teta-filter-dropdown-tab", inputs: ["columns", "column", "state", "data", "close"] }, { kind: "component", type: VisibilityDropdownTabComponent, selector: "teta-visibility-dropdown-tab", inputs: ["columns", "column", "state", "data", "close"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9545
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: HeadCellComponent, isStandalone: true, selector: "teta-head-cell", inputs: { column: "column", showHeadCellMenu: "showHeadCellMenu", data: "data" }, host: { listeners: { "dragenter": "dragenter($event)", "dragover": "allowDrop($event)", "dragleave": "dragleave($event)", "dragend": "dragend($event)", "drop": "drop($event)" }, properties: { "class.table-head__cell_active": "this.dropDownOpen" } }, viewQueries: [{ propertyName: "mainTemplate", first: true, predicate: ["mainTemplate"], descendants: true, static: true }, { propertyName: "filterTemplate", first: true, predicate: ["filterTemplate"], descendants: true, static: true }, { propertyName: "columnsTemplate", first: true, predicate: ["columnsTemplate"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"row row_auto\">\n <teta-dropdown\n [autoCloseIgnore]=\"['enter', 'inside']\"\n [verticalAlign]=\"verticalAlign.auto\"\n [appendToBody]=\"true\"\n [(open)]=\"dropDownOpen\"\n [align]=\"align.auto\"\n (click)=\"$event.preventDefault()\"\n [class.table-head__cell__menu_open]=\"dropDownOpen\"\n class=\"column column_auto justify-content-center\"\n >\n <div\n tetaDropdownHead\n draggable=\"true\"\n class=\"table-head__cell__wrapper\"\n (dragstart)=\"dragstart($event)\"\n [ngClass]=\"column.headCellClass\"\n >\n <teta-head-cell-host [column]=\"column\" [columns]=\"columns | async\" [data]=\"data\"></teta-head-cell-host>\n @if (iconName | async; as icon) {\n <teta-icon [palette]=\"'text'\" [name]=\"icon\"></teta-icon>\n }\n </div>\n @if (showHeadCellMenu) {\n <teta-head-cell-dropdown\n tetaDropdownContent\n [tabTemplates]=\"tabTemplates\"\n [data]=\"data\"\n [column]=\"column\"\n [columns]=\"columns | async\"\n [state]=\"state | async\"\n [(dropDownOpen)]=\"dropDownOpen\"\n ></teta-head-cell-dropdown>\n }\n </teta-dropdown>\n @if (showDrag) {\n <div\n class=\"drop-area\"\n draggable=\"false\"\n [class.drop-area_left]=\"showDrag === 'left'\"\n [class.drop-area_right]=\"showDrag === 'right'\"\n ></div>\n }\n</div>\n<div\n class=\"table-head__cell__resize\"\n draggable=\"false\"\n (dragstart)=\"$event.preventDefault(); $event.stopPropagation()\"\n (drag)=\"$event.preventDefault(); $event.stopPropagation()\"\n [tetaResizeDrag]=\"'vertical'\"\n (resizeStart)=\"resizeStart()\"\n (resizeProcess)=\"resizeProcess($event)\"\n (resizeEnd)=\"resizeEnd()\"\n>\n <div class=\"table-head__cell__resize_drag\"></div>\n</div>\n<ng-template\n #mainTemplate\n let-column=\"column\"\n let-columns=\"columns\"\n let-data=\"data\"\n let-state=\"state\"\n let-close=\"close\"\n>\n <teta-main-dropdown-tab\n [column]=\"column\"\n [state]=\"state\"\n [close]=\"close\"\n [headCellElementRef]=\"elementRef\"\n ></teta-main-dropdown-tab>\n</ng-template>\n<ng-template\n #filterTemplate\n let-column=\"column\"\n let-columns=\"columns\"\n let-data=\"data\"\n let-state=\"state\"\n let-close=\"close\"\n>\n <teta-filter-dropdown-tab [column]=\"column\" [state]=\"state\" [close]=\"close\" [data]=\"data\"></teta-filter-dropdown-tab>\n</ng-template>\n<ng-template\n #columnsTemplate\n let-column=\"column\"\n let-columns=\"columns\"\n let-data=\"data\"\n let-state=\"state\"\n let-close=\"close\"\n>\n <teta-visibility-dropdown-tab\n [column]=\"column\"\n [columns]=\"columns\"\n [state]=\"state\"\n [close]=\"close\"\n [data]=\"data\"\n ></teta-visibility-dropdown-tab>\n</ng-template>\n", styles: [".drop-area{position:absolute;width:1px;background:var(--color-text-50);top:0;bottom:0;z-index:10}.drop-area_left{left:-1px}.drop-area_right{right:-1px}\n"], dependencies: [{ kind: "component", type: DropdownComponent, selector: "teta-dropdown", exportAs: ["dropdown"] }, { kind: "directive", type: DropdownHeadDirective, selector: "[tetaDropdownHead]" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: HeadCellHostComponent, selector: "teta-head-cell-host", inputs: ["column", "columns", "data"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "component", type: HeadCellDropdownComponent, selector: "teta-head-cell-dropdown", inputs: ["columns", "column", "state", "data", "tabTemplates", "dropDownOpen"], outputs: ["dropDownOpenChange"] }, { kind: "directive", type: DropdownContentDirective, selector: "[tetaDropdownContent]" }, { kind: "directive", type: ResizeDragDirective, selector: "[tetaResizeDrag]", inputs: ["tetaResizeDrag"], outputs: ["resizeStart", "resizeProcess", "resizeEnd"] }, { kind: "component", type: MainDropdownTabComponent, selector: "teta-main-dropdown-tab", inputs: ["columns", "column", "state", "data", "close", "headCellElementRef"] }, { kind: "component", type: FilterDropdownTabComponent, selector: "teta-filter-dropdown-tab", inputs: ["columns", "column", "state", "data", "close"] }, { kind: "component", type: VisibilityDropdownTabComponent, selector: "teta-visibility-dropdown-tab", inputs: ["columns", "column", "state", "data", "close"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9538
9546
  }
9539
9547
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: HeadCellComponent, decorators: [{
9540
9548
  type: Component,
@@ -9551,7 +9559,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
9551
9559
  FilterDropdownTabComponent,
9552
9560
  VisibilityDropdownTabComponent,
9553
9561
  AsyncPipe,
9554
- ], template: "<div class=\"row row_auto\">\n <teta-dropdown\n [autoCloseIgnore]=\"['enter', 'inside']\"\n [verticalAlign]=\"verticalAlign.auto\"\n [appendToBody]=\"true\"\n [(open)]=\"dropDownOpen\"\n [align]=\"align.auto\"\n (click)=\"$event.preventDefault()\"\n [class.table-head__cell__menu_open]=\"dropDownOpen\"\n class=\"column column_auto justify-content-center\"\n >\n <div\n tetaDropdownHead\n draggable=\"true\"\n class=\"table-head__cell__wrapper\"\n (dragstart)=\"dragstart($event)\"\n [ngClass]=\"column.headCellClass\"\n >\n <teta-head-cell-host [column]=\"column\" [columns]=\"columns | async\" [data]=\"data\"></teta-head-cell-host>\n @if (iconName | async; as icon) {\n <teta-icon [palette]=\"'text'\" [name]=\"icon\"></teta-icon>\n }\n </div>\n @if (showHeadCellMenu) {\n <teta-head-cell-dropdown\n tetaDropdownContent\n [tabTemplates]=\"tabTemplates\"\n [data]=\"data\"\n [column]=\"column\"\n [columns]=\"columns | async\"\n [state]=\"state | async\"\n [(dropDownOpen)]=\"dropDownOpen\"\n ></teta-head-cell-dropdown>\n }\n </teta-dropdown>\n @if (showDrag) {\n <div\n class=\"drop-area\"\n draggable=\"false\"\n [class.drop-area_left]=\"showDrag === 'left'\"\n [class.drop-area_right]=\"showDrag === 'right'\"\n ></div>\n }\n</div>\n<div\n class=\"table-head__cell__resize\"\n draggable=\"false\"\n (dragstart)=\"$event.preventDefault(); $event.stopPropagation()\"\n (drag)=\"$event.preventDefault(); $event.stopPropagation()\"\n [tetaResizeDrag]=\"'vertical'\"\n (resizeStart)=\"resizeStart()\"\n (resizeProcess)=\"resizeProcess($event)\"\n (resizeEnd)=\"resizeEnd()\"\n>\n <div class=\"table-head__cell__resize_drag\"></div>\n</div>\n<ng-template\n #mainTemplate\n let-column=\"column\"\n let-columns=\"columns\"\n let-data=\"data\"\n let-state=\"state\"\n let-close=\"close\"\n>\n <teta-main-dropdown-tab\n [column]=\"column\"\n [state]=\"state\"\n [close]=\"close\"\n [headCellElementRef]=\"elementRef\"\n ></teta-main-dropdown-tab>\n</ng-template>\n<ng-template\n #filterTemplate\n let-column=\"column\"\n let-columns=\"columns\"\n let-data=\"data\"\n let-state=\"state\"\n let-close=\"close\"\n>\n <teta-filter-dropdown-tab [column]=\"column\" [state]=\"state\" [close]=\"close\" [data]=\"data\"></teta-filter-dropdown-tab>\n</ng-template>\n<ng-template\n #columnsTemplate\n let-column=\"column\"\n let-columns=\"columns\"\n let-data=\"data\"\n let-state=\"state\"\n let-close=\"close\"\n>\n <teta-visibility-dropdown-tab\n [column]=\"column\"\n [columns]=\"columns\"\n [state]=\"state\"\n [close]=\"close\"\n [data]=\"data\"\n ></teta-visibility-dropdown-tab>\n</ng-template>\n", styles: [".drop-area{position:absolute;width:1px;background:var(--color-text-50);top:0;bottom:0;z-index:10}.drop-area_left{left:-1px}.drop-area_right{right:-1px}\n"] }]
9562
+ ], template: "<div class=\"row row_auto\">\n <teta-dropdown\n [autoCloseIgnore]=\"['enter', 'inside']\"\n [verticalAlign]=\"verticalAlign.auto\"\n [appendToBody]=\"true\"\n [(open)]=\"dropDownOpen\"\n [align]=\"align.auto\"\n (click)=\"$event.preventDefault()\"\n [class.table-head__cell__menu_open]=\"dropDownOpen\"\n class=\"column column_auto justify-content-center\"\n >\n <div\n tetaDropdownHead\n draggable=\"true\"\n class=\"table-head__cell__wrapper\"\n (dragstart)=\"dragstart($event)\"\n [ngClass]=\"column.headCellClass\"\n >\n <teta-head-cell-host [column]=\"column\" [columns]=\"columns | async\" [data]=\"data\"></teta-head-cell-host>\n @if (iconName | async; as icon) {\n <teta-icon [palette]=\"'text'\" [name]=\"icon\"></teta-icon>\n }\n </div>\n @if (showHeadCellMenu) {\n <teta-head-cell-dropdown\n tetaDropdownContent\n [tabTemplates]=\"tabTemplates\"\n [data]=\"data\"\n [column]=\"column\"\n [columns]=\"columns | async\"\n [state]=\"state | async\"\n [(dropDownOpen)]=\"dropDownOpen\"\n ></teta-head-cell-dropdown>\n }\n </teta-dropdown>\n @if (showDrag) {\n <div\n class=\"drop-area\"\n draggable=\"false\"\n [class.drop-area_left]=\"showDrag === 'left'\"\n [class.drop-area_right]=\"showDrag === 'right'\"\n ></div>\n }\n</div>\n<div\n class=\"table-head__cell__resize\"\n draggable=\"false\"\n (dragstart)=\"$event.preventDefault(); $event.stopPropagation()\"\n (drag)=\"$event.preventDefault(); $event.stopPropagation()\"\n [tetaResizeDrag]=\"'vertical'\"\n (resizeStart)=\"resizeStart()\"\n (resizeProcess)=\"resizeProcess($event)\"\n (resizeEnd)=\"resizeEnd()\"\n>\n <div class=\"table-head__cell__resize_drag\"></div>\n</div>\n<ng-template\n #mainTemplate\n let-column=\"column\"\n let-columns=\"columns\"\n let-data=\"data\"\n let-state=\"state\"\n let-close=\"close\"\n>\n <teta-main-dropdown-tab\n [column]=\"column\"\n [state]=\"state\"\n [close]=\"close\"\n [headCellElementRef]=\"elementRef\"\n ></teta-main-dropdown-tab>\n</ng-template>\n<ng-template\n #filterTemplate\n let-column=\"column\"\n let-columns=\"columns\"\n let-data=\"data\"\n let-state=\"state\"\n let-close=\"close\"\n>\n <teta-filter-dropdown-tab [column]=\"column\" [state]=\"state\" [close]=\"close\" [data]=\"data\"></teta-filter-dropdown-tab>\n</ng-template>\n<ng-template\n #columnsTemplate\n let-column=\"column\"\n let-columns=\"columns\"\n let-data=\"data\"\n let-state=\"state\"\n let-close=\"close\"\n>\n <teta-visibility-dropdown-tab\n [column]=\"column\"\n [columns]=\"columns\"\n [state]=\"state\"\n [close]=\"close\"\n [data]=\"data\"\n ></teta-visibility-dropdown-tab>\n</ng-template>\n", styles: [".drop-area{position:absolute;width:1px;background:var(--color-text-50);top:0;bottom:0;z-index:10}.drop-area_left{left:-1px}.drop-area_right{right:-1px}\n"] }]
9555
9563
  }], ctorParameters: () => [{ type: TableService }, { type: i0.ApplicationRef }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { column: [{
9556
9564
  type: Input
9557
9565
  }], showHeadCellMenu: [{
@@ -9628,11 +9636,11 @@ class TableHeadGroupComponent {
9628
9636
  this._alive = false;
9629
9637
  }
9630
9638
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TableHeadGroupComponent, deps: [{ token: TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
9631
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: TableHeadGroupComponent, isStandalone: true, selector: "teta-table-head-group", inputs: { showHeadCellMenu: "showHeadCellMenu", data: "data", column: "column" }, host: { properties: { "style.flex-grow": "this.flexGrow", "style.min-width.px": "this.flexBasis", "style.flex-basis.px": "this.flexBasis" } }, ngImport: i0, template: "@if (column.columns && column.columns.length > 0) {\n<div class=\"table-head__group__container\">\n <div class=\"table-head__group__caption\">\n {{ column.caption }}\n </div>\n <div class=\"table-head__group__children\">\n @for (col of column.columns; track col) { @if (!columnIsHidden(col)) {\n <teta-table-head-group\n class=\"table-head__group\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [column]=\"col\"\n ></teta-table-head-group>\n } }\n </div>\n</div>\n} @if (!column.columns || column.columns.length === 0) { @if (!columnIsHidden(column)) {\n<teta-head-cell\n class=\"table-head__cell\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n></teta-head-cell>\n} }\n", styles: [""], dependencies: [{ kind: "component", type: TableHeadGroupComponent, selector: "teta-table-head-group", inputs: ["showHeadCellMenu", "data", "column"] }, { kind: "component", type: HeadCellComponent, selector: "teta-head-cell", inputs: ["column", "showHeadCellMenu", "data"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9639
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: TableHeadGroupComponent, isStandalone: true, selector: "teta-table-head-group", inputs: { showHeadCellMenu: "showHeadCellMenu", data: "data", column: "column" }, host: { properties: { "style.flex-grow": "this.flexGrow", "style.min-width.px": "this.flexBasis", "style.flex-basis.px": "this.flexBasis" } }, ngImport: i0, template: "@if (column.columns && column.columns.length > 0) {\n <div class=\"table-head__group__container\">\n <div class=\"table-head__group__caption\">\n {{ column.caption }}\n </div>\n <div class=\"table-head__group__children\">\n @for (col of column.columns; track col) {\n @if (!columnIsHidden(col)) {\n <teta-table-head-group\n class=\"table-head__group\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [column]=\"col\"\n ></teta-table-head-group>\n }\n }\n </div>\n </div>\n}\n@if (!column.columns || column.columns.length === 0) {\n @if (!columnIsHidden(column)) {\n <teta-head-cell\n class=\"table-head__cell\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n ></teta-head-cell>\n }\n}\n", styles: [""], dependencies: [{ kind: "component", type: TableHeadGroupComponent, selector: "teta-table-head-group", inputs: ["showHeadCellMenu", "data", "column"] }, { kind: "component", type: HeadCellComponent, selector: "teta-head-cell", inputs: ["column", "showHeadCellMenu", "data"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9632
9640
  }
9633
9641
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TableHeadGroupComponent, decorators: [{
9634
9642
  type: Component,
9635
- args: [{ selector: 'teta-table-head-group', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [HeadCellComponent], template: "@if (column.columns && column.columns.length > 0) {\n<div class=\"table-head__group__container\">\n <div class=\"table-head__group__caption\">\n {{ column.caption }}\n </div>\n <div class=\"table-head__group__children\">\n @for (col of column.columns; track col) { @if (!columnIsHidden(col)) {\n <teta-table-head-group\n class=\"table-head__group\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [column]=\"col\"\n ></teta-table-head-group>\n } }\n </div>\n</div>\n} @if (!column.columns || column.columns.length === 0) { @if (!columnIsHidden(column)) {\n<teta-head-cell\n class=\"table-head__cell\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n></teta-head-cell>\n} }\n" }]
9643
+ args: [{ selector: 'teta-table-head-group', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [HeadCellComponent], template: "@if (column.columns && column.columns.length > 0) {\n <div class=\"table-head__group__container\">\n <div class=\"table-head__group__caption\">\n {{ column.caption }}\n </div>\n <div class=\"table-head__group__children\">\n @for (col of column.columns; track col) {\n @if (!columnIsHidden(col)) {\n <teta-table-head-group\n class=\"table-head__group\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [column]=\"col\"\n ></teta-table-head-group>\n }\n }\n </div>\n </div>\n}\n@if (!column.columns || column.columns.length === 0) {\n @if (!columnIsHidden(column)) {\n <teta-head-cell\n class=\"table-head__cell\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n ></teta-head-cell>\n }\n}\n" }]
9636
9644
  }], ctorParameters: () => [{ type: TableService }, { type: i0.ChangeDetectorRef }], propDecorators: { showHeadCellMenu: [{
9637
9645
  type: Input
9638
9646
  }], data: [{
@@ -9739,11 +9747,11 @@ class TableHeadComponent {
9739
9747
  this._alive = false;
9740
9748
  }
9741
9749
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TableHeadComponent, deps: [{ token: TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
9742
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: TableHeadComponent, isStandalone: true, selector: "teta-table-head", inputs: { selectType: "selectType", showHeadCellMenu: "showHeadCellMenu" }, host: { properties: { "class.table-head": "this.tableHeadClass" } }, ngImport: i0, template: "@if (locked?.length) {\n<div\n class=\"table-head_locked\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\"\n>\n @if (selectType === selectTypeEnum.checkBox) {\n <teta-selection-head-cell style=\"width: 28px\"></teta-selection-head-cell>\n } @for (column of locked; track track($index, column)) {\n <teta-table-head-group\n class=\"table-head__group\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [column]=\"column\"\n ></teta-table-head-group>\n }\n</div>\n} @if (unlocked?.length) { @if (selectType === selectTypeEnum.checkBox && locked?.length < 1) {\n<teta-selection-head-cell style=\"width: 28px\"></teta-selection-head-cell>\n} @for (column of unlocked; track track($index, column)) {\n<teta-table-head-group\n class=\"table-head__group\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [column]=\"column\"\n></teta-table-head-group>\n} }\n", styles: [""], dependencies: [{ kind: "component", type: SelectionHeadCellComponent, selector: "teta-selection-head-cell" }, { kind: "component", type: TableHeadGroupComponent, selector: "teta-table-head-group", inputs: ["showHeadCellMenu", "data", "column"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9750
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: TableHeadComponent, isStandalone: true, selector: "teta-table-head", inputs: { selectType: "selectType", showHeadCellMenu: "showHeadCellMenu" }, host: { properties: { "class.table-head": "this.tableHeadClass" } }, ngImport: i0, template: "@if (locked?.length) {\n <div\n class=\"table-head_locked\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\"\n >\n @if (selectType === selectTypeEnum.checkBox) {\n <teta-selection-head-cell style=\"width: 28px\"></teta-selection-head-cell>\n }\n @for (column of locked; track track($index, column)) {\n <teta-table-head-group\n class=\"table-head__group\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [column]=\"column\"\n ></teta-table-head-group>\n }\n </div>\n}\n@if (unlocked?.length) {\n @if (selectType === selectTypeEnum.checkBox && locked?.length < 1) {\n <teta-selection-head-cell style=\"width: 28px\"></teta-selection-head-cell>\n }\n @for (column of unlocked; track track($index, column)) {\n <teta-table-head-group\n class=\"table-head__group\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [column]=\"column\"\n ></teta-table-head-group>\n }\n}\n", styles: [""], dependencies: [{ kind: "component", type: SelectionHeadCellComponent, selector: "teta-selection-head-cell" }, { kind: "component", type: TableHeadGroupComponent, selector: "teta-table-head-group", inputs: ["showHeadCellMenu", "data", "column"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9743
9751
  }
9744
9752
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TableHeadComponent, decorators: [{
9745
9753
  type: Component,
9746
- args: [{ selector: 'teta-table-head', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [SelectionHeadCellComponent, TableHeadGroupComponent], template: "@if (locked?.length) {\n<div\n class=\"table-head_locked\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\"\n>\n @if (selectType === selectTypeEnum.checkBox) {\n <teta-selection-head-cell style=\"width: 28px\"></teta-selection-head-cell>\n } @for (column of locked; track track($index, column)) {\n <teta-table-head-group\n class=\"table-head__group\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [column]=\"column\"\n ></teta-table-head-group>\n }\n</div>\n} @if (unlocked?.length) { @if (selectType === selectTypeEnum.checkBox && locked?.length < 1) {\n<teta-selection-head-cell style=\"width: 28px\"></teta-selection-head-cell>\n} @for (column of unlocked; track track($index, column)) {\n<teta-table-head-group\n class=\"table-head__group\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [column]=\"column\"\n></teta-table-head-group>\n} }\n" }]
9754
+ args: [{ selector: 'teta-table-head', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [SelectionHeadCellComponent, TableHeadGroupComponent], template: "@if (locked?.length) {\n <div\n class=\"table-head_locked\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\"\n >\n @if (selectType === selectTypeEnum.checkBox) {\n <teta-selection-head-cell style=\"width: 28px\"></teta-selection-head-cell>\n }\n @for (column of locked; track track($index, column)) {\n <teta-table-head-group\n class=\"table-head__group\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [column]=\"column\"\n ></teta-table-head-group>\n }\n </div>\n}\n@if (unlocked?.length) {\n @if (selectType === selectTypeEnum.checkBox && locked?.length < 1) {\n <teta-selection-head-cell style=\"width: 28px\"></teta-selection-head-cell>\n }\n @for (column of unlocked; track track($index, column)) {\n <teta-table-head-group\n class=\"table-head__group\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [column]=\"column\"\n ></teta-table-head-group>\n }\n}\n" }]
9747
9755
  }], ctorParameters: () => [{ type: TableService }, { type: i0.ChangeDetectorRef }], propDecorators: { selectType: [{
9748
9756
  type: Input
9749
9757
  }], showHeadCellMenu: [{
@@ -10229,11 +10237,11 @@ class DateTimeCellComponent extends CellComponentBase {
10229
10237
  this.cdr.markForCheck();
10230
10238
  }
10231
10239
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DateTimeCellComponent, deps: [{ token: TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
10232
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DateTimeCellComponent, isStandalone: true, selector: "teta-date-time-cell", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span [style.display]=\"edit ? 'none' : 'block'\" class=\"cell-text\" [class.cell-text_disabled]=\"!editable\">\n {{ control?.value | date : 'dd.MM.yyyy HH:mm:ss' }}\n</span>\n@if (edit) {\n<teta-date-picker\n class=\"datepicker-table\"\n #input\n [appendToBody]=\"true\"\n [showTime]=\"true\"\n [formControl]=\"control\"\n></teta-date-picker>\n}\n", styles: [""], dependencies: [{ kind: "component", type: DatePickerComponent, selector: "teta-date-picker", inputs: ["date", "showTime", "minDate", "maxDate", "invalid", "disabled", "align", "verticalAlign", "viewType", "appendToBody", "backdrop", "allowNull", "firstDayOfWeek", "disabledDates", "disabledPeriods", "disabledDays", "minYearDate", "maxYearDate"], outputs: ["selectDate"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10240
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DateTimeCellComponent, isStandalone: true, selector: "teta-date-time-cell", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span [style.display]=\"edit ? 'none' : 'block'\" class=\"cell-text\" [class.cell-text_disabled]=\"!editable\">\n {{ control?.value | date: 'dd.MM.yyyy HH:mm:ss' }}\n</span>\n@if (edit) {\n <teta-date-picker\n class=\"datepicker-table\"\n #input\n [appendToBody]=\"true\"\n [showTime]=\"true\"\n [formControl]=\"control\"\n ></teta-date-picker>\n}\n", styles: [""], dependencies: [{ kind: "component", type: DatePickerComponent, selector: "teta-date-picker", inputs: ["date", "showTime", "minDate", "maxDate", "invalid", "disabled", "align", "verticalAlign", "viewType", "appendToBody", "backdrop", "allowNull", "firstDayOfWeek", "disabledDates", "disabledPeriods", "disabledDays", "minYearDate", "maxYearDate"], outputs: ["selectDate"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10233
10241
  }
10234
10242
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DateTimeCellComponent, decorators: [{
10235
10243
  type: Component,
10236
- args: [{ selector: 'teta-date-time-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [DatePickerComponent, FormsModule, ReactiveFormsModule, DatePipe], template: "<span [style.display]=\"edit ? 'none' : 'block'\" class=\"cell-text\" [class.cell-text_disabled]=\"!editable\">\n {{ control?.value | date : 'dd.MM.yyyy HH:mm:ss' }}\n</span>\n@if (edit) {\n<teta-date-picker\n class=\"datepicker-table\"\n #input\n [appendToBody]=\"true\"\n [showTime]=\"true\"\n [formControl]=\"control\"\n></teta-date-picker>\n}\n" }]
10244
+ args: [{ selector: 'teta-date-time-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [DatePickerComponent, FormsModule, ReactiveFormsModule, DatePipe], template: "<span [style.display]=\"edit ? 'none' : 'block'\" class=\"cell-text\" [class.cell-text_disabled]=\"!editable\">\n {{ control?.value | date: 'dd.MM.yyyy HH:mm:ss' }}\n</span>\n@if (edit) {\n <teta-date-picker\n class=\"datepicker-table\"\n #input\n [appendToBody]=\"true\"\n [showTime]=\"true\"\n [formControl]=\"control\"\n ></teta-date-picker>\n}\n" }]
10237
10245
  }], ctorParameters: () => [{ type: TableService }, { type: i0.ChangeDetectorRef }], propDecorators: { input: [{
10238
10246
  type: ViewChild,
10239
10247
  args: ['input', { static: false }]
@@ -10284,22 +10292,22 @@ class StepperComponent {
10284
10292
  this.currentIndex = computed(() => this.steps().findIndex((step) => step.id === this.currentStepId()) ?? 0);
10285
10293
  }
10286
10294
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: StepperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10287
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: StepperComponent, isStandalone: true, selector: "app-stepper", inputs: { steps: { classPropertyName: "steps", publicName: "steps", isSignal: true, isRequired: true, transformFunction: null }, currentStepId: { classPropertyName: "currentStepId", publicName: "currentStepId", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "@if (steps().length) {\n<ul\n class=\"stepper\"\n [style]=\"\n '--step-count: ' +\n (steps().length - 1) +\n '; --padding-left: ' +\n steps().at(0).name.length / 2 +\n 'ch; --padding-right: ' +\n steps().at(-1).name.length / 2 +\n 'ch;'\n \"\n>\n @for (step of steps(); track step.id; let index = $index) {\n <li class=\"font-title-3 stepperItem\" [class.stepperItemActive]=\"currentIndex() >= index\">\n <span class=\"point\">\n <span class=\"stepLabel\">{{ step.name }}</span>\n </span>\n </li>\n }\n</ul>\n} @else {\n<p class=\"font-title-1 text-align-center\">\u0428\u0430\u0433\u0438 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044E\u0442</p>\n}\n", styles: [":host{display:block;padding:18px 0 0}:host .stepper{--point-radius: 4px;margin:0;padding:0 var(--padding-right) 0 var(--padding-left);list-style:none;display:grid;grid-template-columns:calc(2 * var(--point-radius)) repeat(var(--step-count),1fr)}:host .stepperItem{position:relative;display:flex;justify-content:flex-end;cursor:default}:host .stepperItem:not(:first-child):before{content:\"\";position:absolute;top:calc(var(--point-radius) - .5px);right:calc(2 * var(--point-radius));width:calc(100% - 2 * var(--point-radius));height:1px;background-color:var(--color-text-20)}:host .stepperItem .point{position:relative;display:block;width:calc(2 * var(--point-radius));height:calc(2 * var(--point-radius));border-radius:50%;border:1px solid var(--color-text-20)}:host .stepperItem .stepLabel{position:absolute;bottom:calc(2px + 100%);left:50%;transform:translate(-50%);white-space:nowrap}:host .stepperItemActive:not(:first-child):before{background-color:var(--color-primary-50)}:host .stepperItemActive .point{border-color:var(--color-primary-50)}:host .stepperItemActive .stepLabel{color:var(--color-primary-50)}\n"] }); }
10295
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: StepperComponent, isStandalone: true, selector: "app-stepper", inputs: { steps: { classPropertyName: "steps", publicName: "steps", isSignal: true, isRequired: true, transformFunction: null }, currentStepId: { classPropertyName: "currentStepId", publicName: "currentStepId", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "@if (steps().length) {\n <ul\n class=\"stepper\"\n [style]=\"\n '--step-count: ' +\n (steps().length - 1) +\n '; --padding-left: ' +\n steps().at(0).name.length / 2 +\n 'ch; --padding-right: ' +\n steps().at(-1).name.length / 2 +\n 'ch;'\n \"\n >\n @for (step of steps(); track step.id; let index = $index) {\n <li class=\"font-title-3 stepperItem\" [class.stepperItemActive]=\"currentIndex() >= index\">\n <span class=\"point\">\n <span class=\"stepLabel\">{{ step.name }}</span>\n </span>\n </li>\n }\n </ul>\n} @else {\n <p class=\"font-title-1 text-align-center\">\u0428\u0430\u0433\u0438 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044E\u0442</p>\n}\n", styles: [":host{display:block;padding:18px 0 0}:host .stepper{--point-radius: 4px;margin:0;padding:0 var(--padding-right) 0 var(--padding-left);list-style:none;display:grid;grid-template-columns:calc(2 * var(--point-radius)) repeat(var(--step-count),1fr)}:host .stepperItem{position:relative;display:flex;justify-content:flex-end;cursor:default}:host .stepperItem:not(:first-child):before{content:\"\";position:absolute;top:calc(var(--point-radius) - .5px);right:calc(2 * var(--point-radius));width:calc(100% - 2 * var(--point-radius));height:1px;background-color:var(--color-text-20)}:host .stepperItem .point{position:relative;display:block;width:calc(2 * var(--point-radius));height:calc(2 * var(--point-radius));border-radius:50%;border:1px solid var(--color-text-20)}:host .stepperItem .stepLabel{position:absolute;bottom:calc(2px + 100%);left:50%;transform:translate(-50%);white-space:nowrap}:host .stepperItemActive:not(:first-child):before{background-color:var(--color-primary-50)}:host .stepperItemActive .point{border-color:var(--color-primary-50)}:host .stepperItemActive .stepLabel{color:var(--color-primary-50)}\n"] }); }
10288
10296
  }
10289
10297
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: StepperComponent, decorators: [{
10290
10298
  type: Component,
10291
- args: [{ selector: 'app-stepper', standalone: true, imports: [], template: "@if (steps().length) {\n<ul\n class=\"stepper\"\n [style]=\"\n '--step-count: ' +\n (steps().length - 1) +\n '; --padding-left: ' +\n steps().at(0).name.length / 2 +\n 'ch; --padding-right: ' +\n steps().at(-1).name.length / 2 +\n 'ch;'\n \"\n>\n @for (step of steps(); track step.id; let index = $index) {\n <li class=\"font-title-3 stepperItem\" [class.stepperItemActive]=\"currentIndex() >= index\">\n <span class=\"point\">\n <span class=\"stepLabel\">{{ step.name }}</span>\n </span>\n </li>\n }\n</ul>\n} @else {\n<p class=\"font-title-1 text-align-center\">\u0428\u0430\u0433\u0438 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044E\u0442</p>\n}\n", styles: [":host{display:block;padding:18px 0 0}:host .stepper{--point-radius: 4px;margin:0;padding:0 var(--padding-right) 0 var(--padding-left);list-style:none;display:grid;grid-template-columns:calc(2 * var(--point-radius)) repeat(var(--step-count),1fr)}:host .stepperItem{position:relative;display:flex;justify-content:flex-end;cursor:default}:host .stepperItem:not(:first-child):before{content:\"\";position:absolute;top:calc(var(--point-radius) - .5px);right:calc(2 * var(--point-radius));width:calc(100% - 2 * var(--point-radius));height:1px;background-color:var(--color-text-20)}:host .stepperItem .point{position:relative;display:block;width:calc(2 * var(--point-radius));height:calc(2 * var(--point-radius));border-radius:50%;border:1px solid var(--color-text-20)}:host .stepperItem .stepLabel{position:absolute;bottom:calc(2px + 100%);left:50%;transform:translate(-50%);white-space:nowrap}:host .stepperItemActive:not(:first-child):before{background-color:var(--color-primary-50)}:host .stepperItemActive .point{border-color:var(--color-primary-50)}:host .stepperItemActive .stepLabel{color:var(--color-primary-50)}\n"] }]
10299
+ args: [{ selector: 'app-stepper', standalone: true, imports: [], template: "@if (steps().length) {\n <ul\n class=\"stepper\"\n [style]=\"\n '--step-count: ' +\n (steps().length - 1) +\n '; --padding-left: ' +\n steps().at(0).name.length / 2 +\n 'ch; --padding-right: ' +\n steps().at(-1).name.length / 2 +\n 'ch;'\n \"\n >\n @for (step of steps(); track step.id; let index = $index) {\n <li class=\"font-title-3 stepperItem\" [class.stepperItemActive]=\"currentIndex() >= index\">\n <span class=\"point\">\n <span class=\"stepLabel\">{{ step.name }}</span>\n </span>\n </li>\n }\n </ul>\n} @else {\n <p class=\"font-title-1 text-align-center\">\u0428\u0430\u0433\u0438 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044E\u0442</p>\n}\n", styles: [":host{display:block;padding:18px 0 0}:host .stepper{--point-radius: 4px;margin:0;padding:0 var(--padding-right) 0 var(--padding-left);list-style:none;display:grid;grid-template-columns:calc(2 * var(--point-radius)) repeat(var(--step-count),1fr)}:host .stepperItem{position:relative;display:flex;justify-content:flex-end;cursor:default}:host .stepperItem:not(:first-child):before{content:\"\";position:absolute;top:calc(var(--point-radius) - .5px);right:calc(2 * var(--point-radius));width:calc(100% - 2 * var(--point-radius));height:1px;background-color:var(--color-text-20)}:host .stepperItem .point{position:relative;display:block;width:calc(2 * var(--point-radius));height:calc(2 * var(--point-radius));border-radius:50%;border:1px solid var(--color-text-20)}:host .stepperItem .stepLabel{position:absolute;bottom:calc(2px + 100%);left:50%;transform:translate(-50%);white-space:nowrap}:host .stepperItemActive:not(:first-child):before{background-color:var(--color-primary-50)}:host .stepperItemActive .point{border-color:var(--color-primary-50)}:host .stepperItemActive .stepLabel{color:var(--color-primary-50)}\n"] }]
10292
10300
  }] });
10293
10301
 
10294
10302
  class DividerComponent {
10295
10303
  constructor() { }
10296
10304
  ngOnInit() { }
10297
10305
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DividerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10298
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DividerComponent, isStandalone: true, selector: "teta-divider", inputs: { label: "label", template: "template" }, ngImport: i0, template: "<div class=\"divider\" style=\"width: 100%\">\n <div class=\"bg-text-20\" style=\"height: 1px\"></div>\n @if (!template) {\n <div class=\"divider-content padding-h-2\">{{ label }}</div>\n } @else {\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n }\n <div class=\"bg-text-20\" style=\"height: 1px\"></div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10306
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DividerComponent, isStandalone: true, selector: "teta-divider", inputs: { label: "label", template: "template" }, ngImport: i0, template: "<div class=\"divider\" style=\"width: 100%\">\n <div class=\"bg-text-20\" style=\"height: 1px\"></div>\n @if (!template) {\n <div class=\"divider-content padding-h-2\">{{ label }}</div>\n } @else {\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n }\n <div class=\"bg-text-20\" style=\"height: 1px\"></div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10299
10307
  }
10300
10308
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DividerComponent, decorators: [{
10301
10309
  type: Component,
10302
- args: [{ selector: 'teta-divider', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgTemplateOutlet], template: "<div class=\"divider\" style=\"width: 100%\">\n <div class=\"bg-text-20\" style=\"height: 1px\"></div>\n @if (!template) {\n <div class=\"divider-content padding-h-2\">{{ label }}</div>\n } @else {\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n }\n <div class=\"bg-text-20\" style=\"height: 1px\"></div>\n</div>\n" }]
10310
+ args: [{ selector: 'teta-divider', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgTemplateOutlet], template: "<div class=\"divider\" style=\"width: 100%\">\n <div class=\"bg-text-20\" style=\"height: 1px\"></div>\n @if (!template) {\n <div class=\"divider-content padding-h-2\">{{ label }}</div>\n } @else {\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n }\n <div class=\"bg-text-20\" style=\"height: 1px\"></div>\n</div>\n" }]
10303
10311
  }], ctorParameters: () => [], propDecorators: { label: [{
10304
10312
  type: Input
10305
10313
  }], template: [{