@taiga-ui/kit 4.38.0 → 4.39.0-canary.ad6c629

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 (122) hide show
  1. package/components/action-bar/action-bar.component.d.ts +2 -2
  2. package/components/badge-notification/badge-notification.component.d.ts +2 -2
  3. package/components/carousel/carousel.directive.d.ts +1 -0
  4. package/components/combo-box/combo-box.directive.d.ts +27 -0
  5. package/components/combo-box/index.d.ts +1 -0
  6. package/components/drawer/drawer.component.d.ts +3 -6
  7. package/components/files/input-files/input-files-validator.directive.d.ts +4 -5
  8. package/components/index.d.ts +2 -0
  9. package/components/input-date/index.d.ts +5 -0
  10. package/components/input-date/input-date.component.d.ts +9 -0
  11. package/components/input-date/input-date.d.ts +5 -0
  12. package/components/input-date/input-date.directive.d.ts +34 -0
  13. package/components/input-date/input-date.options.d.ts +17 -0
  14. package/components/input-date/input-date.validator.d.ts +10 -0
  15. package/components/input-month/index.d.ts +1 -1
  16. package/components/input-month/{native-month-picker/native-month-picker.component.d.ts → input-month.component.d.ts} +4 -5
  17. package/components/input-month/input-month.d.ts +2 -2
  18. package/components/input-month/input-month.directive.d.ts +3 -3
  19. package/components/input-month/input-month.options.d.ts +7 -13
  20. package/components/input-month-range/index.d.ts +1 -0
  21. package/components/input-month-range/input-month-range.options.d.ts +11 -0
  22. package/components/line-clamp/line-clamp-box.component.d.ts +2 -1
  23. package/components/pdf-viewer/pdf-viewer.component.d.ts +2 -2
  24. package/components/preview/preview-dialog/preview-dialog.component.d.ts +2 -8
  25. package/components/pulse/pulse.component.d.ts +2 -2
  26. package/components/push/push-alert.component.d.ts +2 -2
  27. package/components/select/select.directive.d.ts +1 -1
  28. package/directives/unfinished-validator/unfinished-validator.directive.d.ts +3 -1
  29. package/esm2022/components/action-bar/action-bar.component.mjs +8 -12
  30. package/esm2022/components/badge-notification/badge-notification.component.mjs +6 -9
  31. package/esm2022/components/calendar-month/calendar-month.component.mjs +2 -2
  32. package/esm2022/components/carousel/carousel.directive.mjs +5 -4
  33. package/esm2022/components/combo-box/combo-box.directive.mjs +113 -0
  34. package/esm2022/components/combo-box/index.mjs +2 -0
  35. package/esm2022/components/combo-box/taiga-ui-kit-components-combo-box.mjs +5 -0
  36. package/esm2022/components/drawer/drawer.component.mjs +13 -16
  37. package/esm2022/components/files/input-files/input-files-validator.directive.mjs +16 -19
  38. package/esm2022/components/index.mjs +3 -1
  39. package/esm2022/components/input-date/index.mjs +6 -0
  40. package/esm2022/components/input-date/input-date.component.mjs +33 -0
  41. package/esm2022/components/input-date/input-date.directive.mjs +137 -0
  42. package/esm2022/components/input-date/input-date.mjs +11 -0
  43. package/esm2022/components/input-date/input-date.options.mjs +11 -0
  44. package/esm2022/components/input-date/input-date.validator.mjs +31 -0
  45. package/esm2022/components/input-date/taiga-ui-kit-components-input-date.mjs +5 -0
  46. package/esm2022/components/input-month/index.mjs +2 -2
  47. package/esm2022/components/input-month/input-month.component.mjs +53 -0
  48. package/esm2022/components/input-month/input-month.directive.mjs +17 -10
  49. package/esm2022/components/input-month/input-month.mjs +3 -3
  50. package/esm2022/components/input-month/input-month.options.mjs +12 -12
  51. package/esm2022/components/input-month-range/index.mjs +2 -1
  52. package/esm2022/components/input-month-range/input-month-range.directive.mjs +13 -6
  53. package/esm2022/components/input-month-range/input-month-range.options.mjs +11 -0
  54. package/esm2022/components/input-number/input-number.directive.mjs +3 -7
  55. package/esm2022/components/line-clamp/line-clamp-box.component.mjs +7 -6
  56. package/esm2022/components/pdf-viewer/pdf-viewer.component.mjs +8 -11
  57. package/esm2022/components/preview/preview-dialog/preview-dialog.component.mjs +10 -20
  58. package/esm2022/components/preview/preview.component.mjs +3 -4
  59. package/esm2022/components/pulse/pulse.component.mjs +6 -10
  60. package/esm2022/components/push/push-alert.component.mjs +8 -21
  61. package/esm2022/components/push/push.component.mjs +2 -2
  62. package/esm2022/components/select/select.directive.mjs +3 -2
  63. package/esm2022/components/slider/slider.component.mjs +2 -2
  64. package/esm2022/directives/chevron/chevron.directive.mjs +2 -2
  65. package/esm2022/directives/unfinished-validator/unfinished-validator.directive.mjs +10 -4
  66. package/esm2022/directives/unfinished-validator/unfinished.validator.mjs +2 -2
  67. package/esm2022/pipes/filter-by-input/filter-by-input.pipe.mjs +7 -2
  68. package/esm2022/tokens/calendar-date-stream.mjs +2 -1
  69. package/esm2022/tokens/date-inputs-value-transformers.mjs +3 -3
  70. package/fesm2022/taiga-ui-kit-components-action-bar.mjs +7 -11
  71. package/fesm2022/taiga-ui-kit-components-action-bar.mjs.map +1 -1
  72. package/fesm2022/taiga-ui-kit-components-badge-notification.mjs +5 -8
  73. package/fesm2022/taiga-ui-kit-components-badge-notification.mjs.map +1 -1
  74. package/fesm2022/taiga-ui-kit-components-calendar-month.mjs +1 -1
  75. package/fesm2022/taiga-ui-kit-components-calendar-month.mjs.map +1 -1
  76. package/fesm2022/taiga-ui-kit-components-carousel.mjs +4 -3
  77. package/fesm2022/taiga-ui-kit-components-carousel.mjs.map +1 -1
  78. package/fesm2022/taiga-ui-kit-components-combo-box.mjs +119 -0
  79. package/fesm2022/taiga-ui-kit-components-combo-box.mjs.map +1 -0
  80. package/fesm2022/taiga-ui-kit-components-drawer.mjs +12 -15
  81. package/fesm2022/taiga-ui-kit-components-drawer.mjs.map +1 -1
  82. package/fesm2022/taiga-ui-kit-components-files.mjs +16 -20
  83. package/fesm2022/taiga-ui-kit-components-files.mjs.map +1 -1
  84. package/fesm2022/taiga-ui-kit-components-input-date.mjs +208 -0
  85. package/fesm2022/taiga-ui-kit-components-input-date.mjs.map +1 -0
  86. package/fesm2022/taiga-ui-kit-components-input-month-range.mjs +21 -6
  87. package/fesm2022/taiga-ui-kit-components-input-month-range.mjs.map +1 -1
  88. package/fesm2022/taiga-ui-kit-components-input-month.mjs +44 -41
  89. package/fesm2022/taiga-ui-kit-components-input-month.mjs.map +1 -1
  90. package/fesm2022/taiga-ui-kit-components-input-number.mjs +2 -6
  91. package/fesm2022/taiga-ui-kit-components-input-number.mjs.map +1 -1
  92. package/fesm2022/taiga-ui-kit-components-line-clamp.mjs +8 -7
  93. package/fesm2022/taiga-ui-kit-components-line-clamp.mjs.map +1 -1
  94. package/fesm2022/taiga-ui-kit-components-pdf-viewer.mjs +7 -10
  95. package/fesm2022/taiga-ui-kit-components-pdf-viewer.mjs.map +1 -1
  96. package/fesm2022/taiga-ui-kit-components-preview-preview-dialog.mjs +9 -19
  97. package/fesm2022/taiga-ui-kit-components-preview-preview-dialog.mjs.map +1 -1
  98. package/fesm2022/taiga-ui-kit-components-preview.mjs +10 -20
  99. package/fesm2022/taiga-ui-kit-components-preview.mjs.map +1 -1
  100. package/fesm2022/taiga-ui-kit-components-pulse.mjs +5 -9
  101. package/fesm2022/taiga-ui-kit-components-pulse.mjs.map +1 -1
  102. package/fesm2022/taiga-ui-kit-components-push.mjs +8 -20
  103. package/fesm2022/taiga-ui-kit-components-push.mjs.map +1 -1
  104. package/fesm2022/taiga-ui-kit-components-select.mjs +2 -2
  105. package/fesm2022/taiga-ui-kit-components-select.mjs.map +1 -1
  106. package/fesm2022/taiga-ui-kit-components-slider.mjs +1 -1
  107. package/fesm2022/taiga-ui-kit-components-slider.mjs.map +1 -1
  108. package/fesm2022/taiga-ui-kit-components.mjs +2 -0
  109. package/fesm2022/taiga-ui-kit-components.mjs.map +1 -1
  110. package/fesm2022/taiga-ui-kit-directives-chevron.mjs +2 -2
  111. package/fesm2022/taiga-ui-kit-directives-chevron.mjs.map +1 -1
  112. package/fesm2022/taiga-ui-kit-directives-unfinished-validator.mjs +10 -4
  113. package/fesm2022/taiga-ui-kit-directives-unfinished-validator.mjs.map +1 -1
  114. package/fesm2022/taiga-ui-kit-pipes-filter-by-input.mjs +6 -1
  115. package/fesm2022/taiga-ui-kit-pipes-filter-by-input.mjs.map +1 -1
  116. package/fesm2022/taiga-ui-kit-tokens.mjs +3 -2
  117. package/fesm2022/taiga-ui-kit-tokens.mjs.map +1 -1
  118. package/package.json +22 -10
  119. package/pipes/filter-by-input/filter-by-input.pipe.d.ts +1 -0
  120. package/tokens/calendar-date-stream.d.ts +1 -0
  121. package/tokens/i18n.d.ts +1 -0
  122. package/esm2022/components/input-month/native-month-picker/native-month-picker.component.mjs +0 -55
@@ -4,6 +4,7 @@ import { TUI_DEFAULT_MATCHER } from '@taiga-ui/cdk/constants';
4
4
  import { tuiPure } from '@taiga-ui/cdk/utils/miscellaneous';
5
5
  import { TUI_DATA_LIST_HOST } from '@taiga-ui/core/components/data-list';
6
6
  import { TuiTextfieldComponent } from '@taiga-ui/core/components/textfield';
7
+ import { TUI_ITEMS_HANDLERS } from '@taiga-ui/core/directives/items-handlers';
7
8
  import { tuiIsFlat } from '@taiga-ui/kit/utils';
8
9
  import * as i0 from "@angular/core";
9
10
  // TODO: Consider replacing TuiTextfieldComponent with proper token once we refactor textfields
@@ -12,9 +13,13 @@ class TuiFilterByInputPipe {
12
13
  // TODO: Remove optional after legacy controls are dropped
13
14
  this.textfield = inject(TuiTextfieldComponent, { optional: true });
14
15
  this.host = inject(TUI_DATA_LIST_HOST);
16
+ this.itemsHandlers = inject(TUI_ITEMS_HANDLERS);
15
17
  }
16
18
  transform(items, matcher = TUI_DEFAULT_MATCHER) {
17
- return this.filter(items, matcher, this.host.stringify || String, this.textfield?.input?.nativeElement.value ||
19
+ return this.filter(items, matcher, (this.textfield
20
+ ? this.itemsHandlers.stringify()
21
+ : // TODO(v5): delete backward compatibility
22
+ this.host.stringify) || String, this.textfield?.input?.nativeElement.value ||
18
23
  this.host.nativeFocusableElement?.value ||
19
24
  '');
20
25
  }
@@ -60,4 +65,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
60
65
  pure: false,
61
66
  }]
62
67
  }], propDecorators: { filter: [] } });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWJ5LWlucHV0LnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvcGlwZXMvZmlsdGVyLWJ5LWlucHV0L2ZpbHRlci1ieS1pbnB1dC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUU1RCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDMUQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDdkUsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLHFCQUFxQixDQUFDOztBQUU5QywrRkFBK0Y7QUFDL0YsTUFLYSxvQkFBb0I7SUFMakM7UUFNSSwwREFBMEQ7UUFDekMsY0FBUyxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO1FBQzVELFNBQUksR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztLQXFGdEQ7SUF0RVUsU0FBUyxDQUNaLEtBQXdELEVBQ3hELFVBQStCLG1CQUFtQjtRQUVsRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQ2QsS0FBSyxFQUNMLE9BQU8sRUFDUCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxNQUFNLEVBQzdCLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLGFBQWEsQ0FBQyxLQUFLO1lBQ3JDLElBQUksQ0FBQyxJQUFZLENBQUMsc0JBQXNCLEVBQUUsS0FBSztZQUNoRCxFQUFFLENBQ1QsQ0FBQztJQUNOLENBQUM7SUFHTyxNQUFNLENBQ1YsS0FBd0QsRUFDeEQsT0FBNEIsRUFDNUIsU0FBOEIsRUFDOUIsS0FBYTtRQUViLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDUixPQUFPLElBQUksQ0FBQztTQUNmO1FBRUQsT0FBTyxTQUFTLENBQUMsS0FBSyxDQUFDO1lBQ25CLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQztZQUNuRCxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRU8sVUFBVSxDQUNkLEtBQW1CLEVBQ25CLE9BQTRCLEVBQzVCLFNBQThCLEVBQzlCLEtBQWE7UUFFYixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFckQsT0FBTyxLQUFLLElBQUksSUFBSTtZQUNoQixDQUFDLENBQUMsS0FBSztZQUNQLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFTyxRQUFRLENBQ1osS0FBa0MsRUFDbEMsT0FBNEIsRUFDNUIsU0FBOEIsRUFDOUIsS0FBYTtRQUViLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQztRQUVsRixPQUFPLEtBQUssSUFBSSxJQUFJO1lBQ2hCLENBQUMsQ0FBQyxLQUFLO1lBQ1AsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRU8sUUFBUSxDQUNaLEtBQW1CLEVBQ25CLFNBQThCLEVBQzlCLEtBQWE7UUFFYixvREFBb0Q7UUFDcEQsSUFBSyxJQUFJLENBQUMsSUFBWSxDQUFDLFlBQVksRUFBRTtZQUNqQyxPQUFPLFNBQVMsQ0FBQztTQUNwQjtRQUVELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FDYixDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLGlCQUFpQixFQUFFLEtBQUssS0FBSyxDQUFDLGlCQUFpQixFQUFFLENBQzlFLENBQUM7SUFDTixDQUFDOytHQXZGUSxvQkFBb0I7NkdBQXBCLG9CQUFvQjs7QUFpQ3JCO0lBRFAsT0FBTztrREFjUDtTQTlDUSxvQkFBb0I7NEZBQXBCLG9CQUFvQjtrQkFMaEMsSUFBSTttQkFBQztvQkFDRixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFLGtCQUFrQjtvQkFDeEIsSUFBSSxFQUFFLEtBQUs7aUJBQ2Q7OEJBa0NXLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7UGlwZVRyYW5zZm9ybX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2luamVjdCwgUGlwZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1RVSV9ERUZBVUxUX01BVENIRVJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvY29uc3RhbnRzJztcbmltcG9ydCB0eXBlIHtUdWlTdHJpbmdIYW5kbGVyLCBUdWlTdHJpbmdNYXRjaGVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3R5cGVzJztcbmltcG9ydCB7dHVpUHVyZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB7VFVJX0RBVEFfTElTVF9IT1NUfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL2RhdGEtbGlzdCc7XG5pbXBvcnQge1R1aVRleHRmaWVsZENvbXBvbmVudH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy90ZXh0ZmllbGQnO1xuaW1wb3J0IHt0dWlJc0ZsYXR9IGZyb20gJ0B0YWlnYS11aS9raXQvdXRpbHMnO1xuXG4vLyBUT0RPOiBDb25zaWRlciByZXBsYWNpbmcgVHVpVGV4dGZpZWxkQ29tcG9uZW50IHdpdGggcHJvcGVyIHRva2VuIG9uY2Ugd2UgcmVmYWN0b3IgdGV4dGZpZWxkc1xuQFBpcGUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgbmFtZTogJ3R1aUZpbHRlckJ5SW5wdXQnLFxuICAgIHB1cmU6IGZhbHNlLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlGaWx0ZXJCeUlucHV0UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIC8vIFRPRE86IFJlbW92ZSBvcHRpb25hbCBhZnRlciBsZWdhY3kgY29udHJvbHMgYXJlIGRyb3BwZWRcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZCA9IGluamVjdChUdWlUZXh0ZmllbGRDb21wb25lbnQsIHtvcHRpb25hbDogdHJ1ZX0pO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaG9zdCA9IGluamVjdChUVUlfREFUQV9MSVNUX0hPU1QpO1xuXG4gICAgcHVibGljIHRyYW5zZm9ybTxUPihcbiAgICAgICAgaXRlbXM6IFJlYWRvbmx5QXJyYXk8cmVhZG9ubHkgVFtdPixcbiAgICAgICAgbWF0Y2hlcj86IFR1aVN0cmluZ01hdGNoZXI8VD4sXG4gICAgKTogUmVhZG9ubHlBcnJheTxyZWFkb25seSBUW10+O1xuICAgIHB1YmxpYyB0cmFuc2Zvcm08VD4oaXRlbXM6IHJlYWRvbmx5IFRbXSwgbWF0Y2hlcj86IFR1aVN0cmluZ01hdGNoZXI8VD4pOiByZWFkb25seSBUW107XG4gICAgcHVibGljIHRyYW5zZm9ybTxUPihcbiAgICAgICAgaXRlbXM6IFJlYWRvbmx5QXJyYXk8cmVhZG9ubHkgVFtdPiB8IG51bGwsXG4gICAgICAgIG1hdGNoZXI/OiBUdWlTdHJpbmdNYXRjaGVyPFQ+LFxuICAgICk6IFJlYWRvbmx5QXJyYXk8cmVhZG9ubHkgVFtdPiB8IG51bGw7XG4gICAgcHVibGljIHRyYW5zZm9ybTxUPihcbiAgICAgICAgaXRlbXM6IHJlYWRvbmx5IFRbXSB8IG51bGwsXG4gICAgICAgIG1hdGNoZXI/OiBUdWlTdHJpbmdNYXRjaGVyPFQ+LFxuICAgICk6IHJlYWRvbmx5IFRbXSB8IG51bGw7XG4gICAgcHVibGljIHRyYW5zZm9ybTxUPihcbiAgICAgICAgaXRlbXM6IFJlYWRvbmx5QXJyYXk8cmVhZG9ubHkgVFtdPiB8IHJlYWRvbmx5IFRbXSB8IG51bGwsXG4gICAgICAgIG1hdGNoZXI6IFR1aVN0cmluZ01hdGNoZXI8VD4gPSBUVUlfREVGQVVMVF9NQVRDSEVSLFxuICAgICk6IFJlYWRvbmx5QXJyYXk8cmVhZG9ubHkgVFtdPiB8IHJlYWRvbmx5IFRbXSB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXI8VD4oXG4gICAgICAgICAgICBpdGVtcyxcbiAgICAgICAgICAgIG1hdGNoZXIsXG4gICAgICAgICAgICB0aGlzLmhvc3Quc3RyaW5naWZ5IHx8IFN0cmluZyxcbiAgICAgICAgICAgIHRoaXMudGV4dGZpZWxkPy5pbnB1dD8ubmF0aXZlRWxlbWVudC52YWx1ZSB8fFxuICAgICAgICAgICAgICAgICh0aGlzLmhvc3QgYXMgYW55KS5uYXRpdmVGb2N1c2FibGVFbGVtZW50Py52YWx1ZSB8fFxuICAgICAgICAgICAgICAgICcnLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBmaWx0ZXI8VD4oXG4gICAgICAgIGl0ZW1zOiBSZWFkb25seUFycmF5PHJlYWRvbmx5IFRbXT4gfCByZWFkb25seSBUW10gfCBudWxsLFxuICAgICAgICBtYXRjaGVyOiBUdWlTdHJpbmdNYXRjaGVyPFQ+LFxuICAgICAgICBzdHJpbmdpZnk6IFR1aVN0cmluZ0hhbmRsZXI8VD4sXG4gICAgICAgIHF1ZXJ5OiBzdHJpbmcsXG4gICAgKTogUmVhZG9ubHlBcnJheTxyZWFkb25seSBUW10+IHwgcmVhZG9ubHkgVFtdIHwgbnVsbCB7XG4gICAgICAgIGlmICghaXRlbXMpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHR1aUlzRmxhdChpdGVtcylcbiAgICAgICAgICAgID8gdGhpcy5maWx0ZXJGbGF0KGl0ZW1zLCBtYXRjaGVyLCBzdHJpbmdpZnksIHF1ZXJ5KVxuICAgICAgICAgICAgOiB0aGlzLmZpbHRlcjJkKGl0ZW1zLCBtYXRjaGVyLCBzdHJpbmdpZnksIHF1ZXJ5KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbHRlckZsYXQ8VD4oXG4gICAgICAgIGl0ZW1zOiByZWFkb25seSBUW10sXG4gICAgICAgIG1hdGNoZXI6IFR1aVN0cmluZ01hdGNoZXI8VD4sXG4gICAgICAgIHN0cmluZ2lmeTogVHVpU3RyaW5nSGFuZGxlcjxUPixcbiAgICAgICAgcXVlcnk6IHN0cmluZyxcbiAgICApOiByZWFkb25seSBUW10ge1xuICAgICAgICBjb25zdCBtYXRjaCA9IHRoaXMuZ2V0TWF0Y2goaXRlbXMsIHN0cmluZ2lmeSwgcXVlcnkpO1xuXG4gICAgICAgIHJldHVybiBtYXRjaCAhPSBudWxsXG4gICAgICAgICAgICA/IGl0ZW1zXG4gICAgICAgICAgICA6IGl0ZW1zLmZpbHRlcigoaXRlbSkgPT4gbWF0Y2hlcihpdGVtLCBxdWVyeSwgc3RyaW5naWZ5KSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaWx0ZXIyZDxUPihcbiAgICAgICAgaXRlbXM6IFJlYWRvbmx5QXJyYXk8cmVhZG9ubHkgVFtdPixcbiAgICAgICAgbWF0Y2hlcjogVHVpU3RyaW5nTWF0Y2hlcjxUPixcbiAgICAgICAgc3RyaW5naWZ5OiBUdWlTdHJpbmdIYW5kbGVyPFQ+LFxuICAgICAgICBxdWVyeTogc3RyaW5nLFxuICAgICk6IFJlYWRvbmx5QXJyYXk8cmVhZG9ubHkgVFtdPiB7XG4gICAgICAgIGNvbnN0IG1hdGNoID0gaXRlbXMuZmluZCgoaXRlbSkgPT4gdGhpcy5nZXRNYXRjaChpdGVtLCBzdHJpbmdpZnksIHF1ZXJ5KSAhPSBudWxsKTtcblxuICAgICAgICByZXR1cm4gbWF0Y2ggIT0gbnVsbFxuICAgICAgICAgICAgPyBpdGVtc1xuICAgICAgICAgICAgOiBpdGVtcy5tYXAoKGlubmVyKSA9PiB0aGlzLmZpbHRlckZsYXQoaW5uZXIsIG1hdGNoZXIsIHN0cmluZ2lmeSwgcXVlcnkpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE1hdGNoPFQ+KFxuICAgICAgICBpdGVtczogcmVhZG9ubHkgVFtdLFxuICAgICAgICBzdHJpbmdpZnk6IFR1aVN0cmluZ0hhbmRsZXI8VD4sXG4gICAgICAgIHF1ZXJ5OiBzdHJpbmcsXG4gICAgKTogVCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIC8vIFRPRE86IFJlZmFjdG9yIHdoZW4gdHVpLXRleHRmaWVsZFttdWx0aV0gaXMgcmVhZHlcbiAgICAgICAgaWYgKCh0aGlzLmhvc3QgYXMgYW55KS50YWdWYWxpZGF0b3IpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaXRlbXMuZmluZChcbiAgICAgICAgICAgIChpdGVtKSA9PiBzdHJpbmdpZnkoaXRlbSkudG9Mb2NhbGVMb3dlckNhc2UoKSA9PT0gcXVlcnkudG9Mb2NhbGVMb3dlckNhc2UoKSxcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWJ5LWlucHV0LnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvcGlwZXMvZmlsdGVyLWJ5LWlucHV0L2ZpbHRlci1ieS1pbnB1dC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUU1RCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDMUQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDdkUsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFFMUUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDNUUsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLHFCQUFxQixDQUFDOztBQUU5QywrRkFBK0Y7QUFDL0YsTUFLYSxvQkFBb0I7SUFMakM7UUFNSSwwREFBMEQ7UUFDekMsY0FBUyxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO1FBQzVELFNBQUksR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNsQyxrQkFBYSxHQUMxQixNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztLQXdGbEM7SUF6RVUsU0FBUyxDQUNaLEtBQXdELEVBQ3hELFVBQStCLG1CQUFtQjtRQUVsRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQ2QsS0FBSyxFQUNMLE9BQU8sRUFDUCxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQ1gsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFO1lBQ2hDLENBQUMsQ0FBQywwQ0FBMEM7Z0JBQzFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksTUFBTSxFQUNwQyxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxhQUFhLENBQUMsS0FBSztZQUNyQyxJQUFJLENBQUMsSUFBWSxDQUFDLHNCQUFzQixFQUFFLEtBQUs7WUFDaEQsRUFBRSxDQUNULENBQUM7SUFDTixDQUFDO0lBR08sTUFBTSxDQUNWLEtBQXdELEVBQ3hELE9BQTRCLEVBQzVCLFNBQThCLEVBQzlCLEtBQWE7UUFFYixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1IsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUVELE9BQU8sU0FBUyxDQUFDLEtBQUssQ0FBQztZQUNuQixDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUM7WUFDbkQsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVPLFVBQVUsQ0FDZCxLQUFtQixFQUNuQixPQUE0QixFQUM1QixTQUE4QixFQUM5QixLQUFhO1FBRWIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXJELE9BQU8sS0FBSyxJQUFJLElBQUk7WUFDaEIsQ0FBQyxDQUFDLEtBQUs7WUFDUCxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRU8sUUFBUSxDQUNaLEtBQWtDLEVBQ2xDLE9BQTRCLEVBQzVCLFNBQThCLEVBQzlCLEtBQWE7UUFFYixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUM7UUFFbEYsT0FBTyxLQUFLLElBQUksSUFBSTtZQUNoQixDQUFDLENBQUMsS0FBSztZQUNQLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUVPLFFBQVEsQ0FDWixLQUFtQixFQUNuQixTQUE4QixFQUM5QixLQUFhO1FBRWIsb0RBQW9EO1FBQ3BELElBQUssSUFBSSxDQUFDLElBQVksQ0FBQyxZQUFZLEVBQUU7WUFDakMsT0FBTyxTQUFTLENBQUM7U0FDcEI7UUFFRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQ2IsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxLQUFLLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxDQUM5RSxDQUFDO0lBQ04sQ0FBQzsrR0E1RlEsb0JBQW9COzZHQUFwQixvQkFBb0I7O0FBc0NyQjtJQURQLE9BQU87a0RBY1A7U0FuRFEsb0JBQW9COzRGQUFwQixvQkFBb0I7a0JBTGhDLElBQUk7bUJBQUM7b0JBQ0YsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLElBQUksRUFBRSxrQkFBa0I7b0JBQ3hCLElBQUksRUFBRSxLQUFLO2lCQUNkOzhCQXVDVyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1BpcGVUcmFuc2Zvcm19IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtpbmplY3QsIFBpcGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUVUlfREVGQVVMVF9NQVRDSEVSfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NvbnN0YW50cyc7XG5pbXBvcnQgdHlwZSB7VHVpU3RyaW5nSGFuZGxlciwgVHVpU3RyaW5nTWF0Y2hlcn0gZnJvbSAnQHRhaWdhLXVpL2Nkay90eXBlcyc7XG5pbXBvcnQge3R1aVB1cmV9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge1RVSV9EQVRBX0xJU1RfSE9TVH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9kYXRhLWxpc3QnO1xuaW1wb3J0IHtUdWlUZXh0ZmllbGRDb21wb25lbnR9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvdGV4dGZpZWxkJztcbmltcG9ydCB0eXBlIHtUdWlJdGVtc0hhbmRsZXJzfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL2l0ZW1zLWhhbmRsZXJzJztcbmltcG9ydCB7VFVJX0lURU1TX0hBTkRMRVJTfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL2l0ZW1zLWhhbmRsZXJzJztcbmltcG9ydCB7dHVpSXNGbGF0fSBmcm9tICdAdGFpZ2EtdWkva2l0L3V0aWxzJztcblxuLy8gVE9ETzogQ29uc2lkZXIgcmVwbGFjaW5nIFR1aVRleHRmaWVsZENvbXBvbmVudCB3aXRoIHByb3BlciB0b2tlbiBvbmNlIHdlIHJlZmFjdG9yIHRleHRmaWVsZHNcbkBQaXBlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIG5hbWU6ICd0dWlGaWx0ZXJCeUlucHV0JyxcbiAgICBwdXJlOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpRmlsdGVyQnlJbnB1dFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICAvLyBUT0RPOiBSZW1vdmUgb3B0aW9uYWwgYWZ0ZXIgbGVnYWN5IGNvbnRyb2xzIGFyZSBkcm9wcGVkXG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGQgPSBpbmplY3QoVHVpVGV4dGZpZWxkQ29tcG9uZW50LCB7b3B0aW9uYWw6IHRydWV9KTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhvc3QgPSBpbmplY3QoVFVJX0RBVEFfTElTVF9IT1NUKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGl0ZW1zSGFuZGxlcnM6IFR1aUl0ZW1zSGFuZGxlcnM8dW5rbm93bj4gPVxuICAgICAgICBpbmplY3QoVFVJX0lURU1TX0hBTkRMRVJTKTtcblxuICAgIHB1YmxpYyB0cmFuc2Zvcm08VD4oXG4gICAgICAgIGl0ZW1zOiBSZWFkb25seUFycmF5PHJlYWRvbmx5IFRbXT4sXG4gICAgICAgIG1hdGNoZXI/OiBUdWlTdHJpbmdNYXRjaGVyPFQ+LFxuICAgICk6IFJlYWRvbmx5QXJyYXk8cmVhZG9ubHkgVFtdPjtcbiAgICBwdWJsaWMgdHJhbnNmb3JtPFQ+KGl0ZW1zOiByZWFkb25seSBUW10sIG1hdGNoZXI/OiBUdWlTdHJpbmdNYXRjaGVyPFQ+KTogcmVhZG9ubHkgVFtdO1xuICAgIHB1YmxpYyB0cmFuc2Zvcm08VD4oXG4gICAgICAgIGl0ZW1zOiBSZWFkb25seUFycmF5PHJlYWRvbmx5IFRbXT4gfCBudWxsLFxuICAgICAgICBtYXRjaGVyPzogVHVpU3RyaW5nTWF0Y2hlcjxUPixcbiAgICApOiBSZWFkb25seUFycmF5PHJlYWRvbmx5IFRbXT4gfCBudWxsO1xuICAgIHB1YmxpYyB0cmFuc2Zvcm08VD4oXG4gICAgICAgIGl0ZW1zOiByZWFkb25seSBUW10gfCBudWxsLFxuICAgICAgICBtYXRjaGVyPzogVHVpU3RyaW5nTWF0Y2hlcjxUPixcbiAgICApOiByZWFkb25seSBUW10gfCBudWxsO1xuICAgIHB1YmxpYyB0cmFuc2Zvcm08VD4oXG4gICAgICAgIGl0ZW1zOiBSZWFkb25seUFycmF5PHJlYWRvbmx5IFRbXT4gfCByZWFkb25seSBUW10gfCBudWxsLFxuICAgICAgICBtYXRjaGVyOiBUdWlTdHJpbmdNYXRjaGVyPFQ+ID0gVFVJX0RFRkFVTFRfTUFUQ0hFUixcbiAgICApOiBSZWFkb25seUFycmF5PHJlYWRvbmx5IFRbXT4gfCByZWFkb25seSBUW10gfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyPFQ+KFxuICAgICAgICAgICAgaXRlbXMsXG4gICAgICAgICAgICBtYXRjaGVyLFxuICAgICAgICAgICAgKHRoaXMudGV4dGZpZWxkXG4gICAgICAgICAgICAgICAgPyB0aGlzLml0ZW1zSGFuZGxlcnMuc3RyaW5naWZ5KClcbiAgICAgICAgICAgICAgICA6IC8vIFRPRE8odjUpOiBkZWxldGUgYmFja3dhcmQgY29tcGF0aWJpbGl0eVxuICAgICAgICAgICAgICAgICAgdGhpcy5ob3N0LnN0cmluZ2lmeSkgfHwgU3RyaW5nLFxuICAgICAgICAgICAgdGhpcy50ZXh0ZmllbGQ/LmlucHV0Py5uYXRpdmVFbGVtZW50LnZhbHVlIHx8XG4gICAgICAgICAgICAgICAgKHRoaXMuaG9zdCBhcyBhbnkpLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQ/LnZhbHVlIHx8XG4gICAgICAgICAgICAgICAgJycsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGZpbHRlcjxUPihcbiAgICAgICAgaXRlbXM6IFJlYWRvbmx5QXJyYXk8cmVhZG9ubHkgVFtdPiB8IHJlYWRvbmx5IFRbXSB8IG51bGwsXG4gICAgICAgIG1hdGNoZXI6IFR1aVN0cmluZ01hdGNoZXI8VD4sXG4gICAgICAgIHN0cmluZ2lmeTogVHVpU3RyaW5nSGFuZGxlcjxUPixcbiAgICAgICAgcXVlcnk6IHN0cmluZyxcbiAgICApOiBSZWFkb25seUFycmF5PHJlYWRvbmx5IFRbXT4gfCByZWFkb25seSBUW10gfCBudWxsIHtcbiAgICAgICAgaWYgKCFpdGVtcykge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHVpSXNGbGF0KGl0ZW1zKVxuICAgICAgICAgICAgPyB0aGlzLmZpbHRlckZsYXQoaXRlbXMsIG1hdGNoZXIsIHN0cmluZ2lmeSwgcXVlcnkpXG4gICAgICAgICAgICA6IHRoaXMuZmlsdGVyMmQoaXRlbXMsIG1hdGNoZXIsIHN0cmluZ2lmeSwgcXVlcnkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZmlsdGVyRmxhdDxUPihcbiAgICAgICAgaXRlbXM6IHJlYWRvbmx5IFRbXSxcbiAgICAgICAgbWF0Y2hlcjogVHVpU3RyaW5nTWF0Y2hlcjxUPixcbiAgICAgICAgc3RyaW5naWZ5OiBUdWlTdHJpbmdIYW5kbGVyPFQ+LFxuICAgICAgICBxdWVyeTogc3RyaW5nLFxuICAgICk6IHJlYWRvbmx5IFRbXSB7XG4gICAgICAgIGNvbnN0IG1hdGNoID0gdGhpcy5nZXRNYXRjaChpdGVtcywgc3RyaW5naWZ5LCBxdWVyeSk7XG5cbiAgICAgICAgcmV0dXJuIG1hdGNoICE9IG51bGxcbiAgICAgICAgICAgID8gaXRlbXNcbiAgICAgICAgICAgIDogaXRlbXMuZmlsdGVyKChpdGVtKSA9PiBtYXRjaGVyKGl0ZW0sIHF1ZXJ5LCBzdHJpbmdpZnkpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbHRlcjJkPFQ+KFxuICAgICAgICBpdGVtczogUmVhZG9ubHlBcnJheTxyZWFkb25seSBUW10+LFxuICAgICAgICBtYXRjaGVyOiBUdWlTdHJpbmdNYXRjaGVyPFQ+LFxuICAgICAgICBzdHJpbmdpZnk6IFR1aVN0cmluZ0hhbmRsZXI8VD4sXG4gICAgICAgIHF1ZXJ5OiBzdHJpbmcsXG4gICAgKTogUmVhZG9ubHlBcnJheTxyZWFkb25seSBUW10+IHtcbiAgICAgICAgY29uc3QgbWF0Y2ggPSBpdGVtcy5maW5kKChpdGVtKSA9PiB0aGlzLmdldE1hdGNoKGl0ZW0sIHN0cmluZ2lmeSwgcXVlcnkpICE9IG51bGwpO1xuXG4gICAgICAgIHJldHVybiBtYXRjaCAhPSBudWxsXG4gICAgICAgICAgICA/IGl0ZW1zXG4gICAgICAgICAgICA6IGl0ZW1zLm1hcCgoaW5uZXIpID0+IHRoaXMuZmlsdGVyRmxhdChpbm5lciwgbWF0Y2hlciwgc3RyaW5naWZ5LCBxdWVyeSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TWF0Y2g8VD4oXG4gICAgICAgIGl0ZW1zOiByZWFkb25seSBUW10sXG4gICAgICAgIHN0cmluZ2lmeTogVHVpU3RyaW5nSGFuZGxlcjxUPixcbiAgICAgICAgcXVlcnk6IHN0cmluZyxcbiAgICApOiBUIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgLy8gVE9ETzogUmVmYWN0b3Igd2hlbiB0dWktdGV4dGZpZWxkW211bHRpXSBpcyByZWFkeVxuICAgICAgICBpZiAoKHRoaXMuaG9zdCBhcyBhbnkpLnRhZ1ZhbGlkYXRvcikge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpdGVtcy5maW5kKFxuICAgICAgICAgICAgKGl0ZW0pID0+IHN0cmluZ2lmeShpdGVtKS50b0xvY2FsZUxvd2VyQ2FzZSgpID09PSBxdWVyeS50b0xvY2FsZUxvd2VyQ2FzZSgpLFxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
@@ -5,6 +5,7 @@ import { tuiCreateToken } from '@taiga-ui/cdk/utils/miscellaneous';
5
5
  import { map, of } from 'rxjs';
6
6
  /**
7
7
  * Stream that emits calendar data change
8
+ * @deprecated this should be rewritten in v5
8
9
  */
9
10
  export const TUI_CALENDAR_DATE_STREAM = tuiCreateToken();
10
11
  export function tuiDateStreamWithTransformer(transformer) {
@@ -22,4 +23,4 @@ function tuiControlValueFactory(control, transformer) {
22
23
  ? tuiControlValue(control).pipe(map((value) => transformer ? transformer?.fromControlValue(value) : value))
23
24
  : of(null);
24
25
  }
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItZGF0ZS1zdHJlYW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvdG9rZW5zL2NhbGVuZGFyLWRhdGUtc3RyZWFtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzdDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUd6QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBRWpFLE9BQU8sRUFBQyxHQUFHLEVBQUUsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRTdCOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQ2pDLGNBQWMsRUFBMkMsQ0FBQztBQUU5RCxNQUFNLFVBQVUsNEJBQTRCLENBQ3hDLFdBQXFEO0lBRXJELE9BQU87UUFDSCxPQUFPLEVBQUUsd0JBQXdCO1FBQ2pDLElBQUksRUFBRTtZQUNGLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLFNBQVMsQ0FBQztZQUN2QyxDQUFDLElBQUksUUFBUSxFQUFFLEVBQUUsV0FBVyxDQUFDO1NBQ2hDO1FBQ0QsVUFBVSxFQUFFLHNCQUFzQjtLQUNyQyxDQUFDO0FBQ04sQ0FBQztBQUVELFNBQVMsc0JBQXNCLENBRzNCLE9BQXlCLEVBQ3pCLFdBQTJDO0lBRTNDLE9BQU8sT0FBTztRQUNWLENBQUMsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUN6QixHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUNWLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBRSxLQUFXLENBQ3BFLENBQ0o7UUFDSCxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7SW5qZWN0aW9uVG9rZW4sIFByb3ZpZGVyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7T3B0aW9uYWwsIFNlbGZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB0eXBlIHtUdWlWYWx1ZVRyYW5zZm9ybWVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NsYXNzZXMnO1xuaW1wb3J0IHR5cGUge1R1aURheSwgVHVpRGF5UmFuZ2UsIFR1aVRpbWV9IGZyb20gJ0B0YWlnYS11aS9jZGsvZGF0ZS10aW1lJztcbmltcG9ydCB7dHVpQ29udHJvbFZhbHVlfSBmcm9tICdAdGFpZ2EtdWkvY2RrL29ic2VydmFibGVzJztcbmltcG9ydCB7dHVpQ3JlYXRlVG9rZW59IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQgdHlwZSB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcCwgb2Z9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIFN0cmVhbSB0aGF0IGVtaXRzIGNhbGVuZGFyIGRhdGEgY2hhbmdlXG4gKi9cbmV4cG9ydCBjb25zdCBUVUlfQ0FMRU5EQVJfREFURV9TVFJFQU0gPVxuICAgIHR1aUNyZWF0ZVRva2VuPE9ic2VydmFibGU8VHVpRGF5IHwgVHVpRGF5UmFuZ2UgfCBudWxsPj4oKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHR1aURhdGVTdHJlYW1XaXRoVHJhbnNmb3JtZXIoXG4gICAgdHJhbnNmb3JtZXI6IEluamVjdGlvblRva2VuPFR1aVZhbHVlVHJhbnNmb3JtZXI8YW55Pj4sXG4pOiBQcm92aWRlciB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcHJvdmlkZTogVFVJX0NBTEVOREFSX0RBVEVfU1RSRUFNLFxuICAgICAgICBkZXBzOiBbXG4gICAgICAgICAgICBbbmV3IE9wdGlvbmFsKCksIG5ldyBTZWxmKCksIE5nQ29udHJvbF0sXG4gICAgICAgICAgICBbbmV3IE9wdGlvbmFsKCksIHRyYW5zZm9ybWVyXSxcbiAgICAgICAgXSxcbiAgICAgICAgdXNlRmFjdG9yeTogdHVpQ29udHJvbFZhbHVlRmFjdG9yeSxcbiAgICB9O1xufVxuXG5mdW5jdGlvbiB0dWlDb250cm9sVmFsdWVGYWN0b3J5PFxuICAgIFQgZXh0ZW5kcyBUdWlEYXkgfCBUdWlEYXlSYW5nZSB8IFtUdWlEYXksIFR1aVRpbWUgfCBudWxsXSxcbj4oXG4gICAgY29udHJvbDogTmdDb250cm9sIHwgbnVsbCxcbiAgICB0cmFuc2Zvcm1lcj86IFR1aVZhbHVlVHJhbnNmb3JtZXI8VD4gfCBudWxsLFxuKTogT2JzZXJ2YWJsZTxUIHwgbnVsbD4gfCBudWxsIHtcbiAgICByZXR1cm4gY29udHJvbFxuICAgICAgICA/IHR1aUNvbnRyb2xWYWx1ZShjb250cm9sKS5waXBlKFxuICAgICAgICAgICAgICBtYXAoKHZhbHVlKSA9PlxuICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtZXIgPyB0cmFuc2Zvcm1lcj8uZnJvbUNvbnRyb2xWYWx1ZSh2YWx1ZSkgOiAodmFsdWUgYXMgVCksXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgKVxuICAgICAgICA6IG9mKG51bGwpO1xufVxuIl19
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItZGF0ZS1zdHJlYW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvdG9rZW5zL2NhbGVuZGFyLWRhdGUtc3RyZWFtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzdDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUd6QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBRWpFLE9BQU8sRUFBQyxHQUFHLEVBQUUsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRTdCOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUNqQyxjQUFjLEVBQTJDLENBQUM7QUFFOUQsTUFBTSxVQUFVLDRCQUE0QixDQUN4QyxXQUFxRDtJQUVyRCxPQUFPO1FBQ0gsT0FBTyxFQUFFLHdCQUF3QjtRQUNqQyxJQUFJLEVBQUU7WUFDRixDQUFDLElBQUksUUFBUSxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSxTQUFTLENBQUM7WUFDdkMsQ0FBQyxJQUFJLFFBQVEsRUFBRSxFQUFFLFdBQVcsQ0FBQztTQUNoQztRQUNELFVBQVUsRUFBRSxzQkFBc0I7S0FDckMsQ0FBQztBQUNOLENBQUM7QUFFRCxTQUFTLHNCQUFzQixDQUczQixPQUF5QixFQUN6QixXQUEyQztJQUUzQyxPQUFPLE9BQU87UUFDVixDQUFDLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDekIsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDVixXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUUsS0FBVyxDQUNwRSxDQUNKO1FBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge0luamVjdGlvblRva2VuLCBQcm92aWRlcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge09wdGlvbmFsLCBTZWxmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgdHlwZSB7VHVpVmFsdWVUcmFuc2Zvcm1lcn0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jbGFzc2VzJztcbmltcG9ydCB0eXBlIHtUdWlEYXksIFR1aURheVJhbmdlLCBUdWlUaW1lfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2RhdGUtdGltZSc7XG5pbXBvcnQge3R1aUNvbnRyb2xWYWx1ZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay9vYnNlcnZhYmxlcyc7XG5pbXBvcnQge3R1aUNyZWF0ZVRva2VufSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL21pc2NlbGxhbmVvdXMnO1xuaW1wb3J0IHR5cGUge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIG9mfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBTdHJlYW0gdGhhdCBlbWl0cyBjYWxlbmRhciBkYXRhIGNoYW5nZVxuICogQGRlcHJlY2F0ZWQgdGhpcyBzaG91bGQgYmUgcmV3cml0dGVuIGluIHY1XG4gKi9cbmV4cG9ydCBjb25zdCBUVUlfQ0FMRU5EQVJfREFURV9TVFJFQU0gPVxuICAgIHR1aUNyZWF0ZVRva2VuPE9ic2VydmFibGU8VHVpRGF5IHwgVHVpRGF5UmFuZ2UgfCBudWxsPj4oKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHR1aURhdGVTdHJlYW1XaXRoVHJhbnNmb3JtZXIoXG4gICAgdHJhbnNmb3JtZXI6IEluamVjdGlvblRva2VuPFR1aVZhbHVlVHJhbnNmb3JtZXI8YW55Pj4sXG4pOiBQcm92aWRlciB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcHJvdmlkZTogVFVJX0NBTEVOREFSX0RBVEVfU1RSRUFNLFxuICAgICAgICBkZXBzOiBbXG4gICAgICAgICAgICBbbmV3IE9wdGlvbmFsKCksIG5ldyBTZWxmKCksIE5nQ29udHJvbF0sXG4gICAgICAgICAgICBbbmV3IE9wdGlvbmFsKCksIHRyYW5zZm9ybWVyXSxcbiAgICAgICAgXSxcbiAgICAgICAgdXNlRmFjdG9yeTogdHVpQ29udHJvbFZhbHVlRmFjdG9yeSxcbiAgICB9O1xufVxuXG5mdW5jdGlvbiB0dWlDb250cm9sVmFsdWVGYWN0b3J5PFxuICAgIFQgZXh0ZW5kcyBUdWlEYXkgfCBUdWlEYXlSYW5nZSB8IFtUdWlEYXksIFR1aVRpbWUgfCBudWxsXSxcbj4oXG4gICAgY29udHJvbDogTmdDb250cm9sIHwgbnVsbCxcbiAgICB0cmFuc2Zvcm1lcj86IFR1aVZhbHVlVHJhbnNmb3JtZXI8VD4gfCBudWxsLFxuKTogT2JzZXJ2YWJsZTxUIHwgbnVsbD4gfCBudWxsIHtcbiAgICByZXR1cm4gY29udHJvbFxuICAgICAgICA/IHR1aUNvbnRyb2xWYWx1ZShjb250cm9sKS5waXBlKFxuICAgICAgICAgICAgICBtYXAoKHZhbHVlKSA9PlxuICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtZXIgPyB0cmFuc2Zvcm1lcj8uZnJvbUNvbnRyb2xWYWx1ZSh2YWx1ZSkgOiAodmFsdWUgYXMgVCksXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgKVxuICAgICAgICA6IG9mKG51bGwpO1xufVxuIl19
@@ -1,9 +1,9 @@
1
+ import { TUI_IDENTITY_VALUE_TRANSFORMER } from '@taiga-ui/cdk/classes';
1
2
  import { tuiCreateToken } from '@taiga-ui/cdk/utils/miscellaneous';
2
- // TODO: Refactor to use `TuiValueTransformer` and add ability to provide it for all controls
3
3
  /**
4
4
  * Control value transformer of TuiDay to custom value format for InputDate* components
5
5
  */
6
- export const TUI_DATE_VALUE_TRANSFORMER = tuiCreateToken();
6
+ export const TUI_DATE_VALUE_TRANSFORMER = tuiCreateToken(TUI_IDENTITY_VALUE_TRANSFORMER);
7
7
  /**
8
8
  * Control value transformer for InputDateRange component
9
9
  */
@@ -16,4 +16,4 @@ export const TUI_DATE_TIME_VALUE_TRANSFORMER = tuiCreateToken();
16
16
  * Control value transformer for InputTime component
17
17
  */
18
18
  export const TUI_TIME_VALUE_TRANSFORMER = tuiCreateToken();
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1pbnB1dHMtdmFsdWUtdHJhbnNmb3JtZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L3Rva2Vucy9kYXRlLWlucHV0cy12YWx1ZS10cmFuc2Zvcm1lcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBRWpFLDZGQUE2RjtBQUU3Rjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUNuQyxjQUFjLEVBQXNDLENBQUM7QUFFekQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FDekMsY0FBYyxFQUEyQyxDQUFDO0FBRTlEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQ3hDLGNBQWMsRUFBaUQsQ0FBQztBQUVwRTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUNuQyxjQUFjLEVBQXVDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7VHVpVmFsdWVUcmFuc2Zvcm1lcn0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jbGFzc2VzJztcbmltcG9ydCB0eXBlIHtUdWlEYXksIFR1aURheVJhbmdlLCBUdWlUaW1lfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2RhdGUtdGltZSc7XG5pbXBvcnQge3R1aUNyZWF0ZVRva2VufSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL21pc2NlbGxhbmVvdXMnO1xuXG4vLyBUT0RPOiBSZWZhY3RvciB0byB1c2UgYFR1aVZhbHVlVHJhbnNmb3JtZXJgIGFuZCBhZGQgYWJpbGl0eSB0byBwcm92aWRlIGl0IGZvciBhbGwgY29udHJvbHNcblxuLyoqXG4gKiBDb250cm9sIHZhbHVlIHRyYW5zZm9ybWVyIG9mIFR1aURheSB0byBjdXN0b20gdmFsdWUgZm9ybWF0IGZvciBJbnB1dERhdGUqIGNvbXBvbmVudHNcbiAqL1xuZXhwb3J0IGNvbnN0IFRVSV9EQVRFX1ZBTFVFX1RSQU5TRk9STUVSID1cbiAgICB0dWlDcmVhdGVUb2tlbjxUdWlWYWx1ZVRyYW5zZm9ybWVyPFR1aURheSB8IG51bGw+PigpO1xuXG4vKipcbiAqIENvbnRyb2wgdmFsdWUgdHJhbnNmb3JtZXIgZm9yIElucHV0RGF0ZVJhbmdlIGNvbXBvbmVudFxuICovXG5leHBvcnQgY29uc3QgVFVJX0RBVEVfUkFOR0VfVkFMVUVfVFJBTlNGT1JNRVIgPVxuICAgIHR1aUNyZWF0ZVRva2VuPFR1aVZhbHVlVHJhbnNmb3JtZXI8VHVpRGF5UmFuZ2UgfCBudWxsPj4oKTtcblxuLyoqXG4gKiBDb250cm9sIHZhbHVlIHRyYW5zZm9ybWVyIGZvciBJbnB1dERhdGVUaW1lIGNvbXBvbmVudFxuICovXG5leHBvcnQgY29uc3QgVFVJX0RBVEVfVElNRV9WQUxVRV9UUkFOU0ZPUk1FUiA9XG4gICAgdHVpQ3JlYXRlVG9rZW48VHVpVmFsdWVUcmFuc2Zvcm1lcjxbVHVpRGF5LCBUdWlUaW1lIHwgbnVsbF0+PigpO1xuXG4vKipcbiAqIENvbnRyb2wgdmFsdWUgdHJhbnNmb3JtZXIgZm9yIElucHV0VGltZSBjb21wb25lbnRcbiAqL1xuZXhwb3J0IGNvbnN0IFRVSV9USU1FX1ZBTFVFX1RSQU5TRk9STUVSID1cbiAgICB0dWlDcmVhdGVUb2tlbjxUdWlWYWx1ZVRyYW5zZm9ybWVyPFR1aVRpbWUgfCBudWxsPj4oKTtcbiJdfQ==
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1pbnB1dHMtdmFsdWUtdHJhbnNmb3JtZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L3Rva2Vucy9kYXRlLWlucHV0cy12YWx1ZS10cmFuc2Zvcm1lcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFckUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBRWpFOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsY0FBYyxDQUV0RCw4QkFBOEIsQ0FBQyxDQUFDO0FBRWxDOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQ3pDLGNBQWMsRUFBMkMsQ0FBQztBQUU5RDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUN4QyxjQUFjLEVBQWlELENBQUM7QUFFcEU7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FDbkMsY0FBYyxFQUF1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1R1aVZhbHVlVHJhbnNmb3JtZXJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvY2xhc3Nlcyc7XG5pbXBvcnQge1RVSV9JREVOVElUWV9WQUxVRV9UUkFOU0ZPUk1FUn0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jbGFzc2VzJztcbmltcG9ydCB0eXBlIHtUdWlEYXksIFR1aURheVJhbmdlLCBUdWlUaW1lfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2RhdGUtdGltZSc7XG5pbXBvcnQge3R1aUNyZWF0ZVRva2VufSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL21pc2NlbGxhbmVvdXMnO1xuXG4vKipcbiAqIENvbnRyb2wgdmFsdWUgdHJhbnNmb3JtZXIgb2YgVHVpRGF5IHRvIGN1c3RvbSB2YWx1ZSBmb3JtYXQgZm9yIElucHV0RGF0ZSogY29tcG9uZW50c1xuICovXG5leHBvcnQgY29uc3QgVFVJX0RBVEVfVkFMVUVfVFJBTlNGT1JNRVIgPSB0dWlDcmVhdGVUb2tlbjxcbiAgICBUdWlWYWx1ZVRyYW5zZm9ybWVyPFR1aURheSB8IG51bGw+XG4+KFRVSV9JREVOVElUWV9WQUxVRV9UUkFOU0ZPUk1FUik7XG5cbi8qKlxuICogQ29udHJvbCB2YWx1ZSB0cmFuc2Zvcm1lciBmb3IgSW5wdXREYXRlUmFuZ2UgY29tcG9uZW50XG4gKi9cbmV4cG9ydCBjb25zdCBUVUlfREFURV9SQU5HRV9WQUxVRV9UUkFOU0ZPUk1FUiA9XG4gICAgdHVpQ3JlYXRlVG9rZW48VHVpVmFsdWVUcmFuc2Zvcm1lcjxUdWlEYXlSYW5nZSB8IG51bGw+PigpO1xuXG4vKipcbiAqIENvbnRyb2wgdmFsdWUgdHJhbnNmb3JtZXIgZm9yIElucHV0RGF0ZVRpbWUgY29tcG9uZW50XG4gKi9cbmV4cG9ydCBjb25zdCBUVUlfREFURV9USU1FX1ZBTFVFX1RSQU5TRk9STUVSID1cbiAgICB0dWlDcmVhdGVUb2tlbjxUdWlWYWx1ZVRyYW5zZm9ybWVyPFtUdWlEYXksIFR1aVRpbWUgfCBudWxsXT4+KCk7XG5cbi8qKlxuICogQ29udHJvbCB2YWx1ZSB0cmFuc2Zvcm1lciBmb3IgSW5wdXRUaW1lIGNvbXBvbmVudFxuICovXG5leHBvcnQgY29uc3QgVFVJX1RJTUVfVkFMVUVfVFJBTlNGT1JNRVIgPVxuICAgIHR1aUNyZWF0ZVRva2VuPFR1aVZhbHVlVHJhbnNmb3JtZXI8VHVpVGltZSB8IG51bGw+PigpO1xuIl19
@@ -1,38 +1,34 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, Component, ChangeDetectionStrategy, Input, Directive } from '@angular/core';
2
+ import { Component, ChangeDetectionStrategy, Input, Directive } from '@angular/core';
3
+ import * as i1 from '@taiga-ui/cdk/directives/animated';
4
+ import { TuiAnimated } from '@taiga-ui/cdk/directives/animated';
3
5
  import { tuiProvide } from '@taiga-ui/cdk/utils/miscellaneous';
4
- import { tuiFadeIn, tuiSlideInTop } from '@taiga-ui/core/animations';
5
6
  import { TUI_BUTTON_OPTIONS } from '@taiga-ui/core/components/button';
6
7
  import { TuiExpandComponent } from '@taiga-ui/core/components/expand';
7
8
  import { tuiLinkOptionsProvider } from '@taiga-ui/core/components/link';
8
- import { TUI_ANIMATIONS_SPEED } from '@taiga-ui/core/tokens';
9
- import { tuiToAnimationOptions } from '@taiga-ui/core/utils/miscellaneous';
10
9
  import { TuiDropdownPortal } from '@taiga-ui/core/directives/dropdown';
11
10
 
12
11
  class TuiActionBarComponent {
13
12
  constructor() {
14
- this.animation = tuiToAnimationOptions(inject(TUI_ANIMATIONS_SPEED));
15
13
  this.expanded = false;
16
14
  this.size = 'm';
17
15
  this.appearance = 'secondary-grayscale';
18
16
  }
19
17
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiActionBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
20
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiActionBarComponent, isStandalone: true, selector: "tui-action-bar", inputs: { expanded: "expanded", size: "size" }, host: { attributes: { "tuiTheme": "dark" }, properties: { "attr.data-size": "size", "@tuiFadeIn": "animation", "@tuiSlideInTop": "animation" } }, providers: [
18
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiActionBarComponent, isStandalone: true, selector: "tui-action-bar", inputs: { expanded: "expanded", size: "size" }, host: { attributes: { "tuiTheme": "dark" }, properties: { "attr.data-size": "size" } }, providers: [
21
19
  tuiProvide(TUI_BUTTON_OPTIONS, TuiActionBarComponent),
22
20
  tuiLinkOptionsProvider({ appearance: 'action-grayscale', pseudo: true }),
23
- ], ngImport: i0, template: "<tui-expand [expanded]=\"expanded\">\n <ng-content select=\"tui-data-list,[tuiMenu]\" />\n</tui-expand>\n\n<div class=\"t-content\">\n <ng-content />\n\n <div class=\"t-actions\">\n <ng-content select=\"a,button,[tuiAction]\" />\n </div>\n</div>\n", styles: [":host{position:fixed;left:max(calc(50% - 37rem),1.5rem);bottom:1rem;display:flex;inline-size:100%;max-inline-size:min(calc(100vw - 3rem),74rem);box-sizing:border-box;border-radius:1rem;background:var(--tui-background-elevation-3);background:color-mix(in hsl,var(--tui-background-elevation-3) 75%,transparent);color:var(--tui-text-primary);-webkit-backdrop-filter:blur(2rem);backdrop-filter:blur(2rem);flex-direction:column;justify-content:center;padding:.75rem;text-indent:.75rem;font:var(--tui-font-text-m);white-space:nowrap}:host[data-size=s]{border-radius:var(--tui-radius-l);font:var(--tui-font-text-s);padding:.5rem}:host-context(tui-root._mobile) :host{padding:1rem;border-radius:1.25rem;text-indent:0}:host ::ng-deep tui-data-list[data-size]{padding:0;margin:-.625rem -.625rem 1rem}:host ::ng-deep tui-items-with-more{text-indent:.5rem}:host-context(tui-root._mobile) :host ::ng-deep tui-items-with-more{display:none}.t-content{display:flex;align-items:center;gap:.7rem 2.5rem}:host-context(tui-root._mobile) .t-content{flex-wrap:wrap}.t-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-inline-start:auto;text-indent:0}:host-context(tui-root._mobile) .t-actions{flex:1}:host-context(tui-root._mobile) .t-actions ::ng-deep [tuiButton]{flex:1}\n"], dependencies: [{ kind: "component", type: TuiExpandComponent, selector: "tui-expand", inputs: ["async", "expanded"] }], animations: [tuiFadeIn, tuiSlideInTop], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
21
+ ], hostDirectives: [{ directive: i1.TuiAnimated }], ngImport: i0, template: "<tui-expand [expanded]=\"expanded\">\n <ng-content select=\"tui-data-list,[tuiMenu]\" />\n</tui-expand>\n\n<div class=\"t-content\">\n <ng-content />\n\n <div class=\"t-actions\">\n <ng-content select=\"a,button,[tuiAction]\" />\n </div>\n</div>\n", styles: [":host{position:fixed;left:max(calc(50% - 37rem),1.5rem);bottom:1rem;display:flex;inline-size:100%;max-inline-size:min(calc(100vw - 3rem),74rem);box-sizing:border-box;border-radius:1rem;background:var(--tui-background-elevation-2);background:color-mix(in hsl,var(--tui-background-elevation-2) 75%,transparent);color:var(--tui-text-primary);-webkit-backdrop-filter:blur(2rem);backdrop-filter:blur(2rem);flex-direction:column;justify-content:center;padding:.75rem;text-indent:.75rem;font:var(--tui-font-text-m);white-space:nowrap}:host.tui-enter,:host.tui-leave{animation-name:tuiFade,tuiSlide}:host[data-size=s]{border-radius:var(--tui-radius-l);font:var(--tui-font-text-s);padding:.5rem}:host-context(tui-root._mobile) :host{padding:1rem;border-radius:1.25rem;text-indent:0}:host ::ng-deep tui-data-list[data-size]{padding:0;margin:-.625rem -.625rem 1rem}:host ::ng-deep tui-items-with-more{text-indent:.5rem}:host-context(tui-root._mobile) :host ::ng-deep tui-items-with-more{display:none}.t-content{display:flex;align-items:center;gap:.7rem 2.5rem}:host-context(tui-root._mobile) .t-content{flex-wrap:wrap}.t-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-inline-start:auto;text-indent:0}:host-context(tui-root._mobile) .t-actions{flex:1}:host-context(tui-root._mobile) .t-actions ::ng-deep [tuiButton]{flex:1}\n"], dependencies: [{ kind: "component", type: TuiExpandComponent, selector: "tui-expand", inputs: ["async", "expanded"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
24
22
  }
25
23
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiActionBarComponent, decorators: [{
26
24
  type: Component,
27
25
  args: [{ standalone: true, selector: 'tui-action-bar', imports: [TuiExpandComponent], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
28
26
  tuiProvide(TUI_BUTTON_OPTIONS, TuiActionBarComponent),
29
27
  tuiLinkOptionsProvider({ appearance: 'action-grayscale', pseudo: true }),
30
- ], animations: [tuiFadeIn, tuiSlideInTop], host: {
28
+ ], hostDirectives: [TuiAnimated], host: {
31
29
  tuiTheme: 'dark',
32
30
  '[attr.data-size]': 'size',
33
- '[@tuiFadeIn]': 'animation',
34
- '[@tuiSlideInTop]': 'animation',
35
- }, template: "<tui-expand [expanded]=\"expanded\">\n <ng-content select=\"tui-data-list,[tuiMenu]\" />\n</tui-expand>\n\n<div class=\"t-content\">\n <ng-content />\n\n <div class=\"t-actions\">\n <ng-content select=\"a,button,[tuiAction]\" />\n </div>\n</div>\n", styles: [":host{position:fixed;left:max(calc(50% - 37rem),1.5rem);bottom:1rem;display:flex;inline-size:100%;max-inline-size:min(calc(100vw - 3rem),74rem);box-sizing:border-box;border-radius:1rem;background:var(--tui-background-elevation-3);background:color-mix(in hsl,var(--tui-background-elevation-3) 75%,transparent);color:var(--tui-text-primary);-webkit-backdrop-filter:blur(2rem);backdrop-filter:blur(2rem);flex-direction:column;justify-content:center;padding:.75rem;text-indent:.75rem;font:var(--tui-font-text-m);white-space:nowrap}:host[data-size=s]{border-radius:var(--tui-radius-l);font:var(--tui-font-text-s);padding:.5rem}:host-context(tui-root._mobile) :host{padding:1rem;border-radius:1.25rem;text-indent:0}:host ::ng-deep tui-data-list[data-size]{padding:0;margin:-.625rem -.625rem 1rem}:host ::ng-deep tui-items-with-more{text-indent:.5rem}:host-context(tui-root._mobile) :host ::ng-deep tui-items-with-more{display:none}.t-content{display:flex;align-items:center;gap:.7rem 2.5rem}:host-context(tui-root._mobile) .t-content{flex-wrap:wrap}.t-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-inline-start:auto;text-indent:0}:host-context(tui-root._mobile) .t-actions{flex:1}:host-context(tui-root._mobile) .t-actions ::ng-deep [tuiButton]{flex:1}\n"] }]
31
+ }, template: "<tui-expand [expanded]=\"expanded\">\n <ng-content select=\"tui-data-list,[tuiMenu]\" />\n</tui-expand>\n\n<div class=\"t-content\">\n <ng-content />\n\n <div class=\"t-actions\">\n <ng-content select=\"a,button,[tuiAction]\" />\n </div>\n</div>\n", styles: [":host{position:fixed;left:max(calc(50% - 37rem),1.5rem);bottom:1rem;display:flex;inline-size:100%;max-inline-size:min(calc(100vw - 3rem),74rem);box-sizing:border-box;border-radius:1rem;background:var(--tui-background-elevation-2);background:color-mix(in hsl,var(--tui-background-elevation-2) 75%,transparent);color:var(--tui-text-primary);-webkit-backdrop-filter:blur(2rem);backdrop-filter:blur(2rem);flex-direction:column;justify-content:center;padding:.75rem;text-indent:.75rem;font:var(--tui-font-text-m);white-space:nowrap}:host.tui-enter,:host.tui-leave{animation-name:tuiFade,tuiSlide}:host[data-size=s]{border-radius:var(--tui-radius-l);font:var(--tui-font-text-s);padding:.5rem}:host-context(tui-root._mobile) :host{padding:1rem;border-radius:1.25rem;text-indent:0}:host ::ng-deep tui-data-list[data-size]{padding:0;margin:-.625rem -.625rem 1rem}:host ::ng-deep tui-items-with-more{text-indent:.5rem}:host-context(tui-root._mobile) :host ::ng-deep tui-items-with-more{display:none}.t-content{display:flex;align-items:center;gap:.7rem 2.5rem}:host-context(tui-root._mobile) .t-content{flex-wrap:wrap}.t-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-inline-start:auto;text-indent:0}:host-context(tui-root._mobile) .t-actions{flex:1}:host-context(tui-root._mobile) .t-actions ::ng-deep [tuiButton]{flex:1}\n"] }]
36
32
  }], propDecorators: { expanded: [{
37
33
  type: Input
38
34
  }], size: [{
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-action-bar.mjs","sources":["../../../projects/kit/components/action-bar/action-bar.component.ts","../../../projects/kit/components/action-bar/action-bar.template.html","../../../projects/kit/components/action-bar/action-bar.directive.ts","../../../projects/kit/components/action-bar/action-bar.ts","../../../projects/kit/components/action-bar/taiga-ui-kit-components-action-bar.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, inject, Input} from '@angular/core';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiFadeIn, tuiSlideInTop} from '@taiga-ui/core/animations';\nimport type {TuiButtonOptions} from '@taiga-ui/core/components/button';\nimport {TUI_BUTTON_OPTIONS} from '@taiga-ui/core/components/button';\nimport {TuiExpandComponent} from '@taiga-ui/core/components/expand';\nimport {tuiLinkOptionsProvider} from '@taiga-ui/core/components/link';\nimport {TUI_ANIMATIONS_SPEED} from '@taiga-ui/core/tokens';\nimport type {TuiSizeS} from '@taiga-ui/core/types';\nimport {tuiToAnimationOptions} from '@taiga-ui/core/utils/miscellaneous';\n\n@Component({\n standalone: true,\n selector: 'tui-action-bar',\n imports: [TuiExpandComponent],\n templateUrl: './action-bar.template.html',\n styleUrls: ['./action-bar.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiProvide(TUI_BUTTON_OPTIONS, TuiActionBarComponent),\n tuiLinkOptionsProvider({appearance: 'action-grayscale', pseudo: true}),\n ],\n animations: [tuiFadeIn, tuiSlideInTop],\n host: {\n tuiTheme: 'dark',\n '[attr.data-size]': 'size',\n '[@tuiFadeIn]': 'animation',\n '[@tuiSlideInTop]': 'animation',\n },\n})\nexport class TuiActionBarComponent implements TuiButtonOptions {\n protected readonly animation = tuiToAnimationOptions(inject(TUI_ANIMATIONS_SPEED));\n\n @Input()\n public expanded = false;\n\n @Input()\n public size: TuiSizeS = 'm';\n\n public readonly appearance = 'secondary-grayscale';\n}\n","<tui-expand [expanded]=\"expanded\">\n <ng-content select=\"tui-data-list,[tuiMenu]\" />\n</tui-expand>\n\n<div class=\"t-content\">\n <ng-content />\n\n <div class=\"t-actions\">\n <ng-content select=\"a,button,[tuiAction]\" />\n </div>\n</div>\n","import {Directive} from '@angular/core';\nimport {TuiDropdownPortal} from '@taiga-ui/core/directives/dropdown';\n\n@Directive({\n standalone: true,\n selector: 'ng-template[tuiActionBar]',\n inputs: ['tuiDropdown: tuiActionBar'],\n})\nexport class TuiActionBarDirective extends TuiDropdownPortal {}\n","import {TuiActionBarComponent} from './action-bar.component';\nimport {TuiActionBarDirective} from './action-bar.directive';\n\nexport const TuiActionBar = [TuiActionBarComponent, TuiActionBarDirective] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;AAWA,MAmBa,qBAAqB,CAAA;AAnBlC,IAAA,WAAA,GAAA;QAoBuB,IAAS,CAAA,SAAA,GAAG,qBAAqB,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAG5E,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QAGjB,IAAI,CAAA,IAAA,GAAa,GAAG,CAAC;QAEZ,IAAU,CAAA,UAAA,GAAG,qBAAqB,CAAC;AACtD,KAAA;+GAVY,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,EAZnB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,YAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACP,YAAA,UAAU,CAAC,kBAAkB,EAAE,qBAAqB,CAAC;YACrD,sBAAsB,CAAC,EAAC,UAAU,EAAE,kBAAkB,EAAE,MAAM,EAAE,IAAI,EAAC,CAAC;SACzE,ECrBL,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,4QAWA,2yCDGc,kBAAkB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAQhB,CAAC,SAAS,EAAE,aAAa,CAAC,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAQ7B,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAnBjC,SAAS;iCACM,IAAI,EAAA,QAAA,EACN,gBAAgB,EAAA,OAAA,EACjB,CAAC,kBAAkB,CAAC,EAGZ,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;wBACP,UAAU,CAAC,kBAAkB,EAAwB,qBAAA,CAAA;wBACrD,sBAAsB,CAAC,EAAC,UAAU,EAAE,kBAAkB,EAAE,MAAM,EAAE,IAAI,EAAC,CAAC;AACzE,qBAAA,EAAA,UAAA,EACW,CAAC,SAAS,EAAE,aAAa,CAAC,EAChC,IAAA,EAAA;AACF,wBAAA,QAAQ,EAAE,MAAM;AAChB,wBAAA,kBAAkB,EAAE,MAAM;AAC1B,wBAAA,cAAc,EAAE,WAAW;AAC3B,wBAAA,kBAAkB,EAAE,WAAW;AAClC,qBAAA,EAAA,QAAA,EAAA,4QAAA,EAAA,MAAA,EAAA,CAAA,mvCAAA,CAAA,EAAA,CAAA;8BAMM,QAAQ,EAAA,CAAA;sBADd,KAAK;gBAIC,IAAI,EAAA,CAAA;sBADV,KAAK;;;AEjCV,MAKa,qBAAsB,SAAQ,iBAAiB,CAAA;+GAA/C,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,CAAA,cAAA,EAAA,aAAA,CAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,2BAA2B;oBACrC,MAAM,EAAE,CAAC,2BAA2B,CAAC;AACxC,iBAAA,CAAA;;;MCJY,YAAY,GAAG,CAAC,qBAAqB,EAAE,qBAAqB;;ACHzE;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-components-action-bar.mjs","sources":["../../../projects/kit/components/action-bar/action-bar.component.ts","../../../projects/kit/components/action-bar/action-bar.template.html","../../../projects/kit/components/action-bar/action-bar.directive.ts","../../../projects/kit/components/action-bar/action-bar.ts","../../../projects/kit/components/action-bar/taiga-ui-kit-components-action-bar.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, Input} from '@angular/core';\nimport {TuiAnimated} from '@taiga-ui/cdk/directives/animated';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {TuiButtonOptions} from '@taiga-ui/core/components/button';\nimport {TUI_BUTTON_OPTIONS} from '@taiga-ui/core/components/button';\nimport {TuiExpandComponent} from '@taiga-ui/core/components/expand';\nimport {tuiLinkOptionsProvider} from '@taiga-ui/core/components/link';\nimport type {TuiSizeS} from '@taiga-ui/core/types';\n\n@Component({\n standalone: true,\n selector: 'tui-action-bar',\n imports: [TuiExpandComponent],\n templateUrl: './action-bar.template.html',\n styleUrls: ['./action-bar.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiProvide(TUI_BUTTON_OPTIONS, TuiActionBarComponent),\n tuiLinkOptionsProvider({appearance: 'action-grayscale', pseudo: true}),\n ],\n hostDirectives: [TuiAnimated],\n host: {\n tuiTheme: 'dark',\n '[attr.data-size]': 'size',\n },\n})\nexport class TuiActionBarComponent implements TuiButtonOptions {\n @Input()\n public expanded = false;\n\n @Input()\n public size: TuiSizeS = 'm';\n\n public readonly appearance = 'secondary-grayscale';\n}\n","<tui-expand [expanded]=\"expanded\">\n <ng-content select=\"tui-data-list,[tuiMenu]\" />\n</tui-expand>\n\n<div class=\"t-content\">\n <ng-content />\n\n <div class=\"t-actions\">\n <ng-content select=\"a,button,[tuiAction]\" />\n </div>\n</div>\n","import {Directive} from '@angular/core';\nimport {TuiDropdownPortal} from '@taiga-ui/core/directives/dropdown';\n\n@Directive({\n standalone: true,\n selector: 'ng-template[tuiActionBar]',\n inputs: ['tuiDropdown: tuiActionBar'],\n})\nexport class TuiActionBarDirective extends TuiDropdownPortal {}\n","import {TuiActionBarComponent} from './action-bar.component';\nimport {TuiActionBarDirective} from './action-bar.directive';\n\nexport const TuiActionBar = [TuiActionBarComponent, TuiActionBarDirective] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,8 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { inject, Component, ChangeDetectionStrategy, Input } from '@angular/core';
3
- import { tuiPop } from '@taiga-ui/core/animations';
4
- import { TUI_ANIMATIONS_SPEED } from '@taiga-ui/core/tokens';
5
- import { tuiToAnimationOptions } from '@taiga-ui/core/utils/miscellaneous';
3
+ import * as i1 from '@taiga-ui/cdk/directives/animated';
4
+ import { TuiAnimated } from '@taiga-ui/cdk/directives/animated';
6
5
  import { tuiCreateToken, tuiProvideOptions } from '@taiga-ui/cdk/utils/miscellaneous';
7
6
 
8
7
  const TUI_BADGE_NOTIFICATION_DEFAULT_OPTIONS = {
@@ -15,18 +14,16 @@ function tuiBadgeNotificationOptionsProvider(options) {
15
14
 
16
15
  class TuiBadgeNotification {
17
16
  constructor() {
18
- this.options = tuiToAnimationOptions(inject(TUI_ANIMATIONS_SPEED));
19
17
  this.size = inject(TUI_BADGE_NOTIFICATION_OPTIONS).size;
20
18
  }
21
19
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiBadgeNotification, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
22
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiBadgeNotification, isStandalone: true, selector: "tui-badge-notification", inputs: { size: "size" }, host: { properties: { "attr.data-size": "size", "@tuiPop": "options" } }, ngImport: i0, template: '<ng-content />', isInline: true, styles: [":host{--t-size: 1.5rem;position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;color:#fff;border-radius:2rem;white-space:nowrap;overflow:hidden;vertical-align:middle;font:var(--tui-font-text-s);max-inline-size:100%;padding:0 .25rem;background:#f52222;block-size:var(--t-size);min-inline-size:var(--t-size)}:host[data-size=m]{--t-size: 1.25rem}:host[data-size=s]{--t-size: 1rem;padding:0 .125rem;font:var(--tui-font-text-xs)}:host[data-size=xs]{--t-size: .375rem;padding:0;font-size:0}:host :host-context([tuiIconButton]){position:absolute;right:25%;top:25%}\n"], animations: [tuiPop], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
20
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiBadgeNotification, isStandalone: true, selector: "tui-badge-notification", inputs: { size: "size" }, host: { properties: { "attr.data-size": "size" } }, hostDirectives: [{ directive: i1.TuiAnimated }], ngImport: i0, template: '<ng-content />', isInline: true, styles: [":host{--t-size: 1.5rem;position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;color:#fff;border-radius:2rem;white-space:nowrap;overflow:hidden;vertical-align:middle;font:var(--tui-font-text-s);max-inline-size:100%;padding:0 .25rem;background:#f52222;block-size:var(--t-size);min-inline-size:var(--t-size)}:host.tui-enter{animation:tuiScale var(--tui-duration) cubic-bezier(.34,1.56,.64,1)}:host.tui-leave{animation:tuiScale var(--tui-duration) ease-in-out reverse}:host[data-size=m]{--t-size: 1.25rem}:host[data-size=s]{--t-size: 1rem;padding:0 .125rem;font:var(--tui-font-text-xs)}:host[data-size=xs]{--t-size: .375rem;padding:0;font-size:0}:host :host-context([tuiIconButton]){position:absolute;right:25%;top:25%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
23
21
  }
24
22
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiBadgeNotification, decorators: [{
25
23
  type: Component,
26
- args: [{ standalone: true, selector: 'tui-badge-notification', template: '<ng-content />', changeDetection: ChangeDetectionStrategy.OnPush, animations: [tuiPop], host: {
24
+ args: [{ standalone: true, selector: 'tui-badge-notification', template: '<ng-content />', changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [TuiAnimated], host: {
27
25
  '[attr.data-size]': 'size',
28
- '[@tuiPop]': 'options',
29
- }, styles: [":host{--t-size: 1.5rem;position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;color:#fff;border-radius:2rem;white-space:nowrap;overflow:hidden;vertical-align:middle;font:var(--tui-font-text-s);max-inline-size:100%;padding:0 .25rem;background:#f52222;block-size:var(--t-size);min-inline-size:var(--t-size)}:host[data-size=m]{--t-size: 1.25rem}:host[data-size=s]{--t-size: 1rem;padding:0 .125rem;font:var(--tui-font-text-xs)}:host[data-size=xs]{--t-size: .375rem;padding:0;font-size:0}:host :host-context([tuiIconButton]){position:absolute;right:25%;top:25%}\n"] }]
26
+ }, styles: [":host{--t-size: 1.5rem;position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;color:#fff;border-radius:2rem;white-space:nowrap;overflow:hidden;vertical-align:middle;font:var(--tui-font-text-s);max-inline-size:100%;padding:0 .25rem;background:#f52222;block-size:var(--t-size);min-inline-size:var(--t-size)}:host.tui-enter{animation:tuiScale var(--tui-duration) cubic-bezier(.34,1.56,.64,1)}:host.tui-leave{animation:tuiScale var(--tui-duration) ease-in-out reverse}:host[data-size=m]{--t-size: 1.25rem}:host[data-size=s]{--t-size: 1rem;padding:0 .125rem;font:var(--tui-font-text-xs)}:host[data-size=xs]{--t-size: .375rem;padding:0;font-size:0}:host :host-context([tuiIconButton]){position:absolute;right:25%;top:25%}\n"] }]
30
27
  }], propDecorators: { size: [{
31
28
  type: Input
32
29
  }] } });
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-badge-notification.mjs","sources":["../../../projects/kit/components/badge-notification/badge-notification.options.ts","../../../projects/kit/components/badge-notification/badge-notification.component.ts","../../../projects/kit/components/badge-notification/taiga-ui-kit-components-badge-notification.ts"],"sourcesContent":["import type {Provider} from '@angular/core';\nimport {tuiCreateToken, tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {TuiSizeL, TuiSizeXS} from '@taiga-ui/core/types';\n\nexport interface TuiBadgeNotificationOptions {\n readonly size: TuiSizeL | TuiSizeXS;\n}\n\nexport const TUI_BADGE_NOTIFICATION_DEFAULT_OPTIONS: TuiBadgeNotificationOptions = {\n size: 'm',\n};\n\nexport const TUI_BADGE_NOTIFICATION_OPTIONS = tuiCreateToken(\n TUI_BADGE_NOTIFICATION_DEFAULT_OPTIONS,\n);\n\nexport function tuiBadgeNotificationOptionsProvider(\n options: Partial<TuiBadgeNotificationOptions>,\n): Provider {\n return tuiProvideOptions(\n TUI_BADGE_NOTIFICATION_OPTIONS,\n options,\n TUI_BADGE_NOTIFICATION_DEFAULT_OPTIONS,\n );\n}\n","import {ChangeDetectionStrategy, Component, inject, Input} from '@angular/core';\nimport {tuiPop} from '@taiga-ui/core/animations';\nimport {TUI_ANIMATIONS_SPEED} from '@taiga-ui/core/tokens';\nimport type {TuiSizeL, TuiSizeXS} from '@taiga-ui/core/types';\nimport {tuiToAnimationOptions} from '@taiga-ui/core/utils/miscellaneous';\n\nimport {TUI_BADGE_NOTIFICATION_OPTIONS} from './badge-notification.options';\n\n@Component({\n standalone: true,\n selector: 'tui-badge-notification',\n template: '<ng-content />',\n styleUrls: ['./badge-notification.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [tuiPop],\n host: {\n '[attr.data-size]': 'size',\n '[@tuiPop]': 'options',\n },\n})\nexport class TuiBadgeNotification {\n protected readonly options = tuiToAnimationOptions(inject(TUI_ANIMATIONS_SPEED));\n\n @Input()\n public size: TuiSizeL | TuiSizeXS = inject(TUI_BADGE_NOTIFICATION_OPTIONS).size;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAQa,MAAA,sCAAsC,GAAgC;AAC/E,IAAA,IAAI,EAAE,GAAG;EACX;MAEW,8BAA8B,GAAG,cAAc,CACxD,sCAAsC,EACxC;AAEI,SAAU,mCAAmC,CAC/C,OAA6C,EAAA;IAE7C,OAAO,iBAAiB,CACpB,8BAA8B,EAC9B,OAAO,EACP,sCAAsC,CACzC,CAAC;AACN;;AChBA,MAYa,oBAAoB,CAAA;AAZjC,IAAA,WAAA,GAAA;QAauB,IAAO,CAAA,OAAA,GAAG,qBAAqB,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC;AAG1E,QAAA,IAAA,CAAA,IAAI,GAAyB,MAAM,CAAC,8BAA8B,CAAC,CAAC,IAAI,CAAC;AACnF,KAAA;+GALY,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EATnB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,SAAA,EAAA,SAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,gBAAgB,EAGd,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,+lBAAA,CAAA,EAAA,UAAA,EAAA,CAAC,MAAM,CAAC,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAMX,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAZhC,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,EACN,QAAA,EAAA,wBAAwB,EACxB,QAAA,EAAA,gBAAgB,EAET,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACnC,UAAA,EAAA,CAAC,MAAM,CAAC,EACd,IAAA,EAAA;AACF,wBAAA,kBAAkB,EAAE,MAAM;AAC1B,wBAAA,WAAW,EAAE,SAAS;AACzB,qBAAA,EAAA,MAAA,EAAA,CAAA,+lBAAA,CAAA,EAAA,CAAA;8BAMM,IAAI,EAAA,CAAA;sBADV,KAAK;;;ACvBV;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-components-badge-notification.mjs","sources":["../../../projects/kit/components/badge-notification/badge-notification.options.ts","../../../projects/kit/components/badge-notification/badge-notification.component.ts","../../../projects/kit/components/badge-notification/taiga-ui-kit-components-badge-notification.ts"],"sourcesContent":["import type {Provider} from '@angular/core';\nimport {tuiCreateToken, tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {TuiSizeL, TuiSizeXS} from '@taiga-ui/core/types';\n\nexport interface TuiBadgeNotificationOptions {\n readonly size: TuiSizeL | TuiSizeXS;\n}\n\nexport const TUI_BADGE_NOTIFICATION_DEFAULT_OPTIONS: TuiBadgeNotificationOptions = {\n size: 'm',\n};\n\nexport const TUI_BADGE_NOTIFICATION_OPTIONS = tuiCreateToken(\n TUI_BADGE_NOTIFICATION_DEFAULT_OPTIONS,\n);\n\nexport function tuiBadgeNotificationOptionsProvider(\n options: Partial<TuiBadgeNotificationOptions>,\n): Provider {\n return tuiProvideOptions(\n TUI_BADGE_NOTIFICATION_OPTIONS,\n options,\n TUI_BADGE_NOTIFICATION_DEFAULT_OPTIONS,\n );\n}\n","import {ChangeDetectionStrategy, Component, inject, Input} from '@angular/core';\nimport {TuiAnimated} from '@taiga-ui/cdk/directives/animated';\nimport type {TuiSizeL, TuiSizeXS} from '@taiga-ui/core/types';\n\nimport {TUI_BADGE_NOTIFICATION_OPTIONS} from './badge-notification.options';\n\n@Component({\n standalone: true,\n selector: 'tui-badge-notification',\n template: '<ng-content />',\n styleUrls: ['./badge-notification.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [TuiAnimated],\n host: {\n '[attr.data-size]': 'size',\n },\n})\nexport class TuiBadgeNotification {\n @Input()\n public size: TuiSizeL | TuiSizeXS = inject(TUI_BADGE_NOTIFICATION_OPTIONS).size;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAQa,MAAA,sCAAsC,GAAgC;AAC/E,IAAA,IAAI,EAAE,GAAG;EACX;MAEW,8BAA8B,GAAG,cAAc,CACxD,sCAAsC,EACxC;AAEI,SAAU,mCAAmC,CAC/C,OAA6C,EAAA;IAE7C,OAAO,iBAAiB,CACpB,8BAA8B,EAC9B,OAAO,EACP,sCAAsC,CACzC,CAAC;AACN;;AClBA,MAWa,oBAAoB,CAAA;AAXjC,IAAA,WAAA,GAAA;AAaW,QAAA,IAAA,CAAA,IAAI,GAAyB,MAAM,CAAC,8BAA8B,CAAC,CAAC,IAAI,CAAC;AACnF,KAAA;+GAHY,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,iNARnB,gBAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,8vBAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAQjB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAXhC,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,EACN,QAAA,EAAA,wBAAwB,EACxB,QAAA,EAAA,gBAAgB,EAET,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAC/B,cAAA,EAAA,CAAC,WAAW,CAAC,EACvB,IAAA,EAAA;AACF,wBAAA,kBAAkB,EAAE,MAAM;AAC7B,qBAAA,EAAA,MAAA,EAAA,CAAA,8vBAAA,CAAA,EAAA,CAAA;8BAIM,IAAI,EAAA,CAAA;sBADV,KAAK;;;AClBV;;AAEG;;;;"}
@@ -13,7 +13,7 @@ import { TuiCalendarYear } from '@taiga-ui/core/components/calendar';
13
13
  import { TuiLink } from '@taiga-ui/core/components/link';
14
14
  import { TuiScrollbar } from '@taiga-ui/core/components/scrollbar';
15
15
  import { TuiSpinButton } from '@taiga-ui/core/components/spin-button';
16
- import { tuiAsAuxiliary } from '@taiga-ui/core/components/textfield';
16
+ import { tuiAsAuxiliary } from '@taiga-ui/core/tokens';
17
17
  import { TUI_CALENDAR_MONTHS } from '@taiga-ui/kit/tokens';
18
18
  import { tuiCreateOptions } from '@taiga-ui/cdk/utils/di';
19
19
 
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-calendar-month.mjs","sources":["../../../projects/kit/components/calendar-month/calendar-month.options.ts","../../../projects/kit/components/calendar-month/calendar-month.component.ts","../../../projects/kit/components/calendar-month/calendar-month.template.html","../../../projects/kit/components/calendar-month/taiga-ui-kit-components-calendar-month.ts"],"sourcesContent":["import {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\n\nexport interface TuiCalendarMonthOptions {\n rangeMode: boolean;\n}\n\nexport const TUI_CALENDAR_MONTH_DEFAULT_OPTIONS: TuiCalendarMonthOptions = {\n rangeMode: false,\n};\n\nexport const [TUI_CALENDAR_MONTH_OPTIONS, tuiCalendarMonthOptionsProvider] =\n tuiCreateOptions(TUI_CALENDAR_MONTH_DEFAULT_OPTIONS);\n","import {NgIf} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n EventEmitter,\n inject,\n Input,\n Output,\n signal,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {TUI_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {\n TUI_FIRST_DAY,\n TUI_LAST_DAY,\n TuiDay,\n TuiMonth,\n TuiMonthRange,\n TuiYear,\n} from '@taiga-ui/cdk/date-time';\nimport {TuiHovered} from '@taiga-ui/cdk/directives/hovered';\nimport {TuiLet} from '@taiga-ui/cdk/directives/let';\nimport {TuiRepeatTimes} from '@taiga-ui/cdk/directives/repeat-times';\nimport type {TuiBooleanHandler} from '@taiga-ui/cdk/types';\nimport {tuiNullableSame, tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiCalendarYear} from '@taiga-ui/core/components/calendar';\nimport {TuiLink} from '@taiga-ui/core/components/link';\nimport {TuiScrollbar} from '@taiga-ui/core/components/scrollbar';\nimport {TuiSpinButton} from '@taiga-ui/core/components/spin-button';\nimport {tuiAsAuxiliary} from '@taiga-ui/core/components/textfield';\nimport {TUI_CALENDAR_MONTHS} from '@taiga-ui/kit/tokens';\n\nimport {TUI_CALENDAR_MONTH_OPTIONS} from './calendar-month.options';\n\nconst TODAY = TuiDay.currentLocal();\n\n@Component({\n standalone: true,\n selector: 'tui-calendar-month',\n imports: [\n NgIf,\n TuiCalendarYear,\n TuiHovered,\n TuiLet,\n TuiLink,\n TuiRepeatTimes,\n TuiScrollbar,\n TuiSpinButton,\n ],\n templateUrl: './calendar-month.template.html',\n styleUrls: ['./calendar-month.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiAsAuxiliary(TuiCalendarMonth)],\n host: {\n '[class._picking]': 'isRangePicking()',\n },\n})\nexport class TuiCalendarMonth {\n protected isYearPickerShown = false;\n protected readonly months = toSignal(inject(TUI_CALENDAR_MONTHS));\n protected readonly isRangePicking = computed(\n (x = this.value()) =>\n (!this.options.rangeMode && x instanceof TuiMonthRange && x.isSingleMonth) || // TODO(v5): remove this condition\n (this.options.rangeMode && x instanceof TuiMonth),\n );\n\n @Input()\n public year: TuiYear = TODAY;\n\n @Input()\n public disabledItemHandler: TuiBooleanHandler<TuiMonth> = TUI_FALSE_HANDLER;\n\n @Input()\n public minLength: number | null = null;\n\n @Input()\n public maxLength: number | null = null;\n\n @Output()\n public readonly monthClick = new EventEmitter<TuiMonth>();\n\n @Output()\n public readonly hoveredItemChange = new EventEmitter<TuiMonth | null>();\n\n @Output()\n public readonly yearChange = new EventEmitter<TuiYear>();\n\n public options = inject(TUI_CALENDAR_MONTH_OPTIONS);\n public readonly min = signal<TuiMonth>(TUI_FIRST_DAY);\n public readonly max = signal<TuiMonth>(TUI_LAST_DAY);\n public readonly value = signal<TuiMonth | TuiMonthRange | null>(null);\n public hoveredItem: TuiMonth | null = null;\n\n // TODO(v5): use signal inputs\n @Input({alias: 'min', transform: (x: TuiMonth | null) => x ?? TUI_FIRST_DAY})\n public set minSetter(x: TuiMonth) {\n this.min.set(x);\n }\n\n // TODO(v5): use signal inputs\n @Input({alias: 'max', transform: (x: TuiMonth | null) => x ?? TUI_LAST_DAY})\n public set maxSetter(x: TuiMonth) {\n this.max.set(x);\n }\n\n // TODO(v5): use signal inputs\n @Input('value')\n public set valueSetter(x: TuiMonth | TuiMonthRange | null) {\n this.value.set(x);\n }\n\n public onNextYear(): void {\n this.updateActiveYear(this.year.append({year: 1}));\n }\n\n public onPreviousYear(): void {\n this.updateActiveYear(this.year.append({year: -1}));\n }\n\n public getItemRange(item: TuiMonth): 'active' | 'end' | 'middle' | 'start' | null {\n const value = this.value();\n const {hoveredItem} = this;\n\n if (!value) {\n return null;\n }\n\n if (!this.options.rangeMode && value instanceof TuiMonth) {\n return value?.monthSame(item) ? 'active' : null;\n }\n\n const selectedRange =\n value instanceof TuiMonth ? new TuiMonthRange(value, value) : value;\n const months = item.month + item.year * 12;\n const hovered = hoveredItem ? hoveredItem.month + hoveredItem.year * 12 : null;\n const from = selectedRange.from.month + selectedRange.from.year * 12;\n const to = selectedRange.to.month + selectedRange.to.year * 12;\n const picking = this.isRangePicking() ? hovered : null;\n const min = Math.min(from, to, picking ?? from);\n const max = Math.max(from, to, picking ?? from);\n\n if (min === max && min === months) {\n return 'active';\n }\n\n if (min === months) {\n return 'start';\n }\n\n if (max === months) {\n return 'end';\n }\n\n return min < months && months < max ? 'middle' : null;\n }\n\n protected get disabledItemHandlerWithMinMax(): TuiBooleanHandler<TuiMonth> {\n return this.calculateDisabledItemHandlerWithMinMax(\n this.disabledItemHandler,\n this.value(),\n this.isRangePicking(),\n this.min(),\n this.max(),\n this.minLength,\n this.maxLength,\n );\n }\n\n protected getTuiMonth(monthNumber: number, yearNumber: number): TuiMonth {\n return new TuiMonth(yearNumber, monthNumber);\n }\n\n protected isItemToday(item: TuiMonth): boolean {\n return TODAY.monthSame(item);\n }\n\n protected onPickerYearClick(year: number): void {\n this.isYearPickerShown = false;\n\n if (this.year.year !== year) {\n this.updateActiveYear(new TuiYear(year));\n }\n }\n\n protected onItemClick(month: TuiMonth): void {\n if (!this.disabledItemHandlerWithMinMax(month)) {\n this.monthClick.emit(month);\n }\n }\n\n protected onYearClick(): void {\n this.isYearPickerShown = true;\n }\n\n protected onItemHovered(hovered: boolean, item: TuiMonth): void {\n this.updateHoveredItem(hovered ? item : null);\n }\n\n // eslint-disable-next-line @typescript-eslint/max-params,max-params\n @tuiPure\n private calculateDisabledItemHandlerWithMinMax(\n disabledItemHandler: TuiBooleanHandler<TuiMonth>,\n value: TuiMonth | TuiMonthRange | null,\n isRangePicking: boolean,\n min: TuiMonth,\n max: TuiMonth,\n minLength: number | null,\n maxLength: number | null,\n ): TuiBooleanHandler<TuiMonth> {\n return (item) => {\n const selectedMonth = value instanceof TuiMonthRange ? value.from : value;\n const delta =\n isRangePicking && selectedMonth\n ? Math.abs(\n item.year * 12 +\n item.month -\n selectedMonth.year * 12 -\n selectedMonth.month,\n )\n : 0;\n\n const tooLong = delta && maxLength && delta > maxLength;\n const tooShort = delta && minLength && delta < minLength;\n\n return (\n tooLong ||\n tooShort ||\n item.monthBefore(min) ||\n item.monthAfter(max) ||\n disabledItemHandler(item)\n );\n };\n }\n\n private updateHoveredItem(month: TuiMonth | null): void {\n if (tuiNullableSame(this.hoveredItem, month, (a, b) => a.monthSame(b))) {\n return;\n }\n\n this.hoveredItem = month;\n this.hoveredItemChange.emit(month);\n }\n\n private updateActiveYear(year: TuiYear): void {\n this.year = year;\n this.yearChange.emit(year);\n }\n}\n","<tui-scrollbar\n *ngIf=\"isYearPickerShown; else monthSelect\"\n class=\"t-scrollbar\"\n>\n <tui-calendar-year\n [initialItem]=\"year.year\"\n [max]=\"max().year\"\n [min]=\"min().year\"\n [value]=\"value()\"\n (yearClick)=\"onPickerYearClick($event)\"\n />\n</tui-scrollbar>\n<ng-template #monthSelect>\n <tui-spin-button\n class=\"t-spin\"\n [focusable]=\"false\"\n [leftDisabled]=\"year.yearSameOrBefore(min())\"\n [rightDisabled]=\"year.yearSameOrAfter(max())\"\n (leftClick)=\"onPreviousYear()\"\n (rightClick)=\"onNextYear()\"\n >\n <button\n automation-id=\"tui-calendar-month__active-year\"\n tabIndex=\"-1\"\n tuiLink\n type=\"button\"\n (click)=\"onYearClick()\"\n >\n {{ year.formattedYear }}\n </button>\n </tui-spin-button>\n <div\n *tuiRepeatTimes=\"let row of 3\"\n class=\"t-row\"\n >\n <ng-container *tuiRepeatTimes=\"let column of 4\">\n <div\n *tuiLet=\"getTuiMonth(row * 4 + column, year.year) as item\"\n class=\"t-cell\"\n [attr.data-range]=\"getItemRange(item)\"\n [class.t-cell_disabled]=\"disabledItemHandlerWithMinMax(item)\"\n [class.t-cell_today]=\"isItemToday(item)\"\n (click)=\"onItemClick(item)\"\n (tuiHoveredChange)=\"onItemHovered($event, item)\"\n >\n {{ months()?.[row * 4 + column] }}\n </div>\n </ng-container>\n </div>\n</ng-template>\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-calendar-month.mjs","sources":["../../../projects/kit/components/calendar-month/calendar-month.options.ts","../../../projects/kit/components/calendar-month/calendar-month.component.ts","../../../projects/kit/components/calendar-month/calendar-month.template.html","../../../projects/kit/components/calendar-month/taiga-ui-kit-components-calendar-month.ts"],"sourcesContent":["import {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\n\nexport interface TuiCalendarMonthOptions {\n rangeMode: boolean;\n}\n\nexport const TUI_CALENDAR_MONTH_DEFAULT_OPTIONS: TuiCalendarMonthOptions = {\n rangeMode: false,\n};\n\nexport const [TUI_CALENDAR_MONTH_OPTIONS, tuiCalendarMonthOptionsProvider] =\n tuiCreateOptions(TUI_CALENDAR_MONTH_DEFAULT_OPTIONS);\n","import {NgIf} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n EventEmitter,\n inject,\n Input,\n Output,\n signal,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {TUI_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {\n TUI_FIRST_DAY,\n TUI_LAST_DAY,\n TuiDay,\n TuiMonth,\n TuiMonthRange,\n TuiYear,\n} from '@taiga-ui/cdk/date-time';\nimport {TuiHovered} from '@taiga-ui/cdk/directives/hovered';\nimport {TuiLet} from '@taiga-ui/cdk/directives/let';\nimport {TuiRepeatTimes} from '@taiga-ui/cdk/directives/repeat-times';\nimport type {TuiBooleanHandler} from '@taiga-ui/cdk/types';\nimport {tuiNullableSame, tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiCalendarYear} from '@taiga-ui/core/components/calendar';\nimport {TuiLink} from '@taiga-ui/core/components/link';\nimport {TuiScrollbar} from '@taiga-ui/core/components/scrollbar';\nimport {TuiSpinButton} from '@taiga-ui/core/components/spin-button';\nimport {tuiAsAuxiliary} from '@taiga-ui/core/tokens';\nimport {TUI_CALENDAR_MONTHS} from '@taiga-ui/kit/tokens';\n\nimport {TUI_CALENDAR_MONTH_OPTIONS} from './calendar-month.options';\n\nconst TODAY = TuiDay.currentLocal();\n\n@Component({\n standalone: true,\n selector: 'tui-calendar-month',\n imports: [\n NgIf,\n TuiCalendarYear,\n TuiHovered,\n TuiLet,\n TuiLink,\n TuiRepeatTimes,\n TuiScrollbar,\n TuiSpinButton,\n ],\n templateUrl: './calendar-month.template.html',\n styleUrls: ['./calendar-month.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiAsAuxiliary(TuiCalendarMonth)],\n host: {\n '[class._picking]': 'isRangePicking()',\n },\n})\nexport class TuiCalendarMonth {\n protected isYearPickerShown = false;\n protected readonly months = toSignal(inject(TUI_CALENDAR_MONTHS));\n protected readonly isRangePicking = computed(\n (x = this.value()) =>\n (!this.options.rangeMode && x instanceof TuiMonthRange && x.isSingleMonth) || // TODO(v5): remove this condition\n (this.options.rangeMode && x instanceof TuiMonth),\n );\n\n @Input()\n public year: TuiYear = TODAY;\n\n @Input()\n public disabledItemHandler: TuiBooleanHandler<TuiMonth> = TUI_FALSE_HANDLER;\n\n @Input()\n public minLength: number | null = null;\n\n @Input()\n public maxLength: number | null = null;\n\n @Output()\n public readonly monthClick = new EventEmitter<TuiMonth>();\n\n @Output()\n public readonly hoveredItemChange = new EventEmitter<TuiMonth | null>();\n\n @Output()\n public readonly yearChange = new EventEmitter<TuiYear>();\n\n public options = inject(TUI_CALENDAR_MONTH_OPTIONS);\n public readonly min = signal<TuiMonth>(TUI_FIRST_DAY);\n public readonly max = signal<TuiMonth>(TUI_LAST_DAY);\n public readonly value = signal<TuiMonth | TuiMonthRange | null>(null);\n public hoveredItem: TuiMonth | null = null;\n\n // TODO(v5): use signal inputs\n @Input({alias: 'min', transform: (x: TuiMonth | null) => x ?? TUI_FIRST_DAY})\n public set minSetter(x: TuiMonth) {\n this.min.set(x);\n }\n\n // TODO(v5): use signal inputs\n @Input({alias: 'max', transform: (x: TuiMonth | null) => x ?? TUI_LAST_DAY})\n public set maxSetter(x: TuiMonth) {\n this.max.set(x);\n }\n\n // TODO(v5): use signal inputs\n @Input('value')\n public set valueSetter(x: TuiMonth | TuiMonthRange | null) {\n this.value.set(x);\n }\n\n public onNextYear(): void {\n this.updateActiveYear(this.year.append({year: 1}));\n }\n\n public onPreviousYear(): void {\n this.updateActiveYear(this.year.append({year: -1}));\n }\n\n public getItemRange(item: TuiMonth): 'active' | 'end' | 'middle' | 'start' | null {\n const value = this.value();\n const {hoveredItem} = this;\n\n if (!value) {\n return null;\n }\n\n if (!this.options.rangeMode && value instanceof TuiMonth) {\n return value?.monthSame(item) ? 'active' : null;\n }\n\n const selectedRange =\n value instanceof TuiMonth ? new TuiMonthRange(value, value) : value;\n const months = item.month + item.year * 12;\n const hovered = hoveredItem ? hoveredItem.month + hoveredItem.year * 12 : null;\n const from = selectedRange.from.month + selectedRange.from.year * 12;\n const to = selectedRange.to.month + selectedRange.to.year * 12;\n const picking = this.isRangePicking() ? hovered : null;\n const min = Math.min(from, to, picking ?? from);\n const max = Math.max(from, to, picking ?? from);\n\n if (min === max && min === months) {\n return 'active';\n }\n\n if (min === months) {\n return 'start';\n }\n\n if (max === months) {\n return 'end';\n }\n\n return min < months && months < max ? 'middle' : null;\n }\n\n protected get disabledItemHandlerWithMinMax(): TuiBooleanHandler<TuiMonth> {\n return this.calculateDisabledItemHandlerWithMinMax(\n this.disabledItemHandler,\n this.value(),\n this.isRangePicking(),\n this.min(),\n this.max(),\n this.minLength,\n this.maxLength,\n );\n }\n\n protected getTuiMonth(monthNumber: number, yearNumber: number): TuiMonth {\n return new TuiMonth(yearNumber, monthNumber);\n }\n\n protected isItemToday(item: TuiMonth): boolean {\n return TODAY.monthSame(item);\n }\n\n protected onPickerYearClick(year: number): void {\n this.isYearPickerShown = false;\n\n if (this.year.year !== year) {\n this.updateActiveYear(new TuiYear(year));\n }\n }\n\n protected onItemClick(month: TuiMonth): void {\n if (!this.disabledItemHandlerWithMinMax(month)) {\n this.monthClick.emit(month);\n }\n }\n\n protected onYearClick(): void {\n this.isYearPickerShown = true;\n }\n\n protected onItemHovered(hovered: boolean, item: TuiMonth): void {\n this.updateHoveredItem(hovered ? item : null);\n }\n\n // eslint-disable-next-line @typescript-eslint/max-params,max-params\n @tuiPure\n private calculateDisabledItemHandlerWithMinMax(\n disabledItemHandler: TuiBooleanHandler<TuiMonth>,\n value: TuiMonth | TuiMonthRange | null,\n isRangePicking: boolean,\n min: TuiMonth,\n max: TuiMonth,\n minLength: number | null,\n maxLength: number | null,\n ): TuiBooleanHandler<TuiMonth> {\n return (item) => {\n const selectedMonth = value instanceof TuiMonthRange ? value.from : value;\n const delta =\n isRangePicking && selectedMonth\n ? Math.abs(\n item.year * 12 +\n item.month -\n selectedMonth.year * 12 -\n selectedMonth.month,\n )\n : 0;\n\n const tooLong = delta && maxLength && delta > maxLength;\n const tooShort = delta && minLength && delta < minLength;\n\n return (\n tooLong ||\n tooShort ||\n item.monthBefore(min) ||\n item.monthAfter(max) ||\n disabledItemHandler(item)\n );\n };\n }\n\n private updateHoveredItem(month: TuiMonth | null): void {\n if (tuiNullableSame(this.hoveredItem, month, (a, b) => a.monthSame(b))) {\n return;\n }\n\n this.hoveredItem = month;\n this.hoveredItemChange.emit(month);\n }\n\n private updateActiveYear(year: TuiYear): void {\n this.year = year;\n this.yearChange.emit(year);\n }\n}\n","<tui-scrollbar\n *ngIf=\"isYearPickerShown; else monthSelect\"\n class=\"t-scrollbar\"\n>\n <tui-calendar-year\n [initialItem]=\"year.year\"\n [max]=\"max().year\"\n [min]=\"min().year\"\n [value]=\"value()\"\n (yearClick)=\"onPickerYearClick($event)\"\n />\n</tui-scrollbar>\n<ng-template #monthSelect>\n <tui-spin-button\n class=\"t-spin\"\n [focusable]=\"false\"\n [leftDisabled]=\"year.yearSameOrBefore(min())\"\n [rightDisabled]=\"year.yearSameOrAfter(max())\"\n (leftClick)=\"onPreviousYear()\"\n (rightClick)=\"onNextYear()\"\n >\n <button\n automation-id=\"tui-calendar-month__active-year\"\n tabIndex=\"-1\"\n tuiLink\n type=\"button\"\n (click)=\"onYearClick()\"\n >\n {{ year.formattedYear }}\n </button>\n </tui-spin-button>\n <div\n *tuiRepeatTimes=\"let row of 3\"\n class=\"t-row\"\n >\n <ng-container *tuiRepeatTimes=\"let column of 4\">\n <div\n *tuiLet=\"getTuiMonth(row * 4 + column, year.year) as item\"\n class=\"t-cell\"\n [attr.data-range]=\"getItemRange(item)\"\n [class.t-cell_disabled]=\"disabledItemHandlerWithMinMax(item)\"\n [class.t-cell_today]=\"isItemToday(item)\"\n (click)=\"onItemClick(item)\"\n (tuiHoveredChange)=\"onItemHovered($event, item)\"\n >\n {{ months()?.[row * 4 + column] }}\n </div>\n </ng-container>\n </div>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { TuiItem } from '@taiga-ui/cdk/directives/item';
2
2
  import { __decorate } from 'tslib';
3
3
  import { isPlatformServer, AsyncPipe, NgForOf, NgIf, NgTemplateOutlet } from '@angular/common';
4
4
  import * as i0 from '@angular/core';
5
- import { inject, PLATFORM_ID, Directive, Input, Output, ChangeDetectorRef, EventEmitter, TemplateRef, Component, ChangeDetectionStrategy, ContentChildren } from '@angular/core';
5
+ import { inject, PLATFORM_ID, NgZone, Directive, Input, Output, ChangeDetectorRef, EventEmitter, TemplateRef, Component, ChangeDetectionStrategy, ContentChildren } from '@angular/core';
6
6
  import * as i2 from '@ng-web-apis/intersection-observer';
7
7
  import { WaIntersectionObserver } from '@ng-web-apis/intersection-observer';
8
8
  import { TUI_FALSE_HANDLER, TUI_TRUE_HANDLER, EMPTY_QUERY } from '@taiga-ui/cdk/constants';
@@ -13,7 +13,7 @@ import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
13
13
  import { tuiClamp } from '@taiga-ui/cdk/utils/math';
14
14
  import { tuiPure } from '@taiga-ui/cdk/utils/miscellaneous';
15
15
  import { WA_PAGE_VISIBILITY } from '@ng-web-apis/common';
16
- import { tuiTypedFromEvent, tuiIfMap, tuiZonefreeScheduler } from '@taiga-ui/cdk/observables';
16
+ import { tuiTypedFromEvent, tuiIfMap, tuiZoneOptimized, tuiZonefreeScheduler } from '@taiga-ui/cdk/observables';
17
17
  import { Observable, BehaviorSubject, merge, map, EMPTY, combineLatest, interval, filter, throttleTime, tap } from 'rxjs';
18
18
  import { tuiButtonOptionsProvider } from '@taiga-ui/core/components/button';
19
19
 
@@ -23,11 +23,12 @@ class TuiCarouselDirective extends Observable {
23
23
  this.el = tuiInjectElement();
24
24
  this.platform = inject(PLATFORM_ID);
25
25
  this.visible$ = inject(WA_PAGE_VISIBILITY);
26
+ this.zone = inject(NgZone);
26
27
  this.duration$ = new BehaviorSubject(0);
27
28
  this.running$ = merge(tuiTypedFromEvent(this.el, 'mouseenter').pipe(map(TUI_FALSE_HANDLER)), tuiTypedFromEvent(this.el, 'touchstart').pipe(map(TUI_FALSE_HANDLER)), tuiTypedFromEvent(this.el, 'touchend').pipe(map(TUI_TRUE_HANDLER)), tuiTypedFromEvent(this.el, 'mouseleave').pipe(map(TUI_TRUE_HANDLER)), this.visible$);
28
29
  this.output$ = isPlatformServer(this.platform)
29
30
  ? EMPTY
30
- : combineLatest([this.duration$, this.running$]).pipe(tuiIfMap(([duration]) => interval(duration), (values) => values.every(Boolean)));
31
+ : combineLatest([this.duration$, this.running$]).pipe(tuiIfMap(([duration]) => interval(duration).pipe(tuiZoneOptimized(this.zone)), (values) => values.every(Boolean)));
31
32
  }
32
33
  set duration(duration) {
33
34
  this.duration$.next(Number.isNaN(duration) ? this.duration$.value : duration);
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-carousel.mjs","sources":["../../../projects/kit/components/carousel/carousel.directive.ts","../../../projects/kit/components/carousel/carousel-autoscroll.directive.ts","../../../projects/kit/components/carousel/carousel-scroll.directive.ts","../../../projects/kit/components/carousel/carousel.component.ts","../../../projects/kit/components/carousel/carousel.template.html","../../../projects/kit/components/carousel/carousel-buttons.directive.ts","../../../projects/kit/components/carousel/carousel.ts","../../../projects/kit/components/carousel/taiga-ui-kit-components-carousel.ts"],"sourcesContent":["import {isPlatformServer} from '@angular/common';\nimport {Directive, inject, Input, PLATFORM_ID} from '@angular/core';\nimport {WA_PAGE_VISIBILITY} from '@ng-web-apis/common';\nimport {TUI_FALSE_HANDLER, TUI_TRUE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {tuiIfMap, tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {\n BehaviorSubject,\n combineLatest,\n EMPTY,\n interval,\n map,\n merge,\n Observable,\n} from 'rxjs';\n\n@Directive({\n standalone: true,\n})\nexport class TuiCarouselDirective extends Observable<unknown> {\n private readonly el = tuiInjectElement();\n private readonly platform = inject(PLATFORM_ID);\n private readonly visible$ = inject(WA_PAGE_VISIBILITY);\n private readonly duration$ = new BehaviorSubject(0);\n private readonly running$ = merge(\n tuiTypedFromEvent(this.el, 'mouseenter').pipe(map(TUI_FALSE_HANDLER)),\n tuiTypedFromEvent(this.el, 'touchstart').pipe(map(TUI_FALSE_HANDLER)),\n tuiTypedFromEvent(this.el, 'touchend').pipe(map(TUI_TRUE_HANDLER)),\n tuiTypedFromEvent(this.el, 'mouseleave').pipe(map(TUI_TRUE_HANDLER)),\n this.visible$,\n );\n\n private readonly output$ = isPlatformServer(this.platform)\n ? EMPTY\n : combineLatest([this.duration$, this.running$]).pipe(\n tuiIfMap(\n ([duration]) => interval(duration),\n (values) => values.every(Boolean),\n ),\n );\n\n constructor() {\n super((subscriber) => this.output$.subscribe(subscriber));\n }\n\n @Input()\n public set duration(duration: number) {\n this.duration$.next(Number.isNaN(duration) ? this.duration$.value : duration);\n }\n}\n","import {Directive, inject, Output} from '@angular/core';\n\nimport {TuiCarouselDirective} from './carousel.directive';\n\n@Directive({\n standalone: true,\n selector: '[tuiCarouselAutoscroll]',\n})\nexport class TuiCarouselAutoscroll {\n @Output()\n public readonly tuiCarouselAutoscroll = inject(TuiCarouselDirective);\n}\n","import {Directive, Output} from '@angular/core';\nimport {tuiTypedFromEvent, tuiZonefreeScheduler} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {filter, map, tap, throttleTime} from 'rxjs';\n\n@Directive({\n standalone: true,\n selector: '[tuiCarouselScroll]',\n})\nexport class TuiCarouselScroll {\n private readonly el = tuiInjectElement();\n\n @Output()\n public readonly tuiCarouselScroll = tuiTypedFromEvent(this.el, 'wheel').pipe(\n filter(({deltaX}) => Math.abs(deltaX) > 20),\n throttleTime(500, tuiZonefreeScheduler()),\n map(({deltaX}) => Math.sign(deltaX)),\n tap(() => {\n // So we always have space to scroll and overflow-behavior saves us from back nav\n this.el.scrollLeft = 10;\n }),\n );\n}\n","import {AsyncPipe, NgForOf, NgIf, NgTemplateOutlet} from '@angular/common';\nimport type {QueryList} from '@angular/core';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n EventEmitter,\n inject,\n Input,\n Output,\n TemplateRef,\n} from '@angular/core';\nimport {WaIntersectionObserver} from '@ng-web-apis/intersection-observer';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {TuiItem} from '@taiga-ui/cdk/directives/item';\nimport {TuiPan} from '@taiga-ui/cdk/directives/pan';\nimport type {TuiSwipeDirection} from '@taiga-ui/cdk/directives/swipe';\nimport {TUI_SWIPE_OPTIONS, TuiSwipe} from '@taiga-ui/cdk/directives/swipe';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiClamp} from '@taiga-ui/cdk/utils/math';\nimport {tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {TuiCarouselDirective} from './carousel.directive';\nimport {TuiCarouselAutoscroll} from './carousel-autoscroll.directive';\nimport {TuiCarouselScroll} from './carousel-scroll.directive';\n\n@Component({\n standalone: true,\n selector: 'tui-carousel',\n imports: [\n AsyncPipe,\n NgForOf,\n NgIf,\n NgTemplateOutlet,\n TuiCarouselAutoscroll,\n TuiCarouselScroll,\n TuiPan,\n TuiSwipe,\n WaIntersectionObserver,\n ],\n templateUrl: './carousel.template.html',\n styleUrls: ['./carousel.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{provide: TUI_SWIPE_OPTIONS, useValue: {timeout: 200, threshold: 30}}],\n hostDirectives: [\n {\n directive: TuiCarouselDirective,\n inputs: ['duration'],\n },\n ],\n host: {\n '[class._transitioned]': 'transitioned',\n '[class._draggable]': 'draggable',\n '(touchstart)': 'onTransitioned(false)',\n '(touchend)': 'onTransitioned(true)',\n '(mousedown)': 'onTransitioned(false)',\n '(document:mouseup.zoneless)': 'onTransitioned(true)',\n },\n})\nexport class TuiCarouselComponent {\n private readonly el = tuiInjectElement();\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly isMobile = inject(TUI_IS_MOBILE);\n private readonly directive = inject(TuiCarouselDirective);\n private translate = 0;\n\n @ContentChildren(TuiItem, {read: TemplateRef})\n protected readonly items: QueryList<TemplateRef<Record<string, unknown>>> =\n EMPTY_QUERY;\n\n protected transitioned = true;\n\n protected index = 0;\n\n @Input()\n public draggable = false;\n\n @Input()\n public itemsCount = 1;\n\n @Output()\n public readonly indexChange = new EventEmitter<number>();\n\n @Output()\n public readonly shift = new EventEmitter<number>();\n\n @Input('index')\n public set indexSetter(index: number) {\n this.index = index;\n this.directive.duration = NaN;\n }\n\n public next(): void {\n if (this.items && this.index === this.items.length - this.itemsCount) {\n return;\n }\n\n this.updateIndex(this.index + 1);\n }\n\n public prev(): void {\n this.updateIndex(this.index - 1);\n }\n\n protected get transform(): string {\n return `translateX(${100 * this.x}%)`;\n }\n\n @tuiPure\n protected getStyle(itemsCount: number): Partial<CSSStyleDeclaration> {\n const percent = `${100 / itemsCount}%`;\n\n return {\n flexBasis: percent,\n minWidth: percent,\n maxWidth: percent,\n };\n }\n\n protected onTransitioned(transitioned: boolean): void {\n this.transitioned = transitioned;\n\n if (!transitioned) {\n this.translate = this.computedTranslate;\n }\n\n this.onShift();\n }\n\n protected isDisabled(index: number): boolean {\n return index < this.index || index >= this.index + this.itemsCount;\n }\n\n protected onIntersection(\n {intersectionRatio}: IntersectionObserverEntry,\n index: number,\n ): void {\n if (intersectionRatio && intersectionRatio >= 0.5 && !this.transitioned) {\n this.updateIndex(this.index < index ? index - this.itemsCount + 1 : index);\n }\n }\n\n protected onScroll(delta: number): void {\n if (!this.isMobile) {\n if (delta > 0) {\n this.next();\n } else {\n this.prev();\n }\n }\n }\n\n protected onPan(x: number): void {\n if (!this.computedDraggable) {\n return;\n }\n\n const min = 1 - this.items.length / this.itemsCount;\n\n this.translate = tuiClamp(x / this.el.clientWidth + this.translate, min, 0);\n\n this.onShift();\n }\n\n protected onSwipe(direction: TuiSwipeDirection): void {\n if (direction === 'left') {\n this.next();\n } else if (direction === 'right') {\n this.prev();\n }\n }\n\n protected onAutoscroll(): void {\n this.updateIndex(this.index === this.items.length - 1 ? 0 : this.index + 1);\n }\n\n protected onShift(): void {\n this.shift.emit(Math.abs((this.x % 1) + 0.5) * 2);\n }\n\n private get x(): number {\n return this.transitioned ? this.computedTranslate : this.translate;\n }\n\n private get computedTranslate(): number {\n return -this.index / this.itemsCount;\n }\n\n private get computedDraggable(): boolean {\n return this.isMobile || this.draggable;\n }\n\n private updateIndex(index: number): void {\n this.index = tuiClamp(index, 0, this.items.length - 1);\n this.indexChange.emit(this.index);\n this.cdr.markForCheck();\n }\n}\n","<ng-container *ngIf=\"items.changes | async\" />\n<div\n class=\"t-scroller\"\n (tuiCarouselScroll)=\"onScroll($event)\"\n>\n <div\n waIntersectionObserver\n waIntersectionThreshold=\"0.5\"\n class=\"t-wrapper\"\n >\n <div\n class=\"t-items\"\n [style.transform]=\"transform\"\n (tuiCarouselAutoscroll)=\"onAutoscroll()\"\n (tuiPan)=\"onPan($event[0])\"\n (tuiSwipe)=\"onSwipe($event.direction)\"\n >\n <fieldset\n *ngFor=\"let item of items; let i = index\"\n class=\"t-item\"\n [disabled]=\"isDisabled(i)\"\n [style]=\"getStyle(itemsCount)\"\n (waIntersectionObservee)=\"$event[0] && onIntersection($event[0], i)\"\n >\n <ng-container [ngTemplateOutlet]=\"item\" />\n </fieldset>\n </div>\n </div>\n</div>\n","import {Directive} from '@angular/core';\nimport {tuiButtonOptionsProvider} from '@taiga-ui/core/components/button';\n\n@Directive({\n standalone: true,\n selector: '[tuiCarouselButtons]',\n providers: [\n tuiButtonOptionsProvider({\n appearance: 'secondary',\n size: 'm',\n }),\n ],\n})\nexport class TuiCarouselButtons {}\n","import {TuiItem} from '@taiga-ui/cdk/directives/item';\n\nimport {TuiCarouselComponent} from './carousel.component';\nimport {TuiCarouselDirective} from './carousel.directive';\nimport {TuiCarouselAutoscroll} from './carousel-autoscroll.directive';\nimport {TuiCarouselButtons} from './carousel-buttons.directive';\nimport {TuiCarouselScroll} from './carousel-scroll.directive';\n\nexport const TuiCarousel = [\n TuiItem,\n TuiCarouselComponent,\n TuiCarouselDirective,\n TuiCarouselAutoscroll,\n TuiCarouselButtons,\n TuiCarouselScroll,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.TuiCarouselDirective"],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-kit-components-carousel.mjs","sources":["../../../projects/kit/components/carousel/carousel.directive.ts","../../../projects/kit/components/carousel/carousel-autoscroll.directive.ts","../../../projects/kit/components/carousel/carousel-scroll.directive.ts","../../../projects/kit/components/carousel/carousel.component.ts","../../../projects/kit/components/carousel/carousel.template.html","../../../projects/kit/components/carousel/carousel-buttons.directive.ts","../../../projects/kit/components/carousel/carousel.ts","../../../projects/kit/components/carousel/taiga-ui-kit-components-carousel.ts"],"sourcesContent":["import {isPlatformServer} from '@angular/common';\nimport {Directive, inject, Input, NgZone, PLATFORM_ID} from '@angular/core';\nimport {WA_PAGE_VISIBILITY} from '@ng-web-apis/common';\nimport {TUI_FALSE_HANDLER, TUI_TRUE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {tuiIfMap, tuiTypedFromEvent, tuiZoneOptimized} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {\n BehaviorSubject,\n combineLatest,\n EMPTY,\n interval,\n map,\n merge,\n Observable,\n} from 'rxjs';\n\n@Directive({\n standalone: true,\n})\nexport class TuiCarouselDirective extends Observable<unknown> {\n private readonly el = tuiInjectElement();\n private readonly platform = inject(PLATFORM_ID);\n private readonly visible$ = inject(WA_PAGE_VISIBILITY);\n private readonly zone = inject(NgZone);\n private readonly duration$ = new BehaviorSubject(0);\n private readonly running$ = merge(\n tuiTypedFromEvent(this.el, 'mouseenter').pipe(map(TUI_FALSE_HANDLER)),\n tuiTypedFromEvent(this.el, 'touchstart').pipe(map(TUI_FALSE_HANDLER)),\n tuiTypedFromEvent(this.el, 'touchend').pipe(map(TUI_TRUE_HANDLER)),\n tuiTypedFromEvent(this.el, 'mouseleave').pipe(map(TUI_TRUE_HANDLER)),\n this.visible$,\n );\n\n private readonly output$ = isPlatformServer(this.platform)\n ? EMPTY\n : combineLatest([this.duration$, this.running$]).pipe(\n tuiIfMap(\n ([duration]) => interval(duration).pipe(tuiZoneOptimized(this.zone)),\n (values) => values.every(Boolean),\n ),\n );\n\n constructor() {\n super((subscriber) => this.output$.subscribe(subscriber));\n }\n\n @Input()\n public set duration(duration: number) {\n this.duration$.next(Number.isNaN(duration) ? this.duration$.value : duration);\n }\n}\n","import {Directive, inject, Output} from '@angular/core';\n\nimport {TuiCarouselDirective} from './carousel.directive';\n\n@Directive({\n standalone: true,\n selector: '[tuiCarouselAutoscroll]',\n})\nexport class TuiCarouselAutoscroll {\n @Output()\n public readonly tuiCarouselAutoscroll = inject(TuiCarouselDirective);\n}\n","import {Directive, Output} from '@angular/core';\nimport {tuiTypedFromEvent, tuiZonefreeScheduler} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {filter, map, tap, throttleTime} from 'rxjs';\n\n@Directive({\n standalone: true,\n selector: '[tuiCarouselScroll]',\n})\nexport class TuiCarouselScroll {\n private readonly el = tuiInjectElement();\n\n @Output()\n public readonly tuiCarouselScroll = tuiTypedFromEvent(this.el, 'wheel').pipe(\n filter(({deltaX}) => Math.abs(deltaX) > 20),\n throttleTime(500, tuiZonefreeScheduler()),\n map(({deltaX}) => Math.sign(deltaX)),\n tap(() => {\n // So we always have space to scroll and overflow-behavior saves us from back nav\n this.el.scrollLeft = 10;\n }),\n );\n}\n","import {AsyncPipe, NgForOf, NgIf, NgTemplateOutlet} from '@angular/common';\nimport type {QueryList} from '@angular/core';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n EventEmitter,\n inject,\n Input,\n Output,\n TemplateRef,\n} from '@angular/core';\nimport {WaIntersectionObserver} from '@ng-web-apis/intersection-observer';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {TuiItem} from '@taiga-ui/cdk/directives/item';\nimport {TuiPan} from '@taiga-ui/cdk/directives/pan';\nimport type {TuiSwipeDirection} from '@taiga-ui/cdk/directives/swipe';\nimport {TUI_SWIPE_OPTIONS, TuiSwipe} from '@taiga-ui/cdk/directives/swipe';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiClamp} from '@taiga-ui/cdk/utils/math';\nimport {tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {TuiCarouselDirective} from './carousel.directive';\nimport {TuiCarouselAutoscroll} from './carousel-autoscroll.directive';\nimport {TuiCarouselScroll} from './carousel-scroll.directive';\n\n@Component({\n standalone: true,\n selector: 'tui-carousel',\n imports: [\n AsyncPipe,\n NgForOf,\n NgIf,\n NgTemplateOutlet,\n TuiCarouselAutoscroll,\n TuiCarouselScroll,\n TuiPan,\n TuiSwipe,\n WaIntersectionObserver,\n ],\n templateUrl: './carousel.template.html',\n styleUrls: ['./carousel.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{provide: TUI_SWIPE_OPTIONS, useValue: {timeout: 200, threshold: 30}}],\n hostDirectives: [\n {\n directive: TuiCarouselDirective,\n inputs: ['duration'],\n },\n ],\n host: {\n '[class._transitioned]': 'transitioned',\n '[class._draggable]': 'draggable',\n '(touchstart)': 'onTransitioned(false)',\n '(touchend)': 'onTransitioned(true)',\n '(mousedown)': 'onTransitioned(false)',\n '(document:mouseup.zoneless)': 'onTransitioned(true)',\n },\n})\nexport class TuiCarouselComponent {\n private readonly el = tuiInjectElement();\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly isMobile = inject(TUI_IS_MOBILE);\n private readonly directive = inject(TuiCarouselDirective);\n private translate = 0;\n\n @ContentChildren(TuiItem, {read: TemplateRef})\n protected readonly items: QueryList<TemplateRef<Record<string, unknown>>> =\n EMPTY_QUERY;\n\n protected transitioned = true;\n\n protected index = 0;\n\n @Input()\n public draggable = false;\n\n @Input()\n public itemsCount = 1;\n\n @Output()\n public readonly indexChange = new EventEmitter<number>();\n\n @Output()\n public readonly shift = new EventEmitter<number>();\n\n @Input('index')\n public set indexSetter(index: number) {\n this.index = index;\n this.directive.duration = NaN;\n }\n\n public next(): void {\n if (this.items && this.index === this.items.length - this.itemsCount) {\n return;\n }\n\n this.updateIndex(this.index + 1);\n }\n\n public prev(): void {\n this.updateIndex(this.index - 1);\n }\n\n protected get transform(): string {\n return `translateX(${100 * this.x}%)`;\n }\n\n @tuiPure\n protected getStyle(itemsCount: number): Partial<CSSStyleDeclaration> {\n const percent = `${100 / itemsCount}%`;\n\n return {\n flexBasis: percent,\n minWidth: percent,\n maxWidth: percent,\n };\n }\n\n protected onTransitioned(transitioned: boolean): void {\n this.transitioned = transitioned;\n\n if (!transitioned) {\n this.translate = this.computedTranslate;\n }\n\n this.onShift();\n }\n\n protected isDisabled(index: number): boolean {\n return index < this.index || index >= this.index + this.itemsCount;\n }\n\n protected onIntersection(\n {intersectionRatio}: IntersectionObserverEntry,\n index: number,\n ): void {\n if (intersectionRatio && intersectionRatio >= 0.5 && !this.transitioned) {\n this.updateIndex(this.index < index ? index - this.itemsCount + 1 : index);\n }\n }\n\n protected onScroll(delta: number): void {\n if (!this.isMobile) {\n if (delta > 0) {\n this.next();\n } else {\n this.prev();\n }\n }\n }\n\n protected onPan(x: number): void {\n if (!this.computedDraggable) {\n return;\n }\n\n const min = 1 - this.items.length / this.itemsCount;\n\n this.translate = tuiClamp(x / this.el.clientWidth + this.translate, min, 0);\n\n this.onShift();\n }\n\n protected onSwipe(direction: TuiSwipeDirection): void {\n if (direction === 'left') {\n this.next();\n } else if (direction === 'right') {\n this.prev();\n }\n }\n\n protected onAutoscroll(): void {\n this.updateIndex(this.index === this.items.length - 1 ? 0 : this.index + 1);\n }\n\n protected onShift(): void {\n this.shift.emit(Math.abs((this.x % 1) + 0.5) * 2);\n }\n\n private get x(): number {\n return this.transitioned ? this.computedTranslate : this.translate;\n }\n\n private get computedTranslate(): number {\n return -this.index / this.itemsCount;\n }\n\n private get computedDraggable(): boolean {\n return this.isMobile || this.draggable;\n }\n\n private updateIndex(index: number): void {\n this.index = tuiClamp(index, 0, this.items.length - 1);\n this.indexChange.emit(this.index);\n this.cdr.markForCheck();\n }\n}\n","<ng-container *ngIf=\"items.changes | async\" />\n<div\n class=\"t-scroller\"\n (tuiCarouselScroll)=\"onScroll($event)\"\n>\n <div\n waIntersectionObserver\n waIntersectionThreshold=\"0.5\"\n class=\"t-wrapper\"\n >\n <div\n class=\"t-items\"\n [style.transform]=\"transform\"\n (tuiCarouselAutoscroll)=\"onAutoscroll()\"\n (tuiPan)=\"onPan($event[0])\"\n (tuiSwipe)=\"onSwipe($event.direction)\"\n >\n <fieldset\n *ngFor=\"let item of items; let i = index\"\n class=\"t-item\"\n [disabled]=\"isDisabled(i)\"\n [style]=\"getStyle(itemsCount)\"\n (waIntersectionObservee)=\"$event[0] && onIntersection($event[0], i)\"\n >\n <ng-container [ngTemplateOutlet]=\"item\" />\n </fieldset>\n </div>\n </div>\n</div>\n","import {Directive} from '@angular/core';\nimport {tuiButtonOptionsProvider} from '@taiga-ui/core/components/button';\n\n@Directive({\n standalone: true,\n selector: '[tuiCarouselButtons]',\n providers: [\n tuiButtonOptionsProvider({\n appearance: 'secondary',\n size: 'm',\n }),\n ],\n})\nexport class TuiCarouselButtons {}\n","import {TuiItem} from '@taiga-ui/cdk/directives/item';\n\nimport {TuiCarouselComponent} from './carousel.component';\nimport {TuiCarouselDirective} from './carousel.directive';\nimport {TuiCarouselAutoscroll} from './carousel-autoscroll.directive';\nimport {TuiCarouselButtons} from './carousel-buttons.directive';\nimport {TuiCarouselScroll} from './carousel-scroll.directive';\n\nexport const TuiCarousel = [\n TuiItem,\n TuiCarouselComponent,\n TuiCarouselDirective,\n TuiCarouselAutoscroll,\n TuiCarouselButtons,\n TuiCarouselScroll,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.TuiCarouselDirective"],"mappings":"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"}