@galacean/engine-spine 0.0.0-experimental-2.0-migrate.4 → 0.0.0-experimental-2.0-migrate.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/main.js +2 -3
- package/dist/main.js.map +1 -1
- package/dist/module.js +2 -3
- package/dist/module.js.map +1 -1
- package/package.json +3 -3
- package/dist/browser.js +0 -967
- package/dist/browser.js.map +0 -1
- package/dist/browser.min.js +0 -2
- package/dist/browser.min.js.map +0 -1
package/dist/main.js
CHANGED
|
@@ -369,8 +369,7 @@ SpineMaterial._destinationAlphaBlendFactorProp = engine.ShaderProperty.getByName
|
|
|
369
369
|
};
|
|
370
370
|
/**
|
|
371
371
|
* @internal
|
|
372
|
-
*/
|
|
373
|
-
_proto._cloneTo = function _cloneTo(target) {
|
|
372
|
+
*/ _proto._onClone = function _onClone(target) {
|
|
374
373
|
// A renderer added manually and never bound to a resource has no skeleton/state to clone.
|
|
375
374
|
if (!this._skeleton || !this._state) return;
|
|
376
375
|
var runtime = getSpineRuntime();
|
|
@@ -948,7 +947,7 @@ for(var key in RendererObject){
|
|
|
948
947
|
for(var key1 in LoaderObject){
|
|
949
948
|
engine.Loader.registerClass(key1, LoaderObject[key1]);
|
|
950
949
|
}
|
|
951
|
-
var version = "0.0.0-experimental-2.0-migrate.
|
|
950
|
+
var version = "0.0.0-experimental-2.0-migrate.6";
|
|
952
951
|
console.log("Galacean spine version: " + version);
|
|
953
952
|
|
|
954
953
|
exports.LoaderUtils = LoaderUtils;
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","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/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs","../src/runtime/SpineRuntimeRegistry.ts","../src/loader/LoaderUtils.ts","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_create_class.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_instanceof.js","../src/enums/SpineBlendMode.ts","../src/renderer/SpineMaterial.ts","../src/SpineConstant.ts","../src/renderer/SpineAnimationRenderer.ts","../src/loader/SpineResource.ts","../src/loader/SpineLoader.ts","../src/loader/SpineAtlasLoader.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","/******************************************************************************\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","import type { ISpineRuntime } from \"./ISpineRuntime\";\n\nlet _runtime: ISpineRuntime | null = null;\n\n/**\n * Register the spine runtime backend. Called for its side effect when a spine core package\n * (e.g. `@galacean/engine-spine-core-4.2`) is imported. The last registration wins.\n */\nexport function registerSpineRuntime(runtime: ISpineRuntime): void {\n _runtime = runtime;\n}\n\n/**\n * Get the registered spine runtime backend.\n * @throws If no core package has been imported.\n */\nexport function getSpineRuntime(): ISpineRuntime {\n if (!_runtime) {\n throw new Error(\n \"@galacean/engine-spine: no spine runtime registered. Import a spine core package, \" +\n 'e.g. `import \"@galacean/engine-spine-core-4.2\"`.'\n );\n }\n return _runtime;\n}\n","import type { SkeletonData, TextureAtlas } from \"@esotericsoftware/spine-core\";\nimport { AssetPromise, AssetType, Engine, Texture2D } from \"@galacean/engine\";\nimport { getSpineRuntime } from \"../runtime/SpineRuntimeRegistry\";\n\n/**\n * @internal\n */\nexport class LoaderUtils {\n static createSkeletonData(\n skeletonRawData: string | ArrayBuffer,\n textureAtlas: TextureAtlas,\n skeletonDataScale: number\n ): SkeletonData {\n return getSpineRuntime().createSkeletonData(skeletonRawData, textureAtlas, skeletonDataScale);\n }\n\n static createTextureAtlas(atlasText: string, textures: Texture2D[]): TextureAtlas {\n return getSpineRuntime().createTextureAtlas(atlasText, textures);\n }\n\n static loadTexturesByPaths(\n imagePaths: string[],\n imageExtensions: string[],\n engine: Engine,\n reject: (reason?: any) => void\n ): Promise<Texture2D[]> {\n const resourceManager = engine.resourceManager;\n // @ts-ignore\n const virtualPathResourceMap = resourceManager._virtualPathResourceMap;\n const texturePromises: AssetPromise<Texture2D>[] = imagePaths.map((imagePath, index) => {\n const ext = imageExtensions[index];\n let imageLoaderType = AssetType.Texture;\n const virtualElement = virtualPathResourceMap[imagePath];\n if (virtualElement) {\n imageLoaderType = virtualElement.type;\n } else if (ext === \"ktx\") {\n imageLoaderType = AssetType.KTX;\n } else if (ext === \"ktx2\") {\n imageLoaderType = AssetType.KTX2;\n }\n return resourceManager.load({\n url: imagePath,\n type: imageLoaderType\n });\n });\n return Promise.all(texturePromises).catch((error) => {\n reject(error);\n return [];\n });\n }\n\n static loadTextureAtlas(atlasPath: string, engine: Engine, reject: (reason?: any) => void): Promise<TextureAtlas> {\n const baseUrl = LoaderUtils.getBaseUrl(atlasPath);\n const resourceManager = engine.resourceManager;\n let atlasText: string;\n return (\n resourceManager\n // @ts-ignore\n ._request(atlasPath, { type: \"text\" })\n .then((text: string) => {\n atlasText = text;\n const runtime = getSpineRuntime();\n const pageNames = runtime.parseAtlasPageNames(atlasText);\n const loadTexturePromises = pageNames.map((name) => {\n const textureUrl = baseUrl + name;\n return resourceManager.load({\n url: textureUrl,\n type: AssetType.Texture\n }) as unknown as Promise<Texture2D>;\n });\n return Promise.all(loadTexturePromises).then((textures) => {\n return runtime.createTextureAtlas(atlasText, textures);\n });\n })\n .catch((err) => {\n reject(new Error(`Spine Atlas: ${atlasPath} load error: ${err}`));\n return null;\n })\n );\n }\n\n static getBaseUrl(url: string): string {\n const isLocalPath = !/^(http|https|ftp):\\/\\/.*/i.test(url);\n if (isLocalPath) {\n const lastSlashIndex = url.lastIndexOf(\"/\");\n if (lastSlashIndex === -1) {\n return \"\";\n }\n return url.substring(0, lastSlashIndex + 1);\n } else {\n const parsedUrl = new URL(url);\n const basePath = parsedUrl.origin + parsedUrl.pathname;\n return basePath.endsWith(\"/\") ? basePath : basePath.substring(0, basePath.lastIndexOf(\"/\") + 1);\n }\n }\n}\n","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n\n if (\"value\" in descriptor) descriptor.writable = true;\n\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _create_class(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n\n return Constructor;\n}\nexport { _create_class as _ };\n","function _instanceof(left, right) {\n if (right != null && typeof Symbol !== \"undefined\" && right[Symbol.hasInstance]) {\n return !!right[Symbol.hasInstance](left);\n } else return left instanceof right;\n}\nexport { _instanceof as _ };\n","/**\n * Blend mode of a spine slot.\n *\n * @remarks\n * Version-neutral mirror of spine-core's `BlendMode` enum. The values match spine-core across all\n * supported runtime versions (3.8 / 4.2), so a core package can pass its `BlendMode` straight through.\n * Owning it here keeps the shared package free of any runtime spine-core dependency.\n */\nexport enum SpineBlendMode {\n Normal = 0,\n Additive = 1,\n Multiply = 2,\n Screen = 3\n}\n","import { BlendFactor, Engine, Material, Shader, ShaderProperty, Texture2D } from \"@galacean/engine\";\nimport { SpineBlendMode } from \"../enums/SpineBlendMode\";\n\nconst { SourceAlpha, One, DestinationColor, OneMinusSourceColor, OneMinusSourceAlpha } = BlendFactor;\n\n/**\n * Material for spine rendering.\n *\n * @remarks\n * The shader lives as a built-in engine shader (`2D/Spine`, registered by the engine's\n * `ShaderPool`). Per-material blend factors are driven through shader data properties\n * (`sourceColorBlendFactor` etc.), which the `2D/Spine` shader binds into its `BlendState`.\n * The constant render state (transparent queue, depth-write off, cull off) is declared in\n * the shader, so this material only varies the blend factors per blend mode.\n */\nexport class SpineMaterial extends Material {\n private static _sourceColorBlendFactorProp = ShaderProperty.getByName(\"sourceColorBlendFactor\");\n private static _destinationColorBlendFactorProp = ShaderProperty.getByName(\"destinationColorBlendFactor\");\n private static _sourceAlphaBlendFactorProp = ShaderProperty.getByName(\"sourceAlphaBlendFactor\");\n private static _destinationAlphaBlendFactorProp = ShaderProperty.getByName(\"destinationAlphaBlendFactor\");\n\n /**\n * @internal\n * The key this material is registered under in `SpineAnimationRenderer._materialCacheMap`.\n */\n _cacheKey: string;\n\n private _blendMode: SpineBlendMode = SpineBlendMode.Normal;\n\n /**\n * @internal\n */\n _setTintBlack(enabled: boolean) {\n if (enabled) {\n this.shaderData.enableMacro(\"RENDERER_TINT_BLACK\");\n } else {\n this.shaderData.disableMacro(\"RENDERER_TINT_BLACK\");\n }\n }\n\n /**\n * @internal\n */\n _setPremultipliedAlpha(enabled: boolean) {\n this.shaderData.setFloat(\"renderer_PremultipliedAlpha\", enabled ? 1 : 0);\n }\n\n /**\n * @internal\n */\n _setTexture(value: Texture2D) {\n this.shaderData.setTexture(\"material_SpineTexture\", value);\n }\n\n constructor(engine: Engine) {\n super(engine, Shader.find(\"2D/Spine\"));\n this._setBlendMode(SpineBlendMode.Normal, false);\n }\n\n /**\n * @internal\n */\n _setBlendMode(blendMode: SpineBlendMode, premultipliedAlpha: boolean) {\n const { shaderData } = this;\n const {\n _sourceColorBlendFactorProp: srcColor,\n _destinationColorBlendFactorProp: dstColor,\n _sourceAlphaBlendFactorProp: srcAlpha,\n _destinationAlphaBlendFactorProp: dstAlpha\n } = SpineMaterial;\n this._blendMode = blendMode;\n switch (blendMode) {\n case SpineBlendMode.Additive:\n shaderData.setInt(srcColor, premultipliedAlpha ? One : SourceAlpha);\n shaderData.setInt(dstColor, One);\n shaderData.setInt(srcAlpha, One);\n shaderData.setInt(dstAlpha, One);\n break;\n case SpineBlendMode.Multiply:\n shaderData.setInt(srcColor, DestinationColor);\n shaderData.setInt(dstColor, OneMinusSourceAlpha);\n shaderData.setInt(srcAlpha, One);\n shaderData.setInt(dstAlpha, OneMinusSourceAlpha);\n break;\n case SpineBlendMode.Screen:\n shaderData.setInt(srcColor, One);\n shaderData.setInt(dstColor, OneMinusSourceColor);\n shaderData.setInt(srcAlpha, One);\n shaderData.setInt(dstAlpha, OneMinusSourceColor);\n break;\n default: // Normal\n shaderData.setInt(srcColor, premultipliedAlpha ? One : SourceAlpha);\n shaderData.setInt(dstColor, OneMinusSourceAlpha);\n shaderData.setInt(srcAlpha, One);\n shaderData.setInt(dstAlpha, OneMinusSourceAlpha);\n break;\n }\n }\n\n /**\n * @internal\n */\n _getBlendMode(): SpineBlendMode {\n return this._blendMode;\n }\n}\n","/**\n * Vertex stride (float count per vertex) of the spine vertex layout owned by `SpineAnimationRenderer`.\n *\n * - `withoutTint`: [x, y, z, u, v, r, g, b, a] = 9 floats\n * - `withTint`: [x, y, z, u, v, r, g, b, a, dr, dg, db] = 12 floats\n *\n * Shared between the renderer (which declares the vertex elements and allocates buffers) and the\n * version-specific generator in a spine core package (which fills them), so the two never drift.\n */\nexport const SpineVertexStride = {\n withoutTint: 9,\n withTint: 12\n} as const;\n","import type { AnimationState, Skeleton } from \"@esotericsoftware/spine-core\";\nimport {\n BoundingBox,\n Buffer,\n BufferBindFlag,\n BufferUsage,\n DataObject,\n Entity,\n ignoreClone,\n IndexBufferBinding,\n IndexFormat,\n Material,\n Primitive,\n Renderer,\n SubPrimitive,\n Texture2D,\n Vector3,\n VertexBufferBinding,\n VertexElement,\n VertexElementFormat\n} from \"@galacean/engine\";\nimport { SpineResource } from \"../loader/SpineResource\";\nimport { SpineMaterial } from \"./SpineMaterial\";\nimport { SpineBlendMode } from \"../enums/SpineBlendMode\";\nimport { SpineVertexStride } from \"../SpineConstant\";\nimport { getSpineRuntime } from \"../runtime/SpineRuntimeRegistry\";\nimport type { ISpineRenderTarget } from \"../runtime/ISpineRenderTarget\";\n\n/**\n * Spine animation renderer, capable of rendering spine animations and providing functions for animation and skeleton manipulation.\n */\nexport class SpineAnimationRenderer extends Renderer implements ISpineRenderTarget {\n private static _positionVertexElement = new VertexElement(\"POSITION\", 0, VertexElementFormat.Vector3, 0);\n private static _lightColorVertexElement = new VertexElement(\"LIGHT_COLOR\", 12, VertexElementFormat.Vector4, 0);\n private static _uvVertexElement = new VertexElement(\"TEXCOORD_0\", 28, VertexElementFormat.Vector2, 0);\n private static _darkColorVertexElement = new VertexElement(\"DARK_COLOR\", 36, VertexElementFormat.Vector3, 0);\n\n /** @internal */\n static _materialCacheMap = new Map<string, SpineMaterial>();\n\n /**\n * The spacing between z layers in world units.\n */\n zSpacing = 0.001;\n\n /**\n * Whether to use premultiplied alpha mode for rendering.\n * When enabled, vertex color values are multiplied by the alpha channel.\n * @remarks\n If this option is enabled, the Spine editor must export textures with \"Premultiply Alpha\" checked.\n */\n premultipliedAlpha = false;\n\n private _tintBlack = false;\n\n /**\n * Whether to enable tint black feature for dark color tinting.\n *\n * @remarks Should be enabled when using \"Tint Black\" feature in Spine editor.\n */\n get tintBlack(): boolean {\n return this._tintBlack;\n }\n\n set tintBlack(value: boolean) {\n if (this._tintBlack !== value) {\n this._tintBlack = value;\n this._needResizeBuffer = true;\n }\n }\n\n /**\n * Default state for spine animation.\n * Contains the default animation name to be played, whether this animation should loop, the default skin name.\n */\n readonly defaultConfig: SpineAnimationDefaultConfig = new SpineAnimationDefaultConfig();\n\n /** @internal */\n @ignoreClone\n _primitive: Primitive;\n /** @internal */\n @ignoreClone\n _subPrimitives: SubPrimitive[] = [];\n /** @internal */\n @ignoreClone\n _indexBuffer: Buffer;\n /** @internal */\n @ignoreClone\n _vertexBuffer: Buffer;\n /** @internal */\n @ignoreClone\n _vertices = new Float32Array();\n /** @internal */\n @ignoreClone\n _indices = new Uint16Array();\n /** @internal */\n @ignoreClone\n _needResizeBuffer = false;\n /** @internal */\n @ignoreClone\n _vertexCount = 0;\n /** @internal */\n @ignoreClone\n _resource: SpineResource;\n /** @internal */\n @ignoreClone\n _localBounds = new BoundingBox(\n new Vector3(Infinity, Infinity, Infinity),\n new Vector3(-Infinity, -Infinity, -Infinity)\n );\n\n @ignoreClone\n private _skeleton: Skeleton;\n @ignoreClone\n private _state: AnimationState;\n\n /**\n * The Spine.AnimationState object of this SpineAnimationRenderer.\n * Manage, blend, and transition between multiple simultaneous animations effectively.\n */\n get state(): AnimationState {\n return this._state;\n }\n\n /**\n * The Spine.Skeleton object of this SpineAnimationRenderer.\n * Manipulate bone positions, rotations, scaling\n * and change spine attachment to customize character appearances dynamically during runtime.\n */\n get skeleton(): Skeleton {\n return this._skeleton;\n }\n\n /**\n * @internal\n */\n constructor(entity: Entity) {\n super(entity);\n const primitive = new Primitive(this.engine);\n this._primitive = primitive;\n this._primitive._addReferCount(1);\n primitive.addVertexElement(SpineAnimationRenderer._positionVertexElement);\n primitive.addVertexElement(SpineAnimationRenderer._lightColorVertexElement);\n primitive.addVertexElement(SpineAnimationRenderer._uvVertexElement);\n primitive.addVertexElement(SpineAnimationRenderer._darkColorVertexElement);\n }\n\n /**\n * @internal\n */\n // @ts-ignore\n override _onEnable(): void {\n this._applyDefaultConfig();\n }\n\n /**\n * @internal\n */\n override update(delta: number): void {\n const { _state: state, _skeleton: skeleton } = this;\n if (!state || !skeleton) return;\n const runtime = getSpineRuntime();\n runtime.updateState(skeleton, state, delta);\n runtime.buildPrimitive(skeleton, this);\n this._dirtyUpdateFlag |= RendererUpdateFlags.WorldVolume;\n }\n\n /**\n * @internal\n */\n // @ts-ignore\n override _render(context: any): void {\n const { _primitive, _subPrimitives, _materials: materials } = this;\n if (!_subPrimitives) return;\n // Engine 2.0 render-element model: one RenderElement per sub-primitive (no sub-element pool).\n const engine = this.engine as any;\n const priority = this.priority;\n const distanceForSort = (this as any)._distanceForSort;\n const renderElementPool = engine._renderElementPool;\n const renderPipeline = context.camera._renderPipeline;\n for (let i = 0, n = _subPrimitives.length; i < n; i++) {\n let material = materials[i];\n if (!material) {\n continue;\n }\n if (material.destroyed || material.shader.destroyed) {\n material = engine._basicResources.meshMagentaMaterial;\n }\n const renderElement = renderElementPool.get();\n renderElement.set(this, material, _primitive, _subPrimitives[i]);\n renderElement.priority = priority;\n renderElement.distanceForSort = distanceForSort;\n renderPipeline.pushRenderElement(context, renderElement);\n }\n }\n\n /**\n * @internal\n */\n // @ts-ignore\n override _updateBounds(worldBounds: BoundingBox): void {\n BoundingBox.transform(this._localBounds, this.entity.transform.worldMatrix, worldBounds);\n }\n\n /**\n * @internal\n */\n _setSkeleton(skeleton: Skeleton) {\n this._skeleton = skeleton;\n }\n\n /**\n * @internal\n */\n _setState(state: AnimationState) {\n this._state = state;\n }\n\n /**\n * @internal\n */\n // @ts-ignore\n override _cloneTo(target: SpineAnimationRenderer): void {\n // A renderer added manually and never bound to a resource has no skeleton/state to clone.\n if (!this._skeleton || !this._state) return;\n const runtime = getSpineRuntime();\n // Clones share the source's immutable SkeletonData and AnimationStateData (mix config),\n // so mix times configured on the resource propagate to every instance; only the\n // per-instance Skeleton / AnimationState are fresh.\n const skeleton = runtime.createSkeleton(this._skeleton.data);\n const state = runtime.createAnimationState(this._state.data);\n target._setSkeleton(skeleton);\n target._setState(state);\n }\n\n /**\n * @internal\n */\n override _onDestroy(): void {\n this._clearMaterialCache();\n this._subPrimitives.length = 0;\n const primitive = this._primitive;\n if (primitive) {\n primitive._addReferCount(-1);\n primitive.destroy();\n this._primitive = null;\n }\n // destroy() is refCount-guarded; the primitive released its buffer references above.\n this._vertexBuffer?.destroy();\n this._indexBuffer?.destroy();\n this._vertexBuffer = null;\n this._indexBuffer = null;\n this._resource = null;\n this._skeleton = null;\n this._state = null;\n super._onDestroy();\n }\n\n /**\n * @internal\n */\n _createAndBindBuffer(vertexCount: number): void {\n const { engine: _engine, _primitive } = this;\n const oldVertexBuffer = this._vertexBuffer;\n const oldIndexBuffer = this._indexBuffer;\n this._vertexCount = vertexCount;\n const stride = this.tintBlack ? SpineVertexStride.withTint : SpineVertexStride.withoutTint;\n this._vertices = new Float32Array(vertexCount * stride);\n this._indices = new Uint16Array(vertexCount);\n const vertexStride = stride << 2;\n const vertexBuffer = new Buffer(_engine, BufferBindFlag.VertexBuffer, this._vertices, BufferUsage.Dynamic);\n const indexBuffer = new Buffer(_engine, BufferBindFlag.IndexBuffer, this._indices, BufferUsage.Dynamic);\n this._indexBuffer = indexBuffer;\n this._vertexBuffer = vertexBuffer;\n const vertexBufferBinding = new VertexBufferBinding(vertexBuffer, vertexStride);\n this._primitive.setVertexBufferBinding(0, vertexBufferBinding);\n const indexBufferBinding = new IndexBufferBinding(indexBuffer, IndexFormat.UInt16);\n _primitive.setIndexBufferBinding(indexBufferBinding);\n // Rebinding released the primitive's references to the old buffers; destroy() is\n // refCount-guarded, so this frees their GPU resources without waiting for gc().\n oldVertexBuffer?.destroy();\n oldIndexBuffer?.destroy();\n }\n\n /**\n * @internal\n */\n _addSubPrimitive(subPrimitive: SubPrimitive): void {\n this._subPrimitives.push(subPrimitive);\n }\n\n /**\n * @internal\n */\n _clearSubPrimitives(): void {\n this._subPrimitives.length = 0;\n }\n\n /**\n * @internal\n */\n _getMaterial(texture: Texture2D, blendMode: SpineBlendMode): Material {\n const engine = this.engine;\n const premultipliedAlpha = this.premultipliedAlpha;\n const tintBlack = this.tintBlack;\n\n // tintBlack must be part of the key: it toggles a per-material macro, so renderers that\n // differ only in tintBlack cannot share a material.\n const key = `${texture.instanceId}_${blendMode}_${premultipliedAlpha ? 1 : 0}_${tintBlack ? 1 : 0}`;\n let cached = SpineAnimationRenderer._materialCacheMap.get(key);\n if (!cached) {\n cached = new SpineMaterial(engine);\n cached.isGCIgnored = true;\n cached._cacheKey = key;\n SpineAnimationRenderer._materialCacheMap.set(key, cached);\n }\n cached._setBlendMode(blendMode, premultipliedAlpha);\n cached._setTexture(texture);\n cached._setTintBlack(tintBlack);\n cached._setPremultipliedAlpha(premultipliedAlpha);\n return cached;\n }\n\n private _clearMaterialCache(): void {\n const materialCache = SpineAnimationRenderer._materialCacheMap;\n const materials = this._materials;\n for (let i = 0, len = materials.length; i < len; i += 1) {\n const material = materials[i];\n // `setMaterial` is public API, so entries may be user materials or null holes; a cached\n // SpineMaterial is removed by the exact key it was registered under (recomputing the key\n // from the renderer's current state would miss materials cached under older settings).\n if (material instanceof SpineMaterial) {\n materialCache.delete(material._cacheKey);\n }\n }\n }\n\n private _applyDefaultConfig(): void {\n const { skeleton, state } = this;\n if (skeleton && state) {\n const { animationName, skinName, loop } = this.defaultConfig;\n if (skinName !== \"default\") {\n skeleton.setSkinByName(skinName);\n skeleton.setToSetupPose();\n }\n if (animationName) {\n state.setAnimation(0, animationName, loop);\n }\n }\n }\n\n /**\n * * @deprecated This property is deprecated and will be removed in future releases.\n * Spine resource of current spine animation.\n */\n get resource(): SpineResource {\n return this._resource;\n }\n\n /**\n * * @deprecated This property is deprecated and will be removed in future releases.\n * Sets the Spine resource for the current animation. This property allows switching to a different `SpineResource`.\n *\n * @param value - The new `SpineResource` to be used for the current animation\n */\n set resource(value: SpineResource) {\n if (!value) {\n this._state = null;\n this._skeleton = null;\n this._resource = null;\n return;\n }\n this._resource = value;\n const { skeletonData, stateData } = value;\n const runtime = getSpineRuntime();\n const skeleton = runtime.createSkeleton(skeletonData);\n const state = runtime.createAnimationState(stateData);\n this._setSkeleton(skeleton);\n this._setState(state);\n this._applyDefaultConfig();\n }\n}\n\n/**\n * @internal\n */\nexport enum RendererUpdateFlags {\n /** Include world position and world bounds. */\n WorldVolume = 0x1\n}\n\n/**\n * Default state for spine animation.\n * Contains the default animation name to be played, whether this animation should loop,\n * the default skin name, and the default scale of the skeleton.\n */\nexport class SpineAnimationDefaultConfig extends DataObject {\n /**\n * Creates an instance of default config\n */\n constructor(\n /**\n * Whether the default animation should loop @defaultValue `true. The default animation should loop`\n */\n public loop: boolean = true,\n\n /**\n * The name of the default animation @defaultValue `null. Do not play any animation by default`\n */\n public animationName: string | null = null,\n\n /**\n * The name of the default skin @defaultValue `default`\n */\n public skinName: string = \"default\"\n ) {\n super();\n }\n}\n","import type {\n AnimationState,\n AnimationStateData,\n MeshAttachment,\n RegionAttachment,\n Skeleton,\n SkeletonData\n} from \"@esotericsoftware/spine-core\";\nimport { Engine, Entity, ReferResource, Texture2D } from \"@galacean/engine\";\nimport { SpineAnimationRenderer } from \"../renderer/SpineAnimationRenderer\";\nimport { getSpineRuntime } from \"../runtime/SpineRuntimeRegistry\";\n\n/**\n * Represents a resource that manages Spine animation data, textures, and entity templates for the Galacean engine.\n *\n */\nexport class SpineResource extends ReferResource {\n /** The url of spine resource. */\n readonly url: string;\n\n private _texturesInSpineAtlas: Texture2D[] = [];\n private _skeletonData: SkeletonData;\n private _stateData: AnimationStateData;\n\n private _template: Entity;\n\n constructor(engine: Engine, skeletonData: SkeletonData, url?: string) {\n super(engine);\n this.url = url;\n this._skeletonData = skeletonData;\n this._stateData = getSpineRuntime().createAnimationStateData(skeletonData);\n this._associationTextureInSkeletonData(skeletonData);\n this._createTemplate();\n }\n\n /**\n * The skeleton data associated with this Spine resource.\n */\n get skeletonData(): SkeletonData {\n return this._skeletonData;\n }\n\n /**\n * The animation state data associated with this Spine resource.\n */\n get stateData(): AnimationStateData {\n return this._stateData;\n }\n\n /**\n * Creates and returns a new instance of the spine entity template.\n * @returns A instance of the spine entity template\n */\n instantiate(): Entity {\n return this._template.clone();\n }\n\n protected override _onDestroy(): void {\n super._onDestroy();\n this._disassociationSuperResource();\n this._skeletonData = null;\n this._stateData = null;\n }\n\n private _createTemplate(): void {\n const name = this._extractFileName(this.url);\n const spineEntity = new Entity(this.engine, name);\n const spineAnimationRenderer = spineEntity.addComponent(SpineAnimationRenderer);\n const runtime = getSpineRuntime();\n const skeleton = runtime.createSkeleton(this._skeletonData);\n const state = runtime.createAnimationState(this._stateData);\n spineAnimationRenderer._setSkeleton(skeleton);\n spineAnimationRenderer._setState(state);\n // @ts-ignore\n spineEntity._markAsTemplate(this);\n this._template = spineEntity;\n }\n\n private _associationTextureInSkeletonData(skeletonData: SkeletonData): void {\n const { skins, slots } = skeletonData;\n const textures = this._texturesInSpineAtlas;\n\n for (let i = 0, n = skins.length; i < n; i++) {\n for (let j = 0, m = slots.length; j < m; j++) {\n const slot = slots[j];\n const attachment = skins[i].getAttachment(slot.index, slot.name);\n const texture = <Texture2D>(<RegionAttachment | MeshAttachment>attachment)?.region?.texture.getImage();\n if (texture) {\n if (!textures.includes(texture)) {\n textures.push(texture);\n // @ts-ignore\n texture._associationSuperResource(this);\n }\n }\n }\n }\n }\n\n private _disassociationSuperResource(): void {\n const textures = this._texturesInSpineAtlas;\n for (let i = 0, n = textures.length; i < n; i++) {\n // @ts-ignore\n textures[i]._disassociationSuperResource(this);\n }\n }\n\n private _extractFileName(url: string): string {\n if (!url) return \"Spine Entity\";\n const match = url.match(/\\/([^\\/]+?)(\\.[^\\/]*)?$/);\n return match ? match[1] : \"Spine Entity\";\n }\n}\n","import type { TextureAtlas } from \"@esotericsoftware/spine-core\";\nimport { AssetPromise, Loader, LoadItem, resourceLoader, ResourceManager } from \"@galacean/engine\";\nimport { LoaderUtils } from \"./LoaderUtils\";\nimport { SpineResource } from \"./SpineResource\";\n\ntype SpineAssetPath = {\n atlasPath: string;\n skeletonPath: string;\n extraPaths: string[];\n fileExtensions?: string | string[];\n};\n\ntype SpineLoadContext = {\n fileName: string;\n spineAssetPath: SpineAssetPath;\n skeletonRawData: string | ArrayBuffer;\n};\n\nexport type SpineLoaderParams = {\n fileExtensions?: string | string[];\n};\n\n// Registering \"json\" makes this loader the default for bare `.json` urls (extension mappings are\n// last-registration-wins, overriding the core JSONLoader) — matches the historical engine-spine\n// behavior. Pass an explicit `type` (e.g. AssetType.JSON) to load plain JSON once this package\n// is imported.\n@resourceLoader(\"Spine\", [\"json\", \"bin\", \"skel\"])\nexport class SpineLoader extends Loader<SpineResource> {\n private static _decoder = new TextDecoder(\"utf-8\");\n\n private static _groupAssetsByExtension(url: string, assetPath: SpineAssetPath) {\n const ext = SpineLoader._getUrlExtension(url);\n if (!ext) return;\n\n if ([\"skel\", \"json\", \"bin\"].includes(ext)) {\n assetPath.skeletonPath = url;\n } else if (ext === \"atlas\") {\n assetPath.atlasPath = url;\n } else {\n assetPath.extraPaths.push(url);\n }\n }\n\n private static _assignAssetPathsFromUrl(url: string, assetPath: SpineAssetPath, resourceManager: ResourceManager) {\n const ext = SpineLoader._getUrlExtension(url);\n if (!ext) return;\n assetPath.skeletonPath = url;\n\n // @ts-ignore\n const skeletonDependency = resourceManager?._virtualPathResourceMap?.[url]?.dependentAssetMap;\n if (skeletonDependency) {\n assetPath.atlasPath = skeletonDependency.atlas;\n } else {\n const extensionPattern: RegExp = /\\.(json|bin|skel)$/;\n let baseUrl: string;\n if (extensionPattern.test(url)) {\n baseUrl = url.replace(extensionPattern, \"\");\n }\n if (baseUrl) {\n const atlasUrl = baseUrl + \".atlas\";\n assetPath.atlasPath = atlasUrl;\n }\n }\n }\n\n static _getUrlExtension(url: string): string | null {\n const regex = /\\.(\\w+)(\\?|$)/;\n const match = url.match(regex);\n return match ? match[1] : null;\n }\n\n load(item: LoadItem, resourceManager: ResourceManager): AssetPromise<SpineResource> {\n return new AssetPromise((resolve, reject) => {\n const spineLoadContext: SpineLoadContext = {\n fileName: \"\",\n skeletonRawData: \"\",\n spineAssetPath: {\n atlasPath: null,\n skeletonPath: null,\n extraPaths: []\n }\n };\n const { spineAssetPath } = spineLoadContext;\n if (!item.urls) {\n SpineLoader._assignAssetPathsFromUrl(item.url, spineAssetPath, resourceManager);\n } else {\n const urls = item.urls;\n for (let i = 0, len = urls.length; i < len; i += 1) {\n const url = urls[i];\n SpineLoader._groupAssetsByExtension(url, spineAssetPath);\n }\n }\n\n const { skeletonPath, atlasPath } = spineAssetPath;\n if (!skeletonPath || !atlasPath) {\n reject(\n new Error(\n \"Failed to load spine assets. Please check the file path and ensure the file extension is included.\"\n )\n );\n return;\n }\n\n resourceManager\n // @ts-ignore\n ._request(skeletonPath, { type: \"arraybuffer\" })\n .then((skeletonRawData: ArrayBuffer) => {\n spineLoadContext.skeletonRawData = skeletonRawData;\n const skeletonString = SpineLoader._decoder.decode(skeletonRawData);\n if (skeletonString.startsWith(\"{\")) {\n spineLoadContext.skeletonRawData = skeletonString;\n }\n return this._loadAndCreateSpineResource(spineLoadContext, resourceManager);\n })\n .then(resolve)\n .catch(reject);\n });\n }\n\n private _loadAndCreateSpineResource(\n spineLoadContext: SpineLoadContext,\n resourceManager: ResourceManager\n ): Promise<SpineResource> {\n const { engine } = resourceManager;\n const { skeletonRawData, spineAssetPath } = spineLoadContext;\n const { skeletonPath, atlasPath, extraPaths } = spineAssetPath;\n\n const atlasLoadPromise =\n extraPaths.length === 0\n ? (resourceManager.load({\n url: atlasPath,\n type: \"SpineAtlas\"\n }) as unknown as Promise<TextureAtlas>)\n : (resourceManager.load({\n urls: [atlasPath].concat(extraPaths),\n type: \"SpineAtlas\"\n }) as unknown as Promise<TextureAtlas>);\n\n return atlasLoadPromise.then((textureAtlas) => {\n const skeletonData = LoaderUtils.createSkeletonData(skeletonRawData, textureAtlas, 0.01);\n return new SpineResource(engine, skeletonData, skeletonPath);\n });\n }\n}\n","import type { TextureAtlas } from \"@esotericsoftware/spine-core\";\nimport { AssetPromise, Loader, LoadItem, resourceLoader, ResourceManager } from \"@galacean/engine\";\nimport { LoaderUtils } from \"./LoaderUtils\";\nimport { SpineLoader } from \"./SpineLoader\";\n\ninterface SpineAtlasAsset {\n atlasPath: string;\n imagePaths?: string[];\n imageExtensions?: string[];\n}\n\n@resourceLoader(\"SpineAtlas\", [\"atlas\"], false)\nexport class SpineAtlasLoader extends Loader<TextureAtlas> {\n private static _groupAssetsByExtension(url: string, assetPath: SpineAtlasAsset, resourceManager: ResourceManager) {\n const ext = SpineLoader._getUrlExtension(url);\n if (!ext) return;\n\n if (ext === \"atlas\") {\n assetPath.atlasPath = url;\n }\n if ([\"png\", \"jpg\", \"webp\", \"jpeg\", \"ktx\", \"ktx2\"].includes(ext)) {\n assetPath.imagePaths.push(url);\n }\n }\n\n private static _assignAssetPathsFromUrl(url: string, assetPath: SpineAtlasAsset, resourceManager: ResourceManager) {\n const ext = SpineLoader._getUrlExtension(url);\n if (ext === \"atlas\") {\n assetPath.atlasPath = url;\n // @ts-ignore\n const atlasDependency = resourceManager?._virtualPathResourceMap?.[url]?.dependentAssetMap;\n if (atlasDependency) {\n for (const key in atlasDependency) {\n const imageVirtualPath = atlasDependency[key];\n assetPath.imagePaths.push(imageVirtualPath);\n }\n }\n }\n }\n\n load(item: LoadItem, resourceManager: ResourceManager): AssetPromise<TextureAtlas> {\n return new AssetPromise((resolve, reject) => {\n const engine = resourceManager.engine;\n const spineAtlasAsset = {\n atlasPath: \"\",\n imagePaths: [],\n imageExtensions: []\n };\n\n if (!item.urls) {\n SpineAtlasLoader._assignAssetPathsFromUrl(item.url, spineAtlasAsset, resourceManager);\n } else {\n const urls = item.urls;\n for (let i = 0, len = urls.length; i < len; i += 1) {\n const url = urls[i];\n SpineAtlasLoader._groupAssetsByExtension(url, spineAtlasAsset, resourceManager);\n }\n }\n\n const { atlasPath } = spineAtlasAsset;\n if (!atlasPath) {\n reject(\n new Error(\"Failed to load spine atlas. Please check the file path and ensure the file extension is included.\")\n );\n return;\n }\n\n const imagePaths = spineAtlasAsset.imagePaths;\n if (imagePaths.length === 0) {\n // Use the parsed atlas path: `item.url` is undefined when the asset came in via `item.urls`.\n LoaderUtils.loadTextureAtlas(atlasPath, engine, reject)\n .then((textureAtlas) => {\n resolve(textureAtlas);\n })\n .catch((err) => {\n reject(err);\n });\n } else {\n const { atlasPath, imagePaths, imageExtensions } = spineAtlasAsset;\n if (imagePaths.length > 0) {\n Promise.all([\n // @ts-ignore\n resourceManager._request(atlasPath, {\n type: \"text\"\n }) as Promise<string>,\n LoaderUtils.loadTexturesByPaths(imagePaths, imageExtensions, engine, reject)\n ])\n .then(([atlasText, textures]) => {\n const textureAtlas = LoaderUtils.createTextureAtlas(atlasText, textures);\n resolve(textureAtlas);\n })\n .catch((err) => {\n reject(err);\n });\n } else {\n LoaderUtils.loadTextureAtlas(atlasPath, engine, reject)\n .then((textureAtlas) => {\n resolve(textureAtlas);\n })\n .catch((err) => {\n reject(err);\n });\n }\n }\n });\n }\n}\n","import * as LoaderObject from \"./loader\";\nimport * as RendererObject from \"./renderer\";\nimport { Loader } from \"@galacean/engine\";\n\nfor (const key in RendererObject) {\n Loader.registerClass(key, RendererObject[key]);\n}\nfor (const key in LoaderObject) {\n Loader.registerClass(key, LoaderObject[key]);\n}\n\nexport * from \"./loader/index\";\nexport * from \"./renderer/index\";\nexport { SpineBlendMode } from \"./enums/SpineBlendMode\";\nexport { SpineVertexStride } from \"./SpineConstant\";\nexport { registerSpineRuntime, getSpineRuntime } from \"./runtime/SpineRuntimeRegistry\";\nexport type { ISpineRuntime } from \"./runtime/ISpineRuntime\";\nexport type { ISpineRenderTarget } from \"./runtime/ISpineRenderTarget\";\n\nexport const version = `__buildVersion`;\nconsole.log(`Galacean spine version: ${version}`);\n"],"names":["_runtime","registerSpineRuntime","runtime","getSpineRuntime","Error","LoaderUtils","createSkeletonData","skeletonRawData","textureAtlas","skeletonDataScale","createTextureAtlas","atlasText","textures","loadTexturesByPaths","imagePaths","imageExtensions","engine","reject","resourceManager","virtualPathResourceMap","_virtualPathResourceMap","texturePromises","map","imagePath","index","ext","imageLoaderType","AssetType","Texture","virtualElement","type","KTX","KTX2","load","url","Promise","all","catch","error","loadTextureAtlas","atlasPath","baseUrl","getBaseUrl","_request","then","text","pageNames","parseAtlasPageNames","loadTexturePromises","name","textureUrl","err","isLocalPath","test","lastSlashIndex","lastIndexOf","substring","parsedUrl","URL","basePath","origin","pathname","endsWith","SpineBlendMode","SourceAlpha","BlendFactor","One","DestinationColor","OneMinusSourceColor","OneMinusSourceAlpha","SpineMaterial","Shader","find","_blendMode","Normal","_setBlendMode","_setTintBlack","enabled","shaderData","enableMacro","disableMacro","_setPremultipliedAlpha","setFloat","_setTexture","value","setTexture","blendMode","premultipliedAlpha","_sourceColorBlendFactorProp","srcColor","_destinationColorBlendFactorProp","_sourceAlphaBlendFactorProp","srcAlpha","_destinationAlphaBlendFactorProp","dstAlpha","Additive","setInt","dstColor","Multiply","Screen","_getBlendMode","Material","ShaderProperty","getByName","SpineVertexStride","withoutTint","withTint","SpineAnimationRenderer","entity","zSpacing","_tintBlack","defaultConfig","SpineAnimationDefaultConfig","_subPrimitives","_vertices","Float32Array","_indices","Uint16Array","_needResizeBuffer","_vertexCount","_localBounds","BoundingBox","Vector3","Infinity","primitive","Primitive","_primitive","_addReferCount","addVertexElement","_positionVertexElement","_lightColorVertexElement","_uvVertexElement","_darkColorVertexElement","_onEnable","_applyDefaultConfig","update","delta","state","_state","_skeleton","skeleton","updateState","buildPrimitive","_dirtyUpdateFlag","_render","context","_materials","materials","priority","distanceForSort","_distanceForSort","renderElementPool","_renderElementPool","renderPipeline","camera","_renderPipeline","i","n","length","material","destroyed","shader","_basicResources","meshMagentaMaterial","renderElement","get","set","pushRenderElement","_updateBounds","worldBounds","transform","worldMatrix","_setSkeleton","_setState","_cloneTo","target","createSkeleton","data","createAnimationState","_onDestroy","_clearMaterialCache","destroy","_vertexBuffer","_indexBuffer","_resource","_createAndBindBuffer","vertexCount","_engine","oldVertexBuffer","oldIndexBuffer","stride","tintBlack","vertexStride","vertexBuffer","Buffer","BufferBindFlag","VertexBuffer","BufferUsage","Dynamic","indexBuffer","IndexBuffer","vertexBufferBinding","VertexBufferBinding","setVertexBufferBinding","indexBufferBinding","IndexBufferBinding","IndexFormat","UInt16","setIndexBufferBinding","_addSubPrimitive","subPrimitive","push","_clearSubPrimitives","_getMaterial","texture","key","instanceId","cached","_materialCacheMap","isGCIgnored","_cacheKey","materialCache","len","delete","animationName","skinName","loop","setSkinByName","setToSetupPose","setAnimation","resource","skeletonData","stateData","Renderer","VertexElement","VertexElementFormat","Vector4","Vector2","Map","DataObject","SpineResource","_texturesInSpineAtlas","_skeletonData","_stateData","createAnimationStateData","_associationTextureInSkeletonData","_createTemplate","instantiate","_template","clone","_disassociationSuperResource","_extractFileName","spineEntity","Entity","spineAnimationRenderer","addComponent","_markAsTemplate","skins","slots","j","m","slot","attachment","getAttachment","region","getImage","includes","_associationSuperResource","match","ReferResource","SpineLoader","item","AssetPromise","resolve","spineLoadContext","fileName","spineAssetPath","skeletonPath","extraPaths","urls","_assignAssetPathsFromUrl","_groupAssetsByExtension","skeletonString","_decoder","decode","startsWith","_loadAndCreateSpineResource","atlasLoadPromise","concat","assetPath","_getUrlExtension","skeletonDependency","dependentAssetMap","atlas","extensionPattern","replace","atlasUrl","regex","Loader","TextDecoder","SpineAtlasLoader","spineAtlasAsset","atlasDependency","imageVirtualPath","RendererObject","registerClass","LoaderObject","version","console","log"],"mappings":";;;;;;AAAA,SAAS,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE;AACjC,IAAI,iBAAiB,GAAG,MAAM,CAAC,cAAc,IAAI,SAAS,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE;AAC/E,QAAQ,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC;AACxB;AACA,QAAQ,OAAO,CAAC,CAAC;AACjB,KAAK,CAAC;AACN;AACA,IAAI,OAAO,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACnC;;ACNA,SAAS,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE;AACzC,IAAI,IAAI,OAAO,UAAU,KAAK,UAAU,IAAI,UAAU,KAAK,IAAI,EAAE;AACjE,QAAQ,MAAM,IAAI,SAAS,CAAC,oDAAoD,CAAC,CAAC;AAClF,KAAK;AACL;AACA,IAAI,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,IAAI,UAAU,CAAC,SAAS,EAAE,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AACrJ;AACA,IAAI,IAAI,UAAU,EAAE,iBAAiB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AAC5D;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAwCA;AACO,SAAS,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;AAC1D,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;AAC/H,EAAE,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACjI,OAAO,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;AACpJ,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAChE,CAAC;AA2QD;AACuB,OAAO,eAAe,KAAK,UAAU,GAAG,eAAe,GAAG,UAAU,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE;AACvH,EAAE,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AAC7B,EAAE,OAAO,CAAC,CAAC,IAAI,GAAG,iBAAiB,EAAE,CAAC,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC,CAAC;AACnF;;ACxUA,IAAIA,QAAiC,GAAA,IAAA,CAAA;AAErC;;;IAIO,SAASC,oBAAAA,CAAqBC,OAAsB,EAAA;IACzDF,QAAWE,GAAAA,OAAAA,CAAAA;AACb,CAAA;AAEA;;;AAGC,IACM,SAASC,eAAAA,GAAAA;AACd,IAAA,IAAI,CAACH,QAAU,EAAA;QACb,MAAM,IAAII,MACR,oFACE,GAAA,kDAAA,CAAA,CAAA;AAEN,KAAA;IACA,OAAOJ,QAAAA,CAAAA;AACT;;ACpBA;;IAGO,IAAMK,WAAN,iBAAA,WAAA;AAAMA,IAAAA,SAAAA,WAAAA,GAAAA,EAAAA;IAAAA,WACJC,CAAAA,kBAMN,GAND,SAAOA,kBAAAA,CACLC,eAAqC,EACrCC,YAA0B,EAC1BC,iBAAyB,EAAA;AAEzB,QAAA,OAAON,eAAkBG,EAAAA,CAAAA,kBAAkB,CAACC,eAAAA,EAAiBC,YAAcC,EAAAA,iBAAAA,CAAAA,CAAAA;AAC7E,KAAA,CAAA;AAPWJ,IAAAA,WAAAA,CASJK,kBAEN,GAFD,SAAOA,kBAAmBC,CAAAA,SAAiB,EAAEC,QAAqB,EAAA;QAChE,OAAOT,eAAAA,EAAAA,CAAkBO,kBAAkB,CAACC,SAAWC,EAAAA,QAAAA,CAAAA,CAAAA;AACzD,KAAA,CAAA;IAXWP,WAaJQ,CAAAA,mBA6BN,GA7BD,SAAOA,mBACLC,CAAAA,UAAoB,EACpBC,eAAyB,EACzBC,QAAc,EACdC,MAA8B,EAAA;QAE9B,IAAMC,eAAAA,GAAkBF,SAAOE,eAAe,CAAA;;QAE9C,IAAMC,sBAAAA,GAAyBD,gBAAgBE,uBAAuB,CAAA;AACtE,QAAA,IAAMC,eAA6CP,GAAAA,UAAAA,CAAWQ,GAAG,CAAC,SAACC,SAAWC,EAAAA,KAAAA,EAAAA;YAC5E,IAAMC,GAAAA,GAAMV,eAAe,CAACS,KAAM,CAAA,CAAA;YAClC,IAAIE,eAAAA,GAAkBC,iBAAUC,OAAO,CAAA;YACvC,IAAMC,cAAAA,GAAiBV,sBAAsB,CAACI,SAAU,CAAA,CAAA;AACxD,YAAA,IAAIM,cAAgB,EAAA;AAClBH,gBAAAA,eAAAA,GAAkBG,eAAeC,IAAI,CAAA;aAChC,MAAA,IAAIL,QAAQ,KAAO,EAAA;AACxBC,gBAAAA,eAAAA,GAAkBC,iBAAUI,GAAG,CAAA;aAC1B,MAAA,IAAIN,QAAQ,MAAQ,EAAA;AACzBC,gBAAAA,eAAAA,GAAkBC,iBAAUK,IAAI,CAAA;AAClC,aAAA;YACA,OAAOd,eAAAA,CAAgBe,IAAI,CAAC;gBAC1BC,GAAKX,EAAAA,SAAAA;gBACLO,IAAMJ,EAAAA,eAAAA;AACR,aAAA,CAAA,CAAA;AACF,SAAA,CAAA,CAAA;AACA,QAAA,OAAOS,QAAQC,GAAG,CAACf,eAAiBgB,CAAAA,CAAAA,KAAK,CAAC,SAACC,KAAAA,EAAAA;YACzCrB,MAAOqB,CAAAA,KAAAA,CAAAA,CAAAA;AACP,YAAA,OAAO,EAAE,CAAA;AACX,SAAA,CAAA,CAAA;AACF,KAAA,CAAA;IA1CWjC,WA4CJkC,CAAAA,gBA4BN,GA5BD,SAAOA,gBAAAA,CAAiBC,SAAiB,EAAExB,QAAc,EAAEC,MAA8B,EAAA;AACvF,QAAA,IAAMwB,OAAUpC,GA7CPA,WA6CmBqC,CAAAA,UAAU,CAACF,SAAAA,CAAAA,CAAAA;QACvC,IAAMtB,eAAAA,GAAkBF,SAAOE,eAAe,CAAA;QAC9C,IAAIP,SAAAA,CAAAA;AACJ,QAAA,OACEO,eACE;AACCyB,SAAAA,QAAQ,CAACH,SAAW,EAAA;YAAEV,IAAM,EAAA,MAAA;SAC5Bc,CAAAA,CAAAA,IAAI,CAAC,SAACC,IAAAA,EAAAA;YACLlC,SAAYkC,GAAAA,IAAAA,CAAAA;AACZ,YAAA,IAAM3C,OAAUC,GAAAA,eAAAA,EAAAA,CAAAA;YAChB,IAAM2C,SAAAA,GAAY5C,OAAQ6C,CAAAA,mBAAmB,CAACpC,SAAAA,CAAAA,CAAAA;AAC9C,YAAA,IAAMqC,mBAAsBF,GAAAA,SAAAA,CAAUxB,GAAG,CAAC,SAAC2B,IAAAA,EAAAA;AACzC,gBAAA,IAAMC,aAAaT,OAAUQ,GAAAA,IAAAA,CAAAA;gBAC7B,OAAO/B,eAAAA,CAAgBe,IAAI,CAAC;oBAC1BC,GAAKgB,EAAAA,UAAAA;AACLpB,oBAAAA,IAAAA,EAAMH,iBAAUC,OAAO;AACzB,iBAAA,CAAA,CAAA;AACF,aAAA,CAAA,CAAA;AACA,YAAA,OAAOO,QAAQC,GAAG,CAACY,mBAAqBJ,CAAAA,CAAAA,IAAI,CAAC,SAAChC,QAAAA,EAAAA;gBAC5C,OAAOV,OAAAA,CAAQQ,kBAAkB,CAACC,SAAWC,EAAAA,QAAAA,CAAAA,CAAAA;AAC/C,aAAA,CAAA,CAAA;SAEDyB,CAAAA,CAAAA,KAAK,CAAC,SAACc,GAAAA,EAAAA;AACNlC,YAAAA,MAAAA,CAAO,IAAIb,KAAAA,CAAM,eAAC,GAAeoC,YAAU,eAAeW,GAAAA,GAAAA,CAAAA,CAAAA,CAAAA;YAC1D,OAAO,IAAA,CAAA;AACT,SAAA,CAAA,CAAA;AAEN,KAAA,CAAA;AAxEW9C,IAAAA,WAAAA,CA0EJqC,UAaN,GAbD,SAAOA,UAAAA,CAAWR,GAAW,EAAA;AAC3B,QAAA,IAAMkB,WAAc,GAAA,CAAC,2BAA4BC,CAAAA,IAAI,CAACnB,GAAAA,CAAAA,CAAAA;AACtD,QAAA,IAAIkB,WAAa,EAAA;YACf,IAAME,cAAAA,GAAiBpB,GAAIqB,CAAAA,WAAW,CAAC,GAAA,CAAA,CAAA;YACvC,IAAID,cAAAA,KAAmB,CAAC,CAAG,EAAA;gBACzB,OAAO,EAAA,CAAA;AACT,aAAA;AACA,YAAA,OAAOpB,GAAIsB,CAAAA,SAAS,CAAC,CAAA,EAAGF,cAAiB,GAAA,CAAA,CAAA,CAAA;SACpC,MAAA;YACL,IAAMG,SAAAA,GAAY,IAAIC,GAAIxB,CAAAA,GAAAA,CAAAA,CAAAA;AAC1B,YAAA,IAAMyB,QAAWF,GAAAA,SAAAA,CAAUG,MAAM,GAAGH,UAAUI,QAAQ,CAAA;AACtD,YAAA,OAAOF,QAASG,CAAAA,QAAQ,CAAC,GAAA,CAAA,GAAOH,QAAWA,GAAAA,QAAAA,CAASH,SAAS,CAAC,CAAGG,EAAAA,QAAAA,CAASJ,WAAW,CAAC,GAAO,CAAA,GAAA,CAAA,CAAA,CAAA;AAC/F,SAAA;AACF,KAAA,CAAA;AAvFWlD,IAAAA,OAAAA,WAAAA,CAAAA;AAwFZ,CAAA;;AC/FD,SAAS,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE;AAC1C,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC3C,QAAQ,IAAI,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAClC,QAAQ,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,IAAI,KAAK,CAAC;AAC/D,QAAQ,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC;AACvC;AACA,QAAQ,IAAI,OAAO,IAAI,UAAU,EAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC9D;AACA,QAAQ,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;AAClE,KAAK;AACL,CAAC;AACD,SAAS,aAAa,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE;AAC7D,IAAI,IAAI,UAAU,EAAE,iBAAiB,CAAC,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;AACzE,IAAI,IAAI,WAAW,EAAE,iBAAiB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AACjE;AACA,IAAI,OAAO,WAAW,CAAC;AACvB;;AChBA,SAAS,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE;AAClC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE;AACrF,QAAQ,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC;AACjD,KAAK,MAAM,OAAO,IAAI,YAAY,KAAK,CAAC;AACxC;;ACJA;;;;;;;IAQO,IAAK0D,cAAAA,iBAAAA,SAAAA,cAAAA,EAAAA;;;;;AAAAA,IAAAA,OAAAA,cAAAA,CAAAA;AAKX,CAAA,CAAA,EAAA;;ACVD,IAAQC,WAAiFC,GAAAA,kBAAAA,CAAjFD,WAAaE,EAAAA,GAAAA,GAAoED,kBAApEC,CAAAA,GAAAA,EAAKC,gBAA+DF,GAAAA,kBAAAA,CAA/DE,gBAAkBC,EAAAA,mBAAAA,GAA6CH,kBAA7CG,CAAAA,mBAAAA,EAAqBC,sBAAwBJ,kBAAxBI,CAAAA,mBAAAA,CAAAA;AAEjE;;;;;;;;;IAUO,IAAMC,aAAN,iBAAA,SAAA,QAAA,EAAA;AAAMA,IAAAA,SAAAA,CAAAA,aAAAA,EAAAA,QAAAA,CAAAA,CAAAA;AAAAA,IAAAA,SAAAA,aAAAA,CAuCCtD,QAAc,EAAA;;AACxB,QAAA,KAAA,GAAA,QAAA,CAAA,IAAA,CAAA,IAAA,EAAMA,UAAQuD,aAAOC,CAAAA,IAAI,CAAC,UA5BpBC,CAAAA,CAAAA,IAAAA,IAAAA,EAAAA,KAAAA,CAAAA,UAAAA,GAA6BV,eAAeW,MAAM,CAAA;AA6BxD,QAAA,KAAA,CAAKC,aAAa,CAACZ,cAAeW,CAAAA,MAAM,EAAE,KAAA,CAAA,CAAA;;;AAzCjCJ,IAAAA,IAAAA,MAAAA,GAAAA,aAAAA,CAAAA,SAAAA,CAAAA;AAcX;;AAEC,MACDM,MAAAA,CAAAA,aAMC,GANDA,SAAAA,cAAcC,OAAgB,EAAA;AAC5B,QAAA,IAAIA,OAAS,EAAA;AACX,YAAA,IAAI,CAACC,UAAU,CAACC,WAAW,CAAC,qBAAA,CAAA,CAAA;SACvB,MAAA;AACL,YAAA,IAAI,CAACD,UAAU,CAACE,YAAY,CAAC,qBAAA,CAAA,CAAA;AAC/B,SAAA;AACF,KAAA,CAAA;AAEA;;AAEC,MACDC,MAAAA,CAAAA,sBAEC,GAFDA,SAAAA,uBAAuBJ,OAAgB,EAAA;AACrC,QAAA,IAAI,CAACC,UAAU,CAACI,QAAQ,CAAC,6BAAA,EAA+BL,UAAU,CAAI,GAAA,CAAA,CAAA,CAAA;AACxE,KAAA,CAAA;AAEA;;AAEC,MACDM,MAAAA,CAAAA,WAEC,GAFDA,SAAAA,YAAYC,KAAgB,EAAA;AAC1B,QAAA,IAAI,CAACN,UAAU,CAACO,UAAU,CAAC,uBAAyBD,EAAAA,KAAAA,CAAAA,CAAAA;AACtD,KAAA,CAAA;AAOA;;AAEC,MACDT,OAAAA,aAmCC,GAnCDA,SAAAA,aAAcW,CAAAA,SAAyB,EAAEC,kBAA2B,EAAA;QAClE,IAAQT,UAAe,GAAA,IAAI,CAAnBA,UAAAA,CAAAA;AACR,QAAA,IACEU,QAA6BC,GAlDtBnB,aAkDPkB,CAAAA,2BAAAA,EACAE,QAnDOpB,GAAAA,aAAAA,CAmDPoB,gCACAC,EAA6BC,QApDtBtB,GAAAA,aAAAA,CAoDPqB,2BACAE,EAAkCC,WArD3BxB,aAqDPuB,CAAAA,gCAAAA,CAAAA;QAEF,IAAI,CAACpB,UAAU,GAAGa,SAAAA,CAAAA;QAClB,OAAQA,SAAAA;AACN,YAAA,KAAKvB,eAAegC,QAAQ;AAC1BjB,gBAAAA,UAAAA,CAAWkB,MAAM,CAACP,QAAUF,EAAAA,kBAAAA,GAAqBrB,GAAMF,GAAAA,WAAAA,CAAAA,CAAAA;gBACvDc,UAAWkB,CAAAA,MAAM,CAACC,QAAU/B,EAAAA,GAAAA,CAAAA,CAAAA;gBAC5BY,UAAWkB,CAAAA,MAAM,CAACJ,QAAU1B,EAAAA,GAAAA,CAAAA,CAAAA;gBAC5BY,UAAWkB,CAAAA,MAAM,CAACF,QAAU5B,EAAAA,GAAAA,CAAAA,CAAAA;AAC5B,gBAAA,MAAA;AACF,YAAA,KAAKH,eAAemC,QAAQ;gBAC1BpB,UAAWkB,CAAAA,MAAM,CAACP,QAAUtB,EAAAA,gBAAAA,CAAAA,CAAAA;gBAC5BW,UAAWkB,CAAAA,MAAM,CAACC,QAAU5B,EAAAA,mBAAAA,CAAAA,CAAAA;gBAC5BS,UAAWkB,CAAAA,MAAM,CAACJ,QAAU1B,EAAAA,GAAAA,CAAAA,CAAAA;gBAC5BY,UAAWkB,CAAAA,MAAM,CAACF,QAAUzB,EAAAA,mBAAAA,CAAAA,CAAAA;AAC5B,gBAAA,MAAA;AACF,YAAA,KAAKN,eAAeoC,MAAM;gBACxBrB,UAAWkB,CAAAA,MAAM,CAACP,QAAUvB,EAAAA,GAAAA,CAAAA,CAAAA;gBAC5BY,UAAWkB,CAAAA,MAAM,CAACC,QAAU7B,EAAAA,mBAAAA,CAAAA,CAAAA;gBAC5BU,UAAWkB,CAAAA,MAAM,CAACJ,QAAU1B,EAAAA,GAAAA,CAAAA,CAAAA;gBAC5BY,UAAWkB,CAAAA,MAAM,CAACF,QAAU1B,EAAAA,mBAAAA,CAAAA,CAAAA;AAC5B,gBAAA,MAAA;AACF,YAAA;AACEU,gBAAAA,UAAAA,CAAWkB,MAAM,CAACP,QAAUF,EAAAA,kBAAAA,GAAqBrB,GAAMF,GAAAA,WAAAA,CAAAA,CAAAA;gBACvDc,UAAWkB,CAAAA,MAAM,CAACC,QAAU5B,EAAAA,mBAAAA,CAAAA,CAAAA;gBAC5BS,UAAWkB,CAAAA,MAAM,CAACJ,QAAU1B,EAAAA,GAAAA,CAAAA,CAAAA;gBAC5BY,UAAWkB,CAAAA,MAAM,CAACF,QAAUzB,EAAAA,mBAAAA,CAAAA,CAAAA;AAC5B,gBAAA,MAAA;AACJ,SAAA;AACF,KAAA,CAAA;AAEA;;MAGA+B,MAAAA,CAAAA,aAEC,GAFDA,SAAAA,aAAAA,GAAAA;QACE,OAAO,IAAI,CAAC3B,UAAU,CAAA;AACxB,KAAA,CAAA;AAzFWH,IAAAA,OAAAA,aAAAA,CAAAA;EAAsB+B,eA0FlC,EAAA;AA1FY/B,aACIkB,CAAAA,2BAAAA,GAA8Bc,qBAAeC,CAAAA,SAAS,CAAC,wBAAA,CAAA,CAAA;AAD3DjC,aAEIoB,CAAAA,gCAAAA,GAAmCY,qBAAeC,CAAAA,SAAS,CAAC,6BAAA,CAAA,CAAA;AAFhEjC,aAGIqB,CAAAA,2BAAAA,GAA8BW,qBAAeC,CAAAA,SAAS,CAAC,wBAAA,CAAA,CAAA;AAH3DjC,aAIIuB,CAAAA,gCAAAA,GAAmCS,qBAAeC,CAAAA,SAAS,CAAC,6BAAA,CAAA;;ACnB7E;;;;;;;;QASaC,iBAAoB,GAAA;IAC/BC,WAAa,EAAA,CAAA;IACbC,QAAU,EAAA,EAAA;AACZ;;ACgBA;;IAGO,IAAMC,sBAAN,iBAAA,SAAA,QAAA,EAAA;AAAMA,IAAAA,SAAAA,CAAAA,sBAAAA,EAAAA,QAAAA,CAAAA,CAAAA;AAAAA,IAAAA,SAAAA,sBAAAA,CAyGCC,MAAc,EAAA;;AACxB,QAAA,KAAA,GAAA,QAAA,CAAA,IAAA,CAAA,IAAA,EAAMA,MAjGR,CAAA,IAAA,IAAA;;AAEC,MAAA,KAAA,CACDC,WAAW,KAEX;;;;;MAMAtB,KAAAA,CAAAA,kBAAAA,GAAqB,KAEbuB,EAAAA,KAAAA,CAAAA,UAAAA,GAAa,KAkBrB;;;AAGC,MAAA,KAAA,CACQC,gBAA6C,IAAIC,2BAAAA,EAAAA,mBAO1DC,KAAAA,CAAAA,cAAAA,GAAiC,EAAE,yBASnCC,SAAY,GAAA,IAAIC,iCACF,KAAA,CAEdC,WAAW,IAAIC,WAAAA,EAAAA,mBAGfC,KAAAA,CAAAA,iBAAAA,GAAoB,KACpB,yBAEAC,YAAe,GAAA,CAAA,mBAMfC,KAAAA,CAAAA,YAAAA,GAAe,IAAIC,kBACjB,CAAA,IAAIC,eAAQC,QAAUA,EAAAA,QAAAA,EAAUA,WAChC,IAAID,cAAAA,CAAQ,CAACC,QAAU,EAAA,CAACA,UAAU,CAACA,QAAAA,CAAAA,CAAAA,CAAAA;AA8BnC,QAAA,IAAMC,SAAY,GAAA,IAAIC,gBAAU,CAAA,KAAA,CAAK7G,MAAM,CAAA,CAAA;AAC3C,QAAA,KAAA,CAAK8G,UAAU,GAAGF,SAAAA,CAAAA;QAClB,KAAKE,CAAAA,UAAU,CAACC,cAAc,CAAC,CAAA,CAAA,CAAA;AAC/BH,QAAAA,SAAAA,CAAUI,gBAAgB,CAACrB,sBA9GlBA,CA8GyCsB,sBAAsB,CAAA,CAAA;AACxEL,QAAAA,SAAAA,CAAUI,gBAAgB,CAACrB,sBA/GlBA,CA+GyCuB,wBAAwB,CAAA,CAAA;AAC1EN,QAAAA,SAAAA,CAAUI,gBAAgB,CAACrB,sBAhHlBA,CAgHyCwB,gBAAgB,CAAA,CAAA;AAClEP,QAAAA,SAAAA,CAAUI,gBAAgB,CAACrB,sBAjHlBA,CAiHyCyB,uBAAuB,CAAA,CAAA;;;AAjHhEzB,IAAAA,IAAAA,MAAAA,GAAAA,sBAAAA,CAAAA,SAAAA,CAAAA;AAoHX;;AAEC;IAED,MAAS0B,CAAAA,SAER,GAFD,SAASA,SAAAA,GAAAA;AACP,QAAA,IAAI,CAACC,mBAAmB,EAAA,CAAA;AAC1B,KAAA,CAAA;AAEA;;AAEC,MACD,MAASC,CAAAA,MAOR,GAPD,SAASA,OAAOC,KAAa,EAAA;QAC3B,IAA+C,KAAA,GAAA,IAAI,EAAnCC,QAA+B,KAAvCC,CAAAA,MAAAA,EAAeC,QAAWC,GAAa,KAAxBD,CAAAA,SAAAA,CAAAA;QACvB,IAAI,CAACF,KAAS,IAAA,CAACG,QAAU,EAAA,OAAA;AACzB,QAAA,IAAM1I,OAAUC,GAAAA,eAAAA,EAAAA,CAAAA;QAChBD,OAAQ2I,CAAAA,WAAW,CAACD,QAAAA,EAAUH,KAAOD,EAAAA,KAAAA,CAAAA,CAAAA;QACrCtI,OAAQ4I,CAAAA,cAAc,CAACF,QAAAA,EAAU,IAAI,CAAA,CAAA;AACrC,QAAA,IAAI,CAACG,gBAAgB,IAAA,CAAA,CAAA;AACvB,KAAA,CAAA;AAEA;;AAEC;AAED,IAAA,MAAA,CAASC,OAuBR,GAvBD,SAASA,OAAAA,CAAQC,OAAY,EAAA;QAC3B,IAA8D,KAAA,GAAA,IAAI,EAA1DnB,UAAsD,GAAA,KAAA,CAAtDA,UAAYb,EAAAA,cAAAA,GAA0C,KAA1CA,CAAAA,cAAAA,EAAgBiC,SAAYC,GAAc,KAA1BD,CAAAA,UAAAA,CAAAA;AACpC,QAAA,IAAI,CAACjC,cAAgB,EAAA,OAAA;;QAErB,IAAMjG,MAAAA,GAAS,IAAI,CAACA,MAAM,CAAA;QAC1B,IAAMoI,QAAAA,GAAW,IAAI,CAACA,QAAQ,CAAA;AAC9B,QAAA,IAAMC,eAAkB,GAAC,IAAI,CAASC,gBAAgB,CAAA;QACtD,IAAMC,iBAAAA,GAAoBvI,OAAOwI,kBAAkB,CAAA;AACnD,QAAA,IAAMC,cAAiBR,GAAAA,OAAAA,CAAQS,MAAM,CAACC,eAAe,CAAA;QACrD,IAAK,IAAIC,IAAI,CAAGC,EAAAA,CAAAA,GAAI5C,eAAe6C,MAAM,EAAEF,CAAIC,GAAAA,CAAAA,EAAGD,CAAK,EAAA,CAAA;YACrD,IAAIG,QAAAA,GAAWZ,SAAS,CAACS,CAAE,CAAA,CAAA;AAC3B,YAAA,IAAI,CAACG,QAAU,EAAA;AACb,gBAAA,SAAA;AACF,aAAA;AACA,YAAA,IAAIA,SAASC,SAAS,IAAID,SAASE,MAAM,CAACD,SAAS,EAAE;gBACnDD,QAAW/I,GAAAA,MAAAA,CAAOkJ,eAAe,CAACC,mBAAmB,CAAA;AACvD,aAAA;YACA,IAAMC,aAAAA,GAAgBb,kBAAkBc,GAAG,EAAA,CAAA;YAC3CD,aAAcE,CAAAA,GAAG,CAAC,IAAI,EAAEP,UAAUjC,UAAYb,EAAAA,cAAc,CAAC2C,CAAE,CAAA,CAAA,CAAA;AAC/DQ,YAAAA,aAAAA,CAAchB,QAAQ,GAAGA,QAAAA,CAAAA;AACzBgB,YAAAA,aAAAA,CAAcf,eAAe,GAAGA,eAAAA,CAAAA;YAChCI,cAAec,CAAAA,iBAAiB,CAACtB,OAASmB,EAAAA,aAAAA,CAAAA,CAAAA;AAC5C,SAAA;AACF,KAAA,CAAA;AAEA;;AAEC;AAED,IAAA,MAAA,CAASI,aAER,GAFD,SAASA,aAAAA,CAAcC,WAAwB,EAAA;AAC7ChD,QAAAA,kBAAAA,CAAYiD,SAAS,CAAC,IAAI,CAAClD,YAAY,EAAE,IAAI,CAACZ,MAAM,CAAC8D,SAAS,CAACC,WAAW,EAAEF,WAAAA,CAAAA,CAAAA;AAC9E,KAAA,CAAA;AAEA;;AAEC,MACDG,MAAAA,CAAAA,YAEC,GAFDA,SAAAA,aAAahC,QAAkB,EAAA;QAC7B,IAAI,CAACD,SAAS,GAAGC,QAAAA,CAAAA;AACnB,KAAA,CAAA;AAEA;;AAEC,MACDiC,MAAAA,CAAAA,SAEC,GAFDA,SAAAA,UAAUpC,KAAqB,EAAA;QAC7B,IAAI,CAACC,MAAM,GAAGD,KAAAA,CAAAA;AAChB,KAAA,CAAA;AAEA;;AAEC;AAED,IAAA,MAAA,CAASqC,QAWR,GAXD,SAASA,QAAAA,CAASC,MAA8B,EAAA;;QAE9C,IAAI,CAAC,IAAI,CAACpC,SAAS,IAAI,CAAC,IAAI,CAACD,MAAM,EAAE,OAAA;AACrC,QAAA,IAAMxI,OAAUC,GAAAA,eAAAA,EAAAA,CAAAA;;;;QAIhB,IAAMyI,QAAAA,GAAW1I,QAAQ8K,cAAc,CAAC,IAAI,CAACrC,SAAS,CAACsC,IAAI,CAAA,CAAA;QAC3D,IAAMxC,KAAAA,GAAQvI,QAAQgL,oBAAoB,CAAC,IAAI,CAACxC,MAAM,CAACuC,IAAI,CAAA,CAAA;AAC3DF,QAAAA,MAAAA,CAAOH,YAAY,CAAChC,QAAAA,CAAAA,CAAAA;AACpBmC,QAAAA,MAAAA,CAAOF,SAAS,CAACpC,KAAAA,CAAAA,CAAAA;AACnB,KAAA,CAAA;AAEA;;MAGA,MAAA,CAAS0C,UAkBR,GAlBD,SAASA,UAAAA,GAAAA;;QAUP,mBACA,EAAA,kBAAA,CAAA;AAVA,QAAA,IAAI,CAACC,mBAAmB,EAAA,CAAA;AACxB,QAAA,IAAI,CAACnE,cAAc,CAAC6C,MAAM,GAAG,CAAA,CAAA;QAC7B,IAAMlC,SAAAA,GAAY,IAAI,CAACE,UAAU,CAAA;AACjC,QAAA,IAAIF,SAAW,EAAA;YACbA,SAAUG,CAAAA,cAAc,CAAC,CAAC,CAAA,CAAA,CAAA;AAC1BH,YAAAA,SAAAA,CAAUyD,OAAO,EAAA,CAAA;YACjB,IAAI,CAACvD,UAAU,GAAG,IAAA,CAAA;AACpB,SAAA;AAEA,QAAA,CAAA,mBAAA,GAAA,IAAI,CAACwD,aAAa,KAAA,IAAA,GAAA,KAAA,CAAA,GAAlB,oBAAoBD,OAAO,EAAA,CAAA;AAC3B,QAAA,CAAA,kBAAA,GAAA,IAAI,CAACE,YAAY,KAAA,IAAA,GAAA,KAAA,CAAA,GAAjB,mBAAmBF,OAAO,EAAA,CAAA;QAC1B,IAAI,CAACC,aAAa,GAAG,IAAA,CAAA;QACrB,IAAI,CAACC,YAAY,GAAG,IAAA,CAAA;QACpB,IAAI,CAACC,SAAS,GAAG,IAAA,CAAA;QACjB,IAAI,CAAC7C,SAAS,GAAG,IAAA,CAAA;QACjB,IAAI,CAACD,MAAM,GAAG,IAAA,CAAA;AACd,QAAA,QAAA,CAAA,SAAA,CAAMyC,UAAD,CAAA,IAAA,CAAA,IAAA,CAAA,CAAA;AACP,KAAA,CAAA;AAEA;;AAEC,MACDM,MAAAA,CAAAA,oBAqBC,GArBDA,SAAAA,qBAAqBC,WAAmB,EAAA;QACtC,IAAwC,KAAA,GAAA,IAAI,EAA5BC,UAAwB,KAAhC3K,CAAAA,MAAAA,EAAiB8G,aAAe,KAAfA,CAAAA,UAAAA,CAAAA;QACzB,IAAM8D,eAAAA,GAAkB,IAAI,CAACN,aAAa,CAAA;QAC1C,IAAMO,cAAAA,GAAiB,IAAI,CAACN,YAAY,CAAA;QACxC,IAAI,CAAChE,YAAY,GAAGmE,WAAAA,CAAAA;QACpB,IAAMI,MAAAA,GAAS,IAAI,CAACC,SAAS,GAAGvF,iBAAkBE,CAAAA,QAAQ,GAAGF,iBAAAA,CAAkBC,WAAW,CAAA;AAC1F,QAAA,IAAI,CAACS,SAAS,GAAG,IAAIC,aAAauE,WAAcI,GAAAA,MAAAA,CAAAA,CAAAA;AAChD,QAAA,IAAI,CAAC1E,QAAQ,GAAG,IAAIC,WAAYqE,CAAAA,WAAAA,CAAAA,CAAAA;AAChC,QAAA,IAAMM,eAAeF,MAAU,IAAA,CAAA,CAAA;AAC/B,QAAA,IAAMG,YAAe,GAAA,IAAIC,aAAOP,CAAAA,OAAAA,EAASQ,qBAAeC,CAAAA,YAAY,EAAE,IAAI,CAAClF,SAAS,EAAEmF,kBAAAA,CAAYC,OAAO,CAAA,CAAA;AACzG,QAAA,IAAMC,WAAc,GAAA,IAAIL,aAAOP,CAAAA,OAAAA,EAASQ,qBAAeK,CAAAA,WAAW,EAAE,IAAI,CAACpF,QAAQ,EAAEiF,kBAAAA,CAAYC,OAAO,CAAA,CAAA;QACtG,IAAI,CAACf,YAAY,GAAGgB,WAAAA,CAAAA;QACpB,IAAI,CAACjB,aAAa,GAAGW,YAAAA,CAAAA;QACrB,IAAMQ,mBAAAA,GAAsB,IAAIC,0BAAAA,CAAoBT,YAAcD,EAAAA,YAAAA,CAAAA,CAAAA;AAClE,QAAA,IAAI,CAAClE,UAAU,CAAC6E,sBAAsB,CAAC,CAAGF,EAAAA,mBAAAA,CAAAA,CAAAA;AAC1C,QAAA,IAAMG,kBAAqB,GAAA,IAAIC,yBAAmBN,CAAAA,WAAAA,EAAaO,mBAAYC,MAAM,CAAA,CAAA;AACjFjF,QAAAA,UAAAA,CAAWkF,qBAAqB,CAACJ,kBAAAA,CAAAA,CAAAA;;;AAGjChB,QAAAA,eAAAA,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,gBAAiBP,OAAO,EAAA,CAAA;AACxBQ,QAAAA,cAAAA,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,eAAgBR,OAAO,EAAA,CAAA;AACzB,KAAA,CAAA;AAEA;;AAEC,MACD4B,MAAAA,CAAAA,gBAEC,GAFDA,SAAAA,iBAAiBC,YAA0B,EAAA;AACzC,QAAA,IAAI,CAACjG,cAAc,CAACkG,IAAI,CAACD,YAAAA,CAAAA,CAAAA;AAC3B,KAAA,CAAA;AAEA;;MAGAE,MAAAA,CAAAA,mBAEC,GAFDA,SAAAA,mBAAAA,GAAAA;AACE,QAAA,IAAI,CAACnG,cAAc,CAAC6C,MAAM,GAAG,CAAA,CAAA;AAC/B,KAAA,CAAA;AAEA;;AAEC,MACDuD,OAAAA,YAoBC,GApBDA,SAAAA,YAAaC,CAAAA,OAAkB,EAAEhI,SAAyB,EAAA;QACxD,IAAMtE,MAAAA,GAAS,IAAI,CAACA,MAAM,CAAA;QAC1B,IAAMuE,kBAAAA,GAAqB,IAAI,CAACA,kBAAkB,CAAA;QAClD,IAAMwG,SAAAA,GAAY,IAAI,CAACA,SAAS,CAAA;;;AAIhC,QAAA,IAAMwB,MAAM,OAAGD,CAAQE,UAAU,GAAC,MAAGlI,SAAU,GAAA,GAAA,IAAGC,kBAAAA,GAAqB,IAAI,CAAA,CAAA,GAAE,OAAGwG,SAAAA,GAAY,IAAI,CAAA,CAAA,CAAA;AAChG,QAAA,IAAI0B,SAAS9G,sBAtRJA,CAsR2B+G,iBAAiB,CAACrD,GAAG,CAACkD,GAAAA,CAAAA,CAAAA;AAC1D,QAAA,IAAI,CAACE,MAAQ,EAAA;AACXA,YAAAA,MAAAA,GAAS,IAAInJ,aAActD,CAAAA,MAAAA,CAAAA,CAAAA;AAC3ByM,YAAAA,MAAAA,CAAOE,WAAW,GAAG,IAAA,CAAA;AACrBF,YAAAA,MAAAA,CAAOG,SAAS,GAAGL,GAAAA,CAAAA;AA1RZ5G,YAAAA,sBAAAA,CA2RgB+G,iBAAiB,CAACpD,GAAG,CAACiD,GAAKE,EAAAA,MAAAA,CAAAA,CAAAA;AACpD,SAAA;QACAA,MAAO9I,CAAAA,aAAa,CAACW,SAAWC,EAAAA,kBAAAA,CAAAA,CAAAA;AAChCkI,QAAAA,MAAAA,CAAOtI,WAAW,CAACmI,OAAAA,CAAAA,CAAAA;AACnBG,QAAAA,MAAAA,CAAO7I,aAAa,CAACmH,SAAAA,CAAAA,CAAAA;AACrB0B,QAAAA,MAAAA,CAAOxI,sBAAsB,CAACM,kBAAAA,CAAAA,CAAAA;QAC9B,OAAOkI,MAAAA,CAAAA;AACT,KAAA,CAAA;IAEA,MAAQrC,CAAAA,mBAYP,GAZD,SAAQA,mBAAAA,GAAAA;QACN,IAAMyC,aAAAA,GAAgBlH,sBArSbA,CAqSoC+G,iBAAiB,CAAA;QAC9D,IAAMvE,SAAAA,GAAY,IAAI,CAACD,UAAU,CAAA;QACjC,IAAK,IAAIU,CAAI,GAAA,CAAA,EAAGkE,GAAM3E,GAAAA,SAAAA,CAAUW,MAAM,EAAEF,CAAAA,GAAIkE,GAAKlE,EAAAA,CAAAA,IAAK,CAAG,CAAA;YACvD,IAAMG,QAAAA,GAAWZ,SAAS,CAACS,CAAE,CAAA,CAAA;;;;YAI7B,IAAY,WAARG,CAAAA,QAAAA,EAAoBzF,aAAe,CAAA,EAAA;gBACrCuJ,aAAcE,CAAAA,MAAM,CAAChE,QAAAA,CAAS6D,SAAS,CAAA,CAAA;AACzC,aAAA;AACF,SAAA;AACF,KAAA,CAAA;IAEA,MAAQtF,CAAAA,mBAYP,GAZD,SAAQA,mBAAAA,GAAAA;AACN,QAAA,IAA4B,QAAA,IAAI,EAAxBM,WAAoB,KAApBA,CAAAA,QAAAA,EAAUH,QAAU,KAAVA,CAAAA,KAAAA,CAAAA;AAClB,QAAA,IAAIG,YAAYH,KAAO,EAAA;AACrB,YAAA,IAA0C,mBAAA,GAAA,IAAI,CAAC1B,aAAa,EAApDiH,aAAAA,GAAkC,mBAAlCA,CAAAA,aAAAA,EAAeC,QAAmB,GAAA,mBAAA,CAAnBA,QAAUC,EAAAA,IAAAA,GAAS,mBAATA,CAAAA,IAAAA,CAAAA;AACjC,YAAA,IAAID,aAAa,SAAW,EAAA;AAC1BrF,gBAAAA,QAAAA,CAASuF,aAAa,CAACF,QAAAA,CAAAA,CAAAA;AACvBrF,gBAAAA,QAAAA,CAASwF,cAAc,EAAA,CAAA;AACzB,aAAA;AACA,YAAA,IAAIJ,aAAe,EAAA;gBACjBvF,KAAM4F,CAAAA,YAAY,CAAC,CAAA,EAAGL,aAAeE,EAAAA,IAAAA,CAAAA,CAAAA;AACvC,aAAA;AACF,SAAA;AACF,KAAA,CAAA;AA9TWvH,IAAAA,aAAAA,CAAAA,sBAAAA,EAAAA;;YA6BPoF,GAAAA,EAAAA,WAAAA;;;;;MAAJ,SAAA,GAAA,GAAA;gBACE,OAAO,IAAI,CAACjF,UAAU,CAAA;AACxB,aAAA;AAEA,YAAA,GAAA,EAAA,SAAA,GAAA,CAAc1B,KAAc,EAAA;AAC1B,gBAAA,IAAI,IAAI,CAAC0B,UAAU,KAAK1B,KAAO,EAAA;oBAC7B,IAAI,CAAC0B,UAAU,GAAG1B,KAAAA,CAAAA;oBAClB,IAAI,CAACkC,iBAAiB,GAAG,IAAA,CAAA;AAC3B,iBAAA;AACF,aAAA;;;YAmDImB,GAAAA,EAAAA,OAAAA;;;;MAAJ,SAAA,GAAA,GAAA;gBACE,OAAO,IAAI,CAACC,MAAM,CAAA;AACpB,aAAA;;;YAOIE,GAAAA,EAAAA,UAAAA;;;;;MAAJ,SAAA,GAAA,GAAA;gBACE,OAAO,IAAI,CAACD,SAAS,CAAA;AACvB,aAAA;;;YAgOI2F,GAAAA,EAAAA,UAAAA;;;;MAAJ,SAAA,GAAA,GAAA;gBACE,OAAO,IAAI,CAAC9C,SAAS,CAAA;AACvB,aAAA;;;;;;AAOC,MACD,aAAapG,KAAoB,EAAA;AAC/B,gBAAA,IAAI,CAACA,KAAO,EAAA;oBACV,IAAI,CAACsD,MAAM,GAAG,IAAA,CAAA;oBACd,IAAI,CAACC,SAAS,GAAG,IAAA,CAAA;oBACjB,IAAI,CAAC6C,SAAS,GAAG,IAAA,CAAA;AACjB,oBAAA,OAAA;AACF,iBAAA;gBACA,IAAI,CAACA,SAAS,GAAGpG,KAAAA,CAAAA;AACjB,gBAAA,IAAQmJ,YAA4BnJ,GAAAA,KAAAA,CAA5BmJ,YAAcC,EAAAA,SAAAA,GAAcpJ,KAAdoJ,CAAAA,SAAAA,CAAAA;AACtB,gBAAA,IAAMtO,OAAUC,GAAAA,eAAAA,EAAAA,CAAAA;gBAChB,IAAMyI,QAAAA,GAAW1I,OAAQ8K,CAAAA,cAAc,CAACuD,YAAAA,CAAAA,CAAAA;gBACxC,IAAM9F,KAAAA,GAAQvI,OAAQgL,CAAAA,oBAAoB,CAACsD,SAAAA,CAAAA,CAAAA;gBAC3C,IAAI,CAAC5D,YAAY,CAAChC,QAAAA,CAAAA,CAAAA;gBAClB,IAAI,CAACiC,SAAS,CAACpC,KAAAA,CAAAA,CAAAA;AACf,gBAAA,IAAI,CAACH,mBAAmB,EAAA,CAAA;AAC1B,aAAA;;;AA7VW3B,IAAAA,OAAAA,sBAAAA,CAAAA;EAA+B8H,eA8V3C,EAAA;AA9VY9H,sBAAAA,CACIsB,yBAAyB,IAAIyG,oBAAAA,CAAc,YAAY,CAAGC,EAAAA,0BAAAA,CAAoBjH,OAAO,EAAE,CAAA,CAAA,CAAA;AAD3Ff,sBAAAA,CAEIuB,2BAA2B,IAAIwG,oBAAAA,CAAc,eAAe,EAAIC,EAAAA,0BAAAA,CAAoBC,OAAO,EAAE,CAAA,CAAA,CAAA;AAFjGjI,sBAAAA,CAGIwB,mBAAmB,IAAIuG,oBAAAA,CAAc,cAAc,EAAIC,EAAAA,0BAAAA,CAAoBE,OAAO,EAAE,CAAA,CAAA,CAAA;AAHxFlI,sBAAAA,CAIIyB,0BAA0B,IAAIsG,oBAAAA,CAAc,cAAc,EAAIC,EAAAA,0BAAAA,CAAoBjH,OAAO,EAAE,CAAA,CAAA,CAAA;AAE1G,iBANWf,sBAOJ+G,CAAAA,iBAAAA,GAAoB,IAAIoB,GAAAA,EAAAA,CAAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiWjC;;;;IAKO,IAAM9H,2BAAN,iBAAA,SAAA,UAAA,EAAA;AAAMA,IAAAA,SAAAA,CAAAA,2BAAAA,EAAAA,UAAAA,CAAAA,CAAAA;aAAAA,2BAKT;;QAGOkH,IAAoB;;QAKpBF,aAAmC;;AAIzC,QACD,QAAmC,EAAA;AAVnC,QAAA,IAAOE,iBAAAA,IAAgB,GAAA,IAAA,CAAA;AAKvB,QAAA,IAAOF,0BAAAA,aAA+B,GAAA,IAAA,CAAA;AAKtC,QAAA,IAAOC,qBAAAA,QAAmB,GAAA,SAAA,CAAA;;AAE1B,QAAA,KAAA,GAAA,UAAA,CAAA,IAAA,CAAA,IAAA,CAAA,IAAA,IAAA,EAAA,KAAA,CAZOC,IAAAA,GAAAA,IAAAA,EAAAA,KAAAA,CAKAF,aAAAA,GAAAA,aAAAA,EAAAA,KAAAA,CAKAC,QAAAA,GAAAA,QAAAA,CAAAA;;;AAlBEjH,IAAAA,OAAAA,2BAAAA,CAAAA;EAAoC+H,iBAsBhD,CAAA;;ACtZD;;;IAIO,IAAMC,aAAN,iBAAA,SAAA,aAAA,EAAA;AAAMA,IAAAA,SAAAA,CAAAA,aAAAA,EAAAA,aAAAA,CAAAA,CAAAA;AAAAA,IAAAA,SAAAA,aAAAA,CAUChO,MAAc,EAAEuN,YAA0B,EAAErM,GAAY,EAAA;;gBAClE,aAAMlB,CAAAA,IAAAA,CAAAA,IAAAA,EAAAA,MAAAA,CAAAA,IAAAA,IAAAA,EAAAA,KAAAA,CAPAiO,wBAAqC,EAAE,CAAA;AAQ7C,QAAA,KAAA,CAAK/M,GAAG,GAAGA,GAAAA,CAAAA;AACX,QAAA,KAAA,CAAKgN,aAAa,GAAGX,YAAAA,CAAAA;AACrB,QAAA,KAAA,CAAKY,UAAU,GAAGhP,eAAkBiP,EAAAA,CAAAA,wBAAwB,CAACb,YAAAA,CAAAA,CAAAA;AAC7D,QAAA,KAAA,CAAKc,iCAAiC,CAACd,YAAAA,CAAAA,CAAAA;AACvC,QAAA,KAAA,CAAKe,eAAe,EAAA,CAAA;;;AAhBXN,IAAAA,IAAAA,MAAAA,GAAAA,aAAAA,CAAAA,SAAAA,CAAAA;AAiCX;;;MAIAO,MAAAA,CAAAA,WAEC,GAFDA,SAAAA,WAAAA,GAAAA;AACE,QAAA,OAAO,IAAI,CAACC,SAAS,CAACC,KAAK,EAAA,CAAA;AAC7B,KAAA,CAAA;IAEA,MAAmBtE,CAAAA,UAKlB,GALD,SAAmBA,UAAAA,GAAAA;AACjB,QAAA,aAAA,CAAA,SAAA,CAAMA,UAAD,CAAA,IAAA,CAAA,IAAA,CAAA,CAAA;AACL,QAAA,IAAI,CAACuE,4BAA4B,EAAA,CAAA;QACjC,IAAI,CAACR,aAAa,GAAG,IAAA,CAAA;QACrB,IAAI,CAACC,UAAU,GAAG,IAAA,CAAA;AACpB,KAAA,CAAA;IAEA,MAAQG,CAAAA,eAYP,GAZD,SAAQA,eAAAA,GAAAA;AACN,QAAA,IAAMrM,OAAO,IAAI,CAAC0M,gBAAgB,CAAC,IAAI,CAACzN,GAAG,CAAA,CAAA;AAC3C,QAAA,IAAM0N,cAAc,IAAIC,aAAAA,CAAO,IAAI,CAAC7O,MAAM,EAAEiC,IAAAA,CAAAA,CAAAA;QAC5C,IAAM6M,sBAAAA,GAAyBF,WAAYG,CAAAA,YAAY,CAACpJ,sBAAAA,CAAAA,CAAAA;AACxD,QAAA,IAAMzG,OAAUC,GAAAA,eAAAA,EAAAA,CAAAA;AAChB,QAAA,IAAMyI,WAAW1I,OAAQ8K,CAAAA,cAAc,CAAC,IAAI,CAACkE,aAAa,CAAA,CAAA;AAC1D,QAAA,IAAMzG,QAAQvI,OAAQgL,CAAAA,oBAAoB,CAAC,IAAI,CAACiE,UAAU,CAAA,CAAA;AAC1DW,QAAAA,sBAAAA,CAAuBlF,YAAY,CAAChC,QAAAA,CAAAA,CAAAA;AACpCkH,QAAAA,sBAAAA,CAAuBjF,SAAS,CAACpC,KAAAA,CAAAA,CAAAA;;QAEjCmH,WAAYI,CAAAA,eAAe,CAAC,IAAI,CAAA,CAAA;QAChC,IAAI,CAACR,SAAS,GAAGI,WAAAA,CAAAA;AACnB,KAAA,CAAA;AAEA,IAAA,MAAA,CAAQP,iCAkBP,GAlBD,SAAQA,iCAAAA,CAAkCd,YAA0B,EAAA;AAClE,QAAA,IAAQ0B,KAAiB1B,GAAAA,YAAAA,CAAjB0B,KAAOC,EAAAA,KAAAA,GAAU3B,YAAV2B,CAAAA,KAAAA,CAAAA;QACf,IAAMtP,QAAAA,GAAW,IAAI,CAACqO,qBAAqB,CAAA;QAE3C,IAAK,IAAIrF,IAAI,CAAGC,EAAAA,CAAAA,GAAIoG,MAAMnG,MAAM,EAAEF,CAAIC,GAAAA,CAAAA,EAAGD,CAAK,EAAA,CAAA;YAC5C,IAAK,IAAIuG,IAAI,CAAGC,EAAAA,CAAAA,GAAIF,MAAMpG,MAAM,EAAEqG,CAAIC,GAAAA,CAAAA,EAAGD,CAAK,EAAA,CAAA;AAGjB,gBAAA,IAAA,kBAAA,CAAA;gBAF3B,IAAME,IAAAA,GAAOH,KAAK,CAACC,CAAE,CAAA,CAAA;gBACrB,IAAMG,UAAAA,GAAaL,KAAK,CAACrG,CAAE,CAAA,CAAC2G,aAAa,CAACF,IAAK7O,CAAAA,KAAK,EAAE6O,IAAAA,CAAKpN,IAAI,CAAA,CAAA;gBAC/D,IAAMqK,OAAAA,GAAyDgD,UAApC,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,CAAA,kBAAA,GAAA,UAAoCA,CAAaE,MAAM,KAAvD,IAAA,GAAA,KAAA,CAAA,GAAA,kBAAA,CAAyDlD,OAAO,CAACmD,QAAQ,EAAA,CAAA;AACpG,gBAAA,IAAInD,OAAS,EAAA;AACX,oBAAA,IAAI,CAAC1M,QAAAA,CAAS8P,QAAQ,CAACpD,OAAU,CAAA,EAAA;AAC/B1M,wBAAAA,QAAAA,CAASuM,IAAI,CAACG,OAAAA,CAAAA,CAAAA;;wBAEdA,OAAQqD,CAAAA,yBAAyB,CAAC,IAAI,CAAA,CAAA;AACxC,qBAAA;AACF,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA,CAAA;IAEA,MAAQjB,CAAAA,4BAMP,GAND,SAAQA,4BAAAA,GAAAA;QACN,IAAM9O,QAAAA,GAAW,IAAI,CAACqO,qBAAqB,CAAA;QAC3C,IAAK,IAAIrF,IAAI,CAAGC,EAAAA,CAAAA,GAAIjJ,SAASkJ,MAAM,EAAEF,CAAIC,GAAAA,CAAAA,EAAGD,CAAK,EAAA,CAAA;;AAE/ChJ,YAAAA,QAAQ,CAACgJ,CAAAA,CAAE,CAAC8F,4BAA4B,CAAC,IAAI,CAAA,CAAA;AAC/C,SAAA;AACF,KAAA,CAAA;AAEA,IAAA,MAAA,CAAQC,gBAIP,GAJD,SAAQA,gBAAAA,CAAiBzN,GAAW,EAAA;QAClC,IAAI,CAACA,KAAK,OAAO,cAAA,CAAA;QACjB,IAAM0O,KAAAA,GAAQ1O,GAAI0O,CAAAA,KAAK,CAAC,yBAAA,CAAA,CAAA;AACxB,QAAA,OAAOA,KAAQA,GAAAA,KAAK,CAAC,CAAA,CAAE,GAAG,cAAA,CAAA;AAC5B,KAAA,CAAA;AA9FW5B,IAAAA,aAAAA,CAAAA,aAAAA,EAAAA;;YAsBPT,GAAAA,EAAAA,cAAAA;;;MAAJ,SAAA,GAAA,GAAA;gBACE,OAAO,IAAI,CAACW,aAAa,CAAA;AAC3B,aAAA;;;YAKIV,GAAAA,EAAAA,WAAAA;;;MAAJ,SAAA,GAAA,GAAA;gBACE,OAAO,IAAI,CAACW,UAAU,CAAA;AACxB,aAAA;;;AA/BWH,IAAAA,OAAAA,aAAAA,CAAAA;EAAsB6B,oBA+FlC;;ACpFM,IAAA,WAAA,iBAAA,SAAA,MAAA,EAAA;AAAMC,IAAAA,SAAAA,CAAAA,WAAAA,EAAAA,MAAAA,CAAAA,CAAAA;AAAAA,IAAAA,SAAAA,WAAAA,GAAAA;;;AAAAA,IAAAA,IAAAA,MAAAA,GAAAA,WAAAA,CAAAA,SAAAA,CAAAA;AA4CX7O,IAAAA,MAAAA,CAAAA,IA8CC,GA9CDA,SAAAA,IAAK8O,CAAAA,IAAc,EAAE7P,eAAgC,EAAA;;QACnD,OAAO,IAAI8P,mBAAa,CAAA,SAACC,OAAShQ,EAAAA,MAAAA,EAAAA;AAChC,YAAA,IAAMiQ,gBAAqC,GAAA;gBACzCC,QAAU,EAAA,EAAA;gBACV5Q,eAAiB,EAAA,EAAA;gBACjB6Q,cAAgB,EAAA;oBACd5O,SAAW,EAAA,IAAA;oBACX6O,YAAc,EAAA,IAAA;AACdC,oBAAAA,UAAAA,EAAY,EAAE;AAChB,iBAAA;AACF,aAAA,CAAA;YACA,IAAQF,iBAAmBF,gBAAnBE,CAAAA,cAAAA,CAAAA;YACR,IAAI,CAACL,IAAKQ,CAAAA,IAAI,EAAE;AAxDTT,gBAAAA,WAAAA,CAyDOU,wBAAwB,CAACT,IAAK7O,CAAAA,GAAG,EAAEkP,cAAgBlQ,EAAAA,eAAAA,CAAAA,CAAAA;aAC1D,MAAA;gBACL,IAAMqQ,IAAAA,GAAOR,KAAKQ,IAAI,CAAA;gBACtB,IAAK,IAAI3H,CAAI,GAAA,CAAA,EAAGkE,GAAMyD,GAAAA,IAAAA,CAAKzH,MAAM,EAAEF,CAAAA,GAAIkE,GAAKlE,EAAAA,CAAAA,IAAK,CAAG,CAAA;oBAClD,IAAM1H,GAAAA,GAAMqP,IAAI,CAAC3H,CAAE,CAAA,CAAA;oBA7DhBkH,WA8DSW,CAAAA,uBAAuB,CAACvP,GAAKkP,EAAAA,cAAAA,CAAAA,CAAAA;AAC3C,iBAAA;AACF,aAAA;AAEA,YAAA,IAAQC,YAA4BD,GAAAA,cAAAA,CAA5BC,YAAc7O,EAAAA,SAAAA,GAAc4O,cAAd5O,CAAAA,SAAAA,CAAAA;YACtB,IAAI,CAAC6O,YAAgB,IAAA,CAAC7O,SAAW,EAAA;AAC/BvB,gBAAAA,MAAAA,CACE,IAAIb,KACF,CAAA,oGAAA,CAAA,CAAA,CAAA;AAGJ,gBAAA,OAAA;AACF,aAAA;AAEAc,YAAAA,eACE;AACCyB,aAAAA,QAAQ,CAAC0O,YAAc,EAAA;gBAAEvP,IAAM,EAAA,aAAA;aAC/Bc,CAAAA,CAAAA,IAAI,CAAC,SAACrC,eAAAA,EAAAA;AACL2Q,gBAAAA,gBAAAA,CAAiB3Q,eAAe,GAAGA,eAAAA,CAAAA;AACnC,gBAAA,IAAMmR,iBAAiBZ,WAjFpBA,CAiFgCa,QAAQ,CAACC,MAAM,CAACrR,eAAAA,CAAAA,CAAAA;gBACnD,IAAImR,cAAAA,CAAeG,UAAU,CAAC,GAAM,CAAA,EAAA;AAClCX,oBAAAA,gBAAAA,CAAiB3Q,eAAe,GAAGmR,cAAAA,CAAAA;AACrC,iBAAA;gBACA,OAAO,KAAA,CAAKI,2BAA2B,CAACZ,gBAAkBhQ,EAAAA,eAAAA,CAAAA,CAAAA;AAC5D,aAAA,CAAA,CACC0B,IAAI,CAACqO,OACL5O,CAAAA,CAAAA,KAAK,CAACpB,MAAAA,CAAAA,CAAAA;AACX,SAAA,CAAA,CAAA;AACF,KAAA,CAAA;AAEA,IAAA,MAAA,CAAQ6Q,2BAuBP,GAvBD,SAAQA,2BACNZ,CAAAA,gBAAkC,EAClChQ,eAAgC,EAAA;QAEhC,IAAQF,SAAWE,eAAXF,CAAAA,MAAAA,CAAAA;AACR,QAAA,IAAQT,eAAoC2Q,GAAAA,gBAAAA,CAApC3Q,eAAiB6Q,EAAAA,cAAAA,GAAmBF,gBAAnBE,CAAAA,cAAAA,CAAAA;AACzB,QAAA,IAAQC,eAAwCD,cAAxCC,CAAAA,YAAAA,EAAc7O,YAA0B4O,cAA1B5O,CAAAA,SAAAA,EAAW8O,aAAeF,cAAfE,CAAAA,UAAAA,CAAAA;AAEjC,QAAA,IAAMS,mBACJT,UAAWxH,CAAAA,MAAM,KAAK,CACjB5I,GAAAA,eAAAA,CAAgBe,IAAI,CAAC;YACpBC,GAAKM,EAAAA,SAAAA;YACLV,IAAM,EAAA,YAAA;SAEPZ,CAAAA,GAAAA,eAAAA,CAAgBe,IAAI,CAAC;YACpBsP,IAAM,EAAA;AAAC/O,gBAAAA,SAAAA;AAAU,aAAA,CAACwP,MAAM,CAACV,UAAAA,CAAAA;YACzBxP,IAAM,EAAA,YAAA;AACR,SAAA,CAAA,CAAA;QAEN,OAAOiQ,gBAAAA,CAAiBnP,IAAI,CAAC,SAACpC,YAAAA,EAAAA;AAC5B,YAAA,IAAM+N,YAAelO,GAAAA,WAAAA,CAAYC,kBAAkB,CAACC,iBAAiBC,YAAc,EAAA,IAAA,CAAA,CAAA;YACnF,OAAO,IAAIwO,aAAchO,CAAAA,MAAAA,EAAQuN,YAAc8C,EAAAA,YAAAA,CAAAA,CAAAA;AACjD,SAAA,CAAA,CAAA;AACF,KAAA,CAAA;AAnHWP,IAAAA,WAAAA,CAGIW,uBAWd,GAXD,SAAeA,uBAAwBvP,CAAAA,GAAW,EAAE+P,SAAyB,EAAA;AAC3E,QAAA,IAAMxQ,GAAMqP,GAJHA,WAIeoB,CAAAA,gBAAgB,CAAChQ,GAAAA,CAAAA,CAAAA;AACzC,QAAA,IAAI,CAACT,GAAK,EAAA,OAAA;QAEV,IAAI;AAAC,YAAA,MAAA;AAAQ,YAAA,MAAA;AAAQ,YAAA,KAAA;SAAM,CAACiP,QAAQ,CAACjP,GAAM,CAAA,EAAA;AACzCwQ,YAAAA,SAAAA,CAAUZ,YAAY,GAAGnP,GAAAA,CAAAA;SACpB,MAAA,IAAIT,QAAQ,OAAS,EAAA;AAC1BwQ,YAAAA,SAAAA,CAAUzP,SAAS,GAAGN,GAAAA,CAAAA;SACjB,MAAA;YACL+P,SAAUX,CAAAA,UAAU,CAACnE,IAAI,CAACjL,GAAAA,CAAAA,CAAAA;AAC5B,SAAA;AACF,KAAA,CAAA;IAdW4O,WAgBIU,CAAAA,wBAoBd,GApBD,SAAeA,wBAAAA,CAAyBtP,GAAW,EAAE+P,SAAyB,EAAE/Q,eAAgC,EAAA;YAMnFA,4CAAAA,EAAAA,wCAAAA,CAAAA;AAL3B,QAAA,IAAMO,GAAMqP,GAjBHA,WAiBeoB,CAAAA,gBAAgB,CAAChQ,GAAAA,CAAAA,CAAAA;AACzC,QAAA,IAAI,CAACT,GAAK,EAAA,OAAA;AACVwQ,QAAAA,SAAAA,CAAUZ,YAAY,GAAGnP,GAAAA,CAAAA;;AAGzB,QAAA,IAAMiQ,kBAAqBjR,GAAAA,eAAAA,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,wCAAAA,GAAAA,eAAAA,CAAiBE,uBAAuB,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,CAAxCF,4CAAAA,GAAAA,wCAA0C,CAACgB,GAAAA,CAAI,KAA/ChB,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,4CAAAA,CAAiDkR,iBAAiB,CAAA;AAC7F,QAAA,IAAID,kBAAoB,EAAA;YACtBF,SAAUzP,CAAAA,SAAS,GAAG2P,kBAAAA,CAAmBE,KAAK,CAAA;SACzC,MAAA;AACL,YAAA,IAAMC,gBAA2B,GAAA,oBAAA,CAAA;YACjC,IAAI7P,OAAAA,CAAAA;YACJ,IAAI6P,gBAAAA,CAAiBjP,IAAI,CAACnB,GAAM,CAAA,EAAA;gBAC9BO,OAAUP,GAAAA,GAAAA,CAAIqQ,OAAO,CAACD,gBAAkB,EAAA,EAAA,CAAA,CAAA;AAC1C,aAAA;AACA,YAAA,IAAI7P,OAAS,EAAA;AACX,gBAAA,IAAM+P,WAAW/P,OAAU,GAAA,QAAA,CAAA;AAC3BwP,gBAAAA,SAAAA,CAAUzP,SAAS,GAAGgQ,QAAAA,CAAAA;AACxB,aAAA;AACF,SAAA;AACF,KAAA,CAAA;AApCW1B,IAAAA,WAAAA,CAsCJoB,gBAIN,GAJD,SAAOA,gBAAAA,CAAiBhQ,GAAW,EAAA;AACjC,QAAA,IAAMuQ,KAAQ,GAAA,eAAA,CAAA;QACd,IAAM7B,KAAAA,GAAQ1O,GAAI0O,CAAAA,KAAK,CAAC6B,KAAAA,CAAAA,CAAAA;AACxB,QAAA,OAAO7B,KAAQA,GAAAA,KAAK,CAAC,CAAA,CAAE,GAAG,IAAA,CAAA;AAC5B,KAAA,CAAA;AA1CWE,IAAAA,OAAAA,WAAAA,CAAAA;EAAoB4B,aAoHhC,CAAA,CAAA;AApHY5B,WACIa,CAAAA,QAAAA,GAAW,IAAIgB,WAAY,CAAA,OAAA,CAAA,CAAA;;;AAFlB,QAAA,MAAA;AAAQ,QAAA,KAAA;AAAO,QAAA,MAAA;;;;ACdlC,IAAA,gBAAA,iBAAA,SAAA,MAAA,EAAA;AAAMC,IAAAA,SAAAA,CAAAA,gBAAAA,EAAAA,MAAAA,CAAAA,CAAAA;AAAAA,IAAAA,SAAAA,gBAAAA,GAAAA;;;AAAAA,IAAAA,IAAAA,MAAAA,GAAAA,gBAAAA,CAAAA,SAAAA,CAAAA;AA4BX3Q,IAAAA,MAAAA,CAAAA,IAiEC,GAjEDA,SAAAA,IAAK8O,CAAAA,IAAc,EAAE7P,eAAgC,EAAA;QACnD,OAAO,IAAI8P,mBAAa,CAAA,SAACC,OAAShQ,EAAAA,MAAAA,EAAAA;YAChC,IAAMD,MAAAA,GAASE,gBAAgBF,MAAM,CAAA;AACrC,YAAA,IAAM6R,eAAkB,GAAA;gBACtBrQ,SAAW,EAAA,EAAA;AACX1B,gBAAAA,UAAAA,EAAY,EAAE;AACdC,gBAAAA,eAAAA,EAAiB,EAAE;AACrB,aAAA,CAAA;YAEA,IAAI,CAACgQ,IAAKQ,CAAAA,IAAI,EAAE;AArCTqB,gBAAAA,gBAAAA,CAsCYpB,wBAAwB,CAACT,IAAK7O,CAAAA,GAAG,EAAE2Q,eAAiB3R,EAAAA,eAAAA,CAAAA,CAAAA;aAChE,MAAA;gBACL,IAAMqQ,IAAAA,GAAOR,KAAKQ,IAAI,CAAA;gBACtB,IAAK,IAAI3H,CAAI,GAAA,CAAA,EAAGkE,GAAMyD,GAAAA,IAAAA,CAAKzH,MAAM,EAAEF,CAAAA,GAAIkE,GAAKlE,EAAAA,CAAAA,IAAK,CAAG,CAAA;oBAClD,IAAM1H,GAAAA,GAAMqP,IAAI,CAAC3H,CAAE,CAAA,CAAA;oBA1ChBgJ,gBA2CcnB,CAAAA,uBAAuB,CAACvP,GAAAA,EAAK2Q,eAAiB3R,EAAAA,eAAAA,CAAAA,CAAAA;AACjE,iBAAA;AACF,aAAA;YAEA,IAAQsB,YAAcqQ,eAAdrQ,CAAAA,SAAAA,CAAAA;AACR,YAAA,IAAI,CAACA,SAAW,EAAA;AACdvB,gBAAAA,MAAAA,CACE,IAAIb,KAAM,CAAA,mGAAA,CAAA,CAAA,CAAA;AAEZ,gBAAA,OAAA;AACF,aAAA;YAEA,IAAMU,UAAAA,GAAa+R,gBAAgB/R,UAAU,CAAA;YAC7C,IAAIA,UAAAA,CAAWgJ,MAAM,KAAK,CAAG,EAAA;;AAE3BzJ,gBAAAA,WAAAA,CAAYkC,gBAAgB,CAACC,SAAAA,EAAWxB,QAAQC,MAC7C2B,CAAAA,CAAAA,IAAI,CAAC,SAACpC,YAAAA,EAAAA;oBACLyQ,OAAQzQ,CAAAA,YAAAA,CAAAA,CAAAA;iBAET6B,CAAAA,CAAAA,KAAK,CAAC,SAACc,GAAAA,EAAAA;oBACNlC,MAAOkC,CAAAA,GAAAA,CAAAA,CAAAA;AACT,iBAAA,CAAA,CAAA;aACG,MAAA;AACL,gBAAA,IAAQX,aAA2CqQ,eAA3CrQ,CAAAA,SAAAA,EAAW1B,cAAgC+R,eAAhC/R,CAAAA,UAAAA,EAAYC,kBAAoB8R,eAApB9R,CAAAA,eAAAA,CAAAA;gBAC/B,IAAID,WAAAA,CAAWgJ,MAAM,GAAG,CAAG,EAAA;AACzB3H,oBAAAA,OAAAA,CAAQC,GAAG,CAAC;;wBAEVlB,eAAgByB,CAAAA,QAAQ,CAACH,UAAW,EAAA;4BAClCV,IAAM,EAAA,MAAA;AACR,yBAAA,CAAA;AACAzB,wBAAAA,WAAAA,CAAYQ,mBAAmB,CAACC,WAAYC,EAAAA,eAAAA,EAAiBC,MAAQC,EAAAA,MAAAA,CAAAA;AACtE,qBAAA,CAAA,CACE2B,IAAI,CAAC,SAAA,KAAA,EAAA;4BAAEjC,SAAWC,GAAAA,KAAAA,CAAAA,CAAAA,CAAAA,EAAAA,QAAAA,GAAAA,KAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AACjB,wBAAA,IAAMJ,YAAeH,GAAAA,WAAAA,CAAYK,kBAAkB,CAACC,SAAWC,EAAAA,QAAAA,CAAAA,CAAAA;wBAC/DqQ,OAAQzQ,CAAAA,YAAAA,CAAAA,CAAAA;qBAET6B,CAAAA,CAAAA,KAAK,CAAC,SAACc,GAAAA,EAAAA;wBACNlC,MAAOkC,CAAAA,GAAAA,CAAAA,CAAAA;AACT,qBAAA,CAAA,CAAA;iBACG,MAAA;AACL9C,oBAAAA,WAAAA,CAAYkC,gBAAgB,CAACC,UAAAA,EAAWxB,QAAQC,MAC7C2B,CAAAA,CAAAA,IAAI,CAAC,SAACpC,YAAAA,EAAAA;wBACLyQ,OAAQzQ,CAAAA,YAAAA,CAAAA,CAAAA;qBAET6B,CAAAA,CAAAA,KAAK,CAAC,SAACc,GAAAA,EAAAA;wBACNlC,MAAOkC,CAAAA,GAAAA,CAAAA,CAAAA;AACT,qBAAA,CAAA,CAAA;AACJ,iBAAA;AACF,aAAA;AACF,SAAA,CAAA,CAAA;AACF,KAAA,CAAA;IA7FWyP,gBACInB,CAAAA,uBAUd,GAVD,SAAeA,uBAAAA,CAAwBvP,GAAW,EAAE+P,SAA0B,EAAE/Q,eAAgC,EAAA;QAC9G,IAAMO,GAAAA,GAAMqP,WAAYoB,CAAAA,gBAAgB,CAAChQ,GAAAA,CAAAA,CAAAA;AACzC,QAAA,IAAI,CAACT,GAAK,EAAA,OAAA;AAEV,QAAA,IAAIA,QAAQ,OAAS,EAAA;AACnBwQ,YAAAA,SAAAA,CAAUzP,SAAS,GAAGN,GAAAA,CAAAA;AACxB,SAAA;QACA,IAAI;AAAC,YAAA,KAAA;AAAO,YAAA,KAAA;AAAO,YAAA,MAAA;AAAQ,YAAA,MAAA;AAAQ,YAAA,KAAA;AAAO,YAAA,MAAA;SAAO,CAACwO,QAAQ,CAACjP,GAAM,CAAA,EAAA;YAC/DwQ,SAAUnR,CAAAA,UAAU,CAACqM,IAAI,CAACjL,GAAAA,CAAAA,CAAAA;AAC5B,SAAA;AACF,KAAA,CAAA;IAXW0Q,gBAaIpB,CAAAA,wBAad,GAbD,SAAeA,wBAAAA,CAAyBtP,GAAW,EAAE+P,SAA0B,EAAE/Q,eAAgC,EAAA;QAC/G,IAAMO,GAAAA,GAAMqP,WAAYoB,CAAAA,gBAAgB,CAAChQ,GAAAA,CAAAA,CAAAA;AACzC,QAAA,IAAIT,QAAQ,OAAS,EAAA;gBAGKP,4CAAAA,EAAAA,wCAAAA,CAAAA;AAFxB+Q,YAAAA,SAAAA,CAAUzP,SAAS,GAAGN,GAAAA,CAAAA;;AAEtB,YAAA,IAAM4Q,eAAkB5R,GAAAA,eAAAA,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,wCAAAA,GAAAA,eAAAA,CAAiBE,uBAAuB,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,CAAxCF,4CAAAA,GAAAA,wCAA0C,CAACgB,GAAAA,CAAI,KAA/ChB,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,4CAAAA,CAAiDkR,iBAAiB,CAAA;AAC1F,YAAA,IAAIU,eAAiB,EAAA;gBACnB,IAAK,IAAMvF,OAAOuF,eAAiB,CAAA;oBACjC,IAAMC,gBAAAA,GAAmBD,eAAe,CAACvF,GAAI,CAAA,CAAA;oBAC7C0E,SAAUnR,CAAAA,UAAU,CAACqM,IAAI,CAAC4F,gBAAAA,CAAAA,CAAAA;AAC5B,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA,CAAA;AA1BWH,IAAAA,OAAAA,gBAAAA,CAAAA;EAAyBF,aA8FrC,CAAA,CAAA;;;AA/F8B,QAAA,OAAA;;;;;;;;;;;;;;;;ACP/B,IAAK,IAAMnF,OAAOyF,cAAgB,CAAA;AAChCN,IAAAA,aAAAA,CAAOO,aAAa,CAAC1F,GAAKyF,EAAAA,cAAc,CAACzF,GAAI,CAAA,CAAA,CAAA;AAC/C,CAAA;AACA,IAAK,IAAMA,QAAO2F,YAAc,CAAA;AAC9BR,IAAAA,aAAAA,CAAOO,aAAa,CAAC1F,IAAK2F,EAAAA,YAAY,CAAC3F,IAAI,CAAA,CAAA,CAAA;AAC7C,CAAA;AAUO,IAAM4F,UAAW,mCAAgB;AACxCC,OAAQC,CAAAA,GAAG,CAAE,0BAA0BF,GAAAA,OAAAA,CAAAA;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"main.js","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/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs","../src/runtime/SpineRuntimeRegistry.ts","../src/loader/LoaderUtils.ts","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_create_class.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_instanceof.js","../src/enums/SpineBlendMode.ts","../src/renderer/SpineMaterial.ts","../src/SpineConstant.ts","../src/renderer/SpineAnimationRenderer.ts","../src/loader/SpineResource.ts","../src/loader/SpineLoader.ts","../src/loader/SpineAtlasLoader.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","/******************************************************************************\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","import type { ISpineRuntime } from \"./ISpineRuntime\";\n\nlet _runtime: ISpineRuntime | null = null;\n\n/**\n * Register the spine runtime backend. Called for its side effect when a spine core package\n * (e.g. `@galacean/engine-spine-core-4.2`) is imported. The last registration wins.\n */\nexport function registerSpineRuntime(runtime: ISpineRuntime): void {\n _runtime = runtime;\n}\n\n/**\n * Get the registered spine runtime backend.\n * @throws If no core package has been imported.\n */\nexport function getSpineRuntime(): ISpineRuntime {\n if (!_runtime) {\n throw new Error(\n \"@galacean/engine-spine: no spine runtime registered. Import a spine core package, \" +\n 'e.g. `import \"@galacean/engine-spine-core-4.2\"`.'\n );\n }\n return _runtime;\n}\n","import type { SkeletonData, TextureAtlas } from \"@esotericsoftware/spine-core\";\nimport { AssetPromise, AssetType, Engine, Texture2D } from \"@galacean/engine\";\nimport { getSpineRuntime } from \"../runtime/SpineRuntimeRegistry\";\n\n/**\n * @internal\n */\nexport class LoaderUtils {\n static createSkeletonData(\n skeletonRawData: string | ArrayBuffer,\n textureAtlas: TextureAtlas,\n skeletonDataScale: number\n ): SkeletonData {\n return getSpineRuntime().createSkeletonData(skeletonRawData, textureAtlas, skeletonDataScale);\n }\n\n static createTextureAtlas(atlasText: string, textures: Texture2D[]): TextureAtlas {\n return getSpineRuntime().createTextureAtlas(atlasText, textures);\n }\n\n static loadTexturesByPaths(\n imagePaths: string[],\n imageExtensions: string[],\n engine: Engine,\n reject: (reason?: any) => void\n ): Promise<Texture2D[]> {\n const resourceManager = engine.resourceManager;\n // @ts-ignore\n const virtualPathResourceMap = resourceManager._virtualPathResourceMap;\n const texturePromises: AssetPromise<Texture2D>[] = imagePaths.map((imagePath, index) => {\n const ext = imageExtensions[index];\n let imageLoaderType = AssetType.Texture;\n const virtualElement = virtualPathResourceMap[imagePath];\n if (virtualElement) {\n imageLoaderType = virtualElement.type;\n } else if (ext === \"ktx\") {\n imageLoaderType = AssetType.KTX;\n } else if (ext === \"ktx2\") {\n imageLoaderType = AssetType.KTX2;\n }\n return resourceManager.load({\n url: imagePath,\n type: imageLoaderType\n });\n });\n return Promise.all(texturePromises).catch((error) => {\n reject(error);\n return [];\n });\n }\n\n static loadTextureAtlas(atlasPath: string, engine: Engine, reject: (reason?: any) => void): Promise<TextureAtlas> {\n const baseUrl = LoaderUtils.getBaseUrl(atlasPath);\n const resourceManager = engine.resourceManager;\n let atlasText: string;\n return (\n resourceManager\n // @ts-ignore\n ._request(atlasPath, { type: \"text\" })\n .then((text: string) => {\n atlasText = text;\n const runtime = getSpineRuntime();\n const pageNames = runtime.parseAtlasPageNames(atlasText);\n const loadTexturePromises = pageNames.map((name) => {\n const textureUrl = baseUrl + name;\n return resourceManager.load({\n url: textureUrl,\n type: AssetType.Texture\n }) as unknown as Promise<Texture2D>;\n });\n return Promise.all(loadTexturePromises).then((textures) => {\n return runtime.createTextureAtlas(atlasText, textures);\n });\n })\n .catch((err) => {\n reject(new Error(`Spine Atlas: ${atlasPath} load error: ${err}`));\n return null;\n })\n );\n }\n\n static getBaseUrl(url: string): string {\n const isLocalPath = !/^(http|https|ftp):\\/\\/.*/i.test(url);\n if (isLocalPath) {\n const lastSlashIndex = url.lastIndexOf(\"/\");\n if (lastSlashIndex === -1) {\n return \"\";\n }\n return url.substring(0, lastSlashIndex + 1);\n } else {\n const parsedUrl = new URL(url);\n const basePath = parsedUrl.origin + parsedUrl.pathname;\n return basePath.endsWith(\"/\") ? basePath : basePath.substring(0, basePath.lastIndexOf(\"/\") + 1);\n }\n }\n}\n","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n\n if (\"value\" in descriptor) descriptor.writable = true;\n\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _create_class(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n\n return Constructor;\n}\nexport { _create_class as _ };\n","function _instanceof(left, right) {\n if (right != null && typeof Symbol !== \"undefined\" && right[Symbol.hasInstance]) {\n return !!right[Symbol.hasInstance](left);\n } else return left instanceof right;\n}\nexport { _instanceof as _ };\n","/**\n * Blend mode of a spine slot.\n *\n * @remarks\n * Version-neutral mirror of spine-core's `BlendMode` enum. The values match spine-core across all\n * supported runtime versions (3.8 / 4.2), so a core package can pass its `BlendMode` straight through.\n * Owning it here keeps the shared package free of any runtime spine-core dependency.\n */\nexport enum SpineBlendMode {\n Normal = 0,\n Additive = 1,\n Multiply = 2,\n Screen = 3\n}\n","import { BlendFactor, Engine, Material, Shader, ShaderProperty, Texture2D } from \"@galacean/engine\";\nimport { SpineBlendMode } from \"../enums/SpineBlendMode\";\n\nconst { SourceAlpha, One, DestinationColor, OneMinusSourceColor, OneMinusSourceAlpha } = BlendFactor;\n\n/**\n * Material for spine rendering.\n *\n * @remarks\n * The shader lives as a built-in engine shader (`2D/Spine`, registered by the engine's\n * `ShaderPool`). Per-material blend factors are driven through shader data properties\n * (`sourceColorBlendFactor` etc.), which the `2D/Spine` shader binds into its `BlendState`.\n * The constant render state (transparent queue, depth-write off, cull off) is declared in\n * the shader, so this material only varies the blend factors per blend mode.\n */\nexport class SpineMaterial extends Material {\n private static _sourceColorBlendFactorProp = ShaderProperty.getByName(\"sourceColorBlendFactor\");\n private static _destinationColorBlendFactorProp = ShaderProperty.getByName(\"destinationColorBlendFactor\");\n private static _sourceAlphaBlendFactorProp = ShaderProperty.getByName(\"sourceAlphaBlendFactor\");\n private static _destinationAlphaBlendFactorProp = ShaderProperty.getByName(\"destinationAlphaBlendFactor\");\n\n /**\n * @internal\n * The key this material is registered under in `SpineAnimationRenderer._materialCacheMap`.\n */\n _cacheKey: string;\n\n private _blendMode: SpineBlendMode = SpineBlendMode.Normal;\n\n /**\n * @internal\n */\n _setTintBlack(enabled: boolean) {\n if (enabled) {\n this.shaderData.enableMacro(\"RENDERER_TINT_BLACK\");\n } else {\n this.shaderData.disableMacro(\"RENDERER_TINT_BLACK\");\n }\n }\n\n /**\n * @internal\n */\n _setPremultipliedAlpha(enabled: boolean) {\n this.shaderData.setFloat(\"renderer_PremultipliedAlpha\", enabled ? 1 : 0);\n }\n\n /**\n * @internal\n */\n _setTexture(value: Texture2D) {\n this.shaderData.setTexture(\"material_SpineTexture\", value);\n }\n\n constructor(engine: Engine) {\n super(engine, Shader.find(\"2D/Spine\"));\n this._setBlendMode(SpineBlendMode.Normal, false);\n }\n\n /**\n * @internal\n */\n _setBlendMode(blendMode: SpineBlendMode, premultipliedAlpha: boolean) {\n const { shaderData } = this;\n const {\n _sourceColorBlendFactorProp: srcColor,\n _destinationColorBlendFactorProp: dstColor,\n _sourceAlphaBlendFactorProp: srcAlpha,\n _destinationAlphaBlendFactorProp: dstAlpha\n } = SpineMaterial;\n this._blendMode = blendMode;\n switch (blendMode) {\n case SpineBlendMode.Additive:\n shaderData.setInt(srcColor, premultipliedAlpha ? One : SourceAlpha);\n shaderData.setInt(dstColor, One);\n shaderData.setInt(srcAlpha, One);\n shaderData.setInt(dstAlpha, One);\n break;\n case SpineBlendMode.Multiply:\n shaderData.setInt(srcColor, DestinationColor);\n shaderData.setInt(dstColor, OneMinusSourceAlpha);\n shaderData.setInt(srcAlpha, One);\n shaderData.setInt(dstAlpha, OneMinusSourceAlpha);\n break;\n case SpineBlendMode.Screen:\n shaderData.setInt(srcColor, One);\n shaderData.setInt(dstColor, OneMinusSourceColor);\n shaderData.setInt(srcAlpha, One);\n shaderData.setInt(dstAlpha, OneMinusSourceColor);\n break;\n default: // Normal\n shaderData.setInt(srcColor, premultipliedAlpha ? One : SourceAlpha);\n shaderData.setInt(dstColor, OneMinusSourceAlpha);\n shaderData.setInt(srcAlpha, One);\n shaderData.setInt(dstAlpha, OneMinusSourceAlpha);\n break;\n }\n }\n\n /**\n * @internal\n */\n _getBlendMode(): SpineBlendMode {\n return this._blendMode;\n }\n}\n","/**\n * Vertex stride (float count per vertex) of the spine vertex layout owned by `SpineAnimationRenderer`.\n *\n * - `withoutTint`: [x, y, z, u, v, r, g, b, a] = 9 floats\n * - `withTint`: [x, y, z, u, v, r, g, b, a, dr, dg, db] = 12 floats\n *\n * Shared between the renderer (which declares the vertex elements and allocates buffers) and the\n * version-specific generator in a spine core package (which fills them), so the two never drift.\n */\nexport const SpineVertexStride = {\n withoutTint: 9,\n withTint: 12\n} as const;\n","import type { AnimationState, Skeleton } from \"@esotericsoftware/spine-core\";\nimport {\n BoundingBox,\n Buffer,\n BufferBindFlag,\n BufferUsage,\n DataObject,\n Entity,\n ignoreClone,\n IndexBufferBinding,\n IndexFormat,\n Material,\n Primitive,\n Renderer,\n SubPrimitive,\n Texture2D,\n Vector3,\n VertexBufferBinding,\n VertexElement,\n VertexElementFormat\n} from \"@galacean/engine\";\nimport { SpineResource } from \"../loader/SpineResource\";\nimport { SpineMaterial } from \"./SpineMaterial\";\nimport { SpineBlendMode } from \"../enums/SpineBlendMode\";\nimport { SpineVertexStride } from \"../SpineConstant\";\nimport { getSpineRuntime } from \"../runtime/SpineRuntimeRegistry\";\nimport type { ISpineRenderTarget } from \"../runtime/ISpineRenderTarget\";\n\n/**\n * Spine animation renderer, capable of rendering spine animations and providing functions for animation and skeleton manipulation.\n */\nexport class SpineAnimationRenderer extends Renderer implements ISpineRenderTarget {\n private static _positionVertexElement = new VertexElement(\"POSITION\", 0, VertexElementFormat.Vector3, 0);\n private static _lightColorVertexElement = new VertexElement(\"LIGHT_COLOR\", 12, VertexElementFormat.Vector4, 0);\n private static _uvVertexElement = new VertexElement(\"TEXCOORD_0\", 28, VertexElementFormat.Vector2, 0);\n private static _darkColorVertexElement = new VertexElement(\"DARK_COLOR\", 36, VertexElementFormat.Vector3, 0);\n\n /** @internal */\n static _materialCacheMap = new Map<string, SpineMaterial>();\n\n /**\n * The spacing between z layers in world units.\n */\n zSpacing = 0.001;\n\n /**\n * Whether to use premultiplied alpha mode for rendering.\n * When enabled, vertex color values are multiplied by the alpha channel.\n * @remarks\n If this option is enabled, the Spine editor must export textures with \"Premultiply Alpha\" checked.\n */\n premultipliedAlpha = false;\n\n private _tintBlack = false;\n\n /**\n * Whether to enable tint black feature for dark color tinting.\n *\n * @remarks Should be enabled when using \"Tint Black\" feature in Spine editor.\n */\n get tintBlack(): boolean {\n return this._tintBlack;\n }\n\n set tintBlack(value: boolean) {\n if (this._tintBlack !== value) {\n this._tintBlack = value;\n this._needResizeBuffer = true;\n }\n }\n\n /**\n * Default state for spine animation.\n * Contains the default animation name to be played, whether this animation should loop, the default skin name.\n */\n readonly defaultConfig: SpineAnimationDefaultConfig = new SpineAnimationDefaultConfig();\n\n /** @internal */\n @ignoreClone\n _primitive: Primitive;\n /** @internal */\n @ignoreClone\n _subPrimitives: SubPrimitive[] = [];\n /** @internal */\n @ignoreClone\n _indexBuffer: Buffer;\n /** @internal */\n @ignoreClone\n _vertexBuffer: Buffer;\n /** @internal */\n @ignoreClone\n _vertices = new Float32Array();\n /** @internal */\n @ignoreClone\n _indices = new Uint16Array();\n /** @internal */\n @ignoreClone\n _needResizeBuffer = false;\n /** @internal */\n @ignoreClone\n _vertexCount = 0;\n /** @internal */\n @ignoreClone\n _resource: SpineResource;\n /** @internal */\n @ignoreClone\n _localBounds = new BoundingBox(\n new Vector3(Infinity, Infinity, Infinity),\n new Vector3(-Infinity, -Infinity, -Infinity)\n );\n\n @ignoreClone\n private _skeleton: Skeleton;\n @ignoreClone\n private _state: AnimationState;\n\n /**\n * The Spine.AnimationState object of this SpineAnimationRenderer.\n * Manage, blend, and transition between multiple simultaneous animations effectively.\n */\n get state(): AnimationState {\n return this._state;\n }\n\n /**\n * The Spine.Skeleton object of this SpineAnimationRenderer.\n * Manipulate bone positions, rotations, scaling\n * and change spine attachment to customize character appearances dynamically during runtime.\n */\n get skeleton(): Skeleton {\n return this._skeleton;\n }\n\n /**\n * @internal\n */\n constructor(entity: Entity) {\n super(entity);\n const primitive = new Primitive(this.engine);\n this._primitive = primitive;\n this._primitive._addReferCount(1);\n primitive.addVertexElement(SpineAnimationRenderer._positionVertexElement);\n primitive.addVertexElement(SpineAnimationRenderer._lightColorVertexElement);\n primitive.addVertexElement(SpineAnimationRenderer._uvVertexElement);\n primitive.addVertexElement(SpineAnimationRenderer._darkColorVertexElement);\n }\n\n /**\n * @internal\n */\n // @ts-ignore\n override _onEnable(): void {\n this._applyDefaultConfig();\n }\n\n /**\n * @internal\n */\n override update(delta: number): void {\n const { _state: state, _skeleton: skeleton } = this;\n if (!state || !skeleton) return;\n const runtime = getSpineRuntime();\n runtime.updateState(skeleton, state, delta);\n runtime.buildPrimitive(skeleton, this);\n this._dirtyUpdateFlag |= RendererUpdateFlags.WorldVolume;\n }\n\n /**\n * @internal\n */\n // @ts-ignore\n override _render(context: any): void {\n const { _primitive, _subPrimitives, _materials: materials } = this;\n if (!_subPrimitives) return;\n // Engine 2.0 render-element model: one RenderElement per sub-primitive (no sub-element pool).\n const engine = this.engine as any;\n const priority = this.priority;\n const distanceForSort = (this as any)._distanceForSort;\n const renderElementPool = engine._renderElementPool;\n const renderPipeline = context.camera._renderPipeline;\n for (let i = 0, n = _subPrimitives.length; i < n; i++) {\n let material = materials[i];\n if (!material) {\n continue;\n }\n if (material.destroyed || material.shader.destroyed) {\n material = engine._basicResources.meshMagentaMaterial;\n }\n const renderElement = renderElementPool.get();\n renderElement.set(this, material, _primitive, _subPrimitives[i]);\n renderElement.priority = priority;\n renderElement.distanceForSort = distanceForSort;\n renderPipeline.pushRenderElement(context, renderElement);\n }\n }\n\n /**\n * @internal\n */\n // @ts-ignore\n override _updateBounds(worldBounds: BoundingBox): void {\n BoundingBox.transform(this._localBounds, this.entity.transform.worldMatrix, worldBounds);\n }\n\n /**\n * @internal\n */\n _setSkeleton(skeleton: Skeleton) {\n this._skeleton = skeleton;\n }\n\n /**\n * @internal\n */\n _setState(state: AnimationState) {\n this._state = state;\n }\n\n /**\n * @internal\n */\n override _onClone(target: SpineAnimationRenderer): void {\n // A renderer added manually and never bound to a resource has no skeleton/state to clone.\n if (!this._skeleton || !this._state) return;\n const runtime = getSpineRuntime();\n // Clones share the source's immutable SkeletonData and AnimationStateData (mix config),\n // so mix times configured on the resource propagate to every instance; only the\n // per-instance Skeleton / AnimationState are fresh.\n const skeleton = runtime.createSkeleton(this._skeleton.data);\n const state = runtime.createAnimationState(this._state.data);\n target._setSkeleton(skeleton);\n target._setState(state);\n }\n\n /**\n * @internal\n */\n override _onDestroy(): void {\n this._clearMaterialCache();\n this._subPrimitives.length = 0;\n const primitive = this._primitive;\n if (primitive) {\n primitive._addReferCount(-1);\n primitive.destroy();\n this._primitive = null;\n }\n // destroy() is refCount-guarded; the primitive released its buffer references above.\n this._vertexBuffer?.destroy();\n this._indexBuffer?.destroy();\n this._vertexBuffer = null;\n this._indexBuffer = null;\n this._resource = null;\n this._skeleton = null;\n this._state = null;\n super._onDestroy();\n }\n\n /**\n * @internal\n */\n _createAndBindBuffer(vertexCount: number): void {\n const { engine: _engine, _primitive } = this;\n const oldVertexBuffer = this._vertexBuffer;\n const oldIndexBuffer = this._indexBuffer;\n this._vertexCount = vertexCount;\n const stride = this.tintBlack ? SpineVertexStride.withTint : SpineVertexStride.withoutTint;\n this._vertices = new Float32Array(vertexCount * stride);\n this._indices = new Uint16Array(vertexCount);\n const vertexStride = stride << 2;\n const vertexBuffer = new Buffer(_engine, BufferBindFlag.VertexBuffer, this._vertices, BufferUsage.Dynamic);\n const indexBuffer = new Buffer(_engine, BufferBindFlag.IndexBuffer, this._indices, BufferUsage.Dynamic);\n this._indexBuffer = indexBuffer;\n this._vertexBuffer = vertexBuffer;\n const vertexBufferBinding = new VertexBufferBinding(vertexBuffer, vertexStride);\n this._primitive.setVertexBufferBinding(0, vertexBufferBinding);\n const indexBufferBinding = new IndexBufferBinding(indexBuffer, IndexFormat.UInt16);\n _primitive.setIndexBufferBinding(indexBufferBinding);\n // Rebinding released the primitive's references to the old buffers; destroy() is\n // refCount-guarded, so this frees their GPU resources without waiting for gc().\n oldVertexBuffer?.destroy();\n oldIndexBuffer?.destroy();\n }\n\n /**\n * @internal\n */\n _addSubPrimitive(subPrimitive: SubPrimitive): void {\n this._subPrimitives.push(subPrimitive);\n }\n\n /**\n * @internal\n */\n _clearSubPrimitives(): void {\n this._subPrimitives.length = 0;\n }\n\n /**\n * @internal\n */\n _getMaterial(texture: Texture2D, blendMode: SpineBlendMode): Material {\n const engine = this.engine;\n const premultipliedAlpha = this.premultipliedAlpha;\n const tintBlack = this.tintBlack;\n\n // tintBlack must be part of the key: it toggles a per-material macro, so renderers that\n // differ only in tintBlack cannot share a material.\n const key = `${texture.instanceId}_${blendMode}_${premultipliedAlpha ? 1 : 0}_${tintBlack ? 1 : 0}`;\n let cached = SpineAnimationRenderer._materialCacheMap.get(key);\n if (!cached) {\n cached = new SpineMaterial(engine);\n cached.isGCIgnored = true;\n cached._cacheKey = key;\n SpineAnimationRenderer._materialCacheMap.set(key, cached);\n }\n cached._setBlendMode(blendMode, premultipliedAlpha);\n cached._setTexture(texture);\n cached._setTintBlack(tintBlack);\n cached._setPremultipliedAlpha(premultipliedAlpha);\n return cached;\n }\n\n private _clearMaterialCache(): void {\n const materialCache = SpineAnimationRenderer._materialCacheMap;\n const materials = this._materials;\n for (let i = 0, len = materials.length; i < len; i += 1) {\n const material = materials[i];\n // `setMaterial` is public API, so entries may be user materials or null holes; a cached\n // SpineMaterial is removed by the exact key it was registered under (recomputing the key\n // from the renderer's current state would miss materials cached under older settings).\n if (material instanceof SpineMaterial) {\n materialCache.delete(material._cacheKey);\n }\n }\n }\n\n private _applyDefaultConfig(): void {\n const { skeleton, state } = this;\n if (skeleton && state) {\n const { animationName, skinName, loop } = this.defaultConfig;\n if (skinName !== \"default\") {\n skeleton.setSkinByName(skinName);\n skeleton.setToSetupPose();\n }\n if (animationName) {\n state.setAnimation(0, animationName, loop);\n }\n }\n }\n\n /**\n * * @deprecated This property is deprecated and will be removed in future releases.\n * Spine resource of current spine animation.\n */\n get resource(): SpineResource {\n return this._resource;\n }\n\n /**\n * * @deprecated This property is deprecated and will be removed in future releases.\n * Sets the Spine resource for the current animation. This property allows switching to a different `SpineResource`.\n *\n * @param value - The new `SpineResource` to be used for the current animation\n */\n set resource(value: SpineResource) {\n if (!value) {\n this._state = null;\n this._skeleton = null;\n this._resource = null;\n return;\n }\n this._resource = value;\n const { skeletonData, stateData } = value;\n const runtime = getSpineRuntime();\n const skeleton = runtime.createSkeleton(skeletonData);\n const state = runtime.createAnimationState(stateData);\n this._setSkeleton(skeleton);\n this._setState(state);\n this._applyDefaultConfig();\n }\n}\n\n/**\n * @internal\n */\nexport enum RendererUpdateFlags {\n /** Include world position and world bounds. */\n WorldVolume = 0x1\n}\n\n/**\n * Default state for spine animation.\n * Contains the default animation name to be played, whether this animation should loop,\n * the default skin name, and the default scale of the skeleton.\n */\nexport class SpineAnimationDefaultConfig extends DataObject {\n /**\n * Creates an instance of default config\n */\n constructor(\n /**\n * Whether the default animation should loop @defaultValue `true. The default animation should loop`\n */\n public loop: boolean = true,\n\n /**\n * The name of the default animation @defaultValue `null. Do not play any animation by default`\n */\n public animationName: string | null = null,\n\n /**\n * The name of the default skin @defaultValue `default`\n */\n public skinName: string = \"default\"\n ) {\n super();\n }\n}\n","import type {\n AnimationState,\n AnimationStateData,\n MeshAttachment,\n RegionAttachment,\n Skeleton,\n SkeletonData\n} from \"@esotericsoftware/spine-core\";\nimport { Engine, Entity, ReferResource, Texture2D } from \"@galacean/engine\";\nimport { SpineAnimationRenderer } from \"../renderer/SpineAnimationRenderer\";\nimport { getSpineRuntime } from \"../runtime/SpineRuntimeRegistry\";\n\n/**\n * Represents a resource that manages Spine animation data, textures, and entity templates for the Galacean engine.\n *\n */\nexport class SpineResource extends ReferResource {\n /** The url of spine resource. */\n readonly url: string;\n\n private _texturesInSpineAtlas: Texture2D[] = [];\n private _skeletonData: SkeletonData;\n private _stateData: AnimationStateData;\n\n private _template: Entity;\n\n constructor(engine: Engine, skeletonData: SkeletonData, url?: string) {\n super(engine);\n this.url = url;\n this._skeletonData = skeletonData;\n this._stateData = getSpineRuntime().createAnimationStateData(skeletonData);\n this._associationTextureInSkeletonData(skeletonData);\n this._createTemplate();\n }\n\n /**\n * The skeleton data associated with this Spine resource.\n */\n get skeletonData(): SkeletonData {\n return this._skeletonData;\n }\n\n /**\n * The animation state data associated with this Spine resource.\n */\n get stateData(): AnimationStateData {\n return this._stateData;\n }\n\n /**\n * Creates and returns a new instance of the spine entity template.\n * @returns A instance of the spine entity template\n */\n instantiate(): Entity {\n return this._template.clone();\n }\n\n protected override _onDestroy(): void {\n super._onDestroy();\n this._disassociationSuperResource();\n this._skeletonData = null;\n this._stateData = null;\n }\n\n private _createTemplate(): void {\n const name = this._extractFileName(this.url);\n const spineEntity = new Entity(this.engine, name);\n const spineAnimationRenderer = spineEntity.addComponent(SpineAnimationRenderer);\n const runtime = getSpineRuntime();\n const skeleton = runtime.createSkeleton(this._skeletonData);\n const state = runtime.createAnimationState(this._stateData);\n spineAnimationRenderer._setSkeleton(skeleton);\n spineAnimationRenderer._setState(state);\n // @ts-ignore\n spineEntity._markAsTemplate(this);\n this._template = spineEntity;\n }\n\n private _associationTextureInSkeletonData(skeletonData: SkeletonData): void {\n const { skins, slots } = skeletonData;\n const textures = this._texturesInSpineAtlas;\n\n for (let i = 0, n = skins.length; i < n; i++) {\n for (let j = 0, m = slots.length; j < m; j++) {\n const slot = slots[j];\n const attachment = skins[i].getAttachment(slot.index, slot.name);\n const texture = <Texture2D>(<RegionAttachment | MeshAttachment>attachment)?.region?.texture.getImage();\n if (texture) {\n if (!textures.includes(texture)) {\n textures.push(texture);\n // @ts-ignore\n texture._associationSuperResource(this);\n }\n }\n }\n }\n }\n\n private _disassociationSuperResource(): void {\n const textures = this._texturesInSpineAtlas;\n for (let i = 0, n = textures.length; i < n; i++) {\n // @ts-ignore\n textures[i]._disassociationSuperResource(this);\n }\n }\n\n private _extractFileName(url: string): string {\n if (!url) return \"Spine Entity\";\n const match = url.match(/\\/([^\\/]+?)(\\.[^\\/]*)?$/);\n return match ? match[1] : \"Spine Entity\";\n }\n}\n","import type { TextureAtlas } from \"@esotericsoftware/spine-core\";\nimport { AssetPromise, Loader, LoadItem, resourceLoader, ResourceManager } from \"@galacean/engine\";\nimport { LoaderUtils } from \"./LoaderUtils\";\nimport { SpineResource } from \"./SpineResource\";\n\ntype SpineAssetPath = {\n atlasPath: string;\n skeletonPath: string;\n extraPaths: string[];\n fileExtensions?: string | string[];\n};\n\ntype SpineLoadContext = {\n fileName: string;\n spineAssetPath: SpineAssetPath;\n skeletonRawData: string | ArrayBuffer;\n};\n\nexport type SpineLoaderParams = {\n fileExtensions?: string | string[];\n};\n\n// Registering \"json\" makes this loader the default for bare `.json` urls (extension mappings are\n// last-registration-wins, overriding the core JSONLoader) — matches the historical engine-spine\n// behavior. Pass an explicit `type` (e.g. AssetType.JSON) to load plain JSON once this package\n// is imported.\n@resourceLoader(\"Spine\", [\"json\", \"bin\", \"skel\"])\nexport class SpineLoader extends Loader<SpineResource> {\n private static _decoder = new TextDecoder(\"utf-8\");\n\n private static _groupAssetsByExtension(url: string, assetPath: SpineAssetPath) {\n const ext = SpineLoader._getUrlExtension(url);\n if (!ext) return;\n\n if ([\"skel\", \"json\", \"bin\"].includes(ext)) {\n assetPath.skeletonPath = url;\n } else if (ext === \"atlas\") {\n assetPath.atlasPath = url;\n } else {\n assetPath.extraPaths.push(url);\n }\n }\n\n private static _assignAssetPathsFromUrl(url: string, assetPath: SpineAssetPath, resourceManager: ResourceManager) {\n const ext = SpineLoader._getUrlExtension(url);\n if (!ext) return;\n assetPath.skeletonPath = url;\n\n // @ts-ignore\n const skeletonDependency = resourceManager?._virtualPathResourceMap?.[url]?.dependentAssetMap;\n if (skeletonDependency) {\n assetPath.atlasPath = skeletonDependency.atlas;\n } else {\n const extensionPattern: RegExp = /\\.(json|bin|skel)$/;\n let baseUrl: string;\n if (extensionPattern.test(url)) {\n baseUrl = url.replace(extensionPattern, \"\");\n }\n if (baseUrl) {\n const atlasUrl = baseUrl + \".atlas\";\n assetPath.atlasPath = atlasUrl;\n }\n }\n }\n\n static _getUrlExtension(url: string): string | null {\n const regex = /\\.(\\w+)(\\?|$)/;\n const match = url.match(regex);\n return match ? match[1] : null;\n }\n\n load(item: LoadItem, resourceManager: ResourceManager): AssetPromise<SpineResource> {\n return new AssetPromise((resolve, reject) => {\n const spineLoadContext: SpineLoadContext = {\n fileName: \"\",\n skeletonRawData: \"\",\n spineAssetPath: {\n atlasPath: null,\n skeletonPath: null,\n extraPaths: []\n }\n };\n const { spineAssetPath } = spineLoadContext;\n if (!item.urls) {\n SpineLoader._assignAssetPathsFromUrl(item.url, spineAssetPath, resourceManager);\n } else {\n const urls = item.urls;\n for (let i = 0, len = urls.length; i < len; i += 1) {\n const url = urls[i];\n SpineLoader._groupAssetsByExtension(url, spineAssetPath);\n }\n }\n\n const { skeletonPath, atlasPath } = spineAssetPath;\n if (!skeletonPath || !atlasPath) {\n reject(\n new Error(\n \"Failed to load spine assets. Please check the file path and ensure the file extension is included.\"\n )\n );\n return;\n }\n\n resourceManager\n // @ts-ignore\n ._request(skeletonPath, { type: \"arraybuffer\" })\n .then((skeletonRawData: ArrayBuffer) => {\n spineLoadContext.skeletonRawData = skeletonRawData;\n const skeletonString = SpineLoader._decoder.decode(skeletonRawData);\n if (skeletonString.startsWith(\"{\")) {\n spineLoadContext.skeletonRawData = skeletonString;\n }\n return this._loadAndCreateSpineResource(spineLoadContext, resourceManager);\n })\n .then(resolve)\n .catch(reject);\n });\n }\n\n private _loadAndCreateSpineResource(\n spineLoadContext: SpineLoadContext,\n resourceManager: ResourceManager\n ): Promise<SpineResource> {\n const { engine } = resourceManager;\n const { skeletonRawData, spineAssetPath } = spineLoadContext;\n const { skeletonPath, atlasPath, extraPaths } = spineAssetPath;\n\n const atlasLoadPromise =\n extraPaths.length === 0\n ? (resourceManager.load({\n url: atlasPath,\n type: \"SpineAtlas\"\n }) as unknown as Promise<TextureAtlas>)\n : (resourceManager.load({\n urls: [atlasPath].concat(extraPaths),\n type: \"SpineAtlas\"\n }) as unknown as Promise<TextureAtlas>);\n\n return atlasLoadPromise.then((textureAtlas) => {\n const skeletonData = LoaderUtils.createSkeletonData(skeletonRawData, textureAtlas, 0.01);\n return new SpineResource(engine, skeletonData, skeletonPath);\n });\n }\n}\n","import type { TextureAtlas } from \"@esotericsoftware/spine-core\";\nimport { AssetPromise, Loader, LoadItem, resourceLoader, ResourceManager } from \"@galacean/engine\";\nimport { LoaderUtils } from \"./LoaderUtils\";\nimport { SpineLoader } from \"./SpineLoader\";\n\ninterface SpineAtlasAsset {\n atlasPath: string;\n imagePaths?: string[];\n imageExtensions?: string[];\n}\n\n@resourceLoader(\"SpineAtlas\", [\"atlas\"], false)\nexport class SpineAtlasLoader extends Loader<TextureAtlas> {\n private static _groupAssetsByExtension(url: string, assetPath: SpineAtlasAsset, resourceManager: ResourceManager) {\n const ext = SpineLoader._getUrlExtension(url);\n if (!ext) return;\n\n if (ext === \"atlas\") {\n assetPath.atlasPath = url;\n }\n if ([\"png\", \"jpg\", \"webp\", \"jpeg\", \"ktx\", \"ktx2\"].includes(ext)) {\n assetPath.imagePaths.push(url);\n }\n }\n\n private static _assignAssetPathsFromUrl(url: string, assetPath: SpineAtlasAsset, resourceManager: ResourceManager) {\n const ext = SpineLoader._getUrlExtension(url);\n if (ext === \"atlas\") {\n assetPath.atlasPath = url;\n // @ts-ignore\n const atlasDependency = resourceManager?._virtualPathResourceMap?.[url]?.dependentAssetMap;\n if (atlasDependency) {\n for (const key in atlasDependency) {\n const imageVirtualPath = atlasDependency[key];\n assetPath.imagePaths.push(imageVirtualPath);\n }\n }\n }\n }\n\n load(item: LoadItem, resourceManager: ResourceManager): AssetPromise<TextureAtlas> {\n return new AssetPromise((resolve, reject) => {\n const engine = resourceManager.engine;\n const spineAtlasAsset = {\n atlasPath: \"\",\n imagePaths: [],\n imageExtensions: []\n };\n\n if (!item.urls) {\n SpineAtlasLoader._assignAssetPathsFromUrl(item.url, spineAtlasAsset, resourceManager);\n } else {\n const urls = item.urls;\n for (let i = 0, len = urls.length; i < len; i += 1) {\n const url = urls[i];\n SpineAtlasLoader._groupAssetsByExtension(url, spineAtlasAsset, resourceManager);\n }\n }\n\n const { atlasPath } = spineAtlasAsset;\n if (!atlasPath) {\n reject(\n new Error(\"Failed to load spine atlas. Please check the file path and ensure the file extension is included.\")\n );\n return;\n }\n\n const imagePaths = spineAtlasAsset.imagePaths;\n if (imagePaths.length === 0) {\n // Use the parsed atlas path: `item.url` is undefined when the asset came in via `item.urls`.\n LoaderUtils.loadTextureAtlas(atlasPath, engine, reject)\n .then((textureAtlas) => {\n resolve(textureAtlas);\n })\n .catch((err) => {\n reject(err);\n });\n } else {\n const { atlasPath, imagePaths, imageExtensions } = spineAtlasAsset;\n if (imagePaths.length > 0) {\n Promise.all([\n // @ts-ignore\n resourceManager._request(atlasPath, {\n type: \"text\"\n }) as Promise<string>,\n LoaderUtils.loadTexturesByPaths(imagePaths, imageExtensions, engine, reject)\n ])\n .then(([atlasText, textures]) => {\n const textureAtlas = LoaderUtils.createTextureAtlas(atlasText, textures);\n resolve(textureAtlas);\n })\n .catch((err) => {\n reject(err);\n });\n } else {\n LoaderUtils.loadTextureAtlas(atlasPath, engine, reject)\n .then((textureAtlas) => {\n resolve(textureAtlas);\n })\n .catch((err) => {\n reject(err);\n });\n }\n }\n });\n }\n}\n","import * as LoaderObject from \"./loader\";\nimport * as RendererObject from \"./renderer\";\nimport { Loader } from \"@galacean/engine\";\n\nfor (const key in RendererObject) {\n Loader.registerClass(key, RendererObject[key]);\n}\nfor (const key in LoaderObject) {\n Loader.registerClass(key, LoaderObject[key]);\n}\n\nexport * from \"./loader/index\";\nexport * from \"./renderer/index\";\nexport { SpineBlendMode } from \"./enums/SpineBlendMode\";\nexport { SpineVertexStride } from \"./SpineConstant\";\nexport { registerSpineRuntime, getSpineRuntime } from \"./runtime/SpineRuntimeRegistry\";\nexport type { ISpineRuntime } from \"./runtime/ISpineRuntime\";\nexport type { ISpineRenderTarget } from \"./runtime/ISpineRenderTarget\";\n\nexport const version = `__buildVersion`;\nconsole.log(`Galacean spine version: ${version}`);\n"],"names":["_runtime","registerSpineRuntime","runtime","getSpineRuntime","Error","LoaderUtils","createSkeletonData","skeletonRawData","textureAtlas","skeletonDataScale","createTextureAtlas","atlasText","textures","loadTexturesByPaths","imagePaths","imageExtensions","engine","reject","resourceManager","virtualPathResourceMap","_virtualPathResourceMap","texturePromises","map","imagePath","index","ext","imageLoaderType","AssetType","Texture","virtualElement","type","KTX","KTX2","load","url","Promise","all","catch","error","loadTextureAtlas","atlasPath","baseUrl","getBaseUrl","_request","then","text","pageNames","parseAtlasPageNames","loadTexturePromises","name","textureUrl","err","isLocalPath","test","lastSlashIndex","lastIndexOf","substring","parsedUrl","URL","basePath","origin","pathname","endsWith","SpineBlendMode","SourceAlpha","BlendFactor","One","DestinationColor","OneMinusSourceColor","OneMinusSourceAlpha","SpineMaterial","Shader","find","_blendMode","Normal","_setBlendMode","_setTintBlack","enabled","shaderData","enableMacro","disableMacro","_setPremultipliedAlpha","setFloat","_setTexture","value","setTexture","blendMode","premultipliedAlpha","_sourceColorBlendFactorProp","srcColor","_destinationColorBlendFactorProp","_sourceAlphaBlendFactorProp","srcAlpha","_destinationAlphaBlendFactorProp","dstAlpha","Additive","setInt","dstColor","Multiply","Screen","_getBlendMode","Material","ShaderProperty","getByName","SpineVertexStride","withoutTint","withTint","SpineAnimationRenderer","entity","zSpacing","_tintBlack","defaultConfig","SpineAnimationDefaultConfig","_subPrimitives","_vertices","Float32Array","_indices","Uint16Array","_needResizeBuffer","_vertexCount","_localBounds","BoundingBox","Vector3","Infinity","primitive","Primitive","_primitive","_addReferCount","addVertexElement","_positionVertexElement","_lightColorVertexElement","_uvVertexElement","_darkColorVertexElement","_onEnable","_applyDefaultConfig","update","delta","state","_state","_skeleton","skeleton","updateState","buildPrimitive","_dirtyUpdateFlag","_render","context","_materials","materials","priority","distanceForSort","_distanceForSort","renderElementPool","_renderElementPool","renderPipeline","camera","_renderPipeline","i","n","length","material","destroyed","shader","_basicResources","meshMagentaMaterial","renderElement","get","set","pushRenderElement","_updateBounds","worldBounds","transform","worldMatrix","_setSkeleton","_setState","_onClone","target","createSkeleton","data","createAnimationState","_onDestroy","_clearMaterialCache","destroy","_vertexBuffer","_indexBuffer","_resource","_createAndBindBuffer","vertexCount","_engine","oldVertexBuffer","oldIndexBuffer","stride","tintBlack","vertexStride","vertexBuffer","Buffer","BufferBindFlag","VertexBuffer","BufferUsage","Dynamic","indexBuffer","IndexBuffer","vertexBufferBinding","VertexBufferBinding","setVertexBufferBinding","indexBufferBinding","IndexBufferBinding","IndexFormat","UInt16","setIndexBufferBinding","_addSubPrimitive","subPrimitive","push","_clearSubPrimitives","_getMaterial","texture","key","instanceId","cached","_materialCacheMap","isGCIgnored","_cacheKey","materialCache","len","delete","animationName","skinName","loop","setSkinByName","setToSetupPose","setAnimation","resource","skeletonData","stateData","Renderer","VertexElement","VertexElementFormat","Vector4","Vector2","Map","DataObject","SpineResource","_texturesInSpineAtlas","_skeletonData","_stateData","createAnimationStateData","_associationTextureInSkeletonData","_createTemplate","instantiate","_template","clone","_disassociationSuperResource","_extractFileName","spineEntity","Entity","spineAnimationRenderer","addComponent","_markAsTemplate","skins","slots","j","m","slot","attachment","getAttachment","region","getImage","includes","_associationSuperResource","match","ReferResource","SpineLoader","item","AssetPromise","resolve","spineLoadContext","fileName","spineAssetPath","skeletonPath","extraPaths","urls","_assignAssetPathsFromUrl","_groupAssetsByExtension","skeletonString","_decoder","decode","startsWith","_loadAndCreateSpineResource","atlasLoadPromise","concat","assetPath","_getUrlExtension","skeletonDependency","dependentAssetMap","atlas","extensionPattern","replace","atlasUrl","regex","Loader","TextDecoder","SpineAtlasLoader","spineAtlasAsset","atlasDependency","imageVirtualPath","RendererObject","registerClass","LoaderObject","version","console","log"],"mappings":"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"}
|
package/dist/module.js
CHANGED
|
@@ -365,8 +365,7 @@ SpineMaterial._destinationAlphaBlendFactorProp = ShaderProperty.getByName("desti
|
|
|
365
365
|
};
|
|
366
366
|
/**
|
|
367
367
|
* @internal
|
|
368
|
-
*/
|
|
369
|
-
_proto._cloneTo = function _cloneTo(target) {
|
|
368
|
+
*/ _proto._onClone = function _onClone(target) {
|
|
370
369
|
// A renderer added manually and never bound to a resource has no skeleton/state to clone.
|
|
371
370
|
if (!this._skeleton || !this._state) return;
|
|
372
371
|
var runtime = getSpineRuntime();
|
|
@@ -944,7 +943,7 @@ for(var key in RendererObject){
|
|
|
944
943
|
for(var key1 in LoaderObject){
|
|
945
944
|
Loader.registerClass(key1, LoaderObject[key1]);
|
|
946
945
|
}
|
|
947
|
-
var version = "0.0.0-experimental-2.0-migrate.
|
|
946
|
+
var version = "0.0.0-experimental-2.0-migrate.6";
|
|
948
947
|
console.log("Galacean spine version: " + version);
|
|
949
948
|
|
|
950
949
|
export { LoaderUtils, SpineAnimationRenderer, SpineBlendMode, SpineMaterial, SpineResource, SpineVertexStride, getSpineRuntime, registerSpineRuntime, version };
|