@taiga-ui/addon-commerce 4.65.0 → 5.0.0-canary.8b64ec1
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/README.md +2 -2
- package/components/index.d.ts +0 -2
- package/components/input-card/index.d.ts +3 -1
- package/components/input-card/input-card.component.d.ts +7 -13
- package/components/input-card/input-card.d.ts +7 -0
- package/components/input-card/input-cvc.directive.d.ts +10 -0
- package/components/input-card/input-expire.directive.d.ts +8 -0
- package/components/input-card-group/input-card-group.component.d.ts +33 -47
- package/components/input-card-group/input-card-group.directive.d.ts +3 -6
- package/components/input-card-group/input-card-group.options.d.ts +4 -7
- package/components/input-card-group/input-card-group.providers.d.ts +4 -5
- package/components/thumbnail-card/thumbnail-card.component.d.ts +5 -8
- package/components/thumbnail-card/thumbnail-card.options.d.ts +0 -2
- package/fesm2022/taiga-ui-addon-commerce-components-input-card-group.mjs +112 -203
- package/fesm2022/taiga-ui-addon-commerce-components-input-card-group.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-commerce-components-input-card.mjs +95 -66
- package/fesm2022/taiga-ui-addon-commerce-components-input-card.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-commerce-components-thumbnail-card.mjs +11 -26
- package/fesm2022/taiga-ui-addon-commerce-components-thumbnail-card.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-commerce-components.mjs +0 -2
- package/fesm2022/taiga-ui-addon-commerce-components.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-commerce-constants.mjs +4 -26
- package/fesm2022/taiga-ui-addon-commerce-constants.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-commerce-pipes-amount.mjs +27 -25
- package/fesm2022/taiga-ui-addon-commerce-pipes-amount.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-commerce-pipes-currency.mjs +6 -9
- package/fesm2022/taiga-ui-addon-commerce-pipes-currency.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-commerce-pipes-decimal.mjs +18 -10
- package/fesm2022/taiga-ui-addon-commerce-pipes-decimal.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-commerce-pipes-format-card.mjs +4 -7
- package/fesm2022/taiga-ui-addon-commerce-pipes-format-card.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-commerce-tokens.mjs +13 -14
- package/fesm2022/taiga-ui-addon-commerce-tokens.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-commerce-types.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-commerce-utils.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-commerce-validators.mjs.map +1 -1
- package/package.json +17 -56
- package/pipes/amount/amount.options.d.ts +1 -3
- package/pipes/amount/amount.pipe.d.ts +5 -2
- package/pipes/currency/currency.pipe.d.ts +2 -2
- package/pipes/decimal/decimal.pipe.d.ts +4 -2
- package/tokens/i18n.d.ts +4 -5
- package/components/input-card/input-card.options.d.ts +0 -12
- package/components/input-cvc/index.d.ts +0 -1
- package/components/input-cvc/input-cvc.directive.d.ts +0 -14
- package/components/input-expire/index.d.ts +0 -1
- package/components/input-expire/input-expire.directive.d.ts +0 -10
- package/esm2022/components/index.mjs +0 -6
- package/esm2022/components/input-card/index.mjs +0 -3
- package/esm2022/components/input-card/input-card.component.mjs +0 -86
- package/esm2022/components/input-card/input-card.options.mjs +0 -15
- package/esm2022/components/input-card/taiga-ui-addon-commerce-components-input-card.mjs +0 -5
- package/esm2022/components/input-card-group/index.mjs +0 -5
- package/esm2022/components/input-card-group/input-card-group.component.mjs +0 -335
- package/esm2022/components/input-card-group/input-card-group.directive.mjs +0 -30
- package/esm2022/components/input-card-group/input-card-group.options.mjs +0 -19
- package/esm2022/components/input-card-group/input-card-group.providers.mjs +0 -20
- package/esm2022/components/input-card-group/taiga-ui-addon-commerce-components-input-card-group.mjs +0 -5
- package/esm2022/components/input-cvc/index.mjs +0 -2
- package/esm2022/components/input-cvc/input-cvc.directive.mjs +0 -47
- package/esm2022/components/input-cvc/taiga-ui-addon-commerce-components-input-cvc.mjs +0 -5
- package/esm2022/components/input-expire/index.mjs +0 -2
- package/esm2022/components/input-expire/input-expire.directive.mjs +0 -38
- package/esm2022/components/input-expire/taiga-ui-addon-commerce-components-input-expire.mjs +0 -5
- package/esm2022/components/taiga-ui-addon-commerce-components.mjs +0 -5
- package/esm2022/components/thumbnail-card/index.mjs +0 -3
- package/esm2022/components/thumbnail-card/taiga-ui-addon-commerce-components-thumbnail-card.mjs +0 -5
- package/esm2022/components/thumbnail-card/thumbnail-card.component.mjs +0 -35
- package/esm2022/components/thumbnail-card/thumbnail-card.options.mjs +0 -10
- package/esm2022/constants/default-card-validator.mjs +0 -3
- package/esm2022/constants/index.mjs +0 -6
- package/esm2022/constants/mask-card-holder.mjs +0 -51
- package/esm2022/constants/mask-card.mjs +0 -29
- package/esm2022/constants/mask-cvc.mjs +0 -5
- package/esm2022/constants/mask-expire.mjs +0 -6
- package/esm2022/constants/taiga-ui-addon-commerce-constants.mjs +0 -5
- package/esm2022/index.mjs +0 -8
- package/esm2022/pipes/amount/amount.options.mjs +0 -14
- package/esm2022/pipes/amount/amount.pipe.mjs +0 -45
- package/esm2022/pipes/amount/amount.types.mjs +0 -2
- package/esm2022/pipes/amount/amount.utils.mjs +0 -11
- package/esm2022/pipes/amount/index.mjs +0 -4
- package/esm2022/pipes/amount/taiga-ui-addon-commerce-pipes-amount.mjs +0 -5
- package/esm2022/pipes/currency/currency.pipe.mjs +0 -19
- package/esm2022/pipes/currency/index.mjs +0 -2
- package/esm2022/pipes/currency/taiga-ui-addon-commerce-pipes-currency.mjs +0 -5
- package/esm2022/pipes/decimal/decimal.pipe.mjs +0 -28
- package/esm2022/pipes/decimal/index.mjs +0 -2
- package/esm2022/pipes/decimal/taiga-ui-addon-commerce-pipes-decimal.mjs +0 -5
- package/esm2022/pipes/format-card/format-card.pipe.mjs +0 -24
- package/esm2022/pipes/format-card/index.mjs +0 -2
- package/esm2022/pipes/format-card/taiga-ui-addon-commerce-pipes-format-card.mjs +0 -5
- package/esm2022/pipes/index.mjs +0 -5
- package/esm2022/pipes/taiga-ui-addon-commerce-pipes.mjs +0 -5
- package/esm2022/taiga-ui-addon-commerce.mjs +0 -5
- package/esm2022/tokens/i18n.mjs +0 -22
- package/esm2022/tokens/index.mjs +0 -3
- package/esm2022/tokens/payment-system-icons.mjs +0 -20
- package/esm2022/tokens/taiga-ui-addon-commerce-tokens.mjs +0 -5
- package/esm2022/types/currency-code.mjs +0 -410
- package/esm2022/types/currency-variants.mjs +0 -2
- package/esm2022/types/currency.mjs +0 -419
- package/esm2022/types/index.mjs +0 -3
- package/esm2022/types/payment-system.mjs +0 -2
- package/esm2022/types/taiga-ui-addon-commerce-types.mjs +0 -5
- package/esm2022/utils/format-currency.mjs +0 -12
- package/esm2022/utils/get-code-by-currency.mjs +0 -52
- package/esm2022/utils/get-currency-by-code.mjs +0 -52
- package/esm2022/utils/get-currency-symbol.mjs +0 -139
- package/esm2022/utils/get-payment-system.mjs +0 -105
- package/esm2022/utils/index.mjs +0 -9
- package/esm2022/utils/is-card-length-valid.mjs +0 -22
- package/esm2022/utils/is-card-number-valid.mjs +0 -18
- package/esm2022/utils/is-expire-valid.mjs +0 -10
- package/esm2022/utils/taiga-ui-addon-commerce-utils.mjs +0 -5
- package/esm2022/validators/card-expire.validator.mjs +0 -8
- package/esm2022/validators/card-number.validator.mjs +0 -8
- package/esm2022/validators/index.mjs +0 -4
- package/esm2022/validators/luhn.validator.mjs +0 -6
- package/esm2022/validators/taiga-ui-addon-commerce-validators.mjs +0 -5
- package/fesm2022/taiga-ui-addon-commerce-components-input-cvc.mjs +0 -53
- package/fesm2022/taiga-ui-addon-commerce-components-input-cvc.mjs.map +0 -1
- package/fesm2022/taiga-ui-addon-commerce-components-input-expire.mjs +0 -44
- package/fesm2022/taiga-ui-addon-commerce-components-input-expire.mjs.map +0 -1
|
@@ -1,335 +0,0 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { DOCUMENT, isPlatformServer, NgIf } from '@angular/common';
|
|
3
|
-
import { ChangeDetectionStrategy, Component, computed, EventEmitter, inject, Input, Output, PLATFORM_ID, ViewChild, } from '@angular/core';
|
|
4
|
-
import { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';
|
|
5
|
-
import { FormsModule } from '@angular/forms';
|
|
6
|
-
import { MaskitoDirective } from '@maskito/angular';
|
|
7
|
-
import { WaResizeObserver } from '@ng-web-apis/resize-observer';
|
|
8
|
-
import { TUI_MASK_CARD, TUI_MASK_CVC, TUI_MASK_EXPIRE, } from '@taiga-ui/addon-commerce/constants';
|
|
9
|
-
import { TuiFormatCardPipe } from '@taiga-ui/addon-commerce/pipes';
|
|
10
|
-
import { TUI_PAYMENT_SYSTEM_ICONS } from '@taiga-ui/addon-commerce/tokens';
|
|
11
|
-
import { tuiAsControl, TuiControl } from '@taiga-ui/cdk/classes';
|
|
12
|
-
import { CHAR_NO_BREAK_SPACE, TUI_NON_DIGIT_REGEXP } from '@taiga-ui/cdk/constants';
|
|
13
|
-
import { tuiHovered, TuiHoveredService } from '@taiga-ui/cdk/directives/hovered';
|
|
14
|
-
import { TuiLet } from '@taiga-ui/cdk/directives/let';
|
|
15
|
-
import { TuiMapperPipe } from '@taiga-ui/cdk/pipes/mapper';
|
|
16
|
-
import { tuiInjectId } from '@taiga-ui/cdk/services';
|
|
17
|
-
import { TUI_IS_MOBILE, TUI_IS_WEBKIT } from '@taiga-ui/cdk/tokens';
|
|
18
|
-
import { tuiInjectElement, tuiIsElement, tuiIsInput } from '@taiga-ui/cdk/utils/dom';
|
|
19
|
-
import { tuiFocusedIn, tuiIsNativeFocused } from '@taiga-ui/cdk/utils/focus';
|
|
20
|
-
import { tuiPure } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
21
|
-
import { tuiAsDataListHost, } from '@taiga-ui/core/components/data-list';
|
|
22
|
-
import { TuiIcon, TuiIconPipe } from '@taiga-ui/core/components/icon';
|
|
23
|
-
import { TUI_TEXTFIELD_OPTIONS } from '@taiga-ui/core/components/textfield';
|
|
24
|
-
import { TuiAppearance, tuiAppearance, tuiAppearanceFocus, tuiAppearanceMode, tuiAppearanceState, } from '@taiga-ui/core/directives/appearance';
|
|
25
|
-
import { TuiDropdownDirective, tuiDropdownOpen, tuiDropdownOptionsProvider, TuiWithDropdownOpen, } from '@taiga-ui/core/directives/dropdown';
|
|
26
|
-
import { TUI_COMMON_ICONS } from '@taiga-ui/core/tokens';
|
|
27
|
-
import { TuiChevron } from '@taiga-ui/kit/directives/chevron';
|
|
28
|
-
import { PolymorpheusOutlet } from '@taiga-ui/polymorpheus';
|
|
29
|
-
import { EMPTY, Subject, switchMap, timer } from 'rxjs';
|
|
30
|
-
import { TuiInputCardGroupDirective } from './input-card-group.directive';
|
|
31
|
-
import { TUI_INPUT_CARD_GROUP_OPTIONS } from './input-card-group.options';
|
|
32
|
-
import { TUI_INPUT_CARD_GROUP_TEXTS, TUI_INPUT_CARD_GROUP_TEXTS_PROVIDER, } from './input-card-group.providers';
|
|
33
|
-
import * as i0 from "@angular/core";
|
|
34
|
-
import * as i1 from "@taiga-ui/core/directives/appearance";
|
|
35
|
-
import * as i2 from "@taiga-ui/core/directives/dropdown";
|
|
36
|
-
import * as i3 from "./input-card-group.directive";
|
|
37
|
-
import * as i4 from "@angular/forms";
|
|
38
|
-
class TuiInputCardGroup extends TuiControl {
|
|
39
|
-
constructor() {
|
|
40
|
-
super(...arguments);
|
|
41
|
-
this.doc = inject(DOCUMENT);
|
|
42
|
-
this.isServer = isPlatformServer(inject(PLATFORM_ID));
|
|
43
|
-
this.focus$ = new Subject();
|
|
44
|
-
this.expirePrefilled = false;
|
|
45
|
-
this.paymentSystems = inject(TUI_PAYMENT_SYSTEM_ICONS);
|
|
46
|
-
this.options = inject(TUI_INPUT_CARD_GROUP_OPTIONS);
|
|
47
|
-
this.el = tuiInjectElement();
|
|
48
|
-
this.hover = tuiHovered();
|
|
49
|
-
this.focusedIn = tuiFocusedIn(this.el);
|
|
50
|
-
this.exampleTextCVC = this.options.exampleTextCVC;
|
|
51
|
-
this.cvcHidden = this.options.cvcHidden;
|
|
52
|
-
this.maskCVC = TUI_MASK_CVC(3);
|
|
53
|
-
this.isMobile = inject(TUI_IS_MOBILE);
|
|
54
|
-
this.isWebkit = inject(TUI_IS_WEBKIT);
|
|
55
|
-
this.dropdown = inject(TuiDropdownDirective);
|
|
56
|
-
this.maskCard = TUI_MASK_CARD;
|
|
57
|
-
this.maskExpire = TUI_MASK_EXPIRE;
|
|
58
|
-
this.icons = inject(TUI_COMMON_ICONS);
|
|
59
|
-
this.textfield = inject(TUI_TEXTFIELD_OPTIONS);
|
|
60
|
-
this.texts = toSignal(inject(TUI_INPUT_CARD_GROUP_TEXTS));
|
|
61
|
-
this.open = tuiDropdownOpen();
|
|
62
|
-
this.$ = this.isWebkit
|
|
63
|
-
? this.focus$
|
|
64
|
-
.pipe(switchMap(() => timer(100)), takeUntilDestroyed())
|
|
65
|
-
.subscribe(() => (this.expire ? this.focusCVC() : this.focusExpire()))
|
|
66
|
-
: EMPTY;
|
|
67
|
-
this.m = tuiAppearanceMode(this.mode);
|
|
68
|
-
this.appearance = tuiAppearance(inject(TUI_TEXTFIELD_OPTIONS).appearance);
|
|
69
|
-
this.state = tuiAppearanceState(
|
|
70
|
-
// eslint-disable-next-line no-nested-ternary
|
|
71
|
-
computed(() => (this.disabled() ? 'disabled' : this.hover() ? 'hover' : null)));
|
|
72
|
-
this.focus = tuiAppearanceFocus(computed(() => this.open() || this.focusedIn()));
|
|
73
|
-
this.labelRaised = computed(() => (this.focus() && !this.readOnly()) || !!this.value()?.card);
|
|
74
|
-
this.hasCleaner = computed(() => !!this.value()?.card && this.interactive());
|
|
75
|
-
/**
|
|
76
|
-
* @deprecated use 'placeholder' instead
|
|
77
|
-
*/
|
|
78
|
-
this.exampleText = this.options.exampleText;
|
|
79
|
-
this.placeholder = this.options.exampleText;
|
|
80
|
-
this.inputs = this.options.inputs;
|
|
81
|
-
this.cardValidator = this.options.cardValidator;
|
|
82
|
-
this.icon = this.options.icon;
|
|
83
|
-
this.id = tuiInjectId();
|
|
84
|
-
/** @deprecated apparently "off" doesn't disable autocomplete */
|
|
85
|
-
this.autocomplete = this.options.autocomplete;
|
|
86
|
-
this.binChange = new EventEmitter();
|
|
87
|
-
}
|
|
88
|
-
set codeLength(length) {
|
|
89
|
-
this.exampleTextCVC = '0'.repeat(length);
|
|
90
|
-
this.maskCVC = TUI_MASK_CVC(length);
|
|
91
|
-
}
|
|
92
|
-
get bin() {
|
|
93
|
-
return this.card.length < 6 ? null : this.card.slice(0, 6);
|
|
94
|
-
}
|
|
95
|
-
ngAfterViewInit() {
|
|
96
|
-
// Enabling transitions
|
|
97
|
-
setTimeout(() => this.el.style.removeProperty('--tui-duration'), 500);
|
|
98
|
-
}
|
|
99
|
-
writeValue(value) {
|
|
100
|
-
const { bin } = this;
|
|
101
|
-
const { activeElement } = this.doc;
|
|
102
|
-
super.writeValue(value);
|
|
103
|
-
this.updateBin(bin);
|
|
104
|
-
this.expirePrefilled = !!this.expire && this.cardPrefilled;
|
|
105
|
-
// Programmatic setting of expire input value breaks autofill in Chrome
|
|
106
|
-
if (!this.inputExpire ||
|
|
107
|
-
this.isMobile ||
|
|
108
|
-
this.isWebkit ||
|
|
109
|
-
this.isServer ||
|
|
110
|
-
this.inputExpire.nativeElement.value === this.expire) {
|
|
111
|
-
return;
|
|
112
|
-
}
|
|
113
|
-
this.inputExpire.nativeElement.focus({ preventScroll: true });
|
|
114
|
-
this.inputExpire.nativeElement.select();
|
|
115
|
-
this.doc.execCommand('insertText', false, this.expire);
|
|
116
|
-
this.inputExpire.nativeElement.blur();
|
|
117
|
-
activeElement?.focus({ preventScroll: true });
|
|
118
|
-
}
|
|
119
|
-
/** Public API for manual focus management */
|
|
120
|
-
focusCard() {
|
|
121
|
-
this.inputCard?.nativeElement.focus({ preventScroll: true });
|
|
122
|
-
}
|
|
123
|
-
focusExpire() {
|
|
124
|
-
if (this.inputs.expire) {
|
|
125
|
-
this.inputExpire?.nativeElement.focus({ preventScroll: true });
|
|
126
|
-
}
|
|
127
|
-
else {
|
|
128
|
-
this.inputCVC?.nativeElement.focus({ preventScroll: true });
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
focusCVC() {
|
|
132
|
-
this.inputCVC?.nativeElement.focus({ preventScroll: true });
|
|
133
|
-
}
|
|
134
|
-
handleOption(option) {
|
|
135
|
-
const { card = '', expire = '', cvc = '' } = option || {};
|
|
136
|
-
const { bin } = this;
|
|
137
|
-
const element = (!card && this.inputCard?.nativeElement) ||
|
|
138
|
-
(!expire && this.inputExpire?.nativeElement) ||
|
|
139
|
-
this.inputCVC?.nativeElement;
|
|
140
|
-
this.onChange({ card, expire, cvc });
|
|
141
|
-
this.updateBin(bin);
|
|
142
|
-
this.open.set(false);
|
|
143
|
-
this.expirePrefilled = !!expire;
|
|
144
|
-
element?.focus();
|
|
145
|
-
}
|
|
146
|
-
clear() {
|
|
147
|
-
this.expirePrefilled = false;
|
|
148
|
-
[this.inputCVC, this.inputExpire, this.inputCard].forEach((e) => {
|
|
149
|
-
e?.nativeElement.focus();
|
|
150
|
-
e?.nativeElement.select();
|
|
151
|
-
e?.nativeElement.ownerDocument.execCommand('delete');
|
|
152
|
-
});
|
|
153
|
-
this.onChange(null);
|
|
154
|
-
}
|
|
155
|
-
onResize() {
|
|
156
|
-
this.cdr.detectChanges();
|
|
157
|
-
}
|
|
158
|
-
get content() {
|
|
159
|
-
const system = this.getPaymentSystem(this.card);
|
|
160
|
-
return this.icon || (system && this.paymentSystems[system]);
|
|
161
|
-
}
|
|
162
|
-
get card() {
|
|
163
|
-
return this.value()?.card || '';
|
|
164
|
-
}
|
|
165
|
-
get expire() {
|
|
166
|
-
return this.value()?.expire || '';
|
|
167
|
-
}
|
|
168
|
-
get cvc() {
|
|
169
|
-
return this.value()?.cvc || '';
|
|
170
|
-
}
|
|
171
|
-
get cardCollapsed() {
|
|
172
|
-
return (this.isFocusable(this.card) &&
|
|
173
|
-
!tuiIsNativeFocused(this.inputCard?.nativeElement));
|
|
174
|
-
}
|
|
175
|
-
get tailLength() {
|
|
176
|
-
return this.card.length % 4 > 0 ? 5 : 4;
|
|
177
|
-
}
|
|
178
|
-
get cardPrefilled() {
|
|
179
|
-
return !!this.card.match(TUI_NON_DIGIT_REGEXP);
|
|
180
|
-
}
|
|
181
|
-
get cvcPrefilled() {
|
|
182
|
-
return !this.inputs.cvc || !!this.cvc.match(TUI_NON_DIGIT_REGEXP);
|
|
183
|
-
}
|
|
184
|
-
get cardFocusable() {
|
|
185
|
-
return !this.cardPrefilled;
|
|
186
|
-
}
|
|
187
|
-
get expireFocusable() {
|
|
188
|
-
return this.isFocusable(this.card) && !this.expirePrefilled;
|
|
189
|
-
}
|
|
190
|
-
get cvcFocusable() {
|
|
191
|
-
return this.isFocusable(this.card);
|
|
192
|
-
}
|
|
193
|
-
get masked() {
|
|
194
|
-
return this.cardPrefilled ? `${this.card.slice(-4)}` : '';
|
|
195
|
-
}
|
|
196
|
-
onCardChange(card) {
|
|
197
|
-
const { value, bin } = this;
|
|
198
|
-
const parsed = card.split(CHAR_NO_BREAK_SPACE).join('');
|
|
199
|
-
if (value()?.card === parsed) {
|
|
200
|
-
return;
|
|
201
|
-
}
|
|
202
|
-
this.updateProperty(parsed, 'card');
|
|
203
|
-
this.updateBin(bin);
|
|
204
|
-
if (this.cardValidator(this.card) && !value()?.expire && this.inputExpire) {
|
|
205
|
-
this.focusExpire();
|
|
206
|
-
// Safari autofill focus jerk workaround
|
|
207
|
-
this.focus$.next();
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
onExpireChange(expire) {
|
|
211
|
-
this.updateProperty(expire, 'expire');
|
|
212
|
-
// MM/YY
|
|
213
|
-
if (Number(this.inputExpire?.nativeElement.selectionStart) === 5) {
|
|
214
|
-
this.focusCVC();
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
onCVCChange(cvc) {
|
|
218
|
-
this.updateProperty(cvc, 'cvc');
|
|
219
|
-
}
|
|
220
|
-
getStyle({ offsetWidth }) {
|
|
221
|
-
return this.cardCollapsed
|
|
222
|
-
? `transform: translate3d(calc(${offsetWidth}px * var(--tui-inline)), 0, 0); clip-path: inset(0 0 0 calc(100% - ${offsetWidth}px));`
|
|
223
|
-
: '';
|
|
224
|
-
}
|
|
225
|
-
onPointerDown(event) {
|
|
226
|
-
if (tuiIsElement(event.target) && tuiIsInput(event.target)) {
|
|
227
|
-
return;
|
|
228
|
-
}
|
|
229
|
-
event.preventDefault();
|
|
230
|
-
this.focusInput();
|
|
231
|
-
}
|
|
232
|
-
toggle() {
|
|
233
|
-
this.open.update((open) => !open);
|
|
234
|
-
}
|
|
235
|
-
isFocusable(card) {
|
|
236
|
-
return this.cardValidator(card) || this.cardPrefilled;
|
|
237
|
-
}
|
|
238
|
-
getPaymentSystem(value) {
|
|
239
|
-
return this.options.paymentSystemHandler(value);
|
|
240
|
-
}
|
|
241
|
-
updateBin(oldBin) {
|
|
242
|
-
const { bin } = this;
|
|
243
|
-
if (bin !== oldBin && !this.cardPrefilled) {
|
|
244
|
-
this.binChange.emit(bin);
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
updateProperty(value, propName) {
|
|
248
|
-
const { card = '', expire = '', cvc = '' } = this.value() || {};
|
|
249
|
-
const newValue = { card, expire, cvc };
|
|
250
|
-
newValue[propName] = value;
|
|
251
|
-
this.onChange(newValue.expire || newValue.cvc || newValue.card ? newValue : null);
|
|
252
|
-
}
|
|
253
|
-
focusInput() {
|
|
254
|
-
const element = (this.cardFocusable && this.inputCard?.nativeElement) ||
|
|
255
|
-
(this.expireFocusable && this.inputExpire?.nativeElement) ||
|
|
256
|
-
this.inputCVC?.nativeElement;
|
|
257
|
-
element?.focus();
|
|
258
|
-
}
|
|
259
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputCardGroup, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
260
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiInputCardGroup, isStandalone: true, selector: "tui-input-card-group", inputs: { exampleText: "exampleText", placeholder: "placeholder", inputs: "inputs", cardValidator: "cardValidator", icon: "icon", id: "id", autocomplete: "autocomplete", codeLength: "codeLength" }, outputs: { binChange: "binChange" }, host: { listeners: { "pointerdown": "onPointerDown($event)", "scroll.zoneless": "$event.target.scrollLeft = 0" }, properties: { "attr.data-size": "textfield.size()", "style.--tui-duration.s": "0" } }, providers: [
|
|
261
|
-
tuiAsDataListHost(TuiInputCardGroup),
|
|
262
|
-
tuiAsControl(TuiInputCardGroup),
|
|
263
|
-
tuiDropdownOptionsProvider({ limitWidth: 'fixed' }),
|
|
264
|
-
TuiHoveredService,
|
|
265
|
-
TUI_INPUT_CARD_GROUP_TEXTS_PROVIDER,
|
|
266
|
-
], viewQueries: [{ propertyName: "inputCard", first: true, predicate: ["inputCard"], descendants: true, static: true }, { propertyName: "inputExpire", first: true, predicate: ["inputExpire"], descendants: true, static: true }, { propertyName: "inputCVC", first: true, predicate: ["inputCVC"], descendants: true, static: true }], usesInheritance: true, hostDirectives: [{ directive: i1.TuiAppearance }, { directive: i2.TuiDropdownDirective }, { directive: i2.TuiWithDropdownOpen }, { directive: i3.TuiInputCardGroupDirective, inputs: ["compact", "compact"] }], ngImport: i0, template: "<div class=\"t-wrapper\">\n <label\n *tuiLet=\"value()?.card | tuiFormatCard: cardPrefilled as formattedCard\"\n (click.zoneless.prevent)=\"(0)\"\n >\n <input\n #inputCard\n autocomplete=\"cc-number\"\n automation-id=\"tui-input-card-group__card\"\n inputmode=\"numeric\"\n translate=\"no\"\n type=\"text\"\n class=\"t-input t-input_card\"\n [attr.aria-invalid]=\"!cardPrefilled && !(this.card | tuiMapper: cardValidator)\"\n [attr.id]=\"id + '_card'\"\n [class.t-input_filled]=\"card.length\"\n [class.t-input_inert]=\"cardPrefilled\"\n [disabled]=\"disabled()\"\n [maskito]=\"maskCard\"\n [ngModel]=\"formattedCard\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"cardPrefilled ? '' : placeholder || exampleText\"\n [readOnly]=\"readOnly()\"\n [tabIndex]=\"cardFocusable ? 0 : -1\"\n (focus)=\"(0)\"\n (ngModelChange)=\"onCardChange($event)\"\n />\n <span\n aria-hidden=\"true\"\n translate=\"no\"\n class=\"t-collapsed\"\n [attr.data-before]=\"masked\"\n [class.t-collapsed_enable-mask]=\"cardCollapsed\"\n (waResizeObserver)=\"onResize()\"\n >\n <span\n #ghost\n class=\"t-ghost\"\n [textContent]=\"formattedCard.slice(-tailLength)\"\n ></span>\n\n <span class=\"t-collapsed-wrapper\">\n <span\n class=\"t-value\"\n [style]=\"getStyle(ghost)\"\n [textContent]=\"formattedCard\"\n ></span>\n </span>\n </span>\n <div\n class=\"t-label\"\n [attr.data-label]=\"texts()?.cardNumberText\"\n [class.t-label_raised]=\"labelRaised()\"\n >\n <ng-content />\n </div>\n </label>\n</div>\n<div\n class=\"t-wrapper t-wrapper_expire\"\n [class.t-wrapper_active]=\"cardCollapsed\"\n>\n <label (click.zoneless.prevent)=\"(0)\">\n <input\n #inputExpire\n autocomplete=\"cc-exp\"\n automation-id=\"tui-input-card-group__expire\"\n inputmode=\"numeric\"\n maxlength=\"5\"\n name=\"ccexpiryyear\"\n translate=\"no\"\n class=\"t-input\"\n [attr.id]=\"id + '_expire'\"\n [class.t-input_inert]=\"!expireFocusable\"\n [class.t-input_prefilled]=\"!inputs.expire\"\n [disabled]=\"disabled()\"\n [maskito]=\"maskExpire\"\n [ngModel]=\"expire\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"inputs.expire ? '00/00' : '\u2022\u2022/\u2022\u2022'\"\n [readOnly]=\"readOnly() || !inputs.expire\"\n [tabIndex]=\"expireFocusable || (isMobile && isWebkit) ? 0 : -1\"\n (focus)=\"(0)\"\n (ngModelChange)=\"onExpireChange($event)\"\n />\n <div\n class=\"t-label\"\n [class.t-label_raised]=\"labelRaised()\"\n >\n {{ texts()?.expiryText }}\n </div>\n </label>\n</div>\n<div\n class=\"t-wrapper t-wrapper_cvc\"\n [class.t-wrapper_active]=\"cardCollapsed\"\n>\n <label (click.zoneless.prevent)=\"(0)\">\n <input\n #inputCVC\n autocomplete=\"cc-csc\"\n automation-id=\"tui-input-card-group__cvc\"\n inputmode=\"numeric\"\n translate=\"no\"\n type=\"text\"\n class=\"t-input\"\n [attr.id]=\"id + '_cvc'\"\n [class.t-input_cvc_hidden]=\"cvcHidden\"\n [class.t-input_prefilled]=\"cvcPrefilled\"\n [disabled]=\"disabled()\"\n [maskito]=\"maskCVC\"\n [ngModel]=\"cvc\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"cvcPrefilled ? '\u2022\u2022\u2022' : exampleTextCVC\"\n [readOnly]=\"readOnly() || cvcPrefilled\"\n [tabIndex]=\"cvcFocusable || (isMobile && isWebkit) ? 0 : -1\"\n (focus)=\"(0)\"\n (ngModelChange)=\"onCVCChange($event)\"\n />\n <div\n class=\"t-label\"\n [class.t-label_raised]=\"labelRaised()\"\n >\n {{ texts()?.cvcText }}\n </div>\n </label>\n</div>\n<div class=\"t-icons\">\n <div\n *ngIf=\"content\"\n class=\"t-icon-outlet\"\n >\n <img\n *polymorpheusOutlet=\"content as src\"\n alt=\"\"\n automation-id=\"tui-input-card-group__icon\"\n class=\"t-card\"\n [src]=\"src | tuiIcon\"\n />\n </div>\n <tui-icon\n *ngIf=\"hasCleaner()\"\n automation-id=\"tui-input-card-group__cleaner\"\n tuiAppearance=\"icon\"\n class=\"t-icon\"\n [icon]=\"icons.close\"\n [style.border-width.rem]=\"0.25\"\n (click)=\"clear()\"\n />\n <tui-icon\n *ngIf=\"dropdown._content()\"\n automation-id=\"tui-input-card-group__dropdown\"\n tuiAppearance=\"icon\"\n tuiChevron\n class=\"t-icon\"\n (click)=\"toggle()\"\n />\n</div>\n", styles: ["@keyframes outside{0%{transform:translate3d(calc(var(--t-translate) * var(--tui-inline)),0,0)}to{transform:translate3d(calc(100% * var(--tui-inline)),0,0)}}@keyframes inside{0%{transform:translate3d(calc(100% * var(--tui-inline)),0,0)}to{transform:translate3d(calc(var(--t-translate) * var(--tui-inline)),0,0)}}:host{--t-height: var(--tui-height-l);--t-padding: var(--tui-padding-l);--t-label: -.7rem;--t-label-size: .83em;--t-translate: 6.5625rem;--t-collapsed-offset: 1.4375rem;position:relative;display:block;block-size:var(--t-height);inline-size:29.5rem;border-radius:var(--tui-radius-l);overflow:hidden;font:var(--tui-font-text-ui-m);isolation:isolate}:host[data-size=m]{--t-label: -.7em;--t-height: var(--tui-height-m);--t-padding: var(--tui-padding-m);--t-collapsed-offset: 1.125rem;border-radius:var(--tui-radius-m);font:var(--tui-font-text-ui-s)}:host[data-size=m] .t-card{inline-size:1.5rem;block-size:1.5rem}:host[data-size=m] [tuiChevron]{margin-inline-end:-.875rem;margin-inline-start:.125rem}:host._compact{inline-size:18rem;--t-translate: 4.125rem}:host[tuiAppearance][data-appearance]:has(:-webkit-autofill){background:var(--tui-service-autofill-background)!important}:host [tuiChevron]{block-size:auto;align-self:stretch;border-inline-end:var(--t-padding) solid transparent;margin-inline-end:-.75rem;box-sizing:content-box;font-size:1rem;cursor:pointer}.t-wrapper{position:absolute;z-index:1;inline-size:100%;block-size:100%;transition:opacity 0s var(--tui-duration)}.t-wrapper_cvc,.t-wrapper_expire{opacity:0;pointer-events:none;animation:outside var(--tui-duration) ease-in-out}.t-wrapper_cvc{margin-inline-start:7.1875rem}:host._compact .t-wrapper_cvc{margin-inline-start:4.0625rem}.t-wrapper_active{transition:none;pointer-events:auto;opacity:1;animation:inside var(--tui-duration) ease-in-out forwards}.t-card{inline-size:2rem;block-size:2rem}.t-collapsed{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;padding:calc(var(--t-height) / 3) var(--t-padding) 0;box-sizing:border-box;line-height:calc(2 * var(--t-height) / 3);color:var(--tui-text-primary);white-space:nowrap;pointer-events:none}.t-collapsed:after{content:\"*\";float:left;opacity:0}:host-context([dir=\"rtl\"]) .t-collapsed:after{float:none}.t-collapsed_enable-mask:before{content:attr(data-before)}.t-collapsed_enable-mask:after{opacity:1}:host-context([dir=\"rtl\"]) .t-collapsed_enable-mask:after{transition:opacity 0s var(--tui-duration)}.t-collapsed_enable-mask .t-collapsed-wrapper{left:var(--t-collapsed-offset)}:host-context([dir=\"rtl\"]) .t-collapsed_enable-mask .t-collapsed-wrapper{left:unset}.t-collapsed-wrapper{position:absolute;top:0;display:block;inline-size:100%;block-size:100%;overflow:hidden}.t-value{transition-property:transform,clip-path;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:absolute;bottom:0;right:100%;display:block;clip-path:inset(0);transform:translate3d(calc(100% * var(--tui-inline)),0,0)}:host-context([dir=\"rtl\"]) .t-value{right:unset;left:100%;transform:translate3d(calc(100% * var(--tui-inline)),0,0)!important}.t-input{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;z-index:1;border:0;margin:0;padding:calc(var(--t-height) / 3) var(--t-padding) 0;outline:none;background:transparent;box-sizing:border-box;font:inherit;color:var(--tui-text-primary);direction:ltr}:host-context([dir=\"rtl\"]) .t-input{text-align:end}.t-input::placeholder{color:var(--tui-text-tertiary)}.t-input_prefilled::placeholder{color:var(--tui-text-primary)}.t-input[chrome-autofilled],.t-input:-webkit-autofill{-webkit-text-fill-color:var(--tui-text-primary)!important;caret-color:var(--tui-text-primary)!important;-webkit-transition:background-color 600000s 0s;transition:background-color 600000s 0s}.t-input.t-input.t-input_card:not(:-webkit-autofill):not(:focus:placeholder-shown),.t-input.t-input.t-input_card.t-input_filled{caret-color:var(--tui-text-primary);color:transparent!important;-webkit-text-fill-color:transparent!important}.t-input.t-input.t-input_card::-webkit-credit-card-auto-fill-button{content:none!important;position:absolute;left:-60rem;top:-60rem;z-index:-999;display:none!important;background:transparent!important;pointer-events:none!important}.t-input_inert{pointer-events:none}.t-input_cvc_hidden{-webkit-text-security:disc}.t-icons{position:absolute;right:1rem;z-index:1;display:flex;align-items:center;block-size:100%;gap:.25rem;pointer-events:none}@supports (inset-inline-end: 0){.t-icons{right:unset;inset-inline-end:1rem}}.t-icon-outlet{display:flex;margin-inline-end:.25rem}.t-icon{cursor:pointer;pointer-events:auto}.t-label{transition-property:all;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative;margin:0 var(--t-padding);line-height:var(--t-height);color:var(--tui-text-secondary)}.t-label:empty:before{content:attr(data-label)}input:-webkit-autofill~.t-label,.t-label_raised{font-size:var(--t-label-size);transform:translateY(var(--t-label))}:host([data-mode~=\"invalid\"]) input:-webkit-autofill~.t-label,:host([data-mode~=\"invalid\"]) .t-label_raised{color:var(--tui-text-negative)}:host([data-focus=\"true\"]) .t-label{color:var(--tui-text-primary)}.t-ghost{visibility:hidden}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: TuiAppearance, selector: "[tuiAppearance]", inputs: ["tuiAppearance", "tuiAppearanceState", "tuiAppearanceFocus", "tuiAppearanceMode"] }, { kind: "directive", type: TuiChevron, selector: "[tuiChevron]", inputs: ["tuiChevron"] }, { kind: "pipe", type: TuiFormatCardPipe, name: "tuiFormatCard" }, { kind: "component", type: TuiIcon, selector: "tui-icon", inputs: ["icon", "background"] }, { kind: "pipe", type: TuiIconPipe, name: "tuiIcon" }, { kind: "directive", type: TuiLet, selector: "[tuiLet]", inputs: ["tuiLet"] }, { kind: "pipe", type: TuiMapperPipe, name: "tuiMapper" }, { kind: "directive", type: WaResizeObserver, selector: "[waResizeObserver]", inputs: ["box"], outputs: ["waResizeObserver"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
267
|
-
}
|
|
268
|
-
__decorate([
|
|
269
|
-
tuiPure
|
|
270
|
-
], TuiInputCardGroup.prototype, "isFocusable", null);
|
|
271
|
-
__decorate([
|
|
272
|
-
tuiPure
|
|
273
|
-
], TuiInputCardGroup.prototype, "getPaymentSystem", null);
|
|
274
|
-
export { TuiInputCardGroup };
|
|
275
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputCardGroup, decorators: [{
|
|
276
|
-
type: Component,
|
|
277
|
-
args: [{ standalone: true, selector: 'tui-input-card-group', imports: [
|
|
278
|
-
FormsModule,
|
|
279
|
-
MaskitoDirective,
|
|
280
|
-
NgIf,
|
|
281
|
-
PolymorpheusOutlet,
|
|
282
|
-
TuiAppearance,
|
|
283
|
-
TuiChevron,
|
|
284
|
-
TuiFormatCardPipe,
|
|
285
|
-
TuiIcon,
|
|
286
|
-
TuiIconPipe,
|
|
287
|
-
TuiLet,
|
|
288
|
-
TuiMapperPipe,
|
|
289
|
-
WaResizeObserver,
|
|
290
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
291
|
-
tuiAsDataListHost(TuiInputCardGroup),
|
|
292
|
-
tuiAsControl(TuiInputCardGroup),
|
|
293
|
-
tuiDropdownOptionsProvider({ limitWidth: 'fixed' }),
|
|
294
|
-
TuiHoveredService,
|
|
295
|
-
TUI_INPUT_CARD_GROUP_TEXTS_PROVIDER,
|
|
296
|
-
], hostDirectives: [
|
|
297
|
-
TuiAppearance,
|
|
298
|
-
TuiDropdownDirective,
|
|
299
|
-
TuiWithDropdownOpen,
|
|
300
|
-
{ directive: TuiInputCardGroupDirective, inputs: ['compact'] },
|
|
301
|
-
], host: {
|
|
302
|
-
'[attr.data-size]': 'textfield.size()',
|
|
303
|
-
'[style.--tui-duration.s]': '0',
|
|
304
|
-
'(pointerdown)': 'onPointerDown($event)',
|
|
305
|
-
'(scroll.zoneless)': '$event.target.scrollLeft = 0',
|
|
306
|
-
}, template: "<div class=\"t-wrapper\">\n <label\n *tuiLet=\"value()?.card | tuiFormatCard: cardPrefilled as formattedCard\"\n (click.zoneless.prevent)=\"(0)\"\n >\n <input\n #inputCard\n autocomplete=\"cc-number\"\n automation-id=\"tui-input-card-group__card\"\n inputmode=\"numeric\"\n translate=\"no\"\n type=\"text\"\n class=\"t-input t-input_card\"\n [attr.aria-invalid]=\"!cardPrefilled && !(this.card | tuiMapper: cardValidator)\"\n [attr.id]=\"id + '_card'\"\n [class.t-input_filled]=\"card.length\"\n [class.t-input_inert]=\"cardPrefilled\"\n [disabled]=\"disabled()\"\n [maskito]=\"maskCard\"\n [ngModel]=\"formattedCard\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"cardPrefilled ? '' : placeholder || exampleText\"\n [readOnly]=\"readOnly()\"\n [tabIndex]=\"cardFocusable ? 0 : -1\"\n (focus)=\"(0)\"\n (ngModelChange)=\"onCardChange($event)\"\n />\n <span\n aria-hidden=\"true\"\n translate=\"no\"\n class=\"t-collapsed\"\n [attr.data-before]=\"masked\"\n [class.t-collapsed_enable-mask]=\"cardCollapsed\"\n (waResizeObserver)=\"onResize()\"\n >\n <span\n #ghost\n class=\"t-ghost\"\n [textContent]=\"formattedCard.slice(-tailLength)\"\n ></span>\n\n <span class=\"t-collapsed-wrapper\">\n <span\n class=\"t-value\"\n [style]=\"getStyle(ghost)\"\n [textContent]=\"formattedCard\"\n ></span>\n </span>\n </span>\n <div\n class=\"t-label\"\n [attr.data-label]=\"texts()?.cardNumberText\"\n [class.t-label_raised]=\"labelRaised()\"\n >\n <ng-content />\n </div>\n </label>\n</div>\n<div\n class=\"t-wrapper t-wrapper_expire\"\n [class.t-wrapper_active]=\"cardCollapsed\"\n>\n <label (click.zoneless.prevent)=\"(0)\">\n <input\n #inputExpire\n autocomplete=\"cc-exp\"\n automation-id=\"tui-input-card-group__expire\"\n inputmode=\"numeric\"\n maxlength=\"5\"\n name=\"ccexpiryyear\"\n translate=\"no\"\n class=\"t-input\"\n [attr.id]=\"id + '_expire'\"\n [class.t-input_inert]=\"!expireFocusable\"\n [class.t-input_prefilled]=\"!inputs.expire\"\n [disabled]=\"disabled()\"\n [maskito]=\"maskExpire\"\n [ngModel]=\"expire\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"inputs.expire ? '00/00' : '\u2022\u2022/\u2022\u2022'\"\n [readOnly]=\"readOnly() || !inputs.expire\"\n [tabIndex]=\"expireFocusable || (isMobile && isWebkit) ? 0 : -1\"\n (focus)=\"(0)\"\n (ngModelChange)=\"onExpireChange($event)\"\n />\n <div\n class=\"t-label\"\n [class.t-label_raised]=\"labelRaised()\"\n >\n {{ texts()?.expiryText }}\n </div>\n </label>\n</div>\n<div\n class=\"t-wrapper t-wrapper_cvc\"\n [class.t-wrapper_active]=\"cardCollapsed\"\n>\n <label (click.zoneless.prevent)=\"(0)\">\n <input\n #inputCVC\n autocomplete=\"cc-csc\"\n automation-id=\"tui-input-card-group__cvc\"\n inputmode=\"numeric\"\n translate=\"no\"\n type=\"text\"\n class=\"t-input\"\n [attr.id]=\"id + '_cvc'\"\n [class.t-input_cvc_hidden]=\"cvcHidden\"\n [class.t-input_prefilled]=\"cvcPrefilled\"\n [disabled]=\"disabled()\"\n [maskito]=\"maskCVC\"\n [ngModel]=\"cvc\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"cvcPrefilled ? '\u2022\u2022\u2022' : exampleTextCVC\"\n [readOnly]=\"readOnly() || cvcPrefilled\"\n [tabIndex]=\"cvcFocusable || (isMobile && isWebkit) ? 0 : -1\"\n (focus)=\"(0)\"\n (ngModelChange)=\"onCVCChange($event)\"\n />\n <div\n class=\"t-label\"\n [class.t-label_raised]=\"labelRaised()\"\n >\n {{ texts()?.cvcText }}\n </div>\n </label>\n</div>\n<div class=\"t-icons\">\n <div\n *ngIf=\"content\"\n class=\"t-icon-outlet\"\n >\n <img\n *polymorpheusOutlet=\"content as src\"\n alt=\"\"\n automation-id=\"tui-input-card-group__icon\"\n class=\"t-card\"\n [src]=\"src | tuiIcon\"\n />\n </div>\n <tui-icon\n *ngIf=\"hasCleaner()\"\n automation-id=\"tui-input-card-group__cleaner\"\n tuiAppearance=\"icon\"\n class=\"t-icon\"\n [icon]=\"icons.close\"\n [style.border-width.rem]=\"0.25\"\n (click)=\"clear()\"\n />\n <tui-icon\n *ngIf=\"dropdown._content()\"\n automation-id=\"tui-input-card-group__dropdown\"\n tuiAppearance=\"icon\"\n tuiChevron\n class=\"t-icon\"\n (click)=\"toggle()\"\n />\n</div>\n", styles: ["@keyframes outside{0%{transform:translate3d(calc(var(--t-translate) * var(--tui-inline)),0,0)}to{transform:translate3d(calc(100% * var(--tui-inline)),0,0)}}@keyframes inside{0%{transform:translate3d(calc(100% * var(--tui-inline)),0,0)}to{transform:translate3d(calc(var(--t-translate) * var(--tui-inline)),0,0)}}:host{--t-height: var(--tui-height-l);--t-padding: var(--tui-padding-l);--t-label: -.7rem;--t-label-size: .83em;--t-translate: 6.5625rem;--t-collapsed-offset: 1.4375rem;position:relative;display:block;block-size:var(--t-height);inline-size:29.5rem;border-radius:var(--tui-radius-l);overflow:hidden;font:var(--tui-font-text-ui-m);isolation:isolate}:host[data-size=m]{--t-label: -.7em;--t-height: var(--tui-height-m);--t-padding: var(--tui-padding-m);--t-collapsed-offset: 1.125rem;border-radius:var(--tui-radius-m);font:var(--tui-font-text-ui-s)}:host[data-size=m] .t-card{inline-size:1.5rem;block-size:1.5rem}:host[data-size=m] [tuiChevron]{margin-inline-end:-.875rem;margin-inline-start:.125rem}:host._compact{inline-size:18rem;--t-translate: 4.125rem}:host[tuiAppearance][data-appearance]:has(:-webkit-autofill){background:var(--tui-service-autofill-background)!important}:host [tuiChevron]{block-size:auto;align-self:stretch;border-inline-end:var(--t-padding) solid transparent;margin-inline-end:-.75rem;box-sizing:content-box;font-size:1rem;cursor:pointer}.t-wrapper{position:absolute;z-index:1;inline-size:100%;block-size:100%;transition:opacity 0s var(--tui-duration)}.t-wrapper_cvc,.t-wrapper_expire{opacity:0;pointer-events:none;animation:outside var(--tui-duration) ease-in-out}.t-wrapper_cvc{margin-inline-start:7.1875rem}:host._compact .t-wrapper_cvc{margin-inline-start:4.0625rem}.t-wrapper_active{transition:none;pointer-events:auto;opacity:1;animation:inside var(--tui-duration) ease-in-out forwards}.t-card{inline-size:2rem;block-size:2rem}.t-collapsed{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;padding:calc(var(--t-height) / 3) var(--t-padding) 0;box-sizing:border-box;line-height:calc(2 * var(--t-height) / 3);color:var(--tui-text-primary);white-space:nowrap;pointer-events:none}.t-collapsed:after{content:\"*\";float:left;opacity:0}:host-context([dir=\"rtl\"]) .t-collapsed:after{float:none}.t-collapsed_enable-mask:before{content:attr(data-before)}.t-collapsed_enable-mask:after{opacity:1}:host-context([dir=\"rtl\"]) .t-collapsed_enable-mask:after{transition:opacity 0s var(--tui-duration)}.t-collapsed_enable-mask .t-collapsed-wrapper{left:var(--t-collapsed-offset)}:host-context([dir=\"rtl\"]) .t-collapsed_enable-mask .t-collapsed-wrapper{left:unset}.t-collapsed-wrapper{position:absolute;top:0;display:block;inline-size:100%;block-size:100%;overflow:hidden}.t-value{transition-property:transform,clip-path;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:absolute;bottom:0;right:100%;display:block;clip-path:inset(0);transform:translate3d(calc(100% * var(--tui-inline)),0,0)}:host-context([dir=\"rtl\"]) .t-value{right:unset;left:100%;transform:translate3d(calc(100% * var(--tui-inline)),0,0)!important}.t-input{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;z-index:1;border:0;margin:0;padding:calc(var(--t-height) / 3) var(--t-padding) 0;outline:none;background:transparent;box-sizing:border-box;font:inherit;color:var(--tui-text-primary);direction:ltr}:host-context([dir=\"rtl\"]) .t-input{text-align:end}.t-input::placeholder{color:var(--tui-text-tertiary)}.t-input_prefilled::placeholder{color:var(--tui-text-primary)}.t-input[chrome-autofilled],.t-input:-webkit-autofill{-webkit-text-fill-color:var(--tui-text-primary)!important;caret-color:var(--tui-text-primary)!important;-webkit-transition:background-color 600000s 0s;transition:background-color 600000s 0s}.t-input.t-input.t-input_card:not(:-webkit-autofill):not(:focus:placeholder-shown),.t-input.t-input.t-input_card.t-input_filled{caret-color:var(--tui-text-primary);color:transparent!important;-webkit-text-fill-color:transparent!important}.t-input.t-input.t-input_card::-webkit-credit-card-auto-fill-button{content:none!important;position:absolute;left:-60rem;top:-60rem;z-index:-999;display:none!important;background:transparent!important;pointer-events:none!important}.t-input_inert{pointer-events:none}.t-input_cvc_hidden{-webkit-text-security:disc}.t-icons{position:absolute;right:1rem;z-index:1;display:flex;align-items:center;block-size:100%;gap:.25rem;pointer-events:none}@supports (inset-inline-end: 0){.t-icons{right:unset;inset-inline-end:1rem}}.t-icon-outlet{display:flex;margin-inline-end:.25rem}.t-icon{cursor:pointer;pointer-events:auto}.t-label{transition-property:all;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative;margin:0 var(--t-padding);line-height:var(--t-height);color:var(--tui-text-secondary)}.t-label:empty:before{content:attr(data-label)}input:-webkit-autofill~.t-label,.t-label_raised{font-size:var(--t-label-size);transform:translateY(var(--t-label))}:host([data-mode~=\"invalid\"]) input:-webkit-autofill~.t-label,:host([data-mode~=\"invalid\"]) .t-label_raised{color:var(--tui-text-negative)}:host([data-focus=\"true\"]) .t-label{color:var(--tui-text-primary)}.t-ghost{visibility:hidden}\n"] }]
|
|
307
|
-
}], propDecorators: { inputCard: [{
|
|
308
|
-
type: ViewChild,
|
|
309
|
-
args: ['inputCard', { static: true }]
|
|
310
|
-
}], inputExpire: [{
|
|
311
|
-
type: ViewChild,
|
|
312
|
-
args: ['inputExpire', { static: true }]
|
|
313
|
-
}], inputCVC: [{
|
|
314
|
-
type: ViewChild,
|
|
315
|
-
args: ['inputCVC', { static: true }]
|
|
316
|
-
}], exampleText: [{
|
|
317
|
-
type: Input
|
|
318
|
-
}], placeholder: [{
|
|
319
|
-
type: Input
|
|
320
|
-
}], inputs: [{
|
|
321
|
-
type: Input
|
|
322
|
-
}], cardValidator: [{
|
|
323
|
-
type: Input
|
|
324
|
-
}], icon: [{
|
|
325
|
-
type: Input
|
|
326
|
-
}], id: [{
|
|
327
|
-
type: Input
|
|
328
|
-
}], autocomplete: [{
|
|
329
|
-
type: Input
|
|
330
|
-
}], binChange: [{
|
|
331
|
-
type: Output
|
|
332
|
-
}], codeLength: [{
|
|
333
|
-
type: Input
|
|
334
|
-
}], isFocusable: [], getPaymentSystem: [] } });
|
|
335
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtY2FyZC1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1jb21tZXJjZS9jb21wb25lbnRzL2lucHV0LWNhcmQtZ3JvdXAvaW5wdXQtY2FyZC1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1jb21tZXJjZS9jb21wb25lbnRzL2lucHV0LWNhcmQtZ3JvdXAvaW5wdXQtY2FyZC1ncm91cC50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFFLGdCQUFnQixFQUFFLElBQUksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ2pFLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFFUixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sV0FBVyxFQUVYLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsa0JBQWtCLEVBQUUsUUFBUSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDeEUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzlELE9BQU8sRUFDSCxhQUFhLEVBQ2IsWUFBWSxFQUNaLGVBQWUsR0FDbEIsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1QyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUV6RSxPQUFPLEVBQUMsWUFBWSxFQUFFLFVBQVUsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQy9ELE9BQU8sRUFB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LE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBNEQ5QixXQUFXO3NCQURqQixLQUFLO2dCQUlDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBSUMsTUFBTTtzQkFEWixLQUFLO2dCQUlDLGFBQWE7c0JBRG5CLEtBQUs7Z0JBSUMsSUFBSTtzQkFEVixLQUFLO2dCQUlDLEVBQUU7c0JBRFIsS0FBSztnQkFLQyxZQUFZO3NCQURsQixLQUFLO2dCQUlVLFNBQVM7c0JBRHhCLE1BQU07Z0JBSUksVUFBVTtzQkFEcEIsS0FBSztnQkFrTUUsV0FBVyxNQUtYLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RE9DVU1FTlQsIGlzUGxhdGZvcm1TZXJ2ZXIsIE5nSWZ9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIHR5cGUgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgY29tcHV0ZWQsXG4gICAgdHlwZSBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIFBMQVRGT1JNX0lELFxuICAgIHR5cGUgU2lnbmFsLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZCwgdG9TaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7Rm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7TWFza2l0b0RpcmVjdGl2ZX0gZnJvbSAnQG1hc2tpdG8vYW5ndWxhcic7XG5pbXBvcnQge1dhUmVzaXplT2JzZXJ2ZXJ9IGZyb20gJ0BuZy13ZWItYXBpcy9yZXNpemUtb2JzZXJ2ZXInO1xuaW1wb3J0IHtcbiAgICBUVUlfTUFTS19DQVJELFxuICAgIFRVSV9NQVNLX0NWQyxcbiAgICBUVUlfTUFTS19FWFBJUkUsXG59IGZyb20gJ0B0YWlnYS11aS9hZGRvbi1jb21tZXJjZS9jb25zdGFudHMnO1xuaW1wb3J0IHtUdWlGb3JtYXRDYXJkUGlwZX0gZnJvbSAnQHRhaWdhLXVpL2FkZG9uLWNvbW1lcmNlL3BpcGVzJztcbmltcG9ydCB7VFVJX1BBWU1FTlRfU1lTVEVNX0lDT05TfSBmcm9tICdAdGFpZ2EtdWkvYWRkb24tY29tbWVyY2UvdG9rZW5zJztcbmltcG9ydCB7dHlwZSBUdWlQYXltZW50U3lzdGVtfSBmcm9tICdAdGFpZ2EtdWkvYWRkb24tY29tbWVyY2UvdHlwZXMnO1xuaW1wb3J0IHt0dWlBc0NvbnRyb2wsIFR1aUNvbnRyb2x9IGZyb20gJ0B0YWlnYS11aS9jZGsvY2xhc3Nlcyc7XG5pbXBvcnQge0NIQVJfTk9fQlJFQUtfU1BBQ0UsIFRVSV9OT05fRElHSVRfUkVHRVhQfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NvbnN0YW50cyc7XG5pbXBvcnQge3R1aUhvdmVyZWQsIFR1aUhvdmVyZWRTZXJ2aWNlfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvaG92ZXJlZCc7XG5pbXBvcnQge1R1aUxldH0gZnJvbSAnQHRhaWdhLXVpL2Nkay9kaXJlY3RpdmVzL2xldCc7XG5pbXBvcnQge1R1aU1hcHBlclBpcGV9IGZyb20gJ0B0YWlnYS11aS9jZGsvcGlwZXMvbWFwcGVyJztcbmltcG9ydCB7dHVpSW5qZWN0SWR9IGZyb20gJ0B0YWlnYS11aS9jZGsvc2VydmljZXMnO1xuaW1wb3J0IHtUVUlfSVNfTU9CSUxFLCBUVUlfSVNfV0VCS0lUfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3Rva2Vucyc7XG5pbXBvcnQge3R5cGUgVHVpQm9vbGVhbkhhbmRsZXJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvdHlwZXMnO1xuaW1wb3J0IHt0dWlJbmplY3RFbGVtZW50LCB0dWlJc0VsZW1lbnQsIHR1aUlzSW5wdXR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvZG9tJztcbmltcG9ydCB7dHVpRm9jdXNlZEluLCB0dWlJc05hdGl2ZUZvY3VzZWR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvZm9jdXMnO1xuaW1wb3J0IHt0dWlQdXJlfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL21pc2NlbGxhbmVvdXMnO1xuaW1wb3J0IHtcbiAgICB0dWlBc0RhdGFMaXN0SG9zdCxcbiAgICB0eXBlIFR1aURhdGFMaXN0SG9zdCxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9kYXRhLWxpc3QnO1xuaW1wb3J0IHtUdWlJY29uLCBUdWlJY29uUGlwZX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9pY29uJztcbmltcG9ydCB7VFVJX1RFWFRGSUVMRF9PUFRJT05TfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3RleHRmaWVsZCc7XG5pbXBvcnQge1xuICAgIFR1aUFwcGVhcmFuY2UsXG4gICAgdHVpQXBwZWFyYW5jZSxcbiAgICB0dWlBcHBlYXJhbmNlRm9jdXMsXG4gICAgdHVpQXBwZWFyYW5jZU1vZGUsXG4gICAgdHVpQXBwZWFyYW5jZVN0YXRlLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL2FwcGVhcmFuY2UnO1xuaW1wb3J0IHtcbiAgICBUdWlEcm9wZG93bkRpcmVjdGl2ZSxcbiAgICB0dWlEcm9wZG93bk9wZW4sXG4gICAgdHVpRHJvcGRvd25PcHRpb25zUHJvdmlkZXIsXG4gICAgVHVpV2l0aERyb3Bkb3duT3Blbixcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcy9kcm9wZG93bic7XG5pbXBvcnQge1RVSV9DT01NT05fSUNPTlN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3Rva2Vucyc7XG5pbXBvcnQge1R1aUNoZXZyb259IGZyb20gJ0B0YWlnYS11aS9raXQvZGlyZWN0aXZlcy9jaGV2cm9uJztcbmltcG9ydCB7dHlwZSBQb2x5bW9ycGhldXNDb250ZW50LCBQb2x5bW9ycGhldXNPdXRsZXR9IGZyb20gJ0B0YWlnYS11aS9wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHtFTVBUWSwgU3ViamVjdCwgc3dpdGNoTWFwLCB0aW1lcn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7VHVpSW5wdXRDYXJkR3JvdXBEaXJlY3RpdmV9IGZyb20gJy4vaW5wdXQtY2FyZC1ncm91cC5kaXJlY3RpdmUnO1xuaW1wb3J0IHtUVUlfSU5QVVRfQ0FSRF9HUk9VUF9PUFRJT05TfSBmcm9tICcuL2lucHV0LWNhcmQtZ3JvdXAub3B0aW9ucyc7XG5pbXBvcnQge1xuICAgIFRVSV9JTlBVVF9DQVJEX0dST1VQX1RFWFRTLFxuICAgIFRVSV9JTlBVVF9DQVJEX0dST1VQX1RFWFRTX1BST1ZJREVSLFxufSBmcm9tICcuL2lucHV0LWNhcmQtZ3JvdXAucHJvdmlkZXJzJztcblxuZXhwb3J0IGludGVyZmFjZSBUdWlDYXJkIHtcbiAgICBjYXJkOiBzdHJpbmc7XG4gICAgY3ZjOiBzdHJpbmc7XG4gICAgZXhwaXJlOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICd0dWktaW5wdXQtY2FyZC1ncm91cCcsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgTWFza2l0b0RpcmVjdGl2ZSxcbiAgICAgICAgTmdJZixcbiAgICAgICAgUG9seW1vcnBoZXVzT3V0bGV0LFxuICAgICAgICBUdWlBcHBlYXJhbmNlLFxuICAgICAgICBUdWlDaGV2cm9uLFxuICAgICAgICBUdWlGb3JtYXRDYXJkUGlwZSxcbiAgICAgICAgVHVpSWNvbixcbiAgICAgICAgVHVpSWNvblBpcGUsXG4gICAgICAgIFR1aUxldCxcbiAgICAgICAgVHVpTWFwcGVyUGlwZSxcbiAgICAgICAgV2FSZXNpemVPYnNlcnZlcixcbiAgICBdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1jYXJkLWdyb3VwLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2lucHV0LWNhcmQtZ3JvdXAuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB0dWlBc0RhdGFMaXN0SG9zdChUdWlJbnB1dENhcmRHcm91cCksXG4gICAgICAgIHR1aUFzQ29udHJvbChUdWlJbnB1dENhcmRHcm91cCksXG4gICAgICAgIHR1aURyb3Bkb3duT3B0aW9uc1Byb3ZpZGVyKHtsaW1pdFdpZHRoOiAnZml4ZWQnfSksXG4gICAgICAgIFR1aUhvdmVyZWRTZXJ2aWNlLFxuICAgICAgICBUVUlfSU5QVVRfQ0FSRF9HUk9VUF9URVhUU19QUk9WSURFUixcbiAgICBdLFxuICAgIGhvc3REaXJlY3RpdmVzOiBbXG4gICAgICAgIFR1aUFwcGVhcmFuY2UsXG4gICAgICAgIFR1aURyb3Bkb3duRGlyZWN0aXZlLFxuICAgICAgICBUdWlXaXRoRHJvcGRvd25PcGVuLFxuICAgICAgICB7ZGlyZWN0aXZlOiBUdWlJbnB1dENhcmRHcm91cERpcmVjdGl2ZSwgaW5wdXRzOiBbJ2NvbXBhY3QnXX0sXG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbYXR0ci5kYXRhLXNpemVdJzogJ3RleHRmaWVsZC5zaXplKCknLFxuICAgICAgICAnW3N0eWxlLi0tdHVpLWR1cmF0aW9uLnNdJzogJzAnLFxuICAgICAgICAnKHBvaW50ZXJkb3duKSc6ICdvblBvaW50ZXJEb3duKCRldmVudCknLFxuICAgICAgICAnKHNjcm9sbC56b25lbGVzcyknOiAnJGV2ZW50LnRhcmdldC5zY3JvbGxMZWZ0ID0gMCcsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXRDYXJkR3JvdXBcbiAgICBleHRlbmRzIFR1aUNvbnRyb2w8VHVpQ2FyZCB8IG51bGw+XG4gICAgaW1wbGVtZW50cyBUdWlEYXRhTGlzdEhvc3Q8UGFydGlhbDxUdWlDYXJkPj4sIEFmdGVyVmlld0luaXRcbntcbiAgICBAVmlld0NoaWxkKCdpbnB1dENhcmQnLCB7c3RhdGljOiB0cnVlfSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IGlucHV0Q2FyZD86IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgICBAVmlld0NoaWxkKCdpbnB1dEV4cGlyZScsIHtzdGF0aWM6IHRydWV9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5wdXRFeHBpcmU/OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gICAgQFZpZXdDaGlsZCgnaW5wdXRDVkMnLCB7c3RhdGljOiB0cnVlfSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IGlucHV0Q1ZDPzogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jID0gaW5qZWN0KERPQ1VNRU5UKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGlzU2VydmVyID0gaXNQbGF0Zm9ybVNlcnZlcihpbmplY3QoUExBVEZPUk1fSUQpKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvY3VzJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgcHJpdmF0ZSBleHBpcmVQcmVmaWxsZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBheW1lbnRTeXN0ZW1zID0gaW5qZWN0KFRVSV9QQVlNRU5UX1NZU1RFTV9JQ09OUyk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zID0gaW5qZWN0KFRVSV9JTlBVVF9DQVJEX0dST1VQX09QVElPTlMpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZWwgPSB0dWlJbmplY3RFbGVtZW50KCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBob3ZlciA9IHR1aUhvdmVyZWQoKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvY3VzZWRJbiA9IHR1aUZvY3VzZWRJbih0aGlzLmVsKTtcblxuICAgIHByb3RlY3RlZCBleGFtcGxlVGV4dENWQyA9IHRoaXMub3B0aW9ucy5leGFtcGxlVGV4dENWQztcbiAgICBwcm90ZWN0ZWQgY3ZjSGlkZGVuID0gdGhpcy5vcHRpb25zLmN2Y0hpZGRlbjtcbiAgICBwcm90ZWN0ZWQgbWFza0NWQyA9IFRVSV9NQVNLX0NWQygzKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNNb2JpbGUgPSBpbmplY3QoVFVJX0lTX01PQklMRSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzV2Via2l0ID0gaW5qZWN0KFRVSV9JU19XRUJLSVQpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBkcm9wZG93biA9IGluamVjdChUdWlEcm9wZG93bkRpcmVjdGl2ZSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG1hc2tDYXJkID0gVFVJX01BU0tfQ0FSRDtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbWFza0V4cGlyZSA9IFRVSV9NQVNLX0VYUElSRTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaWNvbnMgPSBpbmplY3QoVFVJX0NPTU1PTl9JQ09OUyk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHRleHRmaWVsZCA9IGluamVjdChUVUlfVEVYVEZJRUxEX09QVElPTlMpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSB0ZXh0cyA9IHRvU2lnbmFsKGluamVjdChUVUlfSU5QVVRfQ0FSRF9HUk9VUF9URVhUUykpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBvcGVuID0gdHVpRHJvcGRvd25PcGVuKCk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5ICQgPSB0aGlzLmlzV2Via2l0XG4gICAgICAgID8gdGhpcy5mb2N1cyRcbiAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGltZXIoMTAwKSksXG4gICAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+ICh0aGlzLmV4cGlyZSA/IHRoaXMuZm9jdXNDVkMoKSA6IHRoaXMuZm9jdXNFeHBpcmUoKSkpXG4gICAgICAgIDogRU1QVFk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbSA9IHR1aUFwcGVhcmFuY2VNb2RlKHRoaXMubW9kZSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGFwcGVhcmFuY2UgPSB0dWlBcHBlYXJhbmNlKFxuICAgICAgICBpbmplY3QoVFVJX1RFWFRGSUVMRF9PUFRJT05TKS5hcHBlYXJhbmNlLFxuICAgICk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3RhdGU6IFNpZ25hbDx1bmtub3duPiA9IHR1aUFwcGVhcmFuY2VTdGF0ZShcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW5lc3RlZC10ZXJuYXJ5XG4gICAgICAgIGNvbXB1dGVkKCgpID0+ICh0aGlzLmRpc2FibGVkKCkgPyAnZGlzYWJsZWQnIDogdGhpcy5ob3ZlcigpID8gJ2hvdmVyJyA6IG51bGwpKSxcbiAgICApO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGZvY3VzID0gdHVpQXBwZWFyYW5jZUZvY3VzKFxuICAgICAgICBjb21wdXRlZCgoKSA9PiB0aGlzLm9wZW4oKSB8fCB0aGlzLmZvY3VzZWRJbigpKSxcbiAgICApO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGxhYmVsUmFpc2VkID0gY29tcHV0ZWQoXG4gICAgICAgICgpID0+ICh0aGlzLmZvY3VzKCkgJiYgIXRoaXMucmVhZE9ubHkoKSkgfHwgISF0aGlzLnZhbHVlKCk/LmNhcmQsXG4gICAgKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBoYXNDbGVhbmVyID0gY29tcHV0ZWQoXG4gICAgICAgICgpID0+ICEhdGhpcy52YWx1ZSgpPy5jYXJkICYmIHRoaXMuaW50ZXJhY3RpdmUoKSxcbiAgICApO1xuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlICdwbGFjZWhvbGRlcicgaW5zdGVhZFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGV4YW1wbGVUZXh0ID0gdGhpcy5vcHRpb25zLmV4YW1wbGVUZXh0O1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcGxhY2Vob2xkZXIgPSB0aGlzLm9wdGlvbnMuZXhhbXBsZVRleHQ7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpbnB1dHMgPSB0aGlzLm9wdGlvbnMuaW5wdXRzO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY2FyZFZhbGlkYXRvcjogVHVpQm9vbGVhbkhhbmRsZXI8c3RyaW5nPiA9IHRoaXMub3B0aW9ucy5jYXJkVmFsaWRhdG9yO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWNvbjogUG9seW1vcnBoZXVzQ29udGVudCA9IHRoaXMub3B0aW9ucy5pY29uO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWQgPSB0dWlJbmplY3RJZCgpO1xuXG4gICAgLyoqIEBkZXByZWNhdGVkIGFwcGFyZW50bHkgXCJvZmZcIiBkb2Vzbid0IGRpc2FibGUgYXV0b2NvbXBsZXRlICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYXV0b2NvbXBsZXRlID0gdGhpcy5vcHRpb25zLmF1dG9jb21wbGV0ZTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyByZWFkb25seSBiaW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZyB8IG51bGw+KCk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgY29kZUxlbmd0aChsZW5ndGg6IDMgfCA0KSB7XG4gICAgICAgIHRoaXMuZXhhbXBsZVRleHRDVkMgPSAnMCcucmVwZWF0KGxlbmd0aCk7XG4gICAgICAgIHRoaXMubWFza0NWQyA9IFRVSV9NQVNLX0NWQyhsZW5ndGgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYmluKCk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5jYXJkLmxlbmd0aCA8IDYgPyBudWxsIDogdGhpcy5jYXJkLnNsaWNlKDAsIDYpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIC8vIEVuYWJsaW5nIHRyYW5zaXRpb25zXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5lbC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnLS10dWktZHVyYXRpb24nKSwgNTAwKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogVHVpQ2FyZCB8IG51bGwpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qge2Jpbn0gPSB0aGlzO1xuICAgICAgICBjb25zdCB7YWN0aXZlRWxlbWVudH0gPSB0aGlzLmRvYztcblxuICAgICAgICBzdXBlci53cml0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy51cGRhdGVCaW4oYmluKTtcbiAgICAgICAgdGhpcy5leHBpcmVQcmVmaWxsZWQgPSAhIXRoaXMuZXhwaXJlICYmIHRoaXMuY2FyZFByZWZpbGxlZDtcblxuICAgICAgICAvLyBQcm9ncmFtbWF0aWMgc2V0dGluZyBvZiBleHBpcmUgaW5wdXQgdmFsdWUgYnJlYWtzIGF1dG9maWxsIGluIENocm9tZVxuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhdGhpcy5pbnB1dEV4cGlyZSB8fFxuICAgICAgICAgICAgdGhpcy5pc01vYmlsZSB8fFxuICAgICAgICAgICAgdGhpcy5pc1dlYmtpdCB8fFxuICAgICAgICAgICAgdGhpcy5pc1NlcnZlciB8fFxuICAgICAgICAgICAgdGhpcy5pbnB1dEV4cGlyZS5uYXRpdmVFbGVtZW50LnZhbHVlID09PSB0aGlzLmV4cGlyZVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaW5wdXRFeHBpcmUubmF0aXZlRWxlbWVudC5mb2N1cyh7cHJldmVudFNjcm9sbDogdHJ1ZX0pO1xuICAgICAgICB0aGlzLmlucHV0RXhwaXJlLm5hdGl2ZUVsZW1lbnQuc2VsZWN0KCk7XG4gICAgICAgIHRoaXMuZG9jLmV4ZWNDb21tYW5kKCdpbnNlcnRUZXh0JywgZmFsc2UsIHRoaXMuZXhwaXJlKTtcbiAgICAgICAgdGhpcy5pbnB1dEV4cGlyZS5uYXRpdmVFbGVtZW50LmJsdXIoKTtcbiAgICAgICAgKGFjdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQgfCBudWxsKT8uZm9jdXMoe3ByZXZlbnRTY3JvbGw6IHRydWV9KTtcbiAgICB9XG5cbiAgICAvKiogUHVibGljIEFQSSBmb3IgbWFudWFsIGZvY3VzIG1hbmFnZW1lbnQgKi9cbiAgICBwdWJsaWMgZm9jdXNDYXJkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlucHV0Q2FyZD8ubmF0aXZlRWxlbWVudC5mb2N1cyh7cHJldmVudFNjcm9sbDogdHJ1ZX0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBmb2N1c0V4cGlyZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaW5wdXRzLmV4cGlyZSkge1xuICAgICAgICAgICAgdGhpcy5pbnB1dEV4cGlyZT8ubmF0aXZlRWxlbWVudC5mb2N1cyh7cHJldmVudFNjcm9sbDogdHJ1ZX0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pbnB1dENWQz8ubmF0aXZlRWxlbWVudC5mb2N1cyh7cHJldmVudFNjcm9sbDogdHJ1ZX0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGZvY3VzQ1ZDKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlucHV0Q1ZDPy5uYXRpdmVFbGVtZW50LmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiB0cnVlfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGhhbmRsZU9wdGlvbihvcHRpb246IFBhcnRpYWw8VHVpQ2FyZD4gfCBudWxsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHtjYXJkID0gJycsIGV4cGlyZSA9ICcnLCBjdmMgPSAnJ30gPSBvcHRpb24gfHwge307XG4gICAgICAgIGNvbnN0IHtiaW59ID0gdGhpcztcbiAgICAgICAgY29uc3QgZWxlbWVudCA9XG4gICAgICAgICAgICAoIWNhcmQgJiYgdGhpcy5pbnB1dENhcmQ/Lm5hdGl2ZUVsZW1lbnQpIHx8XG4gICAgICAgICAgICAoIWV4cGlyZSAmJiB0aGlzLmlucHV0RXhwaXJlPy5uYXRpdmVFbGVtZW50KSB8fFxuICAgICAgICAgICAgdGhpcy5pbnB1dENWQz8ubmF0aXZlRWxlbWVudDtcblxuICAgICAgICB0aGlzLm9uQ2hhbmdlKHtjYXJkLCBleHBpcmUsIGN2Y30pO1xuICAgICAgICB0aGlzLnVwZGF0ZUJpbihiaW4pO1xuICAgICAgICB0aGlzLm9wZW4uc2V0KGZhbHNlKTtcbiAgICAgICAgdGhpcy5leHBpcmVQcmVmaWxsZWQgPSAhIWV4cGlyZTtcblxuICAgICAgICBlbGVtZW50Py5mb2N1cygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbGVhcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5leHBpcmVQcmVmaWxsZWQgPSBmYWxzZTtcblxuICAgICAgICBbdGhpcy5pbnB1dENWQywgdGhpcy5pbnB1dEV4cGlyZSwgdGhpcy5pbnB1dENhcmRdLmZvckVhY2goKGUpID0+IHtcbiAgICAgICAgICAgIGU/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgIGU/Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0KCk7XG4gICAgICAgICAgICBlPy5uYXRpdmVFbGVtZW50Lm93bmVyRG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2RlbGV0ZScpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLm9uQ2hhbmdlKG51bGwpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblJlc2l6ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgY29udGVudCgpOiBQb2x5bW9ycGhldXNDb250ZW50IHtcbiAgICAgICAgY29uc3Qgc3lzdGVtID0gdGhpcy5nZXRQYXltZW50U3lzdGVtKHRoaXMuY2FyZCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaWNvbiB8fCAoc3lzdGVtICYmIHRoaXMucGF5bWVudFN5c3RlbXNbc3lzdGVtXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBjYXJkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlKCk/LmNhcmQgfHwgJyc7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBleHBpcmUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWUoKT8uZXhwaXJlIHx8ICcnO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgY3ZjKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlKCk/LmN2YyB8fCAnJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGNhcmRDb2xsYXBzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLmlzRm9jdXNhYmxlKHRoaXMuY2FyZCkgJiZcbiAgICAgICAgICAgICF0dWlJc05hdGl2ZUZvY3VzZWQodGhpcy5pbnB1dENhcmQ/Lm5hdGl2ZUVsZW1lbnQpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCB0YWlsTGVuZ3RoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhcmQubGVuZ3RoICUgNCA+IDAgPyA1IDogNDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGNhcmRQcmVmaWxsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuY2FyZC5tYXRjaChUVUlfTk9OX0RJR0lUX1JFR0VYUCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBjdmNQcmVmaWxsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5pbnB1dHMuY3ZjIHx8ICEhdGhpcy5jdmMubWF0Y2goVFVJX05PTl9ESUdJVF9SRUdFWFApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgY2FyZEZvY3VzYWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmNhcmRQcmVmaWxsZWQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBleHBpcmVGb2N1c2FibGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzRm9jdXNhYmxlKHRoaXMuY2FyZCkgJiYgIXRoaXMuZXhwaXJlUHJlZmlsbGVkO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgY3ZjRm9jdXNhYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0ZvY3VzYWJsZSh0aGlzLmNhcmQpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgbWFza2VkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhcmRQcmVmaWxsZWQgPyBgJHt0aGlzLmNhcmQuc2xpY2UoLTQpfWAgOiAnJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25DYXJkQ2hhbmdlKGNhcmQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCB7dmFsdWUsIGJpbn0gPSB0aGlzO1xuICAgICAgICBjb25zdCBwYXJzZWQgPSBjYXJkLnNwbGl0KENIQVJfTk9fQlJFQUtfU1BBQ0UpLmpvaW4oJycpO1xuXG4gICAgICAgIGlmICh2YWx1ZSgpPy5jYXJkID09PSBwYXJzZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlUHJvcGVydHkocGFyc2VkLCAnY2FyZCcpO1xuICAgICAgICB0aGlzLnVwZGF0ZUJpbihiaW4pO1xuXG4gICAgICAgIGlmICh0aGlzLmNhcmRWYWxpZGF0b3IodGhpcy5jYXJkKSAmJiAhdmFsdWUoKT8uZXhwaXJlICYmIHRoaXMuaW5wdXRFeHBpcmUpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNFeHBpcmUoKTtcbiAgICAgICAgICAgIC8vIFNhZmFyaSBhdXRvZmlsbCBmb2N1cyBqZXJrIHdvcmthcm91bmRcbiAgICAgICAgICAgIHRoaXMuZm9jdXMkLm5leHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkV4cGlyZUNoYW5nZShleHBpcmU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZVByb3BlcnR5KGV4cGlyZSwgJ2V4cGlyZScpO1xuXG4gICAgICAgIC8vIE1NL1lZXG4gICAgICAgIGlmIChOdW1iZXIodGhpcy5pbnB1dEV4cGlyZT8ubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydCkgPT09IDUpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNDVkMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkNWQ0NoYW5nZShjdmM6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZVByb3BlcnR5KGN2YywgJ2N2YycpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRTdHlsZSh7b2Zmc2V0V2lkdGh9OiBIVE1MU3BhbkVsZW1lbnQpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5jYXJkQ29sbGFwc2VkXG4gICAgICAgICAgICA/IGB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKGNhbGMoJHtvZmZzZXRXaWR0aH1weCAqIHZhcigtLXR1aS1pbmxpbmUpKSwgMCwgMCk7IGNsaXAtcGF0aDogaW5zZXQoMCAwIDAgY2FsYygxMDAlIC0gJHtvZmZzZXRXaWR0aH1weCkpO2BcbiAgICAgICAgICAgIDogJyc7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uUG9pbnRlckRvd24oZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHR1aUlzRWxlbWVudChldmVudC50YXJnZXQpICYmIHR1aUlzSW5wdXQoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5mb2N1c0lucHV0KCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHRvZ2dsZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuLnVwZGF0ZSgob3BlbikgPT4gIW9wZW4pO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBpc0ZvY3VzYWJsZShjYXJkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FyZFZhbGlkYXRvcihjYXJkKSB8fCB0aGlzLmNhcmRQcmVmaWxsZWQ7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGdldFBheW1lbnRTeXN0ZW0odmFsdWU6IHN0cmluZyk6IFR1aVBheW1lbnRTeXN0ZW0gfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5wYXltZW50U3lzdGVtSGFuZGxlcih2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVCaW4ob2xkQmluOiBzdHJpbmcgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHtiaW59ID0gdGhpcztcblxuICAgICAgICBpZiAoYmluICE9PSBvbGRCaW4gJiYgIXRoaXMuY2FyZFByZWZpbGxlZCkge1xuICAgICAgICAgICAgdGhpcy5iaW5DaGFuZ2UuZW1pdChiaW4pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVQcm9wZXJ0eSh2YWx1ZTogc3RyaW5nLCBwcm9wTmFtZTogJ2NhcmQnIHwgJ2N2YycgfCAnZXhwaXJlJyk6IHZvaWQge1xuICAgICAgICBjb25zdCB7Y2FyZCA9ICcnLCBleHBpcmUgPSAnJywgY3ZjID0gJyd9ID0gdGhpcy52YWx1ZSgpIHx8IHt9O1xuICAgICAgICBjb25zdCBuZXdWYWx1ZTogVHVpQ2FyZCA9IHtjYXJkLCBleHBpcmUsIGN2Y307XG5cbiAgICAgICAgbmV3VmFsdWVbcHJvcE5hbWVdID0gdmFsdWU7XG5cbiAgICAgICAgdGhpcy5vbkNoYW5nZShuZXdWYWx1ZS5leHBpcmUgfHwgbmV3VmFsdWUuY3ZjIHx8IG5ld1ZhbHVlLmNhcmQgPyBuZXdWYWx1ZSA6IG51bGwpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZm9jdXNJbnB1dCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9XG4gICAgICAgICAgICAodGhpcy5jYXJkRm9jdXNhYmxlICYmIHRoaXMuaW5wdXRDYXJkPy5uYXRpdmVFbGVtZW50KSB8fFxuICAgICAgICAgICAgKHRoaXMuZXhwaXJlRm9jdXNhYmxlICYmIHRoaXMuaW5wdXRFeHBpcmU/Lm5hdGl2ZUVsZW1lbnQpIHx8XG4gICAgICAgICAgICB0aGlzLmlucHV0Q1ZDPy5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgIGVsZW1lbnQ/LmZvY3VzKCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInQtd3JhcHBlclwiPlxuICAgIDxsYWJlbFxuICAgICAgICAqdHVpTGV0PVwidmFsdWUoKT8uY2FyZCB8IHR1aUZvcm1hdENhcmQ6IGNhcmRQcmVmaWxsZWQgYXMgZm9ybWF0dGVkQ2FyZFwiXG4gICAgICAgIChjbGljay56b25lbGVzcy5wcmV2ZW50KT1cIigwKVwiXG4gICAgPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICNpbnB1dENhcmRcbiAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cImNjLW51bWJlclwiXG4gICAgICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWlucHV0LWNhcmQtZ3JvdXBfX2NhcmRcIlxuICAgICAgICAgICAgaW5wdXRtb2RlPVwibnVtZXJpY1wiXG4gICAgICAgICAgICB0cmFuc2xhdGU9XCJub1wiXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBjbGFzcz1cInQtaW5wdXQgdC1pbnB1dF9jYXJkXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCIhY2FyZFByZWZpbGxlZCAmJiAhKHRoaXMuY2FyZCB8IHR1aU1hcHBlcjogY2FyZFZhbGlkYXRvcilcIlxuICAgICAgICAgICAgW2F0dHIuaWRdPVwiaWQgKyAnX2NhcmQnXCJcbiAgICAgICAgICAgIFtjbGFzcy50LWlucHV0X2ZpbGxlZF09XCJjYXJkLmxlbmd0aFwiXG4gICAgICAgICAgICBbY2xhc3MudC1pbnB1dF9pbmVydF09XCJjYXJkUHJlZmlsbGVkXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcbiAgICAgICAgICAgIFttYXNraXRvXT1cIm1hc2tDYXJkXCJcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cImZvcm1hdHRlZENhcmRcIlxuICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY2FyZFByZWZpbGxlZCA/ICcnIDogcGxhY2Vob2xkZXIgfHwgZXhhbXBsZVRleHRcIlxuICAgICAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5KClcIlxuICAgICAgICAgICAgW3RhYkluZGV4XT1cImNhcmRGb2N1c2FibGUgPyAwIDogLTFcIlxuICAgICAgICAgICAgKGZvY3VzKT1cIigwKVwiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkNhcmRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgdHJhbnNsYXRlPVwibm9cIlxuICAgICAgICAgICAgY2xhc3M9XCJ0LWNvbGxhcHNlZFwiXG4gICAgICAgICAgICBbYXR0ci5kYXRhLWJlZm9yZV09XCJtYXNrZWRcIlxuICAgICAgICAgICAgW2NsYXNzLnQtY29sbGFwc2VkX2VuYWJsZS1tYXNrXT1cImNhcmRDb2xsYXBzZWRcIlxuICAgICAgICAgICAgKHdhUmVzaXplT2JzZXJ2ZXIpPVwib25SZXNpemUoKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgI2dob3N0XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWdob3N0XCJcbiAgICAgICAgICAgICAgICBbdGV4dENvbnRlbnRdPVwiZm9ybWF0dGVkQ2FyZC5zbGljZSgtdGFpbExlbmd0aClcIlxuICAgICAgICAgICAgPjwvc3Bhbj5cblxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0LWNvbGxhcHNlZC13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0LXZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlXT1cImdldFN0eWxlKGdob3N0KVwiXG4gICAgICAgICAgICAgICAgICAgIFt0ZXh0Q29udGVudF09XCJmb3JtYXR0ZWRDYXJkXCJcbiAgICAgICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwidC1sYWJlbFwiXG4gICAgICAgICAgICBbYXR0ci5kYXRhLWxhYmVsXT1cInRleHRzKCk/LmNhcmROdW1iZXJUZXh0XCJcbiAgICAgICAgICAgIFtjbGFzcy50LWxhYmVsX3JhaXNlZF09XCJsYWJlbFJhaXNlZCgpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9sYWJlbD5cbjwvZGl2PlxuPGRpdlxuICAgIGNsYXNzPVwidC13cmFwcGVyIHQtd3JhcHBlcl9leHBpcmVcIlxuICAgIFtjbGFzcy50LXdyYXBwZXJfYWN0aXZlXT1cImNhcmRDb2xsYXBzZWRcIlxuPlxuICAgIDxsYWJlbCAoY2xpY2suem9uZWxlc3MucHJldmVudCk9XCIoMClcIj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAjaW5wdXRFeHBpcmVcbiAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cImNjLWV4cFwiXG4gICAgICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWlucHV0LWNhcmQtZ3JvdXBfX2V4cGlyZVwiXG4gICAgICAgICAgICBpbnB1dG1vZGU9XCJudW1lcmljXCJcbiAgICAgICAgICAgIG1heGxlbmd0aD1cIjVcIlxuICAgICAgICAgICAgbmFtZT1cImNjZXhwaXJ5eWVhclwiXG4gICAgICAgICAgICB0cmFuc2xhdGU9XCJub1wiXG4gICAgICAgICAgICBjbGFzcz1cInQtaW5wdXRcIlxuICAgICAgICAgICAgW2F0dHIuaWRdPVwiaWQgKyAnX2V4cGlyZSdcIlxuICAgICAgICAgICAgW2NsYXNzLnQtaW5wdXRfaW5lcnRdPVwiIWV4cGlyZUZvY3VzYWJsZVwiXG4gICAgICAgICAgICBbY2xhc3MudC1pbnB1dF9wcmVmaWxsZWRdPVwiIWlucHV0cy5leHBpcmVcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAgICAgICAgICAgW21hc2tpdG9dPVwibWFza0V4cGlyZVwiXG4gICAgICAgICAgICBbbmdNb2RlbF09XCJleHBpcmVcIlxuICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiaW5wdXRzLmV4cGlyZSA/ICcwMC8wMCcgOiAn4oCi4oCiL+KAouKAoidcIlxuICAgICAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5KCkgfHwgIWlucHV0cy5leHBpcmVcIlxuICAgICAgICAgICAgW3RhYkluZGV4XT1cImV4cGlyZUZvY3VzYWJsZSB8fCAoaXNNb2JpbGUgJiYgaXNXZWJraXQpID8gMCA6IC0xXCJcbiAgICAgICAgICAgIChmb2N1cyk9XCIoMClcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25FeHBpcmVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwidC1sYWJlbFwiXG4gICAgICAgICAgICBbY2xhc3MudC1sYWJlbF9yYWlzZWRdPVwibGFiZWxSYWlzZWQoKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IHRleHRzKCk/LmV4cGlyeVRleHQgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9sYWJlbD5cbjwvZGl2PlxuPGRpdlxuICAgIGNsYXNzPVwidC13cmFwcGVyIHQtd3JhcHBlcl9jdmNcIlxuICAgIFtjbGFzcy50LXdyYXBwZXJfYWN0aXZlXT1cImNhcmRDb2xsYXBzZWRcIlxuPlxuICAgIDxsYWJlbCAoY2xpY2suem9uZWxlc3MucHJldmVudCk9XCIoMClcIj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAjaW5wdXRDVkNcbiAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cImNjLWNzY1wiXG4gICAgICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWlucHV0LWNhcmQtZ3JvdXBfX2N2Y1wiXG4gICAgICAgICAgICBpbnB1dG1vZGU9XCJudW1lcmljXCJcbiAgICAgICAgICAgIHRyYW5zbGF0ZT1cIm5vXCJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIGNsYXNzPVwidC1pbnB1dFwiXG4gICAgICAgICAgICBbYXR0ci5pZF09XCJpZCArICdfY3ZjJ1wiXG4gICAgICAgICAgICBbY2xhc3MudC1pbnB1dF9jdmNfaGlkZGVuXT1cImN2Y0hpZGRlblwiXG4gICAgICAgICAgICBbY2xhc3MudC1pbnB1dF9wcmVmaWxsZWRdPVwiY3ZjUHJlZmlsbGVkXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcbiAgICAgICAgICAgIFttYXNraXRvXT1cIm1hc2tDVkNcIlxuICAgICAgICAgICAgW25nTW9kZWxdPVwiY3ZjXCJcbiAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImN2Y1ByZWZpbGxlZCA/ICfigKLigKLigKInIDogZXhhbXBsZVRleHRDVkNcIlxuICAgICAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5KCkgfHwgY3ZjUHJlZmlsbGVkXCJcbiAgICAgICAgICAgIFt0YWJJbmRleF09XCJjdmNGb2N1c2FibGUgfHwgKGlzTW9iaWxlICYmIGlzV2Via2l0KSA/IDAgOiAtMVwiXG4gICAgICAgICAgICAoZm9jdXMpPVwiKDApXCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ1ZDQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAvPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInQtbGFiZWxcIlxuICAgICAgICAgICAgW2NsYXNzLnQtbGFiZWxfcmFpc2VkXT1cImxhYmVsUmFpc2VkKClcIlxuICAgICAgICA+XG4gICAgICAgICAgICB7eyB0ZXh0cygpPy5jdmNUZXh0IH19XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbGFiZWw+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJ0LWljb25zXCI+XG4gICAgPGRpdlxuICAgICAgICAqbmdJZj1cImNvbnRlbnRcIlxuICAgICAgICBjbGFzcz1cInQtaWNvbi1vdXRsZXRcIlxuICAgID5cbiAgICAgICAgPGltZ1xuICAgICAgICAgICAgKnBvbHltb3JwaGV1c091dGxldD1cImNvbnRlbnQgYXMgc3JjXCJcbiAgICAgICAgICAgIGFsdD1cIlwiXG4gICAgICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWlucHV0LWNhcmQtZ3JvdXBfX2ljb25cIlxuICAgICAgICAgICAgY2xhc3M9XCJ0LWNhcmRcIlxuICAgICAgICAgICAgW3NyY109XCJzcmMgfCB0dWlJY29uXCJcbiAgICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgICA8dHVpLWljb25cbiAgICAgICAgKm5nSWY9XCJoYXNDbGVhbmVyKClcIlxuICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWlucHV0LWNhcmQtZ3JvdXBfX2NsZWFuZXJcIlxuICAgICAgICB0dWlBcHBlYXJhbmNlPVwiaWNvblwiXG4gICAgICAgIGNsYXNzPVwidC1pY29uXCJcbiAgICAgICAgW2ljb25dPVwiaWNvbnMuY2xvc2VcIlxuICAgICAgICBbc3R5bGUuYm9yZGVyLXdpZHRoLnJlbV09XCIwLjI1XCJcbiAgICAgICAgKGNsaWNrKT1cImNsZWFyKClcIlxuICAgIC8+XG4gICAgPHR1aS1pY29uXG4gICAgICAgICpuZ0lmPVwiZHJvcGRvd24uX2NvbnRlbnQoKVwiXG4gICAgICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktaW5wdXQtY2FyZC1ncm91cF9fZHJvcGRvd25cIlxuICAgICAgICB0dWlBcHBlYXJhbmNlPVwiaWNvblwiXG4gICAgICAgIHR1aUNoZXZyb25cbiAgICAgICAgY2xhc3M9XCJ0LWljb25cIlxuICAgICAgICAoY2xpY2spPVwidG9nZ2xlKClcIlxuICAgIC8+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { Directive, inject, Input } from '@angular/core';
|
|
2
|
-
import { toSignal } from '@angular/core/rxjs-interop';
|
|
3
|
-
import { TuiBreakpointService } from '@taiga-ui/core/services';
|
|
4
|
-
import { BehaviorSubject, combineLatest, map } from 'rxjs';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
class TuiInputCardGroupDirective {
|
|
7
|
-
constructor() {
|
|
8
|
-
this.c$ = new BehaviorSubject(false);
|
|
9
|
-
this.m$ = inject(TuiBreakpointService).pipe(map((b) => b === 'mobile'));
|
|
10
|
-
this.compact$ = combineLatest([this.c$, this.m$]).pipe(map((c) => c.some(Boolean)));
|
|
11
|
-
this.compact = toSignal(this.compact$, { initialValue: false });
|
|
12
|
-
}
|
|
13
|
-
set compactSetter(compact) {
|
|
14
|
-
this.c$.next(compact);
|
|
15
|
-
}
|
|
16
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputCardGroupDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
17
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiInputCardGroupDirective, isStandalone: true, inputs: { compactSetter: ["compact", "compactSetter"] }, host: { properties: { "class._compact": "compact()" } }, ngImport: i0 }); }
|
|
18
|
-
}
|
|
19
|
-
export { TuiInputCardGroupDirective };
|
|
20
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputCardGroupDirective, decorators: [{
|
|
21
|
-
type: Directive,
|
|
22
|
-
args: [{
|
|
23
|
-
standalone: true,
|
|
24
|
-
host: { '[class._compact]': 'compact()' },
|
|
25
|
-
}]
|
|
26
|
-
}], propDecorators: { compactSetter: [{
|
|
27
|
-
type: Input,
|
|
28
|
-
args: ['compact']
|
|
29
|
-
}] } });
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtY2FyZC1ncm91cC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1jb21tZXJjZS9jb21wb25lbnRzL2lucHV0LWNhcmQtZ3JvdXAvaW5wdXQtY2FyZC1ncm91cC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQUMsTUFBTSxNQUFNLENBQUM7O0FBRXpELE1BSWEsMEJBQTBCO0lBSnZDO1FBS3FCLE9BQUUsR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyxPQUFFLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFFcEUsYUFBUSxHQUFHLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUM3RCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FDOUIsQ0FBQztRQUVjLFlBQU8sR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFDLFlBQVksRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDO0tBTTVFO0lBSkcsSUFDVyxhQUFhLENBQUMsT0FBZ0I7UUFDckMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUIsQ0FBQzsrR0FiUSwwQkFBMEI7bUdBQTFCLDBCQUEwQjs7U0FBMUIsMEJBQTBCOzRGQUExQiwwQkFBMEI7a0JBSnRDLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLElBQUksRUFBRSxFQUFDLGtCQUFrQixFQUFFLFdBQVcsRUFBQztpQkFDMUM7OEJBWWMsYUFBYTtzQkFEdkIsS0FBSzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIGluamVjdCwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0b1NpZ25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtUdWlCcmVha3BvaW50U2VydmljZX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvc2VydmljZXMnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG1hcH0gZnJvbSAncnhqcyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaG9zdDogeydbY2xhc3MuX2NvbXBhY3RdJzogJ2NvbXBhY3QoKSd9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlJbnB1dENhcmRHcm91cERpcmVjdGl2ZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbSQgPSBpbmplY3QoVHVpQnJlYWtwb2ludFNlcnZpY2UpLnBpcGUobWFwKChiKSA9PiBiID09PSAnbW9iaWxlJykpO1xuXG4gICAgcHVibGljIHJlYWRvbmx5IGNvbXBhY3QkID0gY29tYmluZUxhdGVzdChbdGhpcy5jJCwgdGhpcy5tJF0pLnBpcGUoXG4gICAgICAgIG1hcCgoYykgPT4gYy5zb21lKEJvb2xlYW4pKSxcbiAgICApO1xuXG4gICAgcHVibGljIHJlYWRvbmx5IGNvbXBhY3QgPSB0b1NpZ25hbCh0aGlzLmNvbXBhY3QkLCB7aW5pdGlhbFZhbHVlOiBmYWxzZX0pO1xuXG4gICAgQElucHV0KCdjb21wYWN0JylcbiAgICBwdWJsaWMgc2V0IGNvbXBhY3RTZXR0ZXIoY29tcGFjdDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmMkLm5leHQoY29tcGFjdCk7XG4gICAgfVxufVxuIl19
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
2
|
-
import { TUI_INPUT_CARD_DEFAULT_OPTIONS, } from '@taiga-ui/addon-commerce/components/input-card';
|
|
3
|
-
import { tuiDefaultCardValidator } from '@taiga-ui/addon-commerce/constants';
|
|
4
|
-
import { tuiProvideOptions } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
5
|
-
export const TUI_INPUT_CARD_GROUP_DEFAULT_OPTIONS = {
|
|
6
|
-
...TUI_INPUT_CARD_DEFAULT_OPTIONS,
|
|
7
|
-
cardValidator: tuiDefaultCardValidator,
|
|
8
|
-
exampleText: '0000 0000 0000 0000',
|
|
9
|
-
exampleTextCVC: '000',
|
|
10
|
-
cvcHidden: true,
|
|
11
|
-
inputs: { cvc: true, expire: true },
|
|
12
|
-
};
|
|
13
|
-
export const TUI_INPUT_CARD_GROUP_OPTIONS = new InjectionToken(ngDevMode ? 'TUI_INPUT_CARD_GROUP_OPTIONS' : '', {
|
|
14
|
-
factory: () => TUI_INPUT_CARD_GROUP_DEFAULT_OPTIONS,
|
|
15
|
-
});
|
|
16
|
-
export function tuiInputCardGroupOptionsProvider(options) {
|
|
17
|
-
return tuiProvideOptions(TUI_INPUT_CARD_GROUP_OPTIONS, options, TUI_INPUT_CARD_GROUP_DEFAULT_OPTIONS);
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtY2FyZC1ncm91cC5vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tY29tbWVyY2UvY29tcG9uZW50cy9pbnB1dC1jYXJkLWdyb3VwL2lucHV0LWNhcmQtZ3JvdXAub3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsY0FBYyxFQUFnQixNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQ0gsOEJBQThCLEdBRWpDLE1BQU0sZ0RBQWdELENBQUM7QUFDeEQsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFFM0UsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFlcEUsTUFBTSxDQUFDLE1BQU0sb0NBQW9DLEdBQTZCO0lBQzFFLEdBQUcsOEJBQThCO0lBQ2pDLGFBQWEsRUFBRSx1QkFBdUI7SUFDdEMsV0FBVyxFQUFFLHFCQUFxQjtJQUNsQyxjQUFjLEVBQUUsS0FBSztJQUNyQixTQUFTLEVBQUUsSUFBSTtJQUNmLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBQztDQUNwQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsSUFBSSxjQUFjLENBQzFELFNBQVMsQ0FBQyxDQUFDLENBQUMsOEJBQThCLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFDL0M7SUFDSSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsb0NBQW9DO0NBQ3RELENBQ0osQ0FBQztBQUVGLE1BQU0sVUFBVSxnQ0FBZ0MsQ0FDNUMsT0FBMEM7SUFFMUMsT0FBTyxpQkFBaUIsQ0FDcEIsNEJBQTRCLEVBQzVCLE9BQU8sRUFDUCxvQ0FBb0MsQ0FDdkMsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGlvblRva2VuLCB0eXBlIFByb3ZpZGVyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgVFVJX0lOUFVUX0NBUkRfREVGQVVMVF9PUFRJT05TLFxuICAgIHR5cGUgVHVpSW5wdXRDYXJkT3B0aW9ucyxcbn0gZnJvbSAnQHRhaWdhLXVpL2FkZG9uLWNvbW1lcmNlL2NvbXBvbmVudHMvaW5wdXQtY2FyZCc7XG5pbXBvcnQge3R1aURlZmF1bHRDYXJkVmFsaWRhdG9yfSBmcm9tICdAdGFpZ2EtdWkvYWRkb24tY29tbWVyY2UvY29uc3RhbnRzJztcbmltcG9ydCB7dHlwZSBUdWlCb29sZWFuSGFuZGxlcn0gZnJvbSAnQHRhaWdhLXVpL2Nkay90eXBlcyc7XG5pbXBvcnQge3R1aVByb3ZpZGVPcHRpb25zfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL21pc2NlbGxhbmVvdXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFR1aUNhcmRJbnB1dHMge1xuICAgIGN2YzogYm9vbGVhbjtcbiAgICBleHBpcmU6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHVpSW5wdXRDYXJkR3JvdXBPcHRpb25zIGV4dGVuZHMgVHVpSW5wdXRDYXJkT3B0aW9ucyB7XG4gICAgcmVhZG9ubHkgY2FyZFZhbGlkYXRvcjogVHVpQm9vbGVhbkhhbmRsZXI8c3RyaW5nPjtcbiAgICByZWFkb25seSBleGFtcGxlVGV4dDogc3RyaW5nO1xuICAgIHJlYWRvbmx5IGV4YW1wbGVUZXh0Q1ZDOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgY3ZjSGlkZGVuOiBib29sZWFuO1xuICAgIHJlYWRvbmx5IGlucHV0czogVHVpQ2FyZElucHV0cztcbn1cblxuZXhwb3J0IGNvbnN0IFRVSV9JTlBVVF9DQVJEX0dST1VQX0RFRkFVTFRfT1BUSU9OUzogVHVpSW5wdXRDYXJkR3JvdXBPcHRpb25zID0ge1xuICAgIC4uLlRVSV9JTlBVVF9DQVJEX0RFRkFVTFRfT1BUSU9OUyxcbiAgICBjYXJkVmFsaWRhdG9yOiB0dWlEZWZhdWx0Q2FyZFZhbGlkYXRvcixcbiAgICBleGFtcGxlVGV4dDogJzAwMDAgMDAwMCAwMDAwIDAwMDAnLFxuICAgIGV4YW1wbGVUZXh0Q1ZDOiAnMDAwJyxcbiAgICBjdmNIaWRkZW46IHRydWUsXG4gICAgaW5wdXRzOiB7Y3ZjOiB0cnVlLCBleHBpcmU6IHRydWV9LFxufTtcblxuZXhwb3J0IGNvbnN0IFRVSV9JTlBVVF9DQVJEX0dST1VQX09QVElPTlMgPSBuZXcgSW5qZWN0aW9uVG9rZW4oXG4gICAgbmdEZXZNb2RlID8gJ1RVSV9JTlBVVF9DQVJEX0dST1VQX09QVElPTlMnIDogJycsXG4gICAge1xuICAgICAgICBmYWN0b3J5OiAoKSA9PiBUVUlfSU5QVVRfQ0FSRF9HUk9VUF9ERUZBVUxUX09QVElPTlMsXG4gICAgfSxcbik7XG5cbmV4cG9ydCBmdW5jdGlvbiB0dWlJbnB1dENhcmRHcm91cE9wdGlvbnNQcm92aWRlcihcbiAgICBvcHRpb25zOiBQYXJ0aWFsPFR1aUlucHV0Q2FyZEdyb3VwT3B0aW9ucz4sXG4pOiBQcm92aWRlciB7XG4gICAgcmV0dXJuIHR1aVByb3ZpZGVPcHRpb25zKFxuICAgICAgICBUVUlfSU5QVVRfQ0FSRF9HUk9VUF9PUFRJT05TLFxuICAgICAgICBvcHRpb25zLFxuICAgICAgICBUVUlfSU5QVVRfQ0FSRF9HUk9VUF9ERUZBVUxUX09QVElPTlMsXG4gICAgKTtcbn1cbiJdfQ==
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { inject, InjectionToken } from '@angular/core';
|
|
2
|
-
import { TUI_CARD_CVC_TEXTS, TUI_CARD_EXPIRY_TEXTS, TUI_CARD_NUMBER_TEXTS, } from '@taiga-ui/addon-commerce/tokens';
|
|
3
|
-
import { combineLatest, map } from 'rxjs';
|
|
4
|
-
import { TuiInputCardGroupDirective } from './input-card-group.directive';
|
|
5
|
-
export const TUI_INPUT_CARD_GROUP_TEXTS = new InjectionToken(ngDevMode ? 'TUI_INPUT_CARD_GROUP_TEXTS' : '');
|
|
6
|
-
export const TUI_INPUT_CARD_GROUP_TEXTS_PROVIDER = {
|
|
7
|
-
provide: TUI_INPUT_CARD_GROUP_TEXTS,
|
|
8
|
-
useFactory: () => inject(TUI_INPUT_CARD_GROUP_TEXTS, { skipSelf: true, optional: true }) ??
|
|
9
|
-
combineLatest([
|
|
10
|
-
inject(TuiInputCardGroupDirective).compact$,
|
|
11
|
-
inject(TUI_CARD_NUMBER_TEXTS),
|
|
12
|
-
inject(TUI_CARD_EXPIRY_TEXTS),
|
|
13
|
-
inject(TUI_CARD_CVC_TEXTS),
|
|
14
|
-
]).pipe(map(([compact, cardNumber, expiry, cvcTexts]) => ({
|
|
15
|
-
cardNumberText: cardNumber[Number(!compact)] ?? '',
|
|
16
|
-
expiryText: expiry[Number(!compact)] ?? '',
|
|
17
|
-
cvcText: cvcTexts[Number(!compact)] ?? '',
|
|
18
|
-
}))),
|
|
19
|
-
};
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtY2FyZC1ncm91cC5wcm92aWRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1jb21tZXJjZS9jb21wb25lbnRzL2lucHV0LWNhcmQtZ3JvdXAvaW5wdXQtY2FyZC1ncm91cC5wcm92aWRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxjQUFjLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUNILGtCQUFrQixFQUNsQixxQkFBcUIsRUFDckIscUJBQXFCLEdBQ3hCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUFDLGFBQWEsRUFBRSxHQUFHLEVBQWtCLE1BQU0sTUFBTSxDQUFDO0FBRXpELE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBUXhFLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLElBQUksY0FBYyxDQUUxRCxTQUFTLENBQUMsQ0FBQyxDQUFDLDRCQUE0QixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUVqRCxNQUFNLENBQUMsTUFBTSxtQ0FBbUMsR0FBRztJQUMvQyxPQUFPLEVBQUUsMEJBQTBCO0lBQ25DLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FDYixNQUFNLENBQUMsMEJBQTBCLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQztRQUNwRSxhQUFhLENBQUM7WUFDVixNQUFNLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxRQUFRO1lBQzNDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQztZQUM3QixNQUFNLENBQUMscUJBQXFCLENBQUM7WUFDN0IsTUFBTSxDQUFDLGtCQUFrQixDQUFDO1NBQzdCLENBQUMsQ0FBQyxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM5QyxjQUFjLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRTtZQUNsRCxVQUFVLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRTtZQUMxQyxPQUFPLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRTtTQUM1QyxDQUFDLENBQUMsQ0FDTjtDQUNSLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2luamVjdCwgSW5qZWN0aW9uVG9rZW59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBUVUlfQ0FSRF9DVkNfVEVYVFMsXG4gICAgVFVJX0NBUkRfRVhQSVJZX1RFWFRTLFxuICAgIFRVSV9DQVJEX05VTUJFUl9URVhUUyxcbn0gZnJvbSAnQHRhaWdhLXVpL2FkZG9uLWNvbW1lcmNlL3Rva2Vucyc7XG5pbXBvcnQge2NvbWJpbmVMYXRlc3QsIG1hcCwgdHlwZSBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtUdWlJbnB1dENhcmRHcm91cERpcmVjdGl2ZX0gZnJvbSAnLi9pbnB1dC1jYXJkLWdyb3VwLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHVpQ2FyZEdyb3VwZWRUZXh0cyB7XG4gICAgcmVhZG9ubHkgY2FyZE51bWJlclRleHQ6IHN0cmluZztcbiAgICByZWFkb25seSBjdmNUZXh0OiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgZXhwaXJ5VGV4dDogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgVFVJX0lOUFVUX0NBUkRfR1JPVVBfVEVYVFMgPSBuZXcgSW5qZWN0aW9uVG9rZW48XG4gICAgT2JzZXJ2YWJsZTxUdWlDYXJkR3JvdXBlZFRleHRzPlxuPihuZ0Rldk1vZGUgPyAnVFVJX0lOUFVUX0NBUkRfR1JPVVBfVEVYVFMnIDogJycpO1xuXG5leHBvcnQgY29uc3QgVFVJX0lOUFVUX0NBUkRfR1JPVVBfVEVYVFNfUFJPVklERVIgPSB7XG4gICAgcHJvdmlkZTogVFVJX0lOUFVUX0NBUkRfR1JPVVBfVEVYVFMsXG4gICAgdXNlRmFjdG9yeTogKCkgPT5cbiAgICAgICAgaW5qZWN0KFRVSV9JTlBVVF9DQVJEX0dST1VQX1RFWFRTLCB7c2tpcFNlbGY6IHRydWUsIG9wdGlvbmFsOiB0cnVlfSkgPz9cbiAgICAgICAgY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICBpbmplY3QoVHVpSW5wdXRDYXJkR3JvdXBEaXJlY3RpdmUpLmNvbXBhY3QkLFxuICAgICAgICAgICAgaW5qZWN0KFRVSV9DQVJEX05VTUJFUl9URVhUUyksXG4gICAgICAgICAgICBpbmplY3QoVFVJX0NBUkRfRVhQSVJZX1RFWFRTKSxcbiAgICAgICAgICAgIGluamVjdChUVUlfQ0FSRF9DVkNfVEVYVFMpLFxuICAgICAgICBdKS5waXBlKFxuICAgICAgICAgICAgbWFwKChbY29tcGFjdCwgY2FyZE51bWJlciwgZXhwaXJ5LCBjdmNUZXh0c10pID0+ICh7XG4gICAgICAgICAgICAgICAgY2FyZE51bWJlclRleHQ6IGNhcmROdW1iZXJbTnVtYmVyKCFjb21wYWN0KV0gPz8gJycsXG4gICAgICAgICAgICAgICAgZXhwaXJ5VGV4dDogZXhwaXJ5W051bWJlcighY29tcGFjdCldID8/ICcnLFxuICAgICAgICAgICAgICAgIGN2Y1RleHQ6IGN2Y1RleHRzW051bWJlcighY29tcGFjdCldID8/ICcnLFxuICAgICAgICAgICAgfSkpLFxuICAgICAgICApLFxufTtcbiJdfQ==
|
package/esm2022/components/input-card-group/taiga-ui-addon-commerce-components-input-card-group.mjs
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './index';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFpZ2EtdWktYWRkb24tY29tbWVyY2UtY29tcG9uZW50cy1pbnB1dC1jYXJkLWdyb3VwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tY29tbWVyY2UvY29tcG9uZW50cy9pbnB1dC1jYXJkLWdyb3VwL3RhaWdhLXVpLWFkZG9uLWNvbW1lcmNlLWNvbXBvbmVudHMtaW5wdXQtY2FyZC1ncm91cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from './input-cvc.directive';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1jb21tZXJjZS9jb21wb25lbnRzL2lucHV0LWN2Yy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9pbnB1dC1jdmMuZGlyZWN0aXZlJztcbiJdfQ==
|