@taiga-ui/kit 5.17.0 → 5.18.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/accordion/accordion.component.d.ts +3 -2
- package/components/accordion/accordion.directive.d.ts +2 -1
- package/components/calendar-range/day-range-period.d.ts +10 -1
- package/components/input-phone/utils/complete-phone-insertion-preprocessor.d.ts +1 -1
- package/fesm2022/taiga-ui-kit-components-accordion.mjs +11 -4
- package/fesm2022/taiga-ui-kit-components-accordion.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-avatar.mjs +9 -9
- package/fesm2022/taiga-ui-kit-components-badge.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-block.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-calendar-range.mjs +6 -1
- package/fesm2022/taiga-ui-kit-components-calendar-range.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-chip.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-comment.mjs +3 -3
- package/fesm2022/taiga-ui-kit-components-compass.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-copy.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-files.mjs +5 -5
- package/fesm2022/taiga-ui-kit-components-input-color.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-input-date-time.mjs +3 -3
- package/fesm2022/taiga-ui-kit-components-input-date.mjs +4 -4
- package/fesm2022/taiga-ui-kit-components-input-inline.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-input-month.mjs +4 -4
- package/fesm2022/taiga-ui-kit-components-input-number.mjs +3 -3
- package/fesm2022/taiga-ui-kit-components-input-phone-international.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-input-phone.mjs +10 -6
- package/fesm2022/taiga-ui-kit-components-input-phone.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-pin.mjs +3 -3
- package/fesm2022/taiga-ui-kit-components-input-slider.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-input-time.mjs +3 -3
- package/fesm2022/taiga-ui-kit-components-like.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-message.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-pin.mjs +3 -3
- package/fesm2022/taiga-ui-kit-components-preview.mjs +3 -3
- package/fesm2022/taiga-ui-kit-components-progress.mjs +6 -6
- package/fesm2022/taiga-ui-kit-components-radio-list.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-segmented.mjs +3 -3
- package/fesm2022/taiga-ui-kit-components-shrink-wrap.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-status.mjs +3 -3
- package/fesm2022/taiga-ui-kit-components-switch.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-tabs.mjs +3 -3
- package/fesm2022/taiga-ui-kit-components-textarea.mjs +3 -3
- package/fesm2022/taiga-ui-kit-components-tiles.mjs +4 -4
- package/fesm2022/taiga-ui-kit-components-toast.mjs +2 -2
- package/fesm2022/taiga-ui-kit-directives-button-group.mjs +3 -3
- package/fesm2022/taiga-ui-kit-directives-chevron.mjs +2 -2
- package/fesm2022/taiga-ui-kit-directives-connected.mjs +3 -3
- package/fesm2022/taiga-ui-kit-directives-fade.mjs +3 -3
- package/fesm2022/taiga-ui-kit-directives-sensitive.mjs +3 -3
- package/fesm2022/taiga-ui-kit-directives-shimmer.mjs +2 -2
- package/fesm2022/taiga-ui-kit-directives-skeleton.mjs +3 -3
- package/fesm2022/taiga-ui-kit-directives-tooltip.mjs +2 -2
- package/package.json +57 -57
|
@@ -104,7 +104,7 @@ class TuiInputMonthContent {
|
|
|
104
104
|
this.host.onChange(new TuiMonth(year, month - 1));
|
|
105
105
|
}
|
|
106
106
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiInputMonthContent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
107
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: TuiInputMonthContent, isStandalone: true, selector: "tui-input-month-content", host: { attributes: { "data-tui-version": "5.
|
|
107
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: TuiInputMonthContent, isStandalone: true, selector: "tui-input-month-content", host: { attributes: { "data-tui-version": "5.18.0" } }, ngImport: i0, template: `
|
|
108
108
|
@if (host.native) {
|
|
109
109
|
<input
|
|
110
110
|
type="month"
|
|
@@ -116,7 +116,7 @@ class TuiInputMonthContent {
|
|
|
116
116
|
(pointerdown.stop.zoneless)="(0)"
|
|
117
117
|
/>
|
|
118
118
|
}
|
|
119
|
-
`, isInline: true, styles: ["tui-textfield input[tuiInputMonth]:where(*[data-tui-version=\"5.
|
|
119
|
+
`, isInline: true, styles: ["tui-textfield input[tuiInputMonth]:where(*[data-tui-version=\"5.18.0\"])~.t-content input[type=month]{position:absolute;inset-block-start:0;inset-inline-start:0;inline-size:100%;block-size:100%;opacity:0;pointer-events:auto}tui-textfield input[tuiInputMonth]:where(*[data-tui-version=\"5.18.0\"])~.t-content input[type=month]::-webkit-calendar-picker-indicator{position:absolute;inset-block-start:0;inset-inline-start:0;inline-size:100%;block-size:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
120
120
|
}
|
|
121
121
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiInputMonthContent, decorators: [{
|
|
122
122
|
type: Component,
|
|
@@ -132,7 +132,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
|
|
|
132
132
|
(pointerdown.stop.zoneless)="(0)"
|
|
133
133
|
/>
|
|
134
134
|
}
|
|
135
|
-
`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: { 'data-tui-version': TUI_VERSION }, styles: ["tui-textfield input[tuiInputMonth]:where(*[data-tui-version=\"5.
|
|
135
|
+
`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: { 'data-tui-version': TUI_VERSION }, styles: ["tui-textfield input[tuiInputMonth]:where(*[data-tui-version=\"5.18.0\"])~.t-content input[type=month]{position:absolute;inset-block-start:0;inset-inline-start:0;inline-size:100%;block-size:100%;opacity:0;pointer-events:auto}tui-textfield input[tuiInputMonth]:where(*[data-tui-version=\"5.18.0\"])~.t-content input[type=month]::-webkit-calendar-picker-indicator{position:absolute;inset-block-start:0;inset-inline-start:0;inline-size:100%;block-size:100%}\n"] }]
|
|
136
136
|
}] });
|
|
137
137
|
|
|
138
138
|
// TODO(v6): rename to TuiInputMonthNative
|
|
@@ -142,7 +142,7 @@ class TuiInputMonthComponent {
|
|
|
142
142
|
this.max = input(null);
|
|
143
143
|
}
|
|
144
144
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiInputMonthComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
145
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.25", type: TuiInputMonthComponent, isStandalone: true, selector: "input[tuiInputMonth][type=\"month\"]", inputs: { min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-tui-version": "5.
|
|
145
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.25", type: TuiInputMonthComponent, isStandalone: true, selector: "input[tuiInputMonth][type=\"month\"]", inputs: { min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-tui-version": "5.18.0" } }, providers: [tuiAsTextfieldContent(() => TuiInputMonthContent)], hostDirectives: [{ directive: i1$1.TuiWithNativePicker }, { directive: i1$1.TuiTextfieldContent }], ngImport: i0 }); }
|
|
146
146
|
}
|
|
147
147
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiInputMonthComponent, decorators: [{
|
|
148
148
|
type: Directive,
|
|
@@ -344,7 +344,7 @@ class TuiInputNumberStepButtons {
|
|
|
344
344
|
.subscribe((value) => this.directive.onStep(value));
|
|
345
345
|
}
|
|
346
346
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiInputNumberStepButtons, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
347
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: TuiInputNumberStepButtons, isStandalone: true, selector: "ng-component", host: { attributes: { "data-tui-version": "5.
|
|
347
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: TuiInputNumberStepButtons, isStandalone: true, selector: "ng-component", host: { attributes: { "data-tui-version": "5.18.0" }, properties: { "style.border-radius": "\"inherit\"", "style.display": "\"contents\"" } }, providers: [TuiInputNumberStepService], ngImport: i0, template: "@if (directive.step()) {\n <section class=\"t-input-number-buttons\">\n <button\n size=\"s\"\n tabindex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"appearance()\"\n [disabled]=\"!input.interactive() || input.parsed() >= mask.max()\"\n [iconStart]=\"options.icons.increase\"\n (click.prevent)=\"directive.onStep(directive.step())\"\n (pointerdown.prevent)=\"hold.next(directive.step())\"\n >\n +\n </button>\n <button\n size=\"s\"\n tabindex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"appearance()\"\n [disabled]=\"!input.interactive() || input.parsed() <= mask.min()\"\n [iconStart]=\"options.icons.decrease\"\n (click.prevent)=\"directive.onStep(-directive.step())\"\n (pointerdown.prevent)=\"hold.next(-directive.step())\"\n >\n -\n </button>\n </section>\n}\n", styles: ["tui-textfield:where(*[data-tui-version=\"5.18.0\"]) .t-input-number-buttons.t-input-number-buttons{position:absolute;display:flex;inset-inline-end:0;block-size:var(--t-height);flex-direction:column;gap:.125rem;border-radius:inherit}tui-textfield:where(*[data-tui-version=\"5.18.0\"]) .t-input-number-buttons.t-input-number-buttons>*{flex:1 1 0;border-radius:0}tui-textfield:where(*[data-tui-version=\"5.18.0\"]) .t-input-number-buttons.t-input-number-buttons>*:first-child{border-top-right-radius:inherit}tui-textfield:where(*[data-tui-version=\"5.18.0\"]) .t-input-number-buttons.t-input-number-buttons>*:last-child{border-bottom-right-radius:inherit}[dir=rtl] tui-textfield:where(*[data-tui-version=\"5.18.0\"]) .t-input-number-buttons.t-input-number-buttons>*:first-child{border-radius:0;border-top-left-radius:inherit}[dir=rtl] tui-textfield:where(*[data-tui-version=\"5.18.0\"]) .t-input-number-buttons.t-input-number-buttons>*:last-child{border-radius:0;border-bottom-left-radius:inherit}tui-textfield:where(*[data-tui-version=\"5.18.0\"])[data-size=l]{--t-input-number-offset-end: calc(var(--tui-height-m) + .125rem)}tui-textfield:where(*[data-tui-version=\"5.18.0\"])[data-size=l] .t-input-number-buttons.t-input-number-buttons>*{inline-size:var(--tui-height-m)}tui-textfield:where(*[data-tui-version=\"5.18.0\"])[data-size=m]{--t-input-number-offset-end: calc(var(--tui-height-s) + .125rem)}tui-textfield:where(*[data-tui-version=\"5.18.0\"])[data-size=s]{--t-input-number-offset-end: calc(2 * var(--tui-height-s) + .25rem)}tui-textfield:where(*[data-tui-version=\"5.18.0\"])[data-size=s] .t-input-number-buttons.t-input-number-buttons{flex-direction:row-reverse}tui-textfield:where(*[data-tui-version=\"5.18.0\"])[data-size=s] .t-input-number-buttons.t-input-number-buttons>*:first-child{border-top-right-radius:inherit;border-bottom-right-radius:inherit}tui-textfield:where(*[data-tui-version=\"5.18.0\"])[data-size=s] .t-input-number-buttons.t-input-number-buttons>*:last-child{border-radius:0}[tuiInputNumber]._with-buttons:where(*[data-tui-version=\"5.18.0\"]){border-top-right-radius:0;border-bottom-right-radius:0}[dir=rtl] [tuiInputNumber]._with-buttons:where(*[data-tui-version=\"5.18.0\"]){border-radius:inherit;border-top-left-radius:0;border-bottom-left-radius:0}[tuiInputNumber]._with-buttons:where(*[data-tui-version=\"5.18.0\"]),[data-tui-version=\"5.18.0\"] [tuiInputNumber]._with-buttons~.t-template{inline-size:calc(100% - var(--t-input-number-offset-end));margin-inline-end:var(--t-input-number-offset-end)}[tuiInputNumber]:where(*[data-tui-version=\"5.18.0\"])._with-buttons~.t-content{margin-inline-end:var(--t-input-number-offset-end)}\n"], dependencies: [{ kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
348
348
|
}
|
|
349
349
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiInputNumberStepButtons, decorators: [{
|
|
350
350
|
type: Component,
|
|
@@ -352,7 +352,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
|
|
|
352
352
|
'data-tui-version': TUI_VERSION,
|
|
353
353
|
'[style.border-radius]': '"inherit"',
|
|
354
354
|
'[style.display]': '"contents"',
|
|
355
|
-
}, template: "@if (directive.step()) {\n <section class=\"t-input-number-buttons\">\n <button\n size=\"s\"\n tabindex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"appearance()\"\n [disabled]=\"!input.interactive() || input.parsed() >= mask.max()\"\n [iconStart]=\"options.icons.increase\"\n (click.prevent)=\"directive.onStep(directive.step())\"\n (pointerdown.prevent)=\"hold.next(directive.step())\"\n >\n +\n </button>\n <button\n size=\"s\"\n tabindex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"appearance()\"\n [disabled]=\"!input.interactive() || input.parsed() <= mask.min()\"\n [iconStart]=\"options.icons.decrease\"\n (click.prevent)=\"directive.onStep(-directive.step())\"\n (pointerdown.prevent)=\"hold.next(-directive.step())\"\n >\n -\n </button>\n </section>\n}\n", styles: ["tui-textfield:where(*[data-tui-version=\"5.
|
|
355
|
+
}, template: "@if (directive.step()) {\n <section class=\"t-input-number-buttons\">\n <button\n size=\"s\"\n tabindex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"appearance()\"\n [disabled]=\"!input.interactive() || input.parsed() >= mask.max()\"\n [iconStart]=\"options.icons.increase\"\n (click.prevent)=\"directive.onStep(directive.step())\"\n (pointerdown.prevent)=\"hold.next(directive.step())\"\n >\n +\n </button>\n <button\n size=\"s\"\n tabindex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"appearance()\"\n [disabled]=\"!input.interactive() || input.parsed() <= mask.min()\"\n [iconStart]=\"options.icons.decrease\"\n (click.prevent)=\"directive.onStep(-directive.step())\"\n (pointerdown.prevent)=\"hold.next(-directive.step())\"\n >\n -\n </button>\n </section>\n}\n", styles: ["tui-textfield:where(*[data-tui-version=\"5.18.0\"]) .t-input-number-buttons.t-input-number-buttons{position:absolute;display:flex;inset-inline-end:0;block-size:var(--t-height);flex-direction:column;gap:.125rem;border-radius:inherit}tui-textfield:where(*[data-tui-version=\"5.18.0\"]) .t-input-number-buttons.t-input-number-buttons>*{flex:1 1 0;border-radius:0}tui-textfield:where(*[data-tui-version=\"5.18.0\"]) .t-input-number-buttons.t-input-number-buttons>*:first-child{border-top-right-radius:inherit}tui-textfield:where(*[data-tui-version=\"5.18.0\"]) .t-input-number-buttons.t-input-number-buttons>*:last-child{border-bottom-right-radius:inherit}[dir=rtl] tui-textfield:where(*[data-tui-version=\"5.18.0\"]) .t-input-number-buttons.t-input-number-buttons>*:first-child{border-radius:0;border-top-left-radius:inherit}[dir=rtl] tui-textfield:where(*[data-tui-version=\"5.18.0\"]) .t-input-number-buttons.t-input-number-buttons>*:last-child{border-radius:0;border-bottom-left-radius:inherit}tui-textfield:where(*[data-tui-version=\"5.18.0\"])[data-size=l]{--t-input-number-offset-end: calc(var(--tui-height-m) + .125rem)}tui-textfield:where(*[data-tui-version=\"5.18.0\"])[data-size=l] .t-input-number-buttons.t-input-number-buttons>*{inline-size:var(--tui-height-m)}tui-textfield:where(*[data-tui-version=\"5.18.0\"])[data-size=m]{--t-input-number-offset-end: calc(var(--tui-height-s) + .125rem)}tui-textfield:where(*[data-tui-version=\"5.18.0\"])[data-size=s]{--t-input-number-offset-end: calc(2 * var(--tui-height-s) + .25rem)}tui-textfield:where(*[data-tui-version=\"5.18.0\"])[data-size=s] .t-input-number-buttons.t-input-number-buttons{flex-direction:row-reverse}tui-textfield:where(*[data-tui-version=\"5.18.0\"])[data-size=s] .t-input-number-buttons.t-input-number-buttons>*:first-child{border-top-right-radius:inherit;border-bottom-right-radius:inherit}tui-textfield:where(*[data-tui-version=\"5.18.0\"])[data-size=s] .t-input-number-buttons.t-input-number-buttons>*:last-child{border-radius:0}[tuiInputNumber]._with-buttons:where(*[data-tui-version=\"5.18.0\"]){border-top-right-radius:0;border-bottom-right-radius:0}[dir=rtl] [tuiInputNumber]._with-buttons:where(*[data-tui-version=\"5.18.0\"]){border-radius:inherit;border-top-left-radius:0;border-bottom-left-radius:0}[tuiInputNumber]._with-buttons:where(*[data-tui-version=\"5.18.0\"]),[data-tui-version=\"5.18.0\"] [tuiInputNumber]._with-buttons~.t-template{inline-size:calc(100% - var(--t-input-number-offset-end));margin-inline-end:var(--t-input-number-offset-end)}[tuiInputNumber]:where(*[data-tui-version=\"5.18.0\"])._with-buttons~.t-content{margin-inline-end:var(--t-input-number-offset-end)}\n"] }]
|
|
356
356
|
}] });
|
|
357
357
|
|
|
358
358
|
class TuiInputNumberStep {
|
|
@@ -371,7 +371,7 @@ class TuiInputNumberStep {
|
|
|
371
371
|
});
|
|
372
372
|
}
|
|
373
373
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiInputNumberStep, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
374
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.25", type: TuiInputNumberStep, isStandalone: true, selector: "input[tuiInputNumber][step]", inputs: { step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-tui-version": "5.
|
|
374
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.25", type: TuiInputNumberStep, isStandalone: true, selector: "input[tuiInputNumber][step]", inputs: { step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-tui-version": "5.18.0" }, listeners: { "keydown.arrowDown.prevent": "onStep(-step())", "keydown.arrowUp.prevent": "onStep(step())" }, properties: { "class._with-buttons": "step()" } }, providers: [tuiAsTextfieldContent(() => TuiInputNumberStepButtons)], hostDirectives: [{ directive: i1$2.TuiAppearanceProxy }, { directive: i2.TuiTextfieldContent }], ngImport: i0 }); }
|
|
375
375
|
}
|
|
376
376
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiInputNumberStep, decorators: [{
|
|
377
377
|
type: Directive,
|
|
@@ -82,7 +82,7 @@ class TuiInputPhoneInternationalContent {
|
|
|
82
82
|
this.host.masked.set(maskitoTransform(this.host.value() || tuiGetCallingCode(code, this.host.metadata()), this.host.mask() || MASKITO_DEFAULT_OPTIONS));
|
|
83
83
|
}
|
|
84
84
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiInputPhoneInternationalContent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
85
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: TuiInputPhoneInternationalContent, isStandalone: true, selector: "tui-input-phone-international-content", host: { attributes: { "data-tui-version": "5.
|
|
85
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: TuiInputPhoneInternationalContent, isStandalone: true, selector: "tui-input-phone-international-content", host: { attributes: { "data-tui-version": "5.18.0" } }, viewQueries: [{ propertyName: "list", predicate: TuiOption, descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: "<button\n appearance=\"textfield\"\n tabindex=\"-1\"\n tuiButton\n tuiChevron\n type=\"button\"\n class=\"t-ipi-select\"\n [attr.data-mode]=\"host.mode()\"\n [class.t-ipi-select_readonly]=\"host.readOnly()\"\n [disabled]=\"host.disabled()\"\n [size]=\"size()\"\n [tuiAppearanceFocus]=\"host.open()\"\n (click.prevent)=\"host.interactive() && host.open.set(!host.open())\"\n (pointerdown.stop)=\"(0)\"\n>\n <img\n class=\"t-ipi-flag\"\n [alt]=\"names()[host.countryIsoCode()]\"\n [class.t-ipi-flag_small]=\"size() === 's'\"\n [src]=\"host.countryIsoCode() | tuiFlag\"\n />\n</button>\n<ng-template #filter>\n <div class=\"t-ipi-search\">\n <tui-textfield\n [iconStart]=\"icons.search\"\n [tuiTextfieldSize]=\"size() === 's' ? 's' : 'm'\"\n >\n <input\n autocomplete=\"off\"\n tuiInput\n type=\"text\"\n [ngModel]=\"host.search()\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"label()\"\n [tuiAutoFocus]=\"!ios\"\n (keydown.arrowDown)=\"list()[0]?.nativeElement?.focus()\"\n (ngModelChange)=\"host.search.set($event)\"\n />\n </tui-textfield>\n </div>\n</ng-template>\n<ng-container *tuiDropdown>\n @if (host.countrySearch()) {\n <ng-container *ngTemplateOutlet=\"filter\" />\n }\n <tui-data-list class=\"t-ipi-options\">\n @for (item of filtered(); track item.iso) {\n <button\n tuiOption\n type=\"button\"\n (click)=\"onItemClick(item.iso)\"\n >\n <img\n alt=\"\"\n class=\"t-ipi-flag\"\n [class.t-ipi-flag_small]=\"size() === 's'\"\n [src]=\"item.iso | tuiFlag\"\n />\n <span tuiTitle>{{ item.name }}</span>\n <span class=\"t-ipi-code\">{{ item.code }}</span>\n </button>\n }\n </tui-data-list>\n</ng-container>\n", styles: ["tui-input-phone-international-content:where(*[data-tui-version=\"5.18.0\"]){display:contents;border-radius:inherit}[tuiInputPhoneInternational][tuiInputPhoneInternational]:where(*[data-tui-version=\"5.18.0\"]){inset-inline-start:var(--t-offset);border-top-left-radius:0;border-bottom-left-radius:0;inline-size:calc(100% - var(--t-offset))}[tuiInputPhoneInternational][tuiInputPhoneInternational]:where(*[data-tui-version=\"5.18.0\"])+[tuiLabel][tuiLabel]{padding-inline-start:var(--t-offset)}tui-textfield[data-size=s]:where(*[data-tui-version=\"5.18.0\"]){--t-offset: 4.125rem}tui-textfield[data-size=s]:where(*[data-tui-version=\"5.18.0\"]) .t-ipi-flag{margin:0 .1875rem}tui-textfield[data-size=m]:where(*[data-tui-version=\"5.18.0\"]){--t-offset: 4.875rem}tui-textfield[data-size=m]:where(*[data-tui-version=\"5.18.0\"]) .t-ipi-flag{margin:0 -.1875rem}tui-textfield[data-size=l]:where(*[data-tui-version=\"5.18.0\"]){--t-offset: 5.25rem}tui-textfield[data-size=l]:where(*[data-tui-version=\"5.18.0\"]) .t-ipi-flag{margin:0 -.1875rem}[data-tui-version=\"5.18.0\"] .t-ipi-select{position:absolute;inset-inline-start:0;border-radius:inherit;border-top-right-radius:0;border-bottom-right-radius:0}[data-tui-version=\"5.18.0\"] .t-ipi-select_readonly{pointer-events:none}[data-tui-version=\"5.18.0\"] .t-ipi-flag{inline-size:1.75rem;block-size:1.75rem;border-radius:100%}[data-tui-version=\"5.18.0\"] .t-ipi-flag_small{inline-size:1.25rem;block-size:1.25rem}[data-tui-version=\"5.18.0\"] .t-ipi-code{color:var(--tui-text-secondary)}[data-tui-version=\"5.18.0\"] .t-ipi-search{position:sticky;z-index:1;inset-block-start:0;background:var(--tui-background-elevation-3);padding:.375rem .375rem 0}@supports (-webkit-touch-callout: none){[data-tui-version=\"5.18.0\"] .t-ipi-search input:focus{animation:tuiPreventIOSScroll 1ms}}@keyframes tuiPreventIOSScroll{0%{opacity:0}to{opacity:1}}[data-tui-version=\"5.18.0\"] tui-dropdown-mobile .t-ipi-search,[data-tui-version=\"5.18.0\"] tui-sheet-dialog .t-ipi-search{background:var(--tui-background-elevation-1)}[data-tui-version=\"5.18.0\"] tui-dropdown-mobile .t-ipi-options:not(:first-child),[data-tui-version=\"5.18.0\"] tui-sheet-dialog .t-ipi-options:not(:first-child){min-block-size:calc(100 * var(--tui-viewport-vh) - 8.75rem)}[data-tui-version=\"5.18.0\"] tui-sheet-dialog .t-ipi-search{inset-block-start:4.5rem;padding-inline-start:0;padding-inline-end:0}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: TuiAutoFocus, selector: "[tuiAutoFocus]", inputs: ["tuiAutoFocus"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "directive", type: TuiChevron, selector: "[tuiChevron]", inputs: ["tuiChevron"] }, { kind: "component", type: i2.TuiDataListComponent, selector: "tui-data-list", inputs: ["emptyContent", "size"] }, { kind: "directive", type: i2.TuiOption, selector: "button[tuiOption], a[tuiOption], label[tuiOption]", inputs: ["disabled"] }, { kind: "directive", type: TuiDropdownContent, selector: "ng-template[tuiDropdown]" }, { kind: "pipe", type: TuiFlagPipe, name: "tuiFlag" }, { kind: "component", type: i3.TuiTextfieldComponent, selector: "tui-textfield:not([multi])", inputs: ["content", "filler"] }, { kind: "directive", type: i3.TuiTextfieldOptionsDirective, selector: "[tuiTextfieldAppearance],[tuiTextfieldSize],[tuiTextfieldCleaner]", inputs: ["tuiTextfieldAppearance", "tuiTextfieldSize", "tuiTextfieldCleaner"] }, { kind: "directive", type: i4.TuiInputDirective, selector: "input[tuiInput]", inputs: ["readOnly", "invalid", "focused", "state"] }, { kind: "directive", type: TuiTitle, selector: "[tuiTitle]", inputs: ["tuiTitle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
86
86
|
}
|
|
87
87
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiInputPhoneInternationalContent, decorators: [{
|
|
88
88
|
type: Component,
|
|
@@ -99,7 +99,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
|
|
|
99
99
|
TuiOption,
|
|
100
100
|
TuiTextfield,
|
|
101
101
|
TuiTitle,
|
|
102
|
-
], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: { 'data-tui-version': TUI_VERSION }, template: "<button\n appearance=\"textfield\"\n tabindex=\"-1\"\n tuiButton\n tuiChevron\n type=\"button\"\n class=\"t-ipi-select\"\n [attr.data-mode]=\"host.mode()\"\n [class.t-ipi-select_readonly]=\"host.readOnly()\"\n [disabled]=\"host.disabled()\"\n [size]=\"size()\"\n [tuiAppearanceFocus]=\"host.open()\"\n (click.prevent)=\"host.interactive() && host.open.set(!host.open())\"\n (pointerdown.stop)=\"(0)\"\n>\n <img\n class=\"t-ipi-flag\"\n [alt]=\"names()[host.countryIsoCode()]\"\n [class.t-ipi-flag_small]=\"size() === 's'\"\n [src]=\"host.countryIsoCode() | tuiFlag\"\n />\n</button>\n<ng-template #filter>\n <div class=\"t-ipi-search\">\n <tui-textfield\n [iconStart]=\"icons.search\"\n [tuiTextfieldSize]=\"size() === 's' ? 's' : 'm'\"\n >\n <input\n autocomplete=\"off\"\n tuiInput\n type=\"text\"\n [ngModel]=\"host.search()\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"label()\"\n [tuiAutoFocus]=\"!ios\"\n (keydown.arrowDown)=\"list()[0]?.nativeElement?.focus()\"\n (ngModelChange)=\"host.search.set($event)\"\n />\n </tui-textfield>\n </div>\n</ng-template>\n<ng-container *tuiDropdown>\n @if (host.countrySearch()) {\n <ng-container *ngTemplateOutlet=\"filter\" />\n }\n <tui-data-list class=\"t-ipi-options\">\n @for (item of filtered(); track item.iso) {\n <button\n tuiOption\n type=\"button\"\n (click)=\"onItemClick(item.iso)\"\n >\n <img\n alt=\"\"\n class=\"t-ipi-flag\"\n [class.t-ipi-flag_small]=\"size() === 's'\"\n [src]=\"item.iso | tuiFlag\"\n />\n <span tuiTitle>{{ item.name }}</span>\n <span class=\"t-ipi-code\">{{ item.code }}</span>\n </button>\n }\n </tui-data-list>\n</ng-container>\n", styles: ["tui-input-phone-international-content:where(*[data-tui-version=\"5.
|
|
102
|
+
], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: { 'data-tui-version': TUI_VERSION }, template: "<button\n appearance=\"textfield\"\n tabindex=\"-1\"\n tuiButton\n tuiChevron\n type=\"button\"\n class=\"t-ipi-select\"\n [attr.data-mode]=\"host.mode()\"\n [class.t-ipi-select_readonly]=\"host.readOnly()\"\n [disabled]=\"host.disabled()\"\n [size]=\"size()\"\n [tuiAppearanceFocus]=\"host.open()\"\n (click.prevent)=\"host.interactive() && host.open.set(!host.open())\"\n (pointerdown.stop)=\"(0)\"\n>\n <img\n class=\"t-ipi-flag\"\n [alt]=\"names()[host.countryIsoCode()]\"\n [class.t-ipi-flag_small]=\"size() === 's'\"\n [src]=\"host.countryIsoCode() | tuiFlag\"\n />\n</button>\n<ng-template #filter>\n <div class=\"t-ipi-search\">\n <tui-textfield\n [iconStart]=\"icons.search\"\n [tuiTextfieldSize]=\"size() === 's' ? 's' : 'm'\"\n >\n <input\n autocomplete=\"off\"\n tuiInput\n type=\"text\"\n [ngModel]=\"host.search()\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"label()\"\n [tuiAutoFocus]=\"!ios\"\n (keydown.arrowDown)=\"list()[0]?.nativeElement?.focus()\"\n (ngModelChange)=\"host.search.set($event)\"\n />\n </tui-textfield>\n </div>\n</ng-template>\n<ng-container *tuiDropdown>\n @if (host.countrySearch()) {\n <ng-container *ngTemplateOutlet=\"filter\" />\n }\n <tui-data-list class=\"t-ipi-options\">\n @for (item of filtered(); track item.iso) {\n <button\n tuiOption\n type=\"button\"\n (click)=\"onItemClick(item.iso)\"\n >\n <img\n alt=\"\"\n class=\"t-ipi-flag\"\n [class.t-ipi-flag_small]=\"size() === 's'\"\n [src]=\"item.iso | tuiFlag\"\n />\n <span tuiTitle>{{ item.name }}</span>\n <span class=\"t-ipi-code\">{{ item.code }}</span>\n </button>\n }\n </tui-data-list>\n</ng-container>\n", styles: ["tui-input-phone-international-content:where(*[data-tui-version=\"5.18.0\"]){display:contents;border-radius:inherit}[tuiInputPhoneInternational][tuiInputPhoneInternational]:where(*[data-tui-version=\"5.18.0\"]){inset-inline-start:var(--t-offset);border-top-left-radius:0;border-bottom-left-radius:0;inline-size:calc(100% - var(--t-offset))}[tuiInputPhoneInternational][tuiInputPhoneInternational]:where(*[data-tui-version=\"5.18.0\"])+[tuiLabel][tuiLabel]{padding-inline-start:var(--t-offset)}tui-textfield[data-size=s]:where(*[data-tui-version=\"5.18.0\"]){--t-offset: 4.125rem}tui-textfield[data-size=s]:where(*[data-tui-version=\"5.18.0\"]) .t-ipi-flag{margin:0 .1875rem}tui-textfield[data-size=m]:where(*[data-tui-version=\"5.18.0\"]){--t-offset: 4.875rem}tui-textfield[data-size=m]:where(*[data-tui-version=\"5.18.0\"]) .t-ipi-flag{margin:0 -.1875rem}tui-textfield[data-size=l]:where(*[data-tui-version=\"5.18.0\"]){--t-offset: 5.25rem}tui-textfield[data-size=l]:where(*[data-tui-version=\"5.18.0\"]) .t-ipi-flag{margin:0 -.1875rem}[data-tui-version=\"5.18.0\"] .t-ipi-select{position:absolute;inset-inline-start:0;border-radius:inherit;border-top-right-radius:0;border-bottom-right-radius:0}[data-tui-version=\"5.18.0\"] .t-ipi-select_readonly{pointer-events:none}[data-tui-version=\"5.18.0\"] .t-ipi-flag{inline-size:1.75rem;block-size:1.75rem;border-radius:100%}[data-tui-version=\"5.18.0\"] .t-ipi-flag_small{inline-size:1.25rem;block-size:1.25rem}[data-tui-version=\"5.18.0\"] .t-ipi-code{color:var(--tui-text-secondary)}[data-tui-version=\"5.18.0\"] .t-ipi-search{position:sticky;z-index:1;inset-block-start:0;background:var(--tui-background-elevation-3);padding:.375rem .375rem 0}@supports (-webkit-touch-callout: none){[data-tui-version=\"5.18.0\"] .t-ipi-search input:focus{animation:tuiPreventIOSScroll 1ms}}@keyframes tuiPreventIOSScroll{0%{opacity:0}to{opacity:1}}[data-tui-version=\"5.18.0\"] tui-dropdown-mobile .t-ipi-search,[data-tui-version=\"5.18.0\"] tui-sheet-dialog .t-ipi-search{background:var(--tui-background-elevation-1)}[data-tui-version=\"5.18.0\"] tui-dropdown-mobile .t-ipi-options:not(:first-child),[data-tui-version=\"5.18.0\"] tui-sheet-dialog .t-ipi-options:not(:first-child){min-block-size:calc(100 * var(--tui-viewport-vh) - 8.75rem)}[data-tui-version=\"5.18.0\"] tui-sheet-dialog .t-ipi-search{inset-block-start:4.5rem;padding-inline-start:0;padding-inline-end:0}\n"] }]
|
|
103
103
|
}] });
|
|
104
104
|
|
|
105
105
|
const NOT_FORM_CONTROL_SYMBOLS = /[^+\d]/g;
|
|
@@ -21,7 +21,7 @@ const TUI_INPUT_PHONE_DEFAULT_OPTIONS = {
|
|
|
21
21
|
};
|
|
22
22
|
const [TUI_INPUT_PHONE_OPTIONS, tuiInputPhoneOptionsProvider] = tuiCreateOptions(TUI_INPUT_PHONE_DEFAULT_OPTIONS);
|
|
23
23
|
|
|
24
|
-
const countDigits = (value) => value.replaceAll(
|
|
24
|
+
const countDigits = (value) => value.replaceAll(/[^#\d]+/g, '').length;
|
|
25
25
|
/**
|
|
26
26
|
* `InputPhone` component sets country code as non-removable prefix.
|
|
27
27
|
* This prefix appears on focus and cannot be erased.
|
|
@@ -29,11 +29,15 @@ const countDigits = (value) => value.replaceAll(/\D/g, '').length;
|
|
|
29
29
|
* and try to insert the whole string inside our `InputPhone` textfield.
|
|
30
30
|
* This preprocessor helps to avoid country prefix duplication on paste/drop/autofill events.
|
|
31
31
|
*/
|
|
32
|
-
function tuiCreateCompletePhoneInsertionPreprocessor(countryCode,
|
|
33
|
-
const completePhoneLength = `${countryCode}${
|
|
34
|
-
const trimCountryPrefix = (value) =>
|
|
35
|
-
|
|
36
|
-
|
|
32
|
+
function tuiCreateCompletePhoneInsertionPreprocessor(countryCode, nationalPartTemplate) {
|
|
33
|
+
const completePhoneLength = countDigits(`${countryCode}${nationalPartTemplate}`);
|
|
34
|
+
const trimCountryPrefix = (value) => {
|
|
35
|
+
const trimmed = value.replace(new RegExp(String.raw `^(\+?\s*${countryCode.replace('+', '')}?)\s?`), '');
|
|
36
|
+
return countryCode === '+7' &&
|
|
37
|
+
countDigits(trimmed) > countDigits(nationalPartTemplate)
|
|
38
|
+
? trimmed.replace(/^8\s?/, '')
|
|
39
|
+
: trimmed;
|
|
40
|
+
};
|
|
37
41
|
return ({ elementState, data }) => {
|
|
38
42
|
const { value, selection } = elementState;
|
|
39
43
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-kit-components-input-phone.mjs","sources":["../../../projects/kit/components/input-phone/input-phone.options.ts","../../../projects/kit/components/input-phone/utils/complete-phone-insertion-preprocessor.ts","../../../projects/kit/components/input-phone/utils/create-phone-mask-expression.ts","../../../projects/kit/components/input-phone/input-phone.directive.ts","../../../projects/kit/components/input-phone/input-phone.ts","../../../projects/kit/components/input-phone/taiga-ui-kit-components-input-phone.ts"],"sourcesContent":["import {\n TUI_IDENTITY_VALUE_TRANSFORMER,\n type TuiValueTransformer,\n} from '@taiga-ui/cdk/classes';\nimport {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\n\nexport interface TuiInputPhoneOptions {\n readonly allowText: boolean;\n readonly mask: string;\n readonly valueTransformer: TuiValueTransformer<string | null, any>;\n}\n\nexport const TUI_INPUT_PHONE_DEFAULT_OPTIONS: TuiInputPhoneOptions = {\n mask: '+1 ### ###-####',\n allowText: false,\n valueTransformer: TUI_IDENTITY_VALUE_TRANSFORMER,\n};\n\nexport const [TUI_INPUT_PHONE_OPTIONS, tuiInputPhoneOptionsProvider] = tuiCreateOptions(\n TUI_INPUT_PHONE_DEFAULT_OPTIONS,\n);\n","import {type MaskitoPreprocessor} from '@maskito/core';\n\nconst countDigits = (value: string): number => value.replaceAll(/\\D/g, '').length;\n\n/**\n * `InputPhone` component sets country code as non-removable prefix.\n * This prefix appears on focus and cannot be erased.\n * But users sometimes can copy complete phone number (from any different source)\n * and try to insert the whole string inside our `InputPhone` textfield.\n * This preprocessor helps to avoid country prefix duplication on paste/drop/autofill events.\n */\nexport function tuiCreateCompletePhoneInsertionPreprocessor(\n countryCode: string,\n phoneMaskAfterCountryCode: string,\n): MaskitoPreprocessor {\n const completePhoneLength = `${countryCode}${phoneMaskAfterCountryCode}`.replaceAll(\n /[^#\\d]+/g,\n '',\n ).length;\n\n const trimCountryPrefix = (value: string): string =>\n countryCode === '+7'\n ? value.replace(/^\\+?\\s*7?\\s?8?\\s?/, '')\n : value.replace(\n new RegExp(String.raw`^(\\+?\\s*${countryCode.replace('+', '')}?)\\s?`),\n '',\n );\n\n return ({elementState, data}) => {\n const {value, selection} = elementState;\n\n return {\n elementState: {\n selection,\n value:\n /**\n * The only possible case when `value` includes digits more\n * than mask expression allows – browser autofill.\n * It means that we are inside `input`-event\n * and mask are ready to reject \"extra\" characters.\n * We should cut leading country prefix to save trailing characters!\n */\n countDigits(value) > completePhoneLength\n ? trimCountryPrefix(value)\n : value,\n },\n data:\n countDigits(data) >= completePhoneLength || data.startsWith(countryCode)\n ? /**\n * User tries to insert/drop the complete phone number (with country prefix).\n * We should drop already existing non-removable prefix.\n */\n trimCountryPrefix(data)\n : data,\n };\n };\n}\n","/**\n * Create {@link https://maskito.dev/core-concepts/mask-expression pattern mask expression} for phone number\n *\n * @example\n * tuiCreatePhoneMaskExpression('+1', '(###) ###-####');\n */\nexport function tuiCreatePhoneMaskExpression(\n countryCode: string,\n phoneMaskAfterCountryCode: string,\n): Array<RegExp | string> {\n return [\n ...countryCode.split(''),\n ' ',\n ...phoneMaskAfterCountryCode\n .replaceAll(/[^#\\- ()]+/g, '')\n .split('')\n .map((item) => (item === '#' ? /\\d/ : item)),\n ];\n}\n","import {computed, Directive, effect, inject, input, untracked} from '@angular/core';\nimport {MaskitoDirective} from '@maskito/angular';\nimport {\n MASKITO_DEFAULT_OPTIONS,\n type MaskitoOptions,\n maskitoTransform,\n} from '@maskito/core';\nimport {maskitoCaretGuard, maskitoPrefixPostprocessorGenerator} from '@maskito/kit';\nimport {tuiAsControl, TuiControl, tuiValueTransformerFrom} from '@taiga-ui/cdk/classes';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TuiInputDirective, TuiWithInput} from '@taiga-ui/core/components/input';\nimport {TuiTextfieldComponent} from '@taiga-ui/core/components/textfield';\nimport {tuiMaskito} from '@taiga-ui/kit/utils';\n\nimport {TUI_INPUT_PHONE_OPTIONS} from './input-phone.options';\nimport {tuiCreateCompletePhoneInsertionPreprocessor} from './utils/complete-phone-insertion-preprocessor';\nimport {tuiCreatePhoneMaskExpression} from './utils/create-phone-mask-expression';\n\nconst MASK_SYMBOLS = /[ \\-_()]/g;\n\nfunction isText(value: string): boolean {\n return Number.isNaN(Number.parseInt(value.replaceAll(MASK_SYMBOLS, ''), 10));\n}\n\n@Directive({\n selector: 'input[tuiInputPhone]',\n providers: [\n tuiAsControl(TuiInputPhoneDirective),\n tuiValueTransformerFrom(TUI_INPUT_PHONE_OPTIONS),\n ],\n hostDirectives: [TuiWithInput, MaskitoDirective],\n host: {\n type: 'tel',\n '[disabled]': 'disabled()',\n '[inputMode]': 'inputMode()',\n '(input)': 'onInput($event.target.value)',\n },\n})\nexport class TuiInputPhoneDirective extends TuiControl<string | null> {\n private readonly input = inject(TuiInputDirective);\n private readonly host: TuiTextfieldComponent<string> = inject(TuiTextfieldComponent);\n\n protected readonly options = inject(TUI_INPUT_PHONE_OPTIONS);\n protected readonly el = tuiInjectElement<HTMLInputElement>();\n protected readonly nonRemovablePrefix = computed(() => `${this.countryCode()} `);\n\n protected readonly inputMode = computed(() =>\n this.allowText() ? 'text' : 'numeric',\n );\n\n protected readonly valueEffect = effect(() => {\n const value = this.value();\n\n if (value) {\n this.input.value.set(maskitoTransform(value ?? '', this.maskito()));\n }\n });\n\n protected readonly blurEffect = effect(() => {\n const incomplete = untracked(() => !this.value());\n const prefix = incomplete && this.interactive() && !this.allowText();\n\n if (!this.host.focused() && incomplete) {\n this.input.value.set('');\n } else if (this.host.focused() && prefix) {\n this.input.value.set(untracked(this.nonRemovablePrefix));\n }\n });\n\n protected readonly countryCode = computed(() => extractCode(this.mask()));\n protected readonly phoneMask = computed(() => extractMask(this.mask()));\n\n protected readonly maskito = tuiMaskito(\n computed(() =>\n this.calculateMask(\n this.countryCode(),\n this.phoneMask(),\n this.nonRemovablePrefix(),\n this.allowText(),\n ),\n ),\n );\n\n public readonly allowText = input(this.options.allowText);\n public readonly mask = input(this.options.mask);\n\n protected onInput(value: string): void {\n if (!value && !this.allowText()) {\n this.input.value.set(this.nonRemovablePrefix());\n }\n\n const parsed = isText(value)\n ? value\n : value.replaceAll(MASK_SYMBOLS, '').slice(0, this.maxPhoneLength);\n\n this.onChange(parsed === this.countryCode() || isText(parsed) ? '' : parsed);\n }\n\n private get maxPhoneLength(): number {\n return (\n this.countryCode().length + this.phoneMask().replaceAll(/[^#]+/g, '').length\n );\n }\n\n private calculateMask(\n countryCode: string,\n phoneMaskAfterCountryCode: string,\n nonRemovablePrefix: string,\n allowText: boolean,\n ): MaskitoOptions {\n const mask = tuiCreatePhoneMaskExpression(countryCode, phoneMaskAfterCountryCode);\n\n const preprocessors = [\n tuiCreateCompletePhoneInsertionPreprocessor(\n countryCode,\n phoneMaskAfterCountryCode,\n ),\n ];\n\n return allowText\n ? {\n mask: ({value}) =>\n isText(value) && value !== '+'\n ? (MASKITO_DEFAULT_OPTIONS.mask as RegExp)\n : mask,\n preprocessors,\n }\n : {\n mask,\n preprocessors,\n postprocessors: [\n maskitoPrefixPostprocessorGenerator(nonRemovablePrefix),\n ],\n plugins: [\n maskitoCaretGuard((value, [from, to]) => [\n from === to ? nonRemovablePrefix.length : 0,\n value.length,\n ]),\n ],\n };\n }\n}\n\nfunction extractCode(mask: string): string {\n const match = /^(\\+\\d+)/.exec(mask);\n\n return match?.[1] || '';\n}\n\nfunction extractMask(mask: string): string {\n const match = /^\\+\\d+(\\D.*)?$/.exec(mask);\n\n return match?.[1]?.trim() || '';\n}\n","import {TuiLabel} from '@taiga-ui/core/components/label';\nimport {\n TuiTextfieldComponent,\n TuiTextfieldOptionsDirective,\n} from '@taiga-ui/core/components/textfield';\nimport {TuiDropdownContent} from '@taiga-ui/core/portals/dropdown';\n\nimport {TuiInputPhoneDirective} from './input-phone.directive';\n\nexport const TuiInputPhone = [\n TuiInputPhoneDirective,\n TuiLabel,\n TuiTextfieldComponent,\n TuiTextfieldOptionsDirective,\n TuiDropdownContent,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-kit-components-input-phone.mjs","sources":["../../../projects/kit/components/input-phone/input-phone.options.ts","../../../projects/kit/components/input-phone/utils/complete-phone-insertion-preprocessor.ts","../../../projects/kit/components/input-phone/utils/create-phone-mask-expression.ts","../../../projects/kit/components/input-phone/input-phone.directive.ts","../../../projects/kit/components/input-phone/input-phone.ts","../../../projects/kit/components/input-phone/taiga-ui-kit-components-input-phone.ts"],"sourcesContent":["import {\n TUI_IDENTITY_VALUE_TRANSFORMER,\n type TuiValueTransformer,\n} from '@taiga-ui/cdk/classes';\nimport {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\n\nexport interface TuiInputPhoneOptions {\n readonly allowText: boolean;\n readonly mask: string;\n readonly valueTransformer: TuiValueTransformer<string | null, any>;\n}\n\nexport const TUI_INPUT_PHONE_DEFAULT_OPTIONS: TuiInputPhoneOptions = {\n mask: '+1 ### ###-####',\n allowText: false,\n valueTransformer: TUI_IDENTITY_VALUE_TRANSFORMER,\n};\n\nexport const [TUI_INPUT_PHONE_OPTIONS, tuiInputPhoneOptionsProvider] = tuiCreateOptions(\n TUI_INPUT_PHONE_DEFAULT_OPTIONS,\n);\n","import {type MaskitoPreprocessor} from '@maskito/core';\n\nconst countDigits = (value: string): number => value.replaceAll(/[^#\\d]+/g, '').length;\n\n/**\n * `InputPhone` component sets country code as non-removable prefix.\n * This prefix appears on focus and cannot be erased.\n * But users sometimes can copy complete phone number (from any different source)\n * and try to insert the whole string inside our `InputPhone` textfield.\n * This preprocessor helps to avoid country prefix duplication on paste/drop/autofill events.\n */\nexport function tuiCreateCompletePhoneInsertionPreprocessor(\n countryCode: string,\n nationalPartTemplate: string,\n): MaskitoPreprocessor {\n const completePhoneLength = countDigits(`${countryCode}${nationalPartTemplate}`);\n\n const trimCountryPrefix = (value: string): string => {\n const trimmed = value.replace(\n new RegExp(String.raw`^(\\+?\\s*${countryCode.replace('+', '')}?)\\s?`),\n '',\n );\n\n return countryCode === '+7' &&\n countDigits(trimmed) > countDigits(nationalPartTemplate)\n ? trimmed.replace(/^8\\s?/, '')\n : trimmed;\n };\n\n return ({elementState, data}) => {\n const {value, selection} = elementState;\n\n return {\n elementState: {\n selection,\n value:\n /**\n * The only possible case when `value` includes digits more\n * than mask expression allows – browser autofill.\n * It means that we are inside `input`-event\n * and mask are ready to reject \"extra\" characters.\n * We should cut leading country prefix to save trailing characters!\n */\n countDigits(value) > completePhoneLength\n ? trimCountryPrefix(value)\n : value,\n },\n data:\n countDigits(data) >= completePhoneLength || data.startsWith(countryCode)\n ? /**\n * User tries to insert/drop the complete phone number (with country prefix).\n * We should drop already existing non-removable prefix.\n */\n trimCountryPrefix(data)\n : data,\n };\n };\n}\n","/**\n * Create {@link https://maskito.dev/core-concepts/mask-expression pattern mask expression} for phone number\n *\n * @example\n * tuiCreatePhoneMaskExpression('+1', '(###) ###-####');\n */\nexport function tuiCreatePhoneMaskExpression(\n countryCode: string,\n phoneMaskAfterCountryCode: string,\n): Array<RegExp | string> {\n return [\n ...countryCode.split(''),\n ' ',\n ...phoneMaskAfterCountryCode\n .replaceAll(/[^#\\- ()]+/g, '')\n .split('')\n .map((item) => (item === '#' ? /\\d/ : item)),\n ];\n}\n","import {computed, Directive, effect, inject, input, untracked} from '@angular/core';\nimport {MaskitoDirective} from '@maskito/angular';\nimport {\n MASKITO_DEFAULT_OPTIONS,\n type MaskitoOptions,\n maskitoTransform,\n} from '@maskito/core';\nimport {maskitoCaretGuard, maskitoPrefixPostprocessorGenerator} from '@maskito/kit';\nimport {tuiAsControl, TuiControl, tuiValueTransformerFrom} from '@taiga-ui/cdk/classes';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TuiInputDirective, TuiWithInput} from '@taiga-ui/core/components/input';\nimport {TuiTextfieldComponent} from '@taiga-ui/core/components/textfield';\nimport {tuiMaskito} from '@taiga-ui/kit/utils';\n\nimport {TUI_INPUT_PHONE_OPTIONS} from './input-phone.options';\nimport {tuiCreateCompletePhoneInsertionPreprocessor} from './utils/complete-phone-insertion-preprocessor';\nimport {tuiCreatePhoneMaskExpression} from './utils/create-phone-mask-expression';\n\nconst MASK_SYMBOLS = /[ \\-_()]/g;\n\nfunction isText(value: string): boolean {\n return Number.isNaN(Number.parseInt(value.replaceAll(MASK_SYMBOLS, ''), 10));\n}\n\n@Directive({\n selector: 'input[tuiInputPhone]',\n providers: [\n tuiAsControl(TuiInputPhoneDirective),\n tuiValueTransformerFrom(TUI_INPUT_PHONE_OPTIONS),\n ],\n hostDirectives: [TuiWithInput, MaskitoDirective],\n host: {\n type: 'tel',\n '[disabled]': 'disabled()',\n '[inputMode]': 'inputMode()',\n '(input)': 'onInput($event.target.value)',\n },\n})\nexport class TuiInputPhoneDirective extends TuiControl<string | null> {\n private readonly input = inject(TuiInputDirective);\n private readonly host: TuiTextfieldComponent<string> = inject(TuiTextfieldComponent);\n\n protected readonly options = inject(TUI_INPUT_PHONE_OPTIONS);\n protected readonly el = tuiInjectElement<HTMLInputElement>();\n protected readonly nonRemovablePrefix = computed(() => `${this.countryCode()} `);\n\n protected readonly inputMode = computed(() =>\n this.allowText() ? 'text' : 'numeric',\n );\n\n protected readonly valueEffect = effect(() => {\n const value = this.value();\n\n if (value) {\n this.input.value.set(maskitoTransform(value ?? '', this.maskito()));\n }\n });\n\n protected readonly blurEffect = effect(() => {\n const incomplete = untracked(() => !this.value());\n const prefix = incomplete && this.interactive() && !this.allowText();\n\n if (!this.host.focused() && incomplete) {\n this.input.value.set('');\n } else if (this.host.focused() && prefix) {\n this.input.value.set(untracked(this.nonRemovablePrefix));\n }\n });\n\n protected readonly countryCode = computed(() => extractCode(this.mask()));\n protected readonly phoneMask = computed(() => extractMask(this.mask()));\n\n protected readonly maskito = tuiMaskito(\n computed(() =>\n this.calculateMask(\n this.countryCode(),\n this.phoneMask(),\n this.nonRemovablePrefix(),\n this.allowText(),\n ),\n ),\n );\n\n public readonly allowText = input(this.options.allowText);\n public readonly mask = input(this.options.mask);\n\n protected onInput(value: string): void {\n if (!value && !this.allowText()) {\n this.input.value.set(this.nonRemovablePrefix());\n }\n\n const parsed = isText(value)\n ? value\n : value.replaceAll(MASK_SYMBOLS, '').slice(0, this.maxPhoneLength);\n\n this.onChange(parsed === this.countryCode() || isText(parsed) ? '' : parsed);\n }\n\n private get maxPhoneLength(): number {\n return (\n this.countryCode().length + this.phoneMask().replaceAll(/[^#]+/g, '').length\n );\n }\n\n private calculateMask(\n countryCode: string,\n phoneMaskAfterCountryCode: string,\n nonRemovablePrefix: string,\n allowText: boolean,\n ): MaskitoOptions {\n const mask = tuiCreatePhoneMaskExpression(countryCode, phoneMaskAfterCountryCode);\n\n const preprocessors = [\n tuiCreateCompletePhoneInsertionPreprocessor(\n countryCode,\n phoneMaskAfterCountryCode,\n ),\n ];\n\n return allowText\n ? {\n mask: ({value}) =>\n isText(value) && value !== '+'\n ? (MASKITO_DEFAULT_OPTIONS.mask as RegExp)\n : mask,\n preprocessors,\n }\n : {\n mask,\n preprocessors,\n postprocessors: [\n maskitoPrefixPostprocessorGenerator(nonRemovablePrefix),\n ],\n plugins: [\n maskitoCaretGuard((value, [from, to]) => [\n from === to ? nonRemovablePrefix.length : 0,\n value.length,\n ]),\n ],\n };\n }\n}\n\nfunction extractCode(mask: string): string {\n const match = /^(\\+\\d+)/.exec(mask);\n\n return match?.[1] || '';\n}\n\nfunction extractMask(mask: string): string {\n const match = /^\\+\\d+(\\D.*)?$/.exec(mask);\n\n return match?.[1]?.trim() || '';\n}\n","import {TuiLabel} from '@taiga-ui/core/components/label';\nimport {\n TuiTextfieldComponent,\n TuiTextfieldOptionsDirective,\n} from '@taiga-ui/core/components/textfield';\nimport {TuiDropdownContent} from '@taiga-ui/core/portals/dropdown';\n\nimport {TuiInputPhoneDirective} from './input-phone.directive';\n\nexport const TuiInputPhone = [\n TuiInputPhoneDirective,\n TuiLabel,\n TuiTextfieldComponent,\n TuiTextfieldOptionsDirective,\n TuiDropdownContent,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -21,11 +21,11 @@ class TuiInputPinContent {
|
|
|
21
21
|
this.control = inject(NgControl);
|
|
22
22
|
}
|
|
23
23
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiInputPinContent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: TuiInputPinContent, isStandalone: true, selector: "tui-input-pin-content", host: { attributes: { "aria-hidden": "true", "data-tui-version": "5.
|
|
24
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: TuiInputPinContent, isStandalone: true, selector: "tui-input-pin-content", host: { attributes: { "aria-hidden": "true", "data-tui-version": "5.18.0" } }, ngImport: i0, template: "@for (_ of '-'.repeat(pin.el.maxLength); track $index) {\n <label\n class=\"t-item\"\n [tuiAppearance]=\"appearance()\"\n [tuiAppearanceFocus]=\"pin.isFocused($index)\"\n [tuiAppearanceMode]=\"control.invalid && control.touched ? 'invalid' : null\"\n (pointerdown.prevent)=\"pin.onClick($index)\"\n >\n <span\n class=\"t-value\"\n [class.t-value_filled]=\"pin.value()[$index]\"\n [textContent]=\"pin.value()[$index] || pin.el.placeholder[$index]\"\n ></span>\n </label>\n}\n", styles: ["@keyframes blink{50%{opacity:0}}tui-input-pin-content:where(*[data-tui-version=\"5.18.0\"]){position:absolute;inset-block-start:0;inset-inline-start:0;inline-size:100%;block-size:100%;display:flex;gap:inherit;border-radius:inherit}tui-input-pin-content:where(*[data-tui-version=\"5.18.0\"]) .t-item{display:flex;flex:1;align-items:center;justify-content:center;border-radius:inherit;pointer-events:auto;cursor:text;margin-inline-start:.25rem}tui-input-pin-content:where(*[data-tui-version=\"5.18.0\"]) .t-item:first-child{pointer-events:none;margin:0}tui-input-pin-content:where(*[data-tui-version=\"5.18.0\"]) .t-item[data-focus=true] .t-value_filled{background:var(--tui-service-selection-background)}tui-input-pin-content:where(*[data-tui-version=\"5.18.0\"]) .t-item[data-focus=true] .t-value_filled:before{display:none}tui-input-pin-content:where(*[data-tui-version=\"5.18.0\"]) .t-item[data-focus=true] .t-value:before{content:\"\";block-size:1em;border-inline-start:1px solid var(--tui-text-primary);animation:blink 1s steps(1) infinite}tui-input-pin-content:where(*[data-tui-version=\"5.18.0\"]) .t-value{color:var(--tui-text-secondary)}tui-input-pin-content:where(*[data-tui-version=\"5.18.0\"]) .t-value_filled{color:var(--tui-text-primary)}input[tuiInputPin]:where(*[data-tui-version=\"5.18.0\"]){position:absolute;inset:0;color:transparent;background:transparent;border:none;outline:none;--t-caret-color: rgba(255, 255, 255, .01);caret-color:var(--t-caret-color)}input[tuiInputPin]:where(*[data-tui-version=\"5.18.0\"])::selection{background:transparent}input[tuiInputPin]:where(*[data-tui-version=\"5.18.0\"])::placeholder{color:transparent!important}input[tuiInputPin]:where(*[data-tui-version=\"5.18.0\"])+.t-content{gap:inherit!important}input[tuiInputPin]:where(*[data-tui-version=\"5.18.0\"])+.t-content [tuiButtonX]{display:none!important}[tuiTheme=dark] input[tuiInputPin]:where(*[data-tui-version=\"5.18.0\"]){--t-caret-color: rgba(50, 50, 50, .01)}\n"], dependencies: [{ kind: "directive", type: TuiAppearance, selector: "[tuiAppearance]", inputs: ["tuiAppearance", "tuiAppearanceState", "tuiAppearanceFocus", "tuiAppearanceMode"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
25
25
|
}
|
|
26
26
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiInputPinContent, decorators: [{
|
|
27
27
|
type: Component,
|
|
28
|
-
args: [{ selector: 'tui-input-pin-content', imports: [TuiAppearance], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: { 'aria-hidden': 'true', 'data-tui-version': TUI_VERSION }, template: "@for (_ of '-'.repeat(pin.el.maxLength); track $index) {\n <label\n class=\"t-item\"\n [tuiAppearance]=\"appearance()\"\n [tuiAppearanceFocus]=\"pin.isFocused($index)\"\n [tuiAppearanceMode]=\"control.invalid && control.touched ? 'invalid' : null\"\n (pointerdown.prevent)=\"pin.onClick($index)\"\n >\n <span\n class=\"t-value\"\n [class.t-value_filled]=\"pin.value()[$index]\"\n [textContent]=\"pin.value()[$index] || pin.el.placeholder[$index]\"\n ></span>\n </label>\n}\n", styles: ["@keyframes blink{50%{opacity:0}}tui-input-pin-content:where(*[data-tui-version=\"5.
|
|
28
|
+
args: [{ selector: 'tui-input-pin-content', imports: [TuiAppearance], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: { 'aria-hidden': 'true', 'data-tui-version': TUI_VERSION }, template: "@for (_ of '-'.repeat(pin.el.maxLength); track $index) {\n <label\n class=\"t-item\"\n [tuiAppearance]=\"appearance()\"\n [tuiAppearanceFocus]=\"pin.isFocused($index)\"\n [tuiAppearanceMode]=\"control.invalid && control.touched ? 'invalid' : null\"\n (pointerdown.prevent)=\"pin.onClick($index)\"\n >\n <span\n class=\"t-value\"\n [class.t-value_filled]=\"pin.value()[$index]\"\n [textContent]=\"pin.value()[$index] || pin.el.placeholder[$index]\"\n ></span>\n </label>\n}\n", styles: ["@keyframes blink{50%{opacity:0}}tui-input-pin-content:where(*[data-tui-version=\"5.18.0\"]){position:absolute;inset-block-start:0;inset-inline-start:0;inline-size:100%;block-size:100%;display:flex;gap:inherit;border-radius:inherit}tui-input-pin-content:where(*[data-tui-version=\"5.18.0\"]) .t-item{display:flex;flex:1;align-items:center;justify-content:center;border-radius:inherit;pointer-events:auto;cursor:text;margin-inline-start:.25rem}tui-input-pin-content:where(*[data-tui-version=\"5.18.0\"]) .t-item:first-child{pointer-events:none;margin:0}tui-input-pin-content:where(*[data-tui-version=\"5.18.0\"]) .t-item[data-focus=true] .t-value_filled{background:var(--tui-service-selection-background)}tui-input-pin-content:where(*[data-tui-version=\"5.18.0\"]) .t-item[data-focus=true] .t-value_filled:before{display:none}tui-input-pin-content:where(*[data-tui-version=\"5.18.0\"]) .t-item[data-focus=true] .t-value:before{content:\"\";block-size:1em;border-inline-start:1px solid var(--tui-text-primary);animation:blink 1s steps(1) infinite}tui-input-pin-content:where(*[data-tui-version=\"5.18.0\"]) .t-value{color:var(--tui-text-secondary)}tui-input-pin-content:where(*[data-tui-version=\"5.18.0\"]) .t-value_filled{color:var(--tui-text-primary)}input[tuiInputPin]:where(*[data-tui-version=\"5.18.0\"]){position:absolute;inset:0;color:transparent;background:transparent;border:none;outline:none;--t-caret-color: rgba(255, 255, 255, .01);caret-color:var(--t-caret-color)}input[tuiInputPin]:where(*[data-tui-version=\"5.18.0\"])::selection{background:transparent}input[tuiInputPin]:where(*[data-tui-version=\"5.18.0\"])::placeholder{color:transparent!important}input[tuiInputPin]:where(*[data-tui-version=\"5.18.0\"])+.t-content{gap:inherit!important}input[tuiInputPin]:where(*[data-tui-version=\"5.18.0\"])+.t-content [tuiButtonX]{display:none!important}[tuiTheme=dark] input[tuiInputPin]:where(*[data-tui-version=\"5.18.0\"]){--t-caret-color: rgba(50, 50, 50, .01)}\n"] }]
|
|
29
29
|
}] });
|
|
30
30
|
|
|
31
31
|
// TODO(v6): rename to TuiInputPinDirective
|
|
@@ -58,7 +58,7 @@ class TuiInputPinComponent {
|
|
|
58
58
|
return (this.focused() && (this.selectionStart() ?? this.el.selectionStart) === index);
|
|
59
59
|
}
|
|
60
60
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiInputPinComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
61
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.25", type: TuiInputPinComponent, isStandalone: true, selector: "input[tuiInputPin]", inputs: { mask: { classPropertyName: "mask", publicName: "mask", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-tui-version": "5.
|
|
61
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.25", type: TuiInputPinComponent, isStandalone: true, selector: "input[tuiInputPin]", inputs: { mask: { classPropertyName: "mask", publicName: "mask", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-tui-version": "5.18.0", "inputmode": "numeric", "maxlength": "4", "spellcheck": "false" }, listeners: { "pointerdown.prevent": "onClick(0)", "selectionchange": "onSelection()" } }, providers: [tuiAsTextfieldContent(() => TuiInputPinContent)], hostDirectives: [{ directive: i1.MaskitoDirective }, { directive: i2.TuiTextfieldContent }], ngImport: i0 }); }
|
|
62
62
|
}
|
|
63
63
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiInputPinComponent, decorators: [{
|
|
64
64
|
type: Directive,
|
|
@@ -16,11 +16,11 @@ import { fromEvent, tap, filter, switchMap } from 'rxjs';
|
|
|
16
16
|
|
|
17
17
|
class Styles {
|
|
18
18
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: Styles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
19
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: Styles, isStandalone: true, selector: "ng-component", exportAs: ["tui-input-slider-5.
|
|
19
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: Styles, isStandalone: true, selector: "ng-component", exportAs: ["tui-input-slider-5.18.0"], ngImport: i0, template: '', isInline: true, styles: ["tui-textfield:where(*[data-tui-version=\"5.18.0\"]) [tuiInputSlider]~.t-content [tuiButtonX]{display:none!important}tui-textfield:where(*[data-tui-version=\"5.18.0\"]) [tuiInputSlider]~[tuiSlider]:disabled{display:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
20
20
|
}
|
|
21
21
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: Styles, decorators: [{
|
|
22
22
|
type: Component,
|
|
23
|
-
args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: `tui-input-slider-${TUI_VERSION}`, styles: ["tui-textfield:where(*[data-tui-version=\"5.
|
|
23
|
+
args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: `tui-input-slider-${TUI_VERSION}`, styles: ["tui-textfield:where(*[data-tui-version=\"5.18.0\"]) [tuiInputSlider]~.t-content [tuiButtonX]{display:none!important}tui-textfield:where(*[data-tui-version=\"5.18.0\"]) [tuiInputSlider]~[tuiSlider]:disabled{display:none}\n"] }]
|
|
24
24
|
}] });
|
|
25
25
|
class TuiInputSliderDirective {
|
|
26
26
|
constructor() {
|
|
@@ -191,7 +191,7 @@ class TuiInputTimeContent {
|
|
|
191
191
|
(change)="setValue($any($event.target).value)"
|
|
192
192
|
/>
|
|
193
193
|
}
|
|
194
|
-
`, isInline: true, styles: ["tui-textfield input[tuiInputTime]:where(*[data-tui-version=\"5.
|
|
194
|
+
`, isInline: true, styles: ["tui-textfield input[tuiInputTime]:where(*[data-tui-version=\"5.18.0\"])~.t-content input[type=time]{position:absolute;inset-inline-end:0;inset-inline-start:auto;inline-size:calc(var(--t-right) + var(--t-padding));opacity:0;margin:0;padding:0;pointer-events:auto}tui-textfield input[tuiInputTime]:where(*[data-tui-version=\"5.18.0\"])~.t-content input[type=time]::-webkit-calendar-picker-indicator{position:absolute;inset-block-start:0;inset-inline-start:0;inline-size:100%;block-size:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
195
195
|
}
|
|
196
196
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiInputTimeContent, decorators: [{
|
|
197
197
|
type: Component,
|
|
@@ -205,7 +205,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
|
|
|
205
205
|
(change)="setValue($any($event.target).value)"
|
|
206
206
|
/>
|
|
207
207
|
}
|
|
208
|
-
`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: ["tui-textfield input[tuiInputTime]:where(*[data-tui-version=\"5.
|
|
208
|
+
`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: ["tui-textfield input[tuiInputTime]:where(*[data-tui-version=\"5.18.0\"])~.t-content input[type=time]{position:absolute;inset-inline-end:0;inset-inline-start:auto;inline-size:calc(var(--t-right) + var(--t-padding));opacity:0;margin:0;padding:0;pointer-events:auto}tui-textfield input[tuiInputTime]:where(*[data-tui-version=\"5.18.0\"])~.t-content input[type=time]::-webkit-calendar-picker-indicator{position:absolute;inset-block-start:0;inset-inline-start:0;inline-size:100%;block-size:100%}\n"] }]
|
|
209
209
|
}] });
|
|
210
210
|
|
|
211
211
|
class TuiNativeTimePicker {
|
|
@@ -240,7 +240,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
|
|
|
240
240
|
// TODO(v6): rename to TuiInputTimeDirective
|
|
241
241
|
class TuiInputTimeComponent extends TuiNativeTimePicker {
|
|
242
242
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiInputTimeComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
243
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.25", type: TuiInputTimeComponent, isStandalone: true, selector: "input[tuiInputTime][type=\"time\"]", host: { attributes: { "data-tui-version": "5.
|
|
243
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.25", type: TuiInputTimeComponent, isStandalone: true, selector: "input[tuiInputTime][type=\"time\"]", host: { attributes: { "data-tui-version": "5.18.0" } }, providers: [tuiAsTextfieldContent(() => TuiInputTimeContent)], usesInheritance: true, hostDirectives: [{ directive: i1$1.TuiWithNativePicker }, { directive: i1$1.TuiTextfieldContent }], ngImport: i0 }); }
|
|
244
244
|
}
|
|
245
245
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiInputTimeComponent, decorators: [{
|
|
246
246
|
type: Directive,
|
|
@@ -33,7 +33,7 @@ class TuiLike {
|
|
|
33
33
|
provide: TUI_ICON_END,
|
|
34
34
|
useFactory: () => inject(TUI_LIKE_OPTIONS).icons.checked,
|
|
35
35
|
},
|
|
36
|
-
], hostDirectives: [{ directive: i1.TuiWithAppearance }, { directive: i2.TuiIcons, inputs: ["iconStart", "uncheckedIcon", "iconEnd", "checkedIcon"] }], ngImport: i0, template: '', isInline: true, styles: ["[tuiLike]:where(*[data-tui-version=\"5.
|
|
36
|
+
], hostDirectives: [{ directive: i1.TuiWithAppearance }, { directive: i2.TuiIcons, inputs: ["iconStart", "uncheckedIcon", "iconEnd", "checkedIcon"] }], ngImport: i0, template: '', isInline: true, styles: ["[tuiLike]:where(*[data-tui-version=\"5.18.0\"]){inline-size:1em;block-size:1em;font-size:var(--tui-height-m);border-radius:100%;cursor:pointer;margin:0;flex-shrink:0}[tuiLike]:where(*[data-tui-version=\"5.18.0\"]):before,[tuiLike]:where(*[data-tui-version=\"5.18.0\"]):after{position:absolute;inset-block-start:0;inset-inline-start:0;inline-size:100%;block-size:100%;font-size:1.25rem;transition-property:transform,opacity}[tuiLike]:where(*[data-tui-version=\"5.18.0\"]):after{opacity:0;color:var(--t-icon-color, inherit);transform:scale(0)}[tuiLike]:where(*[data-tui-version=\"5.18.0\"]):checked:before{opacity:0}[tuiLike]:where(*[data-tui-version=\"5.18.0\"]):checked:after{opacity:1;transform:scale(1);transition-timing-function:cubic-bezier(.2,.6,.5,1.8),ease-in-out}[tuiLike]:where(*[data-tui-version=\"5.18.0\"])[data-size=s]{font-size:var(--tui-height-s)}[tuiLike]:where(*[data-tui-version=\"5.18.0\"])[data-size=s]:before,[tuiLike]:where(*[data-tui-version=\"5.18.0\"])[data-size=s]:after{font-size:1rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
37
37
|
}
|
|
38
38
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiLike, decorators: [{
|
|
39
39
|
type: Component,
|
|
@@ -58,7 +58,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
|
|
|
58
58
|
'[attr.data-mode]': '""',
|
|
59
59
|
'[attr.data-size]': 'size()',
|
|
60
60
|
'[style.--t-icon-color]': 'color()',
|
|
61
|
-
}, styles: ["[tuiLike]:where(*[data-tui-version=\"5.
|
|
61
|
+
}, styles: ["[tuiLike]:where(*[data-tui-version=\"5.18.0\"]){inline-size:1em;block-size:1em;font-size:var(--tui-height-m);border-radius:100%;cursor:pointer;margin:0;flex-shrink:0}[tuiLike]:where(*[data-tui-version=\"5.18.0\"]):before,[tuiLike]:where(*[data-tui-version=\"5.18.0\"]):after{position:absolute;inset-block-start:0;inset-inline-start:0;inline-size:100%;block-size:100%;font-size:1.25rem;transition-property:transform,opacity}[tuiLike]:where(*[data-tui-version=\"5.18.0\"]):after{opacity:0;color:var(--t-icon-color, inherit);transform:scale(0)}[tuiLike]:where(*[data-tui-version=\"5.18.0\"]):checked:before{opacity:0}[tuiLike]:where(*[data-tui-version=\"5.18.0\"]):checked:after{opacity:1;transform:scale(1);transition-timing-function:cubic-bezier(.2,.6,.5,1.8),ease-in-out}[tuiLike]:where(*[data-tui-version=\"5.18.0\"])[data-size=s]{font-size:var(--tui-height-s)}[tuiLike]:where(*[data-tui-version=\"5.18.0\"])[data-size=s]:before,[tuiLike]:where(*[data-tui-version=\"5.18.0\"])[data-size=s]:after{font-size:1rem}\n"] }]
|
|
62
62
|
}] });
|
|
63
63
|
|
|
64
64
|
/**
|
|
@@ -7,11 +7,11 @@ import { TUI_APPEARANCE_OPTIONS, TuiWithAppearance } from '@taiga-ui/core/direct
|
|
|
7
7
|
|
|
8
8
|
class Styles {
|
|
9
9
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: Styles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: Styles, isStandalone: true, selector: "ng-component", exportAs: ["tui-message-5.
|
|
10
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: Styles, isStandalone: true, selector: "ng-component", exportAs: ["tui-message-5.18.0"], ngImport: i0, template: '', isInline: true, styles: ["[tuiMessage]:where(*[data-tui-version=\"5.18.0\"]){display:inline-flex;padding:.5rem .625rem;min-block-size:2.25rem;block-size:auto;box-sizing:border-box;inline-size:fit-content;isolation:isolate;white-space:nowrap;text-align:start;font:var(--tui-typography-ui-m);border-radius:var(--tui-radius-l)}[tuiMessage]:where(*[data-tui-version=\"5.18.0\"])>[tuiLink]{color:inherit!important;text-decoration:underline solid!important}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
11
11
|
}
|
|
12
12
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: Styles, decorators: [{
|
|
13
13
|
type: Component,
|
|
14
|
-
args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: `tui-message-${TUI_VERSION}`, styles: ["[tuiMessage]:where(*[data-tui-version=\"5.
|
|
14
|
+
args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: `tui-message-${TUI_VERSION}`, styles: ["[tuiMessage]:where(*[data-tui-version=\"5.18.0\"]){display:inline-flex;padding:.5rem .625rem;min-block-size:2.25rem;block-size:auto;box-sizing:border-box;inline-size:fit-content;isolation:isolate;white-space:nowrap;text-align:start;font:var(--tui-typography-ui-m);border-radius:var(--tui-radius-l)}[tuiMessage]:where(*[data-tui-version=\"5.18.0\"])>[tuiLink]{color:inherit!important;text-decoration:underline solid!important}\n"] }]
|
|
15
15
|
}] });
|
|
16
16
|
class TuiMessage {
|
|
17
17
|
constructor() {
|
|
@@ -6,11 +6,11 @@ import { tuiBadgeOptionsProvider } from '@taiga-ui/kit/components/badge';
|
|
|
6
6
|
|
|
7
7
|
class Styles {
|
|
8
8
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: Styles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: Styles, isStandalone: true, selector: "ng-component", exportAs: ["tui-pin-5.
|
|
9
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: Styles, isStandalone: true, selector: "ng-component", exportAs: ["tui-pin-5.18.0"], ngImport: i0, template: '', isInline: true, styles: ["[tuiPin]:where(*[data-tui-version=\"5.18.0\"]){--t-scale: calc(1 + (var(--tui-font-scale) - 1) / 2);--t-size: calc(2rem * var(--t-scale));transition-property:min-inline-size,grid-template-columns,block-size,border,margin,font;transition-duration:calc(var(--tui-duration) / 2);transition-timing-function:var(--tui-curve-productive-standard);-webkit-appearance:none;appearance:none;padding:0;border:0;background:none;font:inherit;line-height:inherit;text-decoration:none;position:relative;display:grid;isolation:isolate;align-items:center;grid-template-rows:100%;grid-template-columns:var(--t-size) 1fr;min-inline-size:var(--t-size);max-inline-size:calc(11.25rem * var(--t-scale));block-size:var(--t-size);text-align:center;border-radius:100rem;font:var(--tui-typography-ui-xs);font-weight:700;box-sizing:border-box;color:var(--tui-text-primary-on-accent-2);background:var(--tui-background-accent-2);box-shadow:0 0 0 calc(.125rem * var(--t-scale)) var(--tui-background-elevation-1);border:0 solid var(--tui-background-accent-2);transform:translate(calc(var(--tui-inline) * -50%),-50%)}[tuiPin]:where(*[data-tui-version=\"5.18.0\"]):is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled){cursor:pointer}[tuiPin]:where(*[data-tui-version=\"5.18.0\"]):empty{--t-size: calc(.75rem * var(--t-scale))}[tuiPin]:where(*[data-tui-version=\"5.18.0\"]):empty:before{display:none}[tuiPin]:where(*[data-tui-version=\"5.18.0\"]):has([tuiPin]){border-color:currentColor;background:var(--tui-background-elevation-1)}[tuiPin]:where(*[data-tui-version=\"5.18.0\"])>*,[tuiPin]:where(*[data-tui-version=\"5.18.0\"]):before,[tuiPin]:where(*[data-tui-version=\"5.18.0\"]):after{transition-duration:inherit!important}[tuiPin]:where(*[data-tui-version=\"5.18.0\"])>input{position:absolute;inset-block-start:0;inset-inline-start:0;inline-size:100%;block-size:100%;-webkit-appearance:none;appearance:none;border-radius:100%}[tuiPin]:where(*[data-tui-version=\"5.18.0\"])>img{max-block-size:100%;box-sizing:border-box;border-radius:100%;background:var(--tui-background-elevation-1)}[tuiPin]:where(*[data-tui-version=\"5.18.0\"])>tui-icon:not([tuiBadge]){transition-property:inline-size,font-size;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);font-size:1.25rem;block-size:100%;inline-size:100%;border-radius:100%}[tuiPin]:where(*[data-tui-version=\"5.18.0\"])>tui-icon:not([tuiBadge]):before{transition-property:font-size;transition-duration:inherit;transition-timing-function:var(--tui-curve-productive-standard)}[tuiPin]:where(*[data-tui-version=\"5.18.0\"])>[tuiPin]{color:inherit;border:.125rem solid;font:inherit;background:none;transform:none;box-shadow:none;grid-template-columns:100% 0fr}[tuiPin]:where(*[data-tui-version=\"5.18.0\"])>[tuiBadge]{transition-property:inset;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);position:absolute;inset-block-start:-.25rem;inset-inline-end:-.25rem}[tuiPin]:where(*[data-tui-version=\"5.18.0\"])>[tuiTitle]{transition-property:opacity,margin;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);position:static;font:var(--tui-typography-ui-xs);font-weight:700;color:var(--tui-text-primary);margin-inline:.5rem .75rem;gap:.125rem;white-space:nowrap}[tuiPin]:where(*[data-tui-version=\"5.18.0\"])>[tuiTitle]:before{transition-property:mask-position;transition-duration:inherit;transition-timing-function:var(--tui-curve-productive-standard);content:\"\";position:absolute;inset:-1px 0;z-index:-1;inset-inline-end:-1px;background:var(--tui-background-elevation-1);border-radius:100rem;-webkit-mask-image:radial-gradient(circle closest-corner at var(--tui-inline-start) center,transparent calc(100% - 1px),black calc(100% - .5px));mask-image:radial-gradient(circle closest-corner at var(--tui-inline-start) center,transparent calc(100% - 1px),black calc(100% - .5px));-webkit-mask-position:calc(var(--tui-inline) * var(--t-size) / 2);mask-position:calc(var(--tui-inline) * var(--t-size) / 2);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}[tuiPin]:where(*[data-tui-version=\"5.18.0\"])>[tuiTitle] [tuiSubtitle]{display:flex;align-items:center;gap:.125rem;font:var(--tui-typography-ui-2xs);color:var(--tui-text-secondary)}[tuiPin]:where(*[data-tui-version=\"5.18.0\"])>[tuiTitle] [tuiSubtitle] tui-icon:not([tuiBadge]){font-size:.75rem}[tuiPin]:where(*[data-tui-version=\"5.18.0\"]):has(:checked){--t-size: calc(3.5rem * var(--t-scale));font:var(--tui-typography-body-l);font-weight:700;grid-template-columns:var(--t-size) 0fr;margin-block-start:-2.75rem}[tuiPin]:where(*[data-tui-version=\"5.18.0\"]):has(:checked)>img{padding:.125rem}[tuiPin]:where(*[data-tui-version=\"5.18.0\"]):has(:checked) tui-icon:not([tuiBadge]){font-size:2.125rem}[tuiPin]:where(*[data-tui-version=\"5.18.0\"]):has(:checked)>[tuiPin]{border-color:transparent}[tuiPin]:where(*[data-tui-version=\"5.18.0\"]):has(:checked)>[tuiBadge]{inset-block-start:0;inset-inline-end:0}[tuiPin]:where(*[data-tui-version=\"5.18.0\"]):has(:checked)>[tuiTitle]{pointer-events:none;opacity:0;margin:0}[tuiPin]:where(*[data-tui-version=\"5.18.0\"]):has(:checked):before{transform:scale(.99) translate(calc(var(--tui-inline) * -1 * calc(1.875rem * var(--t-scale))),calc(-1 * calc(1.875rem * var(--t-scale))));opacity:1}[tuiPin]:where(*[data-tui-version=\"5.18.0\"]):has(:checked):after{inset-block-start:calc(4.5rem * var(--t-scale));opacity:1}[tuiPin]:where(*[data-tui-version=\"5.18.0\"])._open{--t-size: calc(3.5rem * var(--t-scale));font:var(--tui-typography-body-l);font-weight:700;grid-template-columns:var(--t-size) 0fr;margin-block-start:-2.75rem}[tuiPin]:where(*[data-tui-version=\"5.18.0\"])._open>img{padding:.125rem}[tuiPin]:where(*[data-tui-version=\"5.18.0\"])._open tui-icon:not([tuiBadge]){font-size:2.125rem}[tuiPin]:where(*[data-tui-version=\"5.18.0\"])._open>[tuiPin]{border-color:transparent}[tuiPin]:where(*[data-tui-version=\"5.18.0\"])._open>[tuiBadge]{inset-block-start:0;inset-inline-end:0}[tuiPin]:where(*[data-tui-version=\"5.18.0\"])._open>[tuiTitle]{pointer-events:none;opacity:0;margin:0}[tuiPin]:where(*[data-tui-version=\"5.18.0\"])._open:before{transform:scale(.99) translate(calc(var(--tui-inline) * -1 * calc(1.875rem * var(--t-scale))),calc(-1 * calc(1.875rem * var(--t-scale))));opacity:1}[tuiPin]:where(*[data-tui-version=\"5.18.0\"])._open:after{inset-block-start:calc(4.5rem * var(--t-scale));opacity:1}[tuiPin]:where(*[data-tui-version=\"5.18.0\"]):before{transition-property:transform,opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);content:\"\";position:absolute;z-index:-1;inset-block:50% calc(-.625rem * var(--t-scale));inset-inline:50% calc(-.25rem * var(--t-scale));box-sizing:border-box;border-width:calc(2.2rem * var(--t-scale)) calc(1.875rem * var(--t-scale));border-style:solid;border-color:inherit;opacity:0;transform:scale(.57) translate(calc(var(--tui-inline) * -1 * calc(1.875rem * var(--t-scale))),calc(-1 * calc(1.875rem * var(--t-scale))));transform-origin:top var(--tui-inline-start);pointer-events:none;-webkit-mask-image:url('data:image/svg+xml,<svg width=\"60\" height=\"66\" viewBox=\"0 0 60 66\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 30.0917C0 13.4726 13.4313 0 30.0002 0C46.5687 0 60 13.4726 60 30.0917C60 44.2105 50.4927 56.0529 37.4162 59.2986C32.5552 60.5551 31.0408 65.275 31.0408 65.275C30.8892 65.697 30.4909 66 30.0183 66C29.5453 66 29.147 65.697 28.9938 65.275C28.9938 65.275 27.481 60.5551 22.6199 59.2986C9.46433 56.0206 0 43.5901 0 30.0917ZM30 57.75C45.3259 57.75 57.75 45.3259 57.75 30C57.75 14.6741 45.3259 2.25 30 2.25C14.6741 2.25 2.25 14.6741 2.25 30C2.25 45.3259 14.6741 57.75 30 57.75Z\" /></svg>');mask-image:url('data:image/svg+xml,<svg width=\"60\" height=\"66\" viewBox=\"0 0 60 66\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 30.0917C0 13.4726 13.4313 0 30.0002 0C46.5687 0 60 13.4726 60 30.0917C60 44.2105 50.4927 56.0529 37.4162 59.2986C32.5552 60.5551 31.0408 65.275 31.0408 65.275C30.8892 65.697 30.4909 66 30.0183 66C29.5453 66 29.147 65.697 28.9938 65.275C28.9938 65.275 27.481 60.5551 22.6199 59.2986C9.46433 56.0206 0 43.5901 0 30.0917ZM30 57.75C45.3259 57.75 57.75 45.3259 57.75 30C57.75 14.6741 45.3259 2.25 30 2.25C14.6741 2.25 2.25 14.6741 2.25 30C2.25 45.3259 14.6741 57.75 30 57.75Z\" /></svg>');-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100%;mask-size:100%}[tuiPin]:where(*[data-tui-version=\"5.18.0\"]):after{transition-property:inset-block-start,opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);content:\"\";position:absolute;inset-block-start:50%;inset-inline-start:50%;border:.1875rem solid currentColor;border-color:inherit;border-radius:100%;box-sizing:border-box;box-shadow:inherit;transform:translate(calc(var(--tui-inline) * -50%),-50%);opacity:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
10
10
|
}
|
|
11
11
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: Styles, decorators: [{
|
|
12
12
|
type: Component,
|
|
13
|
-
args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: `tui-pin-${TUI_VERSION}`, styles: ["[tuiPin]:where(*[data-tui-version=\"5.
|
|
13
|
+
args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: `tui-pin-${TUI_VERSION}`, styles: ["[tuiPin]:where(*[data-tui-version=\"5.18.0\"]){--t-scale: calc(1 + (var(--tui-font-scale) - 1) / 2);--t-size: calc(2rem * var(--t-scale));transition-property:min-inline-size,grid-template-columns,block-size,border,margin,font;transition-duration:calc(var(--tui-duration) / 2);transition-timing-function:var(--tui-curve-productive-standard);-webkit-appearance:none;appearance:none;padding:0;border:0;background:none;font:inherit;line-height:inherit;text-decoration:none;position:relative;display:grid;isolation:isolate;align-items:center;grid-template-rows:100%;grid-template-columns:var(--t-size) 1fr;min-inline-size:var(--t-size);max-inline-size:calc(11.25rem * var(--t-scale));block-size:var(--t-size);text-align:center;border-radius:100rem;font:var(--tui-typography-ui-xs);font-weight:700;box-sizing:border-box;color:var(--tui-text-primary-on-accent-2);background:var(--tui-background-accent-2);box-shadow:0 0 0 calc(.125rem * var(--t-scale)) var(--tui-background-elevation-1);border:0 solid var(--tui-background-accent-2);transform:translate(calc(var(--tui-inline) * -50%),-50%)}[tuiPin]:where(*[data-tui-version=\"5.18.0\"]):is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled){cursor:pointer}[tuiPin]:where(*[data-tui-version=\"5.18.0\"]):empty{--t-size: calc(.75rem * var(--t-scale))}[tuiPin]:where(*[data-tui-version=\"5.18.0\"]):empty:before{display:none}[tuiPin]:where(*[data-tui-version=\"5.18.0\"]):has([tuiPin]){border-color:currentColor;background:var(--tui-background-elevation-1)}[tuiPin]:where(*[data-tui-version=\"5.18.0\"])>*,[tuiPin]:where(*[data-tui-version=\"5.18.0\"]):before,[tuiPin]:where(*[data-tui-version=\"5.18.0\"]):after{transition-duration:inherit!important}[tuiPin]:where(*[data-tui-version=\"5.18.0\"])>input{position:absolute;inset-block-start:0;inset-inline-start:0;inline-size:100%;block-size:100%;-webkit-appearance:none;appearance:none;border-radius:100%}[tuiPin]:where(*[data-tui-version=\"5.18.0\"])>img{max-block-size:100%;box-sizing:border-box;border-radius:100%;background:var(--tui-background-elevation-1)}[tuiPin]:where(*[data-tui-version=\"5.18.0\"])>tui-icon:not([tuiBadge]){transition-property:inline-size,font-size;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);font-size:1.25rem;block-size:100%;inline-size:100%;border-radius:100%}[tuiPin]:where(*[data-tui-version=\"5.18.0\"])>tui-icon:not([tuiBadge]):before{transition-property:font-size;transition-duration:inherit;transition-timing-function:var(--tui-curve-productive-standard)}[tuiPin]:where(*[data-tui-version=\"5.18.0\"])>[tuiPin]{color:inherit;border:.125rem solid;font:inherit;background:none;transform:none;box-shadow:none;grid-template-columns:100% 0fr}[tuiPin]:where(*[data-tui-version=\"5.18.0\"])>[tuiBadge]{transition-property:inset;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);position:absolute;inset-block-start:-.25rem;inset-inline-end:-.25rem}[tuiPin]:where(*[data-tui-version=\"5.18.0\"])>[tuiTitle]{transition-property:opacity,margin;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);position:static;font:var(--tui-typography-ui-xs);font-weight:700;color:var(--tui-text-primary);margin-inline:.5rem .75rem;gap:.125rem;white-space:nowrap}[tuiPin]:where(*[data-tui-version=\"5.18.0\"])>[tuiTitle]:before{transition-property:mask-position;transition-duration:inherit;transition-timing-function:var(--tui-curve-productive-standard);content:\"\";position:absolute;inset:-1px 0;z-index:-1;inset-inline-end:-1px;background:var(--tui-background-elevation-1);border-radius:100rem;-webkit-mask-image:radial-gradient(circle closest-corner at var(--tui-inline-start) center,transparent calc(100% - 1px),black calc(100% - .5px));mask-image:radial-gradient(circle closest-corner at var(--tui-inline-start) center,transparent calc(100% - 1px),black calc(100% - .5px));-webkit-mask-position:calc(var(--tui-inline) * var(--t-size) / 2);mask-position:calc(var(--tui-inline) * var(--t-size) / 2);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}[tuiPin]:where(*[data-tui-version=\"5.18.0\"])>[tuiTitle] [tuiSubtitle]{display:flex;align-items:center;gap:.125rem;font:var(--tui-typography-ui-2xs);color:var(--tui-text-secondary)}[tuiPin]:where(*[data-tui-version=\"5.18.0\"])>[tuiTitle] [tuiSubtitle] tui-icon:not([tuiBadge]){font-size:.75rem}[tuiPin]:where(*[data-tui-version=\"5.18.0\"]):has(:checked){--t-size: calc(3.5rem * var(--t-scale));font:var(--tui-typography-body-l);font-weight:700;grid-template-columns:var(--t-size) 0fr;margin-block-start:-2.75rem}[tuiPin]:where(*[data-tui-version=\"5.18.0\"]):has(:checked)>img{padding:.125rem}[tuiPin]:where(*[data-tui-version=\"5.18.0\"]):has(:checked) tui-icon:not([tuiBadge]){font-size:2.125rem}[tuiPin]:where(*[data-tui-version=\"5.18.0\"]):has(:checked)>[tuiPin]{border-color:transparent}[tuiPin]:where(*[data-tui-version=\"5.18.0\"]):has(:checked)>[tuiBadge]{inset-block-start:0;inset-inline-end:0}[tuiPin]:where(*[data-tui-version=\"5.18.0\"]):has(:checked)>[tuiTitle]{pointer-events:none;opacity:0;margin:0}[tuiPin]:where(*[data-tui-version=\"5.18.0\"]):has(:checked):before{transform:scale(.99) translate(calc(var(--tui-inline) * -1 * calc(1.875rem * var(--t-scale))),calc(-1 * calc(1.875rem * var(--t-scale))));opacity:1}[tuiPin]:where(*[data-tui-version=\"5.18.0\"]):has(:checked):after{inset-block-start:calc(4.5rem * var(--t-scale));opacity:1}[tuiPin]:where(*[data-tui-version=\"5.18.0\"])._open{--t-size: calc(3.5rem * var(--t-scale));font:var(--tui-typography-body-l);font-weight:700;grid-template-columns:var(--t-size) 0fr;margin-block-start:-2.75rem}[tuiPin]:where(*[data-tui-version=\"5.18.0\"])._open>img{padding:.125rem}[tuiPin]:where(*[data-tui-version=\"5.18.0\"])._open tui-icon:not([tuiBadge]){font-size:2.125rem}[tuiPin]:where(*[data-tui-version=\"5.18.0\"])._open>[tuiPin]{border-color:transparent}[tuiPin]:where(*[data-tui-version=\"5.18.0\"])._open>[tuiBadge]{inset-block-start:0;inset-inline-end:0}[tuiPin]:where(*[data-tui-version=\"5.18.0\"])._open>[tuiTitle]{pointer-events:none;opacity:0;margin:0}[tuiPin]:where(*[data-tui-version=\"5.18.0\"])._open:before{transform:scale(.99) translate(calc(var(--tui-inline) * -1 * calc(1.875rem * var(--t-scale))),calc(-1 * calc(1.875rem * var(--t-scale))));opacity:1}[tuiPin]:where(*[data-tui-version=\"5.18.0\"])._open:after{inset-block-start:calc(4.5rem * var(--t-scale));opacity:1}[tuiPin]:where(*[data-tui-version=\"5.18.0\"]):before{transition-property:transform,opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);content:\"\";position:absolute;z-index:-1;inset-block:50% calc(-.625rem * var(--t-scale));inset-inline:50% calc(-.25rem * var(--t-scale));box-sizing:border-box;border-width:calc(2.2rem * var(--t-scale)) calc(1.875rem * var(--t-scale));border-style:solid;border-color:inherit;opacity:0;transform:scale(.57) translate(calc(var(--tui-inline) * -1 * calc(1.875rem * var(--t-scale))),calc(-1 * calc(1.875rem * var(--t-scale))));transform-origin:top var(--tui-inline-start);pointer-events:none;-webkit-mask-image:url('data:image/svg+xml,<svg width=\"60\" height=\"66\" viewBox=\"0 0 60 66\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 30.0917C0 13.4726 13.4313 0 30.0002 0C46.5687 0 60 13.4726 60 30.0917C60 44.2105 50.4927 56.0529 37.4162 59.2986C32.5552 60.5551 31.0408 65.275 31.0408 65.275C30.8892 65.697 30.4909 66 30.0183 66C29.5453 66 29.147 65.697 28.9938 65.275C28.9938 65.275 27.481 60.5551 22.6199 59.2986C9.46433 56.0206 0 43.5901 0 30.0917ZM30 57.75C45.3259 57.75 57.75 45.3259 57.75 30C57.75 14.6741 45.3259 2.25 30 2.25C14.6741 2.25 2.25 14.6741 2.25 30C2.25 45.3259 14.6741 57.75 30 57.75Z\" /></svg>');mask-image:url('data:image/svg+xml,<svg width=\"60\" height=\"66\" viewBox=\"0 0 60 66\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 30.0917C0 13.4726 13.4313 0 30.0002 0C46.5687 0 60 13.4726 60 30.0917C60 44.2105 50.4927 56.0529 37.4162 59.2986C32.5552 60.5551 31.0408 65.275 31.0408 65.275C30.8892 65.697 30.4909 66 30.0183 66C29.5453 66 29.147 65.697 28.9938 65.275C28.9938 65.275 27.481 60.5551 22.6199 59.2986C9.46433 56.0206 0 43.5901 0 30.0917ZM30 57.75C45.3259 57.75 57.75 45.3259 57.75 30C57.75 14.6741 45.3259 2.25 30 2.25C14.6741 2.25 2.25 14.6741 2.25 30C2.25 45.3259 14.6741 57.75 30 57.75Z\" /></svg>');-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100%;mask-size:100%}[tuiPin]:where(*[data-tui-version=\"5.18.0\"]):after{transition-property:inset-block-start,opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);content:\"\";position:absolute;inset-block-start:50%;inset-inline-start:50%;border:.1875rem solid currentColor;border-color:inherit;border-radius:100%;box-sizing:border-box;box-shadow:inherit;transform:translate(calc(var(--tui-inline) * -50%),-50%);opacity:0}\n"] }]
|
|
14
14
|
}] });
|
|
15
15
|
class TuiPin {
|
|
16
16
|
constructor() {
|
|
@@ -18,7 +18,7 @@ class TuiPin {
|
|
|
18
18
|
this.open = input('', { alias: 'tuiPin' });
|
|
19
19
|
}
|
|
20
20
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiPin, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
21
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.25", type: TuiPin, isStandalone: true, selector: "[tuiPin]", inputs: { open: { classPropertyName: "open", publicName: "tuiPin", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-tui-version": "5.
|
|
21
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.25", type: TuiPin, isStandalone: true, selector: "[tuiPin]", inputs: { open: { classPropertyName: "open", publicName: "tuiPin", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-tui-version": "5.18.0", "tuiPin": "" }, properties: { "class._open": "open()" } }, providers: [tuiBadgeOptionsProvider({ appearance: 'primary', size: 's' })], ngImport: i0 }); }
|
|
22
22
|
}
|
|
23
23
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiPin, decorators: [{
|
|
24
24
|
type: Directive,
|