@taiga-ui/kit 4.65.0 → 4.66.0
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.
- package/components/breadcrumbs/breadcrumbs.component.d.ts +1 -1
- package/components/carousel/carousel.component.d.ts +1 -1
- package/components/tabs/tabs-with-more.component.d.ts +1 -1
- package/esm2022/components/breadcrumbs/breadcrumbs.component.mjs +3 -3
- package/esm2022/components/carousel/carousel.component.mjs +3 -3
- package/esm2022/components/elastic-container/elastic-container.directive.mjs +8 -8
- package/esm2022/components/input-date-range/input-date-range.options.mjs +1 -1
- package/esm2022/components/input-date-time/input-date-time.options.mjs +1 -1
- package/esm2022/components/input-time/input-time.options.mjs +1 -1
- package/esm2022/components/input-year/input-year.options.mjs +1 -1
- package/esm2022/components/items-with-more/items-with-more.component.mjs +7 -7
- package/esm2022/components/items-with-more/items-with-more.service.mjs +4 -4
- package/esm2022/components/multi-select/multi-select-native/multi-select-native.component.mjs +3 -3
- package/esm2022/components/pager/pager.component.mjs +5 -5
- package/esm2022/components/progress/progress-bar/progress-color-segments.directive.mjs +5 -5
- package/esm2022/components/segmented/segmented.component.mjs +11 -5
- package/esm2022/components/stepper/stepper.component.mjs +5 -5
- package/esm2022/components/tabs/tab.directive.mjs +3 -3
- package/esm2022/components/tabs/tabs-horizontal.directive.mjs +5 -5
- package/esm2022/components/tabs/tabs-with-more.component.mjs +3 -3
- package/esm2022/components/tabs/tabs.providers.mjs +7 -7
- package/esm2022/components/textarea/textarea.component.mjs +3 -3
- package/esm2022/components/tiles/tile.service.mjs +5 -5
- package/esm2022/components/tiles/tiles.component.mjs +7 -7
- package/esm2022/directives/fade/fade.directive.mjs +8 -8
- package/esm2022/directives/fluid-typography/fluid-typography.directive.mjs +8 -8
- package/esm2022/directives/highlight/highlight.directive.mjs +5 -5
- package/esm2022/directives/lazy-loading/lazy-loading.directive.mjs +1 -2
- package/esm2022/directives/sensitive/sensitive.directive.mjs +5 -5
- package/fesm2022/taiga-ui-kit-components-breadcrumbs.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-carousel.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-carousel.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-elastic-container.mjs +7 -7
- package/fesm2022/taiga-ui-kit-components-elastic-container.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-date-range.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-date-time.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-time.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-year.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-items-with-more.mjs +7 -7
- package/fesm2022/taiga-ui-kit-components-items-with-more.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-multi-select.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-multi-select.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-pager.mjs +4 -4
- package/fesm2022/taiga-ui-kit-components-pager.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-progress.mjs +4 -4
- package/fesm2022/taiga-ui-kit-components-progress.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-segmented.mjs +10 -4
- package/fesm2022/taiga-ui-kit-components-segmented.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-stepper.mjs +4 -4
- package/fesm2022/taiga-ui-kit-components-stepper.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-tabs.mjs +12 -12
- package/fesm2022/taiga-ui-kit-components-tabs.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-textarea.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-textarea.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-tiles.mjs +8 -8
- package/fesm2022/taiga-ui-kit-components-tiles.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-directives-fade.mjs +7 -7
- package/fesm2022/taiga-ui-kit-directives-fade.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-directives-fluid-typography.mjs +7 -7
- package/fesm2022/taiga-ui-kit-directives-fluid-typography.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-directives-highlight.mjs +4 -4
- package/fesm2022/taiga-ui-kit-directives-highlight.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-directives-lazy-loading.mjs +0 -1
- package/fesm2022/taiga-ui-kit-directives-lazy-loading.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-directives-sensitive.mjs +4 -4
- package/fesm2022/taiga-ui-kit-directives-sensitive.mjs.map +1 -1
- package/package.json +8 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-kit-components-multi-select.mjs","sources":["../../../projects/kit/components/multi-select/multi-select-group/multi-select-group.component.ts","../../../projects/kit/components/multi-select/multi-select-group/multi-select-group.template.html","../../../projects/kit/components/multi-select/multi-select-option/multi-select-option.component.ts","../../../projects/kit/components/multi-select/multi-select-group/multi-select-group.directive.ts","../../../projects/kit/components/multi-select/multi-select-native/multi-select-native.component.ts","../../../projects/kit/components/multi-select/multi-select-native/multi-select-native.template.html","../../../projects/kit/components/multi-select/multi-select.ts","../../../projects/kit/components/multi-select/taiga-ui-kit-components-multi-select.ts"],"sourcesContent":["import {NgIf} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n ContentChildren,\n inject,\n Input,\n type QueryList,\n signal,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {NgControl} from '@angular/forms';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiOptionWithValue} from '@taiga-ui/core/components/data-list';\nimport {TuiLink} from '@taiga-ui/core/components/link';\nimport {TuiTextfieldComponent} from '@taiga-ui/core/components/textfield';\nimport {\n TUI_ITEMS_HANDLERS,\n type TuiItemsHandlers,\n} from '@taiga-ui/core/directives/items-handlers';\nimport {TUI_MULTI_SELECT_TEXTS} from '@taiga-ui/kit/tokens';\nimport {tuiInjectValue} from '@taiga-ui/kit/utils';\n\n@Component({\n standalone: true,\n selector: 'tui-opt-group[tuiMultiSelectGroup]',\n imports: [NgIf, TuiLink],\n templateUrl: './multi-select-group.template.html',\n styleUrls: ['./multi-select-group.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class._label]': 'label',\n },\n})\nexport class TuiMultiSelectGroupComponent<T> {\n private readonly handlers = inject<TuiItemsHandlers<T>>(TUI_ITEMS_HANDLERS);\n private readonly control =\n inject(TuiTextfieldComponent, {optional: true})?.control ||\n inject(NgControl, {optional: true});\n\n protected readonly values = signal<readonly T[]>([]);\n protected readonly texts = toSignal(inject(TUI_MULTI_SELECT_TEXTS));\n protected readonly value = tuiInjectValue<readonly T[]>();\n protected readonly checked = computed(() =>\n this.values().every((item) =>\n this.value().some((value) => this.handlers.identityMatcher()(item, value)),\n ),\n );\n\n @Input()\n public label = '';\n\n @ContentChildren(TuiOptionWithValue)\n protected set options(options: QueryList<TuiOptionWithValue<T>>) {\n this.values.set(\n options\n .toArray()\n .map(({value}) => value())\n .filter(tuiIsPresent),\n );\n }\n\n protected toggle(): void {\n const values = this.values();\n const matcher = this.handlers.identityMatcher();\n const others = this.value().filter((current) =>\n values.every((item) => !matcher(current, item)),\n );\n\n this.control?.control?.setValue(this.checked() ? others : others.concat(values));\n }\n}\n","<span\n *ngIf=\"values().length\"\n class=\"t-wrapper\"\n>\n <span class=\"t-label\">{{ label }}</span>\n <button\n tuiLink\n type=\"button\"\n class=\"t-button\"\n (click)=\"toggle()\"\n >\n {{ texts()?.[checked() ? 'none' : 'all'] }}\n </button>\n</span>\n<ng-content />\n","import {NgIf} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, computed, inject} from '@angular/core';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiOptionWithValue} from '@taiga-ui/core/components/data-list';\nimport {TUI_TEXTFIELD_OPTIONS} from '@taiga-ui/core/components/textfield';\nimport {\n TUI_ITEMS_HANDLERS,\n type TuiItemsHandlers,\n} from '@taiga-ui/core/directives/items-handlers';\nimport {TuiCheckbox} from '@taiga-ui/kit/components/checkbox';\nimport {tuiInjectValue} from '@taiga-ui/kit/utils';\n\n@Component({\n standalone: true,\n imports: [NgIf, TuiCheckbox],\n template: `\n <input\n *ngIf=\"option\"\n tuiCheckbox\n type=\"checkbox\"\n [checked]=\"selected()\"\n [size]=\"size() === 'l' ? 'm' : 's'\"\n />\n `,\n styles: [\n `\n :host-context(tui-dropdown-mobile) input {\n order: 100;\n margin-inline-start: auto;\n }\n `,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiMultiSelectOption<T> {\n protected readonly option = inject<TuiOptionWithValue<T>>(TuiOptionWithValue, {\n optional: true,\n });\n\n protected readonly handlers = inject<TuiItemsHandlers<T>>(TUI_ITEMS_HANDLERS);\n protected readonly value = tuiInjectValue<readonly T[]>();\n protected readonly size = inject(TUI_TEXTFIELD_OPTIONS).size;\n protected readonly selected = computed(\n (controlValue = this.value(), optionValue = this.option?.value()) =>\n tuiIsPresent(optionValue) &&\n tuiIsPresent(controlValue) &&\n controlValue.some(\n (item) =>\n this.handlers?.identityMatcher()(item, optionValue) ??\n item === optionValue,\n ),\n );\n}\n","import {Directive} from '@angular/core';\nimport {tuiAsOptionContent} from '@taiga-ui/core/components/data-list';\n\nimport {TuiMultiSelectOption} from '../multi-select-option/multi-select-option.component';\n\n@Directive({\n standalone: true,\n selector: '[tuiMultiSelectGroup]',\n providers: [tuiAsOptionContent(TuiMultiSelectOption)],\n})\nexport class TuiMultiSelectGroupDirective {}\n","import {NgForOf, NgIf, NgTemplateOutlet} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, computed, inject, Input} from '@angular/core';\nimport {TuiControl} from '@taiga-ui/cdk/classes';\nimport {TUI_IS_ANDROID, TUI_IS_IOS} from '@taiga-ui/cdk/tokens';\nimport {tuiInjectElement, tuiIsPresent} from '@taiga-ui/cdk/utils';\nimport {tuiAsOptionContent} from '@taiga-ui/core/components/data-list';\nimport {\n TuiSelectLike,\n TuiTextfield,\n TuiTextfieldComponent,\n} from '@taiga-ui/core/components/textfield';\nimport {\n TUI_ITEMS_HANDLERS,\n type TuiItemsHandlers,\n} from '@taiga-ui/core/directives/items-handlers';\nimport {TuiDataListWrapper} from '@taiga-ui/kit/components/data-list-wrapper';\nimport {TuiInputChipDirective} from '@taiga-ui/kit/components/input-chip';\nimport {tuiIsFlat} from '@taiga-ui/kit/utils';\n\nimport {TuiMultiSelectOption} from '../multi-select-option/multi-select-option.component';\n\n@Component({\n standalone: true,\n selector: 'select[tuiMultiSelect]',\n imports: [NgForOf, NgIf, NgTemplateOutlet, TuiDataListWrapper, TuiTextfield],\n templateUrl: './multi-select-native.template.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiAsOptionContent(TuiMultiSelectOption)],\n hostDirectives: [TuiInputChipDirective, TuiSelectLike],\n host: {\n multiple: '',\n size: '1',\n '(click.stop.zoneless)': '0',\n '(input)': 'onInput()',\n },\n})\nexport class TuiMultiSelectNative<T> {\n private readonly control: TuiControl<readonly T[]> = inject(TuiControl);\n private readonly textfield = inject(TuiTextfieldComponent);\n\n protected readonly isFlat = tuiIsFlat;\n protected readonly handlers: TuiItemsHandlers<T> = inject(TUI_ITEMS_HANDLERS);\n protected readonly el = tuiInjectElement<HTMLSelectElement>();\n protected readonly mobile =\n inject(TUI_IS_IOS) || (inject(TUI_IS_ANDROID) && 'showPicker' in this.el);\n\n protected readonly isSelected = computed(\n (value = this.control.value()) =>\n (x: T) =>\n tuiIsPresent(value) &&\n value.some((item) => this.handlers.identityMatcher()(x, item)),\n );\n\n @Input()\n public items: ReadonlyArray<readonly T[]> | readonly T[] | null = [];\n\n @Input()\n public labels: readonly string[] = [];\n\n @Input()\n public set placeholder(placeholder: string) {\n this.textfield.fillerSetter = placeholder;\n }\n\n protected onInput(): void {\n const items = this.items || [];\n const options = Array.from(this.el.selectedOptions).map(({index}) => index);\n\n this.textfield.cva?.onChange(items.flat().filter((_, i) => options.includes(i)));\n }\n}\n","<ng-container *ngIf=\"items && !isFlat(items); else flatItems\">\n <optgroup\n *ngFor=\"let group of labels; let index = index\"\n [label]=\"labels[index]\"\n >\n <ng-container *ngTemplateOutlet=\"options; context: {$implicit: items[index]}\" />\n </optgroup>\n <ng-container *ngIf=\"!mobile\">\n <tui-data-list-wrapper\n *tuiTextfieldDropdown\n new\n [items]=\"items\"\n [labels]=\"labels\"\n />\n </ng-container>\n</ng-container>\n\n<ng-template #flatItems>\n <ng-container *ngTemplateOutlet=\"options; context: {$implicit: items}\" />\n <ng-container *ngIf=\"!mobile\">\n <tui-data-list-wrapper\n *tuiTextfieldDropdown\n new\n [items]=\"$any(items)\"\n />\n </ng-container>\n</ng-template>\n\n<ng-template\n #options\n let-items\n>\n <option\n *ngFor=\"let option of items\"\n [disabled]=\"handlers.disabledItemHandler()(option)\"\n [selected]=\"isSelected()(option)\"\n [value]=\"handlers.stringify()(option)\"\n >\n {{ handlers.stringify()(option) }}\n </option>\n</ng-template>\n","import {TuiMultiSelectGroupComponent} from './multi-select-group/multi-select-group.component';\nimport {TuiMultiSelectGroupDirective} from './multi-select-group/multi-select-group.directive';\nimport {TuiMultiSelectNative} from './multi-select-native/multi-select-native.component';\n\nexport const TuiMultiSelect = [\n TuiMultiSelectGroupComponent,\n TuiMultiSelectGroupDirective,\n TuiMultiSelectNative,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["tuiIsPresent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-kit-components-multi-select.mjs","sources":["../../../projects/kit/components/multi-select/multi-select-group/multi-select-group.component.ts","../../../projects/kit/components/multi-select/multi-select-group/multi-select-group.template.html","../../../projects/kit/components/multi-select/multi-select-option/multi-select-option.component.ts","../../../projects/kit/components/multi-select/multi-select-group/multi-select-group.directive.ts","../../../projects/kit/components/multi-select/multi-select-native/multi-select-native.component.ts","../../../projects/kit/components/multi-select/multi-select-native/multi-select-native.template.html","../../../projects/kit/components/multi-select/multi-select.ts","../../../projects/kit/components/multi-select/taiga-ui-kit-components-multi-select.ts"],"sourcesContent":["import {NgIf} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n ContentChildren,\n inject,\n Input,\n type QueryList,\n signal,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {NgControl} from '@angular/forms';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiOptionWithValue} from '@taiga-ui/core/components/data-list';\nimport {TuiLink} from '@taiga-ui/core/components/link';\nimport {TuiTextfieldComponent} from '@taiga-ui/core/components/textfield';\nimport {\n TUI_ITEMS_HANDLERS,\n type TuiItemsHandlers,\n} from '@taiga-ui/core/directives/items-handlers';\nimport {TUI_MULTI_SELECT_TEXTS} from '@taiga-ui/kit/tokens';\nimport {tuiInjectValue} from '@taiga-ui/kit/utils';\n\n@Component({\n standalone: true,\n selector: 'tui-opt-group[tuiMultiSelectGroup]',\n imports: [NgIf, TuiLink],\n templateUrl: './multi-select-group.template.html',\n styleUrls: ['./multi-select-group.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class._label]': 'label',\n },\n})\nexport class TuiMultiSelectGroupComponent<T> {\n private readonly handlers = inject<TuiItemsHandlers<T>>(TUI_ITEMS_HANDLERS);\n private readonly control =\n inject(TuiTextfieldComponent, {optional: true})?.control ||\n inject(NgControl, {optional: true});\n\n protected readonly values = signal<readonly T[]>([]);\n protected readonly texts = toSignal(inject(TUI_MULTI_SELECT_TEXTS));\n protected readonly value = tuiInjectValue<readonly T[]>();\n protected readonly checked = computed(() =>\n this.values().every((item) =>\n this.value().some((value) => this.handlers.identityMatcher()(item, value)),\n ),\n );\n\n @Input()\n public label = '';\n\n @ContentChildren(TuiOptionWithValue)\n protected set options(options: QueryList<TuiOptionWithValue<T>>) {\n this.values.set(\n options\n .toArray()\n .map(({value}) => value())\n .filter(tuiIsPresent),\n );\n }\n\n protected toggle(): void {\n const values = this.values();\n const matcher = this.handlers.identityMatcher();\n const others = this.value().filter((current) =>\n values.every((item) => !matcher(current, item)),\n );\n\n this.control?.control?.setValue(this.checked() ? others : others.concat(values));\n }\n}\n","<span\n *ngIf=\"values().length\"\n class=\"t-wrapper\"\n>\n <span class=\"t-label\">{{ label }}</span>\n <button\n tuiLink\n type=\"button\"\n class=\"t-button\"\n (click)=\"toggle()\"\n >\n {{ texts()?.[checked() ? 'none' : 'all'] }}\n </button>\n</span>\n<ng-content />\n","import {NgIf} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, computed, inject} from '@angular/core';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiOptionWithValue} from '@taiga-ui/core/components/data-list';\nimport {TUI_TEXTFIELD_OPTIONS} from '@taiga-ui/core/components/textfield';\nimport {\n TUI_ITEMS_HANDLERS,\n type TuiItemsHandlers,\n} from '@taiga-ui/core/directives/items-handlers';\nimport {TuiCheckbox} from '@taiga-ui/kit/components/checkbox';\nimport {tuiInjectValue} from '@taiga-ui/kit/utils';\n\n@Component({\n standalone: true,\n imports: [NgIf, TuiCheckbox],\n template: `\n <input\n *ngIf=\"option\"\n tuiCheckbox\n type=\"checkbox\"\n [checked]=\"selected()\"\n [size]=\"size() === 'l' ? 'm' : 's'\"\n />\n `,\n styles: [\n `\n :host-context(tui-dropdown-mobile) input {\n order: 100;\n margin-inline-start: auto;\n }\n `,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiMultiSelectOption<T> {\n protected readonly option = inject<TuiOptionWithValue<T>>(TuiOptionWithValue, {\n optional: true,\n });\n\n protected readonly handlers = inject<TuiItemsHandlers<T>>(TUI_ITEMS_HANDLERS);\n protected readonly value = tuiInjectValue<readonly T[]>();\n protected readonly size = inject(TUI_TEXTFIELD_OPTIONS).size;\n protected readonly selected = computed(\n (controlValue = this.value(), optionValue = this.option?.value()) =>\n tuiIsPresent(optionValue) &&\n tuiIsPresent(controlValue) &&\n controlValue.some(\n (item) =>\n this.handlers?.identityMatcher()(item, optionValue) ??\n item === optionValue,\n ),\n );\n}\n","import {Directive} from '@angular/core';\nimport {tuiAsOptionContent} from '@taiga-ui/core/components/data-list';\n\nimport {TuiMultiSelectOption} from '../multi-select-option/multi-select-option.component';\n\n@Directive({\n standalone: true,\n selector: '[tuiMultiSelectGroup]',\n providers: [tuiAsOptionContent(TuiMultiSelectOption)],\n})\nexport class TuiMultiSelectGroupDirective {}\n","import {NgForOf, NgIf, NgTemplateOutlet} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, computed, inject, Input} from '@angular/core';\nimport {TuiControl} from '@taiga-ui/cdk/classes';\nimport {TUI_IS_ANDROID, TUI_IS_IOS} from '@taiga-ui/cdk/tokens';\nimport {tuiInjectElement, tuiIsPresent} from '@taiga-ui/cdk/utils';\nimport {tuiAsOptionContent} from '@taiga-ui/core/components/data-list';\nimport {\n TuiSelectLike,\n TuiTextfield,\n TuiTextfieldComponent,\n} from '@taiga-ui/core/components/textfield';\nimport {\n TUI_ITEMS_HANDLERS,\n type TuiItemsHandlers,\n} from '@taiga-ui/core/directives/items-handlers';\nimport {TuiDataListWrapper} from '@taiga-ui/kit/components/data-list-wrapper';\nimport {TuiInputChipDirective} from '@taiga-ui/kit/components/input-chip';\nimport {tuiIsFlat} from '@taiga-ui/kit/utils';\n\nimport {TuiMultiSelectOption} from '../multi-select-option/multi-select-option.component';\n\n@Component({\n standalone: true,\n selector: 'select[tuiMultiSelect]',\n imports: [NgForOf, NgIf, NgTemplateOutlet, TuiDataListWrapper, TuiTextfield],\n templateUrl: './multi-select-native.template.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiAsOptionContent(TuiMultiSelectOption)],\n hostDirectives: [TuiInputChipDirective, TuiSelectLike],\n host: {\n multiple: '',\n '[size]': 'mobile ? 1 : 2',\n '(click.stop.zoneless)': '0',\n '(input)': 'onInput()',\n },\n})\nexport class TuiMultiSelectNative<T> {\n private readonly control: TuiControl<readonly T[]> = inject(TuiControl);\n private readonly textfield = inject(TuiTextfieldComponent);\n\n protected readonly isFlat = tuiIsFlat;\n protected readonly handlers: TuiItemsHandlers<T> = inject(TUI_ITEMS_HANDLERS);\n protected readonly el = tuiInjectElement<HTMLSelectElement>();\n protected readonly mobile =\n inject(TUI_IS_IOS) || (inject(TUI_IS_ANDROID) && 'showPicker' in this.el);\n\n protected readonly isSelected = computed(\n (value = this.control.value()) =>\n (x: T) =>\n tuiIsPresent(value) &&\n value.some((item) => this.handlers.identityMatcher()(x, item)),\n );\n\n @Input()\n public items: ReadonlyArray<readonly T[]> | readonly T[] | null = [];\n\n @Input()\n public labels: readonly string[] = [];\n\n @Input()\n public set placeholder(placeholder: string) {\n this.textfield.fillerSetter = placeholder;\n }\n\n protected onInput(): void {\n const items = this.items || [];\n const options = Array.from(this.el.selectedOptions).map(({index}) => index);\n\n this.textfield.cva?.onChange(items.flat().filter((_, i) => options.includes(i)));\n }\n}\n","<ng-container *ngIf=\"items && !isFlat(items); else flatItems\">\n <optgroup\n *ngFor=\"let group of labels; let index = index\"\n [label]=\"labels[index]\"\n >\n <ng-container *ngTemplateOutlet=\"options; context: {$implicit: items[index]}\" />\n </optgroup>\n <ng-container *ngIf=\"!mobile\">\n <tui-data-list-wrapper\n *tuiTextfieldDropdown\n new\n [items]=\"items\"\n [labels]=\"labels\"\n />\n </ng-container>\n</ng-container>\n\n<ng-template #flatItems>\n <ng-container *ngTemplateOutlet=\"options; context: {$implicit: items}\" />\n <ng-container *ngIf=\"!mobile\">\n <tui-data-list-wrapper\n *tuiTextfieldDropdown\n new\n [items]=\"$any(items)\"\n />\n </ng-container>\n</ng-template>\n\n<ng-template\n #options\n let-items\n>\n <option\n *ngFor=\"let option of items\"\n [disabled]=\"handlers.disabledItemHandler()(option)\"\n [selected]=\"isSelected()(option)\"\n [value]=\"handlers.stringify()(option)\"\n >\n {{ handlers.stringify()(option) }}\n </option>\n</ng-template>\n","import {TuiMultiSelectGroupComponent} from './multi-select-group/multi-select-group.component';\nimport {TuiMultiSelectGroupDirective} from './multi-select-group/multi-select-group.directive';\nimport {TuiMultiSelectNative} from './multi-select-native/multi-select-native.component';\n\nexport const TuiMultiSelect = [\n TuiMultiSelectGroupComponent,\n TuiMultiSelectGroupDirective,\n TuiMultiSelectNative,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["tuiIsPresent"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import * as i0 from '@angular/core';
|
|
|
3
3
|
import { signal, inject, Component, ChangeDetectionStrategy, ViewChildren, Input } from '@angular/core';
|
|
4
4
|
import { toSignal, takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
5
5
|
import { FormsModule } from '@angular/forms';
|
|
6
|
-
import {
|
|
6
|
+
import { WaMutationObserverService, WA_MUTATION_OBSERVER_INIT } from '@ng-web-apis/mutation-observer';
|
|
7
7
|
import { TuiRepeatTimes } from '@taiga-ui/cdk/directives/repeat-times';
|
|
8
8
|
import { tuiWatch } from '@taiga-ui/cdk/observables';
|
|
9
9
|
import { delay, map } from 'rxjs';
|
|
@@ -13,7 +13,7 @@ class TuiPager {
|
|
|
13
13
|
this.start = 0;
|
|
14
14
|
this.end = 0;
|
|
15
15
|
this.left = signal(0);
|
|
16
|
-
this.maxWidth = toSignal(inject(
|
|
16
|
+
this.maxWidth = toSignal(inject(WaMutationObserverService, { self: true }).pipe(delay(0), map(() => this.visibleWidth), tuiWatch(), takeUntilDestroyed()), { initialValue: 0 });
|
|
17
17
|
this.max = 6;
|
|
18
18
|
this.count = this.max;
|
|
19
19
|
this.size = 'm';
|
|
@@ -50,7 +50,7 @@ class TuiPager {
|
|
|
50
50
|
}
|
|
51
51
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiPager, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
52
52
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiPager, isStandalone: true, selector: "tui-pager", inputs: { max: "max", count: "count", size: "size", valueContent: "valueContent", index: "index" }, host: { properties: { "attr.data-size": "size", "style.--t-gap.px": "gap", "style.max-width.px": "maxWidth()" } }, providers: [
|
|
53
|
-
|
|
53
|
+
WaMutationObserverService,
|
|
54
54
|
{
|
|
55
55
|
provide: WA_MUTATION_OBSERVER_INIT,
|
|
56
56
|
useValue: {
|
|
@@ -65,7 +65,7 @@ class TuiPager {
|
|
|
65
65
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiPager, decorators: [{
|
|
66
66
|
type: Component,
|
|
67
67
|
args: [{ standalone: true, selector: 'tui-pager', imports: [FormsModule, NgTemplateOutlet, TuiRepeatTimes], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
68
|
-
|
|
68
|
+
WaMutationObserverService,
|
|
69
69
|
{
|
|
70
70
|
provide: WA_MUTATION_OBSERVER_INIT,
|
|
71
71
|
useValue: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-kit-components-pager.mjs","sources":["../../../projects/kit/components/pager/pager.component.ts","../../../projects/kit/components/pager/pager.component.html","../../../projects/kit/components/pager/taiga-ui-kit-components-pager.ts"],"sourcesContent":["import {NgTemplateOutlet} from '@angular/common';\nimport {\n type AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n type ElementRef,\n inject,\n Input,\n type OnChanges,\n type QueryList,\n signal,\n type TemplateRef,\n ViewChildren,\n} from '@angular/core';\nimport {takeUntilDestroyed, toSignal} from '@angular/core/rxjs-interop';\nimport {FormsModule} from '@angular/forms';\nimport {\n
|
|
1
|
+
{"version":3,"file":"taiga-ui-kit-components-pager.mjs","sources":["../../../projects/kit/components/pager/pager.component.ts","../../../projects/kit/components/pager/pager.component.html","../../../projects/kit/components/pager/taiga-ui-kit-components-pager.ts"],"sourcesContent":["import {NgTemplateOutlet} from '@angular/common';\nimport {\n type AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n type ElementRef,\n inject,\n Input,\n type OnChanges,\n type QueryList,\n signal,\n type TemplateRef,\n ViewChildren,\n} from '@angular/core';\nimport {takeUntilDestroyed, toSignal} from '@angular/core/rxjs-interop';\nimport {FormsModule} from '@angular/forms';\nimport {\n WaMutationObserverService,\n WA_MUTATION_OBSERVER_INIT,\n} from '@ng-web-apis/mutation-observer';\nimport {TuiRepeatTimes} from '@taiga-ui/cdk/directives/repeat-times';\nimport {tuiWatch} from '@taiga-ui/cdk/observables';\nimport {type TuiSizeS} from '@taiga-ui/core/types';\nimport {delay, map} from 'rxjs';\n\n@Component({\n standalone: true,\n selector: 'tui-pager',\n imports: [FormsModule, NgTemplateOutlet, TuiRepeatTimes],\n templateUrl: './pager.component.html',\n styleUrls: ['./pager.styles.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n WaMutationObserverService,\n {\n provide: WA_MUTATION_OBSERVER_INIT,\n useValue: {\n attributeOldValue: true,\n characterData: true,\n childList: true,\n subtree: true,\n },\n },\n ],\n host: {\n '[attr.data-size]': 'size',\n '[style.--t-gap.px]': 'gap',\n '[style.max-width.px]': 'maxWidth()',\n },\n})\nexport class TuiPager implements OnChanges, AfterViewInit {\n @ViewChildren('item')\n protected items?: QueryList<ElementRef<HTMLElement>>;\n\n protected start = 0;\n protected end = 0;\n protected left = signal(0);\n protected readonly maxWidth = toSignal(\n inject(WaMutationObserverService, {self: true}).pipe(\n delay(0),\n map(() => this.visibleWidth),\n tuiWatch(),\n takeUntilDestroyed(),\n ),\n {initialValue: 0},\n );\n\n @Input()\n public max = 6;\n\n @Input()\n public count = this.max;\n\n @Input()\n public size: TuiSizeS = 'm';\n\n @Input()\n public valueContent?: TemplateRef<unknown>;\n\n @Input()\n public index = 0;\n\n public ngOnChanges(): void {\n this.move();\n }\n\n public ngAfterViewInit(): void {\n this.move();\n }\n\n protected get gap(): number {\n return this.size === 'm' ? 9 : 7;\n }\n\n private get visibleRange(): [start: number, end: number] {\n const max = this.max > this.count ? this.count : this.max;\n\n const start = Math.min(\n Math.max(this.index - Math.floor(max / 2), 0),\n this.count - max,\n );\n\n return [start, start + (max - 1)];\n }\n\n private get visibleWidth(): number {\n return (\n (this.items?.map((item) => item.nativeElement.offsetWidth ?? 0) ?? [])\n .slice(this.start, this.end + 1)\n .reduce((sum, item) => sum + item + this.gap, 0) - this.gap\n );\n }\n\n private move(): void {\n const [start, end] = this.visibleRange;\n\n this.start = start;\n this.end = end;\n\n let left = this.start * this.gap;\n\n for (let i = 0; i < this.start; i++) {\n left += this.items?.get(i)?.nativeElement.offsetWidth ?? 0;\n }\n\n this.left.set(-1 * left);\n }\n}\n","<div\n class=\"t-items\"\n [style.transform]=\"'translateX(calc(var(--tui-inline) * ' + left() + 'px))'\"\n>\n <div\n *tuiRepeatTimes=\"let i of count\"\n #item\n class=\"t-item\"\n [attr.data-index]=\"i\"\n [class._active]=\"i === index\"\n [class._last]=\"i === count - 1\"\n [class._post-active]=\"i === index + 1\"\n [class._pre-active]=\"i === index - 1\"\n [class._pre-last]=\"i === count - 2\"\n [class._visible]=\"i >= start && i <= end\"\n >\n <ng-container *ngTemplateOutlet=\"valueContent || null; context: {$implicit: i}\" />\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { Component, ViewEncapsulation, ChangeDetectionStrategy, Directive, Injec
|
|
|
3
3
|
import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
|
|
4
4
|
import { tuiWithStyles, tuiProvideOptions } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
5
5
|
import { toSignal } from '@angular/core/rxjs-interop';
|
|
6
|
-
import {
|
|
6
|
+
import { WaMutationObserverService, WA_MUTATION_OBSERVER_INIT } from '@ng-web-apis/mutation-observer';
|
|
7
7
|
import { tuiWatch } from '@taiga-ui/cdk/observables';
|
|
8
8
|
import { map, of, delay } from 'rxjs';
|
|
9
9
|
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
@@ -78,7 +78,7 @@ class TuiProgressColorSegments {
|
|
|
78
78
|
constructor() {
|
|
79
79
|
this.colors = signal([]);
|
|
80
80
|
this.el = tuiInjectElement();
|
|
81
|
-
this.position = toSignal(inject(
|
|
81
|
+
this.position = toSignal(inject(WaMutationObserverService, { self: true }).pipe(map(() => this.el.position), tuiWatch()), { initialValue: this.el.position });
|
|
82
82
|
this.color = computed(() => {
|
|
83
83
|
const colors = this.colors();
|
|
84
84
|
const position = this.position();
|
|
@@ -94,7 +94,7 @@ class TuiProgressColorSegments {
|
|
|
94
94
|
}
|
|
95
95
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiProgressColorSegments, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
96
96
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiProgressColorSegments, isStandalone: true, selector: "progress[tuiProgressBar][tuiProgressColorSegments]", inputs: { colorsSetter: ["tuiProgressColorSegments", "colorsSetter"] }, host: { properties: { "style.--tui-progress-color": "color()" } }, providers: [
|
|
97
|
-
|
|
97
|
+
WaMutationObserverService,
|
|
98
98
|
{
|
|
99
99
|
provide: WA_MUTATION_OBSERVER_INIT,
|
|
100
100
|
useValue: {
|
|
@@ -109,7 +109,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
109
109
|
standalone: true,
|
|
110
110
|
selector: 'progress[tuiProgressBar][tuiProgressColorSegments]',
|
|
111
111
|
providers: [
|
|
112
|
-
|
|
112
|
+
WaMutationObserverService,
|
|
113
113
|
{
|
|
114
114
|
provide: WA_MUTATION_OBSERVER_INIT,
|
|
115
115
|
useValue: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-kit-components-progress.mjs","sources":["../../../projects/kit/components/progress/progress-bar/fixed-gradient/progress-fixed-gradient.directive.ts","../../../projects/kit/components/progress/progress.options.ts","../../../projects/kit/components/progress/progress-bar/progress-bar.component.ts","../../../projects/kit/components/progress/progress-bar/progress-color-segments.directive.ts","../../../projects/kit/components/progress/progress-circle/progress-circle.component.ts","../../../projects/kit/components/progress/progress-circle/progress-circle.template.html","../../../projects/kit/components/progress/progress-label/progress-label.component.ts","../../../projects/kit/components/progress/progress-label/progress-label.template.html","../../../projects/kit/components/progress/progress-segmented/progress-segmented.directive.ts","../../../projects/kit/components/progress/progress.ts","../../../projects/kit/components/progress/taiga-ui-kit-components-progress.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\n\n@Component({\n standalone: true,\n template: '',\n styleUrls: ['./progress-fixed-gradient.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'tui-fixed-gradient',\n },\n})\nclass TuiProgressFixedGradientStyles {}\n\n@Directive({\n standalone: true,\n selector: 'progress[tuiProgressBar][tuiProgressFixedGradient]',\n host: {\n '[style.--tui-progress-percent.%]': 'progressPercent',\n },\n})\nexport class TuiProgressFixedGradientDirective {\n private readonly nativeProgress = tuiInjectElement<HTMLProgressElement>();\n protected readonly nothing = tuiWithStyles(TuiProgressFixedGradientStyles);\n\n protected get progressPercent(): number {\n const {value} = this.nativeProgress;\n const max = this.nativeProgress.max ?? 1;\n\n return Math.min((value / max) * 100, 100);\n }\n}\n","import {InjectionToken, type Provider} from '@angular/core';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type TuiSizeXXL, type TuiSizeXXS} from '@taiga-ui/core/types';\n\nexport interface TuiProgressOptions {\n readonly color: string | null;\n readonly size: TuiSizeXXL | TuiSizeXXS;\n}\n\nexport const TUI_PROGRESS_DEFAULT_OPTIONS: TuiProgressOptions = {\n color: null,\n size: 'm',\n};\n\nexport const TUI_PROGRESS_OPTIONS = new InjectionToken(\n ngDevMode ? 'TUI_PROGRESS_OPTIONS' : '',\n {\n factory: () => TUI_PROGRESS_DEFAULT_OPTIONS,\n },\n);\n\nexport function tuiProgressOptionsProvider(\n options: Partial<TuiProgressOptions>,\n): Provider {\n return tuiProvideOptions(TUI_PROGRESS_OPTIONS, options, TUI_PROGRESS_DEFAULT_OPTIONS);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n inject,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {type TuiSizeXXL, type TuiSizeXXS} from '@taiga-ui/core/types';\n\nimport {TUI_PROGRESS_OPTIONS} from '../progress.options';\n\n@Component({\n standalone: true,\n selector: 'progress[tuiProgressBar]',\n template: '',\n styles: ['@import \"@taiga-ui/kit/styles/components/progress-bar.less\";'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[style.--tui-progress-color]': 'color',\n '[attr.data-size]': 'size',\n },\n})\nexport class TuiProgressBar {\n private readonly options = inject(TUI_PROGRESS_OPTIONS);\n\n @Input()\n public color: string | null = this.options.color;\n\n @Input()\n public size: TuiSizeXXL | TuiSizeXXS = this.options.size;\n}\n","import {computed, Directive, inject, Input, signal} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {\n MutationObserverService,\n WA_MUTATION_OBSERVER_INIT,\n} from '@ng-web-apis/mutation-observer';\nimport {tuiWatch} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {map} from 'rxjs';\n\n@Directive({\n standalone: true,\n selector: 'progress[tuiProgressBar][tuiProgressColorSegments]',\n providers: [\n MutationObserverService,\n {\n provide: WA_MUTATION_OBSERVER_INIT,\n useValue: {\n attributeOldValue: true,\n },\n },\n ],\n host: {'[style.--tui-progress-color]': 'color()'},\n})\nexport class TuiProgressColorSegments {\n private readonly colors = signal<readonly string[]>([]);\n private readonly el = tuiInjectElement<HTMLProgressElement>();\n private readonly position = toSignal(\n inject(MutationObserverService, {self: true}).pipe(\n map(() => this.el.position),\n tuiWatch(),\n ),\n {initialValue: this.el.position},\n );\n\n protected readonly color = computed(() => {\n const colors = this.colors();\n const position = this.position();\n\n if (!colors.length || position <= 0) {\n return null;\n }\n\n const colorsString = colors.reduce(\n (acc, color, i) =>\n `${acc}, ${color} calc(${i} / ${colors.length} * 100% / ${position}) calc(${i + 1} / ${colors.length} * 100% / ${position})`,\n '',\n );\n\n return `linear-gradient(to right${colorsString})`;\n });\n\n @Input('tuiProgressColorSegments')\n public set colorsSetter(colors: readonly string[]) {\n this.colors.set(colors);\n }\n}\n","import {type BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {ChangeDetectionStrategy, Component, inject, Input} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {type TuiSizeXXL, type TuiSizeXXS} from '@taiga-ui/core/types';\nimport {delay, of} from 'rxjs';\n\nimport {TUI_PROGRESS_OPTIONS} from '../progress.options';\n\n@Component({\n standalone: true,\n selector: 'tui-progress-circle',\n templateUrl: './progress-circle.template.html',\n styleUrls: ['./progress-circle.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.data-size]': 'size',\n '[style.--tui-progress-color]': 'color',\n '[style.--t-progress-ratio]': 'progressRatio',\n '[class._arc]': 'arc',\n },\n})\nexport class TuiProgressCircle {\n private readonly options = inject(TUI_PROGRESS_OPTIONS);\n\n protected readonly animationDelay = toSignal(of(true).pipe(delay(0)));\n\n @Input()\n public value = 0;\n\n @Input()\n public max = 1;\n\n @Input()\n public color: string | null = this.options.color;\n\n @Input()\n public size: TuiSizeXXL | TuiSizeXXS = this.options.size;\n\n @Input({transform: coerceBooleanProperty})\n public arc: BooleanInput = false;\n\n protected get progressRatio(): number {\n const ratio = this.value / this.max;\n\n return Number.isFinite(ratio) ? ratio : 0;\n }\n}\n","<progress\n class=\"t-hidden-progress\"\n [max]=\"max\"\n [value]=\"value\"\n></progress>\n\n<svg\n aria-hidden=\"true\"\n height=\"100%\"\n width=\"100%\"\n class=\"t-svg\"\n>\n <circle\n cx=\"50%\"\n cy=\"50%\"\n class=\"t-track\"\n />\n\n <circle\n cx=\"50%\"\n cy=\"50%\"\n class=\"t-progress\"\n [class.t-progress_filled]=\"animationDelay()\"\n />\n</svg>\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\n\n@Component({\n standalone: true,\n selector: 'label[tuiProgressLabel]',\n templateUrl: './progress-label.template.html',\n styleUrls: ['./progress-label.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiProgressLabel {}\n","<ng-content select=\"progress\" />\n<ng-content select=\"tui-progress-circle\" />\n<span class=\"t-label\">\n <ng-content />\n</span>\n","import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\n\n@Component({\n standalone: true,\n template: '',\n styleUrls: ['./progress-segmented.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {class: 'tui-progress-segmented'},\n})\nclass TuiProgressSegmentedStyles {}\n\n@Directive({\n standalone: true,\n selector: '[tuiProgressBar][segments]',\n host: {\n class: '_segmented',\n '[style.--t-segment-width]': '1 / segments',\n },\n})\nexport class TuiProgressSegmented {\n protected readonly nothing = tuiWithStyles(TuiProgressSegmentedStyles);\n\n @Input()\n public segments = 1;\n}\n","import {TuiProgressFixedGradientDirective} from './progress-bar/fixed-gradient/progress-fixed-gradient.directive';\nimport {TuiProgressBar} from './progress-bar/progress-bar.component';\nimport {TuiProgressColorSegments} from './progress-bar/progress-color-segments.directive';\nimport {TuiProgressCircle} from './progress-circle/progress-circle.component';\nimport {TuiProgressLabel} from './progress-label/progress-label.component';\nimport {TuiProgressSegmented} from './progress-segmented/progress-segmented.directive';\n\nexport const TuiProgress = [\n TuiProgressBar,\n TuiProgressCircle,\n TuiProgressColorSegments,\n TuiProgressFixedGradientDirective,\n TuiProgressLabel,\n TuiProgressSegmented,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-kit-components-progress.mjs","sources":["../../../projects/kit/components/progress/progress-bar/fixed-gradient/progress-fixed-gradient.directive.ts","../../../projects/kit/components/progress/progress.options.ts","../../../projects/kit/components/progress/progress-bar/progress-bar.component.ts","../../../projects/kit/components/progress/progress-bar/progress-color-segments.directive.ts","../../../projects/kit/components/progress/progress-circle/progress-circle.component.ts","../../../projects/kit/components/progress/progress-circle/progress-circle.template.html","../../../projects/kit/components/progress/progress-label/progress-label.component.ts","../../../projects/kit/components/progress/progress-label/progress-label.template.html","../../../projects/kit/components/progress/progress-segmented/progress-segmented.directive.ts","../../../projects/kit/components/progress/progress.ts","../../../projects/kit/components/progress/taiga-ui-kit-components-progress.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\n\n@Component({\n standalone: true,\n template: '',\n styleUrls: ['./progress-fixed-gradient.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'tui-fixed-gradient',\n },\n})\nclass TuiProgressFixedGradientStyles {}\n\n@Directive({\n standalone: true,\n selector: 'progress[tuiProgressBar][tuiProgressFixedGradient]',\n host: {\n '[style.--tui-progress-percent.%]': 'progressPercent',\n },\n})\nexport class TuiProgressFixedGradientDirective {\n private readonly nativeProgress = tuiInjectElement<HTMLProgressElement>();\n protected readonly nothing = tuiWithStyles(TuiProgressFixedGradientStyles);\n\n protected get progressPercent(): number {\n const {value} = this.nativeProgress;\n const max = this.nativeProgress.max ?? 1;\n\n return Math.min((value / max) * 100, 100);\n }\n}\n","import {InjectionToken, type Provider} from '@angular/core';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type TuiSizeXXL, type TuiSizeXXS} from '@taiga-ui/core/types';\n\nexport interface TuiProgressOptions {\n readonly color: string | null;\n readonly size: TuiSizeXXL | TuiSizeXXS;\n}\n\nexport const TUI_PROGRESS_DEFAULT_OPTIONS: TuiProgressOptions = {\n color: null,\n size: 'm',\n};\n\nexport const TUI_PROGRESS_OPTIONS = new InjectionToken(\n ngDevMode ? 'TUI_PROGRESS_OPTIONS' : '',\n {\n factory: () => TUI_PROGRESS_DEFAULT_OPTIONS,\n },\n);\n\nexport function tuiProgressOptionsProvider(\n options: Partial<TuiProgressOptions>,\n): Provider {\n return tuiProvideOptions(TUI_PROGRESS_OPTIONS, options, TUI_PROGRESS_DEFAULT_OPTIONS);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n inject,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {type TuiSizeXXL, type TuiSizeXXS} from '@taiga-ui/core/types';\n\nimport {TUI_PROGRESS_OPTIONS} from '../progress.options';\n\n@Component({\n standalone: true,\n selector: 'progress[tuiProgressBar]',\n template: '',\n styles: ['@import \"@taiga-ui/kit/styles/components/progress-bar.less\";'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[style.--tui-progress-color]': 'color',\n '[attr.data-size]': 'size',\n },\n})\nexport class TuiProgressBar {\n private readonly options = inject(TUI_PROGRESS_OPTIONS);\n\n @Input()\n public color: string | null = this.options.color;\n\n @Input()\n public size: TuiSizeXXL | TuiSizeXXS = this.options.size;\n}\n","import {computed, Directive, inject, Input, signal} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {\n WaMutationObserverService,\n WA_MUTATION_OBSERVER_INIT,\n} from '@ng-web-apis/mutation-observer';\nimport {tuiWatch} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {map} from 'rxjs';\n\n@Directive({\n standalone: true,\n selector: 'progress[tuiProgressBar][tuiProgressColorSegments]',\n providers: [\n WaMutationObserverService,\n {\n provide: WA_MUTATION_OBSERVER_INIT,\n useValue: {\n attributeOldValue: true,\n },\n },\n ],\n host: {'[style.--tui-progress-color]': 'color()'},\n})\nexport class TuiProgressColorSegments {\n private readonly colors = signal<readonly string[]>([]);\n private readonly el = tuiInjectElement<HTMLProgressElement>();\n private readonly position = toSignal(\n inject(WaMutationObserverService, {self: true}).pipe(\n map(() => this.el.position),\n tuiWatch(),\n ),\n {initialValue: this.el.position},\n );\n\n protected readonly color = computed(() => {\n const colors = this.colors();\n const position = this.position();\n\n if (!colors.length || position <= 0) {\n return null;\n }\n\n const colorsString = colors.reduce(\n (acc, color, i) =>\n `${acc}, ${color} calc(${i} / ${colors.length} * 100% / ${position}) calc(${i + 1} / ${colors.length} * 100% / ${position})`,\n '',\n );\n\n return `linear-gradient(to right${colorsString})`;\n });\n\n @Input('tuiProgressColorSegments')\n public set colorsSetter(colors: readonly string[]) {\n this.colors.set(colors);\n }\n}\n","import {type BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {ChangeDetectionStrategy, Component, inject, Input} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {type TuiSizeXXL, type TuiSizeXXS} from '@taiga-ui/core/types';\nimport {delay, of} from 'rxjs';\n\nimport {TUI_PROGRESS_OPTIONS} from '../progress.options';\n\n@Component({\n standalone: true,\n selector: 'tui-progress-circle',\n templateUrl: './progress-circle.template.html',\n styleUrls: ['./progress-circle.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.data-size]': 'size',\n '[style.--tui-progress-color]': 'color',\n '[style.--t-progress-ratio]': 'progressRatio',\n '[class._arc]': 'arc',\n },\n})\nexport class TuiProgressCircle {\n private readonly options = inject(TUI_PROGRESS_OPTIONS);\n\n protected readonly animationDelay = toSignal(of(true).pipe(delay(0)));\n\n @Input()\n public value = 0;\n\n @Input()\n public max = 1;\n\n @Input()\n public color: string | null = this.options.color;\n\n @Input()\n public size: TuiSizeXXL | TuiSizeXXS = this.options.size;\n\n @Input({transform: coerceBooleanProperty})\n public arc: BooleanInput = false;\n\n protected get progressRatio(): number {\n const ratio = this.value / this.max;\n\n return Number.isFinite(ratio) ? ratio : 0;\n }\n}\n","<progress\n class=\"t-hidden-progress\"\n [max]=\"max\"\n [value]=\"value\"\n></progress>\n\n<svg\n aria-hidden=\"true\"\n height=\"100%\"\n width=\"100%\"\n class=\"t-svg\"\n>\n <circle\n cx=\"50%\"\n cy=\"50%\"\n class=\"t-track\"\n />\n\n <circle\n cx=\"50%\"\n cy=\"50%\"\n class=\"t-progress\"\n [class.t-progress_filled]=\"animationDelay()\"\n />\n</svg>\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\n\n@Component({\n standalone: true,\n selector: 'label[tuiProgressLabel]',\n templateUrl: './progress-label.template.html',\n styleUrls: ['./progress-label.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiProgressLabel {}\n","<ng-content select=\"progress\" />\n<ng-content select=\"tui-progress-circle\" />\n<span class=\"t-label\">\n <ng-content />\n</span>\n","import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\n\n@Component({\n standalone: true,\n template: '',\n styleUrls: ['./progress-segmented.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {class: 'tui-progress-segmented'},\n})\nclass TuiProgressSegmentedStyles {}\n\n@Directive({\n standalone: true,\n selector: '[tuiProgressBar][segments]',\n host: {\n class: '_segmented',\n '[style.--t-segment-width]': '1 / segments',\n },\n})\nexport class TuiProgressSegmented {\n protected readonly nothing = tuiWithStyles(TuiProgressSegmentedStyles);\n\n @Input()\n public segments = 1;\n}\n","import {TuiProgressFixedGradientDirective} from './progress-bar/fixed-gradient/progress-fixed-gradient.directive';\nimport {TuiProgressBar} from './progress-bar/progress-bar.component';\nimport {TuiProgressColorSegments} from './progress-bar/progress-color-segments.directive';\nimport {TuiProgressCircle} from './progress-circle/progress-circle.component';\nimport {TuiProgressLabel} from './progress-label/progress-label.component';\nimport {TuiProgressSegmented} from './progress-segmented/progress-segmented.directive';\n\nexport const TuiProgress = [\n TuiProgressBar,\n TuiProgressCircle,\n TuiProgressColorSegments,\n TuiProgressFixedGradientDirective,\n TuiProgressLabel,\n TuiProgressSegmented,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;AASA,MAUM,8BAA8B,CAAA;+GAA9B,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA9B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,8BAA8B,wHARtB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,wlBAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAQV,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAVnC,SAAS;iCACM,IAAI,EAAA,QAAA,EACN,EAAE,EAAA,aAAA,EAEG,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,KAAK,EAAE,oBAAoB;AAC9B,qBAAA,EAAA,MAAA,EAAA,CAAA,wlBAAA,CAAA,EAAA,CAAA;;AAIL,MAOa,iCAAiC,CAAA;AAP9C,IAAA,WAAA,GAAA;QAQqB,IAAc,CAAA,cAAA,GAAG,gBAAgB,EAAuB,CAAC;AACvD,QAAA,IAAA,CAAA,OAAO,GAAG,aAAa,CAAC,8BAA8B,CAAC,CAAC;AAQ9E,KAAA;AANG,IAAA,IAAc,eAAe,GAAA;AACzB,QAAA,MAAM,EAAC,KAAK,EAAC,GAAG,IAAI,CAAC,cAAc,CAAC;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,CAAC;AAEzC,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC;KAC7C;+GATQ,iCAAiC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAjC,iCAAiC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oDAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gCAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAjC,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAP7C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,oDAAoD;AAC9D,oBAAA,IAAI,EAAE;AACF,wBAAA,kCAAkC,EAAE,iBAAiB;AACxD,qBAAA;AACJ,iBAAA,CAAA;;;AClBY,MAAA,4BAA4B,GAAuB;AAC5D,IAAA,KAAK,EAAE,IAAI;AACX,IAAA,IAAI,EAAE,GAAG;EACX;AAEW,MAAA,oBAAoB,GAAG,IAAI,cAAc,CAClD,SAAS,GAAG,sBAAsB,GAAG,EAAE,EACvC;AACI,IAAA,OAAO,EAAE,MAAM,4BAA4B;AAC9C,CAAA,EACH;AAEI,SAAU,0BAA0B,CACtC,OAAoC,EAAA;IAEpC,OAAO,iBAAiB,CAAC,oBAAoB,EAAE,OAAO,EAAE,4BAA4B,CAAC,CAAC;AAC1F;;ACdA,MAYa,cAAc,CAAA;AAZ3B,IAAA,WAAA,GAAA;AAaqB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAGjD,QAAA,IAAA,CAAA,KAAK,GAAkB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AAG1C,QAAA,IAAA,CAAA,IAAI,GAA4B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AAC5D,KAAA;+GARY,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAc,yNATb,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,ywDAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FASH,cAAc,EAAA,UAAA,EAAA,CAAA;kBAZ1B,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,EACN,QAAA,EAAA,0BAA0B,EAC1B,QAAA,EAAA,EAAE,EAEG,aAAA,EAAA,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,8BAA8B,EAAE,OAAO;AACvC,wBAAA,kBAAkB,EAAE,MAAM;AAC7B,qBAAA,EAAA,MAAA,EAAA,CAAA,ywDAAA,CAAA,EAAA,CAAA;8BAMM,KAAK,EAAA,CAAA;sBADX,KAAK;gBAIC,IAAI,EAAA,CAAA;sBADV,KAAK;;;ACnBV,MAca,wBAAwB,CAAA;AAdrC,IAAA,WAAA,GAAA;AAeqB,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAoB,EAAE,CAAC,CAAC;QACvC,IAAE,CAAA,EAAA,GAAG,gBAAgB,EAAuB,CAAC;AAC7C,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAChC,MAAM,CAAC,yBAAyB,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,IAAI,CAChD,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,EAC3B,QAAQ,EAAE,CACb,EACD,EAAC,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAC,CACnC,CAAC;AAEiB,QAAA,IAAA,CAAA,KAAK,GAAG,QAAQ,CAAC,MAAK;AACrC,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;AAC7B,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAEjC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,QAAQ,IAAI,CAAC,EAAE;AACjC,gBAAA,OAAO,IAAI,CAAC;AACf,aAAA;AAED,YAAA,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAC9B,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,KACV,CAAG,EAAA,GAAG,KAAK,KAAK,CAAA,MAAA,EAAS,CAAC,CAAA,GAAA,EAAM,MAAM,CAAC,MAAM,aAAa,QAAQ,CAAA,OAAA,EAAU,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,MAAM,CAAa,UAAA,EAAA,QAAQ,GAAG,EAChI,EAAE,CACL,CAAC;YAEF,OAAO,CAAA,wBAAA,EAA2B,YAAY,CAAA,CAAA,CAAG,CAAC;AACtD,SAAC,CAAC,CAAC;AAMN,KAAA;IAJG,IACW,YAAY,CAAC,MAAyB,EAAA;AAC7C,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;KAC3B;+GA/BQ,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,EAXtB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oDAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,CAAA,0BAAA,EAAA,cAAA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,4BAAA,EAAA,SAAA,EAAA,EAAA,EAAA,SAAA,EAAA;YACP,yBAAyB;AACzB,YAAA;AACI,gBAAA,OAAO,EAAE,yBAAyB;AAClC,gBAAA,QAAQ,EAAE;AACN,oBAAA,iBAAiB,EAAE,IAAI;AAC1B,iBAAA;AACJ,aAAA;AACJ,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAGQ,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAdpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,oDAAoD;AAC9D,oBAAA,SAAS,EAAE;wBACP,yBAAyB;AACzB,wBAAA;AACI,4BAAA,OAAO,EAAE,yBAAyB;AAClC,4BAAA,QAAQ,EAAE;AACN,gCAAA,iBAAiB,EAAE,IAAI;AAC1B,6BAAA;AACJ,yBAAA;AACJ,qBAAA;AACD,oBAAA,IAAI,EAAE,EAAC,8BAA8B,EAAE,SAAS,EAAC;AACpD,iBAAA,CAAA;8BA8Bc,YAAY,EAAA,CAAA;sBADtB,KAAK;uBAAC,0BAA0B,CAAA;;;AC5CrC,MAaa,iBAAiB,CAAA;AAb9B,IAAA,WAAA,GAAA;AAcqB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAErC,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAG/D,IAAK,CAAA,KAAA,GAAG,CAAC,CAAC;QAGV,IAAG,CAAA,GAAA,GAAG,CAAC,CAAC;AAGR,QAAA,IAAA,CAAA,KAAK,GAAkB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AAG1C,QAAA,IAAA,CAAA,IAAI,GAA4B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QAGlD,IAAG,CAAA,GAAA,GAAiB,KAAK,CAAC;AAOpC,KAAA;AALG,IAAA,IAAc,aAAa,GAAA;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;AAEpC,QAAA,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;KAC7C;+GAxBQ,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,GAAA,EAAA,KAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,GAAA,EAAA,CAAA,KAAA,EAAA,KAAA,EAiBP,qBAAqB,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,4BAAA,EAAA,OAAA,EAAA,0BAAA,EAAA,eAAA,EAAA,YAAA,EAAA,KAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtC5C,8bAyBA,EAAA,MAAA,EAAA,CAAA,i0EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDJa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAb7B,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,qBAAqB,EAAA,eAAA,EAGd,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,kBAAkB,EAAE,MAAM;AAC1B,wBAAA,8BAA8B,EAAE,OAAO;AACvC,wBAAA,4BAA4B,EAAE,eAAe;AAC7C,wBAAA,cAAc,EAAE,KAAK;AACxB,qBAAA,EAAA,QAAA,EAAA,8bAAA,EAAA,MAAA,EAAA,CAAA,i0EAAA,CAAA,EAAA,CAAA;8BAQM,KAAK,EAAA,CAAA;sBADX,KAAK;gBAIC,GAAG,EAAA,CAAA;sBADT,KAAK;gBAIC,KAAK,EAAA,CAAA;sBADX,KAAK;gBAIC,IAAI,EAAA,CAAA;sBADV,KAAK;gBAIC,GAAG,EAAA,CAAA;sBADT,KAAK;uBAAC,EAAC,SAAS,EAAE,qBAAqB,EAAC,CAAA;;;AEpC7C,MAOa,gBAAgB,CAAA;+GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,mFCT7B,4IAKA,EAAA,MAAA,EAAA,CAAA,iQAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDIa,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAP5B,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,EACN,QAAA,EAAA,yBAAyB,EAGlB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,4IAAA,EAAA,MAAA,EAAA,CAAA,iQAAA,CAAA,EAAA,CAAA;;;AEEnD,MAQM,0BAA0B,CAAA;+GAA1B,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,4HANlB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,6xCAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAMV,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAR/B,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,EACN,QAAA,EAAA,EAAE,EAEG,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA,EAAC,KAAK,EAAE,wBAAwB,EAAC,EAAA,MAAA,EAAA,CAAA,6xCAAA,CAAA,EAAA,CAAA;;AAI3C,MAQa,oBAAoB,CAAA;AARjC,IAAA,WAAA,GAAA;AASuB,QAAA,IAAA,CAAA,OAAO,GAAG,aAAa,CAAC,0BAA0B,CAAC,CAAC;QAGhE,IAAQ,CAAA,QAAA,GAAG,CAAC,CAAC;AACvB,KAAA;+GALY,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,yBAAA,EAAA,cAAA,EAAA,EAAA,cAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBARhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,4BAA4B;AACtC,oBAAA,IAAI,EAAE;AACF,wBAAA,KAAK,EAAE,YAAY;AACnB,wBAAA,2BAA2B,EAAE,cAAc;AAC9C,qBAAA;AACJ,iBAAA,CAAA;8BAKU,QAAQ,EAAA,CAAA;sBADd,KAAK;;;ACvBG,MAAA,WAAW,GAAG;IACvB,cAAc;IACd,iBAAiB;IACjB,wBAAwB;IACxB,iCAAiC;IACjC,gBAAgB;IAChB,oBAAoB;;;ACbxB;;AAEG;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { inject, ElementRef, Directive, ContentChildren, EventEmitter, Component, ViewEncapsulation, ChangeDetectionStrategy, Input, Output } from '@angular/core';
|
|
3
3
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
|
-
import {
|
|
4
|
+
import { WaResizeObserverService } from '@ng-web-apis/resize-observer';
|
|
5
5
|
import { tuiQueryListChanges, tuiControlValue, tuiZonefree } from '@taiga-ui/cdk/observables';
|
|
6
6
|
import { tuiCreateOptions } from '@taiga-ui/cdk/utils/di';
|
|
7
7
|
import { tuiInjectElement, tuiIsHTMLElement } from '@taiga-ui/cdk/utils/dom';
|
|
@@ -73,7 +73,7 @@ const [TUI_SEGMENTED_OPTIONS, tuiSegmentedOptionsProvider] = tuiCreateOptions({
|
|
|
73
73
|
class TuiSegmented {
|
|
74
74
|
constructor() {
|
|
75
75
|
this.el = tuiInjectElement();
|
|
76
|
-
this.sub = inject(
|
|
76
|
+
this.sub = inject(WaResizeObserverService, { self: true })
|
|
77
77
|
.pipe(tuiZonefree(), takeUntilDestroyed())
|
|
78
78
|
.subscribe(() => this.refresh());
|
|
79
79
|
this.size = inject(TUI_SEGMENTED_OPTIONS).size;
|
|
@@ -107,11 +107,17 @@ class TuiSegmented {
|
|
|
107
107
|
this.el.style.setProperty('--t-width', tuiPx(offsetWidth));
|
|
108
108
|
}
|
|
109
109
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiSegmented, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
110
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiSegmented, isStandalone: true, selector: "tui-segmented", inputs: { size: "size", activeItemIndex: "activeItemIndex" }, outputs: { activeItemIndexChange: "activeItemIndexChange" }, host: { properties: { "attr.data-size": "size" } }, providers: [
|
|
110
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiSegmented, isStandalone: true, selector: "tui-segmented", inputs: { size: "size", activeItemIndex: "activeItemIndex" }, outputs: { activeItemIndexChange: "activeItemIndexChange" }, host: { properties: { "attr.data-size": "size" } }, providers: [
|
|
111
|
+
WaResizeObserverService,
|
|
112
|
+
tuiBadgeNotificationOptionsProvider({ size: 's' }),
|
|
113
|
+
], usesOnChanges: true, hostDirectives: [{ directive: TuiSegmentedDirective }], ngImport: i0, template: '<ng-content />', isInline: true, styles: ["tui-segmented{position:relative;display:flex;color:var(--tui-background-base);background:var(--tui-background-neutral-1);overflow:hidden;-webkit-mask-image:linear-gradient(black,black);mask-image:linear-gradient(#000,#000)}tui-segmented[data-size=s]{--t-padding: .5rem;--t-gap: .5rem;--t-margin: -.125rem;--t-height: var(--tui-height-s);font:var(--tui-font-text-s);border-radius:var(--tui-radius-m)}tui-segmented[data-size=s] tui-icon{font-size:1rem}tui-segmented[data-size=m]{--t-padding: .875rem;--t-gap: 1rem;--t-margin: -.375rem;--t-height: var(--tui-height-m);font:var(--tui-font-text-m);border-radius:var(--tui-radius-m)}tui-segmented[data-size=l]{--t-padding: 1.25rem;--t-gap: 1rem;--t-margin: -.375rem;--t-height: var(--tui-height-l);font:var(--tui-font-text-l);border-radius:var(--tui-radius-l)}tui-segmented[data-size=l]>*:before{block-size:1.25rem}tui-segmented>a,tui-segmented>button,tui-segmented>label,tui-segmented>label>input:not([tuiRadio]){transition-property:color,background,opacity,border-image;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;-webkit-appearance:none;appearance:none;padding:0;border:0;background:none;line-height:inherit;text-decoration:none;position:relative;display:flex;align-items:center;justify-content:center;block-size:var(--t-height);white-space:nowrap;gap:var(--t-gap);margin:0;padding:0 var(--t-padding);color:var(--tui-text-primary);overflow:hidden;cursor:pointer;font:inherit;border-radius:inherit;border:.125rem solid transparent;background-clip:padding-box;box-sizing:border-box;border-image:linear-gradient(var(--tui-border-normal),transparent) 1 / 0 0 25% .5 / 0 0 100 .5;clip-path:polygon(-1rem calc(50% - .5rem),1px calc(50% - .5rem),1px 0,100% 0,100% 100%,1px 100%,1px calc(50% + .5rem),-1rem calc(50% + .5rem))}tui-segmented>a>*,tui-segmented>button>*,tui-segmented>label>*,tui-segmented>label>input:not([tuiRadio])>*{margin:0 var(--t-margin)}tui-segmented>a:focus-visible,tui-segmented>button:focus-visible,tui-segmented>label:focus-visible,tui-segmented>label>input:not([tuiRadio]):focus-visible{outline:.125rem solid var(--tui-border-focus);outline-offset:-.25rem}@media (hover: hover) and (pointer: fine){tui-segmented>a:not(.tui-segmented_active):not(:active):hover,tui-segmented>button:not(.tui-segmented_active):not(:active):hover,tui-segmented>label:not(.tui-segmented_active):not(:active):hover,tui-segmented>label>input:not([tuiRadio]):not(.tui-segmented_active):not(:active):hover{background-color:var(--tui-background-neutral-1-hover)}tui-segmented>a:not(.tui-segmented_active):not(:active):hover,tui-segmented>button:not(.tui-segmented_active):not(:active):hover,tui-segmented>label:not(.tui-segmented_active):not(:active):hover,tui-segmented>label>input:not([tuiRadio]):not(.tui-segmented_active):not(:active):hover,tui-segmented>a:not(.tui-segmented_active):not(:active):hover+*,tui-segmented>button:not(.tui-segmented_active):not(:active):hover+*,tui-segmented>label:not(.tui-segmented_active):not(:active):hover+*,tui-segmented>label>input:not([tuiRadio]):not(.tui-segmented_active):not(:active):hover+*{border-image:linear-gradient(var(--tui-border-normal),transparent) 1 / 0 0 25% .5 / 100 0 0 .5}}tui-segmented>a:active,tui-segmented>button:active,tui-segmented>label:active,tui-segmented>label>input:not([tuiRadio]):active,tui-segmented>a:active+*,tui-segmented>button:active+*,tui-segmented>label:active+*,tui-segmented>label>input:not([tuiRadio]):active+*,tui-segmented>a.tui-segmented_active,tui-segmented>button.tui-segmented_active,tui-segmented>label.tui-segmented_active,tui-segmented>label>input:not([tuiRadio]).tui-segmented_active,tui-segmented>a.tui-segmented_active+*,tui-segmented>button.tui-segmented_active+*,tui-segmented>label.tui-segmented_active+*,tui-segmented>label>input:not([tuiRadio]).tui-segmented_active+*{border-image:linear-gradient(var(--tui-border-normal),transparent) 1 / 0 0 25% .5 / 100 0 0 .5}tui-segmented>label>input:not([tuiRadio]){position:absolute;top:-.125rem;left:-.125rem;right:-.125rem;bottom:-.125rem;background:transparent!important}tui-segmented:before{transition-property:top,left,width;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;content:\"\";position:absolute;left:var(--t-left);top:var(--t-top);block-size:var(--t-height);inline-size:var(--t-width);border-radius:inherit;background:currentColor;background-clip:padding-box;border:.125rem solid transparent;box-sizing:border-box;filter:drop-shadow(0 .25rem 1.25rem rgba(0,0,0,.1))}[tuiTheme=dark] tui-segmented,tui-segmented[tuiTheme=dark]{--tui-background-base: var(--tui-background-neutral-1-hover)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
111
114
|
}
|
|
112
115
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiSegmented, decorators: [{
|
|
113
116
|
type: Component,
|
|
114
|
-
args: [{ standalone: true, selector: 'tui-segmented', template: '<ng-content />', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
117
|
+
args: [{ standalone: true, selector: 'tui-segmented', template: '<ng-content />', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
118
|
+
WaResizeObserverService,
|
|
119
|
+
tuiBadgeNotificationOptionsProvider({ size: 's' }),
|
|
120
|
+
], hostDirectives: [TuiSegmentedDirective], host: {
|
|
115
121
|
'[attr.data-size]': 'size',
|
|
116
122
|
}, styles: ["tui-segmented{position:relative;display:flex;color:var(--tui-background-base);background:var(--tui-background-neutral-1);overflow:hidden;-webkit-mask-image:linear-gradient(black,black);mask-image:linear-gradient(#000,#000)}tui-segmented[data-size=s]{--t-padding: .5rem;--t-gap: .5rem;--t-margin: -.125rem;--t-height: var(--tui-height-s);font:var(--tui-font-text-s);border-radius:var(--tui-radius-m)}tui-segmented[data-size=s] tui-icon{font-size:1rem}tui-segmented[data-size=m]{--t-padding: .875rem;--t-gap: 1rem;--t-margin: -.375rem;--t-height: var(--tui-height-m);font:var(--tui-font-text-m);border-radius:var(--tui-radius-m)}tui-segmented[data-size=l]{--t-padding: 1.25rem;--t-gap: 1rem;--t-margin: -.375rem;--t-height: var(--tui-height-l);font:var(--tui-font-text-l);border-radius:var(--tui-radius-l)}tui-segmented[data-size=l]>*:before{block-size:1.25rem}tui-segmented>a,tui-segmented>button,tui-segmented>label,tui-segmented>label>input:not([tuiRadio]){transition-property:color,background,opacity,border-image;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;-webkit-appearance:none;appearance:none;padding:0;border:0;background:none;line-height:inherit;text-decoration:none;position:relative;display:flex;align-items:center;justify-content:center;block-size:var(--t-height);white-space:nowrap;gap:var(--t-gap);margin:0;padding:0 var(--t-padding);color:var(--tui-text-primary);overflow:hidden;cursor:pointer;font:inherit;border-radius:inherit;border:.125rem solid transparent;background-clip:padding-box;box-sizing:border-box;border-image:linear-gradient(var(--tui-border-normal),transparent) 1 / 0 0 25% .5 / 0 0 100 .5;clip-path:polygon(-1rem calc(50% - .5rem),1px calc(50% - .5rem),1px 0,100% 0,100% 100%,1px 100%,1px calc(50% + .5rem),-1rem calc(50% + .5rem))}tui-segmented>a>*,tui-segmented>button>*,tui-segmented>label>*,tui-segmented>label>input:not([tuiRadio])>*{margin:0 var(--t-margin)}tui-segmented>a:focus-visible,tui-segmented>button:focus-visible,tui-segmented>label:focus-visible,tui-segmented>label>input:not([tuiRadio]):focus-visible{outline:.125rem solid var(--tui-border-focus);outline-offset:-.25rem}@media (hover: hover) and (pointer: fine){tui-segmented>a:not(.tui-segmented_active):not(:active):hover,tui-segmented>button:not(.tui-segmented_active):not(:active):hover,tui-segmented>label:not(.tui-segmented_active):not(:active):hover,tui-segmented>label>input:not([tuiRadio]):not(.tui-segmented_active):not(:active):hover{background-color:var(--tui-background-neutral-1-hover)}tui-segmented>a:not(.tui-segmented_active):not(:active):hover,tui-segmented>button:not(.tui-segmented_active):not(:active):hover,tui-segmented>label:not(.tui-segmented_active):not(:active):hover,tui-segmented>label>input:not([tuiRadio]):not(.tui-segmented_active):not(:active):hover,tui-segmented>a:not(.tui-segmented_active):not(:active):hover+*,tui-segmented>button:not(.tui-segmented_active):not(:active):hover+*,tui-segmented>label:not(.tui-segmented_active):not(:active):hover+*,tui-segmented>label>input:not([tuiRadio]):not(.tui-segmented_active):not(:active):hover+*{border-image:linear-gradient(var(--tui-border-normal),transparent) 1 / 0 0 25% .5 / 100 0 0 .5}}tui-segmented>a:active,tui-segmented>button:active,tui-segmented>label:active,tui-segmented>label>input:not([tuiRadio]):active,tui-segmented>a:active+*,tui-segmented>button:active+*,tui-segmented>label:active+*,tui-segmented>label>input:not([tuiRadio]):active+*,tui-segmented>a.tui-segmented_active,tui-segmented>button.tui-segmented_active,tui-segmented>label.tui-segmented_active,tui-segmented>label>input:not([tuiRadio]).tui-segmented_active,tui-segmented>a.tui-segmented_active+*,tui-segmented>button.tui-segmented_active+*,tui-segmented>label.tui-segmented_active+*,tui-segmented>label>input:not([tuiRadio]).tui-segmented_active+*{border-image:linear-gradient(var(--tui-border-normal),transparent) 1 / 0 0 25% .5 / 100 0 0 .5}tui-segmented>label>input:not([tuiRadio]){position:absolute;top:-.125rem;left:-.125rem;right:-.125rem;bottom:-.125rem;background:transparent!important}tui-segmented:before{transition-property:top,left,width;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;content:\"\";position:absolute;left:var(--t-left);top:var(--t-top);block-size:var(--t-height);inline-size:var(--t-width);border-radius:inherit;background:currentColor;background-clip:padding-box;border:.125rem solid transparent;box-sizing:border-box;filter:drop-shadow(0 .25rem 1.25rem rgba(0,0,0,.1))}[tuiTheme=dark] tui-segmented,tui-segmented[tuiTheme=dark]{--tui-background-base: var(--tui-background-neutral-1-hover)}\n"] }]
|
|
117
123
|
}], propDecorators: { size: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-kit-components-segmented.mjs","sources":["../../../projects/kit/components/segmented/segmented.directive.ts","../../../projects/kit/components/segmented/segmented.component.ts","../../../projects/kit/components/segmented/taiga-ui-kit-components-segmented.ts"],"sourcesContent":["import {\n type AfterContentChecked,\n type AfterContentInit,\n ContentChildren,\n Directive,\n ElementRef,\n inject,\n type QueryList,\n} from '@angular/core';\nimport {NgControl, RadioControlValueAccessor} from '@angular/forms';\nimport {RouterLinkActive} from '@angular/router';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {tuiControlValue, tuiQueryListChanges} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {map, switchMap} from 'rxjs';\n\nimport {TuiSegmented} from './segmented.component';\n\n@Directive({\n standalone: true,\n host: {\n '(click)': 'update($event.target)',\n },\n})\nexport class TuiSegmentedDirective implements AfterContentChecked, AfterContentInit {\n @ContentChildren(NgControl, {descendants: true})\n private readonly controls: QueryList<NgControl> = EMPTY_QUERY;\n\n @ContentChildren(RadioControlValueAccessor, {descendants: true})\n private readonly radios: QueryList<RadioControlValueAccessor> = EMPTY_QUERY;\n\n @ContentChildren(RouterLinkActive)\n private readonly links: QueryList<RouterLinkActive> = EMPTY_QUERY;\n\n @ContentChildren(RouterLinkActive, {read: ElementRef})\n private readonly elements: QueryList<ElementRef<HTMLElement>> = EMPTY_QUERY;\n\n private readonly component = inject(TuiSegmented);\n private readonly el = tuiInjectElement();\n\n public ngAfterContentInit(): void {\n tuiQueryListChanges(this.controls)\n .pipe(\n switchMap(() => tuiControlValue(this.controls.first)),\n map((value) => this.radios.toArray().findIndex((c) => c.value === value)),\n )\n .subscribe((index) => {\n this.component.update(index);\n });\n }\n\n public ngAfterContentChecked(): void {\n if (this.links.length) {\n this.update(this.elements.get(this.linkIndex)?.nativeElement || null);\n }\n }\n\n protected update(target: Element | null): void {\n this.component.update(this.getIndex(target));\n }\n\n private get linkIndex(): number {\n return this.links.toArray().findIndex((link) => link.isActive);\n }\n\n private getIndex(element: Element | null): number {\n return Array.from(this.el.children).findIndex((tab) => tab.contains(element));\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n inject,\n Input,\n type OnChanges,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {ResizeObserverService} from '@ng-web-apis/resize-observer';\nimport {tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport {tuiInjectElement, tuiIsHTMLElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\nimport {tuiBadgeNotificationOptionsProvider} from '@taiga-ui/kit/components/badge-notification';\n\nimport {TuiSegmentedDirective} from './segmented.directive';\n\nexport const [TUI_SEGMENTED_OPTIONS, tuiSegmentedOptionsProvider] = tuiCreateOptions({\n size: 's' as TuiSizeL | TuiSizeS,\n});\n\n@Component({\n standalone: true,\n selector: 'tui-segmented',\n template: '<ng-content />',\n styleUrls: ['./segmented.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [ResizeObserverService, tuiBadgeNotificationOptionsProvider({size: 's'})],\n hostDirectives: [TuiSegmentedDirective],\n host: {\n '[attr.data-size]': 'size',\n },\n})\nexport class TuiSegmented implements OnChanges {\n private readonly el = tuiInjectElement();\n\n protected readonly sub = inject(ResizeObserverService, {self: true})\n .pipe(tuiZonefree(), takeUntilDestroyed())\n .subscribe(() => this.refresh());\n\n @Input()\n public size: TuiSizeL | TuiSizeS = inject(TUI_SEGMENTED_OPTIONS).size;\n\n @Input()\n public activeItemIndex = 0;\n\n @Output()\n public readonly activeItemIndexChange = new EventEmitter<number>();\n\n public ngOnChanges(): void {\n this.refresh();\n }\n\n public update(activeItemIndex: number): void {\n if (activeItemIndex === this.activeItemIndex || activeItemIndex < 0) {\n return;\n }\n\n this.activeItemIndex = activeItemIndex;\n this.activeItemIndexChange.emit(activeItemIndex);\n this.refresh();\n }\n\n private get activeElement(): Element | null {\n return this.el.children.item(this.activeItemIndex);\n }\n\n private refresh(): void {\n const el = this.activeElement;\n\n if (!tuiIsHTMLElement(el)) {\n return;\n }\n\n Array.from(this.el.children).forEach((e) =>\n e.classList.remove('tui-segmented_active'),\n );\n\n el.classList.add('tui-segmented_active');\n\n const {offsetWidth = 0, offsetLeft = 0, offsetTop = 0} = el;\n\n this.el.style.setProperty('--t-top', tuiPx(offsetTop));\n this.el.style.setProperty('--t-left', tuiPx(offsetLeft));\n this.el.style.setProperty('--t-width', tuiPx(offsetWidth));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAkBA,MAMa,qBAAqB,CAAA;AANlC,IAAA,WAAA,GAAA;QAQqB,IAAQ,CAAA,QAAA,GAAyB,WAAW,CAAC;QAG7C,IAAM,CAAA,MAAA,GAAyC,WAAW,CAAC;QAG3D,IAAK,CAAA,KAAA,GAAgC,WAAW,CAAC;QAGjD,IAAQ,CAAA,QAAA,GAAuC,WAAW,CAAC;AAE3D,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;QACjC,IAAE,CAAA,EAAA,GAAG,gBAAgB,EAAE,CAAC;AA8B5C,KAAA;IA5BU,kBAAkB,GAAA;AACrB,QAAA,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC;aAC7B,IAAI,CACD,SAAS,CAAC,MAAM,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EACrD,GAAG,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAC5E;AACA,aAAA,SAAS,CAAC,CAAC,KAAK,KAAI;AACjB,YAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACjC,SAAC,CAAC,CAAC;KACV;IAEM,qBAAqB,GAAA;AACxB,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AACnB,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,IAAI,IAAI,CAAC,CAAC;AACzE,SAAA;KACJ;AAES,IAAA,MAAM,CAAC,MAAsB,EAAA;AACnC,QAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;KAChD;AAED,IAAA,IAAY,SAAS,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC;KAClE;AAEO,IAAA,QAAQ,CAAC,OAAuB,EAAA;QACpC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;KACjF;+GA3CQ,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,SAAA,EACb,SAAS,EAGT,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,QAAA,EAAA,SAAA,EAAA,yBAAyB,2DAGzB,gBAAgB,EAAA,EAAA,EAAA,YAAA,EAAA,UAAA,EAAA,SAAA,EAGhB,gBAAgB,EAAA,IAAA,EAAS,UAAU,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAV3C,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACF,wBAAA,SAAS,EAAE,uBAAuB;AACrC,qBAAA;AACJ,iBAAA,CAAA;8BAGoB,QAAQ,EAAA,CAAA;sBADxB,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,SAAS,EAAE,EAAC,WAAW,EAAE,IAAI,EAAC,CAAA;gBAI9B,MAAM,EAAA,CAAA;sBADtB,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,yBAAyB,EAAE,EAAC,WAAW,EAAE,IAAI,EAAC,CAAA;gBAI9C,KAAK,EAAA,CAAA;sBADrB,eAAe;uBAAC,gBAAgB,CAAA;gBAIhB,QAAQ,EAAA,CAAA;sBADxB,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,gBAAgB,EAAE,EAAC,IAAI,EAAE,UAAU,EAAC,CAAA;;;MCb5C,CAAC,qBAAqB,EAAE,2BAA2B,CAAC,GAAG,gBAAgB,CAAC;AACjF,IAAA,IAAI,EAAE,GAA0B;AACnC,CAAA,EAAE;AAEH,MAaa,YAAY,CAAA;AAbzB,IAAA,WAAA,GAAA;QAcqB,IAAE,CAAA,EAAA,GAAG,gBAAgB,EAAE,CAAC;QAEtB,IAAG,CAAA,GAAA,GAAG,MAAM,CAAC,qBAAqB,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC;AAC/D,aAAA,IAAI,CAAC,WAAW,EAAE,EAAE,kBAAkB,EAAE,CAAC;aACzC,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AAG9B,QAAA,IAAA,CAAA,IAAI,GAAwB,MAAM,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC;QAG/D,IAAe,CAAA,eAAA,GAAG,CAAC,CAAC;AAGX,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,YAAY,EAAU,CAAC;AAuCtE,KAAA;IArCU,WAAW,GAAA;QACd,IAAI,CAAC,OAAO,EAAE,CAAC;KAClB;AAEM,IAAA,MAAM,CAAC,eAAuB,EAAA;QACjC,IAAI,eAAe,KAAK,IAAI,CAAC,eAAe,IAAI,eAAe,GAAG,CAAC,EAAE;YACjE,OAAO;AACV,SAAA;AAED,QAAA,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;AACvC,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,EAAE,CAAC;KAClB;AAED,IAAA,IAAY,aAAa,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;KACtD;IAEO,OAAO,GAAA;AACX,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;AAE9B,QAAA,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE;YACvB,OAAO;AACV,SAAA;QAED,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KACnC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAC7C,CAAC;AAEF,QAAA,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;AAEzC,QAAA,MAAM,EAAC,WAAW,GAAG,CAAC,EAAE,UAAU,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC,EAAC,GAAG,EAAE,CAAC;AAE5D,QAAA,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;AACvD,QAAA,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;AACzD,QAAA,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;KAC9D;+GApDQ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,YAAY,EANV,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,SAAA,EAAA,CAAC,qBAAqB,EAAE,mCAAmC,CAAC,EAAC,IAAI,EAAE,GAAG,EAAC,CAAC,CAAC,uGAJ1E,gBAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,mjJAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAUjB,YAAY,EAAA,UAAA,EAAA,CAAA;kBAbxB,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,EACN,QAAA,EAAA,eAAe,EACf,QAAA,EAAA,gBAAgB,EAEX,aAAA,EAAA,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA,CAAC,qBAAqB,EAAE,mCAAmC,CAAC,EAAC,IAAI,EAAE,GAAG,EAAC,CAAC,CAAC,EAAA,cAAA,EACpE,CAAC,qBAAqB,CAAC,EACjC,IAAA,EAAA;AACF,wBAAA,kBAAkB,EAAE,MAAM;AAC7B,qBAAA,EAAA,MAAA,EAAA,CAAA,mjJAAA,CAAA,EAAA,CAAA;8BAUM,IAAI,EAAA,CAAA;sBADV,KAAK;gBAIC,eAAe,EAAA,CAAA;sBADrB,KAAK;gBAIU,qBAAqB,EAAA,CAAA;sBADpC,MAAM;;;ACnDX;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-kit-components-segmented.mjs","sources":["../../../projects/kit/components/segmented/segmented.directive.ts","../../../projects/kit/components/segmented/segmented.component.ts","../../../projects/kit/components/segmented/taiga-ui-kit-components-segmented.ts"],"sourcesContent":["import {\n type AfterContentChecked,\n type AfterContentInit,\n ContentChildren,\n Directive,\n ElementRef,\n inject,\n type QueryList,\n} from '@angular/core';\nimport {NgControl, RadioControlValueAccessor} from '@angular/forms';\nimport {RouterLinkActive} from '@angular/router';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {tuiControlValue, tuiQueryListChanges} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {map, switchMap} from 'rxjs';\n\nimport {TuiSegmented} from './segmented.component';\n\n@Directive({\n standalone: true,\n host: {\n '(click)': 'update($event.target)',\n },\n})\nexport class TuiSegmentedDirective implements AfterContentChecked, AfterContentInit {\n @ContentChildren(NgControl, {descendants: true})\n private readonly controls: QueryList<NgControl> = EMPTY_QUERY;\n\n @ContentChildren(RadioControlValueAccessor, {descendants: true})\n private readonly radios: QueryList<RadioControlValueAccessor> = EMPTY_QUERY;\n\n @ContentChildren(RouterLinkActive)\n private readonly links: QueryList<RouterLinkActive> = EMPTY_QUERY;\n\n @ContentChildren(RouterLinkActive, {read: ElementRef})\n private readonly elements: QueryList<ElementRef<HTMLElement>> = EMPTY_QUERY;\n\n private readonly component = inject(TuiSegmented);\n private readonly el = tuiInjectElement();\n\n public ngAfterContentInit(): void {\n tuiQueryListChanges(this.controls)\n .pipe(\n switchMap(() => tuiControlValue(this.controls.first)),\n map((value) => this.radios.toArray().findIndex((c) => c.value === value)),\n )\n .subscribe((index) => {\n this.component.update(index);\n });\n }\n\n public ngAfterContentChecked(): void {\n if (this.links.length) {\n this.update(this.elements.get(this.linkIndex)?.nativeElement || null);\n }\n }\n\n protected update(target: Element | null): void {\n this.component.update(this.getIndex(target));\n }\n\n private get linkIndex(): number {\n return this.links.toArray().findIndex((link) => link.isActive);\n }\n\n private getIndex(element: Element | null): number {\n return Array.from(this.el.children).findIndex((tab) => tab.contains(element));\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n inject,\n Input,\n type OnChanges,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {WaResizeObserverService} from '@ng-web-apis/resize-observer';\nimport {tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport {tuiInjectElement, tuiIsHTMLElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\nimport {tuiBadgeNotificationOptionsProvider} from '@taiga-ui/kit/components/badge-notification';\n\nimport {TuiSegmentedDirective} from './segmented.directive';\n\nexport const [TUI_SEGMENTED_OPTIONS, tuiSegmentedOptionsProvider] = tuiCreateOptions({\n size: 's' as TuiSizeL | TuiSizeS,\n});\n\n@Component({\n standalone: true,\n selector: 'tui-segmented',\n template: '<ng-content />',\n styleUrls: ['./segmented.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n WaResizeObserverService,\n tuiBadgeNotificationOptionsProvider({size: 's'}),\n ],\n hostDirectives: [TuiSegmentedDirective],\n host: {\n '[attr.data-size]': 'size',\n },\n})\nexport class TuiSegmented implements OnChanges {\n private readonly el = tuiInjectElement();\n\n protected readonly sub = inject(WaResizeObserverService, {self: true})\n .pipe(tuiZonefree(), takeUntilDestroyed())\n .subscribe(() => this.refresh());\n\n @Input()\n public size: TuiSizeL | TuiSizeS = inject(TUI_SEGMENTED_OPTIONS).size;\n\n @Input()\n public activeItemIndex = 0;\n\n @Output()\n public readonly activeItemIndexChange = new EventEmitter<number>();\n\n public ngOnChanges(): void {\n this.refresh();\n }\n\n public update(activeItemIndex: number): void {\n if (activeItemIndex === this.activeItemIndex || activeItemIndex < 0) {\n return;\n }\n\n this.activeItemIndex = activeItemIndex;\n this.activeItemIndexChange.emit(activeItemIndex);\n this.refresh();\n }\n\n private get activeElement(): Element | null {\n return this.el.children.item(this.activeItemIndex);\n }\n\n private refresh(): void {\n const el = this.activeElement;\n\n if (!tuiIsHTMLElement(el)) {\n return;\n }\n\n Array.from(this.el.children).forEach((e) =>\n e.classList.remove('tui-segmented_active'),\n );\n\n el.classList.add('tui-segmented_active');\n\n const {offsetWidth = 0, offsetLeft = 0, offsetTop = 0} = el;\n\n this.el.style.setProperty('--t-top', tuiPx(offsetTop));\n this.el.style.setProperty('--t-left', tuiPx(offsetLeft));\n this.el.style.setProperty('--t-width', tuiPx(offsetWidth));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.TuiSegmentedDirective"],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ import { TuiIcon } from '@taiga-ui/core/components/icon';
|
|
|
8
8
|
import { TUI_ANIMATIONS_SPEED, TUI_COMMON_ICONS } from '@taiga-ui/core/tokens';
|
|
9
9
|
import { delay, EMPTY, filter } from 'rxjs';
|
|
10
10
|
import { __decorate } from 'tslib';
|
|
11
|
-
import {
|
|
11
|
+
import { WaResizeObserverService } from '@ng-web-apis/resize-observer';
|
|
12
12
|
import { EMPTY_QUERY } from '@taiga-ui/cdk/constants';
|
|
13
13
|
import { tuiQueryListChanges } from '@taiga-ui/cdk/observables';
|
|
14
14
|
import { TuiScrollService } from '@taiga-ui/cdk/services';
|
|
@@ -24,7 +24,7 @@ class TuiStepperComponent {
|
|
|
24
24
|
this.scrollService = inject(TuiScrollService);
|
|
25
25
|
this.speed = inject(TUI_ANIMATIONS_SPEED);
|
|
26
26
|
this.destroyRef = inject(DestroyRef);
|
|
27
|
-
this.$ = inject(
|
|
27
|
+
this.$ = inject(WaResizeObserverService, { self: true })
|
|
28
28
|
.pipe(takeUntilDestroyed())
|
|
29
29
|
.subscribe(() => this.scrollIntoView(this.activeItemIndex));
|
|
30
30
|
this.activeItemIndex = 0;
|
|
@@ -92,14 +92,14 @@ class TuiStepperComponent {
|
|
|
92
92
|
.subscribe();
|
|
93
93
|
}
|
|
94
94
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiStepperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
95
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiStepperComponent, isStandalone: true, selector: "tui-stepper, nav[tuiStepper]", inputs: { activeItemIndex: "activeItemIndex", orientation: "orientation" }, outputs: { activeItemIndexChange: "activeItemIndexChange" }, host: { listeners: { "keydown.arrowRight": "onHorizontal($event, 1)", "keydown.arrowLeft": "onHorizontal($event, -1)", "keydown.arrowDown": "onVertical($event, 1)", "keydown.arrowUp": "onVertical($event, -1)" }, properties: { "attr.data-orientation": "orientation" } }, providers: [
|
|
95
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiStepperComponent, isStandalone: true, selector: "tui-stepper, nav[tuiStepper]", inputs: { activeItemIndex: "activeItemIndex", orientation: "orientation" }, outputs: { activeItemIndexChange: "activeItemIndexChange" }, host: { listeners: { "keydown.arrowRight": "onHorizontal($event, 1)", "keydown.arrowLeft": "onHorizontal($event, -1)", "keydown.arrowDown": "onVertical($event, 1)", "keydown.arrowUp": "onVertical($event, -1)" }, properties: { "attr.data-orientation": "orientation" } }, providers: [WaResizeObserverService], queries: [{ propertyName: "steps", predicate: i0.forwardRef(function () { return TuiStep; }), read: ElementRef }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"changes$ | async\" />\n<ng-content />\n", styles: [":host{scrollbar-width:none;-ms-overflow-style:none;display:flex;scroll-behavior:var(--tui-scroll-behavior);overflow:auto;counter-reset:steps;font:var(--tui-font-text-m)}:host::-webkit-scrollbar,:host::-webkit-scrollbar-thumb{display:none}:host[data-orientation=vertical]{flex-direction:column}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
96
96
|
}
|
|
97
97
|
__decorate([
|
|
98
98
|
tuiPure
|
|
99
99
|
], TuiStepperComponent.prototype, "changes$", null);
|
|
100
100
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiStepperComponent, decorators: [{
|
|
101
101
|
type: Component,
|
|
102
|
-
args: [{ standalone: true, selector: 'tui-stepper, nav[tuiStepper]', imports: [AsyncPipe, NgIf], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
102
|
+
args: [{ standalone: true, selector: 'tui-stepper, nav[tuiStepper]', imports: [AsyncPipe, NgIf], changeDetection: ChangeDetectionStrategy.OnPush, providers: [WaResizeObserverService], host: {
|
|
103
103
|
'[attr.data-orientation]': 'orientation',
|
|
104
104
|
'(keydown.arrowRight)': 'onHorizontal($event, 1)',
|
|
105
105
|
'(keydown.arrowLeft)': 'onHorizontal($event, -1)',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-kit-components-stepper.mjs","sources":["../../../projects/kit/components/stepper/stepper.component.ts","../../../projects/kit/components/stepper/stepper.template.html","../../../projects/kit/components/stepper/step.component.ts","../../../projects/kit/components/stepper/step.template.html","../../../projects/kit/components/stepper/stepper.ts","../../../projects/kit/components/stepper/taiga-ui-kit-components-stepper.ts"],"sourcesContent":["import {AsyncPipe, NgIf} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n ElementRef,\n EventEmitter,\n forwardRef,\n inject,\n Input,\n type OnChanges,\n Output,\n type QueryList,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {ResizeObserverService} from '@ng-web-apis/resize-observer';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {tuiQueryListChanges} from '@taiga-ui/cdk/observables';\nimport {TuiScrollService} from '@taiga-ui/cdk/services';\nimport {tuiInjectElement, tuiIsElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiMoveFocus} from '@taiga-ui/cdk/utils/focus';\nimport {\n tuiGetOriginalArrayFromQueryList,\n tuiPure,\n} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_ANIMATIONS_SPEED} from '@taiga-ui/core/tokens';\nimport {type TuiOrientation} from '@taiga-ui/core/types';\nimport {tuiGetDuration} from '@taiga-ui/core/utils/miscellaneous';\nimport {delay, type Observable} from 'rxjs';\n\nimport {TuiStep} from './step.component';\n\n@Component({\n standalone: true,\n selector: 'tui-stepper, nav[tuiStepper]',\n imports: [AsyncPipe, NgIf],\n templateUrl: './stepper.template.html',\n styleUrls: ['./stepper.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [ResizeObserverService],\n host: {\n '[attr.data-orientation]': 'orientation',\n '(keydown.arrowRight)': 'onHorizontal($event, 1)',\n '(keydown.arrowLeft)': 'onHorizontal($event, -1)',\n '(keydown.arrowDown)': 'onVertical($event, 1)',\n '(keydown.arrowUp)': 'onVertical($event, -1)',\n },\n})\nexport class TuiStepperComponent implements OnChanges {\n @ContentChildren(forwardRef(() => TuiStep), {read: ElementRef})\n private readonly steps: QueryList<ElementRef<HTMLElement>> = EMPTY_QUERY;\n\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly el = tuiInjectElement();\n private readonly scrollService = inject(TuiScrollService);\n private readonly speed = inject(TUI_ANIMATIONS_SPEED);\n private readonly destroyRef = inject(DestroyRef);\n\n protected readonly $ = inject(ResizeObserverService, {self: true})\n .pipe(takeUntilDestroyed())\n .subscribe(() => this.scrollIntoView(this.activeItemIndex));\n\n @Input()\n public activeItemIndex = 0;\n\n @Input()\n public orientation: TuiOrientation = 'horizontal';\n\n @Output()\n public readonly activeItemIndexChange = new EventEmitter<number>();\n\n public ngOnChanges(): void {\n this.scrollIntoView(this.activeItemIndex);\n }\n\n public indexOf(step: HTMLElement): number {\n const index = tuiGetOriginalArrayFromQueryList(this.steps).findIndex(\n ({nativeElement}) => nativeElement === step,\n );\n\n return index < 0 ? NaN : index;\n }\n\n public isActive(index: number): boolean {\n return index === this.activeItemIndex;\n }\n\n public activate(index: number): void {\n if (this.activeItemIndex === index) {\n return;\n }\n\n this.activeItemIndex = index;\n this.activeItemIndexChange.emit(index);\n this.cdr.markForCheck();\n this.scrollIntoView(index);\n }\n\n @tuiPure\n protected get changes$(): Observable<unknown> {\n // Delay is required to trigger change detection after steps are rendered,\n // so they can update their \"active\" status\n return tuiQueryListChanges(this.steps).pipe(delay(0));\n }\n\n protected onHorizontal(event: Event, step: number): void {\n if (this.orientation !== 'horizontal' || !event.target) {\n return;\n }\n\n event.preventDefault();\n this.moveFocus(event.target, step);\n }\n\n protected onVertical(event: Event, step: number): void {\n if (this.orientation !== 'vertical' || !event.target) {\n return;\n }\n\n event.preventDefault();\n this.moveFocus(event.target, step);\n }\n\n private moveFocus(current: EventTarget, step: number): void {\n if (!tuiIsElement(current)) {\n return;\n }\n\n const stepElements = this.steps.toArray().map(({nativeElement}) => nativeElement);\n const index = stepElements.findIndex((element) => element === current);\n\n tuiMoveFocus(index, stepElements, step);\n }\n\n private scrollIntoView(index: number): void {\n const step = this.steps.get(index)?.nativeElement;\n\n if (!step) {\n return;\n }\n\n const {clientHeight, clientWidth, offsetTop, offsetLeft} = this.el;\n const {\n offsetHeight,\n offsetWidth,\n offsetTop: stepOffsetTop,\n offsetLeft: stepOffsetLeft,\n } = step;\n const top = stepOffsetTop - offsetTop - clientHeight / 2 + offsetHeight / 2;\n const left = stepOffsetLeft - offsetLeft - clientWidth / 2 + offsetWidth / 2;\n\n this.scrollService\n .scroll$(\n this.el,\n Math.max(0, top),\n Math.max(0, left),\n tuiGetDuration(this.speed) / 3,\n )\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe();\n }\n}\n","<ng-container *ngIf=\"changes$ | async\" />\n<ng-content />\n","import {NgIf} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, inject, Input} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {RouterLinkActive} from '@angular/router';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\nimport {TUI_COMMON_ICONS} from '@taiga-ui/core/tokens';\nimport {EMPTY, filter} from 'rxjs';\n\nimport {TuiStepperComponent} from './stepper.component';\n\n@Component({\n standalone: true,\n selector:\n 'button[tuiStep], a[tuiStep]:not([routerLink]), a[tuiStep][routerLink][routerLinkActive]',\n imports: [NgIf, TuiIcon],\n templateUrl: './step.template.html',\n styleUrls: ['./step.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n type: 'button',\n '[attr.data-state]': 'stepState',\n '[class._vertical]': 'isVertical',\n '[class._focus-visible]': 'focusVisible',\n '[class._active]': 'isActive',\n '[tabIndex]': 'tabIndex',\n '(click)': 'activate()',\n },\n})\nexport class TuiStep {\n private readonly stepper = inject(TuiStepperComponent);\n private readonly el = tuiInjectElement();\n protected readonly $ = (\n inject(RouterLinkActive, {optional: true})?.isActiveChange.asObservable() ?? EMPTY\n )\n .pipe(filter(Boolean), takeUntilDestroyed())\n .subscribe(() => this.activate());\n\n protected focusVisible = false;\n\n protected readonly icons = inject(TUI_COMMON_ICONS);\n\n @Input()\n public stepState: 'error' | 'normal' | 'pass' = 'normal';\n\n @Input()\n public icon = '';\n\n protected get isActive(): boolean {\n return this.stepper.isActive(this.index);\n }\n\n protected get isVertical(): boolean {\n return this.stepper.orientation === 'vertical';\n }\n\n protected get tabIndex(): number {\n return this.isActive ? 0 : -1;\n }\n\n protected get index(): number {\n return this.stepper.indexOf(this.el);\n }\n\n protected activate(): void {\n this.stepper.activate(this.index);\n }\n}\n","<tui-icon\n *ngIf=\"icon\"\n class=\"t-marker t-marker_custom\"\n [icon]=\"icon\"\n/>\n<tui-icon\n class=\"t-marker t-marker_error\"\n [icon]=\"icons.error\"\n/>\n<tui-icon\n class=\"t-marker t-marker_pass\"\n [icon]=\"icons.check\"\n/>\n<div class=\"t-marker t-marker_index\"></div>\n<ng-content />\n","import {TuiStep} from './step.component';\nimport {TuiStepperComponent} from './stepper.component';\n\nexport const TuiStepper = [TuiStepperComponent, TuiStep] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-kit-components-stepper.mjs","sources":["../../../projects/kit/components/stepper/stepper.component.ts","../../../projects/kit/components/stepper/stepper.template.html","../../../projects/kit/components/stepper/step.component.ts","../../../projects/kit/components/stepper/step.template.html","../../../projects/kit/components/stepper/stepper.ts","../../../projects/kit/components/stepper/taiga-ui-kit-components-stepper.ts"],"sourcesContent":["import {AsyncPipe, NgIf} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n ElementRef,\n EventEmitter,\n forwardRef,\n inject,\n Input,\n type OnChanges,\n Output,\n type QueryList,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {WaResizeObserverService} from '@ng-web-apis/resize-observer';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {tuiQueryListChanges} from '@taiga-ui/cdk/observables';\nimport {TuiScrollService} from '@taiga-ui/cdk/services';\nimport {tuiInjectElement, tuiIsElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiMoveFocus} from '@taiga-ui/cdk/utils/focus';\nimport {\n tuiGetOriginalArrayFromQueryList,\n tuiPure,\n} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_ANIMATIONS_SPEED} from '@taiga-ui/core/tokens';\nimport {type TuiOrientation} from '@taiga-ui/core/types';\nimport {tuiGetDuration} from '@taiga-ui/core/utils/miscellaneous';\nimport {delay, type Observable} from 'rxjs';\n\nimport {TuiStep} from './step.component';\n\n@Component({\n standalone: true,\n selector: 'tui-stepper, nav[tuiStepper]',\n imports: [AsyncPipe, NgIf],\n templateUrl: './stepper.template.html',\n styleUrls: ['./stepper.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [WaResizeObserverService],\n host: {\n '[attr.data-orientation]': 'orientation',\n '(keydown.arrowRight)': 'onHorizontal($event, 1)',\n '(keydown.arrowLeft)': 'onHorizontal($event, -1)',\n '(keydown.arrowDown)': 'onVertical($event, 1)',\n '(keydown.arrowUp)': 'onVertical($event, -1)',\n },\n})\nexport class TuiStepperComponent implements OnChanges {\n @ContentChildren(forwardRef(() => TuiStep), {read: ElementRef})\n private readonly steps: QueryList<ElementRef<HTMLElement>> = EMPTY_QUERY;\n\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly el = tuiInjectElement();\n private readonly scrollService = inject(TuiScrollService);\n private readonly speed = inject(TUI_ANIMATIONS_SPEED);\n private readonly destroyRef = inject(DestroyRef);\n\n protected readonly $ = inject(WaResizeObserverService, {self: true})\n .pipe(takeUntilDestroyed())\n .subscribe(() => this.scrollIntoView(this.activeItemIndex));\n\n @Input()\n public activeItemIndex = 0;\n\n @Input()\n public orientation: TuiOrientation = 'horizontal';\n\n @Output()\n public readonly activeItemIndexChange = new EventEmitter<number>();\n\n public ngOnChanges(): void {\n this.scrollIntoView(this.activeItemIndex);\n }\n\n public indexOf(step: HTMLElement): number {\n const index = tuiGetOriginalArrayFromQueryList(this.steps).findIndex(\n ({nativeElement}) => nativeElement === step,\n );\n\n return index < 0 ? NaN : index;\n }\n\n public isActive(index: number): boolean {\n return index === this.activeItemIndex;\n }\n\n public activate(index: number): void {\n if (this.activeItemIndex === index) {\n return;\n }\n\n this.activeItemIndex = index;\n this.activeItemIndexChange.emit(index);\n this.cdr.markForCheck();\n this.scrollIntoView(index);\n }\n\n @tuiPure\n protected get changes$(): Observable<unknown> {\n // Delay is required to trigger change detection after steps are rendered,\n // so they can update their \"active\" status\n return tuiQueryListChanges(this.steps).pipe(delay(0));\n }\n\n protected onHorizontal(event: Event, step: number): void {\n if (this.orientation !== 'horizontal' || !event.target) {\n return;\n }\n\n event.preventDefault();\n this.moveFocus(event.target, step);\n }\n\n protected onVertical(event: Event, step: number): void {\n if (this.orientation !== 'vertical' || !event.target) {\n return;\n }\n\n event.preventDefault();\n this.moveFocus(event.target, step);\n }\n\n private moveFocus(current: EventTarget, step: number): void {\n if (!tuiIsElement(current)) {\n return;\n }\n\n const stepElements = this.steps.toArray().map(({nativeElement}) => nativeElement);\n const index = stepElements.findIndex((element) => element === current);\n\n tuiMoveFocus(index, stepElements, step);\n }\n\n private scrollIntoView(index: number): void {\n const step = this.steps.get(index)?.nativeElement;\n\n if (!step) {\n return;\n }\n\n const {clientHeight, clientWidth, offsetTop, offsetLeft} = this.el;\n const {\n offsetHeight,\n offsetWidth,\n offsetTop: stepOffsetTop,\n offsetLeft: stepOffsetLeft,\n } = step;\n const top = stepOffsetTop - offsetTop - clientHeight / 2 + offsetHeight / 2;\n const left = stepOffsetLeft - offsetLeft - clientWidth / 2 + offsetWidth / 2;\n\n this.scrollService\n .scroll$(\n this.el,\n Math.max(0, top),\n Math.max(0, left),\n tuiGetDuration(this.speed) / 3,\n )\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe();\n }\n}\n","<ng-container *ngIf=\"changes$ | async\" />\n<ng-content />\n","import {NgIf} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, inject, Input} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {RouterLinkActive} from '@angular/router';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\nimport {TUI_COMMON_ICONS} from '@taiga-ui/core/tokens';\nimport {EMPTY, filter} from 'rxjs';\n\nimport {TuiStepperComponent} from './stepper.component';\n\n@Component({\n standalone: true,\n selector:\n 'button[tuiStep], a[tuiStep]:not([routerLink]), a[tuiStep][routerLink][routerLinkActive]',\n imports: [NgIf, TuiIcon],\n templateUrl: './step.template.html',\n styleUrls: ['./step.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n type: 'button',\n '[attr.data-state]': 'stepState',\n '[class._vertical]': 'isVertical',\n '[class._focus-visible]': 'focusVisible',\n '[class._active]': 'isActive',\n '[tabIndex]': 'tabIndex',\n '(click)': 'activate()',\n },\n})\nexport class TuiStep {\n private readonly stepper = inject(TuiStepperComponent);\n private readonly el = tuiInjectElement();\n protected readonly $ = (\n inject(RouterLinkActive, {optional: true})?.isActiveChange.asObservable() ?? EMPTY\n )\n .pipe(filter(Boolean), takeUntilDestroyed())\n .subscribe(() => this.activate());\n\n protected focusVisible = false;\n\n protected readonly icons = inject(TUI_COMMON_ICONS);\n\n @Input()\n public stepState: 'error' | 'normal' | 'pass' = 'normal';\n\n @Input()\n public icon = '';\n\n protected get isActive(): boolean {\n return this.stepper.isActive(this.index);\n }\n\n protected get isVertical(): boolean {\n return this.stepper.orientation === 'vertical';\n }\n\n protected get tabIndex(): number {\n return this.isActive ? 0 : -1;\n }\n\n protected get index(): number {\n return this.stepper.indexOf(this.el);\n }\n\n protected activate(): void {\n this.stepper.activate(this.index);\n }\n}\n","<tui-icon\n *ngIf=\"icon\"\n class=\"t-marker t-marker_custom\"\n [icon]=\"icon\"\n/>\n<tui-icon\n class=\"t-marker t-marker_error\"\n [icon]=\"icons.error\"\n/>\n<tui-icon\n class=\"t-marker t-marker_pass\"\n [icon]=\"icons.check\"\n/>\n<div class=\"t-marker t-marker_index\"></div>\n<ng-content />\n","import {TuiStep} from './step.component';\nimport {TuiStepperComponent} from './stepper.component';\n\nexport const TuiStepper = [TuiStepperComponent, TuiStep] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|