chore: 修改在 UI 编写时遇到的一些问题

This commit is contained in:
unanmed 2025-03-13 19:39:04 +08:00
parent 5e1ea25d6d
commit 89567924e8
15 changed files with 409 additions and 42 deletions

View File

@ -69,6 +69,7 @@
"globals": "^15.14.0",
"less": "^4.2.0",
"madge": "^8.0.0",
"markdown-it-mathjax3": "^4.3.2",
"postcss-preset-env": "^9.6.0",
"rollup": "^3.29.4",
"terser": "^5.31.6",

View File

@ -1,8 +1,18 @@
{
"name": "@user/client-modules",
"dependencies": {
"@motajs/client-base": "workspace:*",
"@motajs/common": "workspace:*",
"@motajs/render": "workspace:*",
"@motajs/render-core": "workspace:*",
"@motajs/legacy-common": "workspace:*",
"@motajs/legacy-ui": "workspace:*",
"@user/legacy-plugin-client": "workspace:*"
"@motajs/types": "workspace:*",
"@motajs/system-action": "workspace:*",
"@motajs/system-ui": "workspace:*",
"@user/data-base": "workspace:*",
"@user/data-state": "workspace:*",
"@user/legacy-plugin-client": "workspace:*",
"@user/legacy-plugin-data": "workspace:*"
}
}

View File

@ -581,3 +581,4 @@ export function waitbox<T>(
}
export const WaitBoxUI = new GameUI('wait-box', WaitBox);
export const BackgroundUI = new GameUI('background', Background);

View File

@ -0,0 +1,3 @@
import { UIController } from '@motajs/system-ui';
export const mainUIController = new UIController('main-ui');

View File

@ -1,2 +1,3 @@
export * from './controller';
export * from './main';
export * from './statusBar';

View File

@ -13,7 +13,7 @@ import {
import { WeatherController } from '../../weather';
import { defineComponent, onMounted, reactive, ref } from 'vue';
import { Textbox, Tip } from '../components';
import { GameUI, UIController } from '@motajs/system-ui';
import { GameUI } from '@motajs/system-ui';
import {
MAIN_HEIGHT,
MAIN_WIDTH,
@ -38,6 +38,7 @@ import { LayerGroupFilter } from '../legacy/gameCanvas';
import { LayerGroupHalo } from '../legacy/halo';
import { FloorChange } from '../legacy/fallback';
import { PopText } from '../legacy/pop';
import { mainUIController } from './controller';
const MainScene = defineComponent(() => {
const layerGroupExtends: ILayerGroupRenderExtends[] = [
@ -235,4 +236,3 @@ const MainScene = defineComponent(() => {
});
export const mainSceneUI = new GameUI('main-scene', MainScene);
export const mainUIController = new UIController('main-ui');

View File

@ -92,10 +92,10 @@
"58": "Fail to set ellipse round rect, since length of 'ellipse' property should only be 2, 4, 6 or 8. delivered: $1",
"59": "Unknown icon '$1' in parsing text content.",
"60": "Repeated Tip id: '$1'.",
"61": "Unexpected recursive call of $1.update in render function. Please ensure you have to do this, if you do, ignore this warn.",
"61": "Unexpected recursive call of $1.update?$2 in render function. Please ensure you have to do this, if you do, ignore this warn.",
"62": "Recursive fallback fonts in '$1'.",
"63": "Uncaught promise error in waiting box component. Error reason: $1",
"1001": "Item-detail extension needs 'floor-binder' and 'floor-damage' extension as dependency.",
"1101": "Cannot add new effect to point effect instance, for there's no more reserve space for it. Please increase the max count of the instance."
}
}
}

View File

@ -612,7 +612,7 @@ export abstract class RenderItem<E extends ERenderItemEvent = ERenderItemEvent>
update(item: RenderItem<any> = this): void {
if (import.meta.env.DEV) {
if (this.forbidUpdate) {
logger.warn(61, this.constructor.name);
logger.warn(61, this.constructor.name, this.uid.toString());
}
}
if (this._parent) {

View File

@ -43,29 +43,31 @@ export class Transform {
/**
*
*/
scale(x: number, y: number = x) {
scale(x: number, y: number = x): this {
mat3.scale(this.mat, this.mat, [x, y]);
this.scaleX *= x;
this.scaleY *= y;
this.modified = true;
this.bindedObject?.updateTransform?.();
return this;
}
/**
*
*/
translate(x: number, y: number) {
translate(x: number, y: number): this {
mat3.translate(this.mat, this.mat, [x, y]);
this.x += x;
this.y += y;
this.modified = true;
this.bindedObject?.updateTransform?.();
return this;
}
/**
*
*/
rotate(rad: number) {
rotate(rad: number): this {
mat3.rotate(this.mat, this.mat, rad);
this.rad += rad;
if (this.rad >= Math.PI * 2) {
@ -74,38 +76,42 @@ export class Transform {
}
this.modified = true;
this.bindedObject?.updateTransform?.();
return this;
}
/**
*
*/
setScale(x: number, y: number = x) {
setScale(x: number, y: number = x): this {
mat3.scale(this.mat, this.mat, [x / this.scaleX, y / this.scaleY]);
this.scaleX = x;
this.scaleY = y;
this.modified = true;
this.bindedObject?.updateTransform?.();
return this;
}
/**
*
*/
setTranslate(x: number, y: number) {
setTranslate(x: number, y: number): this {
mat3.translate(this.mat, this.mat, [x - this.x, y - this.y]);
this.x = x;
this.y = y;
this.modified = true;
this.bindedObject?.updateTransform?.();
return this;
}
/**
*
*/
setRotate(rad: number) {
setRotate(rad: number): this {
mat3.rotate(this.mat, this.mat, rad - this.rad);
this.rad = rad;
this.modified = true;
this.bindedObject?.updateTransform?.();
return this;
}
/**
@ -124,7 +130,7 @@ export class Transform {
d: number,
e: number,
f: number
) {
): this {
mat3.multiply(
this.mat,
this.mat,
@ -132,6 +138,7 @@ export class Transform {
);
this.calAttributes();
this.bindedObject?.updateTransform?.();
return this;
}
/**
@ -150,10 +157,11 @@ export class Transform {
d: number,
e: number,
f: number
) {
): this {
mat3.set(this.mat, a, b, 0, c, d, 0, e, f, 1);
this.calAttributes();
this.bindedObject?.updateTransform?.();
return this;
}
/**

View File

@ -236,9 +236,9 @@ export class Icon extends RenderItem<EIconEvent> implements IAnimateFrame {
/** 图标id */
icon: AllNumbers = 0;
/** 帧数 */
frame?: number = 0;
frame: number = 0;
/** 是否启用动画 */
animate?: boolean = false;
animate: boolean = false;
/** 图标的渲染信息 */
private renderable?: RenderableData | AutotileRenderable;
@ -262,7 +262,7 @@ export class Icon extends RenderItem<EIconEvent> implements IAnimateFrame {
const ch = this.height;
const frame = this.animate
? RenderItem.animatedFrame % renderable.frame
: 0;
: this.frame;
if (!this.animate) {
if (renderable.autotile) {
@ -324,7 +324,7 @@ export class Icon extends RenderItem<EIconEvent> implements IAnimateFrame {
*
*/
updateFrameAnimate(): void {
this.update(this);
if (this.animate) this.update(this);
}
destroy(): void {

View File

@ -88,12 +88,14 @@ export interface BaseProps {
}
export interface SpriteProps extends BaseProps {
/** 自定义的渲染函数 */
render?: RenderFunction;
}
export interface ContainerProps extends BaseProps {}
export interface ConatinerCustomProps extends ContainerProps {
/** 自定义容器渲染函数 */
render?: CustomContainerRenderFn;
}
@ -102,14 +104,20 @@ export interface GL2Props extends BaseProps {}
export interface ShaderProps extends BaseProps {}
export interface TextProps extends BaseProps {
/** 要渲染的文字 */
text?: string;
/** 文字的填充样式 */
fillStyle?: CanvasStyle;
/** 文字的描边样式 */
strokeStyle?: CanvasStyle;
/** 文字的字体 */
font?: Font;
/** 文字的描边粗细 */
strokeWidth?: number;
}
export interface ImageProps extends BaseProps {
/** 图片对象 */
image: CanvasImageSource;
}
@ -173,7 +181,7 @@ export interface CirclesProps extends GraphicPropsBase {
start?: number;
end?: number;
/**
* `[半径,起始角度,终止角度]` radius, start, end
* `[圆心 x 坐标,圆心 y 坐标,半径,起始角度,终止角度]` x, y, radius, start, end
*
*/
circle?: CircleParams;
@ -185,7 +193,7 @@ export interface EllipseProps extends GraphicPropsBase {
start?: number;
end?: number;
/**
* `[x半径y半径起始角度终止角度]` radiusX, radiusY, start, end
* `[圆心 x 坐标,圆心 y 坐标,x半径y半径起始角度终止角度]` x, y, radiusX, radiusY, start, end
*
*/
ellipse?: EllipseParams;
@ -249,12 +257,17 @@ export interface RectRProps extends GraphicPropsBase {
}
export interface IconProps extends BaseProps {
icon: AllNumbers;
/** 图标 id 或数字 */
icon: AllNumbers | AllIds;
/** 显示图标的第几帧 */
frame?: number;
/** 是否开启动画,开启后 frame 参数无效 */
animate?: boolean;
}
export interface WinskinProps extends BaseProps {
/** winskin 的图片 id */
image: ImageIds;
/** 边框大小 */
borderSize?: number;
}

View File

@ -98,7 +98,7 @@ export class UIController
/** 当前是否显示 UI */
get active() {
return this.showBack.value;
return this.sysShowBack.value;
}
/** 自定义显示模式下的配置信息 */
@ -123,9 +123,6 @@ export class UIController
}
}
/**
* UI
*/
render(): VNode {
return h(UIContainer, { controller: this });
}
@ -134,8 +131,9 @@ export class UIController
* UI
* @param back UI UI
*/
setBackground(back: IGameUI) {
setBackground<T extends UIComponent>(back: IGameUI<T>, vBind: UIProps<T>) {
this.background = back;
this.backIns.value = new UIInstance(back, vBind, true);
}
/**

View File

@ -1,18 +1,8 @@
import { Props } from '@motajs/render';
import { IGameUI, IUIInstance, UIComponent, UIProps } from './shared';
import EventEmitter from 'eventemitter3';
import { markRaw, mergeProps } from 'vue';
interface UIInstanceEvent {
hide: [];
show: [];
close: [];
}
export class UIInstance<C extends UIComponent>
extends EventEmitter<UIInstanceEvent>
implements IUIInstance<C>
{
export class UIInstance<C extends UIComponent> implements IUIInstance<C> {
private static counter: number = 0;
readonly key: number = UIInstance.counter++;
@ -24,7 +14,6 @@ export class UIInstance<C extends UIComponent>
public vBind: UIProps<C>,
public readonly alwaysShow: boolean = false
) {
super();
this.ui = markRaw(ui);
}

View File

@ -1,5 +1,11 @@
import { Props } from '@motajs/render';
import { DefineComponent, DefineSetupFnComponent, Ref, ShallowRef } from 'vue';
import {
DefineComponent,
DefineSetupFnComponent,
Ref,
ShallowRef,
VNode
} from 'vue';
export type UIComponent = DefineSetupFnComponent<any> | DefineComponent;
@ -52,6 +58,11 @@ export interface IUIMountable {
*/
show(ins: IUIInstance<UIComponent>): void;
/**
* UI
*/
render(): VNode;
/**
* UI
*/

View File

@ -153,6 +153,9 @@ importers:
madge:
specifier: ^8.0.0
version: 8.0.0(typescript@5.5.4)
markdown-it-mathjax3:
specifier: ^4.3.2
version: 4.3.2(encoding@0.1.13)
postcss-preset-env:
specifier: ^9.6.0
version: 9.6.0(postcss@8.5.3)
@ -182,7 +185,7 @@ importers:
version: 4.4.0(@types/node@18.19.44)(rollup@3.29.4)(typescript@5.5.4)(vite@4.5.9(@types/node@18.19.44)(less@4.2.0)(terser@5.31.6))
vitepress:
specifier: ^1.5.0
version: 1.5.0(@algolia/client-search@5.18.0)(@types/node@18.19.44)(async-validator@4.2.5)(axios@1.7.4)(less@4.2.0)(postcss@8.5.3)(search-insights@2.17.3)(terser@5.31.6)(typescript@5.5.4)
version: 1.5.0(@algolia/client-search@5.18.0)(@types/node@18.19.44)(async-validator@4.2.5)(axios@1.7.4)(less@4.2.0)(markdown-it-mathjax3@4.3.2(encoding@0.1.13))(postcss@8.5.3)(search-insights@2.17.3)(terser@5.31.6)(typescript@5.5.4)
vue-tsc:
specifier: ^2.1.6
version: 2.1.6(typescript@5.5.4)
@ -190,7 +193,47 @@ importers:
specifier: ^8.18.0
version: 8.18.0
packages-user/client-modules: {}
packages-user/client-modules:
dependencies:
'@motajs/client-base':
specifier: workspace:*
version: link:../../packages/client-base
'@motajs/common':
specifier: workspace:*
version: link:../../packages/common
'@motajs/legacy-common':
specifier: workspace:*
version: link:../../packages/legacy-common
'@motajs/legacy-ui':
specifier: workspace:*
version: link:../../packages/legacy-ui
'@motajs/render':
specifier: workspace:*
version: link:../../packages/render
'@motajs/render-core':
specifier: workspace:*
version: link:../../packages/render-core
'@motajs/system-action':
specifier: workspace:*
version: link:../../packages/system-action
'@motajs/system-ui':
specifier: workspace:*
version: link:../../packages/system-ui
'@motajs/types':
specifier: workspace:*
version: link:../../packages/types
'@user/data-base':
specifier: workspace:*
version: link:../data-base
'@user/data-state':
specifier: workspace:*
version: link:../data-state
'@user/legacy-plugin-client':
specifier: workspace:*
version: link:../legacy-plugin-client
'@user/legacy-plugin-data':
specifier: workspace:*
version: link:../legacy-plugin-data
packages-user/data-base:
dependencies:
@ -290,6 +333,9 @@ importers:
packages-user/entry-data:
dependencies:
'@motajs/legacy-common':
specifier: workspace:*
version: link:../../packages/legacy-common
'@user/data-base':
specifier: workspace:*
version: link:../data-base
@ -308,6 +354,9 @@ importers:
packages-user/legacy-plugin-client:
dependencies:
'@user/client-modules':
specifier: workspace:*
version: link:../client-modules
'@user/data-state':
specifier: workspace:*
version: link:../data-state
@ -320,6 +369,9 @@ importers:
'@user/data-state':
specifier: workspace:*
version: link:../data-state
'@user/data-utils':
specifier: workspace:*
version: link:../data-utils
packages/client:
dependencies:
@ -2671,6 +2723,10 @@ packages:
anon-tokyo@0.0.0-alpha.0:
resolution: {integrity: sha512-4kq9NOB56RUC6YqZAkkuA2mLhfzdLa39RSi+dUOk6geL4rldWspBZP2XbKv3hhG8nf+HDL2LSOTb7opSbqY/gg==}
ansi-colors@4.1.3:
resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==}
engines: {node: '>=6'}
ansi-regex@5.0.1:
resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
engines: {node: '>=8'}
@ -2888,6 +2944,13 @@ packages:
resolution: {integrity: sha512-qK1gkGSRYcJzqrrzdR6a+I0vQ4/R+SoODXyAjscQ/4mzuNzySaMCd+hyVxitSY1+L2fjPD1Gbn+ibNqRmwQeLw==}
engines: {pnpm: '>=8'}
cheerio-select@1.6.0:
resolution: {integrity: sha512-eq0GdBvxVFbqWgmCm7M3XGs1I8oLy/nExUnh6oLqmBditPO9AqQJrkslDpMun/hZ0yyTs8L0m85OHp4ho6Qm9g==}
cheerio@1.0.0-rc.10:
resolution: {integrity: sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw==}
engines: {node: '>= 6'}
chokidar@3.6.0:
resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
engines: {node: '>= 8.10.0'}
@ -2977,6 +3040,10 @@ packages:
resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
engines: {node: '>= 10'}
commander@9.2.0:
resolution: {integrity: sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==}
engines: {node: ^12.20.0 || >=14}
commondir@1.0.1:
resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==}
@ -3050,6 +3117,13 @@ packages:
peerDependencies:
postcss: ^8.4
css-select@4.3.0:
resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==}
css-what@6.1.0:
resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==}
engines: {node: '>= 6'}
cssdb@8.1.0:
resolution: {integrity: sha512-BQN57lfS4dYt2iL0LgyrlDbefZKEtUyrO8rbzrbGrqBk6OoyNTQLF+porY9DrpDBjLo4NEvj2IJttC7vf3x+Ew==}
@ -3187,6 +3261,23 @@ packages:
dom-scroll-into-view@2.0.1:
resolution: {integrity: sha512-bvVTQe1lfaUr1oFzZX80ce9KLDlZ3iU+XGNE/bz9HnGdklTieqsbmsLHe+rT2XWqopvL0PckkYqN7ksmm5pe3w==}
dom-serializer@1.4.1:
resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==}
domelementtype@2.3.0:
resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
domhandler@3.3.0:
resolution: {integrity: sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==}
engines: {node: '>= 4'}
domhandler@4.3.1:
resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==}
engines: {node: '>= 4'}
domutils@2.8.0:
resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==}
duplexer@0.1.2:
resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==}
@ -3218,6 +3309,9 @@ packages:
resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==}
engines: {node: '>=10.13.0'}
entities@2.2.0:
resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==}
entities@4.5.0:
resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
engines: {node: '>=0.12'}
@ -3263,6 +3357,10 @@ packages:
resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==}
engines: {node: '>=6'}
escape-goat@3.0.0:
resolution: {integrity: sha512-w3PwNZJwRxlp47QGzhuEBldEqVHHhh8/tIPcl6ecf2Bou99cdAt0knihBV0Ecc7CGxYduXVBDheH1K2oADRlvw==}
engines: {node: '>=10'}
escape-string-regexp@1.0.5:
resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
engines: {node: '>=0.8.0'}
@ -3328,6 +3426,10 @@ packages:
jiti:
optional: true
esm@3.2.25:
resolution: {integrity: sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==}
engines: {node: '>=6'}
espree@10.3.0:
resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@ -3642,6 +3744,12 @@ packages:
html-void-elements@3.0.0:
resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==}
htmlparser2@5.0.1:
resolution: {integrity: sha512-vKZZra6CSe9qsJzh0BjBGXo8dvzNsq/oGvsjfRdOrrryfeD9UOBEEQdeoqCRmKZchF5h2zOBMQ6YuQ0uRUmdbQ==}
htmlparser2@6.1.0:
resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==}
http-cache-semantics@4.1.1:
resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==}
@ -3905,6 +4013,11 @@ packages:
jszip@3.10.1:
resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==}
juice@8.1.0:
resolution: {integrity: sha512-FLzurJrx5Iv1e7CfBSZH68dC04EEvXvvVvPYB7Vx1WAuhCp1ZPIMtqxc+WTWxVkpTIC2Ach/GAv0rQbtGf6YMA==}
engines: {node: '>=10.0.0'}
hasBin: true
keyv@4.5.4:
resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
@ -4028,9 +4141,18 @@ packages:
mark.js@8.11.1:
resolution: {integrity: sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==}
markdown-it-mathjax3@4.3.2:
resolution: {integrity: sha512-TX3GW5NjmupgFtMJGRauioMbbkGsOXAAt1DZ/rzzYmTHqzkO1rNAdiMD4NiruurToPApn2kYy76x02QN26qr2w==}
mathjax-full@3.2.2:
resolution: {integrity: sha512-+LfG9Fik+OuI8SLwsiR02IVdjcnRCy5MufYLi0C3TdMT56L/pjB0alMVGgoWJF8pN9Rc7FESycZB9BMNWIid5w==}
mdast-util-to-hast@13.2.0:
resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==}
mensch@0.3.4:
resolution: {integrity: sha512-IAeFvcOnV9V0Yk+bFhYR07O3yNina9ANIN5MoXBKYJ/RLYPurd2d0yw14MDhpr9/momp0WofT1bPUh3hkzdi/g==}
meow@10.1.5:
resolution: {integrity: sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
@ -4039,6 +4161,9 @@ packages:
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
engines: {node: '>= 8'}
mhchemparser@4.2.1:
resolution: {integrity: sha512-kYmyrCirqJf3zZ9t/0wGgRZ4/ZJw//VwaRVGA75C4nhE60vtnIzhl9J9ndkX/h6hxSN7pjg/cE0VxbnNM+bnDQ==}
micromark-util-character@2.1.1:
resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==}
@ -4071,6 +4196,11 @@ packages:
engines: {node: '>=4'}
hasBin: true
mime@2.6.0:
resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==}
engines: {node: '>=4.0.0'}
hasBin: true
mimic-fn@2.1.0:
resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
engines: {node: '>=6'}
@ -4146,6 +4276,9 @@ packages:
mitt@3.0.1:
resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==}
mj-context-menu@0.6.1:
resolution: {integrity: sha512-7NO5s6n10TIV96d4g2uDpG7ZDpIhMh0QNfGdJw/W47JswFcosz457wqz/b5sAKvl12sxINGFCn80NZHKwxQEXA==}
mkdirp@0.5.6:
resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
hasBin: true
@ -4208,6 +4341,15 @@ packages:
resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
engines: {node: '>= 0.6'}
node-fetch@2.7.0:
resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
engines: {node: 4.x || >=6.0.0}
peerDependencies:
encoding: ^0.1.0
peerDependenciesMeta:
encoding:
optional: true
node-gyp@9.4.1:
resolution: {integrity: sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==}
engines: {node: ^12.13 || ^14.13 || >=16}
@ -4325,6 +4467,12 @@ packages:
resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==}
engines: {node: '>= 0.10'}
parse5-htmlparser2-tree-adapter@6.0.1:
resolution: {integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==}
parse5@6.0.1:
resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==}
path-browserify@1.0.1:
resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==}
@ -4875,6 +5023,9 @@ packages:
resolution: {integrity: sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==}
engines: {node: '>=6'}
slick@1.12.2:
resolution: {integrity: sha512-4qdtOGcBjral6YIBCWJ0ljFSKNLz9KkhbWtuGvUyRowl1kxfuE1x/Z/aJcaiilpb3do9bl5K7/1h9XC5wWpY/A==}
smart-buffer@4.2.0:
resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==}
engines: {node: '>= 6.0.0', npm: '>= 3.0.0'}
@ -4920,6 +5071,10 @@ packages:
resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==}
engines: {node: '>=0.10.0'}
speech-rule-engine@4.0.7:
resolution: {integrity: sha512-sJrL3/wHzNwJRLBdf6CjJWIlxC04iYKkyXvYSVsWVOiC2DSkHmxsqOhEeMsBA9XK+CHuNcsdkbFDnoUfAsmp9g==}
hasBin: true
sprintf-js@1.0.3:
resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
@ -5081,6 +5236,9 @@ packages:
resolution: {integrity: sha512-+QIz37Ly7acM4EMdw2PRN389OneM5+d844tirkGp4dPKzI5OE72V9OsbFp+CIYJDahZ41ZV05hNtcPAQUAm9/Q==}
engines: {node: '>= 0.10'}
tr46@0.0.3:
resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
trim-lines@3.0.1:
resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
@ -5248,6 +5406,10 @@ packages:
resolution: {integrity: sha512-FULf7fayPdpASncVy4DLh3xydlXEJJpvIELjYjNeQWYUZ9pclcpvCZSr2gkmN2FrrGcI7G/cJsIEwk5/8vfXpg==}
deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
valid-data-url@3.0.1:
resolution: {integrity: sha512-jOWVmzVceKlVVdwjNSenT4PbGghU0SBIizAev8ofZVgivk/TVHXSbNL8LP6M3spZvkR9/QolkyJavGSX5Cs0UA==}
engines: {node: '>=10'}
validate-npm-package-license@3.0.4:
resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
@ -5408,6 +5570,13 @@ packages:
wcwidth@1.0.1:
resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}
web-resource-inliner@6.0.1:
resolution: {integrity: sha512-kfqDxt5dTB1JhqsCUQVFDj0rmY+4HLwGQIsLPbyrsN9y9WV/1oFDSx3BQ4GfCv9X+jVeQ7rouTqwK53rA/7t8A==}
engines: {node: '>=10.0.0'}
webidl-conversions@3.0.1:
resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
webpack-sources@3.2.3:
resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==}
engines: {node: '>=10.13.0'}
@ -5415,11 +5584,17 @@ packages:
webpack-virtual-modules@0.6.2:
resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==}
whatwg-url@5.0.0:
resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
which@2.0.2:
resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
engines: {node: '>= 8'}
hasBin: true
wicked-good-xpath@1.3.0:
resolution: {integrity: sha512-Gd9+TUn5nXdwj/hFsPVx5cuHHiF5Bwuc30jZ4+ronF1qHK5O7HD0sgmXWSEgwKquT3ClLoKPVbO6qGwVwLzvAw==}
wide-align@1.1.5:
resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==}
@ -5454,6 +5629,10 @@ packages:
resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}
engines: {node: '>=12'}
xmldom-sre@0.1.31:
resolution: {integrity: sha512-f9s+fUkX04BxQf+7mMWAp5zk61pciie+fFLC9hX9UVvCeJQfNHRHXpeo5MPcR0EUf57PYLdt+ZO4f3Ipk2oZUw==}
engines: {node: '>=0.1'}
xtend@4.0.2:
resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
engines: {node: '>=0.4'}
@ -7814,6 +7993,8 @@ snapshots:
dependencies:
lodash-es: 4.17.21
ansi-colors@4.1.3: {}
ansi-regex@5.0.1: {}
ansi-regex@6.1.0: {}
@ -8072,6 +8253,24 @@ snapshots:
dependencies:
'@kurkle/color': 0.3.2
cheerio-select@1.6.0:
dependencies:
css-select: 4.3.0
css-what: 6.1.0
domelementtype: 2.3.0
domhandler: 4.3.1
domutils: 2.8.0
cheerio@1.0.0-rc.10:
dependencies:
cheerio-select: 1.6.0
dom-serializer: 1.4.1
domhandler: 4.3.1
htmlparser2: 6.1.0
parse5: 6.0.1
parse5-htmlparser2-tree-adapter: 6.0.1
tslib: 2.6.3
chokidar@3.6.0:
dependencies:
anymatch: 3.1.3
@ -8146,6 +8345,8 @@ snapshots:
commander@7.2.0: {}
commander@9.2.0: {}
commondir@1.0.1: {}
compare-versions@6.1.1: {}
@ -8221,6 +8422,16 @@ snapshots:
dependencies:
postcss: 8.5.3
css-select@4.3.0:
dependencies:
boolbase: 1.0.0
css-what: 6.1.0
domhandler: 4.3.1
domutils: 2.8.0
nth-check: 2.1.1
css-what@6.1.0: {}
cssdb@8.1.0: {}
cssesc@3.0.0: {}
@ -8349,6 +8560,28 @@ snapshots:
dom-scroll-into-view@2.0.1: {}
dom-serializer@1.4.1:
dependencies:
domelementtype: 2.3.0
domhandler: 4.3.1
entities: 2.2.0
domelementtype@2.3.0: {}
domhandler@3.3.0:
dependencies:
domelementtype: 2.3.0
domhandler@4.3.1:
dependencies:
domelementtype: 2.3.0
domutils@2.8.0:
dependencies:
dom-serializer: 1.4.1
domelementtype: 2.3.0
domhandler: 4.3.1
duplexer@0.1.2: {}
duplexify@3.7.1:
@ -8382,6 +8615,8 @@ snapshots:
graceful-fs: 4.2.11
tapable: 2.2.1
entities@2.2.0: {}
entities@4.5.0: {}
env-paths@2.2.1: {}
@ -8483,6 +8718,8 @@ snapshots:
escalade@3.1.2: {}
escape-goat@3.0.0: {}
escape-string-regexp@1.0.5: {}
escape-string-regexp@4.0.0: {}
@ -8576,6 +8813,8 @@ snapshots:
transitivePeerDependencies:
- supports-color
esm@3.2.25: {}
espree@10.3.0:
dependencies:
acorn: 8.14.0
@ -8923,6 +9162,20 @@ snapshots:
html-void-elements@3.0.0: {}
htmlparser2@5.0.1:
dependencies:
domelementtype: 2.3.0
domhandler: 3.3.0
domutils: 2.8.0
entities: 2.2.0
htmlparser2@6.1.0:
dependencies:
domelementtype: 2.3.0
domhandler: 4.3.1
domutils: 2.8.0
entities: 2.2.0
http-cache-semantics@4.1.1: {}
http-proxy-agent@5.0.0:
@ -9137,6 +9390,16 @@ snapshots:
readable-stream: 2.3.8
setimmediate: 1.0.5
juice@8.1.0(encoding@0.1.13):
dependencies:
cheerio: 1.0.0-rc.10
commander: 6.2.1
mensch: 0.3.4
slick: 1.12.2
web-resource-inliner: 6.0.1(encoding@0.1.13)
transitivePeerDependencies:
- encoding
keyv@4.5.4:
dependencies:
json-buffer: 3.0.1
@ -9284,6 +9547,20 @@ snapshots:
mark.js@8.11.1: {}
markdown-it-mathjax3@4.3.2(encoding@0.1.13):
dependencies:
juice: 8.1.0(encoding@0.1.13)
mathjax-full: 3.2.2
transitivePeerDependencies:
- encoding
mathjax-full@3.2.2:
dependencies:
esm: 3.2.25
mhchemparser: 4.2.1
mj-context-menu: 0.6.1
speech-rule-engine: 4.0.7
mdast-util-to-hast@13.2.0:
dependencies:
'@types/hast': 3.0.4
@ -9296,6 +9573,8 @@ snapshots:
unist-util-visit: 5.0.0
vfile: 6.0.3
mensch@0.3.4: {}
meow@10.1.5:
dependencies:
'@types/minimist': 1.2.5
@ -9313,6 +9592,8 @@ snapshots:
merge2@1.4.1: {}
mhchemparser@4.2.1: {}
micromark-util-character@2.1.1:
dependencies:
micromark-util-symbol: 2.0.1
@ -9344,6 +9625,8 @@ snapshots:
mime@1.6.0:
optional: true
mime@2.6.0: {}
mimic-fn@2.1.0: {}
min-indent@1.0.1: {}
@ -9417,6 +9700,8 @@ snapshots:
mitt@3.0.1: {}
mj-context-menu@0.6.1: {}
mkdirp@0.5.6:
dependencies:
minimist: 1.2.8
@ -9468,6 +9753,12 @@ snapshots:
negotiator@0.6.3: {}
node-fetch@2.7.0(encoding@0.1.13):
dependencies:
whatwg-url: 5.0.0
optionalDependencies:
encoding: 0.1.13
node-gyp@9.4.1:
dependencies:
env-paths: 2.2.1
@ -9616,6 +9907,12 @@ snapshots:
parse-node-version@1.0.1: {}
parse5-htmlparser2-tree-adapter@6.0.1:
dependencies:
parse5: 6.0.1
parse5@6.0.1: {}
path-browserify@1.0.1: {}
path-dirname@1.0.2: {}
@ -10234,6 +10531,8 @@ snapshots:
slash@2.0.0: {}
slick@1.12.2: {}
smart-buffer@4.2.0: {}
smob@1.5.0: {}
@ -10278,6 +10577,12 @@ snapshots:
speakingurl@14.0.1: {}
speech-rule-engine@4.0.7:
dependencies:
commander: 9.2.0
wicked-good-xpath: 1.3.0
xmldom-sre: 0.1.31
sprintf-js@1.0.3: {}
sprintf-js@1.1.3: {}
@ -10446,6 +10751,8 @@ snapshots:
dependencies:
through2: 2.0.5
tr46@0.0.3: {}
trim-lines@3.0.1: {}
trim-newlines@4.1.1: {}
@ -10613,6 +10920,8 @@ snapshots:
uuid@2.0.3: {}
valid-data-url@3.0.1: {}
validate-npm-package-license@3.0.4:
dependencies:
spdx-correct: 3.2.0
@ -10716,7 +11025,7 @@ snapshots:
less: 4.2.0
terser: 5.31.6
vitepress@1.5.0(@algolia/client-search@5.18.0)(@types/node@18.19.44)(async-validator@4.2.5)(axios@1.7.4)(less@4.2.0)(postcss@8.5.3)(search-insights@2.17.3)(terser@5.31.6)(typescript@5.5.4):
vitepress@1.5.0(@algolia/client-search@5.18.0)(@types/node@18.19.44)(async-validator@4.2.5)(axios@1.7.4)(less@4.2.0)(markdown-it-mathjax3@4.3.2(encoding@0.1.13))(postcss@8.5.3)(search-insights@2.17.3)(terser@5.31.6)(typescript@5.5.4):
dependencies:
'@docsearch/css': 3.8.2
'@docsearch/js': 3.8.2(@algolia/client-search@5.18.0)(search-insights@2.17.3)
@ -10737,6 +11046,7 @@ snapshots:
vite: 5.4.14(@types/node@18.19.44)(less@4.2.0)(terser@5.31.6)
vue: 3.5.13(typescript@5.5.4)
optionalDependencies:
markdown-it-mathjax3: 4.3.2(encoding@0.1.13)
postcss: 8.5.3
transitivePeerDependencies:
- '@algolia/client-search'
@ -10817,14 +11127,34 @@ snapshots:
dependencies:
defaults: 1.0.4
web-resource-inliner@6.0.1(encoding@0.1.13):
dependencies:
ansi-colors: 4.1.3
escape-goat: 3.0.0
htmlparser2: 5.0.1
mime: 2.6.0
node-fetch: 2.7.0(encoding@0.1.13)
valid-data-url: 3.0.1
transitivePeerDependencies:
- encoding
webidl-conversions@3.0.1: {}
webpack-sources@3.2.3: {}
webpack-virtual-modules@0.6.2: {}
whatwg-url@5.0.0:
dependencies:
tr46: 0.0.3
webidl-conversions: 3.0.1
which@2.0.2:
dependencies:
isexe: 2.0.0
wicked-good-xpath@1.3.0: {}
wide-align@1.1.5:
dependencies:
string-width: 4.2.3
@ -10849,6 +11179,8 @@ snapshots:
xml-name-validator@4.0.0: {}
xmldom-sre@0.1.31: {}
xtend@4.0.2: {}
yallist@3.1.1: {}