@taiga-ui/experimental 4.65.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 (74) hide show
  1. package/README.md +2 -2
  2. package/components/index.d.ts +0 -6
  3. package/components/search-results/search-history.component.d.ts +4 -4
  4. package/components/search-results/search-hotkey.directive.d.ts +2 -1
  5. package/components/search-results/search-results.component.d.ts +5 -6
  6. package/components/search-results/search-results.options.d.ts +1 -7
  7. package/fesm2022/taiga-ui-experimental-components-search-results.mjs +36 -53
  8. package/fesm2022/taiga-ui-experimental-components-search-results.mjs.map +1 -1
  9. package/fesm2022/taiga-ui-experimental-components.mjs +0 -6
  10. package/fesm2022/taiga-ui-experimental-components.mjs.map +1 -1
  11. package/package.json +13 -52
  12. package/components/accordion/accordion.component.d.ts +0 -20
  13. package/components/accordion/accordion.d.ts +0 -5
  14. package/components/accordion/accordion.directive.d.ts +0 -15
  15. package/components/accordion/index.d.ts +0 -3
  16. package/components/dialog/dialog.component.d.ts +0 -15
  17. package/components/dialog/dialog.directive.d.ts +0 -7
  18. package/components/dialog/dialog.options.d.ts +0 -27
  19. package/components/dialog/dialog.service.d.ts +0 -7
  20. package/components/dialog/index.d.ts +0 -4
  21. package/components/expand/expand.component.d.ts +0 -13
  22. package/components/expand/index.d.ts +0 -1
  23. package/components/hint/hint.component.d.ts +0 -26
  24. package/components/hint/index.d.ts +0 -1
  25. package/components/input-phone-international/index.d.ts +0 -1
  26. package/components/input-phone-international/input-phone-international.component.d.ts +0 -45
  27. package/components/pdf-viewer/index.d.ts +0 -1
  28. package/components/pdf-viewer/pdf-viewer.component.d.ts +0 -12
  29. package/esm2022/components/accordion/accordion.component.mjs +0 -80
  30. package/esm2022/components/accordion/accordion.directive.mjs +0 -58
  31. package/esm2022/components/accordion/accordion.mjs +0 -11
  32. package/esm2022/components/accordion/index.mjs +0 -4
  33. package/esm2022/components/accordion/taiga-ui-experimental-components-accordion.mjs +0 -5
  34. package/esm2022/components/dialog/dialog.component.mjs +0 -71
  35. package/esm2022/components/dialog/dialog.directive.mjs +0 -21
  36. package/esm2022/components/dialog/dialog.options.mjs +0 -12
  37. package/esm2022/components/dialog/dialog.service.mjs +0 -19
  38. package/esm2022/components/dialog/index.mjs +0 -5
  39. package/esm2022/components/dialog/taiga-ui-experimental-components-dialog.mjs +0 -5
  40. package/esm2022/components/expand/expand.component.mjs +0 -59
  41. package/esm2022/components/expand/index.mjs +0 -2
  42. package/esm2022/components/expand/taiga-ui-experimental-components-expand.mjs +0 -5
  43. package/esm2022/components/hint/hint.component.mjs +0 -112
  44. package/esm2022/components/hint/index.mjs +0 -2
  45. package/esm2022/components/hint/taiga-ui-experimental-components-hint.mjs +0 -5
  46. package/esm2022/components/index.mjs +0 -8
  47. package/esm2022/components/input-phone-international/index.mjs +0 -2
  48. package/esm2022/components/input-phone-international/input-phone-international.component.mjs +0 -184
  49. package/esm2022/components/input-phone-international/taiga-ui-experimental-components-input-phone-international.mjs +0 -5
  50. package/esm2022/components/pdf-viewer/index.mjs +0 -2
  51. package/esm2022/components/pdf-viewer/pdf-viewer.component.mjs +0 -42
  52. package/esm2022/components/pdf-viewer/taiga-ui-experimental-components-pdf-viewer.mjs +0 -5
  53. package/esm2022/components/search-results/index.mjs +0 -6
  54. package/esm2022/components/search-results/search-history.component.mjs +0 -59
  55. package/esm2022/components/search-results/search-hotkey.directive.mjs +0 -30
  56. package/esm2022/components/search-results/search-results.component.mjs +0 -88
  57. package/esm2022/components/search-results/search-results.mjs +0 -9
  58. package/esm2022/components/search-results/search-results.options.mjs +0 -9
  59. package/esm2022/components/search-results/taiga-ui-experimental-components-search-results.mjs +0 -5
  60. package/esm2022/components/taiga-ui-experimental-components.mjs +0 -5
  61. package/esm2022/index.mjs +0 -2
  62. package/esm2022/taiga-ui-experimental.mjs +0 -5
  63. package/fesm2022/taiga-ui-experimental-components-accordion.mjs +0 -147
  64. package/fesm2022/taiga-ui-experimental-components-accordion.mjs.map +0 -1
  65. package/fesm2022/taiga-ui-experimental-components-dialog.mjs +0 -118
  66. package/fesm2022/taiga-ui-experimental-components-dialog.mjs.map +0 -1
  67. package/fesm2022/taiga-ui-experimental-components-expand.mjs +0 -65
  68. package/fesm2022/taiga-ui-experimental-components-expand.mjs.map +0 -1
  69. package/fesm2022/taiga-ui-experimental-components-hint.mjs +0 -118
  70. package/fesm2022/taiga-ui-experimental-components-hint.mjs.map +0 -1
  71. package/fesm2022/taiga-ui-experimental-components-input-phone-international.mjs +0 -190
  72. package/fesm2022/taiga-ui-experimental-components-input-phone-international.mjs.map +0 -1
  73. package/fesm2022/taiga-ui-experimental-components-pdf-viewer.mjs +0 -48
  74. package/fesm2022/taiga-ui-experimental-components-pdf-viewer.mjs.map +0 -1
@@ -1,190 +0,0 @@
1
- import { NgForOf, NgIf } from '@angular/common';
2
- import * as i0 from '@angular/core';
3
- import { inject, signal, computed, effect, ElementRef, Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChildren, Input, Output } from '@angular/core';
4
- import { toSignal, takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';
5
- import * as i3 from '@angular/forms';
6
- import { FormsModule } from '@angular/forms';
7
- import * as i1 from '@maskito/angular';
8
- import { MaskitoDirective } from '@maskito/angular';
9
- import { maskitoTransform, MASKITO_DEFAULT_OPTIONS, maskitoInitialCalibrationPlugin } from '@maskito/core';
10
- import { maskitoPhoneOptionsGenerator, maskitoGetCountryFromNumber } from '@maskito/phone';
11
- import { TuiControl, tuiAsControl } from '@taiga-ui/cdk/classes';
12
- import { EMPTY_QUERY, TUI_ALLOW_SIGNAL_WRITES, TUI_DEFAULT_MATCHER, CHAR_PLUS } from '@taiga-ui/cdk/constants';
13
- import { TuiActiveZone } from '@taiga-ui/cdk/directives/active-zone';
14
- import { tuiAutoFocusOptionsProvider, TuiAutoFocus } from '@taiga-ui/cdk/directives/auto-focus';
15
- import { TUI_IS_IOS, tuiFallbackValueProvider } from '@taiga-ui/cdk/tokens';
16
- import { tuiInjectElement, tuiValue, tuiIsInputEvent } from '@taiga-ui/cdk/utils/dom';
17
- import { tuiDirectiveBinding } from '@taiga-ui/cdk/utils/miscellaneous';
18
- import { TuiButton } from '@taiga-ui/core/components/button';
19
- import * as i4 from '@taiga-ui/core/components/data-list';
20
- import { TuiOptionNew, TuiDataList } from '@taiga-ui/core/components/data-list';
21
- import * as i2 from '@taiga-ui/core/components/textfield';
22
- import { TUI_TEXTFIELD_OPTIONS, TuiTextfieldContent, TuiTextfield, TuiWithTextfield } from '@taiga-ui/core/components/textfield';
23
- import { tuiDropdownOpen, TuiDropdownOpen } from '@taiga-ui/core/directives/dropdown';
24
- import { TuiTitle } from '@taiga-ui/core/directives/title';
25
- import { TuiFlagPipe } from '@taiga-ui/core/pipes';
26
- import { TUI_COMMON_ICONS } from '@taiga-ui/core/tokens';
27
- import { TUI_INPUT_PHONE_INTERNATIONAL_OPTIONS } from '@taiga-ui/kit/components/input-phone-international';
28
- import { TuiChevron } from '@taiga-ui/kit/directives/chevron';
29
- import { TUI_INTERNATIONAL_SEARCH, TUI_COUNTRIES } from '@taiga-ui/kit/tokens';
30
- import { tuiMaskito, tuiGetCallingCode } from '@taiga-ui/kit/utils';
31
- import { TuiCell } from '@taiga-ui/layout/components/cell';
32
- import { validatePhoneNumberLength } from 'libphonenumber-js';
33
- import { from, filter, skip } from 'rxjs';
34
-
35
- const NOT_FORM_CONTROL_SYMBOLS = /[^+\d]/g;
36
- class TuiInputPhoneInternational extends TuiControl {
37
- constructor() {
38
- super(...arguments);
39
- this.list = EMPTY_QUERY;
40
- this.el = tuiInjectElement();
41
- this.ios = inject(TUI_IS_IOS);
42
- this.icons = inject(TUI_COMMON_ICONS);
43
- this.options = inject(TUI_INPUT_PHONE_INTERNATIONAL_OPTIONS);
44
- this.countries = signal(this.options.countries);
45
- this.code = signal(this.options.countryIsoCode);
46
- this.label = toSignal(inject(TUI_INTERNATIONAL_SEARCH));
47
- this.metadata = toSignal(from(this.options.metadata));
48
- this.names = toSignal(inject(TUI_COUNTRIES));
49
- this.open = tuiDropdownOpen();
50
- this.search = signal('');
51
- this.size = inject(TUI_TEXTFIELD_OPTIONS).size;
52
- this.mask = tuiMaskito(computed(() => this.computeMask(this.code(), this.metadata())));
53
- this.masked = tuiValue(this.el);
54
- this.valueChangeEffect = effect(() => {
55
- this.onChange(this.unmask(this.masked()));
56
- }, TUI_ALLOW_SIGNAL_WRITES);
57
- this.filtered = computed(() => this.countries()
58
- .map((iso) => ({
59
- iso,
60
- name: this.names()?.[iso] || '',
61
- code: tuiGetCallingCode(iso, this.metadata()),
62
- }))
63
- .filter(({ name, code }) => TUI_DEFAULT_MATCHER(name + code, this.search())));
64
- this.enabled = tuiDirectiveBinding(TuiDropdownOpen, 'tuiDropdownEnabled', this.interactive, {});
65
- this.$ = inject(TuiActiveZone)
66
- .tuiActiveZoneChange.pipe(filter(() => !this.readOnly()), takeUntilDestroyed())
67
- .subscribe((active) => {
68
- const prefix = `${tuiGetCallingCode(this.code(), this.metadata())} `;
69
- this.search.set('');
70
- this.masked.update((value) => {
71
- const fallback = active ? value || prefix : value;
72
- return value === prefix ? '' : fallback;
73
- });
74
- });
75
- this.countrySearch = false;
76
- this.countryIsoCodeChange = toObservable(this.code).pipe(skip(1));
77
- }
78
- set countriesValue(value) {
79
- this.countries.set(value);
80
- }
81
- set isoCode(code) {
82
- this.code.set(code);
83
- }
84
- writeValue(unmasked) {
85
- const code = this.getCountryCode(unmasked ?? '');
86
- if (code) {
87
- this.code.set(code);
88
- }
89
- super.writeValue(unmasked);
90
- this.masked.set(maskitoTransform(this.value() ?? '', this.mask() || MASKITO_DEFAULT_OPTIONS));
91
- }
92
- onPaste(event) {
93
- const data = tuiIsInputEvent(event) && event.data;
94
- if (!data ||
95
- (!event.inputType.includes('Drop') && !event.inputType.includes('Paste'))) {
96
- return;
97
- }
98
- const code = this.getCountryCode(data);
99
- if (code) {
100
- this.code.set(code);
101
- }
102
- }
103
- onItemClick(code) {
104
- this.el.focus();
105
- this.open.set(false);
106
- this.code.set(code);
107
- this.search.set('');
108
- this.masked.set(maskitoTransform(this.value() || tuiGetCallingCode(code, this.metadata()), this.mask() || MASKITO_DEFAULT_OPTIONS));
109
- }
110
- computeMask(countryIsoCode, metadata) {
111
- if (!metadata) {
112
- return null;
113
- }
114
- const { plugins, ...options } = maskitoPhoneOptionsGenerator({
115
- countryIsoCode,
116
- metadata,
117
- separator: this.options.separator,
118
- });
119
- return {
120
- ...options,
121
- plugins: [...plugins, maskitoInitialCalibrationPlugin()],
122
- };
123
- }
124
- unmask(maskedValue) {
125
- const value = maskedValue.replaceAll(NOT_FORM_CONTROL_SYMBOLS, '');
126
- return value === tuiGetCallingCode(this.code(), this.metadata()) ? '' : value;
127
- }
128
- getCountryCode(value) {
129
- const metadata = this.metadata();
130
- const phone = value.startsWith(CHAR_PLUS) ? value : CHAR_PLUS + value;
131
- return metadata && validatePhoneNumberLength(phone) !== 'TOO_SHORT'
132
- ? (maskitoGetCountryFromNumber(phone, metadata) ?? null)
133
- : null;
134
- }
135
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputPhoneInternational, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
136
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiInputPhoneInternational, isStandalone: true, selector: "input[tuiInputPhoneInternational]", inputs: { countrySearch: "countrySearch", countriesValue: ["countries", "countriesValue"], isoCode: ["countryIsoCode", "isoCode"] }, outputs: { countryIsoCodeChange: "countryIsoCodeChange" }, host: { attributes: { "type": "tel", "ngSkipHydration": "true" }, listeners: { "input": "masked.set($event.target.value)", "click": "open.set(false)", "beforeinput.capture": "onPaste($event)" }, properties: { "attr.inputmode": "!ios && open() ? \"none\" : null", "disabled": "disabled()" } }, providers: [
137
- tuiAsControl(TuiInputPhoneInternational),
138
- tuiFallbackValueProvider(''),
139
- tuiAutoFocusOptionsProvider({ preventScroll: true }),
140
- ], viewQueries: [{ propertyName: "list", predicate: TuiOptionNew, descendants: true, read: ElementRef }], usesInheritance: true, hostDirectives: [{ directive: i1.MaskitoDirective }, { directive: i2.TuiWithTextfield }], ngImport: i0, template: "<ng-container *tuiTextfieldContent>\n <button\n appearance=\"textfield\"\n tabindex=\"-1\"\n tuiButton\n tuiChevron\n type=\"button\"\n class=\"t-ipi-select\"\n [attr.data-mode]=\"mode()\"\n [class.t-ipi-select_readonly]=\"readOnly()\"\n [disabled]=\"disabled()\"\n [size]=\"size()\"\n [tuiAppearanceFocus]=\"open()\"\n (pointerdown.prevent)=\"interactive() && open.set(!open())\"\n >\n <img\n class=\"t-ipi-flag\"\n [alt]=\"names()?.[code()]\"\n [class.t-ipi-flag_small]=\"size() === 's'\"\n [src]=\"code() | tuiFlag\"\n />\n </button>\n</ng-container>\n<ng-container *tuiTextfieldDropdown>\n <div\n *ngIf=\"countrySearch\"\n #element\n class=\"t-ipi-search\"\n >\n <tui-textfield\n [iconStart]=\"icons.search\"\n [tuiTextfieldSize]=\"size() === 's' ? 's' : 'm'\"\n >\n <input\n autocomplete=\"off\"\n tuiTextfield\n type=\"text\"\n [focused]=\"true\"\n [ngModel]=\"search()\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"label()\"\n [tuiAutoFocus]=\"!!element.closest('tui-dropdown-mobile')\"\n (keydown.arrowDown)=\"list.get(0)?.nativeElement?.focus()\"\n (ngModelChange)=\"search.set($event)\"\n />\n </tui-textfield>\n </div>\n\n <tui-data-list class=\"t-ipi-options\">\n <button\n *ngFor=\"let item of filtered()\"\n new\n tuiOption\n type=\"button\"\n [tuiCell]=\"size()\"\n (click)=\"onItemClick(item.iso)\"\n >\n <img\n alt=\"\"\n class=\"t-ipi-flag\"\n [class.t-ipi-flag_small]=\"size() === 's'\"\n [src]=\"item.iso | tuiFlag\"\n />\n <span tuiTitle>{{ item.name }}</span>\n <span class=\"t-ipi-code\">{{ item.code }}</span>\n </button>\n </tui-data-list>\n</ng-container>\n", styles: ["[tuiInputPhoneInternational][tuiInputPhoneInternational]{left:var(--t-offset);border-top-left-radius:0;border-bottom-left-radius:0;inline-size:calc(100% - var(--t-offset))}tui-root:has(tui-dropdown-mobile) [tuiInputPhoneInternational][tuiInputPhoneInternational]{caret-color:transparent}[tuiInputPhoneInternational][tuiInputPhoneInternational]+label{padding-inline-start:var(--t-offset)}tui-textfield[data-size=s]{--t-offset: 4.125rem}tui-textfield[data-size=s] .t-ipi-flag{margin:0 .1875rem}tui-textfield[data-size=m]{--t-offset: 4.875rem}tui-textfield[data-size=m] .t-ipi-flag{margin:0 -.1875rem}tui-textfield[data-size=l]{--t-offset: 5.25rem}tui-textfield[data-size=l] .t-ipi-flag{margin:0 -.1875rem}tui-textfield .t-ipi-select{position:absolute;left:0;border-radius:inherit;border-top-right-radius:0;border-bottom-right-radius:0}tui-textfield .t-ipi-select_readonly{pointer-events:none}.t-ipi-flag{inline-size:1.75rem;block-size:1.75rem;border-radius:100%}.t-ipi-flag_small{inline-size:1.25rem;block-size:1.25rem}.t-ipi-code{color:var(--tui-text-secondary)}.t-ipi-search{position:sticky;top:0;z-index:1;background:var(--tui-background-elevation-3);padding:.375rem .375rem 0}@supports (-webkit-touch-callout: none){.t-ipi-search input:focus{animation:tuiPreventIOSScroll 1ms}}@keyframes tuiPreventIOSScroll{0%{opacity:0}to{opacity:1}}tui-dropdown-mobile .t-ipi-search{background:var(--tui-background-elevation-1)}tui-dropdown-mobile .t-ipi-options:not(:first-child){min-block-size:calc(100 * var(--tui-viewport-vh) - 8.75rem)}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: TuiAutoFocus, selector: "[tuiAutoFocus]", inputs: ["tuiAutoFocus"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "directive", type: TuiCell, selector: "[tuiCell]:not(ng-template)", inputs: ["tuiCell", "tuiCellHeight"] }, { kind: "directive", type: TuiChevron, selector: "[tuiChevron]", inputs: ["tuiChevron"] }, { kind: "component", type: i4.TuiDataListComponent, selector: "tui-data-list", inputs: ["emptyContent", "size"] }, { kind: "directive", type: i4.TuiOptionNew, selector: "button[tuiOption][new], a[tuiOption][new], label[tuiOption][new]", inputs: ["disabled"] }, { kind: "pipe", type: TuiFlagPipe, name: "tuiFlag" }, { kind: "component", type: i2.TuiTextfieldComponent, selector: "tui-textfield:not([multi])" }, { kind: "directive", type: i2.TuiTextfieldDirective, selector: "input[tuiTextfield]:not([tuiInputCard]):not([tuiInputExpire]):not([tuiInputCVC])" }, { kind: "directive", type: i2.TuiTextfieldOptionsDirective, selector: "[tuiTextfieldAppearance],[tuiTextfieldSize],[tuiTextfieldCleaner]", inputs: ["tuiTextfieldAppearance", "tuiTextfieldSize", "tuiTextfieldCleaner"] }, { kind: "directive", type: i2.TuiTextfieldDropdownDirective, selector: "ng-template[tuiTextfieldDropdown]" }, { kind: "directive", type: TuiTextfieldContent, selector: "ng-template[tuiTextfieldContent]" }, { kind: "directive", type: TuiTitle, selector: "[tuiTitle]", inputs: ["tuiTitle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
141
- }
142
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputPhoneInternational, decorators: [{
143
- type: Component,
144
- args: [{ standalone: true, selector: 'input[tuiInputPhoneInternational]', imports: [
145
- FormsModule,
146
- NgForOf,
147
- NgIf,
148
- TuiAutoFocus,
149
- TuiButton,
150
- TuiCell,
151
- TuiChevron,
152
- TuiDataList,
153
- TuiFlagPipe,
154
- TuiTextfield,
155
- TuiTextfieldContent,
156
- TuiTitle,
157
- ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
158
- tuiAsControl(TuiInputPhoneInternational),
159
- tuiFallbackValueProvider(''),
160
- tuiAutoFocusOptionsProvider({ preventScroll: true }),
161
- ], hostDirectives: [MaskitoDirective, TuiWithTextfield], host: {
162
- type: 'tel',
163
- ngSkipHydration: 'true',
164
- '[attr.inputmode]': '!ios && open() ? "none" : null',
165
- '[disabled]': 'disabled()',
166
- '(input)': 'masked.set($event.target.value)',
167
- '(click)': 'open.set(false)',
168
- '(beforeinput.capture)': 'onPaste($event)',
169
- }, template: "<ng-container *tuiTextfieldContent>\n <button\n appearance=\"textfield\"\n tabindex=\"-1\"\n tuiButton\n tuiChevron\n type=\"button\"\n class=\"t-ipi-select\"\n [attr.data-mode]=\"mode()\"\n [class.t-ipi-select_readonly]=\"readOnly()\"\n [disabled]=\"disabled()\"\n [size]=\"size()\"\n [tuiAppearanceFocus]=\"open()\"\n (pointerdown.prevent)=\"interactive() && open.set(!open())\"\n >\n <img\n class=\"t-ipi-flag\"\n [alt]=\"names()?.[code()]\"\n [class.t-ipi-flag_small]=\"size() === 's'\"\n [src]=\"code() | tuiFlag\"\n />\n </button>\n</ng-container>\n<ng-container *tuiTextfieldDropdown>\n <div\n *ngIf=\"countrySearch\"\n #element\n class=\"t-ipi-search\"\n >\n <tui-textfield\n [iconStart]=\"icons.search\"\n [tuiTextfieldSize]=\"size() === 's' ? 's' : 'm'\"\n >\n <input\n autocomplete=\"off\"\n tuiTextfield\n type=\"text\"\n [focused]=\"true\"\n [ngModel]=\"search()\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"label()\"\n [tuiAutoFocus]=\"!!element.closest('tui-dropdown-mobile')\"\n (keydown.arrowDown)=\"list.get(0)?.nativeElement?.focus()\"\n (ngModelChange)=\"search.set($event)\"\n />\n </tui-textfield>\n </div>\n\n <tui-data-list class=\"t-ipi-options\">\n <button\n *ngFor=\"let item of filtered()\"\n new\n tuiOption\n type=\"button\"\n [tuiCell]=\"size()\"\n (click)=\"onItemClick(item.iso)\"\n >\n <img\n alt=\"\"\n class=\"t-ipi-flag\"\n [class.t-ipi-flag_small]=\"size() === 's'\"\n [src]=\"item.iso | tuiFlag\"\n />\n <span tuiTitle>{{ item.name }}</span>\n <span class=\"t-ipi-code\">{{ item.code }}</span>\n </button>\n </tui-data-list>\n</ng-container>\n", styles: ["[tuiInputPhoneInternational][tuiInputPhoneInternational]{left:var(--t-offset);border-top-left-radius:0;border-bottom-left-radius:0;inline-size:calc(100% - var(--t-offset))}tui-root:has(tui-dropdown-mobile) [tuiInputPhoneInternational][tuiInputPhoneInternational]{caret-color:transparent}[tuiInputPhoneInternational][tuiInputPhoneInternational]+label{padding-inline-start:var(--t-offset)}tui-textfield[data-size=s]{--t-offset: 4.125rem}tui-textfield[data-size=s] .t-ipi-flag{margin:0 .1875rem}tui-textfield[data-size=m]{--t-offset: 4.875rem}tui-textfield[data-size=m] .t-ipi-flag{margin:0 -.1875rem}tui-textfield[data-size=l]{--t-offset: 5.25rem}tui-textfield[data-size=l] .t-ipi-flag{margin:0 -.1875rem}tui-textfield .t-ipi-select{position:absolute;left:0;border-radius:inherit;border-top-right-radius:0;border-bottom-right-radius:0}tui-textfield .t-ipi-select_readonly{pointer-events:none}.t-ipi-flag{inline-size:1.75rem;block-size:1.75rem;border-radius:100%}.t-ipi-flag_small{inline-size:1.25rem;block-size:1.25rem}.t-ipi-code{color:var(--tui-text-secondary)}.t-ipi-search{position:sticky;top:0;z-index:1;background:var(--tui-background-elevation-3);padding:.375rem .375rem 0}@supports (-webkit-touch-callout: none){.t-ipi-search input:focus{animation:tuiPreventIOSScroll 1ms}}@keyframes tuiPreventIOSScroll{0%{opacity:0}to{opacity:1}}tui-dropdown-mobile .t-ipi-search{background:var(--tui-background-elevation-1)}tui-dropdown-mobile .t-ipi-options:not(:first-child){min-block-size:calc(100 * var(--tui-viewport-vh) - 8.75rem)}\n"] }]
170
- }], propDecorators: { list: [{
171
- type: ViewChildren,
172
- args: [TuiOptionNew, { read: ElementRef }]
173
- }], countrySearch: [{
174
- type: Input
175
- }], countryIsoCodeChange: [{
176
- type: Output
177
- }], countriesValue: [{
178
- type: Input,
179
- args: ['countries']
180
- }], isoCode: [{
181
- type: Input,
182
- args: ['countryIsoCode']
183
- }] } });
184
-
185
- /**
186
- * Generated bundle index. Do not edit.
187
- */
188
-
189
- export { TuiInputPhoneInternational };
190
- //# sourceMappingURL=taiga-ui-experimental-components-input-phone-international.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"taiga-ui-experimental-components-input-phone-international.mjs","sources":["../../../projects/experimental/components/input-phone-international/input-phone-international.component.ts","../../../projects/experimental/components/input-phone-international/input-phone-international.template.html","../../../projects/experimental/components/input-phone-international/taiga-ui-experimental-components-input-phone-international.ts"],"sourcesContent":["import {NgForOf, NgIf} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n ElementRef,\n inject,\n Input,\n Output,\n type QueryList,\n signal,\n ViewChildren,\n ViewEncapsulation,\n} from '@angular/core';\nimport {takeUntilDestroyed, toObservable, toSignal} from '@angular/core/rxjs-interop';\nimport {FormsModule} from '@angular/forms';\nimport {MaskitoDirective} from '@maskito/angular';\nimport {\n MASKITO_DEFAULT_OPTIONS,\n maskitoInitialCalibrationPlugin,\n type MaskitoOptions,\n maskitoTransform,\n} from '@maskito/core';\nimport {maskitoGetCountryFromNumber, maskitoPhoneOptionsGenerator} from '@maskito/phone';\nimport {tuiAsControl, TuiControl} from '@taiga-ui/cdk/classes';\nimport {\n CHAR_PLUS,\n EMPTY_QUERY,\n TUI_ALLOW_SIGNAL_WRITES,\n TUI_DEFAULT_MATCHER,\n} from '@taiga-ui/cdk/constants';\nimport {TuiActiveZone} from '@taiga-ui/cdk/directives/active-zone';\nimport {\n TuiAutoFocus,\n tuiAutoFocusOptionsProvider,\n} from '@taiga-ui/cdk/directives/auto-focus';\nimport {TUI_IS_IOS, tuiFallbackValueProvider} from '@taiga-ui/cdk/tokens';\nimport {tuiInjectElement, tuiIsInputEvent, tuiValue} from '@taiga-ui/cdk/utils/dom';\nimport {tuiDirectiveBinding} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TuiDataList, TuiOptionNew} from '@taiga-ui/core/components/data-list';\nimport {\n TUI_TEXTFIELD_OPTIONS,\n TuiTextfield,\n TuiTextfieldContent,\n TuiWithTextfield,\n} from '@taiga-ui/core/components/textfield';\nimport {TuiDropdownOpen, tuiDropdownOpen} from '@taiga-ui/core/directives/dropdown';\nimport {TuiTitle} from '@taiga-ui/core/directives/title';\nimport {TuiFlagPipe} from '@taiga-ui/core/pipes';\nimport {TUI_COMMON_ICONS} from '@taiga-ui/core/tokens';\nimport {type TuiCountryIsoCode} from '@taiga-ui/i18n/types';\nimport {TUI_INPUT_PHONE_INTERNATIONAL_OPTIONS} from '@taiga-ui/kit/components/input-phone-international';\nimport {TuiChevron} from '@taiga-ui/kit/directives/chevron';\nimport {TUI_COUNTRIES, TUI_INTERNATIONAL_SEARCH} from '@taiga-ui/kit/tokens';\nimport {tuiGetCallingCode, tuiMaskito} from '@taiga-ui/kit/utils';\nimport {TuiCell} from '@taiga-ui/layout/components/cell';\nimport {validatePhoneNumberLength} from 'libphonenumber-js';\nimport {type MetadataJson} from 'libphonenumber-js/core';\nimport {filter, from, skip} from 'rxjs';\n\nconst NOT_FORM_CONTROL_SYMBOLS = /[^+\\d]/g;\n\n@Component({\n standalone: true,\n selector: 'input[tuiInputPhoneInternational]',\n imports: [\n FormsModule,\n NgForOf,\n NgIf,\n TuiAutoFocus,\n TuiButton,\n TuiCell,\n TuiChevron,\n TuiDataList,\n TuiFlagPipe,\n TuiTextfield,\n TuiTextfieldContent,\n TuiTitle,\n ],\n templateUrl: './input-phone-international.template.html',\n styleUrls: ['./input-phone-international.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiAsControl(TuiInputPhoneInternational),\n tuiFallbackValueProvider(''),\n tuiAutoFocusOptionsProvider({preventScroll: true}),\n ],\n hostDirectives: [MaskitoDirective, TuiWithTextfield],\n host: {\n type: 'tel',\n ngSkipHydration: 'true',\n '[attr.inputmode]': '!ios && open() ? \"none\" : null',\n '[disabled]': 'disabled()',\n '(input)': 'masked.set($event.target.value)',\n '(click)': 'open.set(false)',\n '(beforeinput.capture)': 'onPaste($event)',\n },\n})\nexport class TuiInputPhoneInternational extends TuiControl<string> {\n @ViewChildren(TuiOptionNew, {read: ElementRef})\n protected readonly list: QueryList<ElementRef<HTMLButtonElement>> = EMPTY_QUERY;\n\n protected readonly el = tuiInjectElement<HTMLInputElement>();\n protected readonly ios = inject(TUI_IS_IOS);\n protected readonly icons = inject(TUI_COMMON_ICONS);\n protected readonly options = inject(TUI_INPUT_PHONE_INTERNATIONAL_OPTIONS);\n protected readonly countries = signal(this.options.countries);\n protected readonly code = signal(this.options.countryIsoCode);\n protected readonly label = toSignal(inject(TUI_INTERNATIONAL_SEARCH));\n protected readonly metadata = toSignal(from(this.options.metadata));\n protected readonly names = toSignal(inject(TUI_COUNTRIES));\n protected readonly open = tuiDropdownOpen();\n protected readonly search = signal<string>('');\n protected readonly size = inject(TUI_TEXTFIELD_OPTIONS).size;\n\n protected readonly mask = tuiMaskito(\n computed(() => this.computeMask(this.code(), this.metadata())),\n );\n\n protected readonly masked = tuiValue(this.el);\n\n protected valueChangeEffect = effect(() => {\n this.onChange(this.unmask(this.masked()));\n }, TUI_ALLOW_SIGNAL_WRITES);\n\n protected readonly filtered = computed(() =>\n this.countries()\n .map((iso) => ({\n iso,\n name: this.names()?.[iso] || '',\n code: tuiGetCallingCode(iso, this.metadata()),\n }))\n .filter(({name, code}) => TUI_DEFAULT_MATCHER(name + code, this.search())),\n );\n\n protected readonly enabled = tuiDirectiveBinding(\n TuiDropdownOpen,\n 'tuiDropdownEnabled',\n this.interactive,\n {},\n );\n\n protected readonly $ = inject(TuiActiveZone)\n .tuiActiveZoneChange.pipe(\n filter(() => !this.readOnly()),\n takeUntilDestroyed(),\n )\n .subscribe((active) => {\n const prefix = `${tuiGetCallingCode(this.code(), this.metadata())} `;\n\n this.search.set('');\n this.masked.update((value) => {\n const fallback = active ? value || prefix : value;\n\n return value === prefix ? '' : fallback;\n });\n });\n\n @Input()\n public countrySearch = false;\n\n @Output()\n public readonly countryIsoCodeChange = toObservable(this.code).pipe(skip(1));\n\n @Input('countries')\n public set countriesValue(value: readonly TuiCountryIsoCode[]) {\n this.countries.set(value);\n }\n\n @Input('countryIsoCode')\n public set isoCode(code: TuiCountryIsoCode) {\n this.code.set(code);\n }\n\n public override writeValue(unmasked: string | null): void {\n const code = this.getCountryCode(unmasked ?? '');\n\n if (code) {\n this.code.set(code);\n }\n\n super.writeValue(unmasked);\n this.masked.set(\n maskitoTransform(this.value() ?? '', this.mask() || MASKITO_DEFAULT_OPTIONS),\n );\n }\n\n protected onPaste(event: Event): void {\n const data = tuiIsInputEvent(event) && event.data;\n\n if (\n !data ||\n (!event.inputType.includes('Drop') && !event.inputType.includes('Paste'))\n ) {\n return;\n }\n\n const code = this.getCountryCode(data);\n\n if (code) {\n this.code.set(code);\n }\n }\n\n protected onItemClick(code: TuiCountryIsoCode): void {\n this.el.focus();\n this.open.set(false);\n this.code.set(code);\n this.search.set('');\n this.masked.set(\n maskitoTransform(\n this.value() || tuiGetCallingCode(code, this.metadata()),\n this.mask() || MASKITO_DEFAULT_OPTIONS,\n ),\n );\n }\n\n private computeMask(\n countryIsoCode: TuiCountryIsoCode,\n metadata?: MetadataJson,\n ): MaskitoOptions | null {\n if (!metadata) {\n return null;\n }\n\n const {plugins, ...options} = maskitoPhoneOptionsGenerator({\n countryIsoCode,\n metadata,\n separator: this.options.separator,\n });\n\n return {\n ...options,\n plugins: [...plugins, maskitoInitialCalibrationPlugin()],\n };\n }\n\n private unmask(maskedValue: string): string {\n const value = maskedValue.replaceAll(NOT_FORM_CONTROL_SYMBOLS, '');\n\n return value === tuiGetCallingCode(this.code(), this.metadata()) ? '' : value;\n }\n\n private getCountryCode(value: string): TuiCountryIsoCode | null {\n const metadata = this.metadata();\n const phone = value.startsWith(CHAR_PLUS) ? value : CHAR_PLUS + value;\n\n return metadata && validatePhoneNumberLength(phone) !== 'TOO_SHORT'\n ? (maskitoGetCountryFromNumber(phone, metadata) ?? null)\n : null;\n }\n}\n","<ng-container *tuiTextfieldContent>\n <button\n appearance=\"textfield\"\n tabindex=\"-1\"\n tuiButton\n tuiChevron\n type=\"button\"\n class=\"t-ipi-select\"\n [attr.data-mode]=\"mode()\"\n [class.t-ipi-select_readonly]=\"readOnly()\"\n [disabled]=\"disabled()\"\n [size]=\"size()\"\n [tuiAppearanceFocus]=\"open()\"\n (pointerdown.prevent)=\"interactive() && open.set(!open())\"\n >\n <img\n class=\"t-ipi-flag\"\n [alt]=\"names()?.[code()]\"\n [class.t-ipi-flag_small]=\"size() === 's'\"\n [src]=\"code() | tuiFlag\"\n />\n </button>\n</ng-container>\n<ng-container *tuiTextfieldDropdown>\n <div\n *ngIf=\"countrySearch\"\n #element\n class=\"t-ipi-search\"\n >\n <tui-textfield\n [iconStart]=\"icons.search\"\n [tuiTextfieldSize]=\"size() === 's' ? 's' : 'm'\"\n >\n <input\n autocomplete=\"off\"\n tuiTextfield\n type=\"text\"\n [focused]=\"true\"\n [ngModel]=\"search()\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"label()\"\n [tuiAutoFocus]=\"!!element.closest('tui-dropdown-mobile')\"\n (keydown.arrowDown)=\"list.get(0)?.nativeElement?.focus()\"\n (ngModelChange)=\"search.set($event)\"\n />\n </tui-textfield>\n </div>\n\n <tui-data-list class=\"t-ipi-options\">\n <button\n *ngFor=\"let item of filtered()\"\n new\n tuiOption\n type=\"button\"\n [tuiCell]=\"size()\"\n (click)=\"onItemClick(item.iso)\"\n >\n <img\n alt=\"\"\n class=\"t-ipi-flag\"\n [class.t-ipi-flag_small]=\"size() === 's'\"\n [src]=\"item.iso | tuiFlag\"\n />\n <span tuiTitle>{{ item.name }}</span>\n <span class=\"t-ipi-code\">{{ item.code }}</span>\n </button>\n </tui-data-list>\n</ng-container>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8DA,MAAM,wBAAwB,GAAG,SAAS,CAAC;AAE3C,MAqCa,0BAA2B,SAAQ,UAAkB,CAAA;AArClE,IAAA,WAAA,GAAA;;QAuCuB,IAAI,CAAA,IAAA,GAA6C,WAAW,CAAC;QAE7D,IAAE,CAAA,EAAA,GAAG,gBAAgB,EAAoB,CAAC;AAC1C,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AACzB,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AACjC,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,qCAAqC,CAAC,CAAC;QACxD,IAAS,CAAA,SAAA,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,CAAA,IAAA,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAC3C,IAAK,CAAA,KAAA,GAAG,QAAQ,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC;AACnD,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QACjD,IAAK,CAAA,KAAA,GAAG,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;QACxC,IAAI,CAAA,IAAA,GAAG,eAAe,EAAE,CAAC;AACzB,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAS,EAAE,CAAC,CAAC;AAC5B,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC;QAE1C,IAAI,CAAA,IAAA,GAAG,UAAU,CAChC,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CACjE,CAAC;AAEiB,QAAA,IAAA,CAAA,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAEpC,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,MAAK;AACtC,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;SAC7C,EAAE,uBAAuB,CAAC,CAAC;QAET,IAAQ,CAAA,QAAA,GAAG,QAAQ,CAAC,MACnC,IAAI,CAAC,SAAS,EAAE;AACX,aAAA,GAAG,CAAC,CAAC,GAAG,MAAM;YACX,GAAG;YACH,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE;YAC/B,IAAI,EAAE,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;AAChD,SAAA,CAAC,CAAC;aACF,MAAM,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,KAAK,mBAAmB,CAAC,IAAI,GAAG,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CACjF,CAAC;AAEiB,QAAA,IAAA,CAAA,OAAO,GAAG,mBAAmB,CAC5C,eAAe,EACf,oBAAoB,EACpB,IAAI,CAAC,WAAW,EAChB,EAAE,CACL,CAAC;AAEiB,QAAA,IAAA,CAAA,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC;AACvC,aAAA,mBAAmB,CAAC,IAAI,CACrB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAC9B,kBAAkB,EAAE,CACvB;AACA,aAAA,SAAS,CAAC,CAAC,MAAM,KAAI;AAClB,YAAA,MAAM,MAAM,GAAG,CAAA,EAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC;AAErE,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,KAAI;AACzB,gBAAA,MAAM,QAAQ,GAAG,MAAM,GAAG,KAAK,IAAI,MAAM,GAAG,KAAK,CAAC;gBAElD,OAAO,KAAK,KAAK,MAAM,GAAG,EAAE,GAAG,QAAQ,CAAC;AAC5C,aAAC,CAAC,CAAC;AACP,SAAC,CAAC,CAAC;QAGA,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;AAGb,QAAA,IAAA,CAAA,oBAAoB,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAyFhF,KAAA;IAvFG,IACW,cAAc,CAAC,KAAmC,EAAA;AACzD,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KAC7B;IAED,IACW,OAAO,CAAC,IAAuB,EAAA;AACtC,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KACvB;AAEe,IAAA,UAAU,CAAC,QAAuB,EAAA;QAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;AAEjD,QAAA,IAAI,IAAI,EAAE;AACN,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACvB,SAAA;AAED,QAAA,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,GAAG,CACX,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,uBAAuB,CAAC,CAC/E,CAAC;KACL;AAES,IAAA,OAAO,CAAC,KAAY,EAAA;QAC1B,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC;AAElD,QAAA,IACI,CAAC,IAAI;aACJ,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAC3E;YACE,OAAO;AACV,SAAA;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAEvC,QAAA,IAAI,IAAI,EAAE;AACN,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACvB,SAAA;KACJ;AAES,IAAA,WAAW,CAAC,IAAuB,EAAA;AACzC,QAAA,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACpB,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACpB,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CACX,gBAAgB,CACZ,IAAI,CAAC,KAAK,EAAE,IAAI,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,EACxD,IAAI,CAAC,IAAI,EAAE,IAAI,uBAAuB,CACzC,CACJ,CAAC;KACL;IAEO,WAAW,CACf,cAAiC,EACjC,QAAuB,EAAA;QAEvB,IAAI,CAAC,QAAQ,EAAE;AACX,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;QAED,MAAM,EAAC,OAAO,EAAE,GAAG,OAAO,EAAC,GAAG,4BAA4B,CAAC;YACvD,cAAc;YACd,QAAQ;AACR,YAAA,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;AACpC,SAAA,CAAC,CAAC;QAEH,OAAO;AACH,YAAA,GAAG,OAAO;AACV,YAAA,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,+BAA+B,EAAE,CAAC;SAC3D,CAAC;KACL;AAEO,IAAA,MAAM,CAAC,WAAmB,EAAA;QAC9B,MAAM,KAAK,GAAG,WAAW,CAAC,UAAU,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAC;QAEnE,OAAO,KAAK,KAAK,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;KACjF;AAEO,IAAA,cAAc,CAAC,KAAa,EAAA;AAChC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;AACjC,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,KAAK,GAAG,SAAS,GAAG,KAAK,CAAC;AAEtE,QAAA,OAAO,QAAQ,IAAI,yBAAyB,CAAC,KAAK,CAAC,KAAK,WAAW;eAC5D,2BAA2B,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,IAAI;cACrD,IAAI,CAAC;KACd;+GAxJQ,0BAA0B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,EAhBxB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,CAAA,WAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,SAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,iCAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,iBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,kCAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,EAAA,SAAA,EAAA;YACP,YAAY,CAAC,0BAA0B,CAAC;YACxC,wBAAwB,CAAC,EAAE,CAAC;AAC5B,YAAA,2BAA2B,CAAC,EAAC,aAAa,EAAE,IAAI,EAAC,CAAC;SACrD,EAaa,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,MAAA,EAAA,SAAA,EAAA,YAAY,EAAS,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,UAAU,ECtGjD,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,kpEAoEA,ojDDAQ,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACX,OAAO,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACP,IAAI,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACJ,YAAY,EACZ,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,SAAS,EACT,QAAA,EAAA,uEAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAO,EACP,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,UAAU,iVAEV,WAAW,EAAA,IAAA,EAAA,SAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,kFAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,mEAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,EAAA,kBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,6BAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAEX,mBAAmB,EAAA,QAAA,EAAA,kCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACnB,QAAQ,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAsBH,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBArCtC,SAAS;iCACM,IAAI,EAAA,QAAA,EACN,mCAAmC,EACpC,OAAA,EAAA;wBACL,WAAW;wBACX,OAAO;wBACP,IAAI;wBACJ,YAAY;wBACZ,SAAS;wBACT,OAAO;wBACP,UAAU;wBACV,WAAW;wBACX,WAAW;wBACX,YAAY;wBACZ,mBAAmB;wBACnB,QAAQ;AACX,qBAAA,EAAA,aAAA,EAGc,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;AACP,wBAAA,YAAY,CAA4B,0BAAA,CAAA;wBACxC,wBAAwB,CAAC,EAAE,CAAC;AAC5B,wBAAA,2BAA2B,CAAC,EAAC,aAAa,EAAE,IAAI,EAAC,CAAC;AACrD,qBAAA,EAAA,cAAA,EACe,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,EAC9C,IAAA,EAAA;AACF,wBAAA,IAAI,EAAE,KAAK;AACX,wBAAA,eAAe,EAAE,MAAM;AACvB,wBAAA,kBAAkB,EAAE,gCAAgC;AACpD,wBAAA,YAAY,EAAE,YAAY;AAC1B,wBAAA,SAAS,EAAE,iCAAiC;AAC5C,wBAAA,SAAS,EAAE,iBAAiB;AAC5B,wBAAA,uBAAuB,EAAE,iBAAiB;AAC7C,qBAAA,EAAA,QAAA,EAAA,kpEAAA,EAAA,MAAA,EAAA,CAAA,6/CAAA,CAAA,EAAA,CAAA;8BAIkB,IAAI,EAAA,CAAA;sBADtB,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,YAAY,EAAE,EAAC,IAAI,EAAE,UAAU,EAAC,CAAA;gBA4DvC,aAAa,EAAA,CAAA;sBADnB,KAAK;gBAIU,oBAAoB,EAAA,CAAA;sBADnC,MAAM;gBAII,cAAc,EAAA,CAAA;sBADxB,KAAK;uBAAC,WAAW,CAAA;gBAMP,OAAO,EAAA,CAAA;sBADjB,KAAK;uBAAC,gBAAgB,CAAA;;;AE5K3B;;AAEG;;;;"}
@@ -1,48 +0,0 @@
1
- import { NgIf, NgTemplateOutlet } from '@angular/common';
2
- import * as i0 from '@angular/core';
3
- import { inject, Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';
4
- import { toSignal } from '@angular/core/rxjs-interop';
5
- import { TUI_IS_MOBILE } from '@taiga-ui/cdk/tokens';
6
- import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
7
- import { tuiButtonOptionsProvider, TuiButton } from '@taiga-ui/core/components/button';
8
- import { TuiBreakpointService } from '@taiga-ui/core/services';
9
- import { TUI_CLOSE_WORD, TUI_COMMON_ICONS } from '@taiga-ui/core/tokens';
10
- import * as i1 from '@taiga-ui/layout/components/app-bar';
11
- import { TuiAppBar } from '@taiga-ui/layout/components/app-bar';
12
- import { injectContext } from '@taiga-ui/polymorpheus';
13
- import { map } from 'rxjs';
14
-
15
- class TuiPdfViewerComponent {
16
- constructor() {
17
- this.isMobileRes = toSignal(inject(TuiBreakpointService).pipe(map((breakpoint) => breakpoint === 'mobile')), { initialValue: false });
18
- this.el = tuiInjectElement();
19
- this.context = injectContext();
20
- this.close = toSignal(inject(TUI_CLOSE_WORD));
21
- this.icons = inject(TUI_COMMON_ICONS);
22
- }
23
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiPdfViewerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
24
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiPdfViewerComponent, isStandalone: true, selector: "tui-pdf-viewer", host: { properties: { "attr.tuiTheme": "isMobileRes() ? \"\" : \"dark\"" } }, providers: [
25
- tuiButtonOptionsProvider(() => ({
26
- appearance: inject(TUI_IS_MOBILE) ? 'action' : 'glass',
27
- size: 's',
28
- })),
29
- ], ngImport: i0, template: "<ng-container [ngTemplateOutlet]=\"isMobileRes() ? mobile : desktop\" />\n\n<ng-template #mobile>\n <tui-app-bar>\n <button\n tuiButton\n tuiSlot=\"left\"\n type=\"button\"\n (click)=\"context.$implicit.complete()\"\n >\n {{ close() }}\n </button>\n <ng-container [ngTemplateOutlet]=\"content\" />\n <ng-container tuiSlot=\"right\">\n <ng-container [ngTemplateOutlet]=\"actions\" />\n </ng-container>\n </tui-app-bar>\n</ng-template>\n\n<ng-template #desktop>\n <header\n tuiTheme=\"dark\"\n class=\"t-header\"\n >\n <ng-container [ngTemplateOutlet]=\"content\" />\n <ng-container [ngTemplateOutlet]=\"actions\" />\n <button\n *ngIf=\"$any(context).closable || context.closeable\"\n appearance=\"glass\"\n size=\"s\"\n tuiIconButton\n type=\"button\"\n [iconStart]=\"icons.close\"\n [style.border-radius.%]=\"100\"\n (click)=\"context.$implicit.complete()\"\n >\n {{ close() }}\n </button>\n </header>\n</ng-template>\n\n<ng-template #content>\n <ng-content select=\"[tuiTitle]\" />\n</ng-template>\n\n<ng-template #actions>\n <ng-content select=\"button\" />\n</ng-template>\n\n<section class=\"t-content\">\n <ng-content />\n</section>\n", styles: ["tui-pdf-viewer{position:relative;z-index:1;display:flex;flex-direction:column;inline-size:100vw;block-size:100%;flex:1;box-sizing:border-box;color:var(--tui-text-primary);--t-header: 3.5rem}tui-root:not(._mobile) tui-pdf-viewer{background:#000}tui-root:not(._mobile) tui-dialog:not([new]) tui-pdf-viewer{block-size:100vh}tui-root:not(._mobile) tui-dialog[new] tui-pdf-viewer{margin:-6rem calc(-1 * calc(50vw - var(--tui-width) / 2)) -2rem}tui-root._mobile tui-dialog tui-pdf-viewer{--t-header: 2.5rem;margin:0 -1rem -1rem}tui-root._mobile tui-dialog tui-pdf-viewer tui-app-bar{margin:calc(-1*env(safe-area-inset-top)) 0 0}tui-sheet-dialog tui-pdf-viewer{--t-header: 4.5rem;margin:0 -1rem -1.5rem}tui-sheet-dialog tui-pdf-viewer tui-app-bar{margin:-1rem 0 0}tui-pdf-viewer .t-header{display:flex;gap:.5rem;align-items:center;block-size:var(--t-header);padding:0 .75rem 0 1rem;justify-content:flex-end}tui-pdf-viewer [tuiTitle]{margin-inline-end:auto}tui-pdf-viewer .t-content{display:flex;flex:1;overflow:hidden;justify-content:center}tui-pdf-viewer tui-loader,tui-pdf-viewer tui-block-status{inline-size:100%;margin-block-start:calc(-1 * var(--t-header))}tui-pdf-viewer iframe{inline-size:100%;border:none}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i1.TuiAppBarComponent, selector: "tui-app-bar", inputs: ["size"] }, { kind: "directive", type: i1.TuiAppBarDirective, selector: "[tuiSlot]", inputs: ["tuiSlot"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
30
- }
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiPdfViewerComponent, decorators: [{
32
- type: Component,
33
- args: [{ standalone: true, selector: 'tui-pdf-viewer', imports: [NgIf, NgTemplateOutlet, TuiAppBar, TuiButton], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
34
- tuiButtonOptionsProvider(() => ({
35
- appearance: inject(TUI_IS_MOBILE) ? 'action' : 'glass',
36
- size: 's',
37
- })),
38
- ], host: {
39
- '[attr.tuiTheme]': 'isMobileRes() ? "" : "dark"',
40
- }, template: "<ng-container [ngTemplateOutlet]=\"isMobileRes() ? mobile : desktop\" />\n\n<ng-template #mobile>\n <tui-app-bar>\n <button\n tuiButton\n tuiSlot=\"left\"\n type=\"button\"\n (click)=\"context.$implicit.complete()\"\n >\n {{ close() }}\n </button>\n <ng-container [ngTemplateOutlet]=\"content\" />\n <ng-container tuiSlot=\"right\">\n <ng-container [ngTemplateOutlet]=\"actions\" />\n </ng-container>\n </tui-app-bar>\n</ng-template>\n\n<ng-template #desktop>\n <header\n tuiTheme=\"dark\"\n class=\"t-header\"\n >\n <ng-container [ngTemplateOutlet]=\"content\" />\n <ng-container [ngTemplateOutlet]=\"actions\" />\n <button\n *ngIf=\"$any(context).closable || context.closeable\"\n appearance=\"glass\"\n size=\"s\"\n tuiIconButton\n type=\"button\"\n [iconStart]=\"icons.close\"\n [style.border-radius.%]=\"100\"\n (click)=\"context.$implicit.complete()\"\n >\n {{ close() }}\n </button>\n </header>\n</ng-template>\n\n<ng-template #content>\n <ng-content select=\"[tuiTitle]\" />\n</ng-template>\n\n<ng-template #actions>\n <ng-content select=\"button\" />\n</ng-template>\n\n<section class=\"t-content\">\n <ng-content />\n</section>\n", styles: ["tui-pdf-viewer{position:relative;z-index:1;display:flex;flex-direction:column;inline-size:100vw;block-size:100%;flex:1;box-sizing:border-box;color:var(--tui-text-primary);--t-header: 3.5rem}tui-root:not(._mobile) tui-pdf-viewer{background:#000}tui-root:not(._mobile) tui-dialog:not([new]) tui-pdf-viewer{block-size:100vh}tui-root:not(._mobile) tui-dialog[new] tui-pdf-viewer{margin:-6rem calc(-1 * calc(50vw - var(--tui-width) / 2)) -2rem}tui-root._mobile tui-dialog tui-pdf-viewer{--t-header: 2.5rem;margin:0 -1rem -1rem}tui-root._mobile tui-dialog tui-pdf-viewer tui-app-bar{margin:calc(-1*env(safe-area-inset-top)) 0 0}tui-sheet-dialog tui-pdf-viewer{--t-header: 4.5rem;margin:0 -1rem -1.5rem}tui-sheet-dialog tui-pdf-viewer tui-app-bar{margin:-1rem 0 0}tui-pdf-viewer .t-header{display:flex;gap:.5rem;align-items:center;block-size:var(--t-header);padding:0 .75rem 0 1rem;justify-content:flex-end}tui-pdf-viewer [tuiTitle]{margin-inline-end:auto}tui-pdf-viewer .t-content{display:flex;flex:1;overflow:hidden;justify-content:center}tui-pdf-viewer tui-loader,tui-pdf-viewer tui-block-status{inline-size:100%;margin-block-start:calc(-1 * var(--t-header))}tui-pdf-viewer iframe{inline-size:100%;border:none}\n"] }]
41
- }] });
42
-
43
- /**
44
- * Generated bundle index. Do not edit.
45
- */
46
-
47
- export { TuiPdfViewerComponent };
48
- //# sourceMappingURL=taiga-ui-experimental-components-pdf-viewer.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"taiga-ui-experimental-components-pdf-viewer.mjs","sources":["../../../projects/experimental/components/pdf-viewer/pdf-viewer.component.ts","../../../projects/experimental/components/pdf-viewer/pdf-viewer.template.html","../../../projects/experimental/components/pdf-viewer/taiga-ui-experimental-components-pdf-viewer.ts"],"sourcesContent":["import {NgIf, NgTemplateOutlet} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n ViewEncapsulation,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {type TuiPopover} from '@taiga-ui/cdk/services';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TuiButton, tuiButtonOptionsProvider} from '@taiga-ui/core/components/button';\nimport {type TuiDialogOptions} from '@taiga-ui/core/components/dialog';\nimport {TuiBreakpointService} from '@taiga-ui/core/services';\nimport {TUI_CLOSE_WORD, TUI_COMMON_ICONS} from '@taiga-ui/core/tokens';\nimport {TuiAppBar} from '@taiga-ui/layout/components/app-bar';\nimport {injectContext} from '@taiga-ui/polymorpheus';\nimport {map} from 'rxjs';\n\n@Component({\n standalone: true,\n selector: 'tui-pdf-viewer',\n imports: [NgIf, NgTemplateOutlet, TuiAppBar, TuiButton],\n templateUrl: './pdf-viewer.template.html',\n styleUrls: ['./pdf-viewer.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiButtonOptionsProvider(() => ({\n appearance: inject(TUI_IS_MOBILE) ? 'action' : 'glass',\n size: 's',\n })),\n ],\n host: {\n '[attr.tuiTheme]': 'isMobileRes() ? \"\" : \"dark\"',\n },\n})\nexport class TuiPdfViewerComponent<O, I> {\n protected readonly isMobileRes = toSignal(\n inject(TuiBreakpointService).pipe(map((breakpoint) => breakpoint === 'mobile')),\n {initialValue: false},\n );\n\n protected readonly el = tuiInjectElement();\n protected readonly context = injectContext<TuiPopover<TuiDialogOptions<I>, O>>();\n protected readonly close = toSignal(inject(TUI_CLOSE_WORD));\n protected readonly icons = inject(TUI_COMMON_ICONS);\n}\n","<ng-container [ngTemplateOutlet]=\"isMobileRes() ? mobile : desktop\" />\n\n<ng-template #mobile>\n <tui-app-bar>\n <button\n tuiButton\n tuiSlot=\"left\"\n type=\"button\"\n (click)=\"context.$implicit.complete()\"\n >\n {{ close() }}\n </button>\n <ng-container [ngTemplateOutlet]=\"content\" />\n <ng-container tuiSlot=\"right\">\n <ng-container [ngTemplateOutlet]=\"actions\" />\n </ng-container>\n </tui-app-bar>\n</ng-template>\n\n<ng-template #desktop>\n <header\n tuiTheme=\"dark\"\n class=\"t-header\"\n >\n <ng-container [ngTemplateOutlet]=\"content\" />\n <ng-container [ngTemplateOutlet]=\"actions\" />\n <button\n *ngIf=\"$any(context).closable || context.closeable\"\n appearance=\"glass\"\n size=\"s\"\n tuiIconButton\n type=\"button\"\n [iconStart]=\"icons.close\"\n [style.border-radius.%]=\"100\"\n (click)=\"context.$implicit.complete()\"\n >\n {{ close() }}\n </button>\n </header>\n</ng-template>\n\n<ng-template #content>\n <ng-content select=\"[tuiTitle]\" />\n</ng-template>\n\n<ng-template #actions>\n <ng-content select=\"button\" />\n</ng-template>\n\n<section class=\"t-content\">\n <ng-content />\n</section>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAmBA,MAkBa,qBAAqB,CAAA;AAlBlC,IAAA,WAAA,GAAA;AAmBuB,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CACrC,MAAM,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,KAAK,UAAU,KAAK,QAAQ,CAAC,CAAC,EAC/E,EAAC,YAAY,EAAE,KAAK,EAAC,CACxB,CAAC;QAEiB,IAAE,CAAA,EAAA,GAAG,gBAAgB,EAAE,CAAC;QACxB,IAAO,CAAA,OAAA,GAAG,aAAa,EAAsC,CAAC;QAC9D,IAAK,CAAA,KAAA,GAAG,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;AACzC,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AACvD,KAAA;+GAVY,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,EAVnB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,iCAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACP,YAAA,wBAAwB,CAAC,OAAO;AAC5B,gBAAA,UAAU,EAAE,MAAM,CAAC,aAAa,CAAC,GAAG,QAAQ,GAAG,OAAO;AACtD,gBAAA,IAAI,EAAE,GAAG;AACZ,aAAA,CAAC,CAAC;AACN,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChCL,64CAoDA,ED9Bc,MAAA,EAAA,CAAA,0rCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAI,EAAE,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,gBAAgB,mVAAa,SAAS,EAAA,QAAA,EAAA,uEAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAe7C,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAlBjC,SAAS;iCACM,IAAI,EAAA,QAAA,EACN,gBAAgB,EACjB,OAAA,EAAA,CAAC,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,SAAS,CAAC,EAAA,aAAA,EAGxC,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;AACP,wBAAA,wBAAwB,CAAC,OAAO;AAC5B,4BAAA,UAAU,EAAE,MAAM,CAAC,aAAa,CAAC,GAAG,QAAQ,GAAG,OAAO;AACtD,4BAAA,IAAI,EAAE,GAAG;AACZ,yBAAA,CAAC,CAAC;qBACN,EACK,IAAA,EAAA;AACF,wBAAA,iBAAiB,EAAE,6BAA6B;AACnD,qBAAA,EAAA,QAAA,EAAA,64CAAA,EAAA,MAAA,EAAA,CAAA,0rCAAA,CAAA,EAAA,CAAA;;;AEnCL;;AAEG;;;;"}