@taiga-ui/core 3.25.0 → 3.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/taiga-ui-core-components-button.umd.js +0 -8
- package/bundles/taiga-ui-core-components-button.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-data-list.umd.js +0 -4
- package/bundles/taiga-ui-core-components-data-list.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-dialog.umd.js +1 -1
- package/bundles/taiga-ui-core-components-dialog.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-hosted-dropdown.umd.js +0 -4
- package/bundles/taiga-ui-core-components-hosted-dropdown.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-label.umd.js +0 -4
- package/bundles/taiga-ui-core-components-label.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-loader.umd.js +0 -4
- package/bundles/taiga-ui-core-components-loader.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-root.umd.js +4 -4
- package/bundles/taiga-ui-core-components-root.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-svg.umd.js +11 -6
- package/bundles/taiga-ui-core-components-svg.umd.js.map +1 -1
- package/bundles/taiga-ui-core-constants.umd.js +3 -0
- package/bundles/taiga-ui-core-constants.umd.js.map +1 -1
- package/bundles/taiga-ui-core-directives-dropdown.umd.js +5 -5
- package/bundles/taiga-ui-core-directives-dropdown.umd.js.map +1 -1
- package/bundles/taiga-ui-core-directives-hint.umd.js +0 -8
- package/bundles/taiga-ui-core-directives-hint.umd.js.map +1 -1
- package/bundles/taiga-ui-core-directives-textfield-controller.umd.js +3 -9
- package/bundles/taiga-ui-core-directives-textfield-controller.umd.js.map +1 -1
- package/bundles/taiga-ui-core-pipes-flag.umd.js +6 -5
- package/bundles/taiga-ui-core-pipes-flag.umd.js.map +1 -1
- package/bundles/taiga-ui-core-pipes-format-phone.umd.js +1 -1
- package/bundles/taiga-ui-core-pipes-format-phone.umd.js.map +1 -1
- package/bundles/taiga-ui-core-services.umd.js.map +1 -1
- package/bundles/taiga-ui-core-utils-miscellaneous.umd.js +1 -1
- package/bundles/taiga-ui-core-utils-miscellaneous.umd.js.map +1 -1
- package/components/svg/svg-options.d.ts +2 -2
- package/constants/cache-basting-payload.d.ts +1 -0
- package/constants/index.d.ts +1 -0
- package/directives/dropdown/dropdown-options.directive.d.ts +3 -3
- package/esm2015/components/button/button.component.js +1 -9
- package/esm2015/components/data-list/data-list.component.js +1 -5
- package/esm2015/components/dialog/dialog.component.js +2 -2
- package/esm2015/components/hosted-dropdown/hosted-dropdown.component.js +1 -5
- package/esm2015/components/label/label.component.js +1 -5
- package/esm2015/components/loader/loader.component.js +1 -5
- package/esm2015/components/root/root.component.js +4 -4
- package/esm2015/components/svg/svg-options.js +12 -7
- package/esm2015/components/svg/svg.component.js +3 -3
- package/esm2015/constants/cache-basting-payload.js +3 -0
- package/esm2015/constants/index.js +2 -1
- package/esm2015/directives/dropdown/dropdown-options.directive.js +1 -1
- package/esm2015/directives/dropdown/dropdown-position-sided.directive.js +3 -2
- package/esm2015/directives/dropdown/dropdown-position.directive.js +4 -1
- package/esm2015/directives/dropdown/dropdown.directive.js +2 -6
- package/esm2015/directives/hint/hint-options.directive.js +1 -5
- package/esm2015/directives/hint/hint.directive.js +1 -5
- package/esm2015/directives/textfield-controller/textfield-custom-content.directive.js +1 -5
- package/esm2015/directives/textfield-controller/textfield-icon-left.directive.js +1 -5
- package/esm2015/directives/textfield-controller/textfield-icon.directive.js +1 -5
- package/esm2015/pipes/flag/flag.pipe.js +4 -2
- package/esm2015/pipes/format-phone/format-phone.pipe.js +2 -2
- package/esm2015/services/breakpoint.service.js +1 -1
- package/esm2015/types/dropdown-align.js +2 -0
- package/esm2015/types/index.js +2 -1
- package/esm2015/utils/miscellaneous/icons-path-factory.js +3 -3
- package/fesm2015/taiga-ui-core-components-button.js +0 -8
- package/fesm2015/taiga-ui-core-components-button.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-data-list.js +0 -4
- package/fesm2015/taiga-ui-core-components-data-list.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-dialog.js +1 -1
- package/fesm2015/taiga-ui-core-components-dialog.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-hosted-dropdown.js +0 -4
- package/fesm2015/taiga-ui-core-components-hosted-dropdown.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-label.js +0 -4
- package/fesm2015/taiga-ui-core-components-label.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-loader.js +0 -4
- package/fesm2015/taiga-ui-core-components-loader.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-root.js +3 -3
- package/fesm2015/taiga-ui-core-components-root.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-svg.js +13 -8
- package/fesm2015/taiga-ui-core-components-svg.js.map +1 -1
- package/fesm2015/taiga-ui-core-constants.js +4 -2
- package/fesm2015/taiga-ui-core-constants.js.map +1 -1
- package/fesm2015/taiga-ui-core-directives-dropdown.js +6 -6
- package/fesm2015/taiga-ui-core-directives-dropdown.js.map +1 -1
- package/fesm2015/taiga-ui-core-directives-hint.js +0 -8
- package/fesm2015/taiga-ui-core-directives-hint.js.map +1 -1
- package/fesm2015/taiga-ui-core-directives-textfield-controller.js +0 -12
- package/fesm2015/taiga-ui-core-directives-textfield-controller.js.map +1 -1
- package/fesm2015/taiga-ui-core-pipes-flag.js +3 -1
- package/fesm2015/taiga-ui-core-pipes-flag.js.map +1 -1
- package/fesm2015/taiga-ui-core-pipes-format-phone.js +1 -1
- package/fesm2015/taiga-ui-core-pipes-format-phone.js.map +1 -1
- package/fesm2015/taiga-ui-core-services.js.map +1 -1
- package/fesm2015/taiga-ui-core-utils-miscellaneous.js +2 -2
- package/fesm2015/taiga-ui-core-utils-miscellaneous.js.map +1 -1
- package/package.json +4 -4
- package/pipes/format-phone/format-phone.pipe.d.ts +1 -1
- package/services/breakpoint.service.d.ts +7 -3
- package/styles/taiga-ui-fonts.less +1 -1
- package/types/dropdown-align.d.ts +1 -0
- package/types/index.d.ts +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-core-components-root.js","sources":["../../../projects/core/components/root/root.component.ts","../../../projects/core/components/root/root.template.html","../../../projects/core/components/root/root.module.ts","../../../projects/core/components/root/taiga-ui-core-components-root.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Inject,\n ViewEncapsulation,\n} from '@angular/core';\nimport {TUI_DIALOGS, TUI_IS_MOBILE, TUI_VERSION} from '@taiga-ui/cdk';\nimport {TUI_IS_MOBILE_RES_PROVIDER} from '@taiga-ui/core/providers';\nimport {\n TUI_ANIMATIONS_DURATION,\n TUI_IS_MOBILE_RES,\n TUI_THEME,\n} from '@taiga-ui/core/tokens';\nimport {
|
|
1
|
+
{"version":3,"file":"taiga-ui-core-components-root.js","sources":["../../../projects/core/components/root/root.component.ts","../../../projects/core/components/root/root.template.html","../../../projects/core/components/root/root.module.ts","../../../projects/core/components/root/taiga-ui-core-components-root.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Inject,\n ViewEncapsulation,\n} from '@angular/core';\nimport {TUI_DIALOGS, TUI_IS_MOBILE, TUI_VERSION} from '@taiga-ui/cdk';\nimport {TUI_IS_MOBILE_RES_PROVIDER} from '@taiga-ui/core/providers';\nimport {\n TUI_ANIMATIONS_DURATION,\n TUI_IS_MOBILE_RES,\n TUI_THEME,\n} from '@taiga-ui/core/tokens';\nimport {combineLatest, Observable, of} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\n@Component({\n selector: 'tui-root',\n templateUrl: './root.template.html',\n styleUrls: ['./root.style.less'],\n // So that we do not force OnPush on custom dialogs\n // eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection\n changeDetection: ChangeDetectionStrategy.Default,\n providers: [TUI_IS_MOBILE_RES_PROVIDER],\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-tui-version': TUI_VERSION,\n '[style.--tui-duration.ms]': 'duration',\n '($.class._mobile)': 'isMobileRes$',\n },\n})\nexport class TuiRootComponent {\n readonly scrollbars$: Observable<boolean> =\n this.dialogs.length && !this.isMobile\n ? combineLatest([...this.dialogs]).pipe(\n map(dialogs => !dialogs.some(({length}) => length)),\n )\n : of(!this.isMobile);\n\n constructor(\n @Inject(TUI_ANIMATIONS_DURATION) readonly duration: number,\n @Inject(TUI_DIALOGS)\n readonly dialogs: ReadonlyArray<Observable<readonly unknown[]>>,\n @Inject(TUI_IS_MOBILE) private readonly isMobile: boolean,\n @Inject(TUI_IS_MOBILE_RES) readonly isMobileRes$: Observable<boolean>,\n @Inject(DOCUMENT) {body}: Document,\n @Inject(TUI_THEME) theme: string,\n ) {\n body.setAttribute('data-tui-theme', theme.toLowerCase());\n }\n}\n","<tui-scroll-controls\n *ngIf=\"scrollbars$ | async\"\n class=\"t-root-scrollbar\"\n></tui-scroll-controls>\n<tui-svg-defs-host></tui-svg-defs-host>\n<tui-dropdown-host>\n <div class=\"t-root-content\">\n <ng-content></ng-content>\n </div>\n <ng-content select=\"tuiOverContent\"></ng-content>\n <tui-dialog-host></tui-dialog-host>\n <ng-content select=\"tuiOverDialogs\"></ng-content>\n <tui-alert-host></tui-alert-host>\n <ng-content select=\"tuiOverAlerts\"></ng-content>\n</tui-dropdown-host>\n<ng-content select=\"tuiOverPortals\"></ng-content>\n<tui-hints-host></tui-hints-host>\n<ng-content select=\"tuiOverHints\"></ng-content>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {\n TuiAlertHostModule,\n TuiDialogHostModule,\n TuiDragModule,\n TuiDropdownHostModule,\n} from '@taiga-ui/cdk';\nimport {TuiHintsHostModule} from '@taiga-ui/core/components/hints-host';\nimport {TuiScrollControlsModule} from '@taiga-ui/core/components/scroll-controls';\nimport {TuiSvgDefsHostModule} from '@taiga-ui/core/internal/svg-defs-host';\nimport {EventPluginsModule} from '@tinkoff/ng-event-plugins';\n\nimport {TuiRootComponent} from './root.component';\n\n@NgModule({\n imports: [\n CommonModule,\n EventPluginsModule,\n TuiDragModule,\n TuiDropdownHostModule,\n TuiSvgDefsHostModule,\n TuiHintsHostModule,\n TuiDialogHostModule,\n TuiAlertHostModule,\n TuiScrollControlsModule,\n ],\n declarations: [TuiRootComponent],\n exports: [TuiRootComponent],\n})\nexport class TuiRootModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -2,13 +2,13 @@ import { __decorate } from 'tslib';
|
|
|
2
2
|
import * as i2 from '@angular/common';
|
|
3
3
|
import { DOCUMENT, CommonModule } from '@angular/common';
|
|
4
4
|
import * as i0 from '@angular/core';
|
|
5
|
-
import { InjectionToken, inject, SecurityContext, ElementRef, Component, ChangeDetectionStrategy, Inject,
|
|
5
|
+
import { InjectionToken, inject, SkipSelf, Optional, SecurityContext, ElementRef, Component, ChangeDetectionStrategy, Inject, Input, NgModule } from '@angular/core';
|
|
6
6
|
import * as i4 from '@angular/platform-browser';
|
|
7
7
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
8
8
|
import { WINDOW } from '@ng-web-apis/common';
|
|
9
9
|
import * as i1 from '@taiga-ui/cdk';
|
|
10
10
|
import { tuiSvgLinearGradientProcessor, tuiIsString, tuiAssert, tuiGetDocumentOrShadowRoot, TuiStaticRequestService, tuiRequiredSetter, tuiPure, TuiLetModule } from '@taiga-ui/cdk';
|
|
11
|
-
import { TUI_ICON_ERROR } from '@taiga-ui/core/constants';
|
|
11
|
+
import { TUI_CACHE_BUSTING_PAYLOAD, TUI_ICON_ERROR } from '@taiga-ui/core/constants';
|
|
12
12
|
import * as i3 from '@taiga-ui/core/services';
|
|
13
13
|
import { TuiSvgService } from '@taiga-ui/core/services';
|
|
14
14
|
import { TUI_ICONS_PATH, TUI_SVG_SRC_PROCESSOR, TUI_SVG_CONTENT_PROCESSOR, TUI_SANITIZER } from '@taiga-ui/core/tokens';
|
|
@@ -80,9 +80,13 @@ const TUI_SVG_DEFAULT_OPTIONS = {
|
|
|
80
80
|
path: tuiIconsPathFactory(`assets/taiga-ui/icons`),
|
|
81
81
|
srcProcessor: identity,
|
|
82
82
|
contentProcessor: tuiSvgLinearGradientProcessor,
|
|
83
|
-
deprecated: src =>
|
|
84
|
-
|
|
85
|
-
|
|
83
|
+
deprecated: src => {
|
|
84
|
+
const oldIcon = src.replace(`Large`, ``).replace(`Outline`, ``);
|
|
85
|
+
const newIcon = TUI_DEPRECATED_ICONS[oldIcon];
|
|
86
|
+
return newIcon
|
|
87
|
+
? `${oldIcon}/(Large|Outline) is deprecated, use ${newIcon}/(Large|Outline) instead`
|
|
88
|
+
: ``;
|
|
89
|
+
},
|
|
86
90
|
};
|
|
87
91
|
/**
|
|
88
92
|
* SVG component options
|
|
@@ -97,9 +101,10 @@ const TUI_SVG_OPTIONS = new InjectionToken(`[TUI_SVG_OPTIONS]`, {
|
|
|
97
101
|
});
|
|
98
102
|
const tuiSvgOptionsProvider = options => ({
|
|
99
103
|
provide: TUI_SVG_OPTIONS,
|
|
100
|
-
|
|
104
|
+
deps: [[new SkipSelf(), new Optional(), TUI_SVG_OPTIONS]],
|
|
105
|
+
useFactory: (fallback) => (Object.assign(Object.assign(Object.assign({}, (fallback || TUI_SVG_DEFAULT_OPTIONS)), options), { path: tuiIsString(options.path)
|
|
101
106
|
? tuiIconsPathFactory(options.path)
|
|
102
|
-
: options.path || TUI_SVG_DEFAULT_OPTIONS.path }),
|
|
107
|
+
: options.path || (fallback === null || fallback === void 0 ? void 0 : fallback.path) || TUI_SVG_DEFAULT_OPTIONS.path })),
|
|
103
108
|
});
|
|
104
109
|
|
|
105
110
|
const UNDEFINED_NAMED_ICON = 'Attempted to use undefined named icon';
|
|
@@ -154,7 +159,7 @@ class TuiSvgComponent {
|
|
|
154
159
|
return tuiGetDocumentOrShadowRoot(this.el.nativeElement) !== this.doc;
|
|
155
160
|
}
|
|
156
161
|
get isUse() {
|
|
157
|
-
return this.use.includes('.svg#');
|
|
162
|
+
return this.use.replace(TUI_CACHE_BUSTING_PAYLOAD, '').includes('.svg#');
|
|
158
163
|
}
|
|
159
164
|
get isExternal() {
|
|
160
165
|
return this.isUrl || this.isCrossDomain;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-core-components-svg.js","sources":["../../../projects/core/components/svg/deprecated-icons.ts","../../../projects/core/components/svg/svg-options.ts","../../../projects/core/components/svg/svg.component.ts","../../../projects/core/components/svg/svg.template.html","../../../projects/core/components/svg/svg.module.ts","../../../projects/core/components/svg/taiga-ui-core-components-svg.ts"],"sourcesContent":["export const TUI_DEPRECATED_ICONS: Record<string, string> = {\n tuiIconAttach: `tuiIconPaperclip`,\n tuiIconAttention: `tuiIconAlertCircle`,\n tuiIconBackCircle: `tuiIconArrowLeftCircle`,\n tuiIconCall: `tuiIconPhone`,\n tuiIconCallIn: `tuiIconPhoneIncoming`,\n tuiIconCallOut: `tuiIconPhoneOutgoing`,\n tuiIconCallTransfer: `tuiIconPhoneForwarded`,\n tuiIconCancel: `tuiIconXCircle`,\n tuiIconCancelCircle: `tuiIconSlash`,\n tuiIconCard: `tuiIconCreditCard`,\n tuiIconCards: `tuiIconCreditCard`,\n tuiIconChartBar: `tuiIconBarChart`,\n tuiIconChart: `tuiIconBarChart`,\n tuiIconCheckList: `tuiIconClipboard`,\n tuiIconCloseCircle: `tuiIconXCircle`,\n tuiIconCollapse: `tuiIconMinimize`,\n tuiIconComment: `tuiIconMessageSquare`,\n tuiIconCommentFw: `tuiIconMessageForward`,\n tuiIconCompany: `tuiIconBriefcase`,\n tuiIconDefaultDoc: `tuiIconFile`,\n tuiIconDesktop: `tuiIconMonitor`,\n tuiIconDesktopOff: `tuiIconMonitorOff`,\n tuiIconDislike: `tuiIconThumbsDown`,\n tuiIconDone: `tuiIconCheckCircle`,\n tuiIconDraft: `tuiIconEdit2`,\n tuiIconEyeOpen: `tuiIconEye`,\n tuiIconEyeClosed: `tuiIconEyeOff`,\n tuiIconExpand: `tuiIconMaximize`,\n tuiIconExternal: `tuiIconExternalLink`,\n tuiIconFrame: `tuiIconLayout`,\n tuiIconGeo: `tuiIconMapPin`,\n tuiIconHeartFilled: `tuiIconHeart`,\n tuiIconHide: `tuiIconEyeOff`,\n tuiIconImg: `tuiIconImage`,\n tuiIconInfoCircle: `tuiIconInfo`,\n tuiIconLike: `tuiIconThumbsUp`,\n tuiIconLockOpen: `tuiIconUnlock`,\n tuiIconMobile: `tuiIconSmartphone`,\n tuiIconMoreHor: `tuiIconMoreHorizontal`,\n tuiIconMoreVer: `tuiIconMoreVertical`,\n tuiIconMoreVert: `tuiIconMoreVertical`,\n tuiIconPicture: `tuiIconImage`,\n tuiIconPin: `tuiIconMapPin`,\n tuiIconPrint: `tuiIconPrinter`,\n tuiIconRefresh: `tuiIconRefreshCw`,\n tuiIconRemove: `tuiIconX`,\n tuiIconShow: `tuiIconEye`,\n tuiIconSound: `tuiIconVolume`,\n tuiIconSoundOff: `tuiIconVolumeX`,\n tuiIconStarFilled: `tuiIconStar`,\n tuiIconStop: `tuiIconSquare`,\n tuiIconStructure: `tuiIconGrid`,\n tuiIconTime: `tuiIconClock`,\n tuiIconTooltip: `tuiIconHelpCircle`,\n tuiIconViewList: `tuiIconList`,\n tuiIconWifiOn: `tuiIconWifi`,\n};\n","import {inject, InjectionToken, ValueProvider} from '@angular/core';\nimport {SafeHtml} from '@angular/platform-browser';\nimport {\n TuiHandler,\n tuiIsString,\n TuiStringHandler,\n tuiSvgLinearGradientProcessor,\n} from '@taiga-ui/cdk';\nimport {\n TUI_ICONS_PATH,\n TUI_SVG_CONTENT_PROCESSOR,\n TUI_SVG_SRC_PROCESSOR,\n} from '@taiga-ui/core/tokens';\nimport {tuiIconsPathFactory} from '@taiga-ui/core/utils';\nimport {identity} from 'rxjs';\n\nimport {TUI_DEPRECATED_ICONS} from './deprecated-icons';\n\nexport interface TuiSvgOptions {\n readonly path: TuiStringHandler<string>;\n readonly deprecated: TuiStringHandler<string>;\n readonly srcProcessor: TuiHandler<SafeHtml | string, SafeHtml | string>;\n readonly contentProcessor: TuiHandler<SafeHtml | string, SafeHtml | string>;\n}\n\nexport const TUI_SVG_DEFAULT_OPTIONS: TuiSvgOptions = {\n path: tuiIconsPathFactory(`assets/taiga-ui/icons`),\n srcProcessor: identity,\n contentProcessor: tuiSvgLinearGradientProcessor,\n deprecated: src =>\n TUI_DEPRECATED_ICONS[src.replace(`Large`, ``).replace(`Outline`, ``)]\n ? `${src} is deprecated, use ${\n TUI_DEPRECATED_ICONS[src.replace(`Large`, ``)]\n }/Large instead`\n : ``,\n};\n\n/**\n * SVG component options\n */\nexport const TUI_SVG_OPTIONS = new InjectionToken<TuiSvgOptions>(`[TUI_SVG_OPTIONS]`, {\n factory: () => ({\n path: inject(TUI_ICONS_PATH),\n deprecated: TUI_SVG_DEFAULT_OPTIONS.deprecated,\n srcProcessor: inject(TUI_SVG_SRC_PROCESSOR),\n contentProcessor: inject(TUI_SVG_CONTENT_PROCESSOR),\n }),\n});\n\nexport const tuiSvgOptionsProvider: (\n options: Partial<Omit<TuiSvgOptions, 'path'>> & {\n path?: TuiSvgOptions['path'] | string;\n },\n) => ValueProvider = options => ({\n provide: TUI_SVG_OPTIONS,\n useValue: {\n ...TUI_SVG_DEFAULT_OPTIONS,\n ...options,\n path: tuiIsString(options.path)\n ? tuiIconsPathFactory(options.path)\n : options.path || TUI_SVG_DEFAULT_OPTIONS.path,\n },\n});\n","import {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Inject,\n Input,\n Optional,\n Sanitizer,\n SecurityContext,\n} from '@angular/core';\nimport {DomSanitizer, SafeHtml} from '@angular/platform-browser';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {\n tuiAssert,\n tuiGetDocumentOrShadowRoot,\n tuiIsString,\n tuiPure,\n tuiRequiredSetter,\n TuiStaticRequestService,\n TuiStringHandler,\n} from '@taiga-ui/cdk';\nimport {TUI_ICON_ERROR} from '@taiga-ui/core/constants';\nimport {TuiIconError} from '@taiga-ui/core/interfaces';\nimport {TuiSvgService} from '@taiga-ui/core/services';\nimport {TUI_SANITIZER} from '@taiga-ui/core/tokens';\nimport {tuiIsPresumedHTMLString} from '@taiga-ui/core/utils/miscellaneous';\nimport {Observable, of, ReplaySubject} from 'rxjs';\nimport {catchError, map, startWith, switchMap} from 'rxjs/operators';\n\nimport {TUI_SVG_OPTIONS, TuiSvgOptions} from './svg-options';\n\nconst UNDEFINED_NAMED_ICON = 'Attempted to use undefined named icon';\nconst MISSING_EXTERNAL_ICON = 'External icon is missing on the given URL';\nconst FAILED_EXTERNAL_ICON = 'Failed to load external SVG';\n\n// TODO: Consider moving to CDK along with SvgService and SvgDefsHostComponent\n@Component({\n selector: 'tui-svg',\n templateUrl: './svg.template.html',\n styleUrls: ['./svg.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiSvgComponent {\n private readonly src$ = new ReplaySubject<void>(1);\n private icon: SafeHtml | string = '';\n\n readonly innerHTML$: Observable<SafeHtml>;\n\n constructor(\n @Inject(DOCUMENT) private readonly doc: Document,\n @Inject(WINDOW) private readonly win: Window,\n @Inject(TUI_SVG_OPTIONS) private readonly options: TuiSvgOptions,\n @Optional()\n @Inject(TUI_SANITIZER)\n private readonly tuiSanitizer: Sanitizer | null,\n @Inject(TuiSvgService) private readonly svgService: TuiSvgService,\n @Inject(TuiStaticRequestService)\n private readonly staticRequestService: TuiStaticRequestService,\n @Inject(DomSanitizer) private readonly sanitizer: DomSanitizer,\n @Inject(ElementRef) private readonly el: ElementRef<Element>,\n ) {\n this.innerHTML$ = this.src$.pipe(\n switchMap(() => {\n if (tuiIsString(this.icon)) {\n return this.isExternal\n ? this.getExternalIcon(this.icon)\n : of(this.getSafeHtml(this.icon));\n }\n\n return of(this.icon);\n }),\n startWith(''),\n );\n }\n\n @Input()\n @tuiRequiredSetter()\n set src(src: SafeHtml | string) {\n const deprecated = this.options.deprecated(String(src));\n\n ngDevMode && tuiAssert.assert(!deprecated, deprecated);\n this.icon = this.options.srcProcessor(src);\n this.src$.next();\n }\n\n get src(): SafeHtml | string {\n return this.icon;\n }\n\n get use(): string {\n if (tuiIsString(this.icon)) {\n return this.icon.includes('.svg#')\n ? this.icon\n : this.resolveName(this.icon, this.options.path);\n }\n\n return '';\n }\n\n get isInnerHTML(): boolean {\n return (\n !tuiIsString(this.icon) ||\n this.isSrc ||\n this.isExternal ||\n (this.isName && this.isShadowDOM)\n );\n }\n\n private get isShadowDOM(): boolean {\n return tuiGetDocumentOrShadowRoot(this.el.nativeElement) !== this.doc;\n }\n\n private get isUse(): boolean {\n return this.use.includes('.svg#');\n }\n\n private get isExternal(): boolean {\n return this.isUrl || this.isCrossDomain;\n }\n\n private get isUrl(): boolean {\n return tuiIsString(this.icon) && this.icon.endsWith('.svg');\n }\n\n private get isSrc(): boolean {\n return tuiIsString(this.icon) && tuiIsPresumedHTMLString(this.icon);\n }\n\n private get isName(): boolean {\n return !this.isUrl && !this.isUse && !this.isSrc;\n }\n\n private get isCrossDomain(): boolean {\n const {use, isUse, win} = this;\n\n return (\n isUse && use.startsWith('http') && !!win.origin && !use.startsWith(win.origin)\n );\n }\n\n onError(message: string = MISSING_EXTERNAL_ICON): void {\n const {icon} = this;\n const event = new CustomEvent<TuiIconError>(TUI_ICON_ERROR, {\n bubbles: true,\n detail: {\n message,\n icon: icon as string,\n },\n });\n\n ngDevMode && tuiAssert.assert(false, message, icon);\n this.el.nativeElement.dispatchEvent(event);\n }\n\n @tuiPure\n private resolveName(name: string, iconsPath: TuiStringHandler<string>): string {\n return iconsPath(name);\n }\n\n private getSafeHtml(src: string): SafeHtml {\n return this.isSrc ? this.sanitize(src) : this.process(src);\n }\n\n private process(src: string): SafeHtml {\n const icon = this.svgService.getOriginal(src);\n\n if (this.isName && !icon && !!src) {\n this.onError(UNDEFINED_NAMED_ICON);\n }\n\n // Empty line for innerHTML when icon is shown through USE tag\n return !this.isShadowDOM || !this.isName ? '' : this.sanitize(icon || '');\n }\n\n private sanitize(src: SafeHtml | string): SafeHtml | string {\n src = this.options.contentProcessor(src);\n\n return this.tuiSanitizer && tuiIsString(src)\n ? this.sanitizer.bypassSecurityTrustHtml(\n this.tuiSanitizer.sanitize(SecurityContext.HTML, src) || '',\n )\n : src;\n }\n\n private getExternalIcon(src: string): Observable<SafeHtml> {\n const url = src.includes('.svg') ? src : this.use;\n\n return this.staticRequestService.request(url).pipe(\n catchError(() => {\n this.onError(FAILED_EXTERNAL_ICON);\n\n return of('');\n }),\n map(response =>\n this.sanitize(response.replace('<svg', '<svg focusable=\"false\"')),\n ),\n );\n }\n}\n","<ng-container *tuiLet=\"innerHTML$ | async as innerHTML\">\n <div\n *ngIf=\"isInnerHTML; else useTemplate\"\n class=\"t-src\"\n [innerHTML]=\"innerHTML\"\n ></div>\n <ng-template #useTemplate>\n <svg\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n focusable=\"false\"\n width=\"100%\"\n height=\"100%\"\n class=\"t-svg\"\n (error)=\"onError()\"\n >\n <use [attr.xlink:href]=\"use\"></use>\n </svg>\n </ng-template>\n</ng-container>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiLetModule} from '@taiga-ui/cdk';\n\nimport {TuiSvgComponent} from './svg.component';\n\n@NgModule({\n imports: [CommonModule, TuiLetModule],\n declarations: [TuiSvgComponent],\n exports: [TuiSvgComponent],\n})\nexport class TuiSvgModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAa,MAAA,oBAAoB,GAA2B;AACxD,IAAA,aAAa,EAAE,CAAkB,gBAAA,CAAA;AACjC,IAAA,gBAAgB,EAAE,CAAoB,kBAAA,CAAA;AACtC,IAAA,iBAAiB,EAAE,CAAwB,sBAAA,CAAA;AAC3C,IAAA,WAAW,EAAE,CAAc,YAAA,CAAA;AAC3B,IAAA,aAAa,EAAE,CAAsB,oBAAA,CAAA;AACrC,IAAA,cAAc,EAAE,CAAsB,oBAAA,CAAA;AACtC,IAAA,mBAAmB,EAAE,CAAuB,qBAAA,CAAA;AAC5C,IAAA,aAAa,EAAE,CAAgB,cAAA,CAAA;AAC/B,IAAA,mBAAmB,EAAE,CAAc,YAAA,CAAA;AACnC,IAAA,WAAW,EAAE,CAAmB,iBAAA,CAAA;AAChC,IAAA,YAAY,EAAE,CAAmB,iBAAA,CAAA;AACjC,IAAA,eAAe,EAAE,CAAiB,eAAA,CAAA;AAClC,IAAA,YAAY,EAAE,CAAiB,eAAA,CAAA;AAC/B,IAAA,gBAAgB,EAAE,CAAkB,gBAAA,CAAA;AACpC,IAAA,kBAAkB,EAAE,CAAgB,cAAA,CAAA;AACpC,IAAA,eAAe,EAAE,CAAiB,eAAA,CAAA;AAClC,IAAA,cAAc,EAAE,CAAsB,oBAAA,CAAA;AACtC,IAAA,gBAAgB,EAAE,CAAuB,qBAAA,CAAA;AACzC,IAAA,cAAc,EAAE,CAAkB,gBAAA,CAAA;AAClC,IAAA,iBAAiB,EAAE,CAAa,WAAA,CAAA;AAChC,IAAA,cAAc,EAAE,CAAgB,cAAA,CAAA;AAChC,IAAA,iBAAiB,EAAE,CAAmB,iBAAA,CAAA;AACtC,IAAA,cAAc,EAAE,CAAmB,iBAAA,CAAA;AACnC,IAAA,WAAW,EAAE,CAAoB,kBAAA,CAAA;AACjC,IAAA,YAAY,EAAE,CAAc,YAAA,CAAA;AAC5B,IAAA,cAAc,EAAE,CAAY,UAAA,CAAA;AAC5B,IAAA,gBAAgB,EAAE,CAAe,aAAA,CAAA;AACjC,IAAA,aAAa,EAAE,CAAiB,eAAA,CAAA;AAChC,IAAA,eAAe,EAAE,CAAqB,mBAAA,CAAA;AACtC,IAAA,YAAY,EAAE,CAAe,aAAA,CAAA;AAC7B,IAAA,UAAU,EAAE,CAAe,aAAA,CAAA;AAC3B,IAAA,kBAAkB,EAAE,CAAc,YAAA,CAAA;AAClC,IAAA,WAAW,EAAE,CAAe,aAAA,CAAA;AAC5B,IAAA,UAAU,EAAE,CAAc,YAAA,CAAA;AAC1B,IAAA,iBAAiB,EAAE,CAAa,WAAA,CAAA;AAChC,IAAA,WAAW,EAAE,CAAiB,eAAA,CAAA;AAC9B,IAAA,eAAe,EAAE,CAAe,aAAA,CAAA;AAChC,IAAA,aAAa,EAAE,CAAmB,iBAAA,CAAA;AAClC,IAAA,cAAc,EAAE,CAAuB,qBAAA,CAAA;AACvC,IAAA,cAAc,EAAE,CAAqB,mBAAA,CAAA;AACrC,IAAA,eAAe,EAAE,CAAqB,mBAAA,CAAA;AACtC,IAAA,cAAc,EAAE,CAAc,YAAA,CAAA;AAC9B,IAAA,UAAU,EAAE,CAAe,aAAA,CAAA;AAC3B,IAAA,YAAY,EAAE,CAAgB,cAAA,CAAA;AAC9B,IAAA,cAAc,EAAE,CAAkB,gBAAA,CAAA;AAClC,IAAA,aAAa,EAAE,CAAU,QAAA,CAAA;AACzB,IAAA,WAAW,EAAE,CAAY,UAAA,CAAA;AACzB,IAAA,YAAY,EAAE,CAAe,aAAA,CAAA;AAC7B,IAAA,eAAe,EAAE,CAAgB,cAAA,CAAA;AACjC,IAAA,iBAAiB,EAAE,CAAa,WAAA,CAAA;AAChC,IAAA,WAAW,EAAE,CAAe,aAAA,CAAA;AAC5B,IAAA,gBAAgB,EAAE,CAAa,WAAA,CAAA;AAC/B,IAAA,WAAW,EAAE,CAAc,YAAA,CAAA;AAC3B,IAAA,cAAc,EAAE,CAAmB,iBAAA,CAAA;AACnC,IAAA,eAAe,EAAE,CAAa,WAAA,CAAA;AAC9B,IAAA,aAAa,EAAE,CAAa,WAAA,CAAA;;;AC/BnB,MAAA,uBAAuB,GAAkB;AAClD,IAAA,IAAI,EAAE,mBAAmB,CAAC,CAAA,qBAAA,CAAuB,CAAC;AAClD,IAAA,YAAY,EAAE,QAAQ;AACtB,IAAA,gBAAgB,EAAE,6BAA6B;IAC/C,UAAU,EAAE,GAAG,IACX,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAA,CAAE,CAAC,CAAC,OAAO,CAAC,CAAS,OAAA,CAAA,EAAE,CAAE,CAAA,CAAC,CAAC;AACjE,UAAE,CAAA,EAAG,GAAG,CAAA,oBAAA,EACF,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAO,KAAA,CAAA,EAAE,CAAE,CAAA,CAAC,CACjD,CAAgB,cAAA,CAAA;AAClB,UAAE,CAAE,CAAA;EACd;AAEF;;AAEG;MACU,eAAe,GAAG,IAAI,cAAc,CAAgB,mBAAmB,EAAE;AAClF,IAAA,OAAO,EAAE,OAAO;AACZ,QAAA,IAAI,EAAE,MAAM,CAAC,cAAc,CAAC;QAC5B,UAAU,EAAE,uBAAuB,CAAC,UAAU;AAC9C,QAAA,YAAY,EAAE,MAAM,CAAC,qBAAqB,CAAC;AAC3C,QAAA,gBAAgB,EAAE,MAAM,CAAC,yBAAyB,CAAC;KACtD,CAAC;AACL,CAAA,EAAE;MAEU,qBAAqB,GAIb,OAAO,KAAK;AAC7B,IAAA,OAAO,EAAE,eAAe;AACxB,IAAA,QAAQ,EACD,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,uBAAuB,CACvB,EAAA,OAAO,CACV,EAAA,EAAA,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;AAC3B,cAAE,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC;cACjC,OAAO,CAAC,IAAI,IAAI,uBAAuB,CAAC,IAAI,EACrD,CAAA;AACJ,CAAA;;AC9BD,MAAM,oBAAoB,GAAG,uCAAuC,CAAC;AACrE,MAAM,qBAAqB,GAAG,2CAA2C,CAAC;AAC1E,MAAM,oBAAoB,GAAG,6BAA6B,CAAC;AAE3D;MAOa,eAAe,CAAA;AAMxB,IAAA,WAAA,CACuC,GAAa,EACf,GAAW,EACF,OAAsB,EAG/C,YAA8B,EACP,UAAyB,EAEhD,oBAA6C,EACvB,SAAuB,EACzB,EAAuB,EAAA;QAVzB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAU;QACf,IAAG,CAAA,GAAA,GAAH,GAAG,CAAQ;QACF,IAAO,CAAA,OAAA,GAAP,OAAO,CAAe;QAG/C,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAkB;QACP,IAAU,CAAA,UAAA,GAAV,UAAU,CAAe;QAEhD,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAAyB;QACvB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAc;QACzB,IAAE,CAAA,EAAA,GAAF,EAAE,CAAqB;AAhB/C,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,aAAa,CAAO,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAA,IAAA,GAAsB,EAAE,CAAC;AAiBjC,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAC5B,SAAS,CAAC,MAAK;AACX,YAAA,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACxB,OAAO,IAAI,CAAC,UAAU;sBAChB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;AACjC,sBAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACzC,aAAA;AAED,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,SAAC,CAAC,EACF,SAAS,CAAC,EAAE,CAAC,CAChB,CAAC;KACL;IAID,IAAI,GAAG,CAAC,GAAsB,EAAA;AAC1B,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAExD,SAAS,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;AAC3C,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;KACpB;AAED,IAAA,IAAI,GAAG,GAAA;QACH,OAAO,IAAI,CAAC,IAAI,CAAC;KACpB;AAED,IAAA,IAAI,GAAG,GAAA;AACH,QAAA,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACxB,YAAA,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;kBAC5B,IAAI,CAAC,IAAI;AACX,kBAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACxD,SAAA;AAED,QAAA,OAAO,EAAE,CAAC;KACb;AAED,IAAA,IAAI,WAAW,GAAA;AACX,QAAA,QACI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;AACvB,YAAA,IAAI,CAAC,KAAK;AACV,YAAA,IAAI,CAAC,UAAU;aACd,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,EACnC;KACL;AAED,IAAA,IAAY,WAAW,GAAA;AACnB,QAAA,OAAO,0BAA0B,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC;KACzE;AAED,IAAA,IAAY,KAAK,GAAA;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;KACrC;AAED,IAAA,IAAY,UAAU,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC;KAC3C;AAED,IAAA,IAAY,KAAK,GAAA;AACb,QAAA,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;KAC/D;AAED,IAAA,IAAY,KAAK,GAAA;AACb,QAAA,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACvE;AAED,IAAA,IAAY,MAAM,GAAA;AACd,QAAA,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;KACpD;AAED,IAAA,IAAY,aAAa,GAAA;QACrB,MAAM,EAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAC,GAAG,IAAI,CAAC;QAE/B,QACI,KAAK,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAChF;KACL;IAED,OAAO,CAAC,UAAkB,qBAAqB,EAAA;AAC3C,QAAA,MAAM,EAAC,IAAI,EAAC,GAAG,IAAI,CAAC;AACpB,QAAA,MAAM,KAAK,GAAG,IAAI,WAAW,CAAe,cAAc,EAAE;AACxD,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,MAAM,EAAE;gBACJ,OAAO;AACP,gBAAA,IAAI,EAAE,IAAc;AACvB,aAAA;AACJ,SAAA,CAAC,CAAC;QAEH,SAAS,IAAI,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;KAC9C;IAGO,WAAW,CAAC,IAAY,EAAE,SAAmC,EAAA;AACjE,QAAA,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;KAC1B;AAEO,IAAA,WAAW,CAAC,GAAW,EAAA;QAC3B,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;KAC9D;AAEO,IAAA,OAAO,CAAC,GAAW,EAAA;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAE9C,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,EAAE;AAC/B,YAAA,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;AACtC,SAAA;;QAGD,OAAO,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;KAC7E;AAEO,IAAA,QAAQ,CAAC,GAAsB,EAAA;QACnC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;AAEzC,QAAA,OAAO,IAAI,CAAC,YAAY,IAAI,WAAW,CAAC,GAAG,CAAC;cACtC,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAClC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAC9D;cACD,GAAG,CAAC;KACb;AAEO,IAAA,eAAe,CAAC,GAAW,EAAA;AAC/B,QAAA,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;AAElD,QAAA,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAC9C,UAAU,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAEnC,YAAA,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;SACjB,CAAC,EACF,GAAG,CAAC,QAAQ,IACR,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC,CACpE,CACJ,CAAC;KACL;;AA3JQ,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,EAOZ,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,QAAQ,EACR,EAAA,EAAA,KAAA,EAAA,MAAM,aACN,eAAe,EAAA,EAAA,EAAA,KAAA,EAEf,aAAa,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAEb,aAAa,EACb,EAAA,EAAA,KAAA,EAAA,uBAAuB,EAEvB,EAAA,EAAA,KAAA,EAAA,YAAY,aACZ,UAAU,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAjBb,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,uEC3C5B,soBAqBA,EAAA,MAAA,EAAA,CAAA,qTAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,OAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;ADyDI,UAAA,CAAA;AADC,IAAA,iBAAiB,EAAE;AAOnB,CAAA,EAAA,eAAA,CAAA,SAAA,EAAA,KAAA,EAAA,IAAA,CAAA,CAAA;AAwED,UAAA,CAAA;IADC,OAAO;AAGP,CAAA,EAAA,eAAA,CAAA,SAAA,EAAA,aAAA,EAAA,IAAA,CAAA,CAAA;4FAnHQ,eAAe,EAAA,UAAA,EAAA,CAAA;kBAN3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,SAAS;AACnB,oBAAA,WAAW,EAAE,qBAAqB;oBAClC,SAAS,EAAE,CAAC,kBAAkB,CAAC;oBAC/B,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAClD,iBAAA,CAAA;0DAQ+C,QAAQ,EAAA,UAAA,EAAA,CAAA;0BAA/C,MAAM;2BAAC,QAAQ,CAAA;8BACsB,MAAM,EAAA,UAAA,EAAA,CAAA;0BAA3C,MAAM;2BAAC,MAAM,CAAA;;0BACb,MAAM;2BAAC,eAAe,CAAA;;0BACtB,QAAQ;;0BACR,MAAM;2BAAC,aAAa,CAAA;;0BAEpB,MAAM;2BAAC,aAAa,CAAA;;0BACpB,MAAM;2BAAC,uBAAuB,CAAA;;0BAE9B,MAAM;2BAAC,YAAY,CAAA;;0BACnB,MAAM;2BAAC,UAAU,CAAA;4CAkBlB,GAAG,EAAA,CAAA;sBAFN,KAAK;gBAgFE,WAAW,EAAA,EAAA,EAAA,EAAA,CAAA;;MEjJV,YAAY,CAAA;;0GAAZ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAZ,YAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,iBAHN,eAAe,CAAA,EAAA,OAAA,EAAA,CADpB,YAAY,EAAE,YAAY,aAE1B,eAAe,CAAA,EAAA,CAAA,CAAA;AAEhB,YAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,EAJZ,OAAA,EAAA,CAAA,CAAC,YAAY,EAAE,YAAY,CAAC,CAAA,EAAA,CAAA,CAAA;4FAI5B,YAAY,EAAA,UAAA,EAAA,CAAA;kBALxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;oBACrC,YAAY,EAAE,CAAC,eAAe,CAAC;oBAC/B,OAAO,EAAE,CAAC,eAAe,CAAC;AAC7B,iBAAA,CAAA;;;ACVD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-core-components-svg.js","sources":["../../../projects/core/components/svg/deprecated-icons.ts","../../../projects/core/components/svg/svg-options.ts","../../../projects/core/components/svg/svg.component.ts","../../../projects/core/components/svg/svg.template.html","../../../projects/core/components/svg/svg.module.ts","../../../projects/core/components/svg/taiga-ui-core-components-svg.ts"],"sourcesContent":["export const TUI_DEPRECATED_ICONS: Record<string, string> = {\n tuiIconAttach: `tuiIconPaperclip`,\n tuiIconAttention: `tuiIconAlertCircle`,\n tuiIconBackCircle: `tuiIconArrowLeftCircle`,\n tuiIconCall: `tuiIconPhone`,\n tuiIconCallIn: `tuiIconPhoneIncoming`,\n tuiIconCallOut: `tuiIconPhoneOutgoing`,\n tuiIconCallTransfer: `tuiIconPhoneForwarded`,\n tuiIconCancel: `tuiIconXCircle`,\n tuiIconCancelCircle: `tuiIconSlash`,\n tuiIconCard: `tuiIconCreditCard`,\n tuiIconCards: `tuiIconCreditCard`,\n tuiIconChartBar: `tuiIconBarChart`,\n tuiIconChart: `tuiIconBarChart`,\n tuiIconCheckList: `tuiIconClipboard`,\n tuiIconCloseCircle: `tuiIconXCircle`,\n tuiIconCollapse: `tuiIconMinimize`,\n tuiIconComment: `tuiIconMessageSquare`,\n tuiIconCommentFw: `tuiIconMessageForward`,\n tuiIconCompany: `tuiIconBriefcase`,\n tuiIconDefaultDoc: `tuiIconFile`,\n tuiIconDesktop: `tuiIconMonitor`,\n tuiIconDesktopOff: `tuiIconMonitorOff`,\n tuiIconDislike: `tuiIconThumbsDown`,\n tuiIconDone: `tuiIconCheckCircle`,\n tuiIconDraft: `tuiIconEdit2`,\n tuiIconEyeOpen: `tuiIconEye`,\n tuiIconEyeClosed: `tuiIconEyeOff`,\n tuiIconExpand: `tuiIconMaximize`,\n tuiIconExternal: `tuiIconExternalLink`,\n tuiIconFrame: `tuiIconLayout`,\n tuiIconGeo: `tuiIconMapPin`,\n tuiIconHeartFilled: `tuiIconHeart`,\n tuiIconHide: `tuiIconEyeOff`,\n tuiIconImg: `tuiIconImage`,\n tuiIconInfoCircle: `tuiIconInfo`,\n tuiIconLike: `tuiIconThumbsUp`,\n tuiIconLockOpen: `tuiIconUnlock`,\n tuiIconMobile: `tuiIconSmartphone`,\n tuiIconMoreHor: `tuiIconMoreHorizontal`,\n tuiIconMoreVer: `tuiIconMoreVertical`,\n tuiIconMoreVert: `tuiIconMoreVertical`,\n tuiIconPicture: `tuiIconImage`,\n tuiIconPin: `tuiIconMapPin`,\n tuiIconPrint: `tuiIconPrinter`,\n tuiIconRefresh: `tuiIconRefreshCw`,\n tuiIconRemove: `tuiIconX`,\n tuiIconShow: `tuiIconEye`,\n tuiIconSound: `tuiIconVolume`,\n tuiIconSoundOff: `tuiIconVolumeX`,\n tuiIconStarFilled: `tuiIconStar`,\n tuiIconStop: `tuiIconSquare`,\n tuiIconStructure: `tuiIconGrid`,\n tuiIconTime: `tuiIconClock`,\n tuiIconTooltip: `tuiIconHelpCircle`,\n tuiIconViewList: `tuiIconList`,\n tuiIconWifiOn: `tuiIconWifi`,\n};\n","import {FactoryProvider, inject, InjectionToken, Optional, SkipSelf} from '@angular/core';\nimport {SafeHtml} from '@angular/platform-browser';\nimport {\n TuiHandler,\n tuiIsString,\n TuiStringHandler,\n tuiSvgLinearGradientProcessor,\n} from '@taiga-ui/cdk';\nimport {\n TUI_ICONS_PATH,\n TUI_SVG_CONTENT_PROCESSOR,\n TUI_SVG_SRC_PROCESSOR,\n} from '@taiga-ui/core/tokens';\nimport {tuiIconsPathFactory} from '@taiga-ui/core/utils';\nimport {identity} from 'rxjs';\n\nimport {TUI_DEPRECATED_ICONS} from './deprecated-icons';\n\nexport interface TuiSvgOptions {\n readonly path: TuiStringHandler<string>;\n readonly deprecated: TuiStringHandler<string>;\n readonly srcProcessor: TuiHandler<SafeHtml | string, SafeHtml | string>;\n readonly contentProcessor: TuiHandler<SafeHtml | string, SafeHtml | string>;\n}\n\nexport const TUI_SVG_DEFAULT_OPTIONS: TuiSvgOptions = {\n path: tuiIconsPathFactory(`assets/taiga-ui/icons`),\n srcProcessor: identity,\n contentProcessor: tuiSvgLinearGradientProcessor,\n deprecated: src => {\n const oldIcon = src.replace(`Large`, ``).replace(`Outline`, ``);\n const newIcon = TUI_DEPRECATED_ICONS[oldIcon];\n\n return newIcon\n ? `${oldIcon}/(Large|Outline) is deprecated, use ${newIcon}/(Large|Outline) instead`\n : ``;\n },\n};\n\n/**\n * SVG component options\n */\nexport const TUI_SVG_OPTIONS = new InjectionToken<TuiSvgOptions>(`[TUI_SVG_OPTIONS]`, {\n factory: () => ({\n path: inject(TUI_ICONS_PATH),\n deprecated: TUI_SVG_DEFAULT_OPTIONS.deprecated,\n srcProcessor: inject(TUI_SVG_SRC_PROCESSOR),\n contentProcessor: inject(TUI_SVG_CONTENT_PROCESSOR),\n }),\n});\n\nexport const tuiSvgOptionsProvider: (\n options: Partial<Omit<TuiSvgOptions, 'path'>> & {\n path?: TuiSvgOptions['path'] | string;\n },\n) => FactoryProvider = options => ({\n provide: TUI_SVG_OPTIONS,\n deps: [[new SkipSelf(), new Optional(), TUI_SVG_OPTIONS]],\n useFactory: (fallback: TuiSvgOptions | null) => ({\n ...(fallback || TUI_SVG_DEFAULT_OPTIONS),\n ...options,\n path: tuiIsString(options.path)\n ? tuiIconsPathFactory(options.path)\n : options.path || fallback?.path || TUI_SVG_DEFAULT_OPTIONS.path,\n }),\n});\n","import {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Inject,\n Input,\n Optional,\n Sanitizer,\n SecurityContext,\n} from '@angular/core';\nimport {DomSanitizer, SafeHtml} from '@angular/platform-browser';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {\n tuiAssert,\n tuiGetDocumentOrShadowRoot,\n tuiIsString,\n tuiPure,\n tuiRequiredSetter,\n TuiStaticRequestService,\n TuiStringHandler,\n} from '@taiga-ui/cdk';\nimport {TUI_CACHE_BUSTING_PAYLOAD, TUI_ICON_ERROR} from '@taiga-ui/core/constants';\nimport {TuiIconError} from '@taiga-ui/core/interfaces';\nimport {TuiSvgService} from '@taiga-ui/core/services';\nimport {TUI_SANITIZER} from '@taiga-ui/core/tokens';\nimport {tuiIsPresumedHTMLString} from '@taiga-ui/core/utils/miscellaneous';\nimport {Observable, of, ReplaySubject} from 'rxjs';\nimport {catchError, map, startWith, switchMap} from 'rxjs/operators';\n\nimport {TUI_SVG_OPTIONS, TuiSvgOptions} from './svg-options';\n\nconst UNDEFINED_NAMED_ICON = 'Attempted to use undefined named icon';\nconst MISSING_EXTERNAL_ICON = 'External icon is missing on the given URL';\nconst FAILED_EXTERNAL_ICON = 'Failed to load external SVG';\n\n// TODO: Consider moving to CDK along with SvgService and SvgDefsHostComponent\n@Component({\n selector: 'tui-svg',\n templateUrl: './svg.template.html',\n styleUrls: ['./svg.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiSvgComponent {\n private readonly src$ = new ReplaySubject<void>(1);\n private icon: SafeHtml | string = '';\n\n readonly innerHTML$: Observable<SafeHtml>;\n\n constructor(\n @Inject(DOCUMENT) private readonly doc: Document,\n @Inject(WINDOW) private readonly win: Window,\n @Inject(TUI_SVG_OPTIONS) private readonly options: TuiSvgOptions,\n @Optional()\n @Inject(TUI_SANITIZER)\n private readonly tuiSanitizer: Sanitizer | null,\n @Inject(TuiSvgService) private readonly svgService: TuiSvgService,\n @Inject(TuiStaticRequestService)\n private readonly staticRequestService: TuiStaticRequestService,\n @Inject(DomSanitizer) private readonly sanitizer: DomSanitizer,\n @Inject(ElementRef) private readonly el: ElementRef<Element>,\n ) {\n this.innerHTML$ = this.src$.pipe(\n switchMap(() => {\n if (tuiIsString(this.icon)) {\n return this.isExternal\n ? this.getExternalIcon(this.icon)\n : of(this.getSafeHtml(this.icon));\n }\n\n return of(this.icon);\n }),\n startWith(''),\n );\n }\n\n @Input()\n @tuiRequiredSetter()\n set src(src: SafeHtml | string) {\n const deprecated = this.options.deprecated(String(src));\n\n ngDevMode && tuiAssert.assert(!deprecated, deprecated);\n this.icon = this.options.srcProcessor(src);\n this.src$.next();\n }\n\n get src(): SafeHtml | string {\n return this.icon;\n }\n\n get use(): string {\n if (tuiIsString(this.icon)) {\n return this.icon.includes('.svg#')\n ? this.icon\n : this.resolveName(this.icon, this.options.path);\n }\n\n return '';\n }\n\n get isInnerHTML(): boolean {\n return (\n !tuiIsString(this.icon) ||\n this.isSrc ||\n this.isExternal ||\n (this.isName && this.isShadowDOM)\n );\n }\n\n private get isShadowDOM(): boolean {\n return tuiGetDocumentOrShadowRoot(this.el.nativeElement) !== this.doc;\n }\n\n private get isUse(): boolean {\n return this.use.replace(TUI_CACHE_BUSTING_PAYLOAD, '').includes('.svg#');\n }\n\n private get isExternal(): boolean {\n return this.isUrl || this.isCrossDomain;\n }\n\n private get isUrl(): boolean {\n return tuiIsString(this.icon) && this.icon.endsWith('.svg');\n }\n\n private get isSrc(): boolean {\n return tuiIsString(this.icon) && tuiIsPresumedHTMLString(this.icon);\n }\n\n private get isName(): boolean {\n return !this.isUrl && !this.isUse && !this.isSrc;\n }\n\n private get isCrossDomain(): boolean {\n const {use, isUse, win} = this;\n\n return (\n isUse && use.startsWith('http') && !!win.origin && !use.startsWith(win.origin)\n );\n }\n\n onError(message: string = MISSING_EXTERNAL_ICON): void {\n const {icon} = this;\n const event = new CustomEvent<TuiIconError>(TUI_ICON_ERROR, {\n bubbles: true,\n detail: {\n message,\n icon: icon as string,\n },\n });\n\n ngDevMode && tuiAssert.assert(false, message, icon);\n this.el.nativeElement.dispatchEvent(event);\n }\n\n @tuiPure\n private resolveName(name: string, iconsPath: TuiStringHandler<string>): string {\n return iconsPath(name);\n }\n\n private getSafeHtml(src: string): SafeHtml {\n return this.isSrc ? this.sanitize(src) : this.process(src);\n }\n\n private process(src: string): SafeHtml {\n const icon = this.svgService.getOriginal(src);\n\n if (this.isName && !icon && !!src) {\n this.onError(UNDEFINED_NAMED_ICON);\n }\n\n // Empty line for innerHTML when icon is shown through USE tag\n return !this.isShadowDOM || !this.isName ? '' : this.sanitize(icon || '');\n }\n\n private sanitize(src: SafeHtml | string): SafeHtml | string {\n src = this.options.contentProcessor(src);\n\n return this.tuiSanitizer && tuiIsString(src)\n ? this.sanitizer.bypassSecurityTrustHtml(\n this.tuiSanitizer.sanitize(SecurityContext.HTML, src) || '',\n )\n : src;\n }\n\n private getExternalIcon(src: string): Observable<SafeHtml> {\n const url = src.includes('.svg') ? src : this.use;\n\n return this.staticRequestService.request(url).pipe(\n catchError(() => {\n this.onError(FAILED_EXTERNAL_ICON);\n\n return of('');\n }),\n map(response =>\n this.sanitize(response.replace('<svg', '<svg focusable=\"false\"')),\n ),\n );\n }\n}\n","<ng-container *tuiLet=\"innerHTML$ | async as innerHTML\">\n <div\n *ngIf=\"isInnerHTML; else useTemplate\"\n class=\"t-src\"\n [innerHTML]=\"innerHTML\"\n ></div>\n <ng-template #useTemplate>\n <svg\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n focusable=\"false\"\n width=\"100%\"\n height=\"100%\"\n class=\"t-svg\"\n (error)=\"onError()\"\n >\n <use [attr.xlink:href]=\"use\"></use>\n </svg>\n </ng-template>\n</ng-container>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiLetModule} from '@taiga-ui/cdk';\n\nimport {TuiSvgComponent} from './svg.component';\n\n@NgModule({\n imports: [CommonModule, TuiLetModule],\n declarations: [TuiSvgComponent],\n exports: [TuiSvgComponent],\n})\nexport class TuiSvgModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import { EMPTY_ARRAY, CHAR_NO_BREAK_SPACE } from '@taiga-ui/cdk';
|
|
1
|
+
import { TUI_VERSION, EMPTY_ARRAY, CHAR_NO_BREAK_SPACE } from '@taiga-ui/cdk';
|
|
2
|
+
|
|
3
|
+
const TUI_CACHE_BUSTING_PAYLOAD = `?v=${TUI_VERSION}`;
|
|
2
4
|
|
|
3
5
|
const TUI_DECIMAL_SYMBOLS = [`,`, `.`];
|
|
4
6
|
|
|
@@ -74,5 +76,5 @@ const TUI_LATIN_AND_NUMBERS_REGEXP = /[A-z|0-9]/;
|
|
|
74
76
|
* Generated bundle index. Do not edit.
|
|
75
77
|
*/
|
|
76
78
|
|
|
77
|
-
export { DEFAULT_ICONS_PATH, MASK_CARET_TRAP, TUI_DECIMAL_SYMBOLS, TUI_DEFAULT_MARKER_HANDLER, TUI_DEFAULT_NUMBER_FORMAT, TUI_DIGIT_REGEXP, TUI_EXPAND_LOADED, TUI_HINT_DIRECTIONS, TUI_ICON_ERROR, TUI_LAST_PUNCTUATION_MARK_REGEXP, TUI_LATIN_AND_NUMBERS_REGEXP, TUI_LATIN_REGEXP, TUI_LEADING_ZEROES_REGEXP, TUI_MASK_SYMBOLS_REGEXP, TUI_NON_DIGITS_REGEXP, TUI_NON_DIGIT_REGEXP, TUI_SCROLLABLE, TUI_SCROLL_INTO_VIEW, tuiEditingKeys };
|
|
79
|
+
export { DEFAULT_ICONS_PATH, MASK_CARET_TRAP, TUI_CACHE_BUSTING_PAYLOAD, TUI_DECIMAL_SYMBOLS, TUI_DEFAULT_MARKER_HANDLER, TUI_DEFAULT_NUMBER_FORMAT, TUI_DIGIT_REGEXP, TUI_EXPAND_LOADED, TUI_HINT_DIRECTIONS, TUI_ICON_ERROR, TUI_LAST_PUNCTUATION_MARK_REGEXP, TUI_LATIN_AND_NUMBERS_REGEXP, TUI_LATIN_REGEXP, TUI_LEADING_ZEROES_REGEXP, TUI_MASK_SYMBOLS_REGEXP, TUI_NON_DIGITS_REGEXP, TUI_NON_DIGIT_REGEXP, TUI_SCROLLABLE, TUI_SCROLL_INTO_VIEW, tuiEditingKeys };
|
|
78
80
|
//# sourceMappingURL=taiga-ui-core-constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-core-constants.js","sources":["../../../projects/core/constants/decimal-symbols.ts","../../../projects/core/constants/default-icons-path.ts","../../../projects/core/constants/default-marker-handler.ts","../../../projects/core/constants/default-number-format.ts","../../../projects/core/constants/editing-keys.ts","../../../projects/core/constants/events.ts","../../../projects/core/constants/hint-directions.ts","../../../projects/core/constants/mask-caret-trap.ts","../../../projects/core/constants/regexp.ts","../../../projects/core/constants/taiga-ui-core-constants.ts"],"sourcesContent":["export const TUI_DECIMAL_SYMBOLS: readonly string[] = [`,`, `.`];\n","import {TuiStringHandler} from '@taiga-ui/cdk';\n\nexport const DEFAULT_ICONS_PATH: TuiStringHandler<string> = name =>\n name.includes(`.svg#`) ? name : `#${name}`;\n","import {EMPTY_ARRAY} from '@taiga-ui/cdk';\nimport {TuiMarkerHandler} from '@taiga-ui/core/types';\n\nexport const TUI_DEFAULT_MARKER_HANDLER: TuiMarkerHandler = () => EMPTY_ARRAY;\n","import {CHAR_NO_BREAK_SPACE} from '@taiga-ui/cdk';\nimport {TuiNumberFormatSettings} from '@taiga-ui/core/interfaces';\n\nexport const TUI_DEFAULT_NUMBER_FORMAT: TuiNumberFormatSettings = {\n decimalLimit: Infinity,\n decimalSeparator: `,`,\n thousandSeparator: CHAR_NO_BREAK_SPACE,\n zeroPadding: true,\n};\n","export const tuiEditingKeys: readonly string[] = [\n `Spacebar`,\n `Backspace`,\n `Delete`,\n `ArrowLeft`,\n `ArrowRight`,\n `Left`,\n `Right`,\n `End`,\n `Home`,\n];\n","/**\n * An event indicating that async data for expand has finished loading.\n * Dispatch to finish loading states for {@link TuiExpandComponent}.\n */\nexport const TUI_EXPAND_LOADED = `tui-expand-loaded`;\n\n/**\n * An event for scrolling an element into view within {@link TuiScrollbarComponent}.\n */\nexport const TUI_SCROLL_INTO_VIEW = `tui-scroll-into-view`;\n\n/**\n * An event to notify {@link TuiScrollbarComponent} that\n * it should control a nested element.\n */\nexport const TUI_SCROLLABLE = `tui-scrollable`;\n\n/**\n * An event indicating and error during icon loading in {@link TuiSvgComponent}.\n */\nexport const TUI_ICON_ERROR = `tui-icon-error`;\n","import {TuiHintDirection} from '@taiga-ui/core/types';\n\nexport const TUI_HINT_DIRECTIONS: readonly TuiHintDirection[] = [\n `bottom-left`,\n `bottom`,\n `bottom-right`,\n `top-left`,\n `top`,\n `top-right`,\n `left-top`,\n `left`,\n `left-bottom`,\n `right-top`,\n `right`,\n `right-bottom`,\n];\n","export const MASK_CARET_TRAP = `[]`;\n","export const TUI_DIGIT_REGEXP = /\\d/;\nexport const TUI_NON_DIGIT_REGEXP = /\\D/;\nexport const TUI_NON_DIGITS_REGEXP = /\\D+/g;\nexport const TUI_LEADING_ZEROES_REGEXP = /^0+/;\nexport const TUI_MASK_SYMBOLS_REGEXP = /[ \\-_()]/g;\nexport const TUI_LAST_PUNCTUATION_MARK_REGEXP = /[.,\\\\/#!$%\\\\^&\\\\*;:{}=\\\\-_`~()]$/;\nexport const TUI_LATIN_REGEXP = /[A-z]/;\nexport const TUI_LATIN_AND_NUMBERS_REGEXP = /[A-z|0-9]/;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"taiga-ui-core-constants.js","sources":["../../../projects/core/constants/cache-basting-payload.ts","../../../projects/core/constants/decimal-symbols.ts","../../../projects/core/constants/default-icons-path.ts","../../../projects/core/constants/default-marker-handler.ts","../../../projects/core/constants/default-number-format.ts","../../../projects/core/constants/editing-keys.ts","../../../projects/core/constants/events.ts","../../../projects/core/constants/hint-directions.ts","../../../projects/core/constants/mask-caret-trap.ts","../../../projects/core/constants/regexp.ts","../../../projects/core/constants/taiga-ui-core-constants.ts"],"sourcesContent":["import {TUI_VERSION} from '@taiga-ui/cdk';\n\nexport const TUI_CACHE_BUSTING_PAYLOAD = `?v=${TUI_VERSION}` as const;\n","export const TUI_DECIMAL_SYMBOLS: readonly string[] = [`,`, `.`];\n","import {TuiStringHandler} from '@taiga-ui/cdk';\n\nexport const DEFAULT_ICONS_PATH: TuiStringHandler<string> = name =>\n name.includes(`.svg#`) ? name : `#${name}`;\n","import {EMPTY_ARRAY} from '@taiga-ui/cdk';\nimport {TuiMarkerHandler} from '@taiga-ui/core/types';\n\nexport const TUI_DEFAULT_MARKER_HANDLER: TuiMarkerHandler = () => EMPTY_ARRAY;\n","import {CHAR_NO_BREAK_SPACE} from '@taiga-ui/cdk';\nimport {TuiNumberFormatSettings} from '@taiga-ui/core/interfaces';\n\nexport const TUI_DEFAULT_NUMBER_FORMAT: TuiNumberFormatSettings = {\n decimalLimit: Infinity,\n decimalSeparator: `,`,\n thousandSeparator: CHAR_NO_BREAK_SPACE,\n zeroPadding: true,\n};\n","export const tuiEditingKeys: readonly string[] = [\n `Spacebar`,\n `Backspace`,\n `Delete`,\n `ArrowLeft`,\n `ArrowRight`,\n `Left`,\n `Right`,\n `End`,\n `Home`,\n];\n","/**\n * An event indicating that async data for expand has finished loading.\n * Dispatch to finish loading states for {@link TuiExpandComponent}.\n */\nexport const TUI_EXPAND_LOADED = `tui-expand-loaded`;\n\n/**\n * An event for scrolling an element into view within {@link TuiScrollbarComponent}.\n */\nexport const TUI_SCROLL_INTO_VIEW = `tui-scroll-into-view`;\n\n/**\n * An event to notify {@link TuiScrollbarComponent} that\n * it should control a nested element.\n */\nexport const TUI_SCROLLABLE = `tui-scrollable`;\n\n/**\n * An event indicating and error during icon loading in {@link TuiSvgComponent}.\n */\nexport const TUI_ICON_ERROR = `tui-icon-error`;\n","import {TuiHintDirection} from '@taiga-ui/core/types';\n\nexport const TUI_HINT_DIRECTIONS: readonly TuiHintDirection[] = [\n `bottom-left`,\n `bottom`,\n `bottom-right`,\n `top-left`,\n `top`,\n `top-right`,\n `left-top`,\n `left`,\n `left-bottom`,\n `right-top`,\n `right`,\n `right-bottom`,\n];\n","export const MASK_CARET_TRAP = `[]`;\n","export const TUI_DIGIT_REGEXP = /\\d/;\nexport const TUI_NON_DIGIT_REGEXP = /\\D/;\nexport const TUI_NON_DIGITS_REGEXP = /\\D+/g;\nexport const TUI_LEADING_ZEROES_REGEXP = /^0+/;\nexport const TUI_MASK_SYMBOLS_REGEXP = /[ \\-_()]/g;\nexport const TUI_LAST_PUNCTUATION_MARK_REGEXP = /[.,\\\\/#!$%\\\\^&\\\\*;:{}=\\\\-_`~()]$/;\nexport const TUI_LATIN_REGEXP = /[A-z]/;\nexport const TUI_LATIN_AND_NUMBERS_REGEXP = /[A-z|0-9]/;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAEa,MAAA,yBAAyB,GAAG,CAAM,GAAA,EAAA,WAAW;;MCF7C,mBAAmB,GAAsB,CAAC,CAAG,CAAA,CAAA,EAAE,CAAG,CAAA,CAAA;;ACElD,MAAA,kBAAkB,GAA6B,IAAI,IAC5D,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAA,CAAA,EAAI,IAAI,CAAA;;MCA/B,0BAA0B,GAAqB,MAAM;;ACArD,MAAA,yBAAyB,GAA4B;AAC9D,IAAA,YAAY,EAAE,QAAQ;AACtB,IAAA,gBAAgB,EAAE,CAAG,CAAA,CAAA;AACrB,IAAA,iBAAiB,EAAE,mBAAmB;AACtC,IAAA,WAAW,EAAE,IAAI;;;ACPR,MAAA,cAAc,GAAsB;IAC7C,CAAU,QAAA,CAAA;IACV,CAAW,SAAA,CAAA;IACX,CAAQ,MAAA,CAAA;IACR,CAAW,SAAA,CAAA;IACX,CAAY,UAAA,CAAA;IACZ,CAAM,IAAA,CAAA;IACN,CAAO,KAAA,CAAA;IACP,CAAK,GAAA,CAAA;IACL,CAAM,IAAA,CAAA;;;ACTV;;;AAGG;AACI,MAAM,iBAAiB,GAAG,oBAAoB;AAErD;;AAEG;AACI,MAAM,oBAAoB,GAAG,uBAAuB;AAE3D;;;AAGG;AACI,MAAM,cAAc,GAAG,iBAAiB;AAE/C;;AAEG;AACI,MAAM,cAAc,GAAG;;AClBjB,MAAA,mBAAmB,GAAgC;IAC5D,CAAa,WAAA,CAAA;IACb,CAAQ,MAAA,CAAA;IACR,CAAc,YAAA,CAAA;IACd,CAAU,QAAA,CAAA;IACV,CAAK,GAAA,CAAA;IACL,CAAW,SAAA,CAAA;IACX,CAAU,QAAA,CAAA;IACV,CAAM,IAAA,CAAA;IACN,CAAa,WAAA,CAAA;IACb,CAAW,SAAA,CAAA;IACX,CAAO,KAAA,CAAA;IACP,CAAc,YAAA,CAAA;;;ACdX,MAAM,eAAe,GAAG;;ACAxB,MAAM,gBAAgB,GAAG,KAAK;AAC9B,MAAM,oBAAoB,GAAG,KAAK;AAClC,MAAM,qBAAqB,GAAG,OAAO;AACrC,MAAM,yBAAyB,GAAG,MAAM;AACxC,MAAM,uBAAuB,GAAG,YAAY;AAC5C,MAAM,gCAAgC,GAAG,mCAAmC;AAC5E,MAAM,gBAAgB,GAAG,QAAQ;AACjC,MAAM,4BAA4B,GAAG;;ACP5C;;AAEG;;;;"}
|
|
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { InjectionToken, ElementRef, INJECTOR, Directive, Inject, Input, Optional, SkipSelf, forwardRef, Component, ChangeDetectionStrategy, Self, HostBinding, HostListener, ViewContainerRef, NgModule } from '@angular/core';
|
|
3
3
|
import { WINDOW } from '@ng-web-apis/common';
|
|
4
4
|
import * as i2 from '@taiga-ui/cdk';
|
|
5
|
-
import { TuiDropdownPortalService,
|
|
5
|
+
import { TuiDropdownPortalService, tuiPure, TuiHoveredService, tuiDefaultProp, tuiPx, tuiGetClosestFocusable, TuiDestroyService, AbstractTuiPortalHostComponent, EMPTY_CLIENT_RECT, tuiPointToClientRect, TuiActiveZoneDirective, ALWAYS_TRUE_HANDLER, tuiIsTextNode, tuiIsString, tuiIsElement, tuiGetNativeFocused, tuiIsTextfield, CHAR_ZERO_WIDTH_SPACE, CHAR_NO_BREAK_SPACE, TUI_RANGE, TuiActiveZoneModule, TuiOverscrollModule, TuiHoveredModule } from '@taiga-ui/cdk';
|
|
6
6
|
import * as i1$2 from '@taiga-ui/core/abstract';
|
|
7
7
|
import { tuiAsRectAccessor, tuiAsVehicle, TuiDriver, tuiAsDriver, TuiRectAccessor, tuiPositionAccessorFor, tuiRectAccessorFor, AbstractTuiDriverDirective, TuiVehicle, TuiPositionAccessor, tuiFallbackRectAccessor, tuiAsPositionAccessor } from '@taiga-ui/core/abstract';
|
|
8
8
|
import { tuiDropdownAnimation } from '@taiga-ui/core/animations';
|
|
@@ -36,7 +36,6 @@ class TuiDropdownDirective {
|
|
|
36
36
|
this.hapica = hapica;
|
|
37
37
|
this.injector = injector;
|
|
38
38
|
this.dropdownService = dropdownService;
|
|
39
|
-
this.content = '';
|
|
40
39
|
this.dropdownBoxRef = null;
|
|
41
40
|
this.type = 'dropdown';
|
|
42
41
|
this.component = new PolymorpheusComponent(this.hapica, this.injector);
|
|
@@ -75,9 +74,6 @@ TuiDropdownDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", v
|
|
|
75
74
|
tuiAsRectAccessor(TuiDropdownDirective),
|
|
76
75
|
tuiAsVehicle(TuiDropdownDirective),
|
|
77
76
|
], exportAs: ["tuiDropdown"], usesOnChanges: true, ngImport: i0 });
|
|
78
|
-
__decorate([
|
|
79
|
-
tuiDefaultProp()
|
|
80
|
-
], TuiDropdownDirective.prototype, "content", void 0);
|
|
81
77
|
__decorate([
|
|
82
78
|
tuiPure
|
|
83
79
|
], TuiDropdownDirective.prototype, "position", null);
|
|
@@ -573,6 +569,9 @@ class TuiDropdownPositionDirective extends TuiPositionAccessor {
|
|
|
573
569
|
top: hostRect.top - offset - height,
|
|
574
570
|
bottom: hostRect.bottom + offset,
|
|
575
571
|
right,
|
|
572
|
+
center: hostRect.left + hostRect.width / 2 + width / 2 < viewport.right - offset
|
|
573
|
+
? hostRect.left + hostRect.width / 2 - width / 2
|
|
574
|
+
: right,
|
|
576
575
|
left: hostRect.left + width < viewport.right - offset ? hostRect.left : right,
|
|
577
576
|
};
|
|
578
577
|
const better = available.top > available.bottom ? 'top' : 'bottom';
|
|
@@ -631,7 +630,8 @@ class TuiDropdownPositionSidedDirective extends TuiPositionAccessor {
|
|
|
631
630
|
const { height, width } = rect;
|
|
632
631
|
const hostRect = (_b = (_a = this.vertical.accessor) === null || _a === void 0 ? void 0 : _a.getClientRect()) !== null && _b !== void 0 ? _b : EMPTY_CLIENT_RECT;
|
|
633
632
|
const viewport = this.viewport.getClientRect();
|
|
634
|
-
const {
|
|
633
|
+
const { direction, minHeight, offset } = this.options;
|
|
634
|
+
const align = this.options.align === 'center' ? 'left' : this.options.align;
|
|
635
635
|
const available = {
|
|
636
636
|
top: hostRect.bottom - viewport.top,
|
|
637
637
|
left: hostRect.left - offset - viewport.left,
|