optimize: introduce vCell, render time while scrolling.
This commit is contained in:
parent
20a8fbae02
commit
a28b56b191
@ -67,7 +67,13 @@ let r = lang;
|
|||||||
/**
|
/**
|
||||||
* 键值字典
|
* 键值字典
|
||||||
* @template T
|
* @template T
|
||||||
* @typedef {Map<string, T>} KeyMap
|
* @typedef {{[key: string]: T}} KeyMap
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 索引字典
|
||||||
|
* @template T
|
||||||
|
* @typedef {Map<number, T>} IndexMap
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -468,6 +474,24 @@ const GridColumnDirection = {
|
|||||||
* @this Grid
|
* @this Grid
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @typedef GridVirtualRow
|
||||||
|
* @property {boolean} editing - 行处于编辑状态
|
||||||
|
* @property {IndexMap<GridVirtualCell>} cells - 虚拟单元格数组
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @typedef GridVirtualCell
|
||||||
|
* @property {string} background - 单元格背景色
|
||||||
|
* @property {string} value - 单元格值
|
||||||
|
* @property {string} tooltip - 单元格提示文本
|
||||||
|
* @property {boolean} enabled - 单元格是否可用
|
||||||
|
* @property {string} style - 单元格样式字符串
|
||||||
|
* @property {string} attrs - 单元格附加属性字符串
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @typedef GridColumnAttr
|
* @typedef GridColumnAttr
|
||||||
* @property {boolean} dragging - 列正在拖拽
|
* @property {boolean} dragging - 列正在拖拽
|
||||||
@ -630,6 +654,12 @@ export class Grid {
|
|||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
rowCount: -1,
|
rowCount: -1,
|
||||||
|
/**
|
||||||
|
* 虚拟单元格字典
|
||||||
|
* @type {IndexMap<GridVirtualRow>}
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
virtualRows: {},
|
||||||
/**
|
/**
|
||||||
* 列类型缓存字典
|
* 列类型缓存字典
|
||||||
* @type {KeyMap<GridColumn>}
|
* @type {KeyMap<GridColumn>}
|
||||||
@ -2401,6 +2431,8 @@ export class Grid {
|
|||||||
const readonly = this.readonly;
|
const readonly = this.readonly;
|
||||||
for (let i = 0; i < count; ++i) {
|
for (let i = 0; i < count; ++i) {
|
||||||
const row = createElement('tr', 'ui-grid-row');
|
const row = createElement('tr', 'ui-grid-row');
|
||||||
|
const virtualRow = { cells: {} };
|
||||||
|
this._var.virtualRows[exists + i] = virtualRow;
|
||||||
let left = this.expandable ? ExpandableWidth : 0;
|
let left = this.expandable ? ExpandableWidth : 0;
|
||||||
if (this.expandable) {
|
if (this.expandable) {
|
||||||
const icon = createIcon('fa-solid', 'caret-right');
|
const icon = createIcon('fa-solid', 'caret-right');
|
||||||
@ -2418,6 +2450,7 @@ export class Grid {
|
|||||||
}
|
}
|
||||||
cols.forEach((col, j) => {
|
cols.forEach((col, j) => {
|
||||||
const cell = createElement('td', 'ui-grid-cell');
|
const cell = createElement('td', 'ui-grid-cell');
|
||||||
|
virtualRow.cells[j] = {};
|
||||||
if (col.visible !== false) {
|
if (col.visible !== false) {
|
||||||
let style = this._get(col.key, 'style') ?? {};
|
let style = this._get(col.key, 'style') ?? {};
|
||||||
if (col.isfixed) {
|
if (col.isfixed) {
|
||||||
@ -2434,8 +2467,9 @@ export class Grid {
|
|||||||
if (style !== '') {
|
if (style !== '') {
|
||||||
cell.style.cssText = style;
|
cell.style.cssText = style;
|
||||||
}
|
}
|
||||||
|
let element;
|
||||||
if (!readonly && GridColumnTypeEnum.isCheckbox(col.type)) {
|
if (!readonly && GridColumnTypeEnum.isCheckbox(col.type)) {
|
||||||
cell.appendChild(GridCheckboxColumn.createEdit(e => this._onRowChanged(e, exists + i, col, e.target.checked, cell)));
|
element = GridCheckboxColumn.createEdit(e => this._onRowChanged(e, exists + i, col, e.target.checked, cell));
|
||||||
// this._var.colTypes[col.key] = GridCheckboxColumn;
|
// this._var.colTypes[col.key] = GridCheckboxColumn;
|
||||||
} else {
|
} else {
|
||||||
let type = this._var.colTypes[col.key];
|
let type = this._var.colTypes[col.key];
|
||||||
@ -2448,11 +2482,19 @@ export class Grid {
|
|||||||
type ??= GridColumn;
|
type ??= GridColumn;
|
||||||
this._var.colTypes[col.key] = type;
|
this._var.colTypes[col.key] = type;
|
||||||
}
|
}
|
||||||
const element = type.create(col, i, this);
|
element = type.create(col, i, this);
|
||||||
if (typeof col.class === 'string') {
|
if (typeof col.class === 'string') {
|
||||||
type.setClass(element, col.class);
|
type.setClass(element, col.class);
|
||||||
}
|
}
|
||||||
cell.appendChild(element);
|
}
|
||||||
|
cell.appendChild(element);
|
||||||
|
if (col.events != null) {
|
||||||
|
for (let ev of Object.entries(col.events)) {
|
||||||
|
element[ev[0]] = e => {
|
||||||
|
const item = this._var.currentSource[this._var.startIndex + exists + i].values;
|
||||||
|
ev[1].call(item, e);
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
cell.style.display = 'none';
|
cell.style.display = 'none';
|
||||||
@ -2481,17 +2523,17 @@ export class Grid {
|
|||||||
_fillRows(rows, cols, widths) {
|
_fillRows(rows, cols, widths) {
|
||||||
const startIndex = this._var.startIndex;
|
const startIndex = this._var.startIndex;
|
||||||
const selectedIndexes = this._var.selectedIndexes;
|
const selectedIndexes = this._var.selectedIndexes;
|
||||||
const stateChanged =
|
// const stateChanged =
|
||||||
this._var.oldIndex !== startIndex ||
|
// this._var.oldIndex !== startIndex ||
|
||||||
selectedIndexes == null ||
|
// selectedIndexes == null ||
|
||||||
this._var.oldSelectedIndexes?.length !== selectedIndexes.length ||
|
// this._var.oldSelectedIndexes?.length !== selectedIndexes.length ||
|
||||||
this._var.oldSelectedIndexes.find((s, i) => s !== selectedIndexes[i]) != null;
|
// this._var.oldSelectedIndexes.find((s, i) => s !== selectedIndexes[i]) != null;
|
||||||
if (stateChanged) {
|
// if (stateChanged) {
|
||||||
this._var.oldIndex = startIndex;
|
// this._var.oldIndex = startIndex;
|
||||||
if (selectedIndexes != null) {
|
// if (selectedIndexes != null) {
|
||||||
this._var.oldSelectedIndexes = selectedIndexes.slice();
|
// this._var.oldSelectedIndexes = selectedIndexes.slice();
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
const offset = this.expandable ? 1 : 0;
|
const offset = this.expandable ? 1 : 0;
|
||||||
const readonly = this.readonly;
|
const readonly = this.readonly;
|
||||||
rows.forEach((row, i) => {
|
rows.forEach((row, i) => {
|
||||||
@ -2502,6 +2544,7 @@ export class Grid {
|
|||||||
if (!isPositive(row.children.length)) {
|
if (!isPositive(row.children.length)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
const virtualRow = this._var.virtualRows[i];
|
||||||
const item = vals.values;
|
const item = vals.values;
|
||||||
const selected = selectedIndexes.includes(startIndex + i);
|
const selected = selectedIndexes.includes(startIndex + i);
|
||||||
if (selected) {
|
if (selected) {
|
||||||
@ -2509,6 +2552,8 @@ export class Grid {
|
|||||||
} else if (row.classList.contains('selected')) {
|
} else if (row.classList.contains('selected')) {
|
||||||
row.classList.remove('selected');
|
row.classList.remove('selected');
|
||||||
}
|
}
|
||||||
|
const stateChanged = virtualRow.editing !== selected;
|
||||||
|
virtualRow.editing = selected;
|
||||||
// data
|
// data
|
||||||
if (this.expandable) {
|
if (this.expandable) {
|
||||||
const expanded = vals.__expanded;
|
const expanded = vals.__expanded;
|
||||||
@ -2566,6 +2611,12 @@ export class Grid {
|
|||||||
if (cell == null) {
|
if (cell == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
let virtualCell;
|
||||||
|
if (stateChanged) {
|
||||||
|
virtualRow.cells[j] = virtualCell = {};
|
||||||
|
} else {
|
||||||
|
virtualCell = virtualRow.cells[j];
|
||||||
|
}
|
||||||
let val;
|
let val;
|
||||||
if (col.text != null) {
|
if (col.text != null) {
|
||||||
val = col.text;
|
val = col.text;
|
||||||
@ -2586,10 +2637,13 @@ export class Grid {
|
|||||||
if (typeof bg === 'function') {
|
if (typeof bg === 'function') {
|
||||||
bg = col.background(item);
|
bg = col.background(item);
|
||||||
}
|
}
|
||||||
cell.style.backgroundColor = bg ?? '';
|
|
||||||
} else if (typeof col.bgFilter === 'function') {
|
} else if (typeof col.bgFilter === 'function') {
|
||||||
const bgColor = col.bgFilter(item);
|
bg = col.bgFilter(item);
|
||||||
cell.style.backgroundColor = bgColor ?? '';
|
}
|
||||||
|
bg ??= '';
|
||||||
|
if (bg !== virtualCell.background) {
|
||||||
|
virtualCell.background = bg;
|
||||||
|
cell.style.backgroundColor = bg;
|
||||||
}
|
}
|
||||||
const isCheckbox = GridColumnTypeEnum.isCheckbox(col.type);
|
const isCheckbox = GridColumnTypeEnum.isCheckbox(col.type);
|
||||||
const type = isCheckbox ? GridCheckboxColumn : this._var.colTypes[col.key] ?? GridColumn;
|
const type = isCheckbox ? GridCheckboxColumn : this._var.colTypes[col.key] ?? GridColumn;
|
||||||
@ -2624,35 +2678,49 @@ export class Grid {
|
|||||||
type.setClass(element, col.class);
|
type.setClass(element, col.class);
|
||||||
}
|
}
|
||||||
cell.replaceChildren(element);
|
cell.replaceChildren(element);
|
||||||
|
if (col.events != null) {
|
||||||
|
for (let ev of Object.entries(col.events)) {
|
||||||
|
element[ev[0]] = ev[1].bind(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
element = cell.children[0];
|
element = cell.children[0];
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
element = cell.children[0];
|
element = cell.children[0];
|
||||||
}
|
}
|
||||||
let enabled;
|
if (val !== virtualCell.value) {
|
||||||
if (readonly) {
|
virtualCell.value = val;
|
||||||
enabled = false;
|
type.setValue(element, val, vals, col, this);
|
||||||
} else {
|
}
|
||||||
enabled = col.enabled;
|
if (typeof type.setEnabled === 'function') {
|
||||||
if (typeof enabled === 'function') {
|
let enabled;
|
||||||
enabled = enabled.call(col, item);
|
if (readonly) {
|
||||||
} else if (typeof enabled === 'string') {
|
enabled = false;
|
||||||
enabled = item[enabled];
|
} else {
|
||||||
|
enabled = col.enabled;
|
||||||
|
if (typeof enabled === 'function') {
|
||||||
|
enabled = enabled.call(col, item);
|
||||||
|
} else if (typeof enabled === 'string') {
|
||||||
|
enabled = item[enabled];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (enabled !== virtualCell.enabled) {
|
||||||
|
virtualCell.enabled = enabled;
|
||||||
|
type.setEnabled(element, enabled);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
type.setValue(element, val, vals, col, this);
|
|
||||||
let tip = col.tooltip;
|
let tip = col.tooltip;
|
||||||
if (typeof tip === 'function') {
|
if (typeof tip === 'function') {
|
||||||
tip = tip.call(col, item);
|
tip = tip.call(col, item);
|
||||||
}
|
}
|
||||||
if (nullOrEmpty(tip)) {
|
if (tip !== virtualCell.tooltip) {
|
||||||
element.querySelector('.ui-tooltip-wrapper')?.remove();
|
virtualCell.tooltip = tip;
|
||||||
} else {
|
if (nullOrEmpty(tip)) {
|
||||||
setTooltip(element, tip, false, this.element);
|
element.querySelector('.ui-tooltip-wrapper')?.remove();
|
||||||
}
|
} else {
|
||||||
if (typeof type.setEnabled === 'function') {
|
setTooltip(element, tip, false, this.element);
|
||||||
type.setEnabled(element, enabled);
|
}
|
||||||
}
|
}
|
||||||
// auto resize
|
// auto resize
|
||||||
if (this._var.needResize && widths != null && this._get(col.key, 'autoResize')) {
|
if (this._var.needResize && widths != null && this._get(col.key, 'autoResize')) {
|
||||||
@ -2667,31 +2735,29 @@ export class Grid {
|
|||||||
if (typeof style === 'function') {
|
if (typeof style === 'function') {
|
||||||
style = col.style(item);
|
style = col.style(item);
|
||||||
}
|
}
|
||||||
if (style != null) {
|
|
||||||
type.setStyle(element, style);
|
|
||||||
} else {
|
|
||||||
element.style.cssText = '';
|
|
||||||
}
|
|
||||||
} else if (typeof col.styleFilter === 'function') {
|
} else if (typeof col.styleFilter === 'function') {
|
||||||
const style = col.styleFilter(item);
|
style = col.styleFilter(item);
|
||||||
|
}
|
||||||
|
const styleText = style != null ? convertCssStyle(style) : '';
|
||||||
|
if (styleText !== virtualCell.style) {
|
||||||
|
virtualCell.style = styleText;
|
||||||
if (style != null) {
|
if (style != null) {
|
||||||
type.setStyle(element, style);
|
type.setStyle(element, style);
|
||||||
} else {
|
} else {
|
||||||
element.style.cssText = '';
|
element.style.cssText = '';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (col.events != null) {
|
|
||||||
for (let ev of Object.entries(col.events)) {
|
|
||||||
element[ev[0]] = ev[1].bind(item);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (col.attrs != null) {
|
if (col.attrs != null) {
|
||||||
let attrs = col.attrs;
|
let attrs = col.attrs;
|
||||||
if (typeof attrs === 'function') {
|
if (typeof attrs === 'function') {
|
||||||
attrs = attrs(item);
|
attrs = attrs(item);
|
||||||
}
|
}
|
||||||
for (let attr of Object.entries(attrs)) {
|
const attrsText = convertCssStyle(attrs);
|
||||||
element.setAttribute(attr[0], attr[1]);
|
if (attrsText !== virtualCell.attrs) {
|
||||||
|
virtualCell.attrs = attrsText;
|
||||||
|
for (let attr of Object.entries(attrs)) {
|
||||||
|
element.setAttribute(attr[0], attr[1]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
92
package-lock.json
generated
92
package-lock.json
generated
@ -13,16 +13,16 @@
|
|||||||
"docdash": "^2.0.2",
|
"docdash": "^2.0.2",
|
||||||
"jsdoc": "^4.0.2",
|
"jsdoc": "^4.0.2",
|
||||||
"postcss-preset-env": "^9.4.0",
|
"postcss-preset-env": "^9.4.0",
|
||||||
"sass": "^1.71.0",
|
"sass": "^1.71.1",
|
||||||
"typedoc": "^0.25.8",
|
"typedoc": "^0.25.10",
|
||||||
"vite": "^5.1.3",
|
"vite": "^5.1.4",
|
||||||
"vite-plugin-externals": "^0.6.2"
|
"vite-plugin-externals": "^0.6.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@babel/parser": {
|
"node_modules/@babel/parser": {
|
||||||
"version": "7.23.9",
|
"version": "7.24.0",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz",
|
||||||
"integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==",
|
"integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"bin": {
|
"bin": {
|
||||||
"parser": "bin/babel-parser.js"
|
"parser": "bin/babel-parser.js"
|
||||||
@ -352,9 +352,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@csstools/postcss-gradients-interpolation-method": {
|
"node_modules/@csstools/postcss-gradients-interpolation-method": {
|
||||||
"version": "4.0.10",
|
"version": "4.0.11",
|
||||||
"resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-4.0.10.tgz",
|
"resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-4.0.11.tgz",
|
||||||
"integrity": "sha512-PwKOxVuX8lo52bPtPeKjaIp6oH2EzhcBxCndRcvGZKsqZYQ35k9A5G4yihZ+wp7PoxPqDNiXuhQsvQG2lqMpOA==",
|
"integrity": "sha512-LFom5jCVUfzF+iuiOZvhvX7RRN8vc+tKpcKo9s4keEBAU2mPwV5/Fgz5iylEfXP/DZbEdq2C0At20urMi/lupw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -1358,14 +1358,14 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@jridgewell/gen-mapping": {
|
"node_modules/@jridgewell/gen-mapping": {
|
||||||
"version": "0.3.3",
|
"version": "0.3.5",
|
||||||
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
|
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
|
||||||
"integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
|
"integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@jridgewell/set-array": "^1.0.1",
|
"@jridgewell/set-array": "^1.2.1",
|
||||||
"@jridgewell/sourcemap-codec": "^1.4.10",
|
"@jridgewell/sourcemap-codec": "^1.4.10",
|
||||||
"@jridgewell/trace-mapping": "^0.3.9"
|
"@jridgewell/trace-mapping": "^0.3.24"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=6.0.0"
|
"node": ">=6.0.0"
|
||||||
@ -1381,9 +1381,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@jridgewell/set-array": {
|
"node_modules/@jridgewell/set-array": {
|
||||||
"version": "1.1.2",
|
"version": "1.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
|
||||||
"integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
|
"integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=6.0.0"
|
"node": ">=6.0.0"
|
||||||
@ -1406,9 +1406,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@jridgewell/trace-mapping": {
|
"node_modules/@jridgewell/trace-mapping": {
|
||||||
"version": "0.3.22",
|
"version": "0.3.25",
|
||||||
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz",
|
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
|
||||||
"integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==",
|
"integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@jridgewell/resolve-uri": "^3.1.0",
|
"@jridgewell/resolve-uri": "^3.1.0",
|
||||||
@ -1674,9 +1674,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/autoprefixer": {
|
"node_modules/autoprefixer": {
|
||||||
"version": "10.4.17",
|
"version": "10.4.18",
|
||||||
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.17.tgz",
|
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.18.tgz",
|
||||||
"integrity": "sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==",
|
"integrity": "sha512-1DKbDfsr6KUElM6wg+0zRNkB/Q7WcKYAaK+pzXn+Xqmszm/5Xa9coeNdtP88Vi+dPzZnMjhge8GIV49ZQkDa+g==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -1693,8 +1693,8 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"browserslist": "^4.22.2",
|
"browserslist": "^4.23.0",
|
||||||
"caniuse-lite": "^1.0.30001578",
|
"caniuse-lite": "^1.0.30001591",
|
||||||
"fraction.js": "^4.3.7",
|
"fraction.js": "^4.3.7",
|
||||||
"normalize-range": "^0.1.2",
|
"normalize-range": "^0.1.2",
|
||||||
"picocolors": "^1.0.0",
|
"picocolors": "^1.0.0",
|
||||||
@ -1801,9 +1801,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/caniuse-lite": {
|
"node_modules/caniuse-lite": {
|
||||||
"version": "1.0.30001588",
|
"version": "1.0.30001593",
|
||||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001588.tgz",
|
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001593.tgz",
|
||||||
"integrity": "sha512-+hVY9jE44uKLkH0SrUTqxjxqNTOWHsbnQDIKjwkZ3lNTzUUVdBLBGXtj/q5Mp5u98r3droaZAewQuEDzjQdZlQ==",
|
"integrity": "sha512-UWM1zlo3cZfkpBysd7AS+z+v007q9G1+fLTUU42rQnY6t2axoogPW/xol6T7juU5EUoOhML4WgBIdG+9yYqAjQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -1969,9 +1969,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/cssdb": {
|
"node_modules/cssdb": {
|
||||||
"version": "7.11.0",
|
"version": "7.11.1",
|
||||||
"resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.11.0.tgz",
|
"resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.11.1.tgz",
|
||||||
"integrity": "sha512-YUVAJhjDcTZzVD5XE49l3PQtGE29vvhzaL1bM3BtkvSmIRJeYENdfn1dn5jauBI7BBF+IyyiBS+oSVx3Hz/Gaw==",
|
"integrity": "sha512-F0nEoX/Rv8ENTHsjMPGHd9opdjGfXkgRBafSUGnQKPzGZFB7Lm0BbT10x21TMOCrKLbVsJ0NoCDMk6AfKqw8/A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -2016,9 +2016,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/electron-to-chromium": {
|
"node_modules/electron-to-chromium": {
|
||||||
"version": "1.4.677",
|
"version": "1.4.690",
|
||||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.677.tgz",
|
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.690.tgz",
|
||||||
"integrity": "sha512-erDa3CaDzwJOpyvfKhOiJjBVNnMM0qxHq47RheVVwsSQrgBA9ZSGV9kdaOfZDPXcHzhG7lBxhj6A7KvfLJBd6Q==",
|
"integrity": "sha512-+2OAGjUx68xElQhydpcbqH50hE8Vs2K6TkAeLhICYfndb67CVH0UsZaijmRUE3rHlIxU1u0jxwhgVe6fK3YANA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/entities": {
|
"node_modules/entities": {
|
||||||
@ -2966,9 +2966,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/postcss-nesting": {
|
"node_modules/postcss-nesting": {
|
||||||
"version": "12.0.3",
|
"version": "12.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-12.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-12.0.4.tgz",
|
||||||
"integrity": "sha512-yrtMRPFNkfZMv9ikBvZ/Eh3RxhpMBKQ3KzD7LCY8+jYVlgju/Mdcxi4JY8bW2Y7ISXw8GTLuF/o+kFtp+yaVfQ==",
|
"integrity": "sha512-WuCe0KnP4vKjLZK8VNoUWKL8ZLOv/5jiM94mHcI3VszLropHwmjotdUyP/ObzqZpXuQKP2Jf9R12vIHKFSStKw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -3398,9 +3398,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/terser": {
|
"node_modules/terser": {
|
||||||
"version": "5.27.2",
|
"version": "5.28.1",
|
||||||
"resolved": "https://registry.npmjs.org/terser/-/terser-5.27.2.tgz",
|
"resolved": "https://registry.npmjs.org/terser/-/terser-5.28.1.tgz",
|
||||||
"integrity": "sha512-sHXmLSkImesJ4p5apTeT63DsV4Obe1s37qT8qvwHRmVxKTBH7Rv9Wr26VcAMmLbmk9UliiwK8z+657NyJHHy/w==",
|
"integrity": "sha512-wM+bZp54v/E9eRRGXb5ZFDvinrJIOaTapx3WUokyVGZu5ucVCK55zEgGd5Dl2fSr3jUo5sDiERErUWLY6QPFyA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@jridgewell/source-map": "^0.3.3",
|
"@jridgewell/source-map": "^0.3.3",
|
||||||
@ -3440,9 +3440,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/typedoc": {
|
"node_modules/typedoc": {
|
||||||
"version": "0.25.8",
|
"version": "0.25.10",
|
||||||
"resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.25.8.tgz",
|
"resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.25.10.tgz",
|
||||||
"integrity": "sha512-mh8oLW66nwmeB9uTa0Bdcjfis+48bAjSH3uqdzSuSawfduROQLlXw//WSNZLYDdhmMVB7YcYZicq6e8T0d271A==",
|
"integrity": "sha512-v10rtOFojrjW9og3T+6wAKeJaGMuojU87DXGZ33sfs+554wgPTRG+s07Ag1BjPZI85Y5QPVouPI63JQ6fcQM5w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"lunr": "^2.3.9",
|
"lunr": "^2.3.9",
|
||||||
@ -3532,9 +3532,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/vite": {
|
"node_modules/vite": {
|
||||||
"version": "5.1.3",
|
"version": "5.1.4",
|
||||||
"resolved": "https://registry.npmjs.org/vite/-/vite-5.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/vite/-/vite-5.1.4.tgz",
|
||||||
"integrity": "sha512-UfmUD36DKkqhi/F75RrxvPpry+9+tTkrXfMNZD+SboZqBCMsxKtO52XeGzzuh7ioz+Eo/SYDBbdb0Z7vgcDJew==",
|
"integrity": "sha512-n+MPqzq+d9nMVTKyewqw6kSt+R3CkvF9QAKY8obiQn8g1fwTscKxyfaYnC632HtBXAQGc1Yjomphwn1dtwGAHg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"esbuild": "^0.19.3",
|
"esbuild": "^0.19.3",
|
||||||
|
@ -33,9 +33,9 @@
|
|||||||
"docdash": "^2.0.2",
|
"docdash": "^2.0.2",
|
||||||
"jsdoc": "^4.0.2",
|
"jsdoc": "^4.0.2",
|
||||||
"postcss-preset-env": "^9.4.0",
|
"postcss-preset-env": "^9.4.0",
|
||||||
"sass": "^1.71.0",
|
"sass": "^1.71.1",
|
||||||
"typedoc": "^0.25.8",
|
"typedoc": "^0.25.10",
|
||||||
"vite": "^5.1.3",
|
"vite": "^5.1.4",
|
||||||
"vite-plugin-externals": "^0.6.2"
|
"vite-plugin-externals": "^0.6.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user