@galacean/effects-plugin-rich-text 2.1.0-alpha.12 → 2.1.0-alpha.14
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/alipay.js +15 -9
- package/dist/alipay.js.map +1 -1
- package/dist/alipay.mjs +15 -9
- package/dist/alipay.mjs.map +1 -1
- package/dist/douyin.js +15 -9
- package/dist/douyin.js.map +1 -1
- package/dist/douyin.mjs +15 -9
- package/dist/douyin.mjs.map +1 -1
- package/dist/index.js +16 -10
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +2 -2
- package/dist/index.min.js.map +1 -1
- package/dist/index.mjs +16 -10
- package/dist/index.mjs.map +1 -1
- package/dist/weapp.js +15 -9
- package/dist/weapp.js.map +1 -1
- package/dist/weapp.mjs +15 -9
- package/dist/weapp.mjs.map +1 -1
- package/package.json +2 -2
package/dist/alipay.js
CHANGED
|
@@ -157,7 +157,7 @@ var richTextParser = function(input) {
|
|
|
157
157
|
attributeParam: attributeParam
|
|
158
158
|
};
|
|
159
159
|
}
|
|
160
|
-
throw new Error("Expected a
|
|
160
|
+
throw new Error("Expected a start tag marker at position " + cursor);
|
|
161
161
|
}
|
|
162
162
|
return {};
|
|
163
163
|
};
|
|
@@ -172,7 +172,7 @@ var richTextParser = function(input) {
|
|
|
172
172
|
attributeName: attributeName
|
|
173
173
|
};
|
|
174
174
|
}
|
|
175
|
-
throw new Error("
|
|
175
|
+
throw new Error("Expect an end tag marker at position " + cursor);
|
|
176
176
|
}
|
|
177
177
|
return {};
|
|
178
178
|
};
|
|
@@ -212,10 +212,10 @@ var richTextParser = function(input) {
|
|
|
212
212
|
if (expectedEndAttributeName) {
|
|
213
213
|
var _ContextEnd = ContextEnd(), endAttributeName = _ContextEnd.attributeName;
|
|
214
214
|
if (!endAttributeName) {
|
|
215
|
-
throw new Error('
|
|
215
|
+
throw new Error('Expect an end tag marker "' + expectedEndAttributeName + '" at position ' + cursor + " but found no tag!");
|
|
216
216
|
}
|
|
217
217
|
if (endAttributeName !== expectedEndAttributeName) {
|
|
218
|
-
throw new Error('
|
|
218
|
+
throw new Error('Expect an end tag marker "' + expectedEndAttributeName + '" at position ' + cursor + ' but found tag "' + endAttributeName + '"');
|
|
219
219
|
}
|
|
220
220
|
return;
|
|
221
221
|
}
|
|
@@ -383,6 +383,7 @@ exports.RichTextComponent = /*#__PURE__*/ function(TextComponent) {
|
|
|
383
383
|
var _proto = RichTextComponent.prototype;
|
|
384
384
|
_proto.generateTextProgram = function generateTextProgram(text) {
|
|
385
385
|
var _this = this;
|
|
386
|
+
this.processedTextOptions = [];
|
|
386
387
|
var program = generateProgram(function(text, context) {
|
|
387
388
|
var textArr = text.split("\n");
|
|
388
389
|
textArr.forEach(function(text, index) {
|
|
@@ -421,6 +422,7 @@ exports.RichTextComponent = /*#__PURE__*/ function(TextComponent) {
|
|
|
421
422
|
var width = 0, height = 0;
|
|
422
423
|
var _this1 = this, textLayout = _this1.textLayout, textStyle = _this1.textStyle;
|
|
423
424
|
var context = this.context;
|
|
425
|
+
context.save();
|
|
424
426
|
var charsInfo = [];
|
|
425
427
|
var fontHeight = textStyle.fontSize * this.textStyle.fontScale;
|
|
426
428
|
var charInfo = {
|
|
@@ -458,8 +460,8 @@ exports.RichTextComponent = /*#__PURE__*/ function(TextComponent) {
|
|
|
458
460
|
charsInfo.push(charInfo);
|
|
459
461
|
width = Math.max(width, charInfo.width);
|
|
460
462
|
height += charInfo.lineHeight;
|
|
461
|
-
var
|
|
462
|
-
this.item.transform.size.set(
|
|
463
|
+
var size = this.item.transform.size;
|
|
464
|
+
this.item.transform.size.set(size.x * width * this.SCALE_FACTOR * this.SCALE_FACTOR, size.y * height * this.SCALE_FACTOR * this.SCALE_FACTOR);
|
|
463
465
|
this.textLayout.width = width / textStyle.fontScale;
|
|
464
466
|
this.textLayout.height = height / textStyle.fontScale;
|
|
465
467
|
this.canvas.width = width;
|
|
@@ -472,6 +474,9 @@ exports.RichTextComponent = /*#__PURE__*/ function(TextComponent) {
|
|
|
472
474
|
context.scale(1, -1);
|
|
473
475
|
}
|
|
474
476
|
var charsLineHeight = charsInfo[0].lineHeight - charsInfo[0].offsetY;
|
|
477
|
+
if (charsInfo.length === 0) {
|
|
478
|
+
return;
|
|
479
|
+
}
|
|
475
480
|
charsInfo.forEach(function(charInfo, index) {
|
|
476
481
|
var richOptions = charInfo.richOptions, offsetX = charInfo.offsetX;
|
|
477
482
|
var x = textLayout.getOffsetX(textStyle, charInfo.width);
|
|
@@ -488,7 +493,7 @@ exports.RichTextComponent = /*#__PURE__*/ function(TextComponent) {
|
|
|
488
493
|
});
|
|
489
494
|
//与 toDataURL() 两种方式都需要像素读取操作
|
|
490
495
|
var imageData = context.getImageData(0, 0, this.canvas.width, this.canvas.height);
|
|
491
|
-
this.material.setTexture("
|
|
496
|
+
this.material.setTexture("_MainTex", EFFECTS.Texture.createWithData(this.engine, {
|
|
492
497
|
data: new Uint8Array(imageData.data),
|
|
493
498
|
width: imageData.width,
|
|
494
499
|
height: imageData.height
|
|
@@ -500,11 +505,12 @@ exports.RichTextComponent = /*#__PURE__*/ function(TextComponent) {
|
|
|
500
505
|
wrapT: EFFECTS.glContext.CLAMP_TO_EDGE
|
|
501
506
|
}));
|
|
502
507
|
this.isDirty = false;
|
|
508
|
+
context.restore();
|
|
503
509
|
};
|
|
504
510
|
_proto.updateWithOptions = function updateWithOptions(options) {
|
|
505
511
|
this.textStyle = new EFFECTS.TextStyle(options);
|
|
506
512
|
this.textLayout = new EFFECTS.TextLayout(options);
|
|
507
|
-
this.text = options.text ? options.text.toString() : "";
|
|
513
|
+
this.text = options.text ? options.text.toString() : " ";
|
|
508
514
|
};
|
|
509
515
|
return RichTextComponent;
|
|
510
516
|
}(EFFECTS.TextComponent);
|
|
@@ -514,7 +520,7 @@ exports.RichTextComponent = __decorate([
|
|
|
514
520
|
|
|
515
521
|
/**
|
|
516
522
|
* 插件版本号
|
|
517
|
-
*/ var version = "2.1.0-alpha.
|
|
523
|
+
*/ var version = "2.1.0-alpha.14";
|
|
518
524
|
EFFECTS.registerPlugin("richtext", RichTextLoader, EFFECTS.VFXItem, true);
|
|
519
525
|
EFFECTS.logger.info("Plugin rich text version: " + version + ".");
|
|
520
526
|
if (version !== EFFECTS__namespace.version) {
|
package/dist/alipay.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alipay.js","sources":["../../../node_modules/.pnpm/@swc+helpers@0.5.8/node_modules/@swc/helpers/esm/_set_prototype_of.js","../../../node_modules/.pnpm/@swc+helpers@0.5.8/node_modules/@swc/helpers/esm/_inherits.js","../src/rich-text-loader.ts","../../../node_modules/.pnpm/@swc+helpers@0.5.8/node_modules/@swc/helpers/esm/_array_like_to_array.js","../../../node_modules/.pnpm/@swc+helpers@0.5.8/node_modules/@swc/helpers/esm/_unsupported_iterable_to_array.js","../../../node_modules/.pnpm/@swc+helpers@0.5.8/node_modules/@swc/helpers/esm/_create_for_of_iterator_helper_loose.js","../src/rich-text-parser.ts","../../../node_modules/.pnpm/tslib@2.6.2/node_modules/tslib/tslib.es6.mjs","../src/color-utils.ts","../src/rich-text-component.ts","../src/index.ts"],"sourcesContent":["export 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 { _set_prototype_of } from \"./_set_prototype_of.js\";\n\nexport function _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","import { AbstractPlugin } from '@galacean/effects';\n\nexport class RichTextLoader extends AbstractPlugin {\n override name = 'richtext';\n}\n","export function _array_like_to_array(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\nexport { _array_like_to_array as _ };\n","import { _array_like_to_array } from \"./_array_like_to_array.js\";\n\nexport function _unsupported_iterable_to_array(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _array_like_to_array(o, minLen);\n\n var n = Object.prototype.toString.call(o).slice(8, -1);\n\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);\n}\nexport { _unsupported_iterable_to_array as _ };\n","import { _unsupported_iterable_to_array } from \"./_unsupported_iterable_to_array.js\";\n\nexport function _create_for_of_iterator_helper_loose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (it) return (it = it.call(o)).next.bind(it);\n // Fallback for engines without symbol support\n if (Array.isArray(o) || (it = _unsupported_iterable_to_array(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n\n var i = 0;\n\n return function() {\n if (i >= o.length) return { done: true };\n\n return { done: false, value: o[i++] };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _create_for_of_iterator_helper_loose as _ };\n","enum TokenType {\n ContextStart = 'ContextStart',\n Text = 'Text',\n ContextEnd = 'ContextEnd',\n}\n\nexport type Token = {\n tokenType: TokenType,\n value: string,\n};\n\nconst contextStartRegexp = /^<([a-z]+)(=([^>]+))?>$/;\nconst contextEndRegexp = /^<\\/([a-z]+)>$/;\n\nconst rules: [TokenType, RegExp][] = [\n [TokenType.ContextStart, /^<[a-z]+(=[^>]+)?>/],\n [TokenType.Text, /^[^</>=]+/],\n [TokenType.ContextEnd, /^<\\/[a-z]+>/],\n];\n\nexport const lexer = (input: string, lexed: Token[] = [], cursor = 0): Token[] => {\n if (!input) {\n return lexed;\n }\n\n for (const [tokenType, regex] of rules) {\n const [tokenMatch] = regex.exec(input) ?? [];\n\n if (tokenMatch) {\n\n const len = tokenMatch.length;\n\n return lexer(input.slice(len), lexed.concat({ tokenType, value: tokenMatch }), cursor + len);\n }\n }\n\n throw new Error(`Unexpected token: \"${input[0]}\" at position ${cursor} while reading \"${input}\"`);\n};\n\nexport type Attribute = {\n attributeName?: string,\n attributeParam?: string,\n};\n\nexport type RichTextAST = {\n attributes: Attribute[],\n text: string,\n};\n\nexport const richTextParser = (input: string): RichTextAST[] => {\n const lexed = lexer(input);\n let cursor = 0;\n\n const shift = () => {\n const shifted = lexed.shift();\n\n cursor += shifted?.value.length ?? 0;\n\n return shifted;\n };\n\n const peek = () => {\n return lexed[0];\n };\n\n const ast: RichTextAST[] = [];\n\n function Grammar (attributes: Attribute[] = [], expectedEndAttributeName = '') {\n const parsing = true;\n\n while (parsing) {\n const maybeText = Text();\n\n if (maybeText) {\n ast.push({\n attributes,\n text: maybeText,\n });\n\n continue;\n }\n\n const { attributeName, attributeParam } = ContextStart();\n\n if (attributeName) {\n Grammar(attributes.concat({ attributeName, attributeParam }), attributeName);\n\n continue;\n }\n\n if (expectedEndAttributeName) {\n const { attributeName: endAttributeName } = ContextEnd();\n\n if (!endAttributeName) {\n throw new Error('Expected end of font style with tag \"' + expectedEndAttributeName + '\" at position ' + cursor + ' but not found any tag!');\n }\n\n if (endAttributeName !== expectedEndAttributeName) {\n throw new Error('Expected end of font style with tag \"' + expectedEndAttributeName + '\" at position ' + cursor + ' but found tag \"' + endAttributeName + '\"');\n }\n\n return;\n }\n\n break;\n }\n }\n\n function Text (): string | undefined {\n const maybeText = peek();\n\n if (maybeText?.tokenType === TokenType.Text) {\n shift();\n\n return maybeText.value;\n }\n\n return undefined;\n }\n\n function ContextStart (): { attributeName?: string, attributeParam?: string } {\n const maybeContextStart = peek();\n\n if (maybeContextStart?.tokenType === TokenType.ContextStart) {\n shift();\n\n const matches = maybeContextStart.value.match(contextStartRegexp);\n\n if (matches) {\n const attributeName = matches[1];\n const attributeParam = matches[3] ?? '';\n\n return { attributeName, attributeParam };\n }\n\n throw new Error('Expected a font style start tag at position ' + cursor);\n }\n\n return {};\n }\n\n function ContextEnd (): { attributeName?: string } {\n const maybeContextEnd = peek();\n\n if (maybeContextEnd?.tokenType === TokenType.ContextEnd) {\n shift();\n\n const matches = maybeContextEnd.value.match(contextEndRegexp);\n\n if (matches) {\n const attributeName = matches[1];\n\n return { attributeName };\n }\n\n throw new Error('Expected a font style end tag at position ' + cursor);\n }\n\n return {};\n }\n Grammar();\n\n return ast;\n};\n\nexport function generateProgram (textHandler: (text: string, context: Record<string, string | undefined>) => void) {\n return (richText: string) => {\n const ast = richTextParser(richText);\n\n for (const node of ast) {\n const text = node.text;\n const context = node.attributes.reduce<Record<string, string | undefined>>((ctx, { attributeName, attributeParam }) => {\n if (attributeName) {\n ctx[attributeName] = attributeParam;\n }\n\n return ctx;\n }, {});\n\n textHandler(text, context);\n }\n };\n}\n\nexport function isRichText (text: string): boolean {\n const lexed = lexer(text);\n const contextTokens = lexed.filter(({ tokenType }) => tokenType === TokenType.ContextStart || tokenType === TokenType.ContextEnd);\n\n const contextStartTokens = contextTokens.filter(({ tokenType }) => tokenType === TokenType.ContextStart);\n const contextEndTokens = contextTokens.filter(({ tokenType }) => tokenType === TokenType.ContextEnd);\n\n if (contextStartTokens.length !== contextEndTokens.length || !contextStartTokens.length) {\n return false;\n }\n\n const tokensOfAttribute = contextTokens.map(({ tokenType, value }) => ({ tokenType, value: tokenType === TokenType.ContextStart ? value.match(contextStartRegexp)![1] : value.match(contextEndRegexp)![1] }));\n\n function checkPaired ([token, ...restToken]: Token[], startContextAttributes: string[] = []): boolean {\n if (!token) {\n return startContextAttributes.length === 0;\n }\n\n if (token.tokenType === TokenType.ContextStart) {\n return checkPaired(restToken, startContextAttributes.concat(token.value));\n } else if (token.tokenType === TokenType.ContextEnd) {\n const attributeName = startContextAttributes[startContextAttributes.length - 1];\n\n if (attributeName !== token.value) {\n return false;\n }\n\n return checkPaired(restToken, startContextAttributes.slice(0, -1));\n }\n\n throw new Error('Unexpected token: ' + token.tokenType);\n }\n\n return checkPaired(tokensOfAttribute);\n}\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 */\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;\n return g = { next: verb(0), \"throw\": verb(1), \"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 = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\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\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\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;\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 }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\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 function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\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};\n","import type { spec } from '@galacean/effects';\n\n/**\n * 将颜色名称转换为 RGBA\n * @param colorName - 颜色名称\n * @returns RGBA 颜色字符串\n */\nexport function colorNameToRGBA (colorName: string): string {\n if (typeof colorName !== 'string' || !colorName) {\n throw new Error('Invalid color name provided');\n }\n if (typeof document === 'undefined') {\n throw new Error('This method requires a browser environment');\n }\n const canvas = document.createElement('canvas');\n const context = canvas.getContext('2d');\n\n if (context) {\n try {\n context.fillStyle = colorName;\n const result = context.fillStyle;\n\n return result;\n } finally {\n // Clean up DOM element\n canvas.remove();\n }\n }\n\n throw new Error('Failed to get 2D context for color conversion!');\n}\n\n/**\n * 将 16 进制颜色转换为 RGBA\n * @param hex - 16 进制颜色\n * @param alpha - 透明度\n * @returns - RGBA 颜色\n */\nexport function hexToRGBA (hex: string, alpha: number = 1): spec.vec4 {\n hex = hex.replace(/^#/, '');\n\n if (hex.length === 3 || hex.length === 4) {\n hex = hex.split('').map(char => char + char).join('');\n }\n\n // Handle alpha channel in hex\n if (hex.length === 8) {\n const a = parseInt(hex.slice(6, 8), 16) / 255;\n\n hex = hex.slice(0, 6);\n alpha = a;\n }\n const bigint = parseInt(hex, 16);\n const r = (bigint >> 16) & 255;\n const g = (bigint >> 8) & 255;\n const b = bigint & 255;\n\n return [r, g, b, alpha];\n}\n\n/**\n * 将颜色字符串转换为 RGBA\n * @param color - 颜色字符串\n * @param alpha - 透明度\n * @returns - RGBA 颜色\n */\nexport function toRGBA (color: string, alpha: number = 1): spec.vec4 {\n if (typeof color !== 'string' || !color) {\n throw new Error('Invalid color string');\n }\n if (color.startsWith('#')) {\n return hexToRGBA(color, alpha);\n } else {\n return hexToRGBA(colorNameToRGBA(color));\n }\n}\n","import type { Engine } from '@galacean/effects';\nimport { effectsClass, glContext, spec, TextComponent, Texture, TextLayout, TextStyle } from '@galacean/effects';\nimport { generateProgram } from './rich-text-parser';\nimport { toRGBA } from './color-utils';\n\n/**\n *\n */\nexport interface RichTextOptions {\n text: string,\n fontSize: number,\n fontFamily?: string,\n fontWeight?: spec.TextWeight,\n fontStyle?: spec.FontStyle,\n fontColor?: spec.vec4,\n textStyle?: TextStyle,\n isNewLine: boolean,\n}\n\ninterface RichCharInfo {\n offsetX: number[],\n /**\n * 字符参数\n */\n richOptions: RichTextOptions[],\n /**\n * 段落宽度\n */\n width: number,\n /**\n * 段落高度\n */\n lineHeight: number,\n /**\n * 字体偏移高度\n */\n offsetY: number,\n}\n\nlet seed = 0;\n\n@effectsClass(spec.DataType.RichTextComponent)\nexport class RichTextComponent extends TextComponent {\n processedTextOptions: RichTextOptions[] = [];\n\n private singleLineHeight: number = 1.571;\n\n constructor (engine: Engine) {\n super(engine);\n\n this.name = 'MRichText' + seed++;\n }\n\n private generateTextProgram (text: string) {\n const program = generateProgram((text, context) => {\n const textArr = text.split('\\n');\n\n textArr.forEach((text, index) => {\n const options: RichTextOptions = {\n text,\n fontSize: this.textStyle.fontSize,\n isNewLine: false,\n };\n\n if (index > 0) {\n options.isNewLine = true;\n }\n if ('b' in context) {\n options.fontWeight = spec.TextWeight.bold;\n }\n\n if ('i' in context) {\n options.fontStyle = spec.FontStyle.italic;\n }\n\n if ('size' in context && context.size) {\n options.fontSize = parseInt(context.size, 10);\n }\n\n if ('color' in context && context.color) {\n options.fontColor = toRGBA(context.color);\n }\n this.processedTextOptions.push(options);\n });\n\n });\n\n program(text);\n }\n\n override updateTexture (flipY = true) {\n if (!this.isDirty || !this.context || !this.canvas) {\n return;\n }\n this.generateTextProgram(this.text);\n let width = 0, height = 0;\n const { textLayout, textStyle } = this;\n\n const context = this.context;\n const charsInfo: RichCharInfo[] = [];\n const fontHeight = textStyle.fontSize * this.textStyle.fontScale;\n let charInfo: RichCharInfo = {\n richOptions: [],\n offsetX: [],\n width: 0,\n lineHeight: fontHeight * this.singleLineHeight,\n offsetY: fontHeight * (this.singleLineHeight - 1) / 2,\n };\n\n this.processedTextOptions.forEach((options, index) => {\n const { text, isNewLine, fontSize } = options;\n\n if (isNewLine) {\n charsInfo.push(charInfo);\n width = Math.max(width, charInfo.width);\n charInfo = {\n richOptions: [],\n offsetX: [],\n width: 0,\n lineHeight: fontHeight * this.singleLineHeight,\n offsetY: fontHeight * (this.singleLineHeight - 1) / 2,\n };\n height += charInfo.lineHeight;\n }\n const textWidth = context.measureText(text).width;\n const textHeight = fontSize * this.singleLineHeight * this.textStyle.fontScale;\n\n if (textHeight > charInfo.lineHeight) {\n height += textHeight - charInfo.lineHeight;\n\n charInfo.lineHeight = textHeight;\n charInfo.offsetY = fontSize * this.textStyle.fontScale * (this.singleLineHeight - 1) / 2;\n }\n charInfo.offsetX.push(charInfo.width);\n\n charInfo.width += textWidth * fontSize * this.SCALE_FACTOR * this.textStyle.fontScale;\n charInfo.richOptions.push(options);\n });\n charsInfo.push(charInfo);\n width = Math.max(width, charInfo.width);\n height += charInfo.lineHeight;\n const scale = width / height;\n\n this.item.transform.size.set(textStyle.fontSize * this.SCALE_FACTOR, textStyle.fontSize * this.SCALE_FACTOR * scale);\n this.textLayout.width = width / textStyle.fontScale;\n this.textLayout.height = height / textStyle.fontScale;\n this.canvas.width = width;\n this.canvas.height = height;\n context.clearRect(0, 0, width, height);\n // fix bug 1/255\n context.fillStyle = `rgba(255, 255, 255, ${this.ALPHA_FIX_VALUE})`;\n if (!flipY) {\n context.translate(0, height);\n context.scale(1, -1);\n }\n let charsLineHeight = charsInfo[0].lineHeight - charsInfo[0].offsetY;\n\n charsInfo.forEach((charInfo, index) => {\n const { richOptions, offsetX } = charInfo;\n const x = textLayout.getOffsetX(textStyle, charInfo.width);\n\n if (index > 0) {\n charsLineHeight += charInfo.lineHeight - charInfo.offsetY + charsInfo[index - 1].offsetY;\n }\n richOptions.forEach((options, index) => {\n const { fontScale, textColor, fontFamily: textFamily, textWeight, fontStyle: richStyle } = textStyle;\n const { text, fontSize, fontColor = textColor, fontFamily = textFamily, fontWeight = textWeight, fontStyle = richStyle } = options;\n\n context.font = `${fontStyle} ${fontWeight} ${fontSize * fontScale}px ${fontFamily}`;\n\n context.fillStyle = `rgba(${fontColor[0]}, ${fontColor[1]}, ${fontColor[2]}, ${fontColor[3]})`;\n\n context.fillText(text, offsetX[index] + x, charsLineHeight);\n });\n });\n\n //与 toDataURL() 两种方式都需要像素读取操作\n const imageData = context.getImageData(0, 0, this.canvas.width, this.canvas.height);\n\n this.material.setTexture('uSampler0',\n Texture.createWithData(\n this.engine,\n {\n data: new Uint8Array(imageData.data),\n width: imageData.width,\n height: imageData.height,\n },\n {\n flipY,\n magFilter: glContext.LINEAR,\n minFilter: glContext.LINEAR,\n wrapS: glContext.CLAMP_TO_EDGE,\n wrapT: glContext.CLAMP_TO_EDGE,\n },\n ),\n );\n\n this.isDirty = false;\n }\n\n override updateWithOptions (options: spec.TextContentOptions) {\n this.textStyle = new TextStyle(options);\n this.textLayout = new TextLayout(options);\n this.text = options.text ? options.text.toString() : '';\n }\n\n}\n","import * as EFFECTS from '@galacean/effects';\nimport { logger, registerPlugin, VFXItem } from '@galacean/effects';\nimport { RichTextLoader } from './rich-text-loader';\n\nexport * from './rich-text-parser';\nexport * from './rich-text-component';\n\n/**\n * 插件版本号\n */\nexport const version = __VERSION__;\n\nregisterPlugin('richtext', RichTextLoader, VFXItem, true);\n\nlogger.info(`Plugin rich text version: ${version}.`);\n\nif (version !== EFFECTS.version) {\n console.error(\n '注意:请统一 RichText 插件与 Player 版本,不统一的版本混用会有不可预知的后果!',\n '\\nAttention: Please ensure the RichText plugin is synchronized with the Player version. Mixing and matching incompatible versions may result in unpredictable consequences!'\n );\n}\n"],"names":["_set_prototype_of","o","p","Object","setPrototypeOf","__proto__","_inherits","subClass","superClass","TypeError","prototype","create","constructor","value","writable","configurable","RichTextLoader","name","AbstractPlugin","_array_like_to_array","arr","len","length","i","arr2","Array","_unsupported_iterable_to_array","minLen","n","toString","call","slice","from","test","_create_for_of_iterator_helper_loose","allowArrayLike","it","Symbol","iterator","next","bind","isArray","done","TokenType","contextStartRegexp","contextEndRegexp","rules","lexer","input","lexed","cursor","tokenType","regex","exec","tokenMatch","concat","Error","richTextParser","Text","maybeText","peek","shift","undefined","ContextStart","maybeContextStart","matches","match","attributeName","attributeParam","ContextEnd","maybeContextEnd","shifted","ast","Grammar","attributes","expectedEndAttributeName","parsing","push","text","endAttributeName","generateProgram","textHandler","richText","node","context","reduce","ctx","isRichText","contextTokens","filter","contextStartTokens","contextEndTokens","tokensOfAttribute","map","checkPaired","startContextAttributes","token","restToken","__decorate","decorators","target","key","desc","c","arguments","r","getOwnPropertyDescriptor","d","Reflect","decorate","defineProperty","SuppressedError","error","suppressed","message","e","colorNameToRGBA","colorName","document","canvas","createElement","getContext","fillStyle","result","remove","hexToRGBA","hex","alpha","replace","split","char","join","a","parseInt","bigint","g","b","toRGBA","color","startsWith","seed","RichTextComponent","engine","processedTextOptions","singleLineHeight","generateTextProgram","program","textArr","forEach","index","options","fontSize","textStyle","isNewLine","fontWeight","spec","TextWeight","bold","fontStyle","FontStyle","italic","size","fontColor","updateTexture","flipY","isDirty","width","height","textLayout","charsInfo","fontHeight","fontScale","charInfo","richOptions","offsetX","lineHeight","offsetY","Math","max","textWidth","measureText","textHeight","SCALE_FACTOR","scale","item","transform","set","clearRect","ALPHA_FIX_VALUE","translate","charsLineHeight","x","getOffsetX","textColor","fontFamily","textFamily","textWeight","richStyle","font","fillText","imageData","getImageData","material","setTexture","Texture","createWithData","data","Uint8Array","magFilter","glContext","LINEAR","minFilter","wrapS","CLAMP_TO_EDGE","wrapT","updateWithOptions","TextStyle","TextLayout","TextComponent","effectsClass","DataType","version","registerPlugin","VFXItem","logger","info","EFFECTS","console"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"alipay.js","sources":["../../../node_modules/.pnpm/@swc+helpers@0.5.8/node_modules/@swc/helpers/esm/_set_prototype_of.js","../../../node_modules/.pnpm/@swc+helpers@0.5.8/node_modules/@swc/helpers/esm/_inherits.js","../src/rich-text-loader.ts","../../../node_modules/.pnpm/@swc+helpers@0.5.8/node_modules/@swc/helpers/esm/_array_like_to_array.js","../../../node_modules/.pnpm/@swc+helpers@0.5.8/node_modules/@swc/helpers/esm/_unsupported_iterable_to_array.js","../../../node_modules/.pnpm/@swc+helpers@0.5.8/node_modules/@swc/helpers/esm/_create_for_of_iterator_helper_loose.js","../src/rich-text-parser.ts","../../../node_modules/.pnpm/tslib@2.6.2/node_modules/tslib/tslib.es6.mjs","../src/color-utils.ts","../src/rich-text-component.ts","../src/index.ts"],"sourcesContent":["export 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 { _set_prototype_of } from \"./_set_prototype_of.js\";\n\nexport function _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","import { AbstractPlugin } from '@galacean/effects';\n\nexport class RichTextLoader extends AbstractPlugin {\n override name = 'richtext';\n}\n","export function _array_like_to_array(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\nexport { _array_like_to_array as _ };\n","import { _array_like_to_array } from \"./_array_like_to_array.js\";\n\nexport function _unsupported_iterable_to_array(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _array_like_to_array(o, minLen);\n\n var n = Object.prototype.toString.call(o).slice(8, -1);\n\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);\n}\nexport { _unsupported_iterable_to_array as _ };\n","import { _unsupported_iterable_to_array } from \"./_unsupported_iterable_to_array.js\";\n\nexport function _create_for_of_iterator_helper_loose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (it) return (it = it.call(o)).next.bind(it);\n // Fallback for engines without symbol support\n if (Array.isArray(o) || (it = _unsupported_iterable_to_array(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n\n var i = 0;\n\n return function() {\n if (i >= o.length) return { done: true };\n\n return { done: false, value: o[i++] };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _create_for_of_iterator_helper_loose as _ };\n","enum TokenType {\n ContextStart = 'ContextStart',\n Text = 'Text',\n ContextEnd = 'ContextEnd',\n}\n\nexport type Token = {\n tokenType: TokenType,\n value: string,\n};\n\nconst contextStartRegexp = /^<([a-z]+)(=([^>]+))?>$/;\nconst contextEndRegexp = /^<\\/([a-z]+)>$/;\n\nconst rules: [TokenType, RegExp][] = [\n [TokenType.ContextStart, /^<[a-z]+(=[^>]+)?>/],\n [TokenType.Text, /^[^</>=]+/],\n [TokenType.ContextEnd, /^<\\/[a-z]+>/],\n];\n\nexport const lexer = (input: string, lexed: Token[] = [], cursor = 0): Token[] => {\n if (!input) {\n return lexed;\n }\n\n for (const [tokenType, regex] of rules) {\n const [tokenMatch] = regex.exec(input) ?? [];\n\n if (tokenMatch) {\n\n const len = tokenMatch.length;\n\n return lexer(input.slice(len), lexed.concat({ tokenType, value: tokenMatch }), cursor + len);\n }\n }\n\n throw new Error(`Unexpected token: \"${input[0]}\" at position ${cursor} while reading \"${input}\"`);\n};\n\nexport type Attribute = {\n attributeName?: string,\n attributeParam?: string,\n};\n\nexport type RichTextAST = {\n attributes: Attribute[],\n text: string,\n};\n\nexport const richTextParser = (input: string): RichTextAST[] => {\n const lexed = lexer(input);\n let cursor = 0;\n\n const shift = () => {\n const shifted = lexed.shift();\n\n cursor += shifted?.value.length ?? 0;\n\n return shifted;\n };\n\n const peek = () => {\n return lexed[0];\n };\n\n const ast: RichTextAST[] = [];\n\n function Grammar (attributes: Attribute[] = [], expectedEndAttributeName = '') {\n const parsing = true;\n\n while (parsing) {\n const maybeText = Text();\n\n if (maybeText) {\n ast.push({\n attributes,\n text: maybeText,\n });\n\n continue;\n }\n\n const { attributeName, attributeParam } = ContextStart();\n\n if (attributeName) {\n Grammar(attributes.concat({ attributeName, attributeParam }), attributeName);\n\n continue;\n }\n\n if (expectedEndAttributeName) {\n const { attributeName: endAttributeName } = ContextEnd();\n\n if (!endAttributeName) {\n throw new Error('Expect an end tag marker \"' + expectedEndAttributeName + '\" at position ' + cursor + ' but found no tag!');\n }\n\n if (endAttributeName !== expectedEndAttributeName) {\n throw new Error('Expect an end tag marker \"' + expectedEndAttributeName + '\" at position ' + cursor + ' but found tag \"' + endAttributeName + '\"');\n }\n\n return;\n }\n\n break;\n }\n }\n\n function Text (): string | undefined {\n const maybeText = peek();\n\n if (maybeText?.tokenType === TokenType.Text) {\n shift();\n\n return maybeText.value;\n }\n\n return undefined;\n }\n\n function ContextStart (): { attributeName?: string, attributeParam?: string } {\n const maybeContextStart = peek();\n\n if (maybeContextStart?.tokenType === TokenType.ContextStart) {\n shift();\n\n const matches = maybeContextStart.value.match(contextStartRegexp);\n\n if (matches) {\n const attributeName = matches[1];\n const attributeParam = matches[3] ?? '';\n\n return { attributeName, attributeParam };\n }\n\n throw new Error('Expected a start tag marker at position ' + cursor);\n }\n\n return {};\n }\n\n function ContextEnd (): { attributeName?: string } {\n const maybeContextEnd = peek();\n\n if (maybeContextEnd?.tokenType === TokenType.ContextEnd) {\n shift();\n\n const matches = maybeContextEnd.value.match(contextEndRegexp);\n\n if (matches) {\n const attributeName = matches[1];\n\n return { attributeName };\n }\n\n throw new Error('Expect an end tag marker at position ' + cursor);\n }\n\n return {};\n }\n\n Grammar();\n\n return ast;\n};\n\nexport function generateProgram (textHandler: (text: string, context: Record<string, string | undefined>) => void) {\n return (richText: string) => {\n const ast = richTextParser(richText);\n\n for (const node of ast) {\n const text = node.text;\n const context = node.attributes.reduce<Record<string, string | undefined>>((ctx, { attributeName, attributeParam }) => {\n if (attributeName) {\n ctx[attributeName] = attributeParam;\n }\n\n return ctx;\n }, {});\n\n textHandler(text, context);\n }\n };\n}\n\nexport function isRichText (text: string): boolean {\n const lexed = lexer(text);\n\n const contextTokens = lexed.filter(({ tokenType }) => tokenType === TokenType.ContextStart || tokenType === TokenType.ContextEnd);\n\n const contextStartTokens = contextTokens.filter(({ tokenType }) => tokenType === TokenType.ContextStart);\n const contextEndTokens = contextTokens.filter(({ tokenType }) => tokenType === TokenType.ContextEnd);\n\n if (contextStartTokens.length !== contextEndTokens.length || !contextStartTokens.length) {\n return false;\n }\n\n const tokensOfAttribute = contextTokens.map(({ tokenType, value }) => ({ tokenType, value: tokenType === TokenType.ContextStart ? value.match(contextStartRegexp)![1] : value.match(contextEndRegexp)![1] }));\n\n function checkPaired ([token, ...restToken]: Token[], startContextAttributes: string[] = []): boolean {\n if (!token) {\n return startContextAttributes.length === 0;\n }\n\n if (token.tokenType === TokenType.ContextStart) {\n return checkPaired(restToken, startContextAttributes.concat(token.value));\n } else if (token.tokenType === TokenType.ContextEnd) {\n const attributeName = startContextAttributes[startContextAttributes.length - 1];\n\n if (attributeName !== token.value) {\n return false;\n }\n\n return checkPaired(restToken, startContextAttributes.slice(0, -1));\n }\n\n throw new Error('Unexpected token: ' + token.tokenType);\n }\n\n return checkPaired(tokensOfAttribute);\n}\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 */\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;\n return g = { next: verb(0), \"throw\": verb(1), \"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 = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\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\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\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;\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 }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\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 function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\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};\n","import type { spec } from '@galacean/effects';\n\n/**\n * 将颜色名称转换为 RGBA\n * @param colorName - 颜色名称\n * @returns RGBA 颜色字符串\n */\nexport function colorNameToRGBA (colorName: string): string {\n if (typeof colorName !== 'string' || !colorName) {\n throw new Error('Invalid color name provided');\n }\n if (typeof document === 'undefined') {\n throw new Error('This method requires a browser environment');\n }\n const canvas = document.createElement('canvas');\n const context = canvas.getContext('2d');\n\n if (context) {\n try {\n context.fillStyle = colorName;\n const result = context.fillStyle;\n\n return result;\n } finally {\n // Clean up DOM element\n canvas.remove();\n }\n }\n\n throw new Error('Failed to get 2D context for color conversion!');\n}\n\n/**\n * 将 16 进制颜色转换为 RGBA\n * @param hex - 16 进制颜色\n * @param alpha - 透明度\n * @returns - RGBA 颜色\n */\nexport function hexToRGBA (hex: string, alpha: number = 1): spec.vec4 {\n hex = hex.replace(/^#/, '');\n\n if (hex.length === 3 || hex.length === 4) {\n hex = hex.split('').map(char => char + char).join('');\n }\n\n // Handle alpha channel in hex\n if (hex.length === 8) {\n const a = parseInt(hex.slice(6, 8), 16) / 255;\n\n hex = hex.slice(0, 6);\n alpha = a;\n }\n const bigint = parseInt(hex, 16);\n const r = (bigint >> 16) & 255;\n const g = (bigint >> 8) & 255;\n const b = bigint & 255;\n\n return [r, g, b, alpha];\n}\n\n/**\n * 将颜色字符串转换为 RGBA\n * @param color - 颜色字符串\n * @param alpha - 透明度\n * @returns - RGBA 颜色\n */\nexport function toRGBA (color: string, alpha: number = 1): spec.vec4 {\n if (typeof color !== 'string' || !color) {\n throw new Error('Invalid color string');\n }\n if (color.startsWith('#')) {\n return hexToRGBA(color, alpha);\n } else {\n return hexToRGBA(colorNameToRGBA(color));\n }\n}\n","import type { Engine } from '@galacean/effects';\nimport { effectsClass, glContext, spec, TextComponent, Texture, TextLayout, TextStyle } from '@galacean/effects';\nimport { generateProgram } from './rich-text-parser';\nimport { toRGBA } from './color-utils';\n\n/**\n *\n */\nexport interface RichTextOptions {\n text: string,\n fontSize: number,\n fontFamily?: string,\n fontWeight?: spec.TextWeight,\n fontStyle?: spec.FontStyle,\n fontColor?: spec.vec4,\n textStyle?: TextStyle,\n isNewLine: boolean,\n}\n\ninterface RichCharInfo {\n offsetX: number[],\n /**\n * 字符参数\n */\n richOptions: RichTextOptions[],\n /**\n * 段落宽度\n */\n width: number,\n /**\n * 段落高度\n */\n lineHeight: number,\n /**\n * 字体偏移高度\n */\n offsetY: number,\n}\n\nlet seed = 0;\n\n@effectsClass(spec.DataType.RichTextComponent)\nexport class RichTextComponent extends TextComponent {\n processedTextOptions: RichTextOptions[] = [];\n\n private singleLineHeight: number = 1.571;\n\n constructor (engine: Engine) {\n super(engine);\n\n this.name = 'MRichText' + seed++;\n }\n\n private generateTextProgram (text: string) {\n this.processedTextOptions = [];\n const program = generateProgram((text, context) => {\n const textArr = text.split('\\n');\n\n textArr.forEach((text, index) => {\n const options: RichTextOptions = {\n text,\n fontSize: this.textStyle.fontSize,\n isNewLine: false,\n };\n\n if (index > 0) {\n options.isNewLine = true;\n }\n if ('b' in context) {\n options.fontWeight = spec.TextWeight.bold;\n }\n\n if ('i' in context) {\n options.fontStyle = spec.FontStyle.italic;\n }\n\n if ('size' in context && context.size) {\n options.fontSize = parseInt(context.size, 10);\n }\n\n if ('color' in context && context.color) {\n options.fontColor = toRGBA(context.color);\n }\n this.processedTextOptions.push(options);\n });\n\n });\n\n program(text);\n }\n\n override updateTexture (flipY = true) {\n if (!this.isDirty || !this.context || !this.canvas) {\n return;\n }\n this.generateTextProgram(this.text);\n let width = 0, height = 0;\n const { textLayout, textStyle } = this;\n\n const context = this.context;\n\n context.save();\n const charsInfo: RichCharInfo[] = [];\n const fontHeight = textStyle.fontSize * this.textStyle.fontScale;\n let charInfo: RichCharInfo = {\n richOptions: [],\n offsetX: [],\n width: 0,\n lineHeight: fontHeight * this.singleLineHeight,\n offsetY: fontHeight * (this.singleLineHeight - 1) / 2,\n };\n\n this.processedTextOptions.forEach((options, index) => {\n const { text, isNewLine, fontSize } = options;\n\n if (isNewLine) {\n charsInfo.push(charInfo);\n width = Math.max(width, charInfo.width);\n charInfo = {\n richOptions: [],\n offsetX: [],\n width: 0,\n lineHeight: fontHeight * this.singleLineHeight,\n offsetY: fontHeight * (this.singleLineHeight - 1) / 2,\n };\n height += charInfo.lineHeight;\n }\n const textWidth = context.measureText(text).width;\n const textHeight = fontSize * this.singleLineHeight * this.textStyle.fontScale;\n\n if (textHeight > charInfo.lineHeight) {\n height += textHeight - charInfo.lineHeight;\n\n charInfo.lineHeight = textHeight;\n charInfo.offsetY = fontSize * this.textStyle.fontScale * (this.singleLineHeight - 1) / 2;\n }\n charInfo.offsetX.push(charInfo.width);\n\n charInfo.width += textWidth * fontSize * this.SCALE_FACTOR * this.textStyle.fontScale;\n charInfo.richOptions.push(options);\n });\n charsInfo.push(charInfo);\n width = Math.max(width, charInfo.width);\n height += charInfo.lineHeight;\n const size = this.item.transform.size;\n\n this.item.transform.size.set(size.x * width * this.SCALE_FACTOR * this.SCALE_FACTOR, size.y * height * this.SCALE_FACTOR * this.SCALE_FACTOR);\n this.textLayout.width = width / textStyle.fontScale;\n this.textLayout.height = height / textStyle.fontScale;\n this.canvas.width = width;\n this.canvas.height = height;\n context.clearRect(0, 0, width, height);\n // fix bug 1/255\n context.fillStyle = `rgba(255, 255, 255, ${this.ALPHA_FIX_VALUE})`;\n if (!flipY) {\n context.translate(0, height);\n context.scale(1, -1);\n }\n let charsLineHeight = charsInfo[0].lineHeight - charsInfo[0].offsetY;\n\n if (charsInfo.length === 0) {\n return;\n }\n charsInfo.forEach((charInfo, index) => {\n const { richOptions, offsetX } = charInfo;\n const x = textLayout.getOffsetX(textStyle, charInfo.width);\n\n if (index > 0) {\n charsLineHeight += charInfo.lineHeight - charInfo.offsetY + charsInfo[index - 1].offsetY;\n }\n richOptions.forEach((options, index) => {\n const { fontScale, textColor, fontFamily: textFamily, textWeight, fontStyle: richStyle } = textStyle;\n const { text, fontSize, fontColor = textColor, fontFamily = textFamily, fontWeight = textWeight, fontStyle = richStyle } = options;\n\n context.font = `${fontStyle} ${fontWeight} ${fontSize * fontScale}px ${fontFamily}`;\n\n context.fillStyle = `rgba(${fontColor[0]}, ${fontColor[1]}, ${fontColor[2]}, ${fontColor[3]})`;\n\n context.fillText(text, offsetX[index] + x, charsLineHeight);\n });\n });\n\n //与 toDataURL() 两种方式都需要像素读取操作\n const imageData = context.getImageData(0, 0, this.canvas.width, this.canvas.height);\n\n this.material.setTexture('_MainTex',\n Texture.createWithData(\n this.engine,\n {\n data: new Uint8Array(imageData.data),\n width: imageData.width,\n height: imageData.height,\n },\n {\n flipY,\n magFilter: glContext.LINEAR,\n minFilter: glContext.LINEAR,\n wrapS: glContext.CLAMP_TO_EDGE,\n wrapT: glContext.CLAMP_TO_EDGE,\n },\n ),\n );\n\n this.isDirty = false;\n context.restore();\n }\n\n override updateWithOptions (options: spec.TextContentOptions) {\n this.textStyle = new TextStyle(options);\n this.textLayout = new TextLayout(options);\n this.text = options.text ? options.text.toString() : ' ';\n }\n\n}\n","import * as EFFECTS from '@galacean/effects';\nimport { logger, registerPlugin, VFXItem } from '@galacean/effects';\nimport { RichTextLoader } from './rich-text-loader';\n\nexport * from './rich-text-parser';\nexport * from './rich-text-component';\n\n/**\n * 插件版本号\n */\nexport const version = __VERSION__;\n\nregisterPlugin('richtext', RichTextLoader, VFXItem, true);\n\nlogger.info(`Plugin rich text version: ${version}.`);\n\nif (version !== EFFECTS.version) {\n console.error(\n '注意:请统一 RichText 插件与 Player 版本,不统一的版本混用会有不可预知的后果!',\n '\\nAttention: Please ensure the RichText plugin is synchronized with the Player version. Mixing and matching incompatible versions may result in unpredictable consequences!'\n );\n}\n"],"names":["_set_prototype_of","o","p","Object","setPrototypeOf","__proto__","_inherits","subClass","superClass","TypeError","prototype","create","constructor","value","writable","configurable","RichTextLoader","name","AbstractPlugin","_array_like_to_array","arr","len","length","i","arr2","Array","_unsupported_iterable_to_array","minLen","n","toString","call","slice","from","test","_create_for_of_iterator_helper_loose","allowArrayLike","it","Symbol","iterator","next","bind","isArray","done","TokenType","contextStartRegexp","contextEndRegexp","rules","lexer","input","lexed","cursor","tokenType","regex","exec","tokenMatch","concat","Error","richTextParser","Text","maybeText","peek","shift","undefined","ContextStart","maybeContextStart","matches","match","attributeName","attributeParam","ContextEnd","maybeContextEnd","shifted","ast","Grammar","attributes","expectedEndAttributeName","parsing","push","text","endAttributeName","generateProgram","textHandler","richText","node","context","reduce","ctx","isRichText","contextTokens","filter","contextStartTokens","contextEndTokens","tokensOfAttribute","map","checkPaired","startContextAttributes","token","restToken","__decorate","decorators","target","key","desc","c","arguments","r","getOwnPropertyDescriptor","d","Reflect","decorate","defineProperty","SuppressedError","error","suppressed","message","e","colorNameToRGBA","colorName","document","canvas","createElement","getContext","fillStyle","result","remove","hexToRGBA","hex","alpha","replace","split","char","join","a","parseInt","bigint","g","b","toRGBA","color","startsWith","seed","RichTextComponent","engine","processedTextOptions","singleLineHeight","generateTextProgram","program","textArr","forEach","index","options","fontSize","textStyle","isNewLine","fontWeight","spec","TextWeight","bold","fontStyle","FontStyle","italic","size","fontColor","updateTexture","flipY","isDirty","width","height","textLayout","save","charsInfo","fontHeight","fontScale","charInfo","richOptions","offsetX","lineHeight","offsetY","Math","max","textWidth","measureText","textHeight","SCALE_FACTOR","item","transform","set","x","y","clearRect","ALPHA_FIX_VALUE","translate","scale","charsLineHeight","getOffsetX","textColor","fontFamily","textFamily","textWeight","richStyle","font","fillText","imageData","getImageData","material","setTexture","Texture","createWithData","data","Uint8Array","magFilter","glContext","LINEAR","minFilter","wrapS","CLAMP_TO_EDGE","wrapT","restore","updateWithOptions","TextStyle","TextLayout","TextComponent","effectsClass","DataType","version","registerPlugin","VFXItem","logger","info","EFFECTS","console"],"mappings":"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"}
|
package/dist/alipay.mjs
CHANGED
|
@@ -134,7 +134,7 @@ var richTextParser = function(input) {
|
|
|
134
134
|
attributeParam: attributeParam
|
|
135
135
|
};
|
|
136
136
|
}
|
|
137
|
-
throw new Error("Expected a
|
|
137
|
+
throw new Error("Expected a start tag marker at position " + cursor);
|
|
138
138
|
}
|
|
139
139
|
return {};
|
|
140
140
|
};
|
|
@@ -149,7 +149,7 @@ var richTextParser = function(input) {
|
|
|
149
149
|
attributeName: attributeName
|
|
150
150
|
};
|
|
151
151
|
}
|
|
152
|
-
throw new Error("
|
|
152
|
+
throw new Error("Expect an end tag marker at position " + cursor);
|
|
153
153
|
}
|
|
154
154
|
return {};
|
|
155
155
|
};
|
|
@@ -189,10 +189,10 @@ var richTextParser = function(input) {
|
|
|
189
189
|
if (expectedEndAttributeName) {
|
|
190
190
|
var _ContextEnd = ContextEnd(), endAttributeName = _ContextEnd.attributeName;
|
|
191
191
|
if (!endAttributeName) {
|
|
192
|
-
throw new Error('
|
|
192
|
+
throw new Error('Expect an end tag marker "' + expectedEndAttributeName + '" at position ' + cursor + " but found no tag!");
|
|
193
193
|
}
|
|
194
194
|
if (endAttributeName !== expectedEndAttributeName) {
|
|
195
|
-
throw new Error('
|
|
195
|
+
throw new Error('Expect an end tag marker "' + expectedEndAttributeName + '" at position ' + cursor + ' but found tag "' + endAttributeName + '"');
|
|
196
196
|
}
|
|
197
197
|
return;
|
|
198
198
|
}
|
|
@@ -360,6 +360,7 @@ var RichTextComponent = /*#__PURE__*/ function(TextComponent) {
|
|
|
360
360
|
var _proto = RichTextComponent.prototype;
|
|
361
361
|
_proto.generateTextProgram = function generateTextProgram(text) {
|
|
362
362
|
var _this = this;
|
|
363
|
+
this.processedTextOptions = [];
|
|
363
364
|
var program = generateProgram(function(text, context) {
|
|
364
365
|
var textArr = text.split("\n");
|
|
365
366
|
textArr.forEach(function(text, index) {
|
|
@@ -398,6 +399,7 @@ var RichTextComponent = /*#__PURE__*/ function(TextComponent) {
|
|
|
398
399
|
var width = 0, height = 0;
|
|
399
400
|
var _this1 = this, textLayout = _this1.textLayout, textStyle = _this1.textStyle;
|
|
400
401
|
var context = this.context;
|
|
402
|
+
context.save();
|
|
401
403
|
var charsInfo = [];
|
|
402
404
|
var fontHeight = textStyle.fontSize * this.textStyle.fontScale;
|
|
403
405
|
var charInfo = {
|
|
@@ -435,8 +437,8 @@ var RichTextComponent = /*#__PURE__*/ function(TextComponent) {
|
|
|
435
437
|
charsInfo.push(charInfo);
|
|
436
438
|
width = Math.max(width, charInfo.width);
|
|
437
439
|
height += charInfo.lineHeight;
|
|
438
|
-
var
|
|
439
|
-
this.item.transform.size.set(
|
|
440
|
+
var size = this.item.transform.size;
|
|
441
|
+
this.item.transform.size.set(size.x * width * this.SCALE_FACTOR * this.SCALE_FACTOR, size.y * height * this.SCALE_FACTOR * this.SCALE_FACTOR);
|
|
440
442
|
this.textLayout.width = width / textStyle.fontScale;
|
|
441
443
|
this.textLayout.height = height / textStyle.fontScale;
|
|
442
444
|
this.canvas.width = width;
|
|
@@ -449,6 +451,9 @@ var RichTextComponent = /*#__PURE__*/ function(TextComponent) {
|
|
|
449
451
|
context.scale(1, -1);
|
|
450
452
|
}
|
|
451
453
|
var charsLineHeight = charsInfo[0].lineHeight - charsInfo[0].offsetY;
|
|
454
|
+
if (charsInfo.length === 0) {
|
|
455
|
+
return;
|
|
456
|
+
}
|
|
452
457
|
charsInfo.forEach(function(charInfo, index) {
|
|
453
458
|
var richOptions = charInfo.richOptions, offsetX = charInfo.offsetX;
|
|
454
459
|
var x = textLayout.getOffsetX(textStyle, charInfo.width);
|
|
@@ -465,7 +470,7 @@ var RichTextComponent = /*#__PURE__*/ function(TextComponent) {
|
|
|
465
470
|
});
|
|
466
471
|
//与 toDataURL() 两种方式都需要像素读取操作
|
|
467
472
|
var imageData = context.getImageData(0, 0, this.canvas.width, this.canvas.height);
|
|
468
|
-
this.material.setTexture("
|
|
473
|
+
this.material.setTexture("_MainTex", Texture.createWithData(this.engine, {
|
|
469
474
|
data: new Uint8Array(imageData.data),
|
|
470
475
|
width: imageData.width,
|
|
471
476
|
height: imageData.height
|
|
@@ -477,11 +482,12 @@ var RichTextComponent = /*#__PURE__*/ function(TextComponent) {
|
|
|
477
482
|
wrapT: glContext.CLAMP_TO_EDGE
|
|
478
483
|
}));
|
|
479
484
|
this.isDirty = false;
|
|
485
|
+
context.restore();
|
|
480
486
|
};
|
|
481
487
|
_proto.updateWithOptions = function updateWithOptions(options) {
|
|
482
488
|
this.textStyle = new TextStyle(options);
|
|
483
489
|
this.textLayout = new TextLayout(options);
|
|
484
|
-
this.text = options.text ? options.text.toString() : "";
|
|
490
|
+
this.text = options.text ? options.text.toString() : " ";
|
|
485
491
|
};
|
|
486
492
|
return RichTextComponent;
|
|
487
493
|
}(TextComponent);
|
|
@@ -491,7 +497,7 @@ RichTextComponent = __decorate([
|
|
|
491
497
|
|
|
492
498
|
/**
|
|
493
499
|
* 插件版本号
|
|
494
|
-
*/ var version = "2.1.0-alpha.
|
|
500
|
+
*/ var version = "2.1.0-alpha.14";
|
|
495
501
|
registerPlugin("richtext", RichTextLoader, VFXItem, true);
|
|
496
502
|
logger.info("Plugin rich text version: " + version + ".");
|
|
497
503
|
if (version !== EFFECTS.version) {
|