@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.
Files changed (68) hide show
  1. package/components/dialog/dialog.component.d.ts +20 -0
  2. package/components/dialog/dialog.directive.d.ts +7 -0
  3. package/components/dialog/dialog.factory.d.ts +16 -0
  4. package/components/dialog/dialog.interfaces.d.ts +31 -0
  5. package/components/dialog/dialog.service.d.ts +7 -0
  6. package/components/dialog/dialog.tokens.d.ts +8 -0
  7. package/components/dialog/index.d.ts +6 -0
  8. package/components/index.d.ts +1 -5
  9. package/fesm2022/taiga-ui-legacy-components-dialog.mjs +130 -0
  10. package/fesm2022/taiga-ui-legacy-components-dialog.mjs.map +1 -0
  11. package/fesm2022/taiga-ui-legacy-components.mjs +1 -5
  12. package/fesm2022/taiga-ui-legacy-components.mjs.map +1 -1
  13. package/fesm2022/taiga-ui-legacy.mjs +0 -1
  14. package/fesm2022/taiga-ui-legacy.mjs.map +1 -1
  15. package/index.d.ts +0 -1
  16. package/package.json +32 -52
  17. package/utils/icons-path-factory.d.ts +1 -1
  18. package/components/color-selector/color-edit/color-edit.component.d.ts +0 -18
  19. package/components/color-selector/color-edit/color-edit.module.d.ts +0 -21
  20. package/components/color-selector/color-picker/color-picker.component.d.ts +0 -22
  21. package/components/color-selector/color-picker/color-picker.module.d.ts +0 -14
  22. package/components/color-selector/color-selector.component.d.ts +0 -47
  23. package/components/color-selector/color-selector.module.d.ts +0 -23
  24. package/components/color-selector/color-selector.options.d.ts +0 -25
  25. package/components/color-selector/flat-picker/flat-picker.component.d.ts +0 -12
  26. package/components/color-selector/flat-picker/flat-picker.module.d.ts +0 -12
  27. package/components/color-selector/index.d.ts +0 -16
  28. package/components/color-selector/linear-multi-picker/linear-multi-picker.component.d.ts +0 -17
  29. package/components/color-selector/linear-multi-picker/linear-multi-picker.module.d.ts +0 -12
  30. package/components/color-selector/linear-picker/linear-picker.component.d.ts +0 -10
  31. package/components/color-selector/linear-picker/linear-picker.module.d.ts +0 -12
  32. package/components/color-selector/palette/palette.component.d.ts +0 -10
  33. package/components/color-selector/palette/palette.module.d.ts +0 -13
  34. package/components/color-selector/services/picker.service.d.ts +0 -15
  35. package/components/input-color/index.d.ts +0 -2
  36. package/components/input-color/input-color.component.d.ts +0 -30
  37. package/components/input-color/input-color.module.d.ts +0 -17
  38. package/components/input-date/index.d.ts +0 -3
  39. package/components/input-date/input-date.component.d.ts +0 -62
  40. package/components/input-date/input-date.directive.d.ts +0 -19
  41. package/components/input-date/input-date.module.d.ts +0 -24
  42. package/components/input-date/native-date/native-date.component.d.ts +0 -15
  43. package/components/input-time/index.d.ts +0 -4
  44. package/components/input-time/input-time.component.d.ts +0 -62
  45. package/components/input-time/input-time.directive.d.ts +0 -17
  46. package/components/input-time/input-time.module.d.ts +0 -23
  47. package/components/input-time/input-time.options.d.ts +0 -42
  48. package/components/input-time/native-time/native-time.component.d.ts +0 -12
  49. package/components/svg/content-processor.d.ts +0 -19
  50. package/components/svg/deprecated-icons.d.ts +0 -5
  51. package/components/svg/index.d.ts +0 -5
  52. package/components/svg/svg-options.d.ts +0 -50
  53. package/components/svg/svg.component.d.ts +0 -50
  54. package/components/svg/svg.service.d.ts +0 -21
  55. package/fesm2022/taiga-ui-legacy-components-color-selector.mjs +0 -726
  56. package/fesm2022/taiga-ui-legacy-components-color-selector.mjs.map +0 -1
  57. package/fesm2022/taiga-ui-legacy-components-input-color.mjs +0 -127
  58. package/fesm2022/taiga-ui-legacy-components-input-color.mjs.map +0 -1
  59. package/fesm2022/taiga-ui-legacy-components-input-date.mjs +0 -372
  60. package/fesm2022/taiga-ui-legacy-components-input-date.mjs.map +0 -1
  61. package/fesm2022/taiga-ui-legacy-components-input-time.mjs +0 -430
  62. package/fesm2022/taiga-ui-legacy-components-input-time.mjs.map +0 -1
  63. package/fesm2022/taiga-ui-legacy-components-svg.mjs +0 -387
  64. package/fesm2022/taiga-ui-legacy-components-svg.mjs.map +0 -1
  65. package/fesm2022/taiga-ui-legacy-services.mjs +0 -42
  66. package/fesm2022/taiga-ui-legacy-services.mjs.map +0 -1
  67. package/services/index.d.ts +0 -1
  68. 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;;;;"}
@@ -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
- }