@taiga-ui/addon-commerce 4.66.0 → 5.0.0-rc.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.
Files changed (124) hide show
  1. package/README.md +2 -2
  2. package/components/index.d.ts +0 -2
  3. package/components/input-card/index.d.ts +3 -1
  4. package/components/input-card/input-card.component.d.ts +7 -13
  5. package/components/input-card/input-card.d.ts +7 -0
  6. package/components/input-card/input-cvc.directive.d.ts +10 -0
  7. package/components/input-card/input-expire.directive.d.ts +8 -0
  8. package/components/input-card-group/input-card-group.component.d.ts +33 -47
  9. package/components/input-card-group/input-card-group.directive.d.ts +3 -6
  10. package/components/input-card-group/input-card-group.options.d.ts +4 -7
  11. package/components/input-card-group/input-card-group.providers.d.ts +4 -5
  12. package/components/thumbnail-card/thumbnail-card.component.d.ts +5 -8
  13. package/components/thumbnail-card/thumbnail-card.options.d.ts +0 -2
  14. package/fesm2022/taiga-ui-addon-commerce-components-input-card-group.mjs +112 -203
  15. package/fesm2022/taiga-ui-addon-commerce-components-input-card-group.mjs.map +1 -1
  16. package/fesm2022/taiga-ui-addon-commerce-components-input-card.mjs +95 -66
  17. package/fesm2022/taiga-ui-addon-commerce-components-input-card.mjs.map +1 -1
  18. package/fesm2022/taiga-ui-addon-commerce-components-thumbnail-card.mjs +11 -26
  19. package/fesm2022/taiga-ui-addon-commerce-components-thumbnail-card.mjs.map +1 -1
  20. package/fesm2022/taiga-ui-addon-commerce-components.mjs +0 -2
  21. package/fesm2022/taiga-ui-addon-commerce-components.mjs.map +1 -1
  22. package/fesm2022/taiga-ui-addon-commerce-constants.mjs +4 -26
  23. package/fesm2022/taiga-ui-addon-commerce-constants.mjs.map +1 -1
  24. package/fesm2022/taiga-ui-addon-commerce-pipes-amount.mjs +27 -25
  25. package/fesm2022/taiga-ui-addon-commerce-pipes-amount.mjs.map +1 -1
  26. package/fesm2022/taiga-ui-addon-commerce-pipes-currency.mjs +6 -9
  27. package/fesm2022/taiga-ui-addon-commerce-pipes-currency.mjs.map +1 -1
  28. package/fesm2022/taiga-ui-addon-commerce-pipes-decimal.mjs +18 -10
  29. package/fesm2022/taiga-ui-addon-commerce-pipes-decimal.mjs.map +1 -1
  30. package/fesm2022/taiga-ui-addon-commerce-pipes-format-card.mjs +4 -7
  31. package/fesm2022/taiga-ui-addon-commerce-pipes-format-card.mjs.map +1 -1
  32. package/fesm2022/taiga-ui-addon-commerce-tokens.mjs +13 -14
  33. package/fesm2022/taiga-ui-addon-commerce-tokens.mjs.map +1 -1
  34. package/fesm2022/taiga-ui-addon-commerce-types.mjs.map +1 -1
  35. package/fesm2022/taiga-ui-addon-commerce-utils.mjs.map +1 -1
  36. package/fesm2022/taiga-ui-addon-commerce-validators.mjs.map +1 -1
  37. package/package.json +20 -59
  38. package/pipes/amount/amount.options.d.ts +1 -3
  39. package/pipes/amount/amount.pipe.d.ts +5 -2
  40. package/pipes/currency/currency.pipe.d.ts +2 -2
  41. package/pipes/decimal/decimal.pipe.d.ts +4 -2
  42. package/tokens/i18n.d.ts +4 -5
  43. package/components/input-card/input-card.options.d.ts +0 -12
  44. package/components/input-cvc/index.d.ts +0 -1
  45. package/components/input-cvc/input-cvc.directive.d.ts +0 -14
  46. package/components/input-expire/index.d.ts +0 -1
  47. package/components/input-expire/input-expire.directive.d.ts +0 -10
  48. package/esm2022/components/index.mjs +0 -6
  49. package/esm2022/components/input-card/index.mjs +0 -3
  50. package/esm2022/components/input-card/input-card.component.mjs +0 -86
  51. package/esm2022/components/input-card/input-card.options.mjs +0 -15
  52. package/esm2022/components/input-card/taiga-ui-addon-commerce-components-input-card.mjs +0 -5
  53. package/esm2022/components/input-card-group/index.mjs +0 -5
  54. package/esm2022/components/input-card-group/input-card-group.component.mjs +0 -335
  55. package/esm2022/components/input-card-group/input-card-group.directive.mjs +0 -30
  56. package/esm2022/components/input-card-group/input-card-group.options.mjs +0 -19
  57. package/esm2022/components/input-card-group/input-card-group.providers.mjs +0 -20
  58. package/esm2022/components/input-card-group/taiga-ui-addon-commerce-components-input-card-group.mjs +0 -5
  59. package/esm2022/components/input-cvc/index.mjs +0 -2
  60. package/esm2022/components/input-cvc/input-cvc.directive.mjs +0 -47
  61. package/esm2022/components/input-cvc/taiga-ui-addon-commerce-components-input-cvc.mjs +0 -5
  62. package/esm2022/components/input-expire/index.mjs +0 -2
  63. package/esm2022/components/input-expire/input-expire.directive.mjs +0 -38
  64. package/esm2022/components/input-expire/taiga-ui-addon-commerce-components-input-expire.mjs +0 -5
  65. package/esm2022/components/taiga-ui-addon-commerce-components.mjs +0 -5
  66. package/esm2022/components/thumbnail-card/index.mjs +0 -3
  67. package/esm2022/components/thumbnail-card/taiga-ui-addon-commerce-components-thumbnail-card.mjs +0 -5
  68. package/esm2022/components/thumbnail-card/thumbnail-card.component.mjs +0 -35
  69. package/esm2022/components/thumbnail-card/thumbnail-card.options.mjs +0 -10
  70. package/esm2022/constants/default-card-validator.mjs +0 -3
  71. package/esm2022/constants/index.mjs +0 -6
  72. package/esm2022/constants/mask-card-holder.mjs +0 -51
  73. package/esm2022/constants/mask-card.mjs +0 -29
  74. package/esm2022/constants/mask-cvc.mjs +0 -5
  75. package/esm2022/constants/mask-expire.mjs +0 -6
  76. package/esm2022/constants/taiga-ui-addon-commerce-constants.mjs +0 -5
  77. package/esm2022/index.mjs +0 -8
  78. package/esm2022/pipes/amount/amount.options.mjs +0 -14
  79. package/esm2022/pipes/amount/amount.pipe.mjs +0 -45
  80. package/esm2022/pipes/amount/amount.types.mjs +0 -2
  81. package/esm2022/pipes/amount/amount.utils.mjs +0 -11
  82. package/esm2022/pipes/amount/index.mjs +0 -4
  83. package/esm2022/pipes/amount/taiga-ui-addon-commerce-pipes-amount.mjs +0 -5
  84. package/esm2022/pipes/currency/currency.pipe.mjs +0 -19
  85. package/esm2022/pipes/currency/index.mjs +0 -2
  86. package/esm2022/pipes/currency/taiga-ui-addon-commerce-pipes-currency.mjs +0 -5
  87. package/esm2022/pipes/decimal/decimal.pipe.mjs +0 -28
  88. package/esm2022/pipes/decimal/index.mjs +0 -2
  89. package/esm2022/pipes/decimal/taiga-ui-addon-commerce-pipes-decimal.mjs +0 -5
  90. package/esm2022/pipes/format-card/format-card.pipe.mjs +0 -24
  91. package/esm2022/pipes/format-card/index.mjs +0 -2
  92. package/esm2022/pipes/format-card/taiga-ui-addon-commerce-pipes-format-card.mjs +0 -5
  93. package/esm2022/pipes/index.mjs +0 -5
  94. package/esm2022/pipes/taiga-ui-addon-commerce-pipes.mjs +0 -5
  95. package/esm2022/taiga-ui-addon-commerce.mjs +0 -5
  96. package/esm2022/tokens/i18n.mjs +0 -22
  97. package/esm2022/tokens/index.mjs +0 -3
  98. package/esm2022/tokens/payment-system-icons.mjs +0 -20
  99. package/esm2022/tokens/taiga-ui-addon-commerce-tokens.mjs +0 -5
  100. package/esm2022/types/currency-code.mjs +0 -410
  101. package/esm2022/types/currency-variants.mjs +0 -2
  102. package/esm2022/types/currency.mjs +0 -419
  103. package/esm2022/types/index.mjs +0 -3
  104. package/esm2022/types/payment-system.mjs +0 -2
  105. package/esm2022/types/taiga-ui-addon-commerce-types.mjs +0 -5
  106. package/esm2022/utils/format-currency.mjs +0 -12
  107. package/esm2022/utils/get-code-by-currency.mjs +0 -52
  108. package/esm2022/utils/get-currency-by-code.mjs +0 -52
  109. package/esm2022/utils/get-currency-symbol.mjs +0 -139
  110. package/esm2022/utils/get-payment-system.mjs +0 -105
  111. package/esm2022/utils/index.mjs +0 -9
  112. package/esm2022/utils/is-card-length-valid.mjs +0 -22
  113. package/esm2022/utils/is-card-number-valid.mjs +0 -18
  114. package/esm2022/utils/is-expire-valid.mjs +0 -10
  115. package/esm2022/utils/taiga-ui-addon-commerce-utils.mjs +0 -5
  116. package/esm2022/validators/card-expire.validator.mjs +0 -8
  117. package/esm2022/validators/card-number.validator.mjs +0 -8
  118. package/esm2022/validators/index.mjs +0 -4
  119. package/esm2022/validators/luhn.validator.mjs +0 -6
  120. package/esm2022/validators/taiga-ui-addon-commerce-validators.mjs +0 -5
  121. package/fesm2022/taiga-ui-addon-commerce-components-input-cvc.mjs +0 -53
  122. package/fesm2022/taiga-ui-addon-commerce-components-input-cvc.mjs.map +0 -1
  123. package/fesm2022/taiga-ui-addon-commerce-components-input-expire.mjs +0 -44
  124. package/fesm2022/taiga-ui-addon-commerce-components-input-expire.mjs.map +0 -1
@@ -1,5 +0,0 @@
1
- export * from './input-card-group.component';
2
- export * from './input-card-group.directive';
3
- export * from './input-card-group.options';
4
- export * from './input-card-group.providers';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1jb21tZXJjZS9jb21wb25lbnRzL2lucHV0LWNhcmQtZ3JvdXAvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyw4QkFBOEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vaW5wdXQtY2FyZC1ncm91cC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnB1dC1jYXJkLWdyb3VwLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2lucHV0LWNhcmQtZ3JvdXAub3B0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2lucHV0LWNhcmQtZ3JvdXAucHJvdmlkZXJzJztcbiJdfQ==
@@ -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==
@@ -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==