@galacean/effects-plugin-dom-content 2.9.1-beta.0 → 2.9.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_set_prototype_of.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_inherits.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_is_native_reflect_construct.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_construct.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_get_prototype_of.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_is_native_function.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_wrap_native_super.js","../src/dom-content-loader.ts","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_async_to_generator.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_array_like_to_array.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_unsupported_iterable_to_array.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_create_for_of_iterator_helper_loose.js","../../../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_extends.js","../src/dom-to-texture.ts","../src/dom-content-component.ts","../src/index.ts"],"sourcesContent":["function _set_prototype_of(o, p) {\n _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {\n o.__proto__ = p;\n\n return o;\n };\n\n return _set_prototype_of(o, p);\n}\nexport { _set_prototype_of as _ };\n","import { _ as _set_prototype_of } from \"./_set_prototype_of.js\";\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });\n\n if (superClass) _set_prototype_of(subClass, superClass);\n}\nexport { _inherits as _ };\n","function _is_native_reflect_construct() {\n // Since Reflect.construct can't be properly polyfilled, some\n // implementations (e.g. core-js@2) don't set the correct internal slots.\n // Those polyfills don't allow us to subclass built-ins, so we need to\n // use our fallback implementation.\n try {\n // If the internal slots aren't set, this throws an error similar to\n // TypeError: this is not a Boolean object.\n var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));\n } catch (_) {}\n return (_is_native_reflect_construct = function() {\n return !!result;\n })();\n}\n\nexport { _is_native_reflect_construct as _ };\n","import { _ as _is_native_reflect_construct } from \"./_is_native_reflect_construct.js\";\nimport { _ as _set_prototype_of } from \"./_set_prototype_of.js\";\nfunction _construct(Parent, args, Class) {\n if (_is_native_reflect_construct()) _construct = Reflect.construct;\n else {\n _construct = function construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n\n if (Class) _set_prototype_of(instance, Class.prototype);\n\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\nexport { _construct as _ };\n","function _get_prototype_of(o) {\n _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n\n return _get_prototype_of(o);\n}\nexport { _get_prototype_of as _ };\n","function _is_native_function(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\nexport { _is_native_function as _ };\n","import { _ as _construct } from \"./_construct.js\";\nimport { _ as _get_prototype_of } from \"./_get_prototype_of.js\";\nimport { _ as _is_native_function } from \"./_is_native_function.js\";\nimport { _ as _set_prototype_of } from \"./_set_prototype_of.js\";\n\nfunction _wrap_native_super(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrap_native_super = function(Class) {\n if (Class === null || !_is_native_function(Class)) return Class;\n if (typeof Class !== \"function\") throw new TypeError(\"Super expression must either be null or a function\");\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _get_prototype_of(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } });\n\n return _set_prototype_of(Wrapper, Class);\n };\n\n return _wrap_native_super(Class);\n}\nexport { _wrap_native_super as _ };\n","import { Plugin } from '@galacean/effects';\n\n/**\n * DOM Content 插件 Loader\n * 当前为空壳实现,组件在运行时由开发手动挂载,无需 JSON 数据解析\n */\nexport class DomContentLoader extends Plugin {\n override name = 'dom-content';\n}\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) resolve(value);\n else Promise.resolve(value).then(_next, _throw);\n}\nfunction _async_to_generator(fn) {\n return function() {\n var self = this, args = arguments;\n\n return new Promise(function(resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\nexport { _async_to_generator as _ };\n","function _array_like_to_array(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\nexport { _array_like_to_array as _ };\n","import { _ as _array_like_to_array } from \"./_array_like_to_array.js\";\n\nfunction _unsupported_iterable_to_array(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _array_like_to_array(o, minLen);\n\n var n = Object.prototype.toString.call(o).slice(8, -1);\n\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);\n}\nexport { _unsupported_iterable_to_array as _ };\n","import { _ as _unsupported_iterable_to_array } from \"./_unsupported_iterable_to_array.js\";\n\nfunction _create_for_of_iterator_helper_loose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (it) return (it = it.call(o)).next.bind(it);\n // Fallback for engines without symbol support\n if (Array.isArray(o) || (it = _unsupported_iterable_to_array(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n\n var i = 0;\n\n return function() {\n if (i >= o.length) return { done: true };\n\n return { done: false, value: o[i++] };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _create_for_of_iterator_helper_loose as _ };\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","function _extends() {\n _extends = Object.assign || function assign(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\nexport { _extends as _ };\n","/** DOM → Texture 转换工具,通过 SVG foreignObject 将 HTML/CSS 渲染为 Image */\nimport { logger, loadImage, loadBlob } from '@galacean/effects';\n\nexport interface RenderOptions {\n /** 自动内联 @font-face 外部字体,默认 true */\n inlineFonts?: boolean,\n /** 自动内联外部图片/资源 URL,默认 true */\n inlineImages?: boolean,\n /** 自动从宿主文档提取 CSS url(#id) 引用的 SVG 定义,默认 true */\n extractDefs?: boolean,\n}\n\nconst DEFAULT_RENDER_OPTIONS: Required<RenderOptions> = {\n inlineFonts: true,\n inlineImages: true,\n extractDefs: true,\n};\n\nconst SVG_DEF_TAGS = new Set(['filter', 'clippath', 'mask', 'lineargradient', 'radialgradient', 'pattern', 'marker']);\nconst IMG_TAG_NAMES = new Set(['img']);\nconst MEDIA_TAG_NAMES = new Set(['video', 'source', 'input', 'audio']);\nconst CSS_URL_REGEX = /url\\(\\s*(?:\"([^\"]+)\"|'([^']+)'|([^\\s)\"']+))\\s*\\)/gi;\n\n/**\n * 安全提取 HTML 中指定标签名的指定属性值,使用字符级扫描避免 ReDoS。\n * 仅扫描 `<tagName` 后的属性区域,不依赖回溯正则。\n * tagNames 为 null 时匹配任意标签。\n */\nfunction extractTagAttributes (\n html: string,\n tagNames: Set<string> | null,\n attrNames: string[],\n out: Set<string>,\n): void {\n let i = 0;\n const len = html.length;\n\n while (i < len) {\n const lt = html.indexOf('<', i);\n\n if (lt === -1) { break; }\n const next = html.charCodeAt(lt + 1);\n const isLetter = (next >= 65 && next <= 90) || (next >= 97 && next <= 122);\n\n if (!isLetter) { i = lt + 1; continue; }\n\n let nameEnd = lt + 1;\n\n while (nameEnd < len) {\n const c = html.charCodeAt(nameEnd);\n\n if (c === 32 || c === 9 || c === 10 || c === 13 || c === 47 || c === 62) { break; }\n nameEnd++;\n }\n const tagName = html.slice(lt + 1, nameEnd).toLowerCase();\n\n if (tagNames !== null && !tagNames.has(tagName)) { i = nameEnd; continue; }\n\n // 找到本标签的结束 '>',在引号内的 '>' 不算,避免 style=\"background:url(>)\" 这类干扰\n const tagLimit = Math.min(len, nameEnd + 16000);\n let tagEnd = -1;\n let inDq = false;\n let inSq = false;\n\n for (let p = nameEnd; p < tagLimit; p++) {\n const c = html.charCodeAt(p);\n\n if (c === 34 && !inSq) { inDq = !inDq; } else if (c === 39 && !inDq) { inSq = !inSq; } else if (c === 62 && !inDq && !inSq) {\n tagEnd = p;\n\n break;\n }\n }\n if (tagEnd === -1) { i = nameEnd; continue; }\n\n const attrSection = html.slice(nameEnd, tagEnd);\n\n for (const attrName of attrNames) {\n extractAttrValueFromSection(attrSection, attrName, out);\n }\n\n i = tagEnd + 1;\n }\n}\n\n/**\n * 字符级扫描提取所有 <style>...</style> 块的 textContent。\n * 完全不使用回溯正则,最坏线性时间。\n */\nfunction extractStyleBlocks (html: string, out: string[]): void {\n const lower = html.toLowerCase();\n let i = 0;\n const len = html.length;\n\n while (i < len) {\n const start = lower.indexOf('<style', i);\n\n if (start === -1) { break; }\n const after = lower.charCodeAt(start + 6);\n const isStyleTag = after === 32 || after === 9 || after === 10 || after === 13 || after === 62 || after === 47;\n\n if (!isStyleTag) { i = start + 6; continue; }\n\n // 跳过开标签到 '>' 结束\n const openEnd = lower.indexOf('>', start + 6);\n\n if (openEnd === -1) { break; }\n const contentStart = openEnd + 1;\n const closeStart = lower.indexOf('</style', contentStart);\n\n if (closeStart === -1) { break; }\n out.push(html.slice(contentStart, closeStart));\n const closeEnd = lower.indexOf('>', closeStart);\n\n if (closeEnd === -1) { break; }\n i = closeEnd + 1;\n }\n}\n\n/** 从单个标签的属性区域提取指定属性值 */\nfunction extractAttrValueFromSection (section: string, attrName: string, out: Set<string>): void {\n const lower = section.toLowerCase();\n const target = attrName.toLowerCase();\n let pos = 0;\n\n while (pos < lower.length) {\n const idx = lower.indexOf(target, pos);\n\n if (idx === -1) { return; }\n const prevChar = idx === 0 ? 32 : lower.charCodeAt(idx - 1);\n const isBoundary = prevChar === 32 || prevChar === 9 || prevChar === 10 || prevChar === 13;\n\n if (!isBoundary) { pos = idx + target.length; continue; }\n\n let p = idx + target.length;\n\n while (p < section.length && /\\s/.test(section[p])) { p++; }\n if (section[p] !== '=') { pos = idx + target.length; continue; }\n p++;\n while (p < section.length && /\\s/.test(section[p])) { p++; }\n\n let value = '';\n const quote = section[p];\n\n if (quote === '\"' || quote === '\\'') {\n const end = section.indexOf(quote, p + 1);\n\n if (end === -1) { return; }\n value = section.slice(p + 1, end);\n } else {\n let end = p;\n\n while (end < section.length && !/[\\s>]/.test(section[end])) { end++; }\n value = section.slice(p, end);\n }\n\n if (value) { out.add(value); }\n\n return;\n }\n}\n\n/** 安全提取 @font-face 块,避免 ReDoS 正则回溯问题 */\nfunction extractFontFaces (html: string): string[] {\n const faces: string[] = [];\n const regex = /@font-face\\s*\\{/gi;\n let match;\n\n while ((match = regex.exec(html)) !== null) {\n const start = match.index + match[0].length;\n // 从匹配位置往后找匹配的 },最多检查 8000 字符\n let braceCount = 1;\n let end = start;\n\n for (; end < html.length && end < start + 8000; end++) {\n if (html[end] === '{') { braceCount++; } else if (html[end] === '}') {\n braceCount--;\n if (braceCount === 0) { break; }\n }\n }\n faces.push(html.slice(match.index, end + 1));\n // 继续搜索时需要将 lastIndex 设置到 end 之后\n regex.lastIndex = end + 1;\n }\n\n return faces;\n}\nconst FONT_URL_REGEX = /url\\(\\s*(?:\"([^\"]+)\"|'([^']+)'|([^\\s)\"']+))\\s*\\)/gi;\nconst CSS_SVG_REF_REGEX = /url\\(\\s*(?:\"|')?#([a-zA-Z][\\w.-]*)(?:\"|')?\\s*\\)/g;\nconst isInlineUrl = (url: string) => url.startsWith('data:') || url.startsWith('blob:');\n\n/** 安全移除 HTML 中所有内联 <svg>...</svg> 块,使用字符级扫描避免 ReDoS */\nfunction stripInlineSVG (html: string): string {\n let result = '';\n let i = 0;\n const len = html.length;\n const lowerHtml = html.toLowerCase();\n\n while (i < len) {\n const start = lowerHtml.indexOf('<svg', i);\n\n if (start === -1) {\n result += html.slice(i);\n\n break;\n }\n const after = lowerHtml.charCodeAt(start + 4);\n const isSvgTag = after === 32 || after === 9 || after === 10 || after === 13 || after === 62 || after === 47;\n\n if (!isSvgTag) {\n result += html.slice(i, start + 4);\n i = start + 4;\n continue;\n }\n\n result += html.slice(i, start);\n const closeIdx = lowerHtml.indexOf('</svg', start + 4);\n\n if (closeIdx === -1) { break; }\n const gt = lowerHtml.indexOf('>', closeIdx);\n\n if (gt === -1) { break; }\n i = gt + 1;\n }\n\n return result;\n}\n\n/** 将 HTML 渲染为 Image 对象,默认自动执行内联字体/图片/提取 SVG 定义 */\nexport async function renderDOMToImage (\n html: string,\n width: number,\n height: number,\n scale = 1,\n options?: RenderOptions,\n): Promise<HTMLImageElement> {\n if (!Number.isFinite(width) || !Number.isFinite(height) || !Number.isFinite(scale)\n || width <= 0 || height <= 0 || scale < 0) {\n throw new Error('renderDOMToImage: width and height must be positive, scale must be non-negative.');\n }\n\n // scale 为 0 时返回空结果,与 width/height=0 行为保持一致\n if (scale === 0) {\n logger.warn('renderDOMToImage: scale is 0, skipping render.');\n\n return loadImage('data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7');\n }\n\n const opts = { ...DEFAULT_RENDER_OPTIONS, ...options };\n\n // 先清理危险标记,再内联资源,避免从不安全标记中发现/获取 URL\n let processedHtml = sanitizeSVGContent(html);\n\n if (opts.inlineFonts) { processedHtml = await inlineFontSources(processedHtml); }\n if (opts.inlineImages) { processedHtml = await inlineImageSources(processedHtml); }\n\n const svgDefs = opts.extractDefs ? extractSVGDefs(processedHtml) : '';\n const svgWidth = width * scale;\n const svgHeight = height * scale;\n\n // 将 HTML 转为合规 XHTML,避免未闭合的 void 标签和未转义实体导致 SVG/XML 解析失败\n const xhtmlSafeHtml = convertToXHTML(injectSVGNamespace(processedHtml));\n const defsBlock = svgDefs ? `<defs>${svgDefs}</defs>` : '';\n const svg = (\n `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${svgWidth}\" height=\"${svgHeight}\">` +\n defsBlock +\n `<foreignObject width=\"${width}\" height=\"${height}\" transform=\"scale(${scale})\">` +\n xhtmlSafeHtml +\n '</foreignObject></svg>'\n );\n\n return loadImage(`data:image/svg+xml;charset=utf-8,${encodeURIComponent(svg)}`);\n}\n\n/** 危险标签名集合(小写):将这些标签的 < > 转义为 &lt; &gt;,保留内容防止布局错位 */\nconst DANGEROUS_TAG_NAMES = new Set([\n 'foreignobject', 'script', 'iframe', 'object', 'embed',\n 'link', 'base', 'meta', 'template', 'noscript',\n]);\n\n/** 需要进行 URL 协议安全检查的属性名(小写) */\nconst URL_ATTR_NAMES = new Set(['href', 'src', 'action', 'formaction']);\n\n/** 不允许的协议列表 */\nconst DISALLOWED_PROTOCOLS = ['javascript', 'vbscript'];\n\n/** data: URL 中允许的安全 MIME 类型前缀 */\nconst SAFE_DATA_PREFIXES = ['data:image/', 'data:font/', 'data:application/font', 'data:application/x-font'];\n\n/**\n * 规范化 URL 属性值:解码 HTML 实体和百分号编码,\n * 移除控制字符和空白,转小写后检查是否包含危险协议\n */\nfunction normalizeUrlAttr (value: string): string {\n let normalized = value;\n\n // 解码 HTML 实体(数字和命名)\n normalized = normalized.replace(/&#x([0-9a-fA-F]+);?/g, (_, hex) => String.fromCharCode(parseInt(hex, 16)));\n normalized = normalized.replace(/&#(\\d+);?/g, (_, dec) => String.fromCharCode(parseInt(dec, 10)));\n normalized = normalized.replace(/&(amp|lt|gt|quot|apos);/gi, (match, name) => {\n const map: Record<string, string> = { amp: '&', lt: '<', gt: '>', quot: '\"', apos: '\\'' };\n\n return map[name.toLowerCase()] ?? match;\n });\n\n // 解码百分号编码\n try { normalized = decodeURIComponent(normalized); } catch { /* 忽略无效编码 */ }\n\n // 移除控制字符(U+0000-U+001F, U+007F)和空白\n // eslint-disable-next-line no-control-regex\n normalized = normalized.replace(/[\\u0000-\\u001f\\u007f\\s]+/g, '');\n\n // 转小写\n normalized = normalized.toLowerCase();\n\n // 去除前导非字母字符(如 / 或 \\)\n normalized = normalized.replace(/^[^a-z]+/, '');\n\n return normalized;\n}\n\n/** 检查规范化后的 URL 是否使用了危险协议 */\nfunction isDangerousUrl (value: string): boolean {\n const normalized = normalizeUrlAttr(value);\n\n // 检查 javascript:/vbscript: 等明确危险协议\n if (DISALLOWED_PROTOCOLS.some(proto => normalized.startsWith(`${proto}:`))) {\n return true;\n }\n\n // 检查 data: URL —— 仅允许安全的 MIME 类型(image/font),其余视为危险\n if (normalized.startsWith('data:')) {\n return !SAFE_DATA_PREFIXES.some(prefix => normalized.startsWith(prefix));\n }\n\n return false;\n}\n\n/**\n * 清理 HTML:转义危险标签,移除事件处理器和危险协议 URL 属性。\n * 使用字符级扫描代替回溯正则,避免 ReDoS 漏洞。\n */\nexport function sanitizeSVGContent (html: string): string {\n return scanAndSanitize(html);\n}\n\n/**\n * 单遍字符级扫描:\n * - 识别危险标签(DANGEROUS_TAG_NAMES),将其 < > 转义为 &lt; &gt;\n * - 在普通标签的属性区域内:移除 on* 事件处理器属性,移除值为危险 URL 的 href/src/action/formaction 属性\n */\nfunction scanAndSanitize (html: string): string {\n let out = '';\n let i = 0;\n const len = html.length;\n\n while (i < len) {\n const ch = html.charCodeAt(i);\n\n if (ch !== 60 /* < */) {\n out += html[i++];\n continue;\n }\n\n const next = html.charCodeAt(i + 1);\n const isLetter = (next >= 65 && next <= 90) || (next >= 97 && next <= 122);\n const nextNext = html.charCodeAt(i + 2);\n const isSlashLetter = next === 47 /* / */\n && ((nextNext >= 65 && nextNext <= 90) || (nextNext >= 97 && nextNext <= 122));\n\n if (!isLetter && !isSlashLetter) {\n out += html[i++];\n continue;\n }\n\n const isClose = isSlashLetter;\n const nameStart = isClose ? i + 2 : i + 1;\n let nameEnd = nameStart;\n\n while (nameEnd < len) {\n const c = html.charCodeAt(nameEnd);\n\n if (c === 32 || c === 9 || c === 10 || c === 13 || c === 47 || c === 62) { break; }\n nameEnd++;\n }\n const tagName = html.slice(nameStart, nameEnd).toLowerCase();\n\n // 找到标签的结束 '>',识别引号区域避免误判 '>'\n const tagLimit = Math.min(len, nameEnd + 16000);\n let tagEnd = -1;\n let inDoubleQuote = false;\n let inSingleQuote = false;\n\n for (let p = nameEnd; p < tagLimit; p++) {\n const c = html.charCodeAt(p);\n\n if (c === 34 /* \" */ && !inSingleQuote) { inDoubleQuote = !inDoubleQuote; } else if (c === 39 /* ' */ && !inDoubleQuote) { inSingleQuote = !inSingleQuote; } else if (c === 62 /* > */ && !inDoubleQuote && !inSingleQuote) {\n tagEnd = p;\n\n break;\n }\n }\n if (tagEnd === -1) {\n out += html[i++];\n continue;\n }\n\n if (DANGEROUS_TAG_NAMES.has(tagName)) {\n out += '&lt;' + html.slice(i + 1, tagEnd) + '&gt;';\n i = tagEnd + 1;\n continue;\n }\n\n const tagOpen = html.slice(i, nameEnd);\n const attrSection = html.slice(nameEnd, tagEnd);\n const cleanedAttrs = sanitizeAttrSection(attrSection);\n\n out += tagOpen + cleanedAttrs + '>';\n i = tagEnd + 1;\n }\n\n return out;\n}\n\n/**\n * 清理标签的属性区域:\n * - 移除 on* 事件处理器属性\n * - 移除值为危险 URL 的 href/src/action/formaction 属性\n */\nfunction sanitizeAttrSection (section: string): string {\n let out = '';\n let i = 0;\n const len = section.length;\n\n while (i < len) {\n const c = section.charCodeAt(i);\n\n if (c === 32 || c === 9 || c === 10 || c === 13 || c === 47) {\n out += section[i++];\n continue;\n }\n\n const nameStart = i;\n\n while (i < len) {\n const cc = section.charCodeAt(i);\n\n if (cc === 61 /* = */ || cc === 32 || cc === 9 || cc === 10 || cc === 13 || cc === 47 || cc === 62) { break; }\n i++;\n }\n if (i === nameStart) {\n out += section[i++];\n continue;\n }\n const attrName = section.slice(nameStart, i);\n const lowerName = attrName.toLowerCase();\n\n let p = i;\n\n while (p < len && /\\s/.test(section[p])) { p++; }\n\n let attrEnd = p;\n let value: string | null = null;\n let hasValue = false;\n\n if (section[p] === '=') {\n hasValue = true;\n p++;\n while (p < len && /\\s/.test(section[p])) { p++; }\n const q = section[p];\n\n if (q === '\"' || q === '\\'') {\n const end = section.indexOf(q, p + 1);\n\n if (end === -1) {\n out += section.slice(nameStart);\n\n return out;\n }\n value = section.slice(p + 1, end);\n attrEnd = end + 1;\n } else {\n let end = p;\n\n while (end < len && !/[\\s>]/.test(section[end])) { end++; }\n value = section.slice(p, end);\n attrEnd = end;\n }\n }\n\n const isEventHandler = lowerName.length > 2\n && lowerName.charCodeAt(0) === 111 /* o */\n && lowerName.charCodeAt(1) === 110 /* n */;\n const isDangerousUrlAttr = hasValue && value !== null\n && URL_ATTR_NAMES.has(lowerName) && isDangerousUrl(value);\n\n if (isEventHandler || isDangerousUrlAttr) {\n i = attrEnd;\n continue;\n }\n\n out += section.slice(nameStart, attrEnd);\n i = attrEnd;\n }\n\n return out;\n}\n\n/** 为缺少 xmlns 的内嵌 <svg> 自动注入命名空间,使用字符级扫描,线性时间且无回溯 */\nfunction injectSVGNamespace (html: string): string {\n let out = '';\n let i = 0;\n const len = html.length;\n const lower = html.toLowerCase();\n\n while (i < len) {\n const start = lower.indexOf('<svg', i);\n\n if (start === -1) {\n out += html.slice(i);\n\n break;\n }\n const after = lower.charCodeAt(start + 4);\n const isSvgTag = after === 32 || after === 9 || after === 10 || after === 13 || after === 62 || after === 47;\n\n if (!isSvgTag) {\n out += html.slice(i, start + 4);\n i = start + 4;\n continue;\n }\n\n const tagEnd = lower.indexOf('>', start + 4);\n\n if (tagEnd === -1) {\n out += html.slice(i);\n\n break;\n }\n const tagSlice = lower.slice(start, tagEnd);\n // 严格判断是否已有 xmlns 属性(前面有空白边界,后接 = 或空白)\n const hasXmlns = /[\\s][\\s]*xmlns\\s*=/i.test(' ' + tagSlice);\n\n out += html.slice(i, start + 4);\n if (!hasXmlns) { out += ' xmlns=\"http://www.w3.org/2000/svg\"'; }\n out += html.slice(start + 4, tagEnd + 1);\n i = tagEnd + 1;\n }\n\n return out;\n}\n\n/**\n * 将 HTML 字符串转为合规 XHTML,确保 void 标签被正确闭合、实体被转义,\n * 使其可安全嵌入 SVG foreignObject(image/svg+xml 要求严格 XML 格式)\n */\nfunction convertToXHTML (html: string): string {\n if (typeof document === 'undefined') {\n // 非浏览器环境回退:手动闭合常见 void 标签\n return `<div xmlns=\"http://www.w3.org/1999/xhtml\">${html}</div>`;\n }\n\n const doc = document.implementation.createHTMLDocument('');\n const container = doc.createElement('div');\n\n container.innerHTML = html;\n container.setAttribute('xmlns', 'http://www.w3.org/1999/xhtml');\n\n return new XMLSerializer().serializeToString(container);\n}\n\n/**\n * 从 HTML 中提取 CSS 上下文的 URL:仅扫描 <style> 元素的 textContent 和元素的 style 属性,\n * 避免从普通文本/注释中误提取 URL。在无 DOMParser 环境下回退到正则但限制扫描范围。\n */\nfunction collectCSSUrls (html: string, urlSet: Set<string>): void {\n const cssTexts: string[] = [];\n\n if (typeof DOMParser !== 'undefined') {\n try {\n // 直接解析输入 HTML(inert document),避免通过模板拼接构造新 HTML 文档字符串\n const doc = new DOMParser().parseFromString(html, 'text/html');\n\n doc.querySelectorAll('style').forEach(styleEl => {\n if (styleEl.textContent) { cssTexts.push(styleEl.textContent); }\n });\n doc.querySelectorAll('[style]').forEach(el => {\n const styleAttr = el.getAttribute('style');\n\n if (styleAttr) { cssTexts.push(styleAttr); }\n });\n } catch {\n /* 解析失败则回退到下方正则扫描 */\n }\n }\n\n // 回退路径:使用字符级扫描提取 <style>...</style> 块和 style=\"...\" 属性,避免 ReDoS\n if (cssTexts.length === 0) {\n extractStyleBlocks(html, cssTexts);\n const styleAttrSet = new Set<string>();\n\n extractTagAttributes(html, null, ['style'], styleAttrSet);\n for (const v of styleAttrSet) { cssTexts.push(v); }\n }\n\n for (const text of cssTexts) {\n CSS_URL_REGEX.lastIndex = 0;\n let match: RegExpExecArray | null;\n\n while ((match = CSS_URL_REGEX.exec(text)) !== null) {\n const url = match[1] ?? match[2] ?? match[3];\n\n if (url && !isInlineUrl(url) && !url.startsWith('#')) { urlSet.add(url); }\n }\n }\n}\n\n/**\n * 将 HTML 中外部资源 URL 转为 base64 内联,失败时保留原 URL\n */\nexport async function inlineImageSources (html: string): Promise<string> {\n const rawUrlSet = new Set<string>();\n\n // 使用安全的字符级解析提取 src/poster 属性,避免 ReDoS\n extractTagAttributes(html, IMG_TAG_NAMES, ['src'], rawUrlSet);\n extractTagAttributes(html, MEDIA_TAG_NAMES, ['src', 'poster'], rawUrlSet);\n\n const urlSet = new Set<string>();\n\n for (const url of rawUrlSet) {\n if (url && !isInlineUrl(url)) { urlSet.add(url); }\n }\n\n // 仅扫描真正的 CSS 上下文(<style> 内容和 style 属性),避免从文本/注释中误提取 URL\n collectCSSUrls(html, urlSet);\n\n if (urlSet.size === 0) { return html; }\n\n const urlToBase64 = new Map<string, string>();\n const urls = [...urlSet].slice(0, MAX_URLS);\n\n if (urlSet.size > MAX_URLS) {\n logger.warn(`inlineImageSources: URL count (${urlSet.size}) exceeds limit (${MAX_URLS}), only processing first ${MAX_URLS}.`);\n }\n\n await promisePool(urls.map(url => async () => {\n try { urlToBase64.set(url, await fetchAsBase64(url)); } catch (e) { logger.warn(`inlineImageSources: Failed to fetch \"${url}\".`, e); }\n }), MAX_FETCH_CONCURRENCY);\n\n return replaceUrls(html, urlToBase64);\n}\n\n/**\n * 将 @font-face 中的外部字体 URL 转为 base64 内联\n */\nexport async function inlineFontSources (html: string): Promise<string> {\n const urlSet = new Set<string>();\n\n // 使用安全的逐字符解析代替正则\n const fontFaces = extractFontFaces(html);\n\n for (const face of fontFaces) {\n FONT_URL_REGEX.lastIndex = 0;\n let urlMatch: RegExpExecArray | null;\n\n while ((urlMatch = FONT_URL_REGEX.exec(face)) !== null) {\n const url = urlMatch[1] ?? urlMatch[2] ?? urlMatch[3];\n\n if (url && !isInlineUrl(url)) { urlSet.add(url); }\n }\n }\n\n if (urlSet.size === 0) { return html; }\n\n const urlToBase64 = new Map<string, string>();\n const urls = [...urlSet].slice(0, MAX_URLS);\n\n if (urlSet.size > MAX_URLS) {\n logger.warn(`inlineFontSources: URL count (${urlSet.size}) exceeds limit (${MAX_URLS}), only processing first ${MAX_URLS}.`);\n }\n\n await promisePool(urls.map(url => async () => {\n try { urlToBase64.set(url, await fetchAsBase64(url)); } catch (e) { logger.warn(`inlineFontSources: Failed to fetch font \"${url}\".`, e); }\n }), MAX_FETCH_CONCURRENCY);\n\n return replaceUrls(html, urlToBase64);\n}\n\n/**\n * 替换 URL 为 base64:\n * - 标签属性(src/poster)使用字符级扫描定位后做精确字符串替换,避免回溯正则 ReDoS\n * - CSS url() 替换使用线性时间的简单正则(无嵌套量词、无回溯陷阱)\n * - 全程区分大小写匹配 URL,确保通过 Map 精准查找\n */\nfunction replaceUrls (html: string, urlToBase64: Map<string, string>): string {\n // 1) 替换 <img>/<video>/<source>/<input>/<audio> 的 src/poster 属性\n const html1 = replaceTagAttrUrls(\n html,\n new Set(['img', 'video', 'source', 'input', 'audio']),\n ['src', 'poster'],\n urlToBase64,\n );\n\n // 2) 替换 CSS url(\"...\") / url('...'),正则不含嵌套量词,线性时间\n let result = html1.replace(\n /url\\(\\s*([\"'])([^\"'\\n\\r)]*)\\1\\s*\\)/g,\n (match, quote, url) => {\n const base64 = urlToBase64.get(url);\n\n return base64 ? `url(${quote}${base64}${quote})` : match;\n },\n );\n\n // 3) 替换 CSS url(...) 不带引号的 URL,线性时间\n result = result.replace(\n /url\\(\\s*([^\\s)\"'\\n\\r]+)\\s*\\)/g,\n (match, url) => {\n const base64 = urlToBase64.get(url);\n\n return base64 ? `url(${base64})` : match;\n },\n );\n\n return result;\n}\n\n/**\n * 字符级扫描定位指定标签的指定属性,并将属性值替换为 Map 中的 base64。\n * 完全不使用回溯正则,最坏情况是线性时间。\n */\nfunction replaceTagAttrUrls (\n html: string,\n tagNames: Set<string>,\n attrNames: string[],\n urlToBase64: Map<string, string>,\n): string {\n if (urlToBase64.size === 0) { return html; }\n const targetAttrs = attrNames.map(a => a.toLowerCase());\n let out = '';\n let i = 0;\n const len = html.length;\n\n while (i < len) {\n const lt = html.indexOf('<', i);\n\n if (lt === -1) {\n out += html.slice(i);\n\n break;\n }\n const next = html.charCodeAt(lt + 1);\n const isLetter = (next >= 65 && next <= 90) || (next >= 97 && next <= 122);\n\n if (!isLetter) {\n out += html.slice(i, lt + 1);\n i = lt + 1;\n continue;\n }\n\n let nameEnd = lt + 1;\n\n while (nameEnd < len) {\n const c = html.charCodeAt(nameEnd);\n\n if (c === 32 || c === 9 || c === 10 || c === 13 || c === 47 || c === 62) { break; }\n nameEnd++;\n }\n const tagName = html.slice(lt + 1, nameEnd).toLowerCase();\n\n if (!tagNames.has(tagName)) {\n out += html.slice(i, nameEnd);\n i = nameEnd;\n continue;\n }\n\n // 找到本标签的结束 '>',在引号内的 '>' 不算\n const tagLimit = Math.min(len, nameEnd + 16000);\n let tagEnd = -1;\n let inDq = false;\n let inSq = false;\n\n for (let p = nameEnd; p < tagLimit; p++) {\n const c = html.charCodeAt(p);\n\n if (c === 34 && !inSq) { inDq = !inDq; } else if (c === 39 && !inDq) { inSq = !inSq; } else if (c === 62 && !inDq && !inSq) {\n tagEnd = p;\n\n break;\n }\n }\n if (tagEnd === -1) {\n out += html.slice(i, lt + 1);\n i = lt + 1;\n continue;\n }\n\n // 在 [nameEnd, tagEnd) 区间内,逐属性替换目标 src/poster\n out += html.slice(i, nameEnd);\n out += replaceAttrsInSection(html.slice(nameEnd, tagEnd), targetAttrs, urlToBase64);\n out += '>';\n i = tagEnd + 1;\n }\n\n return out;\n}\n\n/** 在单个标签的属性区域内,将匹配 targetAttrs 的属性值替换为 Map 中的 base64 */\nfunction replaceAttrsInSection (\n section: string,\n targetAttrs: string[],\n urlToBase64: Map<string, string>,\n): string {\n let out = '';\n let i = 0;\n const len = section.length;\n\n while (i < len) {\n const c = section.charCodeAt(i);\n\n if (c === 32 || c === 9 || c === 10 || c === 13 || c === 47) {\n out += section[i++];\n continue;\n }\n\n const nameStart = i;\n\n while (i < len) {\n const cc = section.charCodeAt(i);\n\n if (cc === 61 /* = */ || cc === 32 || cc === 9 || cc === 10 || cc === 13 || cc === 47 || cc === 62) { break; }\n i++;\n }\n if (i === nameStart) {\n out += section[i++];\n continue;\n }\n const lowerName = section.slice(nameStart, i).toLowerCase();\n let p = i;\n\n while (p < len && /\\s/.test(section[p])) { p++; }\n\n if (section[p] !== '=') {\n out += section.slice(nameStart, p);\n i = p;\n continue;\n }\n p++;\n while (p < len && /\\s/.test(section[p])) { p++; }\n\n let valueStart = p;\n let valueEnd = p;\n let attrEnd = p;\n let quote: string | null = null;\n\n if (section[p] === '\"' || section[p] === '\\'') {\n quote = section[p];\n const end = section.indexOf(quote, p + 1);\n\n if (end === -1) {\n out += section.slice(nameStart);\n\n return out;\n }\n valueStart = p + 1;\n valueEnd = end;\n attrEnd = end + 1;\n } else {\n let end = p;\n\n while (end < len && !/[\\s>]/.test(section[end])) { end++; }\n valueStart = p;\n valueEnd = end;\n attrEnd = end;\n }\n\n const value = section.slice(valueStart, valueEnd);\n\n if (targetAttrs.includes(lowerName)) {\n const base64 = urlToBase64.get(value);\n\n if (base64) {\n out += section.slice(nameStart, valueStart) + base64 + (quote ?? '') + section.slice(attrEnd, attrEnd);\n // 上一行末尾追加的 '' 是为了清晰;attrEnd 之后的内容由外层循环继续处理\n // 注意:当 quote 不为 null 时,前缀 section.slice(nameStart, valueStart) 已经包含开引号;\n // 我们追加 base64 + 闭合引号 即可。\n i = attrEnd;\n continue;\n }\n }\n\n out += section.slice(nameStart, attrEnd);\n i = attrEnd;\n }\n\n return out;\n}\n\n/**\n * 从宿主文档提取 CSS url(#id) 引用的 SVG 定义,支持 filter/clipPath/mask/gradient/pattern/marker\n */\nexport function extractSVGDefs (html: string): string {\n if (typeof document === 'undefined') { return ''; }\n\n // 使用安全的字符级扫描移除内联 <svg> 块,避免 ReDoS\n const htmlWithoutInlineSVG = stripInlineSVG(html);\n const ids = new Set<string>();\n\n CSS_SVG_REF_REGEX.lastIndex = 0;\n let match: RegExpExecArray | null;\n\n while ((match = CSS_SVG_REF_REGEX.exec(htmlWithoutInlineSVG)) !== null) {\n ids.add(match[1]);\n }\n\n if (ids.size === 0) { return ''; }\n\n const serializer = new XMLSerializer();\n const parts: string[] = [];\n\n for (const id of ids) {\n const el = document.getElementById(id);\n\n if (!el) {\n logger.warn(`extractSVGDefs: #${id} not found.`);\n continue;\n }\n if (!SVG_DEF_TAGS.has(el.tagName.toLowerCase())) {\n logger.warn(`extractSVGDefs: #${id} is not a supported SVG def element.`);\n continue;\n }\n parts.push(serializer.serializeToString(el));\n }\n\n return parts.join('');\n}\n\nconst MAX_FETCH_CONCURRENCY = 6; // 最大并发获取数\nconst MAX_RESOURCE_BYTES = 10 * 1024 * 1024; // 单个资源最大 10MB\nconst MAX_URLS = 100; // 单次内联处理的最大 URL 数量\n\n/** 有界并发执行异步任务 */\nasync function promisePool<T> (tasks: (() => Promise<T>)[], concurrency: number): Promise<T[]> {\n const results: T[] = new Array(tasks.length);\n let index = 0;\n\n async function worker (): Promise<void> {\n while (index < tasks.length) {\n const i = index++;\n\n results[i] = await tasks[i]();\n }\n }\n\n const workers = Array.from({ length: Math.min(concurrency, tasks.length) }, () => worker());\n\n await Promise.all(workers);\n\n return results;\n}\n\nasync function fetchAsBase64 (url: string): Promise<string> {\n const blob = await loadBlob(url);\n\n if (blob.size > MAX_RESOURCE_BYTES) {\n throw new Error(`fetchAsBase64: Resource \"${url}\" exceeds max size (${MAX_RESOURCE_BYTES} bytes), actual: ${blob.size}.`);\n }\n\n return new Promise<string>((resolve, reject) => {\n const reader = new FileReader();\n\n reader.onloadend = () => { resolve(reader.result as string); };\n reader.onerror = () => { reject(new Error('FileReader failed.')); };\n reader.readAsDataURL(blob);\n });\n}\n","import type { Engine, Renderer } from '@galacean/effects';\nimport { MaskableGraphic, effectsClass, math, logger, Texture, glContext } from '@galacean/effects';\nimport { renderDOMToImage } from './dom-to-texture';\n\nconst DATA_TYPE = 'DomContentComponent';\nconst MAX_TEXTURE_SIZE = 2048;\n/** 单次 setContent 接受的 HTML 最大字符数,避免攻击者传入超大字符串造成 OOM/CPU 耗尽 */\nconst MAX_HTML_LENGTH = 1024 * 1024; // 1M 字符\n/** alpha 修复用的极小值,避免 canvas 完全透明像素被某些浏览器优化为 0 */\nconst ALPHA_FIX_VALUE = 1 / 255;\n\n/** DOM 内容组件:将 HTML/CSS 渲染为纹理,自动检测并覆盖同 item 上其他 MaskableGraphic 组件纹理 */\n@effectsClass(DATA_TYPE)\nexport class DomContentComponent extends MaskableGraphic {\n htmlContent = '';\n contentWidth = 300;\n contentHeight = 200;\n contentScale = 1;\n\n /** 本组件独占持有的离屏 canvas,用于将 HTML 渲染结果转为纹理数据,onDestroy 时一并释放。 */\n canvas: HTMLCanvasElement;\n context: CanvasRenderingContext2D | null;\n isDirty: boolean;\n\n private rendering = false;\n /** 异步任务取消标记:onDestroy 后置为 true,用于让 await 中的 updateTexture 回到同步段时立刻退出,避免泄漏纹理或写已释放的 material。 */\n private asyncCancelled = false;\n private targetComponent: MaskableGraphic | null = null;\n /** 内容版本号:每次 setContent 自增,用于丢弃过期的异步渲染结果,防止慢请求覆盖快请求。 */\n private renderVersion = 0;\n /** 由本组件创建的纹理集合,仅这些纹理可被 dispose */\n private ownedTextures = new Set<Texture>();\n /** 保存 target 组件的原始纹理,用于组件销毁时恢复 */\n private originalTargetTexture: Texture | null = null;\n\n constructor (engine: Engine) {\n super(engine);\n this.isDirty = false;\n // 自建独占 canvas:本组件的 updateTexture 是异步的,且无短期归还需求,\n // 不走 canvasPool 以免占用其全局复用槽位影响其他组件(如 TextComponent)。\n this.canvas = document.createElement('canvas');\n this.context = this.canvas.getContext('2d', { willReadFrequently: true });\n }\n\n setContent (html: string, width?: number, height?: number, scale?: number): void {\n if (typeof html !== 'string') {\n logger.warn('DomContentComponent.setContent: html must be a string, ignored.');\n\n return;\n }\n if (html.length > MAX_HTML_LENGTH) {\n logger.warn(`DomContentComponent.setContent: html length (${html.length}) exceeds limit (${MAX_HTML_LENGTH}), truncated.`);\n this.htmlContent = html.slice(0, MAX_HTML_LENGTH);\n } else {\n this.htmlContent = html;\n }\n if (width !== undefined) { this.contentWidth = Math.max(0, width); }\n if (height !== undefined) { this.contentHeight = Math.max(0, height); }\n if (scale !== undefined) { this.contentScale = Math.max(0, scale); }\n this.isDirty = true;\n this.renderVersion++;\n }\n\n override onAwake (): void {\n this.material.setColor('_Color', new math.Color(1, 1, 1, 1));\n if (this.item) {\n for (const comp of this.item.getComponents(MaskableGraphic)) {\n if (comp !== this) {\n this.targetComponent = comp;\n logger.info(`DomContentComponent: Bound to ${comp.constructor.name}, overriding texture.`);\n\n break;\n }\n }\n }\n }\n\n override onUpdate (dt: number): void {\n super.onUpdate(dt);\n if (this.isDirty && !this.rendering) {\n this.isDirty = false;\n this.updateTexture().catch(e => {\n logger.error('DomContentComponent: Unhandled error in updateTexture.', e);\n });\n }\n }\n\n override render (renderer: Renderer): void {\n if (this.targetComponent) { return; }\n super.render(renderer);\n }\n\n override onDestroy (): void {\n super.onDestroy();\n // 先取消异步任务,再做资源清理,避免 in-flight Promise resolve 后仍写入已释放的资源。\n this.asyncCancelled = true;\n this.disposeOwnTexture();\n\n // 恢复 target 组件的原始纹理\n if (this.targetComponent?.renderer && this.originalTargetTexture) {\n void this.targetComponent.setTexture(this.originalTargetTexture);\n }\n\n // 仅 dispose 由本组件创建的纹理\n for (const tex of this.ownedTextures) {\n tex.dispose();\n }\n this.ownedTextures.clear();\n this.originalTargetTexture = null;\n\n if (this.canvas) {\n // 缩到 1x1 立即释放后端 ImageBuffer 显存,无需等待 GC。\n this.canvas.width = 1;\n this.canvas.height = 1;\n }\n this.targetComponent = null;\n }\n\n /**\n * 释放当前 renderer 上挂载的纹理(白纹理是引擎共享资源,不应释放)。\n */\n private disposeOwnTexture (): void {\n const texture = this.renderer.texture;\n\n if (texture && texture !== this.engine.whiteTexture) {\n texture.dispose();\n }\n }\n\n /**\n * 将一张 image 绘制到内部 canvas,并据此创建纹理写入到本组件 renderer / material。\n *\n * @param width - 纹理宽度(像素)\n * @param height - 纹理高度(像素)\n * @param flipY - 是否翻转 Y 轴;为 false 时通过 canvas 变换预先翻转\n * @param drawCallback - 实际绘制回调,接收已重置变换并清空的 2D 上下文\n */\n private renderImageToTexture (\n width: number,\n height: number,\n flipY: boolean,\n drawCallback: (ctx: CanvasRenderingContext2D) => void,\n ): void {\n if (!this.context || !this.canvas) {\n return;\n }\n\n const context = this.context;\n\n context.save();\n this.canvas.width = width;\n this.canvas.height = height;\n context.setTransform(1, 0, 0, 1, 0, 0);\n\n if (!flipY) {\n context.translate(0, height);\n context.scale(1, -1);\n }\n\n context.clearRect(0, 0, width, height);\n // 设置 alpha 修复用填充色(不实际输出像素,避免完全透明被某些浏览器优化)\n context.fillStyle = `rgba(255, 255, 255, ${ALPHA_FIX_VALUE})`;\n\n drawCallback(context);\n\n context.restore();\n\n const imageData = context.getImageData(0, 0, width, height);\n const texture = Texture.createWithData(\n this.engine,\n {\n data: new Uint8Array(imageData.data),\n width: imageData.width,\n height: imageData.height,\n },\n {\n flipY,\n magFilter: glContext.LINEAR,\n minFilter: glContext.LINEAR,\n wrapS: glContext.CLAMP_TO_EDGE,\n wrapT: glContext.CLAMP_TO_EDGE,\n },\n );\n\n this.disposeOwnTexture();\n this.renderer.texture = texture;\n this.material.setTexture('_MainTex', texture);\n this.ownedTextures.add(texture);\n }\n\n private async updateTexture (): Promise<void> {\n const startVersion = this.renderVersion;\n const { htmlContent, contentWidth, contentHeight, contentScale } = this;\n\n if (!htmlContent || contentWidth <= 0 || contentHeight <= 0) { return; }\n\n if (contentScale <= 0) {\n logger.warn('DomContentComponent: contentScale must be positive, skipping render.');\n\n return;\n }\n\n const texWidth = Math.min(Math.round(contentWidth * contentScale), MAX_TEXTURE_SIZE);\n const texHeight = Math.min(Math.round(contentHeight * contentScale), MAX_TEXTURE_SIZE);\n\n // 计算调整后的 scale,确保 renderDOMToImage 生成的图片不超过 MAX_TEXTURE_SIZE\n const cappedScaleX = texWidth / contentWidth;\n const cappedScaleY = texHeight / contentHeight;\n const cappedScale = Math.min(cappedScaleX, cappedScaleY);\n\n this.rendering = true;\n try {\n const image = await renderDOMToImage(htmlContent, contentWidth, contentHeight, cappedScale);\n\n // 竞态防护:组件已销毁、或已有更新的 setContent 调用,则丢弃本次过期结果。\n if (this.asyncCancelled || startVersion !== this.renderVersion) { return; }\n\n if (this.targetComponent) {\n this.updateTargetTexture(image, texWidth, texHeight);\n } else {\n this.renderImageToTexture(texWidth, texHeight, true, ctx => {\n ctx.drawImage(image, 0, 0, texWidth, texHeight);\n });\n }\n } catch (e) {\n logger.error('DomContentComponent: Failed to render texture.', e);\n } finally {\n this.rendering = false;\n // 排空脏标记:渲染期间若有新的 setContent,触发再次更新;销毁后则不再启动。\n if (this.isDirty && !this.asyncCancelled) {\n const pending = this.isDirty;\n\n this.isDirty = false;\n if (pending) {\n this.updateTexture().catch(e => {\n logger.error('DomContentComponent: Unhandled error in updateTexture.', e);\n });\n }\n }\n }\n }\n\n private updateTargetTexture (image: HTMLImageElement, width: number, height: number): void {\n if (!this.canvas || !this.context || !this.targetComponent) { return; }\n\n const ctx = this.context;\n const target = this.targetComponent;\n\n // 检查 target 的 renderer 是否存在\n if (!target.renderer) {\n logger.warn('DomContentComponent: targetComponent.renderer is null, skipping texture update.');\n\n return;\n }\n\n // 保存 target 的原始纹理(仅首次)\n const currentTexture = target.renderer.texture;\n\n if (this.originalTargetTexture === null) {\n this.originalTargetTexture = currentTexture ?? null;\n }\n\n // 仅 dispose 由本组件创建的纹理,不触碰原始/共享纹理\n if (currentTexture && this.ownedTextures.has(currentTexture)) {\n currentTexture.dispose();\n this.ownedTextures.delete(currentTexture);\n }\n\n ctx.save();\n this.canvas.width = width;\n this.canvas.height = height;\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.clearRect(0, 0, width, height);\n ctx.drawImage(image, 0, 0, width, height);\n ctx.restore();\n\n const imageData = ctx.getImageData(0, 0, width, height);\n\n const texture = Texture.createWithData(\n this.engine,\n {\n data: new Uint8Array(imageData.data),\n width: imageData.width,\n height: imageData.height,\n },\n {\n flipY: true,\n magFilter: glContext.LINEAR,\n minFilter: glContext.LINEAR,\n wrapS: glContext.CLAMP_TO_EDGE,\n wrapT: glContext.CLAMP_TO_EDGE,\n },\n );\n\n // 将新创建的纹理标记为本组件所有\n this.ownedTextures.add(texture);\n void target.setTexture(texture);\n }\n}\n","import * as EFFECTS from '@galacean/effects';\nimport { logger, registerPlugin } from '@galacean/effects';\nimport { DomContentLoader } from './dom-content-loader';\n\nexport * from './dom-content-component';\nexport * from './dom-content-loader';\nexport * from './dom-to-texture';\n\nexport const version = __VERSION__;\n\nregisterPlugin('dom-content', DomContentLoader);\n\nlogger.info(`Plugin dom-content version: ${version}.`);\n\nif (version !== EFFECTS.version) {\n console.error(\n '注意:请统一 DomContent 插件与 Player 版本,不统一的版本混用会有不可预知的后果!',\n '\\nAttention: Please ensure the DomContent plugin is synchronized with the Player version. Mixing and matching incompatible versions may result in unpredictable consequences!',\n );\n}\n"],"names":["_set_prototype_of","o","p","Object","setPrototypeOf","__proto__","_inherits","subClass","superClass","TypeError","prototype","create","constructor","value","writable","configurable","_is_native_reflect_construct","result","Boolean","valueOf","call","Reflect","construct","_","_construct","Parent","args","Class","a","push","apply","Constructor","Function","bind","instance","arguments","_get_prototype_of","getPrototypeOf","_is_native_function","fn","toString","indexOf","_wrap_native_super","_cache","Map","undefined","has","get","set","Wrapper","enumerable","DomContentLoader","name","Plugin","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","error","done","Promise","then","_async_to_generator","self","err","_array_like_to_array","arr","len","length","i","arr2","Array","_unsupported_iterable_to_array","minLen","n","slice","from","test","_create_for_of_iterator_helper_loose","allowArrayLike","it","Symbol","iterator","next","isArray","__decorate","decorators","target","desc","c","r","getOwnPropertyDescriptor","d","decorate","defineProperty","__generator","thisArg","body","label","sent","t","trys","ops","f","y","g","Iterator","verb","v","step","op","pop","e","SuppressedError","suppressed","message","Error","_extends","assign","source","hasOwnProperty","DEFAULT_RENDER_OPTIONS","inlineFonts","inlineImages","extractDefs","SVG_DEF_TAGS","Set","IMG_TAG_NAMES","MEDIA_TAG_NAMES","CSS_URL_REGEX","extractTagAttributes","html","tagNames","attrNames","out","lt","charCodeAt","isLetter","nameEnd","tagName","toLowerCase","tagLimit","Math","min","tagEnd","inDq","inSq","attrSection","attrName","extractAttrValueFromSection","extractStyleBlocks","lower","start","after","isStyleTag","openEnd","contentStart","closeStart","closeEnd","section","pos","idx","prevChar","isBoundary","quote","end","add","extractFontFaces","faces","regex","match","exec","index","braceCount","lastIndex","FONT_URL_REGEX","CSS_SVG_REF_REGEX","isInlineUrl","url","startsWith","stripInlineSVG","lowerHtml","isSvgTag","closeIdx","gt","renderDOMToImage","width","height","scale","options","opts","processedHtml","svgDefs","svgWidth","svgHeight","xhtmlSafeHtml","defsBlock","svg","Number","isFinite","logger","warn","loadImage","sanitizeSVGContent","inlineFontSources","inlineImageSources","extractSVGDefs","convertToXHTML","injectSVGNamespace","encodeURIComponent","DANGEROUS_TAG_NAMES","URL_ATTR_NAMES","DISALLOWED_PROTOCOLS","SAFE_DATA_PREFIXES","normalizeUrlAttr","normalized","replace","hex","String","fromCharCode","parseInt","dec","map","amp","quot","apos","decodeURIComponent","isDangerousUrl","some","proto","prefix","scanAndSanitize","ch","nextNext","isSlashLetter","isClose","nameStart","inDoubleQuote","inSingleQuote","tagOpen","cleanedAttrs","sanitizeAttrSection","cc","lowerName","attrEnd","hasValue","q","isEventHandler","isDangerousUrlAttr","tagSlice","hasXmlns","document","doc","implementation","createHTMLDocument","container","createElement","innerHTML","setAttribute","XMLSerializer","serializeToString","collectCSSUrls","urlSet","cssTexts","DOMParser","parseFromString","querySelectorAll","forEach","styleEl","textContent","el","styleAttr","getAttribute","styleAttrSet","text","rawUrlSet","urlToBase64","urls","size","MAX_URLS","promisePool","fetchAsBase64","MAX_FETCH_CONCURRENCY","replaceUrls","fontFaces","face","urlMatch","html1","replaceTagAttrUrls","base64","targetAttrs","replaceAttrsInSection","valueStart","valueEnd","includes","htmlWithoutInlineSVG","ids","serializer","parts","id","getElementById","join","MAX_RESOURCE_BYTES","tasks","concurrency","results","workers","worker","all","blob","loadBlob","reader","FileReader","onloadend","onerror","readAsDataURL","DATA_TYPE","MAX_TEXTURE_SIZE","MAX_HTML_LENGTH","ALPHA_FIX_VALUE","DomContentComponent","engine","htmlContent","contentWidth","contentHeight","contentScale","rendering","asyncCancelled","targetComponent","renderVersion","ownedTextures","originalTargetTexture","isDirty","canvas","context","getContext","willReadFrequently","setContent","max","onAwake","material","setColor","math","Color","item","getComponents","MaskableGraphic","comp","onUpdate","dt","updateTexture","catch","render","renderer","onDestroy","disposeOwnTexture","setTexture","tex","dispose","clear","texture","whiteTexture","renderImageToTexture","flipY","drawCallback","save","setTransform","translate","clearRect","fillStyle","restore","imageData","getImageData","Texture","createWithData","data","Uint8Array","magFilter","glContext","LINEAR","minFilter","wrapS","CLAMP_TO_EDGE","wrapT","startVersion","texWidth","texHeight","cappedScaleX","cappedScaleY","cappedScale","image","pending","round","updateTargetTexture","ctx","drawImage","currentTexture","delete","effectsClass","version","registerPlugin","EFFECTS","console"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_set_prototype_of.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_inherits.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_is_native_reflect_construct.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_construct.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_get_prototype_of.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_is_native_function.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_wrap_native_super.js","../src/dom-content-loader.ts","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_async_to_generator.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_array_like_to_array.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_unsupported_iterable_to_array.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_create_for_of_iterator_helper_loose.js","../../../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_extends.js","../src/dom-to-texture.ts","../src/dom-content-component.ts","../src/index.ts"],"sourcesContent":["function _set_prototype_of(o, p) {\n _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {\n o.__proto__ = p;\n\n return o;\n };\n\n return _set_prototype_of(o, p);\n}\nexport { _set_prototype_of as _ };\n","import { _ as _set_prototype_of } from \"./_set_prototype_of.js\";\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });\n\n if (superClass) _set_prototype_of(subClass, superClass);\n}\nexport { _inherits as _ };\n","function _is_native_reflect_construct() {\n // Since Reflect.construct can't be properly polyfilled, some\n // implementations (e.g. core-js@2) don't set the correct internal slots.\n // Those polyfills don't allow us to subclass built-ins, so we need to\n // use our fallback implementation.\n try {\n // If the internal slots aren't set, this throws an error similar to\n // TypeError: this is not a Boolean object.\n var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));\n } catch (_) {}\n return (_is_native_reflect_construct = function() {\n return !!result;\n })();\n}\n\nexport { _is_native_reflect_construct as _ };\n","import { _ as _is_native_reflect_construct } from \"./_is_native_reflect_construct.js\";\nimport { _ as _set_prototype_of } from \"./_set_prototype_of.js\";\nfunction _construct(Parent, args, Class) {\n if (_is_native_reflect_construct()) _construct = Reflect.construct;\n else {\n _construct = function construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n\n if (Class) _set_prototype_of(instance, Class.prototype);\n\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\nexport { _construct as _ };\n","function _get_prototype_of(o) {\n _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n\n return _get_prototype_of(o);\n}\nexport { _get_prototype_of as _ };\n","function _is_native_function(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\nexport { _is_native_function as _ };\n","import { _ as _construct } from \"./_construct.js\";\nimport { _ as _get_prototype_of } from \"./_get_prototype_of.js\";\nimport { _ as _is_native_function } from \"./_is_native_function.js\";\nimport { _ as _set_prototype_of } from \"./_set_prototype_of.js\";\n\nfunction _wrap_native_super(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrap_native_super = function(Class) {\n if (Class === null || !_is_native_function(Class)) return Class;\n if (typeof Class !== \"function\") throw new TypeError(\"Super expression must either be null or a function\");\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _get_prototype_of(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } });\n\n return _set_prototype_of(Wrapper, Class);\n };\n\n return _wrap_native_super(Class);\n}\nexport { _wrap_native_super as _ };\n","import { Plugin } from '@galacean/effects';\n\n/**\n * DOM Content 插件 Loader\n * 当前为空壳实现,组件在运行时由开发手动挂载,无需 JSON 数据解析\n */\nexport class DomContentLoader extends Plugin {\n override name = 'dom-content';\n}\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) resolve(value);\n else Promise.resolve(value).then(_next, _throw);\n}\nfunction _async_to_generator(fn) {\n return function() {\n var self = this, args = arguments;\n\n return new Promise(function(resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\nexport { _async_to_generator as _ };\n","function _array_like_to_array(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\nexport { _array_like_to_array as _ };\n","import { _ as _array_like_to_array } from \"./_array_like_to_array.js\";\n\nfunction _unsupported_iterable_to_array(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _array_like_to_array(o, minLen);\n\n var n = Object.prototype.toString.call(o).slice(8, -1);\n\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);\n}\nexport { _unsupported_iterable_to_array as _ };\n","import { _ as _unsupported_iterable_to_array } from \"./_unsupported_iterable_to_array.js\";\n\nfunction _create_for_of_iterator_helper_loose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (it) return (it = it.call(o)).next.bind(it);\n // Fallback for engines without symbol support\n if (Array.isArray(o) || (it = _unsupported_iterable_to_array(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n\n var i = 0;\n\n return function() {\n if (i >= o.length) return { done: true };\n\n return { done: false, value: o[i++] };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _create_for_of_iterator_helper_loose as _ };\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","function _extends() {\n _extends = Object.assign || function assign(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\nexport { _extends as _ };\n","/** DOM → Texture 转换工具,通过 SVG foreignObject 将 HTML/CSS 渲染为 Image */\nimport { logger, loadImage, loadBlob } from '@galacean/effects';\n\nexport interface RenderOptions {\n /** 自动内联 @font-face 外部字体,默认 true */\n inlineFonts?: boolean,\n /** 自动内联外部图片/资源 URL,默认 true */\n inlineImages?: boolean,\n /** 自动从宿主文档提取 CSS url(#id) 引用的 SVG 定义,默认 true */\n extractDefs?: boolean,\n}\n\nconst DEFAULT_RENDER_OPTIONS: Required<RenderOptions> = {\n inlineFonts: true,\n inlineImages: true,\n extractDefs: true,\n};\n\nconst SVG_DEF_TAGS = new Set(['filter', 'clippath', 'mask', 'lineargradient', 'radialgradient', 'pattern', 'marker']);\nconst IMG_TAG_NAMES = new Set(['img']);\nconst MEDIA_TAG_NAMES = new Set(['video', 'source', 'input', 'audio']);\nconst CSS_URL_REGEX = /url\\(\\s*(?:\"([^\"]+)\"|'([^']+)'|([^\\s)\"']+))\\s*\\)/gi;\n\n/**\n * 安全提取 HTML 中指定标签名的指定属性值,使用字符级扫描避免 ReDoS。\n * 仅扫描 `<tagName` 后的属性区域,不依赖回溯正则。\n * tagNames 为 null 时匹配任意标签。\n */\nfunction extractTagAttributes (\n html: string,\n tagNames: Set<string> | null,\n attrNames: string[],\n out: Set<string>,\n): void {\n let i = 0;\n const len = html.length;\n\n while (i < len) {\n const lt = html.indexOf('<', i);\n\n if (lt === -1) { break; }\n const next = html.charCodeAt(lt + 1);\n const isLetter = (next >= 65 && next <= 90) || (next >= 97 && next <= 122);\n\n if (!isLetter) { i = lt + 1; continue; }\n\n let nameEnd = lt + 1;\n\n while (nameEnd < len) {\n const c = html.charCodeAt(nameEnd);\n\n if (c === 32 || c === 9 || c === 10 || c === 13 || c === 47 || c === 62) { break; }\n nameEnd++;\n }\n const tagName = html.slice(lt + 1, nameEnd).toLowerCase();\n\n if (tagNames !== null && !tagNames.has(tagName)) { i = nameEnd; continue; }\n\n // 找到本标签的结束 '>',在引号内的 '>' 不算,避免 style=\"background:url(>)\" 这类干扰\n const tagLimit = Math.min(len, nameEnd + 16000);\n let tagEnd = -1;\n let inDq = false;\n let inSq = false;\n\n for (let p = nameEnd; p < tagLimit; p++) {\n const c = html.charCodeAt(p);\n\n if (c === 34 && !inSq) { inDq = !inDq; } else if (c === 39 && !inDq) { inSq = !inSq; } else if (c === 62 && !inDq && !inSq) {\n tagEnd = p;\n\n break;\n }\n }\n if (tagEnd === -1) { i = nameEnd; continue; }\n\n const attrSection = html.slice(nameEnd, tagEnd);\n\n for (const attrName of attrNames) {\n extractAttrValueFromSection(attrSection, attrName, out);\n }\n\n i = tagEnd + 1;\n }\n}\n\n/**\n * 字符级扫描提取所有 <style>...</style> 块的 textContent。\n * 完全不使用回溯正则,最坏线性时间。\n */\nfunction extractStyleBlocks (html: string, out: string[]): void {\n const lower = html.toLowerCase();\n let i = 0;\n const len = html.length;\n\n while (i < len) {\n const start = lower.indexOf('<style', i);\n\n if (start === -1) { break; }\n const after = lower.charCodeAt(start + 6);\n const isStyleTag = after === 32 || after === 9 || after === 10 || after === 13 || after === 62 || after === 47;\n\n if (!isStyleTag) { i = start + 6; continue; }\n\n // 跳过开标签到 '>' 结束\n const openEnd = lower.indexOf('>', start + 6);\n\n if (openEnd === -1) { break; }\n const contentStart = openEnd + 1;\n const closeStart = lower.indexOf('</style', contentStart);\n\n if (closeStart === -1) { break; }\n out.push(html.slice(contentStart, closeStart));\n const closeEnd = lower.indexOf('>', closeStart);\n\n if (closeEnd === -1) { break; }\n i = closeEnd + 1;\n }\n}\n\n/** 从单个标签的属性区域提取指定属性值 */\nfunction extractAttrValueFromSection (section: string, attrName: string, out: Set<string>): void {\n const lower = section.toLowerCase();\n const target = attrName.toLowerCase();\n let pos = 0;\n\n while (pos < lower.length) {\n const idx = lower.indexOf(target, pos);\n\n if (idx === -1) { return; }\n const prevChar = idx === 0 ? 32 : lower.charCodeAt(idx - 1);\n const isBoundary = prevChar === 32 || prevChar === 9 || prevChar === 10 || prevChar === 13;\n\n if (!isBoundary) { pos = idx + target.length; continue; }\n\n let p = idx + target.length;\n\n while (p < section.length && /\\s/.test(section[p])) { p++; }\n if (section[p] !== '=') { pos = idx + target.length; continue; }\n p++;\n while (p < section.length && /\\s/.test(section[p])) { p++; }\n\n let value = '';\n const quote = section[p];\n\n if (quote === '\"' || quote === '\\'') {\n const end = section.indexOf(quote, p + 1);\n\n if (end === -1) { return; }\n value = section.slice(p + 1, end);\n } else {\n let end = p;\n\n while (end < section.length && !/[\\s>]/.test(section[end])) { end++; }\n value = section.slice(p, end);\n }\n\n if (value) { out.add(value); }\n\n return;\n }\n}\n\n/** 安全提取 @font-face 块,避免 ReDoS 正则回溯问题 */\nfunction extractFontFaces (html: string): string[] {\n const faces: string[] = [];\n const regex = /@font-face\\s*\\{/gi;\n let match;\n\n while ((match = regex.exec(html)) !== null) {\n const start = match.index + match[0].length;\n // 从匹配位置往后找匹配的 },最多检查 8000 字符\n let braceCount = 1;\n let end = start;\n\n for (; end < html.length && end < start + 8000; end++) {\n if (html[end] === '{') { braceCount++; } else if (html[end] === '}') {\n braceCount--;\n if (braceCount === 0) { break; }\n }\n }\n faces.push(html.slice(match.index, end + 1));\n // 继续搜索时需要将 lastIndex 设置到 end 之后\n regex.lastIndex = end + 1;\n }\n\n return faces;\n}\nconst FONT_URL_REGEX = /url\\(\\s*(?:\"([^\"]+)\"|'([^']+)'|([^\\s)\"']+))\\s*\\)/gi;\nconst CSS_SVG_REF_REGEX = /url\\(\\s*(?:\"|')?#([a-zA-Z][\\w.-]*)(?:\"|')?\\s*\\)/g;\nconst isInlineUrl = (url: string) => url.startsWith('data:') || url.startsWith('blob:');\n\n/** 安全移除 HTML 中所有内联 <svg>...</svg> 块,使用字符级扫描避免 ReDoS */\nfunction stripInlineSVG (html: string): string {\n let result = '';\n let i = 0;\n const len = html.length;\n const lowerHtml = html.toLowerCase();\n\n while (i < len) {\n const start = lowerHtml.indexOf('<svg', i);\n\n if (start === -1) {\n result += html.slice(i);\n\n break;\n }\n const after = lowerHtml.charCodeAt(start + 4);\n const isSvgTag = after === 32 || after === 9 || after === 10 || after === 13 || after === 62 || after === 47;\n\n if (!isSvgTag) {\n result += html.slice(i, start + 4);\n i = start + 4;\n continue;\n }\n\n result += html.slice(i, start);\n const closeIdx = lowerHtml.indexOf('</svg', start + 4);\n\n if (closeIdx === -1) { break; }\n const gt = lowerHtml.indexOf('>', closeIdx);\n\n if (gt === -1) { break; }\n i = gt + 1;\n }\n\n return result;\n}\n\n/** 将 HTML 渲染为 Image 对象,默认自动执行内联字体/图片/提取 SVG 定义 */\nexport async function renderDOMToImage (\n html: string,\n width: number,\n height: number,\n scale = 1,\n options?: RenderOptions,\n): Promise<HTMLImageElement> {\n if (!Number.isFinite(width) || !Number.isFinite(height) || !Number.isFinite(scale)\n || width <= 0 || height <= 0 || scale < 0) {\n throw new Error('renderDOMToImage: width and height must be positive, scale must be non-negative.');\n }\n\n // scale 为 0 时返回空结果,与 width/height=0 行为保持一致\n if (scale === 0) {\n logger.warn('renderDOMToImage: scale is 0, skipping render.');\n\n return loadImage('data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7');\n }\n\n const opts = { ...DEFAULT_RENDER_OPTIONS, ...options };\n\n // 先清理危险标记,再内联资源,避免从不安全标记中发现/获取 URL\n let processedHtml = sanitizeSVGContent(html);\n\n if (opts.inlineFonts) { processedHtml = await inlineFontSources(processedHtml); }\n if (opts.inlineImages) { processedHtml = await inlineImageSources(processedHtml); }\n\n const svgDefs = opts.extractDefs ? extractSVGDefs(processedHtml) : '';\n const svgWidth = width * scale;\n const svgHeight = height * scale;\n\n // 将 HTML 转为合规 XHTML,避免未闭合的 void 标签和未转义实体导致 SVG/XML 解析失败\n const xhtmlSafeHtml = convertToXHTML(injectSVGNamespace(processedHtml));\n const defsBlock = svgDefs ? `<defs>${svgDefs}</defs>` : '';\n const svg = (\n `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${svgWidth}\" height=\"${svgHeight}\">` +\n defsBlock +\n `<foreignObject width=\"${width}\" height=\"${height}\" transform=\"scale(${scale})\">` +\n xhtmlSafeHtml +\n '</foreignObject></svg>'\n );\n\n return loadImage(`data:image/svg+xml;charset=utf-8,${encodeURIComponent(svg)}`);\n}\n\n/** 危险标签名集合(小写):将这些标签的 < > 转义为 &lt; &gt;,保留内容防止布局错位 */\nconst DANGEROUS_TAG_NAMES = new Set([\n 'foreignobject', 'script', 'iframe', 'object', 'embed',\n 'link', 'base', 'meta', 'template', 'noscript',\n]);\n\n/** 需要进行 URL 协议安全检查的属性名(小写) */\nconst URL_ATTR_NAMES = new Set(['href', 'src', 'action', 'formaction']);\n\n/** 不允许的协议列表 */\nconst DISALLOWED_PROTOCOLS = ['javascript', 'vbscript'];\n\n/** data: URL 中允许的安全 MIME 类型前缀 */\nconst SAFE_DATA_PREFIXES = ['data:image/', 'data:font/', 'data:application/font', 'data:application/x-font'];\n\n/**\n * 解码 HTML 实体(数字和常用命名实体),不做其他变换。\n * 用于把从 HTML 字面字符串提取出的 URL 还原为 fetch 时浏览器实际会发起的 URL。\n *\n * 必须做这一步,否则 `<img src=\"...?a=1&amp;b=2\">` 提取到的字面 `&amp;` 会被直接\n * 拼进 XHR 请求,CDN 收到 `?a=1&amp;b=2` 视作 query 参数名 `amp;b`,普遍返回 404。\n */\nfunction decodeHtmlEntities (value: string): string {\n return value\n .replace(/&#x([0-9a-fA-F]+);?/g, (_, hex) => String.fromCharCode(parseInt(hex, 16)))\n .replace(/&#(\\d+);?/g, (_, dec) => String.fromCharCode(parseInt(dec, 10)))\n .replace(/&([a-zA-Z]+);/gi, (match, name) => {\n const map: Record<string, string> = {\n amp: '&', lt: '<', gt: '>', quot: '\"', apos: '\\'',\n // 安全相关:协议分隔符和空白字符,防止绕过 isDangerousUrl 检查\n colon: ':', semi: ';',\n tab: '\\t', newline: '\\n',\n nbsp: '\\u00A0',\n };\n\n return map[name.toLowerCase()] ?? match;\n });\n}\n\n/**\n * 规范化 URL 属性值:解码 HTML 实体和百分号编码,\n * 移除控制字符和空白,转小写后检查是否包含危险协议\n */\nfunction normalizeUrlAttr (value: string): string {\n let normalized = decodeHtmlEntities(value);\n\n // 解码百分号编码\n try { normalized = decodeURIComponent(normalized); } catch { /* 忽略无效编码 */ }\n\n // 移除控制字符(U+0000-U+001F, U+007F)和空白\n // eslint-disable-next-line no-control-regex\n normalized = normalized.replace(/[\\u0000-\\u001f\\u007f\\s]+/g, '');\n\n // 转小写\n normalized = normalized.toLowerCase();\n\n // 去除前导非字母字符(如 / 或 \\)\n normalized = normalized.replace(/^[^a-z]+/, '');\n\n return normalized;\n}\n\n/** 检查规范化后的 URL 是否使用了危险协议 */\nfunction isDangerousUrl (value: string): boolean {\n const normalized = normalizeUrlAttr(value);\n\n // 检查 javascript:/vbscript: 等明确危险协议\n if (DISALLOWED_PROTOCOLS.some(proto => normalized.startsWith(`${proto}:`))) {\n return true;\n }\n\n // 检查 data: URL —— 仅允许安全的 MIME 类型(image/font),其余视为危险\n if (normalized.startsWith('data:')) {\n return !SAFE_DATA_PREFIXES.some(prefix => normalized.startsWith(prefix));\n }\n\n return false;\n}\n\n/**\n * 清理 HTML:转义危险标签,移除事件处理器和危险协议 URL 属性。\n * 使用字符级扫描代替回溯正则,避免 ReDoS 漏洞。\n */\nexport function sanitizeSVGContent (html: string): string {\n return scanAndSanitize(html);\n}\n\n/**\n * 单遍字符级扫描:\n * - 识别危险标签(DANGEROUS_TAG_NAMES),将其 < > 转义为 &lt; &gt;\n * - 在普通标签的属性区域内:移除 on* 事件处理器属性,移除值为危险 URL 的 href/src/action/formaction 属性\n */\nfunction scanAndSanitize (html: string): string {\n let out = '';\n let i = 0;\n const len = html.length;\n\n while (i < len) {\n const ch = html.charCodeAt(i);\n\n if (ch !== 60 /* < */) {\n out += html[i++];\n continue;\n }\n\n const next = html.charCodeAt(i + 1);\n const isLetter = (next >= 65 && next <= 90) || (next >= 97 && next <= 122);\n const nextNext = html.charCodeAt(i + 2);\n const isSlashLetter = next === 47 /* / */\n && ((nextNext >= 65 && nextNext <= 90) || (nextNext >= 97 && nextNext <= 122));\n\n if (!isLetter && !isSlashLetter) {\n out += html[i++];\n continue;\n }\n\n const isClose = isSlashLetter;\n const nameStart = isClose ? i + 2 : i + 1;\n let nameEnd = nameStart;\n\n while (nameEnd < len) {\n const c = html.charCodeAt(nameEnd);\n\n if (c === 32 || c === 9 || c === 10 || c === 13 || c === 47 || c === 62) { break; }\n nameEnd++;\n }\n const tagName = html.slice(nameStart, nameEnd).toLowerCase();\n\n // 找到标签的结束 '>',识别引号区域避免误判 '>'\n const tagLimit = Math.min(len, nameEnd + 16000);\n let tagEnd = -1;\n let inDoubleQuote = false;\n let inSingleQuote = false;\n\n for (let p = nameEnd; p < tagLimit; p++) {\n const c = html.charCodeAt(p);\n\n if (c === 34 /* \" */ && !inSingleQuote) { inDoubleQuote = !inDoubleQuote; } else if (c === 39 /* ' */ && !inDoubleQuote) { inSingleQuote = !inSingleQuote; } else if (c === 62 /* > */ && !inDoubleQuote && !inSingleQuote) {\n tagEnd = p;\n\n break;\n }\n }\n if (tagEnd === -1) {\n out += html[i++];\n continue;\n }\n\n if (DANGEROUS_TAG_NAMES.has(tagName)) {\n out += '&lt;' + html.slice(i + 1, tagEnd) + '&gt;';\n i = tagEnd + 1;\n continue;\n }\n\n const tagOpen = html.slice(i, nameEnd);\n const attrSection = html.slice(nameEnd, tagEnd);\n const cleanedAttrs = sanitizeAttrSection(attrSection);\n\n out += tagOpen + cleanedAttrs + '>';\n i = tagEnd + 1;\n }\n\n return out;\n}\n\n/**\n * 清理标签的属性区域:\n * - 移除 on* 事件处理器属性\n * - 移除值为危险 URL 的 href/src/action/formaction 属性\n */\nfunction sanitizeAttrSection (section: string): string {\n let out = '';\n let i = 0;\n const len = section.length;\n\n while (i < len) {\n const c = section.charCodeAt(i);\n\n if (c === 32 || c === 9 || c === 10 || c === 13 || c === 47) {\n out += section[i++];\n continue;\n }\n\n const nameStart = i;\n\n while (i < len) {\n const cc = section.charCodeAt(i);\n\n if (cc === 61 /* = */ || cc === 32 || cc === 9 || cc === 10 || cc === 13 || cc === 47 || cc === 62) { break; }\n i++;\n }\n if (i === nameStart) {\n out += section[i++];\n continue;\n }\n const attrName = section.slice(nameStart, i);\n const lowerName = attrName.toLowerCase();\n\n let p = i;\n\n while (p < len && /\\s/.test(section[p])) { p++; }\n\n let attrEnd = p;\n let value: string | null = null;\n let hasValue = false;\n\n if (section[p] === '=') {\n hasValue = true;\n p++;\n while (p < len && /\\s/.test(section[p])) { p++; }\n const q = section[p];\n\n if (q === '\"' || q === '\\'') {\n const end = section.indexOf(q, p + 1);\n\n if (end === -1) {\n out += section.slice(nameStart);\n\n return out;\n }\n value = section.slice(p + 1, end);\n attrEnd = end + 1;\n } else {\n let end = p;\n\n while (end < len && !/[\\s>]/.test(section[end])) { end++; }\n value = section.slice(p, end);\n attrEnd = end;\n }\n }\n\n const isEventHandler = lowerName.length > 2\n && lowerName.charCodeAt(0) === 111 /* o */\n && lowerName.charCodeAt(1) === 110 /* n */;\n const isDangerousUrlAttr = hasValue && value !== null\n && URL_ATTR_NAMES.has(lowerName) && isDangerousUrl(value);\n\n if (isEventHandler || isDangerousUrlAttr) {\n i = attrEnd;\n continue;\n }\n\n out += section.slice(nameStart, attrEnd);\n i = attrEnd;\n }\n\n return out;\n}\n\n/** 为缺少 xmlns 的内嵌 <svg> 自动注入命名空间,使用字符级扫描,线性时间且无回溯 */\nfunction injectSVGNamespace (html: string): string {\n let out = '';\n let i = 0;\n const len = html.length;\n const lower = html.toLowerCase();\n\n while (i < len) {\n const start = lower.indexOf('<svg', i);\n\n if (start === -1) {\n out += html.slice(i);\n\n break;\n }\n const after = lower.charCodeAt(start + 4);\n const isSvgTag = after === 32 || after === 9 || after === 10 || after === 13 || after === 62 || after === 47;\n\n if (!isSvgTag) {\n out += html.slice(i, start + 4);\n i = start + 4;\n continue;\n }\n\n const tagEnd = lower.indexOf('>', start + 4);\n\n if (tagEnd === -1) {\n out += html.slice(i);\n\n break;\n }\n const tagSlice = lower.slice(start, tagEnd);\n // 严格判断是否已有 xmlns 属性(前面有空白边界,后接 = 或空白)\n const hasXmlns = /[\\s][\\s]*xmlns\\s*=/i.test(' ' + tagSlice);\n\n out += html.slice(i, start + 4);\n if (!hasXmlns) { out += ' xmlns=\"http://www.w3.org/2000/svg\"'; }\n out += html.slice(start + 4, tagEnd + 1);\n i = tagEnd + 1;\n }\n\n return out;\n}\n\n/**\n * 将 HTML 字符串转为合规 XHTML,确保 void 标签被正确闭合、实体被转义,\n * 使其可安全嵌入 SVG foreignObject(image/svg+xml 要求严格 XML 格式)\n */\nfunction convertToXHTML (html: string): string {\n if (typeof document === 'undefined') {\n // 非浏览器环境回退:手动闭合常见 void 标签\n return `<div xmlns=\"http://www.w3.org/1999/xhtml\">${html}</div>`;\n }\n\n const doc = document.implementation.createHTMLDocument('');\n const container = doc.createElement('div');\n\n container.innerHTML = html;\n container.setAttribute('xmlns', 'http://www.w3.org/1999/xhtml');\n\n return new XMLSerializer().serializeToString(container);\n}\n\n/**\n * 从 HTML 中提取 CSS 上下文的 URL:仅扫描 <style> 元素的 textContent 和元素的 style 属性,\n * 避免从普通文本/注释中误提取 URL。在无 DOMParser 环境下回退到正则但限制扫描范围。\n */\nfunction collectCSSUrls (html: string, urlSet: Set<string>): void {\n const cssTexts: string[] = [];\n\n if (typeof DOMParser !== 'undefined') {\n try {\n // 直接解析输入 HTML(inert document),避免通过模板拼接构造新 HTML 文档字符串\n const doc = new DOMParser().parseFromString(html, 'text/html');\n\n doc.querySelectorAll('style').forEach(styleEl => {\n if (styleEl.textContent) { cssTexts.push(styleEl.textContent); }\n });\n doc.querySelectorAll('[style]').forEach(el => {\n const styleAttr = el.getAttribute('style');\n\n if (styleAttr) { cssTexts.push(styleAttr); }\n });\n } catch {\n /* 解析失败则回退到下方正则扫描 */\n }\n }\n\n // 回退路径:使用字符级扫描提取 <style>...</style> 块和 style=\"...\" 属性,避免 ReDoS\n if (cssTexts.length === 0) {\n extractStyleBlocks(html, cssTexts);\n const styleAttrSet = new Set<string>();\n\n extractTagAttributes(html, null, ['style'], styleAttrSet);\n for (const v of styleAttrSet) { cssTexts.push(v); }\n }\n\n for (const text of cssTexts) {\n CSS_URL_REGEX.lastIndex = 0;\n let match: RegExpExecArray | null;\n\n while ((match = CSS_URL_REGEX.exec(text)) !== null) {\n const url = match[1] ?? match[2] ?? match[3];\n\n if (url && !isInlineUrl(url) && !url.startsWith('#')) { urlSet.add(url); }\n }\n }\n}\n\n/**\n * 将 HTML 中外部资源 URL 转为 base64 内联,失败时保留原 URL\n */\nexport async function inlineImageSources (html: string): Promise<string> {\n const rawUrlSet = new Set<string>();\n\n // 使用安全的字符级解析提取 src/poster 属性,避免 ReDoS\n extractTagAttributes(html, IMG_TAG_NAMES, ['src'], rawUrlSet);\n extractTagAttributes(html, MEDIA_TAG_NAMES, ['src', 'poster'], rawUrlSet);\n\n const urlSet = new Set<string>();\n\n for (const url of rawUrlSet) {\n if (url && !isInlineUrl(url)) { urlSet.add(url); }\n }\n\n // 仅扫描真正的 CSS 上下文(<style> 内容和 style 属性),避免从文本/注释中误提取 URL\n collectCSSUrls(html, urlSet);\n\n if (urlSet.size === 0) { return html; }\n\n const urlToBase64 = new Map<string, string>();\n const urls = [...urlSet].slice(0, MAX_URLS);\n\n if (urlSet.size > MAX_URLS) {\n logger.warn(`inlineImageSources: URL count (${urlSet.size}) exceeds limit (${MAX_URLS}), only processing first ${MAX_URLS}.`);\n }\n\n await promisePool(urls.map(url => async () => {\n // fetch 前必须解码 HTML 实体,否则 URL 含 &amp; 等会被字面拼进请求,\n // 导致 CDN 返回 404;Map key 仍用原始字符串,replaceUrls 才能精准匹配 HTML 原文。\n const fetchUrl = decodeHtmlEntities(url);\n\n try { urlToBase64.set(url, await fetchAsBase64(fetchUrl)); } catch (e) { logger.warn(`inlineImageSources: Failed to fetch \"${fetchUrl}\". ${FETCH_FAIL_HINT}`, e); }\n }), MAX_FETCH_CONCURRENCY);\n\n return replaceUrls(html, urlToBase64);\n}\n\n/**\n * 将 @font-face 中的外部字体 URL 转为 base64 内联\n */\nexport async function inlineFontSources (html: string): Promise<string> {\n const urlSet = new Set<string>();\n\n // 使用安全的逐字符解析代替正则\n const fontFaces = extractFontFaces(html);\n\n for (const face of fontFaces) {\n FONT_URL_REGEX.lastIndex = 0;\n let urlMatch: RegExpExecArray | null;\n\n while ((urlMatch = FONT_URL_REGEX.exec(face)) !== null) {\n const url = urlMatch[1] ?? urlMatch[2] ?? urlMatch[3];\n\n if (url && !isInlineUrl(url)) { urlSet.add(url); }\n }\n }\n\n if (urlSet.size === 0) { return html; }\n\n const urlToBase64 = new Map<string, string>();\n const urls = [...urlSet].slice(0, MAX_URLS);\n\n if (urlSet.size > MAX_URLS) {\n logger.warn(`inlineFontSources: URL count (${urlSet.size}) exceeds limit (${MAX_URLS}), only processing first ${MAX_URLS}.`);\n }\n\n await promisePool(urls.map(url => async () => {\n const fetchUrl = decodeHtmlEntities(url);\n\n try { urlToBase64.set(url, await fetchAsBase64(fetchUrl)); } catch (e) { logger.warn(`inlineFontSources: Failed to fetch font \"${fetchUrl}\". ${FETCH_FAIL_HINT}`, e); }\n }), MAX_FETCH_CONCURRENCY);\n\n return replaceUrls(html, urlToBase64);\n}\n\n/**\n * 替换 URL 为 base64:\n * - 标签属性(src/poster)使用字符级扫描定位后做精确字符串替换,避免回溯正则 ReDoS\n * - CSS url() 替换使用线性时间的简单正则(无嵌套量词、无回溯陷阱)\n * - 全程区分大小写匹配 URL,确保通过 Map 精准查找\n */\nfunction replaceUrls (html: string, urlToBase64: Map<string, string>): string {\n // 1) 替换 <img>/<video>/<source>/<input>/<audio> 的 src/poster 属性\n const html1 = replaceTagAttrUrls(\n html,\n new Set(['img', 'video', 'source', 'input', 'audio']),\n ['src', 'poster'],\n urlToBase64,\n );\n\n // 2) 替换 CSS url(\"...\") / url('...'),正则不含嵌套量词,线性时间\n let result = html1.replace(\n /url\\(\\s*([\"'])([^\"'\\n\\r)]*)\\1\\s*\\)/g,\n (match, quote, url) => {\n const base64 = urlToBase64.get(url);\n\n return base64 ? `url(${quote}${base64}${quote})` : match;\n },\n );\n\n // 3) 替换 CSS url(...) 不带引号的 URL,线性时间\n result = result.replace(\n /url\\(\\s*([^\\s)\"'\\n\\r]+)\\s*\\)/g,\n (match, url) => {\n const base64 = urlToBase64.get(url);\n\n return base64 ? `url(${base64})` : match;\n },\n );\n\n return result;\n}\n\n/**\n * 字符级扫描定位指定标签的指定属性,并将属性值替换为 Map 中的 base64。\n * 完全不使用回溯正则,最坏情况是线性时间。\n */\nfunction replaceTagAttrUrls (\n html: string,\n tagNames: Set<string>,\n attrNames: string[],\n urlToBase64: Map<string, string>,\n): string {\n if (urlToBase64.size === 0) { return html; }\n const targetAttrs = attrNames.map(a => a.toLowerCase());\n let out = '';\n let i = 0;\n const len = html.length;\n\n while (i < len) {\n const lt = html.indexOf('<', i);\n\n if (lt === -1) {\n out += html.slice(i);\n\n break;\n }\n const next = html.charCodeAt(lt + 1);\n const isLetter = (next >= 65 && next <= 90) || (next >= 97 && next <= 122);\n\n if (!isLetter) {\n out += html.slice(i, lt + 1);\n i = lt + 1;\n continue;\n }\n\n let nameEnd = lt + 1;\n\n while (nameEnd < len) {\n const c = html.charCodeAt(nameEnd);\n\n if (c === 32 || c === 9 || c === 10 || c === 13 || c === 47 || c === 62) { break; }\n nameEnd++;\n }\n const tagName = html.slice(lt + 1, nameEnd).toLowerCase();\n\n if (!tagNames.has(tagName)) {\n out += html.slice(i, nameEnd);\n i = nameEnd;\n continue;\n }\n\n // 找到本标签的结束 '>',在引号内的 '>' 不算\n const tagLimit = Math.min(len, nameEnd + 16000);\n let tagEnd = -1;\n let inDq = false;\n let inSq = false;\n\n for (let p = nameEnd; p < tagLimit; p++) {\n const c = html.charCodeAt(p);\n\n if (c === 34 && !inSq) { inDq = !inDq; } else if (c === 39 && !inDq) { inSq = !inSq; } else if (c === 62 && !inDq && !inSq) {\n tagEnd = p;\n\n break;\n }\n }\n if (tagEnd === -1) {\n out += html.slice(i, lt + 1);\n i = lt + 1;\n continue;\n }\n\n // 在 [nameEnd, tagEnd) 区间内,逐属性替换目标 src/poster\n out += html.slice(i, nameEnd);\n out += replaceAttrsInSection(html.slice(nameEnd, tagEnd), targetAttrs, urlToBase64);\n out += '>';\n i = tagEnd + 1;\n }\n\n return out;\n}\n\n/** 在单个标签的属性区域内,将匹配 targetAttrs 的属性值替换为 Map 中的 base64 */\nfunction replaceAttrsInSection (\n section: string,\n targetAttrs: string[],\n urlToBase64: Map<string, string>,\n): string {\n let out = '';\n let i = 0;\n const len = section.length;\n\n while (i < len) {\n const c = section.charCodeAt(i);\n\n if (c === 32 || c === 9 || c === 10 || c === 13 || c === 47) {\n out += section[i++];\n continue;\n }\n\n const nameStart = i;\n\n while (i < len) {\n const cc = section.charCodeAt(i);\n\n if (cc === 61 /* = */ || cc === 32 || cc === 9 || cc === 10 || cc === 13 || cc === 47 || cc === 62) { break; }\n i++;\n }\n if (i === nameStart) {\n out += section[i++];\n continue;\n }\n const lowerName = section.slice(nameStart, i).toLowerCase();\n let p = i;\n\n while (p < len && /\\s/.test(section[p])) { p++; }\n\n if (section[p] !== '=') {\n out += section.slice(nameStart, p);\n i = p;\n continue;\n }\n p++;\n while (p < len && /\\s/.test(section[p])) { p++; }\n\n let valueStart = p;\n let valueEnd = p;\n let attrEnd = p;\n let quote: string | null = null;\n\n if (section[p] === '\"' || section[p] === '\\'') {\n quote = section[p];\n const end = section.indexOf(quote, p + 1);\n\n if (end === -1) {\n out += section.slice(nameStart);\n\n return out;\n }\n valueStart = p + 1;\n valueEnd = end;\n attrEnd = end + 1;\n } else {\n let end = p;\n\n while (end < len && !/[\\s>]/.test(section[end])) { end++; }\n valueStart = p;\n valueEnd = end;\n attrEnd = end;\n }\n\n const value = section.slice(valueStart, valueEnd);\n\n if (targetAttrs.includes(lowerName)) {\n const base64 = urlToBase64.get(value);\n\n if (base64) {\n if (quote === null) {\n // 原属性无引号时必须补引号:base64 含 ;,/=+ 等字符,无引号会被 HTML parser\n // 在首个 ; 或空白处截断 src 值,导致图片加载失败。\n out += section.slice(nameStart, valueStart) + '\"' + base64 + '\"';\n } else {\n // 有引号时 section.slice(nameStart, valueStart) 已包含开引号,只需追加闭合引号。\n out += section.slice(nameStart, valueStart) + base64 + quote;\n }\n i = attrEnd;\n continue;\n }\n }\n\n out += section.slice(nameStart, attrEnd);\n i = attrEnd;\n }\n\n return out;\n}\n\n/**\n * 从宿主文档提取 CSS url(#id) 引用的 SVG 定义,支持 filter/clipPath/mask/gradient/pattern/marker\n */\nexport function extractSVGDefs (html: string): string {\n if (typeof document === 'undefined') { return ''; }\n\n // 使用安全的字符级扫描移除内联 <svg> 块,避免 ReDoS\n const htmlWithoutInlineSVG = stripInlineSVG(html);\n const ids = new Set<string>();\n\n CSS_SVG_REF_REGEX.lastIndex = 0;\n let match: RegExpExecArray | null;\n\n while ((match = CSS_SVG_REF_REGEX.exec(htmlWithoutInlineSVG)) !== null) {\n ids.add(match[1]);\n }\n\n if (ids.size === 0) { return ''; }\n\n const serializer = new XMLSerializer();\n const parts: string[] = [];\n\n for (const id of ids) {\n const el = document.getElementById(id);\n\n if (!el) {\n logger.warn(`extractSVGDefs: #${id} not found.`);\n continue;\n }\n if (!SVG_DEF_TAGS.has(el.tagName.toLowerCase())) {\n logger.warn(`extractSVGDefs: #${id} is not a supported SVG def element.`);\n continue;\n }\n parts.push(serializer.serializeToString(el));\n }\n\n return parts.join('');\n}\n\nconst MAX_FETCH_CONCURRENCY = 6; // 最大并发获取数\nconst MAX_RESOURCE_BYTES = 10 * 1024 * 1024; // 单个资源最大 10MB\nconst MAX_URLS = 100; // 单次内联处理的最大 URL 数量\n\n/** 内联资源 fetch 失败时附加的排查 hint,覆盖业务最常踩的三种原因 */\nconst FETCH_FAIL_HINT\n = '可能原因: (1) 资源服务器未开启 CORS(需 Access-Control-Allow-Origin 响应头); '\n + '(2) URL 不可访问 (404 / 403); (3) 网络异常。';\n\n/** 有界并发执行异步任务 */\nasync function promisePool<T> (tasks: (() => Promise<T>)[], concurrency: number): Promise<T[]> {\n const results: T[] = new Array(tasks.length);\n let index = 0;\n\n async function worker (): Promise<void> {\n while (index < tasks.length) {\n const i = index++;\n\n results[i] = await tasks[i]();\n }\n }\n\n const workers = Array.from({ length: Math.min(concurrency, tasks.length) }, () => worker());\n\n await Promise.all(workers);\n\n return results;\n}\n\nasync function fetchAsBase64 (url: string): Promise<string> {\n const blob = await loadBlob(url);\n\n if (blob.size > MAX_RESOURCE_BYTES) {\n throw new Error(`fetchAsBase64: Resource \"${url}\" exceeds max size (${MAX_RESOURCE_BYTES} bytes), actual: ${blob.size}.`);\n }\n\n return new Promise<string>((resolve, reject) => {\n const reader = new FileReader();\n\n reader.onloadend = () => { resolve(reader.result as string); };\n reader.onerror = () => { reject(new Error('FileReader failed.')); };\n reader.readAsDataURL(blob);\n });\n}\n","import type { Engine, Renderer } from '@galacean/effects';\nimport { MaskableGraphic, effectsClass, math, logger, Texture, glContext } from '@galacean/effects';\nimport { renderDOMToImage } from './dom-to-texture';\n\nconst DATA_TYPE = 'DomContentComponent';\nconst MAX_TEXTURE_SIZE = 2048;\n/** 单次 setContent 接受的 HTML 最大字符数,避免攻击者传入超大字符串造成 OOM/CPU 耗尽 */\nconst MAX_HTML_LENGTH = 1024 * 1024; // 1M 字符\n/** alpha 修复用的极小值,避免 canvas 完全透明像素被某些浏览器优化为 0 */\nconst ALPHA_FIX_VALUE = 1 / 255;\n\n/** DOM 内容组件:将 HTML/CSS 渲染为纹理,自动检测并覆盖同 item 上其他 MaskableGraphic 组件纹理 */\n@effectsClass(DATA_TYPE)\nexport class DomContentComponent extends MaskableGraphic {\n htmlContent = '';\n contentWidth = 300;\n contentHeight = 200;\n contentScale = 1;\n\n /** 本组件独占持有的离屏 canvas,用于将 HTML 渲染结果转为纹理数据,onDestroy 时一并释放。 */\n canvas: HTMLCanvasElement;\n context: CanvasRenderingContext2D | null;\n isDirty: boolean;\n\n private rendering = false;\n /** 异步任务取消标记:onDestroy 后置为 true,用于让 await 中的 updateTexture 回到同步段时立刻退出,避免泄漏纹理或写已释放的 material。 */\n private asyncCancelled = false;\n private targetComponent: MaskableGraphic | null = null;\n /** 内容版本号:每次 setContent 自增,用于丢弃过期的异步渲染结果,防止慢请求覆盖快请求。 */\n private renderVersion = 0;\n /** 由本组件创建的纹理集合,仅这些纹理可被 dispose */\n private ownedTextures = new Set<Texture>();\n /** 保存 target 组件的原始纹理,用于组件销毁时恢复 */\n private originalTargetTexture: Texture | null = null;\n\n constructor (engine: Engine) {\n super(engine);\n this.isDirty = false;\n // 自建独占 canvas:本组件的 updateTexture 是异步的,且无短期归还需求,\n // 不走 canvasPool 以免占用其全局复用槽位影响其他组件(如 TextComponent)。\n this.canvas = document.createElement('canvas');\n this.context = this.canvas.getContext('2d', { willReadFrequently: true });\n }\n\n setContent (html: string, width?: number, height?: number, scale?: number): void {\n if (typeof html !== 'string') {\n logger.warn('DomContentComponent.setContent: html must be a string, ignored.');\n\n return;\n }\n if (html.length > MAX_HTML_LENGTH) {\n logger.warn(`DomContentComponent.setContent: html length (${html.length}) exceeds limit (${MAX_HTML_LENGTH}), truncated.`);\n this.htmlContent = html.slice(0, MAX_HTML_LENGTH);\n } else {\n this.htmlContent = html;\n }\n if (width !== undefined) { this.contentWidth = Math.max(0, width); }\n if (height !== undefined) { this.contentHeight = Math.max(0, height); }\n if (scale !== undefined) { this.contentScale = Math.max(0, scale); }\n this.isDirty = true;\n this.renderVersion++;\n }\n\n override onAwake (): void {\n this.material.setColor('_Color', new math.Color(1, 1, 1, 1));\n if (this.item) {\n for (const comp of this.item.getComponents(MaskableGraphic)) {\n if (comp !== this) {\n this.targetComponent = comp;\n logger.info(`DomContentComponent: Bound to ${comp.constructor.name}, overriding texture.`);\n\n break;\n }\n }\n }\n }\n\n override onUpdate (dt: number): void {\n super.onUpdate(dt);\n if (this.isDirty && !this.rendering) {\n this.isDirty = false;\n this.updateTexture().catch(e => {\n logger.error('DomContentComponent: Unhandled error in updateTexture.', e);\n });\n }\n }\n\n override render (renderer: Renderer): void {\n if (this.targetComponent) { return; }\n super.render(renderer);\n }\n\n override onDestroy (): void {\n super.onDestroy();\n // 先取消异步任务,再做资源清理,避免 in-flight Promise resolve 后仍写入已释放的资源。\n this.asyncCancelled = true;\n this.disposeOwnTexture();\n\n // 恢复 target 组件的原始纹理\n if (this.targetComponent?.renderer && this.originalTargetTexture) {\n void this.targetComponent.setTexture(this.originalTargetTexture);\n }\n\n // 仅 dispose 由本组件创建的纹理\n for (const tex of this.ownedTextures) {\n tex.dispose();\n }\n this.ownedTextures.clear();\n this.originalTargetTexture = null;\n\n if (this.canvas) {\n // 缩到 1x1 立即释放后端 ImageBuffer 显存,无需等待 GC。\n this.canvas.width = 1;\n this.canvas.height = 1;\n }\n this.targetComponent = null;\n }\n\n /**\n * 释放当前 renderer 上挂载的纹理(白纹理是引擎共享资源,不应释放)。\n */\n private disposeOwnTexture (): void {\n const texture = this.renderer.texture;\n\n if (texture && texture !== this.engine.whiteTexture) {\n texture.dispose();\n }\n }\n\n /**\n * 将一张 image 绘制到内部 canvas,并据此创建纹理写入到本组件 renderer / material。\n *\n * @param width - 纹理宽度(像素)\n * @param height - 纹理高度(像素)\n * @param flipY - 是否翻转 Y 轴;为 false 时通过 canvas 变换预先翻转\n * @param drawCallback - 实际绘制回调,接收已重置变换并清空的 2D 上下文\n */\n private renderImageToTexture (\n width: number,\n height: number,\n flipY: boolean,\n drawCallback: (ctx: CanvasRenderingContext2D) => void,\n ): void {\n if (!this.context || !this.canvas) {\n return;\n }\n\n const context = this.context;\n\n context.save();\n this.canvas.width = width;\n this.canvas.height = height;\n context.setTransform(1, 0, 0, 1, 0, 0);\n\n if (!flipY) {\n context.translate(0, height);\n context.scale(1, -1);\n }\n\n context.clearRect(0, 0, width, height);\n // 设置 alpha 修复用填充色(不实际输出像素,避免完全透明被某些浏览器优化)\n context.fillStyle = `rgba(255, 255, 255, ${ALPHA_FIX_VALUE})`;\n\n drawCallback(context);\n\n context.restore();\n\n const imageData = context.getImageData(0, 0, width, height);\n const texture = Texture.createWithData(\n this.engine,\n {\n data: new Uint8Array(imageData.data),\n width: imageData.width,\n height: imageData.height,\n },\n {\n flipY,\n magFilter: glContext.LINEAR,\n minFilter: glContext.LINEAR,\n wrapS: glContext.CLAMP_TO_EDGE,\n wrapT: glContext.CLAMP_TO_EDGE,\n },\n );\n\n this.disposeOwnTexture();\n this.renderer.texture = texture;\n this.material.setTexture('_MainTex', texture);\n this.ownedTextures.add(texture);\n }\n\n private async updateTexture (): Promise<void> {\n const startVersion = this.renderVersion;\n const { htmlContent, contentWidth, contentHeight, contentScale } = this;\n\n if (!htmlContent || contentWidth <= 0 || contentHeight <= 0) { return; }\n\n if (contentScale <= 0) {\n logger.warn('DomContentComponent: contentScale must be positive, skipping render.');\n\n return;\n }\n\n const texWidth = Math.min(Math.round(contentWidth * contentScale), MAX_TEXTURE_SIZE);\n const texHeight = Math.min(Math.round(contentHeight * contentScale), MAX_TEXTURE_SIZE);\n\n // 计算调整后的 scale,确保 renderDOMToImage 生成的图片不超过 MAX_TEXTURE_SIZE\n const cappedScaleX = texWidth / contentWidth;\n const cappedScaleY = texHeight / contentHeight;\n const cappedScale = Math.min(cappedScaleX, cappedScaleY);\n\n this.rendering = true;\n try {\n const image = await renderDOMToImage(htmlContent, contentWidth, contentHeight, cappedScale);\n\n // 竞态防护:组件已销毁、或已有更新的 setContent 调用,则丢弃本次过期结果。\n if (this.asyncCancelled || startVersion !== this.renderVersion) { return; }\n\n if (this.targetComponent) {\n this.updateTargetTexture(image, texWidth, texHeight);\n } else {\n this.renderImageToTexture(texWidth, texHeight, true, ctx => {\n ctx.drawImage(image, 0, 0, texWidth, texHeight);\n });\n }\n } catch (e) {\n logger.error('DomContentComponent: Failed to render texture.', e);\n } finally {\n this.rendering = false;\n // 排空脏标记:渲染期间若有新的 setContent,触发再次更新;销毁后则不再启动。\n if (this.isDirty && !this.asyncCancelled) {\n const pending = this.isDirty;\n\n this.isDirty = false;\n if (pending) {\n this.updateTexture().catch(e => {\n logger.error('DomContentComponent: Unhandled error in updateTexture.', e);\n });\n }\n }\n }\n }\n\n private updateTargetTexture (image: HTMLImageElement, width: number, height: number): void {\n if (!this.canvas || !this.context || !this.targetComponent) { return; }\n\n const ctx = this.context;\n const target = this.targetComponent;\n\n // 检查 target 的 renderer 是否存在\n if (!target.renderer) {\n logger.warn('DomContentComponent: targetComponent.renderer is null, skipping texture update.');\n\n return;\n }\n\n // 保存 target 的原始纹理(仅首次)\n const currentTexture = target.renderer.texture;\n\n if (this.originalTargetTexture === null) {\n this.originalTargetTexture = currentTexture ?? null;\n }\n\n // 仅 dispose 由本组件创建的纹理,不触碰原始/共享纹理\n if (currentTexture && this.ownedTextures.has(currentTexture)) {\n currentTexture.dispose();\n this.ownedTextures.delete(currentTexture);\n }\n\n ctx.save();\n this.canvas.width = width;\n this.canvas.height = height;\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.clearRect(0, 0, width, height);\n ctx.drawImage(image, 0, 0, width, height);\n ctx.restore();\n\n const imageData = ctx.getImageData(0, 0, width, height);\n\n const texture = Texture.createWithData(\n this.engine,\n {\n data: new Uint8Array(imageData.data),\n width: imageData.width,\n height: imageData.height,\n },\n {\n flipY: true,\n magFilter: glContext.LINEAR,\n minFilter: glContext.LINEAR,\n wrapS: glContext.CLAMP_TO_EDGE,\n wrapT: glContext.CLAMP_TO_EDGE,\n },\n );\n\n // 将新创建的纹理标记为本组件所有\n this.ownedTextures.add(texture);\n void target.setTexture(texture);\n }\n}\n","import * as EFFECTS from '@galacean/effects';\nimport { logger, registerPlugin } from '@galacean/effects';\nimport { DomContentLoader } from './dom-content-loader';\n\nexport * from './dom-content-component';\nexport * from './dom-content-loader';\nexport * from './dom-to-texture';\n\nexport const version = __VERSION__;\n\nregisterPlugin('dom-content', DomContentLoader);\n\nlogger.info(`Plugin dom-content version: ${version}.`);\n\nif (version !== EFFECTS.version) {\n console.error(\n '注意:请统一 DomContent 插件与 Player 版本,不统一的版本混用会有不可预知的后果!',\n '\\nAttention: Please ensure the DomContent plugin is synchronized with the Player version. Mixing and matching incompatible versions may result in unpredictable consequences!',\n );\n}\n"],"names":["_set_prototype_of","o","p","Object","setPrototypeOf","__proto__","_inherits","subClass","superClass","TypeError","prototype","create","constructor","value","writable","configurable","_is_native_reflect_construct","result","Boolean","valueOf","call","Reflect","construct","_","_construct","Parent","args","Class","a","push","apply","Constructor","Function","bind","instance","arguments","_get_prototype_of","getPrototypeOf","_is_native_function","fn","toString","indexOf","_wrap_native_super","_cache","Map","undefined","has","get","set","Wrapper","enumerable","DomContentLoader","name","Plugin","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","error","done","Promise","then","_async_to_generator","self","err","_array_like_to_array","arr","len","length","i","arr2","Array","_unsupported_iterable_to_array","minLen","n","slice","from","test","_create_for_of_iterator_helper_loose","allowArrayLike","it","Symbol","iterator","next","isArray","__decorate","decorators","target","desc","c","r","getOwnPropertyDescriptor","d","decorate","defineProperty","__generator","thisArg","body","label","sent","t","trys","ops","f","y","g","Iterator","verb","v","step","op","pop","e","SuppressedError","suppressed","message","Error","_extends","assign","source","hasOwnProperty","DEFAULT_RENDER_OPTIONS","inlineFonts","inlineImages","extractDefs","SVG_DEF_TAGS","Set","IMG_TAG_NAMES","MEDIA_TAG_NAMES","CSS_URL_REGEX","extractTagAttributes","html","tagNames","attrNames","out","lt","charCodeAt","isLetter","nameEnd","tagName","toLowerCase","tagLimit","Math","min","tagEnd","inDq","inSq","attrSection","attrName","extractAttrValueFromSection","extractStyleBlocks","lower","start","after","isStyleTag","openEnd","contentStart","closeStart","closeEnd","section","pos","idx","prevChar","isBoundary","quote","end","add","extractFontFaces","faces","regex","match","exec","index","braceCount","lastIndex","FONT_URL_REGEX","CSS_SVG_REF_REGEX","isInlineUrl","url","startsWith","stripInlineSVG","lowerHtml","isSvgTag","closeIdx","gt","renderDOMToImage","width","height","scale","options","opts","processedHtml","svgDefs","svgWidth","svgHeight","xhtmlSafeHtml","defsBlock","svg","Number","isFinite","logger","warn","loadImage","sanitizeSVGContent","inlineFontSources","inlineImageSources","extractSVGDefs","convertToXHTML","injectSVGNamespace","encodeURIComponent","DANGEROUS_TAG_NAMES","URL_ATTR_NAMES","DISALLOWED_PROTOCOLS","SAFE_DATA_PREFIXES","decodeHtmlEntities","replace","hex","String","fromCharCode","parseInt","dec","map","amp","quot","apos","colon","semi","tab","newline","nbsp","normalizeUrlAttr","normalized","decodeURIComponent","isDangerousUrl","some","proto","prefix","scanAndSanitize","ch","nextNext","isSlashLetter","isClose","nameStart","inDoubleQuote","inSingleQuote","tagOpen","cleanedAttrs","sanitizeAttrSection","cc","lowerName","attrEnd","hasValue","q","isEventHandler","isDangerousUrlAttr","tagSlice","hasXmlns","document","doc","implementation","createHTMLDocument","container","createElement","innerHTML","setAttribute","XMLSerializer","serializeToString","collectCSSUrls","urlSet","cssTexts","DOMParser","parseFromString","querySelectorAll","forEach","styleEl","textContent","el","styleAttr","getAttribute","styleAttrSet","text","rawUrlSet","urlToBase64","urls","size","MAX_URLS","promisePool","fetchUrl","fetchAsBase64","FETCH_FAIL_HINT","MAX_FETCH_CONCURRENCY","replaceUrls","fontFaces","face","urlMatch","html1","replaceTagAttrUrls","base64","targetAttrs","replaceAttrsInSection","valueStart","valueEnd","includes","htmlWithoutInlineSVG","ids","serializer","parts","id","getElementById","join","MAX_RESOURCE_BYTES","tasks","concurrency","results","workers","worker","all","blob","loadBlob","reader","FileReader","onloadend","onerror","readAsDataURL","DATA_TYPE","MAX_TEXTURE_SIZE","MAX_HTML_LENGTH","ALPHA_FIX_VALUE","DomContentComponent","engine","htmlContent","contentWidth","contentHeight","contentScale","rendering","asyncCancelled","targetComponent","renderVersion","ownedTextures","originalTargetTexture","isDirty","canvas","context","getContext","willReadFrequently","setContent","max","onAwake","material","setColor","math","Color","item","getComponents","MaskableGraphic","comp","onUpdate","dt","updateTexture","catch","render","renderer","onDestroy","disposeOwnTexture","setTexture","tex","dispose","clear","texture","whiteTexture","renderImageToTexture","flipY","drawCallback","save","setTransform","translate","clearRect","fillStyle","restore","imageData","getImageData","Texture","createWithData","data","Uint8Array","magFilter","glContext","LINEAR","minFilter","wrapS","CLAMP_TO_EDGE","wrapT","startVersion","texWidth","texHeight","cappedScaleX","cappedScaleY","cappedScale","image","pending","round","updateTargetTexture","ctx","drawImage","currentTexture","delete","effectsClass","version","registerPlugin","EFFECTS","console"],"mappings":"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"}