@taiga-ui/legacy 4.52.0-canary.1ea42f6 → 4.52.0-canary.24b31eb
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/dialog/dialog.component.d.ts +20 -0
- package/components/dialog/dialog.directive.d.ts +7 -0
- package/components/dialog/dialog.factory.d.ts +16 -0
- package/components/dialog/dialog.interfaces.d.ts +31 -0
- package/components/dialog/dialog.service.d.ts +7 -0
- package/components/dialog/dialog.tokens.d.ts +8 -0
- package/components/dialog/index.d.ts +6 -0
- package/components/index.d.ts +1 -5
- package/fesm2022/taiga-ui-legacy-components-dialog.mjs +130 -0
- package/fesm2022/taiga-ui-legacy-components-dialog.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-components.mjs +1 -5
- package/fesm2022/taiga-ui-legacy-components.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy.mjs +0 -1
- package/fesm2022/taiga-ui-legacy.mjs.map +1 -1
- package/index.d.ts +0 -1
- package/package.json +32 -52
- package/utils/icons-path-factory.d.ts +1 -1
- package/components/color-selector/color-edit/color-edit.component.d.ts +0 -18
- package/components/color-selector/color-edit/color-edit.module.d.ts +0 -21
- package/components/color-selector/color-picker/color-picker.component.d.ts +0 -22
- package/components/color-selector/color-picker/color-picker.module.d.ts +0 -14
- package/components/color-selector/color-selector.component.d.ts +0 -47
- package/components/color-selector/color-selector.module.d.ts +0 -23
- package/components/color-selector/color-selector.options.d.ts +0 -25
- package/components/color-selector/flat-picker/flat-picker.component.d.ts +0 -12
- package/components/color-selector/flat-picker/flat-picker.module.d.ts +0 -12
- package/components/color-selector/index.d.ts +0 -16
- package/components/color-selector/linear-multi-picker/linear-multi-picker.component.d.ts +0 -17
- package/components/color-selector/linear-multi-picker/linear-multi-picker.module.d.ts +0 -12
- package/components/color-selector/linear-picker/linear-picker.component.d.ts +0 -10
- package/components/color-selector/linear-picker/linear-picker.module.d.ts +0 -12
- package/components/color-selector/palette/palette.component.d.ts +0 -10
- package/components/color-selector/palette/palette.module.d.ts +0 -13
- package/components/color-selector/services/picker.service.d.ts +0 -15
- package/components/input-color/index.d.ts +0 -2
- package/components/input-color/input-color.component.d.ts +0 -30
- package/components/input-color/input-color.module.d.ts +0 -17
- package/components/input-date/index.d.ts +0 -3
- package/components/input-date/input-date.component.d.ts +0 -62
- package/components/input-date/input-date.directive.d.ts +0 -19
- package/components/input-date/input-date.module.d.ts +0 -24
- package/components/input-date/native-date/native-date.component.d.ts +0 -15
- package/components/input-time/index.d.ts +0 -4
- package/components/input-time/input-time.component.d.ts +0 -62
- package/components/input-time/input-time.directive.d.ts +0 -17
- package/components/input-time/input-time.module.d.ts +0 -23
- package/components/input-time/input-time.options.d.ts +0 -42
- package/components/input-time/native-time/native-time.component.d.ts +0 -12
- package/components/svg/content-processor.d.ts +0 -19
- package/components/svg/deprecated-icons.d.ts +0 -5
- package/components/svg/index.d.ts +0 -5
- package/components/svg/svg-options.d.ts +0 -50
- package/components/svg/svg.component.d.ts +0 -50
- package/components/svg/svg.service.d.ts +0 -21
- package/fesm2022/taiga-ui-legacy-components-color-selector.mjs +0 -726
- package/fesm2022/taiga-ui-legacy-components-color-selector.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-components-input-color.mjs +0 -127
- package/fesm2022/taiga-ui-legacy-components-input-color.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-components-input-date.mjs +0 -372
- package/fesm2022/taiga-ui-legacy-components-input-date.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-components-input-time.mjs +0 -430
- package/fesm2022/taiga-ui-legacy-components-input-time.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-components-svg.mjs +0 -387
- package/fesm2022/taiga-ui-legacy-components-svg.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-services.mjs +0 -42
- package/fesm2022/taiga-ui-legacy-services.mjs.map +0 -1
- package/services/index.d.ts +0 -1
- package/services/static-request.service.d.ts +0 -11
|
@@ -1,387 +0,0 @@
|
|
|
1
|
-
import { tuiIsString, tuiPure } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
2
|
-
import { __decorate } from 'tslib';
|
|
3
|
-
import { DOCUMENT, AsyncPipe } from '@angular/common';
|
|
4
|
-
import * as i0 from '@angular/core';
|
|
5
|
-
import { inject, SecurityContext, Injectable, InjectionToken, SkipSelf, Optional, Input, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
6
|
-
import { DomSanitizer } from '@angular/platform-browser';
|
|
7
|
-
import { WA_WINDOW } from '@ng-web-apis/common';
|
|
8
|
-
import { TUI_BASE_HREF } from '@taiga-ui/cdk/tokens';
|
|
9
|
-
import { tuiInjectElement, tuiGetDocumentOrShadowRoot } from '@taiga-ui/cdk/utils/dom';
|
|
10
|
-
import { TuiStaticRequestService } from '@taiga-ui/legacy/services';
|
|
11
|
-
import { TUI_SANITIZER, TUI_ICON_STARTS } from '@taiga-ui/legacy/tokens';
|
|
12
|
-
import { tuiProcessIcon, tuiIconsPathFactory, TUI_CACHE_BUSTING_PAYLOAD, tuiIsPresumedHTMLString } from '@taiga-ui/legacy/utils';
|
|
13
|
-
import { BehaviorSubject, identity, ReplaySubject, switchMap, of, startWith, catchError, map } from 'rxjs';
|
|
14
|
-
|
|
15
|
-
function makeRandomSalt() {
|
|
16
|
-
return Math.floor(Math.random() * Date.now());
|
|
17
|
-
}
|
|
18
|
-
function extractLinearGradientIdsFromSvg(svg) {
|
|
19
|
-
const ids = (svg.match(/url\(("?)('*)#(.*?)('*)\)/g) ?? []).map((url) => url.slice(4, url.length - 1).replaceAll(/['"#]+/g, ''));
|
|
20
|
-
return Array.from(new Set(ids));
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* @deprecated: drop in v5.0 use {@link TuiIcon}
|
|
24
|
-
* https://taiga-ui.dev/components/icon
|
|
25
|
-
*
|
|
26
|
-
* @description:
|
|
27
|
-
* Any ‘linearGradient’ attributes which are defined on the referenced
|
|
28
|
-
* element which are not defined on this element are inherited by this element.
|
|
29
|
-
* If this element has no defined gradient stops, and the referenced element does
|
|
30
|
-
* (possibly due to its own ‘xlink:href’ attribute), then this element inherits
|
|
31
|
-
* the gradient stop from the referenced element. Inheritance can be indirect
|
|
32
|
-
* to an arbitrary level; thus, if the referenced element inherits attribute
|
|
33
|
-
* or gradient stops due to its own ‘xlink:href’ attribute, then the current
|
|
34
|
-
* element can inherit those attributes or gradient stops.
|
|
35
|
-
*
|
|
36
|
-
* Documentation: https://www.w3.org/TR/SVG11/pservers.html
|
|
37
|
-
*
|
|
38
|
-
*/
|
|
39
|
-
function tuiSvgLinearGradientProcessor(svg, salt = makeRandomSalt()) {
|
|
40
|
-
if (tuiIsString(svg)) {
|
|
41
|
-
const uniqueIds = extractLinearGradientIdsFromSvg(svg);
|
|
42
|
-
return uniqueIds.reduce((newSvg, previousId) => {
|
|
43
|
-
const newId = `id_${salt}_${previousId}`;
|
|
44
|
-
return newSvg
|
|
45
|
-
.replaceAll(`"${previousId}"`, `"${newId}"`)
|
|
46
|
-
.replaceAll(`'${previousId}'`, `'${newId}'`)
|
|
47
|
-
.replaceAll(`url('#${previousId}')`, `url('#${newId}')`)
|
|
48
|
-
.replaceAll(`url("#${previousId}")`, `url("#${newId}")`)
|
|
49
|
-
.replaceAll(`url(#${previousId})`, `url(#${newId})`);
|
|
50
|
-
}, svg);
|
|
51
|
-
}
|
|
52
|
-
return svg;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* @deprecated: drop in v5.0 use {@link TuiIcon}
|
|
57
|
-
* https://taiga-ui.dev/components/icon
|
|
58
|
-
*/
|
|
59
|
-
const TUI_DEPRECATED_ICONS = {
|
|
60
|
-
tuiIconAttach: 'tuiIconPaperclip',
|
|
61
|
-
tuiIconAttention: 'tuiIconAlertCircle',
|
|
62
|
-
tuiIconBackCircle: 'tuiIconArrowLeftCircle',
|
|
63
|
-
tuiIconCall: 'tuiIconPhone',
|
|
64
|
-
tuiIconCallIn: 'tuiIconPhoneIncoming',
|
|
65
|
-
tuiIconCallOut: 'tuiIconPhoneOutgoing',
|
|
66
|
-
tuiIconCallTransfer: 'tuiIconPhoneForwarded',
|
|
67
|
-
tuiIconCancel: 'tuiIconXCircle',
|
|
68
|
-
tuiIconCancelCircle: 'tuiIconSlash',
|
|
69
|
-
tuiIconCard: 'tuiIconCreditCard',
|
|
70
|
-
tuiIconCards: 'tuiIconCreditCard',
|
|
71
|
-
tuiIconChartBar: 'tuiIconBarChart',
|
|
72
|
-
tuiIconChart: 'tuiIconBarChart',
|
|
73
|
-
tuiIconCheckList: 'tuiIconClipboard',
|
|
74
|
-
tuiIconCloseCircle: 'tuiIconXCircle',
|
|
75
|
-
tuiIconCollapse: 'tuiIconMinimize',
|
|
76
|
-
tuiIconComment: 'tuiIconMessageSquare',
|
|
77
|
-
tuiIconCommentFw: 'tuiIconMessageForward',
|
|
78
|
-
tuiIconCompany: 'tuiIconBriefcase',
|
|
79
|
-
tuiIconDefaultDoc: 'tuiIconFile',
|
|
80
|
-
tuiIconDesktop: 'tuiIconMonitor',
|
|
81
|
-
tuiIconDesktopOff: 'tuiIconMonitorOff',
|
|
82
|
-
tuiIconDislike: 'tuiIconThumbsDown',
|
|
83
|
-
tuiIconDone: 'tuiIconCheckCircle',
|
|
84
|
-
tuiIconDraft: 'tuiIconEdit2',
|
|
85
|
-
tuiIconEyeOpen: 'tuiIconEye',
|
|
86
|
-
tuiIconEyeClosed: 'tuiIconEyeOff',
|
|
87
|
-
tuiIconExpand: 'tuiIconMaximize',
|
|
88
|
-
tuiIconExternal: 'tuiIconExternalLink',
|
|
89
|
-
tuiIconFrame: 'tuiIconLayout',
|
|
90
|
-
tuiIconGeo: 'tuiIconMapPin',
|
|
91
|
-
tuiIconHeartFilled: 'tuiIconHeart',
|
|
92
|
-
tuiIconHide: 'tuiIconEyeOff',
|
|
93
|
-
tuiIconImg: 'tuiIconImage',
|
|
94
|
-
tuiIconInfoCircle: 'tuiIconInfo',
|
|
95
|
-
tuiIconLike: 'tuiIconThumbsUp',
|
|
96
|
-
tuiIconLockOpen: 'tuiIconUnlock',
|
|
97
|
-
tuiIconMobile: 'tuiIconSmartphone',
|
|
98
|
-
tuiIconMoreHor: 'tuiIconMoreHorizontal',
|
|
99
|
-
tuiIconMoreVer: 'tuiIconMoreVertical',
|
|
100
|
-
tuiIconMoreVert: 'tuiIconMoreVertical',
|
|
101
|
-
tuiIconPicture: 'tuiIconImage',
|
|
102
|
-
tuiIconPin: 'tuiIconMapPin',
|
|
103
|
-
tuiIconPrint: 'tuiIconPrinter',
|
|
104
|
-
tuiIconRefresh: 'tuiIconRefreshCw',
|
|
105
|
-
tuiIconRemove: 'tuiIconX',
|
|
106
|
-
tuiIconShow: 'tuiIconEye',
|
|
107
|
-
tuiIconSound: 'tuiIconVolume',
|
|
108
|
-
tuiIconSoundOff: 'tuiIconVolumeX',
|
|
109
|
-
tuiIconStarFilled: 'tuiIconStar',
|
|
110
|
-
tuiIconStop: 'tuiIconSquare',
|
|
111
|
-
tuiIconStructure: 'tuiIconLayoutGrid',
|
|
112
|
-
tuiIconTime: 'tuiIconClock',
|
|
113
|
-
tuiIconTooltip: 'tuiIconHelpCircle',
|
|
114
|
-
tuiIconViewList: 'tuiIconList',
|
|
115
|
-
tuiIconWifiOn: 'tuiIconWifi',
|
|
116
|
-
};
|
|
117
|
-
|
|
118
|
-
/// <reference types="@taiga-ui/tsconfig/ng-dev-mode" />
|
|
119
|
-
/**
|
|
120
|
-
* @deprecated: drop in v5.0 use {@link TuiIcon}
|
|
121
|
-
* Service for reusing SVGs without inlining each instance
|
|
122
|
-
*/
|
|
123
|
-
class TuiSvgService {
|
|
124
|
-
constructor() {
|
|
125
|
-
this.tuiSanitizer = inject(TUI_SANITIZER, { optional: true });
|
|
126
|
-
this.sanitizer = inject(DomSanitizer);
|
|
127
|
-
this.originals = {};
|
|
128
|
-
this.items$ = new BehaviorSubject(new Map());
|
|
129
|
-
this.define(inject(TUI_ICON_STARTS));
|
|
130
|
-
}
|
|
131
|
-
define(icons) {
|
|
132
|
-
const { value } = this.items$;
|
|
133
|
-
Object.keys(icons).forEach((key) => {
|
|
134
|
-
this.defineIcon(key, icons[key] ?? '', value);
|
|
135
|
-
});
|
|
136
|
-
this.items$.next(value);
|
|
137
|
-
}
|
|
138
|
-
getOriginal(name) {
|
|
139
|
-
return this.originals[name] || null;
|
|
140
|
-
}
|
|
141
|
-
defineIcon(name, src, map) {
|
|
142
|
-
if (map.has(name)) {
|
|
143
|
-
return;
|
|
144
|
-
}
|
|
145
|
-
const parsed = this.parseSrc(name, src);
|
|
146
|
-
if (!parsed) {
|
|
147
|
-
ngDevMode && console.assert(false, 'Unable to parse given SVG src');
|
|
148
|
-
return;
|
|
149
|
-
}
|
|
150
|
-
map.set(name, parsed);
|
|
151
|
-
this.originals = {
|
|
152
|
-
...this.originals,
|
|
153
|
-
[name]: src,
|
|
154
|
-
};
|
|
155
|
-
}
|
|
156
|
-
parseSrc(name, src) {
|
|
157
|
-
return this.sanitize(tuiProcessIcon(src, name));
|
|
158
|
-
}
|
|
159
|
-
sanitize(src) {
|
|
160
|
-
return this.sanitizer.bypassSecurityTrustHtml((this.tuiSanitizer
|
|
161
|
-
? this.tuiSanitizer.sanitize(SecurityContext.HTML, src)
|
|
162
|
-
: this.sanitizer.sanitize(SecurityContext.HTML, src)) || '');
|
|
163
|
-
}
|
|
164
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiSvgService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
165
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiSvgService, providedIn: 'root' }); }
|
|
166
|
-
}
|
|
167
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiSvgService, decorators: [{
|
|
168
|
-
type: Injectable,
|
|
169
|
-
args: [{
|
|
170
|
-
providedIn: 'root',
|
|
171
|
-
}]
|
|
172
|
-
}], ctorParameters: () => [] });
|
|
173
|
-
|
|
174
|
-
/**
|
|
175
|
-
* @deprecated: drop in v5.0 use {@link TuiIcon}
|
|
176
|
-
* https://taiga-ui.dev/components/icon
|
|
177
|
-
*/
|
|
178
|
-
const TUI_DEFAULT_ICONS_PLACE = 'assets/taiga-ui/icons';
|
|
179
|
-
/**
|
|
180
|
-
* @deprecated: drop in v5.0 use {@link TuiIcon}
|
|
181
|
-
* https://taiga-ui.dev/components/icon
|
|
182
|
-
*/
|
|
183
|
-
const TUI_SVG_DEFAULT_OPTIONS = {
|
|
184
|
-
iconsPlace: TUI_DEFAULT_ICONS_PLACE,
|
|
185
|
-
path: tuiIconsPathFactory(TUI_DEFAULT_ICONS_PLACE),
|
|
186
|
-
srcProcessor: identity,
|
|
187
|
-
contentProcessor: tuiSvgLinearGradientProcessor,
|
|
188
|
-
deprecated: (src) => {
|
|
189
|
-
const oldIcon = src.replace('Large', '').replace('Outline', '');
|
|
190
|
-
const newIcon = TUI_DEPRECATED_ICONS[oldIcon];
|
|
191
|
-
return newIcon
|
|
192
|
-
? `${oldIcon}/(Large|Outline) is deprecated, use ${newIcon}/(Large|Outline) instead`
|
|
193
|
-
: '';
|
|
194
|
-
},
|
|
195
|
-
};
|
|
196
|
-
/**
|
|
197
|
-
* @deprecated: drop in v5.0 use {@link TuiIcon}
|
|
198
|
-
* https://taiga-ui.dev/components/icon
|
|
199
|
-
*/
|
|
200
|
-
const TUI_SVG_OPTIONS = new InjectionToken(ngDevMode ? 'TUI_SVG_OPTIONS' : '', {
|
|
201
|
-
factory: () => ({
|
|
202
|
-
iconsPlace: TUI_DEFAULT_ICONS_PLACE,
|
|
203
|
-
path: tuiIconsPathFactory(TUI_DEFAULT_ICONS_PLACE),
|
|
204
|
-
deprecated: TUI_SVG_DEFAULT_OPTIONS.deprecated,
|
|
205
|
-
srcProcessor: identity,
|
|
206
|
-
contentProcessor: tuiSvgLinearGradientProcessor,
|
|
207
|
-
}),
|
|
208
|
-
});
|
|
209
|
-
/**
|
|
210
|
-
* @deprecated: drop in v5.0 use {@link TuiIcon}
|
|
211
|
-
* https://taiga-ui.dev/components/icon
|
|
212
|
-
*/
|
|
213
|
-
const TUI_SVG_SRC_INTERCEPTORS = new InjectionToken(ngDevMode ? 'TUI_SVG_SRC_INTERCEPTORS' : '');
|
|
214
|
-
/**
|
|
215
|
-
* @deprecated: drop in v5.0 use {@link TuiIcon}
|
|
216
|
-
* https://taiga-ui.dev/components/icon
|
|
217
|
-
*/
|
|
218
|
-
function tuiSvgSrcInterceptors(interceptor) {
|
|
219
|
-
return {
|
|
220
|
-
provide: TUI_SVG_SRC_INTERCEPTORS,
|
|
221
|
-
useValue: interceptor,
|
|
222
|
-
multi: true,
|
|
223
|
-
};
|
|
224
|
-
}
|
|
225
|
-
/**
|
|
226
|
-
* @deprecated: drop in v5.0 use {@link TuiIcon}
|
|
227
|
-
* https://taiga-ui.dev/components/icon
|
|
228
|
-
*/
|
|
229
|
-
const tuiSvgOptionsProvider = (options) => ({
|
|
230
|
-
provide: TUI_SVG_OPTIONS,
|
|
231
|
-
deps: [[new SkipSelf(), new Optional(), TUI_SVG_OPTIONS]],
|
|
232
|
-
useFactory: (fallback) => ({
|
|
233
|
-
iconsPlace: options.iconsPlace ??
|
|
234
|
-
fallback?.iconsPlace ??
|
|
235
|
-
TUI_SVG_DEFAULT_OPTIONS.iconsPlace,
|
|
236
|
-
path: tuiIsString(options.path)
|
|
237
|
-
? tuiIconsPathFactory(options.path)
|
|
238
|
-
: (options.path ?? fallback?.path ?? TUI_SVG_DEFAULT_OPTIONS.path),
|
|
239
|
-
deprecated: options.deprecated ??
|
|
240
|
-
fallback?.deprecated ??
|
|
241
|
-
TUI_SVG_DEFAULT_OPTIONS.deprecated,
|
|
242
|
-
srcProcessor: options.srcProcessor ??
|
|
243
|
-
fallback?.srcProcessor ??
|
|
244
|
-
TUI_SVG_DEFAULT_OPTIONS.srcProcessor,
|
|
245
|
-
contentProcessor: options.contentProcessor ??
|
|
246
|
-
fallback?.contentProcessor ??
|
|
247
|
-
TUI_SVG_DEFAULT_OPTIONS.contentProcessor,
|
|
248
|
-
}),
|
|
249
|
-
});
|
|
250
|
-
|
|
251
|
-
const UNDEFINED_NAMED_ICON = 'Attempted to use undefined named icon';
|
|
252
|
-
const MISSING_EXTERNAL_ICON = 'External icon is missing on the given URL';
|
|
253
|
-
const FAILED_EXTERNAL_ICON = 'Failed to load external SVG';
|
|
254
|
-
/**
|
|
255
|
-
* @deprecated: drop in v5.0 use {@link TuiIcon}
|
|
256
|
-
* https://taiga-ui.dev/components/icon
|
|
257
|
-
*/
|
|
258
|
-
class TuiSvgComponent {
|
|
259
|
-
constructor() {
|
|
260
|
-
this.icon = '';
|
|
261
|
-
this.doc = inject(DOCUMENT);
|
|
262
|
-
this.win = inject(WA_WINDOW);
|
|
263
|
-
this.options = inject(TUI_SVG_OPTIONS);
|
|
264
|
-
this.tuiSanitizer = inject(TUI_SANITIZER, { optional: true });
|
|
265
|
-
this.svgService = inject(TuiSvgService);
|
|
266
|
-
this.staticRequestService = inject(TuiStaticRequestService);
|
|
267
|
-
this.sanitizer = inject(DomSanitizer);
|
|
268
|
-
this.el = tuiInjectElement();
|
|
269
|
-
this.baseHref = inject(TUI_BASE_HREF);
|
|
270
|
-
this.src$ = new ReplaySubject(1);
|
|
271
|
-
this.srcInterceptors = inject(TUI_SVG_SRC_INTERCEPTORS, {
|
|
272
|
-
optional: true,
|
|
273
|
-
});
|
|
274
|
-
this.innerHTML$ = this.src$.pipe(switchMap(() => {
|
|
275
|
-
if (tuiIsString(this.icon)) {
|
|
276
|
-
return this.isExternal
|
|
277
|
-
? this.getExternalIcon(this.icon)
|
|
278
|
-
: of(this.getSafeHtml(this.icon));
|
|
279
|
-
}
|
|
280
|
-
return of(this.icon);
|
|
281
|
-
}), startWith(''));
|
|
282
|
-
}
|
|
283
|
-
set src(src) {
|
|
284
|
-
const deprecated = this.options.deprecated(String(src));
|
|
285
|
-
ngDevMode && console.assert(!deprecated, deprecated);
|
|
286
|
-
this.icon = (this.srcInterceptors ?? []).reduce((newSrc, interceptor) => interceptor(newSrc, this.options), this.options.srcProcessor(src || ''));
|
|
287
|
-
this.src$.next();
|
|
288
|
-
}
|
|
289
|
-
get src() {
|
|
290
|
-
return this.icon;
|
|
291
|
-
}
|
|
292
|
-
get use() {
|
|
293
|
-
if (tuiIsString(this.icon)) {
|
|
294
|
-
return this.icon.includes('.svg#')
|
|
295
|
-
? this.icon
|
|
296
|
-
: this.resolveName(this.icon, this.options.path);
|
|
297
|
-
}
|
|
298
|
-
return '';
|
|
299
|
-
}
|
|
300
|
-
get isInnerHTML() {
|
|
301
|
-
return (!tuiIsString(this.icon) ||
|
|
302
|
-
this.isSrc ||
|
|
303
|
-
this.isExternal ||
|
|
304
|
-
(this.isName && this.isShadowDOM));
|
|
305
|
-
}
|
|
306
|
-
onError(message = MISSING_EXTERNAL_ICON) {
|
|
307
|
-
const { icon } = this;
|
|
308
|
-
const event = new CustomEvent('tui-icon-error', {
|
|
309
|
-
bubbles: true,
|
|
310
|
-
detail: {
|
|
311
|
-
message,
|
|
312
|
-
icon: icon,
|
|
313
|
-
},
|
|
314
|
-
});
|
|
315
|
-
ngDevMode && console.assert(false, message, icon);
|
|
316
|
-
this.el.dispatchEvent(event);
|
|
317
|
-
}
|
|
318
|
-
get isShadowDOM() {
|
|
319
|
-
return tuiGetDocumentOrShadowRoot(this.el) !== this.doc;
|
|
320
|
-
}
|
|
321
|
-
get isUse() {
|
|
322
|
-
return this.use.replace(TUI_CACHE_BUSTING_PAYLOAD, '').includes('.svg#');
|
|
323
|
-
}
|
|
324
|
-
get isExternal() {
|
|
325
|
-
return (this.isUrl ||
|
|
326
|
-
this.isCrossDomain ||
|
|
327
|
-
(!this.isSrc && !this.svgService.getOriginal(String(this.icon))));
|
|
328
|
-
}
|
|
329
|
-
get isUrl() {
|
|
330
|
-
return (tuiIsString(this.icon) &&
|
|
331
|
-
this.icon.replace(TUI_CACHE_BUSTING_PAYLOAD, '').endsWith('.svg'));
|
|
332
|
-
}
|
|
333
|
-
get isSrc() {
|
|
334
|
-
return tuiIsString(this.icon) && tuiIsPresumedHTMLString(this.icon);
|
|
335
|
-
}
|
|
336
|
-
get isName() {
|
|
337
|
-
return !this.isUrl && !this.isUse && !this.isSrc;
|
|
338
|
-
}
|
|
339
|
-
get isCrossDomain() {
|
|
340
|
-
const { use, isUse, win } = this;
|
|
341
|
-
return (isUse && use.startsWith('http') && !!win.origin && !use.startsWith(win.origin));
|
|
342
|
-
}
|
|
343
|
-
resolveName(name, iconsPath) {
|
|
344
|
-
return iconsPath(name, this.baseHref);
|
|
345
|
-
}
|
|
346
|
-
getSafeHtml(src) {
|
|
347
|
-
return this.isSrc ? this.sanitize(src) : this.process(src);
|
|
348
|
-
}
|
|
349
|
-
process(src) {
|
|
350
|
-
const icon = this.svgService.getOriginal(src);
|
|
351
|
-
if (this.isName && !icon && !!src) {
|
|
352
|
-
this.onError(UNDEFINED_NAMED_ICON);
|
|
353
|
-
}
|
|
354
|
-
return this.sanitize(icon || '');
|
|
355
|
-
}
|
|
356
|
-
sanitize(src) {
|
|
357
|
-
src = this.options.contentProcessor(src);
|
|
358
|
-
return this.tuiSanitizer && tuiIsString(src)
|
|
359
|
-
? this.sanitizer.bypassSecurityTrustHtml(this.tuiSanitizer.sanitize(SecurityContext.HTML, src) || '')
|
|
360
|
-
: src;
|
|
361
|
-
}
|
|
362
|
-
getExternalIcon(src) {
|
|
363
|
-
const url = src.includes('.svg') ? src : this.use;
|
|
364
|
-
return this.staticRequestService.request(url).pipe(catchError(() => {
|
|
365
|
-
this.onError(FAILED_EXTERNAL_ICON);
|
|
366
|
-
return of('');
|
|
367
|
-
}), map((response) => this.sanitize(response.replace('<svg', '<svg focusable="false"'))));
|
|
368
|
-
}
|
|
369
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiSvgComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
370
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: TuiSvgComponent, isStandalone: true, selector: "tui-svg", inputs: { src: "src" }, ngImport: i0, template: "<div\n class=\"t-src\"\n [innerHTML]=\"innerHTML$ | async\"\n></div>\n", styles: [":host{display:inline-flex;vertical-align:middle;flex-shrink:0;align-items:center;justify-content:center;line-height:0;block-size:1.5rem;inline-size:1.5rem;fill:transparent;stroke:transparent;font-size:1rem}.t-src{display:flex;inline-size:100%;block-size:100%;align-items:center;justify-content:center}.t-svg{overflow:visible}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
371
|
-
}
|
|
372
|
-
__decorate([
|
|
373
|
-
tuiPure
|
|
374
|
-
], TuiSvgComponent.prototype, "resolveName", null);
|
|
375
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiSvgComponent, decorators: [{
|
|
376
|
-
type: Component,
|
|
377
|
-
args: [{ selector: 'tui-svg', imports: [AsyncPipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"t-src\"\n [innerHTML]=\"innerHTML$ | async\"\n></div>\n", styles: [":host{display:inline-flex;vertical-align:middle;flex-shrink:0;align-items:center;justify-content:center;line-height:0;block-size:1.5rem;inline-size:1.5rem;fill:transparent;stroke:transparent;font-size:1rem}.t-src{display:flex;inline-size:100%;block-size:100%;align-items:center;justify-content:center}.t-svg{overflow:visible}\n"] }]
|
|
378
|
-
}], propDecorators: { src: [{
|
|
379
|
-
type: Input
|
|
380
|
-
}], resolveName: [] } });
|
|
381
|
-
|
|
382
|
-
/**
|
|
383
|
-
* Generated bundle index. Do not edit.
|
|
384
|
-
*/
|
|
385
|
-
|
|
386
|
-
export { TUI_DEFAULT_ICONS_PLACE, TUI_DEPRECATED_ICONS, TUI_SVG_DEFAULT_OPTIONS, TUI_SVG_OPTIONS, TUI_SVG_SRC_INTERCEPTORS, TuiSvgComponent, TuiSvgService, tuiSvgLinearGradientProcessor, tuiSvgOptionsProvider, tuiSvgSrcInterceptors };
|
|
387
|
-
//# sourceMappingURL=taiga-ui-legacy-components-svg.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-legacy-components-svg.mjs","sources":["../../../projects/legacy/components/svg/content-processor.ts","../../../projects/legacy/components/svg/deprecated-icons.ts","../../../projects/legacy/components/svg/svg.service.ts","../../../projects/legacy/components/svg/svg-options.ts","../../../projects/legacy/components/svg/svg.component.ts","../../../projects/legacy/components/svg/svg.template.html","../../../projects/legacy/components/svg/taiga-ui-legacy-components-svg.ts"],"sourcesContent":["import {type TuiSafeHtml} from '@taiga-ui/cdk/types';\nimport {tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\n\nfunction makeRandomSalt(): number {\n return Math.floor(Math.random() * Date.now());\n}\n\nfunction extractLinearGradientIdsFromSvg(svg: string): string[] {\n const ids = (svg.match(/url\\((\"?)('*)#(.*?)('*)\\)/g) ?? []).map((url) =>\n url.slice(4, url.length - 1).replaceAll(/['\"#]+/g, ''),\n );\n\n return Array.from(new Set(ids));\n}\n\n/**\n * @deprecated: drop in v5.0 use {@link TuiIcon}\n * https://taiga-ui.dev/components/icon\n *\n * @description:\n * Any ‘linearGradient’ attributes which are defined on the referenced\n * element which are not defined on this element are inherited by this element.\n * If this element has no defined gradient stops, and the referenced element does\n * (possibly due to its own ‘xlink:href’ attribute), then this element inherits\n * the gradient stop from the referenced element. Inheritance can be indirect\n * to an arbitrary level; thus, if the referenced element inherits attribute\n * or gradient stops due to its own ‘xlink:href’ attribute, then the current\n * element can inherit those attributes or gradient stops.\n *\n * Documentation: https://www.w3.org/TR/SVG11/pservers.html\n *\n */\nexport function tuiSvgLinearGradientProcessor(\n svg: TuiSafeHtml,\n salt: number | string = makeRandomSalt(),\n): TuiSafeHtml {\n if (tuiIsString(svg)) {\n const uniqueIds = extractLinearGradientIdsFromSvg(svg);\n\n return uniqueIds.reduce((newSvg, previousId) => {\n const newId = `id_${salt}_${previousId}`;\n\n return newSvg\n .replaceAll(`\"${previousId}\"`, `\"${newId}\"`)\n .replaceAll(`'${previousId}'`, `'${newId}'`)\n .replaceAll(`url('#${previousId}')`, `url('#${newId}')`)\n .replaceAll(`url(\"#${previousId}\")`, `url(\"#${newId}\")`)\n .replaceAll(`url(#${previousId})`, `url(#${newId})`);\n }, svg);\n }\n\n return svg;\n}\n","/**\n * @deprecated: drop in v5.0 use {@link TuiIcon}\n * https://taiga-ui.dev/components/icon\n */\nexport 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: 'tuiIconLayoutGrid',\n tuiIconTime: 'tuiIconClock',\n tuiIconTooltip: 'tuiIconHelpCircle',\n tuiIconViewList: 'tuiIconList',\n tuiIconWifiOn: 'tuiIconWifi',\n};\n","/// <reference types=\"@taiga-ui/tsconfig/ng-dev-mode\" />\nimport {inject, Injectable, SecurityContext} from '@angular/core';\nimport {DomSanitizer, type SafeHtml} from '@angular/platform-browser';\nimport {TUI_ICON_STARTS, TUI_SANITIZER} from '@taiga-ui/legacy/tokens';\nimport {tuiProcessIcon} from '@taiga-ui/legacy/utils';\nimport {BehaviorSubject} from 'rxjs';\n\n/**\n * @deprecated: drop in v5.0 use {@link TuiIcon}\n * Service for reusing SVGs without inlining each instance\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiSvgService {\n private readonly tuiSanitizer = inject(TUI_SANITIZER, {optional: true});\n private readonly sanitizer = inject(DomSanitizer);\n private originals: Record<string, string> = {};\n\n public readonly items$ = new BehaviorSubject<Map<string, SafeHtml>>(new Map());\n\n constructor() {\n this.define(inject(TUI_ICON_STARTS));\n }\n\n public define(icons: Record<string, string>): void {\n const {value} = this.items$;\n\n Object.keys(icons).forEach((key) => {\n this.defineIcon(key, icons[key] ?? '', value);\n });\n\n this.items$.next(value);\n }\n\n public getOriginal(name: string): string | null {\n return this.originals[name] || null;\n }\n\n private defineIcon(name: string, src: string, map: Map<string, SafeHtml>): void {\n if (map.has(name)) {\n return;\n }\n\n const parsed = this.parseSrc(name, src);\n\n if (!parsed) {\n ngDevMode && console.assert(false, 'Unable to parse given SVG src');\n\n return;\n }\n\n map.set(name, parsed);\n this.originals = {\n ...this.originals,\n [name]: src,\n };\n }\n\n private parseSrc(name: string, src: string): SafeHtml {\n return this.sanitize(tuiProcessIcon(src, name));\n }\n\n private sanitize(src: string): SafeHtml {\n return this.sanitizer.bypassSecurityTrustHtml(\n (this.tuiSanitizer\n ? this.tuiSanitizer.sanitize(SecurityContext.HTML, src)\n : this.sanitizer.sanitize(SecurityContext.HTML, src)) || '',\n );\n }\n}\n","import {\n type FactoryProvider,\n InjectionToken,\n Optional,\n type Provider,\n SkipSelf,\n} from '@angular/core';\nimport {\n type TuiHandler,\n type TuiSafeHtml,\n type TuiStringHandler,\n} from '@taiga-ui/cdk/types';\nimport {tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiIconsPathFactory} from '@taiga-ui/legacy/utils';\nimport {identity} from 'rxjs';\n\nimport {tuiSvgLinearGradientProcessor} from './content-processor';\nimport {TUI_DEPRECATED_ICONS} from './deprecated-icons';\n\n/**\n * @deprecated: drop in v5.0 use {@link TuiIcon}\n * https://taiga-ui.dev/components/icon\n */\nexport const TUI_DEFAULT_ICONS_PLACE = 'assets/taiga-ui/icons';\n\n/**\n * @deprecated: drop in v5.0 use {@link TuiIcon}\n * https://taiga-ui.dev/components/icon\n */\nexport interface TuiSvgOptions {\n readonly contentProcessor: TuiHandler<TuiSafeHtml, TuiSafeHtml>;\n readonly deprecated: TuiStringHandler<string>;\n readonly iconsPlace: string;\n readonly path: (name: string, baseHref?: string) => string;\n readonly srcProcessor: TuiHandler<TuiSafeHtml, TuiSafeHtml>;\n}\n\n/**\n * @deprecated: drop in v5.0 use {@link TuiIcon}\n * https://taiga-ui.dev/components/icon\n */\nexport type TuiSvgInterceptorHandler =\n | ((src: TuiSafeHtml, options: TuiSvgOptions) => TuiSafeHtml)\n | ((src: TuiSafeHtml) => TuiSafeHtml);\n\n/**\n * @deprecated: drop in v5.0 use {@link TuiIcon}\n * https://taiga-ui.dev/components/icon\n */\nexport const TUI_SVG_DEFAULT_OPTIONS: TuiSvgOptions = {\n iconsPlace: TUI_DEFAULT_ICONS_PLACE,\n path: tuiIconsPathFactory(TUI_DEFAULT_ICONS_PLACE),\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 * @deprecated: drop in v5.0 use {@link TuiIcon}\n * https://taiga-ui.dev/components/icon\n */\nexport const TUI_SVG_OPTIONS = new InjectionToken<TuiSvgOptions>(\n ngDevMode ? 'TUI_SVG_OPTIONS' : '',\n {\n factory: () => ({\n iconsPlace: TUI_DEFAULT_ICONS_PLACE,\n path: tuiIconsPathFactory(TUI_DEFAULT_ICONS_PLACE),\n deprecated: TUI_SVG_DEFAULT_OPTIONS.deprecated,\n srcProcessor: identity,\n contentProcessor: tuiSvgLinearGradientProcessor,\n }),\n },\n);\n\n/**\n * @deprecated: drop in v5.0 use {@link TuiIcon}\n * https://taiga-ui.dev/components/icon\n */\nexport const TUI_SVG_SRC_INTERCEPTORS = new InjectionToken<TuiSvgInterceptorHandler>(\n ngDevMode ? 'TUI_SVG_SRC_INTERCEPTORS' : '',\n);\n\n/**\n * @deprecated: drop in v5.0 use {@link TuiIcon}\n * https://taiga-ui.dev/components/icon\n */\nexport function tuiSvgSrcInterceptors(interceptor: TuiSvgInterceptorHandler): Provider {\n return {\n provide: TUI_SVG_SRC_INTERCEPTORS,\n useValue: interceptor,\n multi: true,\n };\n}\n\n/**\n * @deprecated: drop in v5.0 use {@link TuiIcon}\n * https://taiga-ui.dev/components/icon\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): TuiSvgOptions => ({\n iconsPlace:\n options.iconsPlace ??\n fallback?.iconsPlace ??\n TUI_SVG_DEFAULT_OPTIONS.iconsPlace,\n path: tuiIsString(options.path)\n ? tuiIconsPathFactory(options.path)\n : (options.path ?? fallback?.path ?? TUI_SVG_DEFAULT_OPTIONS.path),\n deprecated:\n options.deprecated ??\n fallback?.deprecated ??\n TUI_SVG_DEFAULT_OPTIONS.deprecated,\n srcProcessor:\n options.srcProcessor ??\n fallback?.srcProcessor ??\n TUI_SVG_DEFAULT_OPTIONS.srcProcessor,\n contentProcessor:\n options.contentProcessor ??\n fallback?.contentProcessor ??\n TUI_SVG_DEFAULT_OPTIONS.contentProcessor,\n }),\n});\n","/// <reference types=\"@taiga-ui/tsconfig/ng-dev-mode\" />\nimport {AsyncPipe, DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n Input,\n SecurityContext,\n} from '@angular/core';\nimport {DomSanitizer, type SafeHtml} from '@angular/platform-browser';\nimport {WA_WINDOW} from '@ng-web-apis/common';\nimport {TUI_BASE_HREF} from '@taiga-ui/cdk/tokens';\nimport {type TuiSafeHtml} from '@taiga-ui/cdk/types';\nimport {tuiGetDocumentOrShadowRoot, tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiIsString, tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiStaticRequestService} from '@taiga-ui/legacy/services';\nimport {TUI_SANITIZER} from '@taiga-ui/legacy/tokens';\nimport {TUI_CACHE_BUSTING_PAYLOAD, tuiIsPresumedHTMLString} from '@taiga-ui/legacy/utils';\nimport {\n catchError,\n map,\n type Observable,\n of,\n ReplaySubject,\n startWith,\n switchMap,\n} from 'rxjs';\n\nimport {TuiSvgService} from './svg.service';\nimport {\n TUI_SVG_OPTIONS,\n TUI_SVG_SRC_INTERCEPTORS,\n type TuiSvgInterceptorHandler,\n type TuiSvgOptions,\n} 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/**\n * @deprecated: drop in v5.0 use {@link TuiIcon}\n * https://taiga-ui.dev/components/icon\n */\nexport interface TuiIconError {\n readonly icon: string;\n readonly message: string;\n}\n\n/**\n * @deprecated: drop in v5.0 use {@link TuiIcon}\n * https://taiga-ui.dev/components/icon\n */\n@Component({\n selector: 'tui-svg',\n imports: [AsyncPipe],\n templateUrl: './svg.template.html',\n styleUrls: ['./svg.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiSvgComponent {\n private icon: TuiSafeHtml = '';\n private readonly doc = inject(DOCUMENT);\n private readonly win = inject(WA_WINDOW);\n private readonly options = inject(TUI_SVG_OPTIONS);\n private readonly tuiSanitizer = inject(TUI_SANITIZER, {optional: true});\n private readonly svgService = inject(TuiSvgService);\n private readonly staticRequestService = inject(TuiStaticRequestService);\n private readonly sanitizer = inject(DomSanitizer);\n private readonly el = tuiInjectElement();\n private readonly baseHref = inject(TUI_BASE_HREF);\n private readonly src$ = new ReplaySubject<void>(1);\n private readonly srcInterceptors = inject(TUI_SVG_SRC_INTERCEPTORS, {\n optional: true,\n }) as readonly TuiSvgInterceptorHandler[] | null;\n\n protected readonly innerHTML$: Observable<SafeHtml> = 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 @Input()\n public set src(src: TuiSafeHtml | null | undefined) {\n const deprecated = this.options.deprecated(String(src));\n\n ngDevMode && console.assert(!deprecated, deprecated);\n\n this.icon = (this.srcInterceptors ?? []).reduce(\n (newSrc, interceptor: TuiSvgInterceptorHandler) =>\n interceptor(newSrc, this.options),\n this.options.srcProcessor(src || ''),\n );\n\n this.src$.next();\n }\n\n public get src(): TuiSafeHtml {\n return this.icon;\n }\n\n public 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 public get isInnerHTML(): boolean {\n return (\n !tuiIsString(this.icon) ||\n this.isSrc ||\n this.isExternal ||\n (this.isName && this.isShadowDOM)\n );\n }\n\n protected 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 && console.assert(false, message, icon);\n this.el.dispatchEvent(event);\n }\n\n private get isShadowDOM(): boolean {\n return tuiGetDocumentOrShadowRoot(this.el) !== 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 (\n this.isUrl ||\n this.isCrossDomain ||\n (!this.isSrc && !this.svgService.getOriginal(String(this.icon)))\n );\n }\n\n private get isUrl(): boolean {\n return (\n tuiIsString(this.icon) &&\n this.icon.replace(TUI_CACHE_BUSTING_PAYLOAD, '').endsWith('.svg')\n );\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 @tuiPure\n private resolveName(name: string, iconsPath: TuiSvgOptions['path']): string {\n return iconsPath(name, this.baseHref);\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 return this.sanitize(icon || '');\n }\n\n private sanitize(src: TuiSafeHtml): TuiSafeHtml {\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","<div\n class=\"t-src\"\n [innerHTML]=\"innerHTML$ | async\"\n></div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable } from '@angular/core';
|
|
3
|
-
import { switchMap, shareReplay } from 'rxjs';
|
|
4
|
-
import { fromFetch } from 'rxjs/fetch';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* @deprecated: drop in v5.0
|
|
8
|
-
*/
|
|
9
|
-
class TuiStaticRequestService {
|
|
10
|
-
constructor() {
|
|
11
|
-
this.cache = new Map();
|
|
12
|
-
}
|
|
13
|
-
request(url) {
|
|
14
|
-
const cache = this.cache.get(url);
|
|
15
|
-
if (cache) {
|
|
16
|
-
return cache;
|
|
17
|
-
}
|
|
18
|
-
const piped = fromFetch(url).pipe(switchMap(async (response) => {
|
|
19
|
-
if (response.ok) {
|
|
20
|
-
return response.text();
|
|
21
|
-
}
|
|
22
|
-
throw new Error(`Failed to load ${url} (${response.statusText})`);
|
|
23
|
-
}), shareReplay({ bufferSize: 1, refCount: false }));
|
|
24
|
-
this.cache.set(url, piped);
|
|
25
|
-
return piped;
|
|
26
|
-
}
|
|
27
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiStaticRequestService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
28
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiStaticRequestService, providedIn: 'root' }); }
|
|
29
|
-
}
|
|
30
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiStaticRequestService, decorators: [{
|
|
31
|
-
type: Injectable,
|
|
32
|
-
args: [{
|
|
33
|
-
providedIn: 'root',
|
|
34
|
-
}]
|
|
35
|
-
}] });
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Generated bundle index. Do not edit.
|
|
39
|
-
*/
|
|
40
|
-
|
|
41
|
-
export { TuiStaticRequestService };
|
|
42
|
-
//# sourceMappingURL=taiga-ui-legacy-services.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-legacy-services.mjs","sources":["../../../projects/legacy/services/static-request.service.ts","../../../projects/legacy/services/taiga-ui-legacy-services.ts"],"sourcesContent":["import {Injectable} from '@angular/core';\nimport {type Observable, shareReplay, switchMap} from 'rxjs';\nimport {fromFetch} from 'rxjs/fetch';\n\n/**\n * @deprecated: drop in v5.0\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiStaticRequestService {\n private readonly cache = new Map<string, Observable<string>>();\n\n public request(url: string): Observable<string> {\n const cache = this.cache.get(url);\n\n if (cache) {\n return cache;\n }\n\n const piped = fromFetch(url).pipe(\n switchMap(async (response) => {\n if (response.ok) {\n return response.text();\n }\n\n throw new Error(`Failed to load ${url} (${response.statusText})`);\n }),\n shareReplay({bufferSize: 1, refCount: false}),\n );\n\n this.cache.set(url, piped);\n\n return piped;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAIA;;AAEG;MAIU,uBAAuB,CAAA;AAHpC,IAAA,WAAA,GAAA;AAIqB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,GAAG,EAA8B;AAwBjE;AAtBU,IAAA,OAAO,CAAC,GAAW,EAAA;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;QAEjC,IAAI,KAAK,EAAE;AACP,YAAA,OAAO,KAAK;;AAGhB,QAAA,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAC7B,SAAS,CAAC,OAAO,QAAQ,KAAI;AACzB,YAAA,IAAI,QAAQ,CAAC,EAAE,EAAE;AACb,gBAAA,OAAO,QAAQ,CAAC,IAAI,EAAE;;YAG1B,MAAM,IAAI,KAAK,CAAC,CAAkB,eAAA,EAAA,GAAG,CAAK,EAAA,EAAA,QAAQ,CAAC,UAAU,CAAG,CAAA,CAAA,CAAC;AACrE,SAAC,CAAC,EACF,WAAW,CAAC,EAAC,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAC,CAAC,CAChD;QAED,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC;AAE1B,QAAA,OAAO,KAAK;;+GAvBP,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,cAFpB,MAAM,EAAA,CAAA,CAAA;;4FAET,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA;;;ACTD;;AAEG;;;;"}
|
package/services/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './static-request.service';
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { type Observable } from 'rxjs';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
/**
|
|
4
|
-
* @deprecated: drop in v5.0
|
|
5
|
-
*/
|
|
6
|
-
export declare class TuiStaticRequestService {
|
|
7
|
-
private readonly cache;
|
|
8
|
-
request(url: string): Observable<string>;
|
|
9
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<TuiStaticRequestService, never>;
|
|
10
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<TuiStaticRequestService>;
|
|
11
|
-
}
|