@taiga-ui/kit 4.42.0 → 4.43.0-canary.7059f3e
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/avatar/avatar.options.d.ts +2 -1
- package/components/badge/badge.options.d.ts +2 -1
- package/components/badge-notification/badge-notification.options.d.ts +2 -1
- package/components/block/block.options.d.ts +2 -1
- package/components/breadcrumbs/breadcrumbs.options.d.ts +2 -1
- package/components/checkbox/checkbox.options.d.ts +2 -1
- package/components/chip/chip.options.d.ts +2 -1
- package/components/files/input-files/input-files.options.d.ts +2 -1
- package/components/index.d.ts +2 -0
- package/components/input-chip/input-chip.component.d.ts +2 -2
- package/components/input-chip/input-chip.directive.d.ts +2 -0
- package/components/input-date/input-date.directive.d.ts +2 -1
- package/components/input-date-range/input-date-range.directive.d.ts +1 -0
- package/components/input-date-range/input-date-range.options.d.ts +2 -1
- package/components/input-month/input-month.options.d.ts +2 -1
- package/components/input-month-range/input-month-range.options.d.ts +2 -1
- package/components/input-password/input-password.options.d.ts +2 -1
- package/components/input-phone-international/input-phone-international.options.d.ts +2 -1
- package/components/input-time/index.d.ts +4 -0
- package/components/input-time/input-time.component.d.ts +14 -0
- package/components/input-time/input-time.d.ts +3 -0
- package/components/input-time/input-time.directive.d.ts +31 -0
- package/components/input-time/input-time.options.d.ts +11 -0
- package/components/line-clamp/line-clamp.options.d.ts +2 -1
- package/components/multi-select/index.d.ts +4 -0
- package/components/multi-select/multi-select-group/multi-select-group.component.d.ts +19 -0
- package/components/multi-select/multi-select-group/multi-select-group.directive.d.ts +5 -0
- package/components/multi-select/multi-select-option/multi-select-option.component.d.ts +12 -0
- package/components/multi-select/multi-select.d.ts +3 -0
- package/components/pdf-viewer/pdf-viewer.options.d.ts +2 -1
- package/components/progress/progress-circle/progress-circle.component.d.ts +4 -1
- package/components/progress/progress.options.d.ts +2 -1
- package/components/push/push.options.d.ts +2 -1
- package/components/radio/radio.options.d.ts +2 -1
- package/components/rating/rating.options.d.ts +2 -1
- package/components/select/select-option/select-option.component.d.ts +4 -6
- package/components/slider/slider.options.d.ts +2 -1
- package/components/switch/switch.options.d.ts +2 -1
- package/components/tabs/tabs.options.d.ts +2 -1
- package/components/tabs/tabs.providers.d.ts +2 -1
- package/components/tiles/tiles.tokens.d.ts +2 -1
- package/components/tree/misc/tree.tokens.d.ts +9 -8
- package/directives/button-select/button-select.directive.d.ts +3 -2
- package/directives/chevron/chevron.directive.d.ts +2 -1
- package/directives/fluid-typography/fluid-typography.options.d.ts +2 -1
- package/esm2022/components/avatar/avatar.options.mjs +6 -3
- package/esm2022/components/badge/badge.directive.mjs +2 -2
- package/esm2022/components/badge/badge.options.mjs +6 -3
- package/esm2022/components/badge-notification/badge-notification.options.mjs +6 -3
- package/esm2022/components/block/block.options.mjs +6 -3
- package/esm2022/components/breadcrumbs/breadcrumbs.options.mjs +6 -3
- package/esm2022/components/calendar-month/calendar-month.component.mjs +3 -3
- package/esm2022/components/checkbox/checkbox.options.mjs +6 -3
- package/esm2022/components/chip/chip.options.mjs +6 -3
- package/esm2022/components/combo-box/combo-box.directive.mjs +2 -5
- package/esm2022/components/data-list-wrapper/data-list-group-wrapper.component.mjs +3 -3
- package/esm2022/components/data-list-wrapper/data-list-wrapper.component.mjs +3 -3
- package/esm2022/components/files/input-files/input-files.directive.mjs +3 -2
- package/esm2022/components/files/input-files/input-files.options.mjs +6 -3
- package/esm2022/components/index.mjs +3 -1
- package/esm2022/components/input-chip/input-chip.component.mjs +15 -13
- package/esm2022/components/input-chip/input-chip.directive.mjs +20 -9
- package/esm2022/components/input-date/input-date.directive.mjs +11 -3
- package/esm2022/components/input-date-range/input-date-range.directive.mjs +6 -2
- package/esm2022/components/input-date-range/input-date-range.options.mjs +9 -7
- package/esm2022/components/input-inline/input-inline.component.mjs +1 -1
- package/esm2022/components/input-month/input-month.options.mjs +9 -7
- package/esm2022/components/input-month-range/input-month-range.options.mjs +9 -7
- package/esm2022/components/input-password/input-password.options.mjs +6 -3
- package/esm2022/components/input-phone-international/input-phone-international.component.mjs +1 -1
- package/esm2022/components/input-phone-international/input-phone-international.options.mjs +6 -3
- package/esm2022/components/input-time/index.mjs +5 -0
- package/esm2022/components/input-time/input-time.component.mjs +49 -0
- package/esm2022/components/input-time/input-time.directive.mjs +123 -0
- package/esm2022/components/input-time/input-time.mjs +4 -0
- package/esm2022/components/input-time/input-time.options.mjs +9 -0
- package/esm2022/components/input-time/taiga-ui-kit-components-input-time.mjs +5 -0
- package/esm2022/components/line-clamp/line-clamp.options.mjs +6 -3
- package/esm2022/components/multi-select/index.mjs +5 -0
- package/esm2022/components/multi-select/multi-select-group/multi-select-group.component.mjs +50 -0
- package/esm2022/components/multi-select/multi-select-group/multi-select-group.directive.mjs +18 -0
- package/esm2022/components/multi-select/multi-select-option/multi-select-option.component.mjs +52 -0
- package/esm2022/components/multi-select/multi-select.mjs +7 -0
- package/esm2022/components/multi-select/taiga-ui-kit-components-multi-select.mjs +5 -0
- package/esm2022/components/pdf-viewer/pdf-viewer.options.mjs +6 -3
- package/esm2022/components/progress/progress-circle/progress-circle.component.mjs +9 -3
- package/esm2022/components/progress/progress.options.mjs +6 -3
- package/esm2022/components/push/push.options.mjs +6 -3
- package/esm2022/components/radio/radio.options.mjs +6 -3
- package/esm2022/components/rating/rating.options.mjs +6 -3
- package/esm2022/components/select/select-option/select-option.component.mjs +29 -23
- package/esm2022/components/select/select.directive.mjs +1 -4
- package/esm2022/components/slider/slider.options.mjs +6 -3
- package/esm2022/components/switch/switch.options.mjs +6 -3
- package/esm2022/components/tabs/tabs.directive.mjs +2 -2
- package/esm2022/components/tabs/tabs.options.mjs +6 -3
- package/esm2022/components/tabs/tabs.providers.mjs +3 -4
- package/esm2022/components/textarea/textarea.component.mjs +3 -3
- package/esm2022/components/tiles/tiles.tokens.mjs +5 -3
- package/esm2022/components/tree/misc/tree.tokens.mjs +18 -10
- package/esm2022/directives/button-select/button-select.directive.mjs +15 -7
- package/esm2022/directives/chevron/chevron.directive.mjs +8 -6
- package/esm2022/directives/fluid-typography/fluid-typography.options.mjs +6 -3
- package/esm2022/pipes/emails/emails.options.mjs +13 -11
- package/esm2022/pipes/hide-selected/hide-selected.pipe.mjs +46 -0
- package/esm2022/pipes/hide-selected/index.mjs +2 -0
- package/esm2022/pipes/hide-selected/taiga-ui-kit-pipes-hide-selected.mjs +5 -0
- package/esm2022/pipes/index.mjs +2 -1
- package/esm2022/tokens/calendar-date-stream.mjs +3 -4
- package/esm2022/tokens/date-inputs-value-transformers.mjs +8 -6
- package/esm2022/tokens/i18n.mjs +74 -26
- package/esm2022/tokens/items-handlers.mjs +9 -6
- package/esm2022/tokens/mobile-calendar.mjs +3 -4
- package/esm2022/tokens/month-formatter.mjs +10 -9
- package/esm2022/tokens/preview-icons.mjs +6 -3
- package/esm2022/tokens/validation-errors.mjs +5 -3
- package/esm2022/utils/index.mjs +2 -1
- package/esm2022/utils/inject-value.mjs +11 -0
- package/fesm2022/taiga-ui-kit-components-avatar.mjs +5 -3
- package/fesm2022/taiga-ui-kit-components-avatar.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-badge-notification.mjs +5 -3
- package/fesm2022/taiga-ui-kit-components-badge-notification.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-badge.mjs +7 -5
- package/fesm2022/taiga-ui-kit-components-badge.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-block.mjs +5 -3
- package/fesm2022/taiga-ui-kit-components-block.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-breadcrumbs.mjs +5 -3
- package/fesm2022/taiga-ui-kit-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-calendar-month.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-calendar-month.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-checkbox.mjs +5 -3
- package/fesm2022/taiga-ui-kit-components-checkbox.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-chip.mjs +5 -3
- package/fesm2022/taiga-ui-kit-components-chip.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-combo-box.mjs +1 -4
- package/fesm2022/taiga-ui-kit-components-combo-box.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-data-list-wrapper.mjs +4 -4
- package/fesm2022/taiga-ui-kit-components-data-list-wrapper.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-files.mjs +7 -4
- package/fesm2022/taiga-ui-kit-components-files.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-chip.mjs +109 -95
- package/fesm2022/taiga-ui-kit-components-input-chip.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-date-range.mjs +12 -6
- package/fesm2022/taiga-ui-kit-components-input-date-range.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-date.mjs +10 -2
- package/fesm2022/taiga-ui-kit-components-input-date.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-inline.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-month-range.mjs +8 -6
- package/fesm2022/taiga-ui-kit-components-input-month-range.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-month.mjs +8 -6
- package/fesm2022/taiga-ui-kit-components-input-month.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-password.mjs +5 -3
- package/fesm2022/taiga-ui-kit-components-input-password.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-phone-international.mjs +6 -4
- package/fesm2022/taiga-ui-kit-components-input-phone-international.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-time.mjs +180 -0
- package/fesm2022/taiga-ui-kit-components-input-time.mjs.map +1 -0
- package/fesm2022/taiga-ui-kit-components-line-clamp.mjs +5 -3
- package/fesm2022/taiga-ui-kit-components-line-clamp.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-multi-select.mjs +118 -0
- package/fesm2022/taiga-ui-kit-components-multi-select.mjs.map +1 -0
- package/fesm2022/taiga-ui-kit-components-pdf-viewer.mjs +5 -3
- package/fesm2022/taiga-ui-kit-components-pdf-viewer.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-progress.mjs +13 -5
- package/fesm2022/taiga-ui-kit-components-progress.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-push.mjs +5 -3
- package/fesm2022/taiga-ui-kit-components-push.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-radio.mjs +5 -3
- package/fesm2022/taiga-ui-kit-components-radio.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-rating.mjs +5 -3
- package/fesm2022/taiga-ui-kit-components-rating.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-select.mjs +29 -24
- package/fesm2022/taiga-ui-kit-components-select.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-slider.mjs +5 -3
- package/fesm2022/taiga-ui-kit-components-slider.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-switch.mjs +5 -3
- package/fesm2022/taiga-ui-kit-components-switch.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-tabs.mjs +8 -6
- 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 +5 -3
- package/fesm2022/taiga-ui-kit-components-tiles.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-tree.mjs +18 -10
- package/fesm2022/taiga-ui-kit-components-tree.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components.mjs +2 -0
- package/fesm2022/taiga-ui-kit-components.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-directives-button-select.mjs +14 -6
- package/fesm2022/taiga-ui-kit-directives-button-select.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-directives-chevron.mjs +7 -5
- package/fesm2022/taiga-ui-kit-directives-chevron.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-directives-fluid-typography.mjs +5 -3
- package/fesm2022/taiga-ui-kit-directives-fluid-typography.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-pipes-emails.mjs +12 -11
- package/fesm2022/taiga-ui-kit-pipes-emails.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-pipes-hide-selected.mjs +52 -0
- package/fesm2022/taiga-ui-kit-pipes-hide-selected.mjs.map +1 -0
- package/fesm2022/taiga-ui-kit-pipes.mjs +1 -0
- package/fesm2022/taiga-ui-kit-pipes.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-tokens.mjs +102 -44
- package/fesm2022/taiga-ui-kit-tokens.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-utils.mjs +12 -1
- package/fesm2022/taiga-ui-kit-utils.mjs.map +1 -1
- package/package.json +28 -10
- package/pipes/emails/emails.options.d.ts +2 -1
- package/pipes/hide-selected/hide-selected.pipe.d.ts +12 -0
- package/pipes/hide-selected/index.d.ts +1 -0
- package/pipes/index.d.ts +1 -0
- package/styles/components/badge.less +1 -13
- package/tokens/calendar-date-stream.d.ts +2 -1
- package/tokens/date-inputs-value-transformers.d.ts +5 -4
- package/tokens/i18n.d.ts +25 -24
- package/tokens/items-handlers.d.ts +6 -5
- package/tokens/mobile-calendar.d.ts +2 -1
- package/tokens/month-formatter.d.ts +2 -1
- package/tokens/preview-icons.d.ts +2 -1
- package/tokens/validation-errors.d.ts +2 -1
- package/utils/index.d.ts +1 -0
- package/utils/inject-value.d.ts +2 -0
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export * from './input-time';
|
|
2
|
+
export * from './input-time.component';
|
|
3
|
+
export * from './input-time.directive';
|
|
4
|
+
export * from './input-time.options';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9pbnB1dC10aW1lL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9pbnB1dC10aW1lJztcbmV4cG9ydCAqIGZyb20gJy4vaW5wdXQtdGltZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnB1dC10aW1lLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2lucHV0LXRpbWUub3B0aW9ucyc7XG4iXX0=
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { NgIf } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, computed, inject, ViewEncapsulation, } from '@angular/core';
|
|
3
|
+
import { TuiControl } from '@taiga-ui/cdk/classes';
|
|
4
|
+
import { TuiTime } from '@taiga-ui/cdk/date-time';
|
|
5
|
+
import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
|
|
6
|
+
import { TuiTextfieldContent, TuiTextfieldDirective, } from '@taiga-ui/core/components/textfield';
|
|
7
|
+
import { TuiInputTimeDirective } from './input-time.directive';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
class TuiInputTimeComponent {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.control = inject(TuiControl);
|
|
12
|
+
this.list = tuiInjectElement().getAttribute('list');
|
|
13
|
+
this.host = inject(TuiInputTimeDirective);
|
|
14
|
+
this.textfield = inject(TuiTextfieldDirective);
|
|
15
|
+
this.value = computed((value = this.control.value()) => value
|
|
16
|
+
? value.toString(this.host.timeMode().replace(' AA', ''))
|
|
17
|
+
: '');
|
|
18
|
+
this.step = computed((mode = this.host.timeMode()) => {
|
|
19
|
+
switch (mode) {
|
|
20
|
+
case 'HH:MM:SS':
|
|
21
|
+
case 'HH:MM:SS AA':
|
|
22
|
+
return 1;
|
|
23
|
+
case 'HH:MM:SS.MSS':
|
|
24
|
+
case 'HH:MM:SS.MSS AA':
|
|
25
|
+
return 0.001;
|
|
26
|
+
default:
|
|
27
|
+
return 60;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
setValue(value) {
|
|
32
|
+
const mode = this.host.timeMode();
|
|
33
|
+
const time = TuiTime.fromString(value);
|
|
34
|
+
this.control.onChange(time);
|
|
35
|
+
this.textfield.value.set(time.toString(mode));
|
|
36
|
+
}
|
|
37
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputTimeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
38
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiInputTimeComponent, isStandalone: true, selector: "input[tuiInputTime][type=\"time\"]", host: { attributes: { "ngSkipHydration": "true" }, properties: { "type": "\"text\"", "attr.list": "null" } }, ngImport: i0, template: "<ng-container *ngIf=\"host.native\">\n <input\n *tuiTextfieldContent\n type=\"time\"\n [attr.list]=\"list\"\n [step]=\"step()\"\n [value]=\"value()\"\n (change)=\"setValue($any($event.target).value)\"\n />\n</ng-container>\n", styles: ["tui-textfield input[tuiInputTime]~.t-content input[type=time]{position:absolute;right:0;left:auto;inline-size:calc(var(--t-right) + var(--t-padding));opacity:0;margin:0;padding:0}tui-textfield input[tuiInputTime]~.t-content input[type=time]::-webkit-calendar-picker-indicator{position:absolute;top:0;left:0;inline-size:100%;block-size:100%}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: TuiTextfieldContent, selector: "ng-template[tuiTextfieldContent]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
39
|
+
}
|
|
40
|
+
export { TuiInputTimeComponent };
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputTimeComponent, decorators: [{
|
|
42
|
+
type: Component,
|
|
43
|
+
args: [{ standalone: true, selector: 'input[tuiInputTime][type="time"]', imports: [NgIf, TuiTextfieldContent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
44
|
+
ngSkipHydration: 'true',
|
|
45
|
+
'[type]': '"text"',
|
|
46
|
+
'[attr.list]': 'null',
|
|
47
|
+
}, template: "<ng-container *ngIf=\"host.native\">\n <input\n *tuiTextfieldContent\n type=\"time\"\n [attr.list]=\"list\"\n [step]=\"step()\"\n [value]=\"value()\"\n (change)=\"setValue($any($event.target).value)\"\n />\n</ng-container>\n", styles: ["tui-textfield input[tuiInputTime]~.t-content input[type=time]{position:absolute;right:0;left:auto;inline-size:calc(var(--t-right) + var(--t-padding));opacity:0;margin:0;padding:0}tui-textfield input[tuiInputTime]~.t-content input[type=time]::-webkit-calendar-picker-indicator{position:absolute;top:0;left:0;inline-size:100%;block-size:100%}\n"] }]
|
|
48
|
+
}] });
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGltZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9pbnB1dC10aW1lL2lucHV0LXRpbWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtdGltZS9pbnB1dC10aW1lLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3JDLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixNQUFNLEVBQ04saUJBQWlCLEdBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDaEQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUNILG1CQUFtQixFQUNuQixxQkFBcUIsR0FDeEIsTUFBTSxxQ0FBcUMsQ0FBQztBQUU3QyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQzs7QUFFN0QsTUFjYSxxQkFBcUI7SUFkbEM7UUFlcUIsWUFBTyxHQUErQixNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFdkQsU0FBSSxHQUFHLGdCQUFnQixFQUFFLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9DLFNBQUksR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNyQyxjQUFTLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDMUMsVUFBSyxHQUFHLFFBQVEsQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FDakUsS0FBSztZQUNELENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQW9CLENBQUM7WUFDNUUsQ0FBQyxDQUFDLEVBQUUsQ0FDWCxDQUFDO1FBRWlCLFNBQUksR0FBRyxRQUFRLENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFFO1lBQy9ELFFBQVEsSUFBSSxFQUFFO2dCQUNWLEtBQUssVUFBVSxDQUFDO2dCQUNoQixLQUFLLGFBQWE7b0JBQ2QsT0FBTyxDQUFDLENBQUM7Z0JBQ2IsS0FBSyxjQUFjLENBQUM7Z0JBQ3BCLEtBQUssaUJBQWlCO29CQUNsQixPQUFPLEtBQUssQ0FBQztnQkFDakI7b0JBQ0ksT0FBTyxFQUFFLENBQUM7YUFDakI7UUFDTCxDQUFDLENBQUMsQ0FBQztLQVNOO0lBUGEsUUFBUSxDQUFDLEtBQWE7UUFDNUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXZDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQzsrR0EvQlEscUJBQXFCO21HQUFyQixxQkFBcUIsNE1DakNsQyxrUkFVQSxnWkRZYyxJQUFJLDZGQUFFLG1CQUFtQjs7U0FXMUIscUJBQXFCOzRGQUFyQixxQkFBcUI7a0JBZGpDLFNBQVM7aUNBQ00sSUFBSSxZQUNOLGtDQUFrQyxXQUNuQyxDQUFDLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxpQkFHckIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDRixlQUFlLEVBQUUsTUFBTTt3QkFDdkIsUUFBUSxFQUFFLFFBQVE7d0JBQ2xCLGFBQWEsRUFBRSxNQUFNO3FCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdJZn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIGNvbXB1dGVkLFxuICAgIGluamVjdCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7TWFza2l0b1RpbWVNb2RlfSBmcm9tICdAbWFza2l0by9raXQnO1xuaW1wb3J0IHtUdWlDb250cm9sfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NsYXNzZXMnO1xuaW1wb3J0IHtUdWlUaW1lfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2RhdGUtdGltZSc7XG5pbXBvcnQge3R1aUluamVjdEVsZW1lbnR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvZG9tJztcbmltcG9ydCB7XG4gICAgVHVpVGV4dGZpZWxkQ29udGVudCxcbiAgICBUdWlUZXh0ZmllbGREaXJlY3RpdmUsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvdGV4dGZpZWxkJztcblxuaW1wb3J0IHtUdWlJbnB1dFRpbWVEaXJlY3RpdmV9IGZyb20gJy4vaW5wdXQtdGltZS5kaXJlY3RpdmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnaW5wdXRbdHVpSW5wdXRUaW1lXVt0eXBlPVwidGltZVwiXScsXG4gICAgaW1wb3J0czogW05nSWYsIFR1aVRleHRmaWVsZENvbnRlbnRdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC10aW1lLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2lucHV0LXRpbWUuc3R5bGUubGVzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICBuZ1NraXBIeWRyYXRpb246ICd0cnVlJyxcbiAgICAgICAgJ1t0eXBlXSc6ICdcInRleHRcIicsXG4gICAgICAgICdbYXR0ci5saXN0XSc6ICdudWxsJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlJbnB1dFRpbWVDb21wb25lbnQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY29udHJvbDogVHVpQ29udHJvbDxUdWlUaW1lIHwgbnVsbD4gPSBpbmplY3QoVHVpQ29udHJvbCk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbGlzdCA9IHR1aUluamVjdEVsZW1lbnQoKS5nZXRBdHRyaWJ1dGUoJ2xpc3QnKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaG9zdCA9IGluamVjdChUdWlJbnB1dFRpbWVEaXJlY3RpdmUpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSB0ZXh0ZmllbGQgPSBpbmplY3QoVHVpVGV4dGZpZWxkRGlyZWN0aXZlKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdmFsdWUgPSBjb21wdXRlZCgodmFsdWUgPSB0aGlzLmNvbnRyb2wudmFsdWUoKSkgPT5cbiAgICAgICAgdmFsdWVcbiAgICAgICAgICAgID8gdmFsdWUudG9TdHJpbmcodGhpcy5ob3N0LnRpbWVNb2RlKCkucmVwbGFjZSgnIEFBJywgJycpIGFzIE1hc2tpdG9UaW1lTW9kZSlcbiAgICAgICAgICAgIDogJycsXG4gICAgKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBzdGVwID0gY29tcHV0ZWQoKG1vZGUgPSB0aGlzLmhvc3QudGltZU1vZGUoKSkgPT4ge1xuICAgICAgICBzd2l0Y2ggKG1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ0hIOk1NOlNTJzpcbiAgICAgICAgICAgIGNhc2UgJ0hIOk1NOlNTIEFBJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgICAgIGNhc2UgJ0hIOk1NOlNTLk1TUyc6XG4gICAgICAgICAgICBjYXNlICdISDpNTTpTUy5NU1MgQUEnOlxuICAgICAgICAgICAgICAgIHJldHVybiAwLjAwMTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDYwO1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICBwcm90ZWN0ZWQgc2V0VmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBtb2RlID0gdGhpcy5ob3N0LnRpbWVNb2RlKCk7XG4gICAgICAgIGNvbnN0IHRpbWUgPSBUdWlUaW1lLmZyb21TdHJpbmcodmFsdWUpO1xuXG4gICAgICAgIHRoaXMuY29udHJvbC5vbkNoYW5nZSh0aW1lKTtcbiAgICAgICAgdGhpcy50ZXh0ZmllbGQudmFsdWUuc2V0KHRpbWUudG9TdHJpbmcobW9kZSkpO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJob3N0Lm5hdGl2ZVwiPlxuICAgIDxpbnB1dFxuICAgICAgICAqdHVpVGV4dGZpZWxkQ29udGVudFxuICAgICAgICB0eXBlPVwidGltZVwiXG4gICAgICAgIFthdHRyLmxpc3RdPVwibGlzdFwiXG4gICAgICAgIFtzdGVwXT1cInN0ZXAoKVwiXG4gICAgICAgIFt2YWx1ZV09XCJ2YWx1ZSgpXCJcbiAgICAgICAgKGNoYW5nZSk9XCJzZXRWYWx1ZSgkYW55KCRldmVudC50YXJnZXQpLnZhbHVlKVwiXG4gICAgLz5cbjwvbmctY29udGFpbmVyPlxuIl19
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { computed, Directive, inject, Input, signal } from '@angular/core';
|
|
2
|
+
import { toSignal } from '@angular/core/rxjs-interop';
|
|
3
|
+
import { MaskitoDirective } from '@maskito/angular';
|
|
4
|
+
import { maskitoSelectionChangeHandler, maskitoTimeOptionsGenerator } from '@maskito/kit';
|
|
5
|
+
import { tuiAsControl, TuiControl, tuiValueTransformerFrom } from '@taiga-ui/cdk/classes';
|
|
6
|
+
import { TuiTime } from '@taiga-ui/cdk/date-time';
|
|
7
|
+
import { TUI_IS_MOBILE } from '@taiga-ui/cdk/tokens';
|
|
8
|
+
import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
|
|
9
|
+
import { tuiDirectiveBinding } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
10
|
+
import { tuiAsOptionContent } from '@taiga-ui/core/components/data-list';
|
|
11
|
+
import { tuiAsTextfieldAccessor, TuiTextfieldComponent, TuiTextfieldDirective, tuiTextfieldIconBinding, TuiWithTextfield, } from '@taiga-ui/core/components/textfield';
|
|
12
|
+
import { TuiDropdownDirective, tuiDropdownEnabled, tuiDropdownOpen, } from '@taiga-ui/core/directives/dropdown';
|
|
13
|
+
import { tuiAsAuxiliary } from '@taiga-ui/core/tokens';
|
|
14
|
+
import { TuiSelectOption } from '@taiga-ui/kit/components/select';
|
|
15
|
+
import { TUI_TIME_TEXTS } from '@taiga-ui/kit/tokens';
|
|
16
|
+
import { tuiMaskito } from '@taiga-ui/kit/utils';
|
|
17
|
+
import { TUI_INPUT_TIME_OPTIONS } from './input-time.options';
|
|
18
|
+
import * as i0 from "@angular/core";
|
|
19
|
+
import * as i1 from "@taiga-ui/core/components/textfield";
|
|
20
|
+
import * as i2 from "@maskito/angular";
|
|
21
|
+
class TuiInputTimeDirective extends TuiControl {
|
|
22
|
+
constructor() {
|
|
23
|
+
super(...arguments);
|
|
24
|
+
this.textfield = inject(TuiTextfieldDirective);
|
|
25
|
+
this.dropdown = inject(TuiDropdownDirective);
|
|
26
|
+
this.open = tuiDropdownOpen();
|
|
27
|
+
this.options = inject(TUI_INPUT_TIME_OPTIONS);
|
|
28
|
+
this.fillers = toSignal(inject(TUI_TIME_TEXTS));
|
|
29
|
+
this.icon = tuiTextfieldIconBinding(TUI_INPUT_TIME_OPTIONS);
|
|
30
|
+
this.dropdownEnabled = tuiDropdownEnabled(computed(() => !this.native && this.interactive()));
|
|
31
|
+
this.filler = tuiDirectiveBinding(TuiTextfieldComponent, 'fillerSetter', computed((fillers = this.fillers()) => fillers?.[this.timeMode()] ?? ''), {});
|
|
32
|
+
this.mask = tuiMaskito(computed(() => this.computeMask({
|
|
33
|
+
...this.options,
|
|
34
|
+
mode: this.timeMode(),
|
|
35
|
+
step: this.interactive() && !this.dropdown._content() ? 1 : 0,
|
|
36
|
+
})));
|
|
37
|
+
this.accept = [];
|
|
38
|
+
this.native = tuiInjectElement().type === 'time' && inject(TUI_IS_MOBILE);
|
|
39
|
+
this.timeMode = signal(this.options.mode);
|
|
40
|
+
}
|
|
41
|
+
// TODO(v5): use signal inputs
|
|
42
|
+
set modeSetter(x) {
|
|
43
|
+
this.timeMode.set(x);
|
|
44
|
+
}
|
|
45
|
+
setValue(value) {
|
|
46
|
+
this.onChange(value);
|
|
47
|
+
this.textfield.value.set(value?.toString(this.timeMode()) ?? '');
|
|
48
|
+
if (!value) {
|
|
49
|
+
this.open.set(true);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
writeValue(value) {
|
|
53
|
+
super.writeValue(value);
|
|
54
|
+
this.textfield.value.set(this.value()?.toString(this.timeMode()) ?? '');
|
|
55
|
+
}
|
|
56
|
+
onInput(value) {
|
|
57
|
+
const time = value.length === this.timeMode().length ? TuiTime.fromString(value) : null;
|
|
58
|
+
const newValue = this.accept.length && time ? this.findNearestTime(time, this.accept) : time;
|
|
59
|
+
this.control?.control?.updateValueAndValidity({ emitEvent: false });
|
|
60
|
+
this.onChange(newValue);
|
|
61
|
+
if (newValue && newValue !== time) {
|
|
62
|
+
this.textfield.value.set(newValue?.toString(this.timeMode()));
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
toggle() {
|
|
66
|
+
this.open.update((x) => !x);
|
|
67
|
+
}
|
|
68
|
+
computeMask(params) {
|
|
69
|
+
const options = maskitoTimeOptionsGenerator(params);
|
|
70
|
+
const { mode } = params;
|
|
71
|
+
const inputModeSwitchPlugin = maskitoSelectionChangeHandler((element) => {
|
|
72
|
+
element.inputMode =
|
|
73
|
+
element.selectionStart >= mode.indexOf(' AA') ? 'text' : 'numeric';
|
|
74
|
+
});
|
|
75
|
+
return {
|
|
76
|
+
...options,
|
|
77
|
+
plugins: options.plugins.concat(mode.includes('AA') ? inputModeSwitchPlugin : []),
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
findNearestTime(value, items) {
|
|
81
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
82
|
+
return items.reduce((previous, current) => Math.abs(current.valueOf() - value.valueOf()) <
|
|
83
|
+
Math.abs(previous.valueOf() - value.valueOf())
|
|
84
|
+
? current
|
|
85
|
+
: previous);
|
|
86
|
+
}
|
|
87
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputTimeDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
88
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiInputTimeDirective, isStandalone: true, selector: "input[tuiInputTime]", inputs: { accept: "accept", modeSetter: ["mode", "modeSetter"] }, host: { attributes: { "inputmode": "numeric" }, listeners: { "click": "toggle()", "input": "onInput($event.target.value)" }, properties: { "disabled": "disabled()" } }, providers: [
|
|
89
|
+
tuiAsControl(TuiInputTimeDirective),
|
|
90
|
+
tuiAsTextfieldAccessor(TuiInputTimeDirective),
|
|
91
|
+
tuiAsAuxiliary(TuiInputTimeDirective),
|
|
92
|
+
tuiValueTransformerFrom(TUI_INPUT_TIME_OPTIONS),
|
|
93
|
+
tuiAsOptionContent(TuiSelectOption),
|
|
94
|
+
], usesInheritance: true, hostDirectives: [{ directive: i1.TuiWithTextfield }, { directive: i2.MaskitoDirective }], ngImport: i0 }); }
|
|
95
|
+
}
|
|
96
|
+
export { TuiInputTimeDirective };
|
|
97
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputTimeDirective, decorators: [{
|
|
98
|
+
type: Directive,
|
|
99
|
+
args: [{
|
|
100
|
+
standalone: true,
|
|
101
|
+
selector: 'input[tuiInputTime]',
|
|
102
|
+
providers: [
|
|
103
|
+
tuiAsControl(TuiInputTimeDirective),
|
|
104
|
+
tuiAsTextfieldAccessor(TuiInputTimeDirective),
|
|
105
|
+
tuiAsAuxiliary(TuiInputTimeDirective),
|
|
106
|
+
tuiValueTransformerFrom(TUI_INPUT_TIME_OPTIONS),
|
|
107
|
+
tuiAsOptionContent(TuiSelectOption),
|
|
108
|
+
],
|
|
109
|
+
hostDirectives: [TuiWithTextfield, MaskitoDirective],
|
|
110
|
+
host: {
|
|
111
|
+
inputmode: 'numeric',
|
|
112
|
+
'[disabled]': 'disabled()',
|
|
113
|
+
'(click)': 'toggle()',
|
|
114
|
+
'(input)': 'onInput($event.target.value)',
|
|
115
|
+
},
|
|
116
|
+
}]
|
|
117
|
+
}], propDecorators: { accept: [{
|
|
118
|
+
type: Input
|
|
119
|
+
}], modeSetter: [{
|
|
120
|
+
type: Input,
|
|
121
|
+
args: ['mode']
|
|
122
|
+
}] } });
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGltZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9pbnB1dC10aW1lL2lucHV0LXRpbWUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUdsRCxPQUFPLEVBQUMsNkJBQTZCLEVBQUUsMkJBQTJCLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDeEYsT0FBTyxFQUFDLFlBQVksRUFBRSxVQUFVLEVBQUUsdUJBQXVCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RixPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDaEQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBRXZFLE9BQU8sRUFDSCxzQkFBc0IsRUFDdEIscUJBQXFCLEVBQ3JCLHFCQUFxQixFQUNyQix1QkFBdUIsRUFDdkIsZ0JBQWdCLEdBQ25CLE1BQU0scUNBQXFDLENBQUM7QUFDN0MsT0FBTyxFQUNILG9CQUFvQixFQUNwQixrQkFBa0IsRUFDbEIsZUFBZSxHQUNsQixNQUFNLG9DQUFvQyxDQUFDO0FBQzVDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxP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QXVCO3dCQUM3QyxjQUFjLHVCQUF1Qjt3QkFDckMsdUJBQXVCLENBQUMsc0JBQXNCLENBQUM7d0JBQy9DLGtCQUFrQixDQUFDLGVBQWUsQ0FBQztxQkFDdEM7b0JBQ0QsY0FBYyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQUM7b0JBQ3BELElBQUksRUFBRTt3QkFDRixTQUFTLEVBQUUsU0FBUzt3QkFDcEIsWUFBWSxFQUFFLFlBQVk7d0JBQzFCLFNBQVMsRUFBRSxVQUFVO3dCQUNyQixTQUFTLEVBQUUsOEJBQThCO3FCQUM1QztpQkFDSjs4QkFrQ1UsTUFBTTtzQkFEWixLQUFLO2dCQVVLLFVBQVU7c0JBRHBCLEtBQUs7dUJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y29tcHV0ZWQsIERpcmVjdGl2ZSwgaW5qZWN0LCBJbnB1dCwgc2lnbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dG9TaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7TWFza2l0b0RpcmVjdGl2ZX0gZnJvbSAnQG1hc2tpdG8vYW5ndWxhcic7XG5pbXBvcnQgdHlwZSB7TWFza2l0b09wdGlvbnN9IGZyb20gJ0BtYXNraXRvL2NvcmUnO1xuaW1wb3J0IHR5cGUge01hc2tpdG9UaW1lTW9kZSwgTWFza2l0b1RpbWVQYXJhbXN9IGZyb20gJ0BtYXNraXRvL2tpdCc7XG5pbXBvcnQge21hc2tpdG9TZWxlY3Rpb25DaGFuZ2VIYW5kbGVyLCBtYXNraXRvVGltZU9wdGlvbnNHZW5lcmF0b3J9IGZyb20gJ0BtYXNraXRvL2tpdCc7XG5pbXBvcnQge3R1aUFzQ29udHJvbCwgVHVpQ29udHJvbCwgdHVpVmFsdWVUcmFuc2Zvcm1lckZyb219IGZyb20gJ0B0YWlnYS11aS9jZGsvY2xhc3Nlcyc7XG5pbXBvcnQge1R1aVRpbWV9IGZyb20gJ0B0YWlnYS11aS9jZGsvZGF0ZS10aW1lJztcbmltcG9ydCB7VFVJX0lTX01PQklMRX0gZnJvbSAnQHRhaWdhLXVpL2Nkay90b2tlbnMnO1xuaW1wb3J0IHt0dWlJbmplY3RFbGVtZW50fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL2RvbSc7XG5pbXBvcnQge3R1aURpcmVjdGl2ZUJpbmRpbmd9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge3R1aUFzT3B0aW9uQ29udGVudH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9kYXRhLWxpc3QnO1xuaW1wb3J0IHR5cGUge1R1aVRleHRmaWVsZEFjY2Vzc29yfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3RleHRmaWVsZCc7XG5pbXBvcnQge1xuICAgIHR1aUFzVGV4dGZpZWxkQWNjZXNzb3IsXG4gICAgVHVpVGV4dGZpZWxkQ29tcG9uZW50LFxuICAgIFR1aVRleHRmaWVsZERpcmVjdGl2ZSxcbiAgICB0dWlUZXh0ZmllbGRJY29uQmluZGluZyxcbiAgICBUdWlXaXRoVGV4dGZpZWxkLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3RleHRmaWVsZCc7XG5pbXBvcnQge1xuICAgIFR1aURyb3Bkb3duRGlyZWN0aXZlLFxuICAgIHR1aURyb3Bkb3duRW5hYmxlZCxcbiAgICB0dWlEcm9wZG93bk9wZW4sXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvZHJvcGRvd24nO1xuaW1wb3J0IHt0dWlBc0F1eGlsaWFyeX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdG9rZW5zJztcbmltcG9ydCB7VHVpU2VsZWN0T3B0aW9ufSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvc2VsZWN0JztcbmltcG9ydCB7VFVJX1RJTUVfVEVYVFN9IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7dHVpTWFza2l0b30gZnJvbSAnQHRhaWdhLXVpL2tpdC91dGlscyc7XG5cbmltcG9ydCB7VFVJX0lOUFVUX1RJTUVfT1BUSU9OU30gZnJvbSAnLi9pbnB1dC10aW1lLm9wdGlvbnMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnaW5wdXRbdHVpSW5wdXRUaW1lXScsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHR1aUFzQ29udHJvbChUdWlJbnB1dFRpbWVEaXJlY3RpdmUpLFxuICAgICAgICB0dWlBc1RleHRmaWVsZEFjY2Vzc29yKFR1aUlucHV0VGltZURpcmVjdGl2ZSksXG4gICAgICAgIHR1aUFzQXV4aWxpYXJ5KFR1aUlucHV0VGltZURpcmVjdGl2ZSksXG4gICAgICAgIHR1aVZhbHVlVHJhbnNmb3JtZXJGcm9tKFRVSV9JTlBVVF9USU1FX09QVElPTlMpLFxuICAgICAgICB0dWlBc09wdGlvbkNvbnRlbnQoVHVpU2VsZWN0T3B0aW9uKSxcbiAgICBdLFxuICAgIGhvc3REaXJlY3RpdmVzOiBbVHVpV2l0aFRleHRmaWVsZCwgTWFza2l0b0RpcmVjdGl2ZV0sXG4gICAgaG9zdDoge1xuICAgICAgICBpbnB1dG1vZGU6ICdudW1lcmljJyxcbiAgICAgICAgJ1tkaXNhYmxlZF0nOiAnZGlzYWJsZWQoKScsXG4gICAgICAgICcoY2xpY2spJzogJ3RvZ2dsZSgpJyxcbiAgICAgICAgJyhpbnB1dCknOiAnb25JbnB1dCgkZXZlbnQudGFyZ2V0LnZhbHVlKScsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXRUaW1lRGlyZWN0aXZlXG4gICAgZXh0ZW5kcyBUdWlDb250cm9sPFR1aVRpbWUgfCBudWxsPlxuICAgIGltcGxlbWVudHMgVHVpVGV4dGZpZWxkQWNjZXNzb3I8VHVpVGltZSB8IG51bGw+XG57XG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGQgPSBpbmplY3QoVHVpVGV4dGZpZWxkRGlyZWN0aXZlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRyb3Bkb3duID0gaW5qZWN0KFR1aURyb3Bkb3duRGlyZWN0aXZlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9wZW4gPSB0dWlEcm9wZG93bk9wZW4oKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnMgPSBpbmplY3QoVFVJX0lOUFVUX1RJTUVfT1BUSU9OUyk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmaWxsZXJzID0gdG9TaWduYWwoaW5qZWN0KFRVSV9USU1FX1RFWFRTKSk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaWNvbiA9IHR1aVRleHRmaWVsZEljb25CaW5kaW5nKFRVSV9JTlBVVF9USU1FX09QVElPTlMpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBkcm9wZG93bkVuYWJsZWQgPSB0dWlEcm9wZG93bkVuYWJsZWQoXG4gICAgICAgIGNvbXB1dGVkKCgpID0+ICF0aGlzLm5hdGl2ZSAmJiB0aGlzLmludGVyYWN0aXZlKCkpLFxuICAgICk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZmlsbGVyID0gdHVpRGlyZWN0aXZlQmluZGluZyhcbiAgICAgICAgVHVpVGV4dGZpZWxkQ29tcG9uZW50LFxuICAgICAgICAnZmlsbGVyU2V0dGVyJyxcbiAgICAgICAgY29tcHV0ZWQoKGZpbGxlcnMgPSB0aGlzLmZpbGxlcnMoKSkgPT4gZmlsbGVycz8uW3RoaXMudGltZU1vZGUoKV0gPz8gJycpLFxuICAgICAgICB7fSxcbiAgICApO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG1hc2sgPSB0dWlNYXNraXRvKFxuICAgICAgICBjb21wdXRlZCgoKSA9PlxuICAgICAgICAgICAgdGhpcy5jb21wdXRlTWFzayh7XG4gICAgICAgICAgICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgICAgICAgICAgIG1vZGU6IHRoaXMudGltZU1vZGUoKSxcbiAgICAgICAgICAgICAgICBzdGVwOiB0aGlzLmludGVyYWN0aXZlKCkgJiYgIXRoaXMuZHJvcGRvd24uX2NvbnRlbnQoKSA/IDEgOiAwLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICksXG4gICAgKTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGFjY2VwdDogcmVhZG9ubHkgVHVpVGltZVtdID0gW107XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgbmF0aXZlID1cbiAgICAgICAgdHVpSW5qZWN0RWxlbWVudDxIVE1MSW5wdXRFbGVtZW50PigpLnR5cGUgPT09ICd0aW1lJyAmJiBpbmplY3QoVFVJX0lTX01PQklMRSk7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgdGltZU1vZGUgPSBzaWduYWwodGhpcy5vcHRpb25zLm1vZGUpO1xuXG4gICAgLy8gVE9ETyh2NSk6IHVzZSBzaWduYWwgaW5wdXRzXG4gICAgQElucHV0KCdtb2RlJylcbiAgICBwdWJsaWMgc2V0IG1vZGVTZXR0ZXIoeDogTWFza2l0b1RpbWVNb2RlKSB7XG4gICAgICAgIHRoaXMudGltZU1vZGUuc2V0KHgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRWYWx1ZSh2YWx1ZTogVHVpVGltZSB8IG51bGwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMudGV4dGZpZWxkLnZhbHVlLnNldCh2YWx1ZT8udG9TdHJpbmcodGhpcy50aW1lTW9kZSgpKSA/PyAnJyk7XG5cbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5vcGVuLnNldCh0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBUdWlUaW1lIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICBzdXBlci53cml0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy50ZXh0ZmllbGQudmFsdWUuc2V0KHRoaXMudmFsdWUoKT8udG9TdHJpbmcodGhpcy50aW1lTW9kZSgpKSA/PyAnJyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uSW5wdXQodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCB0aW1lID1cbiAgICAgICAgICAgIHZhbHVlLmxlbmd0aCA9PT0gdGhpcy50aW1lTW9kZSgpLmxlbmd0aCA/IFR1aVRpbWUuZnJvbVN0cmluZyh2YWx1ZSkgOiBudWxsO1xuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9XG4gICAgICAgICAgICB0aGlzLmFjY2VwdC5sZW5ndGggJiYgdGltZSA/IHRoaXMuZmluZE5lYXJlc3RUaW1lKHRpbWUsIHRoaXMuYWNjZXB0KSA6IHRpbWU7XG5cbiAgICAgICAgdGhpcy5jb250cm9sPy5jb250cm9sPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtlbWl0RXZlbnQ6IGZhbHNlfSk7XG4gICAgICAgIHRoaXMub25DaGFuZ2UobmV3VmFsdWUpO1xuXG4gICAgICAgIGlmIChuZXdWYWx1ZSAmJiBuZXdWYWx1ZSAhPT0gdGltZSkge1xuICAgICAgICAgICAgdGhpcy50ZXh0ZmllbGQudmFsdWUuc2V0KG5ld1ZhbHVlPy50b1N0cmluZyh0aGlzLnRpbWVNb2RlKCkpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCB0b2dnbGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub3Blbi51cGRhdGUoKHgpID0+ICF4KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbXB1dGVNYXNrKHBhcmFtczogTWFza2l0b1RpbWVQYXJhbXMpOiBNYXNraXRvT3B0aW9ucyB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSBtYXNraXRvVGltZU9wdGlvbnNHZW5lcmF0b3IocGFyYW1zKTtcbiAgICAgICAgY29uc3Qge21vZGV9ID0gcGFyYW1zO1xuICAgICAgICBjb25zdCBpbnB1dE1vZGVTd2l0Y2hQbHVnaW4gPSBtYXNraXRvU2VsZWN0aW9uQ2hhbmdlSGFuZGxlcigoZWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgZWxlbWVudC5pbnB1dE1vZGUgPVxuICAgICAgICAgICAgICAgIGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQhID49IG1vZGUuaW5kZXhPZignIEFBJykgPyAndGV4dCcgOiAnbnVtZXJpYyc7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICAgICAgcGx1Z2luczogb3B0aW9ucy5wbHVnaW5zLmNvbmNhdChcbiAgICAgICAgICAgICAgICBtb2RlLmluY2x1ZGVzKCdBQScpID8gaW5wdXRNb2RlU3dpdGNoUGx1Z2luIDogW10sXG4gICAgICAgICAgICApLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgZmluZE5lYXJlc3RUaW1lKHZhbHVlOiBUdWlUaW1lLCBpdGVtczogcmVhZG9ubHkgVHVpVGltZVtdKTogVHVpVGltZSB8IG51bGwge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1zeW50YXhcbiAgICAgICAgcmV0dXJuIGl0ZW1zLnJlZHVjZSgocHJldmlvdXMsIGN1cnJlbnQpID0+XG4gICAgICAgICAgICBNYXRoLmFicyhjdXJyZW50LnZhbHVlT2YoKSAtIHZhbHVlLnZhbHVlT2YoKSkgPFxuICAgICAgICAgICAgTWF0aC5hYnMocHJldmlvdXMudmFsdWVPZigpIC0gdmFsdWUudmFsdWVPZigpKVxuICAgICAgICAgICAgICAgID8gY3VycmVudFxuICAgICAgICAgICAgICAgIDogcHJldmlvdXMsXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { TuiInputTimeComponent } from './input-time.component';
|
|
2
|
+
import { TuiInputTimeDirective } from './input-time.directive';
|
|
3
|
+
export const TuiInputTime = [TuiInputTimeDirective, TuiInputTimeComponent];
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL2lucHV0LXRpbWUvaW5wdXQtdGltZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUU3RCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxxQkFBcUIsRUFBRSxxQkFBcUIsQ0FBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtUdWlJbnB1dFRpbWVDb21wb25lbnR9IGZyb20gJy4vaW5wdXQtdGltZS5jb21wb25lbnQnO1xuaW1wb3J0IHtUdWlJbnB1dFRpbWVEaXJlY3RpdmV9IGZyb20gJy4vaW5wdXQtdGltZS5kaXJlY3RpdmUnO1xuXG5leHBvcnQgY29uc3QgVHVpSW5wdXRUaW1lID0gW1R1aUlucHV0VGltZURpcmVjdGl2ZSwgVHVpSW5wdXRUaW1lQ29tcG9uZW50XSBhcyBjb25zdDtcbiJdfQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { tuiCreateOptions } from '@taiga-ui/cdk/utils/di';
|
|
2
|
+
export const TUI_INPUT_TIME_DEFAULT_OPTIONS = {
|
|
3
|
+
icon: () => '@tui.clock',
|
|
4
|
+
mode: 'HH:MM',
|
|
5
|
+
timeSegmentMaxValues: {},
|
|
6
|
+
valueTransformer: null,
|
|
7
|
+
};
|
|
8
|
+
export const [TUI_INPUT_TIME_OPTIONS, tuiInputTimeOptionsProvider] = tuiCreateOptions(TUI_INPUT_TIME_DEFAULT_OPTIONS);
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGltZS5vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtdGltZS9pbnB1dC10aW1lLm9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFTeEQsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQXdCO0lBQy9ELElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxZQUFZO0lBQ3hCLElBQUksRUFBRSxPQUFPO0lBQ2Isb0JBQW9CLEVBQUUsRUFBRTtJQUN4QixnQkFBZ0IsRUFBRSxJQUFJO0NBQ3pCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxDQUFDLHNCQUFzQixFQUFFLDJCQUEyQixDQUFDLEdBQUcsZ0JBQWdCLENBQ2pGLDhCQUE4QixDQUNqQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge01hc2tpdG9UaW1lUGFyYW1zfSBmcm9tICdAbWFza2l0by9raXQnO1xuaW1wb3J0IHR5cGUge1R1aVZhbHVlVHJhbnNmb3JtZXJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvY2xhc3Nlcyc7XG5pbXBvcnQgdHlwZSB7VHVpVGltZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay9kYXRlLXRpbWUnO1xuaW1wb3J0IHR5cGUge1R1aUhhbmRsZXJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvdHlwZXMnO1xuaW1wb3J0IHt0dWlDcmVhdGVPcHRpb25zfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL2RpJztcbmltcG9ydCB0eXBlIHtUdWlTaXplTCwgVHVpU2l6ZVN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBUdWlJbnB1dFRpbWVPcHRpb25zXG4gICAgZXh0ZW5kcyBSZXF1aXJlZDxQaWNrPE1hc2tpdG9UaW1lUGFyYW1zLCAnbW9kZScgfCAndGltZVNlZ21lbnRNYXhWYWx1ZXMnPj4ge1xuICAgIHJlYWRvbmx5IGljb246IFR1aUhhbmRsZXI8VHVpU2l6ZUwgfCBUdWlTaXplUywgc3RyaW5nPjtcbiAgICByZWFkb25seSB2YWx1ZVRyYW5zZm9ybWVyOiBUdWlWYWx1ZVRyYW5zZm9ybWVyPFR1aVRpbWUgfCBudWxsLCBhbnk+IHwgbnVsbDtcbn1cblxuZXhwb3J0IGNvbnN0IFRVSV9JTlBVVF9USU1FX0RFRkFVTFRfT1BUSU9OUzogVHVpSW5wdXRUaW1lT3B0aW9ucyA9IHtcbiAgICBpY29uOiAoKSA9PiAnQHR1aS5jbG9jaycsXG4gICAgbW9kZTogJ0hIOk1NJyxcbiAgICB0aW1lU2VnbWVudE1heFZhbHVlczoge30sXG4gICAgdmFsdWVUcmFuc2Zvcm1lcjogbnVsbCxcbn07XG5cbmV4cG9ydCBjb25zdCBbVFVJX0lOUFVUX1RJTUVfT1BUSU9OUywgdHVpSW5wdXRUaW1lT3B0aW9uc1Byb3ZpZGVyXSA9IHR1aUNyZWF0ZU9wdGlvbnMoXG4gICAgVFVJX0lOUFVUX1RJTUVfREVGQVVMVF9PUFRJT05TLFxuKTtcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFpZ2EtdWkta2l0LWNvbXBvbmVudHMtaW5wdXQtdGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL2lucHV0LXRpbWUvdGFpZ2EtdWkta2l0LWNvbXBvbmVudHMtaW5wdXQtdGltZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
|
@@ -1,12 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
import { tuiProvideOptions } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
2
3
|
export const TUI_LINE_CLAMP_DEFAULT_OPTIONS = {
|
|
3
4
|
showHint: true,
|
|
4
5
|
};
|
|
5
6
|
/**
|
|
6
7
|
* Default parameters for LineClamp component
|
|
7
8
|
*/
|
|
8
|
-
export const TUI_LINE_CLAMP_OPTIONS =
|
|
9
|
+
export const TUI_LINE_CLAMP_OPTIONS = new InjectionToken(ngDevMode ? 'TUI_LINE_CLAMP_OPTIONS' : '', {
|
|
10
|
+
factory: () => TUI_LINE_CLAMP_DEFAULT_OPTIONS,
|
|
11
|
+
});
|
|
9
12
|
export function tuiLineClampOptionsProvider(options) {
|
|
10
13
|
return tuiProvideOptions(TUI_LINE_CLAMP_OPTIONS, options, TUI_LINE_CLAMP_DEFAULT_OPTIONS);
|
|
11
14
|
}
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1jbGFtcC5vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvbGluZS1jbGFtcC9saW5lLWNsYW1wLm9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQU1wRSxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBd0I7SUFDL0QsUUFBUSxFQUFFLElBQUk7Q0FDakIsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxjQUFjLENBQ3BELFNBQVMsQ0FBQyxDQUFDLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFDekM7SUFDSSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsOEJBQThCO0NBQ2hELENBQ0osQ0FBQztBQUVGLE1BQU0sVUFBVSwyQkFBMkIsQ0FDdkMsT0FBcUM7SUFFckMsT0FBTyxpQkFBaUIsQ0FDcEIsc0JBQXNCLEVBQ3RCLE9BQU8sRUFDUCw4QkFBOEIsQ0FDakMsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7UHJvdmlkZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtJbmplY3Rpb25Ub2tlbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3R1aVByb3ZpZGVPcHRpb25zfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL21pc2NlbGxhbmVvdXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFR1aUxpbmVDbGFtcE9wdGlvbnMge1xuICAgIHJlYWRvbmx5IHNob3dIaW50OiBib29sZWFuO1xufVxuXG5leHBvcnQgY29uc3QgVFVJX0xJTkVfQ0xBTVBfREVGQVVMVF9PUFRJT05TOiBUdWlMaW5lQ2xhbXBPcHRpb25zID0ge1xuICAgIHNob3dIaW50OiB0cnVlLFxufTtcblxuLyoqXG4gKiBEZWZhdWx0IHBhcmFtZXRlcnMgZm9yIExpbmVDbGFtcCBjb21wb25lbnRcbiAqL1xuZXhwb3J0IGNvbnN0IFRVSV9MSU5FX0NMQU1QX09QVElPTlMgPSBuZXcgSW5qZWN0aW9uVG9rZW4oXG4gICAgbmdEZXZNb2RlID8gJ1RVSV9MSU5FX0NMQU1QX09QVElPTlMnIDogJycsXG4gICAge1xuICAgICAgICBmYWN0b3J5OiAoKSA9PiBUVUlfTElORV9DTEFNUF9ERUZBVUxUX09QVElPTlMsXG4gICAgfSxcbik7XG5cbmV4cG9ydCBmdW5jdGlvbiB0dWlMaW5lQ2xhbXBPcHRpb25zUHJvdmlkZXIoXG4gICAgb3B0aW9uczogUGFydGlhbDxUdWlMaW5lQ2xhbXBPcHRpb25zPixcbik6IFByb3ZpZGVyIHtcbiAgICByZXR1cm4gdHVpUHJvdmlkZU9wdGlvbnMoXG4gICAgICAgIFRVSV9MSU5FX0NMQU1QX09QVElPTlMsXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICAgIFRVSV9MSU5FX0NMQU1QX0RFRkFVTFRfT1BUSU9OUyxcbiAgICApO1xufVxuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export * from './multi-select';
|
|
2
|
+
export * from './multi-select-group/multi-select-group.component';
|
|
3
|
+
export * from './multi-select-group/multi-select-group.directive';
|
|
4
|
+
export * from './multi-select-option/multi-select-option.component';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9tdWx0aS1zZWxlY3QvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyxxREFBcUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbXVsdGktc2VsZWN0JztcbmV4cG9ydCAqIGZyb20gJy4vbXVsdGktc2VsZWN0LWdyb3VwL211bHRpLXNlbGVjdC1ncm91cC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9tdWx0aS1zZWxlY3QtZ3JvdXAvbXVsdGktc2VsZWN0LWdyb3VwLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL211bHRpLXNlbGVjdC1vcHRpb24vbXVsdGktc2VsZWN0LW9wdGlvbi5jb21wb25lbnQnO1xuIl19
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, computed, ContentChildren, inject, Input, signal, } from '@angular/core';
|
|
2
|
+
import { toSignal } from '@angular/core/rxjs-interop';
|
|
3
|
+
import { NgControl } from '@angular/forms';
|
|
4
|
+
import { tuiIsPresent } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
5
|
+
import { TuiOptionWithValue } from '@taiga-ui/core/components/data-list';
|
|
6
|
+
import { TuiLink } from '@taiga-ui/core/components/link';
|
|
7
|
+
import { TuiTextfieldComponent } from '@taiga-ui/core/components/textfield';
|
|
8
|
+
import { TUI_ITEMS_HANDLERS } from '@taiga-ui/core/directives/items-handlers';
|
|
9
|
+
import { TUI_MULTI_SELECT_TEXTS } from '@taiga-ui/kit/tokens';
|
|
10
|
+
import { tuiInjectValue } from '@taiga-ui/kit/utils';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
class TuiMultiSelectGroupComponent {
|
|
13
|
+
constructor() {
|
|
14
|
+
this.values = signal([]);
|
|
15
|
+
this.handlers = inject(TUI_ITEMS_HANDLERS);
|
|
16
|
+
this.control = inject(TuiTextfieldComponent, { optional: true })?.control ||
|
|
17
|
+
inject(NgControl, { optional: true });
|
|
18
|
+
this.texts = toSignal(inject(TUI_MULTI_SELECT_TEXTS));
|
|
19
|
+
this.value = tuiInjectValue();
|
|
20
|
+
this.checked = computed(() => this.values().every((item) => this.value().some((value) => this.handlers.identityMatcher()(item, value))));
|
|
21
|
+
this.label = '';
|
|
22
|
+
}
|
|
23
|
+
set options(options) {
|
|
24
|
+
this.values.set(options
|
|
25
|
+
.toArray()
|
|
26
|
+
.map(({ value }) => value())
|
|
27
|
+
.filter(tuiIsPresent));
|
|
28
|
+
}
|
|
29
|
+
toggle() {
|
|
30
|
+
const values = this.values();
|
|
31
|
+
const matcher = this.handlers.identityMatcher();
|
|
32
|
+
const others = this.value().filter((current) => values.every((item) => !matcher(current, item)));
|
|
33
|
+
this.control?.control?.setValue(this.checked() ? others : others.concat(values));
|
|
34
|
+
}
|
|
35
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiMultiSelectGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
36
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiMultiSelectGroupComponent, isStandalone: true, selector: "tui-opt-group[tuiMultiSelectGroup]", inputs: { label: "label" }, host: { properties: { "class._label": "label" } }, queries: [{ propertyName: "options", predicate: TuiOptionWithValue }], ngImport: i0, template: "<span class=\"t-wrapper\">\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", styles: [":host._label:before{display:none}:host:not(:first-of-type) .t-label:not(:empty){padding-top:1.25rem}:host:not(:first-of-type) .t-button{margin-top:1.25rem}.t-wrapper{display:flex;align-items:flex-start}.t-wrapper:last-child{display:none}.t-label:not(:empty){flex:1;padding:.75rem 1rem .25rem .625rem}.t-button{margin:.75rem 1rem 0 auto;font-weight:400}\n"], dependencies: [{ kind: "directive", type: TuiLink, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
37
|
+
}
|
|
38
|
+
export { TuiMultiSelectGroupComponent };
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiMultiSelectGroupComponent, decorators: [{
|
|
40
|
+
type: Component,
|
|
41
|
+
args: [{ standalone: true, selector: 'tui-opt-group[tuiMultiSelectGroup]', imports: [TuiLink], changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
42
|
+
'[class._label]': 'label',
|
|
43
|
+
}, template: "<span class=\"t-wrapper\">\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", styles: [":host._label:before{display:none}:host:not(:first-of-type) .t-label:not(:empty){padding-top:1.25rem}:host:not(:first-of-type) .t-button{margin-top:1.25rem}.t-wrapper{display:flex;align-items:flex-start}.t-wrapper:last-child{display:none}.t-label:not(:empty){flex:1;padding:.75rem 1rem .25rem .625rem}.t-button{margin:.75rem 1rem 0 auto;font-weight:400}\n"] }]
|
|
44
|
+
}], propDecorators: { label: [{
|
|
45
|
+
type: Input
|
|
46
|
+
}], options: [{
|
|
47
|
+
type: ContentChildren,
|
|
48
|
+
args: [TuiOptionWithValue]
|
|
49
|
+
}] } });
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL211bHRpLXNlbGVjdC9tdWx0aS1zZWxlY3QtZ3JvdXAvbXVsdGktc2VsZWN0LWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL211bHRpLXNlbGVjdC9tdWx0aS1zZWxlY3QtZ3JvdXAvbXVsdGktc2VsZWN0LWdyb3VwLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLGVBQWUsRUFDZixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDcEQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUMvRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN2RSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkQsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFFMUUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDNUUsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDNUQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHFCQUFxQixDQUFDOztBQUVuRCxNQVdhLDRCQUE0QjtJQVh6QztRQVlxQixXQUFNLEdBQUcsTUFBTSxDQUFlLEVBQUUsQ0FBQyxDQUFDO1FBQ2xDLGFBQVEsR0FBRyxNQUFNLENBQXNCLGtCQUFrQixDQUFDLENBQUM7UUFDM0QsWUFBTyxHQUNwQixNQUFNLENBQUMscUJBQXFCLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsRUFBRSxPQUFPO1lBQ3hELE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztRQUVyQixVQUFLLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUM7UUFDakQsVUFBSyxHQUFHLGNBQWMsRUFBZ0IsQ0FBQztRQUN2QyxZQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUN2QyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDekIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FDN0UsQ0FDSixDQUFDO1FBR0ssVUFBSyxHQUFHLEVBQUUsQ0FBQztLQXFCckI7SUFuQkcsSUFDYyxPQUFPLENBQUMsT0FBeUM7UUFDM0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQ1gsT0FBTzthQUNGLE9BQU8sRUFBRTthQUNULEdBQUcsQ0FBQyxDQUFDLEVBQUMsS0FBSyxFQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO2FBQ3pCLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FDNUIsQ0FBQztJQUNOLENBQUM7SUFFUyxNQUFNO1FBQ1osTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzdCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDaEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQzNDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUNsRCxDQUFDO1FBRUYsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDckYsQ0FBQzsrR0FwQ1EsNEJBQTRCO21HQUE1Qiw0QkFBNEIscU1Ba0JwQixrQkFBa0IsNkJDbER2QyxtU0FZQSw0WkRZYyxPQUFPOztTQVFSLDRCQUE0Qjs0RkFBNUIsNEJBQTRCO2tCQVh4QyxTQUFTO2lDQUNNLElBQUksWUFDTixvQ0FBb0MsV0FDckMsQ0FBQyxPQUFPLENBQUMsbUJBR0QsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDRixnQkFBZ0IsRUFBRSxPQUFPO3FCQUM1Qjs4QkFrQk0sS0FBSztzQkFEWCxLQUFLO2dCQUlRLE9BQU87c0JBRHBCLGVBQWU7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1F1ZXJ5TGlzdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBjb21wdXRlZCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3RvU2lnbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge05nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHt0dWlJc1ByZXNlbnR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge1R1aU9wdGlvbldpdGhWYWx1ZX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9kYXRhLWxpc3QnO1xuaW1wb3J0IHtUdWlMaW5rfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL2xpbmsnO1xuaW1wb3J0IHtUdWlUZXh0ZmllbGRDb21wb25lbnR9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvdGV4dGZpZWxkJztcbmltcG9ydCB0eXBlIHtUdWlJdGVtc0hhbmRsZXJzfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL2l0ZW1zLWhhbmRsZXJzJztcbmltcG9ydCB7VFVJX0lURU1TX0hBTkRMRVJTfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL2l0ZW1zLWhhbmRsZXJzJztcbmltcG9ydCB7VFVJX01VTFRJX1NFTEVDVF9URVhUU30gZnJvbSAnQHRhaWdhLXVpL2tpdC90b2tlbnMnO1xuaW1wb3J0IHt0dWlJbmplY3RWYWx1ZX0gZnJvbSAnQHRhaWdhLXVpL2tpdC91dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICd0dWktb3B0LWdyb3VwW3R1aU11bHRpU2VsZWN0R3JvdXBdJyxcbiAgICBpbXBvcnRzOiBbVHVpTGlua10sXG4gICAgdGVtcGxhdGVVcmw6ICcuL211bHRpLXNlbGVjdC1ncm91cC50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9tdWx0aS1zZWxlY3QtZ3JvdXAuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tjbGFzcy5fbGFiZWxdJzogJ2xhYmVsJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlNdWx0aVNlbGVjdEdyb3VwQ29tcG9uZW50PFQ+IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZhbHVlcyA9IHNpZ25hbDxyZWFkb25seSBUW10+KFtdKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhhbmRsZXJzID0gaW5qZWN0PFR1aUl0ZW1zSGFuZGxlcnM8VD4+KFRVSV9JVEVNU19IQU5ETEVSUyk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb250cm9sID1cbiAgICAgICAgaW5qZWN0KFR1aVRleHRmaWVsZENvbXBvbmVudCwge29wdGlvbmFsOiB0cnVlfSk/LmNvbnRyb2wgfHxcbiAgICAgICAgaW5qZWN0KE5nQ29udHJvbCwge29wdGlvbmFsOiB0cnVlfSk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGV4dHMgPSB0b1NpZ25hbChpbmplY3QoVFVJX01VTFRJX1NFTEVDVF9URVhUUykpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSB2YWx1ZSA9IHR1aUluamVjdFZhbHVlPHJlYWRvbmx5IFRbXT4oKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2hlY2tlZCA9IGNvbXB1dGVkKCgpID0+XG4gICAgICAgIHRoaXMudmFsdWVzKCkuZXZlcnkoKGl0ZW0pID0+XG4gICAgICAgICAgICB0aGlzLnZhbHVlKCkuc29tZSgodmFsdWUpID0+IHRoaXMuaGFuZGxlcnMuaWRlbnRpdHlNYXRjaGVyKCkoaXRlbSwgdmFsdWUpKSxcbiAgICAgICAgKSxcbiAgICApO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbGFiZWwgPSAnJztcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oVHVpT3B0aW9uV2l0aFZhbHVlKVxuICAgIHByb3RlY3RlZCBzZXQgb3B0aW9ucyhvcHRpb25zOiBRdWVyeUxpc3Q8VHVpT3B0aW9uV2l0aFZhbHVlPFQ+Pikge1xuICAgICAgICB0aGlzLnZhbHVlcy5zZXQoXG4gICAgICAgICAgICBvcHRpb25zXG4gICAgICAgICAgICAgICAgLnRvQXJyYXkoKVxuICAgICAgICAgICAgICAgIC5tYXAoKHt2YWx1ZX0pID0+IHZhbHVlKCkpXG4gICAgICAgICAgICAgICAgLmZpbHRlcih0dWlJc1ByZXNlbnQpLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCB0b2dnbGUoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMudmFsdWVzKCk7XG4gICAgICAgIGNvbnN0IG1hdGNoZXIgPSB0aGlzLmhhbmRsZXJzLmlkZW50aXR5TWF0Y2hlcigpO1xuICAgICAgICBjb25zdCBvdGhlcnMgPSB0aGlzLnZhbHVlKCkuZmlsdGVyKChjdXJyZW50KSA9PlxuICAgICAgICAgICAgdmFsdWVzLmV2ZXJ5KChpdGVtKSA9PiAhbWF0Y2hlcihjdXJyZW50LCBpdGVtKSksXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5jb250cm9sPy5jb250cm9sPy5zZXRWYWx1ZSh0aGlzLmNoZWNrZWQoKSA/IG90aGVycyA6IG90aGVycy5jb25jYXQodmFsdWVzKSk7XG4gICAgfVxufVxuIiwiPHNwYW4gY2xhc3M9XCJ0LXdyYXBwZXJcIj5cbiAgICA8c3BhbiBjbGFzcz1cInQtbGFiZWxcIj57eyBsYWJlbCB9fTwvc3Bhbj5cbiAgICA8YnV0dG9uXG4gICAgICAgIHR1aUxpbmtcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwidC1idXR0b25cIlxuICAgICAgICAoY2xpY2spPVwidG9nZ2xlKClcIlxuICAgID5cbiAgICAgICAge3sgdGV4dHMoKT8uW2NoZWNrZWQoKSA/ICdub25lJyA6ICdhbGwnXSB9fVxuICAgIDwvYnV0dG9uPlxuPC9zcGFuPlxuPG5nLWNvbnRlbnQgLz5cbiJdfQ==
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Directive } from '@angular/core';
|
|
2
|
+
import { tuiAsOptionContent } from '@taiga-ui/core/components/data-list';
|
|
3
|
+
import { TuiMultiSelectOption } from '../multi-select-option/multi-select-option.component';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
class TuiMultiSelectGroupDirective {
|
|
6
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiMultiSelectGroupDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
7
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiMultiSelectGroupDirective, isStandalone: true, selector: "[tuiMultiSelectGroup]", providers: [tuiAsOptionContent(TuiMultiSelectOption)], ngImport: i0 }); }
|
|
8
|
+
}
|
|
9
|
+
export { TuiMultiSelectGroupDirective };
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiMultiSelectGroupDirective, decorators: [{
|
|
11
|
+
type: Directive,
|
|
12
|
+
args: [{
|
|
13
|
+
standalone: true,
|
|
14
|
+
selector: '[tuiMultiSelectGroup]',
|
|
15
|
+
providers: [tuiAsOptionContent(TuiMultiSelectOption)],
|
|
16
|
+
}]
|
|
17
|
+
}] });
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LWdyb3VwLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL211bHRpLXNlbGVjdC9tdWx0aS1zZWxlY3QtZ3JvdXAvbXVsdGktc2VsZWN0LWdyb3VwLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBRXZFLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHNEQUFzRCxDQUFDOztBQUUxRixNQUthLDRCQUE0QjsrR0FBNUIsNEJBQTRCO21HQUE1Qiw0QkFBNEIsb0VBRjFCLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLENBQUMsQ0FBQzs7U0FFNUMsNEJBQTRCOzRGQUE1Qiw0QkFBNEI7a0JBTHhDLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFNBQVMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixDQUFDLENBQUM7aUJBQ3hEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0dWlBc09wdGlvbkNvbnRlbnR9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvZGF0YS1saXN0JztcblxuaW1wb3J0IHtUdWlNdWx0aVNlbGVjdE9wdGlvbn0gZnJvbSAnLi4vbXVsdGktc2VsZWN0LW9wdGlvbi9tdWx0aS1zZWxlY3Qtb3B0aW9uLmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdbdHVpTXVsdGlTZWxlY3RHcm91cF0nLFxuICAgIHByb3ZpZGVyczogW3R1aUFzT3B0aW9uQ29udGVudChUdWlNdWx0aVNlbGVjdE9wdGlvbildLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlNdWx0aVNlbGVjdEdyb3VwRGlyZWN0aXZlIHt9XG4iXX0=
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { NgIf } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, computed, inject } from '@angular/core';
|
|
3
|
+
import { tuiIsPresent } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
4
|
+
import { TuiOptionWithValue } from '@taiga-ui/core/components/data-list';
|
|
5
|
+
import { TUI_TEXTFIELD_OPTIONS } from '@taiga-ui/core/components/textfield';
|
|
6
|
+
import { TUI_ITEMS_HANDLERS } from '@taiga-ui/core/directives/items-handlers';
|
|
7
|
+
import { TuiCheckbox } from '@taiga-ui/kit/components/checkbox';
|
|
8
|
+
import { tuiInjectValue } from '@taiga-ui/kit/utils';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
class TuiMultiSelectOption {
|
|
11
|
+
constructor() {
|
|
12
|
+
this.option = inject(TuiOptionWithValue, {
|
|
13
|
+
optional: true,
|
|
14
|
+
});
|
|
15
|
+
this.handlers = inject(TUI_ITEMS_HANDLERS);
|
|
16
|
+
this.value = tuiInjectValue();
|
|
17
|
+
this.size = inject(TUI_TEXTFIELD_OPTIONS).size;
|
|
18
|
+
this.selected = computed((controlValue = this.value(), optionValue = this.option?.value()) => tuiIsPresent(optionValue) &&
|
|
19
|
+
tuiIsPresent(controlValue) &&
|
|
20
|
+
controlValue.some((item) => this.handlers?.identityMatcher()(item, optionValue) ??
|
|
21
|
+
item === optionValue));
|
|
22
|
+
}
|
|
23
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiMultiSelectOption, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiMultiSelectOption, isStandalone: true, selector: "ng-component", ngImport: i0, template: `
|
|
25
|
+
<input
|
|
26
|
+
*ngIf="option"
|
|
27
|
+
tuiCheckbox
|
|
28
|
+
type="checkbox"
|
|
29
|
+
[checked]="selected()"
|
|
30
|
+
[size]="size() === 'l' ? 'm' : 's'"
|
|
31
|
+
/>
|
|
32
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TuiCheckbox, selector: "input[type=\"checkbox\"][tuiCheckbox]", inputs: ["size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
33
|
+
}
|
|
34
|
+
export { TuiMultiSelectOption };
|
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiMultiSelectOption, decorators: [{
|
|
36
|
+
type: Component,
|
|
37
|
+
args: [{
|
|
38
|
+
standalone: true,
|
|
39
|
+
imports: [NgIf, TuiCheckbox],
|
|
40
|
+
template: `
|
|
41
|
+
<input
|
|
42
|
+
*ngIf="option"
|
|
43
|
+
tuiCheckbox
|
|
44
|
+
type="checkbox"
|
|
45
|
+
[checked]="selected()"
|
|
46
|
+
[size]="size() === 'l' ? 'm' : 's'"
|
|
47
|
+
/>
|
|
48
|
+
`,
|
|
49
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
50
|
+
}]
|
|
51
|
+
}] });
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LW9wdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9tdWx0aS1zZWxlY3QvbXVsdGktc2VsZWN0LW9wdGlvbi9tdWx0aS1zZWxlY3Qtb3B0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDckMsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUMvRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN2RSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUUxRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUM1RSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDOUQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHFCQUFxQixDQUFDOztBQUVuRCxNQWNhLG9CQUFvQjtJQWRqQztRQWV1QixXQUFNLEdBQUcsTUFBTSxDQUF3QixrQkFBa0IsRUFBRTtZQUMxRSxRQUFRLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUM7UUFFZ0IsYUFBUSxHQUFHLE1BQU0sQ0FBc0Isa0JBQWtCLENBQUMsQ0FBQztRQUMzRCxVQUFLLEdBQUcsY0FBYyxFQUFnQixDQUFDO1FBQ3ZDLFNBQUksR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDMUMsYUFBUSxHQUFHLFFBQVEsQ0FDbEMsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FDaEUsWUFBWSxDQUFDLFdBQVcsQ0FBQztZQUN6QixZQUFZLENBQUMsWUFBWSxDQUFDO1lBQzFCLFlBQVksQ0FBQyxJQUFJLENBQ2IsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUNMLElBQUksQ0FBQyxRQUFRLEVBQUUsZUFBZSxFQUFFLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQztnQkFDbkQsSUFBSSxLQUFLLFdBQVcsQ0FDM0IsQ0FDUixDQUFDO0tBQ0w7K0dBbEJZLG9CQUFvQjttR0FBcEIsb0JBQW9CLHdFQVhuQjs7Ozs7Ozs7S0FRVCw0REFUUyxJQUFJLDZGQUFFLFdBQVc7O1NBWWxCLG9CQUFvQjs0RkFBcEIsb0JBQW9CO2tCQWRoQyxTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDO29CQUM1QixRQUFRLEVBQUU7Ozs7Ozs7O0tBUVQ7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2xEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ0lmfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dHVpSXNQcmVzZW50fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL21pc2NlbGxhbmVvdXMnO1xuaW1wb3J0IHtUdWlPcHRpb25XaXRoVmFsdWV9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvZGF0YS1saXN0JztcbmltcG9ydCB7VFVJX1RFWFRGSUVMRF9PUFRJT05TfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3RleHRmaWVsZCc7XG5pbXBvcnQgdHlwZSB7VHVpSXRlbXNIYW5kbGVyc30gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcy9pdGVtcy1oYW5kbGVycyc7XG5pbXBvcnQge1RVSV9JVEVNU19IQU5ETEVSU30gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcy9pdGVtcy1oYW5kbGVycyc7XG5pbXBvcnQge1R1aUNoZWNrYm94fSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvY2hlY2tib3gnO1xuaW1wb3J0IHt0dWlJbmplY3RWYWx1ZX0gZnJvbSAnQHRhaWdhLXVpL2tpdC91dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nSWYsIFR1aUNoZWNrYm94XSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICpuZ0lmPVwib3B0aW9uXCJcbiAgICAgICAgICAgIHR1aUNoZWNrYm94XG4gICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0ZWQoKVwiXG4gICAgICAgICAgICBbc2l6ZV09XCJzaXplKCkgPT09ICdsJyA/ICdtJyA6ICdzJ1wiXG4gICAgICAgIC8+XG4gICAgYCxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVHVpTXVsdGlTZWxlY3RPcHRpb248VD4ge1xuICAgIHByb3RlY3RlZCByZWFkb25seSBvcHRpb24gPSBpbmplY3Q8VHVpT3B0aW9uV2l0aFZhbHVlPFQ+PihUdWlPcHRpb25XaXRoVmFsdWUsIHtcbiAgICAgICAgb3B0aW9uYWw6IHRydWUsXG4gICAgfSk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaGFuZGxlcnMgPSBpbmplY3Q8VHVpSXRlbXNIYW5kbGVyczxUPj4oVFVJX0lURU1TX0hBTkRMRVJTKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdmFsdWUgPSB0dWlJbmplY3RWYWx1ZTxyZWFkb25seSBUW10+KCk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHNpemUgPSBpbmplY3QoVFVJX1RFWFRGSUVMRF9PUFRJT05TKS5zaXplO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBzZWxlY3RlZCA9IGNvbXB1dGVkKFxuICAgICAgICAoY29udHJvbFZhbHVlID0gdGhpcy52YWx1ZSgpLCBvcHRpb25WYWx1ZSA9IHRoaXMub3B0aW9uPy52YWx1ZSgpKSA9PlxuICAgICAgICAgICAgdHVpSXNQcmVzZW50KG9wdGlvblZhbHVlKSAmJlxuICAgICAgICAgICAgdHVpSXNQcmVzZW50KGNvbnRyb2xWYWx1ZSkgJiZcbiAgICAgICAgICAgIGNvbnRyb2xWYWx1ZS5zb21lKFxuICAgICAgICAgICAgICAgIChpdGVtKSA9PlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZXJzPy5pZGVudGl0eU1hdGNoZXIoKShpdGVtLCBvcHRpb25WYWx1ZSkgPz9cbiAgICAgICAgICAgICAgICAgICAgaXRlbSA9PT0gb3B0aW9uVmFsdWUsXG4gICAgICAgICAgICApLFxuICAgICk7XG59XG4iXX0=
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { TuiMultiSelectGroupComponent } from './multi-select-group/multi-select-group.component';
|
|
2
|
+
import { TuiMultiSelectGroupDirective } from './multi-select-group/multi-select-group.directive';
|
|
3
|
+
export const TuiMultiSelect = [
|
|
4
|
+
TuiMultiSelectGroupComponent,
|
|
5
|
+
TuiMultiSelectGroupDirective,
|
|
6
|
+
];
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvbXVsdGktc2VsZWN0L211bHRpLXNlbGVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsNEJBQTRCLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQUMvRixPQUFPLEVBQUMsNEJBQTRCLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQUUvRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUc7SUFDMUIsNEJBQTRCO0lBQzVCLDRCQUE0QjtDQUN0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtUdWlNdWx0aVNlbGVjdEdyb3VwQ29tcG9uZW50fSBmcm9tICcuL211bHRpLXNlbGVjdC1ncm91cC9tdWx0aS1zZWxlY3QtZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7VHVpTXVsdGlTZWxlY3RHcm91cERpcmVjdGl2ZX0gZnJvbSAnLi9tdWx0aS1zZWxlY3QtZ3JvdXAvbXVsdGktc2VsZWN0LWdyb3VwLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCBjb25zdCBUdWlNdWx0aVNlbGVjdCA9IFtcbiAgICBUdWlNdWx0aVNlbGVjdEdyb3VwQ29tcG9uZW50LFxuICAgIFR1aU11bHRpU2VsZWN0R3JvdXBEaXJlY3RpdmUsXG5dIGFzIGNvbnN0O1xuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFpZ2EtdWkta2l0LWNvbXBvbmVudHMtbXVsdGktc2VsZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvbXVsdGktc2VsZWN0L3RhaWdhLXVpLWtpdC1jb21wb25lbnRzLW11bHRpLXNlbGVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
import { tuiProvideOptions } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
2
3
|
export const TUI_PDF_VIEWER_DEFAULT_OPTIONS = {
|
|
3
4
|
label: '',
|
|
4
5
|
actions: '',
|
|
@@ -7,8 +8,10 @@ export const TUI_PDF_VIEWER_DEFAULT_OPTIONS = {
|
|
|
7
8
|
/**
|
|
8
9
|
* Default parameters for PdfViewer component
|
|
9
10
|
*/
|
|
10
|
-
export const TUI_PDF_VIEWER_OPTIONS =
|
|
11
|
+
export const TUI_PDF_VIEWER_OPTIONS = new InjectionToken(ngDevMode ? 'TUI_PDF_VIEWER_OPTIONS' : '', {
|
|
12
|
+
factory: () => TUI_PDF_VIEWER_DEFAULT_OPTIONS,
|
|
13
|
+
});
|
|
11
14
|
export function tuiPdfViewerOptionsProvider(options) {
|
|
12
15
|
return tuiProvideOptions(TUI_PDF_VIEWER_OPTIONS, options, TUI_PDF_VIEWER_DEFAULT_OPTIONS);
|
|
13
16
|
}
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLXZpZXdlci5vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvcGRmLXZpZXdlci9wZGYtdmlld2VyLm9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUdwRSxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBd0I7SUFDL0QsS0FBSyxFQUFFLEVBQUU7SUFDVCxPQUFPLEVBQUUsRUFBRTtJQUNYLElBQUksRUFBRSxTQUFTO0NBQ2xCLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLElBQUksY0FBYyxDQUNwRCxTQUFTLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQ3pDO0lBQ0ksT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLDhCQUE4QjtDQUNoRCxDQUNKLENBQUM7QUFFRixNQUFNLFVBQVUsMkJBQTJCLENBQ3ZDLE9BQXFDO0lBRXJDLE9BQU8saUJBQWlCLENBQ3BCLHNCQUFzQixFQUN0QixPQUFPLEVBQ1AsOEJBQThCLENBQ2pDLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1Byb3ZpZGVyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SW5qZWN0aW9uVG9rZW59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0dWlQcm92aWRlT3B0aW9uc30gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB0eXBlIHtQb2x5bW9ycGhldXNDb250ZW50fSBmcm9tICdAdGFpZ2EtdWkvcG9seW1vcnBoZXVzJztcblxuZXhwb3J0IGNvbnN0IFRVSV9QREZfVklFV0VSX0RFRkFVTFRfT1BUSU9OUzogVHVpUGRmVmlld2VyT3B0aW9ucyA9IHtcbiAgICBsYWJlbDogJycsXG4gICAgYWN0aW9uczogJycsXG4gICAgZGF0YTogdW5kZWZpbmVkLFxufTtcblxuLyoqXG4gKiBEZWZhdWx0IHBhcmFtZXRlcnMgZm9yIFBkZlZpZXdlciBjb21wb25lbnRcbiAqL1xuZXhwb3J0IGNvbnN0IFRVSV9QREZfVklFV0VSX09QVElPTlMgPSBuZXcgSW5qZWN0aW9uVG9rZW4oXG4gICAgbmdEZXZNb2RlID8gJ1RVSV9QREZfVklFV0VSX09QVElPTlMnIDogJycsXG4gICAge1xuICAgICAgICBmYWN0b3J5OiAoKSA9PiBUVUlfUERGX1ZJRVdFUl9ERUZBVUxUX09QVElPTlMsXG4gICAgfSxcbik7XG5cbmV4cG9ydCBmdW5jdGlvbiB0dWlQZGZWaWV3ZXJPcHRpb25zUHJvdmlkZXIoXG4gICAgb3B0aW9uczogUGFydGlhbDxUdWlQZGZWaWV3ZXJPcHRpb25zPixcbik6IFByb3ZpZGVyIHtcbiAgICByZXR1cm4gdHVpUHJvdmlkZU9wdGlvbnMoXG4gICAgICAgIFRVSV9QREZfVklFV0VSX09QVElPTlMsXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICAgIFRVSV9QREZfVklFV0VSX0RFRkFVTFRfT1BUSU9OUyxcbiAgICApO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFR1aVBkZlZpZXdlck9wdGlvbnM8SSA9IHVuZGVmaW5lZD4ge1xuICAgIHJlYWRvbmx5IGFjdGlvbnM6IFBvbHltb3JwaGV1c0NvbnRlbnQ8VHVpUGRmVmlld2VyT3B0aW9uczxJPj47XG4gICAgcmVhZG9ubHkgZGF0YTogSTtcbiAgICByZWFkb25seSBsYWJlbDogc3RyaW5nO1xufVxuIl19
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
1
2
|
import { ChangeDetectionStrategy, Component, inject, Input } from '@angular/core';
|
|
2
3
|
import { toSignal } from '@angular/core/rxjs-interop';
|
|
3
4
|
import { delay, of } from 'rxjs';
|
|
@@ -11,13 +12,14 @@ class TuiProgressCircle {
|
|
|
11
12
|
this.max = 1;
|
|
12
13
|
this.color = this.options.color;
|
|
13
14
|
this.size = this.options.size;
|
|
15
|
+
this.arc = false;
|
|
14
16
|
}
|
|
15
17
|
get progressRatio() {
|
|
16
18
|
const ratio = this.value / this.max;
|
|
17
19
|
return Number.isFinite(ratio) ? ratio : 0;
|
|
18
20
|
}
|
|
19
21
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiProgressCircle, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
20
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
22
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "16.2.12", type: TuiProgressCircle, isStandalone: true, selector: "tui-progress-circle", inputs: { value: "value", max: "max", color: "color", size: "size", arc: ["arc", "arc", coerceBooleanProperty] }, host: { properties: { "attr.data-size": "size", "style.--tui-progress-color": "color", "style.--t-progress-ratio": "progressRatio", "class._arc": "arc" } }, ngImport: i0, template: "<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", styles: [":host{--t-stroke-width: var(--tui-thickness, .375em);position:relative;display:block;color:var(--tui-background-accent-1);transform:rotate(-90deg);transform-origin:center;font-size:1rem;inline-size:var(--t-diameter);min-inline-size:var(--t-diameter);block-size:var(--t-diameter);border-radius:100%;-webkit-mask:radial-gradient(closest-side,transparent calc(100% - var(--t-stroke-width)),#000 calc(100% - var(--t-stroke-width) + .5px));mask:radial-gradient(closest-side,transparent calc(100% - var(--t-stroke-width)),#000 calc(100% - var(--t-stroke-width) + .5px))}:host._arc{transform:rotate(135deg)}:host[data-size=xxs]{--t-diameter: 2em}:host[data-size=xs]{--t-diameter: 2.5em}:host[data-size=s]{--t-diameter: 3.5em}:host[data-size=m]{--t-diameter: 4em}:host[data-size=l]{--t-diameter: 5em}:host[data-size=xl]{--t-diameter: 6em}:host[data-size=xxl]{--t-diameter: 8em}.t-track,.t-progress{fill:transparent;stroke-linecap:round;stroke-width:var(--t-stroke-width);r:calc((var(--t-diameter) - var(--t-stroke-width)) / 2)}.t-track{stroke:var(--tui-background-neutral-1)}:host._arc .t-track{stroke-dasharray:calc(.75 * calc(2 * 3.14159265 * calc((var(--t-diameter) - var(--t-stroke-width)) / 2))) calc(.25 * calc(2 * 3.14159265 * calc((var(--t-diameter) - var(--t-stroke-width)) / 2)))}.t-progress{stroke:var(--tui-progress-color, currentColor);stroke-dasharray:calc(2 * 3.14159265 * calc((var(--t-diameter) - var(--t-stroke-width)) / 2));stroke-dashoffset:calc(2 * 3.14159265 * calc((var(--t-diameter) - var(--t-stroke-width)) / 2))}.t-progress_filled{transition-property:stroke-dashoffset,stroke-dasharray;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;transition-timing-function:linear;stroke-dashoffset:calc(calc(2 * 3.14159265 * calc((var(--t-diameter) - var(--t-stroke-width)) / 2)) - var(--t-progress-ratio) * calc(2 * 3.14159265 * calc((var(--t-diameter) - var(--t-stroke-width)) / 2)))}:host._arc .t-progress{stroke-dashoffset:.1px;stroke-dasharray:calc(.75 * var(--t-progress-ratio) * calc(2 * 3.14159265 * calc((var(--t-diameter) - var(--t-stroke-width)) / 2))) calc(calc(2 * 3.14159265 * calc((var(--t-diameter) - var(--t-stroke-width)) / 2)))}.t-hidden-progress{position:absolute;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);block-size:1px;inline-size:1px;margin:-1px;overflow:hidden;padding:0}.t-svg{overflow:unset}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
21
23
|
}
|
|
22
24
|
export { TuiProgressCircle };
|
|
23
25
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiProgressCircle, decorators: [{
|
|
@@ -26,7 +28,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
26
28
|
'[attr.data-size]': 'size',
|
|
27
29
|
'[style.--tui-progress-color]': 'color',
|
|
28
30
|
'[style.--t-progress-ratio]': 'progressRatio',
|
|
29
|
-
|
|
31
|
+
'[class._arc]': 'arc',
|
|
32
|
+
}, template: "<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", styles: [":host{--t-stroke-width: var(--tui-thickness, .375em);position:relative;display:block;color:var(--tui-background-accent-1);transform:rotate(-90deg);transform-origin:center;font-size:1rem;inline-size:var(--t-diameter);min-inline-size:var(--t-diameter);block-size:var(--t-diameter);border-radius:100%;-webkit-mask:radial-gradient(closest-side,transparent calc(100% - var(--t-stroke-width)),#000 calc(100% - var(--t-stroke-width) + .5px));mask:radial-gradient(closest-side,transparent calc(100% - var(--t-stroke-width)),#000 calc(100% - var(--t-stroke-width) + .5px))}:host._arc{transform:rotate(135deg)}:host[data-size=xxs]{--t-diameter: 2em}:host[data-size=xs]{--t-diameter: 2.5em}:host[data-size=s]{--t-diameter: 3.5em}:host[data-size=m]{--t-diameter: 4em}:host[data-size=l]{--t-diameter: 5em}:host[data-size=xl]{--t-diameter: 6em}:host[data-size=xxl]{--t-diameter: 8em}.t-track,.t-progress{fill:transparent;stroke-linecap:round;stroke-width:var(--t-stroke-width);r:calc((var(--t-diameter) - var(--t-stroke-width)) / 2)}.t-track{stroke:var(--tui-background-neutral-1)}:host._arc .t-track{stroke-dasharray:calc(.75 * calc(2 * 3.14159265 * calc((var(--t-diameter) - var(--t-stroke-width)) / 2))) calc(.25 * calc(2 * 3.14159265 * calc((var(--t-diameter) - var(--t-stroke-width)) / 2)))}.t-progress{stroke:var(--tui-progress-color, currentColor);stroke-dasharray:calc(2 * 3.14159265 * calc((var(--t-diameter) - var(--t-stroke-width)) / 2));stroke-dashoffset:calc(2 * 3.14159265 * calc((var(--t-diameter) - var(--t-stroke-width)) / 2))}.t-progress_filled{transition-property:stroke-dashoffset,stroke-dasharray;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;transition-timing-function:linear;stroke-dashoffset:calc(calc(2 * 3.14159265 * calc((var(--t-diameter) - var(--t-stroke-width)) / 2)) - var(--t-progress-ratio) * calc(2 * 3.14159265 * calc((var(--t-diameter) - var(--t-stroke-width)) / 2)))}:host._arc .t-progress{stroke-dashoffset:.1px;stroke-dasharray:calc(.75 * var(--t-progress-ratio) * calc(2 * 3.14159265 * calc((var(--t-diameter) - var(--t-stroke-width)) / 2))) calc(calc(2 * 3.14159265 * calc((var(--t-diameter) - var(--t-stroke-width)) / 2)))}.t-hidden-progress{position:absolute;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);block-size:1px;inline-size:1px;margin:-1px;overflow:hidden;padding:0}.t-svg{overflow:unset}\n"] }]
|
|
30
33
|
}], propDecorators: { value: [{
|
|
31
34
|
type: Input
|
|
32
35
|
}], max: [{
|
|
@@ -35,5 +38,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
35
38
|
type: Input
|
|
36
39
|
}], size: [{
|
|
37
40
|
type: Input
|
|
41
|
+
}], arc: [{
|
|
42
|
+
type: Input,
|
|
43
|
+
args: [{ transform: coerceBooleanProperty }]
|
|
38
44
|
}] } });
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MtY2lyY2xlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL3Byb2dyZXNzL3Byb2dyZXNzLWNpcmNsZS9wcm9ncmVzcy1jaXJjbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvcHJvZ3Jlc3MvcHJvZ3Jlc3MtY2lyY2xlL3Byb2dyZXNzLWNpcmNsZS50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFFcEQsT0FBTyxFQUFDLEtBQUssRUFBRSxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0scUJBQXFCLENBQUM7O0FBRXpELE1BYWEsaUJBQWlCO0lBYjlCO1FBY3FCLFlBQU8sR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUVyQyxtQkFBYyxHQUFHLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFHL0QsVUFBSyxHQUFHLENBQUMsQ0FBQztRQUdWLFFBQUcsR0FBRyxDQUFDLENBQUM7UUFHUixVQUFLLEdBQWtCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBRzFDLFNBQUksR0FBNEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFHbEQsUUFBRyxHQUFpQixLQUFLLENBQUM7S0FPcEM7SUFMRyxJQUFjLGFBQWE7UUFDdkIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBRXBDLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQzsrR0F4QlEsaUJBQWlCO21HQUFqQixpQkFBaUIsK0lBaUJQLHFCQUFxQiwwTEN2QzVDLDhiQXlCQTs7U0RIYSxpQkFBaUI7NEZBQWpCLGlCQUFpQjtrQkFiN0IsU0FBUztpQ0FDTSxJQUFJLFlBQ04scUJBQXFCLG1CQUdkLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0Ysa0JBQWtCLEVBQUUsTUFBTTt3QkFDMUIsOEJBQThCLEVBQUUsT0FBTzt3QkFDdkMsNEJBQTRCLEVBQUUsZUFBZTt3QkFDN0MsY0FBYyxFQUFFLEtBQUs7cUJBQ3hCOzhCQVFNLEtBQUs7c0JBRFgsS0FBSztnQkFJQyxHQUFHO3NCQURULEtBQUs7Z0JBSUMsS0FBSztzQkFEWCxLQUFLO2dCQUlDLElBQUk7c0JBRFYsS0FBSztnQkFJQyxHQUFHO3NCQURULEtBQUs7dUJBQUMsRUFBQyxTQUFTLEVBQUUscUJBQXFCLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7Qm9vbGVhbklucHV0fSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHtjb2VyY2VCb29sZWFuUHJvcGVydHl9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0b1NpZ25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHR5cGUge1R1aVNpemVYWEwsIFR1aVNpemVYWFN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3R5cGVzJztcbmltcG9ydCB7ZGVsYXksIG9mfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtUVUlfUFJPR1JFU1NfT1BUSU9OU30gZnJvbSAnLi4vcHJvZ3Jlc3Mub3B0aW9ucyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICd0dWktcHJvZ3Jlc3MtY2lyY2xlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcHJvZ3Jlc3MtY2lyY2xlLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3Byb2dyZXNzLWNpcmNsZS5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2F0dHIuZGF0YS1zaXplXSc6ICdzaXplJyxcbiAgICAgICAgJ1tzdHlsZS4tLXR1aS1wcm9ncmVzcy1jb2xvcl0nOiAnY29sb3InLFxuICAgICAgICAnW3N0eWxlLi0tdC1wcm9ncmVzcy1yYXRpb10nOiAncHJvZ3Jlc3NSYXRpbycsXG4gICAgICAgICdbY2xhc3MuX2FyY10nOiAnYXJjJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlQcm9ncmVzc0NpcmNsZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zID0gaW5qZWN0KFRVSV9QUk9HUkVTU19PUFRJT05TKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBhbmltYXRpb25EZWxheSA9IHRvU2lnbmFsKG9mKHRydWUpLnBpcGUoZGVsYXkoMCkpKTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHZhbHVlID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1heCA9IDE7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjb2xvcjogc3RyaW5nIHwgbnVsbCA9IHRoaXMub3B0aW9ucy5jb2xvcjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNpemU6IFR1aVNpemVYWEwgfCBUdWlTaXplWFhTID0gdGhpcy5vcHRpb25zLnNpemU7XG5cbiAgICBASW5wdXQoe3RyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5fSlcbiAgICBwdWJsaWMgYXJjOiBCb29sZWFuSW5wdXQgPSBmYWxzZTtcblxuICAgIHByb3RlY3RlZCBnZXQgcHJvZ3Jlc3NSYXRpbygpOiBudW1iZXIge1xuICAgICAgICBjb25zdCByYXRpbyA9IHRoaXMudmFsdWUgLyB0aGlzLm1heDtcblxuICAgICAgICByZXR1cm4gTnVtYmVyLmlzRmluaXRlKHJhdGlvKSA/IHJhdGlvIDogMDtcbiAgICB9XG59XG4iLCI8cHJvZ3Jlc3NcbiAgICBjbGFzcz1cInQtaGlkZGVuLXByb2dyZXNzXCJcbiAgICBbbWF4XT1cIm1heFwiXG4gICAgW3ZhbHVlXT1cInZhbHVlXCJcbj48L3Byb2dyZXNzPlxuXG48c3ZnXG4gICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICBoZWlnaHQ9XCIxMDAlXCJcbiAgICB3aWR0aD1cIjEwMCVcIlxuICAgIGNsYXNzPVwidC1zdmdcIlxuPlxuICAgIDxjaXJjbGVcbiAgICAgICAgY3g9XCI1MCVcIlxuICAgICAgICBjeT1cIjUwJVwiXG4gICAgICAgIGNsYXNzPVwidC10cmFja1wiXG4gICAgLz5cblxuICAgIDxjaXJjbGVcbiAgICAgICAgY3g9XCI1MCVcIlxuICAgICAgICBjeT1cIjUwJVwiXG4gICAgICAgIGNsYXNzPVwidC1wcm9ncmVzc1wiXG4gICAgICAgIFtjbGFzcy50LXByb2dyZXNzX2ZpbGxlZF09XCJhbmltYXRpb25EZWxheSgpXCJcbiAgICAvPlxuPC9zdmc+XG4iXX0=
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
import { tuiProvideOptions } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
2
3
|
export const TUI_PROGRESS_DEFAULT_OPTIONS = {
|
|
3
4
|
color: null,
|
|
4
5
|
size: 'm',
|
|
5
6
|
};
|
|
6
|
-
export const TUI_PROGRESS_OPTIONS =
|
|
7
|
+
export const TUI_PROGRESS_OPTIONS = new InjectionToken(ngDevMode ? 'TUI_PROGRESS_OPTIONS' : '', {
|
|
8
|
+
factory: () => TUI_PROGRESS_DEFAULT_OPTIONS,
|
|
9
|
+
});
|
|
7
10
|
export function tuiProgressOptionsProvider(options) {
|
|
8
11
|
return tuiProvideOptions(TUI_PROGRESS_OPTIONS, options, TUI_PROGRESS_DEFAULT_OPTIONS);
|
|
9
12
|
}
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3Mub3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL3Byb2dyZXNzL3Byb2dyZXNzLm9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQVFwRSxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBdUI7SUFDNUQsS0FBSyxFQUFFLElBQUk7SUFDWCxJQUFJLEVBQUUsR0FBRztDQUNaLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLGNBQWMsQ0FDbEQsU0FBUyxDQUFDLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUN2QztJQUNJLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyw0QkFBNEI7Q0FDOUMsQ0FDSixDQUFDO0FBRUYsTUFBTSxVQUFVLDBCQUEwQixDQUN0QyxPQUFvQztJQUVwQyxPQUFPLGlCQUFpQixDQUFDLG9CQUFvQixFQUFFLE9BQU8sRUFBRSw0QkFBNEIsQ0FBQyxDQUFDO0FBQzFGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7UHJvdmlkZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtJbmplY3Rpb25Ub2tlbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3R1aVByb3ZpZGVPcHRpb25zfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL21pc2NlbGxhbmVvdXMnO1xuaW1wb3J0IHR5cGUge1R1aVNpemVYWEwsIFR1aVNpemVYWFN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBUdWlQcm9ncmVzc09wdGlvbnMge1xuICAgIHJlYWRvbmx5IGNvbG9yOiBzdHJpbmcgfCBudWxsO1xuICAgIHJlYWRvbmx5IHNpemU6IFR1aVNpemVYWEwgfCBUdWlTaXplWFhTO1xufVxuXG5leHBvcnQgY29uc3QgVFVJX1BST0dSRVNTX0RFRkFVTFRfT1BUSU9OUzogVHVpUHJvZ3Jlc3NPcHRpb25zID0ge1xuICAgIGNvbG9yOiBudWxsLFxuICAgIHNpemU6ICdtJyxcbn07XG5cbmV4cG9ydCBjb25zdCBUVUlfUFJPR1JFU1NfT1BUSU9OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbihcbiAgICBuZ0Rldk1vZGUgPyAnVFVJX1BST0dSRVNTX09QVElPTlMnIDogJycsXG4gICAge1xuICAgICAgICBmYWN0b3J5OiAoKSA9PiBUVUlfUFJPR1JFU1NfREVGQVVMVF9PUFRJT05TLFxuICAgIH0sXG4pO1xuXG5leHBvcnQgZnVuY3Rpb24gdHVpUHJvZ3Jlc3NPcHRpb25zUHJvdmlkZXIoXG4gICAgb3B0aW9uczogUGFydGlhbDxUdWlQcm9ncmVzc09wdGlvbnM+LFxuKTogUHJvdmlkZXIge1xuICAgIHJldHVybiB0dWlQcm92aWRlT3B0aW9ucyhUVUlfUFJPR1JFU1NfT1BUSU9OUywgb3B0aW9ucywgVFVJX1BST0dSRVNTX0RFRkFVTFRfT1BUSU9OUyk7XG59XG4iXX0=
|