@taiga-ui/kit 4.74.0 → 4.75.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/line-clamp/line-clamp.component.d.ts +3 -3
- package/components/multi-select/multi-select-group/multi-select-group.directive.d.ts +1 -0
- package/components/shrink-wrap/shrink-wrap.directive.d.ts +1 -1
- package/components/tiles/tile-handle.directive.d.ts +1 -0
- package/components/toast/toast.directive.d.ts +3 -2
- package/esm2022/components/files/files.validators.mjs +3 -3
- package/esm2022/components/line-clamp/line-clamp.component.mjs +2 -2
- package/esm2022/components/multi-select/multi-select-group/multi-select-group.directive.mjs +8 -2
- package/esm2022/components/multi-select/multi-select-option/multi-select-option.component.mjs +5 -3
- package/esm2022/components/select/select-option/select-option.component.mjs +5 -2
- package/esm2022/components/shrink-wrap/shrink-wrap.directive.mjs +3 -3
- package/esm2022/components/tiles/tile-handle.directive.mjs +18 -25
- package/esm2022/components/tiles/tiles.component.mjs +2 -2
- package/esm2022/components/toast/toast.component.mjs +1 -1
- package/esm2022/components/toast/toast.directive.mjs +19 -9
- package/esm2022/pipes/filter-by-input/filter-by-input.pipe.mjs +3 -2
- package/fesm2022/taiga-ui-kit-components-files.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-files.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-line-clamp.mjs +1 -1
- package/fesm2022/taiga-ui-kit-components-line-clamp.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-multi-select.mjs +13 -5
- package/fesm2022/taiga-ui-kit-components-multi-select.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-select.mjs +4 -1
- package/fesm2022/taiga-ui-kit-components-select.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-shrink-wrap.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-shrink-wrap.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-tiles.mjs +19 -26
- package/fesm2022/taiga-ui-kit-components-tiles.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-toast.mjs +19 -9
- package/fesm2022/taiga-ui-kit-components-toast.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-pipes-filter-by-input.mjs +2 -1
- package/fesm2022/taiga-ui-kit-pipes-filter-by-input.mjs.map +1 -1
- package/package.json +28 -28
- package/pipes/filter-by-input/filter-by-input.pipe.d.ts +1 -0
- package/styles/components/toast.less +1 -1
|
@@ -93,8 +93,9 @@ class TuiSelectOption {
|
|
|
93
93
|
this.scrolled = tuiDirectiveBinding(TuiScrollIntoView, 'tuiScrollIntoView', this.selected);
|
|
94
94
|
}
|
|
95
95
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiSelectOption, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
96
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiSelectOption, isStandalone: true, selector: "ng-component", host: { attributes: { "tuiSelectOption": "" }, properties: { "class._value": "option", "class._selected": "selected()" } }, providers: [tuiCheckboxOptionsProvider({ appearance: () => 'action' })], hostDirectives: [{ directive: i1$1.TuiScrollIntoView }], ngImport: i0, template: `
|
|
96
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiSelectOption, isStandalone: true, selector: "ng-component", host: { attributes: { "tuiSelectOption": "" }, properties: { "class._value": "option", "class._selected": "selected()", "attr.aria-selected": "selected()" } }, providers: [tuiCheckboxOptionsProvider({ appearance: () => 'action' })], hostDirectives: [{ directive: i1$1.TuiScrollIntoView }], ngImport: i0, template: `
|
|
97
97
|
<input
|
|
98
|
+
aria-hidden="true"
|
|
98
99
|
tuiCheckbox
|
|
99
100
|
type="checkbox"
|
|
100
101
|
class="t-check"
|
|
@@ -107,6 +108,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
107
108
|
type: Component,
|
|
108
109
|
args: [{ standalone: true, imports: [TuiCheckbox], template: `
|
|
109
110
|
<input
|
|
111
|
+
aria-hidden="true"
|
|
110
112
|
tuiCheckbox
|
|
111
113
|
type="checkbox"
|
|
112
114
|
class="t-check"
|
|
@@ -117,6 +119,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
117
119
|
tuiSelectOption: '',
|
|
118
120
|
'[class._value]': 'option',
|
|
119
121
|
'[class._selected]': 'selected()',
|
|
122
|
+
'[attr.aria-selected]': 'selected()',
|
|
120
123
|
}, styles: [":host._value>.t-check{order:100;margin-inline-start:auto;pointer-events:none}:host._value._selected~::ng-deep [tuiSelectOption]>.t-check:before{opacity:0}:host:not(._value)>.t-check,:host-context(tui-dropdown-mobile:not(._sheet))>.t-check{display:none}.t-check:before{inline-size:100%;block-size:100%}\n"] }]
|
|
121
124
|
}] });
|
|
122
125
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-kit-components-select.mjs","sources":["../../../projects/kit/components/select/native-select/native-select.component.ts","../../../projects/kit/components/select/native-select/native-select.template.html","../../../projects/kit/components/select/select-option/select-option.component.ts","../../../projects/kit/components/select/select.directive.ts","../../../projects/kit/components/select/select.ts","../../../projects/kit/components/select/taiga-ui-kit-components-select.ts"],"sourcesContent":["import {NgForOf, NgIf, NgTemplateOutlet} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n type ElementRef,\n inject,\n Input,\n type QueryList,\n signal,\n ViewChildren,\n} from '@angular/core';\nimport {tuiAsControl, TuiControl} from '@taiga-ui/cdk/classes';\nimport {EMPTY_QUERY, TUI_ALLOW_SIGNAL_WRITES} from '@taiga-ui/cdk/constants';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n tuiAsTextfieldAccessor,\n type TuiTextfieldAccessor,\n TuiTextfieldDirective,\n TuiWithTextfield,\n} from '@taiga-ui/core/components/textfield';\nimport {\n TUI_ITEMS_HANDLERS,\n type TuiItemsHandlers,\n} from '@taiga-ui/core/directives/items-handlers';\nimport {tuiIsFlat} from '@taiga-ui/kit/utils';\n\n@Component({\n standalone: true,\n selector: 'select[tuiSelect]',\n imports: [NgForOf, NgIf, NgTemplateOutlet],\n templateUrl: './native-select.template.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiAsTextfieldAccessor(TuiNativeSelect), tuiAsControl(TuiNativeSelect)],\n hostDirectives: [TuiWithTextfield],\n host: {\n '[attr.aria-invalid]': 'invalid()',\n '[disabled]': '!interactive()',\n '(change)': 'selectOption($event.target.options.selectedIndex)',\n },\n})\nexport class TuiNativeSelect<T>\n extends TuiControl<T | null>\n implements TuiTextfieldAccessor<T>\n{\n private readonly textfield = inject(TuiTextfieldDirective);\n private readonly options =\n signal<QueryList<ElementRef<HTMLOptionElement>>>(EMPTY_QUERY);\n\n protected readonly isFlat = tuiIsFlat;\n protected readonly placeholder = signal('');\n protected readonly itemsHandlers: TuiItemsHandlers<T> = inject(TUI_ITEMS_HANDLERS);\n\n protected readonly stringified = computed((value = this.value()) =>\n tuiIsPresent(value) ? this.itemsHandlers.stringify()(value) : '',\n );\n\n protected readonly isSelected = computed(\n (value = this.value()) =>\n (x: T) =>\n tuiIsPresent(value) && this.itemsHandlers.identityMatcher()(x, value),\n );\n\n protected readonly valueEffect = effect(() => {\n /**\n * Wait until all `<option>`-s are inside DOM.\n * Otherwise\n * ```\n * document.querySelector('select').value = 'even upcoming valid value';\n * // same as\n * document.querySelector('select').value = '';\n * ```\n * (it breaks `tuiValue` utility logic)\n */\n if (this.options().length) {\n this.textfield.value.set(this.stringified());\n }\n }, TUI_ALLOW_SIGNAL_WRITES);\n\n @Input()\n public items: ReadonlyArray<readonly T[]> | readonly T[] | null = [];\n\n @Input()\n public labels: readonly string[] = [];\n\n // TODO(v5): use signal inputs\n @Input('placeholder')\n public set placeholderSetter(x: string) {\n this.placeholder.set(x);\n }\n\n public setValue(value: T | null): void {\n this.onChange(value);\n }\n\n @ViewChildren('optionRef')\n protected set optionsSetter(options: QueryList<ElementRef<HTMLOptionElement>>) {\n this.options.set(options);\n }\n\n protected selectOption(index: number): void {\n const items = (this.items?.flat() ?? []) as T[];\n const placeholderOffset = this.stringified() ? 0 : 1;\n\n this.onChange(items[index - placeholderOffset] ?? null);\n }\n}\n","<option\n *ngIf=\"!stringified()\"\n disabled\n selected\n value=\"\"\n>\n {{ placeholder() }}\n</option>\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>\n\n<ng-template #flatItems>\n <ng-container *ngTemplateOutlet=\"options; context: {$implicit: items}\" />\n</ng-template>\n\n<ng-template\n #options\n let-items\n>\n <option\n *ngFor=\"let option of items\"\n #optionRef\n [disabled]=\"itemsHandlers.disabledItemHandler()(option)\"\n [selected]=\"isSelected()(option)\"\n [value]=\"itemsHandlers.stringify()(option)\"\n >\n {{ itemsHandlers.stringify()(option) }}\n </option>\n</ng-template>\n","import {ChangeDetectionStrategy, Component, computed, inject} from '@angular/core';\nimport {tuiDirectiveBinding, tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n TuiDataListComponent,\n TuiOptionWithValue,\n} from '@taiga-ui/core/components/data-list';\nimport {TuiScrollIntoView} from '@taiga-ui/core/components/scrollbar';\nimport {\n TUI_ITEMS_HANDLERS,\n type TuiItemsHandlers,\n} from '@taiga-ui/core/directives/items-handlers';\nimport {TuiCheckbox, tuiCheckboxOptionsProvider} from '@taiga-ui/kit/components/checkbox';\nimport {tuiInjectValue} from '@taiga-ui/kit/utils';\n\n@Component({\n standalone: true,\n imports: [TuiCheckbox],\n template: `\n <input\n tuiCheckbox\n type=\"checkbox\"\n class=\"t-check\"\n [checked]=\"selected()\"\n [size]=\"datalist.size === 'l' ? 'm' : 's'\"\n />\n `,\n styleUrls: ['./select-option.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiCheckboxOptionsProvider({appearance: () => 'action'})],\n hostDirectives: [TuiScrollIntoView],\n host: {\n tuiSelectOption: '',\n '[class._value]': 'option',\n '[class._selected]': 'selected()',\n },\n})\nexport class TuiSelectOption<T> {\n private readonly handlers: TuiItemsHandlers<T> = inject(TUI_ITEMS_HANDLERS);\n private readonly value = tuiInjectValue<T>();\n\n protected readonly datalist = inject(TuiDataListComponent);\n protected readonly option = inject<TuiOptionWithValue<T>>(TuiOptionWithValue, {\n optional: true,\n });\n\n protected readonly selected = computed(\n (controlValue = this.value(), optionValue = this.option?.value()) =>\n tuiIsPresent(optionValue) &&\n tuiIsPresent(controlValue) &&\n this.handlers.identityMatcher()(controlValue, optionValue),\n );\n\n protected readonly scrolled = tuiDirectiveBinding(\n TuiScrollIntoView,\n 'tuiScrollIntoView',\n this.selected,\n );\n}\n","import {Directive, effect, inject} from '@angular/core';\nimport {tuiAsControl, TuiControl} from '@taiga-ui/cdk/classes';\nimport {TUI_ALLOW_SIGNAL_WRITES} from '@taiga-ui/cdk/constants';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiAsOptionContent} from '@taiga-ui/core/components/data-list';\nimport {\n tuiAsTextfieldAccessor,\n TuiSelectLike,\n type TuiTextfieldAccessor,\n TuiTextfieldDirective,\n TuiWithTextfield,\n} from '@taiga-ui/core/components/textfield';\nimport {tuiDropdownEnabled, tuiDropdownOpen} from '@taiga-ui/core/directives/dropdown';\nimport {\n TUI_ITEMS_HANDLERS,\n type TuiItemsHandlers,\n} from '@taiga-ui/core/directives/items-handlers';\n\nimport {TuiSelectOption} from './select-option/select-option.component';\n\n@Directive({\n standalone: true,\n selector: 'input[tuiSelect]',\n providers: [\n tuiAsOptionContent(TuiSelectOption),\n tuiAsTextfieldAccessor(TuiSelectDirective),\n tuiAsControl(TuiSelectDirective),\n ],\n hostDirectives: [TuiWithTextfield, TuiSelectLike],\n host: {\n '[disabled]': 'disabled()',\n '(input)': '$event.inputType?.includes(\"delete\") && setValue(null)',\n },\n})\nexport class TuiSelectDirective<T>\n extends TuiControl<T | null>\n implements TuiTextfieldAccessor<T>\n{\n private readonly textfield = inject(TuiTextfieldDirective);\n private readonly open = tuiDropdownOpen();\n private readonly itemsHandlers: TuiItemsHandlers<T> = inject(TUI_ITEMS_HANDLERS);\n\n protected readonly dropdownEnabled = tuiDropdownEnabled(this.interactive);\n protected readonly valueEffect = effect(() => {\n const value = this.value();\n const string = tuiIsPresent(value) ? this.itemsHandlers.stringify()(value) : '';\n\n this.textfield.value.set(string);\n }, TUI_ALLOW_SIGNAL_WRITES);\n\n public setValue(value: T | null): void {\n this.onChange(value);\n\n if (!value) {\n this.open.set(true);\n }\n }\n}\n","import {TuiNativeSelect} from './native-select/native-select.component';\nimport {TuiSelectDirective} from './select.directive';\n\nexport const TuiSelect = [TuiSelectDirective, TuiNativeSelect] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-kit-components-select.mjs","sources":["../../../projects/kit/components/select/native-select/native-select.component.ts","../../../projects/kit/components/select/native-select/native-select.template.html","../../../projects/kit/components/select/select-option/select-option.component.ts","../../../projects/kit/components/select/select.directive.ts","../../../projects/kit/components/select/select.ts","../../../projects/kit/components/select/taiga-ui-kit-components-select.ts"],"sourcesContent":["import {NgForOf, NgIf, NgTemplateOutlet} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n type ElementRef,\n inject,\n Input,\n type QueryList,\n signal,\n ViewChildren,\n} from '@angular/core';\nimport {tuiAsControl, TuiControl} from '@taiga-ui/cdk/classes';\nimport {EMPTY_QUERY, TUI_ALLOW_SIGNAL_WRITES} from '@taiga-ui/cdk/constants';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n tuiAsTextfieldAccessor,\n type TuiTextfieldAccessor,\n TuiTextfieldDirective,\n TuiWithTextfield,\n} from '@taiga-ui/core/components/textfield';\nimport {\n TUI_ITEMS_HANDLERS,\n type TuiItemsHandlers,\n} from '@taiga-ui/core/directives/items-handlers';\nimport {tuiIsFlat} from '@taiga-ui/kit/utils';\n\n@Component({\n standalone: true,\n selector: 'select[tuiSelect]',\n imports: [NgForOf, NgIf, NgTemplateOutlet],\n templateUrl: './native-select.template.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiAsTextfieldAccessor(TuiNativeSelect), tuiAsControl(TuiNativeSelect)],\n hostDirectives: [TuiWithTextfield],\n host: {\n '[attr.aria-invalid]': 'invalid()',\n '[disabled]': '!interactive()',\n '(change)': 'selectOption($event.target.options.selectedIndex)',\n },\n})\nexport class TuiNativeSelect<T>\n extends TuiControl<T | null>\n implements TuiTextfieldAccessor<T>\n{\n private readonly textfield = inject(TuiTextfieldDirective);\n private readonly options =\n signal<QueryList<ElementRef<HTMLOptionElement>>>(EMPTY_QUERY);\n\n protected readonly isFlat = tuiIsFlat;\n protected readonly placeholder = signal('');\n protected readonly itemsHandlers: TuiItemsHandlers<T> = inject(TUI_ITEMS_HANDLERS);\n\n protected readonly stringified = computed((value = this.value()) =>\n tuiIsPresent(value) ? this.itemsHandlers.stringify()(value) : '',\n );\n\n protected readonly isSelected = computed(\n (value = this.value()) =>\n (x: T) =>\n tuiIsPresent(value) && this.itemsHandlers.identityMatcher()(x, value),\n );\n\n protected readonly valueEffect = effect(() => {\n /**\n * Wait until all `<option>`-s are inside DOM.\n * Otherwise\n * ```\n * document.querySelector('select').value = 'even upcoming valid value';\n * // same as\n * document.querySelector('select').value = '';\n * ```\n * (it breaks `tuiValue` utility logic)\n */\n if (this.options().length) {\n this.textfield.value.set(this.stringified());\n }\n }, TUI_ALLOW_SIGNAL_WRITES);\n\n @Input()\n public items: ReadonlyArray<readonly T[]> | readonly T[] | null = [];\n\n @Input()\n public labels: readonly string[] = [];\n\n // TODO(v5): use signal inputs\n @Input('placeholder')\n public set placeholderSetter(x: string) {\n this.placeholder.set(x);\n }\n\n public setValue(value: T | null): void {\n this.onChange(value);\n }\n\n @ViewChildren('optionRef')\n protected set optionsSetter(options: QueryList<ElementRef<HTMLOptionElement>>) {\n this.options.set(options);\n }\n\n protected selectOption(index: number): void {\n const items = (this.items?.flat() ?? []) as T[];\n const placeholderOffset = this.stringified() ? 0 : 1;\n\n this.onChange(items[index - placeholderOffset] ?? null);\n }\n}\n","<option\n *ngIf=\"!stringified()\"\n disabled\n selected\n value=\"\"\n>\n {{ placeholder() }}\n</option>\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>\n\n<ng-template #flatItems>\n <ng-container *ngTemplateOutlet=\"options; context: {$implicit: items}\" />\n</ng-template>\n\n<ng-template\n #options\n let-items\n>\n <option\n *ngFor=\"let option of items\"\n #optionRef\n [disabled]=\"itemsHandlers.disabledItemHandler()(option)\"\n [selected]=\"isSelected()(option)\"\n [value]=\"itemsHandlers.stringify()(option)\"\n >\n {{ itemsHandlers.stringify()(option) }}\n </option>\n</ng-template>\n","import {ChangeDetectionStrategy, Component, computed, inject} from '@angular/core';\nimport {tuiDirectiveBinding, tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n TuiDataListComponent,\n TuiOptionWithValue,\n} from '@taiga-ui/core/components/data-list';\nimport {TuiScrollIntoView} from '@taiga-ui/core/components/scrollbar';\nimport {\n TUI_ITEMS_HANDLERS,\n type TuiItemsHandlers,\n} from '@taiga-ui/core/directives/items-handlers';\nimport {TuiCheckbox, tuiCheckboxOptionsProvider} from '@taiga-ui/kit/components/checkbox';\nimport {tuiInjectValue} from '@taiga-ui/kit/utils';\n\n@Component({\n standalone: true,\n imports: [TuiCheckbox],\n template: `\n <input\n aria-hidden=\"true\"\n tuiCheckbox\n type=\"checkbox\"\n class=\"t-check\"\n [checked]=\"selected()\"\n [size]=\"datalist.size === 'l' ? 'm' : 's'\"\n />\n `,\n styleUrls: ['./select-option.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiCheckboxOptionsProvider({appearance: () => 'action'})],\n hostDirectives: [TuiScrollIntoView],\n host: {\n tuiSelectOption: '',\n '[class._value]': 'option',\n '[class._selected]': 'selected()',\n '[attr.aria-selected]': 'selected()',\n },\n})\nexport class TuiSelectOption<T> {\n private readonly handlers: TuiItemsHandlers<T> = inject(TUI_ITEMS_HANDLERS);\n private readonly value = tuiInjectValue<T>();\n\n protected readonly datalist = inject(TuiDataListComponent);\n protected readonly option = inject<TuiOptionWithValue<T>>(TuiOptionWithValue, {\n optional: true,\n });\n\n protected readonly selected = computed(\n (controlValue = this.value(), optionValue = this.option?.value()) =>\n tuiIsPresent(optionValue) &&\n tuiIsPresent(controlValue) &&\n this.handlers.identityMatcher()(controlValue, optionValue),\n );\n\n protected readonly scrolled = tuiDirectiveBinding(\n TuiScrollIntoView,\n 'tuiScrollIntoView',\n this.selected,\n );\n}\n","import {Directive, effect, inject} from '@angular/core';\nimport {tuiAsControl, TuiControl} from '@taiga-ui/cdk/classes';\nimport {TUI_ALLOW_SIGNAL_WRITES} from '@taiga-ui/cdk/constants';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiAsOptionContent} from '@taiga-ui/core/components/data-list';\nimport {\n tuiAsTextfieldAccessor,\n TuiSelectLike,\n type TuiTextfieldAccessor,\n TuiTextfieldDirective,\n TuiWithTextfield,\n} from '@taiga-ui/core/components/textfield';\nimport {tuiDropdownEnabled, tuiDropdownOpen} from '@taiga-ui/core/directives/dropdown';\nimport {\n TUI_ITEMS_HANDLERS,\n type TuiItemsHandlers,\n} from '@taiga-ui/core/directives/items-handlers';\n\nimport {TuiSelectOption} from './select-option/select-option.component';\n\n@Directive({\n standalone: true,\n selector: 'input[tuiSelect]',\n providers: [\n tuiAsOptionContent(TuiSelectOption),\n tuiAsTextfieldAccessor(TuiSelectDirective),\n tuiAsControl(TuiSelectDirective),\n ],\n hostDirectives: [TuiWithTextfield, TuiSelectLike],\n host: {\n '[disabled]': 'disabled()',\n '(input)': '$event.inputType?.includes(\"delete\") && setValue(null)',\n },\n})\nexport class TuiSelectDirective<T>\n extends TuiControl<T | null>\n implements TuiTextfieldAccessor<T>\n{\n private readonly textfield = inject(TuiTextfieldDirective);\n private readonly open = tuiDropdownOpen();\n private readonly itemsHandlers: TuiItemsHandlers<T> = inject(TUI_ITEMS_HANDLERS);\n\n protected readonly dropdownEnabled = tuiDropdownEnabled(this.interactive);\n protected readonly valueEffect = effect(() => {\n const value = this.value();\n const string = tuiIsPresent(value) ? this.itemsHandlers.stringify()(value) : '';\n\n this.textfield.value.set(string);\n }, TUI_ALLOW_SIGNAL_WRITES);\n\n public setValue(value: T | null): void {\n this.onChange(value);\n\n if (!value) {\n this.open.set(true);\n }\n }\n}\n","import {TuiNativeSelect} from './native-select/native-select.component';\nimport {TuiSelectDirective} from './select.directive';\n\nexport const TuiSelect = [TuiSelectDirective, TuiNativeSelect] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
|
|
@@ -18,13 +18,13 @@ class TuiShrinkWrapDirective {
|
|
|
18
18
|
return `calc(${this.tuiShrinkWrap || '100%'} + var(--t-shrink-wrap, 0px))`;
|
|
19
19
|
}
|
|
20
20
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiShrinkWrapDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
21
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiShrinkWrapDirective, isStandalone: true, selector: "[tuiShrinkWrap]", inputs: { tuiShrinkWrap: "tuiShrinkWrap" }, host: { attributes: { "tuiShrinkWrap": "" }, properties: { "style.max-inline-size": "size" } }, ngImport: i0 }); }
|
|
21
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiShrinkWrapDirective, isStandalone: true, selector: "[tuiShrinkWrap]:not([tuiToast])", inputs: { tuiShrinkWrap: "tuiShrinkWrap" }, host: { attributes: { "tuiShrinkWrap": "" }, properties: { "style.max-inline-size": "size" } }, ngImport: i0 }); }
|
|
22
22
|
}
|
|
23
23
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiShrinkWrapDirective, decorators: [{
|
|
24
24
|
type: Directive,
|
|
25
25
|
args: [{
|
|
26
26
|
standalone: true,
|
|
27
|
-
selector: '[tuiShrinkWrap]',
|
|
27
|
+
selector: '[tuiShrinkWrap]:not([tuiToast])',
|
|
28
28
|
host: {
|
|
29
29
|
tuiShrinkWrap: '',
|
|
30
30
|
'[style.max-inline-size]': 'size',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-kit-components-shrink-wrap.mjs","sources":["../../../projects/kit/components/shrink-wrap/shrink-wrap.component.ts","../../../projects/kit/components/shrink-wrap/shrink-wrap.directive.ts","../../../projects/kit/components/shrink-wrap/shrink-wrap.ts","../../../projects/kit/components/shrink-wrap/taiga-ui-kit-components-shrink-wrap.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core';\n\n@Component({\n standalone: true,\n selector: 'tui-shrink-wrap',\n template: '<span><ng-content/></span>',\n styleUrls: ['./shrink-wrap.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiShrinkWrapComponent {}\n","import {Directive, Input} from '@angular/core';\n\n@Directive({\n standalone: true,\n selector: '[tuiShrinkWrap]',\n host: {\n tuiShrinkWrap: '',\n '[style.max-inline-size]': 'size',\n },\n})\nexport class TuiShrinkWrapDirective {\n @Input()\n public tuiShrinkWrap = '';\n\n protected get size(): string {\n return `calc(${this.tuiShrinkWrap || '100%'} + var(--t-shrink-wrap, 0px))`;\n }\n}\n","import {TuiShrinkWrapComponent} from './shrink-wrap.component';\nimport {TuiShrinkWrapDirective} from './shrink-wrap.directive';\n\nexport const TuiShrinkWrap = [TuiShrinkWrapDirective, TuiShrinkWrapComponent] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAEA,MAQa,sBAAsB,CAAA;+GAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,2EALrB,4BAA4B,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,y5BAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAK7B,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBARlC,SAAS;iCACM,IAAI,EAAA,QAAA,EACN,iBAAiB,EAAA,QAAA,EACjB,4BAA4B,EAAA,aAAA,EAEvB,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,MAAA,EAAA,CAAA,y5BAAA,CAAA,EAAA,CAAA;;;ACNnD,MAQa,sBAAsB,CAAA;AARnC,IAAA,WAAA,GAAA;QAUW,IAAa,CAAA,aAAA,GAAG,EAAE,CAAC;AAK7B,KAAA;AAHG,IAAA,IAAc,IAAI,GAAA;AACd,QAAA,OAAO,QAAQ,IAAI,CAAC,aAAa,IAAI,MAAM,+BAA+B,CAAC;KAC9E;+GANQ,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,
|
|
1
|
+
{"version":3,"file":"taiga-ui-kit-components-shrink-wrap.mjs","sources":["../../../projects/kit/components/shrink-wrap/shrink-wrap.component.ts","../../../projects/kit/components/shrink-wrap/shrink-wrap.directive.ts","../../../projects/kit/components/shrink-wrap/shrink-wrap.ts","../../../projects/kit/components/shrink-wrap/taiga-ui-kit-components-shrink-wrap.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core';\n\n@Component({\n standalone: true,\n selector: 'tui-shrink-wrap',\n template: '<span><ng-content/></span>',\n styleUrls: ['./shrink-wrap.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiShrinkWrapComponent {}\n","import {Directive, Input} from '@angular/core';\n\n@Directive({\n standalone: true,\n selector: '[tuiShrinkWrap]:not([tuiToast])',\n host: {\n tuiShrinkWrap: '',\n '[style.max-inline-size]': 'size',\n },\n})\nexport class TuiShrinkWrapDirective {\n @Input()\n public tuiShrinkWrap = '';\n\n protected get size(): string {\n return `calc(${this.tuiShrinkWrap || '100%'} + var(--t-shrink-wrap, 0px))`;\n }\n}\n","import {TuiShrinkWrapComponent} from './shrink-wrap.component';\nimport {TuiShrinkWrapDirective} from './shrink-wrap.directive';\n\nexport const TuiShrinkWrap = [TuiShrinkWrapDirective, TuiShrinkWrapComponent] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAEA,MAQa,sBAAsB,CAAA;+GAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,2EALrB,4BAA4B,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,y5BAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAK7B,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBARlC,SAAS;iCACM,IAAI,EAAA,QAAA,EACN,iBAAiB,EAAA,QAAA,EACjB,4BAA4B,EAAA,aAAA,EAEvB,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,MAAA,EAAA,CAAA,y5BAAA,CAAA,EAAA,CAAA;;;ACNnD,MAQa,sBAAsB,CAAA;AARnC,IAAA,WAAA,GAAA;QAUW,IAAa,CAAA,aAAA,GAAG,EAAE,CAAC;AAK7B,KAAA;AAHG,IAAA,IAAc,IAAI,GAAA;AACd,QAAA,OAAO,QAAQ,IAAI,CAAC,aAAa,IAAI,MAAM,+BAA+B,CAAC;KAC9E;+GANQ,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,EAAA,EAAA,EAAA,UAAA,EAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBARlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,iCAAiC;AAC3C,oBAAA,IAAI,EAAE;AACF,wBAAA,aAAa,EAAE,EAAE;AACjB,wBAAA,yBAAyB,EAAE,MAAM;AACpC,qBAAA;AACJ,iBAAA,CAAA;8BAGU,aAAa,EAAA,CAAA;sBADnB,KAAK;;;MCRG,aAAa,GAAG,CAAC,sBAAsB,EAAE,sBAAsB;;ACH5E;;AAEG;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, inject, signal, Component, ViewEncapsulation, ChangeDetectionStrategy, Input, Output, PLATFORM_ID, Injectable, ViewChild, Directive } from '@angular/core';
|
|
2
|
+
import { InjectionToken, inject, signal, Component, ViewEncapsulation, ChangeDetectionStrategy, Input, Output, PLATFORM_ID, Injectable, ViewChild, NgZone, Directive } from '@angular/core';
|
|
3
3
|
import { tuiInjectElement, tuiGetActualTarget, tuiIsElement } from '@taiga-ui/cdk/utils/dom';
|
|
4
4
|
import { isPlatformBrowser } from '@angular/common';
|
|
5
5
|
import { WaMutationObserverService, WA_MUTATION_OBSERVER_INIT } from '@ng-web-apis/mutation-observer';
|
|
@@ -7,8 +7,6 @@ import { WaResizeObserverService } from '@ng-web-apis/resize-observer';
|
|
|
7
7
|
import { tuiZonefreeScheduler } from '@taiga-ui/cdk/observables';
|
|
8
8
|
import { tuiArrayShallowEquals, tuiPx } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
9
9
|
import { Subject, debounce, timer, filter, map, BehaviorSubject, Subscription, combineLatest, distinctUntilChanged, startWith, debounceTime } from 'rxjs';
|
|
10
|
-
import { __decorate } from 'tslib';
|
|
11
|
-
import { shouldCall } from '@taiga-ui/event-plugins';
|
|
12
10
|
|
|
13
11
|
const tuiTilesSwap = (order, currentIndex, newIndex) => {
|
|
14
12
|
if (!order.has(currentIndex) || !order.has(newIndex)) {
|
|
@@ -86,7 +84,7 @@ class TuiTilesComponent {
|
|
|
86
84
|
provide: WA_MUTATION_OBSERVER_INIT,
|
|
87
85
|
useValue: { childList: true },
|
|
88
86
|
},
|
|
89
|
-
], ngImport: i0, template: '<ng-content />', isInline: true, styles: ["tui-tiles{position:relative;z-index:0;display:grid;grid-auto-flow:dense;justify-items:stretch}tui-tiles._dragged tui-tile>.t-wrapper{pointer-events:none}tui-tiles._dragged tui-tile:not(._dragged)>.t-wrapper,tui-tiles:not(._dragged) tui-tile._dragged>.t-wrapper{transition-property:all;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;transition-delay:1ms}tui-tile>.t-wrapper{position:absolute;z-index:0;border-radius:inherit}tui-tile._dragged>.t-wrapper,tui-tile:has(tui-tile._dragged)>.t-wrapper{z-index:1}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
87
|
+
], ngImport: i0, template: '<ng-content />', isInline: true, styles: ["tui-tiles{position:relative;z-index:0;display:grid;grid-auto-flow:dense;justify-items:stretch}tui-tiles._dragged tui-tile>.t-wrapper{pointer-events:none}tui-tiles._dragged tui-tile:not(._dragged)>.t-wrapper,tui-tiles:not(._dragged) tui-tile._dragged>.t-wrapper{transition-property:all;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;transition-delay:1ms}tui-tile>.t-wrapper{position:absolute;z-index:0;border-radius:inherit}tui-tile._dragged>.t-wrapper,tui-tile:has(tui-tile._dragged)>.t-wrapper{z-index:1}tui-tile [tuiTileHandle]{touch-action:none;-webkit-user-select:none;user-select:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
90
88
|
}
|
|
91
89
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiTilesComponent, decorators: [{
|
|
92
90
|
type: Component,
|
|
@@ -99,7 +97,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
99
97
|
},
|
|
100
98
|
], host: {
|
|
101
99
|
'(pointerleave.zoneless)': 'rearrange()',
|
|
102
|
-
}, styles: ["tui-tiles{position:relative;z-index:0;display:grid;grid-auto-flow:dense;justify-items:stretch}tui-tiles._dragged tui-tile>.t-wrapper{pointer-events:none}tui-tiles._dragged tui-tile:not(._dragged)>.t-wrapper,tui-tiles:not(._dragged) tui-tile._dragged>.t-wrapper{transition-property:all;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;transition-delay:1ms}tui-tile>.t-wrapper{position:absolute;z-index:0;border-radius:inherit}tui-tile._dragged>.t-wrapper,tui-tile:has(tui-tile._dragged)>.t-wrapper{z-index:1}\n"] }]
|
|
100
|
+
}, styles: ["tui-tiles{position:relative;z-index:0;display:grid;grid-auto-flow:dense;justify-items:stretch}tui-tiles._dragged tui-tile>.t-wrapper{pointer-events:none}tui-tiles._dragged tui-tile:not(._dragged)>.t-wrapper,tui-tiles:not(._dragged) tui-tile._dragged>.t-wrapper{transition-property:all;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;transition-delay:1ms}tui-tile>.t-wrapper{position:absolute;z-index:0;border-radius:inherit}tui-tile._dragged>.t-wrapper,tui-tile:has(tui-tile._dragged)>.t-wrapper{z-index:1}tui-tile [tuiTileHandle]{touch-action:none;-webkit-user-select:none;user-select:none}\n"] }]
|
|
103
101
|
}], propDecorators: { debounce: [{
|
|
104
102
|
type: Input
|
|
105
103
|
}], orderChange: [{
|
|
@@ -250,26 +248,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
250
248
|
type: Input
|
|
251
249
|
}] } });
|
|
252
250
|
|
|
253
|
-
function isInteracting(x = NaN) {
|
|
254
|
-
return !Number.isNaN(x) || !Number.isNaN(this['x']);
|
|
255
|
-
}
|
|
256
|
-
function isDragging() {
|
|
257
|
-
return !Number.isNaN(this['x']);
|
|
258
|
-
}
|
|
259
251
|
class TuiTileHandle {
|
|
260
252
|
constructor() {
|
|
253
|
+
this.zone = inject(NgZone);
|
|
261
254
|
this.tile = inject(TuiTile);
|
|
262
255
|
this.x = NaN;
|
|
263
256
|
this.y = NaN;
|
|
264
257
|
}
|
|
265
258
|
onPointer(x = NaN, y = NaN) {
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
259
|
+
if (!Number.isNaN(x) || !Number.isNaN(this.x)) {
|
|
260
|
+
this.zone.run(() => {
|
|
261
|
+
const { left, top } = this.tile.element.getBoundingClientRect();
|
|
262
|
+
this.x = x - left;
|
|
263
|
+
this.y = y - top;
|
|
264
|
+
this.tile.onDrag([NaN, NaN]);
|
|
265
|
+
});
|
|
266
|
+
}
|
|
270
267
|
}
|
|
271
268
|
onMove(x, y) {
|
|
272
|
-
|
|
269
|
+
if (!Number.isNaN(this.x)) {
|
|
270
|
+
this.zone.run(() => {
|
|
271
|
+
this.tile.onDrag([x - this.x, y - this.y]);
|
|
272
|
+
});
|
|
273
|
+
}
|
|
273
274
|
}
|
|
274
275
|
onStart(event) {
|
|
275
276
|
const target = tuiGetActualTarget(event);
|
|
@@ -280,28 +281,20 @@ class TuiTileHandle {
|
|
|
280
281
|
this.onPointer(x, y);
|
|
281
282
|
}
|
|
282
283
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiTileHandle, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
283
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiTileHandle, isStandalone: true, selector: "[tuiTileHandle]", host: { listeners: { "pointerdown.zoneless.prevent": "onStart($event)", "document:pointerup.zoneless": "onPointer()", "document:pointermove.zoneless": "onMove($event.x, $event.y)" }
|
|
284
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiTileHandle, isStandalone: true, selector: "[tuiTileHandle]", host: { listeners: { "pointerdown.zoneless.prevent": "onStart($event)", "document:pointerup.zoneless": "onPointer()", "document:pointermove.zoneless": "onMove($event.x, $event.y)" } }, ngImport: i0 }); }
|
|
284
285
|
}
|
|
285
|
-
__decorate([
|
|
286
|
-
shouldCall(isInteracting)
|
|
287
|
-
], TuiTileHandle.prototype, "onPointer", null);
|
|
288
|
-
__decorate([
|
|
289
|
-
shouldCall(isDragging)
|
|
290
|
-
], TuiTileHandle.prototype, "onMove", null);
|
|
291
286
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiTileHandle, decorators: [{
|
|
292
287
|
type: Directive,
|
|
293
288
|
args: [{
|
|
294
289
|
standalone: true,
|
|
295
290
|
selector: '[tuiTileHandle]',
|
|
296
291
|
host: {
|
|
297
|
-
'[style.touchAction]': '"none"',
|
|
298
|
-
'[style.userSelect]': '"none"',
|
|
299
292
|
'(pointerdown.zoneless.prevent)': 'onStart($event)',
|
|
300
293
|
'(document:pointerup.zoneless)': 'onPointer()',
|
|
301
294
|
'(document:pointermove.zoneless)': 'onMove($event.x, $event.y)',
|
|
302
295
|
},
|
|
303
296
|
}]
|
|
304
|
-
}]
|
|
297
|
+
}] });
|
|
305
298
|
|
|
306
299
|
const TuiTiles = [TuiTilesComponent, TuiTile, TuiTileHandle];
|
|
307
300
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-kit-components-tiles.mjs","sources":["../../../projects/kit/components/tiles/tiles.tokens.ts","../../../projects/kit/components/tiles/tiles.component.ts","../../../projects/kit/components/tiles/tile.service.ts","../../../projects/kit/components/tiles/tile.component.ts","../../../projects/kit/components/tiles/tile.template.html","../../../projects/kit/components/tiles/tile-handle.directive.ts","../../../projects/kit/components/tiles/tiles.ts","../../../projects/kit/components/tiles/taiga-ui-kit-components-tiles.ts"],"sourcesContent":["import {InjectionToken} from '@angular/core';\n\nexport type TuiReorderFunction = (\n order: Map<number, number>,\n currentIndex: number,\n newIndex: number,\n) => Map<number, number>;\n\nexport const tuiTilesSwap: TuiReorderFunction = (order, currentIndex, newIndex) => {\n if (!order.has(currentIndex) || !order.has(newIndex)) {\n return order;\n }\n\n const dragged = order.get(currentIndex) ?? currentIndex;\n const placement = order.get(newIndex) ?? newIndex;\n const newOrder = new Map(order);\n\n newOrder.set(currentIndex, placement);\n newOrder.set(newIndex, dragged);\n\n return newOrder;\n};\n\nexport const tuiTilesShift: TuiReorderFunction = (order, currentIndex, newIndex) => {\n if (!order.has(currentIndex) || !order.has(newIndex)) {\n return order;\n }\n\n const dragged = order.get(currentIndex) ?? currentIndex;\n const placement = order.get(newIndex) ?? newIndex;\n const newOrder = new Map(order);\n const flipped = new Map(Array.from(order).map(([a, b]) => [b, a]));\n\n if ((placement - dragged) / Math.abs(placement - dragged) > 0) {\n for (let i = placement; i > dragged; i--) {\n newOrder.set(flipped.get(i) ?? i, i - 1);\n }\n } else {\n for (let i = placement; i < dragged; i++) {\n newOrder.set(flipped.get(i) ?? i, i + 1);\n }\n }\n\n newOrder.set(currentIndex, placement);\n\n return newOrder;\n};\n\nexport const TUI_TILES_REORDER = new InjectionToken<TuiReorderFunction>(\n ngDevMode ? 'TUI_TILES_REORDER' : '',\n {\n factory: () => tuiTilesSwap,\n },\n);\n","import {\n ChangeDetectionStrategy,\n Component,\n inject,\n Input,\n Output,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n WaMutationObserverService,\n WA_MUTATION_OBSERVER_INIT,\n} from '@ng-web-apis/mutation-observer';\nimport {WaResizeObserverService} from '@ng-web-apis/resize-observer';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {BehaviorSubject, debounce, filter, map, Subject, timer} from 'rxjs';\n\nimport {TUI_TILES_REORDER} from './tiles.tokens';\n\n@Component({\n standalone: true,\n selector: 'tui-tiles',\n template: '<ng-content />',\n styleUrls: ['./tiles.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n WaResizeObserverService,\n WaMutationObserverService,\n {\n provide: WA_MUTATION_OBSERVER_INIT,\n useValue: {childList: true},\n },\n ],\n host: {\n '(pointerleave.zoneless)': 'rearrange()',\n },\n})\nexport class TuiTilesComponent {\n private readonly el$ = new Subject<Element | undefined>();\n private readonly handler = inject(TUI_TILES_REORDER);\n\n @Input()\n public debounce = 0;\n\n @Output()\n public readonly orderChange = this.el$.pipe(\n debounce(() => timer(this.debounce)),\n filter(this.filter.bind(this)),\n map((element) => this.reorder(element)),\n );\n\n public readonly element = signal<Element | null>(null);\n public readonly el = tuiInjectElement();\n\n public readonly order$ = new BehaviorSubject(new Map<number, number>());\n\n @Input()\n public set order(map: Map<number, number>) {\n this.order$.next(map);\n }\n\n public get order(): Map<number, number> {\n return this.order$.value;\n }\n\n public rearrange(element?: Element): void {\n this.el$.next(element);\n }\n\n private filter(element?: Element): element is Element {\n return !!this.element() && !!element && this.element() !== element;\n }\n\n private reorder(element: Element): Map<number, number> {\n const elements = Array.from(this.el.children);\n const currentIndex = elements.indexOf(this.element() || element);\n const newIndex = elements.indexOf(element);\n const order = this.order.size\n ? new Map(this.order)\n : new Map(elements.map((_, index) => [index, index]));\n\n this.order$.next(this.handler(order, currentIndex, newIndex));\n\n return this.order$.value;\n }\n}\n","import {isPlatformBrowser} from '@angular/common';\nimport {inject, Injectable, type OnDestroy, PLATFORM_ID} from '@angular/core';\nimport {WaMutationObserverService} from '@ng-web-apis/mutation-observer';\nimport {WaResizeObserverService} from '@ng-web-apis/resize-observer';\nimport {tuiZonefreeScheduler} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiArrayShallowEquals, tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n BehaviorSubject,\n combineLatest,\n debounceTime,\n distinctUntilChanged,\n map,\n type Observable,\n startWith,\n Subscription,\n} from 'rxjs';\n\nimport {TuiTilesComponent} from './tiles.component';\n\n@Injectable()\nexport class TuiTileService implements OnDestroy {\n private readonly isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n private readonly el = tuiInjectElement();\n private readonly tiles = inject(TuiTilesComponent);\n private readonly sub = new Subscription();\n private readonly offset$ = new BehaviorSubject<readonly [number, number]>([NaN, NaN]);\n private readonly position$: Observable<readonly [number, number]> = combineLatest([\n this.offset$.pipe(distinctUntilChanged(tuiArrayShallowEquals)),\n inject(WaResizeObserverService).pipe(startWith(null)),\n inject(WaMutationObserverService).pipe(startWith(null)),\n this.tiles.order$.pipe(debounceTime(0, tuiZonefreeScheduler())),\n ]).pipe(map(([offset]) => offset));\n\n public init(element: HTMLElement): void {\n if (this.isBrowser) {\n this.sub.add(\n this.position$.subscribe((offset) => {\n this.setPosition(element, offset);\n this.setRect(element, offset);\n }),\n );\n } else {\n this.el.style.setProperty('position', 'relative');\n }\n }\n\n public setOffset(offset: readonly [number, number]): void {\n this.offset$.next(offset);\n }\n\n public ngOnDestroy(): void {\n this.sub.unsubscribe();\n }\n\n private getRect([left, top]: readonly [number, number]): DOMRect {\n const elTop = Number.isNaN(top) ? this.el.offsetTop : top;\n const elLeft = Number.isNaN(left) ? this.el.offsetLeft : left;\n\n const rect = {\n top: elTop,\n left: elLeft,\n width: this.el.clientWidth,\n height: this.el.clientHeight,\n right: NaN,\n bottom: NaN,\n y: elTop,\n x: elLeft,\n };\n\n return {\n ...rect,\n toJSON: () => JSON.stringify(rect),\n };\n }\n\n private setRect({style}: HTMLElement, offset: readonly [number, number]): void {\n const {top, left, width, height} = this.getRect(offset);\n\n style.top = tuiPx(top);\n style.left = tuiPx(left);\n style.width = tuiPx(width);\n style.height = tuiPx(height);\n }\n\n private setPosition(element: HTMLElement, [left]: readonly [number, number]): void {\n if (!Number.isNaN(left)) {\n element.style.setProperty('position', 'fixed');\n element.style.setProperty('transition', 'none');\n\n return;\n }\n\n const {style} = element;\n const rect = element.getBoundingClientRect();\n const host = this.el.getBoundingClientRect();\n\n style.removeProperty('position');\n style.removeProperty('transition');\n style.removeProperty('top');\n style.removeProperty('left');\n\n style.top = tuiPx(rect.top - host.top + this.el.offsetTop);\n style.left = tuiPx(rect.left - host.left + this.el.offsetLeft);\n }\n}\n","import {\n type AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n type ElementRef,\n inject,\n Input,\n type OnDestroy,\n signal,\n ViewChild,\n} from '@angular/core';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\n\nimport {TuiTileService} from './tile.service';\nimport {TuiTilesComponent} from './tiles.component';\n\n@Component({\n standalone: true,\n selector: 'tui-tile',\n templateUrl: './tile.template.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TuiTileService],\n host: {\n '[class._dragged]': 'dragged()',\n '[style.gridColumn]': 'column',\n '[style.gridRow]': 'row',\n '(pointerenter)': 'onEnter()',\n },\n})\nexport class TuiTile implements OnDestroy, AfterViewInit {\n @ViewChild('wrapper')\n private readonly wrapper?: ElementRef<HTMLElement>;\n\n private readonly service = inject(TuiTileService);\n private readonly tiles = inject(TuiTilesComponent);\n\n protected dragged = signal(false);\n\n @Input()\n public width = 1;\n\n @Input()\n public height = 1;\n\n public readonly element = tuiInjectElement();\n\n public onDrag(offset: readonly [number, number]): void {\n const dragged = !Number.isNaN(offset[0]);\n\n this.dragged.set(this.dragged() || dragged);\n\n this.tiles.element.set(dragged ? this.element : null);\n this.service.setOffset(offset);\n\n if (dragged) {\n this.tiles.el.classList.add('_dragged');\n } else {\n this.tiles.el.classList.remove('_dragged');\n }\n }\n\n public ngAfterViewInit(): void {\n if (this.wrapper) {\n this.service.init(this.wrapper.nativeElement);\n }\n }\n\n public ngOnDestroy(): void {\n if (this.tiles.element() === this.element) {\n this.tiles.element.set(null);\n }\n }\n\n protected get column(): string {\n return `span var(--tui-width, ${this.width})`;\n }\n\n protected get row(): string {\n return `span var(--tui-height, ${this.height})`;\n }\n\n protected onEnter(): void {\n this.tiles.rearrange(this.element);\n }\n\n protected onTransitionEnd(): void {\n this.dragged.set(false);\n }\n}\n","<div\n #wrapper\n class=\"t-wrapper\"\n (transitionend.self)=\"onTransitionEnd()\"\n>\n <ng-content />\n</div>\n","import {Directive, inject} from '@angular/core';\nimport {tuiGetActualTarget, tuiIsElement} from '@taiga-ui/cdk/utils/dom';\nimport {shouldCall} from '@taiga-ui/event-plugins';\n\nimport {TuiTile} from './tile.component';\n\nfunction isInteracting(this: TuiTileHandle, x = NaN): boolean {\n return !Number.isNaN(x) || !Number.isNaN(this['x']);\n}\n\nfunction isDragging(this: TuiTileHandle): boolean {\n return !Number.isNaN(this['x']);\n}\n\n@Directive({\n standalone: true,\n selector: '[tuiTileHandle]',\n host: {\n '[style.touchAction]': '\"none\"',\n '[style.userSelect]': '\"none\"',\n '(pointerdown.zoneless.prevent)': 'onStart($event)',\n '(document:pointerup.zoneless)': 'onPointer()',\n '(document:pointermove.zoneless)': 'onMove($event.x, $event.y)',\n },\n})\nexport class TuiTileHandle {\n private readonly tile = inject(TuiTile);\n private x = NaN;\n private y = NaN;\n\n @shouldCall(isInteracting)\n protected onPointer(x = NaN, y = NaN): void {\n const {left, top} = this.tile.element.getBoundingClientRect();\n\n this.x = x - left;\n this.y = y - top;\n this.tile.onDrag([NaN, NaN]);\n }\n\n @shouldCall(isDragging)\n protected onMove(x: number, y: number): void {\n this.tile.onDrag([x - this.x, y - this.y]);\n }\n\n protected onStart(event: PointerEvent): void {\n const target = tuiGetActualTarget(event);\n const {x, y, pointerId} = event;\n\n if (tuiIsElement(target)) {\n target.releasePointerCapture(pointerId);\n }\n\n this.onPointer(x, y);\n }\n}\n","import {TuiTile} from './tile.component';\nimport {TuiTileHandle} from './tile-handle.directive';\nimport {TuiTilesComponent} from './tiles.component';\n\nexport const TuiTiles = [TuiTilesComponent, TuiTile, TuiTileHandle] 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-tiles.mjs","sources":["../../../projects/kit/components/tiles/tiles.tokens.ts","../../../projects/kit/components/tiles/tiles.component.ts","../../../projects/kit/components/tiles/tile.service.ts","../../../projects/kit/components/tiles/tile.component.ts","../../../projects/kit/components/tiles/tile.template.html","../../../projects/kit/components/tiles/tile-handle.directive.ts","../../../projects/kit/components/tiles/tiles.ts","../../../projects/kit/components/tiles/taiga-ui-kit-components-tiles.ts"],"sourcesContent":["import {InjectionToken} from '@angular/core';\n\nexport type TuiReorderFunction = (\n order: Map<number, number>,\n currentIndex: number,\n newIndex: number,\n) => Map<number, number>;\n\nexport const tuiTilesSwap: TuiReorderFunction = (order, currentIndex, newIndex) => {\n if (!order.has(currentIndex) || !order.has(newIndex)) {\n return order;\n }\n\n const dragged = order.get(currentIndex) ?? currentIndex;\n const placement = order.get(newIndex) ?? newIndex;\n const newOrder = new Map(order);\n\n newOrder.set(currentIndex, placement);\n newOrder.set(newIndex, dragged);\n\n return newOrder;\n};\n\nexport const tuiTilesShift: TuiReorderFunction = (order, currentIndex, newIndex) => {\n if (!order.has(currentIndex) || !order.has(newIndex)) {\n return order;\n }\n\n const dragged = order.get(currentIndex) ?? currentIndex;\n const placement = order.get(newIndex) ?? newIndex;\n const newOrder = new Map(order);\n const flipped = new Map(Array.from(order).map(([a, b]) => [b, a]));\n\n if ((placement - dragged) / Math.abs(placement - dragged) > 0) {\n for (let i = placement; i > dragged; i--) {\n newOrder.set(flipped.get(i) ?? i, i - 1);\n }\n } else {\n for (let i = placement; i < dragged; i++) {\n newOrder.set(flipped.get(i) ?? i, i + 1);\n }\n }\n\n newOrder.set(currentIndex, placement);\n\n return newOrder;\n};\n\nexport const TUI_TILES_REORDER = new InjectionToken<TuiReorderFunction>(\n ngDevMode ? 'TUI_TILES_REORDER' : '',\n {\n factory: () => tuiTilesSwap,\n },\n);\n","import {\n ChangeDetectionStrategy,\n Component,\n inject,\n Input,\n Output,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n WaMutationObserverService,\n WA_MUTATION_OBSERVER_INIT,\n} from '@ng-web-apis/mutation-observer';\nimport {WaResizeObserverService} from '@ng-web-apis/resize-observer';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {BehaviorSubject, debounce, filter, map, Subject, timer} from 'rxjs';\n\nimport {TUI_TILES_REORDER} from './tiles.tokens';\n\n@Component({\n standalone: true,\n selector: 'tui-tiles',\n template: '<ng-content />',\n styleUrls: ['./tiles.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n WaResizeObserverService,\n WaMutationObserverService,\n {\n provide: WA_MUTATION_OBSERVER_INIT,\n useValue: {childList: true},\n },\n ],\n host: {\n '(pointerleave.zoneless)': 'rearrange()',\n },\n})\nexport class TuiTilesComponent {\n private readonly el$ = new Subject<Element | undefined>();\n private readonly handler = inject(TUI_TILES_REORDER);\n\n @Input()\n public debounce = 0;\n\n @Output()\n public readonly orderChange = this.el$.pipe(\n debounce(() => timer(this.debounce)),\n filter(this.filter.bind(this)),\n map((element) => this.reorder(element)),\n );\n\n public readonly element = signal<Element | null>(null);\n public readonly el = tuiInjectElement();\n\n public readonly order$ = new BehaviorSubject(new Map<number, number>());\n\n @Input()\n public set order(map: Map<number, number>) {\n this.order$.next(map);\n }\n\n public get order(): Map<number, number> {\n return this.order$.value;\n }\n\n public rearrange(element?: Element): void {\n this.el$.next(element);\n }\n\n private filter(element?: Element): element is Element {\n return !!this.element() && !!element && this.element() !== element;\n }\n\n private reorder(element: Element): Map<number, number> {\n const elements = Array.from(this.el.children);\n const currentIndex = elements.indexOf(this.element() || element);\n const newIndex = elements.indexOf(element);\n const order = this.order.size\n ? new Map(this.order)\n : new Map(elements.map((_, index) => [index, index]));\n\n this.order$.next(this.handler(order, currentIndex, newIndex));\n\n return this.order$.value;\n }\n}\n","import {isPlatformBrowser} from '@angular/common';\nimport {inject, Injectable, type OnDestroy, PLATFORM_ID} from '@angular/core';\nimport {WaMutationObserverService} from '@ng-web-apis/mutation-observer';\nimport {WaResizeObserverService} from '@ng-web-apis/resize-observer';\nimport {tuiZonefreeScheduler} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiArrayShallowEquals, tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n BehaviorSubject,\n combineLatest,\n debounceTime,\n distinctUntilChanged,\n map,\n type Observable,\n startWith,\n Subscription,\n} from 'rxjs';\n\nimport {TuiTilesComponent} from './tiles.component';\n\n@Injectable()\nexport class TuiTileService implements OnDestroy {\n private readonly isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n private readonly el = tuiInjectElement();\n private readonly tiles = inject(TuiTilesComponent);\n private readonly sub = new Subscription();\n private readonly offset$ = new BehaviorSubject<readonly [number, number]>([NaN, NaN]);\n private readonly position$: Observable<readonly [number, number]> = combineLatest([\n this.offset$.pipe(distinctUntilChanged(tuiArrayShallowEquals)),\n inject(WaResizeObserverService).pipe(startWith(null)),\n inject(WaMutationObserverService).pipe(startWith(null)),\n this.tiles.order$.pipe(debounceTime(0, tuiZonefreeScheduler())),\n ]).pipe(map(([offset]) => offset));\n\n public init(element: HTMLElement): void {\n if (this.isBrowser) {\n this.sub.add(\n this.position$.subscribe((offset) => {\n this.setPosition(element, offset);\n this.setRect(element, offset);\n }),\n );\n } else {\n this.el.style.setProperty('position', 'relative');\n }\n }\n\n public setOffset(offset: readonly [number, number]): void {\n this.offset$.next(offset);\n }\n\n public ngOnDestroy(): void {\n this.sub.unsubscribe();\n }\n\n private getRect([left, top]: readonly [number, number]): DOMRect {\n const elTop = Number.isNaN(top) ? this.el.offsetTop : top;\n const elLeft = Number.isNaN(left) ? this.el.offsetLeft : left;\n\n const rect = {\n top: elTop,\n left: elLeft,\n width: this.el.clientWidth,\n height: this.el.clientHeight,\n right: NaN,\n bottom: NaN,\n y: elTop,\n x: elLeft,\n };\n\n return {\n ...rect,\n toJSON: () => JSON.stringify(rect),\n };\n }\n\n private setRect({style}: HTMLElement, offset: readonly [number, number]): void {\n const {top, left, width, height} = this.getRect(offset);\n\n style.top = tuiPx(top);\n style.left = tuiPx(left);\n style.width = tuiPx(width);\n style.height = tuiPx(height);\n }\n\n private setPosition(element: HTMLElement, [left]: readonly [number, number]): void {\n if (!Number.isNaN(left)) {\n element.style.setProperty('position', 'fixed');\n element.style.setProperty('transition', 'none');\n\n return;\n }\n\n const {style} = element;\n const rect = element.getBoundingClientRect();\n const host = this.el.getBoundingClientRect();\n\n style.removeProperty('position');\n style.removeProperty('transition');\n style.removeProperty('top');\n style.removeProperty('left');\n\n style.top = tuiPx(rect.top - host.top + this.el.offsetTop);\n style.left = tuiPx(rect.left - host.left + this.el.offsetLeft);\n }\n}\n","import {\n type AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n type ElementRef,\n inject,\n Input,\n type OnDestroy,\n signal,\n ViewChild,\n} from '@angular/core';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\n\nimport {TuiTileService} from './tile.service';\nimport {TuiTilesComponent} from './tiles.component';\n\n@Component({\n standalone: true,\n selector: 'tui-tile',\n templateUrl: './tile.template.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TuiTileService],\n host: {\n '[class._dragged]': 'dragged()',\n '[style.gridColumn]': 'column',\n '[style.gridRow]': 'row',\n '(pointerenter)': 'onEnter()',\n },\n})\nexport class TuiTile implements OnDestroy, AfterViewInit {\n @ViewChild('wrapper')\n private readonly wrapper?: ElementRef<HTMLElement>;\n\n private readonly service = inject(TuiTileService);\n private readonly tiles = inject(TuiTilesComponent);\n\n protected dragged = signal(false);\n\n @Input()\n public width = 1;\n\n @Input()\n public height = 1;\n\n public readonly element = tuiInjectElement();\n\n public onDrag(offset: readonly [number, number]): void {\n const dragged = !Number.isNaN(offset[0]);\n\n this.dragged.set(this.dragged() || dragged);\n\n this.tiles.element.set(dragged ? this.element : null);\n this.service.setOffset(offset);\n\n if (dragged) {\n this.tiles.el.classList.add('_dragged');\n } else {\n this.tiles.el.classList.remove('_dragged');\n }\n }\n\n public ngAfterViewInit(): void {\n if (this.wrapper) {\n this.service.init(this.wrapper.nativeElement);\n }\n }\n\n public ngOnDestroy(): void {\n if (this.tiles.element() === this.element) {\n this.tiles.element.set(null);\n }\n }\n\n protected get column(): string {\n return `span var(--tui-width, ${this.width})`;\n }\n\n protected get row(): string {\n return `span var(--tui-height, ${this.height})`;\n }\n\n protected onEnter(): void {\n this.tiles.rearrange(this.element);\n }\n\n protected onTransitionEnd(): void {\n this.dragged.set(false);\n }\n}\n","<div\n #wrapper\n class=\"t-wrapper\"\n (transitionend.self)=\"onTransitionEnd()\"\n>\n <ng-content />\n</div>\n","import {Directive, inject, NgZone} from '@angular/core';\nimport {tuiGetActualTarget, tuiIsElement} from '@taiga-ui/cdk/utils/dom';\n\nimport {TuiTile} from './tile.component';\n\n@Directive({\n standalone: true,\n selector: '[tuiTileHandle]',\n host: {\n '(pointerdown.zoneless.prevent)': 'onStart($event)',\n '(document:pointerup.zoneless)': 'onPointer()',\n '(document:pointermove.zoneless)': 'onMove($event.x, $event.y)',\n },\n})\nexport class TuiTileHandle {\n private readonly zone = inject(NgZone);\n private readonly tile = inject(TuiTile);\n private x = NaN;\n private y = NaN;\n\n protected onPointer(x = NaN, y = NaN): void {\n if (!Number.isNaN(x) || !Number.isNaN(this.x)) {\n this.zone.run(() => {\n const {left, top} = this.tile.element.getBoundingClientRect();\n\n this.x = x - left;\n this.y = y - top;\n this.tile.onDrag([NaN, NaN]);\n });\n }\n }\n\n protected onMove(x: number, y: number): void {\n if (!Number.isNaN(this.x)) {\n this.zone.run(() => {\n this.tile.onDrag([x - this.x, y - this.y]);\n });\n }\n }\n\n protected onStart(event: PointerEvent): void {\n const target = tuiGetActualTarget(event);\n const {x, y, pointerId} = event;\n\n if (tuiIsElement(target)) {\n target.releasePointerCapture(pointerId);\n }\n\n this.onPointer(x, y);\n }\n}\n","import {TuiTile} from './tile.component';\nimport {TuiTileHandle} from './tile-handle.directive';\nimport {TuiTilesComponent} from './tiles.component';\n\nexport const TuiTiles = [TuiTilesComponent, TuiTile, TuiTileHandle] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Component, ViewEncapsulation, ChangeDetectionStrategy, inject, ElementRef, Directive, ViewChild, Injectable } from '@angular/core';
|
|
2
|
+
import { Component, ViewEncapsulation, ChangeDetectionStrategy, computed, inject, ElementRef, Directive, Input, ViewChild, Injectable } from '@angular/core';
|
|
3
3
|
import { TUI_PLATFORM, TUI_IS_MOBILE } from '@taiga-ui/cdk/tokens';
|
|
4
4
|
import { tuiWithStyles, tuiDirectiveBinding, tuiCreateTokenFromFactory } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
5
5
|
import { tuiButtonOptionsProvider } from '@taiga-ui/core/components';
|
|
@@ -24,23 +24,25 @@ import { TuiButton } from '@taiga-ui/core/components/button';
|
|
|
24
24
|
import { injectContext, PolymorpheusOutlet } from '@taiga-ui/polymorpheus';
|
|
25
25
|
import { tuiCreateOptions } from '@taiga-ui/cdk/utils/di';
|
|
26
26
|
|
|
27
|
+
/* eslint-disable @typescript-eslint/member-ordering */
|
|
27
28
|
class TuiToastStyles {
|
|
28
29
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiToastStyles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
29
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiToastStyles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-toast" }, ngImport: i0, template: '', isInline: true, styles: ["[tuiToast]{transition-property:transform;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;display:flex;grid-row:1 / span 2;box-sizing:border-box;gap:.75rem;color:var(--tui-text-primary);background:var(--tui-background-elevation-3);min-block-size:3.5rem;border-radius:1rem;padding:.75rem 1rem;box-shadow:var(--tui-shadow-medium);align-items:center;justify-content:center;inline-size:-webkit-max-content;inline-size:max-content;font:var(--tui-font-text-ui-s);max-inline-size:min(calc(100vw - 2rem),25rem
|
|
30
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiToastStyles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-toast" }, ngImport: i0, template: '', isInline: true, styles: ["[tuiToast]{transition-property:transform;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;display:flex;grid-row:1 / span 2;box-sizing:border-box;gap:.75rem;color:var(--tui-text-primary);background:var(--tui-background-elevation-3);min-block-size:3.5rem;border-radius:1rem;padding:.75rem 1rem;box-shadow:var(--tui-shadow-medium);align-items:center;justify-content:center;inline-size:-webkit-max-content;inline-size:max-content;font:var(--tui-font-text-ui-s);max-inline-size:min(calc(100vw - 2rem),25rem);border:inherit;text-decoration:none;white-space:pre-line;text-align:start;overflow:hidden}[tuiToast]:matches(a,button,select,textarea,input,label,.tui-interactive):not(:disabled){cursor:pointer}[tuiToast]:is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled){cursor:pointer}[tuiToast]>*:not(tui-shrink-wrap),[tuiToast]:after,[tuiToast]:before{max-inline-size:50%;margin:0 -.25rem}[tuiToast]:after{font-size:1rem;color:var(--tui-text-tertiary)}[tuiToast] tui-avatar{margin-inline-end:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
30
31
|
}
|
|
31
32
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiToastStyles, decorators: [{
|
|
32
33
|
type: Component,
|
|
33
34
|
args: [{ standalone: true, template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
34
35
|
class: 'tui-toast',
|
|
35
|
-
}, styles: ["[tuiToast]{transition-property:transform;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;display:flex;grid-row:1 / span 2;box-sizing:border-box;gap:.75rem;color:var(--tui-text-primary);background:var(--tui-background-elevation-3);min-block-size:3.5rem;border-radius:1rem;padding:.75rem 1rem;box-shadow:var(--tui-shadow-medium);align-items:center;justify-content:center;inline-size:-webkit-max-content;inline-size:max-content;font:var(--tui-font-text-ui-s);max-inline-size:min(calc(100vw - 2rem),25rem
|
|
36
|
+
}, styles: ["[tuiToast]{transition-property:transform;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;display:flex;grid-row:1 / span 2;box-sizing:border-box;gap:.75rem;color:var(--tui-text-primary);background:var(--tui-background-elevation-3);min-block-size:3.5rem;border-radius:1rem;padding:.75rem 1rem;box-shadow:var(--tui-shadow-medium);align-items:center;justify-content:center;inline-size:-webkit-max-content;inline-size:max-content;font:var(--tui-font-text-ui-s);max-inline-size:min(calc(100vw - 2rem),25rem);border:inherit;text-decoration:none;white-space:pre-line;text-align:start;overflow:hidden}[tuiToast]:matches(a,button,select,textarea,input,label,.tui-interactive):not(:disabled){cursor:pointer}[tuiToast]:is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled){cursor:pointer}[tuiToast]>*:not(tui-shrink-wrap),[tuiToast]:after,[tuiToast]:before{max-inline-size:50%;margin:0 -.25rem}[tuiToast]:after{font-size:1rem;color:var(--tui-text-tertiary)}[tuiToast] tui-avatar{margin-inline-end:0}\n"] }]
|
|
36
37
|
}] });
|
|
37
38
|
class TuiToastDirective {
|
|
38
39
|
constructor() {
|
|
40
|
+
this.tuiShrinkWrap = 'min(calc(100vw - 2rem), 25rem)';
|
|
39
41
|
this.nothing = tuiWithStyles(TuiToastStyles);
|
|
40
|
-
this.width = tuiDirectiveBinding(TuiShrinkWrapDirective, 'tuiShrinkWrap',
|
|
42
|
+
this.width = tuiDirectiveBinding(TuiShrinkWrapDirective, 'tuiShrinkWrap', computed(() => this.tuiShrinkWrap));
|
|
41
43
|
}
|
|
42
44
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiToastDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
43
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiToastDirective, isStandalone: true, selector: "[tuiToast]:not(ng-template)", providers: [
|
|
45
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiToastDirective, isStandalone: true, selector: "[tuiToast]:not(ng-template)", inputs: { tuiShrinkWrap: "tuiShrinkWrap" }, providers: [
|
|
44
46
|
tuiBadgeOptionsProvider({ size: 'l' }),
|
|
45
47
|
tuiAvatarOptionsProvider(() => ({
|
|
46
48
|
size: inject(TUI_PLATFORM) === 'web' ? 's' : 'm',
|
|
@@ -55,7 +57,7 @@ class TuiToastDirective {
|
|
|
55
57
|
? inject(TUI_COMMON_ICONS).more
|
|
56
58
|
: '',
|
|
57
59
|
},
|
|
58
|
-
], hostDirectives: [{ directive: i1.TuiWithIcons }, { directive: i2.TuiShrinkWrapDirective }], ngImport: i0 }); }
|
|
60
|
+
], hostDirectives: [{ directive: i1.TuiWithIcons }, { directive: i2.TuiShrinkWrapDirective, inputs: ["tuiShrinkWrap", "tuiShrinkWrap"] }], ngImport: i0 }); }
|
|
59
61
|
}
|
|
60
62
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiToastDirective, decorators: [{
|
|
61
63
|
type: Directive,
|
|
@@ -78,9 +80,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
78
80
|
: '',
|
|
79
81
|
},
|
|
80
82
|
],
|
|
81
|
-
hostDirectives: [
|
|
83
|
+
hostDirectives: [
|
|
84
|
+
TuiWithIcons,
|
|
85
|
+
{
|
|
86
|
+
directive: TuiShrinkWrapDirective,
|
|
87
|
+
inputs: ['tuiShrinkWrap'],
|
|
88
|
+
},
|
|
89
|
+
],
|
|
82
90
|
}]
|
|
83
|
-
}]
|
|
91
|
+
}], propDecorators: { tuiShrinkWrap: [{
|
|
92
|
+
type: Input
|
|
93
|
+
}] } });
|
|
84
94
|
|
|
85
95
|
class TuiToastComponent {
|
|
86
96
|
constructor() {
|
|
@@ -103,7 +113,7 @@ class TuiToastComponent {
|
|
|
103
113
|
}
|
|
104
114
|
}
|
|
105
115
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiToastComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
106
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiToastComponent, isStandalone: true, selector: "tui-toast", host: { attributes: { "role": "status" }, properties: { "class._mobile": "isMobile", "attr.data-appearance": "context.appearance" } }, viewQueries: [{ propertyName: "button", first: true, predicate: TuiButton, descendants: true, read: ElementRef }], hostDirectives: [{ directive: i1$1.TuiAnimated }], ngImport: i0, template: "<div\n class=\"t-wrapper\"\n (tuiSwipe)=\"onSwipe()\"\n>\n <div\n *polymorpheusOutlet=\"context.content as text; context: context\"\n tuiToast\n [iconStart]=\"context.data?.toString() || ''\"\n >\n <tui-shrink-wrap><span [innerHTML]=\"text\"></span></tui-shrink-wrap>\n </div>\n <button\n *ngIf=\"context.closable && !isMobile\"\n appearance=\"icon\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n [iconStart]=\"icons.close\"\n (click.stop.prevent)=\"context.$implicit.complete()\"\n >\n Close\n </button>\n</div>\n", styles: ["::ng-deep *:has(>tui-toast){flex-direction:column-reverse!important;justify-content:flex-end}:host{transition-property:grid-template-rows;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:relative;top:1.25rem;display:grid;margin:0 auto;touch-action:none;animation-fill-mode:both;--tui-from: translate3d(0, -2rem, 0)}:host.tui-enter{place-items:end;animation-name:tuiSlide,tuiCollapse}:host.tui-leave{animation-name:tuiFade,tuiCollapse}:host.tui-leave:first-child{animation-name:tuiFade}:host._mobile{top:env(safe-area-inset-top)}:host._mobile.tui-enter{animation-delay:var(--tui-duration)}:host._mobile.tui-leave{place-items:end;animation-name:tuiSlide,tuiCollapse}.t-wrapper{grid-row:1 / span 2}.t-wrapper:before{content:\"\";display:block;block-size:.75rem}:host._mobile .t-wrapper:before{block-size:.25rem}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "component", type: i2.TuiShrinkWrapComponent, selector: "tui-shrink-wrap" }, { kind: "directive", type: TuiSwipe, selector: "[tuiSwipe]", outputs: ["tuiSwipe"] }, { kind: "directive", type: TuiToastDirective, selector: "[tuiToast]:not(ng-template)" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
116
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiToastComponent, isStandalone: true, selector: "tui-toast", host: { attributes: { "role": "status" }, properties: { "class._mobile": "isMobile", "attr.data-appearance": "context.appearance" } }, viewQueries: [{ propertyName: "button", first: true, predicate: TuiButton, descendants: true, read: ElementRef }], hostDirectives: [{ directive: i1$1.TuiAnimated }], ngImport: i0, template: "<div\n class=\"t-wrapper\"\n (tuiSwipe)=\"onSwipe()\"\n>\n <div\n *polymorpheusOutlet=\"context.content as text; context: context\"\n tuiToast\n [iconStart]=\"context.data?.toString() || ''\"\n >\n <tui-shrink-wrap><span [innerHTML]=\"text\"></span></tui-shrink-wrap>\n </div>\n <button\n *ngIf=\"context.closable && !isMobile\"\n appearance=\"icon\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n [iconStart]=\"icons.close\"\n (click.stop.prevent)=\"context.$implicit.complete()\"\n >\n Close\n </button>\n</div>\n", styles: ["::ng-deep *:has(>tui-toast){flex-direction:column-reverse!important;justify-content:flex-end}:host{transition-property:grid-template-rows;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:relative;top:1.25rem;display:grid;margin:0 auto;touch-action:none;animation-fill-mode:both;--tui-from: translate3d(0, -2rem, 0)}:host.tui-enter{place-items:end;animation-name:tuiSlide,tuiCollapse}:host.tui-leave{animation-name:tuiFade,tuiCollapse}:host.tui-leave:first-child{animation-name:tuiFade}:host._mobile{top:env(safe-area-inset-top)}:host._mobile.tui-enter{animation-delay:var(--tui-duration)}:host._mobile.tui-leave{place-items:end;animation-name:tuiSlide,tuiCollapse}.t-wrapper{grid-row:1 / span 2}.t-wrapper:before{content:\"\";display:block;block-size:.75rem}:host._mobile .t-wrapper:before{block-size:.25rem}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "component", type: i2.TuiShrinkWrapComponent, selector: "tui-shrink-wrap" }, { kind: "directive", type: TuiSwipe, selector: "[tuiSwipe]", outputs: ["tuiSwipe"] }, { kind: "directive", type: TuiToastDirective, selector: "[tuiToast]:not(ng-template)", inputs: ["tuiShrinkWrap"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
107
117
|
}
|
|
108
118
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiToastComponent, decorators: [{
|
|
109
119
|
type: Component,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-kit-components-toast.mjs","sources":["../../../projects/kit/components/toast/toast.directive.ts","../../../projects/kit/components/toast/toast.component.ts","../../../projects/kit/components/toast/toast.template.html","../../../projects/kit/components/toast/toast.options.ts","../../../projects/kit/components/toast/toast.service.ts","../../../projects/kit/components/toast/toast.ts","../../../projects/kit/components/toast/taiga-ui-kit-components-toast.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n ElementRef,\n inject,\n ViewEncapsulation,\n} from '@angular/core';\nimport {TUI_PLATFORM} from '@taiga-ui/cdk/tokens';\nimport {tuiDirectiveBinding, tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiButtonOptionsProvider} from '@taiga-ui/core/components';\nimport {TuiWithIcons} from '@taiga-ui/core/directives/icons';\nimport {TUI_COMMON_ICONS, TUI_ICON_END} from '@taiga-ui/core/tokens';\nimport {tuiAvatarOptionsProvider} from '@taiga-ui/kit/components/avatar';\nimport {tuiBadgeOptionsProvider} from '@taiga-ui/kit/components/badge';\nimport {TuiShrinkWrapDirective} from '@taiga-ui/kit/components/shrink-wrap';\n\n@Component({\n standalone: true,\n template: '',\n styles: ['@import \"@taiga-ui/kit/styles/components/toast.less\";'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'tui-toast',\n },\n})\nclass TuiToastStyles {}\n\n@Directive({\n standalone: true,\n selector: '[tuiToast]:not(ng-template)',\n providers: [\n tuiBadgeOptionsProvider({size: 'l'}),\n tuiAvatarOptionsProvider(() => ({\n size: inject(TUI_PLATFORM) === 'web' ? 's' : 'm',\n })),\n tuiButtonOptionsProvider(() => ({\n size: 's',\n appearance:\n inject(TUI_PLATFORM) === 'web' ? 'secondary-grayscale' : 'secondary',\n })),\n {\n provide: TUI_ICON_END,\n useFactory: () =>\n inject(ElementRef).nativeElement?.matches('a, button')\n ? inject(TUI_COMMON_ICONS).more\n : '',\n },\n ],\n hostDirectives: [TuiWithIcons, TuiShrinkWrapDirective],\n})\nexport class TuiToastDirective {\n protected readonly nothing = tuiWithStyles(TuiToastStyles);\n protected readonly width = tuiDirectiveBinding(\n TuiShrinkWrapDirective,\n 'tuiShrinkWrap',\n 'min(calc(100vw - 2rem), 25rem, 100%)',\n );\n}\n","import {NgIf} from '@angular/common';\nimport {\n type AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n ViewChild,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {TuiAnimated} from '@taiga-ui/cdk/directives/animated';\nimport {TuiSwipe} from '@taiga-ui/cdk/directives/swipe';\nimport {type TuiPopover} from '@taiga-ui/cdk/services';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TUI_COMMON_ICONS} from '@taiga-ui/core/tokens';\nimport {TuiShrinkWrap} from '@taiga-ui/kit/components/shrink-wrap';\nimport {injectContext, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\nimport {EMPTY, fromEvent, of, repeat, switchMap, takeUntil, timer} from 'rxjs';\n\nimport {TuiToastDirective} from './toast.directive';\nimport {type TuiToastOptions} from './toast.options';\n\n@Component({\n standalone: true,\n selector: 'tui-toast',\n imports: [\n NgIf,\n PolymorpheusOutlet,\n TuiButton,\n TuiShrinkWrap,\n TuiSwipe,\n TuiToastDirective,\n ],\n templateUrl: './toast.template.html',\n styleUrls: ['./toast.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [TuiAnimated],\n host: {\n role: 'status',\n '[class._mobile]': 'isMobile',\n '[attr.data-appearance]': 'context.appearance',\n },\n})\nexport class TuiToastComponent<O, I> implements AfterViewInit {\n @ViewChild(TuiButton, {read: ElementRef})\n private readonly button?: ElementRef<HTMLButtonElement>;\n\n private readonly el = tuiInjectElement();\n\n protected readonly isMobile = inject(TUI_IS_MOBILE);\n protected readonly context = injectContext<TuiPopover<TuiToastOptions<I>, O>>();\n protected readonly icons = inject(TUI_COMMON_ICONS);\n protected readonly $ = of(this.context.autoClose)\n .pipe(\n switchMap((autoClose) => (autoClose ? timer(autoClose) : EMPTY)),\n takeUntil(fromEvent(this.el, 'mouseenter')),\n repeat({delay: () => fromEvent(this.el, 'mouseleave')}),\n takeUntilDestroyed(),\n )\n .subscribe(() => this.context.$implicit.complete());\n\n public ngAfterViewInit(): void {\n if (this.button) {\n this.el.querySelector('[tuiToast]')?.appendChild(this.button.nativeElement);\n }\n }\n\n protected onSwipe(): void {\n if (this.context.closable) {\n this.context.$implicit.complete();\n }\n }\n}\n","<div\n class=\"t-wrapper\"\n (tuiSwipe)=\"onSwipe()\"\n>\n <div\n *polymorpheusOutlet=\"context.content as text; context: context\"\n tuiToast\n [iconStart]=\"context.data?.toString() || ''\"\n >\n <tui-shrink-wrap><span [innerHTML]=\"text\"></span></tui-shrink-wrap>\n </div>\n <button\n *ngIf=\"context.closable && !isMobile\"\n appearance=\"icon\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n [iconStart]=\"icons.close\"\n (click.stop.prevent)=\"context.$implicit.complete()\"\n >\n Close\n </button>\n</div>\n","import {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\n\nexport interface TuiToastOptions<I> {\n autoClose: number;\n closable: boolean;\n appearance: string;\n data?: I;\n}\n\nexport const TUI_TOAST_DEFAULT_OPTIONS: TuiToastOptions<void> = {\n appearance: '',\n autoClose: 5000,\n closable: true,\n};\n\nexport const [TUI_TOAST_OPTIONS, tuiToastOptionsProvider] = tuiCreateOptions(\n TUI_TOAST_DEFAULT_OPTIONS,\n);\n","import {Directive, inject, Injectable, type Type} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {TuiPopoverDirective} from '@taiga-ui/cdk/directives/popover';\nimport {tuiAsPopover, type TuiPopover, TuiPopoverService} from '@taiga-ui/cdk/services';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_ALERTS} from '@taiga-ui/core/components/alert';\nimport {BehaviorSubject, pairwise} from 'rxjs';\n\nimport {TuiToastComponent} from './toast.component';\nimport {TUI_TOAST_OPTIONS, type TuiToastOptions} from './toast.options';\n\nconst TOASTS = tuiCreateTokenFromFactory(\n () =>\n new BehaviorSubject<ReadonlyArray<TuiPopover<TuiToastOptions<unknown>, any>>>([]),\n);\n\nexport const TUI_TOASTS_CONCURRENCY = tuiCreateTokenFromFactory<number>(() =>\n inject(TUI_IS_MOBILE) ? 1 : 2,\n);\n\n@Injectable({\n providedIn: 'root',\n useFactory: () =>\n new TuiToastService(TUI_ALERTS, TuiToastComponent, inject(TUI_TOAST_OPTIONS)),\n})\nexport class TuiToastService extends TuiPopoverService<TuiToastOptions<any>> {\n private readonly concurrency = inject(TUI_TOASTS_CONCURRENCY);\n private readonly alerts;\n\n protected readonly sub = this.items$\n .pipe(pairwise(), takeUntilDestroyed())\n .subscribe(([prev, next]) => {\n const closed = prev.filter((item) => !next.includes(item));\n const alerts = this.alerts.value.filter((item) => !closed.includes(item));\n const toasts = new Set([...alerts, ...next.slice(0, this.concurrency)]);\n\n this.alerts.next(Array.from(toasts));\n });\n\n constructor(\n items: ConstructorParameters<typeof TuiPopoverService<TuiToastOptions<any>>>[0],\n component: Type<any>,\n options: TuiToastOptions<any>,\n ) {\n super(TOASTS, component, options);\n\n this.alerts = inject(items);\n }\n}\n\n@Directive({\n standalone: true,\n selector: 'ng-template[tuiToast]',\n inputs: ['options: tuiToastOptions', 'open: tuiToast'],\n outputs: ['openChange: tuiToastChange'],\n providers: [tuiAsPopover(TuiToastService)],\n})\nexport class TuiToastTemplate<T> extends TuiPopoverDirective<TuiToastOptions<T>> {}\n","import {TuiToastDirective} from './toast.directive';\nimport {TuiToastTemplate} from './toast.service';\n\nexport const TuiToast = [TuiToastDirective, TuiToastTemplate] 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-toast.mjs","sources":["../../../projects/kit/components/toast/toast.directive.ts","../../../projects/kit/components/toast/toast.component.ts","../../../projects/kit/components/toast/toast.template.html","../../../projects/kit/components/toast/toast.options.ts","../../../projects/kit/components/toast/toast.service.ts","../../../projects/kit/components/toast/toast.ts","../../../projects/kit/components/toast/taiga-ui-kit-components-toast.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/member-ordering */\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n Directive,\n ElementRef,\n inject,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {TUI_PLATFORM} from '@taiga-ui/cdk/tokens';\nimport {tuiDirectiveBinding, tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiButtonOptionsProvider} from '@taiga-ui/core/components';\nimport {TuiWithIcons} from '@taiga-ui/core/directives/icons';\nimport {TUI_COMMON_ICONS, TUI_ICON_END} from '@taiga-ui/core/tokens';\nimport {tuiAvatarOptionsProvider} from '@taiga-ui/kit/components/avatar';\nimport {tuiBadgeOptionsProvider} from '@taiga-ui/kit/components/badge';\nimport {TuiShrinkWrapDirective} from '@taiga-ui/kit/components/shrink-wrap';\n\n@Component({\n standalone: true,\n template: '',\n styles: ['@import \"@taiga-ui/kit/styles/components/toast.less\";'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'tui-toast',\n },\n})\nclass TuiToastStyles {}\n\n@Directive({\n standalone: true,\n selector: '[tuiToast]:not(ng-template)',\n providers: [\n tuiBadgeOptionsProvider({size: 'l'}),\n tuiAvatarOptionsProvider(() => ({\n size: inject(TUI_PLATFORM) === 'web' ? 's' : 'm',\n })),\n tuiButtonOptionsProvider(() => ({\n size: 's',\n appearance:\n inject(TUI_PLATFORM) === 'web' ? 'secondary-grayscale' : 'secondary',\n })),\n {\n provide: TUI_ICON_END,\n useFactory: () =>\n inject(ElementRef).nativeElement?.matches('a, button')\n ? inject(TUI_COMMON_ICONS).more\n : '',\n },\n ],\n hostDirectives: [\n TuiWithIcons,\n {\n directive: TuiShrinkWrapDirective,\n inputs: ['tuiShrinkWrap'],\n },\n ],\n})\nexport class TuiToastDirective {\n @Input()\n public tuiShrinkWrap = 'min(calc(100vw - 2rem), 25rem)';\n\n protected readonly nothing = tuiWithStyles(TuiToastStyles);\n protected readonly width = tuiDirectiveBinding(\n TuiShrinkWrapDirective,\n 'tuiShrinkWrap',\n computed(() => this.tuiShrinkWrap),\n );\n}\n","import {NgIf} from '@angular/common';\nimport {\n type AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n ViewChild,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {TuiAnimated} from '@taiga-ui/cdk/directives/animated';\nimport {TuiSwipe} from '@taiga-ui/cdk/directives/swipe';\nimport {type TuiPopover} from '@taiga-ui/cdk/services';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TUI_COMMON_ICONS} from '@taiga-ui/core/tokens';\nimport {TuiShrinkWrap} from '@taiga-ui/kit/components/shrink-wrap';\nimport {injectContext, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\nimport {EMPTY, fromEvent, of, repeat, switchMap, takeUntil, timer} from 'rxjs';\n\nimport {TuiToastDirective} from './toast.directive';\nimport {type TuiToastOptions} from './toast.options';\n\n@Component({\n standalone: true,\n selector: 'tui-toast',\n imports: [\n NgIf,\n PolymorpheusOutlet,\n TuiButton,\n TuiShrinkWrap,\n TuiSwipe,\n TuiToastDirective,\n ],\n templateUrl: './toast.template.html',\n styleUrls: ['./toast.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [TuiAnimated],\n host: {\n role: 'status',\n '[class._mobile]': 'isMobile',\n '[attr.data-appearance]': 'context.appearance',\n },\n})\nexport class TuiToastComponent<O, I> implements AfterViewInit {\n @ViewChild(TuiButton, {read: ElementRef})\n private readonly button?: ElementRef<HTMLButtonElement>;\n\n private readonly el = tuiInjectElement();\n\n protected readonly isMobile = inject(TUI_IS_MOBILE);\n protected readonly context = injectContext<TuiPopover<TuiToastOptions<I>, O>>();\n protected readonly icons = inject(TUI_COMMON_ICONS);\n protected readonly $ = of(this.context.autoClose)\n .pipe(\n switchMap((autoClose) => (autoClose ? timer(autoClose) : EMPTY)),\n takeUntil(fromEvent(this.el, 'mouseenter')),\n repeat({delay: () => fromEvent(this.el, 'mouseleave')}),\n takeUntilDestroyed(),\n )\n .subscribe(() => this.context.$implicit.complete());\n\n public ngAfterViewInit(): void {\n if (this.button) {\n this.el.querySelector('[tuiToast]')?.appendChild(this.button.nativeElement);\n }\n }\n\n protected onSwipe(): void {\n if (this.context.closable) {\n this.context.$implicit.complete();\n }\n }\n}\n","<div\n class=\"t-wrapper\"\n (tuiSwipe)=\"onSwipe()\"\n>\n <div\n *polymorpheusOutlet=\"context.content as text; context: context\"\n tuiToast\n [iconStart]=\"context.data?.toString() || ''\"\n >\n <tui-shrink-wrap><span [innerHTML]=\"text\"></span></tui-shrink-wrap>\n </div>\n <button\n *ngIf=\"context.closable && !isMobile\"\n appearance=\"icon\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n [iconStart]=\"icons.close\"\n (click.stop.prevent)=\"context.$implicit.complete()\"\n >\n Close\n </button>\n</div>\n","import {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\n\nexport interface TuiToastOptions<I> {\n autoClose: number;\n closable: boolean;\n appearance: string;\n data?: I;\n}\n\nexport const TUI_TOAST_DEFAULT_OPTIONS: TuiToastOptions<void> = {\n appearance: '',\n autoClose: 5000,\n closable: true,\n};\n\nexport const [TUI_TOAST_OPTIONS, tuiToastOptionsProvider] = tuiCreateOptions(\n TUI_TOAST_DEFAULT_OPTIONS,\n);\n","import {Directive, inject, Injectable, type Type} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {TuiPopoverDirective} from '@taiga-ui/cdk/directives/popover';\nimport {tuiAsPopover, type TuiPopover, TuiPopoverService} from '@taiga-ui/cdk/services';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_ALERTS} from '@taiga-ui/core/components/alert';\nimport {BehaviorSubject, pairwise} from 'rxjs';\n\nimport {TuiToastComponent} from './toast.component';\nimport {TUI_TOAST_OPTIONS, type TuiToastOptions} from './toast.options';\n\nconst TOASTS = tuiCreateTokenFromFactory(\n () =>\n new BehaviorSubject<ReadonlyArray<TuiPopover<TuiToastOptions<unknown>, any>>>([]),\n);\n\nexport const TUI_TOASTS_CONCURRENCY = tuiCreateTokenFromFactory<number>(() =>\n inject(TUI_IS_MOBILE) ? 1 : 2,\n);\n\n@Injectable({\n providedIn: 'root',\n useFactory: () =>\n new TuiToastService(TUI_ALERTS, TuiToastComponent, inject(TUI_TOAST_OPTIONS)),\n})\nexport class TuiToastService extends TuiPopoverService<TuiToastOptions<any>> {\n private readonly concurrency = inject(TUI_TOASTS_CONCURRENCY);\n private readonly alerts;\n\n protected readonly sub = this.items$\n .pipe(pairwise(), takeUntilDestroyed())\n .subscribe(([prev, next]) => {\n const closed = prev.filter((item) => !next.includes(item));\n const alerts = this.alerts.value.filter((item) => !closed.includes(item));\n const toasts = new Set([...alerts, ...next.slice(0, this.concurrency)]);\n\n this.alerts.next(Array.from(toasts));\n });\n\n constructor(\n items: ConstructorParameters<typeof TuiPopoverService<TuiToastOptions<any>>>[0],\n component: Type<any>,\n options: TuiToastOptions<any>,\n ) {\n super(TOASTS, component, options);\n\n this.alerts = inject(items);\n }\n}\n\n@Directive({\n standalone: true,\n selector: 'ng-template[tuiToast]',\n inputs: ['options: tuiToastOptions', 'open: tuiToast'],\n outputs: ['openChange: tuiToastChange'],\n providers: [tuiAsPopover(TuiToastService)],\n})\nexport class TuiToastTemplate<T> extends TuiPopoverDirective<TuiToastOptions<T>> {}\n","import {TuiToastDirective} from './toast.directive';\nimport {TuiToastTemplate} from './toast.service';\n\nexport const TuiToast = [TuiToastDirective, TuiToastTemplate] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,7 @@ class TuiFilterByInputPipe {
|
|
|
13
13
|
constructor() {
|
|
14
14
|
// TODO: Remove optional after legacy controls are dropped
|
|
15
15
|
this.textfield = inject(TuiTextfieldComponent, { optional: true });
|
|
16
|
+
this.multi = this.textfield?.el.matches('[multi]');
|
|
16
17
|
this.host = inject(TUI_DATA_LIST_HOST);
|
|
17
18
|
this.itemsHandlers = inject(TUI_ITEMS_HANDLERS);
|
|
18
19
|
}
|
|
@@ -46,7 +47,7 @@ class TuiFilterByInputPipe {
|
|
|
46
47
|
}
|
|
47
48
|
getMatch(items, stringify, query) {
|
|
48
49
|
// TODO: Refactor when tui-textfield[multi] is ready
|
|
49
|
-
if (this.host.tagValidator) {
|
|
50
|
+
if (this.host.tagValidator || this.multi) {
|
|
50
51
|
return undefined;
|
|
51
52
|
}
|
|
52
53
|
return items.find((item) => stringify(item).toLocaleLowerCase() === query.toLocaleLowerCase());
|