@taiga-ui/kit 5.10.0 → 5.11.0-canary.0f9eee3

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 (159) hide show
  1. package/components/input-color/input-color-content.component.d.ts +11 -0
  2. package/components/input-color/input-color.component.d.ts +4 -7
  3. package/components/input-date/index.d.ts +0 -1
  4. package/components/input-date-multi/input-date-multi.directive.d.ts +1 -1
  5. package/components/input-date-time/index.d.ts +0 -1
  6. package/components/input-month/index.d.ts +0 -1
  7. package/components/input-phone-international/input-phone-international-content.component.d.ts +21 -0
  8. package/components/input-phone-international/input-phone-international.component.d.ts +10 -20
  9. package/components/input-pin/index.d.ts +0 -1
  10. package/components/input-time/index.d.ts +0 -1
  11. package/components/multi-select/multi-select-group/multi-select-group.component.d.ts +1 -0
  12. package/components/segmented/segmented.directive.d.ts +2 -1
  13. package/components/toast/toast.component.d.ts +0 -1
  14. package/components/toast/toast.directive.d.ts +1 -0
  15. package/fesm2022/taiga-ui-kit-components-accordion.mjs +7 -7
  16. package/fesm2022/taiga-ui-kit-components-accordion.mjs.map +1 -1
  17. package/fesm2022/taiga-ui-kit-components-action-bar.mjs +3 -3
  18. package/fesm2022/taiga-ui-kit-components-avatar.mjs +23 -23
  19. package/fesm2022/taiga-ui-kit-components-avatar.mjs.map +1 -1
  20. package/fesm2022/taiga-ui-kit-components-badge-notification.mjs +4 -4
  21. package/fesm2022/taiga-ui-kit-components-badge-notification.mjs.map +1 -1
  22. package/fesm2022/taiga-ui-kit-components-badge.mjs +7 -7
  23. package/fesm2022/taiga-ui-kit-components-badge.mjs.map +1 -1
  24. package/fesm2022/taiga-ui-kit-components-badged-content.mjs +6 -6
  25. package/fesm2022/taiga-ui-kit-components-block.mjs +7 -7
  26. package/fesm2022/taiga-ui-kit-components-block.mjs.map +1 -1
  27. package/fesm2022/taiga-ui-kit-components-breadcrumbs.mjs +5 -5
  28. package/fesm2022/taiga-ui-kit-components-breadcrumbs.mjs.map +1 -1
  29. package/fesm2022/taiga-ui-kit-components-button-loading.mjs +3 -3
  30. package/fesm2022/taiga-ui-kit-components-calendar-month.mjs +3 -3
  31. package/fesm2022/taiga-ui-kit-components-calendar-range.mjs +3 -3
  32. package/fesm2022/taiga-ui-kit-components-chip.mjs +7 -7
  33. package/fesm2022/taiga-ui-kit-components-chip.mjs.map +1 -1
  34. package/fesm2022/taiga-ui-kit-components-combo-box.mjs +3 -3
  35. package/fesm2022/taiga-ui-kit-components-comment.mjs +7 -7
  36. package/fesm2022/taiga-ui-kit-components-comment.mjs.map +1 -1
  37. package/fesm2022/taiga-ui-kit-components-compass.mjs +4 -4
  38. package/fesm2022/taiga-ui-kit-components-compass.mjs.map +1 -1
  39. package/fesm2022/taiga-ui-kit-components-confirm.mjs +6 -6
  40. package/fesm2022/taiga-ui-kit-components-copy.mjs +11 -11
  41. package/fesm2022/taiga-ui-kit-components-copy.mjs.map +1 -1
  42. package/fesm2022/taiga-ui-kit-components-counter.mjs +3 -3
  43. package/fesm2022/taiga-ui-kit-components-data-list-wrapper.mjs +6 -6
  44. package/fesm2022/taiga-ui-kit-components-drawer.mjs +3 -3
  45. package/fesm2022/taiga-ui-kit-components-files.mjs +25 -25
  46. package/fesm2022/taiga-ui-kit-components-files.mjs.map +1 -1
  47. package/fesm2022/taiga-ui-kit-components-filter.mjs +3 -3
  48. package/fesm2022/taiga-ui-kit-components-fullscreen.mjs +3 -3
  49. package/fesm2022/taiga-ui-kit-components-input-chip.mjs +6 -6
  50. package/fesm2022/taiga-ui-kit-components-input-color.mjs +58 -30
  51. package/fesm2022/taiga-ui-kit-components-input-color.mjs.map +1 -1
  52. package/fesm2022/taiga-ui-kit-components-input-date-multi.mjs +6 -8
  53. package/fesm2022/taiga-ui-kit-components-input-date-multi.mjs.map +1 -1
  54. package/fesm2022/taiga-ui-kit-components-input-date-range.mjs +5 -5
  55. package/fesm2022/taiga-ui-kit-components-input-date-range.mjs.map +1 -1
  56. package/fesm2022/taiga-ui-kit-components-input-date-time.mjs +15 -15
  57. package/fesm2022/taiga-ui-kit-components-input-date-time.mjs.map +1 -1
  58. package/fesm2022/taiga-ui-kit-components-input-date.mjs +19 -19
  59. package/fesm2022/taiga-ui-kit-components-input-date.mjs.map +1 -1
  60. package/fesm2022/taiga-ui-kit-components-input-inline.mjs +4 -4
  61. package/fesm2022/taiga-ui-kit-components-input-inline.mjs.map +1 -1
  62. package/fesm2022/taiga-ui-kit-components-input-month-range.mjs +3 -3
  63. package/fesm2022/taiga-ui-kit-components-input-month.mjs +13 -13
  64. package/fesm2022/taiga-ui-kit-components-input-month.mjs.map +1 -1
  65. package/fesm2022/taiga-ui-kit-components-input-number.mjs +38 -38
  66. package/fesm2022/taiga-ui-kit-components-input-number.mjs.map +1 -1
  67. package/fesm2022/taiga-ui-kit-components-input-phone-international.mjs +98 -68
  68. package/fesm2022/taiga-ui-kit-components-input-phone-international.mjs.map +1 -1
  69. package/fesm2022/taiga-ui-kit-components-input-phone.mjs +3 -3
  70. package/fesm2022/taiga-ui-kit-components-input-pin.mjs +15 -11
  71. package/fesm2022/taiga-ui-kit-components-input-pin.mjs.map +1 -1
  72. package/fesm2022/taiga-ui-kit-components-input-range.mjs +3 -3
  73. package/fesm2022/taiga-ui-kit-components-input-slider.mjs +7 -7
  74. package/fesm2022/taiga-ui-kit-components-input-slider.mjs.map +1 -1
  75. package/fesm2022/taiga-ui-kit-components-input-time.mjs +18 -18
  76. package/fesm2022/taiga-ui-kit-components-input-time.mjs.map +1 -1
  77. package/fesm2022/taiga-ui-kit-components-input-year.mjs +5 -5
  78. package/fesm2022/taiga-ui-kit-components-input-year.mjs.map +1 -1
  79. package/fesm2022/taiga-ui-kit-components-items-with-more.mjs +12 -12
  80. package/fesm2022/taiga-ui-kit-components-like.mjs +5 -5
  81. package/fesm2022/taiga-ui-kit-components-like.mjs.map +1 -1
  82. package/fesm2022/taiga-ui-kit-components-line-clamp.mjs +9 -9
  83. package/fesm2022/taiga-ui-kit-components-message.mjs +7 -7
  84. package/fesm2022/taiga-ui-kit-components-message.mjs.map +1 -1
  85. package/fesm2022/taiga-ui-kit-components-multi-select.mjs +22 -15
  86. package/fesm2022/taiga-ui-kit-components-multi-select.mjs.map +1 -1
  87. package/fesm2022/taiga-ui-kit-components-notification-middle.mjs +9 -9
  88. package/fesm2022/taiga-ui-kit-components-pager.mjs +3 -3
  89. package/fesm2022/taiga-ui-kit-components-pagination.mjs +3 -3
  90. package/fesm2022/taiga-ui-kit-components-pin.mjs +7 -7
  91. package/fesm2022/taiga-ui-kit-components-pin.mjs.map +1 -1
  92. package/fesm2022/taiga-ui-kit-components-pincode.mjs +13 -7
  93. package/fesm2022/taiga-ui-kit-components-pincode.mjs.map +1 -1
  94. package/fesm2022/taiga-ui-kit-components-preview.mjs +26 -26
  95. package/fesm2022/taiga-ui-kit-components-preview.mjs.map +1 -1
  96. package/fesm2022/taiga-ui-kit-components-progress.mjs +27 -27
  97. package/fesm2022/taiga-ui-kit-components-progress.mjs.map +1 -1
  98. package/fesm2022/taiga-ui-kit-components-pulse.mjs +3 -3
  99. package/fesm2022/taiga-ui-kit-components-push.mjs +12 -12
  100. package/fesm2022/taiga-ui-kit-components-radio-list.mjs +4 -4
  101. package/fesm2022/taiga-ui-kit-components-radio-list.mjs.map +1 -1
  102. package/fesm2022/taiga-ui-kit-components-range.mjs +6 -6
  103. package/fesm2022/taiga-ui-kit-components-rating.mjs +3 -3
  104. package/fesm2022/taiga-ui-kit-components-routable-dialog.mjs +3 -3
  105. package/fesm2022/taiga-ui-kit-components-segmented.mjs +13 -14
  106. package/fesm2022/taiga-ui-kit-components-segmented.mjs.map +1 -1
  107. package/fesm2022/taiga-ui-kit-components-select.mjs +9 -9
  108. package/fesm2022/taiga-ui-kit-components-shrink-wrap.mjs +7 -7
  109. package/fesm2022/taiga-ui-kit-components-shrink-wrap.mjs.map +1 -1
  110. package/fesm2022/taiga-ui-kit-components-status.mjs +7 -7
  111. package/fesm2022/taiga-ui-kit-components-status.mjs.map +1 -1
  112. package/fesm2022/taiga-ui-kit-components-stepper.mjs +6 -6
  113. package/fesm2022/taiga-ui-kit-components-switch.mjs +4 -4
  114. package/fesm2022/taiga-ui-kit-components-switch.mjs.map +1 -1
  115. package/fesm2022/taiga-ui-kit-components-tabs.mjs +19 -19
  116. package/fesm2022/taiga-ui-kit-components-tabs.mjs.map +1 -1
  117. package/fesm2022/taiga-ui-kit-components-textarea.mjs +12 -12
  118. package/fesm2022/taiga-ui-kit-components-tiles.mjs +14 -14
  119. package/fesm2022/taiga-ui-kit-components-tiles.mjs.map +1 -1
  120. package/fesm2022/taiga-ui-kit-components-timeline.mjs +6 -6
  121. package/fesm2022/taiga-ui-kit-components-toast.mjs +24 -19
  122. package/fesm2022/taiga-ui-kit-components-toast.mjs.map +1 -1
  123. package/fesm2022/taiga-ui-kit-components-tree.mjs +24 -24
  124. package/fesm2022/taiga-ui-kit-directives-appearance-proxy.mjs +3 -3
  125. package/fesm2022/taiga-ui-kit-directives-button-group.mjs +7 -7
  126. package/fesm2022/taiga-ui-kit-directives-button-group.mjs.map +1 -1
  127. package/fesm2022/taiga-ui-kit-directives-button-select.mjs +3 -3
  128. package/fesm2022/taiga-ui-kit-directives-chevron.mjs +7 -7
  129. package/fesm2022/taiga-ui-kit-directives-chevron.mjs.map +1 -1
  130. package/fesm2022/taiga-ui-kit-directives-connected.mjs +7 -7
  131. package/fesm2022/taiga-ui-kit-directives-connected.mjs.map +1 -1
  132. package/fesm2022/taiga-ui-kit-directives-data-list-dropdown-manager.mjs +3 -3
  133. package/fesm2022/taiga-ui-kit-directives-fade.mjs +7 -7
  134. package/fesm2022/taiga-ui-kit-directives-fade.mjs.map +1 -1
  135. package/fesm2022/taiga-ui-kit-directives-fluid-typography.mjs +3 -3
  136. package/fesm2022/taiga-ui-kit-directives-highlight.mjs +3 -3
  137. package/fesm2022/taiga-ui-kit-directives-password.mjs +3 -3
  138. package/fesm2022/taiga-ui-kit-directives-present.mjs +3 -3
  139. package/fesm2022/taiga-ui-kit-directives-sensitive.mjs +7 -7
  140. package/fesm2022/taiga-ui-kit-directives-sensitive.mjs.map +1 -1
  141. package/fesm2022/taiga-ui-kit-directives-shimmer.mjs +7 -7
  142. package/fesm2022/taiga-ui-kit-directives-shimmer.mjs.map +1 -1
  143. package/fesm2022/taiga-ui-kit-directives-skeleton.mjs +7 -7
  144. package/fesm2022/taiga-ui-kit-directives-skeleton.mjs.map +1 -1
  145. package/fesm2022/taiga-ui-kit-directives-tooltip.mjs +7 -7
  146. package/fesm2022/taiga-ui-kit-directives-tooltip.mjs.map +1 -1
  147. package/fesm2022/taiga-ui-kit-directives-unfinished-validator.mjs +3 -3
  148. package/fesm2022/taiga-ui-kit-directives-unmask-handler.mjs +3 -3
  149. package/fesm2022/taiga-ui-kit-pipes-auto-color.mjs +3 -3
  150. package/fesm2022/taiga-ui-kit-pipes-emails.mjs +3 -3
  151. package/fesm2022/taiga-ui-kit-pipes-flag.mjs +3 -3
  152. package/fesm2022/taiga-ui-kit-pipes-hide-selected.mjs +3 -3
  153. package/fesm2022/taiga-ui-kit-pipes-initials.mjs +3 -3
  154. package/fesm2022/taiga-ui-kit-pipes-sort-countries.mjs +3 -3
  155. package/fesm2022/taiga-ui-kit-pipes-stringify-content.mjs +3 -3
  156. package/fesm2022/taiga-ui-kit-pipes-stringify.mjs +3 -3
  157. package/fesm2022/taiga-ui-kit-utils.mjs +10 -4
  158. package/fesm2022/taiga-ui-kit-utils.mjs.map +1 -1
  159. package/package.json +29 -29
@@ -32,10 +32,10 @@ class TuiFilter extends TuiControl {
32
32
  isCheckboxEnabled(item) {
33
33
  return this.value().some((arrItem) => this.handlers.identityMatcher()(arrItem, item));
34
34
  }
35
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TuiFilter, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
36
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: TuiFilter, isStandalone: true, selector: "tui-filter", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, badgeHandler: { classPropertyName: "badgeHandler", publicName: "badgeHandler", isSignal: true, isRequired: false, transformFunction: null }, content: { classPropertyName: "content", publicName: "content", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { toggledItem: "toggledItem" }, host: { properties: { "attr.data-size": "size()" } }, providers: [tuiFallbackValueProvider([])], usesInheritance: true, hostDirectives: [{ directive: i1.TuiWithItemsHandlers }], ngImport: i0, template: "@for (item of items(); track $index) {\n <label\n appearance=\"\"\n class=\"t-item\"\n [tuiBlock]=\"size()\"\n >\n <span\n *polymorpheusOutlet=\"content() as text; context: {$implicit: item}\"\n tuiHintOverflow\n class=\"t-text\"\n >\n {{ text }}\n </span>\n @if (badgeHandler()(item); as badgeValue) {\n <div\n appearance=\"neutral\"\n tuiBadge\n [size]=\"size()\"\n >\n {{ badgeValue }}\n </div>\n }\n <input\n tuiBlock\n type=\"checkbox\"\n [disabled]=\"handlers.disabledItemHandler()(item)\"\n [ngModel]=\"isCheckboxEnabled(item)\"\n [ngModelOptions]=\"{standalone: true}\"\n (ngModelChange)=\"onCheckbox($event, item)\"\n />\n </label>\n}\n", styles: [":host{display:block;margin-block-end:calc(-1 * var(--t-gap));--t-gap: .25rem}:host[data-size=l]{--t-gap: .5rem}.t-item{max-inline-size:11rem;margin:0 var(--t-gap) var(--t-gap) 0}.t-item:last-child{margin-inline-end:0}.t-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { 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: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: TuiBadge, selector: "[tuiBadge],tui-icon[tuiBadge]", inputs: ["size"] }, { kind: "directive", type: TuiBlock, selector: "label[tuiBlock],input[tuiBlock]", inputs: ["tuiBlock"] }, { kind: "directive", type: TuiHintOverflow, selector: "[tuiHintOverflow]", inputs: ["tuiHintOverflow"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
35
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.24", ngImport: i0, type: TuiFilter, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
36
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.24", type: TuiFilter, isStandalone: true, selector: "tui-filter", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, badgeHandler: { classPropertyName: "badgeHandler", publicName: "badgeHandler", isSignal: true, isRequired: false, transformFunction: null }, content: { classPropertyName: "content", publicName: "content", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { toggledItem: "toggledItem" }, host: { properties: { "attr.data-size": "size()" } }, providers: [tuiFallbackValueProvider([])], usesInheritance: true, hostDirectives: [{ directive: i1.TuiWithItemsHandlers }], ngImport: i0, template: "@for (item of items(); track $index) {\n <label\n appearance=\"\"\n class=\"t-item\"\n [tuiBlock]=\"size()\"\n >\n <span\n *polymorpheusOutlet=\"content() as text; context: {$implicit: item}\"\n tuiHintOverflow\n class=\"t-text\"\n >\n {{ text }}\n </span>\n @if (badgeHandler()(item); as badgeValue) {\n <div\n appearance=\"neutral\"\n tuiBadge\n [size]=\"size()\"\n >\n {{ badgeValue }}\n </div>\n }\n <input\n tuiBlock\n type=\"checkbox\"\n [disabled]=\"handlers.disabledItemHandler()(item)\"\n [ngModel]=\"isCheckboxEnabled(item)\"\n [ngModelOptions]=\"{standalone: true}\"\n (ngModelChange)=\"onCheckbox($event, item)\"\n />\n </label>\n}\n", styles: [":host{display:block;margin-block-end:calc(-1 * var(--t-gap));--t-gap: .25rem}:host[data-size=l]{--t-gap: .5rem}.t-item{max-inline-size:11rem;margin:0 var(--t-gap) var(--t-gap) 0}.t-item:last-child{margin-inline-end:0}.t-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { 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: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: TuiBadge, selector: "[tuiBadge],tui-icon[tuiBadge]", inputs: ["size"] }, { kind: "directive", type: TuiBlock, selector: "label[tuiBlock],input[tuiBlock]", inputs: ["tuiBlock"] }, { kind: "directive", type: TuiHintOverflow, selector: "[tuiHintOverflow]", inputs: ["tuiHintOverflow"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
37
37
  }
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TuiFilter, decorators: [{
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.24", ngImport: i0, type: TuiFilter, decorators: [{
39
39
  type: Component,
40
40
  args: [{ selector: 'tui-filter', imports: [FormsModule, PolymorpheusOutlet, TuiBadge, TuiBlock, TuiHintOverflow], changeDetection: ChangeDetectionStrategy.OnPush, providers: [tuiFallbackValueProvider([])], hostDirectives: [TuiWithItemsHandlers], host: { '[attr.data-size]': 'size()' }, template: "@for (item of items(); track $index) {\n <label\n appearance=\"\"\n class=\"t-item\"\n [tuiBlock]=\"size()\"\n >\n <span\n *polymorpheusOutlet=\"content() as text; context: {$implicit: item}\"\n tuiHintOverflow\n class=\"t-text\"\n >\n {{ text }}\n </span>\n @if (badgeHandler()(item); as badgeValue) {\n <div\n appearance=\"neutral\"\n tuiBadge\n [size]=\"size()\"\n >\n {{ badgeValue }}\n </div>\n }\n <input\n tuiBlock\n type=\"checkbox\"\n [disabled]=\"handlers.disabledItemHandler()(item)\"\n [ngModel]=\"isCheckboxEnabled(item)\"\n [ngModelOptions]=\"{standalone: true}\"\n (ngModelChange)=\"onCheckbox($event, item)\"\n />\n </label>\n}\n", styles: [":host{display:block;margin-block-end:calc(-1 * var(--t-gap));--t-gap: .25rem}:host[data-size=l]{--t-gap: .5rem}.t-item{max-inline-size:11rem;margin:0 var(--t-gap) var(--t-gap) 0}.t-item:last-child{margin-inline-end:0}.t-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"] }]
41
41
  }] });
@@ -28,10 +28,10 @@ class TuiFullscreen {
28
28
  this.tuiFullscreen.set(false);
29
29
  }
30
30
  }
31
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TuiFullscreen, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
32
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.21", type: TuiFullscreen, isStandalone: true, selector: "[tuiFullscreen]", inputs: { tuiFullscreen: { classPropertyName: "tuiFullscreen", publicName: "tuiFullscreen", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "tuiFullscreenOptions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { tuiFullscreen: "tuiFullscreenChange" }, host: { listeners: { "document:fullscreenchange": "closedByEscape($event)" } }, viewQueries: [{ propertyName: "root", first: true, predicate: TuiRoot, descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: '<tui-root><ng-content /></tui-root>', isInline: true, styles: ["tui-root{scrollbar-width:none;-ms-overflow-style:none;overflow:auto}tui-root::-webkit-scrollbar,tui-root::-webkit-scrollbar-thumb{display:none}tui-root:fullscreen{padding:env(safe-area-inset-top) env(safe-area-inset-left) env(safe-area-inset-bottom) env(safe-area-inset-right)}\n"], dependencies: [{ kind: "component", type: TuiRoot, selector: "tui-root" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
31
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.24", ngImport: i0, type: TuiFullscreen, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
32
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.24", type: TuiFullscreen, isStandalone: true, selector: "[tuiFullscreen]", inputs: { tuiFullscreen: { classPropertyName: "tuiFullscreen", publicName: "tuiFullscreen", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "tuiFullscreenOptions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { tuiFullscreen: "tuiFullscreenChange" }, host: { listeners: { "document:fullscreenchange": "closedByEscape($event)" } }, viewQueries: [{ propertyName: "root", first: true, predicate: TuiRoot, descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: '<tui-root><ng-content /></tui-root>', isInline: true, styles: ["tui-root{scrollbar-width:none;-ms-overflow-style:none;overflow:auto}tui-root::-webkit-scrollbar,tui-root::-webkit-scrollbar-thumb{display:none}tui-root:fullscreen{padding:env(safe-area-inset-top) env(safe-area-inset-left) env(safe-area-inset-bottom) env(safe-area-inset-right)}\n"], dependencies: [{ kind: "component", type: TuiRoot, selector: "tui-root" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
33
33
  }
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TuiFullscreen, decorators: [{
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.24", ngImport: i0, type: TuiFullscreen, decorators: [{
35
35
  type: Component,
36
36
  args: [{ selector: '[tuiFullscreen]', imports: [TuiRoot], template: '<tui-root><ng-content /></tui-root>', changeDetection: ChangeDetectionStrategy.OnPush, host: { '(document:fullscreenchange)': 'closedByEscape($event)' }, styles: ["tui-root{scrollbar-width:none;-ms-overflow-style:none;overflow:auto}tui-root::-webkit-scrollbar,tui-root::-webkit-scrollbar-thumb{display:none}tui-root:fullscreen{padding:env(safe-area-inset-top) env(safe-area-inset-left) env(safe-area-inset-bottom) env(safe-area-inset-right)}\n"] }]
37
37
  }] });
@@ -89,10 +89,10 @@ class TuiInputChipComponent {
89
89
  this.editing.set(true);
90
90
  setTimeout(() => this.input()?.nativeElement.focus());
91
91
  }
92
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TuiInputChipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
93
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: TuiInputChipComponent, isStandalone: true, selector: "tui-input-chip", inputs: { editable: { classPropertyName: "editable", publicName: "editable", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "tuiChip": "" }, listeners: { "click": "editing() && $event.stopPropagation()", "dblclick": "edit()", "keydown.backspace.prevent": "delete()", "keydown.enter.prevent": "edit()" }, properties: { "attr.tabIndex": "disabled() ? null : -1", "class._edit": "editing()" }, classAttribute: "tui-interactive" }, viewQueries: [{ propertyName: "input", first: true, predicate: TuiChip, descendants: true, read: ElementRef, isSignal: true }], hostDirectives: [{ directive: i1.TuiChip }], ngImport: i0, template: "<input\n appearance=\"\"\n enterkeyhint=\"enter\"\n tuiChip\n class=\"t-input\"\n [disabled]=\"!editing()\"\n [ngModel]=\"internal()\"\n [ngModelOptions]=\"{standalone: true}\"\n (blur)=\"cancel()\"\n (keydown.enter)=\"save()\"\n (keydown.esc)=\"cancel()\"\n (keydown.stop)=\"(0)\"\n (ngModelChange)=\"internal.set($event)\"\n/>\n<div\n tuiFade\n tuiFadeOffset=\"0.5rem\"\n class=\"t-text\"\n [tuiHintOverflow]=\"hint?.content() ? null : handlers.stringify()(internal())\"\n (mousedown.prevent.zoneless)=\"(0)\"\n>\n {{ handlers.stringify()(internal()) }}\n</div>\n@if (textfield.cva()?.interactive() && !editing() && !disabled()) {\n <button\n tabIndex=\"-1\"\n tuiIconButton\n type=\"button\"\n [iconStart]=\"icons.close\"\n (click.stop)=\"delete()\"\n (pointerdown.prevent.stop.zoneless)=\"(0)\"\n >\n {{ texts().remove }}\n </button>\n}\n", styles: [":host{cursor:pointer;margin:.125rem 0;margin-inline-end:.25rem;pointer-events:auto}:host[tuiChip][tuiChip][data-state=disabled],:host-context(tui-textfield[data-state=\"disabled\"]) :host[tuiChip][tuiChip]{cursor:default}:host .t-input{padding:0;text-indent:.375rem;transition:none;color:var(--tui-text-primary);cursor:text;outline:none}:host .t-input:disabled{visibility:hidden}:host._edit{background:transparent}:host._edit .t-text{pointer-events:none;visibility:hidden}:host._edit:before{color:transparent;transition:none}:host-context(tui-textfield[data-size=\"s\"]){inset-inline-start:calc(var(--t-start) / 4 - .375rem);margin:.0625rem 0;margin-inline-end:.125rem}:host-context(tui-textfield[data-size=\"m\"]){inset-inline-start:-.125rem}:host-context(tui-textfield[data-size=\"l\"]){inset-inline-start:-.25rem}:host-context(tui-textfield[data-size=\"l\"]) .t-input{text-indent:.625rem}\n"], 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: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "directive", type: TuiChip, selector: "[tuiChip]", inputs: ["size"] }, { kind: "directive", type: TuiFade, selector: "[tuiFade]", inputs: ["tuiFadeHeight", "tuiFadeSize", "tuiFadeOffset", "tuiFade"] }, { kind: "directive", type: TuiHintOverflow, selector: "[tuiHintOverflow]", inputs: ["tuiHintOverflow"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
92
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.24", ngImport: i0, type: TuiInputChipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
93
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.24", type: TuiInputChipComponent, isStandalone: true, selector: "tui-input-chip", inputs: { editable: { classPropertyName: "editable", publicName: "editable", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "tuiChip": "" }, listeners: { "click": "editing() && $event.stopPropagation()", "dblclick": "edit()", "keydown.backspace.prevent": "delete()", "keydown.enter.prevent": "edit()" }, properties: { "attr.tabIndex": "disabled() ? null : -1", "class._edit": "editing()" }, classAttribute: "tui-interactive" }, viewQueries: [{ propertyName: "input", first: true, predicate: TuiChip, descendants: true, read: ElementRef, isSignal: true }], hostDirectives: [{ directive: i1.TuiChip }], ngImport: i0, template: "<input\n appearance=\"\"\n enterkeyhint=\"enter\"\n tuiChip\n class=\"t-input\"\n [disabled]=\"!editing()\"\n [ngModel]=\"internal()\"\n [ngModelOptions]=\"{standalone: true}\"\n (blur)=\"cancel()\"\n (keydown.enter)=\"save()\"\n (keydown.esc)=\"cancel()\"\n (keydown.stop)=\"(0)\"\n (ngModelChange)=\"internal.set($event)\"\n/>\n<div\n tuiFade\n tuiFadeOffset=\"0.5rem\"\n class=\"t-text\"\n [tuiHintOverflow]=\"hint?.content() ? null : handlers.stringify()(internal())\"\n (mousedown.prevent.zoneless)=\"(0)\"\n>\n {{ handlers.stringify()(internal()) }}\n</div>\n@if (textfield.cva()?.interactive() && !editing() && !disabled()) {\n <button\n tabIndex=\"-1\"\n tuiIconButton\n type=\"button\"\n [iconStart]=\"icons.close\"\n (click.stop)=\"delete()\"\n (pointerdown.prevent.stop.zoneless)=\"(0)\"\n >\n {{ texts().remove }}\n </button>\n}\n", styles: [":host{cursor:pointer;margin:.125rem 0;margin-inline-end:.25rem;pointer-events:auto}:host[tuiChip][tuiChip][data-state=disabled],:host-context(tui-textfield[data-state=\"disabled\"]) :host[tuiChip][tuiChip]{cursor:default}:host .t-input{padding:0;text-indent:.375rem;transition:none;color:var(--tui-text-primary);cursor:text;outline:none}:host .t-input:disabled{visibility:hidden}:host._edit{background:transparent}:host._edit .t-text{pointer-events:none;visibility:hidden}:host._edit:before{color:transparent;transition:none}:host-context(tui-textfield[data-size=\"s\"]){inset-inline-start:calc(var(--t-start) / 4 - .375rem);margin:.0625rem 0;margin-inline-end:.125rem}:host-context(tui-textfield[data-size=\"m\"]){inset-inline-start:-.125rem}:host-context(tui-textfield[data-size=\"l\"]){inset-inline-start:-.25rem}:host-context(tui-textfield[data-size=\"l\"]) .t-input{text-indent:.625rem}\n"], 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: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "directive", type: TuiChip, selector: "[tuiChip]", inputs: ["size"] }, { kind: "directive", type: TuiFade, selector: "[tuiFade]", inputs: ["tuiFadeHeight", "tuiFadeSize", "tuiFadeOffset", "tuiFade"] }, { kind: "directive", type: TuiHintOverflow, selector: "[tuiHintOverflow]", inputs: ["tuiHintOverflow"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
94
94
  }
95
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TuiInputChipComponent, decorators: [{
95
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.24", ngImport: i0, type: TuiInputChipComponent, decorators: [{
96
96
  type: Component,
97
97
  args: [{ selector: 'tui-input-chip', imports: [
98
98
  FormsModule,
@@ -201,14 +201,14 @@ class TuiInputChipDirective extends TuiControl {
201
201
  });
202
202
  }, 100);
203
203
  }
204
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TuiInputChipDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
205
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.21", type: TuiInputChipDirective, isStandalone: true, selector: "input[tuiInputChip]", inputs: { separator: { classPropertyName: "separator", publicName: "separator", isSignal: true, isRequired: false, transformFunction: null }, unique: { classPropertyName: "unique", publicName: "unique", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "enterkeyhint": "enter" }, listeners: { "drop.prevent": "onPaste($event)", "focus": "scrollTo()", "input": "onInput()", "keydown.enter.prevent": "onEnter()", "keydown.zoneless": "onBackspace($event.key)", "paste.prevent": "onPaste($event)" }, properties: { "disabled": "disabled()" } }, providers: [
204
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.24", ngImport: i0, type: TuiInputChipDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
205
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.24", type: TuiInputChipDirective, isStandalone: true, selector: "input[tuiInputChip]", inputs: { separator: { classPropertyName: "separator", publicName: "separator", isSignal: true, isRequired: false, transformFunction: null }, unique: { classPropertyName: "unique", publicName: "unique", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "enterkeyhint": "enter" }, listeners: { "drop.prevent": "onPaste($event)", "focus": "scrollTo()", "input": "onInput()", "keydown.enter.prevent": "onEnter()", "keydown.zoneless": "onBackspace($event.key)", "paste.prevent": "onPaste($event)" }, properties: { "disabled": "disabled()" } }, providers: [
206
206
  tuiAsControl(TuiInputChipDirective),
207
207
  tuiFallbackValueProvider([]),
208
208
  tuiAsTextfieldAccessor(TuiInputChipDirective),
209
209
  ], usesInheritance: true, hostDirectives: [{ directive: i1$1.TuiWithInput }], ngImport: i0 }); }
210
210
  }
211
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TuiInputChipDirective, decorators: [{
211
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.24", ngImport: i0, type: TuiInputChipDirective, decorators: [{
212
212
  type: Directive,
213
213
  args: [{
214
214
  selector: 'input[tuiInputChip]',
@@ -1,32 +1,62 @@
1
1
  import { TuiLabel } from '@taiga-ui/core/components/label';
2
- import { TuiTextfieldContent, TuiTextfieldComponent, TuiTextfieldOptionsDirective } from '@taiga-ui/core/components/textfield';
2
+ import * as i3 from '@taiga-ui/core/components/textfield';
3
+ import { tuiAsTextfieldContent, TuiTextfieldContent, TuiTextfieldComponent, TuiTextfieldOptionsDirective } from '@taiga-ui/core/components/textfield';
3
4
  import { TuiDropdownContent } from '@taiga-ui/core/portals/dropdown';
4
5
  import * as i0 from '@angular/core';
5
- import { inject, HostAttributeToken, computed, input, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
6
- import * as i3 from '@angular/forms';
7
- import { FormsModule } from '@angular/forms';
8
- import * as i1 from '@maskito/angular';
6
+ import { inject, computed, ChangeDetectionStrategy, ViewEncapsulation, Component, HostAttributeToken, input, Directive } from '@angular/core';
7
+ import * as i1$1 from '@maskito/angular';
9
8
  import { MaskitoDirective } from '@maskito/angular';
10
9
  import { maskitoAddOnFocusPlugin, maskitoRemoveOnBlurPlugin, maskitoPrefixPostprocessorGenerator } from '@maskito/kit';
11
10
  import { TuiControl, tuiAsControl } from '@taiga-ui/cdk/classes';
12
- import '@taiga-ui/cdk/constants';
13
11
  import { tuiFallbackValueProvider } from '@taiga-ui/cdk/tokens';
14
12
  import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
15
- import * as i2 from '@taiga-ui/core/components/input';
13
+ import * as i2$1 from '@taiga-ui/core/components/input';
16
14
  import { TuiWithInput } from '@taiga-ui/core/components/input';
17
- import * as i4 from '@taiga-ui/core/components/slider';
18
- import { TuiSlider } from '@taiga-ui/core/components/slider';
19
15
  import { TuiIcons, tuiIconStart } from '@taiga-ui/core/directives/icons';
20
16
  import { tuiMaskito } from '@taiga-ui/kit/utils';
21
17
  import { tuiCreateOptions } from '@taiga-ui/cdk/utils/di';
18
+ import * as i1 from '@angular/forms';
19
+ import { FormsModule } from '@angular/forms';
20
+ import { TUI_VERSION } from '@taiga-ui/cdk/constants';
21
+ import * as i2 from '@taiga-ui/core/components/slider';
22
+ import { TuiSlider } from '@taiga-ui/core/components/slider';
22
23
 
23
24
  const [TUI_INPUT_COLOR_OPTIONS, tuiInputColorOptionsProvider] = tuiCreateOptions({
24
25
  format: 'hex',
25
26
  align: 'start',
26
27
  });
27
28
 
29
+ class TuiInputColorContent {
30
+ constructor() {
31
+ this.host = inject(TuiInputColorComponent);
32
+ this.filled = computed(() => this.host.format() === 'hex'
33
+ ? this.host.value().length === 7
34
+ : this.host.value().length === 9);
35
+ this.opacity = computed(() => this.filled() && this.host.format() === 'hexa'
36
+ ? Number.parseInt(this.host.value().slice(-2), 16)
37
+ : 255);
38
+ }
39
+ onInput(value) {
40
+ this.host.onChange(this.host.format() === 'hex' ? value : `${value}${toHex(this.opacity())}`);
41
+ }
42
+ onOpacity(opacity) {
43
+ const value = this.filled() ? this.host.value().slice(0, 7) : '#000000';
44
+ this.host.onChange(`${value}${toHex(opacity)}`);
45
+ }
46
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.24", ngImport: i0, type: TuiInputColorContent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
47
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.24", type: TuiInputColorContent, isStandalone: true, selector: "tui-input-color-content", host: { attributes: { "data-tui-version": "5.11.0-canary.0f9eee3" } }, ngImport: i0, template: "<input\n #colorPicker\n tabindex=\"-1\"\n type=\"color\"\n class=\"tui-input-color_picker\"\n [attr.list]=\"host.list\"\n [class.tui-input-color_start]=\"host.align() === 'start'\"\n [disabled]=\"!host.interactive()\"\n [style.--t-opacity]=\"filled() ? opacity() / 255 : 0\"\n [value]=\"host.value().length > 6 ? host.value().slice(0, 7) : ''\"\n (input)=\"onInput(colorPicker.value)\"\n/>\n@if (host.format() === 'hexa' && host.interactive()) {\n <input\n max=\"255\"\n tuiSlider\n type=\"range\"\n [ngModel]=\"opacity()\"\n [ngModelOptions]=\"{standalone: true}\"\n (ngModelChange)=\"onOpacity($event)\"\n (pointerdown.stop)=\"host.el.focus()\"\n />\n}\n", styles: ["tui-input-color-content:where(*[data-tui-version=\"5.11.0-canary.0f9eee3\"]){display:contents}tui-textfield:where(*[data-tui-version=\"5.11.0-canary.0f9eee3\"]) .tui-input-color_picker.tui-input-color_picker{position:relative;font-size:1rem;inline-size:calc(var(--t-height) / 2);block-size:calc(var(--t-height) / 2);border:none;border-radius:100%;padding:0!important;overflow:hidden;cursor:pointer;pointer-events:auto;order:100;background:repeating-conic-gradient(var(--tui-border-normal) 0% 25%,transparent 0% 50%);box-shadow:0 0 0 1px var(--tui-border-normal)}tui-textfield:where(*[data-tui-version=\"5.11.0-canary.0f9eee3\"]) .tui-input-color_picker.tui-input-color_picker:disabled{cursor:default}tui-textfield:where(*[data-tui-version=\"5.11.0-canary.0f9eee3\"]) .tui-input-color_picker.tui-input-color_start{position:absolute;inset-block-start:50%;inset-inline-start:calc(var(--t-height) / 4);transform:translateY(-50%)}tui-textfield:where(*[data-tui-version=\"5.11.0-canary.0f9eee3\"]) .tui-input-color_picker::-webkit-color-swatch-wrapper{padding:0}tui-textfield:where(*[data-tui-version=\"5.11.0-canary.0f9eee3\"]) .tui-input-color_picker::-webkit-color-swatch{border:none;opacity:var(--t-opacity)}tui-textfield:where(*[data-tui-version=\"5.11.0-canary.0f9eee3\"]) .tui-input-color_picker::-moz-color-swatch{border:none;opacity:var(--t-opacity)}tui-textfield:where(*[data-tui-version=\"5.11.0-canary.0f9eee3\"])[data-size=s] .tui-input-color_picker{margin-inline-end:.25rem}tui-textfield:where(*[data-tui-version=\"5.11.0-canary.0f9eee3\"])[data-size=l] .tui-input-color_picker{margin-inline-end:-.25rem}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.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: i1.RangeValueAccessor, selector: "input[type=range][formControlName],input[type=range][formControl],input[type=range][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.TuiSliderComponent, selector: "input[type=range][tuiSlider]", inputs: ["segments"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
48
+ }
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.24", ngImport: i0, type: TuiInputColorContent, decorators: [{
50
+ type: Component,
51
+ args: [{ selector: 'tui-input-color-content', imports: [FormsModule, TuiSlider], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: { 'data-tui-version': TUI_VERSION }, template: "<input\n #colorPicker\n tabindex=\"-1\"\n type=\"color\"\n class=\"tui-input-color_picker\"\n [attr.list]=\"host.list\"\n [class.tui-input-color_start]=\"host.align() === 'start'\"\n [disabled]=\"!host.interactive()\"\n [style.--t-opacity]=\"filled() ? opacity() / 255 : 0\"\n [value]=\"host.value().length > 6 ? host.value().slice(0, 7) : ''\"\n (input)=\"onInput(colorPicker.value)\"\n/>\n@if (host.format() === 'hexa' && host.interactive()) {\n <input\n max=\"255\"\n tuiSlider\n type=\"range\"\n [ngModel]=\"opacity()\"\n [ngModelOptions]=\"{standalone: true}\"\n (ngModelChange)=\"onOpacity($event)\"\n (pointerdown.stop)=\"host.el.focus()\"\n />\n}\n", styles: ["tui-input-color-content:where(*[data-tui-version=\"5.11.0-canary.0f9eee3\"]){display:contents}tui-textfield:where(*[data-tui-version=\"5.11.0-canary.0f9eee3\"]) .tui-input-color_picker.tui-input-color_picker{position:relative;font-size:1rem;inline-size:calc(var(--t-height) / 2);block-size:calc(var(--t-height) / 2);border:none;border-radius:100%;padding:0!important;overflow:hidden;cursor:pointer;pointer-events:auto;order:100;background:repeating-conic-gradient(var(--tui-border-normal) 0% 25%,transparent 0% 50%);box-shadow:0 0 0 1px var(--tui-border-normal)}tui-textfield:where(*[data-tui-version=\"5.11.0-canary.0f9eee3\"]) .tui-input-color_picker.tui-input-color_picker:disabled{cursor:default}tui-textfield:where(*[data-tui-version=\"5.11.0-canary.0f9eee3\"]) .tui-input-color_picker.tui-input-color_start{position:absolute;inset-block-start:50%;inset-inline-start:calc(var(--t-height) / 4);transform:translateY(-50%)}tui-textfield:where(*[data-tui-version=\"5.11.0-canary.0f9eee3\"]) .tui-input-color_picker::-webkit-color-swatch-wrapper{padding:0}tui-textfield:where(*[data-tui-version=\"5.11.0-canary.0f9eee3\"]) .tui-input-color_picker::-webkit-color-swatch{border:none;opacity:var(--t-opacity)}tui-textfield:where(*[data-tui-version=\"5.11.0-canary.0f9eee3\"]) .tui-input-color_picker::-moz-color-swatch{border:none;opacity:var(--t-opacity)}tui-textfield:where(*[data-tui-version=\"5.11.0-canary.0f9eee3\"])[data-size=s] .tui-input-color_picker{margin-inline-end:.25rem}tui-textfield:where(*[data-tui-version=\"5.11.0-canary.0f9eee3\"])[data-size=l] .tui-input-color_picker{margin-inline-end:-.25rem}\n"] }]
52
+ }] });
53
+ function toHex(value) {
54
+ return value.toString(16).padStart(2, '0');
55
+ }
56
+
28
57
  const REGEX = /[0-9a-f]/i;
29
58
  const EMPTY = '"data:image/svg+xml;utf8,<svg xmlns=http://www.w3.org/2000/svg></svg>"';
59
+ // TODO(v6): rename to TuiInputColorDirective
30
60
  class TuiInputColorComponent extends TuiControl {
31
61
  constructor() {
32
62
  super(...arguments);
@@ -41,37 +71,35 @@ class TuiInputColorComponent extends TuiControl {
41
71
  plugins: [maskitoAddOnFocusPlugin('#'), maskitoRemoveOnBlurPlugin('#')],
42
72
  overwriteMode: 'replace',
43
73
  })));
44
- this.filled = computed(() => this.format() === 'hex' ? this.value().length === 7 : this.value().length === 9);
45
- this.opacity = computed(() => this.filled() && this.format() === 'hexa'
46
- ? Number.parseInt(this.value().slice(-2), 16)
47
- : 255);
48
74
  this.format = input(this.options.format);
49
75
  this.align = input(this.options.align);
50
76
  }
51
- onInput(value) {
52
- this.onChange(this.format() === 'hex' ? value : `${value}${toHex(this.opacity())}`);
53
- }
54
- onOpacity(opacity) {
55
- const value = this.filled() ? this.value().slice(0, 7) : '#000000';
56
- this.onChange(`${value}${toHex(opacity)}`);
57
- }
58
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TuiInputColorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
59
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: TuiInputColorComponent, isStandalone: true, selector: "input[tuiInputColor]", inputs: { format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "ngSkipHydration": "true", "spellcheck": "false" }, listeners: { "input": "onChange($event.target.value)" }, properties: { "attr.list": "null", "disabled": "disabled()", "value": "value()" } }, providers: [tuiAsControl(TuiInputColorComponent), tuiFallbackValueProvider('')], usesInheritance: true, hostDirectives: [{ directive: i1.MaskitoDirective }, { directive: i2.TuiWithInput }], ngImport: i0, template: "<ng-container *tuiTextfieldContent>\n <input\n #input\n tabindex=\"-1\"\n type=\"color\"\n class=\"tui-input-color_picker\"\n [attr.list]=\"list\"\n [class.tui-input-color_start]=\"align() === 'start'\"\n [disabled]=\"!interactive()\"\n [style.--t-opacity]=\"filled() ? opacity() / 255 : 0\"\n [value]=\"value().length > 6 ? value().slice(0, 7) : ''\"\n (input)=\"onInput(input.value)\"\n />\n @if (format() === 'hexa' && interactive()) {\n <input\n max=\"255\"\n tuiSlider\n type=\"range\"\n [ngModel]=\"opacity()\"\n [ngModelOptions]=\"{standalone: true}\"\n (ngModelChange)=\"onOpacity($event)\"\n (pointerdown.stop)=\"el.focus()\"\n />\n }\n</ng-container>\n", styles: ["tui-textfield:where(*[data-tui-version=\"5.10.0\"]) .tui-input-color_picker.tui-input-color_picker{position:relative;font-size:1rem;inline-size:calc(var(--t-height) / 2);block-size:calc(var(--t-height) / 2);border:none;border-radius:100%;padding:0!important;overflow:hidden;cursor:pointer;pointer-events:auto;order:100;background:repeating-conic-gradient(var(--tui-border-normal) 0% 25%,transparent 0% 50%);box-shadow:0 0 0 1px var(--tui-border-normal)}tui-textfield:where(*[data-tui-version=\"5.10.0\"]) .tui-input-color_picker.tui-input-color_picker:disabled{cursor:default}tui-textfield:where(*[data-tui-version=\"5.10.0\"]) .tui-input-color_picker.tui-input-color_start{position:absolute;inset-block-start:50%;inset-inline-start:calc(var(--t-height) / 4);transform:translateY(-50%)}tui-textfield:where(*[data-tui-version=\"5.10.0\"]) .tui-input-color_picker::-webkit-color-swatch-wrapper{padding:0}tui-textfield:where(*[data-tui-version=\"5.10.0\"]) .tui-input-color_picker::-webkit-color-swatch{border:none;opacity:var(--t-opacity)}tui-textfield:where(*[data-tui-version=\"5.10.0\"]) .tui-input-color_picker::-moz-color-swatch{border:none;opacity:var(--t-opacity)}tui-textfield:where(*[data-tui-version=\"5.10.0\"])[data-size=s] .tui-input-color_picker{margin-inline-end:.25rem}tui-textfield:where(*[data-tui-version=\"5.10.0\"])[data-size=l] .tui-input-color_picker{margin-inline-end:-.25rem}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.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: i3.RangeValueAccessor, selector: "input[type=range][formControlName],input[type=range][formControl],input[type=range][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.TuiSliderComponent, selector: "input[type=range][tuiSlider]", inputs: ["segments"] }, { kind: "directive", type: TuiTextfieldContent, selector: "ng-template[tuiTextfieldContent]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
77
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.24", ngImport: i0, type: TuiInputColorComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
78
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.24", type: TuiInputColorComponent, isStandalone: true, selector: "input[tuiInputColor]", inputs: { format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "spellcheck": "false" }, listeners: { "input": "onChange($event.target.value)" }, properties: { "attr.list": "null", "disabled": "disabled()", "value": "value()" } }, providers: [
79
+ tuiAsControl(TuiInputColorComponent),
80
+ tuiFallbackValueProvider(''),
81
+ tuiAsTextfieldContent(() => TuiInputColorContent),
82
+ ], usesInheritance: true, hostDirectives: [{ directive: i1$1.MaskitoDirective }, { directive: i2$1.TuiWithInput }, { directive: i3.TuiTextfieldContent }], ngImport: i0 }); }
60
83
  }
61
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TuiInputColorComponent, decorators: [{
62
- type: Component,
63
- args: [{ selector: 'input[tuiInputColor]', imports: [FormsModule, TuiSlider, TuiTextfieldContent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [tuiAsControl(TuiInputColorComponent), tuiFallbackValueProvider('')], hostDirectives: [MaskitoDirective, TuiWithInput], host: {
64
- ngSkipHydration: 'true',
84
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.24", ngImport: i0, type: TuiInputColorComponent, decorators: [{
85
+ type: Directive,
86
+ args: [{
87
+ selector: 'input[tuiInputColor]',
88
+ providers: [
89
+ tuiAsControl(TuiInputColorComponent),
90
+ tuiFallbackValueProvider(''),
91
+ tuiAsTextfieldContent(() => TuiInputColorContent),
92
+ ],
93
+ hostDirectives: [MaskitoDirective, TuiWithInput, TuiTextfieldContent],
94
+ host: {
65
95
  spellcheck: 'false',
66
96
  '[attr.list]': 'null',
67
97
  '[disabled]': 'disabled()',
68
98
  '[value]': 'value()',
69
99
  '(input)': 'onChange($event.target.value)',
70
- }, template: "<ng-container *tuiTextfieldContent>\n <input\n #input\n tabindex=\"-1\"\n type=\"color\"\n class=\"tui-input-color_picker\"\n [attr.list]=\"list\"\n [class.tui-input-color_start]=\"align() === 'start'\"\n [disabled]=\"!interactive()\"\n [style.--t-opacity]=\"filled() ? opacity() / 255 : 0\"\n [value]=\"value().length > 6 ? value().slice(0, 7) : ''\"\n (input)=\"onInput(input.value)\"\n />\n @if (format() === 'hexa' && interactive()) {\n <input\n max=\"255\"\n tuiSlider\n type=\"range\"\n [ngModel]=\"opacity()\"\n [ngModelOptions]=\"{standalone: true}\"\n (ngModelChange)=\"onOpacity($event)\"\n (pointerdown.stop)=\"el.focus()\"\n />\n }\n</ng-container>\n", styles: ["tui-textfield:where(*[data-tui-version=\"5.10.0\"]) .tui-input-color_picker.tui-input-color_picker{position:relative;font-size:1rem;inline-size:calc(var(--t-height) / 2);block-size:calc(var(--t-height) / 2);border:none;border-radius:100%;padding:0!important;overflow:hidden;cursor:pointer;pointer-events:auto;order:100;background:repeating-conic-gradient(var(--tui-border-normal) 0% 25%,transparent 0% 50%);box-shadow:0 0 0 1px var(--tui-border-normal)}tui-textfield:where(*[data-tui-version=\"5.10.0\"]) .tui-input-color_picker.tui-input-color_picker:disabled{cursor:default}tui-textfield:where(*[data-tui-version=\"5.10.0\"]) .tui-input-color_picker.tui-input-color_start{position:absolute;inset-block-start:50%;inset-inline-start:calc(var(--t-height) / 4);transform:translateY(-50%)}tui-textfield:where(*[data-tui-version=\"5.10.0\"]) .tui-input-color_picker::-webkit-color-swatch-wrapper{padding:0}tui-textfield:where(*[data-tui-version=\"5.10.0\"]) .tui-input-color_picker::-webkit-color-swatch{border:none;opacity:var(--t-opacity)}tui-textfield:where(*[data-tui-version=\"5.10.0\"]) .tui-input-color_picker::-moz-color-swatch{border:none;opacity:var(--t-opacity)}tui-textfield:where(*[data-tui-version=\"5.10.0\"])[data-size=s] .tui-input-color_picker{margin-inline-end:.25rem}tui-textfield:where(*[data-tui-version=\"5.10.0\"])[data-size=l] .tui-input-color_picker{margin-inline-end:-.25rem}\n"] }]
100
+ },
101
+ }]
71
102
  }] });
72
- function toHex(value) {
73
- return value.toString(16).padStart(2, '0');
74
- }
75
103
 
76
104
  const TuiInputColor = [
77
105
  TuiInputColorComponent,
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-input-color.mjs","sources":["../../../projects/kit/components/input-color/input-color.options.ts","../../../projects/kit/components/input-color/input-color.component.ts","../../../projects/kit/components/input-color/input-color.template.html","../../../projects/kit/components/input-color/input-color.ts","../../../projects/kit/components/input-color/taiga-ui-kit-components-input-color.ts"],"sourcesContent":["import {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport {type TuiHorizontalDirection} from '@taiga-ui/core/types';\n\nexport interface TuiInputColorOptions {\n readonly format: 'hex' | 'hexa';\n readonly align: TuiHorizontalDirection;\n}\n\nexport const [TUI_INPUT_COLOR_OPTIONS, tuiInputColorOptionsProvider] =\n tuiCreateOptions<TuiInputColorOptions>({\n format: 'hex',\n align: 'start',\n });\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n HostAttributeToken,\n inject,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {MaskitoDirective} from '@maskito/angular';\nimport {\n maskitoAddOnFocusPlugin,\n maskitoPrefixPostprocessorGenerator,\n maskitoRemoveOnBlurPlugin,\n} from '@maskito/kit';\nimport {tuiAsControl, TuiControl} from '@taiga-ui/cdk/classes';\nimport {TUI_VERSION} from '@taiga-ui/cdk/constants';\nimport {tuiFallbackValueProvider} from '@taiga-ui/cdk/tokens';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TuiWithInput} from '@taiga-ui/core/components/input';\nimport {TuiSlider} from '@taiga-ui/core/components/slider';\nimport {TuiTextfieldContent} from '@taiga-ui/core/components/textfield';\nimport {TuiIcons, tuiIconStart} from '@taiga-ui/core/directives/icons';\nimport {tuiMaskito} from '@taiga-ui/kit/utils';\n\nimport {TUI_INPUT_COLOR_OPTIONS} from './input-color.options';\n\nconst REGEX = /[0-9a-f]/i;\nconst EMPTY = '\"data:image/svg+xml;utf8,<svg xmlns=http://www.w3.org/2000/svg></svg>\"';\n\n@Component({\n selector: 'input[tuiInputColor]',\n imports: [FormsModule, TuiSlider, TuiTextfieldContent],\n templateUrl: './input-color.template.html',\n styles: `\n [data-tui-version='${TUI_VERSION}'] {\n @import './input-color.style.less';\n }\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiAsControl(TuiInputColorComponent), tuiFallbackValueProvider('')],\n hostDirectives: [MaskitoDirective, TuiWithInput],\n host: {\n ngSkipHydration: 'true',\n spellcheck: 'false',\n '[attr.list]': 'null',\n '[disabled]': 'disabled()',\n '[value]': 'value()',\n '(input)': 'onChange($event.target.value)',\n },\n})\nexport class TuiInputColorComponent extends TuiControl<string> {\n protected readonly options = inject(TUI_INPUT_COLOR_OPTIONS);\n protected readonly el = tuiInjectElement<HTMLInputElement>();\n protected readonly list = inject(new HostAttributeToken('list'), {optional: true});\n protected readonly start = inject(TuiIcons).iconStart() || '';\n\n protected readonly icon = tuiIconStart(\n computed(() => (this.align() === 'start' ? EMPTY : this.start)),\n {},\n );\n\n protected readonly maskito = tuiMaskito(\n computed((length = this.format().length * 2) => ({\n mask: ['#', ...Array.from<RegExp>({length}).fill(REGEX)],\n postprocessors: [maskitoPrefixPostprocessorGenerator('#')],\n plugins: [maskitoAddOnFocusPlugin('#'), maskitoRemoveOnBlurPlugin('#')],\n overwriteMode: 'replace',\n })),\n );\n\n protected readonly filled = computed(() =>\n this.format() === 'hex' ? this.value().length === 7 : this.value().length === 9,\n );\n\n protected readonly opacity = computed(() =>\n this.filled() && this.format() === 'hexa'\n ? Number.parseInt(this.value().slice(-2), 16)\n : 255,\n );\n\n public readonly format = input(this.options.format);\n public readonly align = input(this.options.align);\n\n protected onInput(value: string): void {\n this.onChange(\n this.format() === 'hex' ? value : `${value}${toHex(this.opacity())}`,\n );\n }\n\n protected onOpacity(opacity: number): void {\n const value = this.filled() ? this.value().slice(0, 7) : '#000000';\n\n this.onChange(`${value}${toHex(opacity)}`);\n }\n}\n\nfunction toHex(value: number): string {\n return value.toString(16).padStart(2, '0');\n}\n","<ng-container *tuiTextfieldContent>\n <input\n #input\n tabindex=\"-1\"\n type=\"color\"\n class=\"tui-input-color_picker\"\n [attr.list]=\"list\"\n [class.tui-input-color_start]=\"align() === 'start'\"\n [disabled]=\"!interactive()\"\n [style.--t-opacity]=\"filled() ? opacity() / 255 : 0\"\n [value]=\"value().length > 6 ? value().slice(0, 7) : ''\"\n (input)=\"onInput(input.value)\"\n />\n @if (format() === 'hexa' && interactive()) {\n <input\n max=\"255\"\n tuiSlider\n type=\"range\"\n [ngModel]=\"opacity()\"\n [ngModelOptions]=\"{standalone: true}\"\n (ngModelChange)=\"onOpacity($event)\"\n (pointerdown.stop)=\"el.focus()\"\n />\n }\n</ng-container>\n","import {TuiLabel} from '@taiga-ui/core/components/label';\nimport {\n TuiTextfieldComponent,\n TuiTextfieldOptionsDirective,\n} from '@taiga-ui/core/components/textfield';\nimport {TuiDropdownContent} from '@taiga-ui/core/portals/dropdown';\n\nimport {TuiInputColorComponent} from './input-color.component';\n\nexport const TuiInputColor = [\n TuiInputColorComponent,\n TuiLabel,\n TuiTextfieldComponent,\n TuiTextfieldOptionsDirective,\n TuiDropdownContent,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-kit-components-input-color.mjs","sources":["../../../projects/kit/components/input-color/input-color.options.ts","../../../projects/kit/components/input-color/input-color-content.component.ts","../../../projects/kit/components/input-color/input-color-content.template.html","../../../projects/kit/components/input-color/input-color.component.ts","../../../projects/kit/components/input-color/input-color.ts","../../../projects/kit/components/input-color/taiga-ui-kit-components-input-color.ts"],"sourcesContent":["import {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport {type TuiHorizontalDirection} from '@taiga-ui/core/types';\n\nexport interface TuiInputColorOptions {\n readonly format: 'hex' | 'hexa';\n readonly align: TuiHorizontalDirection;\n}\n\nexport const [TUI_INPUT_COLOR_OPTIONS, tuiInputColorOptionsProvider] =\n tuiCreateOptions<TuiInputColorOptions>({\n format: 'hex',\n align: 'start',\n });\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n ViewEncapsulation,\n} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {TUI_VERSION} from '@taiga-ui/cdk/constants';\nimport {TuiSlider} from '@taiga-ui/core/components/slider';\n\nimport {TuiInputColorComponent} from './input-color.component';\n\n@Component({\n selector: 'tui-input-color-content',\n imports: [FormsModule, TuiSlider],\n templateUrl: './input-color-content.template.html',\n styles: `\n [data-tui-version='${TUI_VERSION}'] {\n @import './input-color.style.less';\n }\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {'data-tui-version': TUI_VERSION},\n})\nexport class TuiInputColorContent {\n protected readonly host = inject(TuiInputColorComponent);\n\n protected readonly filled = computed(() =>\n this.host.format() === 'hex'\n ? this.host.value().length === 7\n : this.host.value().length === 9,\n );\n\n protected readonly opacity = computed(() =>\n this.filled() && this.host.format() === 'hexa'\n ? Number.parseInt(this.host.value().slice(-2), 16)\n : 255,\n );\n\n protected onInput(value: string): void {\n this.host.onChange(\n this.host.format() === 'hex' ? value : `${value}${toHex(this.opacity())}`,\n );\n }\n\n protected onOpacity(opacity: number): void {\n const value = this.filled() ? this.host.value().slice(0, 7) : '#000000';\n\n this.host.onChange(`${value}${toHex(opacity)}`);\n }\n}\n\nfunction toHex(value: number): string {\n return value.toString(16).padStart(2, '0');\n}\n","<input\n #colorPicker\n tabindex=\"-1\"\n type=\"color\"\n class=\"tui-input-color_picker\"\n [attr.list]=\"host.list\"\n [class.tui-input-color_start]=\"host.align() === 'start'\"\n [disabled]=\"!host.interactive()\"\n [style.--t-opacity]=\"filled() ? opacity() / 255 : 0\"\n [value]=\"host.value().length > 6 ? host.value().slice(0, 7) : ''\"\n (input)=\"onInput(colorPicker.value)\"\n/>\n@if (host.format() === 'hexa' && host.interactive()) {\n <input\n max=\"255\"\n tuiSlider\n type=\"range\"\n [ngModel]=\"opacity()\"\n [ngModelOptions]=\"{standalone: true}\"\n (ngModelChange)=\"onOpacity($event)\"\n (pointerdown.stop)=\"host.el.focus()\"\n />\n}\n","import {computed, Directive, HostAttributeToken, inject, input} from '@angular/core';\nimport {MaskitoDirective} from '@maskito/angular';\nimport {\n maskitoAddOnFocusPlugin,\n maskitoPrefixPostprocessorGenerator,\n maskitoRemoveOnBlurPlugin,\n} from '@maskito/kit';\nimport {tuiAsControl, TuiControl} from '@taiga-ui/cdk/classes';\nimport {tuiFallbackValueProvider} from '@taiga-ui/cdk/tokens';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TuiWithInput} from '@taiga-ui/core/components/input';\nimport {\n tuiAsTextfieldContent,\n TuiTextfieldContent,\n} from '@taiga-ui/core/components/textfield';\nimport {TuiIcons, tuiIconStart} from '@taiga-ui/core/directives/icons';\nimport {tuiMaskito} from '@taiga-ui/kit/utils';\n\nimport {TUI_INPUT_COLOR_OPTIONS} from './input-color.options';\nimport {TuiInputColorContent} from './input-color-content.component';\n\nconst REGEX = /[0-9a-f]/i;\nconst EMPTY = '\"data:image/svg+xml;utf8,<svg xmlns=http://www.w3.org/2000/svg></svg>\"';\n\n@Directive({\n selector: 'input[tuiInputColor]',\n providers: [\n tuiAsControl(TuiInputColorComponent),\n tuiFallbackValueProvider(''),\n tuiAsTextfieldContent(() => TuiInputColorContent),\n ],\n hostDirectives: [MaskitoDirective, TuiWithInput, TuiTextfieldContent],\n host: {\n spellcheck: 'false',\n '[attr.list]': 'null',\n '[disabled]': 'disabled()',\n '[value]': 'value()',\n '(input)': 'onChange($event.target.value)',\n },\n})\n// TODO(v6): rename to TuiInputColorDirective\nexport class TuiInputColorComponent extends TuiControl<string> {\n protected readonly options = inject(TUI_INPUT_COLOR_OPTIONS);\n\n public readonly el = tuiInjectElement<HTMLInputElement>();\n public readonly list = inject(new HostAttributeToken('list'), {optional: true});\n\n protected readonly start = inject(TuiIcons).iconStart() || '';\n\n protected readonly icon = tuiIconStart(\n computed(() => (this.align() === 'start' ? EMPTY : this.start)),\n {},\n );\n\n protected readonly maskito = tuiMaskito(\n computed((length = this.format().length * 2) => ({\n mask: ['#', ...Array.from<RegExp>({length}).fill(REGEX)],\n postprocessors: [maskitoPrefixPostprocessorGenerator('#')],\n plugins: [maskitoAddOnFocusPlugin('#'), maskitoRemoveOnBlurPlugin('#')],\n overwriteMode: 'replace',\n })),\n );\n\n public readonly format = input(this.options.format);\n public readonly align = input(this.options.align);\n}\n","import {TuiLabel} from '@taiga-ui/core/components/label';\nimport {\n TuiTextfieldComponent,\n TuiTextfieldOptionsDirective,\n} from '@taiga-ui/core/components/textfield';\nimport {TuiDropdownContent} from '@taiga-ui/core/portals/dropdown';\n\nimport {TuiInputColorComponent} from './input-color.component';\n\nexport const TuiInputColor = [\n TuiInputColorComponent,\n TuiLabel,\n TuiTextfieldComponent,\n TuiTextfieldOptionsDirective,\n TuiDropdownContent,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;MAQa,CAAC,uBAAuB,EAAE,4BAA4B,CAAC,GAChE,gBAAgB,CAAuB;AACnC,IAAA,MAAM,EAAE,KAAK;AACb,IAAA,KAAK,EAAE,OAAO;AACjB,CAAA;;MCcQ,oBAAoB,CAAA;AAbjC,IAAA,WAAA,GAAA;AAcuB,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,sBAAsB,CAAC;AAErC,QAAA,IAAA,CAAA,MAAM,GAAG,QAAQ,CAAC,MACjC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK;cACjB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,KAAK;AAC/B,cAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,KAAK,CAAC,CACvC;AAEkB,QAAA,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAC,MAClC,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK;AACpC,cAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;cAC/C,GAAG,CACZ;AAaJ,IAAA;AAXa,IAAA,OAAO,CAAC,KAAa,EAAA;AAC3B,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CACd,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,KAAK,GAAG,KAAK,GAAG,CAAA,EAAG,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA,CAAE,CAC5E;IACL;AAEU,IAAA,SAAS,CAAC,OAAe,EAAA;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS;AAEvE,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA,EAAG,KAAK,CAAA,EAAG,KAAK,CAAC,OAAO,CAAC,CAAA,CAAE,CAAC;IACnD;+GAzBS,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC1BjC,uuBAuBA,EAAA,MAAA,EAAA,CAAA,glDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDRc,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,8FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAWZ,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAbhC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,yBAAyB,WAC1B,CAAC,WAAW,EAAE,SAAS,CAAC,iBAOlB,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC,EAAC,kBAAkB,EAAE,WAAW,EAAC,EAAA,QAAA,EAAA,uuBAAA,EAAA,MAAA,EAAA,CAAA,glDAAA,CAAA,EAAA;;AA8B3C,SAAS,KAAK,CAAC,KAAa,EAAA;AACxB,IAAA,OAAO,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AAC9C;;AEnCA,MAAM,KAAK,GAAG,WAAW;AACzB,MAAM,KAAK,GAAG,wEAAwE;AAkBtF;AACM,MAAO,sBAAuB,SAAQ,UAAkB,CAAA;AAjB9D,IAAA,WAAA,GAAA;;AAkBuB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,uBAAuB,CAAC;QAE5C,IAAA,CAAA,EAAE,GAAG,gBAAgB,EAAoB;AACzC,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;QAE5D,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE;AAE1C,QAAA,IAAA,CAAA,IAAI,GAAG,YAAY,CAClC,QAAQ,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,KAAK,OAAO,GAAG,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAC/D,EAAE,CACL;AAEkB,QAAA,IAAA,CAAA,OAAO,GAAG,UAAU,CACnC,QAAQ,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,CAAC,MAAM;AAC7C,YAAA,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,IAAI,CAAS,EAAC,MAAM,EAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxD,YAAA,cAAc,EAAE,CAAC,mCAAmC,CAAC,GAAG,CAAC,CAAC;YAC1D,OAAO,EAAE,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAAE,yBAAyB,CAAC,GAAG,CAAC,CAAC;AACvE,YAAA,aAAa,EAAE,SAAS;SAC3B,CAAC,CAAC,CACN;QAEe,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACnC,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AACpD,IAAA;+GAxBY,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,YAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,+BAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,EAAA,SAAA,EAfpB;YACP,YAAY,CAAC,sBAAsB,CAAC;YACpC,wBAAwB,CAAC,EAAE,CAAC;AAC5B,YAAA,qBAAqB,CAAC,MAAM,oBAAoB,CAAC;AACpD,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,SAAA,EAAAC,IAAA,CAAA,YAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAWQ,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAjBlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,SAAS,EAAE;AACP,wBAAA,YAAY,CAAA,sBAAA,CAAwB;wBACpC,wBAAwB,CAAC,EAAE,CAAC;AAC5B,wBAAA,qBAAqB,CAAC,MAAM,oBAAoB,CAAC;AACpD,qBAAA;AACD,oBAAA,cAAc,EAAE,CAAC,gBAAgB,EAAE,YAAY,EAAE,mBAAmB,CAAC;AACrE,oBAAA,IAAI,EAAE;AACF,wBAAA,UAAU,EAAE,OAAO;AACnB,wBAAA,aAAa,EAAE,MAAM;AACrB,wBAAA,YAAY,EAAE,YAAY;AAC1B,wBAAA,SAAS,EAAE,SAAS;AACpB,wBAAA,SAAS,EAAE,+BAA+B;AAC7C,qBAAA;AACJ,iBAAA;;;AC9BM,MAAM,aAAa,GAAG;IACzB,sBAAsB;IACtB,QAAQ;IACR,qBAAqB;IACrB,4BAA4B;IAC5B,kBAAkB;;;ACdtB;;AAEG;;;;"}
@@ -4,7 +4,7 @@ import * as i0 from '@angular/core';
4
4
  import { InjectionToken, inject, computed, effect, input, Directive } from '@angular/core';
5
5
  import * as i2 from '@maskito/angular';
6
6
  import { MaskitoDirective } from '@maskito/angular';
7
- import { maskitoDateOptionsGenerator } from '@maskito/kit';
7
+ import { maskitoDate } from '@maskito/kit';
8
8
  import { tuiAsControl, tuiValueTransformerFrom } from '@taiga-ui/cdk/classes';
9
9
  import { TuiMonth, DATE_FILLER_LENGTH, TuiDay } from '@taiga-ui/cdk/date-time';
10
10
  import { tuiFallbackValueProvider } from '@taiga-ui/cdk/tokens';
@@ -54,10 +54,8 @@ class TuiInputDateMultiDirective extends TuiInputChipDirective {
54
54
  this.icon = tuiIconEnd(this.dateMultiOptions.icon);
55
55
  this.filler = tuiWithDateFiller();
56
56
  this.format = inject(TUI_DATE_FORMAT);
57
- this.stringify = tuiDirectiveBinding(TuiItemsHandlersDirective, 'stringify', (item) => this.dateMultiOptions.valueTransformer
58
- .fromControlValue([item])[0]
59
- ?.toString(this.format().mode, this.format().separator) ?? '', {});
60
- this.mask = tuiMaskito(computed(() => maskitoDateOptionsGenerator({
57
+ this.stringify = tuiDirectiveBinding(TuiItemsHandlersDirective, 'stringify', (item) => item?.toString(this.format().mode, this.format().separator) ?? '', {});
58
+ this.mask = tuiMaskito(computed(() => maskitoDate({
61
59
  separator: this.format().separator,
62
60
  mode: this.format().mode,
63
61
  min: (this.min() ?? this.dateMultiOptions.min).toLocalNativeDate(),
@@ -103,8 +101,8 @@ class TuiInputDateMultiDirective extends TuiInputChipDirective {
103
101
  updateValue(day) {
104
102
  this.setValue(tuiArrayToggle(this.value(), day, (a, b) => a.daySame(b)));
105
103
  }
106
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TuiInputDateMultiDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
107
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.21", type: TuiInputDateMultiDirective, isStandalone: true, selector: "input[tuiInputDateMulti]", inputs: { min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "keydown.enter.prevent": "0" } }, providers: [
104
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.24", ngImport: i0, type: TuiInputDateMultiDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
105
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.24", type: TuiInputDateMultiDirective, isStandalone: true, selector: "input[tuiInputDateMulti]", inputs: { min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "keydown.enter.prevent": "0" } }, providers: [
108
106
  tuiAsControl(TuiInputDateMultiDirective),
109
107
  tuiFallbackValueProvider([]),
110
108
  tuiAsTextfieldAccessor(TuiInputDateMultiDirective),
@@ -119,7 +117,7 @@ class TuiInputDateMultiDirective extends TuiInputChipDirective {
119
117
  tuiValueTransformerFrom(TUI_INPUT_DATE_MULTI_OPTIONS),
120
118
  ], usesInheritance: true, hostDirectives: [{ directive: i1.TuiDropdownAuto }, { directive: i2.MaskitoDirective }], ngImport: i0 }); }
121
119
  }
122
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TuiInputDateMultiDirective, decorators: [{
120
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.24", ngImport: i0, type: TuiInputDateMultiDirective, decorators: [{
123
121
  type: Directive,
124
122
  args: [{
125
123
  selector: 'input[tuiInputDateMulti]',
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-input-date-multi.mjs","sources":["../../../projects/kit/components/input-date-multi/input-date-multi.options.ts","../../../projects/kit/components/input-date-multi/input-date-multi.directive.ts","../../../projects/kit/components/input-date-multi/input-date-multi.ts","../../../projects/kit/components/input-date-multi/taiga-ui-kit-components-input-date-multi.ts"],"sourcesContent":["import {type FactoryProvider, inject, InjectionToken} from '@angular/core';\nimport {type TuiValueTransformer} from '@taiga-ui/cdk/classes';\nimport {type TuiDay} from '@taiga-ui/cdk/date-time';\nimport {\n TUI_INPUT_DATE_OPTIONS,\n type TuiInputDateOptions,\n} from '@taiga-ui/kit/components/input-date';\n\nexport interface TuiInputDateMultiOptions extends Omit<\n TuiInputDateOptions,\n 'valueTransformer'\n> {\n readonly valueTransformer: TuiValueTransformer<TuiDay[]>;\n}\n\nexport const TUI_INPUT_DATE_MULTI_OPTIONS = new InjectionToken<TuiInputDateMultiOptions>(\n ngDevMode ? 'TUI_INPUT_DATE_MULTI_OPTIONS' : '',\n);\n\nexport function tuiInputDateMultiOptionsFactory(): TuiInputDateMultiOptions {\n const options = inject(TUI_INPUT_DATE_OPTIONS);\n\n return {\n ...options,\n valueTransformer: {\n fromControlValue: (value: unknown): TuiDay[] =>\n Array.isArray(value)\n ? value\n .map((item) => options.valueTransformer.fromControlValue(item))\n .filter((item): item is TuiDay => item !== null)\n : [],\n toControlValue: (value: TuiDay[]): unknown =>\n value.map((item) => options.valueTransformer.toControlValue(item)),\n },\n };\n}\n\nexport function tuiInjectInputDateMultiOptions(): TuiInputDateMultiOptions {\n return (\n inject(TUI_INPUT_DATE_MULTI_OPTIONS, {optional: true, skipSelf: true}) ??\n tuiInputDateMultiOptionsFactory()\n );\n}\n\nexport const tuiInputDateMultiOptionsProvider = (\n options: Partial<TuiInputDateMultiOptions>,\n): FactoryProvider => ({\n provide: TUI_INPUT_DATE_MULTI_OPTIONS,\n useFactory: (): TuiInputDateMultiOptions => ({\n ...tuiInjectInputDateMultiOptions(),\n ...options,\n }),\n});\n","import {computed, Directive, effect, inject, input} from '@angular/core';\nimport {MaskitoDirective} from '@maskito/angular';\nimport {maskitoDateOptionsGenerator} from '@maskito/kit';\nimport {tuiAsControl, tuiValueTransformerFrom} from '@taiga-ui/cdk/classes';\nimport {DATE_FILLER_LENGTH, TuiDay, TuiMonth} from '@taiga-ui/cdk/date-time';\nimport {tuiFallbackValueProvider} from '@taiga-ui/cdk/tokens';\nimport {tuiDirectiveBinding} from '@taiga-ui/cdk/utils/di';\nimport {tuiArrayToggle, tuiSetSignal} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiCalendar} from '@taiga-ui/core/components/calendar';\nimport {\n tuiAsTextfieldAccessor,\n tuiInjectAuxiliary,\n} from '@taiga-ui/core/components/textfield';\nimport {TuiAppearance} from '@taiga-ui/core/directives/appearance';\nimport {tuiIconEnd} from '@taiga-ui/core/directives/icons';\nimport {TuiItemsHandlersDirective} from '@taiga-ui/core/directives/items-handlers';\nimport {TuiDropdownAuto} from '@taiga-ui/core/portals/dropdown';\nimport {TUI_DATE_FORMAT} from '@taiga-ui/core/tokens';\nimport {TuiInputChipDirective} from '@taiga-ui/kit/components/input-chip';\nimport {tuiWithDateFiller} from '@taiga-ui/kit/components/input-date';\nimport {tuiMaskito} from '@taiga-ui/kit/utils';\n\nimport {\n TUI_INPUT_DATE_MULTI_OPTIONS,\n tuiInjectInputDateMultiOptions,\n} from './input-date-multi.options';\n\n@Directive({\n selector: 'input[tuiInputDateMulti]',\n providers: [\n tuiAsControl(TuiInputDateMultiDirective),\n tuiFallbackValueProvider([]),\n tuiAsTextfieldAccessor(TuiInputDateMultiDirective),\n {\n provide: TuiAppearance,\n useFactory: () => inject(TuiAppearance, {skipSelf: true}),\n },\n {\n provide: TUI_INPUT_DATE_MULTI_OPTIONS,\n useFactory: tuiInjectInputDateMultiOptions,\n },\n tuiValueTransformerFrom(TUI_INPUT_DATE_MULTI_OPTIONS),\n ],\n hostDirectives: [TuiDropdownAuto, MaskitoDirective],\n host: {'(keydown.enter.prevent)': '0'},\n})\nexport class TuiInputDateMultiDirective extends TuiInputChipDirective<TuiDay> {\n private readonly dateMultiOptions = inject(TUI_INPUT_DATE_MULTI_OPTIONS);\n\n protected readonly icon = tuiIconEnd(this.dateMultiOptions.icon);\n protected readonly filler = tuiWithDateFiller();\n protected readonly format = inject(TUI_DATE_FORMAT);\n\n protected readonly stringify = tuiDirectiveBinding(\n TuiItemsHandlersDirective,\n 'stringify',\n (item) =>\n this.dateMultiOptions.valueTransformer\n .fromControlValue([item])[0]\n ?.toString(this.format().mode, this.format().separator) ?? '',\n {},\n );\n\n protected readonly mask = tuiMaskito(\n computed(() =>\n maskitoDateOptionsGenerator({\n separator: this.format().separator,\n mode: this.format().mode,\n min: (this.min() ?? this.dateMultiOptions.min).toLocalNativeDate(),\n max: (this.max() ?? this.dateMultiOptions.max).toLocalNativeDate(),\n }),\n ),\n );\n\n protected readonly calendar = tuiInjectAuxiliary<TuiCalendar>(\n (x) => x instanceof TuiCalendar,\n );\n\n protected readonly calendarIn = effect(() => {\n const calendar = this.calendar();\n\n if (calendar) {\n this.processCalendar(calendar);\n }\n });\n\n protected readonly calendarOut = effect((onCleanup) => {\n const subscription = this.calendar()?.dayClick.subscribe((day) => {\n this.updateValue(day);\n });\n\n onCleanup(() => subscription?.unsubscribe());\n });\n\n public readonly min = input<TuiDay | null>(this.dateMultiOptions.min);\n public readonly max = input<TuiDay | null>(this.dateMultiOptions.max);\n\n protected processCalendar(calendar: TuiCalendar): void {\n tuiSetSignal(calendar.value, this.value());\n tuiSetSignal(calendar.min, this.min());\n tuiSetSignal(calendar.max, this.max());\n calendar.month.set(\n this.value()?.[this.value().length - 1] ?? TuiMonth.currentLocal(),\n );\n }\n\n protected onClick(): void {\n this.open.update((open) => !open);\n }\n\n protected onValueChange(value: string): void {\n const newValue =\n value.length === DATE_FILLER_LENGTH\n ? TuiDay.normalizeParse(value, this.format().mode)\n : null;\n\n if (newValue && !this.handlers.disabledItemHandler()(newValue)) {\n this.updateValue(newValue);\n }\n }\n\n protected override onEnter(): void {\n this.onValueChange(this.textfield.value().trim());\n this.scrollTo();\n }\n\n private updateValue(day: TuiDay): void {\n this.setValue(tuiArrayToggle(this.value(), day, (a, b) => a.daySame(b)));\n }\n}\n","import {TuiCalendar} from '@taiga-ui/core/components/calendar';\nimport {TuiInputChip} from '@taiga-ui/kit/components/input-chip';\n\nimport {TuiInputDateMultiDirective} from './input-date-multi.directive';\n\nexport const TuiInputDateMulti = [\n TuiInputDateMultiDirective,\n TuiCalendar,\n ...TuiInputChip,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-kit-components-input-date-multi.mjs","sources":["../../../projects/kit/components/input-date-multi/input-date-multi.options.ts","../../../projects/kit/components/input-date-multi/input-date-multi.directive.ts","../../../projects/kit/components/input-date-multi/input-date-multi.ts","../../../projects/kit/components/input-date-multi/taiga-ui-kit-components-input-date-multi.ts"],"sourcesContent":["import {type FactoryProvider, inject, InjectionToken} from '@angular/core';\nimport {type TuiValueTransformer} from '@taiga-ui/cdk/classes';\nimport {type TuiDay} from '@taiga-ui/cdk/date-time';\nimport {\n TUI_INPUT_DATE_OPTIONS,\n type TuiInputDateOptions,\n} from '@taiga-ui/kit/components/input-date';\n\nexport interface TuiInputDateMultiOptions extends Omit<\n TuiInputDateOptions,\n 'valueTransformer'\n> {\n readonly valueTransformer: TuiValueTransformer<TuiDay[]>;\n}\n\nexport const TUI_INPUT_DATE_MULTI_OPTIONS = new InjectionToken<TuiInputDateMultiOptions>(\n ngDevMode ? 'TUI_INPUT_DATE_MULTI_OPTIONS' : '',\n);\n\nexport function tuiInputDateMultiOptionsFactory(): TuiInputDateMultiOptions {\n const options = inject(TUI_INPUT_DATE_OPTIONS);\n\n return {\n ...options,\n valueTransformer: {\n fromControlValue: (value: unknown): TuiDay[] =>\n Array.isArray(value)\n ? value\n .map((item) => options.valueTransformer.fromControlValue(item))\n .filter((item): item is TuiDay => item !== null)\n : [],\n toControlValue: (value: TuiDay[]): unknown =>\n value.map((item) => options.valueTransformer.toControlValue(item)),\n },\n };\n}\n\nexport function tuiInjectInputDateMultiOptions(): TuiInputDateMultiOptions {\n return (\n inject(TUI_INPUT_DATE_MULTI_OPTIONS, {optional: true, skipSelf: true}) ??\n tuiInputDateMultiOptionsFactory()\n );\n}\n\nexport const tuiInputDateMultiOptionsProvider = (\n options: Partial<TuiInputDateMultiOptions>,\n): FactoryProvider => ({\n provide: TUI_INPUT_DATE_MULTI_OPTIONS,\n useFactory: (): TuiInputDateMultiOptions => ({\n ...tuiInjectInputDateMultiOptions(),\n ...options,\n }),\n});\n","import {computed, Directive, effect, inject, input} from '@angular/core';\nimport {MaskitoDirective} from '@maskito/angular';\nimport {maskitoDate} from '@maskito/kit';\nimport {tuiAsControl, tuiValueTransformerFrom} from '@taiga-ui/cdk/classes';\nimport {DATE_FILLER_LENGTH, TuiDay, TuiMonth} from '@taiga-ui/cdk/date-time';\nimport {tuiFallbackValueProvider} from '@taiga-ui/cdk/tokens';\nimport {tuiDirectiveBinding} from '@taiga-ui/cdk/utils/di';\nimport {tuiArrayToggle, tuiSetSignal} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiCalendar} from '@taiga-ui/core/components/calendar';\nimport {\n tuiAsTextfieldAccessor,\n tuiInjectAuxiliary,\n} from '@taiga-ui/core/components/textfield';\nimport {TuiAppearance} from '@taiga-ui/core/directives/appearance';\nimport {tuiIconEnd} from '@taiga-ui/core/directives/icons';\nimport {TuiItemsHandlersDirective} from '@taiga-ui/core/directives/items-handlers';\nimport {TuiDropdownAuto} from '@taiga-ui/core/portals/dropdown';\nimport {TUI_DATE_FORMAT} from '@taiga-ui/core/tokens';\nimport {TuiInputChipDirective} from '@taiga-ui/kit/components/input-chip';\nimport {tuiWithDateFiller} from '@taiga-ui/kit/components/input-date';\nimport {tuiMaskito} from '@taiga-ui/kit/utils';\n\nimport {\n TUI_INPUT_DATE_MULTI_OPTIONS,\n tuiInjectInputDateMultiOptions,\n} from './input-date-multi.options';\n\n@Directive({\n selector: 'input[tuiInputDateMulti]',\n providers: [\n tuiAsControl(TuiInputDateMultiDirective),\n tuiFallbackValueProvider([]),\n tuiAsTextfieldAccessor(TuiInputDateMultiDirective),\n {\n provide: TuiAppearance,\n useFactory: () => inject(TuiAppearance, {skipSelf: true}),\n },\n {\n provide: TUI_INPUT_DATE_MULTI_OPTIONS,\n useFactory: tuiInjectInputDateMultiOptions,\n },\n tuiValueTransformerFrom(TUI_INPUT_DATE_MULTI_OPTIONS),\n ],\n hostDirectives: [TuiDropdownAuto, MaskitoDirective],\n host: {'(keydown.enter.prevent)': '0'},\n})\nexport class TuiInputDateMultiDirective extends TuiInputChipDirective<TuiDay> {\n private readonly dateMultiOptions = inject(TUI_INPUT_DATE_MULTI_OPTIONS);\n\n protected readonly icon = tuiIconEnd(this.dateMultiOptions.icon);\n protected readonly filler = tuiWithDateFiller();\n protected readonly format = inject(TUI_DATE_FORMAT);\n\n protected readonly stringify = tuiDirectiveBinding(\n TuiItemsHandlersDirective,\n 'stringify',\n (item) => item?.toString(this.format().mode, this.format().separator) ?? '',\n {},\n );\n\n protected readonly mask = tuiMaskito(\n computed(() =>\n maskitoDate({\n separator: this.format().separator,\n mode: this.format().mode,\n min: (this.min() ?? this.dateMultiOptions.min).toLocalNativeDate(),\n max: (this.max() ?? this.dateMultiOptions.max).toLocalNativeDate(),\n }),\n ),\n );\n\n protected readonly calendar = tuiInjectAuxiliary<TuiCalendar>(\n (x) => x instanceof TuiCalendar,\n );\n\n protected readonly calendarIn = effect(() => {\n const calendar = this.calendar();\n\n if (calendar) {\n this.processCalendar(calendar);\n }\n });\n\n protected readonly calendarOut = effect((onCleanup) => {\n const subscription = this.calendar()?.dayClick.subscribe((day) => {\n this.updateValue(day);\n });\n\n onCleanup(() => subscription?.unsubscribe());\n });\n\n public readonly min = input<TuiDay | null>(this.dateMultiOptions.min);\n public readonly max = input<TuiDay | null>(this.dateMultiOptions.max);\n\n protected processCalendar(calendar: TuiCalendar): void {\n tuiSetSignal(calendar.value, this.value());\n tuiSetSignal(calendar.min, this.min());\n tuiSetSignal(calendar.max, this.max());\n calendar.month.set(\n this.value()?.[this.value().length - 1] ?? TuiMonth.currentLocal(),\n );\n }\n\n protected onClick(): void {\n this.open.update((open) => !open);\n }\n\n protected onValueChange(value: string): void {\n const newValue =\n value.length === DATE_FILLER_LENGTH\n ? TuiDay.normalizeParse(value, this.format().mode)\n : null;\n\n if (newValue && !this.handlers.disabledItemHandler()(newValue)) {\n this.updateValue(newValue);\n }\n }\n\n protected override onEnter(): void {\n this.onValueChange(this.textfield.value().trim());\n this.scrollTo();\n }\n\n private updateValue(day: TuiDay): void {\n this.setValue(tuiArrayToggle(this.value(), day, (a, b) => a.daySame(b)));\n }\n}\n","import {TuiCalendar} from '@taiga-ui/core/components/calendar';\nimport {TuiInputChip} from '@taiga-ui/kit/components/input-chip';\n\nimport {TuiInputDateMultiDirective} from './input-date-multi.directive';\n\nexport const TuiInputDateMulti = [\n TuiInputDateMultiDirective,\n TuiCalendar,\n ...TuiInputChip,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ import * as i0 from '@angular/core';
7
7
  import { InjectionToken, inject, input, computed, Directive } from '@angular/core';
8
8
  import * as i3 from '@maskito/angular';
9
9
  import { MaskitoDirective } from '@maskito/angular';
10
- import { maskitoDateRangeOptionsGenerator } from '@maskito/kit';
10
+ import { maskitoDateRange } from '@maskito/kit';
11
11
  import { TUI_IDENTITY_VALUE_TRANSFORMER, tuiAsControl, tuiValueTransformerFrom } from '@taiga-ui/cdk/classes';
12
12
  import { TUI_LAST_DAY, TuiDay, TUI_FIRST_DAY, RANGE_SEPARATOR_CHAR, DATE_RANGE_FILLER_LENGTH, TuiDayRange } from '@taiga-ui/cdk/date-time';
13
13
  import { tuiProvideOptions, tuiProvide } from '@taiga-ui/cdk/utils/di';
@@ -35,7 +35,7 @@ class TuiInputDateRangeDirective extends TuiInputDateBase {
35
35
  transform: (min) => min instanceof TuiDay ? min : TUI_FIRST_DAY,
36
36
  });
37
37
  this.filler = tuiWithDateFiller((filler) => `${filler}${RANGE_SEPARATOR_CHAR}${filler}`);
38
- this.mask = tuiMaskito(computed(() => maskitoDateRangeOptionsGenerator({
38
+ this.mask = tuiMaskito(computed(() => maskitoDateRange({
39
39
  dateSeparator: this.format().separator,
40
40
  mode: this.format().mode,
41
41
  min: this.min().toLocalNativeDate(),
@@ -57,15 +57,15 @@ class TuiInputDateRangeDirective extends TuiInputDateBase {
57
57
  ? TuiDayRange.normalizeParse(value, this.format().mode)
58
58
  : null);
59
59
  }
60
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TuiInputDateRangeDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
61
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.21", type: TuiInputDateRangeDirective, isStandalone: true, selector: "input[tuiInputDateRange]", inputs: { max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, minLength: { classPropertyName: "minLength", publicName: "minLength", isSignal: true, isRequired: false, transformFunction: null }, maxLength: { classPropertyName: "maxLength", publicName: "maxLength", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
60
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.24", ngImport: i0, type: TuiInputDateRangeDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
61
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.24", type: TuiInputDateRangeDirective, isStandalone: true, selector: "input[tuiInputDateRange]", inputs: { max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, minLength: { classPropertyName: "minLength", publicName: "minLength", isSignal: true, isRequired: false, transformFunction: null }, maxLength: { classPropertyName: "maxLength", publicName: "maxLength", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
62
62
  // TODO: Add SelectOption after data-list in calendar-range is refactored
63
63
  tuiAsControl(TuiInputDateRangeDirective),
64
64
  tuiValueTransformerFrom(TUI_INPUT_DATE_RANGE_OPTIONS),
65
65
  tuiProvide(TUI_INPUT_DATE_OPTIONS, TUI_INPUT_DATE_RANGE_OPTIONS),
66
66
  ], usesInheritance: true, hostDirectives: [{ directive: i1.TuiWithInput }, { directive: i2.TuiDropdownAuto }, { directive: i3.MaskitoDirective }], ngImport: i0 }); }
67
67
  }
68
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TuiInputDateRangeDirective, decorators: [{
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.24", ngImport: i0, type: TuiInputDateRangeDirective, decorators: [{
69
69
  type: Directive,
70
70
  args: [{
71
71
  selector: 'input[tuiInputDateRange]',
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-input-date-range.mjs","sources":["../../../projects/kit/components/input-date-range/input-date-range.options.ts","../../../projects/kit/components/input-date-range/input-date-range.directive.ts","../../../projects/kit/components/input-date-range/input-date-range.ts","../../../projects/kit/components/input-date-range/taiga-ui-kit-components-input-date-range.ts"],"sourcesContent":["import {type FactoryProvider, inject, InjectionToken} from '@angular/core';\nimport {\n TUI_IDENTITY_VALUE_TRANSFORMER,\n type TuiValueTransformer,\n} from '@taiga-ui/cdk/classes';\nimport {type TuiDayRange} from '@taiga-ui/cdk/date-time';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/di';\nimport {\n TUI_INPUT_DATE_DEFAULT_OPTIONS,\n TUI_INPUT_DATE_OPTIONS,\n type TuiInputDateOptions,\n} from '@taiga-ui/kit/components/input-date';\n\nexport interface TuiInputDateRangeOptions extends Omit<\n TuiInputDateOptions,\n 'valueTransformer'\n> {\n readonly valueTransformer: TuiValueTransformer<TuiDayRange | null, any>;\n}\n\nexport const TUI_INPUT_DATE_RANGE_OPTIONS = new InjectionToken<TuiInputDateRangeOptions>(\n ngDevMode ? 'TUI_INPUT_DATE_RANGE_OPTIONS' : '',\n {\n factory: () => ({\n ...inject(TUI_INPUT_DATE_OPTIONS),\n valueTransformer: TUI_IDENTITY_VALUE_TRANSFORMER,\n }),\n },\n);\n\nexport const tuiInputDateRangeOptionsProvider = (\n options: Partial<TuiInputDateRangeOptions>,\n): FactoryProvider =>\n tuiProvideOptions(\n TUI_INPUT_DATE_RANGE_OPTIONS,\n options,\n TUI_INPUT_DATE_DEFAULT_OPTIONS,\n );\n","import {computed, Directive, input} from '@angular/core';\nimport {MaskitoDirective} from '@maskito/angular';\nimport {maskitoDateRangeOptionsGenerator} from '@maskito/kit';\nimport {tuiAsControl, tuiValueTransformerFrom} from '@taiga-ui/cdk/classes';\nimport {\n DATE_RANGE_FILLER_LENGTH,\n RANGE_SEPARATOR_CHAR,\n TUI_FIRST_DAY,\n TUI_LAST_DAY,\n TuiDay,\n type TuiDayLike,\n TuiDayRange,\n} from '@taiga-ui/cdk/date-time';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/di';\nimport {tuiSetSignal} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiWithInput} from '@taiga-ui/core/components/input';\nimport {TuiDropdownAuto} from '@taiga-ui/core/portals/dropdown';\nimport {type TuiCalendarRange} from '@taiga-ui/kit/components/calendar-range';\nimport {\n TUI_INPUT_DATE_OPTIONS,\n TuiInputDateBase,\n tuiWithDateFiller,\n} from '@taiga-ui/kit/components/input-date';\nimport {tuiMaskito} from '@taiga-ui/kit/utils';\n\nimport {TUI_INPUT_DATE_RANGE_OPTIONS} from './input-date-range.options';\n\n@Directive({\n selector: 'input[tuiInputDateRange]',\n providers: [\n // TODO: Add SelectOption after data-list in calendar-range is refactored\n tuiAsControl(TuiInputDateRangeDirective),\n tuiValueTransformerFrom(TUI_INPUT_DATE_RANGE_OPTIONS),\n tuiProvide(TUI_INPUT_DATE_OPTIONS, TUI_INPUT_DATE_RANGE_OPTIONS),\n ],\n hostDirectives: [TuiWithInput, TuiDropdownAuto, MaskitoDirective],\n})\nexport class TuiInputDateRangeDirective extends TuiInputDateBase<TuiDayRange> {\n public override readonly max = input(this.options.max, {\n transform: (max: TuiDay | null): TuiDay =>\n max instanceof TuiDay ? max : TUI_LAST_DAY,\n });\n\n public override readonly min = input(this.options.min, {\n transform: (min: TuiDay | null): TuiDay =>\n min instanceof TuiDay ? min : TUI_FIRST_DAY,\n });\n\n protected override readonly filler = tuiWithDateFiller(\n (filler) => `${filler}${RANGE_SEPARATOR_CHAR}${filler}`,\n );\n\n protected readonly mask = tuiMaskito(\n computed(() =>\n maskitoDateRangeOptionsGenerator({\n dateSeparator: this.format().separator,\n mode: this.format().mode,\n min: this.min().toLocalNativeDate(),\n max: this.max().toLocalNativeDate(),\n minLength: this.minLength() || {},\n maxLength: this.maxLength() || {},\n }),\n ),\n );\n\n public readonly minLength = input<TuiDayLike | null>(null);\n public readonly maxLength = input<TuiDayLike | null>(null);\n\n protected override processCalendar(calendar: TuiCalendarRange): void {\n super.processCalendar(calendar);\n\n tuiSetSignal(calendar.minLength, this.minLength());\n tuiSetSignal(calendar.maxLength, this.maxLength());\n }\n\n protected override onValueChange(value: string): void {\n this.control?.control?.updateValueAndValidity({emitEvent: false});\n this.onChange(\n value.length === DATE_RANGE_FILLER_LENGTH\n ? TuiDayRange.normalizeParse(value, this.format().mode)\n : null,\n );\n }\n}\n","import {TuiLabel} from '@taiga-ui/core/components/label';\nimport {\n TuiTextfieldComponent,\n TuiTextfieldOptionsDirective,\n} from '@taiga-ui/core/components/textfield';\nimport {TuiDropdownContent} from '@taiga-ui/core/portals/dropdown';\nimport {TuiCalendarRange} from '@taiga-ui/kit/components/calendar-range';\n\nimport {TuiInputDateRangeDirective} from './input-date-range.directive';\n\nexport const TuiInputDateRange = [\n TuiInputDateRangeDirective,\n TuiCalendarRange,\n TuiLabel,\n TuiTextfieldComponent,\n TuiTextfieldOptionsDirective,\n TuiDropdownContent,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-kit-components-input-date-range.mjs","sources":["../../../projects/kit/components/input-date-range/input-date-range.options.ts","../../../projects/kit/components/input-date-range/input-date-range.directive.ts","../../../projects/kit/components/input-date-range/input-date-range.ts","../../../projects/kit/components/input-date-range/taiga-ui-kit-components-input-date-range.ts"],"sourcesContent":["import {type FactoryProvider, inject, InjectionToken} from '@angular/core';\nimport {\n TUI_IDENTITY_VALUE_TRANSFORMER,\n type TuiValueTransformer,\n} from '@taiga-ui/cdk/classes';\nimport {type TuiDayRange} from '@taiga-ui/cdk/date-time';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/di';\nimport {\n TUI_INPUT_DATE_DEFAULT_OPTIONS,\n TUI_INPUT_DATE_OPTIONS,\n type TuiInputDateOptions,\n} from '@taiga-ui/kit/components/input-date';\n\nexport interface TuiInputDateRangeOptions extends Omit<\n TuiInputDateOptions,\n 'valueTransformer'\n> {\n readonly valueTransformer: TuiValueTransformer<TuiDayRange | null, any>;\n}\n\nexport const TUI_INPUT_DATE_RANGE_OPTIONS = new InjectionToken<TuiInputDateRangeOptions>(\n ngDevMode ? 'TUI_INPUT_DATE_RANGE_OPTIONS' : '',\n {\n factory: () => ({\n ...inject(TUI_INPUT_DATE_OPTIONS),\n valueTransformer: TUI_IDENTITY_VALUE_TRANSFORMER,\n }),\n },\n);\n\nexport const tuiInputDateRangeOptionsProvider = (\n options: Partial<TuiInputDateRangeOptions>,\n): FactoryProvider =>\n tuiProvideOptions(\n TUI_INPUT_DATE_RANGE_OPTIONS,\n options,\n TUI_INPUT_DATE_DEFAULT_OPTIONS,\n );\n","import {computed, Directive, input} from '@angular/core';\nimport {MaskitoDirective} from '@maskito/angular';\nimport {maskitoDateRange} from '@maskito/kit';\nimport {tuiAsControl, tuiValueTransformerFrom} from '@taiga-ui/cdk/classes';\nimport {\n DATE_RANGE_FILLER_LENGTH,\n RANGE_SEPARATOR_CHAR,\n TUI_FIRST_DAY,\n TUI_LAST_DAY,\n TuiDay,\n type TuiDayLike,\n TuiDayRange,\n} from '@taiga-ui/cdk/date-time';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/di';\nimport {tuiSetSignal} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiWithInput} from '@taiga-ui/core/components/input';\nimport {TuiDropdownAuto} from '@taiga-ui/core/portals/dropdown';\nimport {type TuiCalendarRange} from '@taiga-ui/kit/components/calendar-range';\nimport {\n TUI_INPUT_DATE_OPTIONS,\n TuiInputDateBase,\n tuiWithDateFiller,\n} from '@taiga-ui/kit/components/input-date';\nimport {tuiMaskito} from '@taiga-ui/kit/utils';\n\nimport {TUI_INPUT_DATE_RANGE_OPTIONS} from './input-date-range.options';\n\n@Directive({\n selector: 'input[tuiInputDateRange]',\n providers: [\n // TODO: Add SelectOption after data-list in calendar-range is refactored\n tuiAsControl(TuiInputDateRangeDirective),\n tuiValueTransformerFrom(TUI_INPUT_DATE_RANGE_OPTIONS),\n tuiProvide(TUI_INPUT_DATE_OPTIONS, TUI_INPUT_DATE_RANGE_OPTIONS),\n ],\n hostDirectives: [TuiWithInput, TuiDropdownAuto, MaskitoDirective],\n})\nexport class TuiInputDateRangeDirective extends TuiInputDateBase<TuiDayRange> {\n public override readonly max = input(this.options.max, {\n transform: (max: TuiDay | null): TuiDay =>\n max instanceof TuiDay ? max : TUI_LAST_DAY,\n });\n\n public override readonly min = input(this.options.min, {\n transform: (min: TuiDay | null): TuiDay =>\n min instanceof TuiDay ? min : TUI_FIRST_DAY,\n });\n\n protected override readonly filler = tuiWithDateFiller(\n (filler) => `${filler}${RANGE_SEPARATOR_CHAR}${filler}`,\n );\n\n protected readonly mask = tuiMaskito(\n computed(() =>\n maskitoDateRange({\n dateSeparator: this.format().separator,\n mode: this.format().mode,\n min: this.min().toLocalNativeDate(),\n max: this.max().toLocalNativeDate(),\n minLength: this.minLength() || {},\n maxLength: this.maxLength() || {},\n }),\n ),\n );\n\n public readonly minLength = input<TuiDayLike | null>(null);\n public readonly maxLength = input<TuiDayLike | null>(null);\n\n protected override processCalendar(calendar: TuiCalendarRange): void {\n super.processCalendar(calendar);\n\n tuiSetSignal(calendar.minLength, this.minLength());\n tuiSetSignal(calendar.maxLength, this.maxLength());\n }\n\n protected override onValueChange(value: string): void {\n this.control?.control?.updateValueAndValidity({emitEvent: false});\n this.onChange(\n value.length === DATE_RANGE_FILLER_LENGTH\n ? TuiDayRange.normalizeParse(value, this.format().mode)\n : null,\n );\n }\n}\n","import {TuiLabel} from '@taiga-ui/core/components/label';\nimport {\n TuiTextfieldComponent,\n TuiTextfieldOptionsDirective,\n} from '@taiga-ui/core/components/textfield';\nimport {TuiDropdownContent} from '@taiga-ui/core/portals/dropdown';\nimport {TuiCalendarRange} from '@taiga-ui/kit/components/calendar-range';\n\nimport {TuiInputDateRangeDirective} from './input-date-range.directive';\n\nexport const TuiInputDateRange = [\n TuiInputDateRangeDirective,\n TuiCalendarRange,\n TuiLabel,\n TuiTextfieldComponent,\n TuiTextfieldOptionsDirective,\n TuiDropdownContent,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}