@taiga-ui/kit 5.8.0-canary.fac3204 → 5.9.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/files/input-files/input-files.directive.d.ts +0 -1
- package/components/index.d.ts +1 -0
- package/components/pincode/index.d.ts +3 -0
- package/components/pincode/pincode-content.component.d.ts +7 -0
- package/components/pincode/pincode.component.d.ts +23 -0
- package/components/pincode/pincode.d.ts +4 -0
- package/fesm2022/taiga-ui-kit-components-accordion.mjs +2 -2
- 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-avatar.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-badge.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-badge.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-block.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-block.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-button-loading.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-calendar-month.mjs.map +1 -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-chip.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-comment.mjs +3 -3
- package/fesm2022/taiga-ui-kit-components-comment.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-compass.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-compass.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-confirm.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-copy.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-copy.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-data-list-wrapper.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-files.mjs +6 -7
- package/fesm2022/taiga-ui-kit-components-files.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-filter.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-fullscreen.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-chip.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-color.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-input-color.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-date-multi.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-date-time.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-input-date-time.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-date.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-input-date.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-inline.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-input-inline.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-month.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-input-month.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-number.mjs +3 -3
- package/fesm2022/taiga-ui-kit-components-input-number.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-phone-international.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-input-phone-international.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-phone.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-slider.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-input-slider.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-time.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-input-time.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-items-with-more.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-like.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-like.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-line-clamp.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-message.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-message.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-multi-select.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-pin.mjs +3 -3
- package/fesm2022/taiga-ui-kit-components-pin.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-pincode.mjs +125 -0
- package/fesm2022/taiga-ui-kit-components-pincode.mjs.map +1 -0
- package/fesm2022/taiga-ui-kit-components-preview.mjs +3 -3
- package/fesm2022/taiga-ui-kit-components-preview.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-progress.mjs +10 -10
- package/fesm2022/taiga-ui-kit-components-progress.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-pulse.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-push.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-radio-list.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-radio-list.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-range.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-rating.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-segmented.mjs +3 -3
- package/fesm2022/taiga-ui-kit-components-segmented.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-select.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-shrink-wrap.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-shrink-wrap.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-status.mjs +3 -3
- package/fesm2022/taiga-ui-kit-components-status.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-stepper.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-switch.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-switch.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-tabs.mjs +3 -3
- package/fesm2022/taiga-ui-kit-components-tabs.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-textarea.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-tiles.mjs +4 -4
- package/fesm2022/taiga-ui-kit-components-tiles.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-timeline.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-toast.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-toast.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-tree.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components.mjs +1 -0
- package/fesm2022/taiga-ui-kit-components.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-directives-appearance-proxy.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-directives-button-group.mjs +3 -3
- package/fesm2022/taiga-ui-kit-directives-button-group.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-directives-button-select.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-directives-chevron.mjs +2 -2
- package/fesm2022/taiga-ui-kit-directives-chevron.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-directives-connected.mjs +3 -3
- package/fesm2022/taiga-ui-kit-directives-connected.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-directives-fade.mjs +3 -3
- package/fesm2022/taiga-ui-kit-directives-fade.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-directives-password.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-directives-sensitive.mjs +3 -3
- package/fesm2022/taiga-ui-kit-directives-sensitive.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-directives-shimmer.mjs +2 -2
- package/fesm2022/taiga-ui-kit-directives-shimmer.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-directives-skeleton.mjs +3 -3
- package/fesm2022/taiga-ui-kit-directives-skeleton.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-directives-tooltip.mjs +2 -2
- package/fesm2022/taiga-ui-kit-directives-tooltip.mjs.map +1 -1
- package/package.json +17 -13
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { TuiLabel } from '@taiga-ui/core/components/label';
|
|
2
|
+
import * as i2 from '@taiga-ui/core/components/textfield';
|
|
3
|
+
import { tuiAsTextfieldContent, TuiTextfieldContent, TuiTextfieldComponent, TuiTextfieldOptionsDirective } from '@taiga-ui/core/components/textfield';
|
|
4
|
+
import * as i0 from '@angular/core';
|
|
5
|
+
import { inject, ChangeDetectionStrategy, ViewEncapsulation, Component, signal, input, output, computed, effect, Directive } from '@angular/core';
|
|
6
|
+
import * as i1 from '@maskito/angular';
|
|
7
|
+
import { MaskitoDirective } from '@maskito/angular';
|
|
8
|
+
import { maskitoCaretGuard } from '@maskito/kit';
|
|
9
|
+
import { TuiControl } from '@taiga-ui/cdk/classes';
|
|
10
|
+
import { tuiFallbackValueProvider } from '@taiga-ui/cdk/tokens';
|
|
11
|
+
import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
|
|
12
|
+
import { tuiFocusedIn } from '@taiga-ui/cdk/utils/focus';
|
|
13
|
+
import { tuiIsPresent } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
14
|
+
import { tuiMaskito } from '@taiga-ui/kit/utils';
|
|
15
|
+
|
|
16
|
+
class TuiPincodeContent {
|
|
17
|
+
constructor() {
|
|
18
|
+
this.pincode = inject(TuiPincodeComponent);
|
|
19
|
+
}
|
|
20
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TuiPincodeContent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
21
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: TuiPincodeContent, isStandalone: true, selector: "tui-pincode-content", host: { attributes: { "aria-hidden": "true" }, listeners: { "animationend": "pincode.onAnimationEnd($event)", "animationstart": "pincode.onAnimationStart($event)" }, properties: { "style.--t-length": "pincode.maxLength()" } }, ngImport: i0, template: "@for (_ of '-'.repeat(pincode.maxLength()); track $index) {\n <span\n class=\"t-item\"\n [class.t-item_filled]=\"pincode.value()[$index]\"\n [class.t-item_focus]=\"pincode.isFocused($index)\"\n [style.--t-index]=\"$index\"\n (pointerdown.prevent)=\"pincode.el.focus()\"\n >\n <span class=\"t-dot t-dot_placeholder\"></span>\n <span class=\"t-dot t-dot_value\"></span>\n <span class=\"t-value\">{{ pincode.el.type === 'password' ? '' : pincode.value()[$index] }}</span>\n </span>\n}\n", styles: ["tui-textfield:has(input[tuiPincode]){inline-size:max-content}input[tuiPincode]{position:absolute;inset:0;color:transparent;background:transparent;border:none;outline:none;caret-color:transparent;cursor:text}input[tuiPincode]::selection{background:transparent}input[tuiPincode]::placeholder{color:transparent!important}input[tuiPincode]+.t-content{--t-pitch: 2.625rem;gap:0;margin-inline:auto;cursor:text}input[tuiPincode]+.t-content [tuiButtonX]{display:none}input[tuiPincode]+.t-content tui-pincode-content{display:flex;align-items:center;justify-content:center;gap:1.25rem;block-size:100%}input[tuiPincode]+.t-content .t-item{--t-duration: min(var(--tui-duration), .15s);--t-stagger: calc(var(--t-duration) * 2 / 3);--t-animation-delay: calc(var(--t-index) * var(--t-stagger));--t-animation-cycle: calc(var(--t-duration) * 14 / 3 + (var(--t-length) - 1) * var(--t-stagger));--t-offset: calc(var(--t-index) - (var(--t-length) - 1) / 2);--t-collapse-start: calc(var(--t-animation-cycle) + var(--t-duration) * 4 / 3);--t-collapse-delay: calc(var(--t-collapse-start) + var(--t-duration) * 14 / 3);position:relative;flex:none;inline-size:1.375rem;block-size:2.5rem;cursor:text}input[tuiPincode]+.t-content .t-value,input[tuiPincode]+.t-content .t-dot{position:absolute;inset-block-start:50%;inset-inline-start:50%;translate:-50% -50%;scale:0;transition:color calc(var(--t-duration) * 4 / 3) var(--tui-curve-productive-standard),background-color calc(var(--t-duration) * 4 / 3) var(--tui-curve-productive-standard)}input[tuiPincode]+.t-content .t-value{color:var(--tui-text-primary);font-size:2.25rem;font-weight:500;line-height:2.5rem;letter-spacing:0}input[tuiPincode]+.t-content .t-dot{inline-size:1rem;block-size:1rem;background:var(--tui-background-neutral-2);border-radius:50%}input[tuiPincode]+.t-content .t-item:not(.t-item_filled) .t-dot_placeholder{scale:1}input[tuiPincode]+.t-content .t-item_focus:not(.t-item_filled):before{content:\"\";position:absolute;inset-block-start:50%;inset-inline-start:50%;inline-size:.125rem;block-size:2.25rem;border-radius:.0625rem;background:var(--tui-text-primary);translate:-50% -50%;animation:tuiFade 1s steps(2,jump-none) infinite reverse}input[tuiPincode]+.t-content .t-item_focus:not(.t-item_filled) .t-dot_placeholder,input[tuiPincode]+.t-content .t-item_focus:not(.t-item_filled) .t-dot_value{scale:0}input[tuiPincode]:not([type=password])+.t-content .t-item_filled .t-value{scale:1}input[tuiPincode][type=password]+.t-content .t-item_filled .t-dot_value{scale:1;background:var(--tui-text-action)}input[tuiPincode][data-state=pending]:not([type=password])+.t-content .t-item_filled .t-value,input[tuiPincode][data-state=pending][type=password]+.t-content .t-item_filled .t-dot_value{animation:tuiPincodeWave var(--t-animation-cycle) linear infinite,tuiPincodeWavePos var(--t-animation-cycle) linear infinite;animation-delay:calc(var(--t-animation-cycle) / 2 + var(--t-animation-delay))}input[tuiPincode][data-state=invalid]+.t-content .t-value{color:var(--tui-text-negative)}input[tuiPincode][data-state=invalid]+.t-content .t-item_filled .t-dot_value{background:var(--tui-text-negative)}input[tuiPincode][data-state=invalid]+.t-content .t-item{animation:tuiPincodeShake calc(var(--t-duration) * 10 / 3) var(--tui-curve-productive-standard)}input[tuiPincode][data-state=invalid]+.t-content .t-item_filled .t-dot_placeholder{scale:1;animation:tuiPincodeScale var(--t-duration) var(--tui-curve-expressive-standard) max(calc(var(--t-animation-cycle) + var(--t-duration)),1s) both}input[tuiPincode][data-state=invalid]:not([type=password])+.t-content .t-item_filled .t-value,input[tuiPincode][data-state=invalid][type=password]+.t-content .t-item_filled .t-dot_value{animation:tuiScale calc(var(--t-duration) * 4 / 3) var(--tui-curve-expressive-exit) max(var(--t-animation-cycle),1s) reverse forwards}input[tuiPincode][data-state=success]+.t-content .t-value{color:var(--tui-text-action)}input[tuiPincode][data-state=success]+.t-content .t-item_filled{animation:tuiPincodeItemSpread calc(var(--t-duration) * 14 / 3) var(--tui-curve-productive-entrance) var(--t-collapse-start) forwards}input[tuiPincode][data-state=success]+.t-content .t-item_filled .t-dot_value{background:var(--tui-text-action)}input[tuiPincode][data-state=success]:not([type=password])+.t-content .t-item_filled .t-value{animation:tuiPincodeWave var(--t-animation-cycle) linear 1 calc(var(--t-animation-cycle) / 2 + var(--t-animation-delay)),tuiPincodeWavePos var(--t-animation-cycle) linear 1 calc(var(--t-animation-cycle) / 2 + var(--t-animation-delay)),tuiScale calc(var(--t-duration) * 4 / 3) var(--tui-curve-expressive-exit) var(--t-collapse-start) reverse forwards}input[tuiPincode][data-state=success]:not([type=password])+.t-content .t-item_filled .t-dot_value{animation:tuiPincodeDotIn calc(var(--t-duration) * 2) var(--tui-curve-productive-exit) max(var(--t-collapse-start),.1ms) forwards,tuiPincodeDotCollapsePos calc(var(--t-duration) * 2) var(--tui-curve-expressive-exit) max(var(--t-collapse-delay),.1ms) forwards,tuiPincodeDotCollapseScale calc(var(--t-duration) * 2) var(--tui-curve-productive-exit) max(var(--t-collapse-delay),.1ms) forwards,tuiFade calc(var(--t-duration) / 3) linear calc(var(--t-collapse-delay) + var(--t-duration) * 5 / 3) reverse forwards}input[tuiPincode][data-state=success][type=password]+.t-content .t-item_filled .t-dot_value{animation:tuiPincodeWave var(--t-animation-cycle) linear 1 calc(var(--t-animation-cycle) / 2 + var(--t-animation-delay)),tuiPincodeWavePos var(--t-animation-cycle) linear 1 calc(var(--t-animation-cycle) / 2 + var(--t-animation-delay)),tuiPincodeDotIn calc(var(--t-duration) * 2) var(--tui-curve-productive-exit) max(var(--t-collapse-start),.1ms) forwards,tuiPincodeDotCollapsePos calc(var(--t-duration) * 2) var(--tui-curve-expressive-exit) max(var(--t-collapse-delay),.1ms) forwards,tuiPincodeDotCollapseScale calc(var(--t-duration) * 2) var(--tui-curve-productive-exit) max(var(--t-collapse-delay),.1ms) forwards,tuiFade calc(var(--t-duration) / 3) linear calc(var(--t-collapse-delay) + var(--t-duration) * 5 / 3) reverse forwards}[data-platform]:not([data-platform=web]) input[tuiPincode]+.t-content{--t-pitch: 2.5rem}[data-platform]:not([data-platform=web]) input[tuiPincode]+.t-content .t-item{inline-size:1.25rem;block-size:2.25rem}[data-platform]:not([data-platform=web]) input[tuiPincode]+.t-content .t-value,[data-platform]:not([data-platform=web]) input[tuiPincode]+.t-content .t-dot{transition:translate calc(var(--t-duration) * 2) var(--tui-curve-expressive-entrance),color calc(var(--t-duration) * 4 / 3) var(--tui-curve-productive-standard),background-color calc(var(--t-duration) * 4 / 3) var(--tui-curve-productive-standard)}[data-platform]:not([data-platform=web]) input[tuiPincode]+.t-content .t-value,[data-platform]:not([data-platform=web]) input[tuiPincode]+.t-content .t-dot_value{transition:scale calc(var(--t-duration) * 2) var(--tui-curve-expressive-exit),color calc(var(--t-duration) * 4 / 3) var(--tui-curve-productive-standard),background-color calc(var(--t-duration) * 4 / 3) var(--tui-curve-productive-standard)}[data-platform]:not([data-platform=web]) input[tuiPincode]+.t-content .t-value{font-size:1.75rem;font-weight:700;line-height:1}[data-platform]:not([data-platform=web]) input[tuiPincode]+.t-content .t-dot_placeholder{transition:scale calc(var(--t-duration) * 2) var(--tui-curve-expressive-exit)}[data-platform]:not([data-platform=web]) input[tuiPincode]+.t-content .t-item:not(.t-item_filled) .t-dot_placeholder{transition:scale var(--t-duration) var(--tui-curve-expressive-standard) var(--t-duration)}[data-platform]:not([data-platform=web]) input[tuiPincode]+.t-content .t-item_focus:not(.t-item_filled):before{display:none}[data-platform]:not([data-platform=web]) input[tuiPincode]+.t-content .t-item_focus:not(.t-item_filled) .t-dot_placeholder{scale:1}[data-platform]:not([data-platform=web]) input[tuiPincode]:not([data-state]):not([type=password]):not(._paste)+.t-content .t-item_filled .t-value,[data-platform]:not([data-platform=web]) input[tuiPincode]:not([data-state])[type=password]:not(._paste)+.t-content .t-item_filled .t-dot_value{animation:tuiPincodeInput calc(var(--t-duration) * 2) cubic-bezier(.34,1.56,.64,1)}[data-platform]:not([data-platform=web]) input[tuiPincode]:not([data-state])[type=password]+.t-content .t-item_filled .t-dot_value{transition:background-color calc(var(--t-duration) * 4 / 3) var(--tui-curve-expressive-standard)}[data-platform]:not([data-platform=web]) input[tuiPincode][data-state=pending]:not(._paste):not([type=password])+.t-content .t-item_filled:last-of-type .t-value,[data-platform]:not([data-platform=web]) input[tuiPincode][data-state=pending]:not(._paste)[type=password]+.t-content .t-item_filled:last-of-type .t-dot_value{animation:tuiPincodeInput calc(var(--t-duration) * 2) cubic-bezier(.34,1.56,.64,1),tuiPincodeWave var(--t-animation-cycle) linear infinite,tuiPincodeWavePos var(--t-animation-cycle) linear infinite;animation-delay:0ms,calc(var(--t-animation-cycle) / 2 + var(--t-animation-delay)),calc(var(--t-animation-cycle) / 2 + var(--t-animation-delay))}[data-platform]:not([data-platform=web]) input[tuiPincode][data-state=pending]._paste:not([type=password])+.t-content .t-item_filled .t-value,[data-platform]:not([data-platform=web]) input[tuiPincode][data-state=pending]._paste[type=password]+.t-content .t-item_filled .t-dot_value{animation:tuiPincodeInput calc(var(--t-duration) * 2) cubic-bezier(.34,1.56,.64,1),tuiPincodeWave var(--t-animation-cycle) linear infinite,tuiPincodeWavePos var(--t-animation-cycle) linear infinite;animation-delay:0ms,calc(var(--t-animation-cycle) / 2 + var(--t-animation-delay)),calc(var(--t-animation-cycle) / 2 + var(--t-animation-delay))}[data-platform]:not([data-platform=web]) input[tuiPincode][type=password]+.t-content .t-item:not(.t-item_filled) .t-dot_value{transition:none}@keyframes tuiPincodeItemSpread{0%{translate:0}to{translate:calc(var(--t-offset) * var(--t-pitch) / 3) 0}}@keyframes tuiPincodeDotCollapsePos{to{translate:calc(-50% - var(--t-offset) * var(--t-pitch)) -50%}}@keyframes tuiPincodeDotCollapseScale{0%{scale:1.1}to{scale:0}}@keyframes tuiPincodeDotIn{to{scale:1.1}}@keyframes tuiPincodeInput{0%{scale:0}}@keyframes tuiPincodeShake{0%,to{translate:0}20%{translate:-.125rem 0}40%{translate:.125rem 0}60%{translate:-.125rem 0}80%{translate:.125rem 0}}@keyframes tuiPincodeWave{0%{animation-timing-function:var(--tui-curve-expressive-standard);scale:1}20%{animation-timing-function:var(--tui-curve-productive-entrance);scale:1.2}50%,to{scale:1}}@keyframes tuiPincodeWavePos{0%,50%,to{translate:-50% -50%}20%{translate:-50% calc(-50% - .25rem)}}@keyframes tuiPincodeScale{0%{transform:scale(0)}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
22
|
+
}
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TuiPincodeContent, decorators: [{
|
|
24
|
+
type: Component,
|
|
25
|
+
args: [{ selector: 'tui-pincode-content', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
26
|
+
'aria-hidden': 'true',
|
|
27
|
+
'[style.--t-length]': 'pincode.maxLength()',
|
|
28
|
+
'(animationend)': 'pincode.onAnimationEnd($event)',
|
|
29
|
+
'(animationstart)': 'pincode.onAnimationStart($event)',
|
|
30
|
+
}, template: "@for (_ of '-'.repeat(pincode.maxLength()); track $index) {\n <span\n class=\"t-item\"\n [class.t-item_filled]=\"pincode.value()[$index]\"\n [class.t-item_focus]=\"pincode.isFocused($index)\"\n [style.--t-index]=\"$index\"\n (pointerdown.prevent)=\"pincode.el.focus()\"\n >\n <span class=\"t-dot t-dot_placeholder\"></span>\n <span class=\"t-dot t-dot_value\"></span>\n <span class=\"t-value\">{{ pincode.el.type === 'password' ? '' : pincode.value()[$index] }}</span>\n </span>\n}\n", styles: ["tui-textfield:has(input[tuiPincode]){inline-size:max-content}input[tuiPincode]{position:absolute;inset:0;color:transparent;background:transparent;border:none;outline:none;caret-color:transparent;cursor:text}input[tuiPincode]::selection{background:transparent}input[tuiPincode]::placeholder{color:transparent!important}input[tuiPincode]+.t-content{--t-pitch: 2.625rem;gap:0;margin-inline:auto;cursor:text}input[tuiPincode]+.t-content [tuiButtonX]{display:none}input[tuiPincode]+.t-content tui-pincode-content{display:flex;align-items:center;justify-content:center;gap:1.25rem;block-size:100%}input[tuiPincode]+.t-content .t-item{--t-duration: min(var(--tui-duration), .15s);--t-stagger: calc(var(--t-duration) * 2 / 3);--t-animation-delay: calc(var(--t-index) * var(--t-stagger));--t-animation-cycle: calc(var(--t-duration) * 14 / 3 + (var(--t-length) - 1) * var(--t-stagger));--t-offset: calc(var(--t-index) - (var(--t-length) - 1) / 2);--t-collapse-start: calc(var(--t-animation-cycle) + var(--t-duration) * 4 / 3);--t-collapse-delay: calc(var(--t-collapse-start) + var(--t-duration) * 14 / 3);position:relative;flex:none;inline-size:1.375rem;block-size:2.5rem;cursor:text}input[tuiPincode]+.t-content .t-value,input[tuiPincode]+.t-content .t-dot{position:absolute;inset-block-start:50%;inset-inline-start:50%;translate:-50% -50%;scale:0;transition:color calc(var(--t-duration) * 4 / 3) var(--tui-curve-productive-standard),background-color calc(var(--t-duration) * 4 / 3) var(--tui-curve-productive-standard)}input[tuiPincode]+.t-content .t-value{color:var(--tui-text-primary);font-size:2.25rem;font-weight:500;line-height:2.5rem;letter-spacing:0}input[tuiPincode]+.t-content .t-dot{inline-size:1rem;block-size:1rem;background:var(--tui-background-neutral-2);border-radius:50%}input[tuiPincode]+.t-content .t-item:not(.t-item_filled) .t-dot_placeholder{scale:1}input[tuiPincode]+.t-content .t-item_focus:not(.t-item_filled):before{content:\"\";position:absolute;inset-block-start:50%;inset-inline-start:50%;inline-size:.125rem;block-size:2.25rem;border-radius:.0625rem;background:var(--tui-text-primary);translate:-50% -50%;animation:tuiFade 1s steps(2,jump-none) infinite reverse}input[tuiPincode]+.t-content .t-item_focus:not(.t-item_filled) .t-dot_placeholder,input[tuiPincode]+.t-content .t-item_focus:not(.t-item_filled) .t-dot_value{scale:0}input[tuiPincode]:not([type=password])+.t-content .t-item_filled .t-value{scale:1}input[tuiPincode][type=password]+.t-content .t-item_filled .t-dot_value{scale:1;background:var(--tui-text-action)}input[tuiPincode][data-state=pending]:not([type=password])+.t-content .t-item_filled .t-value,input[tuiPincode][data-state=pending][type=password]+.t-content .t-item_filled .t-dot_value{animation:tuiPincodeWave var(--t-animation-cycle) linear infinite,tuiPincodeWavePos var(--t-animation-cycle) linear infinite;animation-delay:calc(var(--t-animation-cycle) / 2 + var(--t-animation-delay))}input[tuiPincode][data-state=invalid]+.t-content .t-value{color:var(--tui-text-negative)}input[tuiPincode][data-state=invalid]+.t-content .t-item_filled .t-dot_value{background:var(--tui-text-negative)}input[tuiPincode][data-state=invalid]+.t-content .t-item{animation:tuiPincodeShake calc(var(--t-duration) * 10 / 3) var(--tui-curve-productive-standard)}input[tuiPincode][data-state=invalid]+.t-content .t-item_filled .t-dot_placeholder{scale:1;animation:tuiPincodeScale var(--t-duration) var(--tui-curve-expressive-standard) max(calc(var(--t-animation-cycle) + var(--t-duration)),1s) both}input[tuiPincode][data-state=invalid]:not([type=password])+.t-content .t-item_filled .t-value,input[tuiPincode][data-state=invalid][type=password]+.t-content .t-item_filled .t-dot_value{animation:tuiScale calc(var(--t-duration) * 4 / 3) var(--tui-curve-expressive-exit) max(var(--t-animation-cycle),1s) reverse forwards}input[tuiPincode][data-state=success]+.t-content .t-value{color:var(--tui-text-action)}input[tuiPincode][data-state=success]+.t-content .t-item_filled{animation:tuiPincodeItemSpread calc(var(--t-duration) * 14 / 3) var(--tui-curve-productive-entrance) var(--t-collapse-start) forwards}input[tuiPincode][data-state=success]+.t-content .t-item_filled .t-dot_value{background:var(--tui-text-action)}input[tuiPincode][data-state=success]:not([type=password])+.t-content .t-item_filled .t-value{animation:tuiPincodeWave var(--t-animation-cycle) linear 1 calc(var(--t-animation-cycle) / 2 + var(--t-animation-delay)),tuiPincodeWavePos var(--t-animation-cycle) linear 1 calc(var(--t-animation-cycle) / 2 + var(--t-animation-delay)),tuiScale calc(var(--t-duration) * 4 / 3) var(--tui-curve-expressive-exit) var(--t-collapse-start) reverse forwards}input[tuiPincode][data-state=success]:not([type=password])+.t-content .t-item_filled .t-dot_value{animation:tuiPincodeDotIn calc(var(--t-duration) * 2) var(--tui-curve-productive-exit) max(var(--t-collapse-start),.1ms) forwards,tuiPincodeDotCollapsePos calc(var(--t-duration) * 2) var(--tui-curve-expressive-exit) max(var(--t-collapse-delay),.1ms) forwards,tuiPincodeDotCollapseScale calc(var(--t-duration) * 2) var(--tui-curve-productive-exit) max(var(--t-collapse-delay),.1ms) forwards,tuiFade calc(var(--t-duration) / 3) linear calc(var(--t-collapse-delay) + var(--t-duration) * 5 / 3) reverse forwards}input[tuiPincode][data-state=success][type=password]+.t-content .t-item_filled .t-dot_value{animation:tuiPincodeWave var(--t-animation-cycle) linear 1 calc(var(--t-animation-cycle) / 2 + var(--t-animation-delay)),tuiPincodeWavePos var(--t-animation-cycle) linear 1 calc(var(--t-animation-cycle) / 2 + var(--t-animation-delay)),tuiPincodeDotIn calc(var(--t-duration) * 2) var(--tui-curve-productive-exit) max(var(--t-collapse-start),.1ms) forwards,tuiPincodeDotCollapsePos calc(var(--t-duration) * 2) var(--tui-curve-expressive-exit) max(var(--t-collapse-delay),.1ms) forwards,tuiPincodeDotCollapseScale calc(var(--t-duration) * 2) var(--tui-curve-productive-exit) max(var(--t-collapse-delay),.1ms) forwards,tuiFade calc(var(--t-duration) / 3) linear calc(var(--t-collapse-delay) + var(--t-duration) * 5 / 3) reverse forwards}[data-platform]:not([data-platform=web]) input[tuiPincode]+.t-content{--t-pitch: 2.5rem}[data-platform]:not([data-platform=web]) input[tuiPincode]+.t-content .t-item{inline-size:1.25rem;block-size:2.25rem}[data-platform]:not([data-platform=web]) input[tuiPincode]+.t-content .t-value,[data-platform]:not([data-platform=web]) input[tuiPincode]+.t-content .t-dot{transition:translate calc(var(--t-duration) * 2) var(--tui-curve-expressive-entrance),color calc(var(--t-duration) * 4 / 3) var(--tui-curve-productive-standard),background-color calc(var(--t-duration) * 4 / 3) var(--tui-curve-productive-standard)}[data-platform]:not([data-platform=web]) input[tuiPincode]+.t-content .t-value,[data-platform]:not([data-platform=web]) input[tuiPincode]+.t-content .t-dot_value{transition:scale calc(var(--t-duration) * 2) var(--tui-curve-expressive-exit),color calc(var(--t-duration) * 4 / 3) var(--tui-curve-productive-standard),background-color calc(var(--t-duration) * 4 / 3) var(--tui-curve-productive-standard)}[data-platform]:not([data-platform=web]) input[tuiPincode]+.t-content .t-value{font-size:1.75rem;font-weight:700;line-height:1}[data-platform]:not([data-platform=web]) input[tuiPincode]+.t-content .t-dot_placeholder{transition:scale calc(var(--t-duration) * 2) var(--tui-curve-expressive-exit)}[data-platform]:not([data-platform=web]) input[tuiPincode]+.t-content .t-item:not(.t-item_filled) .t-dot_placeholder{transition:scale var(--t-duration) var(--tui-curve-expressive-standard) var(--t-duration)}[data-platform]:not([data-platform=web]) input[tuiPincode]+.t-content .t-item_focus:not(.t-item_filled):before{display:none}[data-platform]:not([data-platform=web]) input[tuiPincode]+.t-content .t-item_focus:not(.t-item_filled) .t-dot_placeholder{scale:1}[data-platform]:not([data-platform=web]) input[tuiPincode]:not([data-state]):not([type=password]):not(._paste)+.t-content .t-item_filled .t-value,[data-platform]:not([data-platform=web]) input[tuiPincode]:not([data-state])[type=password]:not(._paste)+.t-content .t-item_filled .t-dot_value{animation:tuiPincodeInput calc(var(--t-duration) * 2) cubic-bezier(.34,1.56,.64,1)}[data-platform]:not([data-platform=web]) input[tuiPincode]:not([data-state])[type=password]+.t-content .t-item_filled .t-dot_value{transition:background-color calc(var(--t-duration) * 4 / 3) var(--tui-curve-expressive-standard)}[data-platform]:not([data-platform=web]) input[tuiPincode][data-state=pending]:not(._paste):not([type=password])+.t-content .t-item_filled:last-of-type .t-value,[data-platform]:not([data-platform=web]) input[tuiPincode][data-state=pending]:not(._paste)[type=password]+.t-content .t-item_filled:last-of-type .t-dot_value{animation:tuiPincodeInput calc(var(--t-duration) * 2) cubic-bezier(.34,1.56,.64,1),tuiPincodeWave var(--t-animation-cycle) linear infinite,tuiPincodeWavePos var(--t-animation-cycle) linear infinite;animation-delay:0ms,calc(var(--t-animation-cycle) / 2 + var(--t-animation-delay)),calc(var(--t-animation-cycle) / 2 + var(--t-animation-delay))}[data-platform]:not([data-platform=web]) input[tuiPincode][data-state=pending]._paste:not([type=password])+.t-content .t-item_filled .t-value,[data-platform]:not([data-platform=web]) input[tuiPincode][data-state=pending]._paste[type=password]+.t-content .t-item_filled .t-dot_value{animation:tuiPincodeInput calc(var(--t-duration) * 2) cubic-bezier(.34,1.56,.64,1),tuiPincodeWave var(--t-animation-cycle) linear infinite,tuiPincodeWavePos var(--t-animation-cycle) linear infinite;animation-delay:0ms,calc(var(--t-animation-cycle) / 2 + var(--t-animation-delay)),calc(var(--t-animation-cycle) / 2 + var(--t-animation-delay))}[data-platform]:not([data-platform=web]) input[tuiPincode][type=password]+.t-content .t-item:not(.t-item_filled) .t-dot_value{transition:none}@keyframes tuiPincodeItemSpread{0%{translate:0}to{translate:calc(var(--t-offset) * var(--t-pitch) / 3) 0}}@keyframes tuiPincodeDotCollapsePos{to{translate:calc(-50% - var(--t-offset) * var(--t-pitch)) -50%}}@keyframes tuiPincodeDotCollapseScale{0%{scale:1.1}to{scale:0}}@keyframes tuiPincodeDotIn{to{scale:1.1}}@keyframes tuiPincodeInput{0%{scale:0}}@keyframes tuiPincodeShake{0%,to{translate:0}20%{translate:-.125rem 0}40%{translate:.125rem 0}60%{translate:-.125rem 0}80%{translate:.125rem 0}}@keyframes tuiPincodeWave{0%{animation-timing-function:var(--tui-curve-expressive-standard);scale:1}20%{animation-timing-function:var(--tui-curve-productive-entrance);scale:1.2}50%,to{scale:1}}@keyframes tuiPincodeWavePos{0%,50%,to{translate:-50% -50%}20%{translate:-50% calc(-50% - .25rem)}}@keyframes tuiPincodeScale{0%{transform:scale(0)}}\n"] }]
|
|
31
|
+
}] });
|
|
32
|
+
|
|
33
|
+
const ANIMATION = {
|
|
34
|
+
confirmed: 'tuiPincodeDotIn',
|
|
35
|
+
collapsed: 'tuiPincodeDotCollapseScale',
|
|
36
|
+
rejected: 'tuiPincodeScale',
|
|
37
|
+
};
|
|
38
|
+
class TuiPincodeComponent extends TuiControl {
|
|
39
|
+
constructor() {
|
|
40
|
+
super(...arguments);
|
|
41
|
+
this.phase = 0;
|
|
42
|
+
this.bounced = false;
|
|
43
|
+
this.el = tuiInjectElement();
|
|
44
|
+
this.paste = signal(false);
|
|
45
|
+
this.focused = tuiFocusedIn(this.el);
|
|
46
|
+
this.maskito = tuiMaskito({
|
|
47
|
+
mask: /^\d+$/,
|
|
48
|
+
overwriteMode: 'replace',
|
|
49
|
+
plugins: [maskitoCaretGuard((value) => [value.length, value.length])],
|
|
50
|
+
postprocessors: [(newState, initial) => (this.state() ? initial : newState)],
|
|
51
|
+
});
|
|
52
|
+
this.maxLength = input(4);
|
|
53
|
+
this.confirmed = output();
|
|
54
|
+
this.finished = output();
|
|
55
|
+
this.state = computed(() => {
|
|
56
|
+
if (tuiIsPresent(this.pseudoInvalid())) {
|
|
57
|
+
return this.pseudoInvalid() ? 'invalid' : 'success';
|
|
58
|
+
}
|
|
59
|
+
return this.value().length === this.maxLength() ? 'pending' : null;
|
|
60
|
+
});
|
|
61
|
+
this.effect = effect(() => {
|
|
62
|
+
this.bounced = false;
|
|
63
|
+
this.phase = tuiIsPresent(this.pseudoInvalid()) ? this.value().length : 0;
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
onAnimationStart({ animationName }) {
|
|
67
|
+
if (animationName === ANIMATION.confirmed && !this.bounced) {
|
|
68
|
+
this.bounced = true;
|
|
69
|
+
this.confirmed.emit();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
onAnimationEnd({ animationName }) {
|
|
73
|
+
const isCollapse = animationName === ANIMATION.collapsed;
|
|
74
|
+
const isReject = animationName === ANIMATION.rejected;
|
|
75
|
+
if ((!isReject && !isCollapse) || --this.phase) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
if (isReject) {
|
|
79
|
+
this.onChange('');
|
|
80
|
+
}
|
|
81
|
+
this.finished.emit();
|
|
82
|
+
}
|
|
83
|
+
isFocused(index) {
|
|
84
|
+
return (this.focused() &&
|
|
85
|
+
index === Math.min(this.value().length, this.maxLength() - 1));
|
|
86
|
+
}
|
|
87
|
+
onInput(value) {
|
|
88
|
+
this.paste.set(!this.value().length && value.length === this.maxLength());
|
|
89
|
+
this.onChange(value);
|
|
90
|
+
}
|
|
91
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TuiPincodeComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
92
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.21", type: TuiPincodeComponent, isStandalone: true, selector: "input[tuiPincode]", inputs: { maxLength: { classPropertyName: "maxLength", publicName: "maxLength", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { confirmed: "confirmed", finished: "finished" }, host: { attributes: { "autocomplete": "one-time-code", "inputmode": "numeric", "spellcheck": "false" }, listeners: { "input": "onInput($event.target.value)" }, properties: { "attr.data-state": "state()", "class._paste": "paste()", "maxLength": "maxLength()", "value": "value()" } }, providers: [tuiAsTextfieldContent(TuiPincodeContent), tuiFallbackValueProvider('')], usesInheritance: true, hostDirectives: [{ directive: i1.MaskitoDirective }, { directive: i2.TuiTextfieldContent }], ngImport: i0 }); }
|
|
93
|
+
}
|
|
94
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TuiPincodeComponent, decorators: [{
|
|
95
|
+
type: Directive,
|
|
96
|
+
args: [{
|
|
97
|
+
selector: 'input[tuiPincode]',
|
|
98
|
+
providers: [tuiAsTextfieldContent(TuiPincodeContent), tuiFallbackValueProvider('')],
|
|
99
|
+
hostDirectives: [MaskitoDirective, TuiTextfieldContent],
|
|
100
|
+
host: {
|
|
101
|
+
autocomplete: 'one-time-code',
|
|
102
|
+
inputmode: 'numeric',
|
|
103
|
+
spellcheck: 'false',
|
|
104
|
+
'[attr.data-state]': 'state()',
|
|
105
|
+
'[class._paste]': 'paste()',
|
|
106
|
+
'[maxLength]': 'maxLength()',
|
|
107
|
+
'[value]': 'value()',
|
|
108
|
+
'(input)': 'onInput($event.target.value)',
|
|
109
|
+
},
|
|
110
|
+
}]
|
|
111
|
+
}] });
|
|
112
|
+
|
|
113
|
+
const TuiPincode = [
|
|
114
|
+
TuiPincodeComponent,
|
|
115
|
+
TuiLabel,
|
|
116
|
+
TuiTextfieldComponent,
|
|
117
|
+
TuiTextfieldOptionsDirective,
|
|
118
|
+
];
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Generated bundle index. Do not edit.
|
|
122
|
+
*/
|
|
123
|
+
|
|
124
|
+
export { TuiPincode, TuiPincodeComponent, TuiPincodeContent };
|
|
125
|
+
//# sourceMappingURL=taiga-ui-kit-components-pincode.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"taiga-ui-kit-components-pincode.mjs","sources":["../../../projects/kit/components/pincode/pincode-content.component.ts","../../../projects/kit/components/pincode/pincode-content.template.html","../../../projects/kit/components/pincode/pincode.component.ts","../../../projects/kit/components/pincode/pincode.ts","../../../projects/kit/components/pincode/taiga-ui-kit-components-pincode.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n inject,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport {TuiPincodeComponent} from './pincode.component';\n\n@Component({\n selector: 'tui-pincode-content',\n templateUrl: './pincode-content.template.html',\n styleUrl: './pincode.style.less',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'aria-hidden': 'true',\n '[style.--t-length]': 'pincode.maxLength()',\n '(animationend)': 'pincode.onAnimationEnd($event)',\n '(animationstart)': 'pincode.onAnimationStart($event)',\n },\n})\nexport class TuiPincodeContent {\n protected readonly pincode = inject(TuiPincodeComponent);\n}\n","@for (_ of '-'.repeat(pincode.maxLength()); track $index) {\n <span\n class=\"t-item\"\n [class.t-item_filled]=\"pincode.value()[$index]\"\n [class.t-item_focus]=\"pincode.isFocused($index)\"\n [style.--t-index]=\"$index\"\n (pointerdown.prevent)=\"pincode.el.focus()\"\n >\n <span class=\"t-dot t-dot_placeholder\"></span>\n <span class=\"t-dot t-dot_value\"></span>\n <span class=\"t-value\">{{ pincode.el.type === 'password' ? '' : pincode.value()[$index] }}</span>\n </span>\n}\n","import {computed, Directive, effect, input, output, signal} from '@angular/core';\nimport {MaskitoDirective} from '@maskito/angular';\nimport {maskitoCaretGuard} from '@maskito/kit';\nimport {TuiControl} from '@taiga-ui/cdk/classes';\nimport {tuiFallbackValueProvider} from '@taiga-ui/cdk/tokens';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiFocusedIn} from '@taiga-ui/cdk/utils/focus';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n tuiAsTextfieldContent,\n TuiTextfieldContent,\n} from '@taiga-ui/core/components/textfield';\nimport {tuiMaskito} from '@taiga-ui/kit/utils';\n\nimport {TuiPincodeContent} from './pincode-content.component';\n\nconst ANIMATION = {\n confirmed: 'tuiPincodeDotIn',\n collapsed: 'tuiPincodeDotCollapseScale',\n rejected: 'tuiPincodeScale',\n} as const;\n\n@Directive({\n selector: 'input[tuiPincode]',\n providers: [tuiAsTextfieldContent(TuiPincodeContent), tuiFallbackValueProvider('')],\n hostDirectives: [MaskitoDirective, TuiTextfieldContent],\n host: {\n autocomplete: 'one-time-code',\n inputmode: 'numeric',\n spellcheck: 'false',\n '[attr.data-state]': 'state()',\n '[class._paste]': 'paste()',\n '[maxLength]': 'maxLength()',\n '[value]': 'value()',\n '(input)': 'onInput($event.target.value)',\n },\n})\nexport class TuiPincodeComponent extends TuiControl<string> {\n private phase = 0;\n private bounced = false;\n\n public readonly el = tuiInjectElement<HTMLInputElement>();\n public readonly paste = signal(false);\n public readonly focused = tuiFocusedIn(this.el);\n\n protected readonly maskito = tuiMaskito({\n mask: /^\\d+$/,\n overwriteMode: 'replace',\n plugins: [maskitoCaretGuard((value) => [value.length, value.length])],\n postprocessors: [(newState, initial) => (this.state() ? initial : newState)],\n });\n\n public readonly maxLength = input(4);\n public readonly confirmed = output();\n public readonly finished = output();\n\n protected readonly state = computed<'invalid' | 'pending' | 'success' | null>(() => {\n if (tuiIsPresent(this.pseudoInvalid())) {\n return this.pseudoInvalid() ? 'invalid' : 'success';\n }\n\n return this.value().length === this.maxLength() ? 'pending' : null;\n });\n\n protected readonly effect = effect(() => {\n this.bounced = false;\n this.phase = tuiIsPresent(this.pseudoInvalid()) ? this.value().length : 0;\n });\n\n public onAnimationStart({animationName}: AnimationEvent): void {\n if (animationName === ANIMATION.confirmed && !this.bounced) {\n this.bounced = true;\n this.confirmed.emit();\n }\n }\n\n public onAnimationEnd({animationName}: AnimationEvent): void {\n const isCollapse = animationName === ANIMATION.collapsed;\n const isReject = animationName === ANIMATION.rejected;\n\n if ((!isReject && !isCollapse) || --this.phase) {\n return;\n }\n\n if (isReject) {\n this.onChange('');\n }\n\n this.finished.emit();\n }\n\n public isFocused(index: number): boolean {\n return (\n this.focused() &&\n index === Math.min(this.value().length, this.maxLength() - 1)\n );\n }\n\n protected onInput(value: string): void {\n this.paste.set(!this.value().length && value.length === this.maxLength());\n this.onChange(value);\n }\n}\n","import {TuiLabel} from '@taiga-ui/core/components/label';\nimport {\n TuiTextfieldComponent,\n TuiTextfieldOptionsDirective,\n} from '@taiga-ui/core/components/textfield';\n\nimport {TuiPincodeComponent} from './pincode.component';\n\nexport const TuiPincode = [\n TuiPincodeComponent,\n TuiLabel,\n TuiTextfieldComponent,\n TuiTextfieldOptionsDirective,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -46,11 +46,11 @@ class TuiPreviewDialog {
|
|
|
46
46
|
this.context = injectContext();
|
|
47
47
|
}
|
|
48
48
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TuiPreviewDialog, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
49
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.21", type: TuiPreviewDialog, isStandalone: true, selector: "tui-preview-dialog", host: { attributes: { "data-tui-version": "5.
|
|
49
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.21", type: TuiPreviewDialog, isStandalone: true, selector: "tui-preview-dialog", host: { attributes: { "data-tui-version": "5.9.0" }, listeners: { "document:keydown.esc.prevent": "context.$implicit.complete()" } }, hostDirectives: [{ directive: i1.TuiAnimated }], ngImport: i0, template: `
|
|
50
50
|
<ng-container *polymorpheusOutlet="context.content as text; context: context">
|
|
51
51
|
{{ text }}
|
|
52
52
|
</ng-container>
|
|
53
|
-
`, isInline: true, styles: ["tui-preview-dialog:where(*[data-tui-version=\"5.
|
|
53
|
+
`, isInline: true, styles: ["tui-preview-dialog:where(*[data-tui-version=\"5.9.0\"]){inline-size:100%;block-size:100%;overflow:hidden}tui-preview-dialog:where(*[data-tui-version=\"5.9.0\"]).tui-enter,tui-preview-dialog:where(*[data-tui-version=\"5.9.0\"]).tui-leave{animation-name:tuiFade,tuiSlide}[tuiAppearance][data-appearance=preview-action]:where(*[data-tui-version=\"5.9.0\"]){background:#686868f5;color:#fff}@media(hover:hover)and (pointer:fine){[tuiAppearance][data-appearance=preview-action]:where(*[data-tui-version=\"5.9.0\"]):is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled):hover:not([data-state]){background:#9f9f9fdb}}[tuiAppearance][data-appearance=preview-action]:where(*[data-tui-version=\"5.9.0\"])[data-state=hover]{background:#9f9f9fdb}[tuiAppearance][data-appearance=preview-action]:where(*[data-tui-version=\"5.9.0\"]):is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled):active:not([data-state]){background:#9f9f9fbf}[tuiAppearance][data-appearance=preview-action]:where(*[data-tui-version=\"5.9.0\"])[data-state=active]{background:#9f9f9fbf}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
54
54
|
}
|
|
55
55
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TuiPreviewDialog, decorators: [{
|
|
56
56
|
type: Component,
|
|
@@ -61,7 +61,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
|
|
|
61
61
|
`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [TuiAnimated], host: {
|
|
62
62
|
'data-tui-version': TUI_VERSION,
|
|
63
63
|
'(document:keydown.esc.prevent)': 'context.$implicit.complete()',
|
|
64
|
-
}, styles: ["tui-preview-dialog:where(*[data-tui-version=\"5.
|
|
64
|
+
}, styles: ["tui-preview-dialog:where(*[data-tui-version=\"5.9.0\"]){inline-size:100%;block-size:100%;overflow:hidden}tui-preview-dialog:where(*[data-tui-version=\"5.9.0\"]).tui-enter,tui-preview-dialog:where(*[data-tui-version=\"5.9.0\"]).tui-leave{animation-name:tuiFade,tuiSlide}[tuiAppearance][data-appearance=preview-action]:where(*[data-tui-version=\"5.9.0\"]){background:#686868f5;color:#fff}@media(hover:hover)and (pointer:fine){[tuiAppearance][data-appearance=preview-action]:where(*[data-tui-version=\"5.9.0\"]):is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled):hover:not([data-state]){background:#9f9f9fdb}}[tuiAppearance][data-appearance=preview-action]:where(*[data-tui-version=\"5.9.0\"])[data-state=hover]{background:#9f9f9fdb}[tuiAppearance][data-appearance=preview-action]:where(*[data-tui-version=\"5.9.0\"]):is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled):active:not([data-state]){background:#9f9f9fbf}[tuiAppearance][data-appearance=preview-action]:where(*[data-tui-version=\"5.9.0\"])[data-state=active]{background:#9f9f9fbf}\n"] }]
|
|
65
65
|
}] });
|
|
66
66
|
|
|
67
67
|
class TuiPreviewDialogService extends TuiModalService {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-kit-components-preview.mjs","sources":["../../../projects/kit/components/preview/action/preview-action.directive.ts","../../../projects/kit/components/preview/dialog/preview-dialog.component.ts","../../../projects/kit/components/preview/dialog/preview-dialog.service.ts","../../../projects/kit/components/preview/dialog/preview-dialog.directive.ts","../../../projects/kit/components/preview/preview.options.ts","../../../projects/kit/components/preview/pagination/preview-pagination.component.ts","../../../projects/kit/components/preview/pagination/preview-pagination.template.html","../../../projects/kit/components/preview/zoom/preview-zoom.component.ts","../../../projects/kit/components/preview/zoom/preview-zoom.template.html","../../../projects/kit/components/preview/preview.component.ts","../../../projects/kit/components/preview/preview.template.html","../../../projects/kit/components/preview/title/preview-title.component.ts","../../../projects/kit/components/preview/preview.ts","../../../projects/kit/components/preview/taiga-ui-kit-components-preview.ts"],"sourcesContent":["import {Directive} from '@angular/core';\nimport {tuiButtonOptionsProvider} from '@taiga-ui/core/components/button';\n\n@Directive({\n selector: '[tuiPreviewAction]',\n providers: [tuiButtonOptionsProvider({appearance: 'preview-action', size: 's'})],\n host: {'[style.border-radius.rem]': '100'},\n})\nexport class TuiPreviewAction {}\n","import {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core';\nimport {TUI_VERSION} from '@taiga-ui/cdk/constants';\nimport {TuiAnimated} from '@taiga-ui/cdk/directives/animated';\nimport {type TuiPortalContext} from '@taiga-ui/cdk/portals';\nimport {injectContext, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\n@Component({\n selector: 'tui-preview-dialog',\n imports: [PolymorpheusOutlet],\n template: `\n <ng-container *polymorpheusOutlet=\"context.content as text; context: context\">\n {{ text }}\n </ng-container>\n `,\n styles: `\n [data-tui-version='${TUI_VERSION}'] {\n @import './preview-dialog.style.less';\n }\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [TuiAnimated],\n host: {\n 'data-tui-version': TUI_VERSION,\n '(document:keydown.esc.prevent)': 'context.$implicit.complete()',\n },\n})\nexport class TuiPreviewDialog {\n protected readonly context = injectContext<TuiPortalContext<void>>();\n}\n","import {Injectable} from '@angular/core';\nimport {TuiModalService} from '@taiga-ui/core/portals/modal';\n\nimport {TuiPreviewDialog} from './preview-dialog.component';\n\n@Injectable({providedIn: 'root'})\nexport class TuiPreviewDialogService extends TuiModalService<unknown> {\n protected readonly options = {};\n protected readonly content = TuiPreviewDialog;\n}\n","import {Directive} from '@angular/core';\nimport {tuiAsPortal, TuiPortalDirective} from '@taiga-ui/cdk/portals';\n\nimport {TuiPreviewDialogService} from './preview-dialog.service';\n\n@Directive({\n selector: 'ng-template[tuiPreviewDialog]',\n providers: [tuiAsPortal(TuiPreviewDialogService)],\n hostDirectives: [\n {\n directive: TuiPortalDirective,\n inputs: ['open: tuiPreviewDialog'],\n outputs: ['openChange: tuiPreviewDialogChange'],\n },\n ],\n})\nexport class TuiPreviewDialogDirective {}\n","import {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\n\nexport interface TuiPreviewIcons {\n readonly next: string;\n readonly prev: string;\n readonly rotate: string;\n readonly zoomIn: string;\n readonly zoomOut: string;\n readonly zoomReset: string;\n}\n\nexport const TUI_PREVIEW_ICONS_DEFAULT: TuiPreviewIcons = {\n rotate: '@tui.rotate-ccw-square',\n prev: '@tui.arrow-left',\n next: '@tui.arrow-right',\n zoomIn: '@tui.plus',\n zoomOut: '@tui.minus',\n zoomReset: '@tui.minimize',\n};\n\nexport const [TUI_PREVIEW_ICONS, tuiPreviewIconsProvider] = tuiCreateOptions(\n TUI_PREVIEW_ICONS_DEFAULT,\n);\n","import {ChangeDetectionStrategy, Component, inject, input, model} from '@angular/core';\nimport {tuiClamp} from '@taiga-ui/cdk/utils/math';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TUI_PAGINATION_TEXTS} from '@taiga-ui/kit/tokens';\n\nimport {TuiPreviewAction} from '../action/preview-action.directive';\nimport {TUI_PREVIEW_ICONS, type TuiPreviewIcons} from '../preview.options';\n\n@Component({\n selector: 'tui-preview-pagination',\n imports: [TuiButton, TuiPreviewAction],\n templateUrl: './preview-pagination.template.html',\n styleUrl: './preview-pagination.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '(document:keydown.arrowLeft.prevent)': 'onArrowClick(-1)',\n '(document:keydown.arrowRight.prevent)': 'onArrowClick(1)',\n },\n})\nexport class TuiPreviewPagination {\n protected readonly icons: TuiPreviewIcons = inject(TUI_PREVIEW_ICONS);\n protected readonly texts = inject(TUI_PAGINATION_TEXTS);\n public readonly length = input(1);\n public readonly index = model(0);\n\n public onArrowClick(step: number): void {\n this.index.set(tuiClamp(this.index() + step, 0, this.length() - 1));\n }\n}\n","<button\n tuiIconButton\n tuiPreviewAction\n type=\"button\"\n class=\"t-arrow t-arrow_left\"\n [disabled]=\"!index()\"\n [iconStart]=\"icons.prev\"\n (click)=\"onArrowClick(-1)\"\n>\n {{ texts()[0] }}\n</button>\n{{ index() + 1 }}/{{ length() }}\n<button\n tuiIconButton\n tuiPreviewAction\n type=\"button\"\n class=\"t-arrow t-arrow_right\"\n [disabled]=\"index() === length() - 1\"\n [iconStart]=\"icons.next\"\n (click)=\"onArrowClick(1)\"\n>\n {{ texts()[1] }}\n</button>\n","import {PercentPipe} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n model,\n output,\n} from '@angular/core';\nimport {toObservable, toSignal} from '@angular/core/rxjs-interop';\nimport {FormsModule} from '@angular/forms';\nimport {TUI_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {tuiClamp} from '@taiga-ui/cdk/utils/math';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TuiSlider} from '@taiga-ui/core/components/slider';\nimport {TuiHint} from '@taiga-ui/core/portals/hint';\nimport {TUI_PREVIEW_ZOOM_TEXTS} from '@taiga-ui/kit/tokens';\nimport {map, merge, of, skip, startWith, switchMap, timer} from 'rxjs';\n\nimport {TuiPreviewAction} from '../action/preview-action.directive';\nimport {TUI_PREVIEW_ICONS, type TuiPreviewIcons} from '../preview.options';\n\n@Component({\n selector: 'tui-preview-zoom',\n imports: [FormsModule, PercentPipe, TuiButton, TuiHint, TuiPreviewAction, TuiSlider],\n templateUrl: './preview-zoom.template.html',\n styleUrl: './preview-zoom.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiPreviewZoom {\n protected readonly icons: TuiPreviewIcons = inject(TUI_PREVIEW_ICONS);\n protected readonly texts = inject(TUI_PREVIEW_ZOOM_TEXTS);\n\n protected readonly sliderLabel = computed(\n () => `${this.texts().zoomOut} / ${this.texts().zoomIn}`,\n );\n\n public readonly min = input(0.5);\n public readonly max = input(2);\n public readonly value = model(1);\n public readonly reset = output();\n\n protected readonly hint = toSignal(\n toObservable(this.value).pipe(\n skip(1),\n switchMap(() => merge(of(true), timer(1000).pipe(map(TUI_FALSE_HANDLER)))),\n startWith(false),\n ),\n {requireSync: true},\n );\n\n protected clamp(value: number): void {\n this.value.set(tuiClamp(value, this.min(), this.max()));\n }\n}\n","<section class=\"t-zoom\">\n <button\n tuiIconButton\n tuiPreviewAction\n type=\"button\"\n class=\"t-sign_minus\"\n [disabled]=\"value() === min()\"\n [iconStart]=\"icons.zoomOut\"\n (click)=\"clamp(value() - 0.5)\"\n >\n {{ texts().zoomOut }}\n </button>\n <label tuiSliderThumbLabel>\n <div\n [tuiHint]=\"value() | percent\"\n [tuiHintManual]=\"hint()\"\n ></div>\n <input\n step=\"any\"\n tuiSlider\n tuiTheme=\"dark\"\n type=\"range\"\n class=\"t-slider\"\n [attr.aria-label]=\"sliderLabel()\"\n [attr.aria-valuetext]=\"value() | percent\"\n [max]=\"max()\"\n [min]=\"min()\"\n [ngModel]=\"value()\"\n [ngModelOptions]=\"{standalone: true}\"\n (ngModelChange)=\"clamp($event)\"\n />\n </label>\n <button\n tuiIconButton\n tuiPreviewAction\n type=\"button\"\n class=\"t-sign_plus\"\n [disabled]=\"value() === max()\"\n [iconStart]=\"icons.zoomIn\"\n (click)=\"clamp(value() + 0.5)\"\n >\n {{ texts().zoomIn }}\n </button>\n</section>\n<button\n tuiHintAppearance=\"floating\"\n tuiHintDescribe\n tuiHintDirection=\"top-end\"\n tuiIconButton\n tuiPreviewAction\n type=\"button\"\n class=\"t-reset-button\"\n [class.t-invisible]=\"value() === this.min()\"\n [iconStart]=\"icons.zoomReset\"\n [tuiHint]=\"texts().reset\"\n (click)=\"reset.emit()\"\n>\n {{ texts().reset }}\n</button>\n","import {AsyncPipe} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n inject,\n input,\n} from '@angular/core';\nimport {WaMutationObserver} from '@ng-web-apis/mutation-observer';\nimport {WaResizeObserver} from '@ng-web-apis/resize-observer';\nimport {TUI_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {TuiPan} from '@taiga-ui/cdk/directives/pan';\nimport {TuiZoom, type TuiZoomEvent} from '@taiga-ui/cdk/directives/zoom';\nimport {tuiDragAndDropFrom, tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiClamp, tuiRound} from '@taiga-ui/cdk/utils/math';\nimport {tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TuiHint} from '@taiga-ui/core/portals/hint';\nimport {TUI_PREVIEW_TEXTS} from '@taiga-ui/kit/tokens';\nimport {BehaviorSubject, combineLatest, map, merge, startWith} from 'rxjs';\n\nimport {TuiPreviewAction} from './action/preview-action.directive';\nimport {TUI_PREVIEW_ICONS} from './preview.options';\nimport {TuiPreviewZoom} from './zoom/preview-zoom.component';\n\nconst EMPTY_COORDINATES: [number, number] = [0, 0];\nconst ROTATION_ANGLE = 90;\n\n@Component({\n selector: 'tui-preview',\n imports: [\n AsyncPipe,\n TuiButton,\n TuiHint,\n TuiPan,\n TuiPreviewAction,\n TuiPreviewZoom,\n TuiZoom,\n WaMutationObserver,\n WaResizeObserver,\n ],\n templateUrl: './preview.template.html',\n styleUrl: './preview.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiPreviewComponent {\n private readonly el = tuiInjectElement();\n protected minZoom = 1;\n protected width = 0;\n protected height = 0;\n protected readonly texts = inject(TUI_PREVIEW_TEXTS);\n protected readonly icons = inject(TUI_PREVIEW_ICONS);\n protected readonly cdr = inject(ChangeDetectorRef);\n protected readonly zoom$ = new BehaviorSubject(this.minZoom);\n protected readonly rotation$ = new BehaviorSubject(0);\n\n protected readonly coordinates$ = new BehaviorSubject<readonly [number, number]>(\n EMPTY_COORDINATES,\n );\n\n protected readonly transitioned$ = merge(\n tuiDragAndDropFrom(this.el).pipe(map(({stage}) => stage !== 'continues')),\n tuiTypedFromEvent(this.el, 'touchmove', {\n passive: true,\n }).pipe(map(TUI_FALSE_HANDLER)),\n tuiTypedFromEvent(this.el, 'wheel', {passive: true}).pipe(map(TUI_FALSE_HANDLER)),\n );\n\n protected readonly cursor$ = tuiDragAndDropFrom(this.el).pipe(\n map(({stage}) => (stage === 'continues' ? 'grabbing' : 'initial')),\n startWith('initial'),\n );\n\n protected readonly wrapperTransform$ = combineLatest([\n this.coordinates$.pipe(map(([x, y]) => `${tuiPx(x)}, ${tuiPx(y)}`)),\n this.zoom$,\n this.rotation$,\n ]).pipe(\n map(\n ([translate, zoom, rotation]) =>\n `translate(${translate}) scale(${zoom}) rotate(${rotation}deg)`,\n ),\n );\n\n public readonly zoomable = input(true);\n public readonly rotatable = input(false);\n public readonly initialScale = input(0.8);\n\n protected rotate(): void {\n this.rotation$.next(this.rotation$.value - ROTATION_ANGLE);\n }\n\n protected onPan(delta: readonly [number, number]): void {\n this.coordinates$.next(\n this.getGuardedCoordinates(\n this.coordinates$.value[0] + delta[0],\n this.coordinates$.value[1] + delta[1],\n ),\n );\n }\n\n protected onMutation(contentWrapper: HTMLElement): void {\n const {clientWidth, clientHeight} = contentWrapper;\n\n this.refresh(clientWidth, clientHeight);\n }\n\n protected onZoom({clientX, clientY, delta}: TuiZoomEvent): void {\n if (this.zoomable()) {\n this.processZoom(clientX, clientY, delta);\n }\n }\n\n protected onResize([entry]: readonly ResizeObserverEntry[]): void {\n if (entry?.contentRect) {\n this.refresh(entry.contentRect.width, entry.contentRect.height);\n this.cdr.detectChanges();\n }\n }\n\n protected reset(): void {\n this.zoom$.next(this.minZoom);\n this.coordinates$.next(EMPTY_COORDINATES);\n }\n\n protected setZoom(zoom: number): void {\n this.zoom$.next(zoom);\n const [x, y] = this.coordinates$.value;\n\n this.coordinates$.next(this.getGuardedCoordinates(x, y));\n }\n\n private get offsets(): {offsetX: number; offsetY: number} {\n const offsetX = ((this.zoom$.value - this.minZoom) * this.width) / 2;\n const offsetY = ((this.zoom$.value - this.minZoom) * this.height) / 2;\n\n return {offsetX, offsetY};\n }\n\n private calculateMinZoom(\n contentHeight: number,\n contentWidth: number,\n boxHeight: number,\n boxWidth: number,\n ): number {\n const bigSize =\n contentHeight > boxHeight * this.initialScale() ||\n contentWidth > boxWidth * this.initialScale();\n\n const {clientHeight, clientWidth} = this.el;\n\n return bigSize\n ? tuiRound(\n Math.min(\n (clientHeight * this.initialScale()) / contentHeight,\n (clientWidth * this.initialScale()) / contentWidth,\n ),\n 2,\n )\n : 1;\n }\n\n private refresh(width: number, height: number): void {\n this.width = width;\n this.height = height;\n this.minZoom = this.calculateMinZoom(\n height,\n width,\n this.el.clientHeight,\n this.el.clientWidth,\n );\n this.zoom$.next(this.minZoom);\n this.coordinates$.next(EMPTY_COORDINATES);\n this.rotation$.next(0);\n }\n\n private processZoom(clientX: number, clientY: number, delta: number): void {\n const oldScale = this.zoom$.value;\n const newScale = tuiClamp(oldScale + delta, this.minZoom, 2);\n\n const center = this.getScaleCenter(\n {clientX, clientY},\n this.coordinates$.value,\n this.zoom$.value,\n );\n\n const moveX = center[0] * oldScale - center[0] * newScale;\n const moveY = center[1] * oldScale - center[1] * newScale;\n\n this.zoom$.next(newScale);\n this.coordinates$.next(\n this.getGuardedCoordinates(\n this.coordinates$.value[0] + moveX,\n this.coordinates$.value[1] + moveY,\n ),\n );\n }\n\n private getGuardedCoordinates(x: number, y: number): readonly [number, number] {\n const {offsetX, offsetY} = this.offsets;\n\n return [tuiClamp(x, -offsetX, offsetX), tuiClamp(y, -offsetY, offsetY)];\n }\n\n private getScaleCenter(\n {clientX, clientY}: {clientX: number; clientY: number},\n [x, y]: readonly [number, number],\n scale: number,\n ): [number, number] {\n return [\n (clientX - x - this.el.offsetWidth / 2) / scale,\n (clientY - y - this.el.offsetHeight / 2) / scale,\n ];\n }\n}\n","<section\n #contentWrapper\n attributeFilter=\"src\"\n characterData\n childList\n subtree\n class=\"t-wrapper\"\n [class.t-not-interactive-content]=\"zoomable()\"\n [class.t-transitive]=\"transitioned$ | async\"\n [style.cursor]=\"cursor$ | async\"\n [style.transform]=\"wrapperTransform$ | async\"\n (tuiPan)=\"onPan($event)\"\n (tuiZoom)=\"onZoom($event)\"\n (waMutationObserver)=\"onMutation(contentWrapper)\"\n (waResizeObserver)=\"onResize($event)\"\n>\n <ng-content />\n</section>\n<header class=\"t-header\">\n <div class=\"t-title\">\n <ng-content select=\"tui-preview-title\" />\n </div>\n <ng-content select=\"tui-preview-pagination\" />\n <div class=\"t-actions\">\n <ng-content select=\"[tuiPreviewAction]\" />\n </div>\n</header>\n<footer class=\"t-footer\">\n @if (rotatable()) {\n <button\n tuiHintAppearance=\"floating\"\n tuiHintDescribe\n tuiHintDirection=\"top-end\"\n tuiIconButton\n tuiPreviewAction\n type=\"button\"\n class=\"t-rotate-button\"\n [iconStart]=\"icons.rotate\"\n [tuiHint]=\"texts().rotate\"\n (click)=\"rotate()\"\n ></button>\n }\n @if (zoomable()) {\n <tui-preview-zoom\n [min]=\"minZoom\"\n [value]=\"(zoom$ | async) || 1\"\n (reset)=\"reset()\"\n (valueChange)=\"setZoom($event)\"\n />\n }\n</footer>\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\n\n@Component({\n selector: 'tui-preview-title',\n template: `\n <ng-content />\n `,\n styleUrl: './preview-title.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiPreviewTitle {}\n","import {TuiPreviewAction} from './action/preview-action.directive';\nimport {TuiPreviewDialogDirective} from './dialog/preview-dialog.directive';\nimport {TuiPreviewPagination} from './pagination/preview-pagination.component';\nimport {TuiPreviewComponent} from './preview.component';\nimport {TuiPreviewTitle} from './title/preview-title.component';\nimport {TuiPreviewZoom} from './zoom/preview-zoom.component';\n\nexport const TuiPreview = [\n TuiPreviewComponent,\n TuiPreviewDialogDirective,\n TuiPreviewTitle,\n TuiPreviewPagination,\n TuiPreviewAction,\n TuiPreviewZoom,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-kit-components-preview.mjs","sources":["../../../projects/kit/components/preview/action/preview-action.directive.ts","../../../projects/kit/components/preview/dialog/preview-dialog.component.ts","../../../projects/kit/components/preview/dialog/preview-dialog.service.ts","../../../projects/kit/components/preview/dialog/preview-dialog.directive.ts","../../../projects/kit/components/preview/preview.options.ts","../../../projects/kit/components/preview/pagination/preview-pagination.component.ts","../../../projects/kit/components/preview/pagination/preview-pagination.template.html","../../../projects/kit/components/preview/zoom/preview-zoom.component.ts","../../../projects/kit/components/preview/zoom/preview-zoom.template.html","../../../projects/kit/components/preview/preview.component.ts","../../../projects/kit/components/preview/preview.template.html","../../../projects/kit/components/preview/title/preview-title.component.ts","../../../projects/kit/components/preview/preview.ts","../../../projects/kit/components/preview/taiga-ui-kit-components-preview.ts"],"sourcesContent":["import {Directive} from '@angular/core';\nimport {tuiButtonOptionsProvider} from '@taiga-ui/core/components/button';\n\n@Directive({\n selector: '[tuiPreviewAction]',\n providers: [tuiButtonOptionsProvider({appearance: 'preview-action', size: 's'})],\n host: {'[style.border-radius.rem]': '100'},\n})\nexport class TuiPreviewAction {}\n","import {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core';\nimport {TUI_VERSION} from '@taiga-ui/cdk/constants';\nimport {TuiAnimated} from '@taiga-ui/cdk/directives/animated';\nimport {type TuiPortalContext} from '@taiga-ui/cdk/portals';\nimport {injectContext, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\n@Component({\n selector: 'tui-preview-dialog',\n imports: [PolymorpheusOutlet],\n template: `\n <ng-container *polymorpheusOutlet=\"context.content as text; context: context\">\n {{ text }}\n </ng-container>\n `,\n styles: `\n [data-tui-version='${TUI_VERSION}'] {\n @import './preview-dialog.style.less';\n }\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [TuiAnimated],\n host: {\n 'data-tui-version': TUI_VERSION,\n '(document:keydown.esc.prevent)': 'context.$implicit.complete()',\n },\n})\nexport class TuiPreviewDialog {\n protected readonly context = injectContext<TuiPortalContext<void>>();\n}\n","import {Injectable} from '@angular/core';\nimport {TuiModalService} from '@taiga-ui/core/portals/modal';\n\nimport {TuiPreviewDialog} from './preview-dialog.component';\n\n@Injectable({providedIn: 'root'})\nexport class TuiPreviewDialogService extends TuiModalService<unknown> {\n protected readonly options = {};\n protected readonly content = TuiPreviewDialog;\n}\n","import {Directive} from '@angular/core';\nimport {tuiAsPortal, TuiPortalDirective} from '@taiga-ui/cdk/portals';\n\nimport {TuiPreviewDialogService} from './preview-dialog.service';\n\n@Directive({\n selector: 'ng-template[tuiPreviewDialog]',\n providers: [tuiAsPortal(TuiPreviewDialogService)],\n hostDirectives: [\n {\n directive: TuiPortalDirective,\n inputs: ['open: tuiPreviewDialog'],\n outputs: ['openChange: tuiPreviewDialogChange'],\n },\n ],\n})\nexport class TuiPreviewDialogDirective {}\n","import {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\n\nexport interface TuiPreviewIcons {\n readonly next: string;\n readonly prev: string;\n readonly rotate: string;\n readonly zoomIn: string;\n readonly zoomOut: string;\n readonly zoomReset: string;\n}\n\nexport const TUI_PREVIEW_ICONS_DEFAULT: TuiPreviewIcons = {\n rotate: '@tui.rotate-ccw-square',\n prev: '@tui.arrow-left',\n next: '@tui.arrow-right',\n zoomIn: '@tui.plus',\n zoomOut: '@tui.minus',\n zoomReset: '@tui.minimize',\n};\n\nexport const [TUI_PREVIEW_ICONS, tuiPreviewIconsProvider] = tuiCreateOptions(\n TUI_PREVIEW_ICONS_DEFAULT,\n);\n","import {ChangeDetectionStrategy, Component, inject, input, model} from '@angular/core';\nimport {tuiClamp} from '@taiga-ui/cdk/utils/math';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TUI_PAGINATION_TEXTS} from '@taiga-ui/kit/tokens';\n\nimport {TuiPreviewAction} from '../action/preview-action.directive';\nimport {TUI_PREVIEW_ICONS, type TuiPreviewIcons} from '../preview.options';\n\n@Component({\n selector: 'tui-preview-pagination',\n imports: [TuiButton, TuiPreviewAction],\n templateUrl: './preview-pagination.template.html',\n styleUrl: './preview-pagination.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '(document:keydown.arrowLeft.prevent)': 'onArrowClick(-1)',\n '(document:keydown.arrowRight.prevent)': 'onArrowClick(1)',\n },\n})\nexport class TuiPreviewPagination {\n protected readonly icons: TuiPreviewIcons = inject(TUI_PREVIEW_ICONS);\n protected readonly texts = inject(TUI_PAGINATION_TEXTS);\n\n public readonly length = input(1);\n public readonly index = model(0);\n\n public onArrowClick(step: number): void {\n this.index.set(tuiClamp(this.index() + step, 0, this.length() - 1));\n }\n}\n","<button\n tuiIconButton\n tuiPreviewAction\n type=\"button\"\n class=\"t-arrow t-arrow_left\"\n [disabled]=\"!index()\"\n [iconStart]=\"icons.prev\"\n (click)=\"onArrowClick(-1)\"\n>\n {{ texts()[0] }}\n</button>\n{{ index() + 1 }}/{{ length() }}\n<button\n tuiIconButton\n tuiPreviewAction\n type=\"button\"\n class=\"t-arrow t-arrow_right\"\n [disabled]=\"index() === length() - 1\"\n [iconStart]=\"icons.next\"\n (click)=\"onArrowClick(1)\"\n>\n {{ texts()[1] }}\n</button>\n","import {PercentPipe} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n model,\n output,\n} from '@angular/core';\nimport {toObservable, toSignal} from '@angular/core/rxjs-interop';\nimport {FormsModule} from '@angular/forms';\nimport {TUI_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {tuiClamp} from '@taiga-ui/cdk/utils/math';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TuiSlider} from '@taiga-ui/core/components/slider';\nimport {TuiHint} from '@taiga-ui/core/portals/hint';\nimport {TUI_PREVIEW_ZOOM_TEXTS} from '@taiga-ui/kit/tokens';\nimport {map, merge, of, skip, startWith, switchMap, timer} from 'rxjs';\n\nimport {TuiPreviewAction} from '../action/preview-action.directive';\nimport {TUI_PREVIEW_ICONS, type TuiPreviewIcons} from '../preview.options';\n\n@Component({\n selector: 'tui-preview-zoom',\n imports: [FormsModule, PercentPipe, TuiButton, TuiHint, TuiPreviewAction, TuiSlider],\n templateUrl: './preview-zoom.template.html',\n styleUrl: './preview-zoom.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiPreviewZoom {\n protected readonly icons: TuiPreviewIcons = inject(TUI_PREVIEW_ICONS);\n protected readonly texts = inject(TUI_PREVIEW_ZOOM_TEXTS);\n\n protected readonly sliderLabel = computed(\n () => `${this.texts().zoomOut} / ${this.texts().zoomIn}`,\n );\n\n public readonly min = input(0.5);\n public readonly max = input(2);\n public readonly value = model(1);\n public readonly reset = output();\n\n protected readonly hint = toSignal(\n toObservable(this.value).pipe(\n skip(1),\n switchMap(() => merge(of(true), timer(1000).pipe(map(TUI_FALSE_HANDLER)))),\n startWith(false),\n ),\n {requireSync: true},\n );\n\n protected clamp(value: number): void {\n this.value.set(tuiClamp(value, this.min(), this.max()));\n }\n}\n","<section class=\"t-zoom\">\n <button\n tuiIconButton\n tuiPreviewAction\n type=\"button\"\n class=\"t-sign_minus\"\n [disabled]=\"value() === min()\"\n [iconStart]=\"icons.zoomOut\"\n (click)=\"clamp(value() - 0.5)\"\n >\n {{ texts().zoomOut }}\n </button>\n <label tuiSliderThumbLabel>\n <div\n [tuiHint]=\"value() | percent\"\n [tuiHintManual]=\"hint()\"\n ></div>\n <input\n step=\"any\"\n tuiSlider\n tuiTheme=\"dark\"\n type=\"range\"\n class=\"t-slider\"\n [attr.aria-label]=\"sliderLabel()\"\n [attr.aria-valuetext]=\"value() | percent\"\n [max]=\"max()\"\n [min]=\"min()\"\n [ngModel]=\"value()\"\n [ngModelOptions]=\"{standalone: true}\"\n (ngModelChange)=\"clamp($event)\"\n />\n </label>\n <button\n tuiIconButton\n tuiPreviewAction\n type=\"button\"\n class=\"t-sign_plus\"\n [disabled]=\"value() === max()\"\n [iconStart]=\"icons.zoomIn\"\n (click)=\"clamp(value() + 0.5)\"\n >\n {{ texts().zoomIn }}\n </button>\n</section>\n<button\n tuiHintAppearance=\"floating\"\n tuiHintDescribe\n tuiHintDirection=\"top-end\"\n tuiIconButton\n tuiPreviewAction\n type=\"button\"\n class=\"t-reset-button\"\n [class.t-invisible]=\"value() === this.min()\"\n [iconStart]=\"icons.zoomReset\"\n [tuiHint]=\"texts().reset\"\n (click)=\"reset.emit()\"\n>\n {{ texts().reset }}\n</button>\n","import {AsyncPipe} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n inject,\n input,\n} from '@angular/core';\nimport {WaMutationObserver} from '@ng-web-apis/mutation-observer';\nimport {WaResizeObserver} from '@ng-web-apis/resize-observer';\nimport {TUI_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {TuiPan} from '@taiga-ui/cdk/directives/pan';\nimport {TuiZoom, type TuiZoomEvent} from '@taiga-ui/cdk/directives/zoom';\nimport {tuiDragAndDropFrom, tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiClamp, tuiRound} from '@taiga-ui/cdk/utils/math';\nimport {tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TuiHint} from '@taiga-ui/core/portals/hint';\nimport {TUI_PREVIEW_TEXTS} from '@taiga-ui/kit/tokens';\nimport {BehaviorSubject, combineLatest, map, merge, startWith} from 'rxjs';\n\nimport {TuiPreviewAction} from './action/preview-action.directive';\nimport {TUI_PREVIEW_ICONS} from './preview.options';\nimport {TuiPreviewZoom} from './zoom/preview-zoom.component';\n\nconst EMPTY_COORDINATES: [number, number] = [0, 0];\nconst ROTATION_ANGLE = 90;\n\n@Component({\n selector: 'tui-preview',\n imports: [\n AsyncPipe,\n TuiButton,\n TuiHint,\n TuiPan,\n TuiPreviewAction,\n TuiPreviewZoom,\n TuiZoom,\n WaMutationObserver,\n WaResizeObserver,\n ],\n templateUrl: './preview.template.html',\n styleUrl: './preview.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiPreviewComponent {\n private readonly el = tuiInjectElement();\n\n protected minZoom = 1;\n protected width = 0;\n protected height = 0;\n protected readonly texts = inject(TUI_PREVIEW_TEXTS);\n protected readonly icons = inject(TUI_PREVIEW_ICONS);\n protected readonly cdr = inject(ChangeDetectorRef);\n protected readonly zoom$ = new BehaviorSubject(this.minZoom);\n protected readonly rotation$ = new BehaviorSubject(0);\n\n protected readonly coordinates$ = new BehaviorSubject<readonly [number, number]>(\n EMPTY_COORDINATES,\n );\n\n protected readonly transitioned$ = merge(\n tuiDragAndDropFrom(this.el).pipe(map(({stage}) => stage !== 'continues')),\n tuiTypedFromEvent(this.el, 'touchmove', {\n passive: true,\n }).pipe(map(TUI_FALSE_HANDLER)),\n tuiTypedFromEvent(this.el, 'wheel', {passive: true}).pipe(map(TUI_FALSE_HANDLER)),\n );\n\n protected readonly cursor$ = tuiDragAndDropFrom(this.el).pipe(\n map(({stage}) => (stage === 'continues' ? 'grabbing' : 'initial')),\n startWith('initial'),\n );\n\n protected readonly wrapperTransform$ = combineLatest([\n this.coordinates$.pipe(map(([x, y]) => `${tuiPx(x)}, ${tuiPx(y)}`)),\n this.zoom$,\n this.rotation$,\n ]).pipe(\n map(\n ([translate, zoom, rotation]) =>\n `translate(${translate}) scale(${zoom}) rotate(${rotation}deg)`,\n ),\n );\n\n public readonly zoomable = input(true);\n public readonly rotatable = input(false);\n public readonly initialScale = input(0.8);\n\n protected rotate(): void {\n this.rotation$.next(this.rotation$.value - ROTATION_ANGLE);\n }\n\n protected onPan(delta: readonly [number, number]): void {\n this.coordinates$.next(\n this.getGuardedCoordinates(\n this.coordinates$.value[0] + delta[0],\n this.coordinates$.value[1] + delta[1],\n ),\n );\n }\n\n protected onMutation(contentWrapper: HTMLElement): void {\n const {clientWidth, clientHeight} = contentWrapper;\n\n this.refresh(clientWidth, clientHeight);\n }\n\n protected onZoom({clientX, clientY, delta}: TuiZoomEvent): void {\n if (this.zoomable()) {\n this.processZoom(clientX, clientY, delta);\n }\n }\n\n protected onResize([entry]: readonly ResizeObserverEntry[]): void {\n if (entry?.contentRect) {\n this.refresh(entry.contentRect.width, entry.contentRect.height);\n this.cdr.detectChanges();\n }\n }\n\n protected reset(): void {\n this.zoom$.next(this.minZoom);\n this.coordinates$.next(EMPTY_COORDINATES);\n }\n\n protected setZoom(zoom: number): void {\n this.zoom$.next(zoom);\n const [x, y] = this.coordinates$.value;\n\n this.coordinates$.next(this.getGuardedCoordinates(x, y));\n }\n\n private get offsets(): {offsetX: number; offsetY: number} {\n const offsetX = ((this.zoom$.value - this.minZoom) * this.width) / 2;\n const offsetY = ((this.zoom$.value - this.minZoom) * this.height) / 2;\n\n return {offsetX, offsetY};\n }\n\n private calculateMinZoom(\n contentHeight: number,\n contentWidth: number,\n boxHeight: number,\n boxWidth: number,\n ): number {\n const bigSize =\n contentHeight > boxHeight * this.initialScale() ||\n contentWidth > boxWidth * this.initialScale();\n\n const {clientHeight, clientWidth} = this.el;\n\n return bigSize\n ? tuiRound(\n Math.min(\n (clientHeight * this.initialScale()) / contentHeight,\n (clientWidth * this.initialScale()) / contentWidth,\n ),\n 2,\n )\n : 1;\n }\n\n private refresh(width: number, height: number): void {\n this.width = width;\n this.height = height;\n this.minZoom = this.calculateMinZoom(\n height,\n width,\n this.el.clientHeight,\n this.el.clientWidth,\n );\n this.zoom$.next(this.minZoom);\n this.coordinates$.next(EMPTY_COORDINATES);\n this.rotation$.next(0);\n }\n\n private processZoom(clientX: number, clientY: number, delta: number): void {\n const oldScale = this.zoom$.value;\n const newScale = tuiClamp(oldScale + delta, this.minZoom, 2);\n\n const center = this.getScaleCenter(\n {clientX, clientY},\n this.coordinates$.value,\n this.zoom$.value,\n );\n\n const moveX = center[0] * oldScale - center[0] * newScale;\n const moveY = center[1] * oldScale - center[1] * newScale;\n\n this.zoom$.next(newScale);\n this.coordinates$.next(\n this.getGuardedCoordinates(\n this.coordinates$.value[0] + moveX,\n this.coordinates$.value[1] + moveY,\n ),\n );\n }\n\n private getGuardedCoordinates(x: number, y: number): readonly [number, number] {\n const {offsetX, offsetY} = this.offsets;\n\n return [tuiClamp(x, -offsetX, offsetX), tuiClamp(y, -offsetY, offsetY)];\n }\n\n private getScaleCenter(\n {clientX, clientY}: {clientX: number; clientY: number},\n [x, y]: readonly [number, number],\n scale: number,\n ): [number, number] {\n return [\n (clientX - x - this.el.offsetWidth / 2) / scale,\n (clientY - y - this.el.offsetHeight / 2) / scale,\n ];\n }\n}\n","<section\n #contentWrapper\n attributeFilter=\"src\"\n characterData\n childList\n subtree\n class=\"t-wrapper\"\n [class.t-not-interactive-content]=\"zoomable()\"\n [class.t-transitive]=\"transitioned$ | async\"\n [style.cursor]=\"cursor$ | async\"\n [style.transform]=\"wrapperTransform$ | async\"\n (tuiPan)=\"onPan($event)\"\n (tuiZoom)=\"onZoom($event)\"\n (waMutationObserver)=\"onMutation(contentWrapper)\"\n (waResizeObserver)=\"onResize($event)\"\n>\n <ng-content />\n</section>\n<header class=\"t-header\">\n <div class=\"t-title\">\n <ng-content select=\"tui-preview-title\" />\n </div>\n <ng-content select=\"tui-preview-pagination\" />\n <div class=\"t-actions\">\n <ng-content select=\"[tuiPreviewAction]\" />\n </div>\n</header>\n<footer class=\"t-footer\">\n @if (rotatable()) {\n <button\n tuiHintAppearance=\"floating\"\n tuiHintDescribe\n tuiHintDirection=\"top-end\"\n tuiIconButton\n tuiPreviewAction\n type=\"button\"\n class=\"t-rotate-button\"\n [iconStart]=\"icons.rotate\"\n [tuiHint]=\"texts().rotate\"\n (click)=\"rotate()\"\n ></button>\n }\n @if (zoomable()) {\n <tui-preview-zoom\n [min]=\"minZoom\"\n [value]=\"(zoom$ | async) || 1\"\n (reset)=\"reset()\"\n (valueChange)=\"setZoom($event)\"\n />\n }\n</footer>\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\n\n@Component({\n selector: 'tui-preview-title',\n template: `\n <ng-content />\n `,\n styleUrl: './preview-title.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiPreviewTitle {}\n","import {TuiPreviewAction} from './action/preview-action.directive';\nimport {TuiPreviewDialogDirective} from './dialog/preview-dialog.directive';\nimport {TuiPreviewPagination} from './pagination/preview-pagination.component';\nimport {TuiPreviewComponent} from './preview.component';\nimport {TuiPreviewTitle} from './title/preview-title.component';\nimport {TuiPreviewZoom} from './zoom/preview-zoom.component';\n\nexport const TuiPreview = [\n TuiPreviewComponent,\n TuiPreviewDialogDirective,\n TuiPreviewTitle,\n TuiPreviewPagination,\n TuiPreviewAction,\n TuiPreviewZoom,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
|
|
@@ -11,11 +11,11 @@ import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
|
11
11
|
|
|
12
12
|
let Styles$1 = class Styles {
|
|
13
13
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: Styles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.21", type: Styles, isStandalone: true, selector: "ng-component", exportAs: ["tui-fixed-gradient-5.
|
|
14
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.21", type: Styles, isStandalone: true, selector: "ng-component", exportAs: ["tui-fixed-gradient-5.9.0"], ngImport: i0, template: '', isInline: true, styles: ["[tuiProgressFixedGradient]:where(*[data-tui-version=\"5.9.0\"])::-moz-progress-bar{inline-size:100%!important;clip-path:inset(0 calc(100% - var(--tui-progress-percent)) 0 0 round var(--tui-radius-m));transition:clip-path var(--tui-duration) linear;margin-inline-end:calc(-100% + var(--tui-progress-percent))}[tuiProgressFixedGradient]:where(*[data-tui-version=\"5.9.0\"])::-webkit-progress-value{inline-size:100%!important;clip-path:inset(0 calc(100% - var(--tui-progress-percent)) 0 0 round var(--tui-radius-m));transition:clip-path var(--tui-duration) linear}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
15
15
|
};
|
|
16
16
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: Styles$1, decorators: [{
|
|
17
17
|
type: Component,
|
|
18
|
-
args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: `tui-fixed-gradient-${TUI_VERSION}`, styles: ["[tuiProgressFixedGradient]:where(*[data-tui-version=\"5.
|
|
18
|
+
args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: `tui-fixed-gradient-${TUI_VERSION}`, styles: ["[tuiProgressFixedGradient]:where(*[data-tui-version=\"5.9.0\"])::-moz-progress-bar{inline-size:100%!important;clip-path:inset(0 calc(100% - var(--tui-progress-percent)) 0 0 round var(--tui-radius-m));transition:clip-path var(--tui-duration) linear;margin-inline-end:calc(-100% + var(--tui-progress-percent))}[tuiProgressFixedGradient]:where(*[data-tui-version=\"5.9.0\"])::-webkit-progress-value{inline-size:100%!important;clip-path:inset(0 calc(100% - var(--tui-progress-percent)) 0 0 round var(--tui-radius-m));transition:clip-path var(--tui-duration) linear}\n"] }]
|
|
19
19
|
}] });
|
|
20
20
|
class TuiProgressFixedGradientDirective {
|
|
21
21
|
constructor() {
|
|
@@ -46,7 +46,7 @@ class TuiProgressBar {
|
|
|
46
46
|
this.size = input(this.options.size);
|
|
47
47
|
}
|
|
48
48
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TuiProgressBar, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
49
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.21", type: TuiProgressBar, isStandalone: true, selector: "progress[tuiProgressBar]", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-tui-version": "5.
|
|
49
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.21", type: TuiProgressBar, isStandalone: true, selector: "progress[tuiProgressBar]", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-tui-version": "5.9.0" }, properties: { "attr.data-size": "size()", "style.--tui-progress-color": "color()" } }, ngImport: i0, template: '', isInline: true, styles: ["@keyframes tuiIndeterminateAnimation{50%{background-position:left}}[tuiProgressBar]:where(*[data-tui-version=\"5.9.0\"]){-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;--t-height: .75rem;display:block;inline-size:100%;block-size:var(--t-height);color:var(--tui-background-accent-1);background:var(--tui-background-neutral-2);clip-path:inset(0 .5px round var(--tui-radius-m));overflow:hidden;border-radius:1rem;flex-shrink:0}[tuiProgressBar]:where(*[data-tui-version=\"5.9.0\"])::-webkit-progress-value{transition:inline-size var(--tui-duration) linear}[tuiProgressBar]:where(*[data-tui-version=\"5.9.0\"])::-webkit-progress-value{background:var(--tui-progress-color, currentColor);border-radius:inherit}[tuiProgressBar]:where(*[data-tui-version=\"5.9.0\"])::-moz-progress-bar{background:var(--tui-progress-color, currentColor);border-radius:inherit}[tuiProgressBar]:where(*[data-tui-version=\"5.9.0\"])[data-size=xxs]{--t-height: .125rem}[tuiProgressBar]:where(*[data-tui-version=\"5.9.0\"])[data-size=xs]{--t-height: .25rem}[tuiProgressBar]:where(*[data-tui-version=\"5.9.0\"])[data-size=s]{--t-height: .5rem}[tuiProgressBar]:where(*[data-tui-version=\"5.9.0\"])[data-size=l]{--t-height: 1rem}[tuiProgressBar]:where(*[data-tui-version=\"5.9.0\"])[data-size=xl]{--t-height: 1.25rem}[tuiProgressBar]:where(*[data-tui-version=\"5.9.0\"])[data-size=xxl]{--t-height: 1.5rem}[tuiProgressBar]:where(*[data-tui-version=\"5.9.0\"]):indeterminate{background:linear-gradient(to right,var(--tui-background-neutral-2) 0 45%,var(--tui-progress-color, currentColor) 45% 55%,var(--tui-background-neutral-2) 55% 100%) right;background-size:225%;animation:tuiIndeterminateAnimation 3s infinite ease-in-out}[tuiProgressBar]:where(*[data-tui-version=\"5.9.0\"]):indeterminate::-webkit-progress-value{background:transparent}[tuiProgressBar]:where(*[data-tui-version=\"5.9.0\"]):indeterminate::-moz-progress-bar{background:transparent}[tuiProgressBar]:where(*[data-tui-version=\"5.9.0\"])::-webkit-progress-inner-element{border-radius:inherit}[tuiProgressBar]:where(*[data-tui-version=\"5.9.0\"])::-webkit-progress-bar{background:transparent;border-radius:inherit}label[tuiProgressLabel] [tuiProgressBar]:where(*[data-tui-version=\"5.9.0\"]):not(:first-child){position:absolute;inset-block-start:0;inset-inline-start:0;inline-size:100%;block-size:100%;background:transparent}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
50
50
|
}
|
|
51
51
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TuiProgressBar, decorators: [{
|
|
52
52
|
type: Component,
|
|
@@ -54,7 +54,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
|
|
|
54
54
|
'data-tui-version': TUI_VERSION,
|
|
55
55
|
'[attr.data-size]': 'size()',
|
|
56
56
|
'[style.--tui-progress-color]': 'color()',
|
|
57
|
-
}, styles: ["@keyframes tuiIndeterminateAnimation{50%{background-position:left}}[tuiProgressBar]:where(*[data-tui-version=\"5.
|
|
57
|
+
}, styles: ["@keyframes tuiIndeterminateAnimation{50%{background-position:left}}[tuiProgressBar]:where(*[data-tui-version=\"5.9.0\"]){-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;--t-height: .75rem;display:block;inline-size:100%;block-size:var(--t-height);color:var(--tui-background-accent-1);background:var(--tui-background-neutral-2);clip-path:inset(0 .5px round var(--tui-radius-m));overflow:hidden;border-radius:1rem;flex-shrink:0}[tuiProgressBar]:where(*[data-tui-version=\"5.9.0\"])::-webkit-progress-value{transition:inline-size var(--tui-duration) linear}[tuiProgressBar]:where(*[data-tui-version=\"5.9.0\"])::-webkit-progress-value{background:var(--tui-progress-color, currentColor);border-radius:inherit}[tuiProgressBar]:where(*[data-tui-version=\"5.9.0\"])::-moz-progress-bar{background:var(--tui-progress-color, currentColor);border-radius:inherit}[tuiProgressBar]:where(*[data-tui-version=\"5.9.0\"])[data-size=xxs]{--t-height: .125rem}[tuiProgressBar]:where(*[data-tui-version=\"5.9.0\"])[data-size=xs]{--t-height: .25rem}[tuiProgressBar]:where(*[data-tui-version=\"5.9.0\"])[data-size=s]{--t-height: .5rem}[tuiProgressBar]:where(*[data-tui-version=\"5.9.0\"])[data-size=l]{--t-height: 1rem}[tuiProgressBar]:where(*[data-tui-version=\"5.9.0\"])[data-size=xl]{--t-height: 1.25rem}[tuiProgressBar]:where(*[data-tui-version=\"5.9.0\"])[data-size=xxl]{--t-height: 1.5rem}[tuiProgressBar]:where(*[data-tui-version=\"5.9.0\"]):indeterminate{background:linear-gradient(to right,var(--tui-background-neutral-2) 0 45%,var(--tui-progress-color, currentColor) 45% 55%,var(--tui-background-neutral-2) 55% 100%) right;background-size:225%;animation:tuiIndeterminateAnimation 3s infinite ease-in-out}[tuiProgressBar]:where(*[data-tui-version=\"5.9.0\"]):indeterminate::-webkit-progress-value{background:transparent}[tuiProgressBar]:where(*[data-tui-version=\"5.9.0\"]):indeterminate::-moz-progress-bar{background:transparent}[tuiProgressBar]:where(*[data-tui-version=\"5.9.0\"])::-webkit-progress-inner-element{border-radius:inherit}[tuiProgressBar]:where(*[data-tui-version=\"5.9.0\"])::-webkit-progress-bar{background:transparent;border-radius:inherit}label[tuiProgressLabel] [tuiProgressBar]:where(*[data-tui-version=\"5.9.0\"]):not(:first-child){position:absolute;inset-block-start:0;inset-inline-start:0;inline-size:100%;block-size:100%;background:transparent}\n"] }]
|
|
58
58
|
}] });
|
|
59
59
|
|
|
60
60
|
class TuiProgressColorSegments {
|
|
@@ -96,7 +96,7 @@ class TuiProgressCircle {
|
|
|
96
96
|
this.arc = input(false, { transform: coerceBooleanProperty });
|
|
97
97
|
}
|
|
98
98
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TuiProgressCircle, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
99
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.21", type: TuiProgressCircle, isStandalone: true, selector: "tui-progress-circle", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, arc: { classPropertyName: "arc", publicName: "arc", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-size": "size()", "class._arc": "arc()", "style.--t-progress-ratio": "ratio()", "style.--tui-progress-color": "color()" } }, ngImport: i0, template: "<progress\n class=\"t-hidden
|
|
99
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.21", type: TuiProgressCircle, isStandalone: true, selector: "tui-progress-circle", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, arc: { classPropertyName: "arc", publicName: "arc", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-size": "size()", "class._arc": "arc()", "style.--t-progress-ratio": "ratio()", "style.--tui-progress-color": "color()" } }, ngImport: i0, template: "<progress\n class=\"t-hidden\"\n [max]=\"max()\"\n [value]=\"value()\"\n></progress>\n\n<svg\n aria-hidden=\"true\"\n height=\"100%\"\n width=\"100%\"\n class=\"t-svg\"\n>\n <circle\n cx=\"50%\"\n cy=\"50%\"\n class=\"t-track\"\n />\n\n <circle\n cx=\"50%\"\n cy=\"50%\"\n class=\"t-progress\"\n />\n</svg>\n", styles: [":host{--t-stroke-width: var(--tui-thickness, .375em);position:relative;display:flex;align-items:center;justify-content:center;color:var(--tui-background-accent-1);font-size:1rem;inline-size:var(--t-diameter);min-inline-size:var(--t-diameter);block-size:var(--t-diameter);border-radius:100%;stroke:var(--tui-background-neutral-1);overflow:hidden;-webkit-mask-image:radial-gradient(closest-side,transparent calc(100% - var(--t-stroke-width) - .5px),#000 calc(100% - var(--t-stroke-width)));mask-image:radial-gradient(closest-side,transparent calc(100% - var(--t-stroke-width) - .5px),#000 calc(100% - var(--t-stroke-width)))}:host[data-size=xxs]{--t-diameter: 2em}:host[data-size=xs]{--t-diameter: 2.5em}:host[data-size=s]{--t-diameter: 3.5em}:host[data-size=m]{--t-diameter: 4em}:host[data-size=l]{--t-diameter: 5em}:host[data-size=xl]{--t-diameter: 6em}:host[data-size=xxl]{--t-diameter: 8em}.t-track,.t-progress{fill:transparent;stroke-linecap:round;stroke-width:var(--t-stroke-width);r:calc((var(--t-diameter) - var(--t-stroke-width)) / 2)}.t-track{stroke:inherit}:host._arc .t-track{stroke-dasharray:calc(.75 * calc(2 * 3.14159265 * calc((var(--t-diameter) - var(--t-stroke-width)) / 2))) calc(.25 * calc(2 * 3.14159265 * calc((var(--t-diameter) - var(--t-stroke-width)) / 2)))}.t-progress{transition-property:stroke-dashoffset,stroke-dasharray;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;transition-timing-function:linear;stroke:var(--tui-progress-color, currentColor);stroke-dasharray:calc(2 * 3.14159265 * calc((var(--t-diameter) - var(--t-stroke-width)) / 2));stroke-dashoffset:calc(calc(2 * 3.14159265 * calc((var(--t-diameter) - var(--t-stroke-width)) / 2)) - var(--t-progress-ratio) * calc(2 * 3.14159265 * calc((var(--t-diameter) - var(--t-stroke-width)) / 2)))}:host._arc .t-progress{stroke-dashoffset:.1px;stroke-dasharray:calc(.75 * var(--t-progress-ratio) * calc(2 * 3.14159265 * calc((var(--t-diameter) - var(--t-stroke-width)) / 2))) calc(calc(2 * 3.14159265 * calc((var(--t-diameter) - var(--t-stroke-width)) / 2)))}.t-hidden{position:absolute;clip-path:inset(50%)}.t-svg{position:absolute;transform:rotate(-90deg);overflow:unset}:host._arc .t-svg{transform:rotate(135deg)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
100
100
|
}
|
|
101
101
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TuiProgressCircle, decorators: [{
|
|
102
102
|
type: Component,
|
|
@@ -105,25 +105,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
|
|
|
105
105
|
'[class._arc]': 'arc()',
|
|
106
106
|
'[style.--t-progress-ratio]': 'ratio()',
|
|
107
107
|
'[style.--tui-progress-color]': 'color()',
|
|
108
|
-
}, template: "<progress\n class=\"t-hidden
|
|
108
|
+
}, template: "<progress\n class=\"t-hidden\"\n [max]=\"max()\"\n [value]=\"value()\"\n></progress>\n\n<svg\n aria-hidden=\"true\"\n height=\"100%\"\n width=\"100%\"\n class=\"t-svg\"\n>\n <circle\n cx=\"50%\"\n cy=\"50%\"\n class=\"t-track\"\n />\n\n <circle\n cx=\"50%\"\n cy=\"50%\"\n class=\"t-progress\"\n />\n</svg>\n", styles: [":host{--t-stroke-width: var(--tui-thickness, .375em);position:relative;display:flex;align-items:center;justify-content:center;color:var(--tui-background-accent-1);font-size:1rem;inline-size:var(--t-diameter);min-inline-size:var(--t-diameter);block-size:var(--t-diameter);border-radius:100%;stroke:var(--tui-background-neutral-1);overflow:hidden;-webkit-mask-image:radial-gradient(closest-side,transparent calc(100% - var(--t-stroke-width) - .5px),#000 calc(100% - var(--t-stroke-width)));mask-image:radial-gradient(closest-side,transparent calc(100% - var(--t-stroke-width) - .5px),#000 calc(100% - var(--t-stroke-width)))}:host[data-size=xxs]{--t-diameter: 2em}:host[data-size=xs]{--t-diameter: 2.5em}:host[data-size=s]{--t-diameter: 3.5em}:host[data-size=m]{--t-diameter: 4em}:host[data-size=l]{--t-diameter: 5em}:host[data-size=xl]{--t-diameter: 6em}:host[data-size=xxl]{--t-diameter: 8em}.t-track,.t-progress{fill:transparent;stroke-linecap:round;stroke-width:var(--t-stroke-width);r:calc((var(--t-diameter) - var(--t-stroke-width)) / 2)}.t-track{stroke:inherit}:host._arc .t-track{stroke-dasharray:calc(.75 * calc(2 * 3.14159265 * calc((var(--t-diameter) - var(--t-stroke-width)) / 2))) calc(.25 * calc(2 * 3.14159265 * calc((var(--t-diameter) - var(--t-stroke-width)) / 2)))}.t-progress{transition-property:stroke-dashoffset,stroke-dasharray;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;transition-timing-function:linear;stroke:var(--tui-progress-color, currentColor);stroke-dasharray:calc(2 * 3.14159265 * calc((var(--t-diameter) - var(--t-stroke-width)) / 2));stroke-dashoffset:calc(calc(2 * 3.14159265 * calc((var(--t-diameter) - var(--t-stroke-width)) / 2)) - var(--t-progress-ratio) * calc(2 * 3.14159265 * calc((var(--t-diameter) - var(--t-stroke-width)) / 2)))}:host._arc .t-progress{stroke-dashoffset:.1px;stroke-dasharray:calc(.75 * var(--t-progress-ratio) * calc(2 * 3.14159265 * calc((var(--t-diameter) - var(--t-stroke-width)) / 2))) calc(calc(2 * 3.14159265 * calc((var(--t-diameter) - var(--t-stroke-width)) / 2)))}.t-hidden{position:absolute;clip-path:inset(50%)}.t-svg{position:absolute;transform:rotate(-90deg);overflow:unset}:host._arc .t-svg{transform:rotate(135deg)}\n"] }]
|
|
109
109
|
}] });
|
|
110
110
|
|
|
111
111
|
class TuiProgressLabel {
|
|
112
112
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TuiProgressLabel, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
113
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.21", type: TuiProgressLabel, isStandalone: true, selector: "label[tuiProgressLabel]", ngImport: i0, template: "<ng-content select=\"progress\" />\n<ng-content select=\"tui-progress-circle\" />\n<span class=\"t-label\">\n <ng-content />\n</span>\n", styles: [":host{position:relative;display:inline-block;color:var(--tui-text-primary)}.t-label{position:absolute;inset-block-start:0;inset-inline-start:0;inline-size:100%;block-size:100%;display:flex;font:var(--tui-typography-body-s);flex-direction:column;justify-content:center;align-items:center}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
113
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.21", type: TuiProgressLabel, isStandalone: true, selector: "label[tuiProgressLabel]", ngImport: i0, template: "<ng-content select=\"progress\" />\n<ng-content select=\"tui-progress-circle\" />\n<span class=\"t-label\">\n <ng-content />\n</span>\n", styles: [":host{position:relative;display:inline-block;color:var(--tui-text-primary)}.t-label{position:absolute;inset-block-start:0;inset-inline-start:0;inline-size:100%;block-size:100%;display:flex;font:var(--tui-typography-body-s);flex-direction:column;justify-content:center;align-items:center}.t-label ::ng-deep [tuiTitle]{text-align:center}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
114
114
|
}
|
|
115
115
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TuiProgressLabel, decorators: [{
|
|
116
116
|
type: Component,
|
|
117
|
-
args: [{ selector: 'label[tuiProgressLabel]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content select=\"progress\" />\n<ng-content select=\"tui-progress-circle\" />\n<span class=\"t-label\">\n <ng-content />\n</span>\n", styles: [":host{position:relative;display:inline-block;color:var(--tui-text-primary)}.t-label{position:absolute;inset-block-start:0;inset-inline-start:0;inline-size:100%;block-size:100%;display:flex;font:var(--tui-typography-body-s);flex-direction:column;justify-content:center;align-items:center}\n"] }]
|
|
117
|
+
args: [{ selector: 'label[tuiProgressLabel]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content select=\"progress\" />\n<ng-content select=\"tui-progress-circle\" />\n<span class=\"t-label\">\n <ng-content />\n</span>\n", styles: [":host{position:relative;display:inline-block;color:var(--tui-text-primary)}.t-label{position:absolute;inset-block-start:0;inset-inline-start:0;inline-size:100%;block-size:100%;display:flex;font:var(--tui-typography-body-s);flex-direction:column;justify-content:center;align-items:center}.t-label ::ng-deep [tuiTitle]{text-align:center}\n"] }]
|
|
118
118
|
}] });
|
|
119
119
|
|
|
120
120
|
class Styles {
|
|
121
121
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: Styles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
122
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.21", type: Styles, isStandalone: true, selector: "ng-component", exportAs: ["tui-progress-segmented-5.
|
|
122
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.21", type: Styles, isStandalone: true, selector: "ng-component", exportAs: ["tui-progress-segmented-5.9.0"], ngImport: i0, template: '', isInline: true, styles: ["[tuiProgressBar]:where(*[data-tui-version=\"5.9.0\"])._segmented{--tui-segment-gap: .5rem;-webkit-mask-image:radial-gradient(circle closest-side at calc(var(--t-height) / 2) center,#999 0 99%,transparent calc(99% + .6px) 100%),radial-gradient(circle closest-side at calc(100% - calc(var(--t-height) / 2) - var(--tui-segment-gap)) center,#999 0 99%,transparent calc(99% + .6px) 100%),linear-gradient(to right,transparent 0 calc(var(--t-height) / 2),#999 calc(var(--t-height) / 2) calc(100% - calc(var(--t-height) / 2) - var(--tui-segment-gap)),transparent calc(100% - calc(var(--t-height) / 2) - var(--tui-segment-gap)));mask-image:radial-gradient(circle closest-side at calc(var(--t-height) / 2) center,#999 0 99%,transparent calc(99% + .6px) 100%),radial-gradient(circle closest-side at calc(100% - calc(var(--t-height) / 2) - var(--tui-segment-gap)) center,#999 0 99%,transparent calc(99% + .6px) 100%),linear-gradient(to right,transparent 0 calc(var(--t-height) / 2),#999 calc(var(--t-height) / 2) calc(100% - calc(var(--t-height) / 2) - var(--tui-segment-gap)),transparent calc(100% - calc(var(--t-height) / 2) - var(--tui-segment-gap)));-webkit-mask-size:calc(100% * var(--t-segment-width) + var(--tui-segment-gap) * var(--t-segment-width));mask-size:calc(100% * var(--t-segment-width) + var(--tui-segment-gap) * var(--t-segment-width))}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
123
123
|
}
|
|
124
124
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: Styles, decorators: [{
|
|
125
125
|
type: Component,
|
|
126
|
-
args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: `tui-progress-segmented-${TUI_VERSION}`, styles: ["[tuiProgressBar]:where(*[data-tui-version=\"5.
|
|
126
|
+
args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: `tui-progress-segmented-${TUI_VERSION}`, styles: ["[tuiProgressBar]:where(*[data-tui-version=\"5.9.0\"])._segmented{--tui-segment-gap: .5rem;-webkit-mask-image:radial-gradient(circle closest-side at calc(var(--t-height) / 2) center,#999 0 99%,transparent calc(99% + .6px) 100%),radial-gradient(circle closest-side at calc(100% - calc(var(--t-height) / 2) - var(--tui-segment-gap)) center,#999 0 99%,transparent calc(99% + .6px) 100%),linear-gradient(to right,transparent 0 calc(var(--t-height) / 2),#999 calc(var(--t-height) / 2) calc(100% - calc(var(--t-height) / 2) - var(--tui-segment-gap)),transparent calc(100% - calc(var(--t-height) / 2) - var(--tui-segment-gap)));mask-image:radial-gradient(circle closest-side at calc(var(--t-height) / 2) center,#999 0 99%,transparent calc(99% + .6px) 100%),radial-gradient(circle closest-side at calc(100% - calc(var(--t-height) / 2) - var(--tui-segment-gap)) center,#999 0 99%,transparent calc(99% + .6px) 100%),linear-gradient(to right,transparent 0 calc(var(--t-height) / 2),#999 calc(var(--t-height) / 2) calc(100% - calc(var(--t-height) / 2) - var(--tui-segment-gap)),transparent calc(100% - calc(var(--t-height) / 2) - var(--tui-segment-gap)));-webkit-mask-size:calc(100% * var(--t-segment-width) + var(--tui-segment-gap) * var(--t-segment-width));mask-size:calc(100% * var(--t-segment-width) + var(--tui-segment-gap) * var(--t-segment-width))}\n"] }]
|
|
127
127
|
}] });
|
|
128
128
|
class TuiProgressSegmented {
|
|
129
129
|
constructor() {
|