@taiga-ui/cdk 3.43.0-canary.8342138 → 3.43.0-canary.e651642

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.
@@ -49,11 +49,16 @@
49
49
  return Array.from(new Set(ids));
50
50
  }
51
51
  function setFallbackForGradientFill(svg, fallback) {
52
- var tree = new DOMParser().parseFromString(svg, "text/html");
53
- tree.body
54
- .querySelectorAll("[fill^=url]") // only gradient
55
- .forEach(function (element) { return element.setAttribute("fill", (element.getAttribute("fill") + " " + fallback).trim()); });
56
- return tree.body.innerHTML.trim();
52
+ try {
53
+ var tree = new DOMParser().parseFromString(svg, "text/html");
54
+ tree.body
55
+ .querySelectorAll("[fill^=url]") // only gradient
56
+ .forEach(function (element) { return element.setAttribute("fill", (element.getAttribute("fill") + " " + fallback).trim()); });
57
+ return tree.body.innerHTML.trim();
58
+ }
59
+ catch (_a) {
60
+ return svg;
61
+ }
57
62
  }
58
63
 
59
64
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-utils-svg.umd.js","sources":["../../../projects/cdk/utils/svg/svg-linear-gradient-processor.ts","../../../projects/cdk/utils/svg/taiga-ui-cdk-utils-svg.ts"],"sourcesContent":["import {TuiSafeHtml} from '@taiga-ui/cdk/interfaces';\nimport {tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\n\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 fallback: string = `rgba(0, 0, 0, 0.7)`,\n): TuiSafeHtml {\n if (tuiIsString(svg)) {\n const uniqueIds = extractLinearGradientIdsFromSvg(svg);\n const rawSvg = uniqueIds.reduce((newSvg, previousId) => {\n const escapedId = escapeRegExp(previousId);\n const newId = `id_${salt}_${previousId}`;\n\n return newSvg\n .replace(new RegExp(`\"${escapedId}\"`, `g`), `\"${newId}\"`)\n .replace(new RegExp(`'${escapedId}'`, `g`), `'${newId}'`)\n .replace(new RegExp(`url\\\\('#${escapedId}'\\\\)`, `g`), `url('#${newId}')`)\n .replace(new RegExp(`url\\\\(\"#${escapedId}\"\\\\)`, `g`), `url(\"#${newId}\")`)\n .replace(new RegExp(`url\\\\(#${escapedId}\\\\)`, `g`), `url(#${newId})`);\n }, svg);\n\n return setFallbackForGradientFill(rawSvg, fallback);\n }\n\n return svg;\n}\n\nfunction makeRandomSalt(): number {\n return Math.floor(Math.random() * Date.now());\n}\n\nfunction escapeRegExp(search: string): string {\n return search.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, `\\\\$&`);\n}\n\nfunction extractLinearGradientIdsFromSvg(svg: string): string[] {\n const ids = (svg.match(/url\\((\"?)('*)#(.*?)('*)\\)/g) ?? []).map(url =>\n url.slice(4, url.length - 1).replace(/['\"#]+/g, ``),\n );\n\n return Array.from(new Set(ids));\n}\n\nfunction setFallbackForGradientFill(svg: string, fallback: string): string {\n const tree = new DOMParser().parseFromString(svg, `text/html`);\n\n tree.body\n .querySelectorAll(`[fill^=url]`) // only gradient\n .forEach(element =>\n element.setAttribute(\n `fill`,\n `${element.getAttribute(`fill`)} ${fallback}`.trim(),\n ),\n );\n\n return tree.body.innerHTML.trim();\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["tuiIsString"],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-cdk-utils-svg.umd.js","sources":["../../../projects/cdk/utils/svg/svg-linear-gradient-processor.ts","../../../projects/cdk/utils/svg/taiga-ui-cdk-utils-svg.ts"],"sourcesContent":["import {TuiSafeHtml} from '@taiga-ui/cdk/interfaces';\nimport {tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\n\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 fallback: string = `rgba(0, 0, 0, 0.7)`,\n): TuiSafeHtml {\n if (tuiIsString(svg)) {\n const uniqueIds = extractLinearGradientIdsFromSvg(svg);\n const rawSvg = uniqueIds.reduce((newSvg, previousId) => {\n const escapedId = escapeRegExp(previousId);\n const newId = `id_${salt}_${previousId}`;\n\n return newSvg\n .replace(new RegExp(`\"${escapedId}\"`, `g`), `\"${newId}\"`)\n .replace(new RegExp(`'${escapedId}'`, `g`), `'${newId}'`)\n .replace(new RegExp(`url\\\\('#${escapedId}'\\\\)`, `g`), `url('#${newId}')`)\n .replace(new RegExp(`url\\\\(\"#${escapedId}\"\\\\)`, `g`), `url(\"#${newId}\")`)\n .replace(new RegExp(`url\\\\(#${escapedId}\\\\)`, `g`), `url(#${newId})`);\n }, svg);\n\n return setFallbackForGradientFill(rawSvg, fallback);\n }\n\n return svg;\n}\n\nfunction makeRandomSalt(): number {\n return Math.floor(Math.random() * Date.now());\n}\n\nfunction escapeRegExp(search: string): string {\n return search.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, `\\\\$&`);\n}\n\nfunction extractLinearGradientIdsFromSvg(svg: string): string[] {\n const ids = (svg.match(/url\\((\"?)('*)#(.*?)('*)\\)/g) ?? []).map(url =>\n url.slice(4, url.length - 1).replace(/['\"#]+/g, ``),\n );\n\n return Array.from(new Set(ids));\n}\n\nfunction setFallbackForGradientFill(svg: string, fallback: string): string {\n try {\n const tree = new DOMParser().parseFromString(svg, `text/html`);\n\n tree.body\n .querySelectorAll(`[fill^=url]`) // only gradient\n .forEach(element =>\n element.setAttribute(\n `fill`,\n `${element.getAttribute(`fill`)} ${fallback}`.trim(),\n ),\n );\n\n return tree.body.innerHTML.trim();\n } catch {\n return svg;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["tuiIsString"],"mappings":"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"}
@@ -42,10 +42,15 @@ function extractLinearGradientIdsFromSvg(svg) {
42
42
  return Array.from(new Set(ids));
43
43
  }
44
44
  function setFallbackForGradientFill(svg, fallback) {
45
- const tree = new DOMParser().parseFromString(svg, `text/html`);
46
- tree.body
47
- .querySelectorAll(`[fill^=url]`) // only gradient
48
- .forEach(element => element.setAttribute(`fill`, `${element.getAttribute(`fill`)} ${fallback}`.trim()));
49
- return tree.body.innerHTML.trim();
45
+ try {
46
+ const tree = new DOMParser().parseFromString(svg, `text/html`);
47
+ tree.body
48
+ .querySelectorAll(`[fill^=url]`) // only gradient
49
+ .forEach(element => element.setAttribute(`fill`, `${element.getAttribute(`fill`)} ${fallback}`.trim()));
50
+ return tree.body.innerHTML.trim();
51
+ }
52
+ catch (_a) {
53
+ return svg;
54
+ }
50
55
  }
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ZnLWxpbmVhci1ncmFkaWVudC1wcm9jZXNzb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvdXRpbHMvc3ZnL3N2Zy1saW5lYXItZ3JhZGllbnQtcHJvY2Vzc29yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUU5RDs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBTSxVQUFVLDZCQUE2QixDQUN6QyxHQUFnQixFQUNoQixPQUF3QixjQUFjLEVBQUUsRUFDeEMsV0FBbUIsb0JBQW9CO0lBRXZDLElBQUksV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ2xCLE1BQU0sU0FBUyxHQUFHLCtCQUErQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLEVBQUU7WUFDbkQsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzNDLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBRXpDLE9BQU8sTUFBTTtpQkFDUixPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxTQUFTLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLEtBQUssR0FBRyxDQUFDO2lCQUN4RCxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxTQUFTLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLEtBQUssR0FBRyxDQUFDO2lCQUN4RCxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsV0FBVyxTQUFTLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBRSxTQUFTLEtBQUssSUFBSSxDQUFDO2lCQUN4RSxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsV0FBVyxTQUFTLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBRSxTQUFTLEtBQUssSUFBSSxDQUFDO2lCQUN4RSxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsVUFBVSxTQUFTLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxRQUFRLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDOUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRVIsT0FBTywwQkFBMEIsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7S0FDdkQ7SUFFRCxPQUFPLEdBQUcsQ0FBQztBQUNmLENBQUM7QUFFRCxTQUFTLGNBQWM7SUFDbkIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztBQUNsRCxDQUFDO0FBRUQsU0FBUyxZQUFZLENBQUMsTUFBYztJQUNoQyxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsMEJBQTBCLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDOUQsQ0FBQztBQUVELFNBQVMsK0JBQStCLENBQUMsR0FBVzs7SUFDaEQsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFBLEdBQUcsQ0FBQyxLQUFLLENBQUMsNEJBQTRCLENBQUMsbUNBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQ2xFLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FDdEQsQ0FBQztJQUVGLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3BDLENBQUM7QUFFRCxTQUFTLDBCQUEwQixDQUFDLEdBQVcsRUFBRSxRQUFnQjtJQUM3RCxNQUFNLElBQUksR0FBRyxJQUFJLFNBQVMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFFL0QsSUFBSSxDQUFDLElBQUk7U0FDSixnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQyxnQkFBZ0I7U0FDaEQsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQ2YsT0FBTyxDQUFDLFlBQVksQ0FDaEIsTUFBTSxFQUNOLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FDdkQsQ0FDSixDQUFDO0lBRU4sT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUN0QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtUdWlTYWZlSHRtbH0gZnJvbSAnQHRhaWdhLXVpL2Nkay9pbnRlcmZhY2VzJztcbmltcG9ydCB7dHVpSXNTdHJpbmd9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uOlxuICogQW55IOKAmGxpbmVhckdyYWRpZW504oCZIGF0dHJpYnV0ZXMgd2hpY2ggYXJlIGRlZmluZWQgb24gdGhlIHJlZmVyZW5jZWRcbiAqIGVsZW1lbnQgd2hpY2ggYXJlIG5vdCBkZWZpbmVkIG9uIHRoaXMgZWxlbWVudCBhcmUgaW5oZXJpdGVkIGJ5IHRoaXMgZWxlbWVudC5cbiAqIElmIHRoaXMgZWxlbWVudCBoYXMgbm8gZGVmaW5lZCBncmFkaWVudCBzdG9wcywgYW5kIHRoZSByZWZlcmVuY2VkIGVsZW1lbnQgZG9lc1xuICogKHBvc3NpYmx5IGR1ZSB0byBpdHMgb3duIOKAmHhsaW5rOmhyZWbigJkgYXR0cmlidXRlKSwgdGhlbiB0aGlzIGVsZW1lbnQgaW5oZXJpdHNcbiAqIHRoZSBncmFkaWVudCBzdG9wIGZyb20gdGhlIHJlZmVyZW5jZWQgZWxlbWVudC4gSW5oZXJpdGFuY2UgY2FuIGJlIGluZGlyZWN0XG4gKiB0byBhbiBhcmJpdHJhcnkgbGV2ZWw7IHRodXMsIGlmIHRoZSByZWZlcmVuY2VkIGVsZW1lbnQgaW5oZXJpdHMgYXR0cmlidXRlXG4gKiBvciBncmFkaWVudCBzdG9wcyBkdWUgdG8gaXRzIG93biDigJh4bGluazpocmVm4oCZIGF0dHJpYnV0ZSwgdGhlbiB0aGUgY3VycmVudFxuICogZWxlbWVudCBjYW4gaW5oZXJpdCB0aG9zZSBhdHRyaWJ1dGVzIG9yIGdyYWRpZW50IHN0b3BzLlxuICpcbiAqIERvY3VtZW50YXRpb246IGh0dHBzOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9wc2VydmVycy5odG1sXG4gKlxuICovXG5leHBvcnQgZnVuY3Rpb24gdHVpU3ZnTGluZWFyR3JhZGllbnRQcm9jZXNzb3IoXG4gICAgc3ZnOiBUdWlTYWZlSHRtbCxcbiAgICBzYWx0OiBudW1iZXIgfCBzdHJpbmcgPSBtYWtlUmFuZG9tU2FsdCgpLFxuICAgIGZhbGxiYWNrOiBzdHJpbmcgPSBgcmdiYSgwLCAwLCAwLCAwLjcpYCxcbik6IFR1aVNhZmVIdG1sIHtcbiAgICBpZiAodHVpSXNTdHJpbmcoc3ZnKSkge1xuICAgICAgICBjb25zdCB1bmlxdWVJZHMgPSBleHRyYWN0TGluZWFyR3JhZGllbnRJZHNGcm9tU3ZnKHN2Zyk7XG4gICAgICAgIGNvbnN0IHJhd1N2ZyA9IHVuaXF1ZUlkcy5yZWR1Y2UoKG5ld1N2ZywgcHJldmlvdXNJZCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZXNjYXBlZElkID0gZXNjYXBlUmVnRXhwKHByZXZpb3VzSWQpO1xuICAgICAgICAgICAgY29uc3QgbmV3SWQgPSBgaWRfJHtzYWx0fV8ke3ByZXZpb3VzSWR9YDtcblxuICAgICAgICAgICAgcmV0dXJuIG5ld1N2Z1xuICAgICAgICAgICAgICAgIC5yZXBsYWNlKG5ldyBSZWdFeHAoYFwiJHtlc2NhcGVkSWR9XCJgLCBgZ2ApLCBgXCIke25ld0lkfVwiYClcbiAgICAgICAgICAgICAgICAucmVwbGFjZShuZXcgUmVnRXhwKGAnJHtlc2NhcGVkSWR9J2AsIGBnYCksIGAnJHtuZXdJZH0nYClcbiAgICAgICAgICAgICAgICAucmVwbGFjZShuZXcgUmVnRXhwKGB1cmxcXFxcKCcjJHtlc2NhcGVkSWR9J1xcXFwpYCwgYGdgKSwgYHVybCgnIyR7bmV3SWR9JylgKVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKG5ldyBSZWdFeHAoYHVybFxcXFwoXCIjJHtlc2NhcGVkSWR9XCJcXFxcKWAsIGBnYCksIGB1cmwoXCIjJHtuZXdJZH1cIilgKVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKG5ldyBSZWdFeHAoYHVybFxcXFwoIyR7ZXNjYXBlZElkfVxcXFwpYCwgYGdgKSwgYHVybCgjJHtuZXdJZH0pYCk7XG4gICAgICAgIH0sIHN2Zyk7XG5cbiAgICAgICAgcmV0dXJuIHNldEZhbGxiYWNrRm9yR3JhZGllbnRGaWxsKHJhd1N2ZywgZmFsbGJhY2spO1xuICAgIH1cblxuICAgIHJldHVybiBzdmc7XG59XG5cbmZ1bmN0aW9uIG1ha2VSYW5kb21TYWx0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIERhdGUubm93KCkpO1xufVxuXG5mdW5jdGlvbiBlc2NhcGVSZWdFeHAoc2VhcmNoOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBzZWFyY2gucmVwbGFjZSgvWy1bXFxde30oKSorPy4sXFxcXF4kfCNcXHNdL2csIGBcXFxcJCZgKTtcbn1cblxuZnVuY3Rpb24gZXh0cmFjdExpbmVhckdyYWRpZW50SWRzRnJvbVN2Zyhzdmc6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBpZHMgPSAoc3ZnLm1hdGNoKC91cmxcXCgoXCI/KSgnKikjKC4qPykoJyopXFwpL2cpID8/IFtdKS5tYXAodXJsID0+XG4gICAgICAgIHVybC5zbGljZSg0LCB1cmwubGVuZ3RoIC0gMSkucmVwbGFjZSgvWydcIiNdKy9nLCBgYCksXG4gICAgKTtcblxuICAgIHJldHVybiBBcnJheS5mcm9tKG5ldyBTZXQoaWRzKSk7XG59XG5cbmZ1bmN0aW9uIHNldEZhbGxiYWNrRm9yR3JhZGllbnRGaWxsKHN2Zzogc3RyaW5nLCBmYWxsYmFjazogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB0cmVlID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhzdmcsIGB0ZXh0L2h0bWxgKTtcblxuICAgIHRyZWUuYm9keVxuICAgICAgICAucXVlcnlTZWxlY3RvckFsbChgW2ZpbGxePXVybF1gKSAvLyBvbmx5IGdyYWRpZW50XG4gICAgICAgIC5mb3JFYWNoKGVsZW1lbnQgPT5cbiAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKFxuICAgICAgICAgICAgICAgIGBmaWxsYCxcbiAgICAgICAgICAgICAgICBgJHtlbGVtZW50LmdldEF0dHJpYnV0ZShgZmlsbGApfSAke2ZhbGxiYWNrfWAudHJpbSgpLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgKTtcblxuICAgIHJldHVybiB0cmVlLmJvZHkuaW5uZXJIVE1MLnRyaW0oKTtcbn1cbiJdfQ==
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ZnLWxpbmVhci1ncmFkaWVudC1wcm9jZXNzb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvdXRpbHMvc3ZnL3N2Zy1saW5lYXItZ3JhZGllbnQtcHJvY2Vzc29yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUU5RDs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBTSxVQUFVLDZCQUE2QixDQUN6QyxHQUFnQixFQUNoQixPQUF3QixjQUFjLEVBQUUsRUFDeEMsV0FBbUIsb0JBQW9CO0lBRXZDLElBQUksV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ2xCLE1BQU0sU0FBUyxHQUFHLCtCQUErQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLEVBQUU7WUFDbkQsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzNDLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBRXpDLE9BQU8sTUFBTTtpQkFDUixPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxTQUFTLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLEtBQUssR0FBRyxDQUFDO2lCQUN4RCxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxTQUFTLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLEtBQUssR0FBRyxDQUFDO2lCQUN4RCxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsV0FBVyxTQUFTLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBRSxTQUFTLEtBQUssSUFBSSxDQUFDO2lCQUN4RSxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsV0FBVyxTQUFTLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBRSxTQUFTLEtBQUssSUFBSSxDQUFDO2lCQUN4RSxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsVUFBVSxTQUFTLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxRQUFRLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDOUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRVIsT0FBTywwQkFBMEIsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7S0FDdkQ7SUFFRCxPQUFPLEdBQUcsQ0FBQztBQUNmLENBQUM7QUFFRCxTQUFTLGNBQWM7SUFDbkIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztBQUNsRCxDQUFDO0FBRUQsU0FBUyxZQUFZLENBQUMsTUFBYztJQUNoQyxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsMEJBQTBCLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDOUQsQ0FBQztBQUVELFNBQVMsK0JBQStCLENBQUMsR0FBVzs7SUFDaEQsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFBLEdBQUcsQ0FBQyxLQUFLLENBQUMsNEJBQTRCLENBQUMsbUNBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQ2xFLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FDdEQsQ0FBQztJQUVGLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3BDLENBQUM7QUFFRCxTQUFTLDBCQUEwQixDQUFDLEdBQVcsRUFBRSxRQUFnQjtJQUM3RCxJQUFJO1FBQ0EsTUFBTSxJQUFJLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRS9ELElBQUksQ0FBQyxJQUFJO2FBQ0osZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUMsZ0JBQWdCO2FBQ2hELE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUNmLE9BQU8sQ0FBQyxZQUFZLENBQ2hCLE1BQU0sRUFDTixHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksUUFBUSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQ3ZELENBQ0osQ0FBQztRQUVOLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7S0FDckM7SUFBQyxXQUFNO1FBQ0osT0FBTyxHQUFHLENBQUM7S0FDZDtBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1R1aVNhZmVIdG1sfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2ludGVyZmFjZXMnO1xuaW1wb3J0IHt0dWlJc1N0cmluZ30gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9taXNjZWxsYW5lb3VzJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb246XG4gKiBBbnkg4oCYbGluZWFyR3JhZGllbnTigJkgYXR0cmlidXRlcyB3aGljaCBhcmUgZGVmaW5lZCBvbiB0aGUgcmVmZXJlbmNlZFxuICogZWxlbWVudCB3aGljaCBhcmUgbm90IGRlZmluZWQgb24gdGhpcyBlbGVtZW50IGFyZSBpbmhlcml0ZWQgYnkgdGhpcyBlbGVtZW50LlxuICogSWYgdGhpcyBlbGVtZW50IGhhcyBubyBkZWZpbmVkIGdyYWRpZW50IHN0b3BzLCBhbmQgdGhlIHJlZmVyZW5jZWQgZWxlbWVudCBkb2VzXG4gKiAocG9zc2libHkgZHVlIHRvIGl0cyBvd24g4oCYeGxpbms6aHJlZuKAmSBhdHRyaWJ1dGUpLCB0aGVuIHRoaXMgZWxlbWVudCBpbmhlcml0c1xuICogdGhlIGdyYWRpZW50IHN0b3AgZnJvbSB0aGUgcmVmZXJlbmNlZCBlbGVtZW50LiBJbmhlcml0YW5jZSBjYW4gYmUgaW5kaXJlY3RcbiAqIHRvIGFuIGFyYml0cmFyeSBsZXZlbDsgdGh1cywgaWYgdGhlIHJlZmVyZW5jZWQgZWxlbWVudCBpbmhlcml0cyBhdHRyaWJ1dGVcbiAqIG9yIGdyYWRpZW50IHN0b3BzIGR1ZSB0byBpdHMgb3duIOKAmHhsaW5rOmhyZWbigJkgYXR0cmlidXRlLCB0aGVuIHRoZSBjdXJyZW50XG4gKiBlbGVtZW50IGNhbiBpbmhlcml0IHRob3NlIGF0dHJpYnV0ZXMgb3IgZ3JhZGllbnQgc3RvcHMuXG4gKlxuICogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly93d3cudzMub3JnL1RSL1NWRzExL3BzZXJ2ZXJzLmh0bWxcbiAqXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0dWlTdmdMaW5lYXJHcmFkaWVudFByb2Nlc3NvcihcbiAgICBzdmc6IFR1aVNhZmVIdG1sLFxuICAgIHNhbHQ6IG51bWJlciB8IHN0cmluZyA9IG1ha2VSYW5kb21TYWx0KCksXG4gICAgZmFsbGJhY2s6IHN0cmluZyA9IGByZ2JhKDAsIDAsIDAsIDAuNylgLFxuKTogVHVpU2FmZUh0bWwge1xuICAgIGlmICh0dWlJc1N0cmluZyhzdmcpKSB7XG4gICAgICAgIGNvbnN0IHVuaXF1ZUlkcyA9IGV4dHJhY3RMaW5lYXJHcmFkaWVudElkc0Zyb21Tdmcoc3ZnKTtcbiAgICAgICAgY29uc3QgcmF3U3ZnID0gdW5pcXVlSWRzLnJlZHVjZSgobmV3U3ZnLCBwcmV2aW91c0lkKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBlc2NhcGVkSWQgPSBlc2NhcGVSZWdFeHAocHJldmlvdXNJZCk7XG4gICAgICAgICAgICBjb25zdCBuZXdJZCA9IGBpZF8ke3NhbHR9XyR7cHJldmlvdXNJZH1gO1xuXG4gICAgICAgICAgICByZXR1cm4gbmV3U3ZnXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UobmV3IFJlZ0V4cChgXCIke2VzY2FwZWRJZH1cImAsIGBnYCksIGBcIiR7bmV3SWR9XCJgKVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKG5ldyBSZWdFeHAoYCcke2VzY2FwZWRJZH0nYCwgYGdgKSwgYCcke25ld0lkfSdgKVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKG5ldyBSZWdFeHAoYHVybFxcXFwoJyMke2VzY2FwZWRJZH0nXFxcXClgLCBgZ2ApLCBgdXJsKCcjJHtuZXdJZH0nKWApXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UobmV3IFJlZ0V4cChgdXJsXFxcXChcIiMke2VzY2FwZWRJZH1cIlxcXFwpYCwgYGdgKSwgYHVybChcIiMke25ld0lkfVwiKWApXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UobmV3IFJlZ0V4cChgdXJsXFxcXCgjJHtlc2NhcGVkSWR9XFxcXClgLCBgZ2ApLCBgdXJsKCMke25ld0lkfSlgKTtcbiAgICAgICAgfSwgc3ZnKTtcblxuICAgICAgICByZXR1cm4gc2V0RmFsbGJhY2tGb3JHcmFkaWVudEZpbGwocmF3U3ZnLCBmYWxsYmFjayk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN2Zztcbn1cblxuZnVuY3Rpb24gbWFrZVJhbmRvbVNhbHQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogRGF0ZS5ub3coKSk7XG59XG5cbmZ1bmN0aW9uIGVzY2FwZVJlZ0V4cChzZWFyY2g6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHNlYXJjaC5yZXBsYWNlKC9bLVtcXF17fSgpKis/LixcXFxcXiR8I1xcc10vZywgYFxcXFwkJmApO1xufVxuXG5mdW5jdGlvbiBleHRyYWN0TGluZWFyR3JhZGllbnRJZHNGcm9tU3ZnKHN2Zzogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGlkcyA9IChzdmcubWF0Y2goL3VybFxcKChcIj8pKCcqKSMoLio/KSgnKilcXCkvZykgPz8gW10pLm1hcCh1cmwgPT5cbiAgICAgICAgdXJsLnNsaWNlKDQsIHVybC5sZW5ndGggLSAxKS5yZXBsYWNlKC9bJ1wiI10rL2csIGBgKSxcbiAgICApO1xuXG4gICAgcmV0dXJuIEFycmF5LmZyb20obmV3IFNldChpZHMpKTtcbn1cblxuZnVuY3Rpb24gc2V0RmFsbGJhY2tGb3JHcmFkaWVudEZpbGwoc3ZnOiBzdHJpbmcsIGZhbGxiYWNrOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHRyZWUgPSBuZXcgRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKHN2ZywgYHRleHQvaHRtbGApO1xuXG4gICAgICAgIHRyZWUuYm9keVxuICAgICAgICAgICAgLnF1ZXJ5U2VsZWN0b3JBbGwoYFtmaWxsXj11cmxdYCkgLy8gb25seSBncmFkaWVudFxuICAgICAgICAgICAgLmZvckVhY2goZWxlbWVudCA9PlxuICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKFxuICAgICAgICAgICAgICAgICAgICBgZmlsbGAsXG4gICAgICAgICAgICAgICAgICAgIGAke2VsZW1lbnQuZ2V0QXR0cmlidXRlKGBmaWxsYCl9ICR7ZmFsbGJhY2t9YC50cmltKCksXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIHRyZWUuYm9keS5pbm5lckhUTUwudHJpbSgpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgICByZXR1cm4gc3ZnO1xuICAgIH1cbn1cbiJdfQ==
@@ -43,11 +43,16 @@ function extractLinearGradientIdsFromSvg(svg) {
43
43
  return Array.from(new Set(ids));
44
44
  }
45
45
  function setFallbackForGradientFill(svg, fallback) {
46
- const tree = new DOMParser().parseFromString(svg, `text/html`);
47
- tree.body
48
- .querySelectorAll(`[fill^=url]`) // only gradient
49
- .forEach(element => element.setAttribute(`fill`, `${element.getAttribute(`fill`)} ${fallback}`.trim()));
50
- return tree.body.innerHTML.trim();
46
+ try {
47
+ const tree = new DOMParser().parseFromString(svg, `text/html`);
48
+ tree.body
49
+ .querySelectorAll(`[fill^=url]`) // only gradient
50
+ .forEach(element => element.setAttribute(`fill`, `${element.getAttribute(`fill`)} ${fallback}`.trim()));
51
+ return tree.body.innerHTML.trim();
52
+ }
53
+ catch (_a) {
54
+ return svg;
55
+ }
51
56
  }
52
57
 
53
58
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-utils-svg.js","sources":["../../../projects/cdk/utils/svg/svg-linear-gradient-processor.ts","../../../projects/cdk/utils/svg/taiga-ui-cdk-utils-svg.ts"],"sourcesContent":["import {TuiSafeHtml} from '@taiga-ui/cdk/interfaces';\nimport {tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\n\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 fallback: string = `rgba(0, 0, 0, 0.7)`,\n): TuiSafeHtml {\n if (tuiIsString(svg)) {\n const uniqueIds = extractLinearGradientIdsFromSvg(svg);\n const rawSvg = uniqueIds.reduce((newSvg, previousId) => {\n const escapedId = escapeRegExp(previousId);\n const newId = `id_${salt}_${previousId}`;\n\n return newSvg\n .replace(new RegExp(`\"${escapedId}\"`, `g`), `\"${newId}\"`)\n .replace(new RegExp(`'${escapedId}'`, `g`), `'${newId}'`)\n .replace(new RegExp(`url\\\\('#${escapedId}'\\\\)`, `g`), `url('#${newId}')`)\n .replace(new RegExp(`url\\\\(\"#${escapedId}\"\\\\)`, `g`), `url(\"#${newId}\")`)\n .replace(new RegExp(`url\\\\(#${escapedId}\\\\)`, `g`), `url(#${newId})`);\n }, svg);\n\n return setFallbackForGradientFill(rawSvg, fallback);\n }\n\n return svg;\n}\n\nfunction makeRandomSalt(): number {\n return Math.floor(Math.random() * Date.now());\n}\n\nfunction escapeRegExp(search: string): string {\n return search.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, `\\\\$&`);\n}\n\nfunction extractLinearGradientIdsFromSvg(svg: string): string[] {\n const ids = (svg.match(/url\\((\"?)('*)#(.*?)('*)\\)/g) ?? []).map(url =>\n url.slice(4, url.length - 1).replace(/['\"#]+/g, ``),\n );\n\n return Array.from(new Set(ids));\n}\n\nfunction setFallbackForGradientFill(svg: string, fallback: string): string {\n const tree = new DOMParser().parseFromString(svg, `text/html`);\n\n tree.body\n .querySelectorAll(`[fill^=url]`) // only gradient\n .forEach(element =>\n element.setAttribute(\n `fill`,\n `${element.getAttribute(`fill`)} ${fallback}`.trim(),\n ),\n );\n\n return tree.body.innerHTML.trim();\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-cdk-utils-svg.js","sources":["../../../projects/cdk/utils/svg/svg-linear-gradient-processor.ts","../../../projects/cdk/utils/svg/taiga-ui-cdk-utils-svg.ts"],"sourcesContent":["import {TuiSafeHtml} from '@taiga-ui/cdk/interfaces';\nimport {tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\n\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 fallback: string = `rgba(0, 0, 0, 0.7)`,\n): TuiSafeHtml {\n if (tuiIsString(svg)) {\n const uniqueIds = extractLinearGradientIdsFromSvg(svg);\n const rawSvg = uniqueIds.reduce((newSvg, previousId) => {\n const escapedId = escapeRegExp(previousId);\n const newId = `id_${salt}_${previousId}`;\n\n return newSvg\n .replace(new RegExp(`\"${escapedId}\"`, `g`), `\"${newId}\"`)\n .replace(new RegExp(`'${escapedId}'`, `g`), `'${newId}'`)\n .replace(new RegExp(`url\\\\('#${escapedId}'\\\\)`, `g`), `url('#${newId}')`)\n .replace(new RegExp(`url\\\\(\"#${escapedId}\"\\\\)`, `g`), `url(\"#${newId}\")`)\n .replace(new RegExp(`url\\\\(#${escapedId}\\\\)`, `g`), `url(#${newId})`);\n }, svg);\n\n return setFallbackForGradientFill(rawSvg, fallback);\n }\n\n return svg;\n}\n\nfunction makeRandomSalt(): number {\n return Math.floor(Math.random() * Date.now());\n}\n\nfunction escapeRegExp(search: string): string {\n return search.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, `\\\\$&`);\n}\n\nfunction extractLinearGradientIdsFromSvg(svg: string): string[] {\n const ids = (svg.match(/url\\((\"?)('*)#(.*?)('*)\\)/g) ?? []).map(url =>\n url.slice(4, url.length - 1).replace(/['\"#]+/g, ``),\n );\n\n return Array.from(new Set(ids));\n}\n\nfunction setFallbackForGradientFill(svg: string, fallback: string): string {\n try {\n const tree = new DOMParser().parseFromString(svg, `text/html`);\n\n tree.body\n .querySelectorAll(`[fill^=url]`) // only gradient\n .forEach(element =>\n element.setAttribute(\n `fill`,\n `${element.getAttribute(`fill`)} ${fallback}`.trim(),\n ),\n );\n\n return tree.body.innerHTML.trim();\n } catch {\n return svg;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taiga-ui/cdk",
3
- "version": "3.43.0-canary.8342138",
3
+ "version": "3.43.0-canary.e651642",
4
4
  "description": "Base library for creating Angular components and applications using Taiga UI principles regarding of actual visual appearance",
5
5
  "keywords": [
6
6
  "angular",
@@ -86,7 +86,11 @@ function addRootTuiProvidersToBootstrapFn(bootstrapOptions) {
86
86
  .getElements()
87
87
  .find(el => ng_morph_1.Node.isCallExpression(el) &&
88
88
  el.getExpression().getText() === `importProvidersFrom`);
89
- const modules = [modules_1.MAIN_MODULE, modules_1.BROWSER_ANIMATION_MODULE];
89
+ const providerAnimation = initializer
90
+ .getElements()
91
+ .find(el => ng_morph_1.Node.isCallExpression(el) &&
92
+ el.getExpression().getText() === `provideAnimations`);
93
+ const modules = [modules_1.MAIN_MODULE];
90
94
  if (ng_morph_1.Node.isCallExpression(providerFrom)) {
91
95
  const existing = providerFrom.getArguments();
92
96
  const moduleNames = modules
@@ -95,7 +99,16 @@ function addRootTuiProvidersToBootstrapFn(bootstrapOptions) {
95
99
  providerFrom.addArguments(moduleNames);
96
100
  }
97
101
  else {
98
- push_to_array_property_1.pushToObjectArrayProperty(bootstrapOptions, `providers`, `importProvidersFrom(TuiRootModule, BrowserAnimationsModule)`);
102
+ push_to_array_property_1.pushToObjectArrayProperty(bootstrapOptions, `providers`, `importProvidersFrom(TuiRootModule)`);
103
+ }
104
+ if (!providerAnimation) {
105
+ modules.push({
106
+ name: `providerAnimation`,
107
+ packageName: `@angular/platform-browser/animations`,
108
+ });
109
+ push_to_array_property_1.pushToObjectArrayProperty(bootstrapOptions, `providers`, `providerAnimation()`, {
110
+ index: 0,
111
+ });
99
112
  }
100
113
  [...modules, { name: `importProvidersFrom`, packageName: `@angular/core` }].forEach(({ name, packageName }) => {
101
114
  add_unique_import_1.addUniqueImport(bootstrapOptions.getSourceFile().getFilePath(), name, packageName);
@@ -1,5 +1,6 @@
1
1
  import { ObjectLiteralExpression } from 'ng-morph';
2
- export declare function pushToObjectArrayProperty(objectExpression: ObjectLiteralExpression, propertyName: string, initializer: string, { unique, forceToArray, }?: {
2
+ export declare function pushToObjectArrayProperty(objectExpression: ObjectLiteralExpression, propertyName: string, initializer: string, { unique, forceToArray, index, }?: {
3
3
  forceToArray?: boolean;
4
+ index?: number | null;
4
5
  unique?: boolean;
5
6
  }): void;
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.pushToObjectArrayProperty = void 0;
4
4
  const ng_morph_1 = require("ng-morph");
5
- function pushToObjectArrayProperty(objectExpression, propertyName, initializer, { unique = false, forceToArray = false, } = {}) {
5
+ function pushToObjectArrayProperty(objectExpression, propertyName, initializer, { unique = false, forceToArray = false, index = null, } = {}) {
6
6
  var _a, _b;
7
7
  const property = (_a = objectExpression.getProperty(propertyName)) !== null && _a !== void 0 ? _a : objectExpression.addProperty(`${propertyName}: []`);
8
8
  if (!ng_morph_1.Node.isPropertyAssignment(property)) {
@@ -21,6 +21,12 @@ function pushToObjectArrayProperty(objectExpression, propertyName, initializer,
21
21
  .some(element => element.getText() === initializer)) {
22
22
  return;
23
23
  }
24
- importsInitializer.addElement(initializer);
24
+ // eslint-disable-next-line @taiga-ui/experience/no-typeof
25
+ if (typeof index === `number`) {
26
+ importsInitializer.insertElement(index, initializer);
27
+ }
28
+ else {
29
+ importsInitializer.addElement(initializer);
30
+ }
25
31
  }
26
32
  exports.pushToObjectArrayProperty = pushToObjectArrayProperty;