@taiga-ui/kit 2.49.0 → 2.49.1

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 (102) hide show
  1. package/bundles/taiga-ui-kit-abstract.umd.js.map +1 -1
  2. package/bundles/taiga-ui-kit-abstract.umd.min.js.map +1 -1
  3. package/bundles/taiga-ui-kit-components-carousel.umd.js.map +1 -1
  4. package/bundles/taiga-ui-kit-components-carousel.umd.min.js.map +1 -1
  5. package/bundles/taiga-ui-kit-components-combo-box.umd.js.map +1 -1
  6. package/bundles/taiga-ui-kit-components-combo-box.umd.min.js.map +1 -1
  7. package/bundles/taiga-ui-kit-components-field-error.umd.js.map +1 -1
  8. package/bundles/taiga-ui-kit-components-field-error.umd.min.js.map +1 -1
  9. package/bundles/taiga-ui-kit-components-input-date-range.umd.js.map +1 -1
  10. package/bundles/taiga-ui-kit-components-input-date-range.umd.min.js.map +1 -1
  11. package/bundles/taiga-ui-kit-components-input-date.umd.js.map +1 -1
  12. package/bundles/taiga-ui-kit-components-input-date.umd.min.js.map +1 -1
  13. package/bundles/taiga-ui-kit-components-input-time.umd.js.map +1 -1
  14. package/bundles/taiga-ui-kit-components-input-time.umd.min.js.map +1 -1
  15. package/bundles/taiga-ui-kit-components-pdf-viewer.umd.js.map +1 -1
  16. package/bundles/taiga-ui-kit-components-pdf-viewer.umd.min.js.map +1 -1
  17. package/bundles/taiga-ui-kit-components-tree.umd.js.map +1 -1
  18. package/bundles/taiga-ui-kit-components-tree.umd.min.js.map +1 -1
  19. package/bundles/taiga-ui-kit-pipes-field-error.umd.js +0 -11
  20. package/bundles/taiga-ui-kit-pipes-field-error.umd.js.map +1 -1
  21. package/bundles/taiga-ui-kit-pipes-field-error.umd.min.js +1 -1
  22. package/bundles/taiga-ui-kit-pipes-field-error.umd.min.js.map +1 -1
  23. package/bundles/taiga-ui-kit-pipes-filter-by-input.umd.js.map +1 -1
  24. package/bundles/taiga-ui-kit-pipes-filter-by-input.umd.min.js.map +1 -1
  25. package/bundles/taiga-ui-kit-tokens.umd.js.map +1 -1
  26. package/bundles/taiga-ui-kit-tokens.umd.min.js.map +1 -1
  27. package/bundles/taiga-ui-kit-utils-mask.umd.js.map +1 -1
  28. package/bundles/taiga-ui-kit-utils-mask.umd.min.js.map +1 -1
  29. package/components/carousel/carousel.component.d.ts +1 -1
  30. package/components/combo-box/combo-box.directive.d.ts +1 -1
  31. package/components/combo-box/combo-box.providers.d.ts +1 -1
  32. package/components/input-date/input-date.component.d.ts +1 -1
  33. package/components/input-date/taiga-ui-kit-components-input-date.metadata.json +1 -1
  34. package/components/input-date-range/input-date-range.component.d.ts +1 -1
  35. package/components/input-date-range/taiga-ui-kit-components-input-date-range.metadata.json +1 -1
  36. package/components/input-time/input-time-options.d.ts +1 -1
  37. package/components/input-time/taiga-ui-kit-components-input-time.metadata.json +1 -1
  38. package/components/pdf-viewer/pdf-viewer.service.d.ts +3 -3
  39. package/components/pdf-viewer/taiga-ui-kit-components-pdf-viewer.metadata.json +1 -1
  40. package/components/tree/misc/tree.tokens.d.ts +2 -2
  41. package/esm2015/abstract/slider/slider.js +2 -2
  42. package/esm2015/components/carousel/carousel.component.js +1 -1
  43. package/esm2015/components/combo-box/combo-box.directive.js +1 -1
  44. package/esm2015/components/combo-box/combo-box.providers.js +1 -1
  45. package/esm2015/components/field-error/field-error.component.js +1 -1
  46. package/esm2015/components/input-date/input-date.component.js +1 -1
  47. package/esm2015/components/input-date-range/input-date-range.component.js +1 -1
  48. package/esm2015/components/input-time/input-time-options.js +2 -2
  49. package/esm2015/components/pdf-viewer/pdf-viewer.service.js +1 -1
  50. package/esm2015/components/tree/misc/tree.tokens.js +1 -1
  51. package/esm2015/pipes/field-error/field-error-pipe.js +3 -10
  52. package/esm2015/pipes/filter-by-input/filter-by-input.base.js +1 -1
  53. package/esm2015/tokens/mobile-calendar.js +1 -1
  54. package/esm2015/utils/mask/create-auto-corrected-date-time-pipe.js +1 -1
  55. package/esm5/abstract/slider/slider.js +1 -1
  56. package/esm5/components/carousel/carousel.component.js +1 -1
  57. package/esm5/components/combo-box/combo-box.directive.js +1 -1
  58. package/esm5/components/combo-box/combo-box.providers.js +1 -1
  59. package/esm5/components/field-error/field-error.component.js +1 -1
  60. package/esm5/components/input-date/input-date.component.js +1 -1
  61. package/esm5/components/input-date-range/input-date-range.component.js +1 -1
  62. package/esm5/components/input-time/input-time-options.js +1 -1
  63. package/esm5/components/pdf-viewer/pdf-viewer.service.js +1 -1
  64. package/esm5/components/tree/misc/tree.tokens.js +1 -1
  65. package/esm5/pipes/field-error/field-error-pipe.js +3 -14
  66. package/esm5/pipes/filter-by-input/filter-by-input.base.js +1 -1
  67. package/esm5/tokens/mobile-calendar.js +1 -1
  68. package/esm5/utils/mask/create-auto-corrected-date-time-pipe.js +1 -1
  69. package/fesm2015/taiga-ui-kit-abstract.js +1 -1
  70. package/fesm2015/taiga-ui-kit-abstract.js.map +1 -1
  71. package/fesm2015/taiga-ui-kit-components-carousel.js.map +1 -1
  72. package/fesm2015/taiga-ui-kit-components-combo-box.js.map +1 -1
  73. package/fesm2015/taiga-ui-kit-components-field-error.js.map +1 -1
  74. package/fesm2015/taiga-ui-kit-components-input-date-range.js.map +1 -1
  75. package/fesm2015/taiga-ui-kit-components-input-date.js.map +1 -1
  76. package/fesm2015/taiga-ui-kit-components-input-time.js +1 -1
  77. package/fesm2015/taiga-ui-kit-components-input-time.js.map +1 -1
  78. package/fesm2015/taiga-ui-kit-components-pdf-viewer.js.map +1 -1
  79. package/fesm2015/taiga-ui-kit-components-tree.js.map +1 -1
  80. package/fesm2015/taiga-ui-kit-pipes-field-error.js +1 -8
  81. package/fesm2015/taiga-ui-kit-pipes-field-error.js.map +1 -1
  82. package/fesm2015/taiga-ui-kit-pipes-filter-by-input.js.map +1 -1
  83. package/fesm2015/taiga-ui-kit-tokens.js.map +1 -1
  84. package/fesm2015/taiga-ui-kit-utils-mask.js.map +1 -1
  85. package/fesm5/taiga-ui-kit-abstract.js.map +1 -1
  86. package/fesm5/taiga-ui-kit-components-carousel.js.map +1 -1
  87. package/fesm5/taiga-ui-kit-components-combo-box.js.map +1 -1
  88. package/fesm5/taiga-ui-kit-components-field-error.js.map +1 -1
  89. package/fesm5/taiga-ui-kit-components-input-date-range.js.map +1 -1
  90. package/fesm5/taiga-ui-kit-components-input-date.js.map +1 -1
  91. package/fesm5/taiga-ui-kit-components-input-time.js.map +1 -1
  92. package/fesm5/taiga-ui-kit-components-pdf-viewer.js.map +1 -1
  93. package/fesm5/taiga-ui-kit-components-tree.js.map +1 -1
  94. package/fesm5/taiga-ui-kit-pipes-field-error.js +1 -12
  95. package/fesm5/taiga-ui-kit-pipes-field-error.js.map +1 -1
  96. package/fesm5/taiga-ui-kit-pipes-filter-by-input.js.map +1 -1
  97. package/fesm5/taiga-ui-kit-tokens.js.map +1 -1
  98. package/fesm5/taiga-ui-kit-utils-mask.js.map +1 -1
  99. package/package.json +4 -4
  100. package/pipes/field-error/field-error-pipe.d.ts +2 -3
  101. package/pipes/field-error/taiga-ui-kit-pipes-field-error.metadata.json +1 -1
  102. package/tokens/mobile-calendar.d.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-pipes-filter-by-input.js","sources":["ng://@taiga-ui/kit/pipes/filter-by-input/filter-by-input.base.ts","ng://@taiga-ui/kit/pipes/filter-by-input/filter-by-input.pipe.ts","ng://@taiga-ui/kit/pipes/filter-by-input/filter-by-input-with.pipe.ts","ng://@taiga-ui/kit/pipes/filter-by-input/filter-by-input.module.ts","ng://@taiga-ui/kit/pipes/filter-by-input/taiga-ui-kit-pipes-filter-by-input.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport {\n isPresent,\n TuiFocusableElementAccessor,\n tuiPure,\n TuiStringHandler,\n TuiStringMatcher,\n} from '@taiga-ui/cdk';\nimport {isFlat} from '@taiga-ui/kit/utils';\n\nexport type ArrayElement<A> = A extends ReadonlyArray<infer T>\n ? A extends ReadonlyArray<ReadonlyArray<infer G>>\n ? G\n : T\n : never;\n\n/**\n * @deprecated\n * TODO: 3.0 replace with {@link AbstractTuiFilterByInputBase}\n */\nexport abstract class TuiFilterByInputBase {\n protected abstract readonly accessor: TuiFocusableElementAccessor;\n\n protected get query(): string {\n return this.accessor.nativeFocusableElement\n ? (this.accessor.nativeFocusableElement as any).value || ''\n : '';\n }\n\n @tuiPure\n protected filter<T>(\n items: readonly T[] | ReadonlyArray<readonly T[]> | null,\n matcher: TuiStringMatcher<T>,\n stringify: TuiStringHandler<T>,\n query: string,\n ): readonly T[] | ReadonlyArray<readonly T[]> | null {\n if (!items) {\n return null;\n }\n\n return isFlat(items)\n ? this.filterFlat(items, matcher, stringify, query)\n : this.filter2d(items, matcher, stringify, query);\n }\n\n private filterFlat<T>(\n items: readonly T[],\n matcher: TuiStringMatcher<T>,\n stringify: TuiStringHandler<T>,\n query: string,\n ): readonly T[] {\n const match = this.getMatch(items, stringify, query);\n\n return isPresent(match)\n ? items\n : items.filter(item => matcher(item, query, stringify));\n }\n\n private filter2d<T>(\n items: ReadonlyArray<readonly T[]>,\n matcher: TuiStringMatcher<T>,\n stringify: TuiStringHandler<T>,\n query: string,\n ): ReadonlyArray<readonly T[]> {\n const match = items.find(item =>\n isPresent(this.getMatch(item, stringify, query)),\n );\n\n return isPresent(match)\n ? items\n : items.map(inner => this.filterFlat(inner, matcher, stringify, query));\n }\n\n private getMatch<T>(\n items: readonly T[],\n stringify: TuiStringHandler<T>,\n query: string,\n ): T | undefined {\n return items.find(\n item => stringify(item).toLocaleLowerCase() === query.toLocaleLowerCase(),\n );\n }\n}\n\nexport abstract class AbstractTuiFilterByInputBase extends TuiFilterByInputBase {}\n","import {Inject, Pipe, PipeTransform} from '@angular/core';\nimport {\n TUI_DEFAULT_MATCHER,\n TUI_DEFAULT_STRINGIFY,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n TuiFocusableElementAccessor,\n TuiStringMatcher,\n} from '@taiga-ui/cdk';\n\nimport {ArrayElement, TuiFilterByInputBase} from './filter-by-input.base';\n\n@Pipe({\n name: 'tuiFilterByInput',\n pure: false,\n})\nexport class TuiFilterByInputPipe extends TuiFilterByInputBase implements PipeTransform {\n constructor(\n @Inject(TUI_FOCUSABLE_ITEM_ACCESSOR)\n protected readonly accessor: TuiFocusableElementAccessor,\n ) {\n super();\n }\n\n transform<T>(items: T, matcher?: TuiStringMatcher<ArrayElement<T>>): T;\n transform<T>(\n items: readonly T[] | ReadonlyArray<readonly T[]> | null,\n matcher: TuiStringMatcher<T> = TUI_DEFAULT_MATCHER,\n ): readonly T[] | ReadonlyArray<readonly T[]> | null {\n return this.filter(items, matcher, TUI_DEFAULT_STRINGIFY, this.query);\n }\n}\n","import {Inject, Pipe, PipeTransform} from '@angular/core';\nimport {\n TUI_DEFAULT_MATCHER,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n TuiFocusableElementAccessor,\n TuiStringHandler,\n} from '@taiga-ui/cdk';\n\nimport {ArrayElement, TuiFilterByInputBase} from './filter-by-input.base';\n\n@Pipe({\n name: 'tuiFilterByInputWith',\n pure: false,\n})\nexport class TuiFilterByInputWithPipe\n extends TuiFilterByInputBase\n implements PipeTransform\n{\n constructor(\n @Inject(TUI_FOCUSABLE_ITEM_ACCESSOR)\n protected readonly accessor: TuiFocusableElementAccessor,\n ) {\n super();\n }\n\n transform<T>(items: T, matcher?: TuiStringHandler<ArrayElement<T>>): T;\n transform<T>(\n items: readonly T[] | ReadonlyArray<readonly T[]> | null,\n stringify: TuiStringHandler<T>,\n ): readonly T[] | ReadonlyArray<readonly T[]> | null {\n return this.filter(items, TUI_DEFAULT_MATCHER, stringify, this.query);\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiFilterByInputPipe} from './filter-by-input.pipe';\nimport {TuiFilterByInputWithPipe} from './filter-by-input-with.pipe';\n\n@NgModule({\n declarations: [TuiFilterByInputPipe, TuiFilterByInputWithPipe],\n exports: [TuiFilterByInputPipe, TuiFilterByInputWithPipe],\n})\nexport class TuiFilterByInputPipeModule {}\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-pipes-filter-by-input.js","sources":["ng://@taiga-ui/kit/pipes/filter-by-input/filter-by-input.base.ts","ng://@taiga-ui/kit/pipes/filter-by-input/filter-by-input.pipe.ts","ng://@taiga-ui/kit/pipes/filter-by-input/filter-by-input-with.pipe.ts","ng://@taiga-ui/kit/pipes/filter-by-input/filter-by-input.module.ts","ng://@taiga-ui/kit/pipes/filter-by-input/taiga-ui-kit-pipes-filter-by-input.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport {\n isPresent,\n TuiFocusableElementAccessor,\n tuiPure,\n TuiStringHandler,\n TuiStringMatcher,\n} from '@taiga-ui/cdk';\nimport {isFlat} from '@taiga-ui/kit/utils';\n\nexport type ArrayElement<A> = A extends ReadonlyArray<infer T>\n ? A extends ReadonlyArray<ReadonlyArray<infer G>>\n ? G\n : T\n : never;\n\n/**\n * @deprecated\n * TODO: 3.0 replace with {@link AbstractTuiFilterByInputBase}\n */\nexport abstract class TuiFilterByInputBase {\n protected abstract readonly accessor: TuiFocusableElementAccessor;\n\n protected get query(): string {\n return this.accessor.nativeFocusableElement\n ? (this.accessor.nativeFocusableElement as HTMLInputElement).value || ''\n : '';\n }\n\n @tuiPure\n protected filter<T>(\n items: readonly T[] | ReadonlyArray<readonly T[]> | null,\n matcher: TuiStringMatcher<T>,\n stringify: TuiStringHandler<T>,\n query: string,\n ): readonly T[] | ReadonlyArray<readonly T[]> | null {\n if (!items) {\n return null;\n }\n\n return isFlat(items)\n ? this.filterFlat(items, matcher, stringify, query)\n : this.filter2d(items, matcher, stringify, query);\n }\n\n private filterFlat<T>(\n items: readonly T[],\n matcher: TuiStringMatcher<T>,\n stringify: TuiStringHandler<T>,\n query: string,\n ): readonly T[] {\n const match = this.getMatch(items, stringify, query);\n\n return isPresent(match)\n ? items\n : items.filter(item => matcher(item, query, stringify));\n }\n\n private filter2d<T>(\n items: ReadonlyArray<readonly T[]>,\n matcher: TuiStringMatcher<T>,\n stringify: TuiStringHandler<T>,\n query: string,\n ): ReadonlyArray<readonly T[]> {\n const match = items.find(item =>\n isPresent(this.getMatch(item, stringify, query)),\n );\n\n return isPresent(match)\n ? items\n : items.map(inner => this.filterFlat(inner, matcher, stringify, query));\n }\n\n private getMatch<T>(\n items: readonly T[],\n stringify: TuiStringHandler<T>,\n query: string,\n ): T | undefined {\n return items.find(\n item => stringify(item).toLocaleLowerCase() === query.toLocaleLowerCase(),\n );\n }\n}\n\nexport abstract class AbstractTuiFilterByInputBase extends TuiFilterByInputBase {}\n","import {Inject, Pipe, PipeTransform} from '@angular/core';\nimport {\n TUI_DEFAULT_MATCHER,\n TUI_DEFAULT_STRINGIFY,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n TuiFocusableElementAccessor,\n TuiStringMatcher,\n} from '@taiga-ui/cdk';\n\nimport {ArrayElement, TuiFilterByInputBase} from './filter-by-input.base';\n\n@Pipe({\n name: 'tuiFilterByInput',\n pure: false,\n})\nexport class TuiFilterByInputPipe extends TuiFilterByInputBase implements PipeTransform {\n constructor(\n @Inject(TUI_FOCUSABLE_ITEM_ACCESSOR)\n protected readonly accessor: TuiFocusableElementAccessor,\n ) {\n super();\n }\n\n transform<T>(items: T, matcher?: TuiStringMatcher<ArrayElement<T>>): T;\n transform<T>(\n items: readonly T[] | ReadonlyArray<readonly T[]> | null,\n matcher: TuiStringMatcher<T> = TUI_DEFAULT_MATCHER,\n ): readonly T[] | ReadonlyArray<readonly T[]> | null {\n return this.filter(items, matcher, TUI_DEFAULT_STRINGIFY, this.query);\n }\n}\n","import {Inject, Pipe, PipeTransform} from '@angular/core';\nimport {\n TUI_DEFAULT_MATCHER,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n TuiFocusableElementAccessor,\n TuiStringHandler,\n} from '@taiga-ui/cdk';\n\nimport {ArrayElement, TuiFilterByInputBase} from './filter-by-input.base';\n\n@Pipe({\n name: 'tuiFilterByInputWith',\n pure: false,\n})\nexport class TuiFilterByInputWithPipe\n extends TuiFilterByInputBase\n implements PipeTransform\n{\n constructor(\n @Inject(TUI_FOCUSABLE_ITEM_ACCESSOR)\n protected readonly accessor: TuiFocusableElementAccessor,\n ) {\n super();\n }\n\n transform<T>(items: T, matcher?: TuiStringHandler<ArrayElement<T>>): T;\n transform<T>(\n items: readonly T[] | ReadonlyArray<readonly T[]> | null,\n stringify: TuiStringHandler<T>,\n ): readonly T[] | ReadonlyArray<readonly T[]> | null {\n return this.filter(items, TUI_DEFAULT_MATCHER, stringify, this.query);\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiFilterByInputPipe} from './filter-by-input.pipe';\nimport {TuiFilterByInputWithPipe} from './filter-by-input-with.pipe';\n\n@NgModule({\n declarations: [TuiFilterByInputPipe, TuiFilterByInputWithPipe],\n exports: [TuiFilterByInputPipe, TuiFilterByInputWithPipe],\n})\nexport class TuiFilterByInputPipeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAgBA;;;;MAIsB,oBAAoB;IAGtC,IAAc,KAAK;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC,sBAAsB;cACpC,IAAI,CAAC,QAAQ,CAAC,sBAA2C,CAAC,KAAK,IAAI,EAAE;cACtE,EAAE,CAAC;KACZ;IAGS,MAAM,CACZ,KAAwD,EACxD,OAA4B,EAC5B,SAA8B,EAC9B,KAAa;QAEb,IAAI,CAAC,KAAK,EAAE;YACR,OAAO,IAAI,CAAC;SACf;QAED,OAAO,MAAM,CAAC,KAAK,CAAC;cACd,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC;cACjD,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;KACzD;IAEO,UAAU,CACd,KAAmB,EACnB,OAA4B,EAC5B,SAA8B,EAC9B,KAAa;QAEb,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAErD,OAAO,SAAS,CAAC,KAAK,CAAC;cACjB,KAAK;cACL,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;KAC/D;IAEO,QAAQ,CACZ,KAAkC,EAClC,OAA4B,EAC5B,SAA8B,EAC9B,KAAa;QAEb,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,IACzB,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CACnD,CAAC;QAEF,OAAO,SAAS,CAAC,KAAK,CAAC;cACjB,KAAK;cACL,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;KAC/E;IAEO,QAAQ,CACZ,KAAmB,EACnB,SAA8B,EAC9B,KAAa;QAEb,OAAO,KAAK,CAAC,IAAI,CACb,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,KAAK,KAAK,CAAC,iBAAiB,EAAE,CAC5E,CAAC;KACL;CACJ;AApDG;IADC,OAAO;kDAcP;MAyCiB,4BAA6B,SAAQ,oBAAoB;;;ICrElE,oBAAoB,GAAjC,MAAa,oBAAqB,SAAQ,oBAAoB;IAC1D,YAEuB,QAAqC;QAExD,KAAK,EAAE,CAAC;QAFW,aAAQ,GAAR,QAAQ,CAA6B;KAG3D;IAGD,SAAS,CACL,KAAwD,EACxD,UAA+B,mBAAmB;QAElD,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,qBAAqB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;KACzE;EACJ;;4CAbQ,MAAM,SAAC,2BAA2B;;AAF9B,oBAAoB;IAJhC,IAAI,CAAC;QACF,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,KAAK;KACd,CAAC;IAGO,WAAA,MAAM,CAAC,2BAA2B,CAAC,CAAA;GAF/B,oBAAoB,CAehC;;IChBY,wBAAwB,GAArC,MAAa,wBACT,SAAQ,oBAAoB;IAG5B,YAEuB,QAAqC;QAExD,KAAK,EAAE,CAAC;QAFW,aAAQ,GAAR,QAAQ,CAA6B;KAG3D;IAGD,SAAS,CACL,KAAwD,EACxD,SAA8B;QAE9B,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;KACzE;EACJ;;4CAbQ,MAAM,SAAC,2BAA2B;;AAL9B,wBAAwB;IAJpC,IAAI,CAAC;QACF,IAAI,EAAE,sBAAsB;QAC5B,IAAI,EAAE,KAAK;KACd,CAAC;IAMO,WAAA,MAAM,CAAC,2BAA2B,CAAC,CAAA;GAL/B,wBAAwB,CAkBpC;;ICvBY,0BAA0B,GAAvC,MAAa,0BAA0B;EAAG;AAA7B,0BAA0B;IAJtC,QAAQ,CAAC;QACN,YAAY,EAAE,CAAC,oBAAoB,EAAE,wBAAwB,CAAC;QAC9D,OAAO,EAAE,CAAC,oBAAoB,EAAE,wBAAwB,CAAC;KAC5D,CAAC;GACW,0BAA0B,CAAG;;ACT1C;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-tokens.js","sources":["ng://@taiga-ui/kit/tokens/calendar-data-stream.ts","ng://@taiga-ui/kit/tokens/date-inputs-value-transformers.ts","ng://@taiga-ui/kit/tokens/i18n.ts","ng://@taiga-ui/kit/tokens/items-handlers.ts","ng://@taiga-ui/kit/tokens/mobile-aware.ts","ng://@taiga-ui/kit/tokens/mobile-calendar.ts","ng://@taiga-ui/kit/tokens/month-formatter.ts","ng://@taiga-ui/kit/tokens/tab-margin.ts","ng://@taiga-ui/kit/tokens/tag-status.ts","ng://@taiga-ui/kit/tokens/validation-errors.ts","ng://@taiga-ui/kit/tokens/taiga-ui-kit-tokens.ts"],"sourcesContent":["import {InjectionToken} from '@angular/core';\nimport {TuiDay, TuiDayRange} from '@taiga-ui/cdk';\nimport {Observable} from 'rxjs';\n\nexport const TUI_CALENDAR_DATA_STREAM = new InjectionToken<\n Observable<TuiDay | TuiDayRange | null>\n>('Stream that emits calendar data change');\n","import {InjectionToken} from '@angular/core';\nimport {TuiControlValueTransformer, TuiDay, TuiDayRange, TuiTime} from '@taiga-ui/cdk';\n\nexport const TUI_DATE_VALUE_TRANSFORMER = new InjectionToken<\n TuiControlValueTransformer<TuiDay | null>\n>('Control value transformer of TuiDay to custom value format for InputDate* components');\n\nexport const TUI_DATE_RANGE_VALUE_TRANSFORMER = new InjectionToken<\n TuiControlValueTransformer<TuiDayRange | null>\n>('Control value transformer for InputDateRange component');\n\nexport const TUI_DATE_TIME_VALUE_TRANSFORMER = new InjectionToken<\n TuiControlValueTransformer<[TuiDay | null, TuiTime | null]>\n>('Control value transformer for InputDateTime component');\n","import {InjectionToken} from '@angular/core';\nimport {TuiDateMode} from '@taiga-ui/cdk';\nimport {extractI18n, TuiCountryIsoCode} from '@taiga-ui/i18n';\nimport {Observable} from 'rxjs';\n\nexport const TUI_CANCEL_WORD = new InjectionToken(`i18n 'cancel' word`, {\n factory: extractI18n('cancel'),\n});\n\nexport const TUI_DONE_WORD = new InjectionToken(`i18n 'done' word`, {\n factory: extractI18n('done'),\n});\n\nexport const TUI_MORE_WORD = new InjectionToken(`i18n 'more' word`, {\n factory: extractI18n('more'),\n});\n\nexport const TUI_HIDE_TEXT = new InjectionToken(`i18n 'hide' word`, {\n factory: extractI18n('hide'),\n});\n\nexport const TUI_SHOW_ALL_TEXT = new InjectionToken(`i18n 'show all' word`, {\n factory: extractI18n('showAll'),\n});\n\nexport const TUI_OTHER_DATE_TEXT = new InjectionToken(`i18n 'Other date' text`, {\n factory: extractI18n('otherDate'),\n});\n\nexport const TUI_CHOOSE_DAY_OR_RANGE_TEXTS = new InjectionToken(\n `choose day or range i18n texts`,\n {\n factory: extractI18n('mobileCalendarTexts'),\n },\n);\n\nexport const TUI_FROM_TO_TEXTS = new InjectionToken(`from and to i18n texts`, {\n factory: extractI18n('range'),\n});\n\nexport const TUI_PLUS_MINUS_TEXTS = new InjectionToken(`plus and minus i18n texts`, {\n factory: extractI18n('countTexts'),\n});\n\nexport const TUI_TIME_TEXTS = new InjectionToken(`time i18n texts`, {\n factory: extractI18n('time'),\n});\n\nexport const TUI_DATE_TEXTS = new InjectionToken<Observable<Record<TuiDateMode, string>>>(\n 'date format i18n texts',\n {\n factory: extractI18n('dateTexts'),\n },\n);\n\nexport const TUI_DIGITAL_INFORMATION_UNITS = new InjectionToken(\n `short bytes, kilobytes and megabytes i18n texts`,\n {\n factory: extractI18n('digitalInformationUnits'),\n },\n);\n\nexport const TUI_COPY_TEXTS = new InjectionToken('copy i18n texts', {\n factory: extractI18n('copyTexts'),\n});\n\nexport const TUI_PASSWORD_TEXTS = new InjectionToken('password i18n texts', {\n factory: extractI18n('passwordTexts'),\n});\n\nexport const TUI_CALENDAR_MONTHS = new InjectionToken('short calendar months i18n', {\n factory: extractI18n('shortCalendarMonths'),\n});\n\nexport const TUI_FILE_TEXTS = new InjectionToken('file i18n texts', {\n factory: extractI18n('fileTexts'),\n});\n\nexport const TUI_PAGINATION_TEXTS = new InjectionToken('pagination i18n texts', {\n factory: extractI18n('pagination'),\n});\n\nexport const TUI_INPUT_FILE_TEXTS = new InjectionToken('tui-input-file i18n texts', {\n factory: extractI18n('inputFileTexts'),\n});\n\nexport const TUI_COUNTRIES: InjectionToken<\n Observable<Record<TuiCountryIsoCode, string>>\n> = new InjectionToken('Localized countries names', {\n factory: extractI18n('countries'),\n});\n","import {InjectionToken, ValueProvider} from '@angular/core';\nimport {\n ALWAYS_FALSE_HANDLER,\n TUI_DEFAULT_IDENTITY_MATCHER,\n TUI_DEFAULT_STRINGIFY,\n TuiBooleanHandler,\n TuiIdentityMatcher,\n TuiStringHandler,\n} from '@taiga-ui/cdk';\n\nexport interface TuiItemsHandlers<T> {\n readonly stringify: TuiStringHandler<T>;\n readonly identityMatcher: TuiIdentityMatcher<T>;\n readonly disabledItemHandler: TuiBooleanHandler<T>;\n}\n\nexport const TUI_DEFAULT_ITEMS_HANDLERS: TuiItemsHandlers<unknown> = {\n stringify: TUI_DEFAULT_STRINGIFY,\n identityMatcher: TUI_DEFAULT_IDENTITY_MATCHER,\n disabledItemHandler: ALWAYS_FALSE_HANDLER,\n};\n\nexport const TUI_ITEMS_HANDLERS = new InjectionToken<TuiItemsHandlers<unknown>>(\n 'Default items handlers for components',\n {\n factory: () => TUI_DEFAULT_ITEMS_HANDLERS,\n },\n);\n\nexport const tuiItemsHandlersProvider: <T>(\n options: Partial<TuiItemsHandlers<T>>,\n) => ValueProvider = <T>(options: Partial<TuiItemsHandlers<T>>) => ({\n provide: TUI_ITEMS_HANDLERS,\n useValue: {...TUI_DEFAULT_ITEMS_HANDLERS, ...options},\n});\n","import {InjectionToken} from '@angular/core';\n\n/** @deprecated use {@link TuiMobileTabsDirective} from @taiga-ui/addon-mobile */\nexport const TUI_MOBILE_AWARE = new InjectionToken<boolean>(\n 'A flag enabling mobile-specific behavior for supporting components',\n {\n factory: () => false,\n },\n);\n","import {InjectionToken, Type} from '@angular/core';\n\nexport const TUI_MOBILE_CALENDAR = new InjectionToken<Type<any>>(\n 'A component for mobile data picker',\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiHandler, TuiMonth} from '@taiga-ui/cdk';\nimport {Observable} from 'rxjs';\n\nexport const TUI_MONTH_FORMATTER = new InjectionToken<\n TuiHandler<TuiMonth | null, Observable<string>>\n>('A function to get localized formatted month');\n","import {InjectionToken} from '@angular/core';\n\nexport const TUI_TAB_MARGIN = new InjectionToken<number>('Margin between tabs', {\n factory: () => 24,\n});\n","import {InjectionToken} from '@angular/core';\nimport {TuiStatus} from '@taiga-ui/kit/enums';\n\n// TODO: 3.0 use TUI_TAG_OPTIONS instead of it\nexport const TUI_TAG_STATUS = new InjectionToken<TuiStatus>(\n 'Status for tags inside InputTag component',\n {\n factory: () => TuiStatus.Primary,\n },\n);\n","import {InjectionToken} from '@angular/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {Observable} from 'rxjs';\n\nexport const TUI_VALIDATION_ERRORS = new InjectionToken<\n Record<string, PolymorpheusContent | Observable<PolymorpheusContent>>\n>('Validation errors', {\n factory: () => ({}),\n});\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;MAIa,wBAAwB,GAAG,IAAI,cAAc,CAExD,wCAAwC;;MCH7B,0BAA0B,GAAG,IAAI,cAAc,CAE1D,sFAAsF,EAAE;MAE7E,gCAAgC,GAAG,IAAI,cAAc,CAEhE,wDAAwD,EAAE;MAE/C,+BAA+B,GAAG,IAAI,cAAc,CAE/D,uDAAuD;;MCR5C,eAAe,GAAG,IAAI,cAAc,CAAC,oBAAoB,EAAE;IACpE,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC;CACjC,EAAE;MAEU,aAAa,GAAG,IAAI,cAAc,CAAC,kBAAkB,EAAE;IAChE,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC;CAC/B,EAAE;MAEU,aAAa,GAAG,IAAI,cAAc,CAAC,kBAAkB,EAAE;IAChE,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC;CAC/B,EAAE;MAEU,aAAa,GAAG,IAAI,cAAc,CAAC,kBAAkB,EAAE;IAChE,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC;CAC/B,EAAE;MAEU,iBAAiB,GAAG,IAAI,cAAc,CAAC,sBAAsB,EAAE;IACxE,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC;CAClC,EAAE;MAEU,mBAAmB,GAAG,IAAI,cAAc,CAAC,wBAAwB,EAAE;IAC5E,OAAO,EAAE,WAAW,CAAC,WAAW,CAAC;CACpC,EAAE;MAEU,6BAA6B,GAAG,IAAI,cAAc,CAC3D,gCAAgC,EAChC;IACI,OAAO,EAAE,WAAW,CAAC,qBAAqB,CAAC;CAC9C,EACH;MAEW,iBAAiB,GAAG,IAAI,cAAc,CAAC,wBAAwB,EAAE;IAC1E,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC;CAChC,EAAE;MAEU,oBAAoB,GAAG,IAAI,cAAc,CAAC,2BAA2B,EAAE;IAChF,OAAO,EAAE,WAAW,CAAC,YAAY,CAAC;CACrC,EAAE;MAEU,cAAc,GAAG,IAAI,cAAc,CAAC,iBAAiB,EAAE;IAChE,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC;CAC/B,EAAE;MAEU,cAAc,GAAG,IAAI,cAAc,CAC5C,wBAAwB,EACxB;IACI,OAAO,EAAE,WAAW,CAAC,WAAW,CAAC;CACpC,EACH;MAEW,6BAA6B,GAAG,IAAI,cAAc,CAC3D,iDAAiD,EACjD;IACI,OAAO,EAAE,WAAW,CAAC,yBAAyB,CAAC;CAClD,EACH;MAEW,cAAc,GAAG,IAAI,cAAc,CAAC,iBAAiB,EAAE;IAChE,OAAO,EAAE,WAAW,CAAC,WAAW,CAAC;CACpC,EAAE;MAEU,kBAAkB,GAAG,IAAI,cAAc,CAAC,qBAAqB,EAAE;IACxE,OAAO,EAAE,WAAW,CAAC,eAAe,CAAC;CACxC,EAAE;MAEU,mBAAmB,GAAG,IAAI,cAAc,CAAC,4BAA4B,EAAE;IAChF,OAAO,EAAE,WAAW,CAAC,qBAAqB,CAAC;CAC9C,EAAE;MAEU,cAAc,GAAG,IAAI,cAAc,CAAC,iBAAiB,EAAE;IAChE,OAAO,EAAE,WAAW,CAAC,WAAW,CAAC;CACpC,EAAE;MAEU,oBAAoB,GAAG,IAAI,cAAc,CAAC,uBAAuB,EAAE;IAC5E,OAAO,EAAE,WAAW,CAAC,YAAY,CAAC;CACrC,EAAE;MAEU,oBAAoB,GAAG,IAAI,cAAc,CAAC,2BAA2B,EAAE;IAChF,OAAO,EAAE,WAAW,CAAC,gBAAgB,CAAC;CACzC,EAAE;MAEU,aAAa,GAEtB,IAAI,cAAc,CAAC,2BAA2B,EAAE;IAChD,OAAO,EAAE,WAAW,CAAC,WAAW,CAAC;CACpC;;MC1EY,0BAA0B,GAA8B;IACjE,SAAS,EAAE,qBAAqB;IAChC,eAAe,EAAE,4BAA4B;IAC7C,mBAAmB,EAAE,oBAAoB;EAC3C;MAEW,kBAAkB,GAAG,IAAI,cAAc,CAChD,uCAAuC,EACvC;IACI,OAAO,EAAE,MAAM,0BAA0B;CAC5C,EACH;MAEW,wBAAwB,GAEhB,CAAI,OAAqC,MAAM;IAChE,OAAO,EAAE,kBAAkB;IAC3B,QAAQ,kCAAM,0BAA0B,GAAK,OAAO,CAAC;CACxD;;AChCD;MACa,gBAAgB,GAAG,IAAI,cAAc,CAC9C,oEAAoE,EACpE;IACI,OAAO,EAAE,MAAM,KAAK;CACvB;;MCLQ,mBAAmB,GAAG,IAAI,cAAc,CACjD,oCAAoC;;MCC3B,mBAAmB,GAAG,IAAI,cAAc,CAEnD,6CAA6C;;MCJlC,cAAc,GAAG,IAAI,cAAc,CAAS,qBAAqB,EAAE;IAC5E,OAAO,EAAE,MAAM,EAAE;CACpB;;ACDD;MACa,cAAc,GAAG,IAAI,cAAc,CAC5C,2CAA2C,EAC3C;IACI,OAAO,EAAE;CACZ;;MCJQ,qBAAqB,GAAG,IAAI,cAAc,CAErD,mBAAmB,EAAE;IACnB,OAAO,EAAE,OAAO,EAAE,CAAC;CACtB;;ACRD;;;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-tokens.js","sources":["ng://@taiga-ui/kit/tokens/calendar-data-stream.ts","ng://@taiga-ui/kit/tokens/date-inputs-value-transformers.ts","ng://@taiga-ui/kit/tokens/i18n.ts","ng://@taiga-ui/kit/tokens/items-handlers.ts","ng://@taiga-ui/kit/tokens/mobile-aware.ts","ng://@taiga-ui/kit/tokens/mobile-calendar.ts","ng://@taiga-ui/kit/tokens/month-formatter.ts","ng://@taiga-ui/kit/tokens/tab-margin.ts","ng://@taiga-ui/kit/tokens/tag-status.ts","ng://@taiga-ui/kit/tokens/validation-errors.ts","ng://@taiga-ui/kit/tokens/taiga-ui-kit-tokens.ts"],"sourcesContent":["import {InjectionToken} from '@angular/core';\nimport {TuiDay, TuiDayRange} from '@taiga-ui/cdk';\nimport {Observable} from 'rxjs';\n\nexport const TUI_CALENDAR_DATA_STREAM = new InjectionToken<\n Observable<TuiDay | TuiDayRange | null>\n>('Stream that emits calendar data change');\n","import {InjectionToken} from '@angular/core';\nimport {TuiControlValueTransformer, TuiDay, TuiDayRange, TuiTime} from '@taiga-ui/cdk';\n\nexport const TUI_DATE_VALUE_TRANSFORMER = new InjectionToken<\n TuiControlValueTransformer<TuiDay | null>\n>('Control value transformer of TuiDay to custom value format for InputDate* components');\n\nexport const TUI_DATE_RANGE_VALUE_TRANSFORMER = new InjectionToken<\n TuiControlValueTransformer<TuiDayRange | null>\n>('Control value transformer for InputDateRange component');\n\nexport const TUI_DATE_TIME_VALUE_TRANSFORMER = new InjectionToken<\n TuiControlValueTransformer<[TuiDay | null, TuiTime | null]>\n>('Control value transformer for InputDateTime component');\n","import {InjectionToken} from '@angular/core';\nimport {TuiDateMode} from '@taiga-ui/cdk';\nimport {extractI18n, TuiCountryIsoCode} from '@taiga-ui/i18n';\nimport {Observable} from 'rxjs';\n\nexport const TUI_CANCEL_WORD = new InjectionToken(`i18n 'cancel' word`, {\n factory: extractI18n('cancel'),\n});\n\nexport const TUI_DONE_WORD = new InjectionToken(`i18n 'done' word`, {\n factory: extractI18n('done'),\n});\n\nexport const TUI_MORE_WORD = new InjectionToken(`i18n 'more' word`, {\n factory: extractI18n('more'),\n});\n\nexport const TUI_HIDE_TEXT = new InjectionToken(`i18n 'hide' word`, {\n factory: extractI18n('hide'),\n});\n\nexport const TUI_SHOW_ALL_TEXT = new InjectionToken(`i18n 'show all' word`, {\n factory: extractI18n('showAll'),\n});\n\nexport const TUI_OTHER_DATE_TEXT = new InjectionToken(`i18n 'Other date' text`, {\n factory: extractI18n('otherDate'),\n});\n\nexport const TUI_CHOOSE_DAY_OR_RANGE_TEXTS = new InjectionToken(\n `choose day or range i18n texts`,\n {\n factory: extractI18n('mobileCalendarTexts'),\n },\n);\n\nexport const TUI_FROM_TO_TEXTS = new InjectionToken(`from and to i18n texts`, {\n factory: extractI18n('range'),\n});\n\nexport const TUI_PLUS_MINUS_TEXTS = new InjectionToken(`plus and minus i18n texts`, {\n factory: extractI18n('countTexts'),\n});\n\nexport const TUI_TIME_TEXTS = new InjectionToken(`time i18n texts`, {\n factory: extractI18n('time'),\n});\n\nexport const TUI_DATE_TEXTS = new InjectionToken<Observable<Record<TuiDateMode, string>>>(\n 'date format i18n texts',\n {\n factory: extractI18n('dateTexts'),\n },\n);\n\nexport const TUI_DIGITAL_INFORMATION_UNITS = new InjectionToken(\n `short bytes, kilobytes and megabytes i18n texts`,\n {\n factory: extractI18n('digitalInformationUnits'),\n },\n);\n\nexport const TUI_COPY_TEXTS = new InjectionToken('copy i18n texts', {\n factory: extractI18n('copyTexts'),\n});\n\nexport const TUI_PASSWORD_TEXTS = new InjectionToken('password i18n texts', {\n factory: extractI18n('passwordTexts'),\n});\n\nexport const TUI_CALENDAR_MONTHS = new InjectionToken('short calendar months i18n', {\n factory: extractI18n('shortCalendarMonths'),\n});\n\nexport const TUI_FILE_TEXTS = new InjectionToken('file i18n texts', {\n factory: extractI18n('fileTexts'),\n});\n\nexport const TUI_PAGINATION_TEXTS = new InjectionToken('pagination i18n texts', {\n factory: extractI18n('pagination'),\n});\n\nexport const TUI_INPUT_FILE_TEXTS = new InjectionToken('tui-input-file i18n texts', {\n factory: extractI18n('inputFileTexts'),\n});\n\nexport const TUI_COUNTRIES: InjectionToken<\n Observable<Record<TuiCountryIsoCode, string>>\n> = new InjectionToken('Localized countries names', {\n factory: extractI18n('countries'),\n});\n","import {InjectionToken, ValueProvider} from '@angular/core';\nimport {\n ALWAYS_FALSE_HANDLER,\n TUI_DEFAULT_IDENTITY_MATCHER,\n TUI_DEFAULT_STRINGIFY,\n TuiBooleanHandler,\n TuiIdentityMatcher,\n TuiStringHandler,\n} from '@taiga-ui/cdk';\n\nexport interface TuiItemsHandlers<T> {\n readonly stringify: TuiStringHandler<T>;\n readonly identityMatcher: TuiIdentityMatcher<T>;\n readonly disabledItemHandler: TuiBooleanHandler<T>;\n}\n\nexport const TUI_DEFAULT_ITEMS_HANDLERS: TuiItemsHandlers<unknown> = {\n stringify: TUI_DEFAULT_STRINGIFY,\n identityMatcher: TUI_DEFAULT_IDENTITY_MATCHER,\n disabledItemHandler: ALWAYS_FALSE_HANDLER,\n};\n\nexport const TUI_ITEMS_HANDLERS = new InjectionToken<TuiItemsHandlers<unknown>>(\n 'Default items handlers for components',\n {\n factory: () => TUI_DEFAULT_ITEMS_HANDLERS,\n },\n);\n\nexport const tuiItemsHandlersProvider: <T>(\n options: Partial<TuiItemsHandlers<T>>,\n) => ValueProvider = <T>(options: Partial<TuiItemsHandlers<T>>) => ({\n provide: TUI_ITEMS_HANDLERS,\n useValue: {...TUI_DEFAULT_ITEMS_HANDLERS, ...options},\n});\n","import {InjectionToken} from '@angular/core';\n\n/** @deprecated use {@link TuiMobileTabsDirective} from @taiga-ui/addon-mobile */\nexport const TUI_MOBILE_AWARE = new InjectionToken<boolean>(\n 'A flag enabling mobile-specific behavior for supporting components',\n {\n factory: () => false,\n },\n);\n","import {InjectionToken, Type} from '@angular/core';\n\nexport const TUI_MOBILE_CALENDAR = new InjectionToken<Type<unknown>>(\n 'A component for mobile data picker',\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiHandler, TuiMonth} from '@taiga-ui/cdk';\nimport {Observable} from 'rxjs';\n\nexport const TUI_MONTH_FORMATTER = new InjectionToken<\n TuiHandler<TuiMonth | null, Observable<string>>\n>('A function to get localized formatted month');\n","import {InjectionToken} from '@angular/core';\n\nexport const TUI_TAB_MARGIN = new InjectionToken<number>('Margin between tabs', {\n factory: () => 24,\n});\n","import {InjectionToken} from '@angular/core';\nimport {TuiStatus} from '@taiga-ui/kit/enums';\n\n// TODO: 3.0 use TUI_TAG_OPTIONS instead of it\nexport const TUI_TAG_STATUS = new InjectionToken<TuiStatus>(\n 'Status for tags inside InputTag component',\n {\n factory: () => TuiStatus.Primary,\n },\n);\n","import {InjectionToken} from '@angular/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {Observable} from 'rxjs';\n\nexport const TUI_VALIDATION_ERRORS = new InjectionToken<\n Record<string, PolymorpheusContent | Observable<PolymorpheusContent>>\n>('Validation errors', {\n factory: () => ({}),\n});\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-utils-mask.js","sources":["ng://@taiga-ui/kit/utils/mask/create-auto-corrected-date-pipe.ts","ng://@taiga-ui/kit/utils/mask/create-auto-corrected-date-range-pipe.ts","ng://@taiga-ui/kit/utils/mask/create-auto-corrected-time-pipe.ts","ng://@taiga-ui/kit/utils/mask/create-auto-corrected-date-time-pipe.ts","ng://@taiga-ui/kit/utils/mask/create-date-mask.ts","ng://@taiga-ui/kit/utils/mask/create-date-range-mask.ts","ng://@taiga-ui/kit/utils/mask/create-time-mask.ts","ng://@taiga-ui/kit/utils/mask/taiga-ui-kit-utils-mask.ts"],"sourcesContent":["import {DATE_FILLER_LENGTH, TuiDateMode, TuiDay} from '@taiga-ui/cdk';\nimport {TuiTextMaskPipeHandler, TuiWithOptionalMinMaxWithValue} from '@taiga-ui/core';\n\nexport interface TuiAutoCorrectedDatePipeConfigs\n extends TuiWithOptionalMinMaxWithValue<TuiDay | null, TuiDay> {\n dateFormat: TuiDateMode;\n dateSeparator: string;\n}\n\nexport function normalizeDateValue(\n dateValue: string,\n {value, min, max, dateFormat, dateSeparator}: TuiAutoCorrectedDatePipeConfigs,\n): string {\n return value && value.toString(dateFormat, dateSeparator) === dateValue\n ? dateValue\n : TuiDay.normalizeParse(dateValue, dateFormat)\n .dayLimit(min, max)\n .toString(dateFormat, dateSeparator);\n}\n\nexport function tuiCreateAutoCorrectedDatePipe(\n config: TuiAutoCorrectedDatePipeConfigs,\n): TuiTextMaskPipeHandler {\n return value => {\n if (value.length !== DATE_FILLER_LENGTH) {\n return {value};\n }\n\n return {\n value: normalizeDateValue(value, config),\n };\n };\n}\n","import {\n DATE_FILLER_LENGTH,\n DATE_RANGE_FILLER_LENGTH,\n RANGE_SEPARATOR_CHAR,\n TuiDateMode,\n TuiDay,\n TuiDayRange,\n} from '@taiga-ui/cdk';\nimport {TuiTextMaskPipeHandler, TuiWithOptionalMinMaxWithValue} from '@taiga-ui/core';\n\ninterface TuiAutoCorrectedDatePipeConfigs\n extends TuiWithOptionalMinMaxWithValue<TuiDayRange | null, TuiDay> {\n dateFormat: TuiDateMode;\n dateSeparator: string;\n}\n\nfunction parseWithLimit(value: string, config: TuiAutoCorrectedDatePipeConfigs): TuiDay {\n return TuiDay.normalizeParse(\n value.slice(0, DATE_FILLER_LENGTH),\n config.dateFormat,\n ).dayLimit(config.min, config.max);\n}\n\nfunction processRawValue(value: string, config: TuiAutoCorrectedDatePipeConfigs): string {\n const {dateFormat, dateSeparator} = config;\n\n switch (value.length) {\n case DATE_FILLER_LENGTH:\n return parseWithLimit(value, config).toString(dateFormat, dateSeparator);\n case DATE_FILLER_LENGTH + RANGE_SEPARATOR_CHAR.length:\n return (\n parseWithLimit(value, config).toString(dateFormat, dateSeparator) +\n RANGE_SEPARATOR_CHAR\n );\n case DATE_RANGE_FILLER_LENGTH:\n return config.value &&\n config.value.toString(dateFormat, dateSeparator) === value\n ? value\n : TuiDayRange.sort(\n parseWithLimit(value.slice(0, DATE_FILLER_LENGTH), config),\n parseWithLimit(\n value.slice(DATE_FILLER_LENGTH + RANGE_SEPARATOR_CHAR.length),\n config,\n ),\n ).toString(dateFormat, dateSeparator);\n default:\n return value;\n }\n}\n\n/**\n * Normalizes date in formatted string\n *\n * Normalizes when:\n *\n * 1. It is a single date\n * 2. It is a single date and a separator\n * 3. It is two dates and a separator between them\n *\n * In **other** cases, the value does not change.\n *\n * @param config with min and max date\n * @return mask pipe handler that handles `min` and `max`\n */\nexport function tuiCreateAutoCorrectedDateRangePipe(\n config: TuiAutoCorrectedDatePipeConfigs,\n): TuiTextMaskPipeHandler {\n return value => ({value: processRawValue(value, config)});\n}\n","import {TuiTimeMode} from '@taiga-ui/cdk';\nimport {TuiTextMaskPipeHandler} from '@taiga-ui/core';\nimport {MAX_TIME_VALUES} from '@taiga-ui/kit/constants';\nimport {TuiTimeFormatParts} from '@taiga-ui/kit/types';\n\n/**\n * Adjusts the entered time by omitting only suitable values for hours and minutes\n * @returns time as a string\n */\nexport function tuiCreateAutoCorrectedTimePipe(\n timeMode: TuiTimeMode = 'HH:MM',\n maxValues: Partial<Record<TuiTimeFormatParts, number>> = {},\n): TuiTextMaskPipeHandler {\n const timeFormatArray = ['HH', 'MM', 'SS', 'MS'] as const;\n const safeValues = {\n ...MAX_TIME_VALUES,\n ...maxValues,\n };\n\n return conformedValue => {\n const indexesOfPipedChars: number[] = [];\n const conformedValueArr = conformedValue.split('');\n\n timeFormatArray.forEach(format => {\n const position = timeMode.indexOf(format);\n const maxFirstDigit = parseInt(String(safeValues[format]).slice(0, 1), 10);\n\n if (parseInt(conformedValueArr[position], 10) > maxFirstDigit) {\n conformedValueArr[position + 1] = conformedValueArr[position];\n conformedValueArr[position] = '0';\n indexesOfPipedChars.push(position);\n }\n });\n\n const isInvalid = timeFormatArray.some(\n format =>\n parseInt(conformedValue.slice(timeMode.indexOf(format), 2), 10) >\n safeValues[format],\n );\n\n return isInvalid\n ? false\n : {\n value: conformedValueArr.join(''),\n indexesOfPipedChars,\n };\n };\n}\n","import {DATE_FILLER_LENGTH, TuiTimeMode} from '@taiga-ui/cdk';\nimport {TuiTextMaskPipeHandler} from '@taiga-ui/core';\nimport {DATE_TIME_SEPARATOR} from '@taiga-ui/kit/constants';\n\nimport {\n normalizeDateValue,\n TuiAutoCorrectedDatePipeConfigs,\n} from './create-auto-corrected-date-pipe';\nimport {tuiCreateAutoCorrectedTimePipe} from './create-auto-corrected-time-pipe';\n\ninterface TuiAutoCorrectedDateTimePipeConfigs extends TuiAutoCorrectedDatePipeConfigs {\n timeMode: TuiTimeMode;\n}\n\nexport function tuiCreateAutoCorrectedDateTimePipe(\n configs: TuiAutoCorrectedDateTimePipeConfigs,\n): TuiTextMaskPipeHandler {\n const timePipe = tuiCreateAutoCorrectedTimePipe(configs.timeMode);\n\n return value => {\n if (value.length < DATE_FILLER_LENGTH) {\n return {value};\n }\n\n const [date, time] = value.split(DATE_TIME_SEPARATOR);\n\n const formattedDate = normalizeDateValue(date, configs);\n\n if (!time) {\n return {value: formattedDate};\n }\n\n const pipedTime = timePipe(time, {} as any);\n\n if (!pipedTime || typeof pipedTime === 'string') {\n return false;\n }\n\n return {\n value: `${formattedDate}${DATE_TIME_SEPARATOR}${pipedTime.value}`,\n indexesOfPipedChars: pipedTime.indexesOfPipedChars\n ? pipedTime.indexesOfPipedChars.map(i => i + date.length + 2)\n : undefined,\n };\n };\n}\n","import {tuiAssert, TuiDateMode} from '@taiga-ui/cdk';\nimport {TUI_DIGIT_REGEXP, TuiTextMaskList} from '@taiga-ui/core';\n\nconst TWO_DIGITS = new Array(2).fill(TUI_DIGIT_REGEXP);\nconst FOUR_DIGITS = new Array(4).fill(TUI_DIGIT_REGEXP);\n\nexport function tuiCreateDateMask(mode: TuiDateMode, separator: string): TuiTextMaskList {\n tuiAssert.assert(separator.length === 1, 'Separator should consist of only 1 symbol');\n\n switch (mode) {\n case 'YMD':\n return [...FOUR_DIGITS, separator, ...TWO_DIGITS, separator, ...TWO_DIGITS];\n case 'MDY':\n case 'DMY':\n default:\n return [...TWO_DIGITS, separator, ...TWO_DIGITS, separator, ...FOUR_DIGITS];\n }\n}\n","import {CHAR_EN_DASH, CHAR_NO_BREAK_SPACE, tuiAssert, TuiDateMode} from '@taiga-ui/cdk';\nimport {TuiTextMaskList} from '@taiga-ui/core';\n\nimport {tuiCreateDateMask} from './create-date-mask';\n\nexport function tuiCreateDateRangeMask(\n dateMode: TuiDateMode,\n dateSeparator: string,\n): TuiTextMaskList {\n tuiAssert.assert(\n dateSeparator.length === 1,\n 'Separator should consist of only 1 symbol',\n );\n\n const dateMask = tuiCreateDateMask(dateMode, dateSeparator);\n\n return [\n ...dateMask,\n CHAR_NO_BREAK_SPACE,\n CHAR_EN_DASH,\n CHAR_NO_BREAK_SPACE,\n ...dateMask,\n ];\n}\n","import {TuiTimeMode} from '@taiga-ui/cdk';\nimport {TUI_DIGIT_REGEXP, TuiTextMaskList} from '@taiga-ui/core';\nimport {MAX_TIME_VALUES} from '@taiga-ui/kit/constants';\nimport {TuiTimeFormatParts} from '@taiga-ui/kit/types';\n\nfunction tuiCreateTimePartMask(\n maxPartValue: number,\n prefix?: string,\n): Array<string | RegExp> {\n const {length} = String(maxPartValue);\n const regExp = new Array(length).fill(TUI_DIGIT_REGEXP);\n\n if (prefix) {\n regExp.unshift(prefix);\n }\n\n return regExp;\n}\n\nexport function tuiCreateTimeMask(\n mode: TuiTimeMode,\n maxValues: Partial<Record<TuiTimeFormatParts, number>> = {},\n): TuiTextMaskList {\n const {HH, MM, SS, MS} = {\n ...MAX_TIME_VALUES,\n ...maxValues,\n };\n\n return [\n ...tuiCreateTimePartMask(HH),\n ...tuiCreateTimePartMask(MM, ':'),\n ...(mode.includes('HH:MM:SS') ? tuiCreateTimePartMask(SS, ':') : []),\n ...(mode === 'HH:MM:SS.MSS' ? tuiCreateTimePartMask(MS, '.') : []),\n ];\n}\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-utils-mask.js","sources":["ng://@taiga-ui/kit/utils/mask/create-auto-corrected-date-pipe.ts","ng://@taiga-ui/kit/utils/mask/create-auto-corrected-date-range-pipe.ts","ng://@taiga-ui/kit/utils/mask/create-auto-corrected-time-pipe.ts","ng://@taiga-ui/kit/utils/mask/create-auto-corrected-date-time-pipe.ts","ng://@taiga-ui/kit/utils/mask/create-date-mask.ts","ng://@taiga-ui/kit/utils/mask/create-date-range-mask.ts","ng://@taiga-ui/kit/utils/mask/create-time-mask.ts","ng://@taiga-ui/kit/utils/mask/taiga-ui-kit-utils-mask.ts"],"sourcesContent":["import {DATE_FILLER_LENGTH, TuiDateMode, TuiDay} from '@taiga-ui/cdk';\nimport {TuiTextMaskPipeHandler, TuiWithOptionalMinMaxWithValue} from '@taiga-ui/core';\n\nexport interface TuiAutoCorrectedDatePipeConfigs\n extends TuiWithOptionalMinMaxWithValue<TuiDay | null, TuiDay> {\n dateFormat: TuiDateMode;\n dateSeparator: string;\n}\n\nexport function normalizeDateValue(\n dateValue: string,\n {value, min, max, dateFormat, dateSeparator}: TuiAutoCorrectedDatePipeConfigs,\n): string {\n return value && value.toString(dateFormat, dateSeparator) === dateValue\n ? dateValue\n : TuiDay.normalizeParse(dateValue, dateFormat)\n .dayLimit(min, max)\n .toString(dateFormat, dateSeparator);\n}\n\nexport function tuiCreateAutoCorrectedDatePipe(\n config: TuiAutoCorrectedDatePipeConfigs,\n): TuiTextMaskPipeHandler {\n return value => {\n if (value.length !== DATE_FILLER_LENGTH) {\n return {value};\n }\n\n return {\n value: normalizeDateValue(value, config),\n };\n };\n}\n","import {\n DATE_FILLER_LENGTH,\n DATE_RANGE_FILLER_LENGTH,\n RANGE_SEPARATOR_CHAR,\n TuiDateMode,\n TuiDay,\n TuiDayRange,\n} from '@taiga-ui/cdk';\nimport {TuiTextMaskPipeHandler, TuiWithOptionalMinMaxWithValue} from '@taiga-ui/core';\n\ninterface TuiAutoCorrectedDatePipeConfigs\n extends TuiWithOptionalMinMaxWithValue<TuiDayRange | null, TuiDay> {\n dateFormat: TuiDateMode;\n dateSeparator: string;\n}\n\nfunction parseWithLimit(value: string, config: TuiAutoCorrectedDatePipeConfigs): TuiDay {\n return TuiDay.normalizeParse(\n value.slice(0, DATE_FILLER_LENGTH),\n config.dateFormat,\n ).dayLimit(config.min, config.max);\n}\n\nfunction processRawValue(value: string, config: TuiAutoCorrectedDatePipeConfigs): string {\n const {dateFormat, dateSeparator} = config;\n\n switch (value.length) {\n case DATE_FILLER_LENGTH:\n return parseWithLimit(value, config).toString(dateFormat, dateSeparator);\n case DATE_FILLER_LENGTH + RANGE_SEPARATOR_CHAR.length:\n return (\n parseWithLimit(value, config).toString(dateFormat, dateSeparator) +\n RANGE_SEPARATOR_CHAR\n );\n case DATE_RANGE_FILLER_LENGTH:\n return config.value &&\n config.value.toString(dateFormat, dateSeparator) === value\n ? value\n : TuiDayRange.sort(\n parseWithLimit(value.slice(0, DATE_FILLER_LENGTH), config),\n parseWithLimit(\n value.slice(DATE_FILLER_LENGTH + RANGE_SEPARATOR_CHAR.length),\n config,\n ),\n ).toString(dateFormat, dateSeparator);\n default:\n return value;\n }\n}\n\n/**\n * Normalizes date in formatted string\n *\n * Normalizes when:\n *\n * 1. It is a single date\n * 2. It is a single date and a separator\n * 3. It is two dates and a separator between them\n *\n * In **other** cases, the value does not change.\n *\n * @param config with min and max date\n * @return mask pipe handler that handles `min` and `max`\n */\nexport function tuiCreateAutoCorrectedDateRangePipe(\n config: TuiAutoCorrectedDatePipeConfigs,\n): TuiTextMaskPipeHandler {\n return value => ({value: processRawValue(value, config)});\n}\n","import {TuiTimeMode} from '@taiga-ui/cdk';\nimport {TuiTextMaskPipeHandler} from '@taiga-ui/core';\nimport {MAX_TIME_VALUES} from '@taiga-ui/kit/constants';\nimport {TuiTimeFormatParts} from '@taiga-ui/kit/types';\n\n/**\n * Adjusts the entered time by omitting only suitable values for hours and minutes\n * @returns time as a string\n */\nexport function tuiCreateAutoCorrectedTimePipe(\n timeMode: TuiTimeMode = 'HH:MM',\n maxValues: Partial<Record<TuiTimeFormatParts, number>> = {},\n): TuiTextMaskPipeHandler {\n const timeFormatArray = ['HH', 'MM', 'SS', 'MS'] as const;\n const safeValues = {\n ...MAX_TIME_VALUES,\n ...maxValues,\n };\n\n return conformedValue => {\n const indexesOfPipedChars: number[] = [];\n const conformedValueArr = conformedValue.split('');\n\n timeFormatArray.forEach(format => {\n const position = timeMode.indexOf(format);\n const maxFirstDigit = parseInt(String(safeValues[format]).slice(0, 1), 10);\n\n if (parseInt(conformedValueArr[position], 10) > maxFirstDigit) {\n conformedValueArr[position + 1] = conformedValueArr[position];\n conformedValueArr[position] = '0';\n indexesOfPipedChars.push(position);\n }\n });\n\n const isInvalid = timeFormatArray.some(\n format =>\n parseInt(conformedValue.slice(timeMode.indexOf(format), 2), 10) >\n safeValues[format],\n );\n\n return isInvalid\n ? false\n : {\n value: conformedValueArr.join(''),\n indexesOfPipedChars,\n };\n };\n}\n","import {DATE_FILLER_LENGTH, TuiTimeMode} from '@taiga-ui/cdk';\nimport {\n TuiTextMaskConfig,\n TuiTextMaskOptions,\n TuiTextMaskPipeHandler,\n} from '@taiga-ui/core';\nimport {DATE_TIME_SEPARATOR} from '@taiga-ui/kit/constants';\n\nimport {\n normalizeDateValue,\n TuiAutoCorrectedDatePipeConfigs,\n} from './create-auto-corrected-date-pipe';\nimport {tuiCreateAutoCorrectedTimePipe} from './create-auto-corrected-time-pipe';\n\ninterface TuiAutoCorrectedDateTimePipeConfigs extends TuiAutoCorrectedDatePipeConfigs {\n timeMode: TuiTimeMode;\n}\n\nexport function tuiCreateAutoCorrectedDateTimePipe(\n configs: TuiAutoCorrectedDateTimePipeConfigs,\n): TuiTextMaskPipeHandler {\n const timePipe = tuiCreateAutoCorrectedTimePipe(configs.timeMode);\n\n return value => {\n if (value.length < DATE_FILLER_LENGTH) {\n return {value};\n }\n\n const [date, time] = value.split(DATE_TIME_SEPARATOR);\n\n const formattedDate = normalizeDateValue(date, configs);\n\n if (!time) {\n return {value: formattedDate};\n }\n\n const pipedTime = timePipe(\n time,\n {} as unknown as TuiTextMaskOptions & TuiTextMaskConfig,\n );\n\n if (!pipedTime || typeof pipedTime === 'string') {\n return false;\n }\n\n return {\n value: `${formattedDate}${DATE_TIME_SEPARATOR}${pipedTime.value}`,\n indexesOfPipedChars: pipedTime.indexesOfPipedChars\n ? pipedTime.indexesOfPipedChars.map(i => i + date.length + 2)\n : undefined,\n };\n };\n}\n","import {tuiAssert, TuiDateMode} from '@taiga-ui/cdk';\nimport {TUI_DIGIT_REGEXP, TuiTextMaskList} from '@taiga-ui/core';\n\nconst TWO_DIGITS = new Array(2).fill(TUI_DIGIT_REGEXP);\nconst FOUR_DIGITS = new Array(4).fill(TUI_DIGIT_REGEXP);\n\nexport function tuiCreateDateMask(mode: TuiDateMode, separator: string): TuiTextMaskList {\n tuiAssert.assert(separator.length === 1, 'Separator should consist of only 1 symbol');\n\n switch (mode) {\n case 'YMD':\n return [...FOUR_DIGITS, separator, ...TWO_DIGITS, separator, ...TWO_DIGITS];\n case 'MDY':\n case 'DMY':\n default:\n return [...TWO_DIGITS, separator, ...TWO_DIGITS, separator, ...FOUR_DIGITS];\n }\n}\n","import {CHAR_EN_DASH, CHAR_NO_BREAK_SPACE, tuiAssert, TuiDateMode} from '@taiga-ui/cdk';\nimport {TuiTextMaskList} from '@taiga-ui/core';\n\nimport {tuiCreateDateMask} from './create-date-mask';\n\nexport function tuiCreateDateRangeMask(\n dateMode: TuiDateMode,\n dateSeparator: string,\n): TuiTextMaskList {\n tuiAssert.assert(\n dateSeparator.length === 1,\n 'Separator should consist of only 1 symbol',\n );\n\n const dateMask = tuiCreateDateMask(dateMode, dateSeparator);\n\n return [\n ...dateMask,\n CHAR_NO_BREAK_SPACE,\n CHAR_EN_DASH,\n CHAR_NO_BREAK_SPACE,\n ...dateMask,\n ];\n}\n","import {TuiTimeMode} from '@taiga-ui/cdk';\nimport {TUI_DIGIT_REGEXP, TuiTextMaskList} from '@taiga-ui/core';\nimport {MAX_TIME_VALUES} from '@taiga-ui/kit/constants';\nimport {TuiTimeFormatParts} from '@taiga-ui/kit/types';\n\nfunction tuiCreateTimePartMask(\n maxPartValue: number,\n prefix?: string,\n): Array<string | RegExp> {\n const {length} = String(maxPartValue);\n const regExp = new Array(length).fill(TUI_DIGIT_REGEXP);\n\n if (prefix) {\n regExp.unshift(prefix);\n }\n\n return regExp;\n}\n\nexport function tuiCreateTimeMask(\n mode: TuiTimeMode,\n maxValues: Partial<Record<TuiTimeFormatParts, number>> = {},\n): TuiTextMaskList {\n const {HH, MM, SS, MS} = {\n ...MAX_TIME_VALUES,\n ...maxValues,\n };\n\n return [\n ...tuiCreateTimePartMask(HH),\n ...tuiCreateTimePartMask(MM, ':'),\n ...(mode.includes('HH:MM:SS') ? tuiCreateTimePartMask(SS, ':') : []),\n ...(mode === 'HH:MM:SS.MSS' ? tuiCreateTimePartMask(MS, '.') : []),\n ];\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;SASgB,kBAAkB,CAC9B,SAAiB,EACjB,EAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,aAAa,EAAkC;IAE7E,OAAO,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,KAAK,SAAS;UACjE,SAAS;UACT,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,UAAU,CAAC;aACvC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;aAClB,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AACnD,CAAC;SAEe,8BAA8B,CAC1C,MAAuC;IAEvC,OAAO,KAAK;QACR,IAAI,KAAK,CAAC,MAAM,KAAK,kBAAkB,EAAE;YACrC,OAAO,EAAC,KAAK,EAAC,CAAC;SAClB;QAED,OAAO;YACH,KAAK,EAAE,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC;SAC3C,CAAC;KACL,CAAC;AACN;;AChBA,SAAS,cAAc,CAAC,KAAa,EAAE,MAAuC;IAC1E,OAAO,MAAM,CAAC,cAAc,CACxB,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,EAClC,MAAM,CAAC,UAAU,CACpB,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,eAAe,CAAC,KAAa,EAAE,MAAuC;IAC3E,MAAM,EAAC,UAAU,EAAE,aAAa,EAAC,GAAG,MAAM,CAAC;IAE3C,QAAQ,KAAK,CAAC,MAAM;QAChB,KAAK,kBAAkB;YACnB,OAAO,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAC7E,KAAK,kBAAkB,GAAG,oBAAoB,CAAC,MAAM;YACjD,QACI,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;gBACjE,oBAAoB,EACtB;QACN,KAAK,wBAAwB;YACzB,OAAO,MAAM,CAAC,KAAK;gBACf,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,KAAK,KAAK;kBACxD,KAAK;kBACL,WAAW,CAAC,IAAI,CACZ,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,EAAE,MAAM,CAAC,EAC1D,cAAc,CACV,KAAK,CAAC,KAAK,CAAC,kBAAkB,GAAG,oBAAoB,CAAC,MAAM,CAAC,EAC7D,MAAM,CACT,CACJ,CAAC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAChD;YACI,OAAO,KAAK,CAAC;KACpB;AACL,CAAC;AAED;;;;;;;;;;;;;;SAcgB,mCAAmC,CAC/C,MAAuC;IAEvC,OAAO,KAAK,KAAK,EAAC,KAAK,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,EAAC,CAAC,CAAC;AAC9D;;AC/DA;;;;SAIgB,8BAA8B,CAC1C,WAAwB,OAAO,EAC/B,YAAyD,EAAE;IAE3D,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAU,CAAC;IAC1D,MAAM,UAAU,mCACT,eAAe,GACf,SAAS,CACf,CAAC;IAEF,OAAO,cAAc;QACjB,MAAM,mBAAmB,GAAa,EAAE,CAAC;QACzC,MAAM,iBAAiB,GAAG,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAEnD,eAAe,CAAC,OAAO,CAAC,MAAM;YAC1B,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC1C,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAE3E,IAAI,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,aAAa,EAAE;gBAC3D,iBAAiB,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;gBAC9D,iBAAiB,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC;gBAClC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aACtC;SACJ,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAClC,MAAM,IACF,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;YAC/D,UAAU,CAAC,MAAM,CAAC,CACzB,CAAC;QAEF,OAAO,SAAS;cACV,KAAK;cACL;gBACI,KAAK,EAAE,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjC,mBAAmB;aACtB,CAAC;KACX,CAAC;AACN;;SC7BgB,kCAAkC,CAC9C,OAA4C;IAE5C,MAAM,QAAQ,GAAG,8BAA8B,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAElE,OAAO,KAAK;QACR,IAAI,KAAK,CAAC,MAAM,GAAG,kBAAkB,EAAE;YACnC,OAAO,EAAC,KAAK,EAAC,CAAC;SAClB;QAED,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAEtD,MAAM,aAAa,GAAG,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAExD,IAAI,CAAC,IAAI,EAAE;YACP,OAAO,EAAC,KAAK,EAAE,aAAa,EAAC,CAAC;SACjC;QAED,MAAM,SAAS,GAAG,QAAQ,CACtB,IAAI,EACJ,EAAuD,CAC1D,CAAC;QAEF,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;YAC7C,OAAO,KAAK,CAAC;SAChB;QAED,OAAO;YACH,KAAK,EAAE,GAAG,aAAa,GAAG,mBAAmB,GAAG,SAAS,CAAC,KAAK,EAAE;YACjE,mBAAmB,EAAE,SAAS,CAAC,mBAAmB;kBAC5C,SAAS,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;kBAC3D,SAAS;SAClB,CAAC;KACL,CAAC;AACN;;ACjDA,MAAM,UAAU,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACvD,MAAM,WAAW,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;SAExC,iBAAiB,CAAC,IAAiB,EAAE,SAAiB;IAClE,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,2CAA2C,CAAC,CAAC;IAEtF,QAAQ,IAAI;QACR,KAAK,KAAK;YACN,OAAO,CAAC,GAAG,WAAW,EAAE,SAAS,EAAE,GAAG,UAAU,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC,CAAC;QAChF,KAAK,KAAK,CAAC;QACX,KAAK,KAAK,CAAC;QACX;YACI,OAAO,CAAC,GAAG,UAAU,EAAE,SAAS,EAAE,GAAG,UAAU,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC,CAAC;KACnF;AACL;;SCZgB,sBAAsB,CAClC,QAAqB,EACrB,aAAqB;IAErB,SAAS,CAAC,MAAM,CACZ,aAAa,CAAC,MAAM,KAAK,CAAC,EAC1B,2CAA2C,CAC9C,CAAC;IAEF,MAAM,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAE5D,OAAO;QACH,GAAG,QAAQ;QACX,mBAAmB;QACnB,YAAY;QACZ,mBAAmB;QACnB,GAAG,QAAQ;KACd,CAAC;AACN;;AClBA,SAAS,qBAAqB,CAC1B,YAAoB,EACpB,MAAe;IAEf,MAAM,EAAC,MAAM,EAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAExD,IAAI,MAAM,EAAE;QACR,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;KAC1B;IAED,OAAO,MAAM,CAAC;AAClB,CAAC;SAEe,iBAAiB,CAC7B,IAAiB,EACjB,YAAyD,EAAE;IAE3D,MAAM,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAC,mCACf,eAAe,GACf,SAAS,CACf,CAAC;IAEF,OAAO;QACH,GAAG,qBAAqB,CAAC,EAAE,CAAC;QAC5B,GAAG,qBAAqB,CAAC,EAAE,EAAE,GAAG,CAAC;QACjC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,qBAAqB,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;QACpE,IAAI,IAAI,KAAK,cAAc,GAAG,qBAAqB,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;KACrE,CAAC;AACN;;AClCA;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-abstract.js","sources":["ng://@taiga-ui/kit/abstract/input-slider.ts","ng://@taiga-ui/kit/abstract/slider/slider.ts","ng://@taiga-ui/kit/abstract/taiga-ui-kit-abstract.ts"],"sourcesContent":["import {Directive, HostBinding, Input} from '@angular/core';\nimport {AbstractTuiControl, tuiDefaultProp, tuiPure} from '@taiga-ui/cdk';\nimport {\n TuiPluralize,\n tuiPluralizeToICU,\n TuiSizeL,\n TuiWithOptionalMinMax,\n} from '@taiga-ui/core';\nimport {TuiKeySteps} from '@taiga-ui/kit/types';\n\nexport function quantumAssertion(quantum: number): boolean {\n return quantum > 0;\n}\n\n/**\n * @internal\n * @deprecated TODO: 3.0 delete me after `InputSlider` and `InputRange` stop using it\n */\n@Directive()\nexport abstract class AbstractTuiInputSlider<T>\n extends AbstractTuiControl<T>\n implements TuiWithOptionalMinMax<number>\n{\n @Input()\n @tuiDefaultProp()\n min = 0;\n\n @Input()\n @tuiDefaultProp()\n max = Infinity;\n\n /**\n * @deprecated This input-property will be deleted in next major update.\n * Use `valueContent` for `InputSlider`.\n * Use `leftValueContent` for `InputRange`.\n * ___\n * TODO remove in v3.0.\n * Dont forget to delete backward-compatibility helpers inside `InputSlider` and `InputRange`:\n *** {@link legacyMinMaxLabel}\n */\n @Input()\n @tuiDefaultProp()\n minLabel = '';\n\n /**\n * @deprecated This input-property will be deleted in next major update.\n * Use `valueContent` for `InputSlider`.\n * Use `rightValueContent` for `InputRange`.\n * ___\n * TODO remove in v3.0.\n * Dont forget to delete backward-compatibility helpers inside `InputSlider` and `InputRange`:\n *** {@link legacyMinMaxLabel}\n */\n @Input()\n @tuiDefaultProp()\n maxLabel = '';\n\n // TODO: remove setter in v3.0:\n @Input()\n @tuiDefaultProp()\n set pluralize(pluralize: TuiPluralize | Record<string, string> | null) {\n this.pluralizeMap = Array.isArray(pluralize)\n ? tuiPluralizeToICU(pluralize)\n : pluralize;\n }\n\n /**\n * @deprecated This input-property will be deleted in next major update.\n * You can create ticks labels below this input by yourself. It is easy!\n * Mixin `tui-slider-ticks-labels` will help with it. See examples in demo page `InputSlider`.\n * ___\n * TODO remove in v3.0.\n * Dont forget to delete:\n *** {@link segmentsPluralizeMap}\n *** {@link getTickPrefix}\n *** TuiFormatNumberPipeModule\n *** TuiRepeatTimesModule\n */\n @Input()\n @tuiDefaultProp()\n set segmentsPluralize(pluralize: TuiPluralize | Record<string, string> | null) {\n this.segmentsPluralizeMap = Array.isArray(pluralize)\n ? tuiPluralizeToICU(pluralize)\n : pluralize;\n }\n\n @Input()\n @tuiDefaultProp()\n segments = 0;\n\n @Input()\n @tuiDefaultProp()\n steps = 0;\n\n @Input()\n @tuiDefaultProp(quantumAssertion, 'Quantum must be positive')\n quantum = 1;\n\n @Input()\n @tuiDefaultProp()\n keySteps: TuiKeySteps | null = null;\n\n /**\n * @deprecated use `tuiTextfieldSize` instead\n * TODO delete in v3.0\n */\n @Input()\n @HostBinding('attr.data-size')\n @tuiDefaultProp()\n size: TuiSizeL = 'l';\n\n /**\n * @deprecated replace by input-property {@link pluralize} in v3.0\n */\n pluralizeMap: Record<string, string> | null = null;\n /** @deprecated TODO remove in v3.0 */\n segmentsPluralizeMap: Record<string, string> | null = null;\n /** @deprecated TODO remove in v3.0 */\n readonly pluralizeMapFallback = {\n one: '',\n few: '',\n many: '',\n other: '',\n };\n\n /** @deprecated TODO remove in v3.0 */\n @tuiPure\n getTickPrefix(segment: number, segments: number, texts: [string, string]): string {\n if (segments !== 1) {\n return '';\n }\n\n return segment === 0 ? `${texts[0]}` : `${texts[1]}`;\n }\n\n @HostBinding('class._segmented')\n get segmented(): boolean {\n return this.segments > 0;\n }\n\n get length(): number {\n return this.max - this.min;\n }\n\n get computedSteps(): number {\n return this.steps || this.length / this.quantum;\n }\n\n get step(): number {\n return this.length / this.computedSteps;\n }\n\n get computedKeySteps(): TuiKeySteps {\n return this.computePureKeySteps(this.keySteps, this.min, this.max);\n }\n\n onHovered(hovered: boolean): void {\n this.updateHovered(hovered);\n }\n\n @tuiPure\n private computePureKeySteps(\n keySteps: TuiKeySteps | null,\n min: number,\n max: number,\n ): TuiKeySteps {\n return [[0, min], ...(keySteps || []), [100, max]];\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n HostBinding,\n Inject,\n Input,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiControl,\n clamp,\n nonNegativeFiniteAssertion,\n quantize,\n round,\n setNativeFocused,\n tuiAssertIsHTMLElement,\n tuiDefaultProp,\n TuiEventWith,\n TuiNativeFocusableElement,\n typedFromEvent,\n} from '@taiga-ui/cdk';\nimport {\n TuiPluralize,\n tuiPluralizeToICU,\n TuiSizeS,\n TuiWithOptionalMinMax,\n} from '@taiga-ui/core';\nimport {TUI_FLOATING_PRECISION} from '@taiga-ui/kit/constants';\nimport {TUI_FROM_TO_TEXTS} from '@taiga-ui/kit/tokens';\nimport {TuiKeySteps} from '@taiga-ui/kit/types';\nimport {Observable, race, Subject} from 'rxjs';\nimport {map, switchMap, takeUntil} from 'rxjs/operators';\n\nexport const SLIDER_KEYBOARD_STEP = 0.05;\nexport const DOT_WIDTH: {[key: string]: number} = {\n s: 8,\n m: 16,\n};\n\n/**\n * @awful TODO: 3.0 remove\n * @internal\n * @dynamic\n */\n@Directive()\nexport abstract class AbstractTuiSlider<T>\n extends AbstractTuiControl<T>\n implements TuiWithOptionalMinMax<number>\n{\n // @bad TODO: handle pointer events instead of mouse and touch events\n private readonly pointerDown$ = new Subject<\n TuiEventWith<MouseEvent | TouchEvent, HTMLElement>\n >();\n\n @ViewChild('dotLeft', {read: ElementRef})\n protected dotLeft?: ElementRef<TuiNativeFocusableElement>;\n\n @ViewChild('dotRight', {read: ElementRef})\n protected dotRight?: ElementRef<TuiNativeFocusableElement>;\n\n @Input()\n @tuiDefaultProp()\n min = 0;\n\n @Input()\n @tuiDefaultProp()\n max = Infinity;\n\n @Input()\n @tuiDefaultProp()\n segments = 0;\n\n @Input()\n @tuiDefaultProp()\n steps = 0;\n\n @Input()\n @tuiDefaultProp(nonNegativeFiniteAssertion, 'Quantum must be a non-negative number')\n quantum = 0;\n\n // TODO: remove setter in v3.0:\n @Input()\n @tuiDefaultProp()\n set pluralize(pluralize: TuiPluralize | Record<string, string> | null) {\n this.pluralizeMap = Array.isArray(pluralize)\n ? tuiPluralizeToICU(pluralize)\n : pluralize;\n }\n\n @Input()\n @HostBinding('attr.data-size')\n @tuiDefaultProp()\n size: TuiSizeS = 'm';\n\n @Input()\n @tuiDefaultProp()\n keySteps: TuiKeySteps | null = null;\n\n focusVisibleLeft = false;\n\n focusVisibleRight = false;\n\n pluralizeMap: Record<string, string> | null = null;\n\n protected constructor(\n ngControl: NgControl | null,\n changeDetectorRef: ChangeDetectorRef,\n private readonly documentRef: Document,\n @Inject(TUI_FROM_TO_TEXTS)\n readonly fromToTexts$: Observable<[string, string]>,\n ) {\n super(ngControl, changeDetectorRef);\n }\n\n @HostBinding('class._segmented')\n get segmented(): boolean {\n return this.segments > 0;\n }\n\n get discrete(): boolean {\n return this.steps > 0;\n }\n\n get length(): number {\n return this.max - this.min;\n }\n\n get computedStep(): number {\n if (this.steps) {\n return 1 / this.steps;\n }\n\n return this.quantum ? this.quantum / this.length : SLIDER_KEYBOARD_STEP;\n }\n\n get isLeftFocusable(): boolean {\n return !this.disabled && this.focusable && this.right !== 100;\n }\n\n get isRightFocusable(): boolean {\n return !this.disabled && this.focusable && this.left !== 100;\n }\n\n abstract get left(): number;\n abstract get right(): number;\n abstract processValue(value: number, right?: boolean): void;\n\n ngOnInit(): void {\n super.ngOnInit();\n\n const mouseMoves$ = typedFromEvent(this.documentRef, 'mousemove');\n const mouseUps$ = typedFromEvent(this.documentRef, 'mouseup');\n const touchMoves$ = typedFromEvent(this.documentRef, 'touchmove');\n const touchEnds$ = typedFromEvent(this.documentRef, 'touchend');\n let isPointerDownRight: boolean;\n\n this.pointerDown$\n .pipe(\n map((event: MouseEvent | TouchEvent) => {\n tuiAssertIsHTMLElement(event.currentTarget);\n\n const rect = event.currentTarget.getBoundingClientRect();\n const clientX =\n event instanceof MouseEvent\n ? event.clientX\n : event.touches[0].clientX;\n const fraction = clamp(\n this.getFractionFromEvents(rect, clientX),\n 0,\n 1,\n );\n const deltaLeft = fraction * 100 - this.left;\n const deltaRight = fraction * 100 - 100 + this.right;\n\n isPointerDownRight =\n Math.abs(deltaLeft) > Math.abs(deltaRight) ||\n deltaRight > 0 ||\n (this.left === 0 && this.right === 100);\n\n const calibratedFraction = clamp(\n this.getCalibratedFractionFromEvents(\n rect,\n clientX,\n isPointerDownRight,\n ),\n 0,\n 1,\n );\n const value = this.getValueFromFraction(\n this.fractionGuard(calibratedFraction),\n );\n\n this.processValue(value, isPointerDownRight);\n this.processFocus(isPointerDownRight);\n\n return rect;\n }),\n switchMap(rect =>\n race([touchMoves$, mouseMoves$]).pipe(\n map((event: any) =>\n this.getCalibratedFractionFromEvents(\n rect,\n event instanceof MouseEvent\n ? event.clientX\n : event.touches[0].clientX,\n isPointerDownRight,\n ),\n ),\n takeUntil(race([mouseUps$, touchEnds$])),\n ),\n ),\n map(fraction => this.fractionGuard(fraction)),\n )\n .subscribe(fraction => {\n this.processValue(\n this.getValueFromFraction(fraction),\n isPointerDownRight,\n );\n });\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n this.pointerDown$.complete();\n }\n\n onMouseDown(event: MouseEvent): void {\n if (this.disabled) {\n return;\n }\n\n event.preventDefault();\n this.pointerDown$.next(event as TuiEventWith<MouseEvent, HTMLElement>);\n }\n\n onTouchStart(event: TouchEvent): void {\n if (this.disabled) {\n return;\n }\n\n event.preventDefault();\n this.pointerDown$.next(event as TuiEventWith<TouchEvent, HTMLElement>);\n }\n\n getSegmentLabel(segment: number): number {\n return round(this.getValueFromFraction(segment / this.segments), 2);\n }\n\n getSegmentPrefix(segment: number, texts: [string, string]): string {\n if (this.segments !== 1) {\n return '';\n }\n\n if (segment === 0) {\n return `${texts[0]} `;\n }\n\n return `${texts[1]} `;\n }\n\n onActiveZone(active: boolean): void {\n this.updateFocused(active);\n }\n\n onLeftFocusVisible(focusVisible: boolean): void {\n this.focusVisibleLeft = focusVisible;\n }\n\n onRightFocusVisible(focusVisible: boolean): void {\n this.focusVisibleRight = focusVisible;\n }\n\n getValueFromFraction(fraction: number): number {\n return this.keySteps !== null\n ? this.fractionValueKeyStepConverter(fraction, true)\n : round(\n this.fractionGuard(fraction) * this.length + this.min,\n TUI_FLOATING_PRECISION,\n );\n }\n\n fractionGuard(fraction: number): number {\n return this.discrete\n ? clamp(quantize(fraction, 1 / this.steps), 0, 1)\n : clamp(fraction, 0, 1);\n }\n\n protected getFractionFromValue(value: number): number {\n const fraction = (value - this.min) / this.length;\n\n return this.keySteps !== null\n ? this.fractionValueKeyStepConverter(value, false)\n : clamp(Number.isFinite(fraction) ? fraction : 1, 0, 1);\n }\n\n protected getCalibratedFractionFromEvents(\n rect: ClientRect,\n clientX: number,\n _: boolean,\n ): number {\n return this.getFractionFromEvents(rect, clientX);\n }\n\n protected valueGuard(value: number): number {\n return this.quantum\n ? clamp(\n round(\n Math.round(value / this.quantum) * this.quantum,\n TUI_FLOATING_PRECISION,\n ),\n this.min,\n this.max,\n )\n : clamp(value, this.min, this.max);\n }\n\n private processFocus(right: boolean): void {\n if (!this.focusable || !this.dotRight || !this.dotLeft) {\n return;\n }\n\n if (right) {\n setNativeFocused(this.dotRight.nativeElement);\n } else {\n setNativeFocused(this.dotLeft.nativeElement);\n }\n }\n\n /**\n * Function for converting the fullness of the slider to a value and vice versa\n * taking into account the steps of linear dependence.\n *\n * @param value passed value\n * @param isFraction translation is carried out from fullness to value\n */\n private fractionValueKeyStepConverter(value: number, isFraction: boolean): number {\n const steps = [[0, this.min]].concat(this.keySteps as TuiKeySteps, [\n [100, this.max],\n ]);\n\n let prevFraction = 0;\n let nextFraction = 100;\n let prevValue = this.min;\n let nextValue = this.max;\n\n for (let i = 1; i < steps.length; i++) {\n if (\n (isFraction && steps[i][0] / 100 > value) ||\n (!isFraction && steps[i][1] > value)\n ) {\n prevFraction = steps[i - 1][0] || 0;\n nextFraction = steps[i][0];\n prevValue = steps[i - 1][1];\n nextValue = steps[i][1];\n break;\n }\n }\n\n const deltaFraction = nextFraction - prevFraction;\n const deltaValue = nextValue - prevValue;\n\n return isFraction\n ? round(\n ((value * 100 - prevFraction) / deltaFraction) * deltaValue + prevValue,\n TUI_FLOATING_PRECISION,\n )\n : clamp(\n ((value - prevValue) / deltaValue) * deltaFraction + prevFraction,\n 0,\n 100,\n ) / 100;\n }\n\n private getFractionFromEvents(rect: ClientRect, clientX: number): number {\n const value = clientX - rect.left - DOT_WIDTH[this.size] / 2;\n const total = rect.width - DOT_WIDTH[this.size];\n\n return round(value / total, TUI_FLOATING_PRECISION);\n }\n}\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-abstract.js","sources":["ng://@taiga-ui/kit/abstract/input-slider.ts","ng://@taiga-ui/kit/abstract/slider/slider.ts","ng://@taiga-ui/kit/abstract/taiga-ui-kit-abstract.ts"],"sourcesContent":["import {Directive, HostBinding, Input} from '@angular/core';\nimport {AbstractTuiControl, tuiDefaultProp, tuiPure} from '@taiga-ui/cdk';\nimport {\n TuiPluralize,\n tuiPluralizeToICU,\n TuiSizeL,\n TuiWithOptionalMinMax,\n} from '@taiga-ui/core';\nimport {TuiKeySteps} from '@taiga-ui/kit/types';\n\nexport function quantumAssertion(quantum: number): boolean {\n return quantum > 0;\n}\n\n/**\n * @internal\n * @deprecated TODO: 3.0 delete me after `InputSlider` and `InputRange` stop using it\n */\n@Directive()\nexport abstract class AbstractTuiInputSlider<T>\n extends AbstractTuiControl<T>\n implements TuiWithOptionalMinMax<number>\n{\n @Input()\n @tuiDefaultProp()\n min = 0;\n\n @Input()\n @tuiDefaultProp()\n max = Infinity;\n\n /**\n * @deprecated This input-property will be deleted in next major update.\n * Use `valueContent` for `InputSlider`.\n * Use `leftValueContent` for `InputRange`.\n * ___\n * TODO remove in v3.0.\n * Dont forget to delete backward-compatibility helpers inside `InputSlider` and `InputRange`:\n *** {@link legacyMinMaxLabel}\n */\n @Input()\n @tuiDefaultProp()\n minLabel = '';\n\n /**\n * @deprecated This input-property will be deleted in next major update.\n * Use `valueContent` for `InputSlider`.\n * Use `rightValueContent` for `InputRange`.\n * ___\n * TODO remove in v3.0.\n * Dont forget to delete backward-compatibility helpers inside `InputSlider` and `InputRange`:\n *** {@link legacyMinMaxLabel}\n */\n @Input()\n @tuiDefaultProp()\n maxLabel = '';\n\n // TODO: remove setter in v3.0:\n @Input()\n @tuiDefaultProp()\n set pluralize(pluralize: TuiPluralize | Record<string, string> | null) {\n this.pluralizeMap = Array.isArray(pluralize)\n ? tuiPluralizeToICU(pluralize)\n : pluralize;\n }\n\n /**\n * @deprecated This input-property will be deleted in next major update.\n * You can create ticks labels below this input by yourself. It is easy!\n * Mixin `tui-slider-ticks-labels` will help with it. See examples in demo page `InputSlider`.\n * ___\n * TODO remove in v3.0.\n * Dont forget to delete:\n *** {@link segmentsPluralizeMap}\n *** {@link getTickPrefix}\n *** TuiFormatNumberPipeModule\n *** TuiRepeatTimesModule\n */\n @Input()\n @tuiDefaultProp()\n set segmentsPluralize(pluralize: TuiPluralize | Record<string, string> | null) {\n this.segmentsPluralizeMap = Array.isArray(pluralize)\n ? tuiPluralizeToICU(pluralize)\n : pluralize;\n }\n\n @Input()\n @tuiDefaultProp()\n segments = 0;\n\n @Input()\n @tuiDefaultProp()\n steps = 0;\n\n @Input()\n @tuiDefaultProp(quantumAssertion, 'Quantum must be positive')\n quantum = 1;\n\n @Input()\n @tuiDefaultProp()\n keySteps: TuiKeySteps | null = null;\n\n /**\n * @deprecated use `tuiTextfieldSize` instead\n * TODO delete in v3.0\n */\n @Input()\n @HostBinding('attr.data-size')\n @tuiDefaultProp()\n size: TuiSizeL = 'l';\n\n /**\n * @deprecated replace by input-property {@link pluralize} in v3.0\n */\n pluralizeMap: Record<string, string> | null = null;\n /** @deprecated TODO remove in v3.0 */\n segmentsPluralizeMap: Record<string, string> | null = null;\n /** @deprecated TODO remove in v3.0 */\n readonly pluralizeMapFallback = {\n one: '',\n few: '',\n many: '',\n other: '',\n };\n\n /** @deprecated TODO remove in v3.0 */\n @tuiPure\n getTickPrefix(segment: number, segments: number, texts: [string, string]): string {\n if (segments !== 1) {\n return '';\n }\n\n return segment === 0 ? `${texts[0]}` : `${texts[1]}`;\n }\n\n @HostBinding('class._segmented')\n get segmented(): boolean {\n return this.segments > 0;\n }\n\n get length(): number {\n return this.max - this.min;\n }\n\n get computedSteps(): number {\n return this.steps || this.length / this.quantum;\n }\n\n get step(): number {\n return this.length / this.computedSteps;\n }\n\n get computedKeySteps(): TuiKeySteps {\n return this.computePureKeySteps(this.keySteps, this.min, this.max);\n }\n\n onHovered(hovered: boolean): void {\n this.updateHovered(hovered);\n }\n\n @tuiPure\n private computePureKeySteps(\n keySteps: TuiKeySteps | null,\n min: number,\n max: number,\n ): TuiKeySteps {\n return [[0, min], ...(keySteps || []), [100, max]];\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n HostBinding,\n Inject,\n Input,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiControl,\n clamp,\n nonNegativeFiniteAssertion,\n quantize,\n round,\n setNativeFocused,\n tuiAssertIsHTMLElement,\n tuiDefaultProp,\n TuiEventWith,\n TuiNativeFocusableElement,\n typedFromEvent,\n} from '@taiga-ui/cdk';\nimport {\n TuiPluralize,\n tuiPluralizeToICU,\n TuiSizeS,\n TuiWithOptionalMinMax,\n} from '@taiga-ui/core';\nimport {TUI_FLOATING_PRECISION} from '@taiga-ui/kit/constants';\nimport {TUI_FROM_TO_TEXTS} from '@taiga-ui/kit/tokens';\nimport {TuiKeySteps} from '@taiga-ui/kit/types';\nimport {Observable, race, Subject} from 'rxjs';\nimport {map, switchMap, takeUntil} from 'rxjs/operators';\n\nexport const SLIDER_KEYBOARD_STEP = 0.05;\nexport const DOT_WIDTH: {[key: string]: number} = {\n s: 8,\n m: 16,\n};\n\n/**\n * @awful TODO: 3.0 remove\n * @internal\n * @dynamic\n */\n@Directive()\nexport abstract class AbstractTuiSlider<T>\n extends AbstractTuiControl<T>\n implements TuiWithOptionalMinMax<number>\n{\n // @bad TODO: handle pointer events instead of mouse and touch events\n private readonly pointerDown$ = new Subject<\n TuiEventWith<MouseEvent | TouchEvent, HTMLElement>\n >();\n\n @ViewChild('dotLeft', {read: ElementRef})\n protected dotLeft?: ElementRef<TuiNativeFocusableElement>;\n\n @ViewChild('dotRight', {read: ElementRef})\n protected dotRight?: ElementRef<TuiNativeFocusableElement>;\n\n @Input()\n @tuiDefaultProp()\n min = 0;\n\n @Input()\n @tuiDefaultProp()\n max = Infinity;\n\n @Input()\n @tuiDefaultProp()\n segments = 0;\n\n @Input()\n @tuiDefaultProp()\n steps = 0;\n\n @Input()\n @tuiDefaultProp(nonNegativeFiniteAssertion, 'Quantum must be a non-negative number')\n quantum = 0;\n\n // TODO: remove setter in v3.0:\n @Input()\n @tuiDefaultProp()\n set pluralize(pluralize: TuiPluralize | Record<string, string> | null) {\n this.pluralizeMap = Array.isArray(pluralize)\n ? tuiPluralizeToICU(pluralize)\n : pluralize;\n }\n\n @Input()\n @HostBinding('attr.data-size')\n @tuiDefaultProp()\n size: TuiSizeS = 'm';\n\n @Input()\n @tuiDefaultProp()\n keySteps: TuiKeySteps | null = null;\n\n focusVisibleLeft = false;\n\n focusVisibleRight = false;\n\n pluralizeMap: Record<string, string> | null = null;\n\n protected constructor(\n ngControl: NgControl | null,\n changeDetectorRef: ChangeDetectorRef,\n private readonly documentRef: Document,\n @Inject(TUI_FROM_TO_TEXTS)\n readonly fromToTexts$: Observable<[string, string]>,\n ) {\n super(ngControl, changeDetectorRef);\n }\n\n @HostBinding('class._segmented')\n get segmented(): boolean {\n return this.segments > 0;\n }\n\n get discrete(): boolean {\n return this.steps > 0;\n }\n\n get length(): number {\n return this.max - this.min;\n }\n\n get computedStep(): number {\n if (this.steps) {\n return 1 / this.steps;\n }\n\n return this.quantum ? this.quantum / this.length : SLIDER_KEYBOARD_STEP;\n }\n\n get isLeftFocusable(): boolean {\n return !this.disabled && this.focusable && this.right !== 100;\n }\n\n get isRightFocusable(): boolean {\n return !this.disabled && this.focusable && this.left !== 100;\n }\n\n abstract get left(): number;\n abstract get right(): number;\n abstract processValue(value: number, right?: boolean): void;\n\n ngOnInit(): void {\n super.ngOnInit();\n\n const mouseMoves$ = typedFromEvent(this.documentRef, 'mousemove');\n const mouseUps$ = typedFromEvent(this.documentRef, 'mouseup');\n const touchMoves$ = typedFromEvent(this.documentRef, 'touchmove');\n const touchEnds$ = typedFromEvent(this.documentRef, 'touchend');\n let isPointerDownRight: boolean;\n\n this.pointerDown$\n .pipe(\n map((event: MouseEvent | TouchEvent) => {\n tuiAssertIsHTMLElement(event.currentTarget);\n\n const rect = event.currentTarget.getBoundingClientRect();\n const clientX =\n event instanceof MouseEvent\n ? event.clientX\n : event.touches[0].clientX;\n const fraction = clamp(\n this.getFractionFromEvents(rect, clientX),\n 0,\n 1,\n );\n const deltaLeft = fraction * 100 - this.left;\n const deltaRight = fraction * 100 - 100 + this.right;\n\n isPointerDownRight =\n Math.abs(deltaLeft) > Math.abs(deltaRight) ||\n deltaRight > 0 ||\n (this.left === 0 && this.right === 100);\n\n const calibratedFraction = clamp(\n this.getCalibratedFractionFromEvents(\n rect,\n clientX,\n isPointerDownRight,\n ),\n 0,\n 1,\n );\n const value = this.getValueFromFraction(\n this.fractionGuard(calibratedFraction),\n );\n\n this.processValue(value, isPointerDownRight);\n this.processFocus(isPointerDownRight);\n\n return rect;\n }),\n switchMap(rect =>\n race([touchMoves$, mouseMoves$]).pipe(\n map(event =>\n this.getCalibratedFractionFromEvents(\n rect,\n event instanceof MouseEvent\n ? event.clientX\n : event.touches[0].clientX,\n isPointerDownRight,\n ),\n ),\n takeUntil(race([mouseUps$, touchEnds$])),\n ),\n ),\n map(fraction => this.fractionGuard(fraction)),\n )\n .subscribe(fraction => {\n this.processValue(\n this.getValueFromFraction(fraction),\n isPointerDownRight,\n );\n });\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n this.pointerDown$.complete();\n }\n\n onMouseDown(event: MouseEvent): void {\n if (this.disabled) {\n return;\n }\n\n event.preventDefault();\n this.pointerDown$.next(event as TuiEventWith<MouseEvent, HTMLElement>);\n }\n\n onTouchStart(event: TouchEvent): void {\n if (this.disabled) {\n return;\n }\n\n event.preventDefault();\n this.pointerDown$.next(event as TuiEventWith<TouchEvent, HTMLElement>);\n }\n\n getSegmentLabel(segment: number): number {\n return round(this.getValueFromFraction(segment / this.segments), 2);\n }\n\n getSegmentPrefix(segment: number, texts: [string, string]): string {\n if (this.segments !== 1) {\n return '';\n }\n\n if (segment === 0) {\n return `${texts[0]} `;\n }\n\n return `${texts[1]} `;\n }\n\n onActiveZone(active: boolean): void {\n this.updateFocused(active);\n }\n\n onLeftFocusVisible(focusVisible: boolean): void {\n this.focusVisibleLeft = focusVisible;\n }\n\n onRightFocusVisible(focusVisible: boolean): void {\n this.focusVisibleRight = focusVisible;\n }\n\n getValueFromFraction(fraction: number): number {\n return this.keySteps !== null\n ? this.fractionValueKeyStepConverter(fraction, true)\n : round(\n this.fractionGuard(fraction) * this.length + this.min,\n TUI_FLOATING_PRECISION,\n );\n }\n\n fractionGuard(fraction: number): number {\n return this.discrete\n ? clamp(quantize(fraction, 1 / this.steps), 0, 1)\n : clamp(fraction, 0, 1);\n }\n\n protected getFractionFromValue(value: number): number {\n const fraction = (value - this.min) / this.length;\n\n return this.keySteps !== null\n ? this.fractionValueKeyStepConverter(value, false)\n : clamp(Number.isFinite(fraction) ? fraction : 1, 0, 1);\n }\n\n protected getCalibratedFractionFromEvents(\n rect: ClientRect,\n clientX: number,\n _: boolean,\n ): number {\n return this.getFractionFromEvents(rect, clientX);\n }\n\n protected valueGuard(value: number): number {\n return this.quantum\n ? clamp(\n round(\n Math.round(value / this.quantum) * this.quantum,\n TUI_FLOATING_PRECISION,\n ),\n this.min,\n this.max,\n )\n : clamp(value, this.min, this.max);\n }\n\n private processFocus(right: boolean): void {\n if (!this.focusable || !this.dotRight || !this.dotLeft) {\n return;\n }\n\n if (right) {\n setNativeFocused(this.dotRight.nativeElement);\n } else {\n setNativeFocused(this.dotLeft.nativeElement);\n }\n }\n\n /**\n * Function for converting the fullness of the slider to a value and vice versa\n * taking into account the steps of linear dependence.\n *\n * @param value passed value\n * @param isFraction translation is carried out from fullness to value\n */\n private fractionValueKeyStepConverter(value: number, isFraction: boolean): number {\n const steps = [[0, this.min]].concat(this.keySteps as TuiKeySteps, [\n [100, this.max],\n ]);\n\n let prevFraction = 0;\n let nextFraction = 100;\n let prevValue = this.min;\n let nextValue = this.max;\n\n for (let i = 1; i < steps.length; i++) {\n if (\n (isFraction && steps[i][0] / 100 > value) ||\n (!isFraction && steps[i][1] > value)\n ) {\n prevFraction = steps[i - 1][0] || 0;\n nextFraction = steps[i][0];\n prevValue = steps[i - 1][1];\n nextValue = steps[i][1];\n break;\n }\n }\n\n const deltaFraction = nextFraction - prevFraction;\n const deltaValue = nextValue - prevValue;\n\n return isFraction\n ? round(\n ((value * 100 - prevFraction) / deltaFraction) * deltaValue + prevValue,\n TUI_FLOATING_PRECISION,\n )\n : clamp(\n ((value - prevValue) / deltaValue) * deltaFraction + prevFraction,\n 0,\n 100,\n ) / 100;\n }\n\n private getFractionFromEvents(rect: ClientRect, clientX: number): number {\n const value = clientX - rect.left - DOT_WIDTH[this.size] / 2;\n const total = rect.width - DOT_WIDTH[this.size];\n\n return round(value / total, TUI_FLOATING_PRECISION);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-carousel.js","sources":["ng://@taiga-ui/kit/components/carousel/carousel.component.ts","ng://@taiga-ui/kit/components/carousel/carousel.directive.ts","ng://@taiga-ui/kit/components/carousel/carousel-autoscroll.directive.ts","ng://@taiga-ui/kit/components/carousel/carousel-buttons.directive.ts","ng://@taiga-ui/kit/components/carousel/carousel-scroll.directive.ts","ng://@taiga-ui/kit/components/carousel/carousel.module.ts","ng://@taiga-ui/kit/components/carousel/taiga-ui-kit-components-carousel.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n Input,\n Output,\n QueryList,\n TemplateRef,\n} from '@angular/core';\nimport {INTERSECTION_ROOT} from '@ng-web-apis/intersection-observer';\nimport {\n clamp,\n EMPTY_QUERY,\n TUI_IS_MOBILE,\n tuiDefaultProp,\n TuiItemDirective,\n tuiPure,\n TuiSwipeDirection,\n} from '@taiga-ui/cdk';\n\n// @dynamic\n@Component({\n selector: 'tui-carousel',\n templateUrl: 'carousel.template.html',\n styleUrls: ['carousel.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: INTERSECTION_ROOT,\n useExisting: ElementRef,\n },\n ],\n})\nexport class TuiCarouselComponent {\n private translate = 0;\n\n @Input()\n @HostBinding('class._draggable')\n @tuiDefaultProp()\n draggable = false;\n\n @Input()\n @tuiDefaultProp()\n itemsCount = 1;\n\n @Input()\n @tuiDefaultProp()\n index = 0;\n\n @Output()\n readonly indexChange = new EventEmitter<number>();\n\n @ContentChildren(TuiItemDirective, {read: TemplateRef})\n readonly items: QueryList<TemplateRef<any>> = EMPTY_QUERY;\n\n @HostBinding('class._transitioned')\n transitioned = true;\n\n constructor(\n @Inject(ChangeDetectorRef) private readonly changeDetectorRef: ChangeDetectorRef,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(TUI_IS_MOBILE) private readonly isMobile: boolean,\n ) {}\n\n get transform(): string {\n const x = this.transitioned ? this.computedTranslate : this.translate;\n\n return `translateX(${100 * x}%)`;\n }\n\n @HostListener('touchstart', ['false'])\n @HostListener('touchend', ['true'])\n @HostListener('mousedown', ['false'])\n @HostListener('document:mouseup.silent', ['true'])\n onTransitioned(transitioned: boolean): void {\n this.transitioned = transitioned;\n\n if (!transitioned) {\n this.translate = this.computedTranslate;\n }\n }\n\n @tuiPure\n 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 next(): void {\n this.updateIndex(this.index + 1);\n }\n\n prev(): void {\n this.updateIndex(this.index - 1);\n }\n\n isDisabled(index: number): boolean {\n return index < this.index || index > this.index + this.itemsCount;\n }\n\n onIntersection({intersectionRatio}: IntersectionObserverEntry, index: number): void {\n if (intersectionRatio && intersectionRatio !== 1 && !this.transitioned) {\n this.updateIndex(index - Math.floor(this.itemsCount / 2));\n }\n }\n\n onScroll(delta: number): void {\n if (!this.isMobile) {\n this.updateIndex(this.index + delta);\n }\n }\n\n onPan(x: number): void {\n if (!this.computedDraggable) {\n return;\n }\n\n const {clientWidth} = this.elementRef.nativeElement;\n const min = 1 - this.items.length / this.itemsCount;\n\n this.translate = clamp(x / clientWidth + this.translate, min, 0);\n }\n\n onSwipe(direction: TuiSwipeDirection): void {\n if (Math.round(this.translate) !== -this.index || !this.computedDraggable) {\n return;\n } else if (direction === 'left') {\n this.next();\n } else if (direction === 'right') {\n this.prev();\n }\n }\n\n onAutoscroll(): void {\n this.updateIndex(this.index === this.items.length - 1 ? 0 : this.index + 1);\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 = clamp(index, 0, this.items.length - 1);\n this.indexChange.emit(this.index);\n this.changeDetectorRef.markForCheck();\n }\n}\n","import {Directive, ElementRef, Inject, Input} from '@angular/core';\nimport {PAGE_VISIBILITY} from '@ng-web-apis/common';\nimport {typedFromEvent} from '@taiga-ui/cdk';\nimport {BehaviorSubject, combineLatest, EMPTY, interval, merge, Observable} from 'rxjs';\nimport {mapTo, switchMap} from 'rxjs/operators';\n\n@Directive({\n selector: 'tui-carousel',\n})\nexport class TuiCarouselDirective extends Observable<unknown> {\n private readonly duration$ = new BehaviorSubject(0);\n\n private readonly running$ = merge(\n typedFromEvent(this.elementRef.nativeElement, 'mouseenter').pipe(mapTo(false)),\n typedFromEvent(this.elementRef.nativeElement, 'touchstart').pipe(mapTo(false)),\n typedFromEvent(this.elementRef.nativeElement, 'touchend').pipe(mapTo(true)),\n typedFromEvent(this.elementRef.nativeElement, 'mouseleave').pipe(mapTo(true)),\n this.visible$,\n );\n\n private readonly output$ = combineLatest([this.duration$, this.running$]).pipe(\n switchMap(([duration, running]) =>\n duration && running ? interval(duration) : EMPTY,\n ),\n );\n\n @Input()\n set duration(duration: number) {\n this.duration$.next(duration);\n }\n\n constructor(\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(PAGE_VISIBILITY) private readonly visible$: Observable<boolean>,\n ) {\n super(subscriber => this.output$.subscribe(subscriber));\n }\n}\n","import {Directive, Inject} from '@angular/core';\nimport {Observable} from 'rxjs';\n\nimport {TuiCarouselDirective} from './carousel.directive';\n\n@Directive({\n selector: '[tuiCarouselAutoscroll]',\n outputs: ['tuiCarouselAutoscroll'],\n})\nexport class TuiCarouselAutoscrollDirective {\n constructor(\n @Inject(TuiCarouselDirective) readonly tuiCarouselAutoscroll: Observable<unknown>,\n ) {}\n}\n","import {Directive} from '@angular/core';\nimport {TUI_BUTTON_OPTIONS, TuiAppearance, TuiButtonOptions} from '@taiga-ui/core';\n\n// TODO: 3.0 remove in ivy compilation\nexport const CAROUSEL_BUTTON_OPTIONS: TuiButtonOptions = {\n appearance: TuiAppearance.Secondary,\n shape: 'rounded',\n size: 'm',\n};\n\n@Directive({\n selector: '[tuiCarouselButtons]',\n providers: [\n {\n provide: TUI_BUTTON_OPTIONS,\n useValue: CAROUSEL_BUTTON_OPTIONS,\n },\n ],\n})\nexport class TuiCarouselButtonsDirective {}\n","import {Directive, ElementRef, Inject, Output} from '@angular/core';\nimport {typedFromEvent} from '@taiga-ui/cdk';\nimport {filter, map, tap, throttleTime} from 'rxjs/operators';\n\n@Directive({\n selector: '[tuiCarouselScroll]',\n})\nexport class TuiCarouselScrollDirective {\n @Output()\n readonly tuiCarouselScroll = typedFromEvent(\n this.elementRef.nativeElement,\n 'wheel',\n ).pipe(\n filter(({deltaX}) => Math.abs(deltaX) > 20),\n throttleTime(500),\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.elementRef.nativeElement.scrollLeft = 10;\n }),\n );\n\n constructor(\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n ) {}\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {IntersectionObserverModule} from '@ng-web-apis/intersection-observer';\nimport {\n TuiItemDirective,\n TuiItemModule,\n TuiPanModule,\n TuiSwipeModule,\n} from '@taiga-ui/cdk';\n\nimport {TuiCarouselComponent} from './carousel.component';\nimport {TuiCarouselDirective} from './carousel.directive';\nimport {TuiCarouselAutoscrollDirective} from './carousel-autoscroll.directive';\nimport {TuiCarouselButtonsDirective} from './carousel-buttons.directive';\nimport {TuiCarouselScrollDirective} from './carousel-scroll.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n IntersectionObserverModule,\n TuiPanModule,\n TuiSwipeModule,\n TuiItemModule,\n ],\n declarations: [\n TuiCarouselComponent,\n TuiCarouselDirective,\n TuiCarouselButtonsDirective,\n TuiCarouselAutoscrollDirective,\n TuiCarouselScrollDirective,\n ],\n exports: [\n TuiCarouselComponent,\n TuiCarouselDirective,\n TuiCarouselButtonsDirective,\n TuiItemDirective,\n ],\n})\nexport class TuiCarouselModule {}\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-carousel.js","sources":["ng://@taiga-ui/kit/components/carousel/carousel.component.ts","ng://@taiga-ui/kit/components/carousel/carousel.directive.ts","ng://@taiga-ui/kit/components/carousel/carousel-autoscroll.directive.ts","ng://@taiga-ui/kit/components/carousel/carousel-buttons.directive.ts","ng://@taiga-ui/kit/components/carousel/carousel-scroll.directive.ts","ng://@taiga-ui/kit/components/carousel/carousel.module.ts","ng://@taiga-ui/kit/components/carousel/taiga-ui-kit-components-carousel.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n Input,\n Output,\n QueryList,\n TemplateRef,\n} from '@angular/core';\nimport {INTERSECTION_ROOT} from '@ng-web-apis/intersection-observer';\nimport {\n clamp,\n EMPTY_QUERY,\n TUI_IS_MOBILE,\n tuiDefaultProp,\n TuiItemDirective,\n tuiPure,\n TuiSwipeDirection,\n} from '@taiga-ui/cdk';\n\n// @dynamic\n@Component({\n selector: 'tui-carousel',\n templateUrl: 'carousel.template.html',\n styleUrls: ['carousel.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: INTERSECTION_ROOT,\n useExisting: ElementRef,\n },\n ],\n})\nexport class TuiCarouselComponent {\n private translate = 0;\n\n @Input()\n @HostBinding('class._draggable')\n @tuiDefaultProp()\n draggable = false;\n\n @Input()\n @tuiDefaultProp()\n itemsCount = 1;\n\n @Input()\n @tuiDefaultProp()\n index = 0;\n\n @Output()\n readonly indexChange = new EventEmitter<number>();\n\n @ContentChildren(TuiItemDirective, {read: TemplateRef})\n readonly items: QueryList<TemplateRef<Record<string, unknown>>> = EMPTY_QUERY;\n\n @HostBinding('class._transitioned')\n transitioned = true;\n\n constructor(\n @Inject(ChangeDetectorRef) private readonly changeDetectorRef: ChangeDetectorRef,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(TUI_IS_MOBILE) private readonly isMobile: boolean,\n ) {}\n\n get transform(): string {\n const x = this.transitioned ? this.computedTranslate : this.translate;\n\n return `translateX(${100 * x}%)`;\n }\n\n @HostListener('touchstart', ['false'])\n @HostListener('touchend', ['true'])\n @HostListener('mousedown', ['false'])\n @HostListener('document:mouseup.silent', ['true'])\n onTransitioned(transitioned: boolean): void {\n this.transitioned = transitioned;\n\n if (!transitioned) {\n this.translate = this.computedTranslate;\n }\n }\n\n @tuiPure\n 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 next(): void {\n this.updateIndex(this.index + 1);\n }\n\n prev(): void {\n this.updateIndex(this.index - 1);\n }\n\n isDisabled(index: number): boolean {\n return index < this.index || index > this.index + this.itemsCount;\n }\n\n onIntersection({intersectionRatio}: IntersectionObserverEntry, index: number): void {\n if (intersectionRatio && intersectionRatio !== 1 && !this.transitioned) {\n this.updateIndex(index - Math.floor(this.itemsCount / 2));\n }\n }\n\n onScroll(delta: number): void {\n if (!this.isMobile) {\n this.updateIndex(this.index + delta);\n }\n }\n\n onPan(x: number): void {\n if (!this.computedDraggable) {\n return;\n }\n\n const {clientWidth} = this.elementRef.nativeElement;\n const min = 1 - this.items.length / this.itemsCount;\n\n this.translate = clamp(x / clientWidth + this.translate, min, 0);\n }\n\n onSwipe(direction: TuiSwipeDirection): void {\n if (Math.round(this.translate) !== -this.index || !this.computedDraggable) {\n return;\n } else if (direction === 'left') {\n this.next();\n } else if (direction === 'right') {\n this.prev();\n }\n }\n\n onAutoscroll(): void {\n this.updateIndex(this.index === this.items.length - 1 ? 0 : this.index + 1);\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 = clamp(index, 0, this.items.length - 1);\n this.indexChange.emit(this.index);\n this.changeDetectorRef.markForCheck();\n }\n}\n","import {Directive, ElementRef, Inject, Input} from '@angular/core';\nimport {PAGE_VISIBILITY} from '@ng-web-apis/common';\nimport {typedFromEvent} from '@taiga-ui/cdk';\nimport {BehaviorSubject, combineLatest, EMPTY, interval, merge, Observable} from 'rxjs';\nimport {mapTo, switchMap} from 'rxjs/operators';\n\n@Directive({\n selector: 'tui-carousel',\n})\nexport class TuiCarouselDirective extends Observable<unknown> {\n private readonly duration$ = new BehaviorSubject(0);\n\n private readonly running$ = merge(\n typedFromEvent(this.elementRef.nativeElement, 'mouseenter').pipe(mapTo(false)),\n typedFromEvent(this.elementRef.nativeElement, 'touchstart').pipe(mapTo(false)),\n typedFromEvent(this.elementRef.nativeElement, 'touchend').pipe(mapTo(true)),\n typedFromEvent(this.elementRef.nativeElement, 'mouseleave').pipe(mapTo(true)),\n this.visible$,\n );\n\n private readonly output$ = combineLatest([this.duration$, this.running$]).pipe(\n switchMap(([duration, running]) =>\n duration && running ? interval(duration) : EMPTY,\n ),\n );\n\n @Input()\n set duration(duration: number) {\n this.duration$.next(duration);\n }\n\n constructor(\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(PAGE_VISIBILITY) private readonly visible$: Observable<boolean>,\n ) {\n super(subscriber => this.output$.subscribe(subscriber));\n }\n}\n","import {Directive, Inject} from '@angular/core';\nimport {Observable} from 'rxjs';\n\nimport {TuiCarouselDirective} from './carousel.directive';\n\n@Directive({\n selector: '[tuiCarouselAutoscroll]',\n outputs: ['tuiCarouselAutoscroll'],\n})\nexport class TuiCarouselAutoscrollDirective {\n constructor(\n @Inject(TuiCarouselDirective) readonly tuiCarouselAutoscroll: Observable<unknown>,\n ) {}\n}\n","import {Directive} from '@angular/core';\nimport {TUI_BUTTON_OPTIONS, TuiAppearance, TuiButtonOptions} from '@taiga-ui/core';\n\n// TODO: 3.0 remove in ivy compilation\nexport const CAROUSEL_BUTTON_OPTIONS: TuiButtonOptions = {\n appearance: TuiAppearance.Secondary,\n shape: 'rounded',\n size: 'm',\n};\n\n@Directive({\n selector: '[tuiCarouselButtons]',\n providers: [\n {\n provide: TUI_BUTTON_OPTIONS,\n useValue: CAROUSEL_BUTTON_OPTIONS,\n },\n ],\n})\nexport class TuiCarouselButtonsDirective {}\n","import {Directive, ElementRef, Inject, Output} from '@angular/core';\nimport {typedFromEvent} from '@taiga-ui/cdk';\nimport {filter, map, tap, throttleTime} from 'rxjs/operators';\n\n@Directive({\n selector: '[tuiCarouselScroll]',\n})\nexport class TuiCarouselScrollDirective {\n @Output()\n readonly tuiCarouselScroll = typedFromEvent(\n this.elementRef.nativeElement,\n 'wheel',\n ).pipe(\n filter(({deltaX}) => Math.abs(deltaX) > 20),\n throttleTime(500),\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.elementRef.nativeElement.scrollLeft = 10;\n }),\n );\n\n constructor(\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n ) {}\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {IntersectionObserverModule} from '@ng-web-apis/intersection-observer';\nimport {\n TuiItemDirective,\n TuiItemModule,\n TuiPanModule,\n TuiSwipeModule,\n} from '@taiga-ui/cdk';\n\nimport {TuiCarouselComponent} from './carousel.component';\nimport {TuiCarouselDirective} from './carousel.directive';\nimport {TuiCarouselAutoscrollDirective} from './carousel-autoscroll.directive';\nimport {TuiCarouselButtonsDirective} from './carousel-buttons.directive';\nimport {TuiCarouselScrollDirective} from './carousel-scroll.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n IntersectionObserverModule,\n TuiPanModule,\n TuiSwipeModule,\n TuiItemModule,\n ],\n declarations: [\n TuiCarouselComponent,\n TuiCarouselDirective,\n TuiCarouselButtonsDirective,\n TuiCarouselAutoscrollDirective,\n TuiCarouselScrollDirective,\n ],\n exports: [\n TuiCarouselComponent,\n TuiCarouselDirective,\n TuiCarouselButtonsDirective,\n TuiItemDirective,\n ],\n})\nexport class TuiCarouselModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-combo-box.js","sources":["ng://@taiga-ui/kit/components/combo-box/combo-box.providers.ts","ng://@taiga-ui/kit/components/combo-box/combo-box.component.ts","ng://@taiga-ui/kit/components/combo-box/combo-box.directive.ts","ng://@taiga-ui/kit/components/combo-box/combo-box-strict.directive.ts","ng://@taiga-ui/kit/components/combo-box/combo-box.module.ts","ng://@taiga-ui/kit/components/combo-box/taiga-ui-kit-components-combo-box.ts"],"sourcesContent":["import {forwardRef} from '@angular/core';\nimport {AbstractTuiControl, TUI_FOCUSABLE_ITEM_ACCESSOR} from '@taiga-ui/cdk';\nimport {TUI_DATA_LIST_HOST, TUI_OPTION_CONTENT} from '@taiga-ui/core';\nimport {TUI_SELECT_OPTION} from '@taiga-ui/kit/components/select-option';\nimport {FIXED_DROPDOWN_CONTROLLER_PROVIDER} from '@taiga-ui/kit/providers';\n\nimport {TuiComboBoxComponent} from './combo-box.component';\n\n// TODO: 3.0 remove in ivy compilation\nexport const COMBOBOX_OPTION: any = TUI_SELECT_OPTION;\n\nexport const TUI_COMBO_BOX_PROVIDERS = [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiComboBoxComponent),\n },\n {\n provide: TUI_DATA_LIST_HOST,\n useExisting: forwardRef(() => TuiComboBoxComponent),\n },\n {\n provide: AbstractTuiControl,\n useExisting: forwardRef(() => TuiComboBoxComponent),\n },\n {\n provide: TUI_OPTION_CONTENT,\n useValue: COMBOBOX_OPTION,\n },\n FIXED_DROPDOWN_CONTROLLER_PROVIDER,\n];\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n EventEmitter,\n Inject,\n Input,\n Optional,\n Output,\n Self,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiNullableControl,\n isNativeFocused,\n isPresent,\n setNativeFocused,\n TUI_STRICT_MATCHER,\n TuiActiveZoneDirective,\n TuiContextWithImplicit,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n TuiStringMatcher,\n} from '@taiga-ui/cdk';\nimport {\n TUI_DATA_LIST_ACCESSOR,\n TuiDataListAccessor,\n TuiDataListDirective,\n TuiDataListHost,\n TuiHostedDropdownComponent,\n TuiPrimitiveTextfieldComponent,\n TuiSizeL,\n TuiSizeM,\n TuiSizeS,\n TuiValueContentContext,\n} from '@taiga-ui/core';\nimport {TUI_ARROW_MODE, TuiArrowMode} from '@taiga-ui/kit/components/arrow';\nimport {TUI_ITEMS_HANDLERS, TuiItemsHandlers} from '@taiga-ui/kit/tokens';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nimport {TUI_COMBO_BOX_PROVIDERS} from './combo-box.providers';\n\n@Component({\n selector: 'tui-combo-box',\n templateUrl: './combo-box.template.html',\n styleUrls: ['./combo-box.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: TUI_COMBO_BOX_PROVIDERS,\n})\nexport class TuiComboBoxComponent<T>\n extends AbstractTuiNullableControl<T>\n implements TuiFocusableElementAccessor, TuiDataListHost<T>\n{\n @ContentChild(TUI_DATA_LIST_ACCESSOR as any)\n private readonly accessor?: TuiDataListAccessor<T>;\n\n @ViewChild(TuiHostedDropdownComponent)\n private readonly hostedDropdown?: TuiHostedDropdownComponent;\n\n @ViewChild(TuiPrimitiveTextfieldComponent)\n private readonly textfield?: TuiPrimitiveTextfieldComponent;\n\n @Input()\n @tuiDefaultProp()\n stringify: TuiItemsHandlers<T>['stringify'] = this.itemsHandlers.stringify;\n\n @Input()\n @tuiDefaultProp()\n strictMatcher: TuiStringMatcher<T> = TUI_STRICT_MATCHER;\n\n @Input()\n @tuiDefaultProp()\n identityMatcher: TuiItemsHandlers<T>['identityMatcher'] =\n this.itemsHandlers.identityMatcher;\n\n @Input()\n @tuiDefaultProp()\n valueContent: PolymorpheusContent<TuiValueContentContext<T>> = '';\n\n @Input()\n @tuiDefaultProp()\n strict = true;\n\n @Input()\n @tuiDefaultProp()\n search: string | null = null;\n\n @Output()\n readonly searchChange = new EventEmitter<string | null>();\n\n @ContentChild(TuiDataListDirective, {read: TemplateRef})\n readonly datalist: PolymorpheusContent<\n TuiContextWithImplicit<TuiActiveZoneDirective>\n > = '';\n\n open = false;\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(TUI_ARROW_MODE)\n private readonly arrowMode: TuiArrowMode,\n @Inject(TUI_ITEMS_HANDLERS)\n private readonly itemsHandlers: TuiItemsHandlers<T>,\n ) {\n super(control, changeDetectorRef);\n }\n\n get arrow(): PolymorpheusContent<\n TuiContextWithImplicit<TuiSizeS | TuiSizeM | TuiSizeL>\n > {\n return !this.interactive ? this.arrowMode.disabled : this.arrowMode.interactive;\n }\n\n get nativeFocusableElement(): HTMLInputElement | null {\n return this.textfield ? this.textfield.nativeFocusableElement : null;\n }\n\n get focused(): boolean {\n return (\n isNativeFocused(this.nativeFocusableElement) ||\n (!!this.hostedDropdown && this.hostedDropdown.focused)\n );\n }\n\n get nativeValue(): string {\n return this.value === null ? this.search || '' : this.stringify(this.value);\n }\n\n get showValueTemplate(): boolean {\n return isPresent(this.value) && !this.focused;\n }\n\n get computedContent(): PolymorpheusContent<TuiValueContentContext<T>> {\n return this.valueContent || this.nativeValue;\n }\n\n onActiveZone(active: boolean): void {\n this.updateFocused(active);\n }\n\n checkOption(option: T): void {\n if (!this.isStrictMatch(option)) {\n return;\n }\n\n this.updateValue(option);\n this.updateSearch(null);\n }\n\n handleOption(item: T): void {\n this.setNativeValue(this.stringify(item));\n this.focusInput();\n this.close();\n this.updateSearch(null);\n this.updateValue(item);\n }\n\n onFieldKeyDownEnter(event: Event): void {\n if (this.open) {\n event.preventDefault();\n }\n\n const options = this.accessor?.getOptions() || [];\n\n if (options.length !== 1) {\n return;\n }\n\n this.updateValue(options[0]);\n this.updateSearch(null);\n this.close();\n }\n\n onValueChange(value: string): void {\n this.updateSearch(value);\n\n const match = this.accessor?.getOptions().find(item => this.isStrictMatch(item));\n\n if (match !== undefined) {\n this.updateValue(match);\n this.updateSearch(null);\n\n return;\n }\n\n if (this.strict || this.search === '') {\n this.updateValue(null);\n }\n\n this.hostedDropdown?.updateOpen(true);\n }\n\n updateValue(value: T | null): void {\n super.updateValue(value);\n }\n\n onHovered(hovered: boolean): void {\n this.updateHovered(hovered);\n }\n\n toggle(): void {\n this.hostedDropdown?.updateOpen(!this.open);\n }\n\n private isStrictMatch(item: T): boolean {\n return this.strictMatcher(item, this.search || '', this.stringify);\n }\n\n private close(): void {\n this.hostedDropdown?.updateOpen(false);\n }\n\n private updateSearch(search: string | null): void {\n if (this.search === search) {\n return;\n }\n\n this.search = search;\n this.searchChange.emit(search);\n }\n\n private setNativeValue(value: string): void {\n if (this.nativeFocusableElement) {\n this.nativeFocusableElement.value = value;\n }\n }\n\n private focusInput(preventScroll: boolean = false): void {\n if (this.nativeFocusableElement) {\n setNativeFocused(this.nativeFocusableElement, true, preventScroll);\n }\n }\n}\n","import {Directive, forwardRef} from '@angular/core';\nimport {TUI_TEXTFIELD_HOST, TuiAbstractTextfieldHost} from '@taiga-ui/core';\n\nimport {TuiComboBoxComponent} from './combo-box.component';\n\n@Directive({\n selector: 'tui-combo-box',\n providers: [\n {\n provide: TUI_TEXTFIELD_HOST,\n useExisting: forwardRef(() => TuiComboBoxDirective),\n },\n ],\n})\nexport class TuiComboBoxDirective extends TuiAbstractTextfieldHost<\n TuiComboBoxComponent<any>\n> {\n get value(): string {\n return this.host.nativeValue;\n }\n\n onValueChange(value: string): void {\n this.host.onValueChange(value);\n }\n}\n","import {Directive, HostListener, Inject, Input} from '@angular/core';\nimport {tuiDefaultProp} from '@taiga-ui/cdk';\n\nimport {TuiComboBoxComponent} from './combo-box.component';\n\n@Directive({\n selector: 'tui-combo-box[strict]',\n})\nexport class TuiComboBoxStrictDirective<T> {\n @Input()\n @tuiDefaultProp()\n strict = true;\n\n constructor(\n @Inject(TuiComboBoxComponent)\n private readonly comboBox: TuiComboBoxComponent<T | string>,\n ) {}\n\n @HostListener('input')\n onInput(): void {\n if (!this.strict && this.comboBox.search) {\n this.comboBox.updateValue(this.comboBox.search);\n }\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiActiveZoneModule} from '@taiga-ui/cdk';\nimport {\n TuiHostedDropdownModule,\n TuiPrimitiveTextfieldModule,\n TuiTextfieldComponent,\n} from '@taiga-ui/core';\nimport {TuiArrowModule} from '@taiga-ui/kit/components/arrow';\nimport {TuiSelectOptionModule} from '@taiga-ui/kit/components/select-option';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiComboBoxComponent} from './combo-box.component';\nimport {TuiComboBoxDirective} from './combo-box.directive';\nimport {TuiComboBoxStrictDirective} from './combo-box-strict.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n PolymorpheusModule,\n TuiActiveZoneModule,\n TuiPrimitiveTextfieldModule,\n TuiHostedDropdownModule,\n TuiSelectOptionModule,\n TuiArrowModule,\n ],\n declarations: [\n TuiComboBoxComponent,\n TuiComboBoxStrictDirective,\n TuiComboBoxDirective,\n ],\n exports: [\n TuiComboBoxComponent,\n TuiComboBoxStrictDirective,\n TuiComboBoxDirective,\n TuiTextfieldComponent,\n ],\n})\nexport class TuiComboBoxModule {}\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-combo-box.js","sources":["ng://@taiga-ui/kit/components/combo-box/combo-box.providers.ts","ng://@taiga-ui/kit/components/combo-box/combo-box.component.ts","ng://@taiga-ui/kit/components/combo-box/combo-box.directive.ts","ng://@taiga-ui/kit/components/combo-box/combo-box-strict.directive.ts","ng://@taiga-ui/kit/components/combo-box/combo-box.module.ts","ng://@taiga-ui/kit/components/combo-box/taiga-ui-kit-components-combo-box.ts"],"sourcesContent":["import {forwardRef} from '@angular/core';\nimport {AbstractTuiControl, TUI_FOCUSABLE_ITEM_ACCESSOR} from '@taiga-ui/cdk';\nimport {TUI_DATA_LIST_HOST, TUI_OPTION_CONTENT} from '@taiga-ui/core';\nimport {TUI_SELECT_OPTION} from '@taiga-ui/kit/components/select-option';\nimport {FIXED_DROPDOWN_CONTROLLER_PROVIDER} from '@taiga-ui/kit/providers';\n\nimport {TuiComboBoxComponent} from './combo-box.component';\n\n// TODO: 3.0 remove in ivy compilation\nexport const COMBOBOX_OPTION: unknown = TUI_SELECT_OPTION;\n\nexport const TUI_COMBO_BOX_PROVIDERS = [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiComboBoxComponent),\n },\n {\n provide: TUI_DATA_LIST_HOST,\n useExisting: forwardRef(() => TuiComboBoxComponent),\n },\n {\n provide: AbstractTuiControl,\n useExisting: forwardRef(() => TuiComboBoxComponent),\n },\n {\n provide: TUI_OPTION_CONTENT,\n useValue: COMBOBOX_OPTION,\n },\n FIXED_DROPDOWN_CONTROLLER_PROVIDER,\n];\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n EventEmitter,\n Inject,\n Input,\n Optional,\n Output,\n Self,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiNullableControl,\n isNativeFocused,\n isPresent,\n setNativeFocused,\n TUI_STRICT_MATCHER,\n TuiActiveZoneDirective,\n TuiContextWithImplicit,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n TuiStringMatcher,\n} from '@taiga-ui/cdk';\nimport {\n TUI_DATA_LIST_ACCESSOR,\n TuiDataListAccessor,\n TuiDataListDirective,\n TuiDataListHost,\n TuiHostedDropdownComponent,\n TuiPrimitiveTextfieldComponent,\n TuiSizeL,\n TuiSizeM,\n TuiSizeS,\n TuiValueContentContext,\n} from '@taiga-ui/core';\nimport {TUI_ARROW_MODE, TuiArrowMode} from '@taiga-ui/kit/components/arrow';\nimport {TUI_ITEMS_HANDLERS, TuiItemsHandlers} from '@taiga-ui/kit/tokens';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nimport {TUI_COMBO_BOX_PROVIDERS} from './combo-box.providers';\n\n@Component({\n selector: 'tui-combo-box',\n templateUrl: './combo-box.template.html',\n styleUrls: ['./combo-box.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: TUI_COMBO_BOX_PROVIDERS,\n})\nexport class TuiComboBoxComponent<T>\n extends AbstractTuiNullableControl<T>\n implements TuiFocusableElementAccessor, TuiDataListHost<T>\n{\n @ContentChild(TUI_DATA_LIST_ACCESSOR as any)\n private readonly accessor?: TuiDataListAccessor<T>;\n\n @ViewChild(TuiHostedDropdownComponent)\n private readonly hostedDropdown?: TuiHostedDropdownComponent;\n\n @ViewChild(TuiPrimitiveTextfieldComponent)\n private readonly textfield?: TuiPrimitiveTextfieldComponent;\n\n @Input()\n @tuiDefaultProp()\n stringify: TuiItemsHandlers<T>['stringify'] = this.itemsHandlers.stringify;\n\n @Input()\n @tuiDefaultProp()\n strictMatcher: TuiStringMatcher<T> = TUI_STRICT_MATCHER;\n\n @Input()\n @tuiDefaultProp()\n identityMatcher: TuiItemsHandlers<T>['identityMatcher'] =\n this.itemsHandlers.identityMatcher;\n\n @Input()\n @tuiDefaultProp()\n valueContent: PolymorpheusContent<TuiValueContentContext<T>> = '';\n\n @Input()\n @tuiDefaultProp()\n strict = true;\n\n @Input()\n @tuiDefaultProp()\n search: string | null = null;\n\n @Output()\n readonly searchChange = new EventEmitter<string | null>();\n\n @ContentChild(TuiDataListDirective, {read: TemplateRef})\n readonly datalist: PolymorpheusContent<\n TuiContextWithImplicit<TuiActiveZoneDirective>\n > = '';\n\n open = false;\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(TUI_ARROW_MODE)\n private readonly arrowMode: TuiArrowMode,\n @Inject(TUI_ITEMS_HANDLERS)\n private readonly itemsHandlers: TuiItemsHandlers<T>,\n ) {\n super(control, changeDetectorRef);\n }\n\n get arrow(): PolymorpheusContent<\n TuiContextWithImplicit<TuiSizeS | TuiSizeM | TuiSizeL>\n > {\n return !this.interactive ? this.arrowMode.disabled : this.arrowMode.interactive;\n }\n\n get nativeFocusableElement(): HTMLInputElement | null {\n return this.textfield ? this.textfield.nativeFocusableElement : null;\n }\n\n get focused(): boolean {\n return (\n isNativeFocused(this.nativeFocusableElement) ||\n (!!this.hostedDropdown && this.hostedDropdown.focused)\n );\n }\n\n get nativeValue(): string {\n return this.value === null ? this.search || '' : this.stringify(this.value);\n }\n\n get showValueTemplate(): boolean {\n return isPresent(this.value) && !this.focused;\n }\n\n get computedContent(): PolymorpheusContent<TuiValueContentContext<T>> {\n return this.valueContent || this.nativeValue;\n }\n\n onActiveZone(active: boolean): void {\n this.updateFocused(active);\n }\n\n checkOption(option: T): void {\n if (!this.isStrictMatch(option)) {\n return;\n }\n\n this.updateValue(option);\n this.updateSearch(null);\n }\n\n handleOption(item: T): void {\n this.setNativeValue(this.stringify(item));\n this.focusInput();\n this.close();\n this.updateSearch(null);\n this.updateValue(item);\n }\n\n onFieldKeyDownEnter(event: Event): void {\n if (this.open) {\n event.preventDefault();\n }\n\n const options = this.accessor?.getOptions() || [];\n\n if (options.length !== 1) {\n return;\n }\n\n this.updateValue(options[0]);\n this.updateSearch(null);\n this.close();\n }\n\n onValueChange(value: string): void {\n this.updateSearch(value);\n\n const match = this.accessor?.getOptions().find(item => this.isStrictMatch(item));\n\n if (match !== undefined) {\n this.updateValue(match);\n this.updateSearch(null);\n\n return;\n }\n\n if (this.strict || this.search === '') {\n this.updateValue(null);\n }\n\n this.hostedDropdown?.updateOpen(true);\n }\n\n updateValue(value: T | null): void {\n super.updateValue(value);\n }\n\n onHovered(hovered: boolean): void {\n this.updateHovered(hovered);\n }\n\n toggle(): void {\n this.hostedDropdown?.updateOpen(!this.open);\n }\n\n private isStrictMatch(item: T): boolean {\n return this.strictMatcher(item, this.search || '', this.stringify);\n }\n\n private close(): void {\n this.hostedDropdown?.updateOpen(false);\n }\n\n private updateSearch(search: string | null): void {\n if (this.search === search) {\n return;\n }\n\n this.search = search;\n this.searchChange.emit(search);\n }\n\n private setNativeValue(value: string): void {\n if (this.nativeFocusableElement) {\n this.nativeFocusableElement.value = value;\n }\n }\n\n private focusInput(preventScroll: boolean = false): void {\n if (this.nativeFocusableElement) {\n setNativeFocused(this.nativeFocusableElement, true, preventScroll);\n }\n }\n}\n","import {Directive, forwardRef} from '@angular/core';\nimport {TUI_TEXTFIELD_HOST, TuiAbstractTextfieldHost} from '@taiga-ui/core';\n\nimport {TuiComboBoxComponent} from './combo-box.component';\n\n@Directive({\n selector: 'tui-combo-box',\n providers: [\n {\n provide: TUI_TEXTFIELD_HOST,\n useExisting: forwardRef(() => TuiComboBoxDirective),\n },\n ],\n})\nexport class TuiComboBoxDirective extends TuiAbstractTextfieldHost<\n TuiComboBoxComponent<unknown>\n> {\n get value(): string {\n return this.host.nativeValue;\n }\n\n onValueChange(value: string): void {\n this.host.onValueChange(value);\n }\n}\n","import {Directive, HostListener, Inject, Input} from '@angular/core';\nimport {tuiDefaultProp} from '@taiga-ui/cdk';\n\nimport {TuiComboBoxComponent} from './combo-box.component';\n\n@Directive({\n selector: 'tui-combo-box[strict]',\n})\nexport class TuiComboBoxStrictDirective<T> {\n @Input()\n @tuiDefaultProp()\n strict = true;\n\n constructor(\n @Inject(TuiComboBoxComponent)\n private readonly comboBox: TuiComboBoxComponent<T | string>,\n ) {}\n\n @HostListener('input')\n onInput(): void {\n if (!this.strict && this.comboBox.search) {\n this.comboBox.updateValue(this.comboBox.search);\n }\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiActiveZoneModule} from '@taiga-ui/cdk';\nimport {\n TuiHostedDropdownModule,\n TuiPrimitiveTextfieldModule,\n TuiTextfieldComponent,\n} from '@taiga-ui/core';\nimport {TuiArrowModule} from '@taiga-ui/kit/components/arrow';\nimport {TuiSelectOptionModule} from '@taiga-ui/kit/components/select-option';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiComboBoxComponent} from './combo-box.component';\nimport {TuiComboBoxDirective} from './combo-box.directive';\nimport {TuiComboBoxStrictDirective} from './combo-box-strict.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n PolymorpheusModule,\n TuiActiveZoneModule,\n TuiPrimitiveTextfieldModule,\n TuiHostedDropdownModule,\n TuiSelectOptionModule,\n TuiArrowModule,\n ],\n declarations: [\n TuiComboBoxComponent,\n TuiComboBoxStrictDirective,\n TuiComboBoxDirective,\n ],\n exports: [\n TuiComboBoxComponent,\n TuiComboBoxStrictDirective,\n TuiComboBoxDirective,\n TuiTextfieldComponent,\n ],\n})\nexport class TuiComboBoxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-field-error.js","sources":["ng://@taiga-ui/kit/components/field-error/field-error.component.ts","ng://@taiga-ui/kit/components/field-error/field-error.module.ts","ng://@taiga-ui/kit/components/field-error/taiga-ui-kit-components-field-error.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Inject,\n Input,\n Optional,\n Self,\n} from '@angular/core';\nimport {\n AbstractControl,\n FormArrayName,\n FormGroupDirective,\n FormGroupName,\n NgControl,\n} from '@angular/forms';\nimport {tuiDefaultProp, tuiPure, TuiValidationError} from '@taiga-ui/cdk';\nimport {TUI_VALIDATION_ERRORS} from '@taiga-ui/kit/tokens';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {EMPTY, isObservable, merge, Observable, of} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nconst EMPTY_RECORD = {};\n// @dynamic\n@Component({\n selector: 'tui-field-error',\n // @bad TODO: find a way to get 'touched' state change\n // https://github.com/angular/angular/issues/10887\n changeDetection: ChangeDetectionStrategy.Default,\n templateUrl: './field-error.template.html',\n styleUrls: ['./field-error.style.less'],\n})\nexport class TuiFieldErrorComponent {\n @Input()\n @tuiDefaultProp()\n order: readonly string[] = [];\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n private readonly ngControl: NgControl | null,\n @Optional()\n @Self()\n @Inject(FormArrayName)\n private readonly formArrayName: FormArrayName | null,\n @Optional()\n @Self()\n @Inject(FormGroupName)\n private readonly formGroupName: FormGroupName | null,\n @Optional()\n @Self()\n @Inject(FormGroupDirective)\n private readonly formGroup: FormGroupDirective | null,\n @Inject(TUI_VALIDATION_ERRORS)\n private readonly validationErrors: Record<\n string,\n PolymorpheusContent | Observable<PolymorpheusContent>\n >,\n ) {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n @tuiPure\n get change$(): Observable<unknown> {\n return merge(\n this.control?.valueChanges || EMPTY,\n this.control?.statusChanges || EMPTY,\n );\n }\n\n get computedError(): Observable<TuiValidationError | null> {\n return (this.invalid && this.touched && this.error) || of(null);\n }\n\n registerOnChange(): void {}\n\n registerOnTouched(): void {}\n\n setDisabledState(): void {}\n\n writeValue(): void {}\n\n private get error(): Observable<TuiValidationError | null> {\n const {errorId} = this;\n\n if (!errorId) {\n return of(null);\n }\n\n const firstError = this.controlErrors[errorId];\n const errorContent = this.validationErrors[errorId];\n\n return this.getError(firstError, errorContent);\n }\n\n private get invalid(): boolean {\n return !!this.control && this.control.invalid;\n }\n\n private get touched(): boolean {\n return !!this.control && this.control.touched;\n }\n\n private get control(): AbstractControl | null {\n if (this.ngControl) {\n return this.ngControl.control;\n }\n\n if (this.formArrayName) {\n return this.formArrayName.control;\n }\n\n if (this.formGroupName) {\n return this.formGroupName.control;\n }\n\n if (this.formGroup) {\n return this.formGroup.control;\n }\n\n return null;\n }\n\n private get errorId(): string {\n return this.getErrorId(this.order, this.controlErrors);\n }\n\n private get controlErrors(): Record<string, any> {\n return this.control?.errors || EMPTY_RECORD;\n }\n\n @tuiPure\n private getErrorId(\n order: readonly string[],\n controlErrors: Record<string, any>,\n ): string {\n const id = order?.find(errorId => controlErrors[errorId]);\n const fallback = Object.keys(controlErrors)[0];\n\n return id || fallback || '';\n }\n\n @tuiPure\n private getError(\n firstError: any,\n errorContent?: PolymorpheusContent | Observable<PolymorpheusContent>,\n ): Observable<TuiValidationError> {\n if (firstError instanceof TuiValidationError) {\n return of(firstError);\n }\n\n if (errorContent === undefined && typeof firstError === 'string') {\n return of(new TuiValidationError(firstError));\n }\n\n if (isObservable(errorContent)) {\n return errorContent.pipe(\n map(error => new TuiValidationError(error || '', firstError)),\n );\n }\n\n return of(new TuiValidationError(errorContent || '', firstError));\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {ReactiveFormsModule} from '@angular/forms';\nimport {TuiErrorModule} from '@taiga-ui/core';\n\nimport {TuiFieldErrorComponent} from './field-error.component';\n\n/**\n * @deprecated use {@link TuiFieldErrorPipeModule} (from '@taiga-ui/kit') instead\n */\n@NgModule({\n imports: [CommonModule, TuiErrorModule, ReactiveFormsModule],\n declarations: [TuiFieldErrorComponent],\n exports: [TuiFieldErrorComponent],\n})\nexport class TuiFieldErrorModule {}\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-field-error.js","sources":["ng://@taiga-ui/kit/components/field-error/field-error.component.ts","ng://@taiga-ui/kit/components/field-error/field-error.module.ts","ng://@taiga-ui/kit/components/field-error/taiga-ui-kit-components-field-error.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Inject,\n Input,\n Optional,\n Self,\n} from '@angular/core';\nimport {\n AbstractControl,\n FormArrayName,\n FormGroupDirective,\n FormGroupName,\n NgControl,\n} from '@angular/forms';\nimport {tuiDefaultProp, tuiPure, TuiValidationError} from '@taiga-ui/cdk';\nimport {TUI_VALIDATION_ERRORS} from '@taiga-ui/kit/tokens';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {EMPTY, isObservable, merge, Observable, of} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nconst EMPTY_RECORD = {};\n// @dynamic\n@Component({\n selector: 'tui-field-error',\n // @bad TODO: find a way to get 'touched' state change\n // https://github.com/angular/angular/issues/10887\n changeDetection: ChangeDetectionStrategy.Default,\n templateUrl: './field-error.template.html',\n styleUrls: ['./field-error.style.less'],\n})\nexport class TuiFieldErrorComponent {\n @Input()\n @tuiDefaultProp()\n order: readonly string[] = [];\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n private readonly ngControl: NgControl | null,\n @Optional()\n @Self()\n @Inject(FormArrayName)\n private readonly formArrayName: FormArrayName | null,\n @Optional()\n @Self()\n @Inject(FormGroupName)\n private readonly formGroupName: FormGroupName | null,\n @Optional()\n @Self()\n @Inject(FormGroupDirective)\n private readonly formGroup: FormGroupDirective | null,\n @Inject(TUI_VALIDATION_ERRORS)\n private readonly validationErrors: Record<\n string,\n PolymorpheusContent | Observable<PolymorpheusContent>\n >,\n ) {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n @tuiPure\n get change$(): Observable<unknown> {\n return merge(\n this.control?.valueChanges || EMPTY,\n this.control?.statusChanges || EMPTY,\n );\n }\n\n get computedError(): Observable<TuiValidationError | null> {\n return (this.invalid && this.touched && this.error) || of(null);\n }\n\n registerOnChange(): void {}\n\n registerOnTouched(): void {}\n\n setDisabledState(): void {}\n\n writeValue(): void {}\n\n private get error(): Observable<TuiValidationError | null> {\n const {errorId} = this;\n\n if (!errorId) {\n return of(null);\n }\n\n const firstError = this.controlErrors[errorId];\n const errorContent = this.validationErrors[errorId];\n\n return this.getError(firstError, errorContent);\n }\n\n private get invalid(): boolean {\n return !!this.control && this.control.invalid;\n }\n\n private get touched(): boolean {\n return !!this.control && this.control.touched;\n }\n\n private get control(): AbstractControl | null {\n if (this.ngControl) {\n return this.ngControl.control;\n }\n\n if (this.formArrayName) {\n return this.formArrayName.control;\n }\n\n if (this.formGroupName) {\n return this.formGroupName.control;\n }\n\n if (this.formGroup) {\n return this.formGroup.control;\n }\n\n return null;\n }\n\n private get errorId(): string {\n return this.getErrorId(this.order, this.controlErrors);\n }\n\n private get controlErrors(): Record<string, unknown> {\n return this.control?.errors || EMPTY_RECORD;\n }\n\n @tuiPure\n private getErrorId(\n order: readonly string[],\n controlErrors: Record<string, unknown>,\n ): string {\n const id = order?.find(errorId => controlErrors[errorId]);\n const fallback = Object.keys(controlErrors)[0];\n\n return id || fallback || '';\n }\n\n @tuiPure\n private getError(\n firstError: any,\n errorContent?: PolymorpheusContent | Observable<PolymorpheusContent>,\n ): Observable<TuiValidationError> {\n if (firstError instanceof TuiValidationError) {\n return of(firstError);\n }\n\n if (errorContent === undefined && typeof firstError === 'string') {\n return of(new TuiValidationError(firstError));\n }\n\n if (isObservable(errorContent)) {\n return errorContent.pipe(\n map(error => new TuiValidationError(error || '', firstError)),\n );\n }\n\n return of(new TuiValidationError(errorContent || '', firstError));\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {ReactiveFormsModule} from '@angular/forms';\nimport {TuiErrorModule} from '@taiga-ui/core';\n\nimport {TuiFieldErrorComponent} from './field-error.component';\n\n/**\n * @deprecated use {@link TuiFieldErrorPipeModule} (from '@taiga-ui/kit') instead\n */\n@NgModule({\n imports: [CommonModule, TuiErrorModule, ReactiveFormsModule],\n declarations: [TuiFieldErrorComponent],\n exports: [TuiFieldErrorComponent],\n})\nexport class TuiFieldErrorModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}