diff --git a/package-lock.json b/package-lock.json index 9aedb4c40..dc16e0549 100644 --- a/package-lock.json +++ b/package-lock.json @@ -34,11 +34,11 @@ "@maskito/angular": "2.5.0", "@maskito/core": "2.5.0", "@maskito/kit": "2.5.0", - "@ng-web-apis/common": "4.0.1", - "@ng-web-apis/intersection-observer": "4.0.1", - "@ng-web-apis/mutation-observer": "4.0.1", - "@ng-web-apis/resize-observer": "4.0.1", - "@ng-web-apis/universal": "4.0.1", + "@ng-web-apis/common": "4.1.2", + "@ng-web-apis/intersection-observer": "4.1.2", + "@ng-web-apis/mutation-observer": "4.1.2", + "@ng-web-apis/resize-observer": "4.1.2", + "@ng-web-apis/universal": "4.1.2", "@nguniversal/builders": "16.2.0", "@nx/angular": "19.2.2", "@nx/jest": "19.2.2", @@ -4390,9 +4390,9 @@ } }, "node_modules/@csstools/css-parser-algorithms": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.6.3.tgz", - "integrity": "sha512-xI/tL2zxzEbESvnSxwFgwvy5HS00oCXxL4MLs6HUiDcYfwowsoQaABKxUElp1ARITrINzBnsECOc1q0eg2GOrA==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.7.0.tgz", + "integrity": "sha512-qvBMcOU/uWFCH/VO0MYe0AMs0BGMWAt6FTryMbFIKYtZtVnqTZtT8ktv5o718llkaGZWomJezJZjq3vJDHeJNQ==", "dev": true, "funding": [ { @@ -4410,13 +4410,13 @@ "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-tokenizer": "^2.3.1" + "@csstools/css-tokenizer": "^2.3.2" } }, "node_modules/@csstools/css-tokenizer": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.3.1.tgz", - "integrity": "sha512-iMNHTyxLbBlWIfGtabT157LH9DUx9X8+Y3oymFEuMj8HNc+rpE3dPFGFgHjpKfjeFDjLjYIAIhXPGvS2lKxL9g==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.3.2.tgz", + "integrity": "sha512-0xYOf4pQpAaE6Sm2Q0x3p25oRukzWQ/O8hWVvhIt9Iv98/uu053u2CGm/g3kJ+P0vOYTAYzoU8Evq2pg9ZPXtw==", "dev": true, "funding": [ { @@ -4435,9 +4435,9 @@ } }, "node_modules/@csstools/media-query-list-parser": { - "version": "2.1.11", - "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.11.tgz", - "integrity": "sha512-uox5MVhvNHqitPP+SynrB1o8oPxPMt2JLgp5ghJOWf54WGQ5OKu47efne49r1SWqs3wRP8xSWjnO9MBKxhB1dA==", + "version": "2.1.12", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.12.tgz", + "integrity": "sha512-t1/CdyVJzOQUiGUcIBXRzTAkWTFPxiPnoKwowKW2z9Uj78c2bBWI/X94BeVfUwVq1xtCjD7dnO8kS6WONgp8Jw==", "dev": true, "funding": [ { @@ -4455,8 +4455,8 @@ "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1" + "@csstools/css-parser-algorithms": "^2.7.0", + "@csstools/css-tokenizer": "^2.3.2" } }, "node_modules/@csstools/selector-specificity": { @@ -5016,9 +5016,9 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.1.tgz", - "integrity": "sha512-Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", + "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", "dev": true, "license": "MIT", "engines": { @@ -6374,9 +6374,9 @@ } }, "node_modules/@ng-web-apis/common": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@ng-web-apis/common/-/common-4.0.1.tgz", - "integrity": "sha512-elFI9jR75SoNqcchMBc24Hdcnaa3tzzQDJqKFwzb59JCUjJg83mQTIfBBlL/QoePpHPPweubDq+8dicHKglpFw==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@ng-web-apis/common/-/common-4.1.2.tgz", + "integrity": "sha512-8SO4JrQK8MZAzveafOEjI3M5zKC2VkM3Q9Movh0KiGQHOqZuT/jdZO4PqT6ydwJHcALiWT2pQRTwjp6oEimaog==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.3.0" @@ -6388,9 +6388,9 @@ } }, "node_modules/@ng-web-apis/intersection-observer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@ng-web-apis/intersection-observer/-/intersection-observer-4.0.1.tgz", - "integrity": "sha512-rPqCDsCUD0NvOXaKN4ponRqfrWKkSm4bTVTIXe/bz2W5ZoY2ajHJSRYkcWbdhGPSNUptQ7768Fpkqd0PFBN+3Q==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@ng-web-apis/intersection-observer/-/intersection-observer-4.1.2.tgz", + "integrity": "sha512-GsfxvH+lNz7wrPX1mQGcbugWNHJDzwnaBqFSEgjrl19e/3CzwRF4PzLg5uAL4+0Fuw6SwHj3rUG0irIWEX+Yxg==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.3.0" @@ -6401,9 +6401,9 @@ } }, "node_modules/@ng-web-apis/mutation-observer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@ng-web-apis/mutation-observer/-/mutation-observer-4.0.1.tgz", - "integrity": "sha512-oyg1G3jAG3isfTrtCyNetLQKjHI6bVFtdrxNxaVcAo4J3ZfTqkw/OGJzFXEnXdMsvQygWgWqFtuZbG0LJysEPw==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@ng-web-apis/mutation-observer/-/mutation-observer-4.1.2.tgz", + "integrity": "sha512-psvxEE7WN/2KGUOwS7NNXOV8EG70h4FM77B8NmLuKwkh0z5d+sxmgJ9BjbKJB4F144DpQtXFAuJAaVkT882g/w==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.3.0" @@ -6414,9 +6414,9 @@ } }, "node_modules/@ng-web-apis/resize-observer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@ng-web-apis/resize-observer/-/resize-observer-4.0.1.tgz", - "integrity": "sha512-f6JBaZOKWvBUvhjTdpcx+cGWNuiY2/JgUVe9S+PQ/lgFre7R26KRqS2ZBrP+2hYWxR791hdxMDZR2qy2VW5KGA==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@ng-web-apis/resize-observer/-/resize-observer-4.1.2.tgz", + "integrity": "sha512-T8Vsr/AlnVzrDCko+BpzPWGIq0mFvE1zExY5zxbjTyraIL2VO0Le2wkU/v6UH64nRfp+xY5VDnOADNpTQCS8Zg==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.3.0" @@ -6427,9 +6427,9 @@ } }, "node_modules/@ng-web-apis/universal": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@ng-web-apis/universal/-/universal-4.0.1.tgz", - "integrity": "sha512-QqEMuKxjz1d4cPJJfGstbxD0J9Y0Qmv7Q+gyxk9b+TZQm7tsCWarEn9wbJTP2yA5M46qzV2dhWdMDDG82C1UuA==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@ng-web-apis/universal/-/universal-4.1.2.tgz", + "integrity": "sha512-rfYHe8Nws01kvrhdbnpuuB3cEfs1aJbeErr8a3Jn8a2ailTPc3lZ2KL/nlENK7vCeVZM22x/cgMAzcuN76z/FQ==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.3.0" @@ -15029,9 +15029,9 @@ } }, "node_modules/cacache/node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.3.0.tgz", + "integrity": "sha512-CQl19J/g+Hbjbv4Y3mFNNXFEL/5t/KCg8POCuUqd4rMKjGG+j1ybER83hxV58zL+dFI1PTkt3GNFSHRt+d8qEQ==", "dev": true, "license": "ISC", "engines": { @@ -15157,9 +15157,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001637", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001637.tgz", - "integrity": "sha512-1x0qRI1mD1o9e+7mBI7XtzFAP4XszbHaVWsMiGbSPLYekKTJF7K+FNk6AsXH4sUpc+qrsI3pVgf1Jdl/uGkuSQ==", + "version": "1.0.30001639", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001639.tgz", + "integrity": "sha512-eFHflNTBIlFwP2AIKaYuBQN/apnUoKNhBdza8ZnW/h2di4LCZ4xFqYlxUxo+LQ76KFI1PGcC1QDxMbxTZpSCAg==", "funding": [ { "type": "opencollective", @@ -15423,9 +15423,9 @@ "license": "MIT" }, "node_modules/cli-truncate/node_modules/string-width": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.1.0.tgz", - "integrity": "sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "dev": true, "license": "MIT", "dependencies": { @@ -18347,9 +18347,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.812", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.812.tgz", - "integrity": "sha512-7L8fC2Ey/b6SePDFKR2zHAy4mbdp1/38Yk5TsARO66W3hC5KEaeKMMHoxwtuH+jcu2AYLSn9QX04i95t6Fl1Hg==", + "version": "1.4.815", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.815.tgz", + "integrity": "sha512-OvpTT2ItpOXJL7IGcYakRjHCt8L5GrrN/wHCQsRB4PQa1X9fe+X9oen245mIId7s14xvArCGSTIq644yPUKKLg==", "license": "ISC" }, "node_modules/ember-rfc176-data": { @@ -19676,9 +19676,9 @@ } }, "node_modules/eslint-plugin-promise": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.2.0.tgz", - "integrity": "sha512-QmAqwizauvnKOlifxyDj2ObfULpHQawlg/zQdgEixur9vl0CvZGv/LCJV2rtj3210QCoeGBzVMfMXqGAOr/4fA==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.4.0.tgz", + "integrity": "sha512-/KWWRaD3fGkVCZsdR0RU53PSthFmoHVhZl+y9+6DqeDLSikLdlUVpVEAmI6iCRR5QyOjBYBqHZV/bdv4DJ4Gtw==", "dev": true, "license": "ISC", "peer": true, @@ -22439,9 +22439,9 @@ } }, "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.3.0.tgz", + "integrity": "sha512-CQl19J/g+Hbjbv4Y3mFNNXFEL/5t/KCg8POCuUqd4rMKjGG+j1ybER83hxV58zL+dFI1PTkt3GNFSHRt+d8qEQ==", "dev": true, "license": "ISC", "engines": { @@ -24028,9 +24028,9 @@ } }, "node_modules/istanbul-lib-instrument": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz", - "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -27362,9 +27362,9 @@ "license": "MIT" }, "node_modules/listr2/node_modules/string-width": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.1.0.tgz", - "integrity": "sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "dev": true, "license": "MIT", "dependencies": { @@ -27984,9 +27984,9 @@ } }, "node_modules/log-update/node_modules/string-width": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.1.0.tgz", - "integrity": "sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "dev": true, "license": "MIT", "dependencies": { @@ -30847,9 +30847,9 @@ } }, "node_modules/p-locate/node_modules/yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", + "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", "dev": true, "license": "MIT", "engines": { @@ -30910,9 +30910,9 @@ } }, "node_modules/pac-proxy-agent": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.0.1.tgz", - "integrity": "sha512-ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.0.2.tgz", + "integrity": "sha512-BFi3vZnO9X5Qt6NRz7ZOaPja3ic0PhlsmCRYLOpN11+mWBCR6XJDqW5RF3j8jm4WGGQZtBA+bTfxYzeKW73eHg==", "dev": true, "license": "MIT", "dependencies": { @@ -30921,9 +30921,9 @@ "debug": "^4.3.4", "get-uri": "^6.0.1", "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.2", - "pac-resolver": "^7.0.0", - "socks-proxy-agent": "^8.0.2" + "https-proxy-agent": "^7.0.5", + "pac-resolver": "^7.0.1", + "socks-proxy-agent": "^8.0.4" }, "engines": { "node": ">= 14" @@ -30957,9 +30957,9 @@ } }, "node_modules/pac-proxy-agent/node_modules/https-proxy-agent": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", - "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", "dev": true, "license": "MIT", "dependencies": { @@ -30971,15 +30971,15 @@ } }, "node_modules/pac-proxy-agent/node_modules/socks-proxy-agent": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.3.tgz", - "integrity": "sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==", + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz", + "integrity": "sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==", "dev": true, "license": "MIT", "dependencies": { "agent-base": "^7.1.1", "debug": "^4.3.4", - "socks": "^2.7.1" + "socks": "^2.8.3" }, "engines": { "node": ">= 14" @@ -31408,9 +31408,9 @@ } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.3.0.tgz", + "integrity": "sha512-CQl19J/g+Hbjbv4Y3mFNNXFEL/5t/KCg8POCuUqd4rMKjGG+j1ybER83hxV58zL+dFI1PTkt3GNFSHRt+d8qEQ==", "dev": true, "license": "ISC", "engines": { @@ -31721,9 +31721,9 @@ } }, "node_modules/postcss": { - "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "version": "8.4.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz", + "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==", "funding": [ { "type": "opencollective", @@ -31741,7 +31741,7 @@ "license": "MIT", "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.0", + "picocolors": "^1.0.1", "source-map-js": "^1.2.0" }, "engines": { @@ -33055,9 +33055,9 @@ } }, "node_modules/proxy-agent/node_modules/https-proxy-agent": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", - "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", "dev": true, "license": "MIT", "dependencies": { @@ -33079,15 +33079,15 @@ } }, "node_modules/proxy-agent/node_modules/socks-proxy-agent": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.3.tgz", - "integrity": "sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==", + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz", + "integrity": "sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==", "dev": true, "license": "MIT", "dependencies": { "agent-base": "^7.1.1", "debug": "^4.3.4", - "socks": "^2.7.1" + "socks": "^2.8.3" }, "engines": { "node": ">= 14" @@ -34207,9 +34207,9 @@ } }, "node_modules/release-it/node_modules/ora/node_modules/string-width": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.1.0.tgz", - "integrity": "sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "dev": true, "license": "MIT", "dependencies": { @@ -40908,7 +40908,7 @@ }, "projects/editor": { "name": "@taiga-ui/editor", - "version": "2.0.21-alpha.5", + "version": "2.0.21-alpha.6", "license": "Apache-2.0", "peerDependencies": { "@maskito/angular": ">=2.4.0", @@ -41089,7 +41089,7 @@ "peerDependencies": { "@angular/common": ">=16.0.0", "@angular/core": ">=16.0.0", - "@ng-web-apis/common": "^4.0.1", + "@ng-web-apis/common": "^4.1.2", "@taiga-ui/cdk": "^4.0.0-rc.2", "@taiga-ui/core": "^4.0.0-rc.2", "@taiga-ui/polymorpheus": "^4.6.3", @@ -41107,7 +41107,7 @@ "@maskito/angular": "^2.5.0", "@maskito/core": "^2.5.0", "@maskito/kit": "^2.5.0", - "@ng-web-apis/common": "^4.0.1", + "@ng-web-apis/common": "^4.1.2", "@taiga-ui/cdk": "^4.0.0-rc.2", "@taiga-ui/core": "^4.0.0-rc.2", "@taiga-ui/i18n": "^4.0.0-rc.2", @@ -41135,7 +41135,7 @@ "@angular/core": ">=16.0.0", "@angular/forms": ">=16.0.0", "@angular/router": ">=16.0.0", - "@ng-web-apis/common": "^4.0.1", + "@ng-web-apis/common": "^4.1.2", "@taiga-ui/addon-mobile": "^4.0.0-rc.2", "@taiga-ui/cdk": "^4.0.0-rc.2", "@taiga-ui/core": "^4.0.0-rc.2", @@ -41164,7 +41164,7 @@ "@angular/cdk": ">=16.0.0", "@angular/common": ">=16.0.0", "@angular/core": ">=16.0.0", - "@ng-web-apis/common": "^4.0.1", + "@ng-web-apis/common": "^4.1.2", "@taiga-ui/cdk": "^4.0.0-rc.2", "@taiga-ui/core": "^4.0.0-rc.2", "@taiga-ui/kit": "^4.0.0-rc.2", @@ -41180,7 +41180,7 @@ "peerDependencies": { "@angular/common": ">=16.0.0", "@angular/core": ">=16.0.0", - "@ng-web-apis/intersection-observer": "^4.0.1", + "@ng-web-apis/intersection-observer": "^4.1.2", "@taiga-ui/cdk": "^4.0.0-rc.2", "@taiga-ui/core": "^4.0.0-rc.2", "@taiga-ui/i18n": "^4.0.0-rc.2", @@ -41216,9 +41216,9 @@ "@angular/common": ">=16.0.0", "@angular/core": ">=16.0.0", "@angular/forms": ">=16.0.0", - "@ng-web-apis/common": "^4.0.1", - "@ng-web-apis/mutation-observer": "^4.0.1", - "@ng-web-apis/resize-observer": "^4.0.1", + "@ng-web-apis/common": "^4.1.2", + "@ng-web-apis/mutation-observer": "^4.1.2", + "@ng-web-apis/resize-observer": "^4.1.2", "@taiga-ui/event-plugins": "^4.0.1", "@taiga-ui/polymorpheus": "^4.6.3", "rxjs": ">=7.0.0" @@ -41353,8 +41353,8 @@ "@angular/forms": ">=16.0.0", "@angular/platform-browser": ">=16.0.0", "@angular/router": ">=16.0.0", - "@ng-web-apis/common": "^4.0.1", - "@ng-web-apis/mutation-observer": "^4.0.1", + "@ng-web-apis/common": "^4.1.2", + "@ng-web-apis/mutation-observer": "^4.1.2", "@taiga-ui/cdk": "^4.0.0-rc.2", "@taiga-ui/event-plugins": "^4.0.1", "@taiga-ui/i18n": "^4.0.0-rc.2", @@ -41376,7 +41376,7 @@ "@angular/platform-browser-dynamic": "16.2.12", "@angular/platform-server": "16.2.12", "@angular/router": "16.2.12", - "@ng-web-apis/universal": "4.0.1", + "@ng-web-apis/universal": "4.1.2", "@nguniversal/express-engine": "16.2.0", "@stackblitz/sdk": "1.10.0", "@taiga-ui/dompurify": "4.1.0", @@ -41488,7 +41488,7 @@ "license": "Apache-2.0", "peerDependencies": { "@angular/core": ">=16.0.0", - "@ng-web-apis/common": "^4.0.1", + "@ng-web-apis/common": "^4.1.2", "rxjs": ">=7.0.0", "tslib": "^2.6.3" } @@ -41514,10 +41514,10 @@ "@maskito/core": "^2.5.0", "@maskito/kit": "^2.5.0", "@maskito/phone": "^2.5.0", - "@ng-web-apis/common": "^4.0.1", - "@ng-web-apis/intersection-observer": "^4.0.1", - "@ng-web-apis/mutation-observer": "^4.0.1", - "@ng-web-apis/resize-observer": "^4.0.1", + "@ng-web-apis/common": "^4.1.2", + "@ng-web-apis/intersection-observer": "^4.1.2", + "@ng-web-apis/mutation-observer": "^4.1.2", + "@ng-web-apis/resize-observer": "^4.1.2", "@taiga-ui/cdk": "^4.0.0-rc.2", "@taiga-ui/core": "^4.0.0-rc.2", "@taiga-ui/i18n": "^4.0.0-rc.2", diff --git a/package.json b/package.json index 09bb84527..208f96b3d 100644 --- a/package.json +++ b/package.json @@ -101,11 +101,11 @@ "@maskito/angular": "2.5.0", "@maskito/core": "2.5.0", "@maskito/kit": "2.5.0", - "@ng-web-apis/common": "4.0.1", - "@ng-web-apis/intersection-observer": "4.0.1", - "@ng-web-apis/mutation-observer": "4.0.1", - "@ng-web-apis/resize-observer": "4.0.1", - "@ng-web-apis/universal": "4.0.1", + "@ng-web-apis/common": "4.1.2", + "@ng-web-apis/intersection-observer": "4.1.2", + "@ng-web-apis/mutation-observer": "4.1.2", + "@ng-web-apis/resize-observer": "4.1.2", + "@ng-web-apis/universal": "4.1.2", "@nguniversal/builders": "16.2.0", "@nx/angular": "19.2.2", "@nx/jest": "19.2.2", diff --git a/projects/demo/src/app/app.pages.ts b/projects/demo/src/app/app.pages.ts index 558fd9d6c..f538311c0 100644 --- a/projects/demo/src/app/app.pages.ts +++ b/projects/demo/src/app/app.pages.ts @@ -11,10 +11,10 @@ export const DEMO_PAGES: TuiDocRoutePages = [ 'editor, setup, starter kit, wysiwyg, редактор, текст, html, rich, text', }, { - section: `Documentation`, - title: `Tokens`, + section: 'Documentation', + title: 'Tokens', route: `${TuiDemoPath.StarterKit}/Options`, - keywords: `TUI_EDITOR_OPTIONS, TUI_ATTACH_FILES_LOADER`, + keywords: 'TUI_EDITOR_OPTIONS, TUI_ATTACH_FILES_LOADER', }, { section: 'Documentation', @@ -217,6 +217,12 @@ export const DEMO_PAGES: TuiDocRoutePages = [ 'editor, embed, video player, audio player, html5, wysiwyg, редактор, плеер, html, rich, text', route: `/${TuiDemoPath.EmbedHtml5}`, }, + { + section: 'Documentation', + title: 'PDF', + keywords: 'editor, embed, pdf', + route: `/${TuiDemoPath.EmbedPDF}`, + }, ], }, { diff --git a/projects/demo/src/app/app.routes.ts b/projects/demo/src/app/app.routes.ts index b001695bf..f98752c63 100644 --- a/projects/demo/src/app/app.routes.ts +++ b/projects/demo/src/app/app.routes.ts @@ -139,6 +139,11 @@ export const routes: Routes = [ loadComponent: async () => import('./pages/embed/html5'), title: 'Editor — HTML5', }), + route({ + path: TuiDemoPath.EmbedPDF, + loadComponent: async () => import('./pages/embed/pdf'), + title: 'Editor — PDF', + }), route({ path: TuiDemoPath.ToolbarBottom, loadComponent: async () => import('./pages/toolbar/bottom'), diff --git a/projects/demo/src/app/pages/color-picker/examples/4/index.less b/projects/demo/src/app/pages/color-picker/examples/4/index.less index f5f15332f..6a71be997 100644 --- a/projects/demo/src/app/pages/color-picker/examples/4/index.less +++ b/projects/demo/src/app/pages/color-picker/examples/4/index.less @@ -1,8 +1,8 @@ .paint { position: absolute; - width: 24px; - height: 24px; - right: 48px; + width: 1.5rem; + height: 1.5rem; + right: 3rem; pointer-events: auto; input { diff --git a/projects/demo/src/app/pages/embed/iframe/examples/1/index.ts b/projects/demo/src/app/pages/embed/iframe/examples/1/index.ts index 8681a8a1e..efb489545 100644 --- a/projects/demo/src/app/pages/embed/iframe/examples/1/index.ts +++ b/projects/demo/src/app/pages/embed/iframe/examples/1/index.ts @@ -20,8 +20,8 @@ import {ExampleTuiEmbedTool} from './embed-tool/embed-tool.component'; deps: [Injector], useFactory: (injector: Injector) => [ import('@taiga-ui/editor').then(({TuiStarterKit}) => TuiStarterKit), - import('@taiga-ui/editor').then(({tuiCreateImageEditorExtension}) => - tuiCreateImageEditorExtension({injector}), + import('@taiga-ui/editor').then(({tuiCreateIframeEditorExtension}) => + tuiCreateIframeEditorExtension({injector}), ), ], }, @@ -32,7 +32,6 @@ export default class Example { private readonly isE2E = inject(TUI_IS_E2E); protected readonly builtInTools = [TuiEditorTool.Undo]; - protected readonly control = new FormControl( `

Here is an online IDE:

diff --git a/projects/demo/src/app/pages/embed/pdf/examples/1/index.html b/projects/demo/src/app/pages/embed/pdf/examples/1/index.html new file mode 100644 index 000000000..0e8b6c2d3 --- /dev/null +++ b/projects/demo/src/app/pages/embed/pdf/examples/1/index.html @@ -0,0 +1,12 @@ + + +

HTML:

+
+ +

Text:

+

{{ control.value }}

diff --git a/projects/demo/src/app/pages/embed/pdf/examples/1/index.less b/projects/demo/src/app/pages/embed/pdf/examples/1/index.less new file mode 100644 index 000000000..ef03273bf --- /dev/null +++ b/projects/demo/src/app/pages/embed/pdf/examples/1/index.less @@ -0,0 +1,7 @@ +.editor { + min-height: 43.75rem; +} + +::ng-deep iframe { + border: 1px solid var(--tui-background-accent-1); +} diff --git a/projects/demo/src/app/pages/embed/pdf/examples/1/index.ts b/projects/demo/src/app/pages/embed/pdf/examples/1/index.ts new file mode 100644 index 000000000..97904fb93 --- /dev/null +++ b/projects/demo/src/app/pages/embed/pdf/examples/1/index.ts @@ -0,0 +1,137 @@ +import type {Injector} from '@angular/core'; +import { + ChangeDetectionStrategy, + Component, + inject, + INJECTOR, + ViewChild, +} from '@angular/core'; +import {FormControl, ReactiveFormsModule, Validators} from '@angular/forms'; +import type {SafeHtml} from '@angular/platform-browser'; +import {DomSanitizer} from '@angular/platform-browser'; +import {TUI_IS_E2E, tuiPure, tuiTypedFromEvent} from '@taiga-ui/cdk'; +import type {TuiEditorAttachedFile} from '@taiga-ui/editor'; +import { + TUI_ATTACH_FILES_LOADER, + TUI_ATTACH_FILES_OPTIONS, + TUI_EDITOR_EXTENSIONS, + TuiEditor, + TuiEditorTool, +} from '@taiga-ui/editor'; +import type {Observable} from 'rxjs'; +import {map} from 'rxjs'; + +@Component({ + standalone: true, + imports: [ReactiveFormsModule, TuiEditor], + templateUrl: './index.html', + styleUrls: ['./index.less'], + changeDetection: ChangeDetectionStrategy.OnPush, + providers: [ + { + provide: TUI_EDITOR_EXTENSIONS, + deps: [INJECTOR], + useFactory: (injector: Injector) => [ + import('@taiga-ui/editor').then(({TuiStarterKit}) => TuiStarterKit), + import('@tiptap/extension-text-style').then(({TextStyle}) => TextStyle), + import('@taiga-ui/editor').then(({TuiLink}) => TuiLink), + import('@taiga-ui/editor').then(({TuiFileLink}) => TuiFileLink), + import('@taiga-ui/editor').then(({tuiCreateIframeEditorExtension}) => + tuiCreateIframeEditorExtension({injector}), + ), + ], + }, + { + provide: TUI_ATTACH_FILES_LOADER, + useFactory: + () => + ([file]: File[]): Observable< + Array> + > => { + const fileReader = new FileReader(); + + // For example, instead of uploading to a file server, + // we convert the result immediately into content to base64 + fileReader.readAsDataURL(file); + + return tuiTypedFromEvent(fileReader, 'load').pipe( + map(() => [ + { + name: file.name, + + /* base64 or link to the file on your server */ + link: String(fileReader.result), + + attrs: { + type: file.type, + }, + }, + ]), + ); + }, + }, + { + provide: TUI_ATTACH_FILES_OPTIONS, + useValue: { + accept: 'application/pdf', + multiple: false, + }, + }, + ], + host: { + class: 'html5-editor-example', + '[class._e2e]': 'isE2E', + }, +}) +export default class Example { + @ViewChild(TuiEditor) + private readonly editor?: TuiEditor; + + private readonly sanitizer = inject(DomSanitizer); + + protected readonly isE2E = inject(TUI_IS_E2E); + + protected readonly builtInTools = [ + TuiEditorTool.Undo, + TuiEditorTool.Link, + TuiEditorTool.Attach, + ]; + + protected readonly control = new FormControl( + ` +

sample.pdf

+ +

Hello world

+ `, + Validators.required, + ); + + @tuiPure + protected safe(content: string | null): SafeHtml { + return this.sanitizer.bypassSecurityTrustHtml(content ?? ''); + } + + protected attach([file]: Array>): void { + this.editor?.editorService + ?.getOriginTiptapEditor() + ?.chain() + .focus('end') + .createParagraphNear() + .insertContent(file.name) + .run(); + + this.editor?.editorService?.setIframe({ + allowfullscreen: false, + frameborder: null, + // For example, src: `https://mozilla.github.io/pdf.js/web/viewer.html?url${file.link}`, + src: `data:application/pdf;base64${file.link}`, + width: '100%', + height: 300, + }); + } +} diff --git a/projects/demo/src/app/pages/embed/pdf/index.html b/projects/demo/src/app/pages/embed/pdf/index.html new file mode 100644 index 000000000..20c1339e2 --- /dev/null +++ b/projects/demo/src/app/pages/embed/pdf/index.html @@ -0,0 +1,11 @@ + + + diff --git a/projects/demo/src/app/pages/embed/pdf/index.ts b/projects/demo/src/app/pages/embed/pdf/index.ts new file mode 100644 index 000000000..c89124402 --- /dev/null +++ b/projects/demo/src/app/pages/embed/pdf/index.ts @@ -0,0 +1,25 @@ +import {ChangeDetectionStrategy, Component} from '@angular/core'; +import {RouterLink} from '@angular/router'; +import {TuiAddonDoc} from '@taiga-ui/addon-doc'; +import {TuiLink} from '@taiga-ui/core'; +import {TUI_EDITOR_DEFAULT_EXTENSIONS, TUI_EDITOR_EXTENSIONS} from '@taiga-ui/editor'; + +@Component({ + standalone: true, + imports: [TuiAddonDoc, TuiLink, RouterLink], + templateUrl: './index.html', + changeDetection: ChangeDetectionStrategy.OnPush, + providers: [ + { + provide: TUI_EDITOR_EXTENSIONS, + useValue: TUI_EDITOR_DEFAULT_EXTENSIONS, + }, + ], +}) +export default class Example { + protected readonly component1 = import('./examples/1'); + protected readonly example1 = { + HTML: import('./examples/1/index.html?raw'), + TypeScript: import('./examples/1/index.ts?raw'), + }; +} diff --git a/projects/demo/src/app/pages/focus/examples/1/index.less b/projects/demo/src/app/pages/focus/examples/1/index.less index 003b21015..0d1cb7267 100644 --- a/projects/demo/src/app/pages/focus/examples/1/index.less +++ b/projects/demo/src/app/pages/focus/examples/1/index.less @@ -1,7 +1,7 @@ ::ng-deep { .has-focus:not(tui-image-editor), tui-image-editor.has-focus img { - border-radius: 3px; + border-radius: 0.1875rem; box-shadow: 0 0 0 3px #68cef8; } } diff --git a/projects/demo/src/app/pages/starter/index.html b/projects/demo/src/app/pages/starter/index.html index 4e3057688..a3e89017e 100644 --- a/projects/demo/src/app/pages/starter/index.html +++ b/projects/demo/src/app/pages/starter/index.html @@ -159,7 +159,7 @@

Text:

id="options" heading="TUI_EDITOR_OPTIONS" > - +

Description of the available configurations: @@ -259,7 +259,7 @@

Text:

id="attach-files" heading="TUI_ATTACH_FILES_LOADER / TUI_ATTACH_FILES_OPTIONS" > - + diff --git a/projects/demo/src/app/pages/starter/index.ts b/projects/demo/src/app/pages/starter/index.ts index a2d23ab77..d88254fd6 100644 --- a/projects/demo/src/app/pages/starter/index.ts +++ b/projects/demo/src/app/pages/starter/index.ts @@ -2,6 +2,7 @@ import {ChangeDetectionStrategy, Component, inject} from '@angular/core'; import {FormControl, ReactiveFormsModule} from '@angular/forms'; import {TuiAddonDoc} from '@taiga-ui/addon-doc'; import {TUI_IS_E2E, TuiAutoFocus} from '@taiga-ui/cdk'; +import {TuiLink} from '@taiga-ui/core'; import { TUI_EDITOR_DEFAULT_EXTENSIONS, TUI_EDITOR_DEFAULT_TOOLS, @@ -10,7 +11,6 @@ import { TuiEditorSocket, TuiEditorTool, } from '@taiga-ui/editor'; -import {TuiLink} from "@taiga-ui/core"; @Component({ standalone: true, diff --git a/projects/demo/src/app/pages/toolbar/bottom/examples/1/index.less b/projects/demo/src/app/pages/toolbar/bottom/examples/1/index.less index a5ac6f3ba..08be5086c 100644 --- a/projects/demo/src/app/pages/toolbar/bottom/examples/1/index.less +++ b/projects/demo/src/app/pages/toolbar/bottom/examples/1/index.less @@ -1,6 +1,6 @@ .editor { - min-height: 200px; - max-height: 200px; + min-height: 12.5rem; + max-height: 12.5rem; ::ng-deep [data-appearance] { tui-toolbar { diff --git a/projects/demo/src/app/shared/logo/index.less b/projects/demo/src/app/shared/logo/index.less index 4d6d75bef..48a59808b 100644 --- a/projects/demo/src/app/shared/logo/index.less +++ b/projects/demo/src/app/shared/logo/index.less @@ -17,8 +17,8 @@ } .logo-icon { - min-width: 180px; - min-height: 30px; + min-width: 11.25rem; + min-height: 1.875rem; color: #eb5a3d; &:host-context([tuiTheme='dark']) & { diff --git a/projects/demo/src/app/shared/routes.ts b/projects/demo/src/app/shared/routes.ts index e24511334..0886fae37 100644 --- a/projects/demo/src/app/shared/routes.ts +++ b/projects/demo/src/app/shared/routes.ts @@ -6,6 +6,7 @@ export const TuiDemoPath = { Checkbox: 'checkbox', ColorPickerTool: 'custom-tool/color-picker', EmbedHtml5: 'embed/html5', + EmbedPDF: 'embed/pdf', EmbedIframe: 'embed/iframe', EmbedYoutube: 'embed/youtube', Focus: 'focus', diff --git a/projects/demo/src/styles.less b/projects/demo/src/styles.less index c22f9a72f..760602eab 100644 --- a/projects/demo/src/styles.less +++ b/projects/demo/src/styles.less @@ -1,5 +1,5 @@ @import '@taiga-ui/styles/taiga-ui-global.less'; -@import '@taiga-ui/legacy/styles/taiga-ui-theme.less'; // TODO: check affected styles +@import '@taiga-ui/core/styles/taiga-ui-theme.less'; @import '~highlight.js/styles/github.css'; body { diff --git a/projects/editor/src/components/color-selector/color-selector.style.less b/projects/editor/src/components/color-selector/color-selector.style.less index 990412905..2347e6aed 100644 --- a/projects/editor/src/components/color-selector/color-selector.style.less +++ b/projects/editor/src/components/color-selector/color-selector.style.less @@ -52,8 +52,8 @@ } .t-hr { - height: 1px; - margin: 0 0 0 -1px; + height: 0.0625rem; + margin: 0 0 0 -0.0625rem; border: none; background: var(--tui-background-neutral-1-hover); } diff --git a/projects/editor/src/components/editor-socket/styles/details.less b/projects/editor/src/components/editor-socket/styles/details.less index 6c98eb4e0..0320ec22c 100644 --- a/projects/editor/src/components/editor-socket/styles/details.less +++ b/projects/editor/src/components/editor-socket/styles/details.less @@ -18,7 +18,7 @@ summary { } p { - min-width: 1px; + min-width: 0.0625rem; margin: 0; } diff --git a/projects/editor/src/components/editor-socket/styles/table.less b/projects/editor/src/components/editor-socket/styles/table.less index 2b023fff9..56bb3de33 100644 --- a/projects/editor/src/components/editor-socket/styles/table.less +++ b/projects/editor/src/components/editor-socket/styles/table.less @@ -23,8 +23,8 @@ table td { position: relative; min-width: 1em; height: 2rem; - border: 2px solid var(--tui-background-neutral-1-hover); - padding: 3px 5px; + border: 0.125rem solid var(--tui-background-neutral-1-hover); + padding: 0.1875rem 0.3125rem; vertical-align: top; box-sizing: border-box; word-break: break-word; @@ -35,7 +35,7 @@ table th { min-width: 1em; height: 2rem; border: 2px solid var(--tui-background-neutral-1-hover); - padding: 3px 5px; + padding: 0.1875rem 0.3125; vertical-align: top; box-sizing: border-box; word-break: break-word; @@ -48,10 +48,10 @@ table th { /* stylelint-disable-next-line */ table .column-resize-handle { position: absolute; - right: -2px; + right: -0.125rem; top: 0; - bottom: -2px; - width: 4px; + bottom: -0.125rem; + width: 0.25rem; background-color: #adf; pointer-events: none; } diff --git a/projects/editor/src/components/editor-socket/styles/text.less b/projects/editor/src/components/editor-socket/styles/text.less index a38fd837d..a9920d7ae 100644 --- a/projects/editor/src/components/editor-socket/styles/text.less +++ b/projects/editor/src/components/editor-socket/styles/text.less @@ -30,7 +30,7 @@ p:empty:after { p:first-child { margin-top: 0; - min-width: 1px; + min-width: 0.0625rem; } p { diff --git a/projects/editor/src/components/toolbar/toolbar.component.ts b/projects/editor/src/components/toolbar/toolbar.component.ts index 6923bdc6b..ba34d0526 100644 --- a/projects/editor/src/components/toolbar/toolbar.component.ts +++ b/projects/editor/src/components/toolbar/toolbar.component.ts @@ -254,7 +254,10 @@ export class TuiToolbar { } ngDevMode && - console.info(!!this.filesLoader, 'Please provide TUI_ATTACH_FILES_LOADER'); + console.assert( + !!this.filesLoader, + 'Please provide TUI_ATTACH_FILES_LOADER, more: https://taiga-family.github.io/editor/starter-kit/Options', + ); this.filesLoader?.(files) .pipe(take(1), takeUntilDestroyed(this.destroyRef)) diff --git a/projects/editor/src/components/toolbar/toolbar.style.less b/projects/editor/src/components/toolbar/toolbar.style.less index f378639ab..dd196d72f 100644 --- a/projects/editor/src/components/toolbar/toolbar.style.less +++ b/projects/editor/src/components/toolbar/toolbar.style.less @@ -23,7 +23,7 @@ content: ''; display: block; margin: 0 0.25rem; - width: 1px; + width: 0.0625rem; background: var(--tui-background-neutral-1-pressed); } } diff --git a/projects/editor/src/extensions/iframe-editor/iframe-editor.component.ts b/projects/editor/src/extensions/iframe-editor/iframe-editor.component.ts index 5f128c9f6..c05e19058 100644 --- a/projects/editor/src/extensions/iframe-editor/iframe-editor.component.ts +++ b/projects/editor/src/extensions/iframe-editor/iframe-editor.component.ts @@ -1,6 +1,7 @@ import {ChangeDetectionStrategy, Component, ElementRef, inject} from '@angular/core'; import type {SafeResourceUrl} from '@angular/platform-browser'; import {DomSanitizer} from '@angular/platform-browser'; +import {tuiPure} from '@taiga-ui/cdk'; import {AbstractTuiEditorResizable} from '../../components/editor-resizable/editor-resizable.abstract'; import {TuiEditorResizable} from '../../components/editor-resizable/editor-resizable.component'; @@ -40,6 +41,7 @@ export class TuiIframeEditor extends AbstractTuiEditorResizable +export const tuiCreateIframeEditorExtension = ({injector}: {injector: Injector}): Node => Node.create({ name: 'iframe', group: 'block', @@ -28,7 +28,7 @@ export const createIframeEditorExtension = (injector: Injector): Node => draggable: false, parseHTML(): NodeSpec['parseDOM'] { - return [{tag: 'iframe[data-type="iframe-editor"]'}]; + return [{tag: 'iframe'}]; }, addAttributes(): Record { diff --git a/projects/editor/src/extensions/image-editor/image-editor.component.ts b/projects/editor/src/extensions/image-editor/image-editor.component.ts index 04c3d5620..08f9fb53f 100644 --- a/projects/editor/src/extensions/image-editor/image-editor.component.ts +++ b/projects/editor/src/extensions/image-editor/image-editor.component.ts @@ -9,6 +9,7 @@ import { import type {SafeResourceUrl} from '@angular/platform-browser'; import {DomSanitizer} from '@angular/platform-browser'; import {WINDOW} from '@ng-web-apis/common'; +import {tuiPure} from '@taiga-ui/cdk'; import {AbstractTuiEditorResizable} from '../../components/editor-resizable/editor-resizable.abstract'; import {TuiEditorResizable} from '../../components/editor-resizable/editor-resizable.component'; @@ -62,6 +63,11 @@ export class TuiImageEditor extends AbstractTuiEditorResizable return this.attrs.draggable ?? null; } + @tuiPure + protected get src(): SafeResourceUrl { + return this.sanitizer.bypassSecurityTrustResourceUrl(this.attrs.src); + } + protected get alt(): string { return this.attrs.alt || ''; } @@ -70,10 +76,6 @@ export class TuiImageEditor extends AbstractTuiEditorResizable return this.attrs.title || ''; } - protected get src(): SafeResourceUrl { - return this.sanitizer.bypassSecurityTrustResourceUrl(this.attrs.src); - } - @HostListener('document:click.silent', ['$event.target']) protected currentTargetIsFocused(node: Node): void { this.focused = this.el.nativeElement.contains(node); diff --git a/taiga-ui b/taiga-ui index 365013f09..7cc04b057 160000 --- a/taiga-ui +++ b/taiga-ui @@ -1 +1 @@ -Subproject commit 365013f09a3183bbff98457739ccdc6ab1657497 +Subproject commit 7cc04b0576c56f641bf4381ffd67af7ac71ecac1