From ce26bab8fcc4ba6336b86a5c3ba04dad8841884e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E7=86=B1?= Date: Mon, 3 Mar 2025 18:14:26 +0800 Subject: [PATCH] refactor: optimize the Ribbon style (#4757) --- common/shared/eslint/index.js | 1 - common/storybook/package.json | 20 +- .../default-doc-ci-chromium-linux.png | Bin 119860 -> 119880 bytes ...witching-render-unit-ci-chromium-linux.png | Bin 77797 -> 77560 bytes ...fault-sheet-fullpage-ci-chromium-linux.png | Bin 77797 -> 77560 bytes eslint.config.js | 12 +- examples/package.json | 2 +- examples/src/uni/main.ts | 6 +- mockdata/package.json | 2 +- .../sheets/demo/default-workbook-data-demo.ts | 4 +- package.json | 8 +- .../action-recorder/package.json | 2 +- .../action-recorder.controller.tsx | 8 +- packages-experimental/debugger/package.json | 2 +- .../sheets-source-binding/package.json | 2 +- .../uni-docs-ui/package.json | 2 +- .../uni-formula-ui/package.json | 2 +- .../src/services/uni-formula.service.ts | 6 +- .../uni-formula/package.json | 2 +- .../uni-sheets-ui/package.json | 2 +- .../uni-slides-ui/package.json | 2 +- packages-experimental/uniui/package.json | 2 +- packages/core/package.json | 2 +- packages/core/src/common/url.ts | 3 +- .../data-model/text-x/__tests__/apply.spec.ts | 33 +- .../data-model/text-x/apply-utils/common.ts | 6 +- packages/core/src/facade/f-univer.ts | 26 +- .../user-manager/user-manager.service.ts | 4 +- .../shared/__tests__/object-matrix.spec.ts | 12 +- packages/data-validation/package.json | 2 +- .../src/models/data-validation-model.ts | 3 +- packages/design/package.json | 2 +- .../design/src/components/tooltip/Tooltip.tsx | 8 +- packages/docs-drawing-ui/package.json | 2 +- .../src/commands/commands/utils.ts | 11 +- ...c-drawing-transformer-update.controller.ts | 30 +- ...doc-drawing-transform-update.controller.ts | 12 +- .../doc-drawing-update.render-controller.ts | 8 +- .../doc-image-panel/DocDrawingTextWrap.tsx | 5 +- packages/docs-drawing/package.json | 2 +- packages/docs-hyper-link-ui/package.json | 2 +- packages/docs-hyper-link/package.json | 2 +- packages/docs-mention-ui/package.json | 2 +- packages/docs-thread-comment-ui/package.json | 2 +- packages/docs-ui/package.json | 2 +- .../commands/inline-format.command.ts | 20 +- .../commands/paragraph-align.command.ts | 3 +- .../controllers/doc-move-cursor.controller.ts | 11 +- packages/docs-ui/src/facade/f-document.ts | 4 +- .../services/clipboard/clipboard.service.ts | 4 +- .../selection/doc-selection-render.service.ts | 15 +- .../src/services/selection/rect-range.ts | 12 +- .../src/services/selection/text-range.ts | 9 +- .../src/views/paragraph-setting/Setting.tsx | 14 +- .../src/views/paragraph-setting/hook/utils.ts | 3 +- packages/docs/package.json | 2 +- packages/drawing-ui/package.json | 2 +- .../controllers/drawing-update.controller.ts | 11 +- .../controllers/image-cropper.controller.ts | 5 +- .../src/services/drawing-render.service.ts | 17 +- .../src/views/panel/DrawingAlign.tsx | 18 +- .../src/views/panel/DrawingGroup.tsx | 8 +- .../src/views/panel/ImageCropper.tsx | 27 +- packages/drawing/package.json | 2 +- packages/engine-formula/package.json | 2 +- .../engine-formula/src/basics/engineering.ts | 42 +- .../engine-formula/src/basics/statistical.ts | 28 +- .../controller/set-dependency.controller.ts | 6 +- .../src/engine/ast-node/function-node.ts | 3 +- .../__tests__/array-value-atan2.spec.ts | 15 +- .../date/datevalue/__tests__/index.spec.ts | 19 +- .../date/day/__tests__/index.spec.ts | 11 +- .../date/edate/__tests__/index.spec.ts | 7 +- .../date/month/__tests__/index.spec.ts | 7 +- .../date/timevalue/__tests__/index.spec.ts | 11 +- .../date/year/__tests__/index.spec.ts | 7 +- .../src/functions/lookup/address/index.ts | 14 +- .../src/functions/math/subtotal/index.ts | 12 +- .../src/services/defined-names.service.ts | 4 +- packages/engine-numfmt/package.json | 2 +- packages/engine-render/package.json | 2 +- .../layout/block/paragraph/layout-ruler.ts | 64 +- .../line-breaker/__tests__/linebreak.spec.ts | 1 + .../docs/layout/line-breaker/line-breaker.ts | 2 +- .../docs/layout/line-breaker/trie-data.ts | 1 + .../components/docs/layout/model/column.ts | 4 +- .../src/components/docs/layout/model/page.ts | 13 +- .../layout/shaping-engine/font-library.ts | 3 +- .../layout/shaping-engine/text-shaping.ts | 5 +- .../src/components/docs/layout/tools.ts | 3 +- .../sheets/sheet.render-skeleton.ts | 3 +- .../src/components/sheets/spreadsheet.ts | 12 +- .../src/components/slides/slide.ts | 10 +- .../engine-render/src/scene.transformer.ts | 124 +- packages/engine-render/src/shape/circle.ts | 4 +- .../engine-render/src/shape/dashedrect.ts | 2 +- packages/engine-render/src/shape/image.ts | 8 +- packages/engine-render/src/shape/path.ts | 2 +- .../src/shape/regular-polygon.ts | 2 +- packages/engine-render/src/shape/rich-text.ts | 10 +- packages/facade/package.json | 2 +- packages/find-replace/package.json | 2 +- .../controllers/find-replace.controller.ts | 10 +- .../src/services/find-replace.service.ts | 3 +- .../src/views/dialog/FindReplaceDialog.tsx | 6 +- packages/network/package.json | 2 +- packages/rpc-node/package.json | 2 +- packages/rpc/package.json | 2 +- packages/rpc/src/plugin.ts | 3 +- .../package.json | 2 +- .../commands/add-average-cf.command.ts | 5 +- .../commands/add-color-scale-cf.command.ts | 5 +- .../commands/add-data-bar-cf.command.ts | 11 +- .../add-duplicate-values-cf.command.ts | 5 +- .../commands/add-number-cf.command.ts | 8 +- .../commands/commands/add-rank-cf.command.ts | 5 +- .../commands/commands/add-text-cf.command.ts | 5 +- .../commands/add-time-period-cf.command.ts | 5 +- .../commands/add-unique-values-cf.command.ts | 5 +- .../components/panel/rule-edit/ColorScale.tsx | 16 +- .../components/panel/rule-edit/DataBar.tsx | 87 +- .../panel/rule-edit/HighlightCell.tsx | 76 +- .../components/panel/rule-edit/IconSet.tsx | 3 +- .../src/components/panel/rule-edit/Rank.tsx | 39 +- .../src/components/panel/rule-edit/index.tsx | 3 +- .../src/components/panel/rule-list/index.tsx | 4 +- .../controllers/cf.auto-fill.controller.ts | 8 +- .../controllers/cf.copy-paste.controller.ts | 19 +- .../src/controllers/cf.painter.controller.ts | 16 +- .../src/controllers/cf.render.controller.ts | 8 +- .../src/controllers/cf.viewport.controller.ts | 3 +- .../src/menu/manage-rule.ts | 6 +- .../package.json | 2 +- .../commands/clear-range-cf.command.ts | 4 +- .../delete-conditional-rule.mutation.ts | 8 +- .../move-conditional-rule.mutation.ts | 5 +- .../f-conditional-formatting-builder.ts | 48 +- .../__test__/base-calculate.spec.ts | 5 +- .../__test__/calculate.color.spec.ts | 12 +- .../color-scale-calculate-unit.ts | 3 +- .../src/models/calculate-unit-v2/utils.ts | 5 +- .../conditional-formatting-view-model.ts | 16 +- .../src/models/icon-map.ts | 39 +- .../conditional-formatting-formula.service.ts | 22 +- .../conditional-formatting.service.ts | 9 +- .../sheets-crosshair-highlight/package.json | 2 +- .../sheets-data-validation-ui/package.json | 2 +- .../controllers/dv-reject-input.controller.ts | 3 +- .../src/views/components/detail/index.tsx | 7 +- packages/sheets-data-validation/package.json | 2 +- .../src/facade/f-univer.ts | 9 +- packages/sheets-data-validation/src/plugin.ts | 4 +- packages/sheets-drawing-ui/package.json | 2 +- .../src/basics/transform-position.ts | 23 +- .../commands/set-drawing-arrange.command.ts | 3 +- .../src/commands/commands/utils.ts | 11 +- ...t-drawing-transform-affected.controller.ts | 18 +- .../src/facade/f-over-grid-image.ts | 13 +- packages/sheets-drawing/package.json | 2 +- packages/sheets-filter-ui/package.json | 2 +- .../src/controllers/menu.schema.ts | 3 +- .../sheets-filter-ui-mobile.controller.ts | 5 +- .../src/models/__tests__/conditions.spec.ts | 71 +- .../sheets-filter-ui/src/models/conditions.ts | 8 +- .../sheets-filter-panel.service.spec.ts | 12 +- .../views/components/SheetsFilterPanel.tsx | 3 +- .../sheets-filter.render-controller.ts | 8 +- packages/sheets-filter/package.json | 2 +- .../__tests__/sheets-filter.mutation.spec.ts | 5 +- .../controllers/sheets-filter.controller.ts | 13 +- .../__tests__/filter-interceptor.spec.ts | 149 +- .../src/models/__tests__/filter-model.spec.ts | 8 +- .../src/services/sheet-filter.service.ts | 6 +- packages/sheets-find-replace/package.json | 2 +- .../sheet-find-replace.controller.ts | 18 +- packages/sheets-formula-ui/package.json | 2 +- .../formula-auto-fill.controller.spec.ts | 90 +- .../formula-editor-show.controller.ts | 75 +- .../src/locale/function-list/date/zh-TW.ts | 3 +- .../locale/function-list/information/zh-TW.ts | 3 +- .../locale/function-list/statistical/zh-TW.ts | 3 +- .../src/locale/function-list/text/zh-TW.ts | 3 +- packages/sheets-formula/package.json | 2 +- .../controllers/update-formula.controller.ts | 14 +- .../controllers/utils/ref-range-formula.ts | 18 +- .../register-other-formula.service.ts | 3 +- packages/sheets-graphics/package.json | 2 +- packages/sheets-hyper-link-ui/package.json | 2 +- packages/sheets-hyper-link/package.json | 2 +- .../src/controllers/ref-range.controller.ts | 10 +- .../rich-text-ref-range.controller.ts | 3 +- packages/sheets-numfmt-ui/package.json | 2 +- .../controllers/numfmt.editor.controller.ts | 176 +- packages/sheets-numfmt/package.json | 2 +- .../src/base/const/currency-symbols.ts | 22 +- .../commands/commands/set-numfmt.command.ts | 8 +- packages/sheets-sort-ui/package.json | 2 +- .../src/controllers/menu.schema.ts | 6 +- .../src/services/sheets-sort-ui.service.tsx | 22 +- .../src/views/CustomSortPanel.tsx | 4 +- packages/sheets-sort/package.json | 2 +- .../sheets-thread-comment-ui/package.json | 2 +- packages/sheets-thread-comment/package.json | 2 +- packages/sheets-ui/package.json | 2 +- .../__tests__/create-command-test-bed.ts | 6 +- .../commands/add-worksheet-merge.command.ts | 4 +- .../clipboard/clipboard.controller.ts | 6 +- .../editor/editing.render-controller.ts | 9 +- .../format-painter.controller.ts | 18 +- .../sheets-ui/src/controllers/menu.schema.ts | 12 +- .../menu/__tests__/create-menu-test-bed.ts | 8 +- .../controllers/menu/__tests__/menu.spec.ts | 3 +- .../src/controllers/menu/sheet.menu.ts | 3 +- .../format-painter.render-controller.ts | 3 +- .../freeze.render-controller.ts | 14 +- .../header-move.render-controller.ts | 7 +- .../header-resize.render-controller.ts | 7 +- .../mobile/mobile-scroll.render-controller.ts | 6 +- .../scroll.render-controller.ts | 6 +- .../src/controllers/utils/char-tools.ts | 1 + .../src/facade/__tests__/create-test-bed.ts | 3 +- packages/sheets-ui/src/index.ts | 6 +- packages/sheets-ui/src/locale/vi-VN.ts | 3 +- .../services/auto-fill/auto-fill.service.ts | 19 +- .../services/canvas-pop-manager.service.ts | 5 +- .../clipboard-paste-form-excel.spec.ts | 15 +- .../clipboard-paste-from-google.spec.ts | 14 +- .../clipboard/__tests__/utils.spec.ts | 12 +- .../services/clipboard/clipboard.service.ts | 28 +- .../clipboard/html-to-usm/converter.ts | 6 +- .../src/services/editor-bridge.service.ts | 7 +- .../src/services/hover-manager.service.ts | 5 +- .../base-selection-render.service.ts | 12 +- .../selection/mobile-selection-shape.ts | 3 +- .../services/selection/selection-control.ts | 18 +- .../AutoFillPopupMenu.tsx | 3 +- .../src/views/defined-name/DefinedName.tsx | 3 +- .../src/views/status-bar/StatusBar.tsx | 16 +- packages/sheets-zen-editor/package.json | 2 +- .../src/views/zen-editor/ZenEditor.tsx | 3 +- packages/sheets/package.json | 2 +- .../sheets/src/basics/__tests__/utils.spec.ts | 10 +- .../__tests__/add-merge-command.spec.ts | 7 +- .../set-range-values.command.spec.ts | 10 +- .../commands/remove-row-col.command.ts | 6 +- .../commands/commands/set-border-command.ts | 8 +- .../commands/set-col-visible.command.ts | 6 +- .../commands/set-row-visible.command.ts | 4 +- .../set-range-protection.mutation.ts | 7 +- .../src/controllers/merge-cell.controller.ts | 5 +- .../src/controllers/number-cell.controller.ts | 3 +- .../sheet-permission-view-model.controller.ts | 6 +- packages/sheets/src/facade/f-permission.ts | 9 +- packages/sheets/src/facade/f-univer.ts | 26 +- packages/sheets/src/facade/f-worksheet.ts | 13 +- .../range-protection.service.ts | 6 +- .../worksheet-permission.service.ts | 9 +- .../ref-range/__tests__/utils.spec.ts | 13 +- .../ref-range/__tests__/watch-range.spec.ts | 16 +- .../sheet-interceptor.service.ts | 3 +- packages/slides-ui/package.json | 2 +- .../slide-editing.render-controller.ts | 3 +- .../services/slide-popup-manager.service.ts | 10 +- packages/slides/package.json | 2 +- packages/telemetry/package.json | 2 +- packages/thread-comment-ui/package.json | 2 +- .../src/views/thread-comment-panel/index.tsx | 6 +- packages/thread-comment/package.json | 2 +- packages/ui/package.json | 2 +- .../components/font-size/index.module.less | 1 + .../ui/src/components/menu/desktop/Menu.tsx | 3 +- packages/ui/src/mobile-ui-plugin.ts | 3 +- .../components/global-zone/GlobalZone.tsx | 17 +- .../components/global-zone/index.module.less | 21 - .../src/views/components/popup/RectPopup.tsx | 5 +- .../components/popup/single-canvas-popup.tsx | 98 - .../ribbon/Button/ToolbarButton.tsx | 2 +- .../ui/src/views/components/ribbon/Ribbon.tsx | 145 +- .../views/components/ribbon/ToolbarItem.tsx | 34 +- .../ribbon/TooltipButtonWrapper.tsx | 5 +- .../views/components/ribbon/index.module.less | 167 -- .../shortcut-panel/ShortcutPanel.tsx | 40 +- .../shortcut-panel/index.module.less | 38 - packages/uniscript/package.json | 2 +- packages/watermark/package.json | 2 +- pnpm-lock.yaml | 1659 +++++++++-------- tests/formula-integration/package.json | 2 +- 287 files changed, 2746 insertions(+), 2371 deletions(-) delete mode 100644 packages/ui/src/views/components/global-zone/index.module.less delete mode 100644 packages/ui/src/views/components/popup/single-canvas-popup.tsx delete mode 100644 packages/ui/src/views/components/ribbon/index.module.less delete mode 100644 packages/ui/src/views/components/shortcut-panel/index.module.less diff --git a/common/shared/eslint/index.js b/common/shared/eslint/index.js index b9e4d52c52..b4dd88613a 100644 --- a/common/shared/eslint/index.js +++ b/common/shared/eslint/index.js @@ -126,7 +126,6 @@ exports.baseRules = { 'ts/ban-ts-comment': 'off', 'ts/no-duplicate-enum-values': 'off', 'no-cond-assign': 'warn', - 'antfu/consistent-list-newline': 'off', 'ts/no-use-before-define': 'warn', 'intunicorn/number-literal-case': 'off', 'test/no-identical-title': 'warn', diff --git a/common/storybook/package.json b/common/storybook/package.json index 049fb372d1..4846687bb1 100644 --- a/common/storybook/package.json +++ b/common/storybook/package.json @@ -16,28 +16,28 @@ "build:storybook": "storybook build" }, "dependencies": { - "@chromatic-com/storybook": "^3.2.4", - "@storybook/addon-essentials": "^8.5.8", - "@storybook/addon-interactions": "^8.5.8", - "@storybook/addon-links": "^8.5.8", + "@chromatic-com/storybook": "^3.2.5", + "@storybook/addon-essentials": "^8.6.3", + "@storybook/addon-interactions": "^8.6.3", + "@storybook/addon-links": "^8.6.3", "@storybook/addon-styling-webpack": "^1.0.1", "@storybook/addon-webpack5-compiler-swc": "^2.1.0", - "@storybook/blocks": "^8.5.8", + "@storybook/blocks": "^8.6.3", "@storybook/icons": "^1.3.2", - "@storybook/react": "^8.5.8", - "@storybook/react-webpack5": "^8.5.8", - "@storybook/types": "^8.5.8", + "@storybook/react": "^8.6.3", + "@storybook/react-webpack5": "^8.6.3", + "@storybook/types": "^8.6.3", "@univerjs/core": "workspace:*", "@univerjs/design": "workspace:*", "@univerjs/ui": "workspace:*", "css-loader": "^7.1.2", "less-loader": "^12.2.0", "postcss-loader": "^8.1.1", - "storybook": "^8.5.8", + "storybook": "^8.6.3", "storybook-addon-swc": "^1.2.0", "style-loader": "^4.0.0", "tsconfig-paths-webpack-plugin": "^4.2.0", - "typescript": "^5.7.3" + "typescript": "^5.8.2" }, "devDependencies": { "@types/fs-extra": "^11.0.4", diff --git a/e2e/visual-comparison/docs/docs-visual-comparison.spec.ts-snapshots/default-doc-ci-chromium-linux.png b/e2e/visual-comparison/docs/docs-visual-comparison.spec.ts-snapshots/default-doc-ci-chromium-linux.png index 0fedcc2f68feec94f2e6f5e38bce68d372904d3d..d3e945f76874ed8c842d9d9493611c55c0114996 100644 GIT binary patch literal 119880 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 diff --git a/e2e/visual-comparison/sheets/sheets-switching-render-unit.spec.ts-snapshots/switching-render-unit-ci-chromium-linux.png b/e2e/visual-comparison/sheets/sheets-switching-render-unit.spec.ts-snapshots/switching-render-unit-ci-chromium-linux.png index 0cdea085d053608b394fe0b4b79ef72bb5c997bc..28c3b90d618953b97fee9efa8d156c8be2a7c250 100644 GIT binary patch literal 77560 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%0A04i0>70PQ!AzDt?E*+zuA30>z-4T`Ya7_dlf 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 N<)u}ih0l%N{XdZ)QRx5x literal 77797 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 diff --git a/e2e/visual-comparison/sheets/sheets-visual-comparison.spec.ts-snapshots/default-sheet-fullpage-ci-chromium-linux.png b/e2e/visual-comparison/sheets/sheets-visual-comparison.spec.ts-snapshots/default-sheet-fullpage-ci-chromium-linux.png index 0cdea085d053608b394fe0b4b79ef72bb5c997bc..28c3b90d618953b97fee9efa8d156c8be2a7c250 100644 GIT binary patch literal 77560 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%0A04i0>70PQ!AzDt?E*+zuA30>z-4T`Ya7_dlf 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 N<)u}ih0l%N{XdZ)QRx5x literal 77797 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 diff --git a/eslint.config.js b/eslint.config.js index 48ff007692..e991821222 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -29,7 +29,8 @@ export default antfu( ignores: [ 'mockdata/**/*.json', ], - }, { + }, + { files: ['**/*.ts', '**/*.tsx'], ignores: [ 'packages/engine-render/src/components/docs/**/*.ts', @@ -46,7 +47,8 @@ export default antfu( complexity: ['warn', { max: 20 }], 'max-lines-per-function': ['warn', 80], }, - }, { + }, + { files: ['**/*.ts', '**/*.tsx'], ignores: ['**/*.d.ts', '**/vite.config.ts', '**/vitest.config.ts', 'playwright.config.ts'], plugins: { @@ -78,7 +80,8 @@ export default antfu( 2, ], }, - }, { + }, + { // Not penetrating for source files files: ['**/*.ts', '**/*.tsx'], plugins: { @@ -92,7 +95,8 @@ export default antfu( rules: { 'penetrating/no-penetrating-import': 2, }, - }, { + }, + { files: ['**/*/src/index.ts'], rules: { 'perfectionist/sort-exports': 'off', diff --git a/examples/package.json b/examples/package.json index e66c2ab2c1..78e4ea5307 100644 --- a/examples/package.json +++ b/examples/package.json @@ -97,6 +97,6 @@ "postcss": "^8.5.3", "tailwindcss": "^3.4.17", "tailwindcss-animate": "^1.0.7", - "typescript": "^5.7.3" + "typescript": "^5.8.2" } } diff --git a/examples/src/uni/main.ts b/examples/src/uni/main.ts index 42880fd27f..56266cf4e7 100644 --- a/examples/src/uni/main.ts +++ b/examples/src/uni/main.ts @@ -111,7 +111,8 @@ function registerBasicPlugins(univer: Univer) { [DocUIController, { useFactory: (injector) => { injector.createInstance(UniDocsUIController, {}); - }, deps: [Injector], + }, + deps: [Injector], }], ], }); @@ -132,7 +133,8 @@ function registerSheetPlugins(univer: Univer) { [SheetUIController, { useFactory: (injector) => { injector.createInstance(UniSheetsUIController, {}); - }, deps: [Injector], + }, + deps: [Injector], }], ], }); diff --git a/mockdata/package.json b/mockdata/package.json index 693d3cc3a3..1a845e9cbd 100644 --- a/mockdata/package.json +++ b/mockdata/package.json @@ -42,6 +42,6 @@ }, "devDependencies": { "@univerjs-infra/shared": "workspace:*", - "typescript": "^5.7.3" + "typescript": "^5.8.2" } } diff --git a/mockdata/src/sheets/demo/default-workbook-data-demo.ts b/mockdata/src/sheets/demo/default-workbook-data-demo.ts index 45727ce8ba..eef67b6f81 100644 --- a/mockdata/src/sheets/demo/default-workbook-data-demo.ts +++ b/mockdata/src/sheets/demo/default-workbook-data-demo.ts @@ -24210,7 +24210,9 @@ export const DEFAULT_WORKBOOK_DATA_DEMO: IWorkbookData = { drawingId: 'sF2ogx', drawingType: 0, imageSourceType: 'BASE64', - source: 'data:image/jpeg;base64,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', sheetTransform: { angle: 45, from: { column: 14, columnOffset: 49.7, row: 3, rowOffset: 9.4 }, to: { column: 18, columnOffset: 49.6, row: 17, rowOffset: 15.5 } }, transform: { flipY: false, flipX: false, angle: 45, skewX: 0, skewY: 0, left: 1117.7, top: 86.4, width: 291.9, height: 215.1 }, + source: 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAHGAmgDAREAAhEBAxEB/8QAHQAAAQUBAQEBAAAAAAAAAAAAAgABAwQFBgcICf/EAEIQAAECBAQDBgQFBAIBBAAHAAECEQADBCEFEjFBUWHwBhMicYGRBzKhsRTB0eHxCCNCUhViMxYkcoIJFxg0Q7Ly/8QAGwEAAgMBAQEAAAAAAAAAAAAAAAECAwQFBgf/xAA3EQACAgEDAwIDCAMAAgIDAQEAAQIRAyEx8AQSQVFhBRNxIoGRobHB0eEUMvEGQhVSIzPSYrL/2gAMAwEAAhEDEQA/APmWnxnDqmgViJqhKABSpSFOQ5YKyh9Ws405PHCprRm514OGm4lT472hk4fh6h31bNQhKcyWQ4AZwGIe2mnOL1jcIOT2RW5d0qRv/Fv4V0/wzwjDcVqK4T59aoickpJdWUkhrM58t2Nrvp80ssu0WSCirPM5NdT5kqJleAlRUCA5uWsLWdud3sG1OLKkzQpcTpaNCRmUp/CU5QDZ2I+5HPi5NcscpMkpJEeM9pFT6VFAmfOTJJcIWXS76tszu7jUw8eHtdsJTvRFXCsdxDCFJVRVC0ZiCRm1LkOdOizbROeKOTcUZuOxfFTMr5nfVcwqWoZVFKnLFxo92Cmc721DKr7VBVHnOe0rctWUaUhdYhWUgPmUAw0DltAN/L0iyWkSC3PX/hSiSnF+9nsuYCPDkLKYEnlqR5RxuulWN0rN/Tq5LWj3vDqs1M1KpQykFQBSSCSzga8dhudDYR4uS7dz0N2j1jsVVTVz0yyFZAfDcb9fWMfb9uiF0j1BNX+GlpSDfWLnpEj5J6XEZKgRmBBIDG77fYt72LRid3rzf+vZ0v8A7aT1Zdk4vSBYR34KyRY68/z9bcHO2loueP0S8aa7t0tTao5yZiGfQi4uA9n+r9Xg62XP+6+PDtL/ANWr8loKSsW0IBba9v2+nCKqrXnPP4PXW5DHu1EzFnW2ln18t+O77PE0uzT0/wCfX8V4SrXtSbIpiQnxaMSTbYHg19/po7RNN7fT8/f6flbSa+0RvXnOfcVlzA2chuO3W8VykpPTmnPX6tNtuyFdQAl2YjV9jv8AToxGX15682e9PVhGqrym7i5Gh2/j2iHdHw+f1ovGugyrNqlqsFcv15bc9TFGRrVJcuuXVjSIVTSCCVEEmxc8Xb3inufOc3GJM0lJAU48zwaFqgI502YxUMpILXJO36mCT05xjKExKyshRJYt4tdvrb7avGSbdkkaWH0ic4Cmc/NfX8+vWL8WOnbIyZvU1P3aAEggjwhxoeNr6gc7++pUiIdVVSEyVKmGwDjXhb6n+bvpyNRxuT25/X6aaUbnHTKofiO6CVK0USxLAkgaPu2rBnL2MecnLulZthCo2P3vyuAMyikAliSDsCz2BPpZ4joOiVChZQHO9jEoy7Hdbc5+otg5sr8RSrSACwuG0YNx8vcx1vhs05fa5z9bKZrejKw6nWiZ4k5Do0eiwU2ZZpo6OkDKseZ9Y3QKHuadLZTjfLF0dHaKpu1TOywsvJBa5tG/FK1RkmqZevFxAV4AEA5Yh4ACAtaGIcJJIAck7CCgsTMxZn+sFUFiOkADPxgATAQUFiIOxgATE6wUFiFoAEQ8ADZTxgoLFcWgAQAVqxgAZQbe3OCgsWtjCodjZRs0IY5AOrQxC9IQxEwxAAbwhiZ9oAByh/m9IAEZYILkwxEKwAphDQmLKIAGIZoAAIUS4NoYh4AGIBGm0AEXqeuhAAiSxL7s0AAK8Wu3XXrCAYJUDYhvPTWGAypoSoJ0dTXHXAwAKam2pDWfr1gAhUGGZNiAdBAB+DczGMRmyBTqqVCWAzA66fpHrVCKd0c23sNheLVuEYjIxOjmkT6dYWgm9wX+8OUVNdrBOnaOm7Ydusf+IVRTzsfnJPcWRKQnIhP+xbjY9AxTh6eHTp9hOeSU9znPwxABuGZlEnw2F78APp7XWQK61TJK0nJlYgtdnYFvtDA1ZdRS1aEo70IWS2mU7asfPQe72hTQCTRTs4UmWs6ZRkNtGZvMe44lzuQUyYVRloSgnwgGylMN30azPbmrjC7b1HY1PO7mamckBRQXHB/56EOS7lQk61PYfg9+GqM9dVFsh8JKsuhYXL38yfvHE+JJKDi+c9vwex0ekb7k1znK3PovsRJC0zZhYBAuWY7++n2jxHUOtDveD1LsnSCRUtmdRIKm5P16xmjPXUTieiTqPvpYKiAkj1Folkf2bXOcvYS0MucZtOlQXZwyr+/nx8wOLxznF932fy9L02+9fRv0cVMamqu5mmZOZw7uTY3cWbgr2OxaKk6pR/b2r1//AM/dvqrJr1Oiw/tHTIKUF7A5To272PMfTjd96vXnj229b9brVKNG4ivRNAWgpILKACgDry8/rtFkWpq+bX+2q+tXZF2gZtchKXOU32GvK3rw/SxvtV+lft60vCXny34QqZXXiCSLl2cjn/DaeTaw1Xan9P3/AF8+P9rTatjWpD+NUWyMLuGAuLXB8repjJPI3bf7+78/o9fr5kkRzJxUPEp+Gp48df2MQbbe37fxW+utJP2GATYi3HTX6RKNz1vmnvvq3+O2tGxGSrP4Rq4drbDbW/XHNJ00nzzp+P7jDZWos7FjduO8K73AfV7QbU0wJEBKi6ywDX0Hl19YaXcA3dAF8wI2L7/z+sR7O16hZbpSlLBLsfE2vH9hFkN6QmT1FbLp5ZcIcXIfk2/X5Oc1FaglZQr65S6JZKFBvDbTUbxLqpd+BL14+efxJRpOznaWlmrmietACVHMSUpDhwQQGsfCHcAkEFwQEp4knbOjKaSpc5ze3dVLKMvdoOiUlQIK2BDAvqGKnu+rXMIqu9yejwqrUgCVKWEBglRNiAkbMw00A4kbxfj6eeTxoRlki3qPXTZ+H0qcoGc+Jimzb/YR01j+RjVFsIqWzMvCsVRV1aqeaEiYCcuzxu6PqO6VMp6nFStHS0qXUHDCO/B6HKa1NKnBzpTufy/eL4lUjscKA7hLaG8bsPkyzNBk8DF5UMoDYawUOxwBrAIcCGAoYhFrMPOABWOukIBlAa+8AxPygAV9oAoQclgC8H1ARLDSF3Lax0xbPDEIloAEC8ADKJ2MADXux5P7wAPlJvAAzXaEMUAAqNvKAAVFlJTxgAcnxM3OACLKXccYLARcgcYADzZEgqGsAEZWCrMIKCxlFIHh1eGIDe0MQmMACgAEjnAAAQXYt9eXXtwgAGYAFBhZoAIySA77a+0AA5sxZKACeHXOABiJgBUCwbNw59eUAAqK9BbQXtx9tve+7ADEBVwS3tAB+BsewOaSyJWdQUdARtrcP9/qIQGpTy1S0AKeyQGJdrX6/aIsCRTlJy6taADKrH70kks5Z/Q8OBHtEkBACQQQWI0MMDUw7FO7WmXMlJJIbMTryPI78dN4hKNgnR22H4FT4ugqpJKFhKAoqSi5AfZI1N9h7tGKWSUHTL1BSVlKf2YqCc8iTMWCWzd2QC5d2t/ioHbQWvE11CX+xH5bex7H8LOyc2ikJTLK3KgoDfz8jf25iPN/FOr732p857/U7HR4OxW0e79l6eXRU/dSQxCUkkEBtdA9tX9Y8zmuWrOk6SPSOz9bS04SRNS7AEcIxrTckdZP7TpkSsiVhx/kL7dH2gnUt+c/QSRmTsbzkzTm8JAKkkAahQ1DD5VNb7Xyzim2m9/4a9fdX+JYolFeJhZYEp0YpFx4ctr6gFTF/wDEaEqJzyevt/Ovp50v61roWLHoTU+IqC/7mVDkFnbKDlYi2lyRqQEo2TdK265z9bfronjVaM67C8TVMloRm8BDJY7tYWf21Dw43F78v7vx0Tfu9K5Ki/Oq0v8AOl9OFmP6W/SB5U9Vz7/vVv6O70I0QGrAcsHDm1w2a/Di3oeMCyx7e3Xm3rvX5r/6oKFLqCFOzEMFEnnoefn+pjJKT/8Ab39vv25VaDJlVGewIuzBuPn6s/2Dwo5O1poB5dTLU6SsAHxfNb9tfrxeLo9RtfNueNlT0oKJxcO4OunnFclTAeEA5ybD2Pnr9IdoA+9lyroloB2PA6/metW8vatXzn6AlZVM5XeAizMzaiMLzNz5znkuUF2lmXUZEhQ0BAfl9W+3tGiGVVznPYrcSjVz5kxeRIclQYHzG2vQinJk73S5znvdCCqzYlSO9pkU6kklbPzD/pHS+XN413c5zwUS0kakvDKenp1ESkEnwkOBmzDKUvxuQLjVnvFEoQS0QJu9S9R4fKnzETkoSsljm8N9C78yCbMC5LRKMEn3IJPTU2fwlPLllAlhtzlBPPaL8at8/oq7nZ5t2tE4UhVTpDsyi2g5e8aeqjHto29PKVnkc7GDh2MIUhZKgpIsNBHOxpxl3LnObHRce/HznPc9lwmrRV0UipSpJzJCnB46x6fpM3zIJM4OaHbJmxRys88DYMPKOjBN6GKbW52NDLCJSW0CRG/Gq3MstS3YjXaLSseGAoAFAAoAFAAszsHNtILChG4gAFtoAKGOY3R4FRKqamYkKbwpJuYydT1UenjbZoxYHkeh5xivxSVNR31DVISA3h2jz2b4nOnqdXH0UDnaP4yTaDFJSaufmk5vGFH3jNH4lmT7nsXvoYSVI9vwmvk4ph8mup1hSJqAoMX1Eer6TP8APxKRws+L5c2i3GooFAAoAGYO7X4wxDA3Z4QxHVoAG2ubc+HTwAJrX66vAwQJYF20hDGLB9H/AJ/QQxDKIEsF/wB4QxnSBzhDIiXOuvOJER1AWfSzwIGMBYODtoP25CGIFi72LnjAALK1DwAJ/vAAxeABF2IHCACFLkcTzvw/WABlNle2j39P163AGlgMXAt1v1pABItaTmSDc205fxABD3aeJ8/tAABDBjq8AH4Fx7A5po0kvMkFJcA5SxsLbb3B8wfMxFgXUpUpQSkEklgBqTCAYgEEEODqIAM+qQFAZUklQBSWvxOnM7WuOENAUokBu9m+yOM9ou8m4fRmZLlhQKyPC4Dke14pyZo49GSjBy2Ppn+mHsPh1fgdTWYnTFa0Tlyyld0lOjcNDtbxe/A+LdW8Ul2nQ6TCprUye1/ZQYR2knUkqQlVOqcwUwJSCdB/qHYgDccy6xdVDJjtPx+188+xN4ZJnp3ZPBpdLhKJ2Uh9UszWFuX7bR53LOWTI2/P98/ZnVSUI1zxz+DVpcZMmepCAFKSzsSNj9n8rtyjLOPdqy5JVR0GH4wqbNSzA6gjUOSL/S3ntc0TxqhVWp0ZxNBlhRVqbufr1wjE4tFqSbokRWpYPLU/ANrbQ+3vFM+fnz7vpc4x5+HPv+tWJVUFOXSADpyf+IyzdPnPWzTGNrnPoWpM0B8iwMySCCSxOo03cBtnY6PCT15z8/YjKLrY2sMxVEsf3dADZRu+rB1OwCRrfQcIUnpXPPt7v9SqWO/qbqK1KwUpfQgDmbFLem7agbxlbp23z19vz11IPG1znLJJdVLmMUrQWLizcG2vYj3iLWmi/Lnp+pFxcdGShQcZC2UvzBiLk+c9iI8tSJiXSoEMCC1rtfhFTtFnbW5IyrFBL8N9LezGEptPUTj6FhSphAKSo3INn5N1uB5m2UrjoJJ2T5wQ4Ifz84g5rn38/Gt9ZpMCYtxo50D9eXtEPnMfYRqmLH+Lv6NFablzn/Cf3EsmSuaoAJPidgL/AF69omsMnKmuc/vQTlRZNDOLMk3fY9dcbRfLBKS05z09PcrU0iSgwifPqElUthqTxAO+43hYumlGSctkSlltVE6uVhqpPiUlXhGuh0v5bn2js5J1iUHznPagkNNUTJiUhF3YuCkjxA6jYDUb20jE02O0a1NJEmWAR4tTxezxNFbdkqmylywbV2iUWk7YjzXtROlplVCAUgX0GvD84u6nucIrzRu6bR2eFY1PzYisISj+2rg5cBzp5fXlbEtEdXEk1qd38Nu0xKDhdYoheY5QSRb+Y6PRZ+2STOd1mDt1R6/g0vvJ6GIKeMepxVXuefy3Z16UkIZOlo3QWhmYY0DxaQHhiFAA+U30sH1gAWU3uLB9YABY7mEMRB2MFAJlaOLwr0Aq4jiFNhdGuqqpqUpSksDv5CM+bKscbbLccHN6HivbztTMxLOiYM2d2AVoOEed6nK8r3OtigoKqPJ6wTqQTJk6qCEAGwtYmx35xjce5GzHXhanAYr2jpfxISjvkFOYCaZKgCQH+dtGzHyBJjTHp3uzodPFTVJr8vpz1Pq7+nTtccd7JKo5qwqZTqOXKXBTsRHR+HZXGTxtnA+J4eyVo9ejunHGccYAHgAT+XKGIG5L84Qxr8OumgAWlngAdg0ADEMX9YQxmSP365CGIE6lMRJDZRpsYABdLsB6vDERu6rG+0MQrbMw9bP5QxCvz0uPIecAAqJch3a0AAm17wAAZiQyWa7cOtIAHWpKRlJBewBgAiA59dflygAZXyG2o6/P28oABGmXfcdeZgARzFVgSCdh1w+kADKmpSczE+TnrSACJRzlgPl13EAH4Gx7A5pr0qSJSSdgwP6X009oiwJwpQBAJAIY8xCAZRIDgOdoAKc5ImBKtXuCRrpy5DjqRwEMCktC3cgkl332cl/rDA+2f6dexNHQ/DxEyooUd5US1rWTcsSNTzv+UeM+M9c8eW0/J2ejwKUNTuux3ZmX2Rl1kqmUgpqlldncPzjhZusnm33OiscY6RRy/wAQMJNXiCJqSlJzOS+gI4cXBjR0/Udsa9ufz/xCeO9X68/g6DB5kr/jEDMlGVJSSk/KWNgeHXGKJSuTb5+/5lnbSSXP2OXIVLrVsf8A+RTEa8ue/rwOkS3iS8m5SVGTKczpsR4jo72v5j/7GM8ty+MbWnN/c3aXEVTkJQVoclI1+Y2fU835ONbgZsip3znNCyOPwub/AHf9vUt0s+yQFZmCVG+9xyLuDsPvGLJTu+c5/wCrNUVrpznL+0jTpKkqVlWrRhdRuSev23zzj6fp9fZc/BPbX9/p7v8A7+L0EKmOySS1z5fpFK3HJKjTw9E9cxpZUGAKhldxmFm0Jdix1IbUwTaSKHSNmnk1MhKO9TMuxHgu7pDA3B+QMOSD8pUBTKpOlzn8kG03pznNaNGnpqgICVApIOUHVI8BS+oOoDHVm4qMUebIzmmufXnv9xalyHKVKB/2CVAEp5cGDJ0/1dzBKTe7Ku7wieRSKSA8sKIFyE3zAEEu5Nxb9XirfYm3+/4en4/d7F6XQzSxKQQ/ygcdvO0T+VJ85z8CFpF6VQzlJH9pjYFy33udTFywNoXeTowStmB8hB8rA3+13+ju0Ql08n515z9PQkpotyOy9TNYlwNw1/o+lomumjznPrqJ5GaNL2Wly1eNClm7OnL00WxxRjsiDle7NSVg8lIBSnKXBISOFxv5G7axZRG0W0YbKSSVLJd3YNDoXcGiVSyRmdBI0JI64RKEO90DbYcoywWSRYNex1/i3laJZHctec42J2SZEDRCbcuuA9orEEQxZ4lKPa6Yk7KNXVF1S0q8IOVXh1fb6EajX1gjqy2EdTzftSuUtM9RUFEEjV3LfxE8ktFE34kkeH4s8rEp+dJusqsRcOOXKM1WjpYn9ktYPUGiqJdXKmOqWbAHWwfXyHVhCM3CXdzfnNR5cTywpH0N8PMZk4tSyJiVo70M4e8ez6HqYZodqep5LrMEsUn3HoKDYjhHZhsjnsKJkBaQAKGAZB8VjoFfK38C/wBoBDOLkmxIJDMfThAA7kkeIFTu5HHiTAAjdIZIdtNTzP03gAo4pi1HhFMqoqVOf8UjUmMufqYYlqX48LyPQ8a7fds5kxYM1YQpRPdj/W0efz9X85nUx4PlqjzwV0yapUyqIINyt9NIyJ3oWmP2hVSVVJMlyS61IbMA5AOzdaQ0r1RdhuMrPNMTwqTQVKqoF6lds4KkurMyUliARoGLAlg+8aU5Ndr2Oridr7T5p4/D6a+57F/TB2hlI7Trw+Tm7ubmQc6jmCk2Yg3ez3veJ9PePOr8/wDTn/FIPsV8s+swXaPTKV0eWocQxCMADc4QCEMBjrCY0ICABiecAC01MACgAD/Iwhi7xI1SbQxEZZ9G3vAgZGDq59DxaGIcnU6gFvSGIdXh3v5c9vrAACgAWEADEOGgADKOGkACKQojMIABUkHYAEdfeABjMRqZZ9uuMAEU0pPiSCCD7QACleVnDsYAIVDNmSwe2wPW/vAA4JsUkn1HGAD8D0gEsS1iY9gc02ZH/iT6/f7RACUqKh4rm1yS4ADN1whUACg4ys72uHHrDAqzC4AuCSzG9yLba+d2AfUwwCwWhOIYtR0SB/5pyQQDfLYm1ibN7ExHJLsg5Diu6SR+i/w4wmRgvY6ipAEJySk3DXs5f3j5j8UzrJkpet84meo6eHbHUu19SiT3hAAB2IYku/B3+zmMOOLlRczzPtfjEsTvDlJKnAJ11O3r7iOngx2KTpUVsMx1SpXdpUcmhAOoHDjru2txcRLJjoUZEc+aZ8xSwQoqDFn+bQCzb211a93iOyovhBuSb4vz/R6X6GxRThMlkiZnGrv9W4b8OFgIzzXnnOeS+P2H2vn6/wDfobNHMUVDKWIctqAb7OeCQLa5df8ALLNWuf1y9vF60dc9f3f3Pz53aOmmqAQHIDJDk6AAAanh+u5jHNrW+a/T6/xqkS7u3n9/T+dGzYoqItnSE6s+Z7efoOjGed8/jV+fx193FT9+fkvH4aey6jCsFStXdrTZCfEBYh2DNq4Y2sAQDca5pS8t/fz/AKVzyUtDsaDDQEhLrCQ6iAolybk3JI3N7feIrE5b85pflfijLJ2asvAJS0q7xNlFlaHNtf0t6QLCtNSPcaMjs9LAYIuSdRc6hr6aGGsKSsVltOBBUskgFJTqSbi+zRJwS0Yalmn7Pys5d1AHRtuL7a78PWBJAaacClLTlNMkAl/ETbX9frDoVouSsJp5YJSllMdgN/tElFsXcTpopAJ8Dgjc8/4hUHcyYIQCSEi5cwERwAAAAwEMCOdUS5TgrGZtIVjSsoT6+as5UugH/UEnbeFZNRSKvcT1vMXMCs3E2PH8+O3rZij3PnPcB5C+5YrWGvcl21cdGIz0loMsL7R4bJS06eM41bR2doj3pbsj2NvQpT+2GHqV3UqZqN038i9uXrC74+pNYnuBXYlTpo88ialaiPDbS3N+Z2/S2Me3Vk4Rd6nmWMYhKUZn4hYDeIlR06HvGbLk1OnDHex5xj2HioX+MpCFrHzMH8L7exiuGdKXbLY1Y4OMTMoE1yFJSqSsqZlESzs92va5LO+geLsuSDi0n+f0+novbzXkuUnVUdv2Q7RYlglfKmSpUwhxYjQc4On6mXTvRmDqMEM1s90wHt5huIykpqlCRMPzZzYx7HB8WhOC7jzWXoJRk1E6WTiFFOOWVUylFtAoPG/H1uGfkyy6fJHwTpWk3H3jQskJ7Mq7ZR3Hz8CfaJd0fUWoQUNy0HdF+Q+0J1AguxGjRJewnb3HJFxdtg+kAqMzG8ew7AaNdZWTQMoOVL3JjL1HUxxRbsvxYXN6Hh3bD4lTJve4lUTF90gkypYe0eYz9R/kZNGdnBgcF20eaUXaGd2tqF18wnu5dglWh9YjKLhoy2ce1WnuVMTxeTTjuadGc2zlT+E8ufNouwxrfn7UQWjv0/s59eOApKlTjLLZjnTlLanUeXHb1v7H5L4Rf+q9lprWv57Wkr9b0d0ZspdasTpc0TBLBISEjZweX52PlEJpxVM2YXapfv57ar29PFJP0b3PhTVJwjtxhs9S1A94kFRuVnS9mdgH/QCIp/ai/cOu+3h05znk+6JLTpSFoQWWAzcxHp8OsEzxk9JNBRaQGOt9ohMkhiRDAbzgAXKABawALzgAQdxz4QgFt1whgB/kYQxWe8MQpgSkO2sAEWh8uvygAC1nZxx26vEiIsh4gcidIABcnWAByQdmgAaACMmzQAMr5CLbwARlLHrj11qAAWAIIck2by/eACJSUk+tt94TdDqxFIZgBx03hiBABU9tH4Hb9IAPwTklWbKne+vAH0bzj15zTWkl5SS788z/AFiIE8xRYALUUkbq1ZwLbW2hIGQTDceF2Dsd/TzbY6wwKywkslN9g240H/8AbkPEG4hgdf8AB3DjiXbOkKC6JS7gFgXO+nADTfZmjnfFcix9NKzV0UXLMqPvOknqkUcqTKYAJDDhb9vO0fNcr75uUtWelhGlS2Oe7Q1NQmUvweBLlOZJbQ8uR3fha8XYkmS2R5hjFSqoqiVHMB/kUXsWN9w78o6eONISrd/X18pbfzo/wsaBKwk5Wu9iQxsRbZ3LX/2BaCdMcZONa1Wmj979dfupXX1fQUtMuoWWGZnGhBuQGdnALM44uBuMs32qy7E1ajXp6f0m9dnfo9EzoMJwtc6YpSJRZRS6hqRroRYuVe9yXjLknznPoXJ9qVt+P0Vc09NTrqLAZxKCElIAbU/9XsS/+ItwjHOaIfM8HS0OBzFJCMurBmJDEs7ercdOUY5y7df65+Xkk5Wuc4vBsyKBUkBCUgqV4SSSAPlHzAu3jANrg2N3FDdrn8e38+jg5XojrcFwybPSkhBAUzKIPy7Cxb2YC7c6Eqmvb9eedfcqbOupMJXaYBcF9GAcPYbnfT0jSvsppc/Xm2lkNWbtDhKkq8SiXIa2wI/UGKg2NCXQJCQFSwygm1x6MD6afvZFur9Ob/jXvtqRbLaJCAPluXcnViX146X5QpfkKyUBoQh4bpNrcB3/AGifzWv9fu9vy30Wqr8xURmokod5qA2oeId1O1zn/B9rZVn4vRSHBmhRHD2/LaBzctGNRMms7U06XShZHIa++u31iuWSMdyaiYtV2mkrBBUZYVZgQNXH5ged2sxzSz93+nOcVb2KHqZlV25oqJRWuajO+6U6cLXsSrfQ8bicPmS1S5y64ySx2rMeq+JiZswjvGCbAFQ+zc46WBOL9hTioqjOr/iFOQAJc9N20A+7Q82Lv1W4oqD3MOb21rp5bvrkbF3u7XjL/iLyuf8AS64PwVh2grVrB/ETA7Ae/nEn01+ECyQ9Dq8Bx2qqk5J81RlpT4QXbM1otlSiyUFcrOT7RYRjOMYqJdI/chRuXSE31PlGFqKb0tnQxz7VqdLhnZuTRBKCgzZiWSSdX38uPvEYYKYp5XIvzKNEpPhkgb2AL9a/q8WOHbqiCdlUiWAXAZ2+j/kPNyz6xTdPQerIZhDjKLM4PXreDvkth9qe6B/H1sod5T1M1BGmxBI5+nr6xOPU5ILRkZYYyeqNvDu1faWnzKTiSykAg94R6b+XuI2x+KdRHZmWfRYnpRIvtp2qSVKXiKwAWJA0v0Is/wDlepewl8Pw+EBK+IPaynJ/94JrgPmTxewPWsOPxnOiL+HYmaFL8UMcSFd/IQoagsXF+Hp9ovXx3LHYqfwuDLUv4uVTOqTTqGjBYseni1fH8jVPQrfwqKZwvbntlMxlSqioqAABmShKtB6eUZM/V5Op0W3P5X5GrF0ixLuo8c7Wdq1YhUyMGpZjTJ5GZCSBxd/bT8nbV0+DsTnLYn2Nq1vy3z281eimZT4dRinp1ZSEpzKLAeenTwrbZH/Z20cviONCXnM8CeTdpZAB8v3/ADjbjx3o0VucFJSvl+dH49vP48zNxOk77vpZmAAqIQZlrFjZr3b1jZHDNRUlzn8eqF8yMnV+H5W3al67K39ybd00uk7PVyJ09ctC0zO9SDmHJj6fLp5cow5k4x/Ivhaf2r9/x1W+6u60abfmmbuAL7jtZhypaf8AyT0KLWcE6Wtbk978hig+5W35NHUa4nZ90USs1HKUwDy06jkI9hgd40eNyqpMmUGfbgDq0XFY0RaT3GMANW9zCYwW5QwHADXD3gARDHygAbTZoW4CtDATPtAAH+RPrCGEwbSGIZXi1uIAIgHeF5AAcAWfnEhDZzoLeXm8MQMACMADOYAAItCAG94L1oYJytfcW/nr7wxALDpPHy669YAIsrwqQ7GAYkvrDEO31gA/A0FiCNo9gc01qSYZskKJ3bq5iLAtTi8xVruXObMTfUnfzERWwMrTVXI0Ybj6+ha7FvswKywxURfocfXXip9LsD6C/pY7ETcaql42EFaJRUEAAnxaWc3FuGjDaPM/+Q9T2Q+Uuc5udb4bj1+Yz6zR2dxDN3XcKdiwykDgNumjwfe5bHd2q+c57HXfDvEquQSKQAakgMp78uJfq+vDDJJ7FUsij5PNcY+EvaFVYVooJpSNWDOA/EdM3ONyySxqpISnGS9V9/Nfx0JKb4YYvSsDQzcw1ISS5Ztet+MVzzO6okp3/tJ81/XU6rBexRp5YM+ROCknRSCwu7MYxZcsm9CakkjoabDRTkHu1E8SnW8Y5SdE7tm9h9EmYkBYZwOD/lx/eI6xi3znNQdG3IoJMuW4Ykjw8D7vz9ALHxA48kpXouc/7Xaw7mamGYXJMzMlKcqTb3Op8iz6t6xBLuS7uf8AGttNfuscm1bOzwyjQlSQLAM59dG04CLO1LWv7/f39vvK93qdBTlMtlkB7HwmxHDyv+0Lu115781/UbLKawJSEOXAGh31fp/1i1pZHtBXiKES3LJSBpsxJDcDZj78osdp155+Hp4+oUJWMS0llrlguxDu1x++/wBoj3a2uc+gdqIJvaKmFkzAFb+H/rfXq4iN+G/6CkU6rtdKkAssG9iGD6xGU0lY+0wsT7f0qUuZoGUEjMrdz+ew4NyiDnpaVk1jb2OarviHTI0nZ1HQ6/eEnN76E1gkznq34jzMoBmAO1iocOveLo4JS0ZJYkYlT29qZgIlzlE8hcnlaJ/4d6tFtx595lze0eIVLtMWrdyWfbX0+0WrpIoPm9ui5zllNU+sqATPmuFF8odPXXlFsMMYbEZZLGRSlVy53dzrx+vnFqfbsVyle5Zl0ZWf9n4/b7QX6FdlyXRAXNju14VUgbcnqaeHYTMqlCXLClZthf6RBzp6c5zySULR22B9np0qW81BQhZDPxihxtUaY6O2bCMKlyh8gYB7jVn5cOrRFYifeRzjkACpWUJDF9ho32ix4WQ+arMbEKggK8J03uIpyYvUsjk9DFn1gQFuoFTOGN3PpGHJHtNEHZROIqUsEqJSoOLOBuGsxIseNuZih2i5Ityq1J8OV2sADc68ddtW38onFtog6s0qdZWoETMqTZ3tp58h+1otgpNlcmluXMneKErMApIt5dDqxi3tbI2iGoo5fcq5XPkOrxFwVaElIxpxMsKliecqhuBy69+F6vJI86xufXYTjkwVFRMNMslaVFil7lrcvrpGzHjjlx6L7S/T1LVL8DD7U9s6bB6UUtCpVVOnkt/iCdVX035u8b+k6Sbf2tFz+PP5MUo233PT15/xGB2DoZuJYrUYzOloOdQCVEZgEvoNmsm+rggtG7qZ9keyPgpyr7Kjrzd+278tVVG92rp6pcoU9KVXF1JHy+ENseMVdNK5vu5z8tjLlVRdc9v0PDMfr8Qwycr/AMiApeVaeB8Thy92I14buW9N0mGGVa7/APP7/Hxoc/q87S0bcbrd7XLTalaS/BUnqllYTXVlXWJTPqlEKUPC4Ggzcf8AoBozE6E32dRihCH2Vzb97+5eDF0s25d0nf1r6+q9K2ejfmr927LYYihw3OJUt1JPhCCfEeO54Pw4aR5Lqpty1O5jq+1b6Lx40W3PrubfY2lNb2uw6VKXMUpVWnZxlBfM9j9IpinKkzR1LUcTPuulGSllId8qAH9I9XgVQR4/I7kyZyzA21i0rGgAQ0vCGJxufOEAneGIFXzFwYSGNytAAn4m28ADFJIcaQwBvmZoQxE84AFDERfx19IXkAXtZ+MSECoMYYhtIAGJA3gATQACSH5QhjKuXtAAnfhDECtikgh34QARFaWKQnjAABbKRzH5wAC8JOx0fgZHsTmGnQLUUAXZtyT5cuP04GIsC3CAqTR4iCWSXtwcsT7Oei7AgUXQsq1IKiNNXex529P/AIwwP0L/AKVuzFPhXYqkmClV3sxCSpRRlct76NHzj431PzuolGB6To8ThiXcfRdHh0lSkmZKGYG78X/mOPhX2klrz3f0/B+WaZbNnWSKKk/DuuSjS9o9NihCMLOTknJyK8xOCZyhYluf+o93hyjBjTmhjh+CTQxTLTEHgxvx+Q/mTBHZ7BpgDFBDsNIj/jY3oyXz5oR7J4UTZKbcxwiL6HE2SWfJ6c4uUMOyeHaoy8iGMVvoca8En1E06Yv/AEnRXYp5Wiufw6L0SHHqvUnkYCinI7pVk6ft1vGWXw3W+c/q9C5dSvQvSZK5BDByGc8dIjL4YmqT5qP/ACV6BLXVkZEWSwDbfbn00V//ABNap/pznuP/ACYlKon4kkkhTkF7uOHtpFL+GSS05zm7RNZovyYtZV42AVoQFFr31P31vGafw7JF2v0/v9iUckX5POu0nxOxDBp6qaqSpLEhBIcq5ecZ/wDBk2ascYSVtnLVPxfrFqyhUy4Zwdftx+sWw6Bw885/JcowrTnNPJl1XxJxOrJ7pSim4+blbR9v13aLP8T/AO75zm5NJf8Arzlfg/oUz2jxmsXm73KFbX3dhsNhvoX4s108I89CUqS/v/vkkE2qnpHeT163ILgW5++/qIk4Rhtzn8lPffjnP2J5FMtZHiUbNy663huiDk+c59S/Io0DZ347cuvziDYu7QuSaJNjyfg/rEbIORYRSHMBcMGcbdPBVkbZak0KlN4SSfvBQGtS9na2qYyUK4+IHSIOdMmsdm5RdiqskLmy1Mz24QOdqiax07OtwjAKTDkJmmUnvEggK52draxBE1S2NNIBIQAEh2TFijexJ+pOmgmTEPlzJ1fjyEaIY4pW9zNOd6c5yzNxKmUlOWYgJBFtdtfziycEvoVxle5yGLTEyc2oBLAk7xzs2mhrx66nFY5XISkIlKaYSwvZz9f4jm5Hbr7zo4IXqPQSquchKZqFgOFFwxcX+7H39aFC9ufTn3bFsskVenOc9NVIRIAlLWSpnV9b22jTDF6mSWQt0lUVjIyRwDxqhC9TPPJQS8Tlyic2ZSpmgf6/SJSj2kYz7iZFWtdOkkAINwCPPSIdqrQs7vDKYCTP7xSfme3pGeUNS5SKWN4LTY/h66KaEyzqClnSr9H+3ODFJ4p9y5zngsUqPnzHOyuO4FjNRT1CFVEqYtK0TncuDYs7kgEjUAOC4Zx6PB1WPNBNaP0NE5RyR9Ofh+vprZ1fZerp0Uop5IyBEtOTKQSkMG3LltC589IozRlTfrz2+/8ATUxyl3Tae65+nNzSxTFZUmkm9wxWlL94ojNuC520bdmhdHhk8mnOfd5M3UZPlxvxz+j5d+IHa5eL4wuip6pNZ4lAKQGlBRIDCzKPM6huBj3vRdGsEe5nluo6n5j7UbPw9w4VNdIlzVFcx8yyC4BGh5EnMBbQ7PfH8QnpS05/zm2rpbS15zXm/wBE0OGrTRy5E0JWpSQSlrctfL8+LeM6vL2tnf6VKrOw+GODqru2mHU6UkiTNzqAuUs9yfub6xX0X28qS5XPRE+vnWI+t5YOVLnQcI9niVRo8nN27Di0iIwgEITQAHWAYQaABlDfYwANxgARD23gAcfKBwgAAl1G0IY2uzwxDePlAA+UKIcXhUBX/wCtzEhCXt5fnAAMMQPrCoYQ0hiI2s7wmMaAAhAgBWHBHGGIrqLrcgtvCuhjzA4zAWhagA4y5Qn1gi9Ae5+U3aL+jiqkKK8GxeehgVKROQFB9QAQ3LjFXTf+Y4sn/wCxL7tP1N+b4BKOsHz7jhsQ/py+IGCpUqnRLqkhz4QpL2fmNm43527GL/yHo8u7owT+E9RG61o5HFOyHa3B0qVXdnaxAS5JCcyQHYFxb8vo/Tx9Z0+b/SaMU+ny4/8AaLOanLUiZkWlYKHd0EF9dGDXB9RswI1LUpNHsTg03tL2owvA6cKK6qpQCEgFhvb0vrbyirqMnycUpk8UO+aifrD8OOztD2X7MUlMgBPdSkpZm0HCPlnVZO/K2lo+bnqcaail5NiXjPe4mKKmKSLgH1/eI9Mrmr3/AODyaRs7DE5iqbB5igspVkdx5CPQNtRo5VLus+Uu3HxM7S4Diy5VHXrJWpTAktluAdeLfXSMM8jc32vQ7/QfD454fMyLS/49PYyqb+oDtQkpQqclTguy3JIICmv/AAT7kpZN3y9jdj+F9Okkmm/40fl37/hpdrs+znxl7XYyM0iiBlg+IqCnD6AE25+8Rl1E00v0M3UfC8WJOUW39Wvff9/7fb1Uv4odr5WUqo5RLN8x1uNvT32i2PUSrnOUc6XTR7mo1Xj9Vur+/TTV7NF2n+LWOAFc7DVKOoAJvqeOrRP58pc5z7yufTfkv69X/T03q7kv4y1Tq/EUU1ISQklJJ8/t9DFizy5zn41TLpa5z0ftp9C3K+MtKADMk1I4pKLjjf0MTWd7fuQfSy3a/L6/w/wNKR8X8GmIDqIvYka/rCfU+EL/ABn3V5NCR8V+zqmSutkJJS/iUBs978PzhPqUuc5XsTh0c5uq5v8Apf5mhQfETs7XTUyZdVKWtZIDKG3RhQzxloGTpcmNd0tvv568o6KaqROpJi0yUkKSSC2sXyqStIzL7O58+/FjC6SpnLOQOMxcjTlHK6ldk/w/c6PTytHk0qls6UsBvp6fU+7xkcr5znsdjsUNHzx+G+vm/Wr0KegJUO8JzAhgQ734Hg4P8NFdpajlkey5z9r00rUpaZKQkISA2jHbrfz4mK5PUrbbXP65oaMmmDJOVTWBvyv929DEHq9BN+hoyZW/0N+toRTJ0W5VM18oF9D7ftCpvYg3e5clygLJDerbwJCLdPSlZASP2t9IG1HcaVnY9meyc+qXLnzUp7uzghvTziDbm6RdGFas9ARh9LTSgJMhAIAJZLWbj6RNQRJzq/QFaFpJCklhYOPy9ftB2PyR+b7FKrnqQdS7uSLHR9vL7xDseyJxal/qBhq11SwqdmSkG7gO0OFeec5qQnb5znsb3fSglIkpcAH0/TT842w20M0nqZmN5ZtMrNqgPb6QZF555Ixfg807RVCZdIpRKfCSQG1jlZ3odDGji6RBr61KpqRllErUX+Y3DezRgePutc5zydCORY4e50pQub3fdrCUJDHZ/L6xqxYW6SMOTLqMujWlSiETSSB4zdhwjbDp0zJLMySRKkIChLpJhULrUQPHxJi1Y3Hcr7r2Gmy6hM5KpcmUhCRlGri0Rnj0scZDpWqXNBTNJI2UQ2vCMzjSNFtakhmGdnWkJBB0VYxTJF0WLKkjvmGfezgdW1irsTdFilJGf2o7NUuPYROpRLSqaUKKbOCw3G8ShL5T+YvH8k8cqkeVyMEXhS5gqx3MxROcTHDeJ3cnlY7W4R1Fk+cko6kJySdpVzlnh/xj+JM2bOndmsCqSUAqTVzUHxLNvADoBb6CPX/CPhyilmyL6fyea+IdY2/lxZ5v2fw+onqCghSlzFEIZQuH08rXdmbUh47PUZIwVvZGDp8cpul5Poz4X9h102Wqq5RAlK8aphOZZA24JAAsHsOMeS6rqfmztbfdzU72DA67V+PPwX/Wes1ndyKacgAFbMVF/L9Y8v1Uvm5NPU6fSLt1fOfieqf08YJJWus7QTykrSru0ki46aOl8JxpZLfOc9TH8UyWqR7qm7tvePVrRnn6skIylSQTqzvt00SsXawWgsKGtAIZheEwEUu5uGGghDBhgIcrmEAtuMMBeRgAD/IwhhgbwxATFZdL8YAIiSTwgAHm2kMQm+nEbv5QxDKBc20+kAAC2ogAV4ABPlCGC5YsHMADBWbXSBAOdHaGIjCHDM+wiIwXCP7ZAIJ1eHYEZS2494SBnzgwOsfH02tj6I0nuVqrD6aoTeQjMxHygdfzE4ZZwdphS2Zg4j2RwSulmXMopawWIGQBJs+nqPeN+H4l1GLaRVPpsWT/AGRxOO/BHshjAKpuHSVkhIJKBmUBfXz+nHbs9N/5J1WF1Ziy/COmyauJg9kP6duzfZntbSdoaWmRKNKosEEhOpY312+/COh1H/leXqMDxSe5k/8AgsOOfzMa+7nP1Pouqx009EZEtSgwyi9v329o4y62E3e430ko6FPsTWVeIdpO7WkZUXfiH1+kdPopd2RNGXqodkD1vtMtMrBVpdz3f5R6HLOo2cfHG3R8S/E2mmTcXDZlIT/csl8rqzaHy1+xjmQk1Jvmx7npOk7OmS83bf0r1+n/ABnJiROJCe6U5LBw13b7wzb2y9D6W+DvZGTJwannTKYJUpJPiDEkvc89vTnEsMO96nA+N5skJqHjx6fh+p6ZMwKQpDGSgjRm6tG2PT0rPPvO/TnOXtCez1Got+GAPEpF4ksVaIhLK3/xe/t78pES+yOHqLmkl2tZA0iL6eyazPX05/PPMMzsfQLSpH4ZBCgXYenpEJ9Pa0BZrdUUKrsLRrQSmnYsCClLF7b+g1it4Wtec1NEc9STSfjm3olX008V55207LJo5S50gqlJZSvEkF7ORcNo+sZc0e3XyjpfDs0ZSf2Vf4enp+P1qmkjgvhNOxOu+INNTfipipKFrWtKllmCiT63PCJR0ao7fWYMTi+5LT2/BcvRe1r7VIVIwcpUWaW3raOuqUEzwU33ZHWx4T8RiuaS3+yhrcxxernFTTZ0Omg2qR59JpzuL6CzNYjh9xurjGBy8nXfpx/Xj9y6iSCGAs7Nxf8AUvr+8Ruld6ia9S1JlscwukO7A8+B5A+nHWu7dIVWXpEskMENa7eR/eHVO3zbyK+1avnPTbc0qakzAOxL22/iC23oZ5SsvSKRmLWcHr0iai3uV2kXpNGpgyb7c4moPahN+5v4Bgn4ioQpaSpLeIjYRVNFkNT06nlSqSmlCUAAlIDni3OI9qq0aL8SEmZNWp5bkjYDnE0tPfnNvQLjJUiOsmGSkkoGYkAhw3pby4QNVdC7VLZ3zn5GamTUVf8AdmoSJWgSUkG/H6wuyW68c3Idyg9QZ9eKMpkWKluRm48/rGnH07dGeeUsUtZmBIfMGdo0vH6c5t+GjKu4y8YxhMinmJSPEUm36vpGbOuzReC2G+p5hjdemfKUkKDqU3pv5RxMkk3odLGn5KFB/YCZUpKHWRoN2sLcvyhY1bHkk9zrcHoRUqCTKCwhQdwL+X2jpYo0rME5WzpZWGS0oCFJLc9I34orwUTepVrMKQEqmBgCCSEf5CLZ41RXGTObxEzyQMxQgKdZSGW3s0Y8tbIuhZm1GJ0yp4CAJndsCBYgmzjr8oxTS2XNOcutUNk2aNLPROQVIASpN1Zjy0+sZnTLl7llSET0BMseOxcwqJWSIUZZSc7KAy69c4bj5EpUYva3stR9o6GYFsmcoEOLO8KOZ9O+5E+3v0PnDtx8DZVJRT5WFU6lVM5ZzrbxMVKJYPcnOfQco9H0X/kL718x6Jbc+hkn8Jx5YtR0d7788/iQ9gfhrKpJMpVdLQKiURYX3DA3c6cfO8Xdd8TeaTp6eAxdCunilH01fr7a+FpVrfX0PUZFJitDLBp0BUhKMy0myratsNrfaOM+oUno+eDRHEoq+fycnRYv2u7cYrVUGHUy6KgpllM6etTLJBvcfK+zXDnk+zNHB0mJNytvWvH9jwd7blkj2rx6t+v0XPJ9O/AcqwvCJtGZ2YJWHO0UfD8/dkZj6+F6nt9PNStAUk7x6iM122cJqmS3eJKViCiQwPSGQpjvd99uIhBQibFL+8MKBYvob8oWgAOWhgOC4hAOdP2gABt2LwDHYk2EAEZC7knytDEDv7QAALcmHX1hiHs7NuzAXhiBJJtYwAOw4tCGDDEMQCLwARs7gi0IY4CQXgQAqIsnYwxDlmOwhbDIVyyQCLlzBvoBGHNnaElQM+cY+PH0UZRYEjhweACpPNlANYk39T+Sbc/WLIjRUUGUR9OEWIYklIF0uev3hAJSnPzqL8fOGnQmk9zr/hlSy1YtNnZA4ASbev6x6D4RJymzhfEo1od121qEyMHmFZAGRnOwb949R1Lfyzg4I3PQ+Qu2CivGVqIA8AHsSPyjBHyfSelj246XNDB7mXmCmuG1u7efpfkIkX9q3PesB+LvZXs/hEhE+oQjKhOYIZnbRtYtw5fl+DzXxT4Zk6iacdufxfvtuaUn4+9jZoymslpUHfMWBtsTbVutNa6xeUceXwbJGmvbn6ut9K3aNmi+L/YutTmTicoafKvMNf2icurgjLL4dmg1Gej/ALa/Vfo9nptSe3nZmddFXJIJceMHhaytvsfaUepgyqXRZFXbrf3elb+tpl6R2gwOo8UuuSQGs9yXY+W/0ET+dAr/AMed0t/52/b8fqXUYjhK0WqJJOUFwt30dr79ahm8sHoH+Pkiu/0/7/f0V+l8B8Saell4HWVpmJCQgqcapG5H1jn9VFPY6vwbG55U78rb3PJfgRhSVdt1ViA5RLKlF7sT5ceYsPWKcb+2j1PxKCjgbPrvEk5cPUnRkfkI6kv9Oe586X+3PY8G7dSxOqBKOmZRL+wjjdXD7Pfzmx0+nlUqOWRQpUuz2Z7ff78njnralzY3PK+feWpdEVBihyeJbXX7w2nPl8/oi8pdkYZULSFd2ohTkXHDi/GBY23XOc9iLzKOqNWlwaeSQmUo62b9PX9Imumm1b3KXmVmrSYBWaIkkNxF+rRpx9GyqWc1aXs1ULPiRlL7jWLF0c27I/Pia9P2ZmpYKKLbxfDpaWpVLPZ0uC4R+FSpGYEgaNZrcI53UY+2Rtwys1U0dRPSAldgLEq68/WK4YXkVLcsllUdWTJw+roU96ZZOe2rtr+0TeCWNdwlmjL7KPOPi/8AEin+G3ZWu7T16ypFKjMJaUuVqsEpA1NzF3Q9E+sydhV1PUfJVnxT2z/rE+PWEVQqv+BTh0ipyrk066cnIhQ8Oa7OrYa+9vY9P8G6bt7e7Y4eXrcjd0el/Bf+qer+KtOME7QmTQ4xTA95lQUDZyxJbX6Rn6z4bHplcduc5rZh6l5XT3PqDDqwysMlVBU5WjM/LaPN5MvY3HydSEbSZzePVa68qEsFhd316vHK6jM3aNmLHqmcfW0gmzXU7MCwFn4/T6RzGtbN0ZNKkHhGFLnVbmYourM5uU2vbeNGJU0+fXn7FOSXcq5znk9WwaVLp5KEFIAZx+sdjpcSkrZz8s6YddklgqC2Cy1o1TXboVJ92oMwtJSESs1iCTpFeTIicIHMYvQIqlTMijnJGhsR6Rycs5W6Ztx44tKzlqvD6qgX4p0hBdwBK+7xjb/+xorwieinTUpXNmqQVKLJIR4YIu9hPTc15M+SacHvEFQb5DyiTqgRYoZyZ0xLjRJzFQYnlFsCt7miZVNMSpRHiNm/P8vWKcsPQuhIzsQ7LUdcspmIWVEEEgOSNIyLE1r+xfHLaPPse7NzcFnhaFGZKLkK3T+pF94mslaMvi+/RmaMRmSJUwqlpypTmCSwDN6eY6MSi25aPcHhRiyO28yVWHDpdLKlylJJWUggsVAZtLiymcWbmH6Uumcsdt680/n/AKDwpRte3P6/g9f+EeOibKmKT4ZZWUk8SNxyjNjm+my9r3MfUYe5NHuuC161pCFKcCPU9Ln+bFM87nxqOxvJLi8dKJkH+giYx+MIBQwG3heNQBV8sMVAekAhEPaEAwDbwwHtAA4hiIln+43KAB+7BLP04gQMjEskO40fTyhiBIax8meABuHtAAytoAGhiEbwAMU+F3hMYAuYBArDKB1hgCtd2/2LDrrWEA5Dhzq4gWgyAm0MR8PUXxapWSJtQkBylykksGu2jfkeRjwk/gW9c5zfT3kOsxSTt+L/ACv8vP8AaN6j+IOH1qUgLBUUkkPfbYXFw3JjvGDJ8IyQbrYtWeDdJmjK7Q4fPQSmckDQkhm8L+ln9m2aMsujyweqLFOLLBrKab4kzk2LOSxPvFXy5LwSTQ3eo1Cg2rkta/6GDtY7HSvPoGA1f7QmqA9D+FNOtU2bOWkMVsRrHo/gq+1Z5/4q90bHxKn5MKnygWJlqH009o9F1LaSo5XQusya9UfKmKyJmK9pV0stQT3igEkjQNm9TcxiW1n0WCWLHr4Wp2lB8MaOemWZybKA/wAy6udi30HpGeXUVtqc3N8Whik4JNtGir4S4LUhp6JShrqbF3OjDc67AeiedqLaRS/ibzaRX6P+f4t0/V16v4JYEuS8tORRBZiRsz6nf7eYNK69ptNc+9Lxt6/jVseq0uaXPw8bedvc5PGfhZh+EoUtcyYwKmJU+ZhsLb/bnbRj6pZI2Th1eGWjjr+Ji0nYGpmoVMpK2bLUzEJUwIy6+Tn2L8osfUQivtNL60aFDHL7Ttff6bP057IMdmO0NIoJpcfqQQCsIE5SCWUCWGnDWwJHByv8jE1docceJLR8qv00+ht4Zh3xHwxaZ8vHFzUkhJlrBNndy7HU7XbyaM8vieCLcVIyzwYHPuav7vp/H46+WzVxqZ25xfDvwdR3CkZTmDkrU99ww0ZnLPtEf/lcMnUnzn9Eunx4MEu9J3+nt+n3q9zpfgRgFdQ9oKn8bJGQAJcLcatYbO30Ds0bekzw6iVwZm+L9VF4Pss+jceINH3bkZkBIIEdu7SR4StWzzvEeyiMRWlc1JOR2dTa+sUPC5alscnboFJ7AyjYypYJdwpLNq9z5H2PCF/h29RvqGaVL2GkHKD3aSPlBLNyb0PsYtj0UbshLqHRoyux9KksRKBF7hyL8LtvvtFn+JHcr/yHRdk9mqaToU66BLbQ/wDFQv8AIZdp8Jky0HwOAbttqf1iawJbsi8rexfRhsoZQpA8Rvfn108Hy0HcyZNPJQj5QgsBc6P19+EGRVBoIf7Ck0hnTBLSHK1Btr7dCOFmxfOyUdWE+yFs7TC8Fp6OQlK0hS9SSA8dXp+jjiglI5ubqJTloLFaenNP3apY8VgIXU44JUGCUu60fMHxop+zVfjOKTMSQusPZPC52OIpiypcycl0ys97gKu3/WNnR9OscdN9hZ80pvXY+DO13xK7a4j2SOGdoiqdQrq51dMkqkJGarm6z3Z3CAQxIAZ2jsY8aeSkZZOo2Xvhv2vxD4h9p+yXZ/AuzuGYTKwCQmROq6CnEqorQVOVz1h+8PtYq4kxV18V0+Fylq2T6b/8k6Wx+glF+In0smmlJOWWgJHIAR826jN35Gz1OHHUUWk4GJMqYuarKQ9yLdaxV2E1JbGUvA0VE7PKTb/ZrGCOO9hSkluSfgpNJN1uNSYmseor9Ddl1yUS0hSwSzcGjrdPKlRgyKzPxfE6VKQqbVJlIleIklgn1jS4fMKe7t0PNsa/qY+HWD4icKndpqJakHItQmjIkuQzizvtzic/hvUZIfZT/AI9Tji9WbmE9vezfaSXLq8NxWRNMw+HIsKHlYxyuo+F5cerNuPrYvQu1FRSYkFywgps3jDg/m0cnJFp0zdCaatGMilqqecp5ichPykavuOEVpVoNuzSp0KSUoUlMtAN24RIRpUqJmUhC5Vza5dmuftF8dCqrNOUtNKnvFrSsgv5NBsqJqty9JnSlyns2xsxt/MKUG9WOM60MrG8OkVkuYAHzjXXpuMYsuFp2aYZEeXY5g1RRKmS5KE2BUnKwKi1gLdPEIzjas0wbd2eMYl2imSMRnS14auSUKP9srKMqi7lhptpwN/EY9NjxJwVOzXBaXvzm/7I9t+FeKSfwcsUoyoWkKCdg44bE/nHner7sfUNyMuWLa90fQnZCt71GeZUg5GSABr6x3fhuaqTRwOtx2nR39OoGWGuCBePTRfejitU6JecTAbNAFitDoVoQJL2ZjCGnY/rAAz84AI1u5s8AgRe5DQCHhAPZrmJCE4bWACOdoGu0AEbNtAAlachaAANjDEMSTrAA0MQznMzW4wAMrXSExjEsWgQAqbkX2hiBKkpNzccd4AIyWOmvXXrAAJSgBwoQAfkkqqq5QGWfPScinSVFJdmNtNQou3mX00rFCeyXNefpRe8ko7gjtLiFKp+/Pi2yEvx0ve9uBLM1ovo8U/BOPV5cX+sq/o3uzvaPtBWrVMpELyyyBmluzOl2uQbBJ8ksdbYeq6Pp8aqW/P+G3B1/UTvXTn839d9TdPxHxbCpv4GqzhawPCgFIKidBkKSSTa49nMYf8A4nHmj8yNaev9m+HxjJCfbON3sl+CWt/hW/3HRYR8Rq+ZLCpbzsqSc2ZwpSfCGe4uADe+oub83P8ACoRdSVf3rz8DqY+vw9Q/s6fht59dv0121XYyO2E+WXqJShLSpnCHcBmINwoFww1JPEFuVP4dB/6vXnGXxm2rTXOfQ97+DdYK3B01iEt3uZQIuHc6co6vwzpXjbPO/EsqlbTJfilVKRSKSGdQ+hYH7x0uqqkjL8Oj3ZlZ85YXImVHa5U3KVCSXdikDwsNeXMOz8owS0jofQc8u3E2eyYQibLSgT0gKSgJsNAI571TfP2/Y8bll3Tb9yziU1ciQoygM1yPTaM2abUdCeBVKzEoZ2PYkVJznugWLBgLmz+V/WOdOSs6jUVFUuc4y1inZxdXQ91MSTmPiUVXKbvps5PleI/OnGu1hjqN2YCadFCTRTJQvr4QAXte9/0IHm5Z8mSm29H6/wBeyr3V/Taslrckm4GTL/FjM4BUnKryLnYl21L2PEkyeSoXft+y31Sq/HovKSi8kXot+L68/DZpUd5KlywlIzABiWHq8cqW4N1qaRw+XMly0KSSlQSXya5i25szosWHMOCov0KfmavnPPNui7A4UKatWoJFwGBBB47x6v4FBx+0zifFcne9DvsaYygkasCY9bDdHAe4GHSkCSlQbMWPPp3HpxjTGCbtlM5PYtCWgNq43JL7b+gi2iuw4YhkpAASGSALCACZKQm+hbXcH9unhDJgpRILb2cu367fRtmiSJUFKk5gksRd06jnbmYQx5qEqlAK4uWEU5v9SzHua3Z3DJxnpqpzZUmwaMuDFc7Zdmy/Z7UdTHRMJzPaCuy1IKVjKgMz6s5Mcrqs8e+mdHpsT7LPl74uKxKgxzEsWpaUVNNidMqjmS8oHepUR4SrUcX97a7+m6rH21LnNSnJhleh8co7E9s8Rq5vZiT2ZRUHK1PMNQFJXLAsonUK19Y6c+rw41blznKKI4Zzex9Hf02f0up+GOGz+0GPMcTxFKXlpJyU6NgH3dRHRjzfxn40+pSjA6nQ9B2O5H0HSSU0rIkqdQ+a5EeV/wBpWdr/AFjRLWypk4JlBBZRLnjGiK01KJPUM0kuhleA2Kcxf6w7paC7bepx2MYuimqQlSm39IolN9xPtSRw3a74q0fZmmXUVU6VLSlycyg5AG0dboIT6qSgtmYeorEnJngOIfE/t1/UL2ol/Dr4dTjhtFPJFbX2ITLZnB9Ta2u8eww9DDpod+ZW/C/njs40+oc5duN89g/id/Th/St2Tl1PZrHPibj+C9qaDD/xUypEhNVTVE4pcIUkHMklQaz2L7GN+Lq88tUrRlliij5TwzHO1fYKoFZ2X7STJQmy8ylUyzZOY2Wk2Bs+9jrHQnix9TGskSmM5YncWfZnwR/qB/8AzHwKXJxOYZHaCil5ZqUnwThoFh/LSPAfH/hP+NLvh/q/J6P4Z1fzdJbnveGVBxGTJqVywoKAJHnHlKadM7D0s2pNKuZ/cRLdB/xe5DxdGJS23qi1Tyyg922XL4g+1uPvE2qFFjKXOQCCoEA6hO3OKW63LUSSj/bL5gVXIe0TTtESRawqSULAAy7iKcuuhdj0RgY1RorJZyoOYsxA059cY589zXB0eF/EHspLNV+OVJmibLISsS9VoDaA6qbMxFto7fw7qn2/LNUZbX93tznk6v4ZJVQyJMmcl1ICUuB4SUpA194x/EGp5LKJtvVbWfQPY+eV5JSbAqvt1+8afhbbmn9Tl9dXaz1mhvISSGLCPZ4v9Uedl/syxFggGs8MgPDENc7QmNOh06GESQi5MMTYIJKmOkIECrUmABecIBQwGBSTAAjAAD57GzQACpKdHhiYCkAOQTpDEBDEKABGAAD+0JjBY8IAGKQFC9+EFgMUh9LHlAACwGJIu3DTWGIiJPE3hJ2Nn5qfEb4Zf8QiZXYMpbzFKzpNwL6G/EC++/GMnQ/EYySjkN+bA3bieSU9PUz6+RR1SVIVNUJa8wDpDnVtwW4NbTMRHelOMYOcfBz4xbkoyPrr4afBmjTIpJsyQmUJiMyipPiWT9Rb8o8ply5c07b5ziO7g6d5E441odp8Rv6fOy+KYDU1MmhQqslpUqXNSPECxs+tzGrHJ4F9l0LL0OTVvU8p+HnwP7VZDPqqIyQk5E5/mYOAS/ID2GmkV9RJ59YleNyX2Vb/AK/hco9gofgRJq6QJxDOcyfFex4s7ghmjHHpHd2dCM8rad1t6fv7pHpHYjsfK7IYYnD6VJCEaPdzHQxY/lo5HVrXfi0/Z/kcZ8WMQStPcJmsogi3IfRoxdTLW2avhrWPNGUtluePfD+oT/z9VMm0+YKmJJcZSxNiRbkdHL3jLLWH3HsusyOPTd0a/X+v2PWxWpKQyBccYwVWx5N0yKdUieDLKdiTz2jn9ZkcVobemgpPU0aEiXSJI/1LkD9PaOapNq2bmqdIFFWZylSZjgqcG7gm+u8W43qr9ee34oVqO6MjHzh+Hy/xM4JZ3B1sPyvGqGHupL6c59ChZJJ3Ew5naagqlIo6WaFZ/CA7726/aK83TThByexowp91vnObGxRqQsSicmUEAhROUebXb6xyZKmaZbG8KuVTSu8W+axDrKi7ufE+ty508RsH8dkYVLUwzj3/AGVznHpcd/sXXCdOXOShQQCyQ1mFhHsvgtJUcP4gmtjqcVmqnFKm2tblHpIVZyi/TP3CHLlrl3eNWP8A11M0/wDYliZEUACAd7E22gAmdLZSRoAb8Lnr76whh5ZhKndROvmyhw3bX3eFY6HUFA94SbG430B48Pt6whkstJm5JKbF8p57Rl6jV0i/FpudthlMqlpES13UBFuGNRspyS7paFolg8WvQrPLu2k7/wB8JZfwu7m3GPK9VfzTv9MrxpI5Wp7PpxaWqVVIKkKDBA1AL3f0N4jHLKKtE3jvVj4P2G7O9mFGqpMLp01CmCphl+Kx0fWKJ5JtdqLYRjdsvTROqprIslxc33vvzjI4OWr56GqMoxLNJh6JS801yXJBZonGL25z9tBSmqLMyZJkEZZJUC2g060i3tX3lSla0M2vWieci02Oga2kVyWg4vU8s+IeH1ipOfDpqZc438bANy62ihyjGdy2LoJeT5H+PeH9qJcinyZ5shasgWTZL824PxHGPbfAPlayaOH8WlKTqPOf9Nz+j3GcO7J0WMorGkYwV91kKkhZQWyMeBKjcPcjeO/1TWSd+GcfGnFV5PEfjPW9o+0/brHe0a5XeBM4yUJBS6UFFnAtcesaumnCMFF7sryRk3a2PP8AA1YgtQws0K5s6ZNyoSlLzFr0yt7j13Dg6ciX+1lUfQ+j/gL8AMZm9qaPEBWTkIpQJtWTKKQlanPdEOxZw55mPP8AxfrFkwOFb8s6XQ43jyKfofaGE9k5+GSe5kACWmyWPh9Lx8+lhfdfqejWVyWptSsOrnGZyxcFOrROKdkG9N+c56WU0KpSVZs1w2VXnrE+1Nai7mnoVlUS1pyhYBOhGo6aKJYXLwWqaZGunqJCWUhmZzEVgnDcFkT8gqTLJPeDxNqeHrBkwutSUMqKNWgIQrOkFJszO+v6RzsuJ22+fyasWTwcf2pwSTWT5czKlg1iAbtvx1iqGSWJvtNkJKqYWEYXLoEhYCSybKAt/DaecRnNu2+c5oKT7mkuc5qen9jMgq0pU+UsSPXeO18K1av3OV12zPZaNhJSAGYC0ezx/wCqPOt6smUXJIDRYRBtpDIDCExpDkXtBY2hOxuReECGLPY/WC6BoZiTDBDEXMIYmbY/bbroQAJlagH2gEAReABztxgAiyq2BtDEAQQTYiGIRPhLm5eAAN4YhyQdtoQyJT5nAgsB/KABOOP0hACdRDAR0LawARTCGZx5QWBGmxcbPvAgZ8S9o5KalCEzUgpGbMMvH00DEluXKOB0VKV8/X3Vfj4Z1srfa0uflz7zA7N/C7De0fa6kmzadUtFMQpSEpu4PAnR/Nr6R13NxhUXpz9fq7syp9zprXnPFUfTGG4FUhUmmpgEyUpA0sANg/IRh7W2eq6dfKh2x0R2qZSDJFPMAWMoCgbvGhLShSXduUsTrqbAqEzkSU6gBIGt4jOaxqyWLF3Oomfh3bCRXKCPwygVkBBBsRa/1EVRzqXg0S6ZpXZ1Cqmnk0qps0JTlBFhwA58eXrsNNnn/iMXCPcnv/ft6e/1Vu38x/GLtKr/AJZUmjqkkFx8xcG7uPo8ZsuOMo2YcDadUYXYqbJl1S50wp8QQTfzLj+W945Obui9Dty6mWTEk3quc/X09ATidKmWVGYGA839vWM2xjSvYnw6plVpVNlr8I8LkdcI53UY3Lc24Zdjo2aXKpJSMzIOY8yNDfkPKwZo5/yqdI2/MsgrZE1BCpBIYPYcPtF0U1qyqTvY5rtNJrauhmS1zCEJBsNN7xqwTqaZBUtzzns1VzZWNzhVSlIloWkS1FRYgtzvcgeagNhHQ62Hdg+zvzn3HRpVFx19ec9fU9Mw/GKOomJShfduxSp3trbyf6R5qeCcNWO7Wh2OGYQjGlFP4hLJ8IGUsRs19b7vpfcDd0PTy6zIsaMeRSTpHYUNBIwZKKeQjgAEjZ/qTcbR7Tp+mh0se2JlyYoyj2vW+c9NDq52GU1Rh2clilIU9i1gfzjZCdPU87nwvFKlzWislYSEpBFmcbn3MbYTT0MMovcmi0rFAASS5APAgMkGAA8yQ6iq9za/HifLrVDEqfwDDn11fiYVVuFksuYlScrBjbz189m9oT01JJ2aeB06lVyZhYy0gEgjYecUuu5tlmvbR2KFoWHQoEC1jFy9ihlefNWtDJQQ5bjx+oZ4hPWJKKpnK492dmVIOhJLpzFjppHG6rpnOVnT6fqEl2mX+Cp8Dp81UpK5imYG4DcIy/4/a9DR82zMVPTUrKgcznMeHWkUywPzzn7E1krUjNbRoWUrmZTp5njE3gUVfP1GsrvYKXUpntlHhO8VLE4u1znN0S+Z5Yp5CCGIVcHSw5+35QSi6rxz8r1JRyLbnLMzEkIWgd2ply7gkttfrlGRpouTTOH7TSJs+YAUKXnOUMLPxeMmVF8Wcl2l+GGD9vMEXhmOSSHmZ0ZFFN25ai+8dn4R1Mumkmzndbj+ZdHkFR/S5i/ZnFVYr2Ox6YpKUlHc1CQRNT/qo3sw+jDWPVw+JQyrtmvwOPLp3HVGTjfwDxDtBj07GcUwfEUTTKUO4p6pKUTFAf45gS3J312LxfDq1GPbFqr5z9yt4m3bOl+Hn9IeG4diFNjc/u6EIW5R3ypk1IPBRsD1zirP8VUl2ydksfSNao+mOzmA4H2aw2Tg2DUiJUuUlnZ1KJ1KjuTrHB6rrPmytnQw4OxHQSKRS0pypSobARHHBMlOXabKKB6dlSipPBhGlYYVsUPLK9yhPwpKy+QJHI7xXkwRaJRzSvUpqoJUtbKWlxy0EVfJouWZ1uMcOVOQwUkp3Gph/KXkh8xlaZQU0sKUmQkqa1t4qy4VRZDJbMCtkICilSSpWrZbDWOR1OJI34Mj2MfEKJE1JCkgEXuOr844+SDg7OjCXcjPkUYy/wCJy21uNALXtf7xnq/svnP1Lr/9jq+yFVM/5AOq5INuZjtfC5ds0jm9arjZ7lQTHkJJN2j22J3BHm5aSaLJUACYtI2gdbwyA4Bd9oTJIc8X5wiRGQTcXBgEMftCEElQAAIaGOxiop1FoBCdSrgeUAwgoM3JoAIwAVEg6QCEWFyWYQAC44mAAVJzO25h2KiNSVAG0OxUCQRqCIAGhiGOkIYJ0goAQ7sRAAvaABlfKWvaACApXdRBd4WgDAKJZLuNYYHwPjfaqi/5CbTTJoIkkpCQtLH/AO3mAd443SwlGKkvr59H7/dzXq5Etn5/r25+nR/DfF1VWPyptAEELLrYNkAOzW3bpo25F9nR3Xvft+aV/wA2Z4Rbl21v93NdD6Yw/EaOTKAnTkpWpiokjhFUZpbnqcWJuH2QMZqFSpJqqaZdJCrnog2iM35RJtxjqYq8SRjElKZ5fKQSkqF7cS+58tfTMs0cui5zm6NOB6Wv05yhU9HT0U/MEpYEqcjKbEHR9WOn52hxcFsyyWTujoXO0VdU1GErlUKypak5WBvpvfjGn5h5v4hU3X4Hzx2i7FdscXxhBRhU5YCWVMKSAbsQfOFK9H4/n+fqc+DirXnnNjY7P/CrtTLmZ6ynICUsSot1eMM43Ftc5xGlZG9Eb0ns9LlNIWoAp8KhzEcuc6l9pl8YtrRGsmhkUkgSqdbbW+nXlGfNKL0LsaluPJqU4bTrXNBURoP0jIoeTT3VoR0OPiunBHc5QXb87daRP5bgJyss4pJl1oNIhL95YjciFD7Uu2OjCb7V3MGT8MMMWlK1SkZ1JOc7vd7xvn02Wa0ZTDrex6kdR8OpVL/elVBQp3IzBTlvJ+XpGd9JJvsTs0Pr0la5+Zs9hMMqKStMpNSSAoEkh3jq9B0j6WTkY5fELn3S2PUqaTSSUIXUAKzLAYOzWNyBwYWJLK4hj29b0NM55JtqHOb+Fp6Mr4pjM2XTGXLZCihg7l/CATw1zH/7q1e6yS7UZuo6ddjrnNF9yrYx8GxKYpBCgVZiTmZ35xHDlctGcbLi7TXGKy5SSahKhuGjoQy72Y5Y/QqVmM08+TlCiiUqxUpLoUGe9tG301F4scn4EoJasnwzE6JcpKPxaVKU6nKuPEuRsdLODrqZJ9ujFJOWqNIT5ZRaakp+axfj+h9obaWpCnsZdTiaQps6QP8A5WPlb+XaM8pW9S+MKLeH1Rn5QhQUVG3iB484V+4VR2vZkLlpmTFjkSD+cR7lEUlaNGcV0kwz6dlJPzygWd9SnhpFkZ2RqwsTxvC8FwupxzFqqTSUFHLMybOmMEpSm+/r77xbH7WxBqj5j7bf1mYHWLqKbshiWHSpEqwVOUldQtv9UOwu19A7FovjgUv9v0DWJ5R/+ofGsYmLnTO16lhCM0twgCaSQAAnUEEuzGz8HiH+NFpvt5+JPvae5NI/qL7S4SAvEe4myFlKQoTEhSiwLEAlnzejHgWrXRQaempP50l5O47D/F/s721qU9ziyJU8qZVNMUygdtW1t0Yz5+h1dfdzn4k4dRWrPXaKYoSxMkU5moLBJ2UDuGjnz6eULRqjmUjYqe7RTyxMYLXZgl784zyxqW5apNGNWUycy0LUlRUPlbQneMWaKuqNMJWrMarogpKZaioMGFut94xuGtF6noV6PC5iEkIRcfWLcUXErm1LYqVVGunmBKAoKJOZL6xpjKtChxsrrlJvMqVs2iVJFvziMs/YyUcXcTyJs5aBLkKRLQkNbcNvFMsrkWRx0amGyj3fduFX0ieKEpNJkJtLY6bDpeQpJSS1mjvY8dR0OZObb1NxMxa0hlAcEjyi5QrfnOe9bkZmLz6ukkqVLlhYubFyOcRcaGmc9RTBUzQZyyF3bgYg4qySk6NUJTLSFBTvpBSQrbIpjTPCmWrNv5xnyLyi+D8MpTqWWAorLgaAamMGfGqs145NMwK+lQkLWWJcaBo4ufFqdLFktGRJpkupJTlClO2w63jnrE3oa3NI0sKT+DqkTZaQChtG14s8bOm+xJIyZbmmezYHWS6mglLCgVBIB849r00++Ko87mj2yNRJcPG1GdhPyh2Ie6kiw9YiTWw5uC3nAMZIOUA8IAAKCFFXGATGNjpAIdQeWOUAx0EZYAQJ1PnAIYnKlxqYAI1EqDE8oAEW3hANmF94YDZhwMMQCi7NDEDDEMoORygAaE0MBSg2XV4KAYnLa5hAMVMCQD1/EAESlrUkuGHlDAB22heQPzNxHs/VUVUO/IX3zhKwMxWWdvcnX/YtvEXcFS/jnjz4t2bIyWTV859PNaHrPwPo5FJic9awSVJdIUWcC1mjDlcW9d1/Ne3pxtpbOm//AGRvb+vv59x6RPnYpMx0TkVRMoK8JSfCUjW3EMR5kcRGCTfdZ7HCl2ar/vPw09ztKjEkDCVImqCUiUXUTdI2/Lp4syzcYWt+c0/PYyzq78b8/P8ADb14GVis2hlVNXLIXLVNJSoq0LEg6voAG+zF+bCUk1C2qWu/t/dNfi9irBD7XavTbnluqa/PxylZ8RMXnVxo5IUSRlOnh31LHS/pGm3R0ZYm3S5X3ful+OvqHwzxSonmWnFVhX9wAhWosLXvxieOfa6Z5r4hi+VNpcWv9HvGH4Fg9TLTUIkS1hV3aOpCHcqOFKX2iLH6Cgl4bOFNIQGACVJJbMSUnZrEaP6C0PNjhsvJp6aEpSUfX+LX4nguK4fMTiE2W2sxTFOwP5x5bq+kmslnVxZHhS7jKGHVlPM7xa08XBLnX9SfNTbRHJjbWnNv208be7LcnUxyPTTn/B5y+/T3cxLsdOPpGbs7Xrzn8EO61oT09NTU6PChKGFmDdWhTaq2SinY9DMmT8SSpBcJLaE23+8HSRubdC6mVRSO2p50xsyTtxaPQRSS1OZdlPEMSUSZKFc+WwvwHPz8owtfLyd1c1+nj63p6WS3Rk02N1eHVaZsumWUg3yoJL67e0dv5i+Xa3MnZ9o6NfbKVNSDMMyUwAOzHzjK+qcd2dXD1Mo6M15EuTUUS6o/KQwBvw/eNEZxnFa85z12Yckc0tXb5z73v552d2ywvDcQNEhGZeYAEEkAk8tP0MQ+aofZOguhhKKtHSTMuKSAygCpOge4LEHlvGqMtNDh/Eejhjj3RVVzn5EGJ9maqrwxaKad3c3u2BAD6Hz4n35mN2O1qloedk1dHy92vxX4n9iseNNWYtNmSM4VJzOULS+hIvby+l4M3U9qbT1571z1LsOGM3TXPwPR/ht8W5mKIl0OJyAmakBJc+2/ReMEusSdvyXvpnFaHq/4qjrZHeywnKoOyi9tY0QyKcbKJR7XTJMMXR98ESlAKUQEpSS79feHa2RGj0Smq5GEYegqrsmUuoFLp03iFOrB1Zr4RX02MKtMkLUm6u7W78PKL8UaKp/Z2Pnn/wDELxbtLh3wLVRdmwvuZ9UkV3dLAUJSRmAI+YgkXbYRv6WMZZF3FMm0rR+TdPjVZWTqtM0gKBUUFCWy8g1wGG24D2eO+8UY1Rk7myCqxSqkoMz8RODlkgLLA++kSUI+gu5lui+IHaULlyZuL1a0IUe7SucpQDnQueMRl08H4GpyR2XY/t9jdPWy5kmoyVFOAuWsO7JBs+w0Bd9TpeMefAoq0X48jk6Z+jH9LvbntD257FfjO0i0mqkqyDKQ5QGYlvUekcbNhi5s097itD3hNNJICphe93veOfmxKzRimUMTpKZS80tIJ0cRz8kE9GbISrVHN1NKorUE3YtbjeOc4p/6mpNokoqdMpYM5QS4sUsQY04oO9Sqc2zR/wCNoqrLmSFK0BMaFhvwVPLXkpVfY2RUTEqCif0eKJdEpuya6jtRDN7O09MQjK24i6HQRjqVy6pvQjlUcukUe6mKC9TmuCPSNEenUXoip5m0bdDMyBAmpUttSBGuNrRGZ0zVkTkqF0qysxcRPnObESVVNIUkgocnUE2+sQkrJp0VZtFSS0hSaeWC7BkiK9iRUmoQR/42B+toUhxKis0osEWO7tEJa85xEo6FKafE+UAa6xjzRs1Y5GZXykdwSlnIuSdr7RyeoxNLU34ZUc/nE2fkSkFrl+AjmVTNt2Xp/dyiGSVEXF9PUdWhxdeec54Iv3XOfod12HrAZfdmc5JYDaPRfCsrkqkcnr8aTuJ3kssLx6C0jk0EL6AxKxUENLwmTQn4wAFAMFTtaGRaGYuLQCSGUpOWx3hDYBsAToYBDZhCAZRBSwhgR5b3D8IAFlSdoQAlLHTygAYkAa3h0KwXPExIQ0MQxKd4AFaAAfC4aExkcwKIGV3gAYJIe38dNCAFRZ07t6w9w2I1JUm6oAPirtZ8He3uF1AEzA1z0p8IXJII31+nlGDNnaei5zT6WbsMI1q+c/YpyPh/2/oiJuGS1SZg8Lqllm0aOf8ANi3qmbLrZncdnOxHbtUjvq6pld8GYpSUbF9njO5ty+ynXudHD18saqT5+J0x7A9rsQkiTMrwkm4KAWSSX+/tCk5TXb93PzDJ13drzm/3Fyk+CuPzKFdOuqBKwASzX4njqfKHCHYre/Oe+hPB8Rjj0a59f2/TUxx8Acaw6uXXpMpagUnxKOrM/AkP9Tfi7pG9fF8cYdqWuv8AX4+fqEjsZ2xoauSunXLHdrBbMojn+cUu3Juue5xuoz/ObdbnsWDYzjeH0EuQunKlBIcgFnjp4+pi1TZgj00ZS1Isb7Q4oaZaUoUtTNlUS5Fv0DX+pL6Z5L1Oph6eMV3KNcae1crxVcFVjEaiYVro5hNrtpHK6jKslJc56i6pUkl4KdX+KTKUTRzAQdk84xT0M0UczLqJ340ibJmoQNyk3sdIonC9fJbF0i3W1UvuihJd3BEY8irY043bNDswZWUqWqWlRJI5XjR0mjKep1OrYKlhMpYL/n/EdmEnN0jCsUpOojUHZirnVCp9Q+W7OPzMXLE5KyxdPkevg2E0VJTMiqQMp23PN2+jvFmPGl/ubsPRwSue/wCRXrsFwqvpT+HSjNqCLgs72+vuIJ4YSVb8/otydLFVa5zQu4ZRr/ApppiyEgNY6sRt9Isx44qkuc0I4sag7jzT7/2+8ycS7JYShf4vukqWDmzHZj/MKeGK1OhHPKMW+c4jNn9qaTCpSEBRdNk5XN9X+sRjl7ZqKOL8Q6iWW4I3+zPbmhxQilUtOcWbcecdTFnWx57Jhe5mfE34dU3a2hKkoT4Q6SBdB5ctIj1GHv8AtLYlgzODpnjmCfCzG8Lq5iJygEBQWkpO4b945ksEmzoPPGtD1rBsPnU9PLlVJzKSLkveNWJdqoyZHbs7bsfQyZ2JyimSjwkKLgH6xat9SDPT69EmZS92JaC4YeGLk29ylJ3qU6enThjVcmTKSpepAyj15ROLV6Clroz5o/q2+IEnDez5qMVwGZiOGIUDWSJQGYoUCCxKSB5uDfeNuCHcypuj80+0ND2Up6mtqOydLW06alayRUrC+6lkhRR4QwAG5ubR2ITnJrv8GeSik+04+vkd/LdAKUlTjw2cC4158zpGtMpM5VBWolGeaZfdpLFYDgeZEPuV0FG92TTi2K4oiRRU7uQJiwksEuHfWKs7jGOpKCbeh+mP9L9KcC7PUKpipf8A7+nQgZFggL1vwe3NybaRwcidaev9G1tNn0Mie8paUqsQ4uD5H1aMuSKmtRxbiyEkpkqQagd5sVcY5+bHSNmKdszpqisqCyCVBlNp5xyZY1F3zl8ujoRlaDkSEpdISON9hG7Fjsy5Z9uhpUwPd5NVAWJNzy64xthi9Oc/AySyE1N36lBSHIDBSSdIsWFeSLyPwSVEiRPvMBTlGWwdurxL5SF3spqoaYqClIyj/cC/r1xhOHgFMjl5JJKSokpiFVpznGSuwxWnN3acyTsdv5gTChxUqAZTmzcOtPpBbXOe4EU2oOX+4snYAFogSKk/EAgPoeADxW2iaTK8yuVO8Ki1tAbxTaLlGyjOqxeWiW++YmM+aVFsInPYni2V3cqJYlMcTqsrvU6PTxRk0c+dNmuqa7H5R9f0jDB9zs1S+ya7LAGUEbMNerfSHSau+cZBSvQ6PsxPXT1SD3gDm5PHlHW+Hz7JKzJ1ce5aHqVFMTNp0KO4j0mOTlqcSce10W0M2u8aBIcrSN7/AHgAHOC7QCvUMFxaAY2ZPGABFSGPiEAERYvARGWQUBI2gAFjwgAUACtAAxI1gAjWo2tAgYBiREaGIWkAAksX5iExj6pfeAAAb3gYDFadCR7wACSCdtPzgAjVdeY6bwAKapJSWId9oYjam01HVAiZJlr806RiaT0Zam1sVxgWFZSk0MoP/wBBeIrHH1H8yRBP7L4ZOfLKSjySIhLFFk1nkisnsjJlrBp5xBSQ12EVvp7LF1HqRTcIxenC/wAKpJ1uxOsJ4WlTJrqIt2zOn0XaWYCe6lXtdOo1D8dfrzjPPC39Oc+4vjnjsYNbRY9TL7ybh4W+uVHTxlyYMlUi9ZoPcrqxKskIzTqFSSzACW9h19YwZPmp9pphOFEKu0ktIEudIT5LSODb9fnT82ePxRojW6ZNIxjDpmXPJQHIZw8T+dKe/OaCkrNWScFqUFK5clRNvCQdr/aLlNLcz/LT2KtZhHZ2acvdocbAC1v5iM3ElGPqYtZ2M7PVSiVykAB2AADevoYpVLZk6UjOm/D3CM70s0ySCXyuN4lGSTshKHctC9h3ZQUM8TDUKWBzLXtr7bbxvwdTHGGGHy5dx0k1Kpc1CEEXvfXbQeuto2R62LTvm/PP3suvuWvN+a3+JQxrB5tZIJlNn1HBxx9CPeNKksytb8/h/gasOftdGTg1IvDpJTVzRNuVXLAQQXbuaMknJ3sH2mxqnk4LUVFJUBa0ArGU3fTryh5XGMbiQ6eFzUWchhPa+dPopy6srZFwTezcWHOMyyummL4ljhHD8xcv9DyOu7RVmIdpZ8uSid3CZpCV6PxF/QfpCX+rlz+vX7jzjjVI6DszW1VFjdNMlTVOpYQ2oOg/KNGLKto85a5vROF7n0NR1C59BLM4apBL7epjo22u0wtJOzOqRKBUsISkjUsYhOOlk0yiVlRZIFv9m09YgB0HZLEZdLWlV5ywlgkCz84PFD3O3q14zXSXTUIo5agLAMfMPEoJt0iFJGFiWJVWFSVyKifNrEZWKnD/AHbbeNMXW5W03sfNHx8rKLtJhNZh3cCbLWgomISWJS4yqUGup7hy4HGz7op442VL7TPgrtdg0zA6qbTygZ6U2RnDuQ4LMHOrbW4Xjo4ZKT1KZxpWji6NcqZSTULRnm5lJQwAPzADz001ueJI2ytST8FCqi3hPZrGcXrO5w5a5aZiTnmFTJyBrsbsX92iM8sIrXclGDbPoD4P/DeR+N/ArkTppTMHeKEglKtXQS1lEaPvoI5mbJKbviNMUoqj6+7KrVgfZ+XLw6RLnz5OVHdy5wSFZVg3WhQDgJT+xAimvAPVneUlD2pnVhq6vFF/h1SRLVJUGIUCXccjvwD7xhyyjVLnP3L4Lyy+MDW8qYnFZ6O6BKkhQZZJJv7xin9pF0XTKdRJTJmnLUqUpRcgL6aOTkVTOhH/AFNegp5c2Wk55gI3zmOj09UrMeZvuNJI7sAd6o6JYqfh+v2jclzn1MrI/wDkDLcFDkgHwnwkHmdNteUO2HaiWnrlF1IUpKknxJVqA/XtEb15zyNqi2qbLnoDFYVq+0Na85z7xc5z9inNCpSyhSFZgAb9a3iuTolFDKqaVKcq5TKAuToOv0hdzew6KlROBfKCA22sVSlROMbM+bWpQVEXbm4N4olksvjArqr1zQRlSlt3eKXMs7DOnVCyp0vbRornLwiaRVXPmoSozXZjr5RlyS0ZbFHNY1P75SVAoKQW8Jcu28cbqdzoYNiKhWpCrEknZvp7NFGN0i6WrN2lWhyBms7OpyfLhEpSdWQ7a0NbDp8zvklE1SAki46/KNOCUrSfOfUqnHQ9VwCpApEoKiovuY9V02R9n1OJnj9o3UKGViY6BmQyklS8wvAA4FmUWMADhSUjWAEPkSTm9oB0AWfw6QERvSEAOUnS8MArBr33EAAkWIgAjSpV3s3OBiQ8IYCwXAA2hrcTGUCXe0SECQ0ADesMQKg510gAdwNTAACi40u1oTGAEpIfXhAAIJN9bwvAArWGsdRDAjVsxeGI2DNy3SOcY09C6iaXUOS9+UKwaC71VjaHS2I0Omcc14QNEyZqVIygji20G+gqCCkBnH0hIVCKZKrEJL8b9fvDUE9Gh20RLwyhngd9TS1+YeIPDjl4JLNNbMzqvsTglcoGZSS/CX+UG/QiD6LHPwiyPVzjuUqj4cYErwiUEsbN100US+GQRaviE34MSr+FyCoJpKuYn/7Rnn8LT/1ZfH4h6oozvhniskD8PXzSoXD361jNP4RJvRl0fiEN6M+Z2R7USVrTkzJFwXIf7xjyfCMt6P8AP+zTHrsclbKlVg/aKibvaNagxJKS9opn8NzYlav8X/JOPVYp6IzhieJUpCfw85IHi0PX8Rmhjzw3L1kg9wk9pKuWkZgUnU5k6RK8u4P5d6F3/wBWTe6CVgML6P79bxOPVThsSik3aK1ZjEmok90WAW4VuC4477OSL7xZLr3dx5/GnhPS3Wjotq9zj6890pRQSEnRwzDo/eDD1crTlLT6i7pJ9rfOJf3sYuM1Uk0Bp5ISkzTdgLaufV41f5MctJe3PxM/Ud2WvP7c33d6Xqdb2C7A4D+BROqpMlRWMzKDudz9enjZgcsktDD8mWS+038c+HXZuQJVdTy0S5sohQMsj/ZgQ2osfKNkYO21zyRXTTmq5+fPSy/InCXSpkpUV+HK+46v7x0sUu4wZ+neF6mfVTAZjJBU1tWYwTdvQoKy+8NkqUkHhqR00QYI6jsLKlS60kpD/wCJIdrwmM9BqmUgKmDOQGA4xfjSpEHocV2ql1LlUtCA4BCVD5YcnTpBE+Tfi2ivWqpmZZSM80JSkE5prZRlDCwfKTzDbRujljOqf8lXY47ngHaHA01S0yp5zJOUd7NJIUsDd9Htu3NgQNcXa0K9mee0vw/ld0kVqFBUyavMJYBABNj82gTm8tg9jpeed6FaxxovYPQzaStmJqpE6nkS5ZBnd53d7MpVw4sprHVi7WrbTRKmj3n4c19JKRMxjDKCrr1Uc8SyJczIqYpTgTCwDhLb3IJLuBGSVp9xZ4o+hsJxiqosUlU9L2YEiRUS1T6iqRMyArU2YKA/z1Dts52aE4qWi5z+hJ9urNTCsV7W1NLUyMXrfw1aZxWO6USEy3La3vqRoHjFnnFJVu1z9/v+4vgtfY1peI4ggzZK6lYVl8I2PMGOZPN6muOLyBKmKljOuaVLVY8+cYu77Vs0eDYwnEGQQFqzA8Y3YZmfLGzRViBCWdILkhzy+vTxtg0ZnH1IxW0rh0LMx8pJAItoR7RCU1sSUWT95LWoKDFTags/nEe9B2sjqcZmUakoFyb2clvSDvQdo68an1KGTMHEOXUIfct0NQvQg/FTEoImySpJ3Ad+miqeSkTjBNlWqxJGcJQVaGxPWkZ5TsuUUjPaZPm5UAkqu+0VtN7E7onFDMUxJN7CDsDuJE0KpKVLXkDaXDxGaocWYmK1iEIKCotqSRt6Rhz7aF+Pc5GsmFJVNTOSANCC35Rx8n+1c5/w6ENrXOf2PhM+o79pcvvQSGLW0iuNplro1JlYpKwleUKv4RqG/gw36CTo3MMKkgTFrJJGn6xoxaalcz0bsfWTJjy8pUOJOkej6CVrU43VKtjtJeYpBIYtoI7Jzw8xHh0gAVzf6wgGLgfSGA7um5PvDECLWeEMeABeUIACb2MMB9oAIxAwEScuZoEAOYWtxvDoViUoObawr8jAWpmYCDuQqBAcPEyILvf84TGMWZ/zgAb6wACosQBvrCAiXmzEB24bQMANmaGA0MRcTUBQBLW+sc1TNjgOJoAYPD7uc5+44kqag6D7RKyuhCaxsC/W0Kx0ieXPJOsSWpFom7xTaxJERd6Rb6Qe6CiVFS4Ym3nERdpIieHdJIuNIkpNEXEnE0EEqUxfcxK2yNDZQ7vbVucFgGFB7kl3NxErXkVDum9uuvtCtBqAtEtYYoDcDEWk/BJNoqzMCwycl1UconRwLxF9LCauia6icfJVmdjcFnIyKope/CIPoIT3RNdZkRiYh8MMHnqK5Enu3b5S0YsvwmL2NUPiLX+xkVXwlQJZ/DVKithle4jHk+DXsaI/E15OexD4U4wQRKTmYWzD94zZPhORbGiPxGD3OC7VfDbtMhWWRRqKRuANXiqPw7Nifcy3/Nxy0RoYHXYlhVNKpq2mmS+6BAKgQ/qNNI1dFOeBuDW5d08oSmrLmL9o6mqQmWlak5mSFG7gWsPIR1e5zVo1Tljh9OcftqSYdUlVMl5gJXxsbjh5RoxJ6nnuvzRyzXY9CYskabPFuxg3BlLcganZ4hZOjpuyyJi6ppa/FsdjeAR6LKmCVLM2aQbanTn+cSUmkRas5bF0ivXOqClXjGSWlOrcTD722PtSPnv4/wDYrDsH7Mzu1M/vhMkNlQPlJJ3Tvf0eL+n7u9RWzIzrttnwf2y7QfECkmqXg06TOpFrUpQUjxE2d3YMMrekd/FHFtPcxT76uJwFN8Su1mHYjOqKxYnGdMK5sqalgVPx1HC3AcI2Pp8co0ihZJJ6ncYN8TOzWK0tFT46lMqoVMzVGUeBN7ZX3t9ffNk6ecW+3VFsMi8nqvwq7b0M3FUTsDxGWEypihkCyrvVf4qLNp4bNq52jFnjKCtrUug09j6R7LVuOf8AHLkT8WM+f3qameTKSnu3KiUpbq/Exz82Vwfa/p+S/H9y+GNS1OvRiNVUViBMUgJElSQkFgAFdeXJ45eTLWr3NUcfhD4dKqKRaJUyqWuWoky1LU55p57xhk22aFoTV2IyhOyypktWVWQoBuDwPvDWOUtaDuSM6V2jr0z5iJEoKloDlQ1fcN+d40QhKPOeCuTTOpw2omVskGatIVlzME3DxojKlqyiUbehaUpIDkONLGK5y9CyER04iTmQhGWwPl6RWpPYn2pkUtVVOJDFb7qc5TE4NtakZJWXZVNOpPHMSgqN7bxY9rRGKvnOexBUT5k6YDnZKRlDGM71LVoKnoTOUVMSx3NoSi2xtpI2JVJMlID0zFrWi+MGiiUyGZTzFEqJCDwTaCcaHGVlGtkVi05RMlhL76swjLNF8Tm8UpJqQohOdmu1mjDnaovxrU5qtl5FmUUi31jjZWnKzoY19ksUUmtp6dU6UhGQW8Rv1tEEmloWX6kEpS1TlT5qkmYdh4WiPmxnSYTNWpLrSCnzjTjepXJHonZasMudLSiQpQNi0d3oJa14OX1UdD0CStWQBQe8d5N7s5Y6rqzARIQ6CWeABHVjAA3O8ADuweAASb2hAO4hgAdTAATgC5gAje9oGAJvYPlaBCYwZ94kIFenpFcrsktgW3vBSC2OwAiwiANITAd2Be5hDBtBfkASATpzgABakBPy6gwX4AhfjcQxCUoXLW94kIqImliCpxvHIWmh0Pcm71VmUfeJASInkbw7sjRMmbnS8O2LtSJEzlJ0g7mHYiQzgq5OsSUmRcaCTNILgg+ZaGpEWg0T7H9YdhRMicQRzhWxdqJEzrXVbTWJWRcSVFQQGzPBaDsYX4g5ncloLvYj20SJqXFyB5wOTQu0IzX1J9ILsVUFLnJCrm+5icZMTiS59Lm5iXdYqCcgNmMO2vIhJL3e7lj6xOLryJkpyqBuz7tFtxe5HUZUqTMBCkJUNNIXZCXgO5oz6js1g1UvPMo0PyAiD6fG/Bas815MrEfh52fr0BP4ZKG0YNeILpop2Tl1M5/7GSfhNhaFEylFIL2SogB9bRP5SWhD5pQqfhbUEq/D1J1dNwYreN+CSmigv4a4pL8aJoUBq7xWoNFjmmXcF7MYzhtUFzJQyuzgw3CkCkmdZUpBkCUbPYtENQWrM+fTypaDMUwIAAMAzz/4k4PRds+zNThNXTCbKUlWqtYtjOUNVuRaT3Pgj4gfC/Fuzc6qWaRRkImFKJ6XBSxI+Zns3WsdfDnjmXuUSi4P2PGsWwCYqUo1EmVOTLHiaTcFzoybWBJL/wCJv8r7cc2tiicTEmdmsLnS11cyhuogO5AILuRfYsLDfUWe1ZpLSyHYt6IsH7OYnhE9GM4WqdJ7k3nS1nwnLuNSCX5ADVyInPNGacWKMJR1R7T2I/qa7T9jMOTTY1hhxGYnKFLWnxSwDq41bxH7kOBHOy/D4Zn9h0uc4zRHqHBfaPZMb/qm7JYNhFNiOHYdOxWrnykrXJklkySpv7ZJDJZ9Dp9Y5j+Gznk7bpc/E0rqEoWcJ2h/rD7QVK5VPQ9kplNLUoFK8pOXS6n+UhxrxHONEfhUWr7lz9SH+V2vZmQv4pfGDtXNradCFS5a0om0lRLcBK0qYpJ2cNc8YmukwY0nf3MTzTbo9X+E+HfECprpeJY5jshpiQpckJyklwCSeNvffSMeeOOKdLnNP51LoNs98w9CpU5RBYGwA4cI5M246mmGpqFaUA5hqIjKSJpAyqeZPIMtJAfibhoIq9BP1NORINOnvM5B3vYxfGNFUpWFNUiYj+ysqYaPEt9yOqIZOHzZygpc1IAvZDRDtJOZrU8nIcgYAXzC0T7VuyFvwWJmIBCDKROB2Z7xNyRHtZVNepKgn8MouSXUA0U5JJlsItFOvqJROaakJI0jHlnSNMInH4xjM5WeRT0xCCCCwuw4RzM+XQ1Y4WznxOogsSTKXMmFjc3Gm5jmN3qblGlQ06tqEgIyKAP+JOo6cxByZJInp8xSlS2CTwHPWBa6BtqbWGT84ykhksNLRfBkJanaYBiSpKwhLMDtteOt0M0pmDqY2j0XD6tVVTpIFyHvrHoMWRy0OTkh2l+WSqWMzekaSoMDKGe8ADa34wAKEAx0MMAYAFAAiLPAAKlD5YYhgQLkm94TGMQwd3gQmBobRIQyg4MRaT1HdDaaRKhWOSlrGFYyI5gbAW3g03ECvvFHVoK9AGIUGtAAnP6QUtgsimA7flAABNoABIzAg7hokIypSzmd+njjJnRZZTUDLrErEMudkYhT+pgsdEiag5bmznQw1qLYNM1SvENfOCwolRNO5fzhp6Ca1DlzX+Y3ES7iLiSJmhIsoe+kHcHZZImoNmMF0LtDNQf8S0PvF2MJNQpvniPcS7SaXOBTcudy9oO4O0IzlJsFCIykNRRJLnE6m55wKQnFBiYobxJOhOKYUueQq5Yv11yixOyqUKJ/xJPhvcRKyvtDFS2qgRD7g7SVM1Kg4VrD7iLVBCblvm6eJxk/AqJUT83hIv8Az+kXrJZBxH712Zr8XtB3hQu+DBRa7W3hqdugoMLSQC+sS7kKhHK7kiDSw1AWlCg1mIiuST2Gm0YFejuahIOkZZbmmLtFaopk1KMi5mVIu3GESOZxWilIWpEu2YeK+sQeVLRk1jb1PLviJ2WRiNCqmRRiZLKSFeF2tq3tFmPLKLtPnNROC2Z8q498MqdFRVUpV3afGBlBKC5IYvoBYW4+UdTH1lpWZpYaZVV8JMLlyDQ1U6fLlD5HS6XYsl3YAv1eJf5Xig+W9yWn+B0kUk5GHS6hY7wLl5iCEnxMCLWcjW/5JdV3PWvxQPG1scnjfwWrxULpqVCZXdnLNOZiwBIT6eQ05RauriiLxN7m92S+BiMMoMs4ploqxnKFAn+5YE6sGI8t+EZ8/wATT4uer8luPpWuPn6HRSPhbQJn95UykzJiEGWS1suhdJYE3dzuR5Rhl8SyRe3Oe3mvGuhdLBrfnP09zrezvw4k0U+WMOkSkyQnxyjckcQT6ebCKZddPItefT2/b85LBGLPY+zvZrD8MTL/AAcgMsOoG4ci/lvpGWeZyJxhR0kyVL7lIl+HIcrb/WK27JpUVVoRNfMoADQxCx1ZfoKtMlLKLpO+vlFsHoRkiymf3xP9wqHA7Rf30VdoUpdPKIyoTm2MT3IvRhCfMPjSG0sDAINVXNUCDMZtgLM8VymWxiqIjUZSWQMz6iKnPwSUCtVYiqnSyT4rM+kUzk1qWRXgyazEVqT3tWwSn/WzRz8+TQ0446nM4hXLqcykypiUKP8AjZx5xy8k22bYRrUy6hEiSrvUGYFn/cu/GKmy1WyCdVKQ4CXaxKbkiK+5FqxvyFJxQqyjvGDs136t94aFKDRu4ZVImSEIC/ELgbxbBlTXg6TBajuqiW0wgKIfxO0aME2pFWWNrU9gwJYnSEFAcncR63pqlscDMqNoZkJylJcF43p2rRmvwMSSflLQmA6Uku4ZuMFjBylJ1+8F0IYnZoLAa94LQCtxgsBONG0gtAR2D8Lw+4KBFi+t4TkgSGUSwe/rAmrBoYeUSsVCY8ILFQJCrWMO0FDX4Gwirzz35zWYyhrDUkkJoH2iXcmKhlAZS5EPuFQDn5WDmEmgoRLg8PPaHaQAKysQPvCsdAqSBpxaJWhUc+lY0zMT9Y5C0R0HuGlTm6wRzgumFBGYBqQXhXoOhu9Vobh+NoVhRNKqSAzluUOwokE51gAw1IVEkmd4Wce8NSTFVEmcG5V108OwEJ4SQnMwJbXWCwpslFQ+hHvB3BQSJygHJDQWgpkiZ6hfPblBaCmSGdntm9oPoH1J0zAGuLl7mEkFkqZ3Ai/OARH3is33vFnckiFNskRNWTqIjZKiVE0sCS3N4LYUiVM8pTZQ8okpeGVuFuyQVBCXJAPGJKSIPG70DRUEXcEecPvrYXYTCcFaBLvEu9kHGh+8cmw84O5ioLvVCzCH3sVD98ejD72FBBRI1hqTFRQxeUlSO90y/WIz3LMb8GPOq3RksG0iruSReots5/E1FTlKgFKtGd7mhGVMpk1SFlZGQeEDid4fcxdup532w+GOG4xNNVKBlTlpyZkksoO7HaJrNkjsL5cXuYNL8MwqQ1ROVna5Cz8zkuDw0tyhyzUChZcoex5pHlz02SykgFg/W5iqeVv/AFY1FeQK/svImzVkyJY7whRJTuDY+zxU8svUmookHZX8RTop5khKk5MmcBm4aRCWST1Y1EuYf2No6VByK8RDOTmca7xC+fiSo0peC0NOlJWkKVLIy8AW+kSi/UTVF8T5EtlJCQANYnaQiJc3vyVJmB1QWmACpawWJf1iO4CRPCF5CnKdvKGpUwo06abLSXU5B46RfFlckW5BClgTVhIUbAj840rVWUy0ZbnUkuWl5MxLEWBhtehFWylOkS5ZbOyzcnURnmXQKc2emWCSUkf/ACiibotirMqsxFU9RklgnUNaOflyp7miMH4MWuxEFSqdMzbU+Uc3Jlt0bYY61McVlYlTmWkoL9ebRmcy9RXgKbOpZstqrKlRuzXdvXoRXKTexZCPmjBxCfMkrC5Cj4gc29ujBjTluaKjWvOfkQUPfLm97Np1Em2ZTDex8tfRoudeGVz0Vc5zU6zC56pctSVy0p03hJ0Z2buHTO8mjMskWFhfr9YsxNqWpGdNaHrfYPEp0zJRkpyjYC4849D0GRvRnH6yCSPQEAZdNb+sdlPQ5LEpAayeW32619YmmvIhMhJsx89dYUmgVieWbAJ9oj3D1GIQdAn2hWA2XX+2m8FvwAiEbITfyg7vQAFSpblTAPyguhjdxLJcM3kIVthY34ZGhD+kNtjsfuJHAQKdCti7iRq0PvDUBUqSLFgSbbwdw9QVS5QsWh94A/haZRugP5xByY7ZGqmkAWlhhD7mABkSFXTLZrQ1KhjGTJa8v84fcFAGRIb5G8jB3BRGqQgB2N+cLuY6RGZMv/L6wd4+0FUuSR8rNu0R+ZY+2jjGzMSz8WHP94xpmprUNii5J6MKw3HKixct+sAUOJgNheEOqDQvhABMhYFwPzgASZhBYZgSIadB9USGe4BsW0PDq8HcwWgKZgcE2hASd6+zefrDthRIiawd/rCAPvHveJITDTMIuCYLoNyWXUGwUbu14kn6ia9CX8QdXcGHaCgvxBIcg38oVoKJkLBIJLb3tCu1oFEgUlOh+sDbYkqDCxq78bwP0GGieFFioWhp0JoIzSDa/q8CdiqghUOW384tTK2ieVOBa9vOH3VuQcfQkzpN831669Il3Ih2v0DSXezNErsjRPLVaBMTIa4JVIUSNrRDI9CeL/ZHJzVoVMUgF7xncqNqRQqZYK3NzziAzPloyoyqP+RP1g2GRKmyFKMtSQ3EQu5eR0Z9WnxEAWZ+MUTyehNRM2cUCac4B8I2g7gop101SJSlIp8zAkHgYNRMribPmS0pXLKd3hVrYWMMwOcTGZ/SBqg18kU+bOT4kpCiLs/XOBabg9div+JM0sorluRroOtYlQg0pnA94Fd5ls4vA9QLkhZqGSDkKbEPpDWobM1JeGrmocgKbaxjRGJXKSJ5dKJFlpzO9+EWqCorc2X5K5KUjvJVn1fcRbXbuVvXYkM+iMsy7FJDX6694g5LdMmoN7mVVSlGaQJpKRtGZumXJaGRWlMxJlomCXfXV4z5Ho2WRWplzgZfzTUqAs5s0cvK0jVBWYdZUVKVFhmu4UAz+pjnSbN0UiJKyiWamfOGTXMduYit6liTswq3FCucR3aTlIHh8LMdIhFNq2bFjS25zQykzWIUnMND8p3t/P1i9KrslJXsbNERNAFw5IuBw8/3iD0Ms0zeVKlyafxO+gITrw8oSaZU0bWCyylQJXnJa3G8X40Qkeq9iZspEzIlKQ7FSjq8dzo19o5nUPRno8uaFoBCrR2lK0caUXF0w8x2MOxDKU5fR4GwEHgAFUwAkekDGkD3qS5zRGx0xZhe9oVhQ5JbyhiHKiAwENADmI3PrDoAVrCdbmBajA7wg6WHtAwoBc0KVl3G8K6JKJGFgDxpJ6MO2FBZhpmDmGIZc3KL7wwohMwj5Sw30iLdE0hKmECwIMFhQAmCytzvBaChGYWYvaGIjUsakERGxkXeJ4xFIbOLE3QAEej26/L0z0awVTH3uWGxu58odDoITCQCC+94hLQEOlRBfNAlQnqOmYyQkqUW9OH777xLd2J0TIWw1/KBkUF3gf5uunhNDQ6Zr6eUIYWunVoACTMKAzE7wAIzCbAs20AEsuZ4bK5QWA5WpgrMYAHE+9y4gAlTNJuTaACZE/wjX2gewEyJo+YKfk0TTBkv4gPZ/OHYqCRUEpINrcYWgUEiawBzFjDpMRMleYAEwbCasSFAKJzFjxEO2hUSpWrZRA0fhC7/AFH2+hIJpG7+kK6CrJkTXBvFveU/LJ0T8p+Yl+USUrIODIa+pBlGXm1DExXlnSLMOPW2cTWz1U9QVIzFO/KOdly1LTnP0N0IWtSJdTnAWFO93ETjNy5z9fUi40A4XLVZvOLm0RSaZmruttHLfWISWupJFGZMzTsiioCXqX1JjPLcmg1JQeB01iUec54BlDEV5EEISC4KT9YmRZTkzUTE93OAzJT9doBFepRNlrCk5inflAAOQLDpNjbTrhBQURy5V1JWkOLAwgJJEooOVDZm3LRKKDfU2cPpJU7wzkeMaEBut40QgVSlSNKnkVFLmCgVy3soC8XJVoVS11LHeUZQ+dlCxJsBFyelFdMqVaHSTlSoEWvrFcticTMqlISpgCDGZy7S9KyvMnTzLyomFIP0imUrJpUQMpTIYk8SYqmSiZ+IyQApiMwFgUkn6+0crLZthSZhT5i0oUcj5RoAS4jFJmqK1OdxKbUzQVJkKkoCfElTEl4rNmJRRgrVOSVd2VlJUzZXIfe/MMNg76MBclF785+e25dqXqHOVAlDqBZ2P5OwLfXzEVtehHI9NToaaQcgXJlAHcser+X7qrMbl6mpKlz15QE734AP19YPli72dDQUYl+LUnQadbRqxwSKpyO57NS1yZyFTVuCxyAnffrjHU6ZST0MGZpnplMr+0kkXudOUdmGxy8i1LQUb7MYsKBlLAsSfaAKHCwP8vr1xhqwojWMwJextCfoSWgJBzOD6DXU/rCofcPnTz6/iAKF3mY5QpiNdolQqE+UB1nXaAQJWP8AY6bwUOiFcwvYmIuVFkYWD3t/2hd96EuytQFTA9rcRDW4vAjMe4H0iZGhZiN4TBArBJudDC8aD8gKU2lrA+WnXpEFuSewlqTkLDW0WeCJGFHM7wkAZUeEMQCmDjjABAtgWAaBAcW5UAo7O7xjNoBWA41POARIiAYVvOABHMWYwAIzCLNtdoAJUzMzuXtAJhFTaJv+8ABBb7wAODAIeAAkljvAAeVQuVbQAJwlZcc4AJkzHSHFtGgAkRMcWFhABMFkBodgIFi6T5wbA01uSCcEghn5NBYBpWD4va20NAyQTVpUN9tDz/SJCqwzNsCR15wComTNIGv0gcQsMTdy/KFVMb1DRNZnIvEu4h2lkrZILPA2CWpQriVMoh78PaKmm9SxaaHM4pKMxThVnf6dfvGHLDW+c59NEJGcubYpJ9bG9/fWKU6LKGk1aCoIKh1/H1jVHIq15z6lTjqBOCQoq0a4MT70+c/5v7R7TNUhznYjNc30JjPPYmiEnIkhI3YBt4kvs6iepWmzFKASGudDB3hRRnJEuoKk3cXg76F22LvEzAU8LQ/meodhAlQlzDJuUs4PXrEXkGoiUpMpbpPhDe0JTBxA/EZZqVlAyqsSOMT70LtOmoikS++lLZTA5eI841QyFUo2XqbE5fyhRBZi9gYvWVIqeKyCoqQZgC5aVJNyRvEXmJfL9DOra4yCsUxZA8WVQ0iLyIfZRBSVMupliatd1E2UnS8VylaomkSVIlLAEt+BtFRIojDauUhU6UCtR+VlW84z5CyJTnS6weKrSRfVwftGHLozTBN6syMTqAJf9pQIG5sR6xim7NUL8nL10mdWTFTF1AAPAvm9IpWxsjJRexWl0RlHNmKtQ2Uc+J6tBuSeSzocDwk1KjPnJVlSeFn/ACiyMO4yznRvLkzwAiXKSm2vXnF/y3RR8ymXaTDikAzFuVOQCPz0i3HgbITyo3aXDsibMWsNgI0LGkU/Mfg6fszSzPxCahQOrJv1wjd08NbZmyS0o76T4Eh9W9jHRhoY56lgKBLAcYuM4xWkEgg24iAErGzsXZg/6RBOmTcbQQnMGItoeveHZFwI1kEuIbdEoxIytTkFuJt1xhEqDz5PE/ttaJeCDQImm5PlA3Q1GwCSXJgux1QxDfb7wmCEFAEkj268oqatlmyAJDkNoYtSINiUQdA0SIgBXFxBYDHVwXbr8oQyOapIuzW2hAAJoJumAGEFJJYAw6EOXCczNABGVlSibQ9gInBMAHDd/mVlZ7t5dNGI2DAkquPLygDwSGYdILAYrKiCPO3XnCug18DhVtXPMmJXYIMEm5Da9dcIQBuUfKPVzDGP3jpIGunXtAKqDlrS4B4iEPcnzIFyeV4BUOFBrXtAIcnZmgAcLIDe14ACJu54wAOJjJb6QqvcCREwAO7QwH7+z5wGGkFDrWg0THOZTHn16wWHc6omzpCWDAAbcId2DbbtkqV+EZRBYiQTLs123ES2CvJJmSEhISAkBgNLeXW0Ftg9XbHMwkZSkHS3rAtQoXfHSwuwvrbr2MMO3yiZCy9wAQYVCJgtTAADg0RAgrJgyM0CGYVSolRD2d4z5YN0kWQlW5mVMgEZnFrXPL9ow9lO65yjQpeDJnpmIUSlY+5gi2mDoFVaAllljd7c4n3UR3HTNCxsYkpeoq9CGaEpS5UGNrxKUrEkVJqAoGYk2OjecV+wylVjItD7qgboEBMlhKu9CrRF0SopSZhRULWq40Y6GIp66h4JFqkqSozQDn04RO0RA8MkIA3vl1blB3NBRYl4hMkpImTSUhmHCLe5x2I0mR02LMVonLBL2JDWiayMjSLUzE5k0JFOkkCxBg7nLVBSWgqOZTzZwmrE3ONfAcpicbvUTo1UzRLlJKUBCQdTaJ7ai3KVRiaDM7tEvvkGxIiFqyQc2pqRKIkyilI/xIYaRmyXZZAzKr8RPSTUqJuAAD4fvGLIvU0RbOfrMFmVanC83BD2/f1jFKDNUMnoZ5wWoSruZKDmSS4UYgot7FjyLdk9JgExEwKqS5JGbI7ExYsLshLOmjo6f8Qgol00jKltVAho248FGSWVs2KaizywqasrUdA1m8/WNKxVqU97Zfk02QvNGp8ID2jRHGktStysnl96uaEpcJ39oaSC2dhgUkHI3iVy2jbjirozzbps62UjLKDm4jSktzK27ocKZXpEiIylEkk2eE0NabCFrtEaQ7ZGq63b2MOhhElKAdTBSFYJSczgFoUdSUnQlTPCzXHGJEaACyzufeE9yS2Hd7gwuc5uAvW3nABGpaRcnW0Nbg9gDNSoZSOMMQKlt8pfix64wCGU5uLeUIYClZQBAhEaiFFtYYxAMbp93gEOlYdyBDoBLmOcoVaACJb5S2sMBn39YQzz4z7knY9dcuUc+zZQ6Zx/xLnzgtsCYLGxHXQgAMLQA5JAZ+MS9xD5kkOFBm47RINhs12e/nCboAhOAILddGI9yHTJUqBZjbhEhCSvKpIDHSACZM0aBgeQbl+n0h6joQmS2Nwx9QfTe0GobD94knMFg3eEBIiY5Yl77XgEShSeL+sAhZks/wBoAGzj/aFY6F3nn7cYYiRMwo0gAnE5wARaACVE5IQwaAA5c5zoIdgSyltqouzEk6w7sbdhHKp0vrcgW1e/3h67j1/2HzhObxAWcudA300g1FTdaEomZTq/rCETyFhW+u0FCsafLzAkb/WEMyKmUQX6aISXOcQ0UpqFXcM3nraM+SHbTXPy56UiyMrMydS3LMRf+X/PlFPy355z/tFvcZNfTKDlJ2cWiuUWtBpmTNnzKFdjYWu8R1iN0yKZ2hp5kvKoEEMCAnXjDc2KhpGLyVAZ5gBPEW60hqVA0R1lZJy5zMTa/CFJ2CRRm42gDKGPkd+miN0PVkNTXSjISsKAUraC61CgfxfeSksQFpJB8oafkTREmrmiYe9XY6Nr5xJN3qJjzZk7u1KQMxAJAe/WkWOJCxqKnmzEJnz28ZypcaHduWsEYuTugbSOloaZEgJKw6TtqRGiMKWhBuyelqkmcoyZSlm+XMkhLxYtNSIU6mxGuS9UuUhtAnRoU9UOJFTYUmnmH+4zsSp94pUNbJ34DqpNSVFInlYI4+cU5E27Jx9DImrlUuZM1RWoWy6xS4WTUqMqqrcRmTCaGjnsp2UhPhEVfLXoT72bOC4VidUkzsRld2CLJUGJiUcFoTyam/KpaeSs5kJUsBr9WjTjwJFcsjkWZUqQvwzQw1Yiw/SNccaSKXImEmnWSZUkAnf7WixQT0IuVakyJaC6VqtwiLSihp2wVy0S1JWlQyk6mK+1XznNCVs7Ls7LV3KVIlAtvoI1QZTNG8VKsgaxqTVWjNWuo4URYvC7g7Rs4A9IYUP3g0MAqBWsZi30MAAOCGEAxKXuqBaAwStJs94ABV4hqPeBqwsSQWYQqsE6AmzR8qSdYPI/AAUkpBJPvAl4E2CogMQL+bxKkIfNma43d4VAMZoYAfpBQWRTFaEn2h1QDkjLu8AAmbxc76QANnSRlB1gAYEWv9YAGUuxbyhgREsW/KEM8/s5L6xzjaEl7mwcN+cAiUqJ+UnpoNhiCyk8fXrr0h3QqsYkhA05Hh1aEMSZhTZhrw66eABxOUbm+/CGIlRMKgWs0CdBQSVkqbW9vaJd2oiTOoixJ3d4kH1HdRBOY8L6QgsJKiUl9XgANEwgs5bV366EAwlTf9iYAJEzC1y+7vAFD95wUYAocKf/ALdfzAAYJUAAvTdtYBEgL/5HSAQYmC25gHelBJmMdPrAF2Ty5zWJ5mAROmZm0Vptwh2A+cgXUwbjAAXeJPrDC0SyphzAA7/SAC+BnlgNqNoT3DwVJ8hKRmb6NvEu0j3IyqoIGgY72iLjY+6jIqjOSSUoJfRojXoTszlKUv50gRnlBbMsTMbEqaVMQchB5HaM+SJOLOSxDD50sqWxuXJTeM7VlnsUkSZqE5piplzZx/EKmA0/vpqMpRMJHPX9oHbAoKlziHX3iSm7N9YWwDSjUTUZgVliBrvDVN/jzwDVF+jQVElc4KUu4BLn1D9PFyhdrn8+PP8AJW5VqakjDZ6ypgCohinM4a/6xpjj5zn4lbkauH4CO4CJwCCD4QTsevSLflkLNulwmnRLTmlIT3d0vZzFihWonIKpmSpEoZ0SgBcneJ7iCpCgy0zO77sEOxF/WItWOyKfNVPRk8QCmLAawpR0GmIUhXlmtMXlH+WgiHaOx05V/wBqYkuDbKPaK5Y71JKXggmUcqYvu5VM51zFNjD7UxWa2H4ZOSkZkoIZwAwaLY47IuVGgaBRQSpIGXUPeJOKWglJsgThkhXzFQBvD+Wmxd1Iml4dRIN5xUrXW0W9qVMq7r0CXTysrJe+pP3iajSsj3a0Q9zSyZedKiS+j2MZ5qrNEXZTnpKyFE2fR4xtduiL19o63spXzPw/dKW5BsI1YGpK0UZFW51KZgItr5RqVtGfRMXeOXMCWgMBatCC0SWhF6gFSk6GHYqGz8VXgsBwsEXVDECZlvFZtIAASvOSG8oQCKgmAB1zGSVKOu0SaoE7IEuSSS0QuidWhyVD/JhDTsTVApmjMRrEyIjMfSz84X1AAK/1hgIrLgG77whjBnzA8oBDLUk6HlAMi3AfWC7CqGCgSeA3gERrzFLklybbNAAxJl5QlTjXT09oAOBUrMGBPvHO21NwaJhAY+kLuQUGmaPfl1xh7gMqYUrV4tBC7kFMSZhN/pDtUA+YAW/kwc5z+gWcPrvxhN0FBpmEOkEXb3gsKDCiC7uX1HV4fuFMkROBABdwLc4n3EaEmaeDhtoO4eoSZpVZxfh11aC0IkCyCFOPfWC/QaQlTCW/SBfa2CghMID6BuENahQQWVFnLlw406sYdDpkmfLaFvsL6hImEEDZriACy5CcwAJLQCAzqUqzflAGhKFFoBBZixD2PJ4ewJtO0Sy59wl/pCAkM4kcTzG8P6jqnqFnUQNG8oZEmppzrCQNCLNCv1GdDJlpMhNg5EWLcrkyvUSSHA9bxc0ilNmHXU5CiUnkYUkkiUW2Zs1KknUM14zP2NC9zKqpYBdJI3iua8k09aMOpyycxXdydbiMeRMtiZs3u54IzAmKmq0J3ZnzqMqcoXmDWA1HGI0FmfPUulIKZQUHuVWhN1sPckmGRNlpJQjMrdrwhklNh9GLLk5dLgaxbjgm9iuTLicKpJE0TMpDnUoc33f2jXGKRS2zdocOpJiBmBK0lwXjTjiiubovy0okzx36QojQEX8odINWKrriCUypCwLhRUNIPoH1MefhsutmZjNWDsDp7QO6DTctqTOkS0oqZYQbJIR8utoHuC2LdKEJUqbULlIIOVCE2Ycog9FqSRZlgEd3YuIinqNhIoAjMtawcxtlGkT7bIt0T0tIhHjex47xJY/Qi5+pbkyZ0xToJTtwMXRh6lUpt7E83u5CSmZmJVz1hSjq2hxlpTI5Uj8VcOgauRrC7WnaH3JqmMumILS1Zg4cCLHEhZCuiqZiQJcoMbsdITjoCeoJpe5lZZpST/rsGiiW5fHYz6uZ3aCxADbRz+pmkzVhi2anYmrlzZk1CpzqSLA+WsW/D5925Dq41sdqmcUpyuI6jVnPToLvHbMdYQ/AxmsCQ7wARmaomyveDYYT2uWhrUi9Bu8awZoYEalKJIVpAq8BQaTkSS0G4iJc0kuCD6w1oAKpxIAUTDeoIcLAHHyiHbZLuH70MQBDprcG09gBcEkB4dioWc776NAAKlgBIBFxAAiczEtCYIBUzKLni/OGAJmISSyXB5ddPAAisEtzfkIAAWSlwGA4NtAIBc1Rs7kbwARORca7QAcAicAGN45zNyHVOcEgG3GIIdhyp3El/OJ2mIaYsEEv7RAYcuYQkam3vEk6FVhd4RZj6ddPEW9RpDQkxjpW58XOGBIZ5uANRvDtbiodE0s5BvEvYQYmPYv6wAGkkKLgvxgAkTMS10h4NxpPYIK8LERJNPUe2vOc0HzOW2tsP084l3W6Bug0KKdAX49esDaB0SiYFBzmtvEH685+YBOlPyjSzQe6C73HM+2UC/LX29ItSI1bHStTm7aD1Zvzg0I1ZY7xVvC/Hj1p1aEFDpWofMDoHtb69fSCgHRMWpTsQG326L8oA0JnD2hCDTNAACi/V4k63Bxe/P7GE7KbPq8RegLU6LDa2auUCQWAs+/rDjJbIUo3qyWpnEg2ZQjUmmZ2mY9Us5iF3OsKew4mbUJ8L6OIzPQvWpj1thmAYxCasmtDCqO8nBSQlChuHvFLiSsy58uVTqzlIH0jNki1qWRaASpJGYMTxAirwSKOIUkqsAyg6uQk6wmrJbAU1FKZlOCiwzFzE4xRFtl+RQT8pR3ma3htd41QjWxS36mhQ01RLldzNBKyWD3IjQo0iFluXhuJyZmZFZLSEm4N831tFkE0tUQb13L6lTaYGZMQFrZgsaJJ84a9Q9hU8sTCc1R3p89OUIGWM1NkbIA3zFRDiHYURTEUypiFhybW2HP7QgsycYwedVLRNwyehK0sVBZswuGH6wNXoF1qWKM1iLVUrxblJs0JRrWhuV+TVkzpagn+7mJ4RckvBU7LsplFJmAsNCLROKRBtluaalMoqQUIS1juYnasVOjOZfeFU1Szfi8QGTCrRLHdJClW/wARz69obd6AtCxIVmImFJvfWGhEsyonBGWXlHEnWK5zVFkIuzHqjmUVLWXfVyIyTkorU0RjZj4pMlhISiYHBuxcvHJ6mV6o3YYsv9hpyROnhCn9o0fDZa9qKusXk76UsrLMXvHes5RIskDKbecKrAbxJF9zAwQ+jMq+sRaskmMoh7KJDC8SRFgFSQlwq8N+wIkKkkPqTCWgMjmTSA+azXhiIBMQdC/Q/WABFRcv9oAHSpIS6iX4EQwCSoPrpYwAMVXY6+UIY5WkqYEaBxCAjmG4c9afnAMZU1KbO5PpABEuZ3i7ORcNxhoTBK1E3NveAQg9mVy9IAGN0uNN4ABOw4wACpTKCXZ4YHnQzG776e8co3BPz8oAFmtoYACHjBAJ22gGJTpSCC+zxBy1odaClrKfff6Qm7BEwWFaQn6ElqMlWYkgvcweRuLjuSAknXd4aIkgUA59htF3sIdJuztu8FgEZga5JbaAK1oIKYXVx5v1+cIRJLW4sdIaJIlSW8RF9BBeggwtNnPlEm+cYeRZxY3vBfhc5yxUOmaE+v26+8CfpziHuP3iVC5PMCGppaIBInZLoIYcrafxElLuQLXcnl1CU3Ho/LzPA/WJLUKsbvAksNh+f7D94UnS1E9UEmeTYan7wlJWQrQm7x2yqO7CJfUj9Au8IIBWb6cb6W9PvFWTIoKy3HjlMkQVqLAh+uunjDn6pTVQNGLp2n9o3aJcxMpIc2Fn+kLFKT1Y8sYp0gp85RJBDveOpCWmphlHXQz583PmU+U84t7r35zlFVehQqFrKcua2kUsuiZlTTrm2zNv9IT1Ay5skSVPMQp3/wASzxXVbk9zNxRNHNlKUUkEXfjFGXYnHcwZVStJKZU1DcCmMuhaSHMmYJhSQTfWxvBXgCRE1CVBSilAJAd9InD0Is0pX42ZLCqGXKmJJu514tGmLrUqZflT10ygFSyT/qb3jRGVkXa2Lv4pC055tPNBAdm8Ii//ANdShb6FecVVKswVkS4BSo3iDLEBMlBC+6SslJYFtoT1GQTKinkVaKVdTMUVBgl/lgryK6NegWiYFJRTrS1lFSSxhoTDVVSDUCnSAlnzHLrE4EZLQnnV9FSUa5q8swJTZAFyWiT1VEFvZyWG9oa+pqVZ8NVTnMQlATZQ22hVqSb0OxoKmrmIQwGa22hi1ehUy5/x9ZOUFTRMUngFMBB2oO5k6cLlSpYaQp9yVaQ6QrYKMNlPmUki2gMRY0PPppakMmVMsGsYL0HWpnTsNkqRmWKgHmuM0tzRAzqqUJcspCj4dDd7Rgzz7bRpxxujmsRmoVZ2JLa22jjZsh0ccLNXsBUqFVNlkukM/GNvwyf2jP1kdD0yXMSUhaSb8o9Gnas41U6EVOXd2tE1sRe45XmSLwAMFKPizGEMbRN3/WARGqYEjV/SGIE1AURcj+YABK9FEP6dc4AIpkwB1bcIYClTf8vK1oAJ+8Ra+/5QWA6pwCbHXQtCAHvnIc8IAIjNYqU2p6+8ADhaiQ5ezfzAAittgXEADAt4ibl4AACs68gIJO7wwBzHKVPbaABZlZDma4cjygATElipWg+toAIM6kkKLXLw9xHn4WdWFrxyLN46lADKRfSEAQXnTlbhAMQYNmDkMBbroiF3a0NRsPOksDvYc4W+o6BUEu+gb9YBBJUSTx84HQ02g0ElTv8AxBrznKJOTYech3FxeBESQLcZiQ0SEMJj6QAOFkXb2gAdMzNZ9vpAAUqcBd94LALvi7uNOuuUO6AJM9gfF5coLAczyDY/SAYaJxy3I+0T2QvqF3w+Uk2gsPcPMeLQBSEZgTqREZAEJvXOEBImaNH1+kWRkorUTi2TSguaWAsdSR+sVZ+qUFS3J4cDk7ZoUtKRLSpaSlxx64D2jmPJKerN8McYm5R4SEys0xBfUDhFuLGpJS8c5+HqijJnp1EtqkM7WY8dDGzHicdH4MznZVqE5SQQB/Ma0u1UVN2Y9SsqUoJO8GwihOUQT6wEipOqlJDOwEQcgoy6mdMUokZWBu92iLlY0qMnEZs7K0nKrVyBZ4oyrTUsjadFXDaRMxKqju0BatfOKIk2Sz6UT0FJya+UXVaK71MhNHNE4o7pKEvY5nt+XlEYxeqG2bdJPq6QinkICkre+WwJjQlSK7NcS6cSkhcwLWbqPONMdvcre5Uq11oPgUuYgaJSNfKBA78AS58yoQtM2WUKSWEF1sG+jL1CVLph30oIXqVG1obWtCvSywqVSSZKp9MhClIIClan0hPYa3I5faGmmNKp6lCSGSpLMR+0SSaIujYo5tJIl5lpTNK7hSrxaiplnuKWpV3iJaMoaJLUTHrZ+GoH4f8ADl1B8wGnq0HalsF2VpErIr+1mvoIsRBm1InKMrIsKEKh2Q1M6YgjKM93udIEJsjGJKCXUloHSHqCrFJTFKkO/C0U929llbUUZ5kTElSZ6kqFw7xkzTrU044+Dnq+rABQAVKAINo42bJodDFA5atqh4lXcBxa8c7JOtDbGJu9gVlVROWpIyuwvwMbvhX+yMvW7M9KTMdAGgv9o9RjOHMkQsAMVB9HeLCsArKlkgOAT7QAIzSognbnrAA0ybmSx84AACr6EQAIqLO7i2+sMAROP/1Hr1rBQWVqiekrSkJPkdYdCsnlEJQHI0665QmCHWt03UP06LwDBSQVlQtZuvpAIfWyVakBx1wgGEVC3ie/HrlAAKphUdGBv17/AEgAjWou3+1yCYYgu9CnTvrrzgoLFMmqlhyHB+kJbjewK5qSlnYk3PXVodCsiXPC1lIJS22jwUKwFTcqPCSSS94YAmZNKcpJveFSC2cKhRCmA4NzjjHRCyhQ8VraNAAx8Gh1iMm/BKKGCy76h/SK2ySQbkMpVuXK37Q1LQHHUczQ7gaXv100STsi1QicrWG2vXIe8O2goSZpDMlhxgUrYVQRmq4AcoNg3HVPOUJLFw94O6gpjypwZm2hRkNqgwvMljeJMSVhJffX6wXQx0qTcZmsN2hp0A+dGucHz3gcrAfMrKyTysYS03AfP/sWJiy0CZJnJ+UBhp+v29oakNNIeUUhRUWby5t+sRbE/RkwnJYMfpEk7REHOFE3666vCluH1EXULFn6/T6RFyUVbHVmth1BMmnvZjJGwOvtGLJmck4pmrFi8s1JdHmWEJDv7aa+X6Rnb9TRSjqadBRklMwuQ4IZlc9XcG0Tx43kdFObKoqjblSsqWANuDC946uLE6tP8Pp+Hp6/mzmznbBnSgAVm+7NF6glokR7jIqlMo2s8OQ0YtQe7Krh3bjFWr5/RNGVV1HiygMRFUsiWnOc+k+2zPnrmrWzeHi0Q70OiE0slY7wC+pd7RJSsTRUxKmKEBElBBUNXdohk+0hrQz1SVSEpKlG+rFnMUxjTJtiktLdRdQ/1B0/eNEWVss/hpZHfBBYX9YtjFVZBtk0mqM0d0mSA+pBiyvBFMBCp0qe0xCQgljfUdD7w0qQm9TUkzZndtkIChYnUiJAwUUkgLz2MxQdjoBtaLKT5znghqh6imqa0/h5KVJlqLLWeG5ERrWxt6UTSKaRRg0gJWVFgl3icVe+5GTrbYmGFYaiUoGQkzJm3pqYGqYu6wk0iZUvu1+JADpu0NCbJaYmSQElQDDKX/OJp6kWtA59IqpS4mqfZlM0SVsjsBKQujQ82cAkWOY3iQbl6RiSCkoTNJI0s8Rv1CiT8TOmBSSnPe1gLQWluFNjTFJUhlyQniH66eKZTLowsp1U2nJ8JTfmLRmnmjDcujjbMiuny0kpCiq9simvvvGDPni06NWPE7OXxSomKWtEpaggRx88271OjjilWhzmILUhIKja4Abz48mjC3fOc/PVCPOf1/HWfD6cRJKUqD3ck846vwl/asw/EVWh6TImHu7quRdzv00eqx6nAyKiQTQk3NuJi96lWwSJuuYN+UKh2MqYkl83ha/XX6FCsFU0EsCG4343gAZU3Khgq7Xg0AX4hKklJIJ8uuftCpjtEfeqL5QQ3B+v4iVEbICpRmA6tt/MFaj8FoEFALDNqPSACPO/hfSGINCmLKJLnaEAaVoAuU9Dr6QDAMxzq1+uvOChWMFpSQHN7wAPMKVKsbbdekAAapCs5VDAFa3mHxOHhDI1KzLIKtNuMCSEJ1BL5gQbNbWGANsyRwH1gARWsKN/lszwAcM7btHGo6FjpcpYv6+RhDCWEkuCOZeIPUktCO31iLokrHIfWItIdiBIDCzQ46IT1HmEgW28okJCzK/2PvAhtsTmG26EgFkpUwNgYgSClTHS5cv9YW2wbkgm5dAecWJ6EGtRxUOW208+rxK0FMBSiSb2iE3tQ4r1JBNATcl/q/TRFSG0Oma+gJudW60ibYiQqSlIfVoLAJE0AMdeuvSHQB96AklJa30h91AOlRKbXLRKMqQqb0L1JRT54DDbTT1+8RnkSWm5PtT1Rr4fhCZKhMqE5iPlB0EY8mVy0NGLDTto1D/qLP8ASKTSXsOp86wss/8Ai1yP0PD7aGJQxyyOlznkoz5O1UdBT0ZCQs3I3jt4unUNfJycma3RZkywokEXDa7xojGyicqK1ejKVDQeUScEEZujBqmzG4N9jFU1W5fF2YVWFAqL2aKH7FsfcyZoAWAWTctt1/EYMj+02jRFaFeaQSouMrkiIdzCiPvZbMkhywcDeLE6EUakhIVMFgzvrtB3Naioo0xM4KK0lTb8OcJK3qF0hAyktLQsqIs2hjQlRWy/IkLXLCAsBJu0WRdaCaFNRJloKTMUCLuNotXoQY1PLVKAmiX3ij4gDrl4Xh22hVRYRTqngqICcz5Q9h08SjqxN0H/AMYsSwpU0nKNwxDRP6kU/QGZU16skmUpUuVLIbIHzW39oYiLE67FJCRVUssd6AwsNIblStiUVdIqHtFVSiFFJVPGqdh7RV3Nk6RsYZXGvEtSyQTcpJ3icHbpkZKlaNYSkFwCGG3CLSsuUUlGYlI0D224RJbEXuWF90EqBl30cgdbQxFGbLp0lgsA8hBKkNWyKYpUtWWWvy56RRKWhZGNshn15yETEpOvy7nnGPJk7UaoROYrpgXMUAopc8dY5mabZsxwS3MasqJciYWmKlhYfM9j5RgnP1NUIJbGcupM4EBalH66ftGOc3L6GmMUjKrJc2aokoUcpIB4n25daxV2rwXRn26Pnnn879V2BJEqY4LpJjq/DFUtDB17cj0WiqEFOSarQ8I9Vhts4GVJInMwBfhUG1cRpKAVTgFNa0ACE3MWJAEKgsXeAHKW83hgCuZmsCW1hUAnH+wv1+sMBjMKU21P6mAAJS3UFFzCQMsrmJa5vz66vEm7ElREkgIIYvwhDHTOYaFwIADTMExKlWfaAARND5SRAAK1pKtyBwgAHvAovcAwASh1BiGDObQARLDEqJcXYwMECouHZiSXhALvLZBYiGAz3cWgAYOA3MwAcKma4AVYkdfaOL3qjo9rsMKG3XOI9xLtHKgATEbQ6ZXUolTDflFT0ZIlGYpSSp7j7wJ0OgkOUvb02iSkKh5igGD2NhD7gofnB3BQhYgwXYqAmEDxPcfSEMZ2SMpb00gARUQHyl7bc+v2gAETHLnbVjA3QII1CRoD5wlqyUVYxnAkpcpbeGnWpF6hJqMviZRA094O4VDiozKAD9fzD7iXath+8vlKr2Dc9f0h94dtbBhai13Gt4g5eQSOp7N4SqqUJq0OBoWeJbqhLc6hVOmkSyQkFiNPTrn6xVk0NOOpaIgUoIWe7YsXS93vzH5Rl1L91qMlKlKYOSbARJKxt1qzpcKpWHhSo3YEl7fw0dfosVRujj9Vlvc2LSk+MMAGjo/67nO/2egUrIE94A77iJRqrFK7pmbiBBLE+jQN2WR2OdrULS6gbHltFM9S6Ohj1aXcEbxnZejHnylDS2X6xhyQ1NCehlVREv5phO55RS20TSTKSalKFkqUtmMJzfOc9w7UQ106cshMs20vxhKferBpJ6CkTVoZPdbXJOkX45eKK5IvS6ZLZpk0AmzvoY0J3qV0OFS6YHRY3US0SWgiXDzIrVZu6BUnRzr1rFqlboi15LS+6Mx8rpPhuduDxIiTAJkIE1S0y0C4ls5J5xP/AF1I/wC2gZ72sQgJQhMrNmWSdRwhi2J5mVKGTKCiBYARYisqS5InhInBybkAMzwOPgadagf8GhSu/KQSNLmIfL03Jd+uxk1OHVNNia66neWpSCnKBqCeVnvCtxJV3bGphOIKny8q7s7ncHcGCMtaFKOlm4mZOkoCrpSpmIi+MlRS0ydFUpVlrSw+0PuQu1jT1Ua0uQkk6tFUpt8/otjFIzJ4XKBUnxC903jNOT8F8YmfMqvGqWoqtuLxgm2zRErVFNLmozoID8YyzheqL4T8M5LGZS5cxV3SNL+to5XURexvxNbnMVc5JQDayXY6sw13Pn5RmV3Vc5/3dmyKT8854/LZBUM24K0ENyc9W/m0SWnOcRCa9Hzn6/U7PsepCCqYCA7+TXjo9A+2Zz+qTcdTuqecWJAuC3GPVdO3I4WZUWUzAQ/RjWZxlLAdR31hAhBThw9xw5Q0r2BjZxlzK1duN4GAKZgUCE6jSCqGElRI+Zx5QtgI503KlSYLGkKnmgsAS/V4SbsGiwqa5GmlxEiI2Zy4/iAaVugSpidQN+XVveCmLwJcxKABmOrnkegYdNgOxG2t4QAlTJLg3OkFWAkrQk5QohrWEOnuBKmYEEeIluHXnzv6FoTIy4lso5tQ0R9xgCZmWkOzh2hIYyiU+PU6G35QwHTMSWDi46/KChAqKypKkq8JIszQDOEWp0Mnj+0eaUmdahJW7k3cRLVCEuYSL6jeHT5znuKwMxI58YVVoMk7w+EC4EKrHYSZygBu8H+ujDVAuVHXbeBugr1DSpSRZY5PpEk1egMZSlklyC0JzFQCioj1g70woMFk+JiNhB3LyFAKqbZEpN+GnX6wdy8hQAneF4hJ2xpDJmBRvyhxlSGEZhKgAQ5GvWsSsjQKlquCON94L8klvYxmZT4gQTwiH1Gle/gcz1HR/eAWhPRzXmh2AcaiHHRiPSOz01FNSkKsFXBGjNB3JalkY26LdVVhSiTdtuZimc+5mmEVBFdcxJDg78d9j1pFdkrNjB6QzFZiBqyfKNvS4XOVmTqsvaqOwpJSJUpjsI9Biikjg5JObsoV9Sg1CZaVxTldOi/DHSyeXMHdB1B2teJQ1K5xpmZXLSlSg+mw0icn6koqzCrp4IYmztaM0pGhIw6yYtz4t/aKnsWoy6hSlBTHjGaa1bZYnoZc9RSS7cXbrlGeUbLIujOnFBW773Daa9dGMk7fOc28F1J6EaFOoHYWNr9XaJxdOyFN7luUAXUwygBztF0X5IyJEqDPkKgQ4IvvGqEk0UtNMbu0qKUiZdeoIixMi0ToWJCRLTJKxoEizmJwavQUti2qlnVGVRlpAFwkG/rF6i6sqcknRMKWnSxnzCkpZmuQBBdBqxpU2erNJmAoSl7ka8IkrF7ouT6iXIR3ipgJFmHGEp0LssELlISpSl2WHcjjE+5PUj2vYmomEpJUpgDubxK7E1TJpipE/M8tNtBqOniqSJxZgTpJoa0TkOhEwuQnQc4g7W5YtdjXlTF92CFZ08SfyifzNCv5ethKqVADKhJUOMVWXUQrmVASDMk3PC8JtsKS3BFWtJCVIUl7gEaxGUG9xqSAm4bMqE99LlAlV3Bin5DRPvTARSqH9pSQ5DX+0L5Pgfec72nw6TLk5JspTgHbQ/xHK6zp3FG7p8ytWcBX0TTVLCSUEuOTfztHKprTnPwOlGenOfqQKJsEo87wmiafOc+q0O17LoVLpUFYbMLR0OjVSs53Uu00dpSVIEoIIBcM4j1vS1ucTOu6WhaVPBBuQSX+ka3DUzIdE03BuRe/XnC7AbHlTCskW4l2h9tCbBnLKV3Y2Glx1+sJ6IaAC1kEXduHOI3znNB0EgjM5DNq4668oGtOc57gRTZiWAcM35de0Rb885zUdBS1FLlBEKtbYycTEsMxv116xPchQQWVqyhQ+3X8w17iY6kkJzJSSQRpbfrb9TLQCJQSoBL3aznZgIFIKD70pTmDlI0+/wCnWol4AcmUrK6hoGtd/Ty25coNQISsn5QbM3229feJV6gLvF3VmsR76/v7waIKsPMVFKULyanzdmiDV6hsRlSkzCSQWIeH22h2Opea5Atpzv19YO0Exs4GUJNg4MHYwsJExlNw66/mI85z+Ao4LOl3cuo7Pfp48wr8HXHzWDAae0TIjCbwHzXiHcOgVLLgkas8SsCRKwBpffztDtBqCSl3SkAC8QbsaHTMUklILkHeI6j0D75TOxu28STIsET3DmB6jF3zu6W9GhLQGDMWCgFteW7RKxEKpgdyBy3haDBVOSbkm3LnAFDpmAPfffjAtAGXOATmYHg0AUQpqFZrgNCsdDrqGOuXYw7ocXRGKokdcYVi0JZdWQQdAdxDpi0O57P4vJnUuRMwkpTZJ4xRlkkjRiVuy+itWpVlFnZzwuOEZlNmntL2HvU1ACUkqcNuw166Ath9p0iEvsq2eh4FQinlhawACGB/OPS9Fg7FqcDrM3zJUi9WThJTlNn1eNkpLHqzLCLk9DmF1Jm1qlEXBYeXQjjZc/dP7LOtjxdsdS8haynwLY8HjXiyeTPkgVKuY/hLl994scrIxjRiV5SCA+8Uy2ZYjErJlyOMUzdKi1FBczM4IGnDjGZyb1J0UaiUgjvAouGcRF7jRSnBGZ0KSFAuXMUzjZZGRTRTgqfOk8gYhTHSHmVEopCBOKbE5Ta0WRrYi3YhOnTEoVLDBmblFsZEGi3JCJkvNPUQRYXi5S0Ido8nFFZ0yZUof27JVxG0TjLUi1oX0YnVS0nLKAKjuTaL4ydFbirsX4kLWlSXK0l1KKdPKGBbkVDy3mOs3LPYDh+USuhNFMGbWzCpSQE5iwF3iN2OqBnKnKmJlS0m/wCsNMKLUyoRJeQvLmSLb/SBzoSjYUlQE3vJZVl3Gphd63H2sszZ9NUSzIVbOx1hd6H2lRCa6mLomDundhsNN4Yi5LmBSQVqUW4hhCVjdByqqbJUGQCDY3dvSCG4SehcSJNSkidnBJ1SnWL0kUtsSqNcoE0q5xB4wdlh30VVIKyMwY7+8QljolGdmfjVImfSzJSlEZ0kuLmMPV404tmrDJpnmuJUa0LIlKTMOYuCGs37R5vLHtbTOxjl3JNc/cyJ85IqBKyJCgoBwbByWL+bj2ipJsvqlfPHNvc7DCZS5FNLSZZBAa5t1eOj0ukqZz8+qs6ijn+BghnLx6vpY1BM4eaX2qLRmKUCQoDhfz39PpGy7dlAYmCUoDM5e3ptD0WgCE9Oz+nXOH3ARLnkqDCzPY8vSKpvuGtAxMJSSLWLxX5JCVOXLDkWuPp+0S135z+QIpi0KUFEtt5jr7wtRMnlEBLuCBd/rFkFpYNhkgajfyglFoEx0rKS+Y2/SBaf7c5qD12HVNJBDC/X6Q5SiloJIBM4BbD5gXJiF1oSodcxEtKSq5JZos70RoQmpCsoUM3neDviwoHvA5OVxx26/SF3hQxqZSv7YcXdtvrEZNMa0HROdRABBAY2gjJLcGrCcFzvE1NeBUMJoSNbHj7w+5BQK5xC2KC3Hr0gbewgkqJzKyka2HXGK7pskefCcHBUQx5R5h6I6wSqhJTmZrWA3hd3gfaRGdrlAD6wBQ6J5A8Re+phJ0Noczyzhnh2KgkVCfE5by84N1qFUPKnAO597iAGOZ4JYMx1699YewgStIBOYvcgQACJ5vcGI9zJUJdSUJZRSL8YO4KI1TQtIuC97HXbrzhN6jSAUpI5OYE7QNUMZqRquJJiZGuqCUuX13MJsERS6oFThQO3r08JPUGCqpC1M4seP09zEq5z8SJWXWd2ws424cfz/SB0tL25/Hr9SVXbQwq1KyJQFEpADAjZ9zxYC/ubQSaW/Pw/a/oWKN6vm38/0b2D1FTKVnSlYS3iMZMrLMSOpkYsUkICSSos5H5+sZLadGvR6nedlqFcyb3itS2W92aOp0WJzmYuqyKED0mWqXIkBIAj1sGowpHmZXKVnPdoK7JLUlLgksCCxjD1U6jZs6aOpgfiMicySQol/Xr6COF3+TsuFaERxGZlZ8xYDXy2i+GfUonj9iFeIzGAWsJtsDGpZrX/AD+Sj5ZRrp5UkFKnc6u8KWV785z6NQRn1ExJS733BiuU+7fnOakkqK0xLgrTYjlYRBtVznPYZTmKJBSAD4toiBQmSH1AERcbJWVVJ7pQcEkaOdIqaoldAy5MuqmFapQUpPtAtWBaT3pQEoQgJGwsWZotiQZDMmS6lBkomOtJuxiSryJkUqrRTXUklILJIDueMSuhFoViFJUvvSTrl0flF0ZaEGtSaVVSloZRXLKh8qVPE+8jQxn1AUkAEy9HvB3sKLonoSj+xOUkC+lz6RNTBoeXPnS9wQoso668IknasTRnVgSKzvDVd2+h+0VTWpJFmmqMQTMKVhBTchSTYxEZYlT5hV/ap3VuS7P00PyBLNqJ6WUsqT/1FgYnd7EaLdGqdORmVLUE8ePTRYiLLYNMhhOUtKnsLQ1uJ7ClTsymlzlJAN2MWoqZeQuehgJ5IDanS8W+CvyOuWZiTMXkJ/2G0KascXRnVrd0pbFTO272jB1KqDNmJ20eWYrPUipmKKWJVoQRdxHls+smdnD/AK6nOSlpn4gZATlUm4VYfxr9YpgqVm7JpG3zn3HVUZVJyJ71Sm3+8dTpcf20cjPP7J1NOsqSJjE2sNzbr6R6vCvso4WR/aZYM1UsEFZJG51JZPMM777m1g0aavwVXQ34hRKnAKUkiz6Amw46Cz7mwhNLn3BYKqkuxUHe5ubOPyP13iOyvnP1HrsJMxal3JAIFvy+3tENxk6DlLhZYA9faCh2OueCQgavmN4KBsrd6O9CbgNrBYqLXfskJAChqX1eJKVKgC7yWWOZQbRLnhx+kO0Apk0LluCXGxPXGFJ2MAT8icyrsC8RoEx0TgMyyfExA5Qq9B2LvQpTzr6WDbPDoV+oImyyslJI57/zC9g9ybvJcuUyFann6wD0QHe+IBKQczAsWeH7sVhypkszbqylnIDNp/MIaYaKgEZUO7gOd4NUO7HMxyA4AKXJ4bRJboQyJmaapwAElgeO3rtFncrI0RGYnItMvOebWaKhnmxrGHiULcNo8qppnaqgVT1Lsq1y20OxClzQgljAmBKagFik2f6Q7AbvVhgTsH3hWAffJBZ94dgH3yTfPe+8OwF3he5voL9cYLAiXUNo2sKwA/EXsoNtfXpxFa9iTYC5z6qJA5Oxh99hQ3fgMQo6265Qu4KAVVIytfRw/XLq8CkDQBqQ1zfcgM/kOtIk2vAn7FabUZiXUC0FWx16kRmpJLOztqIddruwSIjMOYKCWGvXvA5rbnNC3tfknpZBqZwSq17t/MZcmetETjh0Ovwns7T5RNmh2U94p+ZRasVnT0uH00mmUkJAKXtbnZveJfMtAsaTKlbISicFSEkHMbMzXt+UV/7O2Tf2dj1DsIlEmhRMUsleTLf7/WPR/DodsTidc+9nVzapMuUX4cdI7EX2qzmJWzmMYrErmhgD4bvtfr2jiddm7n2nY6TF2qzEnKUokEj7dftHNZusozaqpp3yLSpL3ygP6+0DzeBSh3Fb/n5JUJFShSXN1ZerxZHN2vQqlivUMzkKAMslSSWcDbW/C0aFnvV78/dlLhWhVqlgKaw4EXeBy7tBVRVVOUkWILkt9P3gSEyKapTHMMu5IDesWETNXUze9yGYCkmz8OvvDAc/3Q8wZX3Hl+8RljGpEElkTjkzAp5RCMKG2SqnpJexILsWAeLVEi2QinTOJnyUplKdmCmeDssXcRTUqRMMpd9dGt5QSjQ07HQKeQsqUtzox87eURTSYNaEtOqmmTu9EkpUPlf9Ivi9Ctk9NOmrmFdRKZKflbSGACZylT8oKWc+G7wrHRNVVapamWmxNzwhqVrQTFLppdXLLpLHRZ4w7tBQimbRylBU8ZBx2ERGSSVJnlMyRUTJaeS2eBAaVMqaQxmpm5dlEF4siRZdSuoUCkPLA0ys/lF2pDYcCWVkKMyYrU5tLwo7g9iRBCVXSdWBiaXgjuXadaZhAN/o36RfEqmqLa6cBLpUSNom3qQoysVSpMlSkp8IF7+gjB1i+yaunPJ+0iu7MwZ7qUbtdo8j1C+3qeh6fwc3QZ1KEyYwVmuLOSOP6fsIj7F+U6HD6kKZKlPl1OnD6R2+hi21XPTnk4nVSVs6SRPKkJRMBDAAuOOvLQmPQ4pOC0OVNKTLMuYPnOpIYuXvf0ezi2u+kaXbXOaa62/uKhCYoqOdQJ3a993/AC4RGa9Oc4hxDzt4nJvfXWK6JCRPv4SDZiOMPVai3JDPUbueGvXQhWFDFQJOVII1ZuuveAYCD43Kmc7QATJmnQmwvYwWKiQTUAOVa/vxh2Kgs6Upd3/mGACpqEgZdPXrjCsdBqLJUoHTWAATOSGKiQDpaCwoOXMBUcoB3gQMKYtRIYsXs9+t4bEMnMbAjN5sPeExjFSfEUqUoudYABCyUpykOS5Y6nnABKkzFMbMAxLdc4AB7wkqLtfxXhiF3oMsEPqAOYJgA8sRMa4U7abtb+I8kdsMzyzOfrx84eorATUKScpUbm93hDomE8vZXFn84diH79TBSjby26EFgL8SGfT066EFgEKoAuSdNoLAkTUhZ/8AJd7OdYdgVlzsynDahn6tEW3egwe9V/s/533gAEziXzKctr9ITbGkAZpIZzexvz/eEloN7kS55OjQnF3pznKLIpJa85yyuup8V1fX7fX2ixaaB22AqrSS2U6XIb1+n2tDTpWHY9hZpilZSpLuxvoXY/mfX3hLMlF1zmhdHFJ7ovUdGZpdTu2ZTgEt/L8dd4xzzO1Wnpz8P10L4YXuuc/6dPh9NSSEBRShLXCj9+uI4xieSty35bT1NuTPEoZQWGunLz6+wph2lpFekByTo+Wza/x5tFiyqq5znoJxD/FIUvKpZJB1Pn17xdCab05/0qmj0PsnUD8HLSCfAm949R0F9pwer3N6prUKSQUkMLOY6E51EyQjbOcr5ilzlkzCH0Hpp5R53qpXkdHZ6dNRM6pJUlXiynUki14za+DQ/cy6qk70Apqgw2T1ziLfbtzm5Jq9zLrKQpSVJXMJD6GzxX505zQPNMz5+MVFLLWju1OlPyiz9ND73FEHFSdlRHaQr/8AOrIm5OazdcIljzVsRlDTUvyMVk1aAUqCrWUFaxshkvQzuJIKoqBdRUdni6MitoglzB3hV+GQkjQ7mLGQDYhaWKA4cF4nuRKi502mmZ1oDLOVhx0iF6kvBazyVoJXJYb5rRaiAkISpPgmhIuwG8FAUxKmKUpE2Y5Td83ibz4aQPUexKqZLKQkIScttLkcYiqHqNSyZvinIdSTqCdIYiyZys+QruoMEvp5RIREKZaFMgJF9DqIjQyVdJMmycipyQ+ozaQ0gJaRS5EtMtU1KyLFrPDoLJpndzUELAJPlCegFFcwyqhMpCGTq0IC/TmcpOYSwljYHUjjErAmRXAr7guG2OmsTi3dEXRpUpXlBSUFJHCL4lcq8llE1bEFKCsWLxatFoVy3ClqnIIKkpIPCJakNC7LqpgQQpAKQLgaw3KmCjaMnHKlJlPKAGd8w9453WTqLNnTwto8j7TTjOUEJBJDud3e36/pHmMkrkd3BGtTI75MoBKTciwIa3X284ngx989f65+a3ROUq3NChqQj5nc8+Yv9No73Q4+193Ofl9fHC6h3oblLiAKgiYQjYG5F3ub8Wv53vHa1itOc9NjA0maSamxUJpIU5Sz39N9DpBGXn6c28/9IteOfr4/4GKiYsFKmu7aHg7tbW0LuqnznkdXYUusQpsvBgLjTkfaFboKEqYpa/ADcaDf0htVvz2+u+68CskTMLABdy1vygctQSHNQQHA1iPcOhhMUog5xuWh092GhOFEC1nhiHSpmzOAdoACVOcgEAuX0t1rDsKEmYFTBc5QWgsBGapkpCj4YLChZiWKkiw82EAEiJyBdwm1365/SCxUOucAUqBBvdodhQ3fkqTkAc2L7GFYUOZpSnKuWz7PxgAdc1B+UsWLHTq7dPDsKBUZu6ykHgfSEAypikDKQC7a3B4wAKZOV4XUksX8MFhR5ImoSLlQYC3Dj1z2jzKidptPUP8AEJl/Iz6Ach9v2PKCUV4CxzPSfEkAPpf2+z9B49odzF+JSVDL7E9cYO1klWxIKoqYuG2ffpofbprzn4ipeCQTUkOXhJVv+/OaEWn4GExJd1p134RF+B0w0TSk+HNdw/8AEAEZnh7acdm4v192O0NCNdQXYXDjSGoj0QKpwYZeWvDofSCh6Ad4rne2u94fakO7I5qiU+FrEEbueiOcJonF2VZilrzEFQZxrfQm/pb3gaLIuhBRSoO7DS7aEBvYDZ/pGfJdc/n67flqa8CjJk8irKCGRma1zawa92Fyn0MZZNrW3pt+N+9PR7fze+MUlbXPqa9FXpCcyUqAsXFjcA/Y38h5xklGn2/duvf6edm/zok4KW5ojEO8WAqa4BcgcGu59/cnck5mmlbXj39fH9+/kXYkiT/lkSkgLqPEz5c5SH2AY6aaDQ7WiSi97dfTxrr6ePX28WouCHk42gEpTOCgCGZTNdtCzX+x5iLFHt3fNfu9PTf0ISx6c5z7zouyWTFcQA7wKQkEkFzz/SNnSxubXPyMXUXBUz1TBVIlIMpCWCLaax67po/Likjz+Z9zbZbqKlS8yZQNg7xLqsnYiGCDkZdalQmnJckliRrHByO3odfHHtWopFPMUQmZKubMNST1tEFtbLC1UYZklsQlwWAFy/TdPE3B+hBZIy2Meopg7iTlADszceXX3pcEydsw8ZwWTNJqFSVB3sDY+fpvyiEoVoST9Tma/AFzQrIlIRtlDF4ravQe2xn/APC4thgmTpCitGoCydH2+saoNrcyzj5FJxOpnAEpCC7EEEENGiLvUpaNOViSyQhYCkZdG34vGiMr3K2ieZUgS1TggqPADdostkaRWKzNCe8LrbMAdoaXkGyVNSmagpWkg6MR+sT1IAXkrPhXfRuuvuIGIySqYJipjFRAI3EP2Ye6Hn0swoGRQSCpiX2eEkgssU6DLQlBVdJ4s3X6RNxsimQKSs1ImpfM3t5wpKloxp2TySoz5iZqzoMoF4jaW7JU2SINJKcTULyqLqHGBTjsHawin8QkTqKX3aRZlH6mGImkyTL/ALkxaVK1ZJ3haIaIKiYZawruQkEZQ4vA3QUT0RmXVMW7b+0HcgSZaBkJXnUkPz1iUWDRck1shIEpKS72YbxcpJKyFamhIlyQO8Uo8wd4tjOkVOFsGZjOEySJc6oVLcsFFVhEXk1GoEasbkAFEuYlaVaKA/SIzyp6slDHRk4vVpKCcudKrhi945XV5bVM6GHH2uzzLHaOoRWzJ6VBUtRzEpBZh+wMcd4pSltv/X9HUx2lT5yyp/xs2epJMsukkW1FwCAdH21tfgY29HjlHJz7vcqlJdyS35XP5NSRhJTcJBOZ/EG3Bsz28JIHBXGO3hvTU5uTD3rRfr7+2u38XsrUmimoGZJUL/5Kvvw+p5mNCk1S5z+vczSwSTf88/ire1MsSu+SMqwopbRV3caX55XD3+kSUn5K3gndVzlFxXfkJ7taQRZ9XuNrDotxiXe3vqQeFx8c1/hkmY2ZBAcF3cm7nr7QKVakZY2t1ziCTUSCxQD4mFwbuHH09miTIUJRTlAzEFZYEDQwu5+o6HhAB3plEJAACWLknTiS3I6nYcYkn6BRY75ZDWaDuYqJe+BLJSCfN4lYqEQxzLbh19YPqA4Pid7Nr9vzgAEzCASLjW/l/EFhQkTbeIA349c/aFY6GCgApa9Rtx0gANB8AIZvaGnoKh0qub36/eGgC74MUJJYasOMFiockMkM7awAEJgSoldr35QwBzKWODC9oAE6SkOTYac4APmVHb+imKbOoCxLrbXz68o5n+NJLY6ndG7LVN2yoZ4yoqWXqwUCfu3W14jLp5atoalHQuye1lKqYzk5jZyBbojjp7VvDoFLwWqbG5M9QIUPEH5B2H3+8QeL0JaUX04sgkgJKmIJs776cb+3nAsEqrnoR7vUsoqZ6gCiTNLgaSzqzM/6wngaf2eIPmeoKK2YCSZM0DcmWrS36/rEHhdDU2QzsXppCmqZvdrchlht+fm7c4axST0FbaI1doKZRcTmOrlQ16b2EHyGh+RIxeUtspCgwDgvbn1sfOH8lhbLAxGQGZYfzsNP5/d4PkPbnObDvnOfeOqvpllyoO4306/SEsD5zmxJNPfTnP4dEczEKcvlbY/T+LctIXyGS7klRF+OlW8TCw05fv8AzB8mSH8ynpznH5GFWgHOkknRuLB9fSKZY5LnObGrFlSdrnP+k0uo0WRdBs40Y8PMPx94xTwtOvD+7xW/Fe9m/FnV1znNkTy52VQCDYME6HgPN2J4Eu9nMZ8mNrfm72paWvuW96GqMu5Wuc/IsIrFhBdb5nIdvo7bkDlY6G2f5VO1p/f0vxf5rcFfqRVExJJKprvpZ7bW9Va8B5xPHCnTVc3/AE+oqsiQ86YmUiWM6vCkMHJNh5am/lweLHdX68/LTT6sUpJRs9W+G/ZvEqH/AN1OL96HIN2jb0eCbn7HH63NDaJ6bSSlyPCfVzHpcW5w8rvUkUtsynLAj7tHL66Tckjf0cUk2DKlGYsTErJawc3PrGFRs2e7L0ooN5qn/wCoGjm9ttTbiYnFVsVSvwWxUOjuwMoA/wArk6eh/b2tUV55y2UOPkqVNKiYHQApb7izcYTh3ak1kaVGTXURUkInSjezC32iueMnHJe5lLpUSFqUlAJdzzFv1+8Y5xcS5eiEvuiSlUsK0HiFw3RESjJIOy9UU6vBsKxEhU+VkVo6QBtFiy6kHiKU/siJSgKGY6C75y7NF8MtbGeUClPwbEKI5piFKSW+W4DGL45k9St460KNXOClglLBIuGaL45Itblbi0S0kpMwqIsRYHnFsSDLBQpIUkeJWw5RNx0Ip60U1D+4KUkd7MPygvliK0GyxOkrJQFE2D2tBcI6yCpPYklyKkjMtIEs2AIHW8YsnWqD0NMOmctxIp56JylJIAVY+Q3jFLrpPY1R6RLcjUlMpaZipZWVX13f78tYwy62Tk0XR6eEdyRFbSqH9xAD/wDbS7XgXUyjIc8arYmlyZFVaXOUoMSlrA3PCNuHrJOOvtz9/oY5YlZCqRPppmVCVFJ0J0t0I1R6iyt4vQrVnfLqCoHwpSQHizv7k/Qh20x6ZVRm8YIJ0veHoh6l+VUSJV5kxI0AfaLYzXkg4lhU+XLy9xeYsu53EXJqXkFBsdImTQ1TnF7AFgeEEnQLG3zn/NRpkinShJTJCgtnGvDlA1z8fcujiauub+/P1gPcSkK7hISdSHe7dabecRlG1p9Of3etL1NEOn7nzn4+yK81QKT3hOVO5JccvPTzPnGKeO9P41+mnn7Vfc9la2wwN+Ocv66PZMw6mmlrYFIVcAuAWt+bluI47TjjWqjynfFWj8euz/VOua3+XnR0/CW5SKWXdSAxLEkEX5/QRtx4YxRkeJpKPp9Ob+1NperuzLpj/ikJDPwHR/KL1FLYgsWunOafki7JoEu6gpXC3r9h9YlSE8bfOafQs/8ADomaICSbfMev5gpEPldz5zzzUgVhE2SrODYXfhob+nleChPp72XOP38+rCTTpmJCZiAeQ3Oh68uEHaQeBP8A256c/l2M/CHCpkpIQ4Ys3P8AOCvCMmTo9W48/f8AX0+ubUU1VTWmIYBwC+8JL1M0sM461zn9WRhcwF0oUCpju+rnlv7ekStlFIhJmKUSGBsVAABXofTV/W0HcFFmVMWAlJII3tffn9P1hqYnEnEyUkBS1MDwDw+5Ee1h9/LIuovuOurw1L1F2hFaGJsdL2uYfdYUITksWAcl348+uMPuFQvF/wBRzB/P0iPcOhyQAdAoG4Hnp1wgUrBqiMqCEpcC5I2h3QqsdE5AWNCeR9oFJWFMdORMogKAIIYG8F1oOr1DTNy5VOQQDmHrDjLyJoIT3KltqXbr0iXcRoEzVd2nLZrQr0HRKqZ8oUGAtfrjErEV1/04fDsnMcJkuzWSw87W+nCHXgl8yW5p0X9P3YCmSgy8JkeBmGUsPrCcbdh3yqrNuj+EXYukGWXg1IEnYShbr8oKjdh3SqrNSm+HXZKnQEDCKQpGxlCE4JgptF6T2R7NSB/bwqlF9e7EJ409QU2i5LwPBkjKnD6cgBvkEHy0He/AysEwUgpVhchi/wDgIi4R9CSlJmXivw87J41LVKrcGp15wz92HA5NB8pNUCyOJ5P2v/paw6plTp/ZXGKiiqFEqlpX40gnlwiPyUixdQ/J5nin9PHxXwsKEuokVWQg50AspvM2ff8AKJdjvT9eew/nR8rnLMhPwi+LciWUTJMp0p0zZnsOJA5fzDWJJ3zf8vuB5k0Oj4ZfFZJKZiJTAEA5vJjr+tuBip4I8v8AgmuoRFN7A/FNKVd3h6SToe83tbew4825w/kQt66c5+o3nXhc/L9DPn9k/ipT3HZuesB3MuakkAn7v094Swx2fPzG80dKfPwKM9fxDoCZU/sfXJyk37vNxL21vbj94k8EF5X5iWSyvT9oO0IOWpwWtRcOBKKRyJJA6aM2Xp4Jas14cspStc15sjocOrqydLSv8PUpJBDLJdhfR7HTXlbjzM2OLbi9TrQk39p1fPx/drR0aiqpMqUVTVgEpFsoLPYb83bkdYyvDJSX8v73+W69vobVNp3Ljv8Arx93mgVjEhQPdkHnmBD67Hg51vb/AGEVrpmt1z71+1r7hN9vjmx6r8H/AIc1/aaqRi9XIXKpZavA4bNsD5NyjRi6N9Rktc4/dnO6/roRi0j6Op+y9Dh1MUyEAFtdGaPS4sMMUKrU8vPO8krOWxOvpqaeZQICgbiG2kNJsjlThMlAqsFaCOH1f2pnV6Z9kXZfppbJBADEML6jrzimEaL5zvQtiSostKQWIs/XP6xbWpR3eGSghAAmhJHAByICO+wask2X4ZZ/6gDd4KaVvmn8/wDfAtUzMxCVNMoMkJUr5X1Nv5iL1J9z8HO10szFgy0lSnYuSw192jPONJ0XQl5ZSmDKoEqAVoBrv9tPpGGS15z+TSvch7wylALfg53F9zrtEE6fOfwCdlhFc6yjvGILMSz3/noxZ3W6CUExjXgrKWU3+yi45ct+ngjkvUFDQysRoqarPfoV4w1klrX/AGi7Hn7XqV5MKexiJmTKFQQRlDs/Eco6+DLGWhzckHE0UGZPCZVOSogCyQA/KNbypopUGnoWcO7J4oZ/4lUrLf8Ay1d4xzzJal8cbZ0EnAUywozUlZNyQCw9YwZMrexqjDtXvznNZF4Z3KVd2lQyjg+n89PGbt1uy+Mq0Zjz6Sf3jmSySwCgWBG56+sZ5R11L1JMH/j1KmAlXhUllvq3CBYlY+4zsSw2RMSZfeKUoqsQlgk9bxGWNWOLpaGFLrayhmmnC85Sbk3zX47mIdva6Qkl6c5/JfosUmz3QoIzjUKEWpy/AjKqJ+9p583NMlEEA3FrXeNEM1Kmyl4rLQpqRSHMwy9Gdy49POLFlT0QniS1ZVm0CJZ72VNM1OoDB4msva+c/wCEVhTYaJq5RZcwpAOhSDfU7bgK5a8I6GDN3bc4696p/SyOG9uePu1r32JV4giQAhakk2Bc25u3IfX2vbW6+79v118aW2vM1h105y/v3Kiq5alhSVFjaxLO7fmH8om6XNly6r8Ls048C8cX0+m3n28kCq5UxIVLlofUA3uB/wD592gclznj6myGLs33/v15+FVIiqCyxGpDMW8Nt/UFubX0iLh3bPlp/T9/ey1w9ChNGc9+APFfW7s5JYcd+R9FFKOiJdqa7R5M3KogEBnIvawD6eXTARYpEflmgiaglkr8TsL66H1s0WKRF4lzm/uWpM0MUsHvqQxcEB3PEj78XdkXiXOc/A0qerlKLIZmJAs7k28uHnvoTJMg8dFsATEsC4ULEFtecS3FsNMpH8TJfgBe36fSBxKZRUtAEykosEj266EKhLGkMZMmanKuWCCLg8OiYaF8uEvBl1uAy5hM2SyVagbPEe30Ofn6GPjTnP0OfrKeppCDNlFL3uNoqaad85z682eOUN0Rd+pJbISSDcQKWmpWxk1Iu4faxg76WoUSCdnKgTqXD9c4fepaC7aJkrUWLsdBfeJqTIuKDC0sQxtfzaJ2RoXfBwA5dtYXeSp85z8Bd4nPlSlSswe/57Q0yLQ0xRJCVAAAt9uMVybsnFKgpZIsEkkln/UxKEtCMo6hqKAHKrvwibkRSHBK0pJ1U9n4N+sCdsGqEm58RBU12tEtLIjjS45kbwAOS4Ac2EAHsvdPdQHrFpALuwN/aAB+6HGFTHYOV1EZtYYg0pJYawAP3ZSWYwAGkB3UH4RF2STRPJVLTchgOMNERLmSiTpAxgtKIZQF4SYUyKdRUk8HMhHmRC76GotmdO7P0ygVAjT/AFBgttkk60K68ApgC5S/HLBqCfhPnGEnAqRg4BFwPBD18iepXqezVNOQUpRL8X/SCxUZFX8OsLrAO/pZRVxCBrz4xRki5fQvxy7afkxaz4QYbVJypTLSNR4R+UZXgTdmtdVli7TOerv6eqOsl5fxi0BIIASzAcGbSF/jJ+S9fEcsdf5/kr4J/TuJGMU02sxKZOpZc3OqUoBj+Ww9ogukt6sWT4jOUa2Pobs4nCqJIwvDEpSKZIC2BEdLp8Eca0Rx883k3ZY7V4rJw6jmBU1KFEFrxpy1ZRjXk8uRUqrJc+vAzgk5VEaxlyt0a8aVmtgyTV0yWJDBidWjk5ovu7jfhkkdFLp0pSLKLNZ4iopEpTbJMqkoIQhQ4Of3idOtCFq9SBRLjQEWIiGhMmRPSpGYF7OGBvEu7Qh2kExK8i1IQVFrMfV7/nEGnuTsya6lKD4gkE3sLj9Iqkq3Jq/Bh1PdAKCEklmsd/y+0YZxuRpjfkwK+dUOUABkf6vb9Iplj9Sy7Y1DJrVIzFZyqBAtqPOFVukSUvctimnBlzCwBAs78v0iKi/I4ysrqQFkyShVwSfTWIfa7kok3tqXaHshPx5eT5EAArms7DhbjHX6OM5KqOd1LimdlgfYfD8GSDIkLnKYuqYNT+UdP5MpKpGH5kY7GrMwmdmYymuTY/f3jNk6SWsmXR6iJBOwybLBLC1gltOrRnl0koc5+5dDPFlCfIWlTTGCrWP1eKGvFGhTi9ilUSZYBBTmszOLRBw9QpoxJ60ykkoWQBsoXVyv9/OIqNssctDNnrmTE5SpysXcWFrfeE4prnOISbMHFcP3R4VEWVprFM4Nk4soJw+cuUFrqHWgh1Czk6D6RHt1GW1ommX3SZZSo31dxueHQhytaCTSZJSoqZawlcz5HTc68/tfnBF2tSLkvBPPqVyAxVlN2ZI89PaLHpuhxepTXWFYKluQSbhr2I4NydtPIRrxT7N/Fb/j5/T112s0wqvw/n2+v11TqyNVYwK1rSwVnN2b1Jsx+2nHXHKrr7v1fp7P77W+2qMFfP41tX97rfarNr5QOUzEAsxIGmxHIa+gOwtoTv7uffz0NMYc5uVDi0orVmF/8hZwAATbZn04JPBoa00LFCkOMbpwR4iCSQzJZ9+XC+l+Ds+4fYxDG6YhgssfDoNA/wBN+ZI30O4OxkP/ADqfDMNr3cudAS3C7339SQu4fYSUuNoICQVAkgMksSS+2uwLOdWvu1KhOBr0mJhZZUwKe/px5Ox5eQian6kGjQk1Imp8C9A5AOj2+rRYnZFo0KXEVylETSVJOrkk/U269JqRXKF7GxJqZM1OWWtCgFXI211ixMocWtSfIlYJCGFiLgfX0b0JLRKrIXREZRBZgX35fpeI0StMbLtlLtdw/VoGR7b35z/vkinSZc5HdrlpI0II1hNWqIZMMZxp/tz3MPEMBQnNMkWuzbKttwGusVKKenkwT6CCV7GXMwxYAyoKSltnfSKp3epgngcZVHbn8FNdNOlLdKNLvCTa1RVLHKKtoITFKAJNgdokpaWQG79IB3cbQnlSDtsdMzOUhKeUJSbGWErWFFTudbWf2ifcxUgTOGYKKSWOoDPB3K6CiSStljxZTp4onGmiEtAVZCkBOpcj3iT8UC9yRcyaRLSW3IcQlad85/IOmg+9CFhHdAsNW9Ykr2fOc9SNaWMFKZ03to7xMiEFjKkBQcW663hpiaPbNLDaLisMAEWUIAHUhI/ygAEgu0PcAlS0hI8ZvtCsBgGsOUABJd/SEwCMvvBY+cADCVlID6QNjGmSlFTiIEroQSsCI0ydoYoU0TWhBu2MZai42h2JDhCQGXqOEABZU6gH2hBqJk8LwXegbaiEpDl06wUHcAZSQfCn1gofcEkJSwO30hUNytCoCmgnLm06Mq5huTd4sTorkrOf7Ydn6vtMFoRicymKiHKU3LGwgf2gWhHSdlZ0rApeDoqAsIZ1qs/ExTl1VFuPR2amHYaqgkCR4VBDkBO/TRzstOVG3H7mgASWKX9Igo2NuhlEhyx5Bz+UFPyFkaETJgK8gRwPrB2eR9xKlCJYbid94XbQN2V6idmQO6DkB8pDH9oJIa0dGXVqWVBS/CrZOrDzjPJMtuqOcrJ0qTM7lEpwm6i2jneM8oMujJFRUmVOZQlAZi2bd2f7/lFbg265zUl3aXZq0lF3CmEkIAAbYC0OOKlbI962JpOFzsWrO5kS1HTMf8eDnZo04ugl1GqRVPq44jpqP4bUSSidWzTNNzlZgDqee5jpYvhMIK3uc/J8SlJ0jqaTDqSklhEmnSgDgOujHSx4I446IwzzTm9WSzAlIsIckkQWpmVCly1EADzjHljqn6c5/Ghtx00AmX3ySVDWIrE2q57+mu/47EnLtZnYhh6ZwIkhJOx4RnydPWiL4ZbWpxuMrTTrUKgKSUHhvHNyRo2wle5zq5lRXIUlEp3BABLHXaMrg3qti/u9QJtJOlJ/uoYHd7GJxhSIuVszq+kUUZAohQSQFPpEJxoaZj0/4mmc1CgUoBSkPcxVXqSUjYlIUpCT3iXLHnFnYpEWy9LpqRWqApQGwuIvhj5zmxVORbk0mRRmJSlaEEgJI0ibxaCjkrcrYlg0mfL72nBzG5Q7F9LRL5dap193Nq9dNyzFlaejOFx2XPopiXRkIGpL38J9PlB530gjcW4y1+6r3Wzrfb0X2Udjpcnfo3zXdfl7fZWuxztRiSVJzKmWGUJSXAbQM/Iljve+pjZj/wBfx/X9fX3OnGNIpzcQUHypZtWDlxqPa54AXYm0ydFdeLTQpQD24Mdy4f1DG/yjjAFDIxedmBUzE3BFh667n2Gt3AokTi6iUjKgks+ov67c+e7XAoNOLJCh3qRlL3DPo/E9HlcCjTpMUlpmAIKCtJICCWL229Bs/qLMi42dFQ4ulV848Knulkiz3fyJ9OQJkpUVONG3TV8uYEuoEEMCN9WOpdw3G/pFqlZW0atLXLl5GW6bG5cHbbZjz0EWJlcoWa9FiEuZlTnRmcFtzzA9NPPi5sjIonjZdQpKgkCzENe+/XF9NXiaZW1QDOPl1HAAacW59WhDAUMyip/mNns8Ia0IlSwczN4mNxZxv9vaESK9RRpmLBANi4vx9Pz3PIQqK5RjWxCqhlrGVQJSRfMGcGIuNmLL0vf/ALGXXYEvJmpS6j/j+kRlB1ozDk6LttpmHPkmSoJWhSS2hHXKMck9mjPKLxumQS1+JWVTsdYUZU9SLV7E4mELzN8wbj5+cTuiIf4hB/tgBwbnbr9YnGa8g0GlaSUusB/eJuS2RGg9SUBYDG/XCDuHQxZIC3s13eGpUJqyczVBSHX4SLc4amJxI0rzZgd+UWd2jsh2kxKAnNYF+MSvnOfUjR7cPPq0aSkdLDQvDAcqDeMmEAalIU2XWBAMpQDAkawAK2zQAOGJuSOYgAkSQzJUSTvvAIa/eJudYBhq262iIDAAkwhhBLjR4BjFAGogELuyS+VoABMtb2S4EDGhFCk6pPtCGPlPCEAxQTpaAB+6a7RIWou7UP8AA+0AhjLzEApvAPYtIpUy5RUsa68uUQyarUlB09CgohZaWG20eMLi+7nOfea09CTKFMCki2oLQ3D0F3EU1U+SARLSoEtdVzD7Ih3MJE9czUBI4/t6xGSd6saojUqWtSsk0KL3vYWHvp9YTtDWpXICM61hkpch+rxTN1znPwLYmTV0NVXLXPkyywDMptmitLuY26KE3CailGaoCSpSnys5aIyg6GpKwaPC0LnCeUjMXAA05lh6xBR1JOXg2BTrVllFJzFTDf0+8acfTKerKJ5O07XB8IpqGnTLUEhamKjxMdzp8XZE5WbK5y0NJVTIlpdYKbWtrGqLi0UUyhPxBBWV07pQgOp7OeEEorwSS9SkvGqepzIkzghYs6rXjIy1Royps6fTLJCe8CtS+kU5DRDYeqxNQQmXnZ9WN4lCK8ikzMqZ1RRImT0TCQE24xXl3LMexzmJVoxUhM/5jc26foRyckLN0ZVqVUyaakGUZRe2wDcoh8ltdzJPLruRVk45HV8huFc/zivJHsJQl3HPT50yZNKilhbjpGFy7nZqWhVrKWlrD3yZaErlgtrrzhSpgiPDZwRlJCiAGsOuESiyL3N+nmypYGYfPa4jTjZVk2NFE3u0MEuHewuYv+hSvQSZiVh5kwAM4JDMODQCMbG8Ik4pTTO8ZZUzLB8UJLtlrtzlrX67Pb0vVSxy5xHlGOYRU4XUzTlV3QU7qSSBvfiDd97kixIN2Ofclzn7bHo8GdZFzn8aI5+YtRZJawTwJ04+v2G0Wmorzu9JQmWSnMSCRt9CNHO1wBvDGVCZ0lLpCkrLJcixUyLFyxJYi5PDOIYyxTV4WQkqHjVmQP8AYapOU6uCeIsXa4CehF0i2hAWPDcm10mxccPP78oDP/kwe3Ofz6OpZfeywnVSeTlgx20IueVuBvHuRJdRje7r685+Jp0teU5QvMFJYuHBGgs99XDubjmBDLNGtDao8W7rQBSOCVPsWF34pvwAh2QcbN6ixeVNDInlNk2OuraPxt6AaG81IrcWjcpMQUpg9wwbVJ19tD7njF0ZWVuJs02JByJi3dzdJsPrs5/RhFikUyxmimdmU4UlRBc8dffb7xOyrtEWFhpaABoQDB3LkcrQDAMtIHhQlrMAkWOj+32goT+0qAUi97wqM8oFatw6mrEd3OllzdKgLiITgpaGbJgT0fOfr9Wc1XYLUUqlTEpzy9suweMs8TRzsmF4tSiCw4EfvEWjOmAQAokRC6ZKtBwq7u7RPuI0H3hzMFODraHGQNBS1AgBV76eUNS8BQ/eglkhRYML6Q0wCM4JS2Y3G0TcxUMJyWcO7XaH8xCo96zecdIxhJIIgAdgdYAHIYwAOGIgAcBoAFtAINJIHykvpAAKgU+t4QxJKmsT6QNATyiAHULwhkgN94YgoYDhBJAG8AWHlv8AL9IQhwlkkEajhAALAaCAY/dp8zwa8ArAMtXBxx5QWMJSFAAZX2iLVkkxZcqrDSK6J2NVd5NklCHfmYlKNpURg1F6mHPm1FKkqmS5hCdwl4peJpXRd8xPQrpxxAVlK1B/9k9dPEe1j7kWDXomhwsEHViIj20S7iGZPkTFFSkuQ++5iPbQ+4aTOSHVLYDcDh0IahYu4kWpQZU05kIYm+peFLHY1Kh6ea0qZLWQDMNizfvtFXZq3znET7vBnVE2UqaqUZgmqZnJ+a0Z5vwWJeSWhlpSV5LAWA8y/wCUPCk5BPY2KRSaXEJUuYQVPbkI6mLcxZf9aOkE49/KkuLpcg7GNyh9kxMpY/VGhpgQRnXoHvyhax+0OOoMmmMvB0qXMSZqmUovoSP4glPuVgtJUcvWCVKmKRkC5ilEhT6GKy0xa/tNIoWp6ibdrud/OK5y7dScV3aGHg/a/D8WxhSJ1Unu5CgnKVakmHHXVhJUdfi1ZSClTlmjx6NwiGWJLHLwcyuXLExUyQM2p1tGGcPQ1KRTFSmdMKZiRZxrENiSeuoNRNkKply0qL6AtGXqUX41UtTnTNmpmrTmADEgHdo5DdG4zUYmqTPmS5stRSouTuBBGTuglVG9IkUop0kZVOHBbaNUf9ShpWTJlJUpCVMWsBwi3HqQmqNGStKAw1I4Re0UkS0rKUqMxgCLM7iGH0BKpiFFGYNoLamIS1RKOjsy8Zwf8bTtllDNaxukW08tYrk5R1+/n1+73NmHqpY/9fXnPKPP8a7KSpC1LHgJdspLANYegA84jHqmqT9v29X51+m+vjrYOubVS9vT257fpz//ABCEL7uWrcFrJcl83ub++pEaoZrX2t+ff/PpaaXRjmjJa89iGuw2sErLRoJmj5c2UA6M/mX5s2kW45/M1iuc5TTKpdZjhvznNNTnl0eOUgCBhk7KCMuQEggG3n8qRcuQNiSYu+W7pnPn8SjNqr/Da619fK0ppN39qldU4rX0KQajD6ooSAklUs3IA1U3He4bcNE108r3356GWfXdO19362tNdPSm1WiTaqUb1P2qw6YCFzFSFBRT/cSwUDs+n7mBdPKXi/pz6VpvpuZpdYou467+vi9X5ett3VLVVa7dOl7QYXNXLKauUo2a4ubl/vpsTyEJ4JR2/S+fX8wj10sekXXs9+Xo0td7SpGjS11J88qoSGGjvoBZ7toPtsGrcJR0kq5z9DpdP8UWSSU3p93vzx4e2+lT11QgkGYZeUElSVMBYPofU+musKmjrKcJ1Xk6SgxmWslM1SUqfVTAMRcO/EkcWbmYkmQlD0Oho8RTMYKIIUzXsocLa9cotjOyqWhr0tUzOsBiCCzgOQH4Czelg0WplLWl8/suyKhRu9ixuSQBlfUnmm+97amGmVTko85zyWM78YdlfdYabwycREsLwDZGbOo+8Bnk2nznPZgrbQHlCZCq05z/AJ4AmSwpOSYgFJB1Gt2f7xC/QrlHUxcVwSXNJnUrpVc5di0Z8kGnaOfl6dp2uc/I56bLmyF5ZyCgi5EZ29ec56GetCJg+pDlresFaiskB3ETeqEtGPLW4JuXELG29Ry0CZk2189Is2IjFWa54NEQBCyQUPYHSEtxs+gCUtwjs2YaEkXD6QWFEouHhiHdmJaABIWSWYwbgOdQBB7gIFtTCYD5piQwSDAA/eqUGUkPpBQEstIyBxAAYAIH6QgHSCObaQLQCTMEi/OJAEhbqF2cwITJwXDvAIjvu+2vXV4BgKIScrD1gAJN8yy/K8IAgpAAIF/rAGoXeyzYqg08hT3HypNwzGJNReoW0OJYF25xGgTF3YIKSPQwmh2kU6jCKKpAE+nSptCzH6RDtJdxDIwOgkgoFOACSbbQu2tiXcQVWCyyT3SABrYxLsXoR736lE0BlLdctcuWA5Vxg7EPvZFnkzZypcuaFJScwyl4hPH6E4Tvcq4hLKAClYKR4i0USiWxZzUqv7nEhSuVIJ+bjxjnZE03ZqizfoasypyQtJsSTfUP9P2h4XrQprSyzg1Sa/HF4jPmLTKlHu5aVBnPGOphuzHlqjRxjtFKp8UkgrfIdt+MbPmtGbssw8Wxuq7R4uubTzlIpqPxEg3KthFWTP4LIYTlpXxSNF2nGEVla8qoJSUE6K2irHlctycsdLQ3sSxnOAZaVFWV3Gz6GNFFJ5r2wrKismKlhS1MnVCbFtYzSi29dS+LXg8/7MysTwbsx2gxmrnBKkLWiWVBgAPyf7xdBbR9/wBRZGrs9L7EdoKzHuy2HIqFInzVSs6iFO12684ulidFHdqb8yd+FlKOdim2sYcsa2RphK92Yk7GJctfeoWnW78IwZZ9hpgu4r1PaKnYhKrqLuw6/mMGfL3I1Y400Zc/ElT5maQSqw8hHOlbZsTpBSaWYsKmLSoKN7hnLdfWLI42VyyGlRkKkAlQJEspAfl/MaEmtCltbl2k7xeVIuSgBuJe0Xw02K273NASpnhmJUXCdOFz7xo7dCruGBzsozCFAkEcfeIkga1Skoz6jU7l/wAojLRWhoqy5i5iQru1FwxIF34xnk2y6OxmVMpM1CpaxmRs+qfK8ZJKzRF+DmZ2GS++UZJcEuE8t+Wug/eJQyU9Nuff99eFtSa1wyJLfTn315dfrTLuD0dMJqhMWAopykszjQ+/Hy5R1OgtS5zT6L6HJ63I56HVSMBppqQUoSt9VFIJPO8dyDTOVJyuyweytHNSRMpJSwxBSpCTa3Ll9YvaXpzXn3FNv1K1R8OOzFYVidgtOokFJPdjRj7Wv6e9kVWgm36mFW/AvsLPeWnB0yCfmUiygXc8G0AdidOEWxfb41+/n/CLt+ec/U5+t/p8wU/3MMx/E6JSR3jJmZgHe6kqFhY32u7ARTlwrJSrnP2LYZ5Y9Wxqf4SdocHQRT45+Jlv8s3Zjo4A4Rz8nSNaxOlg+JSg/tN/qQT8JxbDgUVlOVBIBMxAcMwcnhvGWWNrc9F0nxOOaKXn/r/b39fYuYdi8yTlSpQIfiAczvqTydzZyQbMRFOjdanz7ufqdVRYnmSleYkO6VPbXW/33i6M/Uqmq28856e262KWp0U78AdgxYPtrFiM09VfPHKv+XfTPJPhY2LC/JuY15txhlaXPx5yyVM4s6SCDpzvrr08Owc+3QYEs1r6lrmzPAQllsIk3JI9jBRFzvnOP6gEub/WEwteBjcMRADdg3Omo4HTg/0iE2ktefT3IyV6FSroJNYwWgEg2JPR/iKJYr8c/T/vijLPDfg5+uwabTFS5aTMSRqADaKO1r/YxTg4lHKQCFZtSC8SdPcq1WwwWgEgC/WkQUldIm061Fm2beJW+c57kaH1APGJWIYpSpwU2NiDvAtHYH0AdP3jrmIJIKgbiGA4QQ7KgEOAXuq3nAAQSQbGAB0pLeKGA5SNoTAPUekIASMpBEMCcZggG3CFYBBwGKTAAaTqDDSsLEoWbQaQ9gEk5WtYXvtDQgs9n2goA0r0DPeEA2Y5icove4gGIqZOUNeABgk6uIAGWPESHhASCaUMH56wITRIZpBZnHEQ0KgwoEudNC0D1EE4Zn1669YVANlRxhUO2Cwd4YDu4yliDZjAFFCqwWinKMxMkIWr/JIYwr9Br3OfxbspXLkTUUlaXKSwmPq/KK5QTWhZGbT3OFm9me0OF1smZU06VoQvMZksuA+ojLPDSNEclvQ6AKacVlgo8NIpWBRdouc7VMq45iFbTYbMmYer+9LSrKHYExvxKtTJkdujzig7QdpazLOxOYkzEOqcouMg4NxYRY0RdE0ztdieGpEikngyJrrWAHILXDnj+sVOPqia+p5D25x2fSdtKLG5dYDT4clc6YFkHMQbN5Px+8acHTKatbkMmbttM7Xsb8euzGOyVU4rgFoTlmLUGCi2z3+n2jZ/jOKrb8Pv5xZnOzrqebLxGX31KpK5b2a/vfV4xZMDitec5pTd0cmpw/xXVOwjsDXUsiWpa6mYUkSiQcpN9+ubRLCmsiHJqSPHPgn2+x7sn2slUFFWz8QweqOUSpqjmkhjYW4vY78Hv1eopw10fP5M0VrpzlH0zXYnNx+ppsOw+d3UyoGcrd2GwtHClb2NsVW4GIdge1chZM1CJqCxE1JLKP5ekc3P0sp/aiaYZktGcxi9HX4Kvu8QllKrZTyjmT6aadPnOe22GaD1GwmqVNUkjxJJFjsP5iuGLtepPJPXQ9DppEipkd8wcahucbI41Rmc2YM2eZS54QxCFPY3YaxRONP7JZF3uaFDXf5gOEtZ4shJp6kWka0ioGYKclxodI1xn3FLVBKCcwmIJcqciINJjToqTc8ucUomqPeXIPExXJeCcWQLTNkEzkz2fj5RnlGmWp+TJxCuKCpIdKhe4t5xQ4ehYp3uY1ZWSaaR3kx5ilFwGb1eFjw/a1JSyKiph1TOn1Iz+E3IAIdJYgMON/ryjs9Phmt/bn7mDJkVUjssLn1klKUpnKFmAJ5bx0YNmKdHQ0uJ1abHIoPxvFlsjS8mtS4o6QVggvYCLVKtWVuN7FtFVSrYKQhWwBAPlrp+5iz5rI9hJ3dLNcd2jXQBoFO9wqtiGqp6UoYoS/Kznp9v0h99rUSTMLEMLpqh2BSpgx5vGXKu52dHpLhJS54/n7ji8U7NIlTO+lqWVZWR4vCo31JBI1L7G7gl4yZMfoegwdR5T5zb29dUwppJl5k5pjg6qcnTbi1vXW7xVGLvU3PJ3Lbn5+PO3leq2KclDICm2YbH26vF60K3T0fjj/GlxM0pM0sxSOAs/BrenWsSozykouucaLHfDUcgCxJI/P8AnygojKV7kmZ2vZxtDRW6SsMEEXbm3GGRpoY6O7NCDYYnioDc+UV2w15z9wSlJJzJChuGsYluvQmtNUKwc5XYlyWcvdrcXGsVuP8A6r9P59OLYnd6MZaApwdeI9L9fkISVvTn7fT+2Uyxp85z7zLrcIlTCSgFKlXIADdaxXkg2rX78/vQyZMG7Rhz8LmS1Z2VfY9cozdjUqZROLhoV1yFB5a0m7vdtYnoirURUwu+o0iVEQF94SClg41Nz5dcN4Qz6ECcynJYR2DCIpA0L2taHYUJJVc5i8Ahy7+E38+uUAxAqDeIwCJEKexMMBwUm5MIB/CD4SW3gAPvQk6A+rQqAITAVD/EDTeCgJQEnQ/SAYjr11vDEOFNtBYBEjVxD9kAwa4G94AHaGIJOX/IfWEMZs1naACRKSUnygEMQXuG6EKhpjZUk5VGGtADIAFuFoBCAL2UReAAgoqsQ22sIQwJ1USYBjsWYqfZoACDu4UdYBDqKtG2bWACCbUKSogoAG7w6AzauXJqkLlzAWLhxaFKFokpNM5PEsHxGim99Sg1COAAcCKXj1tFqnpTOWxrEpi0/hlS1SlA+IKDF+UT/wBUQ3OAxnCq9M5U+UuexdZyktqDoPL7wW+fsTVHH4niOLyKiaZcqYlSwAZa1/4kbHoQ6vXnOabkjyT4i4ZiWWZNlImyjVKzrWk5gkDUW5c9Rs8bsOaqi+e/NqvXRlLxp3LnP1/I4vs5Q1eFpXJTKRPmEKyTE2KVEhzo2+v2uI2vqFNUuac9N/QpeFrV815/09w+E+K9qMPo50irq0pkzFOnvFkBKW2Hlt/MYM04tp1f8V+Hq9vwLYx8c34jnvi128qlYvUUlEJtWJaVFalK8KVMzMNXGlt35xPpowvXR85+HqLIm1ptzn4mR8L8C7UYljUvEpktac6swSCyUXPysSbueng6jJFKktGuc9GSjH1eqPrbsn2aNEmXV1CkqqrKK2PteOcl5kWOV7HqeGTFV0nu7Eos2xEW16FV+pwnxc7JJq8HmV0pKZcylGYbEp3HlFPUw0a8lmGWp4hg2JJlVCDNISErALnjy9/aOLPFraOnF0qZ3NBjf4WYqQmYVJU+UHhs3W0SjaVNc5+xW97I5U5FQqYM/hmgl9XvGdx1osT0Cp1rkTP7ZcC2mogarQejNmRVBcp0nKpP+quekShZGRZk1k5ZJcAgNprGiLsrYqpGc97TnxbgcIUo2NMpza5BBTOADeHWM8vYsRzuN4gZS2lpUthqS4vFVE070M/D6mVXLCarICVFkt9OW0a8EPtXznPUpyPQ6/DsOp2zplSwUpLEAAjq8dfDjSjSMGSbs2pNFLBBA09vWNCSRTbZcEhKUtlUGOmvX7jjEqpBuSJl2yk2O5PP9W6JhdtDJ0m99PKGorcLL8tYKRk1YaRFvtCrAm5zoeREQ7/BOMF5KMxJBAsYi05G+NtVznN7uhWgKZC0AvqSOHp1yiM2maMTcVbfK+7wuVRi1FHKSo5LPdiBfXfrWK3FHRhJxHQlQTm0fUkWHX5ebIvu+fc+aePutSyouXA5G7X66ESRRN27JjmBLk3+sMiEiaUlyH11v1+5gEyQzkuSFEbh/Mfp0wgFRMmYnIUhTsDqdNuPl7wAgksCRzb1c9frCHYbAgF2vuYi9CQLquxAta2h4xFwTdvn9EtBWdyA+3KJJUF6UAQCnKUskhyAIfuRor1FGiaCVJc8d9eP1vFc4qvYrnjUlXgzZ+HAKdBUQDoz8P0itxrntf7fr91EsS1tc4vzf3UFUiN0gklnBivspUuc55M88Fa85Wv5eGAukS6RcADhEHFqyDx1v45zye5gnXcc+cdjc5uw6Tfj1aGIQSToWhUFhpd2v5neGISncwAOkgG9oAHDEaW4QALQaACAYnJYgwATSzbnxgsRI7REYSVCwOmkSqxBZQdFGCgCIfb3gQDwwFpAA4bUh4NgHTlN2NuAgoRKS5ASC3CGIYsCXAhUAJKHuDa2kFMY6TmFgbQIGOgZVOXh0Kxy5OljCoBg/wDqRBuACcwLgXa3XWkAxCat7mBhQZVMZmgAGZLUoHME+0NCKM6SsFxzDM0SWrDYpTJqZQdar7DeJdirUXc7MbGanDJgCKuiRO1IUUj3fyaI9g07ONxTCpRX+IoM6UPeSo2N9vL9YHjW7HbOQ7QdnJc+m/FypaUEBlIa1tXB8v05wnDwuc4tCcJ+p5f2mpqYyJlJOlIOWzFOqnJII0NvTyiMO5On6r9uf2WSqrXOc0OLpcDSJqlMnLKdZDPm9tnv7OYuUpuoy5svb0f1Tem5F9urXN/6+lL2MAfECswXGKvAMVQZE1SSqRMSwzMGvw1tz9GvjCWTH3b8/B6e37kJKMZUtOfkamCZu01R3eJU0uYUrZc1AA7wc+dgfTnFffJaXpr7r2/q/wA/EnBLVb6fXnry/o74cdjZdFQpqafu0qSHOZLMbW/LpoTTk7ktfr9ecsrbrSJ0/wD6gpaSsFClRMwXUzuBGeUkmWY15ex0OCdo10+MrpFJUmVMSlUpRcJVxB52hRaFKLW50/bKqo6/stMxCSlCzKS6w4dJ4HhDzuLiPFFqR8v9v8ICcK/9W9mpOZIWlNTIlH5jsoDaOUuyT3OjHRamDh/aqdUyFCZLnpmy0gl06gpt9OtIi8Tbpfrz8QempvUvaeUJYKlLExj11u3N1HFS0XPHvz6Um9dS9hnaehqpikipSqaxBQTcXv8AeKnjd6c5++y1qV1ubEnGqYIzy6mXlv4cwffbWIqD8g5J7F2mxgFTImJW9mBchuP6xeoSjqypyT0NFNZOKDMSial2I8JgnFpWOLKM6pEx1qkBbXJaMs00y2LTM7EKGbPpitCZoSbgBTPaINEkzmqegxBNcmTSyp9l2SFORf8AeNnTtvV7f85zSrKel4HQ10uSj8WS9ievQx1sbMGRam/LlmxSSw9z+lvyixsrSLEtKkgJKgfRofcOiXI6X5Qd65znsNJvYEywCS/GIuV7E442wpa1SyQFBhyNognrqT+U1V85/ZMqatZAzH5gGdrvx4a/TnDpUWxilv6ft/z8X6orTWOUgg+Fjffo9awLQ1w8mfWJJuE3cPbzaK5M1Qg1z6FEUpWXQiym2YW6PQhF4/4XKGVLJuS59f1MIbetkoQEMVAkg6H9/LpoYgVjKSBwa4gExhmd0u4vaAH7ggg3BDQxN1q9gwtQBysG5wDJ0TSAXXoW4gdX9oVCslSq3icMLv117QqJ2SApcEC4L30hNa0CdqxeDcHneEMYgNbXe8MAC5tztaAAJklKkskWALAfpASVP/YrTqFDlWUMTfiev2849sStwT2KU2kWCBlU/MdflpziKgmtOc5sQeOt+c/j0R69s0bjzQnaAQSDe53hgShUu35QAMoDUPbWBgCZbh94QBoYC8ADFCVOw9YABIIugiEMdM1b3FjygCg0rLOYYEyVaDSEIkSQzGDcAgX0vDoYxPXO8IQaCMrOOUSsAoAEJpTYJeGxBCaTdr7+cAUOFBrn6QAGEpLKDObl7whWEAwAHu28ADgvDEPaABMOEIYxAAsB7QAD3QJzN9IYWEOcLYADOVYGWRDCgJgCkAqQQ/CJJpMVGfWYZJqZbEHWzG4i3ui9GRprY5TGezc2SlUymmqKQQrKoc3bmIcqSBNvQ5pVPUS1snMVAMcoIfU8RuE2fjdiSCKSfP4G7MrFUrlycye7zBiEqLP4Q/BiVO+lwLOb2Unovpz7tPO78EDwn4x9p8H7K4RUYtNTkCR8p1UX3s5Nh5g2iWDp/mNdvrzngnPI4qmfL/Zf4v8AaCo7dycdxPEEyMHRP7pUpCcoWgsBm56fvHTz9DjWLsivtcvn3mbH1EnO29OUenfFenwDE63DsbwbFKaomTJKmMpYKgLlOhDFwTrrtGDBjnGLhJafrr6a+Pp+GpplNXa5znoWvh/2kwjD6uYrEaxIKZgzDvA7AEAXsP0ECwONNc254+iCeTuevOfee9Ufx77H4FTihGKSkGahJUqWUrKSoJZxoQbji7Hi01hWi9OfqVOT1Zn9hu2EntJ2mqMRw+tlVFJNmZgpCnA4p5X5fSON1WF4tHzX+DdimpI9b7Q1czCJNKuWsAnxSy9go8Yqg71JTSui+jHaav7Oqmz50tMyahlygs34294WS9ggktTgez2DVGHza2g7hSqaomZ0pbwMVHR+GkZ1j1LXO0drSdmsHQoKOHSQp7Mi8aIY73Kpz9DROEYYR/8AsZJ3+QX4dfrFjwx5zn3EPmMiPZ3AlrKjg9Kp3v3I/SD5SQ/mMkl9nMBSSUYTTJu9kN1r9Yh8uPkfzJFyThuHyk5ZVHKTwyoGvX2iPy0PvZOEyiMuQEDS0TUItUyLk7tFSqwPC65IEyjQ4NikZT79bRCWGDehJZJVqjNn9jMHmJKAJoD65+f7RW+mhJElmaYqDslh2GqKqVBJO6i54RZDCu6yMsro0E4eEhrBt9xF602Km73DEkp1H0tBuMfIEuQbtb7wajilJiUoJGgLO3PoGIl0MdvXnH+HuRqmsXdjxP0/KGaIwXnnLf760RKmAHU3YceUJ6l6hdNc88/kJM1IAtz0Z/PfSH3ImsfqhLm6MpRYZXv1vCbLIxUec5qVh41EqTZtDxv9f1iBetCQ90QRlfzMLQlzn5fmQrKXZLOfW4hUCZEQ/iZwOvy6tAPcjsmynYWYhtuurwxDdy2762HHrrgWFAEMSOBgEkNACsk+VWZ2O7fduDHSGR3Q4mLYAg6WLO4/h4B6EqV6kDiLcfz1+jwmg7qC77/qW1D2t11vCaJReg6VlRZoRIc2Z+I33gAbMkAkAOkW8vy0gBPwMpZD+EvseIHX1gDQhUpAS2Q6DUNe3Dy87HSCN+SWR2z0lEwn5m0cxqPJB5n0vtBY6GzttBYUEFEMUsYYg+9J+UCAA0z1IBSUi8IAcwUWBIgASnFwrQQAJKyXCm5wDJEsQH1gAdKCfCIAHJIcKt5QhCBLWP1hgPmbVReBgHLL+8KwJAohoACUQo2J06+8G4BJuAS0SAdIy31u8MQlZi5DQAElSAHU5I3gAmAXvvfyhCHvu3PhAAvLrlAAKVlYOZg3KDYCVIzcYBBAeFuMMQBOp5wDAPd6NpyhDGUAUjcW9oAAyjVg3CHsMCbJSQXAO1x1wg7mFWZVThqZjf2ZZS+20P5jqhdiMyu7L0VWju6iWCLNlADRO7p85z6KqOOxv4NdjsZkql4hhkucFKcpmJcProRpYew4Q4ZJQl3RCS7lTPFe3H9DXwo7Td5NppdVh1RNJ8dKpgTzSwHKN2Pr82FVZS8MJuzzzFP6HO0WF0Mqn7K9vacrkoyy01lOQ7aOpL3fy/OLf82E5d0kCxyjGkzx/Hf6Vv6kuzmIVNXT4XTYvSqLn8HUpBmDglKmNgPcAxrj1fSSiovR857lLx5VJtM5DFMC+IeE1Uum7ZfDvGsOkqIT3yqYlIDpBuxdrWB2cbESUcbX/wCOdsffL/2iejfDr4rdnuwuGDCVU1SZspZKVlPdFy5BILEHTUfVhGHqekeeVsux5VjWh3lJ/UZIxmkqaeur5qFSGVK70KUFNswG+xu9ucZn0HZp45+fN9rfnuWvk3fhx26xbtFXqnyEz5hnrIllRfLbXKw8+HvGHNi7JuC8fvzlGiLuKb8n0X2TXidOUUuL4dlK2dQFha33jK12bE19rQ7gU0ghxL+sSU9LIOGo34RLtlB4w++xdtD/AINJHyj0LQd3Oc/UfbznP0IlYa98qjuLsYfbznP0I3znP1K06lqJTjxFoPIFRc5aXClMeAaISdE0kyI1s+S6gMw2Y84r7ifagVY2gf8AklKT5mBZAcEJGOUjeJQHrEo5HZFwVFtGIUKw/fDaxiTnZFQZIZiFJeWoE6MDqYlFiaKk+YUKLXs/nt9oi5GiEa19Oc+hTVWOoByXPX5e5gvyaVDt05zTmjIJtaj5lq0OZuHpvo+v5GCzRGGvP69uWVplWlJGUkNt5efkPvpCs1RVIi/H5WGxAD+YPHz3/SCx9tiGIpOqiN7tu36fTjBegdlc5zfwOa1KnUCo30B3PryPm3k5Y0q2DTXsSAshuVtz9oAoY16FHKqZcF2I1L8PN/4h67kdHKvOn583DFQkh0rGWw4cOvaBqnQlONXfv9wQWlXzAeZPXEwqJJp7D9+DqkXPHriYRJpoQmJIzFIJN/O8MT03DypI01348+ufCEAISomzgvcC1/Ic+rxIh4BKk6ADjo/pAGoiSxJbcHmbb78YBr2CJAukgjr9IQ0F3oJN7DdufXtAxoAzGdLqGzcDZvtCd+AGzhvO+mvQ6tEVvp+v6jfp6CUsWKQ0TFuV5k0CzjTX19tjr+sIntsempDAq6GkaTyYaSEKCSNXDbcIjelkq1ofvwzsb/tBXgd+Q0LJLbHTr0hp2rItU6DuDaGBKl1AkWEACDi7bdfaFY6GKvEQ3GGRGXYkGE9CS1GvmGUtB7B7kqZik5fSGIMnMyjuIBDk6eUACNtYACSQgX3hbgGpKiAoEaw0rQMYIWk2IYCH2u6FYaCoKYKsdAYSQWSgkkvDsY5Uzs9g5gSt0DFqHECANMxSQwMIKBNQ4uC7O8SpoVoJE4J1B3b6CBqg3F3pclteMFUAaZwGoPpCCh/xA2eAVBd7bQ2H5PB7hQswUrKHs7weAGKksSXIED0YDFQSct2IeB6aBuMsBBcjXRoNB7geFRzqfXaEMZgbBLbu8MBKlICWIBvuIakKitUUUmeMuUAXe2sKxmdNweRnyEJuH0geisRQqMEpHKspdn1hqTWg6KE7BqKalUudJlzEF/CtAV94i+ocBrF3HJ4/8FPhh2llKGK9j8OUsuTMRJSlT8XDXicOsldJhLDWpxs/+kj4Sq8ScLmoUSwacptBt6fUxf8A5MqrnObkK1s2Oy/wcwLsbVBWFr/tIbIFC6bDoRROUsjuTskmkqR6bToAlZGDp368opyKkSxvUmlymANt4pWrLXoiZWjc4nFW+ewm6QiE8C/nDXqId8uuvHWJRd7EZKtwVFKhlKA0JrUaehCqkkKdJlp4aCBLu1Qm60IlYDRzjlylJBLkHhClC2SjKkVazs0hAUoLSQDoYSxWN5KMedgtI/dqlgXuU2PWsJ40tBKdgowOlR8ilix5wKCuw79BTsPEhLomqYWvE5aDhqjPqZ86QVALLAOf/jqfVjFS0VmzCql2rfiX5teP7zZ1fOJYpSFZRcaXHD1gZ0ccO6Kktn+m/wCPj6bGdOxApUtCiokFjYNf+Yi3Totj9p9t+a//AOf/AOl+DBVXTWWopB7ojO5f2G/7mGnrz1oJKSjJt7f/AM9zr8UtfrSqmEyfNASQycwfi3KKXlT25uFtzcPP790Vv+Otejp7FWdiE2SohszpKg53zJAHuoex1gjPvdLmxenFQ+Z4Vv7qv9GvpVW77ixJq1rzJWA4UAGGxLff6RarfPv/AHISlCN34pemtuPq/MW/o16EMvEjMGZFwUd54ktZkE72+ccd7wk7dLnNAlFwh3S+v3Kr/SVLXdalkVi5fzpDDK7c9PsLfeGmmr5tYmpRl2N+n5ycb/TTx6sl/FkoKxmICAsubsQdOdon2+Ch5lJd79L+5p/iy1LqJylhIU2YlrsHJ/WFZclSJZdXmmAB7kAcLm+/X3LCiVM9RCWGoGvp+sAaBpqU2y5g7fVv1EMQvxKVJfxME5vRgfzEAC74FWVILuwfjf8AQwC1scTMysoTq+/AsYBaj51OUhIzAAm9r/uIZGT7dX6/rp+5CasZ8ofTN8uzE8b7RB6ku185oCahRcgqsHuf+pItpxeItLnuNvt15qAqr8JIdlEtbrl9eUFtsFKV9vObkcyoUU3u7s/DxD01+kNSvQadjLqFLBS5bYv1t1rDsdH/2Q==', + sheetTransform: { angle: 45, from: { column: 14, columnOffset: 49.7, row: 3, rowOffset: 9.4 }, to: { column: 18, columnOffset: 49.6, row: 17, rowOffset: 15.5 } }, + transform: { flipY: false, flipX: false, angle: 45, skewX: 0, skewY: 0, left: 1117.7, top: 86.4, width: 291.9, height: 215.1 }, }, 'UPBpL-A3RvKoOqPdd8VIq': { unitId: 'workbook-01', diff --git a/package.json b/package.json index 97c1f8f7fa..dc285019fa 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "type": "module", "version": "0.6.2", "private": true, - "packageManager": "pnpm@10.4.1", + "packageManager": "pnpm@10.5.2", "author": "DreamNum Co., Ltd. ", "license": "Apache-2.0", "funding": { @@ -47,7 +47,7 @@ "@antfu/eslint-config": "4.3.0", "@commitlint/cli": "^19.7.1", "@commitlint/config-conventional": "^19.7.1", - "@eslint-react/eslint-plugin": "^1.28.0", + "@eslint-react/eslint-plugin": "^1.29.0", "@playwright/test": "^1.50.1", "@release-it-plugins/workspaces": "^4.2.0", "@release-it/conventional-changelog": "^9.0.4", @@ -65,7 +65,7 @@ "eslint-plugin-no-barrel-import": "^0.0.2", "eslint-plugin-no-penetrating-import": "^0.0.1", "eslint-plugin-react": "^7.37.4", - "eslint-plugin-react-hooks": "5.1.0", + "eslint-plugin-react-hooks": "5.2.0", "eslint-plugin-react-refresh": "^0.4.19", "husky": "^9.1.7", "lint-staged": "^15.4.3", @@ -76,7 +76,7 @@ "serve": "^14.2.4", "tsx": "^4.19.3", "turbo": "^2.4.4", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vitest": "^3.0.7" }, "pnpm": { diff --git a/packages-experimental/action-recorder/package.json b/packages-experimental/action-recorder/package.json index 574d27d060..6299ec07d9 100644 --- a/packages-experimental/action-recorder/package.json +++ b/packages-experimental/action-recorder/package.json @@ -80,7 +80,7 @@ "react": "18.3.1", "rxjs": "^7.8.1", "tailwindcss": "^3.4.17", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages-experimental/action-recorder/src/controllers/action-recorder.controller.tsx b/packages-experimental/action-recorder/src/controllers/action-recorder.controller.tsx index 80021a1e9e..3b7f014b25 100644 --- a/packages-experimental/action-recorder/src/controllers/action-recorder.controller.tsx +++ b/packages-experimental/action-recorder/src/controllers/action-recorder.controller.tsx @@ -16,7 +16,8 @@ import { Disposable, ICommandService, Inject, Injector } from '@univerjs/core'; import { RecordSingle } from '@univerjs/icons'; -import { AddWorksheetMergeAllCommand, +import { + AddWorksheetMergeAllCommand, AddWorksheetMergeCommand, AddWorksheetMergeHorizontalCommand, AddWorksheetMergeVerticalCommand, @@ -47,7 +48,10 @@ import { AddWorksheetMergeAllCommand, SetWorksheetActiveOperation, } from '@univerjs/sheets'; import { RemoveSheetFilterCommand, SetSheetFilterRangeCommand, SetSheetsFilterCriteriaCommand } from '@univerjs/sheets-filter'; -import { AutoFillCommand, RefillCommand, SetRangeBoldCommand, +import { + AutoFillCommand, + RefillCommand, + SetRangeBoldCommand, SetRangeFontFamilyCommand, SetRangeFontSizeCommand, SetRangeItalicCommand, diff --git a/packages-experimental/debugger/package.json b/packages-experimental/debugger/package.json index 4e3b0cd0da..9943f0b287 100644 --- a/packages-experimental/debugger/package.json +++ b/packages-experimental/debugger/package.json @@ -83,7 +83,7 @@ "react": "18.3.1", "rxjs": "^7.8.1", "tailwindcss": "^3.4.17", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7", "vue": "^3.5.13" diff --git a/packages-experimental/sheets-source-binding/package.json b/packages-experimental/sheets-source-binding/package.json index 49f858e859..09e98497de 100644 --- a/packages-experimental/sheets-source-binding/package.json +++ b/packages-experimental/sheets-source-binding/package.json @@ -71,7 +71,7 @@ "devDependencies": { "@univerjs-infra/shared": "workspace:*", "rxjs": "^7.8.1", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages-experimental/uni-docs-ui/package.json b/packages-experimental/uni-docs-ui/package.json index 88d7e26ada..96d31b0771 100644 --- a/packages-experimental/uni-docs-ui/package.json +++ b/packages-experimental/uni-docs-ui/package.json @@ -72,7 +72,7 @@ "postcss": "^8.5.3", "rxjs": "^7.8.1", "tailwindcss": "^3.4.17", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages-experimental/uni-formula-ui/package.json b/packages-experimental/uni-formula-ui/package.json index 5797cdbeb6..3107e44978 100644 --- a/packages-experimental/uni-formula-ui/package.json +++ b/packages-experimental/uni-formula-ui/package.json @@ -85,7 +85,7 @@ "react": "18.3.1", "rxjs": "^7.8.1", "tailwindcss": "^3.4.17", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages-experimental/uni-formula-ui/src/services/uni-formula.service.ts b/packages-experimental/uni-formula-ui/src/services/uni-formula.service.ts index c1cb18534f..785ffcbf53 100644 --- a/packages-experimental/uni-formula-ui/src/services/uni-formula.service.ts +++ b/packages-experimental/uni-formula-ui/src/services/uni-formula.service.ts @@ -21,8 +21,10 @@ import type { IDisposable, IDocumentBody, Nullable, - SlideDataModel } from '@univerjs/core'; + SlideDataModel, +} from '@univerjs/core'; import type { IDocFormulaCache, ISlideFormulaCache } from '@univerjs/uni-formula'; +import type { IDocPopupPosition, ISlidePopupPosition } from '../commands/operations/operation'; import { BuildTextUtils, CommandType, @@ -45,7 +47,7 @@ import { RegisterOtherFormulaService } from '@univerjs/sheets-formula'; import { CanvasView } from '@univerjs/slides-ui'; import { DumbUniFormulaService, IUniFormulaService } from '@univerjs/uni-formula'; import { take } from 'rxjs'; -import { type IDocPopupPosition, type ISlidePopupPosition, isSlidePosition } from '../commands/operations/operation'; +import { isSlidePosition } from '../commands/operations/operation'; const PSEUDO_SUBUNIT = 'PSEUDO_SUBUNIT'; diff --git a/packages-experimental/uni-formula/package.json b/packages-experimental/uni-formula/package.json index 6f948deaee..357dda0ba6 100644 --- a/packages-experimental/uni-formula/package.json +++ b/packages-experimental/uni-formula/package.json @@ -60,7 +60,7 @@ }, "devDependencies": { "@univerjs-infra/shared": "workspace:*", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages-experimental/uni-sheets-ui/package.json b/packages-experimental/uni-sheets-ui/package.json index dd7e41dc3b..d7d84a6a25 100644 --- a/packages-experimental/uni-sheets-ui/package.json +++ b/packages-experimental/uni-sheets-ui/package.json @@ -77,7 +77,7 @@ "react": "18.3.1", "rxjs": "^7.8.1", "tailwindcss": "^3.4.17", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages-experimental/uni-slides-ui/package.json b/packages-experimental/uni-slides-ui/package.json index 20a370db40..17a0177489 100644 --- a/packages-experimental/uni-slides-ui/package.json +++ b/packages-experimental/uni-slides-ui/package.json @@ -74,7 +74,7 @@ "react": "18.3.1", "rxjs": "^7.8.1", "tailwindcss": "^3.4.17", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages-experimental/uniui/package.json b/packages-experimental/uniui/package.json index e3965b3416..7ae3c7cadf 100644 --- a/packages-experimental/uniui/package.json +++ b/packages-experimental/uniui/package.json @@ -79,7 +79,7 @@ "react-dom": "18.3.1", "rxjs": "^7.8.1", "tailwindcss": "^3.4.17", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/core/package.json b/packages/core/package.json index c28e6d1890..e107f0c902 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -86,7 +86,7 @@ "@types/rbush": "^4.0.0", "@univerjs-infra/shared": "workspace:*", "rxjs": "^7.8.1", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/core/src/common/url.ts b/packages/core/src/common/url.ts index edecac6358..5ed084b2a8 100644 --- a/packages/core/src/common/url.ts +++ b/packages/core/src/common/url.ts @@ -320,7 +320,8 @@ const re_weburl = new RegExp( '(?::\\d{2,5})?' + // resource path (optional) '(?:[/?#]\\S*)?' + - '$', 'i' + '$', + 'i' ); export function isLegalUrl(url: string) { // skip number 0.1 diff --git a/packages/core/src/docs/data-model/text-x/__tests__/apply.spec.ts b/packages/core/src/docs/data-model/text-x/__tests__/apply.spec.ts index 3267ae25da..b84f9f5d5c 100644 --- a/packages/core/src/docs/data-model/text-x/__tests__/apply.spec.ts +++ b/packages/core/src/docs/data-model/text-x/__tests__/apply.spec.ts @@ -14,11 +14,12 @@ * limitations under the License. */ +import type { IDocumentBody } from '../../../../types/interfaces'; import type { TextXAction } from '../action-types'; import { describe, expect, it } from 'vitest'; import { UpdateDocsAttributeType } from '../../../../shared'; import { BooleanNumber, HorizontalAlign } from '../../../../types/enum'; -import { CustomRangeType, type IDocumentBody } from '../../../../types/interfaces'; +import { CustomRangeType } from '../../../../types/interfaces'; import { PresetListType } from '../../preset-list-type'; import { TextXActionType } from '../action-types'; import { TextX } from '../text-x'; @@ -290,7 +291,8 @@ describe('apply method', () => { { t: TextXActionType.RETAIN, len: 1, - }, { + }, + { t: TextXActionType.RETAIN, len: 1, body: { @@ -309,7 +311,8 @@ describe('apply method', () => { { t: TextXActionType.RETAIN, len: 1, - }, { + }, + { t: TextXActionType.RETAIN, len: 1, body: { @@ -349,7 +352,8 @@ describe('apply method', () => { { t: TextXActionType.RETAIN, len: 1, - }, { + }, + { t: TextXActionType.RETAIN, len: 1, coverType: UpdateDocsAttributeType.REPLACE, @@ -369,7 +373,8 @@ describe('apply method', () => { { t: TextXActionType.RETAIN, len: 1, - }, { + }, + { t: TextXActionType.RETAIN, len: 1, coverType: UpdateDocsAttributeType.REPLACE, @@ -410,7 +415,8 @@ describe('apply method', () => { { t: TextXActionType.RETAIN, len: 1, - }, { + }, + { t: TextXActionType.RETAIN, len: 1, coverType: UpdateDocsAttributeType.REPLACE, @@ -435,7 +441,8 @@ describe('apply method', () => { { t: TextXActionType.RETAIN, len: 1, - }, { + }, + { t: TextXActionType.RETAIN, len: 1, coverType: UpdateDocsAttributeType.REPLACE, @@ -481,7 +488,8 @@ describe('apply method', () => { { t: TextXActionType.RETAIN, len: 1, - }, { + }, + { t: TextXActionType.RETAIN, len: 1, body: { @@ -539,7 +547,8 @@ describe('apply method', () => { { t: TextXActionType.RETAIN, len: 1, - }, { + }, + { t: TextXActionType.INSERT, len: 1, body: { @@ -558,7 +567,8 @@ describe('apply method', () => { { t: TextXActionType.RETAIN, len: 2, - }, { + }, + { t: TextXActionType.INSERT, len: 1, body: { @@ -614,7 +624,8 @@ describe('apply method', () => { { t: TextXActionType.RETAIN, len: 2, - }, { + }, + { t: TextXActionType.INSERT, len: 1, body: { diff --git a/packages/core/src/docs/data-model/text-x/apply-utils/common.ts b/packages/core/src/docs/data-model/text-x/apply-utils/common.ts index 8bddaaaa17..bf29a40102 100644 --- a/packages/core/src/docs/data-model/text-x/apply-utils/common.ts +++ b/packages/core/src/docs/data-model/text-x/apply-utils/common.ts @@ -403,8 +403,7 @@ export function splitCustomRangesByIndex(customRanges: ICustomRange[], currentIn startIndex: matchedCustomRange.startIndex, endIndex: currentIndex - 1, properties: { ...matchedCustomRange.properties }, - }, - { + }, { rangeId: matchedCustomRange.rangeId, rangeType: matchedCustomRange.rangeType, startIndex: currentIndex, @@ -451,8 +450,7 @@ export function splitCustomDecoratesByIndex(customDecorations: ICustomDecoration type: matched.type, startIndex: matched.startIndex, endIndex: currentIndex - 1, - }, - { + }, { id: matched.id, type: matched.type, startIndex: currentIndex, diff --git a/packages/core/src/facade/f-univer.ts b/packages/core/src/facade/f-univer.ts index 246a4cc3e0..cf0b927f97 100644 --- a/packages/core/src/facade/f-univer.ts +++ b/packages/core/src/facade/f-univer.ts @@ -232,13 +232,11 @@ export class FUniver extends Disposable { this.Event.DocDisposed, () => univerInstanceService.unitDisposed$.subscribe((unit) => { if (unit.type === UniverInstanceType.UNIVER_DOC) { - this.fireEvent(this.Event.DocDisposed, - { - unitId: unit.getUnitId(), - unitType: unit.type, - snapshot: unit.getSnapshot() as IDocumentData, - } - ); + this.fireEvent(this.Event.DocDisposed, { + unitId: unit.getUnitId(), + unitType: unit.type, + snapshot: unit.getSnapshot() as IDocumentData, + }); } }) ); @@ -249,14 +247,12 @@ export class FUniver extends Disposable { if (unit.type === UniverInstanceType.UNIVER_DOC) { const doc = unit as DocumentDataModel; const docUnit = injector.createInstance(FDoc, doc); - this.fireEvent(this.Event.DocCreated, - { - unitId: unit.getUnitId(), - type: unit.type, - doc: docUnit, - unit: docUnit, - } - ); + this.fireEvent(this.Event.DocCreated, { + unitId: unit.getUnitId(), + type: unit.type, + doc: docUnit, + unit: docUnit, + }); } }) ); diff --git a/packages/core/src/services/user-manager/user-manager.service.ts b/packages/core/src/services/user-manager/user-manager.service.ts index cb449397cb..ac46370b5c 100644 --- a/packages/core/src/services/user-manager/user-manager.service.ts +++ b/packages/core/src/services/user-manager/user-manager.service.ts @@ -18,7 +18,9 @@ import { BehaviorSubject, Subject } from 'rxjs'; import { createDefaultUser } from './const'; export interface IUser { - userID: string; name: string; avatar?: string; + userID: string; + name: string; + avatar?: string; }; export class UserManagerService { diff --git a/packages/core/src/shared/__tests__/object-matrix.spec.ts b/packages/core/src/shared/__tests__/object-matrix.spec.ts index 05636e4e02..d435b4bb38 100644 --- a/packages/core/src/shared/__tests__/object-matrix.spec.ts +++ b/packages/core/src/shared/__tests__/object-matrix.spec.ts @@ -25,7 +25,9 @@ describe('test ObjectMatrix', () => { }); const getHasNullPrimitiveObj = () => ({ - 1: '111', 2: null, 3: '333', + 1: '111', + 2: null, + 3: '333', }); it('test deleteValue', () => { @@ -79,7 +81,9 @@ describe('test ObjectMatrix', () => { const primitiveObject = getHasNullPrimitiveObj(); moveMatrixArray(2, 1, 0, primitiveObject); expect(primitiveObject).toStrictEqual({ - 0: null, 2: '111', 3: '333', + 0: null, + 2: '111', + 3: '333', }); }); @@ -87,7 +91,9 @@ describe('test ObjectMatrix', () => { const primitiveObject = getHasNullPrimitiveObj(); moveMatrixArray(2, 1, 4, primitiveObject); expect(primitiveObject).toStrictEqual({ - 1: '111', 2: '333', 3: null, + 1: '111', + 2: '333', + 3: null, }); }); it('test spliceMatrix row', () => { diff --git a/packages/data-validation/package.json b/packages/data-validation/package.json index 25fecbb004..2f5d675d9c 100644 --- a/packages/data-validation/package.json +++ b/packages/data-validation/package.json @@ -69,7 +69,7 @@ "@univerjs/protocol": "0.1.43", "@univerjs/sheets": "workspace:*", "rxjs": "^7.8.1", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/data-validation/src/models/data-validation-model.ts b/packages/data-validation/src/models/data-validation-model.ts index dc7ef971e8..a7bd84f090 100644 --- a/packages/data-validation/src/models/data-validation-model.ts +++ b/packages/data-validation/src/models/data-validation-model.ts @@ -35,7 +35,8 @@ export interface IRuleChange { } interface ISubUnitDataValidation { - map: Map; list: IDataValidationRule[]; + map: Map; + list: IDataValidationRule[]; } export class DataValidationModel extends Disposable { diff --git a/packages/design/package.json b/packages/design/package.json index 29486df5c3..479ac9a688 100644 --- a/packages/design/package.json +++ b/packages/design/package.json @@ -99,7 +99,7 @@ "react-dom": "18.3.1", "tailwindcss": "^3.4.17", "tailwindcss-animate": "^1.0.7", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/design/src/components/tooltip/Tooltip.tsx b/packages/design/src/components/tooltip/Tooltip.tsx index 1f25e569c3..9f71985118 100644 --- a/packages/design/src/components/tooltip/Tooltip.tsx +++ b/packages/design/src/components/tooltip/Tooltip.tsx @@ -285,10 +285,10 @@ export function Tooltip(props: ITooltipProps) { : (
{children}
diff --git a/packages/docs-drawing-ui/package.json b/packages/docs-drawing-ui/package.json index 8176bb29da..1c7e5b1b4e 100644 --- a/packages/docs-drawing-ui/package.json +++ b/packages/docs-drawing-ui/package.json @@ -84,7 +84,7 @@ "react": "18.3.1", "rxjs": "^7.8.1", "tailwindcss": "^3.4.17", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/docs-drawing-ui/src/commands/commands/utils.ts b/packages/docs-drawing-ui/src/commands/commands/utils.ts index 36ea66ed3c..6b5cebcdbe 100644 --- a/packages/docs-drawing-ui/src/commands/commands/utils.ts +++ b/packages/docs-drawing-ui/src/commands/commands/utils.ts @@ -14,8 +14,9 @@ * limitations under the License. */ +import type { IDrawingParam } from '@univerjs/core'; import type { IDrawingGroupUpdateParam } from '@univerjs/drawing'; -import { DrawingTypeEnum, type IDrawingParam } from '@univerjs/core'; +import { DrawingTypeEnum } from '@univerjs/core'; import { getGroupState, transformObjectOutOfGroup } from '@univerjs/engine-render'; export function ungroupToGroup(ungroupParams: IDrawingGroupUpdateParam[]) { @@ -30,7 +31,9 @@ export function ungroupToGroup(ungroupParams: IDrawingGroupUpdateParam[]) { const transform = drawing.transform || { left: 0, top: 0 }; const { unitId, subUnitId, drawingId } = drawing; return { - unitId, subUnitId, drawingId, + unitId, + subUnitId, + drawingId, transform: { ...transform, left: transform.left! - groupTransform.left, @@ -71,7 +74,9 @@ export function groupToUngroup(groupParams: IDrawingGroupUpdateParam[]) { const { unitId, subUnitId, drawingId } = object; const newTransform = transformObjectOutOfGroup(transform || {}, groupTransform, groupTransform.width || 0, groupTransform.height || 0); return { - unitId, subUnitId, drawingId, + unitId, + subUnitId, + drawingId, transform: newTransform, groupId: undefined, }; diff --git a/packages/docs-drawing-ui/src/controllers/doc-drawing-transformer-update.controller.ts b/packages/docs-drawing-ui/src/controllers/doc-drawing-transformer-update.controller.ts index f39b2893d6..b5bc3016c7 100644 --- a/packages/docs-drawing-ui/src/controllers/doc-drawing-transformer-update.controller.ts +++ b/packages/docs-drawing-ui/src/controllers/doc-drawing-transformer-update.controller.ts @@ -20,8 +20,15 @@ import type { IDrawingDocTransform } from '../commands/commands/update-doc-drawi import { BooleanNumber, COLORS, - Disposable, ICommandService, IUniverInstanceService, ObjectRelativeFromH, ObjectRelativeFromV, - PositionedObjectLayoutType, throttle, toDisposable, Tools, + Disposable, + ICommandService, + IUniverInstanceService, + ObjectRelativeFromH, + ObjectRelativeFromV, + PositionedObjectLayoutType, + throttle, + toDisposable, + Tools, } from '@univerjs/core'; import { DocSkeletonManagerService } from '@univerjs/docs'; import { DocSelectionRenderService, getAnchorBounding, getDocObject, getOneTextSelectionRange, NodePositionConvertToCursor, TEXT_RANGE_LAYER_INDEX } from '@univerjs/docs-ui'; @@ -377,7 +384,8 @@ export class DocDrawingTransformerController extends Disposable { const activeViewport = scene.getViewports()[0]; const { pageLayoutType = PageLayoutType.VERTICAL, - pageMarginLeft, pageMarginTop, + pageMarginLeft, + pageMarginTop, } = documentComponent.getOffsetConfig(); let glyphAnchor: Nullable = null; let isBack = false; @@ -395,14 +403,11 @@ export class DocDrawingTransformerController extends Disposable { return; } - const nodeInfo = skeleton?.findNodeByCoord( - coord, pageLayoutType, pageMarginLeft, pageMarginTop, - { - strict: false, - segmentId: docSelectionRenderService.getSegment(), - segmentPage: docSelectionRenderService.getSegmentPage(), - } - ); + const nodeInfo = skeleton?.findNodeByCoord(coord, pageLayoutType, pageMarginLeft, pageMarginTop, { + strict: false, + segmentId: docSelectionRenderService.getSegment(), + segmentPage: docSelectionRenderService.getSegmentPage(), + }); if (nodeInfo) { const { node, ratioX, segmentPage, segmentId: nodeSegmentId } = nodeInfo; isBack = ratioX < HALF; @@ -835,7 +840,8 @@ export class DocDrawingTransformerController extends Disposable { const { mainComponent, scene } = currentRender; const documentComponent = mainComponent as Documents; const { - docsLeft, docsTop, + docsLeft, + docsTop, } = documentComponent.getOffsetConfig(); const bounding = getAnchorBounding(pointsGroup); const { left: boundingLeft, top: boundingTop, height } = bounding; diff --git a/packages/docs-drawing-ui/src/controllers/render-controllers/doc-drawing-transform-update.controller.ts b/packages/docs-drawing-ui/src/controllers/render-controllers/doc-drawing-transform-update.controller.ts index 6de8b031e2..f4940bd841 100644 --- a/packages/docs-drawing-ui/src/controllers/render-controllers/doc-drawing-transform-update.controller.ts +++ b/packages/docs-drawing-ui/src/controllers/render-controllers/doc-drawing-transform-update.controller.ts @@ -166,7 +166,11 @@ export class DocDrawingTransformUpdateController extends Disposable implements I if (headerPage) { this._calculateDrawingPosition( - unitId, headerPage, docsLeft, docsTop, updateDrawingMap, + unitId, + headerPage, + docsLeft, + docsTop, + updateDrawingMap, headerPage.marginTop, page.marginLeft ); @@ -178,7 +182,11 @@ export class DocDrawingTransformUpdateController extends Disposable implements I if (footerPage) { this._calculateDrawingPosition( - unitId, footerPage, docsLeft, docsTop, updateDrawingMap, + unitId, + footerPage, + docsLeft, + docsTop, + updateDrawingMap, page.pageHeight - page.marginBottom + footerPage.marginTop, page.marginLeft ); diff --git a/packages/docs-drawing-ui/src/controllers/render-controllers/doc-drawing-update.render-controller.ts b/packages/docs-drawing-ui/src/controllers/render-controllers/doc-drawing-update.render-controller.ts index 04bfb417e4..dc762d082e 100644 --- a/packages/docs-drawing-ui/src/controllers/render-controllers/doc-drawing-update.render-controller.ts +++ b/packages/docs-drawing-ui/src/controllers/render-controllers/doc-drawing-update.render-controller.ts @@ -19,19 +19,20 @@ import type { IDocDrawing } from '@univerjs/docs-drawing'; import type { IImageIoServiceParam } from '@univerjs/drawing'; import type { Documents, Image, IRenderContext, IRenderModule } from '@univerjs/engine-render'; import type { IInsertDrawingCommandParams } from '../../commands/commands/interfaces'; +import type { ISetDrawingArrangeCommandParams } from '../../commands/commands/set-drawing-arrange.command'; import { BooleanNumber, Disposable, DrawingTypeEnum, FOCUSING_COMMON_DRAWINGS, ICommandService, IContextService, Inject, LocaleService, ObjectRelativeFromH, ObjectRelativeFromV, PositionedObjectLayoutType, WrapTextType } from '@univerjs/core'; import { MessageType } from '@univerjs/design'; import { DocSelectionManagerService, DocSkeletonManagerService, RichTextEditingMutation } from '@univerjs/docs'; import { IDocDrawingService } from '@univerjs/docs-drawing'; import { docDrawingPositionToTransform, DocSelectionRenderService } from '@univerjs/docs-ui'; import { DRAWING_IMAGE_ALLOW_IMAGE_LIST, DRAWING_IMAGE_ALLOW_SIZE, DRAWING_IMAGE_COUNT_LIMIT, DRAWING_IMAGE_HEIGHT_LIMIT, DRAWING_IMAGE_WIDTH_LIMIT, getDrawingShapeKeyByDrawingSearch, getImageSize, IDrawingManagerService, IImageIoService, ImageUploadStatusType } from '@univerjs/drawing'; -import { DocumentEditArea, IRenderManagerService } from '@univerjs/engine-render'; +import { DocumentEditArea, IRenderManagerService } from '@univerjs/engine-render'; import { ILocalFileService, IMessageService } from '@univerjs/ui'; import { debounceTime } from 'rxjs'; import { GroupDocDrawingCommand } from '../../commands/commands/group-doc-drawing.command'; import { InsertDocDrawingCommand } from '../../commands/commands/insert-doc-drawing.command'; -import { type ISetDrawingArrangeCommandParams, SetDocDrawingArrangeCommand } from '../../commands/commands/set-drawing-arrange.command'; +import { SetDocDrawingArrangeCommand } from '../../commands/commands/set-drawing-arrange.command'; import { UngroupDocDrawingCommand } from '../../commands/commands/ungroup-doc-drawing.command'; import { DocRefreshDrawingsService } from '../../services/doc-refresh-drawings.service'; @@ -188,7 +189,8 @@ export class DocDrawingUpdateRenderController extends Disposable implements IRen } private _getImagePosition( - imageWidth: number, imageHeight: number + imageWidth: number, + imageHeight: number ): Nullable { const activeTextRange = this._docSelectionRenderService.getActiveTextRange(); // TODO: NO need to get the cursor position, because the insert image is inline. diff --git a/packages/docs-drawing-ui/src/views/doc-image-panel/DocDrawingTextWrap.tsx b/packages/docs-drawing-ui/src/views/doc-image-panel/DocDrawingTextWrap.tsx index 7769efda65..15bdda0293 100644 --- a/packages/docs-drawing-ui/src/views/doc-image-panel/DocDrawingTextWrap.tsx +++ b/packages/docs-drawing-ui/src/views/doc-image-panel/DocDrawingTextWrap.tsx @@ -173,7 +173,10 @@ export const DocDrawingTextWrap = (props: IDocDrawingTextWrapProps) => { } const { - distT = 0, distL = 0, distB = 0, distR = 0, + distT = 0, + distL = 0, + distB = 0, + distR = 0, layoutType = PositionedObjectLayoutType.INLINE, behindDoc = BooleanNumber.FALSE, wrapText = WrapTextType.BOTH_SIDES, diff --git a/packages/docs-drawing/package.json b/packages/docs-drawing/package.json index 2df56225fe..6765b3feb2 100644 --- a/packages/docs-drawing/package.json +++ b/packages/docs-drawing/package.json @@ -61,7 +61,7 @@ }, "devDependencies": { "@univerjs-infra/shared": "workspace:*", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/docs-hyper-link-ui/package.json b/packages/docs-hyper-link-ui/package.json index 0a9a674c12..fca536044e 100644 --- a/packages/docs-hyper-link-ui/package.json +++ b/packages/docs-hyper-link-ui/package.json @@ -81,7 +81,7 @@ "react": "18.3.1", "rxjs": "^7.8.1", "tailwindcss": "^3.4.17", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/docs-hyper-link/package.json b/packages/docs-hyper-link/package.json index 69eef187dc..e8610c2a83 100644 --- a/packages/docs-hyper-link/package.json +++ b/packages/docs-hyper-link/package.json @@ -60,7 +60,7 @@ }, "devDependencies": { "@univerjs-infra/shared": "workspace:*", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/docs-mention-ui/package.json b/packages/docs-mention-ui/package.json index 682f063901..9598a3dce0 100644 --- a/packages/docs-mention-ui/package.json +++ b/packages/docs-mention-ui/package.json @@ -75,7 +75,7 @@ "react": "18.3.1", "rxjs": "^7.8.1", "tailwindcss": "^3.4.17", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/docs-thread-comment-ui/package.json b/packages/docs-thread-comment-ui/package.json index 7950e493bc..3f80743b46 100644 --- a/packages/docs-thread-comment-ui/package.json +++ b/packages/docs-thread-comment-ui/package.json @@ -75,7 +75,7 @@ "react": "18.3.1", "rxjs": "^7.8.1", "tailwindcss": "^3.4.17", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/docs-ui/package.json b/packages/docs-ui/package.json index 8a3fe7b35f..68fdaab412 100644 --- a/packages/docs-ui/package.json +++ b/packages/docs-ui/package.json @@ -90,7 +90,7 @@ "react": "18.3.1", "rxjs": "^7.8.1", "tailwindcss": "^3.4.17", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/docs-ui/src/commands/commands/inline-format.command.ts b/packages/docs-ui/src/commands/commands/inline-format.command.ts index 1ba5715896..f1d8e69d52 100644 --- a/packages/docs-ui/src/commands/commands/inline-format.command.ts +++ b/packages/docs-ui/src/commands/commands/inline-format.command.ts @@ -16,19 +16,29 @@ import type { DocumentDataModel, - ICommand, IDocumentBody, IMutationInfo, IStyleBase, ITextDecoration, ITextRun, + ICommand, + IDocumentBody, + IMutationInfo, + IStyleBase, + ITextDecoration, + ITextRun, ITextStyle, Nullable, } from '@univerjs/core'; import type { IRichTextEditingMutationParams } from '@univerjs/docs'; import type { ITextRangeWithStyle } from '@univerjs/engine-render'; import { - BaselineOffset, BooleanNumber, CommandType, + BaselineOffset, + BooleanNumber, + CommandType, DOC_RANGE_TYPE, getBodySlice, - ICommandService, IUniverInstanceService, - JSONX, MemoryCursor, - TextX, TextXActionType, + ICommandService, + IUniverInstanceService, + JSONX, + MemoryCursor, + TextX, + TextXActionType, Tools, UniverInstanceType, } from '@univerjs/core'; diff --git a/packages/docs-ui/src/commands/commands/paragraph-align.command.ts b/packages/docs-ui/src/commands/commands/paragraph-align.command.ts index f033613606..a627f607a0 100644 --- a/packages/docs-ui/src/commands/commands/paragraph-align.command.ts +++ b/packages/docs-ui/src/commands/commands/paragraph-align.command.ts @@ -18,7 +18,8 @@ import type { ICommand, IMutationInfo, IParagraphStyle } from '@univerjs/core'; import type { IRichTextEditingMutationParams } from '@univerjs/docs'; import { - CommandType, HorizontalAlign, + CommandType, + HorizontalAlign, ICommandService, IUniverInstanceService, JSONX, diff --git a/packages/docs-ui/src/controllers/doc-move-cursor.controller.ts b/packages/docs-ui/src/controllers/doc-move-cursor.controller.ts index a908ab2388..f563f2152d 100644 --- a/packages/docs-ui/src/controllers/doc-move-cursor.controller.ts +++ b/packages/docs-ui/src/controllers/doc-move-cursor.controller.ts @@ -112,8 +112,15 @@ export class DocMoveCursorController extends Disposable { } const { - startOffset, endOffset, style, collapsed, direction: rangeDirection, - segmentId, startNodePosition, endNodePosition, segmentPage, + startOffset, + endOffset, + style, + collapsed, + direction: rangeDirection, + segmentId, + startNodePosition, + endNodePosition, + segmentPage, } = activeRange; if (allRanges.length > 1) { diff --git a/packages/docs-ui/src/facade/f-document.ts b/packages/docs-ui/src/facade/f-document.ts index 0ecdbc8988..b8d218cb50 100644 --- a/packages/docs-ui/src/facade/f-document.ts +++ b/packages/docs-ui/src/facade/f-document.ts @@ -15,7 +15,9 @@ */ import type { DocumentDataModel, IDocumentData } from '@univerjs/core'; -import { DOC_RANGE_TYPE, ICommandService, +import { + DOC_RANGE_TYPE, + ICommandService, Inject, Injector, IResourceManagerService, diff --git a/packages/docs-ui/src/services/clipboard/clipboard.service.ts b/packages/docs-ui/src/services/clipboard/clipboard.service.ts index eb1817fc9b..8f08416f18 100644 --- a/packages/docs-ui/src/services/clipboard/clipboard.service.ts +++ b/packages/docs-ui/src/services/clipboard/clipboard.service.ts @@ -141,7 +141,9 @@ export class DocClipboardService extends Disposable implements IDocClipboardServ } async legacyPaste(options: { - html?: string; text?: string; files: File[]; + html?: string; + text?: string; + files: File[]; }): Promise { let { html, text, files } = options; const currentDocInstance = this._univerInstanceService.getCurrentUnitForType(UniverInstanceType.UNIVER_DOC); diff --git a/packages/docs-ui/src/services/selection/doc-selection-render.service.ts b/packages/docs-ui/src/services/selection/doc-selection-render.service.ts index 89eabb0a39..2c48ee6b6b 100644 --- a/packages/docs-ui/src/services/selection/doc-selection-render.service.ts +++ b/packages/docs-ui/src/services/selection/doc-selection-render.service.ts @@ -192,7 +192,14 @@ export class DocSelectionRenderService extends RxDisposable implements IRenderMo const generalAddRange = (startOffset: number, endOffset: number) => { const rangeList = getRangeListFromCharIndex( - startOffset, endOffset, scene, document, docSkeleton, style, segmentId, segmentPage + startOffset, + endOffset, + scene, + document, + docSkeleton, + style, + segmentId, + segmentPage ); if (rangeList == null) { @@ -1233,7 +1240,11 @@ export class DocSelectionRenderService extends RxDisposable implements IRenderMo } = document.getOffsetConfig(); const nodeInfo = skeleton.findNodeByCoord( - coord, pageLayoutType, pageMarginLeft, pageMarginTop, restrictions + coord, + pageLayoutType, + pageMarginLeft, + pageMarginTop, + restrictions ); return nodeInfo; diff --git a/packages/docs-ui/src/services/selection/rect-range.ts b/packages/docs-ui/src/services/selection/rect-range.ts index e75e7871c9..e690503632 100644 --- a/packages/docs-ui/src/services/selection/rect-range.ts +++ b/packages/docs-ui/src/services/selection/rect-range.ts @@ -14,9 +14,10 @@ * limitations under the License. */ +import type { Nullable } from '@univerjs/core'; import type { Documents, DocumentSkeleton, INodePosition, IPoint, ITextSelectionStyle, Scene } from '@univerjs/engine-render'; import type { IDocRange } from './range-interface'; -import { COLORS, DOC_RANGE_TYPE, type Nullable, RANGE_DIRECTION, Rectangle, Tools } from '@univerjs/core'; +import { COLORS, DOC_RANGE_TYPE, RANGE_DIRECTION, Rectangle, Tools } from '@univerjs/core'; import { getColor, NORMAL_TEXT_SELECTION_PLUGIN_STYLE, RegularPolygon } from '@univerjs/engine-render'; import { compareNodePositionInTable, NodePositionConvertToRectRange } from './convert-rect-range'; import { TEXT_RANGE_LAYER_INDEX } from './text-range'; @@ -39,7 +40,14 @@ export function convertPositionsToRectRanges( const nodePositionGroup = convertor.getNodePositionGroup(anchorNodePosition, focusNodePosition); return (nodePositionGroup ?? []).map((position) => new RectRange( - scene, document, docSkeleton, position.anchor, position.focus, style, segmentId, segmentPage + scene, + document, + docSkeleton, + position.anchor, + position.focus, + style, + segmentId, + segmentPage )); } diff --git a/packages/docs-ui/src/services/selection/text-range.ts b/packages/docs-ui/src/services/selection/text-range.ts index e90d5ced9d..a60dac067c 100644 --- a/packages/docs-ui/src/services/selection/text-range.ts +++ b/packages/docs-ui/src/services/selection/text-range.ts @@ -48,7 +48,14 @@ export function cursorConvertToTextRange( ? docSkeleton.findNodePositionByCharIndex(endOffset, true, segmentId, segmentPage) : null; const textRange = new TextRange( - scene, document, docSkeleton, anchorNodePosition, focusNodePosition, style, segmentId, segmentPage + scene, + document, + docSkeleton, + anchorNodePosition, + focusNodePosition, + style, + segmentId, + segmentPage ); return textRange; diff --git a/packages/docs-ui/src/views/paragraph-setting/Setting.tsx b/packages/docs-ui/src/views/paragraph-setting/Setting.tsx index b2c0aee9a4..581a151b8d 100644 --- a/packages/docs-ui/src/views/paragraph-setting/Setting.tsx +++ b/packages/docs-ui/src/views/paragraph-setting/Setting.tsx @@ -33,7 +33,12 @@ import { import styles from './index.module.less'; const AutoFocusInputNumber = (props: { - value: number; onChange: (v: number) => Promise; className?: string; min?: number; max?: number; step?: number; + value: number; + onChange: (v: number) => Promise; + className?: string; + min?: number; + max?: number; + step?: number; }) => { const { value, onChange, className = '', min = 0, max = 100, step = 1 } = props; const ref = useRef(null); @@ -65,8 +70,8 @@ export function ParagraphSetting() { { label: localeService.t('toolbar.alignLeft'), value: String(HorizontalAlign.LEFT), icon: }, { label: localeService.t('toolbar.alignCenter'), value: String(HorizontalAlign.CENTER), icon: }, { label: localeService.t('toolbar.alignRight'), value: String(HorizontalAlign.RIGHT), icon: }, - { label: localeService.t('toolbar.alignJustify'), value: String(HorizontalAlign.JUSTIFIED), icon: }], - []); + { label: localeService.t('toolbar.alignJustify'), value: String(HorizontalAlign.JUSTIFIED), icon: }, + ], []); const currentParagraph = useCurrentParagraph(); const [horizontalAlignValue, horizontalAlignSet] = useFirstParagraphHorizontalAlign(currentParagraph, alignmentOptions[0].value); @@ -101,8 +106,7 @@ export function ParagraphSetting() { return ( horizontalAlignSet(item.value)} > diff --git a/packages/docs-ui/src/views/paragraph-setting/hook/utils.ts b/packages/docs-ui/src/views/paragraph-setting/hook/utils.ts index e6ab37f393..ffa9712f56 100644 --- a/packages/docs-ui/src/views/paragraph-setting/hook/utils.ts +++ b/packages/docs-ui/src/views/paragraph-setting/hook/utils.ts @@ -304,7 +304,8 @@ export const useFirstParagraphLineSpacing = (paragraph: IParagraph[]) => { }); return a; }, {} as { spacingRule?: SpacingRule; lineSpacing?: number }); - })).subscribe((v) => { + }) + ).subscribe((v) => { return commandService.executeCommand(DocParagraphSettingCommand.id, { paragraph: { ...v }, } as IDocParagraphSettingCommandParams); diff --git a/packages/docs/package.json b/packages/docs/package.json index c337d2353c..e9d6defee4 100644 --- a/packages/docs/package.json +++ b/packages/docs/package.json @@ -67,7 +67,7 @@ "devDependencies": { "@univerjs-infra/shared": "workspace:*", "rxjs": "^7.8.1", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/drawing-ui/package.json b/packages/drawing-ui/package.json index 71fb3d4523..52c8b93eb0 100644 --- a/packages/drawing-ui/package.json +++ b/packages/drawing-ui/package.json @@ -80,7 +80,7 @@ "react": "18.3.1", "rxjs": "^7.8.1", "tailwindcss": "^3.4.17", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/drawing-ui/src/controllers/drawing-update.controller.ts b/packages/drawing-ui/src/controllers/drawing-update.controller.ts index b8cae27ab4..632c4470da 100644 --- a/packages/drawing-ui/src/controllers/drawing-update.controller.ts +++ b/packages/drawing-ui/src/controllers/drawing-update.controller.ts @@ -695,10 +695,15 @@ export class DrawingUpdateController extends Disposable { } const { - left = 0, top = 0, width = 0, height = 0, + left = 0, + top = 0, + width = 0, + height = 0, angle = 0, - flipX = false, flipY = false, - skewX = 0, skewY = 0, + flipX = false, + flipY = false, + skewX = 0, + skewY = 0, } = transform; drawingShape.transformByState({ left, top, width, height, angle, flipX, flipY, skewX, skewY }); diff --git a/packages/drawing-ui/src/controllers/image-cropper.controller.ts b/packages/drawing-ui/src/controllers/image-cropper.controller.ts index 9a682fae4c..3ae6db03cc 100644 --- a/packages/drawing-ui/src/controllers/image-cropper.controller.ts +++ b/packages/drawing-ui/src/controllers/image-cropper.controller.ts @@ -321,7 +321,10 @@ export class ImageCropperController extends Disposable { ...drawingParam, transform: { ...drawingParam.transform, - left, top, height, width, + left, + top, + height, + width, }, srcRect: srcRect.srcRectAngle, }] as IImageData[]); diff --git a/packages/drawing-ui/src/services/drawing-render.service.ts b/packages/drawing-ui/src/services/drawing-render.service.ts index eda069c4e2..26156af2ef 100644 --- a/packages/drawing-ui/src/services/drawing-render.service.ts +++ b/packages/drawing-ui/src/services/drawing-render.service.ts @@ -14,9 +14,10 @@ * limitations under the License. */ +import type { IDrawingSearch } from '@univerjs/core'; import type { IImageData } from '@univerjs/drawing'; import type { IImageProps, Scene } from '@univerjs/engine-render'; -import { DrawingTypeEnum, type IDrawingSearch } from '@univerjs/core'; +import { DrawingTypeEnum } from '@univerjs/core'; import { getDrawingShapeKeyByDrawingSearch, IDrawingManagerService, IImageIoService, ImageSourceType } from '@univerjs/drawing'; import { DRAWING_OBJECT_LAYER_INDEX, Image } from '@univerjs/engine-render'; import { IDialogService } from '@univerjs/ui'; @@ -35,8 +36,18 @@ export class DrawingRenderService { // eslint-disable-next-line max-lines-per-function async renderImages(imageParam: IImageData, scene: Scene) { const { - transform: singleTransform, drawingType, source, imageSourceType, srcRect, - prstGeom, groupId, unitId, subUnitId, drawingId, isMultiTransform, transforms: multiTransforms, + transform: singleTransform, + drawingType, + source, + imageSourceType, + srcRect, + prstGeom, + groupId, + unitId, + subUnitId, + drawingId, + isMultiTransform, + transforms: multiTransforms, } = imageParam; if (drawingType !== DrawingTypeEnum.DRAWING_IMAGE) { return; diff --git a/packages/drawing-ui/src/views/panel/DrawingAlign.tsx b/packages/drawing-ui/src/views/panel/DrawingAlign.tsx index 26e8f9e800..7b6c539dbd 100644 --- a/packages/drawing-ui/src/views/panel/DrawingAlign.tsx +++ b/packages/drawing-ui/src/views/panel/DrawingAlign.tsx @@ -45,10 +45,12 @@ export const DrawingAlign = (props: IDrawingAlignProps) => { { label: localeService.t('image-panel.align.left'), value: AlignType.left, - }, { + }, + { label: localeService.t('image-panel.align.center'), value: AlignType.center, - }, { + }, + { label: localeService.t('image-panel.align.right'), value: AlignType.right, }, @@ -59,20 +61,24 @@ export const DrawingAlign = (props: IDrawingAlignProps) => { { label: localeService.t('image-panel.align.top'), value: AlignType.top, - }, { + }, + { label: localeService.t('image-panel.align.middle'), value: AlignType.middle, - }, { + }, + { label: localeService.t('image-panel.align.bottom'), value: AlignType.bottom, }, ], - }, { + }, + { options: [ { label: localeService.t('image-panel.align.horizon'), value: AlignType.horizon, - }, { + }, + { label: localeService.t('image-panel.align.vertical'), value: AlignType.vertical, }, diff --git a/packages/drawing-ui/src/views/panel/DrawingGroup.tsx b/packages/drawing-ui/src/views/panel/DrawingGroup.tsx index 6a46a2c952..49228b858e 100644 --- a/packages/drawing-ui/src/views/panel/DrawingGroup.tsx +++ b/packages/drawing-ui/src/views/panel/DrawingGroup.tsx @@ -65,7 +65,9 @@ export const DrawingGroup = (props: IDrawingGroupProps) => { const transform = drawing.transform || { left: 0, top: 0 }; const { unitId, subUnitId, drawingId } = drawing; return { - unitId, subUnitId, drawingId, + unitId, + subUnitId, + drawingId, transform: { ...transform, left: transform.left! - groupTransform.left, @@ -103,7 +105,9 @@ export const DrawingGroup = (props: IDrawingGroupProps) => { const { unitId, subUnitId, drawingId } = object; const newTransform = transformObjectOutOfGroup(transform || {}, groupTransform, groupTransform.width || 0, groupTransform.height || 0); return { - unitId, subUnitId, drawingId, + unitId, + subUnitId, + drawingId, transform: { ...transform, ...newTransform, diff --git a/packages/drawing-ui/src/views/panel/ImageCropper.tsx b/packages/drawing-ui/src/views/panel/ImageCropper.tsx index a8f4790b28..e94de6d5c7 100644 --- a/packages/drawing-ui/src/views/panel/ImageCropper.tsx +++ b/packages/drawing-ui/src/views/panel/ImageCropper.tsx @@ -48,31 +48,40 @@ export const ImageCropper = (props: IImageCropperProps) => { { label: localeService.t('image-panel.crop.mode'), value: CropType.FREE, - }, { + }, + { label: '1:1', value: CropType.R1_1, - }, { + }, + { label: '16:9', value: CropType.R16_9, - }, { + }, + { label: '9:16', value: CropType.R9_16, - }, { + }, + { label: '5:4', value: CropType.R5_4, - }, { + }, + { label: '4:5', value: CropType.R4_5, - }, { + }, + { label: '4:3', value: CropType.R4_3, - }, { + }, + { label: '3:4', value: CropType.R3_4, - }, { + }, + { label: '3:2', value: CropType.R3_2, - }, { + }, + { label: '2:3', value: CropType.R2_3, }, diff --git a/packages/drawing/package.json b/packages/drawing/package.json index d946c80a0c..b60a1e7108 100644 --- a/packages/drawing/package.json +++ b/packages/drawing/package.json @@ -65,7 +65,7 @@ "devDependencies": { "@univerjs-infra/shared": "workspace:*", "rxjs": "^7.8.1", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/engine-formula/package.json b/packages/engine-formula/package.json index 907e339aec..3881b41a8c 100644 --- a/packages/engine-formula/package.json +++ b/packages/engine-formula/package.json @@ -77,7 +77,7 @@ "devDependencies": { "@univerjs-infra/shared": "workspace:*", "rxjs": "^7.8.1", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/engine-formula/src/basics/engineering.ts b/packages/engine-formula/src/basics/engineering.ts index 7b92a3476d..6666ac85ff 100644 --- a/packages/engine-formula/src/basics/engineering.ts +++ b/packages/engine-formula/src/basics/engineering.ts @@ -399,17 +399,37 @@ export function erf(x: number): number { return 0; } - // eslint-disable-next-line - const cof = [-1.3026537197817094, 6.4196979235649026e-1, 1.9476473204185836e-2, - -9.561514786808631e-3, -9.46595344482036e-4, 3.66839497852761e-4, - 4.2523324806907e-5, -2.0278578112534e-5, -1.624290004647e-6, - 1.303655835580e-6, 1.5626441722e-8, -8.5238095915e-8, - 6.529054439e-9, 5.059343495e-9, -9.91364156e-10, - -2.27365122e-10, 9.6467911e-11, 2.394038e-12, - -6.886027e-12, 8.94487e-13, 3.13092e-13, - -1.12708e-13, 3.81e-16, 7.106e-15, - -1.523e-15, -9.4e-17, 1.21e-16, - -2.8e-17]; + const cof = [ + -1.3026537197817094, + // eslint-disable-next-line no-loss-of-precision + 6.4196979235649026e-1, + 1.9476473204185836e-2, + -9.561514786808631e-3, + -9.46595344482036e-4, + 3.66839497852761e-4, + 4.2523324806907e-5, + -2.0278578112534e-5, + -1.624290004647e-6, + 1.303655835580e-6, + 1.5626441722e-8, + -8.5238095915e-8, + 6.529054439e-9, + 5.059343495e-9, + -9.91364156e-10, + -2.27365122e-10, + 9.6467911e-11, + 2.394038e-12, + -6.886027e-12, + 8.94487e-13, + 3.13092e-13, + -1.12708e-13, + 3.81e-16, + 7.106e-15, + -1.523e-15, + -9.4e-17, + 1.21e-16, + -2.8e-17, + ]; let _x = x; let isNeg = false; diff --git a/packages/engine-formula/src/basics/statistical.ts b/packages/engine-formula/src/basics/statistical.ts index db8662d7ac..318de2fc7b 100644 --- a/packages/engine-formula/src/basics/statistical.ts +++ b/packages/engine-formula/src/basics/statistical.ts @@ -358,14 +358,26 @@ export function forecastLinear(x: number, knownYs: number[], knownXs: number[]): export function gamma(x: number): number { const p = [ - -1.716185138865495, 24.76565080557592, -379.80425647094563, - 629.3311553128184, 866.9662027904133, -31451.272968848367, - -36144.413418691176, 66456.14382024054, + -1.716185138865495, + 24.76565080557592, + -379.80425647094563, + 629.3311553128184, + 866.9662027904133, + -31451.272968848367, + -36144.413418691176, + 66456.14382024054, ]; const q = [ - -30.8402300119739, 315.35062697960416, -1015.1563674902192, - -3107.771671572311, 22538.118420980151, 4755.8462775278811, // eslint-disable-line - -134659.9598649693, -115132.2596755535, + -30.8402300119739, + 315.35062697960416, + -1015.1563674902192, + -3107.771671572311, + // eslint-disable-next-line no-loss-of-precision + 22538.118420980151, + // eslint-disable-next-line no-loss-of-precision + 4755.8462775278811, + -134659.9598649693, + -115132.2596755535, ]; let fact = 0; @@ -457,7 +469,9 @@ export function gammaINV(probability: number, alpha: number, beta: number): numb export function gammaln(x: number): number { const coefficients = [ 76.18009172947146, -86.50532032941677, 24.01409824083091, // eslint-disable-line - -1.231739572450155, 0.1208650973866179e-2, -0.5395239384953e-5, + -1.231739572450155, + 0.1208650973866179e-2, + -0.5395239384953e-5, ]; let y = x; diff --git a/packages/engine-formula/src/controller/set-dependency.controller.ts b/packages/engine-formula/src/controller/set-dependency.controller.ts index 264d6dbae9..18c4edd54f 100644 --- a/packages/engine-formula/src/controller/set-dependency.controller.ts +++ b/packages/engine-formula/src/controller/set-dependency.controller.ts @@ -19,7 +19,8 @@ import type { ISetDefinedNameMutationParam } from '../commands/mutations/set-def import type { IRemoveFeatureCalculationMutationParam, - ISetFeatureCalculationMutation } from '../commands/mutations/set-feature-calculation.mutation'; + ISetFeatureCalculationMutation, +} from '../commands/mutations/set-feature-calculation.mutation'; import type { ISetFormulaDataMutationParams } from '../commands/mutations/set-formula-data.mutation'; import type { IRemoveOtherFormulaMutationParams, ISetOtherFormulaMutationParams } from '../commands/mutations/set-other-formula.mutation'; import { Disposable, ICommandService, ObjectMatrix } from '@univerjs/core'; @@ -38,7 +39,8 @@ export class SetDependencyController extends Disposable { @ICommandService private readonly _commandService: ICommandService, @IFeatureCalculationManagerService @IDependencyManagerService private readonly _dependencyManagerService: IDependencyManagerService, - @IFeatureCalculationManagerService private readonly _featureCalculationManagerService: IFeatureCalculationManagerService) { + @IFeatureCalculationManagerService private readonly _featureCalculationManagerService: IFeatureCalculationManagerService + ) { super(); this._initialize(); diff --git a/packages/engine-formula/src/engine/ast-node/function-node.ts b/packages/engine-formula/src/engine/ast-node/function-node.ts index a17f64f46d..26001bd20e 100644 --- a/packages/engine-formula/src/engine/ast-node/function-node.ts +++ b/packages/engine-formula/src/engine/ast-node/function-node.ts @@ -22,7 +22,8 @@ import type { AsyncObject, BaseReferenceObject, FunctionVariantType, - NodeValueType } from '../reference-object/base-reference-object'; + NodeValueType, +} from '../reference-object/base-reference-object'; import type { BaseValueObject } from '../value-object/base-value-object'; import type { FormulaFunctionResultValueType } from '../value-object/primitive-object'; import { Inject, Injector } from '@univerjs/core'; diff --git a/packages/engine-formula/src/engine/value-object/__tests__/array-value-atan2.spec.ts b/packages/engine-formula/src/engine/value-object/__tests__/array-value-atan2.spec.ts index 03253a66b9..03285af4e0 100644 --- a/packages/engine-formula/src/engine/value-object/__tests__/array-value-atan2.spec.ts +++ b/packages/engine-formula/src/engine/value-object/__tests__/array-value-atan2.spec.ts @@ -106,10 +106,7 @@ describe('arrayValueObject atan2 method test', () => { expect((atan2ArrayValueObject.atan2(originArrayValueObject) as ArrayValueObject).toValue()).toStrictEqual([ [1.1071487177940904, 0.7853981633974483, 0.5880026035475675, 0.6435011087932844, 0.5404195002705842], [0.3217505543966422, 0.27829965900511133, 0.24497866312686414, 0.3217505543966422, 0.2914567944778671], - [ - 0.17985349979247828, 0.16514867741462683, 0.15264932839526518, 0.21109333322274654, - 0.19739555984988078, - ], + [0.17985349979247828, 0.16514867741462683, 0.15264932839526518, 0.21109333322274654, 0.19739555984988078], ]); }); @@ -126,14 +123,8 @@ describe('arrayValueObject atan2 method test', () => { expect((atan2ArrayValueObject.atan2(originArrayValueObject) as ArrayValueObject).toValue()).toStrictEqual([ [1.2490457723982544, 0.982793723247329, 0.7853981633974483, 0.6435011087932844, 0.5404195002705842], - [ - 0.3217505543966422, 0.27829965900511133, 0.24497866312686414, 0.21866894587394195, - 0.19739555984988078, - ], - [ - 0.09065988720074511, 0.08314123188844122, 0.07677189126977804, 0.07130746478529032, - 0.06656816377582381, - ], + [0.3217505543966422, 0.27829965900511133, 0.24497866312686414, 0.21866894587394195, 0.19739555984988078], + [0.09065988720074511, 0.08314123188844122, 0.07677189126977804, 0.07130746478529032, 0.06656816377582381], ]); }); diff --git a/packages/engine-formula/src/functions/date/datevalue/__tests__/index.spec.ts b/packages/engine-formula/src/functions/date/datevalue/__tests__/index.spec.ts index be5b2699ef..264229a690 100644 --- a/packages/engine-formula/src/functions/date/datevalue/__tests__/index.spec.ts +++ b/packages/engine-formula/src/functions/date/datevalue/__tests__/index.spec.ts @@ -69,8 +69,7 @@ describe('Test datevalue function', () => { it('Serial number is array', () => { const serialNumber = ArrayValueObject.create({ - calculateValueList: transformToValueObject([[1, ' ', 1.23, true, false, null], - [0, '100', '2.34', 'test', -3, ErrorType.NAME]]), + calculateValueList: transformToValueObject([[1, ' ', 1.23, true, false, null], [0, '100', '2.34', 'test', -3, ErrorType.NAME]]), rowCount: 2, columnCount: 6, unitId: '', @@ -79,7 +78,21 @@ describe('Test datevalue function', () => { column: 0, }); const result = testFunction.calculate(serialNumber); - expect(transformToValue(result.getArrayValue())).toStrictEqual([[ErrorType.VALUE, ErrorType.VALUE, ErrorType.VALUE, ErrorType.VALUE, ErrorType.VALUE, ErrorType.VALUE], [ErrorType.VALUE, ErrorType.VALUE, ErrorType.VALUE, ErrorType.VALUE, ErrorType.VALUE, ErrorType.NAME]]); + expect(transformToValue(result.getArrayValue())).toStrictEqual([[ + ErrorType.VALUE, + ErrorType.VALUE, + ErrorType.VALUE, + ErrorType.VALUE, + ErrorType.VALUE, + ErrorType.VALUE, + ], [ + ErrorType.VALUE, + ErrorType.VALUE, + ErrorType.VALUE, + ErrorType.VALUE, + ErrorType.VALUE, + ErrorType.NAME, + ]]); }); }); }); diff --git a/packages/engine-formula/src/functions/date/day/__tests__/index.spec.ts b/packages/engine-formula/src/functions/date/day/__tests__/index.spec.ts index 305971dbd1..53e9984917 100644 --- a/packages/engine-formula/src/functions/date/day/__tests__/index.spec.ts +++ b/packages/engine-formula/src/functions/date/day/__tests__/index.spec.ts @@ -16,12 +16,12 @@ import { describe, expect, it } from 'vitest'; -import { FUNCTION_NAMES_DATE } from '../../function-names'; -import { Day } from '../index'; -import { NumberValueObject, StringValueObject } from '../../../../engine/value-object/primitive-object'; +import { ErrorType } from '../../../../basics/error-type'; import { ArrayValueObject, transformToValue, transformToValueObject } from '../../../../engine/value-object/array-value-object'; import { ErrorValueObject } from '../../../../engine/value-object/base-value-object'; -import { ErrorType } from '../../../../basics/error-type'; +import { NumberValueObject, StringValueObject } from '../../../../engine/value-object/primitive-object'; +import { FUNCTION_NAMES_DATE } from '../../function-names'; +import { Day } from '../index'; describe('Test day function', () => { const testFunction = new Day(FUNCTION_NAMES_DATE.DAY); @@ -46,8 +46,7 @@ describe('Test day function', () => { it('Serial number is array', () => { const serialNumber = ArrayValueObject.create({ - calculateValueList: transformToValueObject([[1, ' ', 1.23, true, false, null], - [0, '100', '2.34', 'test', -3, 1900]]), + calculateValueList: transformToValueObject([[1, ' ', 1.23, true, false, null], [0, '100', '2.34', 'test', -3, 1900]]), rowCount: 2, columnCount: 6, unitId: '', diff --git a/packages/engine-formula/src/functions/date/edate/__tests__/index.spec.ts b/packages/engine-formula/src/functions/date/edate/__tests__/index.spec.ts index d20a042c78..6a402ffeaa 100644 --- a/packages/engine-formula/src/functions/date/edate/__tests__/index.spec.ts +++ b/packages/engine-formula/src/functions/date/edate/__tests__/index.spec.ts @@ -16,10 +16,10 @@ import { describe, expect, it } from 'vitest'; +import { ArrayValueObject, transformToValue, transformToValueObject } from '../../../../engine/value-object/array-value-object'; +import { NumberValueObject } from '../../../../engine/value-object/primitive-object'; import { FUNCTION_NAMES_DATE } from '../../function-names'; import { Edate } from '../index'; -import { NumberValueObject } from '../../../../engine/value-object/primitive-object'; -import { ArrayValueObject, transformToValue, transformToValueObject } from '../../../../engine/value-object/array-value-object'; describe('Test edate function', () => { const testFunction = new Edate(FUNCTION_NAMES_DATE.EDATE); @@ -83,8 +83,7 @@ describe('Test edate function', () => { it('Months is array with multiple format values', () => { const startDate = NumberValueObject.create(43831); const months = ArrayValueObject.create({ - calculateValueList: transformToValueObject([[1, ' ', 1.23, true, false, null], - [0, '100', '2.34', 'test', -3, 1900]]), + calculateValueList: transformToValueObject([[1, ' ', 1.23, true, false, null], [0, '100', '2.34', 'test', -3, 1900]]), rowCount: 2, columnCount: 6, unitId: '', diff --git a/packages/engine-formula/src/functions/date/month/__tests__/index.spec.ts b/packages/engine-formula/src/functions/date/month/__tests__/index.spec.ts index 6d4b9aaaf8..5419ac6ce1 100644 --- a/packages/engine-formula/src/functions/date/month/__tests__/index.spec.ts +++ b/packages/engine-formula/src/functions/date/month/__tests__/index.spec.ts @@ -16,10 +16,10 @@ import { describe, expect, it } from 'vitest'; +import { ArrayValueObject, transformToValue, transformToValueObject } from '../../../../engine/value-object/array-value-object'; +import { NumberValueObject, StringValueObject } from '../../../../engine/value-object/primitive-object'; import { FUNCTION_NAMES_DATE } from '../../function-names'; import { Month } from '../index'; -import { NumberValueObject, StringValueObject } from '../../../../engine/value-object/primitive-object'; -import { ArrayValueObject, transformToValue, transformToValueObject } from '../../../../engine/value-object/array-value-object'; describe('Test month function', () => { const testFunction = new Month(FUNCTION_NAMES_DATE.MONTH); @@ -39,8 +39,7 @@ describe('Test month function', () => { it('Serial number is array', () => { const serialNumber = ArrayValueObject.create({ - calculateValueList: transformToValueObject([[1, ' ', 1.23, true, false, null], - [0, '100', '2.34', 'test', -3, 1900]]), + calculateValueList: transformToValueObject([[1, ' ', 1.23, true, false, null], [0, '100', '2.34', 'test', -3, 1900]]), rowCount: 2, columnCount: 6, unitId: '', diff --git a/packages/engine-formula/src/functions/date/timevalue/__tests__/index.spec.ts b/packages/engine-formula/src/functions/date/timevalue/__tests__/index.spec.ts index 20332c6f9e..93ed6f3c04 100644 --- a/packages/engine-formula/src/functions/date/timevalue/__tests__/index.spec.ts +++ b/packages/engine-formula/src/functions/date/timevalue/__tests__/index.spec.ts @@ -16,12 +16,12 @@ import { describe, expect, it } from 'vitest'; -import { FUNCTION_NAMES_DATE } from '../../function-names'; -import { Timevalue } from '../index'; -import { BooleanValueObject, NullValueObject, NumberValueObject, StringValueObject } from '../../../../engine/value-object/primitive-object'; +import { ErrorType } from '../../../../basics/error-type'; import { ArrayValueObject, transformToValue, transformToValueObject } from '../../../../engine/value-object/array-value-object'; import { ErrorValueObject } from '../../../../engine/value-object/base-value-object'; -import { ErrorType } from '../../../../basics/error-type'; +import { BooleanValueObject, NullValueObject, NumberValueObject, StringValueObject } from '../../../../engine/value-object/primitive-object'; +import { FUNCTION_NAMES_DATE } from '../../function-names'; +import { Timevalue } from '../index'; describe('Test timevalue function', () => { const testFunction = new Timevalue(FUNCTION_NAMES_DATE.TIMEVALUE); @@ -65,8 +65,7 @@ describe('Test timevalue function', () => { it('Serial number is array', () => { const serialNumber = ArrayValueObject.create({ - calculateValueList: transformToValueObject([[1, ' ', 1.23, true, false, null], - [0, '100', '2.34', 'test', -3, ErrorType.NAME]]), + calculateValueList: transformToValueObject([[1, ' ', 1.23, true, false, null], [0, '100', '2.34', 'test', -3, ErrorType.NAME]]), rowCount: 2, columnCount: 6, unitId: '', diff --git a/packages/engine-formula/src/functions/date/year/__tests__/index.spec.ts b/packages/engine-formula/src/functions/date/year/__tests__/index.spec.ts index 39efa9acfe..f43388ee11 100644 --- a/packages/engine-formula/src/functions/date/year/__tests__/index.spec.ts +++ b/packages/engine-formula/src/functions/date/year/__tests__/index.spec.ts @@ -16,10 +16,10 @@ import { describe, expect, it } from 'vitest'; +import { ArrayValueObject, transformToValue, transformToValueObject } from '../../../../engine/value-object/array-value-object'; +import { NumberValueObject, StringValueObject } from '../../../../engine/value-object/primitive-object'; import { FUNCTION_NAMES_DATE } from '../../function-names'; import { Year } from '../index'; -import { NumberValueObject, StringValueObject } from '../../../../engine/value-object/primitive-object'; -import { ArrayValueObject, transformToValue, transformToValueObject } from '../../../../engine/value-object/array-value-object'; describe('Test year function', () => { const testFunction = new Year(FUNCTION_NAMES_DATE.YEAR); @@ -38,8 +38,7 @@ describe('Test year function', () => { it('Serial number is array', () => { const serialNumber = ArrayValueObject.create({ - calculateValueList: transformToValueObject([[1, ' ', 1.23, true, false, null], - [0, '100', '2.34', 'test', -3, 1900]]), + calculateValueList: transformToValueObject([[1, ' ', 1.23, true, false, null], [0, '100', '2.34', 'test', -3, 1900]]), rowCount: 2, columnCount: 6, unitId: '', diff --git a/packages/engine-formula/src/functions/lookup/address/index.ts b/packages/engine-formula/src/functions/lookup/address/index.ts index 13a1bb6bc3..4b48fe45f5 100644 --- a/packages/engine-formula/src/functions/lookup/address/index.ts +++ b/packages/engine-formula/src/functions/lookup/address/index.ts @@ -14,14 +14,16 @@ * limitations under the License. */ -import type { ArrayValueObject } from '../../../engine/value-object/array-value-object'; +import type { IRange } from '@univerjs/core'; -import { AbsoluteRefType, type IRange } from '@univerjs/core'; +import type { ArrayValueObject } from '../../../engine/value-object/array-value-object'; +import type { BaseValueObject } from '../../../engine/value-object/base-value-object'; +import { AbsoluteRefType } from '@univerjs/core'; import { ErrorType } from '../../../basics/error-type'; import { expandArrayValueObject } from '../../../engine/utils/array-object'; import { serializeRangeToR1C1 } from '../../../engine/utils/r1c1-reference'; import { addQuotesBothSides, serializeRange } from '../../../engine/utils/reference'; -import { type BaseValueObject, ErrorValueObject } from '../../../engine/value-object/base-value-object'; +import { ErrorValueObject } from '../../../engine/value-object/base-value-object'; import { BooleanValueObject, NumberValueObject, StringValueObject } from '../../../engine/value-object/primitive-object'; import { BaseFunction } from '../../base-function'; @@ -116,11 +118,7 @@ export class Address extends BaseFunction { }); } - private _calculateSingleCell(rowNumber: BaseValueObject, - columnNumber: BaseValueObject, - absNumber: BaseValueObject, - a1: BaseValueObject, - sheetText: BaseValueObject) { + private _calculateSingleCell(rowNumber: BaseValueObject, columnNumber: BaseValueObject, absNumber: BaseValueObject, a1: BaseValueObject, sheetText: BaseValueObject) { const row = Number.parseInt(`${Number(rowNumber.getValue()) - 1}`); const column = Number.parseInt(`${Number(columnNumber.getValue()) - 1}`); const absNumberValue = Number.parseInt(`${Number(absNumber.getValue())}`); diff --git a/packages/engine-formula/src/functions/math/subtotal/index.ts b/packages/engine-formula/src/functions/math/subtotal/index.ts index c8c2bd658a..1b90526d0c 100644 --- a/packages/engine-formula/src/functions/math/subtotal/index.ts +++ b/packages/engine-formula/src/functions/math/subtotal/index.ts @@ -15,14 +15,15 @@ */ import type { IObjectArrayPrimitiveType, IRowData, Nullable } from '@univerjs/core'; +import type { BaseReferenceObject, FunctionVariantType } from '../../../engine/reference-object/base-reference-object'; +import type { ArrayValueObject } from '../../../engine/value-object/array-value-object'; +import type { BaseValueObject } from '../../../engine/value-object/base-value-object'; import { BooleanNumber } from '@univerjs/core'; import { ErrorType } from '../../../basics/error-type'; -import type { BaseReferenceObject, FunctionVariantType } from '../../../engine/reference-object/base-reference-object'; -import { type BaseValueObject, ErrorValueObject } from '../../../engine/value-object/base-value-object'; -import { BaseFunction } from '../../base-function'; import { createNewArray } from '../../../engine/utils/array-object'; +import { ErrorValueObject } from '../../../engine/value-object/base-value-object'; import { NumberValueObject } from '../../../engine/value-object/primitive-object'; -import type { ArrayValueObject } from '../../../engine/value-object/array-value-object'; +import { BaseFunction } from '../../base-function'; enum FunctionNum { AVERAGE = 1, @@ -407,8 +408,7 @@ export class Subtotal extends BaseFunction { return createNewArray(flattenValues, 1, flattenValues[0].length); } - private _isRowHidden(rowData: IObjectArrayPrimitiveType>, rowIndex: number - ) { + private _isRowHidden(rowData: IObjectArrayPrimitiveType>, rowIndex: number) { const row = rowData[rowIndex]; if (!row) { return false; diff --git a/packages/engine-formula/src/services/defined-names.service.ts b/packages/engine-formula/src/services/defined-names.service.ts index a430ab92c7..57576924c9 100644 --- a/packages/engine-formula/src/services/defined-names.service.ts +++ b/packages/engine-formula/src/services/defined-names.service.ts @@ -85,7 +85,9 @@ export class DefinedNamesService extends Disposable implements IDefinedNamesServ readonly update$ = this._update$.asObservable(); private _currentRange: IUnitRange = { - unitId: '', sheetId: '', range: { + unitId: '', + sheetId: '', + range: { startRow: 0, endRow: 0, startColumn: 0, diff --git a/packages/engine-numfmt/package.json b/packages/engine-numfmt/package.json index f1ee20666a..6234d2b0c2 100644 --- a/packages/engine-numfmt/package.json +++ b/packages/engine-numfmt/package.json @@ -59,7 +59,7 @@ }, "devDependencies": { "@univerjs-infra/shared": "workspace:*", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/engine-render/package.json b/packages/engine-render/package.json index f89069e988..5406165ac7 100644 --- a/packages/engine-render/package.json +++ b/packages/engine-render/package.json @@ -72,7 +72,7 @@ "@types/opentype.js": "^1.3.8", "@univerjs-infra/shared": "workspace:*", "rxjs": "^7.8.1", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" }, diff --git a/packages/engine-render/src/components/docs/layout/block/paragraph/layout-ruler.ts b/packages/engine-render/src/components/docs/layout/block/paragraph/layout-ruler.ts index 09b9f9124e..c793c87f15 100644 --- a/packages/engine-render/src/components/docs/layout/block/paragraph/layout-ruler.ts +++ b/packages/engine-render/src/components/docs/layout/block/paragraph/layout-ruler.ts @@ -398,14 +398,7 @@ function _divideOperator( ); } - _divideOperator(ctx, - glyphGroup, - pages, - sectionBreakConfig, - paragraphConfig, - isParagraphFirstShapedText, - - breakPointType); + _divideOperator(ctx, glyphGroup, pages, sectionBreakConfig, paragraphConfig, isParagraphFirstShapedText, breakPointType); return; } @@ -414,15 +407,7 @@ function _divideOperator( updateDivideInfo(divide, { breakType: breakPointType }); } } else { - _lineOperator(ctx, - glyphGroup, - pages, - sectionBreakConfig, - paragraphConfig, - isParagraphFirstShapedText, - - breakPointType, - defaultSpanLineHeight); + _lineOperator(ctx, glyphGroup, pages, sectionBreakConfig, paragraphConfig, isParagraphFirstShapedText, breakPointType, defaultSpanLineHeight); } } @@ -483,7 +468,12 @@ function _lineOperator( } = paragraphStyle; const { - paragraphLineGapDefault, linePitch, lineSpacing, spacingRule, snapToGrid, gridType, + paragraphLineGapDefault, + linePitch, + lineSpacing, + spacingRule, + snapToGrid, + gridType, } = getLineHeightConfig( sectionBreakConfig, paragraphConfig @@ -761,7 +751,13 @@ function __getWrapTablePosition( const left = getPositionHorizon(positionH, column, page, width, isPageBreak) ?? 0; const top = getPositionVertical( - positionV, page, lineTop, lineHeight, height, drawingAnchorTop, isPageBreak + positionV, + page, + lineTop, + lineHeight, + height, + drawingAnchorTop, + isPageBreak ) ?? 0; return { left, top }; @@ -1038,18 +1034,9 @@ function _columnOperator( const columnIsFull = isColumnFull(lastPage); if (columnIsFull === true) { - _pageOperator(ctx, - glyphGroup, - pages, - sectionBreakConfig, - paragraphConfig, - isParagraphFirstShapedText, - - breakPointType, defaultSpanLineHeight); + _pageOperator(ctx, glyphGroup, pages, sectionBreakConfig, paragraphConfig, isParagraphFirstShapedText, breakPointType, defaultSpanLineHeight); } else { - _lineOperator(ctx, glyphGroup, pages, sectionBreakConfig, paragraphConfig, - isParagraphFirstShapedText, - breakPointType, defaultSpanLineHeight); + _lineOperator(ctx, glyphGroup, pages, sectionBreakConfig, paragraphConfig, isParagraphFirstShapedText, breakPointType, defaultSpanLineHeight); } } @@ -1067,14 +1054,7 @@ function _pageOperator( const { skeHeaders, skeFooters } = paragraphConfig; pages.push(createSkeletonPage(ctx, sectionBreakConfig, { skeHeaders, skeFooters }, curSkeletonPage?.pageNumber + 1)); - _columnOperator(ctx, glyphGroup, - pages, - sectionBreakConfig, - paragraphConfig, - isParagraphFirstShapedText, - - breakPointType, - defaultSpanLineHeight); + _columnOperator(ctx, glyphGroup, pages, sectionBreakConfig, paragraphConfig, isParagraphFirstShapedText, breakPointType, defaultSpanLineHeight); } /** @@ -1301,7 +1281,13 @@ function __getDrawingPosition( drawing.aLeft = getPositionHorizon(positionH, column, page, width, isPageBreak) ?? 0; drawing.aTop = getPositionVertical( - positionV, page, lineTop, lineHeight, height, blockAnchorTop, isPageBreak + positionV, + page, + lineTop, + lineHeight, + height, + blockAnchorTop, + isPageBreak ) ?? 0; drawing.width = width; drawing.height = height; diff --git a/packages/engine-render/src/components/docs/layout/line-breaker/__tests__/linebreak.spec.ts b/packages/engine-render/src/components/docs/layout/line-breaker/__tests__/linebreak.spec.ts index ab3e04f9b0..6a8d1d9e17 100644 --- a/packages/engine-render/src/components/docs/layout/line-breaker/__tests__/linebreak.spec.ts +++ b/packages/engine-render/src/components/docs/layout/line-breaker/__tests__/linebreak.spec.ts @@ -14,6 +14,7 @@ * limitations under the License. */ +/* eslint-disable antfu/consistent-list-newline */ import fs from 'node:fs'; import { resolve } from 'node:path'; import { describe, expect, it } from 'vitest'; diff --git a/packages/engine-render/src/components/docs/layout/line-breaker/line-breaker.ts b/packages/engine-render/src/components/docs/layout/line-breaker/line-breaker.ts index 43f997e6a0..da7192aa28 100644 --- a/packages/engine-render/src/components/docs/layout/line-breaker/line-breaker.ts +++ b/packages/engine-render/src/components/docs/layout/line-breaker/line-breaker.ts @@ -18,10 +18,10 @@ import type { Nullable } from '@univerjs/core'; +import type { ILineBreakRule } from './rule'; import { Break, BreakPointType } from './break'; import { AI, AL, BA, BK, CJ, CR, HL, HY, LF, NL, NS, RI, SA, SG, SP, WJ, XX, ZWJ } from './classes'; import { CI_BRK, CP_BRK, DI_BRK, IN_BRK, pairTable, PR_BRK } from './pairs'; -import type { ILineBreakRule } from './rule'; import { Rule } from './rule'; import data from './trie-data'; import UnicodeTrie from './unicode-trie'; diff --git a/packages/engine-render/src/components/docs/layout/line-breaker/trie-data.ts b/packages/engine-render/src/components/docs/layout/line-breaker/trie-data.ts index fa46b4c5ee..74e26b6cae 100644 --- a/packages/engine-render/src/components/docs/layout/line-breaker/trie-data.ts +++ b/packages/engine-render/src/components/docs/layout/line-breaker/trie-data.ts @@ -14,6 +14,7 @@ * limitations under the License. */ +/* eslint-disable antfu/consistent-list-newline */ export default new Uint8Array([ 0, 8, 14, 0, 0, 0, 0, 0, 176, 232, 0, 0, 1, 181, 15, 74, 240, 237, 157, 11, 140, 93, 69, 25, 199, 231, 178, 187, 183, 123, 31, 187, 237, 46, 108, 193, 194, 22, 104, 41, 200, 242, 48, 128, 104, 16, 129, 152, 162, 64, 42, 10, 193, diff --git a/packages/engine-render/src/components/docs/layout/model/column.ts b/packages/engine-render/src/components/docs/layout/model/column.ts index 35343a6427..ee5b0e9ccf 100644 --- a/packages/engine-render/src/components/docs/layout/model/column.ts +++ b/packages/engine-render/src/components/docs/layout/model/column.ts @@ -15,10 +15,10 @@ */ import type { ISectionColumnProperties } from '@univerjs/core'; -import { ColumnSeparatorType } from '@univerjs/core'; - import type { IDocumentSkeletonColumn } from '../../../../basics/i-document-skeleton-cached'; +import { ColumnSeparatorType } from '@univerjs/core'; + export function createSkeletonColumn( columnIndex: number = 0, columnProperties: ISectionColumnProperties[], diff --git a/packages/engine-render/src/components/docs/layout/model/page.ts b/packages/engine-render/src/components/docs/layout/model/page.ts index deb866e964..920f014c2c 100644 --- a/packages/engine-render/src/components/docs/layout/model/page.ts +++ b/packages/engine-render/src/components/docs/layout/model/page.ts @@ -209,9 +209,16 @@ function _createSkeletonHeaderFooter( count = 0 ): IDocumentSkeletonHeaderFooter { const { - lists, footerTreeMap, headerTreeMap, localeService, pageSize, drawings, - marginLeft = 0, marginRight = 0, - marginHeader = 0, marginFooter = 0, + lists, + footerTreeMap, + headerTreeMap, + localeService, + pageSize, + drawings, + marginLeft = 0, + marginRight = 0, + marginHeader = 0, + marginFooter = 0, } = sectionBreakConfig; const pageWidth = pageSize?.width || Number.POSITIVE_INFINITY; const pageHeight = pageSize?.height || Number.POSITIVE_INFINITY; diff --git a/packages/engine-render/src/components/docs/layout/shaping-engine/font-library.ts b/packages/engine-render/src/components/docs/layout/shaping-engine/font-library.ts index ac8b9477d9..6f198f9a17 100644 --- a/packages/engine-render/src/components/docs/layout/shaping-engine/font-library.ts +++ b/packages/engine-render/src/components/docs/layout/shaping-engine/font-library.ts @@ -14,7 +14,8 @@ * limitations under the License. */ -import { BooleanNumber, type IStyleBase, type Nullable } from '@univerjs/core'; +import type { IStyleBase, Nullable } from '@univerjs/core'; +import { BooleanNumber } from '@univerjs/core'; interface IFontData { readonly family: string; diff --git a/packages/engine-render/src/components/docs/layout/shaping-engine/text-shaping.ts b/packages/engine-render/src/components/docs/layout/shaping-engine/text-shaping.ts index 4a45eaa3a9..29c5e2e9fb 100644 --- a/packages/engine-render/src/components/docs/layout/shaping-engine/text-shaping.ts +++ b/packages/engine-render/src/components/docs/layout/shaping-engine/text-shaping.ts @@ -14,10 +14,11 @@ * limitations under the License. */ -import { BooleanNumber, type IDocumentBody, type IStyleBase, type Nullable } from '@univerjs/core'; +import type { IDocumentBody, IStyleBase, Nullable } from '@univerjs/core'; +import type Opentype from 'opentype.js'; +import { BooleanNumber } from '@univerjs/core'; // @ts-ignore import { parse } from 'opentype.js/dist/opentype.module'; -import type Opentype from 'opentype.js'; import { DEFAULT_FONTFACE_PLANE } from '../../../../basics/const'; import { EMOJI_REG } from '../../../../basics/tools'; import { fontLibrary } from './font-library'; diff --git a/packages/engine-render/src/components/docs/layout/tools.ts b/packages/engine-render/src/components/docs/layout/tools.ts index f347a4e087..1929a3bc55 100644 --- a/packages/engine-render/src/components/docs/layout/tools.ts +++ b/packages/engine-render/src/components/docs/layout/tools.ts @@ -525,7 +525,8 @@ export function lineIterator( column: IDocumentSkeletonColumn, section: IDocumentSkeletonSection, page: IDocumentSkeletonPage - ) => void) { + ) => void +) { for (const pageOrCell of pagesOrCells) { const { sections } = pageOrCell; diff --git a/packages/engine-render/src/components/sheets/sheet.render-skeleton.ts b/packages/engine-render/src/components/sheets/sheet.render-skeleton.ts index fab4634868..2942c2f7f4 100644 --- a/packages/engine-render/src/components/sheets/sheet.render-skeleton.ts +++ b/packages/engine-render/src/components/sheets/sheet.render-skeleton.ts @@ -188,7 +188,8 @@ export class SpreadsheetSkeleton extends SheetSkeleton { this.disposeWithMe( this._scene.onTransformChange$.subscribeEvent((param: ITransformChangeState) => { this.setScale(param.value.scaleX || 1, param.value.scaleY); - })); + }) + ); } override _updateLayout() { diff --git a/packages/engine-render/src/components/sheets/spreadsheet.ts b/packages/engine-render/src/components/sheets/spreadsheet.ts index 4b19e63232..9a8e035d08 100644 --- a/packages/engine-render/src/components/sheets/spreadsheet.ts +++ b/packages/engine-render/src/components/sheets/spreadsheet.ts @@ -278,7 +278,17 @@ export class Spreadsheet extends SheetComponent { // scrolling && no dirty this.addRenderTagToScene('scrolling', true); this.paintNewAreaForScrolling(viewportInfo, { - cacheCanvas, cacheCtx, mainCtx, topOrigin, leftOrigin, bufferEdgeX, bufferEdgeY, scaleX, scaleY, columnHeaderHeight, rowHeaderWidth, + cacheCanvas, + cacheCtx, + mainCtx, + topOrigin, + leftOrigin, + bufferEdgeX, + bufferEdgeY, + scaleX, + scaleY, + columnHeaderHeight, + rowHeaderWidth, }); } // support for browser native zoom (only windows has this problem) diff --git a/packages/engine-render/src/components/slides/slide.ts b/packages/engine-render/src/components/slides/slide.ts index a6d18c5c47..0808e06223 100644 --- a/packages/engine-render/src/components/slides/slide.ts +++ b/packages/engine-render/src/components/slides/slide.ts @@ -15,14 +15,14 @@ */ import type { Nullable } from '@univerjs/core'; -import { COLORS, EventSubject } from '@univerjs/core'; - -import { CURSOR_TYPE } from '../../basics/const'; import type { IMouseEvent, IPointerEvent } from '../../basics/i-events'; -import { attachObjectHover } from '../../basics/quick-event'; -import { getColor } from '../../basics/tools'; + import type { UniverRenderingContext } from '../../context'; import type { Scene } from '../../scene'; +import { COLORS, EventSubject } from '@univerjs/core'; +import { CURSOR_TYPE } from '../../basics/const'; +import { attachObjectHover } from '../../basics/quick-event'; +import { getColor } from '../../basics/tools'; import { SceneViewer } from '../../scene-viewer'; import { Path } from '../../shape/path'; diff --git a/packages/engine-render/src/scene.transformer.ts b/packages/engine-render/src/scene.transformer.ts index b094e6cb44..14eaf57ca7 100644 --- a/packages/engine-render/src/scene.transformer.ts +++ b/packages/engine-render/src/scene.transformer.ts @@ -15,25 +15,28 @@ */ import type { IAbsoluteTransform, IKeyValue, Nullable } from '@univerjs/core'; -import type { IMouseEvent, IPointerEvent } from './basics/i-events'; +import type { Subscription } from 'rxjs'; +import type { BaseObject } from './base-object'; +import type { IMouseEvent, IPointerEvent } from './basics/i-events'; import type { ITransformerConfig } from './basics/transformer-config'; import type { IPoint } from './basics/vector2'; import type { Scene } from './scene'; import type { IRectProps } from './shape/rect'; +import type { IRegularPolygonProps } from './shape/regular-polygon'; import { Disposable, MOVE_BUFFER_VALUE, requestImmediateMacroTask, toDisposable } from '@univerjs/core'; -import { Subject, type Subscription } from 'rxjs'; -import { type BaseObject, ObjectType } from './base-object'; +import { Subject } from 'rxjs'; +import { ObjectType } from './base-object'; import { CURSOR_TYPE } from './basics/const'; -import { offsetRotationAxis } from './basics/offset-rotation-axis'; +import { offsetRotationAxis } from './basics/offset-rotation-axis'; import { getCurrentScrollXY } from './basics/scroll-xy'; import { degToRad, precisionTo, radToDeg } from './basics/tools'; import { Vector2 } from './basics/vector2'; import { Group } from './group'; import { ScrollTimer } from './scroll-timer'; import { Rect } from './shape/rect'; -import { type IRegularPolygonProps, RegularPolygon } from './shape/regular-polygon'; +import { RegularPolygon } from './shape/regular-polygon'; enum TransformerManagerType { RESIZE_LT = '__SpreadsheetTransformerResizeLT__', @@ -284,16 +287,39 @@ export class Transformer extends Disposable implements ITransformerConfig { this._createControl(applyObject); } - // eslint-disable-next-line complexity + // eslint-disable-next-line max-lines-per-function, complexity private _getConfig(applyObject: BaseObject) { const objectTransformerConfig = applyObject.transformerConfig; let { - isCropper, hoverEnabled, hoverEnterFunc, hoverLeaveFunc, resizeEnabled, - rotateEnabled, rotationSnaps, rotationSnapTolerance, rotateAnchorOffset, rotateSize, rotateCornerRadius, - borderEnabled, borderStroke, borderStrokeWidth, borderDash, borderSpacing, - anchorFill, anchorStroke, anchorStrokeWidth, anchorSize, anchorCornerRadius, - keepRatio, centeredScaling, enabledAnchors, flipEnabled, ignoreStroke, - boundBoxFunc, useSingleNodeRotation, shouldOverdrawWholeArea, + isCropper, + hoverEnabled, + hoverEnterFunc, + hoverLeaveFunc, + resizeEnabled, + rotateEnabled, + rotationSnaps, + rotationSnapTolerance, + rotateAnchorOffset, + rotateSize, + rotateCornerRadius, + borderEnabled, + borderStroke, + borderStrokeWidth, + borderDash, + borderSpacing, + anchorFill, + anchorStroke, + anchorStrokeWidth, + anchorSize, + anchorCornerRadius, + keepRatio, + centeredScaling, + enabledAnchors, + flipEnabled, + ignoreStroke, + boundBoxFunc, + useSingleNodeRotation, + shouldOverdrawWholeArea, } = this; if (objectTransformerConfig != null) { isCropper = objectTransformerConfig.isCropper ?? isCropper; @@ -328,12 +354,35 @@ export class Transformer extends Disposable implements ITransformerConfig { } return { - isCropper, hoverEnabled, hoverEnterFunc, hoverLeaveFunc, resizeEnabled, - rotateEnabled, rotationSnaps, rotationSnapTolerance, rotateAnchorOffset, rotateSize, rotateCornerRadius, - borderEnabled, borderStroke, borderStrokeWidth, borderDash, borderSpacing, - anchorFill, anchorStroke, anchorStrokeWidth, anchorSize, anchorCornerRadius, - keepRatio, centeredScaling, enabledAnchors, flipEnabled, ignoreStroke, - boundBoxFunc, useSingleNodeRotation, shouldOverdrawWholeArea, + isCropper, + hoverEnabled, + hoverEnterFunc, + hoverLeaveFunc, + resizeEnabled, + rotateEnabled, + rotationSnaps, + rotationSnapTolerance, + rotateAnchorOffset, + rotateSize, + rotateCornerRadius, + borderEnabled, + borderStroke, + borderStrokeWidth, + borderDash, + borderSpacing, + anchorFill, + anchorStroke, + anchorStrokeWidth, + anchorSize, + anchorCornerRadius, + keepRatio, + centeredScaling, + enabledAnchors, + flipEnabled, + ignoreStroke, + boundBoxFunc, + useSingleNodeRotation, + shouldOverdrawWholeArea, }; } @@ -538,8 +587,13 @@ export class Transformer extends Disposable implements ITransformerConfig { const moveObject = selectedObjects[i]; const boundary = this._checkMoveBoundary( - moveObject, moveLeft, moveTop, ancestorLeft, - ancestorTop, topSceneWidth, topSceneHeight + moveObject, + moveLeft, + moveTop, + ancestorLeft, + ancestorTop, + topSceneWidth, + topSceneHeight ); moveLeft = boundary.moveLeft; @@ -1566,27 +1620,45 @@ export class Transformer extends Disposable implements ITransformerConfig { if (borderEnabled && !isCropper) { const outline = new Rect(`${TransformerManagerType.OUTLINE}_${zIndex}`, { - zIndex: zIndex - 1, evented: false, strokeWidth: borderStrokeWidth, stroke: borderStroke, + zIndex: zIndex - 1, + evented: false, + strokeWidth: borderStrokeWidth, + stroke: borderStroke, ...this._getOutlinePosition(width, height, borderSpacing, borderStrokeWidth), }); groupElements.push(outline); } if (resizeEnabled && !isCropper) { const { left: lineLeft, top: lineTop } = this._getRotateAnchorPosition( - TransformerManagerType.ROTATE_LINE, height, width, applyObject + TransformerManagerType.ROTATE_LINE, + height, + width, + applyObject ); if (rotateEnabled) { const rotateLine = new Rect(`${TransformerManagerType.ROTATE_LINE}_${zIndex}`, { - zIndex: zIndex - 1, evented: false, left: lineLeft, top: lineTop, height: rotateAnchorOffset, width: 1, - strokeWidth: borderStrokeWidth, stroke: borderStroke, + zIndex: zIndex - 1, + evented: false, + left: lineLeft, + top: lineTop, + height: rotateAnchorOffset, + width: 1, + strokeWidth: borderStrokeWidth, + stroke: borderStroke, }); const { left, top } = this._getRotateAnchorPosition(TransformerManagerType.ROTATE, height, width, applyObject); const cursor = this._getRotateAnchorCursor(TransformerManagerType.ROTATE); const rotate = new Rect(`${TransformerManagerType.ROTATE}_${zIndex}`, { - zIndex: zIndex - 1, left, top, height: rotateSize, width: rotateSize, - radius: rotateCornerRadius, strokeWidth: borderStrokeWidth * 2, stroke: borderStroke, + zIndex: zIndex - 1, + left, + top, + height: rotateSize, + width: rotateSize, + radius: rotateCornerRadius, + strokeWidth: borderStrokeWidth * 2, + stroke: borderStroke, }); this._attachEventToRotate(rotate, applyObject); this._attachHover(rotate, cursor, CURSOR_TYPE.DEFAULT); diff --git a/packages/engine-render/src/shape/circle.ts b/packages/engine-render/src/shape/circle.ts index 78b64234fa..2fbdc95707 100644 --- a/packages/engine-render/src/shape/circle.ts +++ b/packages/engine-render/src/shape/circle.ts @@ -16,10 +16,10 @@ import type { IKeyValue } from '@univerjs/core'; -import { TRANSFORM_CHANGE_OBSERVABLE_TYPE } from '../basics/interfaces'; import type { UniverRenderingContext } from '../context'; -import { ObjectType } from '../base-object'; import type { IShapeProps } from './shape'; +import { ObjectType } from '../base-object'; +import { TRANSFORM_CHANGE_OBSERVABLE_TYPE } from '../basics/interfaces'; import { Shape } from './shape'; export interface ICircleProps extends IShapeProps { diff --git a/packages/engine-render/src/shape/dashedrect.ts b/packages/engine-render/src/shape/dashedrect.ts index a1eb13c7e4..72aea3bc02 100644 --- a/packages/engine-render/src/shape/dashedrect.ts +++ b/packages/engine-render/src/shape/dashedrect.ts @@ -14,10 +14,10 @@ * limitations under the License. */ -import { Rectangle } from '@univerjs/core'; import type { IViewportInfo } from '../basics/vector2'; import type { UniverRenderingContext } from '../context'; import type { IRectProps } from './rect'; +import { Rectangle } from '@univerjs/core'; import { Rect } from './rect'; export class DashedRect extends Rect { diff --git a/packages/engine-render/src/shape/image.ts b/packages/engine-render/src/shape/image.ts index 30d93eb670..baead24309 100644 --- a/packages/engine-render/src/shape/image.ts +++ b/packages/engine-render/src/shape/image.ts @@ -16,13 +16,13 @@ import type { ISrcRect, Nullable, PresetGeometryType } from '@univerjs/core'; -import type { UniverRenderingContext } from '../context'; import type { IObjectFullState, ITransformChangeState, IViewportInfo } from '../basics'; +import type { UniverRenderingContext } from '../context'; +import type { Scene } from '../scene'; +import type { IShapeProps } from './shape'; +import { ObjectType } from '../base-object'; import { RENDER_CLASS_TYPE, Vector2 } from '../basics'; import { offsetRotationAxis } from '../basics/offset-rotation-axis'; -import type { Scene } from '../scene'; -import { ObjectType } from '../base-object'; -import type { IShapeProps } from './shape'; import { Shape } from './shape'; export interface IImageProps extends IShapeProps { diff --git a/packages/engine-render/src/shape/path.ts b/packages/engine-render/src/shape/path.ts index a6f0b8a057..521b07a974 100644 --- a/packages/engine-render/src/shape/path.ts +++ b/packages/engine-render/src/shape/path.ts @@ -17,9 +17,9 @@ import type { IKeyValue, Nullable } from '@univerjs/core'; import type { IObjectFullState } from '../basics/interfaces'; -import { TRANSFORM_CHANGE_OBSERVABLE_TYPE } from '../basics/interfaces'; import type { UniverRenderingContext } from '../context'; import type { IShapeProps } from './shape'; +import { TRANSFORM_CHANGE_OBSERVABLE_TYPE } from '../basics/interfaces'; import { Shape } from './shape'; interface IPathDataArray { diff --git a/packages/engine-render/src/shape/regular-polygon.ts b/packages/engine-render/src/shape/regular-polygon.ts index 9dfa6b867e..0996c41332 100644 --- a/packages/engine-render/src/shape/regular-polygon.ts +++ b/packages/engine-render/src/shape/regular-polygon.ts @@ -17,10 +17,10 @@ import type { IKeyValue } from '@univerjs/core'; import type { IObjectFullState } from '../basics/interfaces'; -import { TRANSFORM_CHANGE_OBSERVABLE_TYPE } from '../basics/interfaces'; import type { IPoint, Vector2 } from '../basics/vector2'; import type { UniverRenderingContext } from '../context'; import type { IShapeProps } from './shape'; +import { TRANSFORM_CHANGE_OBSERVABLE_TYPE } from '../basics/interfaces'; import { Shape } from './shape'; export interface IRegularPolygonProps extends IShapeProps { diff --git a/packages/engine-render/src/shape/rich-text.ts b/packages/engine-render/src/shape/rich-text.ts index 1d7547e80b..cbd1c91a93 100644 --- a/packages/engine-render/src/shape/rich-text.ts +++ b/packages/engine-render/src/shape/rich-text.ts @@ -25,16 +25,16 @@ import type { LocaleService, Nullable, } from '@univerjs/core'; -import { BooleanNumber, DEFAULT_EMPTY_DOCUMENT_VALUE, DocumentDataModel } from '@univerjs/core'; - import type { BASE_OBJECT_ARRAY } from '../base-object'; + +import type { IViewportInfo } from '../basics/vector2'; +import type { UniverRenderingContext } from '../context'; +import { BooleanNumber, DEFAULT_EMPTY_DOCUMENT_VALUE, DocumentDataModel } from '@univerjs/core'; import { BaseObject, ObjectType } from '../base-object'; import { TRANSFORM_CHANGE_OBSERVABLE_TYPE } from '../basics/interfaces'; -import type { IViewportInfo } from '../basics/vector2'; -import { DocumentSkeleton } from '../components/docs/layout/doc-skeleton'; import { Documents } from '../components/docs/document'; +import { DocumentSkeleton } from '../components/docs/layout/doc-skeleton'; import { DocumentViewModel } from '../components/docs/view-model/document-view-model'; -import type { UniverRenderingContext } from '../context'; export interface IRichTextProps extends ITransformState, IStyleBase { text?: string; diff --git a/packages/facade/package.json b/packages/facade/package.json index 70c19d8e43..35b84c3f7f 100644 --- a/packages/facade/package.json +++ b/packages/facade/package.json @@ -89,7 +89,7 @@ "jest-canvas-mock": "^2.5.2", "jsdom": "^24.1.1", "rxjs": "^7.8.1", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/find-replace/package.json b/packages/find-replace/package.json index 1ce8895149..7a35d3073f 100644 --- a/packages/find-replace/package.json +++ b/packages/find-replace/package.json @@ -81,7 +81,7 @@ "react": "18.3.1", "rxjs": "^7.8.1", "tailwindcss": "^3.4.17", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/find-replace/src/controllers/find-replace.controller.ts b/packages/find-replace/src/controllers/find-replace.controller.ts index e03e3e0a19..ad0df4a3ac 100644 --- a/packages/find-replace/src/controllers/find-replace.controller.ts +++ b/packages/find-replace/src/controllers/find-replace.controller.ts @@ -16,7 +16,8 @@ import type { IDisposable, - Nullable } from '@univerjs/core'; + Nullable, +} from '@univerjs/core'; import { ICommandService, Inject, @@ -27,12 +28,7 @@ import { toDisposable, } from '@univerjs/core'; import { SearchSingle } from '@univerjs/icons'; -import { ComponentManager, - IDialogService, - ILayoutService, - IMenuManagerService, - IShortcutService, -} from '@univerjs/ui'; +import { ComponentManager, IDialogService, ILayoutService, IMenuManagerService, IShortcutService } from '@univerjs/ui'; import { takeUntil } from 'rxjs'; import { ReplaceAllMatchesCommand, ReplaceCurrentMatchCommand } from '../commands/commands/replace.command'; diff --git a/packages/find-replace/src/services/find-replace.service.ts b/packages/find-replace/src/services/find-replace.service.ts index c2c49eaf56..282035feef 100644 --- a/packages/find-replace/src/services/find-replace.service.ts +++ b/packages/find-replace/src/services/find-replace.service.ts @@ -237,7 +237,8 @@ export class FindReplaceModel extends Disposable { this._stopSearching(); } } - })); + }) + ); } override dispose(): void { diff --git a/packages/find-replace/src/views/dialog/FindReplaceDialog.tsx b/packages/find-replace/src/views/dialog/FindReplaceDialog.tsx index 968f8880c4..57e610d958 100644 --- a/packages/find-replace/src/views/dialog/FindReplaceDialog.tsx +++ b/packages/find-replace/src/views/dialog/FindReplaceDialog.tsx @@ -259,10 +259,12 @@ export function FindReplaceDialog() { const focusRef = useRef(null); const setDialogContainerFocus = useCallback( (focused: boolean) => contextService.setContextValue(FIND_REPLACE_DIALOG_FOCUS, focused), - [contextService]); + [contextService] + ); const setDialogInputFocus = useCallback( (focused: boolean) => contextService.setContextValue(FIND_REPLACE_INPUT_FOCUS, focused), - [contextService]); + [contextService] + ); useEffect(() => { const focusSubscription = fromEvent(document, 'focusin').subscribe((event) => { diff --git a/packages/network/package.json b/packages/network/package.json index 5590570c25..bd16fb4db0 100644 --- a/packages/network/package.json +++ b/packages/network/package.json @@ -71,7 +71,7 @@ "devDependencies": { "@univerjs-infra/shared": "workspace:*", "rxjs": "^7.8.1", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/rpc-node/package.json b/packages/rpc-node/package.json index 9be927c235..a7cf4478c9 100644 --- a/packages/rpc-node/package.json +++ b/packages/rpc-node/package.json @@ -65,7 +65,7 @@ "devDependencies": { "@univerjs-infra/shared": "workspace:*", "rxjs": "^7.8.1", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/rpc/package.json b/packages/rpc/package.json index 625bc3c516..365c34f2f9 100644 --- a/packages/rpc/package.json +++ b/packages/rpc/package.json @@ -65,7 +65,7 @@ "devDependencies": { "@univerjs-infra/shared": "workspace:*", "rxjs": "^7.8.1", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/rpc/src/plugin.ts b/packages/rpc/src/plugin.ts index 2305a59296..ad3fbeceb2 100644 --- a/packages/rpc/src/plugin.ts +++ b/packages/rpc/src/plugin.ts @@ -23,7 +23,8 @@ import { IConfigService, Inject, Injector, merge, Plugin } from '@univerjs/core' import { defaultPluginMainThreadConfig, defaultPluginWorkerThreadConfig, - PLUGIN_CONFIG_KEY_MAIN_THREAD, PLUGIN_CONFIG_KEY_WORKER_THREAD, + PLUGIN_CONFIG_KEY_MAIN_THREAD, + PLUGIN_CONFIG_KEY_WORKER_THREAD, } from './controllers/config.schema'; import { DataSyncPrimaryController } from './controllers/data-sync/data-sync-primary.controller'; import { DataSyncReplicaController } from './controllers/data-sync/data-sync-replica.controller'; diff --git a/packages/sheets-conditional-formatting-ui/package.json b/packages/sheets-conditional-formatting-ui/package.json index 4e3d68940d..32acbf638d 100644 --- a/packages/sheets-conditional-formatting-ui/package.json +++ b/packages/sheets-conditional-formatting-ui/package.json @@ -90,7 +90,7 @@ "react": "18.3.1", "rxjs": "^7.8.1", "tailwindcss": "^3.4.17", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/sheets-conditional-formatting-ui/src/commands/commands/add-average-cf.command.ts b/packages/sheets-conditional-formatting-ui/src/commands/commands/add-average-cf.command.ts index 5ad656042e..373ecf087f 100644 --- a/packages/sheets-conditional-formatting-ui/src/commands/commands/add-average-cf.command.ts +++ b/packages/sheets-conditional-formatting-ui/src/commands/commands/add-average-cf.command.ts @@ -15,6 +15,7 @@ */ import type { ICommand, IRange } from '@univerjs/core'; +import type { IAddConditionalRuleMutationParams, IAverageHighlightCell, IConditionFormattingRule } from '@univerjs/sheets-conditional-formatting'; import { CommandType, ICommandService, @@ -22,7 +23,6 @@ import { } from '@univerjs/core'; import { getSheetCommandTarget } from '@univerjs/sheets'; import { AddConditionalRuleMutation, CFRuleType, CFSubRuleType, ConditionalFormattingRuleModel } from '@univerjs/sheets-conditional-formatting'; -import type { IAddConditionalRuleMutationParams, IAverageHighlightCell, IConditionFormattingRule } from '@univerjs/sheets-conditional-formatting'; interface IAddAverageCfParams { ranges: IRange[]; @@ -49,7 +49,8 @@ export const AddAverageCfCommand: ICommand = { const cfId = conditionalFormattingRuleModel.createCfId(unitId, subUnitId); const rule: IConditionFormattingRule = { ranges, - cfId, stopIfTrue: !!stopIfTrue, + cfId, + stopIfTrue: !!stopIfTrue, rule: { type: CFRuleType.highlightCell, subType: CFSubRuleType.average, diff --git a/packages/sheets-conditional-formatting-ui/src/commands/commands/add-color-scale-cf.command.ts b/packages/sheets-conditional-formatting-ui/src/commands/commands/add-color-scale-cf.command.ts index bb9bcec647..217097e1dc 100644 --- a/packages/sheets-conditional-formatting-ui/src/commands/commands/add-color-scale-cf.command.ts +++ b/packages/sheets-conditional-formatting-ui/src/commands/commands/add-color-scale-cf.command.ts @@ -15,6 +15,7 @@ */ import type { ICommand, IRange } from '@univerjs/core'; +import type { IAddConditionalRuleMutationParams, IColorScale, IConditionFormattingRule } from '@univerjs/sheets-conditional-formatting'; import { CommandType, ICommandService, @@ -22,7 +23,6 @@ import { } from '@univerjs/core'; import { getSheetCommandTarget } from '@univerjs/sheets'; import { AddConditionalRuleMutation, CFRuleType, ConditionalFormattingRuleModel } from '@univerjs/sheets-conditional-formatting'; -import type { IAddConditionalRuleMutationParams, IColorScale, IConditionFormattingRule } from '@univerjs/sheets-conditional-formatting'; interface IAddColorScaleConditionalRuleParams { ranges: IRange[]; @@ -49,7 +49,8 @@ export const AddColorScaleConditionalRuleCommand: ICommand = { return false; } rule = { - ranges, cfId, + ranges, + cfId, stopIfTrue: !!stopIfTrue, rule: { type: CFRuleType.highlightCell, @@ -70,7 +71,8 @@ export const AddNumberCfCommand: ICommand = { return false; } rule = { - ranges, cfId, + ranges, + cfId, stopIfTrue: !!stopIfTrue, rule: { type: CFRuleType.highlightCell, diff --git a/packages/sheets-conditional-formatting-ui/src/commands/commands/add-rank-cf.command.ts b/packages/sheets-conditional-formatting-ui/src/commands/commands/add-rank-cf.command.ts index 37db5f60a4..20cb58ad93 100644 --- a/packages/sheets-conditional-formatting-ui/src/commands/commands/add-rank-cf.command.ts +++ b/packages/sheets-conditional-formatting-ui/src/commands/commands/add-rank-cf.command.ts @@ -15,6 +15,7 @@ */ import type { ICommand, IRange } from '@univerjs/core'; +import type { IAddConditionalRuleMutationParams, IConditionFormattingRule, IRankHighlightCell } from '@univerjs/sheets-conditional-formatting'; import { CommandType, ICommandService, @@ -22,7 +23,6 @@ import { } from '@univerjs/core'; import { getSheetCommandTarget } from '@univerjs/sheets'; import { AddConditionalRuleMutation, CFRuleType, CFSubRuleType, ConditionalFormattingRuleModel } from '@univerjs/sheets-conditional-formatting'; -import type { IAddConditionalRuleMutationParams, IConditionFormattingRule, IRankHighlightCell } from '@univerjs/sheets-conditional-formatting'; interface IAddRankCfParams { ranges: IRange[]; @@ -51,7 +51,8 @@ export const AddRankCfCommand: ICommand = { const { unitId, subUnitId } = target; const cfId = conditionalFormattingRuleModel.createCfId(unitId, subUnitId); const rule: IConditionFormattingRule = { - ranges, cfId, + ranges, + cfId, stopIfTrue: !!stopIfTrue, rule: { type: CFRuleType.highlightCell, diff --git a/packages/sheets-conditional-formatting-ui/src/commands/commands/add-text-cf.command.ts b/packages/sheets-conditional-formatting-ui/src/commands/commands/add-text-cf.command.ts index 285c591c31..373cdd2140 100644 --- a/packages/sheets-conditional-formatting-ui/src/commands/commands/add-text-cf.command.ts +++ b/packages/sheets-conditional-formatting-ui/src/commands/commands/add-text-cf.command.ts @@ -15,6 +15,7 @@ */ import type { ICommand, IRange } from '@univerjs/core'; +import type { IAddConditionalRuleMutationParams, IConditionFormattingRule, ITextHighlightCell } from '@univerjs/sheets-conditional-formatting'; import { CommandType, ICommandService, @@ -23,7 +24,6 @@ import { } from '@univerjs/core'; import { getSheetCommandTarget } from '@univerjs/sheets'; import { AddConditionalRuleMutation, CFRuleType, CFSubRuleType, ConditionalFormattingRuleModel } from '@univerjs/sheets-conditional-formatting'; -import type { IAddConditionalRuleMutationParams, IConditionFormattingRule, ITextHighlightCell } from '@univerjs/sheets-conditional-formatting'; interface IAddAverageCfParams { ranges: IRange[]; @@ -51,7 +51,8 @@ export const AddTextCfCommand: ICommand = { const cfId = conditionalFormattingRuleModel.createCfId(unitId, subUnitId); const rule: IConditionFormattingRule = { - ranges, cfId, + ranges, + cfId, stopIfTrue: !!stopIfTrue, rule: { type: CFRuleType.highlightCell, diff --git a/packages/sheets-conditional-formatting-ui/src/commands/commands/add-time-period-cf.command.ts b/packages/sheets-conditional-formatting-ui/src/commands/commands/add-time-period-cf.command.ts index 03dadfbff0..7eac129994 100644 --- a/packages/sheets-conditional-formatting-ui/src/commands/commands/add-time-period-cf.command.ts +++ b/packages/sheets-conditional-formatting-ui/src/commands/commands/add-time-period-cf.command.ts @@ -15,6 +15,7 @@ */ import type { ICommand, IRange } from '@univerjs/core'; +import type { IAddConditionalRuleMutationParams, IConditionFormattingRule, ITimePeriodHighlightCell } from '@univerjs/sheets-conditional-formatting'; import { CommandType, ICommandService, @@ -22,7 +23,6 @@ import { } from '@univerjs/core'; import { getSheetCommandTarget } from '@univerjs/sheets'; import { AddConditionalRuleMutation, CFRuleType, CFSubRuleType, ConditionalFormattingRuleModel } from '@univerjs/sheets-conditional-formatting'; -import type { IAddConditionalRuleMutationParams, IConditionFormattingRule, ITimePeriodHighlightCell } from '@univerjs/sheets-conditional-formatting'; interface IAddTimePeriodCf { ranges: IRange[]; @@ -49,7 +49,8 @@ export const AddTimePeriodCfCommand: ICommand = { const { unitId, subUnitId } = target; const cfId = conditionalFormattingRuleModel.createCfId(unitId, subUnitId); const rule: IConditionFormattingRule = { - ranges, cfId, + ranges, + cfId, stopIfTrue: !!stopIfTrue, rule: { type: CFRuleType.highlightCell, diff --git a/packages/sheets-conditional-formatting-ui/src/commands/commands/add-unique-values-cf.command.ts b/packages/sheets-conditional-formatting-ui/src/commands/commands/add-unique-values-cf.command.ts index b0b8545a96..a7c61ffe05 100644 --- a/packages/sheets-conditional-formatting-ui/src/commands/commands/add-unique-values-cf.command.ts +++ b/packages/sheets-conditional-formatting-ui/src/commands/commands/add-unique-values-cf.command.ts @@ -15,6 +15,7 @@ */ import type { ICommand, IRange } from '@univerjs/core'; +import type { IAddConditionalRuleMutationParams, IConditionFormattingRule, IHighlightCell } from '@univerjs/sheets-conditional-formatting'; import { CommandType, ICommandService, @@ -22,7 +23,6 @@ import { } from '@univerjs/core'; import { getSheetCommandTarget } from '@univerjs/sheets'; import { AddConditionalRuleMutation, CFRuleType, CFSubRuleType, ConditionalFormattingRuleModel } from '@univerjs/sheets-conditional-formatting'; -import type { IAddConditionalRuleMutationParams, IConditionFormattingRule, IHighlightCell } from '@univerjs/sheets-conditional-formatting'; interface IAddUniqueValuesConditionalRuleParams { ranges: IRange[]; @@ -47,7 +47,8 @@ export const AddUniqueValuesCfCommand: ICommand { medianColor: string; maxColor: string; }) => { - const { minType, - medianType, - maxType, - minValue, - medianValue, - maxValue, - minColor, - medianColor, - maxColor } = option; + const { minType, medianType, maxType, minValue, medianValue, maxValue, minColor, medianColor, maxColor } = option; const list = []; list.push({ color: minColor, value: { type: minType, value: minValue } }); medianType !== 'none' && list.push({ color: medianColor, value: { type: medianType, value: medianValue } }); diff --git a/packages/sheets-conditional-formatting-ui/src/components/panel/rule-edit/DataBar.tsx b/packages/sheets-conditional-formatting-ui/src/components/panel/rule-edit/DataBar.tsx index fb865bd51d..633b5d47a8 100644 --- a/packages/sheets-conditional-formatting-ui/src/components/panel/rule-edit/DataBar.tsx +++ b/packages/sheets-conditional-formatting-ui/src/components/panel/rule-edit/DataBar.tsx @@ -54,7 +54,8 @@ const InputText = (props: { disabled?: boolean; id: string; className: string; t }; } return { - min: Number.MIN_SAFE_INTEGER, max: Number.MAX_SAFE_INTEGER, + min: Number.MIN_SAFE_INTEGER, + max: Number.MAX_SAFE_INTEGER, }; }, [type]); if (type === CFValueType.formula) { @@ -226,9 +227,10 @@ export const DataBarStyleEditor = (props: IStyleEditorProps) => {
{localeService.t('sheet.cf.panel.styleRule')}
-
@@ -237,11 +239,12 @@ export const DataBarStyleEditor = (props: IStyleEditorProps) => { {localeService.t('sheet.cf.panel.fillType')} -
{ {localeService.t('sheet.cf.panel.gradient')} -
{
{localeService.t('sheet.cf.panel.colorSet')}
-
-
-
+
+
{localeService.t('sheet.cf.panel.native')}
@@ -296,14 +303,16 @@ export const DataBarStyleEditor = (props: IStyleEditorProps) => { onChange={handleNativeColorChange} />
-
-
+
{localeService.t('sheet.cf.panel.positive')}
@@ -317,10 +326,11 @@ export const DataBarStyleEditor = (props: IStyleEditorProps) => {
{localeService.t('sheet.cf.valueType.min')}
-
{ switch (type) { case CFSubRuleType.text: { - if ([CFTextOperator.beginsWith, CFTextOperator.endsWith, - CFTextOperator.containsText, CFTextOperator.notContainsText, - CFTextOperator.equal, CFTextOperator.notEqual].includes(operator as CFTextOperator)) { + if ([CFTextOperator.beginsWith, CFTextOperator.endsWith, CFTextOperator.containsText, CFTextOperator.notContainsText, CFTextOperator.equal, CFTextOperator.notEqual].includes(operator as CFTextOperator)) { onChange(inputTextValue); } break; } case CFSubRuleType.number: { - if ([CFNumberOperator.equal, CFNumberOperator.notEqual, - CFNumberOperator.greaterThan, CFNumberOperator.greaterThanOrEqual, - CFNumberOperator.lessThan, CFNumberOperator.lessThanOrEqual, - ].includes(operator as CFNumberOperator)) { + if ([CFNumberOperator.equal, CFNumberOperator.notEqual, CFNumberOperator.greaterThan, CFNumberOperator.greaterThanOrEqual, CFNumberOperator.lessThan, CFNumberOperator.lessThanOrEqual].includes(operator as CFNumberOperator)) { onChange(inputNumberValue); } if ([CFNumberOperator.between, CFNumberOperator.notBetween].includes(operator as CFNumberOperator)) { @@ -96,12 +91,7 @@ const HighlightCellInput = (props: { handler: (v, _c, next) => { switch (type) { case CFSubRuleType.text: { - if ([CFTextOperator.beginsWith, - CFTextOperator.containsText, - CFTextOperator.endsWith, - CFTextOperator.notEqual, - CFTextOperator.notContainsText, - CFTextOperator.equal].includes(operator as any)) { + if ([CFTextOperator.beginsWith, CFTextOperator.containsText, CFTextOperator.endsWith, CFTextOperator.notEqual, CFTextOperator.notContainsText, CFTextOperator.equal].includes(operator as any)) { if (!inputTextValue) { textErrorSet(localeService.t('sheet.cf.errorMessage.notBlank')); return false; @@ -120,17 +110,16 @@ const HighlightCellInput = (props: { switch (type) { case CFSubRuleType.text: { - if ([CFTextOperator.beginsWith, CFTextOperator.endsWith, - CFTextOperator.containsText, CFTextOperator.notContainsText, - CFTextOperator.equal, CFTextOperator.notEqual].includes(operator as CFTextOperator)) { + if ([CFTextOperator.beginsWith, CFTextOperator.endsWith, CFTextOperator.containsText, CFTextOperator.notContainsText, CFTextOperator.equal, CFTextOperator.notEqual].includes(operator as CFTextOperator)) { const _onChange = (value: string) => { inputTextValueSet(value); onChange(value); }; return ( -
{ inputNumberValueSet(value || 0); onChange(value || 0); numberErrorSet(''); }; return ( -
@@ -182,10 +169,11 @@ const HighlightCellInput = (props: { numberMaxErrorSet(''); }; return ( -
@@ -281,8 +269,7 @@ export const HighlightCellStyleEditor = (props: IStyleEditorProps getOperatorOptions(subType, localeService), [subType]); @@ -308,9 +295,7 @@ export const HighlightCellStyleEditor = (props: IStyleEditorProps (option: { subType?: string; operator?: string; value?: IValue; style?: IHighlightCell['style'] }) => { switch (option.subType || subType) { case CFSubRuleType.text: { - if ([CFTextOperator.beginsWith, CFTextOperator.endsWith, - CFTextOperator.containsText, CFTextOperator.notContainsText, - CFTextOperator.equal, CFTextOperator.notEqual].includes(operator as CFTextOperator)) { + if ([CFTextOperator.beginsWith, CFTextOperator.endsWith, CFTextOperator.containsText, CFTextOperator.notContainsText, CFTextOperator.equal, CFTextOperator.notEqual].includes(operator as CFTextOperator)) { return { type: CFRuleType.highlightCell, subType: option.subType ?? subType, @@ -322,10 +307,7 @@ export const HighlightCellStyleEditor = (props: IStyleEditorProps -
{localeService.t('sheet.cf.panel.styleRule')}
@@ -424,9 +407,10 @@ export const HighlightCellStyleEditor = (props: IStyleEditorProps )} -
diff --git a/packages/sheets-conditional-formatting-ui/src/components/panel/rule-edit/IconSet.tsx b/packages/sheets-conditional-formatting-ui/src/components/panel/rule-edit/IconSet.tsx index d4b73089fc..befee23bee 100644 --- a/packages/sheets-conditional-formatting-ui/src/components/panel/rule-edit/IconSet.tsx +++ b/packages/sheets-conditional-formatting-ui/src/components/panel/rule-edit/IconSet.tsx @@ -190,8 +190,7 @@ const IconSetRuleEdit = (props: { const { onChange, configList, errorMap = {} } = props; const localeService = useDependency(LocaleService); - const options = [{ label: localeService.t(`sheet.cf.symbol.${CFNumberOperator.greaterThan}`), value: CFNumberOperator.greaterThan }, - { label: localeService.t(`sheet.cf.symbol.${CFNumberOperator.greaterThanOrEqual}`), value: CFNumberOperator.greaterThanOrEqual }]; + const options = [{ label: localeService.t(`sheet.cf.symbol.${CFNumberOperator.greaterThan}`), value: CFNumberOperator.greaterThan }, { label: localeService.t(`sheet.cf.symbol.${CFNumberOperator.greaterThanOrEqual}`), value: CFNumberOperator.greaterThanOrEqual }]; const valueTypeOptions = [ { label: localeService.t(`sheet.cf.valueType.${CFValueType.num}`), value: CFValueType.num }, { label: localeService.t(`sheet.cf.valueType.${CFValueType.percent}`), value: CFValueType.percent }, diff --git a/packages/sheets-conditional-formatting-ui/src/components/panel/rule-edit/Rank.tsx b/packages/sheets-conditional-formatting-ui/src/components/panel/rule-edit/Rank.tsx index 9ff7c47c41..2b97032451 100644 --- a/packages/sheets-conditional-formatting-ui/src/components/panel/rule-edit/Rank.tsx +++ b/packages/sheets-conditional-formatting-ui/src/components/panel/rule-edit/Rank.tsx @@ -31,8 +31,7 @@ export const RankStyleEditor = (props: IStyleEditorProps) => { const localeService = useDependency(LocaleService); const rule = props.rule?.type === CFRuleType.highlightCell ? props.rule : undefined as IRankHighlightCell | IAverageHighlightCell | undefined; - const options = [{ label: localeService.t('sheet.cf.panel.isNotBottom'), value: 'isNotBottom' }, { label: localeService.t('sheet.cf.panel.isBottom'), value: 'isBottom' }, - { label: localeService.t('sheet.cf.panel.greaterThanAverage'), value: 'greaterThanAverage' }, { label: localeService.t('sheet.cf.panel.lessThanAverage'), value: 'lessThanAverage' }]; + const options = [{ label: localeService.t('sheet.cf.panel.isNotBottom'), value: 'isNotBottom' }, { label: localeService.t('sheet.cf.panel.isBottom'), value: 'isBottom' }, { label: localeService.t('sheet.cf.panel.greaterThanAverage'), value: 'greaterThanAverage' }, { label: localeService.t('sheet.cf.panel.lessThanAverage'), value: 'lessThanAverage' }]; const [type, typeSet] = useState(() => { const defaultV = options[0].value; @@ -143,10 +142,11 @@ export const RankStyleEditor = (props: IStyleEditorProps) => { }; return (
-
{localeService.t('sheet.cf.panel.styleRule')}
@@ -163,10 +163,11 @@ export const RankStyleEditor = (props: IStyleEditorProps) => { }} /> {['isNotBottom', 'isBottom'].includes(type) && ( -
{ _onChange({ type, isPercent, value, style }); }} /> -
{
)} -
diff --git a/packages/sheets-conditional-formatting-ui/src/components/panel/rule-edit/index.tsx b/packages/sheets-conditional-formatting-ui/src/components/panel/rule-edit/index.tsx index 88acb456a5..4003f42332 100644 --- a/packages/sheets-conditional-formatting-ui/src/components/panel/rule-edit/index.tsx +++ b/packages/sheets-conditional-formatting-ui/src/components/panel/rule-edit/index.tsx @@ -77,7 +77,8 @@ export const RuleEdit = (props: IRuleEditProps) => { { label: localeService.t('sheet.cf.ruleType.dataBar'), value: '3' }, { label: localeService.t('sheet.cf.ruleType.colorScale'), value: '4' }, { label: localeService.t('sheet.cf.ruleType.formula'), value: '5' }, - { label: localeService.t('sheet.cf.ruleType.iconSet'), value: '6' }]; + { label: localeService.t('sheet.cf.ruleType.iconSet'), value: '6' }, + ]; const [ruleType, ruleTypeSet] = useState(() => { const type = props.rule?.rule.type; diff --git a/packages/sheets-conditional-formatting-ui/src/components/panel/rule-list/index.tsx b/packages/sheets-conditional-formatting-ui/src/components/panel/rule-list/index.tsx index fae7e29faa..afe0257187 100644 --- a/packages/sheets-conditional-formatting-ui/src/components/panel/rule-list/index.tsx +++ b/packages/sheets-conditional-formatting-ui/src/components/panel/rule-list/index.tsx @@ -311,9 +311,7 @@ export const RuleList = (props: IRuleListProps) => {
- {conditionalFormattingI18nController.tWithReactNode('sheet.cf.panel.managerRuleSelect', - { selectValueSet(v); }} />) .map((ele, index) => {ele})}
diff --git a/packages/sheets-conditional-formatting-ui/src/controllers/cf.auto-fill.controller.ts b/packages/sheets-conditional-formatting-ui/src/controllers/cf.auto-fill.controller.ts index ddeaec67db..32f1c46a8e 100644 --- a/packages/sheets-conditional-formatting-ui/src/controllers/cf.auto-fill.controller.ts +++ b/packages/sheets-conditional-formatting-ui/src/controllers/cf.auto-fill.controller.ts @@ -172,13 +172,17 @@ export class ConditionalFormattingAutoFillController extends Disposable { const ranges = findAllRectangle(createTopMatrixFromMatrix(item)); if (ranges.length) { const params: ISetConditionalRuleMutationParams = { - unitId, subUnitId, rule: { ...rule, ranges }, + unitId, + subUnitId, + rule: { ...rule, ranges }, }; redos.push({ id: SetConditionalRuleMutation.id, params }); undos.push(...setConditionalRuleMutationUndoFactory(this._injector, params)); } else { const params: IDeleteConditionalRuleMutationParams = { - unitId, subUnitId, cfId: rule.cfId, + unitId, + subUnitId, + cfId: rule.cfId, }; redos.push({ id: DeleteConditionalRuleMutation.id, params }); undos.push(...DeleteConditionalRuleMutationUndoFactory(this._injector, params)); diff --git a/packages/sheets-conditional-formatting-ui/src/controllers/cf.copy-paste.controller.ts b/packages/sheets-conditional-formatting-ui/src/controllers/cf.copy-paste.controller.ts index 565808c347..71d4b35c06 100644 --- a/packages/sheets-conditional-formatting-ui/src/controllers/cf.copy-paste.controller.ts +++ b/packages/sheets-conditional-formatting-ui/src/controllers/cf.copy-paste.controller.ts @@ -29,7 +29,8 @@ import { UniverInstanceType, } from '@univerjs/core'; import { - createTopMatrixFromMatrix, findAllRectangle, + createTopMatrixFromMatrix, + findAllRectangle, rangeToDiscreteRange, } from '@univerjs/sheets'; import { AddConditionalRuleMutation, AddConditionalRuleMutationUndoFactory, ConditionalFormattingRuleModel, ConditionalFormattingViewModel, DeleteConditionalRuleMutation, DeleteConditionalRuleMutationUndoFactory, SetConditionalRuleMutation, setConditionalRuleMutationUndoFactory, SHEET_CONDITIONAL_FORMATTING_PLUGIN } from '@univerjs/sheets-conditional-formatting'; @@ -137,7 +138,9 @@ export class ConditionalFormattingCopyPasteController extends Disposable { } const specialPastes: IPasteHookValueType[] = [ - PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMAT, PREDEFINED_HOOK_NAME.DEFAULT_PASTE, PREDEFINED_HOOK_NAME.SPECIAL_PASTE_BESIDES_BORDER, + PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMAT, + PREDEFINED_HOOK_NAME.DEFAULT_PASTE, + PREDEFINED_HOOK_NAME.SPECIAL_PASTE_BESIDES_BORDER, ]; if ( @@ -242,7 +245,9 @@ export class ConditionalFormattingCopyPasteController extends Disposable { const ranges = findAllRectangle(createTopMatrixFromMatrix(matrix)); if (!ranges.length) { const deleteParams: IDeleteConditionalRuleMutationParams = { - unitId, subUnitId, cfId, + unitId, + subUnitId, + cfId, }; redos.push({ id: DeleteConditionalRuleMutation.id, params: deleteParams }); undos.push(...DeleteConditionalRuleMutationUndoFactory(this._injector, deleteParams)); @@ -250,7 +255,9 @@ export class ConditionalFormattingCopyPasteController extends Disposable { if (waitAddRule.some((rule) => rule.cfId === cfId)) { const rule = getCurrentSheetCfRule(cfId); const addParams: IAddConditionalRuleMutationParams = { - unitId, subUnitId, rule: { ...rule, ranges }, + unitId, + subUnitId, + rule: { ...rule, ranges }, }; redos.push({ id: AddConditionalRuleMutation.id, params: addParams }); undos.push(AddConditionalRuleMutationUndoFactory(this._injector, addParams)); @@ -260,7 +267,9 @@ export class ConditionalFormattingCopyPasteController extends Disposable { continue; } const setParams: ISetConditionalRuleMutationParams = { - unitId, subUnitId, rule: { ...rule, ranges }, + unitId, + subUnitId, + rule: { ...rule, ranges }, }; redos.push({ id: SetConditionalRuleMutation.id, params: setParams }); undos.push(...setConditionalRuleMutationUndoFactory(this._injector, setParams)); diff --git a/packages/sheets-conditional-formatting-ui/src/controllers/cf.painter.controller.ts b/packages/sheets-conditional-formatting-ui/src/controllers/cf.painter.controller.ts index d3c206bdd1..dca9d2ee30 100644 --- a/packages/sheets-conditional-formatting-ui/src/controllers/cf.painter.controller.ts +++ b/packages/sheets-conditional-formatting-ui/src/controllers/cf.painter.controller.ts @@ -229,13 +229,17 @@ export class ConditionalFormattingPainterController extends Disposable { const ranges = findAllRectangle(createTopMatrixFromMatrix(item)); if (ranges.length) { const params: ISetConditionalRuleMutationParams = { - unitId: sourceUnitId, subUnitId: sourceSubUnitId, rule: { ...rule, ranges }, + unitId: sourceUnitId, + subUnitId: sourceSubUnitId, + rule: { ...rule, ranges }, }; redos.push({ id: SetConditionalRuleMutation.id, params }); undos.push(...setConditionalRuleMutationUndoFactory(this._injector, params)); } else { const params: IDeleteConditionalRuleMutationParams = { - unitId: sourceUnitId, subUnitId: sourceSubUnitId, cfId: rule.cfId, + unitId: sourceUnitId, + subUnitId: sourceSubUnitId, + cfId: rule.cfId, }; redos.push({ id: DeleteConditionalRuleMutation.id, params }); undos.push(...DeleteConditionalRuleMutationUndoFactory(this._injector, params)); @@ -263,13 +267,17 @@ export class ConditionalFormattingPainterController extends Disposable { } else { if (ranges.length) { const params: ISetConditionalRuleMutationParams = { - unitId: targetUnitId, subUnitId: targetSubUnitId, rule: { ...rule, ranges }, + unitId: targetUnitId, + subUnitId: targetSubUnitId, + rule: { ...rule, ranges }, }; redos.push({ id: SetConditionalRuleMutation.id, params }); undos.push(...setConditionalRuleMutationUndoFactory(this._injector, params)); } else { const params: IDeleteConditionalRuleMutationParams = { - unitId: targetUnitId, subUnitId: targetSubUnitId, cfId: rule.cfId, + unitId: targetUnitId, + subUnitId: targetSubUnitId, + cfId: rule.cfId, }; redos.push({ id: DeleteConditionalRuleMutation.id, params }); undos.push(...DeleteConditionalRuleMutationUndoFactory(this._injector, params)); diff --git a/packages/sheets-conditional-formatting-ui/src/controllers/cf.render.controller.ts b/packages/sheets-conditional-formatting-ui/src/controllers/cf.render.controller.ts index 4073cafedb..be34df7713 100644 --- a/packages/sheets-conditional-formatting-ui/src/controllers/cf.render.controller.ts +++ b/packages/sheets-conditional-formatting-ui/src/controllers/cf.render.controller.ts @@ -30,13 +30,7 @@ export class SheetsCfRenderController extends Disposable { * The solution here is to store all the asynchronous tasks and focus on processing after the last callback */ private _ruleChangeCacheMap: Map boolean }>> = new Map(); - constructor(@Inject(SheetInterceptorService) private _sheetInterceptorService: SheetInterceptorService, - @Inject(ConditionalFormattingService) private _conditionalFormattingService: ConditionalFormattingService, - @Inject(IUniverInstanceService) private _univerInstanceService: IUniverInstanceService, - @Inject(IRenderManagerService) private _renderManagerService: IRenderManagerService, - @Inject(ConditionalFormattingViewModel) private _conditionalFormattingViewModel: ConditionalFormattingViewModel, - @Inject(ConditionalFormattingRuleModel) private _conditionalFormattingRuleModel: ConditionalFormattingRuleModel - ) { + constructor(@Inject(SheetInterceptorService) private _sheetInterceptorService: SheetInterceptorService, @Inject(ConditionalFormattingService) private _conditionalFormattingService: ConditionalFormattingService, @Inject(IUniverInstanceService) private _univerInstanceService: IUniverInstanceService, @Inject(IRenderManagerService) private _renderManagerService: IRenderManagerService, @Inject(ConditionalFormattingViewModel) private _conditionalFormattingViewModel: ConditionalFormattingViewModel, @Inject(ConditionalFormattingRuleModel) private _conditionalFormattingRuleModel: ConditionalFormattingRuleModel) { super(); this._initViewModelInterceptor(); diff --git a/packages/sheets-conditional-formatting-ui/src/controllers/cf.viewport.controller.ts b/packages/sheets-conditional-formatting-ui/src/controllers/cf.viewport.controller.ts index 838e6c62ff..28e2f6b45f 100644 --- a/packages/sheets-conditional-formatting-ui/src/controllers/cf.viewport.controller.ts +++ b/packages/sheets-conditional-formatting-ui/src/controllers/cf.viewport.controller.ts @@ -24,7 +24,8 @@ export class ConditionalFormattingViewportController extends Disposable { constructor( @Inject(ConditionalFormattingViewModel) private _conditionalFormattingViewModel: ConditionalFormattingViewModel, @IUniverInstanceService private _univerInstanceService: IUniverInstanceService, - @IRenderManagerService private _renderManagerService: IRenderManagerService) { + @IRenderManagerService private _renderManagerService: IRenderManagerService + ) { super(); this._init(); } diff --git a/packages/sheets-conditional-formatting-ui/src/menu/manage-rule.ts b/packages/sheets-conditional-formatting-ui/src/menu/manage-rule.ts index d61249e279..a5227879bd 100644 --- a/packages/sheets-conditional-formatting-ui/src/menu/manage-rule.ts +++ b/packages/sheets-conditional-formatting-ui/src/menu/manage-rule.ts @@ -70,7 +70,8 @@ const commonSelections = [ selectable: false, }, value: CF_MENU_OPERATION.dataBar, - }, { + }, + { label: { name: 'sheet.cf.ruleType.iconSet', selectable: false, @@ -83,7 +84,8 @@ const commonSelections = [ selectable: false, }, value: CF_MENU_OPERATION.viewRule, - }, { + }, + { label: { name: 'sheet.cf.menu.createConditionalFormatting', selectable: false, diff --git a/packages/sheets-conditional-formatting/package.json b/packages/sheets-conditional-formatting/package.json index fec34a99a1..07e174795f 100644 --- a/packages/sheets-conditional-formatting/package.json +++ b/packages/sheets-conditional-formatting/package.json @@ -77,7 +77,7 @@ "@univerjs-infra/shared": "workspace:*", "@univerjs/icons-svg": "^0.2.20", "rxjs": "^7.8.1", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/sheets-conditional-formatting/src/commands/commands/clear-range-cf.command.ts b/packages/sheets-conditional-formatting/src/commands/commands/clear-range-cf.command.ts index 964a8c9965..b3a03e42ec 100644 --- a/packages/sheets-conditional-formatting/src/commands/commands/clear-range-cf.command.ts +++ b/packages/sheets-conditional-formatting/src/commands/commands/clear-range-cf.command.ts @@ -14,9 +14,7 @@ * limitations under the License. */ -import type { ICommand, IMutationInfo, - IRange, -} from '@univerjs/core'; +import type { ICommand, IMutationInfo, IRange } from '@univerjs/core'; import type { IConditionFormattingRule } from '../../models/type'; import type { IDeleteConditionalRuleMutationParams } from '../mutations/delete-conditional-rule.mutation'; import type { ISetConditionalRuleMutationParams } from '../mutations/set-conditional-rule.mutation'; diff --git a/packages/sheets-conditional-formatting/src/commands/mutations/delete-conditional-rule.mutation.ts b/packages/sheets-conditional-formatting/src/commands/mutations/delete-conditional-rule.mutation.ts index fba153d121..d291e4fd21 100644 --- a/packages/sheets-conditional-formatting/src/commands/mutations/delete-conditional-rule.mutation.ts +++ b/packages/sheets-conditional-formatting/src/commands/mutations/delete-conditional-rule.mutation.ts @@ -15,12 +15,12 @@ */ import type { IAccessor, IMutation, IMutationInfo } from '@univerjs/core'; +import type { IAddConditionalRuleMutationParams } from './add-conditional-rule.mutation'; +import type { IMoveConditionalRuleMutationParams } from './move-conditional-rule.mutation'; import { CommandType, Tools } from '@univerjs/core'; import { ConditionalFormattingRuleModel } from '../../models/conditional-formatting-rule-model'; import { transformSupportSymmetryAnchor } from '../../utils/anchor'; -import type { IAddConditionalRuleMutationParams } from './add-conditional-rule.mutation'; import { AddConditionalRuleMutation } from './add-conditional-rule.mutation'; -import type { IMoveConditionalRuleMutationParams } from './move-conditional-rule.mutation'; import { MoveConditionalRuleMutation } from './move-conditional-rule.mutation'; export interface IDeleteConditionalRuleMutationParams { @@ -50,7 +50,9 @@ export const DeleteConditionalRuleMutationUndoFactory = (accessor: IAccessor, pa } const [start, end] = transformResult; const params: IMoveConditionalRuleMutationParams = { - unitId, subUnitId, start, + unitId, + subUnitId, + start, end, }; result.push({ id: MoveConditionalRuleMutation.id, params }); diff --git a/packages/sheets-conditional-formatting/src/commands/mutations/move-conditional-rule.mutation.ts b/packages/sheets-conditional-formatting/src/commands/mutations/move-conditional-rule.mutation.ts index 319a29bd94..d58682e8d5 100644 --- a/packages/sheets-conditional-formatting/src/commands/mutations/move-conditional-rule.mutation.ts +++ b/packages/sheets-conditional-formatting/src/commands/mutations/move-conditional-rule.mutation.ts @@ -16,9 +16,9 @@ import type { IMutation } from '@univerjs/core'; +import type { IAnchor } from '../../utils/anchor'; import { CommandType } from '@univerjs/core'; import { ConditionalFormattingRuleModel } from '../../models/conditional-formatting-rule-model'; -import type { IAnchor } from '../../utils/anchor'; import { anchorUndoFactory } from '../../utils/anchor'; export interface IMoveConditionalRuleMutationParams { @@ -50,7 +50,6 @@ export const MoveConditionalRuleMutationUndoFactory = (param: IMoveConditionalRu } const [start, end] = undo; - return [{ id: MoveConditionalRuleMutation.id, - params: { unitId, subUnitId, start, end } as IMoveConditionalRuleMutationParams }, + return [{ id: MoveConditionalRuleMutation.id, params: { unitId, subUnitId, start, end } as IMoveConditionalRuleMutationParams }, ]; }; diff --git a/packages/sheets-conditional-formatting/src/facade/f-conditional-formatting-builder.ts b/packages/sheets-conditional-formatting/src/facade/f-conditional-formatting-builder.ts index d11763cc8f..66568a0139 100644 --- a/packages/sheets-conditional-formatting/src/facade/f-conditional-formatting-builder.ts +++ b/packages/sheets-conditional-formatting/src/facade/f-conditional-formatting-builder.ts @@ -17,7 +17,23 @@ /* eslint-disable ts/explicit-function-return-type */ import type { IRange } from '@univerjs/core'; -import type { CFTimePeriodOperator, IAverageHighlightCell, IColorScale, IConditionalFormattingRuleConfig, IConditionFormattingRule, IDataBar, IDuplicateValuesHighlightCell, IFormulaHighlightCell, IIconSet, INumberHighlightCell, IRankHighlightCell, ITextHighlightCell, ITimePeriodHighlightCell, IUniqueValuesHighlightCell, IValueConfig } from '@univerjs/sheets-conditional-formatting'; +import type { + CFTimePeriodOperator, + IAverageHighlightCell, + IColorScale, + IConditionalFormattingRuleConfig, + IConditionFormattingRule, + IDataBar, + IDuplicateValuesHighlightCell, + IFormulaHighlightCell, + IIconSet, + INumberHighlightCell, + IRankHighlightCell, + ITextHighlightCell, + ITimePeriodHighlightCell, + IUniqueValuesHighlightCell, + IValueConfig, +} from '@univerjs/sheets-conditional-formatting'; import { BooleanNumber, ColorKit, Tools } from '@univerjs/core'; import { CFNumberOperator, CFRuleType, CFSubRuleType, CFTextOperator, CFValueType, createCfId, EMPTY_ICON_TYPE, iconMap } from '@univerjs/sheets-conditional-formatting'; @@ -39,12 +55,14 @@ class ConditionalFormatRuleBaseBuilder { type, config: [ { index: 0, color: new ColorKit('').toRgbString(), value: { type: CFValueType.min } }, - { index: 0, color: new ColorKit('green').toRgbString(), value: { type: CFValueType.max } }], + { index: 0, color: new ColorKit('green').toRgbString(), value: { type: CFValueType.max } }, + ], } as IColorScale; } case CFRuleType.dataBar: { return { - type, isShowValue: true, + type, + isShowValue: true, config: { min: { type: CFValueType.min }, max: { type: CFValueType.max }, positiveColor: new ColorKit('green').toRgbString(), nativeColor: new ColorKit('').toRgbString(), isGradient: false }, } as IDataBar; } @@ -62,16 +80,20 @@ class ConditionalFormatRuleBaseBuilder { type, isShowValue: true, config: [{ - operator: CFNumberOperator.greaterThanOrEqual, value: { type: CFValueType.min }, - iconType: EMPTY_ICON_TYPE, iconId: '', - }, - { - operator: CFNumberOperator.greaterThanOrEqual, value: { type: CFValueType.percentile, value: 0.5 }, - iconType: EMPTY_ICON_TYPE, iconId: '', - }, - { - operator: CFNumberOperator.lessThanOrEqual, value: { type: CFValueType.max }, - iconType: EMPTY_ICON_TYPE, iconId: '', + operator: CFNumberOperator.greaterThanOrEqual, + value: { type: CFValueType.min }, + iconType: EMPTY_ICON_TYPE, + iconId: '', + }, { + operator: CFNumberOperator.greaterThanOrEqual, + value: { type: CFValueType.percentile, value: 0.5 }, + iconType: EMPTY_ICON_TYPE, + iconId: '', + }, { + operator: CFNumberOperator.lessThanOrEqual, + value: { type: CFValueType.max }, + iconType: EMPTY_ICON_TYPE, + iconId: '', }], } as IIconSet; } diff --git a/packages/sheets-conditional-formatting/src/models/calculate-unit-v2/__test__/base-calculate.spec.ts b/packages/sheets-conditional-formatting/src/models/calculate-unit-v2/__test__/base-calculate.spec.ts index b8e7b77929..4a471c9a5c 100644 --- a/packages/sheets-conditional-formatting/src/models/calculate-unit-v2/__test__/base-calculate.spec.ts +++ b/packages/sheets-conditional-formatting/src/models/calculate-unit-v2/__test__/base-calculate.spec.ts @@ -33,10 +33,7 @@ describe('test-color-scale', () => { stopIfTrue: false, rule: { type: CFRuleType.colorScale, - config: [{ index: 0, value: { type: CFValueType.num, value: 10 }, color: 'red' }, - { index: 1, value: { type: CFValueType.num, value: 20 }, color: 'white' }, - { index: 2, value: { type: CFValueType.num, value: 30 }, color: 'green' }, - ], + config: [{ index: 0, value: { type: CFValueType.num, value: 10 }, color: 'red' }, { index: 1, value: { type: CFValueType.num, value: 20 }, color: 'white' }, { index: 2, value: { type: CFValueType.num, value: 30 }, color: 'green' }], } as IColorScale, }, limit: 1000, diff --git a/packages/sheets-conditional-formatting/src/models/calculate-unit-v2/__test__/calculate.color.spec.ts b/packages/sheets-conditional-formatting/src/models/calculate-unit-v2/__test__/calculate.color.spec.ts index 6b357173cf..0982b49eca 100644 --- a/packages/sheets-conditional-formatting/src/models/calculate-unit-v2/__test__/calculate.color.spec.ts +++ b/packages/sheets-conditional-formatting/src/models/calculate-unit-v2/__test__/calculate.color.spec.ts @@ -41,8 +41,7 @@ describe('Test colorScale', () => { value: { type: CFValueType.min, }, - }, - { + }, { index: 1, color: '#2e55ef', value: { @@ -109,24 +108,21 @@ describe('Test colorScale', () => { type: CFValueType.num, value: 1, }, - }, - { + }, { index: 1, color: '#2e55ef', value: { type: CFValueType.num, value: -5, }, - }, - { + }, { index: 2, color: 'rgb(231, 37, 143)', value: { type: CFValueType.num, value: 3, }, - }, - ], + }], }, }; testBed.getConditionalFormattingRuleModel().addRule(testBed.unitId, testBed.subUnitId, params); diff --git a/packages/sheets-conditional-formatting/src/models/calculate-unit-v2/color-scale-calculate-unit.ts b/packages/sheets-conditional-formatting/src/models/calculate-unit-v2/color-scale-calculate-unit.ts index bbfa630688..cc3a21d1e3 100644 --- a/packages/sheets-conditional-formatting/src/models/calculate-unit-v2/color-scale-calculate-unit.ts +++ b/packages/sheets-conditional-formatting/src/models/calculate-unit-v2/color-scale-calculate-unit.ts @@ -52,7 +52,8 @@ export class ColorScaleCalculateUnit extends BaseCalculateUnit isObject(item.value) ? item.value.status !== FormulaResultStatus.SUCCESS : false); diff --git a/packages/sheets-conditional-formatting/src/models/calculate-unit-v2/utils.ts b/packages/sheets-conditional-formatting/src/models/calculate-unit-v2/utils.ts index cc7935fd91..f5cf6a22d9 100644 --- a/packages/sheets-conditional-formatting/src/models/calculate-unit-v2/utils.ts +++ b/packages/sheets-conditional-formatting/src/models/calculate-unit-v2/utils.ts @@ -254,7 +254,10 @@ export const getOppositeOperator = (operator: CFNumberOperator) => { export const getColorScaleFromValue = (colorList: { color: ColorKit; value: number }[], value: number) => { interface IRgbColor { - b: number; g: number; r: number; a?: number; + b: number; + g: number; + r: number; + a?: number; } const prefixRgba = (rgb: IRgbColor): Required => { if (rgb.a !== undefined) { diff --git a/packages/sheets-conditional-formatting/src/models/conditional-formatting-view-model.ts b/packages/sheets-conditional-formatting/src/models/conditional-formatting-view-model.ts index ed15c3319e..4131427df4 100644 --- a/packages/sheets-conditional-formatting/src/models/conditional-formatting-view-model.ts +++ b/packages/sheets-conditional-formatting/src/models/conditional-formatting-view-model.ts @@ -50,7 +50,8 @@ export class ConditionalFormattingViewModel extends Disposable { @Inject(Injector) private _injector: Injector, @Inject(ConditionalFormattingRuleModel) private _conditionalFormattingRuleModel: ConditionalFormattingRuleModel, @Inject(ConditionalFormattingFormulaService) private _conditionalFormattingFormulaService: ConditionalFormattingFormulaService, - @IUniverInstanceService private _univerInstanceService: IUniverInstanceService) { + @IUniverInstanceService private _univerInstanceService: IUniverInstanceService + ) { super(); this._initRuleListener(); this._handleCustomFormulasSeparately(); @@ -65,7 +66,8 @@ export class ConditionalFormattingViewModel extends Disposable { if (isAllFinished) { this._markRuleDirtyAtOnce(unitId, subUnitId, cfId, isAllFinished); } - })); + }) + ); } public getCellCfs(unitId: string, subUnitId: string, row: number, col: number) { @@ -121,7 +123,9 @@ export class ConditionalFormattingViewModel extends Disposable { } this._markDirty$.next({ - unitId, subUnitId, cfId, + unitId, + subUnitId, + cfId, }); }; @@ -169,7 +173,8 @@ export class ConditionalFormattingViewModel extends Disposable { this._conditionalFormattingFormulaService.deleteCache(unitId, subUnitId, oldRule.cfId); } } - })); + }) + ); } private _initRuleListener() { @@ -215,7 +220,8 @@ export class ConditionalFormattingViewModel extends Disposable { } } } - })); + }) + ); } private _ensureCalculateUnitManager(unitId: string, subUnitId: string) { diff --git a/packages/sheets-conditional-formatting/src/models/icon-map.ts b/packages/sheets-conditional-formatting/src/models/icon-map.ts index 0150194edc..9a343c9a22 100644 --- a/packages/sheets-conditional-formatting/src/models/icon-map.ts +++ b/packages/sheets-conditional-formatting/src/models/icon-map.ts @@ -35,17 +35,21 @@ export const iconGroup: { title: string; group: { name: string; list: string[] } title: 'sheet.cf.iconSet.shape', group: [ { - name: '3TrafficLights1', list: [ICON_MAP.shape['roundness-greed'], ICON_MAP.shape['roundness-gold'], ICON_MAP.shape['roundness-red']], + name: '3TrafficLights1', + list: [ICON_MAP.shape['roundness-greed'], ICON_MAP.shape['roundness-gold'], ICON_MAP.shape['roundness-red']], }, { - name: '3Signs', list: [ICON_MAP.shape['roundness-greed'], ICON_MAP.shape['triangle-gold'], ICON_MAP.shape['rhomboid-red']], + name: '3Signs', + list: [ICON_MAP.shape['roundness-greed'], ICON_MAP.shape['triangle-gold'], ICON_MAP.shape['rhomboid-red']], }, { name: '3TrafficLights2', list: [ICON_MAP.shape['indicate-greed'], ICON_MAP.shape['indicate-gold'], ICON_MAP.shape['indicate-red']] }, { - name: '4RedToBlack', list: [ICON_MAP.shape['roundness-red'], ICON_MAP.shape['roundness-pink'], ICON_MAP.shape['roundness-gray'], ICON_MAP.shape['roundness-black']], + name: '4RedToBlack', + list: [ICON_MAP.shape['roundness-red'], ICON_MAP.shape['roundness-pink'], ICON_MAP.shape['roundness-gray'], ICON_MAP.shape['roundness-black']], }, { - name: '4TrafficLights', list: [ICON_MAP.shape['roundness-greed'], ICON_MAP.shape['roundness-gold'], ICON_MAP.shape['roundness-red'], ICON_MAP.shape['roundness-black']], + name: '4TrafficLights', + list: [ICON_MAP.shape['roundness-greed'], ICON_MAP.shape['roundness-gold'], ICON_MAP.shape['roundness-red'], ICON_MAP.shape['roundness-black']], }, ], }, @@ -53,13 +57,16 @@ export const iconGroup: { title: string; group: { name: string; list: string[] } title: 'sheet.cf.iconSet.mark', group: [ { - name: '3Symbols', list: [ICON_MAP.feedback.correct, ICON_MAP.feedback.warn, ICON_MAP.feedback.mistake], + name: '3Symbols', + list: [ICON_MAP.feedback.correct, ICON_MAP.feedback.warn, ICON_MAP.feedback.mistake], }, { - name: '3Symbols2', list: [ICON_MAP.feedback2.correct2, ICON_MAP.feedback2.warn2, ICON_MAP.feedback2.mistake2], + name: '3Symbols2', + list: [ICON_MAP.feedback2.correct2, ICON_MAP.feedback2.warn2, ICON_MAP.feedback2.mistake2], }, { - name: '3Flags', list: [ICON_MAP.flag['flag-green'], ICON_MAP.flag['flag-gold'], ICON_MAP.flag['flag-red']], + name: '3Flags', + list: [ICON_MAP.flag['flag-green'], ICON_MAP.flag['flag-gold'], ICON_MAP.flag['flag-red']], }, ], @@ -68,22 +75,28 @@ export const iconGroup: { title: string; group: { name: string; list: string[] } title: 'sheet.cf.iconSet.rank', group: [ { - name: '4Rating', list: [ICON_MAP.signal.signal25, ICON_MAP.signal.signal50, ICON_MAP.signal.signal75, ICON_MAP.signal.signal100], + name: '4Rating', + list: [ICON_MAP.signal.signal25, ICON_MAP.signal.signal50, ICON_MAP.signal.signal75, ICON_MAP.signal.signal100], }, { - name: '5Rating', list: [ICON_MAP.signal.signal0, ICON_MAP.signal.signal25, ICON_MAP.signal.signal50, ICON_MAP.signal.signal75, ICON_MAP.signal.signal100], + name: '5Rating', + list: [ICON_MAP.signal.signal0, ICON_MAP.signal.signal25, ICON_MAP.signal.signal50, ICON_MAP.signal.signal75, ICON_MAP.signal.signal100], }, { - name: '5Quarters', list: [ICON_MAP.progress.progress100, ICON_MAP.progress.progress75, ICON_MAP.progress.progress50, ICON_MAP.progress.progress25, ICON_MAP.progress.progress0], + name: '5Quarters', + list: [ICON_MAP.progress.progress100, ICON_MAP.progress.progress75, ICON_MAP.progress.progress50, ICON_MAP.progress.progress25, ICON_MAP.progress.progress0], }, { - name: '_5Felling', list: [ICON_MAP.feeling.guffaw, ICON_MAP.feeling.smile, ICON_MAP.feeling.noninductive, ICON_MAP.feeling.dissatisfied, ICON_MAP.feeling.impatient], + name: '_5Felling', + list: [ICON_MAP.feeling.guffaw, ICON_MAP.feeling.smile, ICON_MAP.feeling.noninductive, ICON_MAP.feeling.dissatisfied, ICON_MAP.feeling.impatient], }, { - name: '5Boxes', list: [ICON_MAP.cell['cell-100'], ICON_MAP.cell['cell-75'], ICON_MAP.cell['cell-50'], ICON_MAP.cell['cell-25'], ICON_MAP.cell['cell-0']], + name: '5Boxes', + list: [ICON_MAP.cell['cell-100'], ICON_MAP.cell['cell-75'], ICON_MAP.cell['cell-50'], ICON_MAP.cell['cell-25'], ICON_MAP.cell['cell-0']], }, { - name: '3Stars', list: [ICON_MAP.star.starFull, ICON_MAP.star.starIncomplete, ICON_MAP.star.starEmpty], + name: '3Stars', + list: [ICON_MAP.star.starFull, ICON_MAP.star.starIncomplete, ICON_MAP.star.starEmpty], }, ], }, diff --git a/packages/sheets-conditional-formatting/src/services/conditional-formatting-formula.service.ts b/packages/sheets-conditional-formatting/src/services/conditional-formatting-formula.service.ts index 9df552ac11..a043ca6b0a 100644 --- a/packages/sheets-conditional-formatting/src/services/conditional-formatting-formula.service.ts +++ b/packages/sheets-conditional-formatting/src/services/conditional-formatting-formula.service.ts @@ -145,16 +145,15 @@ export class ConditionalFormattingFormulaService extends Disposable { })); // Register formula with Dirty Logic - this._activeDirtyManagerService.register(ConditionalFormattingFormulaMarkDirty.id, - { - commandId: ConditionalFormattingFormulaMarkDirty.id, - getDirtyData(commandInfo) { - const params = commandInfo.params as IConditionalFormattingFormulaMarkDirtyParams; - return { - dirtyUnitOtherFormulaMap: params, - }; - }, - }); + this._activeDirtyManagerService.register(ConditionalFormattingFormulaMarkDirty.id, { + commandId: ConditionalFormattingFormulaMarkDirty.id, + getDirtyData(commandInfo) { + const params = commandInfo.params as IConditionalFormattingFormulaMarkDirtyParams; + return { + dirtyUnitOtherFormulaMap: params, + }; + }, + }); } private _ensureSubunitFormulaMap(unitId: string, subUnitId: string) { @@ -205,8 +204,7 @@ export class ConditionalFormattingFormulaService extends Disposable { }; this._commandService.executeCommand(SetOtherFormulaMutation.id, params, { onlyLocal: true }).then(() => { - this._commandService.executeCommand(ConditionalFormattingFormulaMarkDirty.id, - { [unitId]: { [subUnitId]: { [formulaId]: true } } }, { onlyLocal: true }); + this._commandService.executeCommand(ConditionalFormattingFormulaMarkDirty.id, { [unitId]: { [subUnitId]: { [formulaId]: true } } }, { onlyLocal: true }); }); } diff --git a/packages/sheets-conditional-formatting/src/services/conditional-formatting.service.ts b/packages/sheets-conditional-formatting/src/services/conditional-formatting.service.ts index 4d0d1ea30b..9348fee1a9 100644 --- a/packages/sheets-conditional-formatting/src/services/conditional-formatting.service.ts +++ b/packages/sheets-conditional-formatting/src/services/conditional-formatting.service.ts @@ -153,11 +153,13 @@ export class ConditionalFormattingService extends Disposable { ruleList.forEach((item) => { const params: IDeleteConditionalRuleMutationParams = { - unitId, subUnitId, + unitId, + subUnitId, cfId: item.cfId, }; redos.push({ - id: DeleteConditionalRuleMutation.id, params, + id: DeleteConditionalRuleMutation.id, + params, }); undos.push(...DeleteConditionalRuleMutationUndoFactory(this._injector, params)); }); @@ -293,7 +295,8 @@ export class ConditionalFormattingService extends Disposable { break; } } - })); + }) + ); } } diff --git a/packages/sheets-crosshair-highlight/package.json b/packages/sheets-crosshair-highlight/package.json index 5b80077d6d..bfd8651d74 100644 --- a/packages/sheets-crosshair-highlight/package.json +++ b/packages/sheets-crosshair-highlight/package.json @@ -87,7 +87,7 @@ "react": "18.3.1", "rxjs": "^7.8.1", "tailwindcss": "^3.4.17", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/sheets-data-validation-ui/package.json b/packages/sheets-data-validation-ui/package.json index 8371b0bdb3..1f286bd489 100644 --- a/packages/sheets-data-validation-ui/package.json +++ b/packages/sheets-data-validation-ui/package.json @@ -91,7 +91,7 @@ "react": "18.3.1", "rxjs": "^7.8.1", "tailwindcss": "^3.4.17", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/sheets-data-validation-ui/src/controllers/dv-reject-input.controller.ts b/packages/sheets-data-validation-ui/src/controllers/dv-reject-input.controller.ts index ec8ab3e378..061302e607 100644 --- a/packages/sheets-data-validation-ui/src/controllers/dv-reject-input.controller.ts +++ b/packages/sheets-data-validation-ui/src/controllers/dv-reject-input.controller.ts @@ -63,7 +63,8 @@ export class DataValidationRejectInputController extends Disposable { worksheet, workbook, t: cell?.t, - }, rule + }, + rule ); if (success) { diff --git a/packages/sheets-data-validation-ui/src/views/components/detail/index.tsx b/packages/sheets-data-validation-ui/src/views/components/detail/index.tsx index e6c7bb4da2..eea1877965 100644 --- a/packages/sheets-data-validation-ui/src/views/components/detail/index.tsx +++ b/packages/sheets-data-validation-ui/src/views/components/detail/index.tsx @@ -33,9 +33,7 @@ import styles from './index.module.less'; // debounce execute commands, for better redo-undo experience const debounceExecuteFactory = (commandService: ICommandService) => debounce( - async (id: string, params?: any, options?: IExecutionOptions | undefined, - callback?: (success: boolean) => void - ) => { + async (id: string, params?: any, options?: IExecutionOptions | undefined, callback?: (success: boolean) => void) => { const res = await commandService.executeCommand(id, params, options); callback?.(res); }, @@ -124,7 +122,8 @@ export function DataValidationDetail() { return { ...unitRange, sheetId }; } return { - ...unitRange, sheetId: '', + ...unitRange, + sheetId: '', }; }); if (isUnitRangesEqual(unitRanges, localRanges)) { diff --git a/packages/sheets-data-validation/package.json b/packages/sheets-data-validation/package.json index d4194bc340..170d76a6a8 100644 --- a/packages/sheets-data-validation/package.json +++ b/packages/sheets-data-validation/package.json @@ -79,7 +79,7 @@ "@univerjs-infra/shared": "workspace:*", "less": "^4.2.2", "rxjs": "^7.8.1", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/sheets-data-validation/src/facade/f-univer.ts b/packages/sheets-data-validation/src/facade/f-univer.ts index d954c8566a..057f4cb13b 100644 --- a/packages/sheets-data-validation/src/facade/f-univer.ts +++ b/packages/sheets-data-validation/src/facade/f-univer.ts @@ -23,14 +23,7 @@ import type { IUpdateSheetDataValidationRangeCommandParams, IUpdateSheetDataValidationSettingCommandParams, } from '@univerjs/sheets-data-validation'; -import type { IBeforeSheetDataValidationAddEvent, - IBeforeSheetDataValidationCriteriaUpdateEvent, - IBeforeSheetDataValidationDeleteAllEvent, - IBeforeSheetDataValidationDeleteEvent, - IBeforeSheetDataValidationOptionsUpdateEvent, - IBeforeSheetDataValidationRangeUpdateEvent, - -} from './f-event'; +import type { IBeforeSheetDataValidationAddEvent, IBeforeSheetDataValidationCriteriaUpdateEvent, IBeforeSheetDataValidationDeleteAllEvent, IBeforeSheetDataValidationDeleteEvent, IBeforeSheetDataValidationOptionsUpdateEvent, IBeforeSheetDataValidationRangeUpdateEvent } from './f-event'; import { CanceledError, ICommandService } from '@univerjs/core'; import { FUniver } from '@univerjs/core/facade'; import { diff --git a/packages/sheets-data-validation/src/plugin.ts b/packages/sheets-data-validation/src/plugin.ts index decefce7d9..6bfb84bd80 100644 --- a/packages/sheets-data-validation/src/plugin.ts +++ b/packages/sheets-data-validation/src/plugin.ts @@ -22,7 +22,9 @@ import { IConfigService, Inject, Injector, - merge, Plugin, UniverInstanceType, + merge, + Plugin, + UniverInstanceType, } from '@univerjs/core'; import { UniverDataValidationPlugin } from '@univerjs/data-validation'; import { diff --git a/packages/sheets-drawing-ui/package.json b/packages/sheets-drawing-ui/package.json index abb430907d..a8be67b36a 100644 --- a/packages/sheets-drawing-ui/package.json +++ b/packages/sheets-drawing-ui/package.json @@ -92,7 +92,7 @@ "react": "18.3.1", "rxjs": "^7.8.1", "tailwindcss": "^3.4.17", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/sheets-drawing-ui/src/basics/transform-position.ts b/packages/sheets-drawing-ui/src/basics/transform-position.ts index 7b38c50299..4163f963a8 100644 --- a/packages/sheets-drawing-ui/src/basics/transform-position.ts +++ b/packages/sheets-drawing-ui/src/basics/transform-position.ts @@ -16,13 +16,15 @@ import type { ITransformState, Nullable } from '@univerjs/core'; import type { ISheetDrawingPosition } from '@univerjs/sheets-drawing'; +import type { ISheetSelectionRenderService, SheetSkeletonManagerService } from '@univerjs/sheets-ui'; import { precisionTo } from '@univerjs/engine-render'; -import { convertPositionSheetOverGridToAbsolute, type ISheetSelectionRenderService, type SheetSkeletonManagerService } from '@univerjs/sheets-ui'; +import { convertPositionSheetOverGridToAbsolute } from '@univerjs/sheets-ui'; export function drawingPositionToTransform( position: ISheetDrawingPosition, selectionRenderService: ISheetSelectionRenderService, - sheetSkeletonManagerService: SheetSkeletonManagerService): Nullable { + sheetSkeletonManagerService: SheetSkeletonManagerService +): Nullable { const { from, to, flipY = false, flipX = false, angle = 0, skewX = 0, skewY = 0 } = position; const skeletonParam = sheetSkeletonManagerService.getCurrent(); if (skeletonParam == null) { @@ -30,7 +32,10 @@ export function drawingPositionToTransform( } const absolutePosition = convertPositionSheetOverGridToAbsolute( - skeletonParam.unitId, skeletonParam.sheetId, { from, to }, sheetSkeletonManagerService + skeletonParam.unitId, + skeletonParam.sheetId, + { from, to }, + sheetSkeletonManagerService ); let { left, top, width, height } = absolutePosition; @@ -88,7 +93,11 @@ export function drawingPositionToTransform( } return { - flipY, flipX, angle, skewX, skewY, + flipY, + flipX, + angle, + skewX, + skewY, left, top, width, @@ -127,7 +136,11 @@ export function transformToDrawingPosition(transform: ITransformState, selection }; return { - flipY, flipX, angle, skewX, skewY, + flipY, + flipX, + angle, + skewX, + skewY, from, to, }; diff --git a/packages/sheets-drawing-ui/src/commands/commands/set-drawing-arrange.command.ts b/packages/sheets-drawing-ui/src/commands/commands/set-drawing-arrange.command.ts index cb5f16a091..8da3d3e6aa 100644 --- a/packages/sheets-drawing-ui/src/commands/commands/set-drawing-arrange.command.ts +++ b/packages/sheets-drawing-ui/src/commands/commands/set-drawing-arrange.command.ts @@ -20,7 +20,8 @@ import { ArrangeTypeEnum, CommandType, ICommandService, - IUndoRedoService } from '@univerjs/core'; + IUndoRedoService, +} from '@univerjs/core'; import { DrawingApplyType, ISheetDrawingService, SetDrawingApplyMutation } from '@univerjs/sheets-drawing'; export interface ISetDrawingArrangeCommandParams extends IDrawingOrderMapParam { diff --git a/packages/sheets-drawing-ui/src/commands/commands/utils.ts b/packages/sheets-drawing-ui/src/commands/commands/utils.ts index 36ea66ed3c..6b5cebcdbe 100644 --- a/packages/sheets-drawing-ui/src/commands/commands/utils.ts +++ b/packages/sheets-drawing-ui/src/commands/commands/utils.ts @@ -14,8 +14,9 @@ * limitations under the License. */ +import type { IDrawingParam } from '@univerjs/core'; import type { IDrawingGroupUpdateParam } from '@univerjs/drawing'; -import { DrawingTypeEnum, type IDrawingParam } from '@univerjs/core'; +import { DrawingTypeEnum } from '@univerjs/core'; import { getGroupState, transformObjectOutOfGroup } from '@univerjs/engine-render'; export function ungroupToGroup(ungroupParams: IDrawingGroupUpdateParam[]) { @@ -30,7 +31,9 @@ export function ungroupToGroup(ungroupParams: IDrawingGroupUpdateParam[]) { const transform = drawing.transform || { left: 0, top: 0 }; const { unitId, subUnitId, drawingId } = drawing; return { - unitId, subUnitId, drawingId, + unitId, + subUnitId, + drawingId, transform: { ...transform, left: transform.left! - groupTransform.left, @@ -71,7 +74,9 @@ export function groupToUngroup(groupParams: IDrawingGroupUpdateParam[]) { const { unitId, subUnitId, drawingId } = object; const newTransform = transformObjectOutOfGroup(transform || {}, groupTransform, groupTransform.width || 0, groupTransform.height || 0); return { - unitId, subUnitId, drawingId, + unitId, + subUnitId, + drawingId, transform: newTransform, groupId: undefined, }; diff --git a/packages/sheets-drawing-ui/src/controllers/sheet-drawing-transform-affected.controller.ts b/packages/sheets-drawing-ui/src/controllers/sheet-drawing-transform-affected.controller.ts index 42e3b7f048..86251406bb 100644 --- a/packages/sheets-drawing-ui/src/controllers/sheet-drawing-transform-affected.controller.ts +++ b/packages/sheets-drawing-ui/src/controllers/sheet-drawing-transform-affected.controller.ts @@ -36,7 +36,10 @@ enum RangeMoveUndoType { } const UPDATE_COMMANDS = [ - InsertRowCommand.id, InsertColCommand.id, RemoveRowCommand.id, RemoveColCommand.id, + InsertRowCommand.id, + InsertColCommand.id, + RemoveRowCommand.id, + RemoveColCommand.id, DeleteRangeMoveLeftCommand.id, DeleteRangeMoveUpCommand.id, @@ -551,8 +554,7 @@ export class SheetDrawingTransformAffectedController extends Disposable implemen } } - const newTransform = drawingPositionToTransform({ ...sheetTransform }, - this._selectionRenderService, this._skeletonManagerService); + const newTransform = drawingPositionToTransform({ ...sheetTransform }, this._selectionRenderService, this._skeletonManagerService); if (newTransform != null) { updateDrawings.push({ ...drawing, @@ -1234,10 +1236,16 @@ export class SheetDrawingTransformAffectedController extends Disposable implemen const { startRow, endRow, startColumn, endColumn } = range; if (Rectangle.intersects( { - startRow, endRow, startColumn, endColumn, + startRow, + endRow, + startColumn, + endColumn, }, { - startRow: fromRow, endRow: toRow, startColumn: fromColumn, endColumn: toColumn, + startRow: fromRow, + endRow: toRow, + startColumn: fromColumn, + endColumn: toColumn, } ) || fromRow > endRow || fromColumn > endColumn) { const isPositionAnchor = anchorType === SheetDrawingAnchorType.Position; diff --git a/packages/sheets-drawing-ui/src/facade/f-over-grid-image.ts b/packages/sheets-drawing-ui/src/facade/f-over-grid-image.ts index 1188bc38dd..3a6d261973 100644 --- a/packages/sheets-drawing-ui/src/facade/f-over-grid-image.ts +++ b/packages/sheets-drawing-ui/src/facade/f-over-grid-image.ts @@ -40,7 +40,10 @@ function convertSheetImageToFOverGridImage(sheetImage: ISheetImage, sheetSkeleto const { column: fromColumn, columnOffset: fromColumnOffset, row: fromRow, rowOffset: fromRowOffset } = from; const absolutePosition = convertPositionSheetOverGridToAbsolute( - sheetImage.unitId, sheetImage.subUnitId, { from, to }, sheetSkeletonManagerService + sheetImage.unitId, + sheetImage.subUnitId, + { from, to }, + sheetSkeletonManagerService ); const { width, height } = absolutePosition; @@ -72,7 +75,13 @@ function convertFOverGridImageToSheetImage(fOverGridImage: IFOverGridImage, sele const { column: fromColumn, columnOffset: fromColumnOffset, row: fromRow, rowOffset: fromRowOffset, flipY = false, flipX = false, angle = 0, skewX = 0, skewY = 0, width, height } = fOverGridImage; const absolutePosition = convertPositionCellToSheetOverGrid( - fOverGridImage.unitId, fOverGridImage.subUnitId, { column: fromColumn, columnOffset: fromColumnOffset, row: fromRow, rowOffset: fromRowOffset }, width, height, selectionRenderService, sheetSkeletonManagerService + fOverGridImage.unitId, + fOverGridImage.subUnitId, + { column: fromColumn, columnOffset: fromColumnOffset, row: fromRow, rowOffset: fromRowOffset }, + width, + height, + selectionRenderService, + sheetSkeletonManagerService ); const { sheetTransform, transform } = absolutePosition; diff --git a/packages/sheets-drawing/package.json b/packages/sheets-drawing/package.json index 38e6f207ea..9da705a515 100644 --- a/packages/sheets-drawing/package.json +++ b/packages/sheets-drawing/package.json @@ -62,7 +62,7 @@ "devDependencies": { "@univerjs-infra/shared": "workspace:*", "@univerjs/sheets": "workspace:*", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/sheets-filter-ui/package.json b/packages/sheets-filter-ui/package.json index 25a9b4015f..92a264c8f3 100644 --- a/packages/sheets-filter-ui/package.json +++ b/packages/sheets-filter-ui/package.json @@ -83,7 +83,7 @@ "react": "18.3.1", "rxjs": "^7.8.1", "tailwindcss": "^3.4.17", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/sheets-filter-ui/src/controllers/menu.schema.ts b/packages/sheets-filter-ui/src/controllers/menu.schema.ts index ce21d3e6b7..7ac22a26d7 100644 --- a/packages/sheets-filter-ui/src/controllers/menu.schema.ts +++ b/packages/sheets-filter-ui/src/controllers/menu.schema.ts @@ -16,7 +16,8 @@ import type { MenuSchemaType } from '@univerjs/ui'; import { - ClearSheetsFilterCriteriaCommand, ReCalcSheetsFilterCommand, + ClearSheetsFilterCriteriaCommand, + ReCalcSheetsFilterCommand, SmartToggleSheetsFilterCommand, } from '@univerjs/sheets-filter'; import { RibbonStartGroup } from '@univerjs/ui'; diff --git a/packages/sheets-filter-ui/src/controllers/sheets-filter-ui-mobile.controller.ts b/packages/sheets-filter-ui/src/controllers/sheets-filter-ui-mobile.controller.ts index 2543770b82..ed654492be 100644 --- a/packages/sheets-filter-ui/src/controllers/sheets-filter-ui-mobile.controller.ts +++ b/packages/sheets-filter-ui/src/controllers/sheets-filter-ui-mobile.controller.ts @@ -14,9 +14,9 @@ * limitations under the License. */ +import type { Dependency } from '@univerjs/core'; import { Inject, RxDisposable, UniverInstanceType } from '@univerjs/core'; import { IRenderManagerService } from '@univerjs/engine-render'; -import type { Dependency } from '@univerjs/core'; import { ReCalcSheetsFilterMutation, RemoveSheetsFilterMutation, SetSheetsFilterCriteriaMutation, SetSheetsFilterRangeMutation } from '@univerjs/sheets-filter'; import { SheetsRenderService } from '@univerjs/sheets-ui'; import { SheetsFilterRenderController } from '../views/render-modules/sheets-filter.render-controller'; @@ -36,7 +36,8 @@ export class SheetsFilterUIMobileController extends RxDisposable { ].forEach((m) => this.disposeWithMe(this._sheetsRenderService.registerSkeletonChangingMutations(m.id))); this.disposeWithMe(this._renderManagerService.registerRenderModule( - UniverInstanceType.UNIVER_SHEET, [SheetsFilterRenderController] as Dependency + UniverInstanceType.UNIVER_SHEET, + [SheetsFilterRenderController] as Dependency )); } } diff --git a/packages/sheets-filter-ui/src/models/__tests__/conditions.spec.ts b/packages/sheets-filter-ui/src/models/__tests__/conditions.spec.ts index 99c0d8a3f4..4333f17a86 100644 --- a/packages/sheets-filter-ui/src/models/__tests__/conditions.spec.ts +++ b/packages/sheets-filter-ui/src/models/__tests__/conditions.spec.ts @@ -14,9 +14,9 @@ * limitations under the License. */ -import { describe, expect, it } from 'vitest'; import { BooleanNumber } from '@univerjs/core'; import { CustomFilterOperator } from '@univerjs/sheets-filter'; +import { describe, expect, it } from 'vitest'; import { FilterConditionItems } from '../conditions'; import { ExtendCustomFilterOperator } from '../extended-operators'; @@ -97,7 +97,8 @@ describe('test "FilterConditionItems"', () => { .toEqual([FilterConditionItems.TEXT_CONTAINS, { operator1: ExtendCustomFilterOperator.CONTAINS, val1: 'xxx' }]); expect(FilterConditionItems.testMappingFilterColumn({ customFilters: { customFilters: [{ val: '*xxx' }] } })) - .not.toEqual([FilterConditionItems.TEXT_CONTAINS, { operator1: ExtendCustomFilterOperator.CONTAINS, val1: 'xxx' }]); + .not + .toEqual([FilterConditionItems.TEXT_CONTAINS, { operator1: ExtendCustomFilterOperator.CONTAINS, val1: 'xxx' }]); }); it('should support default params with empty string', () => { @@ -399,8 +400,10 @@ describe('test "FilterConditionItems"', () => { }, })).toEqual([FilterConditionItems.BETWEEN, { and: true, - operator1: CustomFilterOperator.GREATER_THAN_OR_EQUAL, val1: '123', - operator2: CustomFilterOperator.LESS_THAN_OR_EQUAL, val2: '456', + operator1: CustomFilterOperator.GREATER_THAN_OR_EQUAL, + val1: '123', + operator2: CustomFilterOperator.LESS_THAN_OR_EQUAL, + val2: '456', }]); expect(FilterConditionItems.testMappingFilterColumn({ @@ -413,8 +416,10 @@ describe('test "FilterConditionItems"', () => { }, })).toEqual([FilterConditionItems.BETWEEN, { and: true, - operator1: CustomFilterOperator.GREATER_THAN_OR_EQUAL, val1: '123', - operator2: CustomFilterOperator.LESS_THAN_OR_EQUAL, val2: '456', + operator1: CustomFilterOperator.GREATER_THAN_OR_EQUAL, + val1: '123', + operator2: CustomFilterOperator.LESS_THAN_OR_EQUAL, + val2: '456', }]); expect(FilterConditionItems.testMappingFilterColumn({ @@ -426,16 +431,20 @@ describe('test "FilterConditionItems"', () => { }, })).not.toEqual([FilterConditionItems.BETWEEN, { and: true, - operator1: CustomFilterOperator.GREATER_THAN_OR_EQUAL, val1: '123', - operator2: CustomFilterOperator.LESS_THAN_OR_EQUAL, val2: '456', + operator1: CustomFilterOperator.GREATER_THAN_OR_EQUAL, + val1: '123', + operator2: CustomFilterOperator.LESS_THAN_OR_EQUAL, + val2: '456', }]); }); it('should support default params with empty string', () => { expect(FilterConditionItems.BETWEEN.getDefaultFormParams()).toEqual({ and: true, - operator1: CustomFilterOperator.GREATER_THAN_OR_EQUAL, val1: '', - operator2: CustomFilterOperator.LESS_THAN_OR_EQUAL, val2: '', + operator1: CustomFilterOperator.GREATER_THAN_OR_EQUAL, + val1: '', + operator2: CustomFilterOperator.LESS_THAN_OR_EQUAL, + val2: '', }); }); @@ -472,8 +481,10 @@ describe('test "FilterConditionItems"', () => { it('should map to filter column with correct combination of two operators', () => { expect(FilterConditionItems.BETWEEN.mapToFilterColumn({ and: true, - operator1: CustomFilterOperator.GREATER_THAN_OR_EQUAL, val1: '123', - operator2: CustomFilterOperator.LESS_THAN_OR_EQUAL, val2: '456', + operator1: CustomFilterOperator.GREATER_THAN_OR_EQUAL, + val1: '123', + operator2: CustomFilterOperator.LESS_THAN_OR_EQUAL, + val2: '456', })).toEqual({ customFilters: { and: BooleanNumber.TRUE, @@ -496,15 +507,19 @@ describe('test "FilterConditionItems"', () => { ], }, })).toEqual([FilterConditionItems.NOT_BETWEEN, { - operator1: CustomFilterOperator.LESS_THAN, val1: '123', - operator2: CustomFilterOperator.GREATER_THAN, val2: '456', + operator1: CustomFilterOperator.LESS_THAN, + val1: '123', + operator2: CustomFilterOperator.GREATER_THAN, + val2: '456', }]); }); it('should support default params with empty string', () => { expect(FilterConditionItems.NOT_BETWEEN.getDefaultFormParams()).toEqual({ - operator1: CustomFilterOperator.LESS_THAN, val1: '', - operator2: CustomFilterOperator.GREATER_THAN, val2: '', + operator1: CustomFilterOperator.LESS_THAN, + val1: '', + operator2: CustomFilterOperator.GREATER_THAN, + val2: '', }); }); @@ -535,8 +550,10 @@ describe('test "FilterConditionItems"', () => { it('should map to filter column with correct combination of two operators', () => { expect(FilterConditionItems.NOT_BETWEEN.mapToFilterColumn({ - operator1: CustomFilterOperator.GREATER_THAN, val1: '123', - operator2: CustomFilterOperator.LESS_THAN, val2: '456', + operator1: CustomFilterOperator.GREATER_THAN, + val1: '123', + operator2: CustomFilterOperator.LESS_THAN, + val2: '456', })).toEqual({ customFilters: { customFilters: [ @@ -555,15 +572,19 @@ describe('test "FilterConditionItems"', () => { { val: '123*' }, ] } })).toEqual([FilterConditionItems.CUSTOM, { and: true, - operator1: ExtendCustomFilterOperator.ENDS_WITH, val1: '123', - operator2: ExtendCustomFilterOperator.STARTS_WITH, val2: '123', + operator1: ExtendCustomFilterOperator.ENDS_WITH, + val1: '123', + operator2: ExtendCustomFilterOperator.STARTS_WITH, + val2: '123', }]); }); it('should support default params with empty string', () => { expect(FilterConditionItems.CUSTOM.getDefaultFormParams()).toEqual({ - operator1: ExtendCustomFilterOperator.NONE, val1: '', - operator2: ExtendCustomFilterOperator.NONE, val2: '', + operator1: ExtendCustomFilterOperator.NONE, + val1: '', + operator2: ExtendCustomFilterOperator.NONE, + val2: '', }); }); @@ -574,8 +595,10 @@ describe('test "FilterConditionItems"', () => { it('should map to filter column with empty string', () => { expect(FilterConditionItems.CUSTOM.mapToFilterColumn({ and: true, - operator1: ExtendCustomFilterOperator.ENDS_WITH, val1: '123', - operator2: CustomFilterOperator.GREATER_THAN, val2: '456', + operator1: ExtendCustomFilterOperator.ENDS_WITH, + val1: '123', + operator2: CustomFilterOperator.GREATER_THAN, + val2: '456', })) .toEqual({ customFilters: { and: BooleanNumber.TRUE, diff --git a/packages/sheets-filter-ui/src/models/conditions.ts b/packages/sheets-filter-ui/src/models/conditions.ts index 5650f25e64..2fc417cd7b 100644 --- a/packages/sheets-filter-ui/src/models/conditions.ts +++ b/packages/sheets-filter-ui/src/models/conditions.ts @@ -15,8 +15,8 @@ */ import type { Nullable } from '@univerjs/core'; -import { BooleanNumber } from '@univerjs/core'; import type { ICustomFilters, IFilterColumn } from '@univerjs/sheets-filter'; +import { BooleanNumber } from '@univerjs/core'; import { CustomFilterOperator } from '@univerjs/sheets-filter'; import { ExtendCustomFilterOperator, OperatorOrder } from './extended-operators'; @@ -580,8 +580,10 @@ export namespace FilterConditionItems { numOfParameters: 2, getDefaultFormParams: () => ({ - operator1: CustomFilterOperator.LESS_THAN, val1: '', - operator2: CustomFilterOperator.GREATER_THAN, val2: '', + operator1: CustomFilterOperator.LESS_THAN, + val1: '', + operator2: CustomFilterOperator.GREATER_THAN, + val2: '', }), testMappingParams: (params) => { const { and, operator1, operator2 } = params; diff --git a/packages/sheets-filter-ui/src/services/__tests__/sheets-filter-panel.service.spec.ts b/packages/sheets-filter-ui/src/services/__tests__/sheets-filter-panel.service.spec.ts index a8732e512c..4e5de8c78e 100644 --- a/packages/sheets-filter-ui/src/services/__tests__/sheets-filter-panel.service.spec.ts +++ b/packages/sheets-filter-ui/src/services/__tests__/sheets-filter-panel.service.spec.ts @@ -174,8 +174,10 @@ describe('test "SheetsFilterPanelService"', () => { expect(filterByModel.conditionItem.operator).toBe(FilterConditionItems.BETWEEN.operator); expect(filterByModel.filterConditionFormParams).toEqual({ and: true, - operator1: CustomFilterOperator.GREATER_THAN_OR_EQUAL, val1: '', - operator2: CustomFilterOperator.LESS_THAN_OR_EQUAL, val2: '', + operator1: CustomFilterOperator.GREATER_THAN_OR_EQUAL, + val1: '', + operator2: CustomFilterOperator.LESS_THAN_OR_EQUAL, + val2: '', } as IFilterConditionFormParams); filterByModel.onPrimaryConditionChange(ExtendCustomFilterOperator.ENDS_WITH); @@ -211,8 +213,10 @@ describe('test "SheetsFilterPanelService"', () => { expect(filterByModel.conditionItem.operator).toBe(FilterConditionItems.CUSTOM.operator); expect(filterByModel.filterConditionFormParams).toEqual({ and: true, - operator1: ExtendCustomFilterOperator.ENDS_WITH, val1: '', - operator2: CustomFilterOperator.LESS_THAN_OR_EQUAL, val2: '', + operator1: ExtendCustomFilterOperator.ENDS_WITH, + val1: '', + operator2: CustomFilterOperator.LESS_THAN_OR_EQUAL, + val2: '', } as IFilterConditionFormParams); }); }); diff --git a/packages/sheets-filter-ui/src/views/components/SheetsFilterPanel.tsx b/packages/sheets-filter-ui/src/views/components/SheetsFilterPanel.tsx index 872ad8e5cd..4239133b60 100644 --- a/packages/sheets-filter-ui/src/views/components/SheetsFilterPanel.tsx +++ b/packages/sheets-filter-ui/src/views/components/SheetsFilterPanel.tsx @@ -110,6 +110,5 @@ function useFilterByOptions(localeService: LocaleService) { return useMemo(() => [ { label: localeService.t('sheets-filter.panel.by-values'), value: FilterBy.VALUES }, { label: localeService.t('sheets-filter.panel.by-conditions'), value: FilterBy.CONDITIONS }, - ], - [locale, localeService]); + ], [locale, localeService]); } diff --git a/packages/sheets-filter-ui/src/views/render-modules/sheets-filter.render-controller.ts b/packages/sheets-filter-ui/src/views/render-modules/sheets-filter.render-controller.ts index dd3eace34b..bad954a418 100644 --- a/packages/sheets-filter-ui/src/views/render-modules/sheets-filter.render-controller.ts +++ b/packages/sheets-filter-ui/src/views/render-modules/sheets-filter.render-controller.ts @@ -111,12 +111,16 @@ export class SheetsFilterRenderController extends RxDisposable implements IRende const { scene } = this._context; const { rowHeaderWidth, columnHeaderHeight } = skeleton; const filterRangeShape = this._filterRangeShape = new SelectionControl( - scene, DEFAULT_Z_INDEX, this._themeService, { + scene, + DEFAULT_Z_INDEX, + this._themeService, + { rowHeaderWidth, columnHeaderHeight, enableAutoFill: false, highlightHeader: false, - }); + } + ); const selectionWithStyle = { range, primary: null, diff --git a/packages/sheets-filter/package.json b/packages/sheets-filter/package.json index bd1e6ff705..1e3ab91852 100644 --- a/packages/sheets-filter/package.json +++ b/packages/sheets-filter/package.json @@ -71,7 +71,7 @@ "devDependencies": { "@univerjs-infra/shared": "workspace:*", "rxjs": "^7.8.1", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/sheets-filter/src/commands/mutations/__tests__/sheets-filter.mutation.spec.ts b/packages/sheets-filter/src/commands/mutations/__tests__/sheets-filter.mutation.spec.ts index bd3e5975b5..07dd6ba15b 100644 --- a/packages/sheets-filter/src/commands/mutations/__tests__/sheets-filter.mutation.spec.ts +++ b/packages/sheets-filter/src/commands/mutations/__tests__/sheets-filter.mutation.spec.ts @@ -15,10 +15,10 @@ */ import type { IWorkbookData } from '@univerjs/core'; +import type { ISetSheetsFilterCriteriaMutationParams, ISetSheetsFilterRangeMutationParams } from '../sheets-filter.mutation'; import { ICommandService, Inject, Injector, LocaleType, Plugin, Univer, UniverInstanceType } from '@univerjs/core'; import { afterEach, describe, expect, it } from 'vitest'; import { SHEET_FILTER_SNAPSHOT_ID, SheetsFilterService } from '../../../services/sheet-filter.service'; -import type { ISetSheetsFilterCriteriaMutationParams, ISetSheetsFilterRangeMutationParams } from '../sheets-filter.mutation'; import { ReCalcSheetsFilterMutation, RemoveSheetsFilterMutation, SetSheetsFilterCriteriaMutation, SetSheetsFilterRangeMutation } from '../sheets-filter.mutation'; function testWorkbookDataFactory(): IWorkbookData { @@ -124,7 +124,8 @@ function createFilterMutationTestBed(workbookData?: IWorkbookData) { SetSheetsFilterRangeMutation, SetSheetsFilterCriteriaMutation, RemoveSheetsFilterMutation, - ReCalcSheetsFilterMutation] + ReCalcSheetsFilterMutation, + ] ).forEach((command) => commandService.registerCommand(command)); return { diff --git a/packages/sheets-filter/src/controllers/sheets-filter.controller.ts b/packages/sheets-filter/src/controllers/sheets-filter.controller.ts index 5a7ee7c245..e9e1df33ca 100644 --- a/packages/sheets-filter/src/controllers/sheets-filter.controller.ts +++ b/packages/sheets-filter/src/controllers/sheets-filter.controller.ts @@ -242,7 +242,8 @@ export class SheetsFilterController extends Disposable { redos.push({ id: SetSheetsFilterRangeMutation.id, params: setFilterRangeParams }); undos.push({ id: SetSheetsFilterRangeMutation.id, params: undoSetFilterRangeMutationParams }); return { - redos: mergeSetFilterCriteria(redos), undos: mergeSetFilterCriteria(undos), + redos: mergeSetFilterCriteria(redos), + undos: mergeSetFilterCriteria(undos), }; } @@ -336,13 +337,15 @@ export class SheetsFilterController extends Disposable { return { undos: [{ id: SetSheetsFilterRangeMutation.id, params: { range: filterRange, unitId, subUnitId } }], redos: [{ - id: SetSheetsFilterRangeMutation.id, params: { + id: SetSheetsFilterRangeMutation.id, + params: { range: { ...filterRange, startRow: startRow - (removeEndRow - removeStartRow + 1), endRow: endRow - (removeEndRow - removeStartRow + 1), }, - unitId, subUnitId, + unitId, + subUnitId, }, }], }; @@ -691,7 +694,9 @@ export class SheetsFilterController extends Disposable { handler: (filtered, rowLocation) => { if (filtered) return true; return this._sheetsFilterService.getFilterModel( - rowLocation.unitId, rowLocation.subUnitId)?.isRowFiltered(rowLocation.row) ?? false; + rowLocation.unitId, + rowLocation.subUnitId + )?.isRowFiltered(rowLocation.row) ?? false; }, })); } diff --git a/packages/sheets-filter/src/models/__tests__/filter-interceptor.spec.ts b/packages/sheets-filter/src/models/__tests__/filter-interceptor.spec.ts index 687d1c8b4f..7f8886a588 100644 --- a/packages/sheets-filter/src/models/__tests__/filter-interceptor.spec.ts +++ b/packages/sheets-filter/src/models/__tests__/filter-interceptor.spec.ts @@ -43,9 +43,16 @@ describe('Test "Filter Interceptor"', () => { describe('Test "insert Command"', () => { it('insert col command, in filter range', async () => { const insertColCommandParams = { - unitId: 'workbookId', subUnitId: 'worksheetId', range: { - startColumn: 2, endColumn: 2, startRow: 0, endRow: 4, type: RANGE_TYPE.COLUMN, - }, direction: Direction.RIGHT, + unitId: 'workbookId', + subUnitId: 'worksheetId', + range: { + startColumn: 2, + endColumn: 2, + startRow: 0, + endRow: 4, + type: RANGE_TYPE.COLUMN, + }, + direction: Direction.RIGHT, } as IInsertColCommandParams; await commandService.executeCommand(InsertColCommand.id, insertColCommandParams); expect(sheetsFilterService.getFilterModel('workbookId', 'worksheetId')!.getRange()).toStrictEqual({ startColumn: 1, endColumn: 3, startRow: 1, endRow: 2 }); @@ -54,9 +61,16 @@ describe('Test "Filter Interceptor"', () => { it('insert col command, before filter range', async () => { const insertColCommandParams = { - unitId: 'workbookId', subUnitId: 'worksheetId', range: { - startColumn: 0, endColumn: 0, startRow: 0, endRow: 4, type: RANGE_TYPE.COLUMN, - }, direction: Direction.RIGHT, + unitId: 'workbookId', + subUnitId: 'worksheetId', + range: { + startColumn: 0, + endColumn: 0, + startRow: 0, + endRow: 4, + type: RANGE_TYPE.COLUMN, + }, + direction: Direction.RIGHT, } as IInsertColCommandParams; await commandService.executeCommand(InsertColCommand.id, insertColCommandParams); expect(sheetsFilterService.getFilterModel('workbookId', 'worksheetId')!.getRange()).toStrictEqual({ startColumn: 2, endColumn: 3, startRow: 1, endRow: 2 }); @@ -65,9 +79,16 @@ describe('Test "Filter Interceptor"', () => { it('insert row command, in filter range', async () => { const insertRowCommandParams = { - unitId: 'workbookId', subUnitId: 'worksheetId', range: { - startColumn: 0, endColumn: 3, startRow: 2, endRow: 2, type: RANGE_TYPE.ROW, - }, direction: Direction.DOWN, + unitId: 'workbookId', + subUnitId: 'worksheetId', + range: { + startColumn: 0, + endColumn: 3, + startRow: 2, + endRow: 2, + type: RANGE_TYPE.ROW, + }, + direction: Direction.DOWN, } as IInsertRowCommandParams; await commandService.executeCommand(InsertRowCommand.id, insertRowCommandParams); expect(sheetsFilterService.getFilterModel('workbookId', 'worksheetId')!.getRange()).toStrictEqual({ startColumn: 1, endColumn: 2, startRow: 1, endRow: 3 }); @@ -76,9 +97,16 @@ describe('Test "Filter Interceptor"', () => { it('insert row command, before filter range', async () => { const insertRowCommandParams = { - unitId: 'workbookId', subUnitId: 'worksheetId', range: { - startColumn: 0, endColumn: 3, startRow: 0, endRow: 0, type: RANGE_TYPE.ROW, - }, direction: Direction.DOWN, + unitId: 'workbookId', + subUnitId: 'worksheetId', + range: { + startColumn: 0, + endColumn: 3, + startRow: 0, + endRow: 0, + type: RANGE_TYPE.ROW, + }, + direction: Direction.DOWN, } as IInsertRowCommandParams; await commandService.executeCommand(InsertRowCommand.id, insertRowCommandParams); expect(sheetsFilterService.getFilterModel('workbookId', 'worksheetId')!.getRange()).toStrictEqual({ startColumn: 1, endColumn: 2, startRow: 2, endRow: 3 }); @@ -89,9 +117,16 @@ describe('Test "Filter Interceptor"', () => { describe('Test "remove Command"', () => { it('remove col command, in filter range', async () => { const removeColCommandParams = { - unitId: 'workbookId', subUnitId: 'worksheetId', range: { - startColumn: 1, endColumn: 1, startRow: 0, endRow: 4, type: RANGE_TYPE.COLUMN, - }, direction: Direction.RIGHT, + unitId: 'workbookId', + subUnitId: 'worksheetId', + range: { + startColumn: 1, + endColumn: 1, + startRow: 0, + endRow: 4, + type: RANGE_TYPE.COLUMN, + }, + direction: Direction.RIGHT, } as IRemoveRowColCommandParams; await commandService.executeCommand(RemoveColCommand.id, removeColCommandParams); expect(sheetsFilterService.getFilterModel('workbookId', 'worksheetId')!.getRange()).toStrictEqual({ startColumn: 1, endColumn: 1, startRow: 1, endRow: 2 }); @@ -99,9 +134,16 @@ describe('Test "Filter Interceptor"', () => { }); it('remove col command, before filter range', async () => { const removeColCommandParams = { - unitId: 'workbookId', subUnitId: 'worksheetId', range: { - startColumn: 0, endColumn: 0, startRow: 0, endRow: 4, type: RANGE_TYPE.COLUMN, - }, direction: Direction.RIGHT, + unitId: 'workbookId', + subUnitId: 'worksheetId', + range: { + startColumn: 0, + endColumn: 0, + startRow: 0, + endRow: 4, + type: RANGE_TYPE.COLUMN, + }, + direction: Direction.RIGHT, } as IRemoveRowColCommandParams; await commandService.executeCommand(RemoveColCommand.id, removeColCommandParams); expect(sheetsFilterService.getFilterModel('workbookId', 'worksheetId')!.getRange()).toStrictEqual({ startColumn: 0, endColumn: 1, startRow: 1, endRow: 2 }); @@ -110,9 +152,16 @@ describe('Test "Filter Interceptor"', () => { it('remove row command, in filter range', async () => { const removeRowCommandParams = { - unitId: 'workbookId', subUnitId: 'worksheetId', range: { - startColumn: 0, endColumn: 3, startRow: 1, endRow: 1, type: RANGE_TYPE.ROW, - }, direction: Direction.DOWN, + unitId: 'workbookId', + subUnitId: 'worksheetId', + range: { + startColumn: 0, + endColumn: 3, + startRow: 1, + endRow: 1, + type: RANGE_TYPE.ROW, + }, + direction: Direction.DOWN, } as IRemoveRowColCommandParams; await commandService.executeCommand(RemoveRowCommand.id, removeRowCommandParams); expect(sheetsFilterService.getFilterModel('workbookId', 'worksheetId')).toBe(null); @@ -120,9 +169,16 @@ describe('Test "Filter Interceptor"', () => { it('remove row command, before filter range', async () => { const removeRowCommandParams = { - unitId: 'workbookId', subUnitId: 'worksheetId', range: { - startColumn: 0, endColumn: 3, startRow: 0, endRow: 0, type: RANGE_TYPE.ROW, - }, direction: Direction.DOWN, + unitId: 'workbookId', + subUnitId: 'worksheetId', + range: { + startColumn: 0, + endColumn: 3, + startRow: 0, + endRow: 0, + type: RANGE_TYPE.ROW, + }, + direction: Direction.DOWN, } as IRemoveRowColCommandParams; await commandService.executeCommand(RemoveRowCommand.id, removeRowCommandParams); expect(sheetsFilterService.getFilterModel('workbookId', 'worksheetId')!.getRange()).toStrictEqual({ startColumn: 1, endColumn: 2, startRow: 0, endRow: 1 }); @@ -133,9 +189,17 @@ describe('Test "Filter Interceptor"', () => { describe('Test "move Command"', () => { it('move col command, filter column move to left', async () => { const moveColCommandParams = { - unitId: 'workbookId', subUnitId: 'worksheetId', fromRange: { - startColumn: 1, endColumn: 1, startRow: 0, endRow: 4, type: RANGE_TYPE.COLUMN, - }, toRange: { startColumn: 3, endColumn: 3, startRow: 0, endRow: 4, type: RANGE_TYPE.COLUMN }, direction: Direction.RIGHT, + unitId: 'workbookId', + subUnitId: 'worksheetId', + fromRange: { + startColumn: 1, + endColumn: 1, + startRow: 0, + endRow: 4, + type: RANGE_TYPE.COLUMN, + }, + toRange: { startColumn: 3, endColumn: 3, startRow: 0, endRow: 4, type: RANGE_TYPE.COLUMN }, + direction: Direction.RIGHT, } as IMoveColsCommandParams; await commandService.executeCommand(SetSelectionsOperation.id, { unitId: 'workbookId', subUnitId: 'worksheetId', selections: [{ style: null, range: { startColumn: 1, endColumn: 1, startRow: 0, endRow: 4, rangeType: RANGE_TYPE.COLUMN }, primary: {} }] } as ISetSelectionsOperationParams); await commandService.executeCommand(MoveColsCommand.id, moveColCommandParams); @@ -144,9 +208,17 @@ describe('Test "Filter Interceptor"', () => { }); it('move col command, filter column move to right', async () => { const moveColCommandParams = { - unitId: 'workbookId', subUnitId: 'worksheetId', fromRange: { - startColumn: 2, endColumn: 2, startRow: 0, endRow: 4, type: RANGE_TYPE.COLUMN, - }, toRange: { startColumn: 4, endColumn: 4, startRow: 0, endRow: 4, type: RANGE_TYPE.COLUMN }, direction: Direction.RIGHT, + unitId: 'workbookId', + subUnitId: 'worksheetId', + fromRange: { + startColumn: 2, + endColumn: 2, + startRow: 0, + endRow: 4, + type: RANGE_TYPE.COLUMN, + }, + toRange: { startColumn: 4, endColumn: 4, startRow: 0, endRow: 4, type: RANGE_TYPE.COLUMN }, + direction: Direction.RIGHT, } as IMoveColsCommandParams; await commandService.executeCommand(SetSelectionsOperation.id, { unitId: 'workbookId', subUnitId: 'worksheetId', selections: [{ style: null, range: { startColumn: 2, endColumn: 2, startRow: 0, endRow: 4, rangeType: RANGE_TYPE.COLUMN }, primary: {} }] } as ISetSelectionsOperationParams); await commandService.executeCommand(MoveColsCommand.id, moveColCommandParams); @@ -156,9 +228,17 @@ describe('Test "Filter Interceptor"', () => { it('move row command', async () => { const moveRowCommandParams = { - unitId: 'workbookId', subUnitId: 'worksheetId', fromRange: { - startColumn: 0, endColumn: 3, startRow: 2, endRow: 2, type: RANGE_TYPE.ROW, - }, toRange: { startColumn: 0, endColumn: 3, startRow: 4, endRow: 4, type: RANGE_TYPE.ROW }, direction: Direction.RIGHT, + unitId: 'workbookId', + subUnitId: 'worksheetId', + fromRange: { + startColumn: 0, + endColumn: 3, + startRow: 2, + endRow: 2, + type: RANGE_TYPE.ROW, + }, + toRange: { startColumn: 0, endColumn: 3, startRow: 4, endRow: 4, type: RANGE_TYPE.ROW }, + direction: Direction.RIGHT, } as IMoveRowsCommandParams; await commandService.executeCommand(SetSelectionsOperation.id, { unitId: 'workbookId', subUnitId: 'worksheetId', selections: [{ style: null, range: { startColumn: 0, endColumn: 3, startRow: 2, endRow: 2, rangeType: RANGE_TYPE.ROW }, primary: {} }] } as ISetSelectionsOperationParams); await commandService.executeCommand(MoveRowsCommand.id, moveRowCommandParams); @@ -176,8 +256,7 @@ describe('Test "Filter Interceptor"', () => { }); }); -function createFilterTestUniver(dependencies?: Dependency[], workbookData?: IWorkbookData -) { +function createFilterTestUniver(dependencies?: Dependency[], workbookData?: IWorkbookData) { const univer = new Univer(); const injector = univer.__getInjector(); const get = injector.get.bind(injector); diff --git a/packages/sheets-filter/src/models/__tests__/filter-model.spec.ts b/packages/sheets-filter/src/models/__tests__/filter-model.spec.ts index 41cba61d5c..352536be58 100644 --- a/packages/sheets-filter/src/models/__tests__/filter-model.spec.ts +++ b/packages/sheets-filter/src/models/__tests__/filter-model.spec.ts @@ -14,9 +14,9 @@ * limitations under the License. */ -import { afterEach, beforeEach, describe, expect, it } from 'vitest'; import type { Injector, IWorkbookData, Workbook } from '@univerjs/core'; import { ILogService, IUniverInstanceService, LocaleType, LogLevel, Univer, UniverInstanceType } from '@univerjs/core'; +import { afterEach, beforeEach, describe, expect, it } from 'vitest'; import { FilterColumn, generateFilterFn } from '../filter-model'; import { CustomFilterOperator } from '../types'; @@ -26,7 +26,8 @@ describe('Test filter model and related utils', () => { it('should AND work', () => { // equivalent to "between" const fn = generateFilterFn({ - colId: 0, customFilters: { + colId: 0, + customFilters: { and: 1, customFilters: [ { operator: CustomFilterOperator.LESS_THAN_OR_EQUAL, val: 456 }, @@ -45,7 +46,8 @@ describe('Test filter model and related utils', () => { it('should OR work', () => { // equivalent to "notBetween" const fn = generateFilterFn({ - colId: 0, customFilters: { + colId: 0, + customFilters: { customFilters: [ { operator: CustomFilterOperator.LESS_THAN, val: 123 }, { operator: CustomFilterOperator.GREATER_THAN, val: 456 }, diff --git a/packages/sheets-filter/src/services/sheet-filter.service.ts b/packages/sheets-filter/src/services/sheet-filter.service.ts index dd5e2cc332..7f1008db8f 100644 --- a/packages/sheets-filter/src/services/sheet-filter.service.ts +++ b/packages/sheets-filter/src/services/sheet-filter.service.ts @@ -17,7 +17,8 @@ import type { Nullable, Workbook } from '@univerjs/core'; import type { IAutoFilter } from '../models/types'; import { - CommandType, Disposable, + CommandType, + Disposable, fromCallback, ICommandService, IResourceManagerService, @@ -145,7 +146,8 @@ export class SheetsFilterService extends Disposable { // source2: activate sheet changes this._univerInstanceService.getCurrentTypeOfUnit$(UniverInstanceType.UNIVER_SHEET) .pipe(switchMap((workbook) => workbook?.activeSheet$ ?? of(null))) - ).subscribe(() => this._updateActiveFilterModel())); + ).subscribe(() => this._updateActiveFilterModel()) + ); } private _serializeAutoFiltersForUnit(unitId: string): string { diff --git a/packages/sheets-find-replace/package.json b/packages/sheets-find-replace/package.json index f951375f38..f974b97833 100644 --- a/packages/sheets-find-replace/package.json +++ b/packages/sheets-find-replace/package.json @@ -82,7 +82,7 @@ "devDependencies": { "@univerjs-infra/shared": "workspace:*", "rxjs": "^7.8.1", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/sheets-find-replace/src/controllers/sheet-find-replace.controller.ts b/packages/sheets-find-replace/src/controllers/sheet-find-replace.controller.ts index aa43524167..4f22538ac3 100644 --- a/packages/sheets-find-replace/src/controllers/sheet-find-replace.controller.ts +++ b/packages/sheets-find-replace/src/controllers/sheet-find-replace.controller.ts @@ -430,13 +430,12 @@ export class SheetFindModel extends FindModel { const sortFn = findDirection === FindDirection.ROW ? isBehindPositionWithRowPriority : isBehindPositionWithColumnPriority; const dedupeSet = new Set(); const finds = selections - .map((selection) => this._findInRange(worksheet, query, selection.range, unitId, - (row, col) => { - const key = `${row}-${col}`; - if (dedupeSet.has(key)) return true; - dedupeSet.add(key); - return false; - }).results) + .map((selection) => this._findInRange(worksheet, query, selection.range, unitId, (row, col) => { + const key = `${row}-${col}`; + if (dedupeSet.has(key)) return true; + dedupeSet.add(key); + return false; + }).results) .flat() .sort((a, b) => sortFn(a.range.range, b.range.range) ? -1 : 1); @@ -547,10 +546,7 @@ export class SheetFindModel extends FindModel { private _focusMatch(match: ISheetCellMatch): void { const subUnitId = match.range.subUnitId; if (subUnitId !== this._workbook.getActiveSheet()?.getSheetId()) { - this._commandService.executeCommand(SetWorksheetActivateCommand.id, - { unitId: this._workbook.getUnitId(), subUnitId } as ISetWorksheetActivateCommandParams, - { fromFindReplace: true } - ); + this._commandService.executeCommand(SetWorksheetActivateCommand.id, { unitId: this._workbook.getUnitId(), subUnitId } as ISetWorksheetActivateCommandParams, { fromFindReplace: true }); } this._commandService.executeCommand( diff --git a/packages/sheets-formula-ui/package.json b/packages/sheets-formula-ui/package.json index ec4c314daf..d276cff047 100644 --- a/packages/sheets-formula-ui/package.json +++ b/packages/sheets-formula-ui/package.json @@ -92,7 +92,7 @@ "react": "18.3.1", "rxjs": "^7.8.1", "tailwindcss": "^3.4.17", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/sheets-formula-ui/src/controllers/__tests__/formula-auto-fill.controller.spec.ts b/packages/sheets-formula-ui/src/controllers/__tests__/formula-auto-fill.controller.spec.ts index f720aea209..caaee676a8 100644 --- a/packages/sheets-formula-ui/src/controllers/__tests__/formula-auto-fill.controller.spec.ts +++ b/packages/sheets-formula-ui/src/controllers/__tests__/formula-auto-fill.controller.spec.ts @@ -176,22 +176,20 @@ describe('Test auto fill with formula', () => { expect(B2?.f).toStrictEqual('=SUM(A2)'); expect(B2?.si).toEqual(B3?.si); - commandService.executeCommand(AutoFillCommand.id, - { - sourceRange: { - startColumn: 1, - endColumn: 1, - startRow: 0, - endRow: 2, - }, - targetRange: { - startColumn: 1, - endColumn: 3, - startRow: 0, - endRow: 2, - }, - } - ); + commandService.executeCommand(AutoFillCommand.id, { + sourceRange: { + startColumn: 1, + endColumn: 1, + startRow: 0, + endRow: 2, + }, + targetRange: { + startColumn: 1, + endColumn: 3, + startRow: 0, + endRow: 2, + }, + }); // B1:D3 values will be in the following format // [ @@ -302,22 +300,20 @@ describe('Test auto fill with formula', () => { }, ]); - commandService.executeCommand(AutoFillCommand.id, - { - sourceRange: { - startColumn: 0, - endColumn: 0, - startRow: 9, - endRow: 9, - }, - targetRange: { - startColumn: 0, - endColumn: 0, - startRow: 6, - endRow: 9, - }, - } - ); + commandService.executeCommand(AutoFillCommand.id, { + sourceRange: { + startColumn: 0, + endColumn: 0, + startRow: 9, + endRow: 9, + }, + targetRange: { + startColumn: 0, + endColumn: 0, + startRow: 6, + endRow: 9, + }, + }); // B1:B3 values will be in the following format // [ @@ -370,22 +366,20 @@ describe('Test auto fill with formula', () => { }, ]); - commandService.executeCommand(AutoFillCommand.id, - { - sourceRange: { - startColumn: 0, - endColumn: 0, - startRow: 19, - endRow: 20, - }, - targetRange: { - startColumn: 0, - endColumn: 0, - startRow: 15, - endRow: 20, - }, - } - ); + commandService.executeCommand(AutoFillCommand.id, { + sourceRange: { + startColumn: 0, + endColumn: 0, + startRow: 19, + endRow: 20, + }, + targetRange: { + startColumn: 0, + endColumn: 0, + startRow: 15, + endRow: 20, + }, + }); // B1:B3 values will be in the following format // [ diff --git a/packages/sheets-formula-ui/src/controllers/formula-editor-show.controller.ts b/packages/sheets-formula-ui/src/controllers/formula-editor-show.controller.ts index 0f40268079..539a40c0a6 100644 --- a/packages/sheets-formula-ui/src/controllers/formula-editor-show.controller.ts +++ b/packages/sheets-formula-ui/src/controllers/formula-editor-show.controller.ts @@ -18,7 +18,8 @@ import type { ICellDataForSheetInterceptor, ICommandInfo, IObjectMatrixPrimitive import type { IRenderContext, IRenderModule, SpreadsheetSkeleton } from '@univerjs/engine-render'; import type { ISelectionWithStyle, ISetWorksheetRowAutoHeightMutationParams } from '@univerjs/sheets'; import { - ColorKit, Disposable, + ColorKit, + Disposable, ICommandService, ILogService, Inject, @@ -95,60 +96,58 @@ export class FormulaEditorShowController extends Disposable implements IRenderMo private _initInterceptorEditorStart(): void { this.disposeWithMe( toDisposable( - this._sheetInterceptorService.writeCellInterceptor.intercept(BEFORE_CELL_EDIT, - { - handler: (value, context, next) => { - const { row, col, unitId, subUnitId, worksheet } = context; - const arrayFormulaMatrixRange = this._formulaDataModel.getArrayFormulaRange(); + this._sheetInterceptorService.writeCellInterceptor.intercept(BEFORE_CELL_EDIT, { + handler: (value, context, next) => { + const { row, col, unitId, subUnitId, worksheet } = context; + const arrayFormulaMatrixRange = this._formulaDataModel.getArrayFormulaRange(); - const arrayFormulaMatrixCell = this._formulaDataModel.getArrayFormulaCellData(); + const arrayFormulaMatrixCell = this._formulaDataModel.getArrayFormulaCellData(); - this._removeArrayFormulaRangeShape(); + this._removeArrayFormulaRangeShape(); - if (value == null) { - return next(value); - } + if (value == null) { + return next(value); + } - let cellInfo: Nullable = null; + let cellInfo: Nullable = null; - const formulaString = this._formulaDataModel.getFormulaStringByCell(row, col, subUnitId, unitId); + const formulaString = this._formulaDataModel.getFormulaStringByCell(row, col, subUnitId, unitId); - if (formulaString !== null) { - cellInfo = { f: formulaString }; - } + if (formulaString !== null) { + cellInfo = { f: formulaString }; + } /** * If the display conditions for the array formula are not met, return the range directly. */ - if ( - value.v != null && + if ( + value.v != null && value.v !== '' && arrayFormulaMatrixCell[unitId]?.[subUnitId]?.[row]?.[col] == null - ) { - if (cellInfo) { - return { ...value, ...cellInfo }; - } - - return next(value); - } - - /** - * Mark the array formula for special display in subsequent processing - */ - const matrixRange = arrayFormulaMatrixRange?.[unitId]?.[subUnitId]; - if (matrixRange != null) { - // For cells other than the upper left corner, the cellInfo information will be updated - cellInfo = this._displayArrayFormulaRangeShape(matrixRange, row, col, unitId, subUnitId, worksheet, cellInfo); - } - + ) { if (cellInfo) { return { ...value, ...cellInfo }; } return next(value); - }, - } - ) + } + + /** + * Mark the array formula for special display in subsequent processing + */ + const matrixRange = arrayFormulaMatrixRange?.[unitId]?.[subUnitId]; + if (matrixRange != null) { + // For cells other than the upper left corner, the cellInfo information will be updated + cellInfo = this._displayArrayFormulaRangeShape(matrixRange, row, col, unitId, subUnitId, worksheet, cellInfo); + } + + if (cellInfo) { + return { ...value, ...cellInfo }; + } + + return next(value); + }, + }) ) ); } diff --git a/packages/sheets-formula-ui/src/locale/function-list/date/zh-TW.ts b/packages/sheets-formula-ui/src/locale/function-list/date/zh-TW.ts index 78c426e02d..79bfee2904 100644 --- a/packages/sheets-formula-ui/src/locale/function-list/date/zh-TW.ts +++ b/packages/sheets-formula-ui/src/locale/function-list/date/zh-TW.ts @@ -305,7 +305,8 @@ export default { }, WEEKDAY: { description: '將序號轉換為星期日期', - abstract: '將序號轉換為星期日期', links: [ + abstract: '將序號轉換為星期日期', + links: [ { title: '教導', url: 'https://support.microsoft.com/zh-tw/office/weekday-%E5%87%BD%E6%95%B0-60e44483-2ed1-439f-8bd0-e404c190949a', diff --git a/packages/sheets-formula-ui/src/locale/function-list/information/zh-TW.ts b/packages/sheets-formula-ui/src/locale/function-list/information/zh-TW.ts index 1e20e64d08..76c33d1463 100644 --- a/packages/sheets-formula-ui/src/locale/function-list/information/zh-TW.ts +++ b/packages/sheets-formula-ui/src/locale/function-list/information/zh-TW.ts @@ -197,7 +197,8 @@ export default { { title: '教導', url: 'https://support.microsoft.com/zh-tw/office/is-%E5%87%BD%E6%95%B0-0f2d7971-6019-40a0-a171-f2d869135665', - }], + }, + ], functionParameter: { value: { name: '值', detail: '指的是要測試的值。參數值可以是空白(空白儲存格)、錯誤值、邏輯值、文字、數字、參考值,或引用要測試的以上任意值的名稱。' }, }, diff --git a/packages/sheets-formula-ui/src/locale/function-list/statistical/zh-TW.ts b/packages/sheets-formula-ui/src/locale/function-list/statistical/zh-TW.ts index 12fec11d77..4fb54bd077 100644 --- a/packages/sheets-formula-ui/src/locale/function-list/statistical/zh-TW.ts +++ b/packages/sheets-formula-ui/src/locale/function-list/statistical/zh-TW.ts @@ -327,7 +327,8 @@ export default { value1: { name: '值 1', detail: '要計算其中數字的數量的第一項、單元格引用或區域。 ', - }, value2: { + }, + value2: { name: '值 2', detail: '要計算其中數字的個數的其他項目、儲存格參考或區域,最多可包含 255 個。 ', }, diff --git a/packages/sheets-formula-ui/src/locale/function-list/text/zh-TW.ts b/packages/sheets-formula-ui/src/locale/function-list/text/zh-TW.ts index 469a1ef875..4de112f76c 100644 --- a/packages/sheets-formula-ui/src/locale/function-list/text/zh-TW.ts +++ b/packages/sheets-formula-ui/src/locale/function-list/text/zh-TW.ts @@ -297,7 +297,8 @@ export default { { title: '教導', url: 'https://support.microsoft.com/zh-tw/office/mid-midb-%E5%87%BD%E6%95%B0-d5f9e25c-d7d6-472e-b568-4ecb12433028', - }], + }, + ], functionParameter: { text: { name: '文字', detail: '包含想擷取之字元的文字字串。' }, startNum: { name: '開始位置', detail: '要在文字中擷取之第一個字元的位置。' }, diff --git a/packages/sheets-formula/package.json b/packages/sheets-formula/package.json index 9d0461d865..d2986bb126 100644 --- a/packages/sheets-formula/package.json +++ b/packages/sheets-formula/package.json @@ -81,7 +81,7 @@ "@univerjs-infra/shared": "workspace:*", "@univerjs/docs": "workspace:*", "rxjs": "^7.8.1", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/sheets-formula/src/controllers/update-formula.controller.ts b/packages/sheets-formula/src/controllers/update-formula.controller.ts index b79a115cc6..dfe782f2e1 100644 --- a/packages/sheets-formula/src/controllers/update-formula.controller.ts +++ b/packages/sheets-formula/src/controllers/update-formula.controller.ts @@ -44,19 +44,7 @@ import { UniverInstanceType, } from '@univerjs/core'; -import { deserializeRangeWithSheetWithCache, - ErrorType, - FormulaDataModel, - generateStringWithSequence, - IDefinedNamesService, - initSheetFormulaData, - LexerTreeBuilder, - sequenceNodeType, - serializeRangeToRefString, - SetArrayFormulaDataMutation, - SetFormulaCalculationStartMutation, - SetFormulaDataMutation, -} from '@univerjs/engine-formula'; +import { deserializeRangeWithSheetWithCache, ErrorType, FormulaDataModel, generateStringWithSequence, IDefinedNamesService, initSheetFormulaData, LexerTreeBuilder, sequenceNodeType, serializeRangeToRefString, SetArrayFormulaDataMutation, SetFormulaCalculationStartMutation, SetFormulaDataMutation } from '@univerjs/engine-formula'; import { ClearSelectionFormatCommand, InsertSheetMutation, diff --git a/packages/sheets-formula/src/controllers/utils/ref-range-formula.ts b/packages/sheets-formula/src/controllers/utils/ref-range-formula.ts index 7105696056..9dfde64493 100644 --- a/packages/sheets-formula/src/controllers/utils/ref-range-formula.ts +++ b/packages/sheets-formula/src/controllers/utils/ref-range-formula.ts @@ -15,9 +15,10 @@ */ import type { ICellData, IMutationInfo, IObjectMatrixPrimitiveType, IRange, Nullable } from '@univerjs/core'; +import type { IFormulaData, IFormulaDataItem, IRangeChange, ISequenceNode } from '@univerjs/engine-formula'; import type { ISetRangeValuesMutationParams } from '@univerjs/sheets'; import { cellToRange, Direction, isFormulaId, isFormulaString, ObjectMatrix, Rectangle, Tools } from '@univerjs/core'; -import { deserializeRangeWithSheetWithCache, type IFormulaData, type IFormulaDataItem, type IRangeChange, type ISequenceNode, sequenceNodeType, serializeRangeToRefString } from '@univerjs/engine-formula'; +import { deserializeRangeWithSheetWithCache, sequenceNodeType, serializeRangeToRefString } from '@univerjs/engine-formula'; import { EffectRefRangId, handleDeleteRangeMoveLeft, handleDeleteRangeMoveUp, handleInsertCol, handleInsertRangeMoveDown, handleInsertRangeMoveRight, handleInsertRow, handleIRemoveCol, handleIRemoveRow, handleMoveCols, handleMoveRange, handleMoveRows, runRefRangeMutations, SetRangeValuesMutation } from '@univerjs/sheets'; import { checkFormulaDataNull } from './offset-formula-data'; @@ -58,9 +59,7 @@ const formulaReferenceSheetList = [ FormulaReferenceMoveType.RemoveDefinedName, ]; -export function getFormulaReferenceMoveUndoRedo(oldFormulaData: IFormulaData, - newFormulaData: IFormulaData, - formulaReferenceMoveParam: IFormulaReferenceMoveParam) { +export function getFormulaReferenceMoveUndoRedo(oldFormulaData: IFormulaData, newFormulaData: IFormulaData, formulaReferenceMoveParam: IFormulaReferenceMoveParam) { const { type } = formulaReferenceMoveParam; if (formulaReferenceSheetList.includes(type)) { @@ -70,8 +69,7 @@ export function getFormulaReferenceMoveUndoRedo(oldFormulaData: IFormulaData, } } -export function getFormulaReferenceSheet(oldFormulaData: IFormulaData, - newFormulaData: IFormulaData) { +export function getFormulaReferenceSheet(oldFormulaData: IFormulaData, newFormulaData: IFormulaData) { const undos: IMutationInfo[] = []; const redos: IMutationInfo[] = []; @@ -145,9 +143,7 @@ export function getFormulaReferenceSheet(oldFormulaData: IFormulaData, }; } -export function getFormulaReferenceRange(oldFormulaData: IFormulaData, - newFormulaData: IFormulaData, - formulaReferenceMoveParam: IFormulaReferenceMoveParam) { +export function getFormulaReferenceRange(oldFormulaData: IFormulaData, newFormulaData: IFormulaData, formulaReferenceMoveParam: IFormulaReferenceMoveParam) { const { redoFormulaData, undoFormulaData } = refRangeFormula(oldFormulaData, newFormulaData, formulaReferenceMoveParam); // If the formula data is the same, no operation is required @@ -208,9 +204,7 @@ export function getFormulaReferenceRange(oldFormulaData: IFormulaData, * @param formulaReferenceMoveParam * @returns */ -export function refRangeFormula(oldFormulaData: IFormulaData, - newFormulaData: IFormulaData, - formulaReferenceMoveParam: IFormulaReferenceMoveParam) { +export function refRangeFormula(oldFormulaData: IFormulaData, newFormulaData: IFormulaData, formulaReferenceMoveParam: IFormulaReferenceMoveParam) { const redoFormulaData: Record>>> = {}; const undoFormulaData: Record>>> = {}; diff --git a/packages/sheets-formula/src/services/register-other-formula.service.ts b/packages/sheets-formula/src/services/register-other-formula.service.ts index 00adaf6b12..443ae3c0bd 100644 --- a/packages/sheets-formula/src/services/register-other-formula.service.ts +++ b/packages/sheets-formula/src/services/register-other-formula.service.ts @@ -113,7 +113,8 @@ export class RegisterOtherFormulaService extends Disposable { this._commandService.executeCommand(SetOtherFormulaMutation.id, params).then(() => { this._commandService.executeCommand( OtherFormulaMarkDirty.id, - { [unitId]: { [subUnitId]: { [formulaId]: true } } }); + { [unitId]: { [subUnitId]: { [formulaId]: true } } } + ); }); }; diff --git a/packages/sheets-graphics/package.json b/packages/sheets-graphics/package.json index 51952a73ba..99b8e97bd3 100644 --- a/packages/sheets-graphics/package.json +++ b/packages/sheets-graphics/package.json @@ -61,7 +61,7 @@ }, "devDependencies": { "@univerjs-infra/shared": "workspace:*", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/sheets-hyper-link-ui/package.json b/packages/sheets-hyper-link-ui/package.json index d82e84aafd..d0691947ad 100644 --- a/packages/sheets-hyper-link-ui/package.json +++ b/packages/sheets-hyper-link-ui/package.json @@ -94,7 +94,7 @@ "react": "18.3.1", "rxjs": "^7.8.1", "tailwindcss": "^3.4.17", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/sheets-hyper-link/package.json b/packages/sheets-hyper-link/package.json index 4da25c1da4..7b50f74848 100644 --- a/packages/sheets-hyper-link/package.json +++ b/packages/sheets-hyper-link/package.json @@ -74,7 +74,7 @@ "devDependencies": { "@univerjs-infra/shared": "workspace:*", "rxjs": "^7.8.1", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/sheets-hyper-link/src/controllers/ref-range.controller.ts b/packages/sheets-hyper-link/src/controllers/ref-range.controller.ts index e8993290ba..e1d81c09f1 100644 --- a/packages/sheets-hyper-link/src/controllers/ref-range.controller.ts +++ b/packages/sheets-hyper-link/src/controllers/ref-range.controller.ts @@ -133,12 +133,10 @@ export class SheetsHyperLinkRefRangeController extends Disposable { startRow: link.row, endRow: link.row, }; - this._watchDisposableMap.set(id, - this._refRangeService.watchRange(unitId, subUnitId, oldRange, (before, after) => { - const { redos } = this._handlePositionChange(unitId, subUnitId, link, after, true); - sequenceExecuteAsync(redos, this._commandService, { onlyLocal: true }); - }, true) - ); + this._watchDisposableMap.set(id, this._refRangeService.watchRange(unitId, subUnitId, oldRange, (before, after) => { + const { redos } = this._handlePositionChange(unitId, subUnitId, link, after, true); + sequenceExecuteAsync(redos, this._commandService, { onlyLocal: true }); + }, true)); } private _unregisterPosition(id: string) { diff --git a/packages/sheets-hyper-link/src/controllers/rich-text-ref-range.controller.ts b/packages/sheets-hyper-link/src/controllers/rich-text-ref-range.controller.ts index 343f996222..7573609935 100644 --- a/packages/sheets-hyper-link/src/controllers/rich-text-ref-range.controller.ts +++ b/packages/sheets-hyper-link/src/controllers/rich-text-ref-range.controller.ts @@ -139,7 +139,8 @@ export class SheetsHyperLinkRichTextRefRangeController extends Disposable { }, worksheet.getUnitId(), worksheet.getSheetId() - )); + ) + ); } } }); diff --git a/packages/sheets-numfmt-ui/package.json b/packages/sheets-numfmt-ui/package.json index 35015873e0..29ff9f9cbf 100644 --- a/packages/sheets-numfmt-ui/package.json +++ b/packages/sheets-numfmt-ui/package.json @@ -86,7 +86,7 @@ "react": "18.3.1", "rxjs": "^7.8.1", "tailwindcss": "^3.4.17", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/sheets-numfmt-ui/src/controllers/numfmt.editor.controller.ts b/packages/sheets-numfmt-ui/src/controllers/numfmt.editor.controller.ts index 032b0a0256..083e679beb 100644 --- a/packages/sheets-numfmt-ui/src/controllers/numfmt.editor.controller.ts +++ b/packages/sheets-numfmt-ui/src/controllers/numfmt.editor.controller.ts @@ -95,40 +95,38 @@ export class NumfmtEditorController extends Disposable { this.disposeWithMe( toDisposable( - this._sheetInterceptorService.writeCellInterceptor.intercept(BEFORE_CELL_EDIT, - { - handler: (value, context, next) => { - const row = context.row; - const col = context.col; - const numfmtCell = this._numfmtService.getValue( - context.unitId, - context.subUnitId, - row, - col - ); - if (numfmtCell) { - const type = getPatternType(numfmtCell.pattern); - switch (type) { - case 'scientific': - case 'currency': - case 'grouped': - case 'number': { - const cell = context.worksheet.getCellRaw(row, col); - return next && next(cell); - } - case 'percent': - case 'date': - case 'time': - case 'datetime': - default: { - return next && next(value); - } + this._sheetInterceptorService.writeCellInterceptor.intercept(BEFORE_CELL_EDIT, { + handler: (value, context, next) => { + const row = context.row; + const col = context.col; + const numfmtCell = this._numfmtService.getValue( + context.unitId, + context.subUnitId, + row, + col + ); + if (numfmtCell) { + const type = getPatternType(numfmtCell.pattern); + switch (type) { + case 'scientific': + case 'currency': + case 'grouped': + case 'number': { + const cell = context.worksheet.getCellRaw(row, col); + return next && next(cell); + } + case 'percent': + case 'date': + case 'time': + case 'datetime': + default: { + return next && next(value); } } - return next(value); - }, - } - ) + } + return next(value); + }, + }) ) ); } @@ -142,21 +140,20 @@ export class NumfmtEditorController extends Disposable { private _initInterceptorEditorEnd() { this.disposeWithMe( toDisposable( - this._sheetInterceptorService.writeCellInterceptor.intercept(AFTER_CELL_EDIT, - { + this._sheetInterceptorService.writeCellInterceptor.intercept(AFTER_CELL_EDIT, { // eslint-disable-next-line complexity - handler: (value, context, next) => { + handler: (value, context, next) => { // clear the effect - this._collectEffectMutation.clean(); - const currentNumfmtValue = this._numfmtService.getValue( - context.unitId, - context.subUnitId, - context.row, - context.col - ); - const currentNumfmtType = (currentNumfmtValue && getPatternType(currentNumfmtValue.pattern)) ?? ''; - const clean = () => { - currentNumfmtValue && + this._collectEffectMutation.clean(); + const currentNumfmtValue = this._numfmtService.getValue( + context.unitId, + context.subUnitId, + context.row, + context.col + ); + const currentNumfmtType = (currentNumfmtValue && getPatternType(currentNumfmtValue.pattern)) ?? ''; + const clean = () => { + currentNumfmtValue && this._collectEffectMutation.add( context.unitId, context.subUnitId, @@ -164,54 +161,53 @@ export class NumfmtEditorController extends Disposable { context.col, null ); - }; - if (!value?.v && !value?.p) { - return next(value); - } + }; + if (!value?.v && !value?.p) { + return next(value); + } // if the cell is text format or force string, do not convert the value - if (isTextFormat(currentNumfmtValue?.pattern) || value.t === CellValueType.FORCE_STRING) { - return next(value); - } - - const body = value.p?.body; - const content = value?.p?.body?.dataStream ? value.p.body.dataStream.replace(/\r\n$/, '') : String(value.v); - const numfmtInfo = numfmt.parseDate(content) || numfmt.parseTime(content) || numfmt.parseNumber(content); - - if (body) { - if (!canConvertRichTextToNumfmt(body)) { - return next(value); - } else { - const { dataStream } = body; - const dataStreamWithoutEnd = dataStream.replace(/\r\n$/, ''); - const num = Number(dataStreamWithoutEnd); - if (Number.isNaN(num) && !numfmtInfo) { - return next(value); - } - } - } - - if (numfmtInfo) { - if (numfmtInfo.z) { - this._collectEffectMutation.add( - context.unitId, - context.subUnitId, - context.row, - context.col, - { - pattern: numfmtInfo.z, - } - ); - } - const v = Number(numfmtInfo.v); - return next({ ...value, p: undefined, v, t: CellValueType.NUMBER }); - } else if (['date', 'time', 'datetime', 'percent'].includes(currentNumfmtType) || !isNumeric(content)) { - clean(); - } + if (isTextFormat(currentNumfmtValue?.pattern) || value.t === CellValueType.FORCE_STRING) { return next(value); - }, - } - ) + } + + const body = value.p?.body; + const content = value?.p?.body?.dataStream ? value.p.body.dataStream.replace(/\r\n$/, '') : String(value.v); + const numfmtInfo = numfmt.parseDate(content) || numfmt.parseTime(content) || numfmt.parseNumber(content); + + if (body) { + if (!canConvertRichTextToNumfmt(body)) { + return next(value); + } else { + const { dataStream } = body; + const dataStreamWithoutEnd = dataStream.replace(/\r\n$/, ''); + const num = Number(dataStreamWithoutEnd); + if (Number.isNaN(num) && !numfmtInfo) { + return next(value); + } + } + } + + if (numfmtInfo) { + if (numfmtInfo.z) { + this._collectEffectMutation.add( + context.unitId, + context.subUnitId, + context.row, + context.col, + { + pattern: numfmtInfo.z, + } + ); + } + const v = Number(numfmtInfo.v); + return next({ ...value, p: undefined, v, t: CellValueType.NUMBER }); + } else if (['date', 'time', 'datetime', 'percent'].includes(currentNumfmtType) || !isNumeric(content)) { + clean(); + } + return next(value); + }, + }) ) ); } diff --git a/packages/sheets-numfmt/package.json b/packages/sheets-numfmt/package.json index 368f714f9f..c4b22a99bf 100644 --- a/packages/sheets-numfmt/package.json +++ b/packages/sheets-numfmt/package.json @@ -75,7 +75,7 @@ "devDependencies": { "@univerjs-infra/shared": "workspace:*", "rxjs": "^7.8.1", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/sheets-numfmt/src/base/const/currency-symbols.ts b/packages/sheets-numfmt/src/base/const/currency-symbols.ts index 50b8ed70ea..7d9cb516f9 100644 --- a/packages/sheets-numfmt/src/base/const/currency-symbols.ts +++ b/packages/sheets-numfmt/src/base/const/currency-symbols.ts @@ -55,8 +55,24 @@ export const countryCurrencyMap = { KR: '₩', // South Korean Won RU: '₽', // Russian Ruble // Euro countries - AT: '€', BE: '€', CY: '€', EE: '€', FI: '€', FR: '€', - DE: '€', GR: '€', IE: '€', IT: '€', LV: '€', LT: '€', - LU: '€', MT: '€', NL: '€', PT: '€', SK: '€', SI: '€', ES: '€', + AT: '€', + BE: '€', + CY: '€', + EE: '€', + FI: '€', + FR: '€', + DE: '€', + GR: '€', + IE: '€', + IT: '€', + LV: '€', + LT: '€', + LU: '€', + MT: '€', + NL: '€', + PT: '€', + SK: '€', + SI: '€', + ES: '€', // Add more mappings as needed }; diff --git a/packages/sheets-numfmt/src/commands/commands/set-numfmt.command.ts b/packages/sheets-numfmt/src/commands/commands/set-numfmt.command.ts index f473ca721b..e55ad077db 100644 --- a/packages/sheets-numfmt/src/commands/commands/set-numfmt.command.ts +++ b/packages/sheets-numfmt/src/commands/commands/set-numfmt.command.ts @@ -22,13 +22,7 @@ import type { ISetNumfmtMutationParams, ISetRangeValuesMutationParams, } from '@univerjs/sheets'; -import { CellValueType, - CommandType, - ICommandService, - IUndoRedoService, - IUniverInstanceService, - ObjectMatrix, - sequenceExecute } from '@univerjs/core'; +import { CellValueType, CommandType, ICommandService, IUndoRedoService, IUniverInstanceService, ObjectMatrix, sequenceExecute } from '@univerjs/core'; import { isTextFormat } from '@univerjs/engine-numfmt'; import { checkCellValueType, diff --git a/packages/sheets-sort-ui/package.json b/packages/sheets-sort-ui/package.json index 33cfa56159..f7ee5bda8c 100644 --- a/packages/sheets-sort-ui/package.json +++ b/packages/sheets-sort-ui/package.json @@ -82,7 +82,7 @@ "react": "18.3.1", "rxjs": "^7.8.1", "tailwindcss": "^3.4.17", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/sheets-sort-ui/src/controllers/menu.schema.ts b/packages/sheets-sort-ui/src/controllers/menu.schema.ts index 309637c3da..63e4ec2ab7 100644 --- a/packages/sheets-sort-ui/src/controllers/menu.schema.ts +++ b/packages/sheets-sort-ui/src/controllers/menu.schema.ts @@ -35,9 +35,11 @@ import { sortRangeAscExtCtxMenuFactory, sortRangeAscExtMenuFactory, sortRangeAscMenuFactory, - sortRangeCtxMenuFactory, sortRangeCustomCtxMenuFactory, + sortRangeCtxMenuFactory, + sortRangeCustomCtxMenuFactory, sortRangeCustomMenuFactory, - sortRangeDescCtxMenuFactory, sortRangeDescExtCtxMenuFactory, + sortRangeDescCtxMenuFactory, + sortRangeDescExtCtxMenuFactory, sortRangeDescExtMenuFactory, sortRangeDescMenuFactory, sortRangeMenuFactory, diff --git a/packages/sheets-sort-ui/src/services/sheets-sort-ui.service.tsx b/packages/sheets-sort-ui/src/services/sheets-sort-ui.service.tsx index 416661e3c0..916d47b735 100644 --- a/packages/sheets-sort-ui/src/services/sheets-sort-ui.service.tsx +++ b/packages/sheets-sort-ui/src/services/sheets-sort-ui.service.tsx @@ -68,7 +68,8 @@ export class SheetsSortUIService extends Disposable { @Inject(SheetsSelectionsService) private readonly _selectionManagerService: SheetsSelectionsService, @Inject(SheetsSortService) private readonly _sheetsSortService: SheetsSortService, @Inject(LocaleService) private readonly _localeService: LocaleService, - @ICommandService private readonly _commandService: ICommandService) { + @ICommandService private readonly _commandService: ICommandService + ) { super(); } @@ -128,16 +129,15 @@ export class SheetsSortUIService extends Disposable { const colTranslator = colIndexTranslator(this._localeService); - return Array.from({ length: range.endColumn - range.startColumn + 1 }, - (_, i) => { - const cellValue = worksheet.getCell(range.startRow, i + range.startColumn)?.v; - return { - index: i + range.startColumn, - label: hasTitle ? - `${cellValue ?? colTranslator(i + range.startColumn)}` : - colTranslator(i + range.startColumn), - }; - }); + return Array.from({ length: range.endColumn - range.startColumn + 1 }, (_, i) => { + const cellValue = worksheet.getCell(range.startRow, i + range.startColumn)?.v; + return { + index: i + range.startColumn, + label: hasTitle ? + `${cellValue ?? colTranslator(i + range.startColumn)}` : + colTranslator(i + range.startColumn), + }; + }); } setSelection(unitId: string, subUnitId: string, range: IRange) { diff --git a/packages/sheets-sort-ui/src/views/CustomSortPanel.tsx b/packages/sheets-sort-ui/src/views/CustomSortPanel.tsx index 41ad5d4c8f..653a47195f 100644 --- a/packages/sheets-sort-ui/src/views/CustomSortPanel.tsx +++ b/packages/sheets-sort-ui/src/views/CustomSortPanel.tsx @@ -71,7 +71,9 @@ export function CustomSortPanel() { newList.push({ type: SortType.ASC, colIndex: nextColIndex }); setList(newList); } - }, 200), [list, range]); + }, 200), + [list, range] + ); const apply = useCallback((orderRules: IOrderRule[], hasTitle: boolean) => { sheetsSortService.applySort({ range, orderRules, hasTitle }); diff --git a/packages/sheets-sort/package.json b/packages/sheets-sort/package.json index 2556379584..c42a57c3d8 100644 --- a/packages/sheets-sort/package.json +++ b/packages/sheets-sort/package.json @@ -74,7 +74,7 @@ }, "devDependencies": { "@univerjs-infra/shared": "workspace:*", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/sheets-thread-comment-ui/package.json b/packages/sheets-thread-comment-ui/package.json index 0ac8d16cdc..aae006fb9b 100644 --- a/packages/sheets-thread-comment-ui/package.json +++ b/packages/sheets-thread-comment-ui/package.json @@ -83,7 +83,7 @@ "react": "18.3.1", "rxjs": "^7.8.1", "tailwindcss": "^3.4.17", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/sheets-thread-comment/package.json b/packages/sheets-thread-comment/package.json index a1b031054a..419bf35ff2 100644 --- a/packages/sheets-thread-comment/package.json +++ b/packages/sheets-thread-comment/package.json @@ -73,7 +73,7 @@ "devDependencies": { "@univerjs-infra/shared": "workspace:*", "rxjs": "^7.8.1", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/sheets-ui/package.json b/packages/sheets-ui/package.json index 3e618084f4..24445b172c 100644 --- a/packages/sheets-ui/package.json +++ b/packages/sheets-ui/package.json @@ -94,7 +94,7 @@ "react": "18.3.1", "rxjs": "^7.8.1", "tailwindcss": "^3.4.17", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/sheets-ui/src/commands/commands/__tests__/create-command-test-bed.ts b/packages/sheets-ui/src/commands/commands/__tests__/create-command-test-bed.ts index 62ebad91c2..1ebcb2f066 100644 --- a/packages/sheets-ui/src/commands/commands/__tests__/create-command-test-bed.ts +++ b/packages/sheets-ui/src/commands/commands/__tests__/create-command-test-bed.ts @@ -39,7 +39,11 @@ import { RangeProtectionRuleModel, SheetInterceptorService, - SheetsSelectionsService, WorkbookPermissionService, WorksheetPermissionService, WorksheetProtectionPointModel, WorksheetProtectionRuleModel, + SheetsSelectionsService, + WorkbookPermissionService, + WorksheetPermissionService, + WorksheetProtectionPointModel, + WorksheetProtectionRuleModel, } from '@univerjs/sheets'; import { BehaviorSubject } from 'rxjs'; import enUS from '../../../locale/en-US'; diff --git a/packages/sheets-ui/src/commands/commands/add-worksheet-merge.command.ts b/packages/sheets-ui/src/commands/commands/add-worksheet-merge.command.ts index eed7f95381..992d332cc6 100644 --- a/packages/sheets-ui/src/commands/commands/add-worksheet-merge.command.ts +++ b/packages/sheets-ui/src/commands/commands/add-worksheet-merge.command.ts @@ -36,7 +36,9 @@ import { AddWorksheetMergeMutation, getAddMergeMutationRangeByType, RemoveMergeUndoMutationFactory, - RemoveWorksheetMergeMutation, SheetInterceptorService, SheetsSelectionsService, + RemoveWorksheetMergeMutation, + SheetInterceptorService, + SheetsSelectionsService, } from '@univerjs/sheets'; import { IConfirmService } from '@univerjs/ui'; diff --git a/packages/sheets-ui/src/controllers/clipboard/clipboard.controller.ts b/packages/sheets-ui/src/controllers/clipboard/clipboard.controller.ts index bf246840cf..744f87e450 100644 --- a/packages/sheets-ui/src/controllers/clipboard/clipboard.controller.ts +++ b/packages/sheets-ui/src/controllers/clipboard/clipboard.controller.ts @@ -443,8 +443,10 @@ export class SheetClipboardController extends RxDisposable { unitId: unitId!, subUnitId: subUnitId!, ranges: [{ - startRow: range.rows[0], endRow: Math.min(range.rows[range.rows.length - 1], maxRow), - startColumn: range.cols[0], endColumn: range.cols[range.cols.length - 1], + startRow: range.rows[0], + endRow: Math.min(range.rows[range.rows.length - 1], maxRow), + startColumn: range.cols[0], + endColumn: range.cols[range.cols.length - 1], }], rowHeight, }; diff --git a/packages/sheets-ui/src/controllers/editor/editing.render-controller.ts b/packages/sheets-ui/src/controllers/editor/editing.render-controller.ts index 2f0527299f..1190c51828 100644 --- a/packages/sheets-ui/src/controllers/editor/editing.render-controller.ts +++ b/packages/sheets-ui/src/controllers/editor/editing.render-controller.ts @@ -23,7 +23,14 @@ import type { MutationsAffectRange, WorkbookSelectionModel } from '@univerjs/she import type { IEditorBridgeServiceVisibleParam } from '../../services/editor-bridge.service'; import { - CellValueType, DEFAULT_EMPTY_DOCUMENT_VALUE, Direction, Disposable, DisposableCollection, DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY, DOCS_NORMAL_EDITOR_UNIT_ID_KEY, EDITOR_ACTIVATED, + CellValueType, + DEFAULT_EMPTY_DOCUMENT_VALUE, + Direction, + Disposable, + DisposableCollection, + DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY, + DOCS_NORMAL_EDITOR_UNIT_ID_KEY, + EDITOR_ACTIVATED, FOCUSING_EDITOR_BUT_HIDDEN, FOCUSING_EDITOR_INPUT_FORMULA, FOCUSING_EDITOR_STANDALONE, diff --git a/packages/sheets-ui/src/controllers/format-painter/format-painter.controller.ts b/packages/sheets-ui/src/controllers/format-painter/format-painter.controller.ts index 1021f70051..ce5d2a0e4b 100644 --- a/packages/sheets-ui/src/controllers/format-painter/format-painter.controller.ts +++ b/packages/sheets-ui/src/controllers/format-painter/format-painter.controller.ts @@ -16,7 +16,6 @@ import type { ICellData, IMutationInfo, IRange, IStyleData, Workbook } from '@univerjs/core'; import type { IAddWorksheetMergeMutationParams, IRemoveWorksheetMergeMutationParams, ISetRangeValuesMutationParams } from '@univerjs/sheets'; - import type { IFormatPainterHook, ISelectionFormatInfo } from '../../services/format-painter/format-painter.service'; import { Disposable, @@ -29,8 +28,18 @@ import { UniverInstanceType, } from '@univerjs/core'; import { IRenderManagerService } from '@univerjs/engine-render'; -import { AddMergeUndoMutationFactory, AddWorksheetMergeMutation, getAddMergeMutationRangeByType, RemoveMergeUndoMutationFactory, RemoveWorksheetMergeMutation, SetRangeValuesCommand, SetRangeValuesMutation, SetRangeValuesUndoMutationFactory, SheetInterceptorService, SheetsSelectionsService } from '@univerjs/sheets'; - +import { + AddMergeUndoMutationFactory, + AddWorksheetMergeMutation, + getAddMergeMutationRangeByType, + RemoveMergeUndoMutationFactory, + RemoveWorksheetMergeMutation, + SetRangeValuesCommand, + SetRangeValuesMutation, + SetRangeValuesUndoMutationFactory, + SheetInterceptorService, + SheetsSelectionsService, +} from '@univerjs/sheets'; import { checkCellContentInRanges, getClearContentMutationParamsForRanges } from '../../common/utils'; import { FormatPainterStatus, IFormatPainterService } from '../../services/format-painter/format-painter.service'; @@ -126,8 +135,7 @@ export class FormatPainterController extends Disposable { } : originRange; const styleValues: ICellData[][] = Array.from({ length: range.endRow - range.startRow + 1 }, () => - Array.from({ length: range.endColumn - range.startColumn + 1 }, () => ({})) - ); + Array.from({ length: range.endColumn - range.startColumn + 1 }, () => ({}))); const mergeRanges: IRange[] = []; styleValues.forEach((row, rowIndex) => { diff --git a/packages/sheets-ui/src/controllers/menu.schema.ts b/packages/sheets-ui/src/controllers/menu.schema.ts index 1fda1aff56..6a2c404364 100644 --- a/packages/sheets-ui/src/controllers/menu.schema.ts +++ b/packages/sheets-ui/src/controllers/menu.schema.ts @@ -23,7 +23,8 @@ import { CancelFrozenCommand, ClearSelectionAllCommand, ClearSelectionContentCommand, - ClearSelectionFormatCommand, CopySheetCommand, + ClearSelectionFormatCommand, + CopySheetCommand, InsertColAfterCommand, InsertColBeforeCommand, InsertRowAfterCommand, @@ -37,10 +38,12 @@ import { SetHorizontalTextAlignCommand, SetRowHeightCommand, SetSelectedColsVisibleCommand, - SetSelectedRowsVisibleCommand, SetTabColorCommand, + SetSelectedRowsVisibleCommand, + SetTabColorCommand, SetTextRotationCommand, SetTextWrapCommand, - SetVerticalTextAlignCommand, SetWorksheetHideCommand, + SetVerticalTextAlignCommand, + SetWorksheetHideCommand, SetWorksheetRowIsAutoHeightCommand, ToggleGridlinesCommand, } from '@univerjs/sheets'; @@ -103,7 +106,8 @@ import { InsertRangeMoveRightMenuItemFactory, InsertRowAfterMenuItemFactory, InsertRowBeforeMenuItemFactory, - ROW_INSERT_MENU_ID, RowInsertMenuItemFactory, + ROW_INSERT_MENU_ID, + RowInsertMenuItemFactory, } from './menu/insert.menu'; import { BackgroundColorSelectorMenuItemFactory, diff --git a/packages/sheets-ui/src/controllers/menu/__tests__/create-menu-test-bed.ts b/packages/sheets-ui/src/controllers/menu/__tests__/create-menu-test-bed.ts index 7f591c61c1..859cb2623e 100644 --- a/packages/sheets-ui/src/controllers/menu/__tests__/create-menu-test-bed.ts +++ b/packages/sheets-ui/src/controllers/menu/__tests__/create-menu-test-bed.ts @@ -17,13 +17,7 @@ import type { IWorkbookData } from '@univerjs/core'; import { Inject, Injector, LocaleType, Plugin, Univer, UniverInstanceType } from '@univerjs/core'; import { IRenderManagerService, RenderManagerService } from '@univerjs/engine-render'; -import { RangeProtectionCache, RangeProtectionRefRangeService, RangeProtectionRenderModel, RangeProtectionRuleModel, RangeProtectionService, RefRangeService, SheetInterceptorService, - SheetsSelectionsService, - WorkbookPermissionService, - WorksheetPermissionService, - WorksheetProtectionPointModel, - WorksheetProtectionRuleModel, -} from '@univerjs/sheets'; +import { RangeProtectionCache, RangeProtectionRefRangeService, RangeProtectionRenderModel, RangeProtectionRuleModel, RangeProtectionService, RefRangeService, SheetInterceptorService, SheetsSelectionsService, WorkbookPermissionService, WorksheetPermissionService, WorksheetProtectionPointModel, WorksheetProtectionRuleModel } from '@univerjs/sheets'; import { IMenuManagerService, IPlatformService, IShortcutService, MenuManagerService, PlatformService, ShortcutService } from '@univerjs/ui'; const TEST_WORKBOOK_DATA_DEMO: IWorkbookData = { diff --git a/packages/sheets-ui/src/controllers/menu/__tests__/menu.spec.ts b/packages/sheets-ui/src/controllers/menu/__tests__/menu.spec.ts index 292cfe4f8d..984cac5668 100644 --- a/packages/sheets-ui/src/controllers/menu/__tests__/menu.spec.ts +++ b/packages/sheets-ui/src/controllers/menu/__tests__/menu.spec.ts @@ -19,7 +19,8 @@ import { DisposableCollection, ICommandService, Injector, - RANGE_TYPE } from '@univerjs/core'; + RANGE_TYPE, +} from '@univerjs/core'; import { SetBoldCommand, SetRangeValuesMutation, diff --git a/packages/sheets-ui/src/controllers/menu/sheet.menu.ts b/packages/sheets-ui/src/controllers/menu/sheet.menu.ts index 322bb151e6..9c555521aa 100644 --- a/packages/sheets-ui/src/controllers/menu/sheet.menu.ts +++ b/packages/sheets-ui/src/controllers/menu/sheet.menu.ts @@ -225,7 +225,8 @@ export function ShowMenuItemFactory(accessor: IAccessor): IMenuButtonItem { return disposable.dispose; }).pipe( combineLatestWith(getWorkbookPermissionDisable$(accessor, [WorkbookEditablePermission, WorkbookHideSheetPermission])), - map(([defaultDisabled, permissionDisabled]) => defaultDisabled || permissionDisabled)), + map(([defaultDisabled, permissionDisabled]) => defaultDisabled || permissionDisabled) + ), hidden$: getMenuHiddenObservable(accessor, UniverInstanceType.UNIVER_SHEET), }; } diff --git a/packages/sheets-ui/src/controllers/render-controllers/format-painter.render-controller.ts b/packages/sheets-ui/src/controllers/render-controllers/format-painter.render-controller.ts index 2628a736fd..458a997ac6 100644 --- a/packages/sheets-ui/src/controllers/render-controllers/format-painter.render-controller.ts +++ b/packages/sheets-ui/src/controllers/render-controllers/format-painter.render-controller.ts @@ -78,6 +78,7 @@ export class FormatPainterRenderController extends Disposable implements IRender } else { scene.setDefaultCursor(CURSOR_TYPE.DEFAULT); } - }))); + })) + ); } } diff --git a/packages/sheets-ui/src/controllers/render-controllers/freeze.render-controller.ts b/packages/sheets-ui/src/controllers/render-controllers/freeze.render-controller.ts index fadb5ced37..6496fb10dd 100644 --- a/packages/sheets-ui/src/controllers/render-controllers/freeze.render-controller.ts +++ b/packages/sheets-ui/src/controllers/render-controllers/freeze.render-controller.ts @@ -237,8 +237,10 @@ export class HeaderFreezeRenderController extends Disposable implements IRenderM const FREEZE_OFFSET = FREEZE_SIZE; this._rowFreezeHeaderRect = new Rect(FREEZE_ROW_HEADER_NAME, { - fill: this._freezeNormalHeaderColor, width: rowHeaderWidthAndMarginLeft, - height: FREEZE_SIZE, left: 0, + fill: this._freezeNormalHeaderColor, + width: rowHeaderWidthAndMarginLeft, + height: FREEZE_SIZE, + left: 0, top: startY - FREEZE_OFFSET, zIndex: 3, }); @@ -266,8 +268,12 @@ export class HeaderFreezeRenderController extends Disposable implements IRenderM const FREEZE_OFFSET = FREEZE_SIZE; this._columnFreezeHeaderRect = new Rect(FREEZE_COLUMN_HEADER_NAME, { - fill: this._freezeNormalHeaderColor, width: FREEZE_SIZE, height: columnHeaderHeightAndMarginTop, - left: startX - FREEZE_OFFSET, top: 0, zIndex: 3, + fill: this._freezeNormalHeaderColor, + width: FREEZE_SIZE, + height: columnHeaderHeightAndMarginTop, + left: startX - FREEZE_OFFSET, + top: 0, + zIndex: 3, }); let fill = this._freezeNormalHeaderColor; diff --git a/packages/sheets-ui/src/controllers/render-controllers/header-move.render-controller.ts b/packages/sheets-ui/src/controllers/render-controllers/header-move.render-controller.ts index 88a9084889..b366565f9a 100644 --- a/packages/sheets-ui/src/controllers/render-controllers/header-move.render-controller.ts +++ b/packages/sheets-ui/src/controllers/render-controllers/header-move.render-controller.ts @@ -23,10 +23,13 @@ import type { import type { IMouseEvent, IPointerEvent, IRenderContext, IRenderModule, SpreadsheetColumnHeader, SpreadsheetHeader } from '@univerjs/engine-render'; import type { IMoveColsCommandParams, IMoveRowsCommandParams, ISelectionWithStyle, WorkbookSelectionModel } from '@univerjs/sheets'; import { - createInterceptorKey, Disposable, ICommandService, + createInterceptorKey, + Disposable, + ICommandService, Inject, InterceptorManager, - RANGE_TYPE } from '@univerjs/core'; + RANGE_TYPE, +} from '@univerjs/core'; import { CURSOR_TYPE, Rect, diff --git a/packages/sheets-ui/src/controllers/render-controllers/header-resize.render-controller.ts b/packages/sheets-ui/src/controllers/render-controllers/header-resize.render-controller.ts index fcd03d6ca6..e82cf09d00 100644 --- a/packages/sheets-ui/src/controllers/render-controllers/header-resize.render-controller.ts +++ b/packages/sheets-ui/src/controllers/render-controllers/header-resize.render-controller.ts @@ -37,7 +37,9 @@ import { CURSOR_TYPE, Rect, SHEET_VIEWPORT_KEY, Vector2 } from '@univerjs/engine import { DeltaColumnWidthCommand, - DeltaRowHeightCommand, SetWorksheetRowIsAutoHeightCommand, SheetsSelectionsService, + DeltaRowHeightCommand, + SetWorksheetRowIsAutoHeightCommand, + SheetsSelectionsService, } from '@univerjs/sheets'; import { Subscription } from 'rxjs'; import { SetWorksheetColAutoWidthCommand } from '../../commands/commands/set-worksheet-auto-col-width.command'; @@ -517,7 +519,8 @@ export class HeaderResizeRenderController extends Disposable implements IRenderM } this._commandService.executeCommand( - SetWorksheetColAutoWidthCommand.id, { ranges } + SetWorksheetColAutoWidthCommand.id, + { ranges } ); this._columnResizeRect?.hide(); break; diff --git a/packages/sheets-ui/src/controllers/render-controllers/mobile/mobile-scroll.render-controller.ts b/packages/sheets-ui/src/controllers/render-controllers/mobile/mobile-scroll.render-controller.ts index 38025a5ddb..5d172cd696 100644 --- a/packages/sheets-ui/src/controllers/render-controllers/mobile/mobile-scroll.render-controller.ts +++ b/packages/sheets-ui/src/controllers/render-controllers/mobile/mobile-scroll.render-controller.ts @@ -229,7 +229,8 @@ export class MobileSheetsScrollRenderController extends Disposable implements IR offsetY: rowOffset, viewportScrollX, viewportScrollY, - scrollX, scrollY, + scrollX, + scrollY, }; // lastestScrollInfo derived from viewportScrollX, viewportScrollY from onScrollAfter$ this._scrollManagerService.setValidScrollStateToCurrSheet(scrollInfo); @@ -302,7 +303,8 @@ export class MobileSheetsScrollRenderController extends Disposable implements IR } this._updateSceneSize(param as unknown as ISheetSkeletonManagerParam); } - }))); + }) + )); } /** diff --git a/packages/sheets-ui/src/controllers/render-controllers/scroll.render-controller.ts b/packages/sheets-ui/src/controllers/render-controllers/scroll.render-controller.ts index 45210472d4..a0f3b03c59 100644 --- a/packages/sheets-ui/src/controllers/render-controllers/scroll.render-controller.ts +++ b/packages/sheets-ui/src/controllers/render-controllers/scroll.render-controller.ts @@ -30,7 +30,8 @@ import { IContextService, Inject, Injector, - RANGE_TYPE, toDisposable, + RANGE_TYPE, + toDisposable, Tools, } from '@univerjs/core'; import { IRenderManagerService, RENDER_CLASS_TYPE, SHEET_VIEWPORT_KEY } from '@univerjs/engine-render'; @@ -257,7 +258,8 @@ export class SheetsScrollRenderController extends Disposable implements IRenderM if (currScrollInfo) { this._updateViewportScroll(viewportScrollX, viewportScrollY); } - }))); + }) + )); } _updateViewportScroll(viewportScrollX: number = 0, viewportScrollY: number = 0) { diff --git a/packages/sheets-ui/src/controllers/utils/char-tools.ts b/packages/sheets-ui/src/controllers/utils/char-tools.ts index 0a38937778..69fa951f96 100644 --- a/packages/sheets-ui/src/controllers/utils/char-tools.ts +++ b/packages/sheets-ui/src/controllers/utils/char-tools.ts @@ -14,6 +14,7 @@ * limitations under the License. */ +/* eslint-disable antfu/consistent-list-newline */ import type { IFunctionService, ISequenceNode, LexerTreeBuilder } from '@univerjs/engine-formula'; import { LocaleType, numfmt } from '@univerjs/core'; import { matchToken, sequenceNodeType } from '@univerjs/engine-formula'; diff --git a/packages/sheets-ui/src/facade/__tests__/create-test-bed.ts b/packages/sheets-ui/src/facade/__tests__/create-test-bed.ts index f591207b94..edec761089 100644 --- a/packages/sheets-ui/src/facade/__tests__/create-test-bed.ts +++ b/packages/sheets-ui/src/facade/__tests__/create-test-bed.ts @@ -26,7 +26,8 @@ import { Plugin, ThemeService, Univer, - UniverInstanceType } from '@univerjs/core'; + UniverInstanceType, +} from '@univerjs/core'; import { FUniver } from '@univerjs/core/facade'; import { LexerTreeBuilder } from '@univerjs/engine-formula'; import { Engine, IRenderingEngine, IRenderManagerService, RenderManagerService } from '@univerjs/engine-render'; diff --git a/packages/sheets-ui/src/index.ts b/packages/sheets-ui/src/index.ts index 0f268f5707..34cc9c262f 100644 --- a/packages/sheets-ui/src/index.ts +++ b/packages/sheets-ui/src/index.ts @@ -109,7 +109,8 @@ export { SheetPasteColWidthCommand, SheetPasteCommand, SheetPasteFormatCommand, - SheetPasteShortKeyCommand, SheetPasteValueCommand, + SheetPasteShortKeyCommand, + SheetPasteValueCommand, } from './commands/commands/clipboard.command'; export { DeleteRangeMoveLeftConfirmCommand } from './commands/commands/delete-range-move-left-confirm.command'; export { DeleteRangeMoveUpConfirmCommand } from './commands/commands/delete-range-move-up-confirm.command'; @@ -146,7 +147,8 @@ export { type IScrollCommandParams, type IScrollToCellCommandParams, type ISetScrollRelativeCommandParams, - ResetScrollCommand, ScrollCommand, + ResetScrollCommand, + ScrollCommand, ScrollToCellCommand, SetScrollRelativeCommand, } from './commands/commands/set-scroll.command'; diff --git a/packages/sheets-ui/src/locale/vi-VN.ts b/packages/sheets-ui/src/locale/vi-VN.ts index 002edbd150..bb8b7a99fb 100644 --- a/packages/sheets-ui/src/locale/vi-VN.ts +++ b/packages/sheets-ui/src/locale/vi-VN.ts @@ -451,7 +451,8 @@ const locale: typeof zhCN = { copyErr: 'Phạm vi này đã được bảo vệ, hiện không có quyền sao chép. Nếu cần sao chép, vui lòng liên hệ với người tạo.', workbookCopyErr: 'Sổ làm việc này đã được bảo vệ, hiện không có quyền sao chép. Nếu cần sao chép, vui lòng liên hệ với người tạo.', setRowColStyleErr: 'Phạm vi này đã được bảo vệ, hiện không có quyền thiết lập kiểu hàng cột. Nếu cần thiết lập kiểu hàng cột, vui lòng liên hệ với người tạo.', - moveRowColErr: 'Phạm vi này đã được bảo vệ, hiện không có quyền di chuyển hàng cột. Nếu cần di chuyển hàng cột, vui lòng liên hệ với người tạo.', moveRangeErr: 'Phạm vi này đã được bảo vệ, hiện không có quyền di chuyển vùng chọn. Nếu cần di chuyển vùng chọn, vui lòng liên hệ với người tạo.', + moveRowColErr: 'Phạm vi này đã được bảo vệ, hiện không có quyền di chuyển hàng cột. Nếu cần di chuyển hàng cột, vui lòng liên hệ với người tạo.', + moveRangeErr: 'Phạm vi này đã được bảo vệ, hiện không có quyền di chuyển vùng chọn. Nếu cần di chuyển vùng chọn, vui lòng liên hệ với người tạo.', autoFillErr: 'Phạm vi này đã được bảo vệ, hiện không có quyền tự động điền. Nếu cần tự động điền, vui lòng liên hệ với người tạo.', filterErr: 'Phạm vi này đã được bảo vệ, hiện không có quyền lọc. Nếu cần lọc, vui lòng liên hệ với người tạo.', operatorSheetErr: 'Trang bảng này đã được bảo vệ, hiện không có quyền thao tác trên trang bảng. Nếu cần thao tác trên trang bảng, vui lòng liên hệ với người tạo.', diff --git a/packages/sheets-ui/src/services/auto-fill/auto-fill.service.ts b/packages/sheets-ui/src/services/auto-fill/auto-fill.service.ts index 5aae32e85a..2e2f71636f 100644 --- a/packages/sheets-ui/src/services/auto-fill/auto-fill.service.ts +++ b/packages/sheets-ui/src/services/auto-fill/auto-fill.service.ts @@ -19,19 +19,7 @@ import type { RenderManagerService } from '@univerjs/engine-render'; import type { ISetRangeValuesMutationParams, ISetWorksheetRowAutoHeightMutationParams } from '@univerjs/sheets'; import type { Observable } from 'rxjs'; import type { IAutoFillLocation, IAutoFillRule, ISheetAutoFillHook } from './type'; -import { createIdentifier, Direction, - Disposable, - ICommandService, - Inject, - Injector, - IUndoRedoService, - IUniverInstanceService, - ObjectMatrix, - RANGE_TYPE, - Rectangle, - toDisposable, - UniverInstanceType, -} from '@univerjs/core'; +import { createIdentifier, Direction, Disposable, ICommandService, Inject, Injector, IUndoRedoService, IUniverInstanceService, ObjectMatrix, RANGE_TYPE, Rectangle, toDisposable, UniverInstanceType } from '@univerjs/core'; import { IRenderManagerService } from '@univerjs/engine-render'; import { rangeToDiscreteRange, SetRangeValuesMutation, SetSelectionsOperation, SetWorksheetRowAutoHeightMutation, SetWorksheetRowAutoHeightMutationFactory, SheetsSelectionsService } from '@univerjs/sheets'; @@ -391,10 +379,7 @@ export class AutoFillService extends Disposable implements IAutoFillService { // eslint-disable-next-line max-lines-per-function fillData(applyType: APPLY_TYPE) { this.applyType = applyType; - const { source, target, - unitId = this._univerInstanceService.getCurrentUnitForType(UniverInstanceType.UNIVER_SHEET)!.getUnitId(), - subUnitId = this._univerInstanceService.getCurrentUnitForType(UniverInstanceType.UNIVER_SHEET)!.getActiveSheet()?.getSheetId(), - } = this.autoFillLocation || {}; + const { source, target, unitId = this._univerInstanceService.getCurrentUnitForType(UniverInstanceType.UNIVER_SHEET)!.getUnitId(), subUnitId = this._univerInstanceService.getCurrentUnitForType(UniverInstanceType.UNIVER_SHEET)!.getActiveSheet()?.getSheetId() } = this.autoFillLocation || {}; if (!source || !target || !unitId || !subUnitId) { return false; diff --git a/packages/sheets-ui/src/services/canvas-pop-manager.service.ts b/packages/sheets-ui/src/services/canvas-pop-manager.service.ts index 4da29ffe0c..135c040d19 100644 --- a/packages/sheets-ui/src/services/canvas-pop-manager.service.ts +++ b/packages/sheets-ui/src/services/canvas-pop-manager.service.ts @@ -527,10 +527,7 @@ export class SheetCanvasPopManagerService extends Disposable { return null; } - const { position, position$, disposable: positionObserverDisposable, updateRowCol, - topLeftPos$, - rightBottomPos$, - } = this._createRangePositionObserver(range, currentRender, skeleton, activeViewport); + const { position, position$, disposable: positionObserverDisposable, updateRowCol, topLeftPos$, rightBottomPos$ } = this._createRangePositionObserver(range, currentRender, skeleton, activeViewport); const { rects$, disposable: rectsObserverDisposable } = this._createHiddenRectObserver({ row: range.startRow, diff --git a/packages/sheets-ui/src/services/clipboard/__tests__/clipboard-paste-form-excel.spec.ts b/packages/sheets-ui/src/services/clipboard/__tests__/clipboard-paste-form-excel.spec.ts index ec417b864f..48e9ae9181 100644 --- a/packages/sheets-ui/src/services/clipboard/__tests__/clipboard-paste-form-excel.spec.ts +++ b/packages/sheets-ui/src/services/clipboard/__tests__/clipboard-paste-form-excel.spec.ts @@ -14,6 +14,7 @@ * limitations under the License. */ +import type { ICellData, Injector, IStyleData, Nullable, Univer } from '@univerjs/core'; import { ICommandService, IUniverInstanceService, LocaleType, RANGE_TYPE } from '@univerjs/core'; import { AddWorksheetMergeMutation, @@ -26,7 +27,6 @@ import { SheetsSelectionsService, } from '@univerjs/sheets'; import { afterEach, beforeEach, describe, expect, it } from 'vitest'; -import type { ICellData, Injector, IStyleData, Nullable, Univer } from '@univerjs/core'; import { SheetSkeletonManagerService } from '../../sheet-skeleton-manager.service'; import { ISheetClipboardService } from '../clipboard.service'; @@ -205,14 +205,21 @@ describe('Test clipboard', () => { expect(richTextStyle?.body?.paragraphs).toStrictEqual([{ startIndex: 6 }]); expect(richTextStyle?.body?.textRuns).toStrictEqual([ { - st: 1, ed: 4, ts: { + st: 1, + ed: 4, + ts: { cl: { rgb: 'rgb(218,233,248)' }, - ff: '等线', fs: 28, it: 1, bl: 1, + ff: '等线', + fs: 28, + it: 1, + bl: 1, }, }, { - ed: 6, st: 4, ts: { fs: 12, ff: '等线', cl: { rgb: 'rgb(0,0,0)' } }, + ed: 6, + st: 4, + ts: { fs: 12, ff: '等线', cl: { rgb: 'rgb(0,0,0)' } }, }, ]); }); diff --git a/packages/sheets-ui/src/services/clipboard/__tests__/clipboard-paste-from-google.spec.ts b/packages/sheets-ui/src/services/clipboard/__tests__/clipboard-paste-from-google.spec.ts index b4d1abea26..f55744f66f 100644 --- a/packages/sheets-ui/src/services/clipboard/__tests__/clipboard-paste-from-google.spec.ts +++ b/packages/sheets-ui/src/services/clipboard/__tests__/clipboard-paste-from-google.spec.ts @@ -14,6 +14,7 @@ * limitations under the License. */ +import type { ICellData, Injector, IStyleData, Nullable, Univer } from '@univerjs/core'; import { ICommandService, IUniverInstanceService, LocaleType, RANGE_TYPE } from '@univerjs/core'; import { AddWorksheetMergeMutation, @@ -26,7 +27,6 @@ import { SheetsSelectionsService, } from '@univerjs/sheets'; import { afterEach, beforeEach, describe, expect, it } from 'vitest'; -import type { ICellData, Injector, IStyleData, Nullable, Univer } from '@univerjs/core'; import { SheetSkeletonManagerService } from '../../sheet-skeleton-manager.service'; @@ -207,15 +207,21 @@ describe('Test clipboard', () => { expect(richTextStyle?.body?.textRuns).toStrictEqual([ { ed: 1, st: 0, ts: { fs: 10, ff: 'Arial' } }, { - st: 1, ed: 4, ts: { + st: 1, + ed: 4, + ts: { bl: 1, cl: { rgb: 'rgb(217,210,233)' }, - ff: 'Arial', fs: 18, it: 1, + ff: 'Arial', + fs: 18, + it: 1, }, }, { - ed: 6, st: 4, ts: { fs: 10, ff: 'Arial' }, + ed: 6, + st: 4, + ts: { fs: 10, ff: 'Arial' }, }, ]); }); diff --git a/packages/sheets-ui/src/services/clipboard/__tests__/utils.spec.ts b/packages/sheets-ui/src/services/clipboard/__tests__/utils.spec.ts index bce7995452..7454037979 100644 --- a/packages/sheets-ui/src/services/clipboard/__tests__/utils.spec.ts +++ b/packages/sheets-ui/src/services/clipboard/__tests__/utils.spec.ts @@ -153,12 +153,14 @@ describe('test "mergeSetRangeValues"', () => { { id: 'whatever', params: {} }, { id: SetRangeValuesMutation.id, params: { unitId: '1', subUnitId: '2', cellValue: { 1: { 2: { v: 'value' } } } } }, { id: SetRangeValuesMutation.id, params: { unitId: '1', subUnitId: '3', cellValue: { 1: { 2: { v: 'value' } } } } }, - { id: 'whatever', params: {} }]; + { id: 'whatever', params: {} }, + ]; expect(mergeSetRangeValues(mutations)).toStrictEqual([ { id: 'whatever', params: {} }, { id: SetRangeValuesMutation.id, params: { unitId: '1', subUnitId: '2', cellValue: { 1: { 2: { v: 'value' } } } } }, { id: SetRangeValuesMutation.id, params: { unitId: '1', subUnitId: '3', cellValue: { 1: { 2: { v: 'value' } } } } }, - { id: 'whatever', params: {} }]); + { id: 'whatever', params: {} }, + ]); }); it('part of setRangeValues mutations are applied in same worksheet, will merge these part', () => { const mutations: IMutationInfo[] = [ @@ -166,12 +168,14 @@ describe('test "mergeSetRangeValues"', () => { { id: SetRangeValuesMutation.id, params: { unitId: '1', subUnitId: '2', cellValue: { 1: { 2: { v: 'value' } } } } }, { id: SetRangeValuesMutation.id, params: { unitId: '1', subUnitId: '2', cellValue: { 1: { 3: { v: 'value' } } } } }, { id: SetRangeValuesMutation.id, params: { unitId: '1', subUnitId: '3', cellValue: { 1: { 2: { v: 'value' } } } } }, - { id: 'whatever', params: {} }]; + { id: 'whatever', params: {} }, + ]; expect(mergeSetRangeValues(mutations as IMutationInfo[])).toStrictEqual([ { id: 'whatever', params: {} }, { id: SetRangeValuesMutation.id, params: { unitId: '1', subUnitId: '2', cellValue: { 1: { 2: { v: 'value' }, 3: { v: 'value' } } } } }, { id: SetRangeValuesMutation.id, params: { unitId: '1', subUnitId: '3', cellValue: { 1: { 2: { v: 'value' } } } } }, - { id: 'whatever', params: {} }]); + { id: 'whatever', params: {} }, + ]); }); it('If some setRangeValues appear discontinuously, they will be merged separately.', () => { diff --git a/packages/sheets-ui/src/services/clipboard/clipboard.service.ts b/packages/sheets-ui/src/services/clipboard/clipboard.service.ts index d7a5b48507..3bed741851 100644 --- a/packages/sheets-ui/src/services/clipboard/clipboard.service.ts +++ b/packages/sheets-ui/src/services/clipboard/clipboard.service.ts @@ -16,10 +16,13 @@ import type { ICellData, - ICellDataWithSpanAndDisplay, IDisposable, + ICellDataWithSpanAndDisplay, + IDisposable, IMutationInfo, IRange, - Nullable, Workbook, Worksheet, + Nullable, + Workbook, + Worksheet, } from '@univerjs/core'; import type { ISetSelectionsOperationParams } from '@univerjs/sheets'; import type { Observable } from 'rxjs'; @@ -37,7 +40,11 @@ import type { } from './type'; import { CellModeEnum, - createIdentifier, Disposable, ErrorService, extractPureTextFromCell, ICommandService, + createIdentifier, + Disposable, + ErrorService, + extractPureTextFromCell, + ICommandService, ILogService, Inject, Injector, @@ -182,7 +189,8 @@ export class SheetClipboardService extends Disposable implements ISheetClipboard UniverInstanceType.UNIVER_SHEET, SheetSkeletonManagerService, this._univerInstanceService, - this._renderManagerService)?.getCurrentParam(), + this._renderManagerService + )?.getCurrentParam(), }); this._usmToHtml = new USMToHtmlService(); @@ -304,7 +312,8 @@ export class SheetClipboardService extends Disposable implements ISheetClipboard const file = new File( [imageBlob], `clipboard-image.${imageExtension}`, - { type: imageMimeType }); + { type: imageMimeType } + ); return this._pasteFiles([file], pasteType); } @@ -477,10 +486,7 @@ export class SheetClipboardService extends Disposable implements ISheetClipboard unitId: string; subUnitId: string; range: IDiscreteRange; - }) => undefined | ({ - undos: IMutationInfo[]; - redos: IMutationInfo[]; - })): Promise { + }) => undefined | ({ undos: IMutationInfo[]; redos: IMutationInfo[] })): Promise { const target = this._getPastingTarget(); if (!target.subUnitId || !target.selection) { return false; @@ -913,7 +919,9 @@ export class SheetClipboardService extends Disposable implements ISheetClipboard endRow, startColumn, endColumn, - }, primary, style: null, + }, + primary, + style: null, }], }; return { diff --git a/packages/sheets-ui/src/services/clipboard/html-to-usm/converter.ts b/packages/sheets-ui/src/services/clipboard/html-to-usm/converter.ts index 59e1f90fd0..bd5c007211 100644 --- a/packages/sheets-ui/src/services/clipboard/html-to-usm/converter.ts +++ b/packages/sheets-ui/src/services/clipboard/html-to-usm/converter.ts @@ -481,7 +481,8 @@ export class HtmlToUSMService { const p = documentModel?.getSnapshot(); const singleDataStream = `${newDocBody.dataStream}\r\n`; const documentData = { - ...p, ...{ + ...p, + ...{ body: { dataStream: singleDataStream, textRuns: newDocBody.textRuns, @@ -774,7 +775,8 @@ function setMergedCellStyle( rowIndex: number; colIndex: number; colSetValueIndex: number; - }) { + } +) { const { rowSpan, colSpan, rowIndex, colSetValueIndex } = indexParams; for (let i = rowIndex; i < rowIndex + rowSpan; i++) { diff --git a/packages/sheets-ui/src/services/editor-bridge.service.ts b/packages/sheets-ui/src/services/editor-bridge.service.ts index 6604909b66..f75eeda31e 100644 --- a/packages/sheets-ui/src/services/editor-bridge.service.ts +++ b/packages/sheets-ui/src/services/editor-bridge.service.ts @@ -372,7 +372,12 @@ export class EditorBridgeService extends Disposable implements IEditorBridgeServ const { centerAngle, vertexAngle } = convertTextRotation(textRotation); blankModel.documentModel!.documentStyle.renderConfig = { ...renderConfig, - verticalAlign, horizontalAlign, wrapStrategy, background: { rgb: fill }, centerAngle, vertexAngle, + verticalAlign, + horizontalAlign, + wrapStrategy, + background: { rgb: fill }, + centerAngle, + vertexAngle, }; } documentLayoutObject = blankModel; diff --git a/packages/sheets-ui/src/services/hover-manager.service.ts b/packages/sheets-ui/src/services/hover-manager.service.ts index 18769c36f2..21f18e10b2 100644 --- a/packages/sheets-ui/src/services/hover-manager.service.ts +++ b/packages/sheets-ui/src/services/hover-manager.service.ts @@ -352,7 +352,10 @@ export class HoverManagerService extends Disposable { if (activeCell && activeCell.location) { const { unitId, subUnitId, row, col } = getLocationBase(activeCell.location); this._currentPointerDownCell$.next({ - unitId, subUnitId, row, col, + unitId, + subUnitId, + row, + col, event, }); } diff --git a/packages/sheets-ui/src/services/selection/base-selection-render.service.ts b/packages/sheets-ui/src/services/selection/base-selection-render.service.ts index ad07dd91b6..6c529aa794 100644 --- a/packages/sheets-ui/src/services/selection/base-selection-render.service.ts +++ b/packages/sheets-ui/src/services/selection/base-selection-render.service.ts @@ -33,7 +33,12 @@ import type { IShortcutService } from '@univerjs/ui'; import type { Observable, Subscription } from 'rxjs'; import type { SheetSkeletonManagerService } from '../sheet-skeleton-manager.service'; import { - convertCellToRange, createIdentifier, Disposable, InterceptorManager, RANGE_TYPE, ThemeService, + convertCellToRange, + createIdentifier, + Disposable, + InterceptorManager, + RANGE_TYPE, + ThemeService, } from '@univerjs/core'; import { ScrollTimer, ScrollTimerType, SHEET_VIEWPORT_KEY, Vector2 } from '@univerjs/engine-render'; @@ -520,10 +525,7 @@ export class BaseSelectionRenderService extends Disposable implements ISheetSele if (!startViewport || !endViewport || !viewportMain) { return false; } - const crossableViewports = [SHEET_VIEWPORT_KEY.VIEW_MAIN, - SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP, - SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP, - SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT] as string[]; + const crossableViewports = [SHEET_VIEWPORT_KEY.VIEW_MAIN, SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP, SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP, SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT] as string[]; return crossableViewports.includes(startViewport.viewportKey) && crossableViewports.includes(endViewport.viewportKey); }; if (isCrossableViewports()) { diff --git a/packages/sheets-ui/src/services/selection/mobile-selection-shape.ts b/packages/sheets-ui/src/services/selection/mobile-selection-shape.ts index beda1d2f69..529e9cad8c 100644 --- a/packages/sheets-ui/src/services/selection/mobile-selection-shape.ts +++ b/packages/sheets-ui/src/services/selection/mobile-selection-shape.ts @@ -91,7 +91,8 @@ export class MobileSelectionControl extends SelectionControl { // put into scene const objs = [ - this._fillControlTopLeft, this._fillControlBottomRight, + this._fillControlTopLeft, + this._fillControlBottomRight, ] as BaseObject[]; // do not use this.model.rangeType, model has not been initialized yet diff --git a/packages/sheets-ui/src/services/selection/selection-control.ts b/packages/sheets-ui/src/services/selection/selection-control.ts index d7ccf6b86b..fa8b4e5ff6 100644 --- a/packages/sheets-ui/src/services/selection/selection-control.ts +++ b/packages/sheets-ui/src/services/selection/selection-control.ts @@ -230,9 +230,14 @@ export class SelectionControl extends Disposable { const shapes = [ this._autoFillControl, - this._leftBorder, this._rightBorder, this._topBorder, this._bottomBorder, - this._backgroundControlTop, this._backgroundControlMiddleLeft, - this._backgroundControlMiddleRight, this._backgroundControlBottom, + this._leftBorder, + this._rightBorder, + this._topBorder, + this._bottomBorder, + this._backgroundControlTop, + this._backgroundControlMiddleLeft, + this._backgroundControlMiddleRight, + this._backgroundControlBottom, this._dashedRect, ]; @@ -852,8 +857,11 @@ export class SelectionControl extends Disposable { const scale = this._getScale(); const { - stroke, rowHeaderFill = defaultStyle.rowHeaderFill!, rowHeaderStroke = defaultStyle.rowHeaderStroke!, - columnHeaderFill = defaultStyle.columnHeaderFill!, columnHeaderStroke = defaultStyle.columnHeaderStroke!, + stroke, + rowHeaderFill = defaultStyle.rowHeaderFill!, + rowHeaderStroke = defaultStyle.rowHeaderStroke!, + columnHeaderFill = defaultStyle.columnHeaderFill!, + columnHeaderStroke = defaultStyle.columnHeaderStroke!, } = style; let { diff --git a/packages/sheets-ui/src/views/auto-fill-popup-menu/AutoFillPopupMenu.tsx b/packages/sheets-ui/src/views/auto-fill-popup-menu/AutoFillPopupMenu.tsx index 700c06e8f7..20afb9a92f 100644 --- a/packages/sheets-ui/src/views/auto-fill-popup-menu/AutoFillPopupMenu.tsx +++ b/packages/sheets-ui/src/views/auto-fill-popup-menu/AutoFillPopupMenu.tsx @@ -95,7 +95,8 @@ export const AutoFillPopupMenu: React.FC<{}> = () => { if (skeleton) { forceUpdate(); } - })); + }) + ); return disposable?.dispose; }, [sheetSkeletonManagerService, forceUpdate]); diff --git a/packages/sheets-ui/src/views/defined-name/DefinedName.tsx b/packages/sheets-ui/src/views/defined-name/DefinedName.tsx index 7aca46941b..8320942c49 100644 --- a/packages/sheets-ui/src/views/defined-name/DefinedName.tsx +++ b/packages/sheets-ui/src/views/defined-name/DefinedName.tsx @@ -73,8 +73,7 @@ export function DefinedName({ disable }: { disable: boolean }) { univer-absolute univer-right-0 univer-top-0 univer-flex univer-h-full univer-cursor-pointer univer-items-center univer-justify-center univer-px-1 univer-transition-colors univer-duration-200 hover:univer-bg-gray-100 - `, - { + `, { 'univer-cursor-not-allowed univer-text-gray-300 hover:univer-bg-transparent': disable, })} > diff --git a/packages/sheets-ui/src/views/status-bar/StatusBar.tsx b/packages/sheets-ui/src/views/status-bar/StatusBar.tsx index 8a622d48bf..5e8781a650 100644 --- a/packages/sheets-ui/src/views/status-bar/StatusBar.tsx +++ b/packages/sheets-ui/src/views/status-bar/StatusBar.tsx @@ -56,19 +56,13 @@ export const StatusBar = () => { const [show, setShow] = useState(true); const filteredStatistics = useMemo(() => - statistics.filter((item) => item.show && !item.disable), - [statistics] - ); + statistics.filter((item) => item.show && !item.disable), [statistics]); const firstItem = useMemo(() => - filteredStatistics.find((item) => item.show && !item.disable), - [filteredStatistics] - ); + filteredStatistics.find((item) => item.show && !item.disable), [filteredStatistics]); const showList = useMemo(() => - isSingle && firstItem ? [firstItem] : filteredStatistics, - [isSingle, firstItem, filteredStatistics] - ); + isSingle && firstItem ? [firstItem] : filteredStatistics, [isSingle, firstItem, filteredStatistics]); const updateStatistics = useCallback((state: Nullable) => { const items = state?.values; @@ -179,9 +173,7 @@ export const StatusBar = () => { return renderContent; }; - const renderContent = useStatisticLayout(showList, - ROW_COUNT_THRESHOLD, - CopyableStatisticItem); + const renderContent = useStatisticLayout(showList, ROW_COUNT_THRESHOLD, CopyableStatisticItem); return ( show && ( diff --git a/packages/sheets-zen-editor/package.json b/packages/sheets-zen-editor/package.json index 15f2409624..3c263c7b57 100644 --- a/packages/sheets-zen-editor/package.json +++ b/packages/sheets-zen-editor/package.json @@ -91,7 +91,7 @@ "react": "18.3.1", "rxjs": "^7.8.1", "tailwindcss": "^3.4.17", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/sheets-zen-editor/src/views/zen-editor/ZenEditor.tsx b/packages/sheets-zen-editor/src/views/zen-editor/ZenEditor.tsx index 6e6d9f1752..9d5a07588d 100644 --- a/packages/sheets-zen-editor/src/views/zen-editor/ZenEditor.tsx +++ b/packages/sheets-zen-editor/src/views/zen-editor/ZenEditor.tsx @@ -84,8 +84,7 @@ export function ZenEditor() { initialSnapshot: INITIAL_SNAPSHOT, scrollBar: true, backScrollOffset: 100, - }, - editorDom); + }, editorDom); const resizeObserver = new ResizeObserver(() => { zenEditorService.setPosition(editorDom.getBoundingClientRect()); diff --git a/packages/sheets/package.json b/packages/sheets/package.json index df126873bb..668db3585a 100644 --- a/packages/sheets/package.json +++ b/packages/sheets/package.json @@ -82,7 +82,7 @@ "devDependencies": { "@univerjs-infra/shared": "workspace:*", "rxjs": "^7.8.1", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/sheets/src/basics/__tests__/utils.spec.ts b/packages/sheets/src/basics/__tests__/utils.spec.ts index ee29222c2b..2f092ec3e5 100644 --- a/packages/sheets/src/basics/__tests__/utils.spec.ts +++ b/packages/sheets/src/basics/__tests__/utils.spec.ts @@ -14,7 +14,8 @@ * limitations under the License. */ -import { cellToRange, type IRange } from '@univerjs/core'; +import type { IRange } from '@univerjs/core'; +import { cellToRange } from '@univerjs/core'; import { describe, expect, it } from 'vitest'; import { generateNullCell, generateNullCellStyle, generateNullCellValue } from '../utils'; @@ -47,12 +48,7 @@ describe('Test utils', () => { }, }, 1: { - 1: { v: null, - p: null, - f: null, - si: null, - custom: null, - }, + 1: { v: null, p: null, f: null, si: null, custom: null }, }, }); }); diff --git a/packages/sheets/src/commands/commands/__tests__/add-merge-command.spec.ts b/packages/sheets/src/commands/commands/__tests__/add-merge-command.spec.ts index cd3c00acfc..cb47e573c3 100644 --- a/packages/sheets/src/commands/commands/__tests__/add-merge-command.spec.ts +++ b/packages/sheets/src/commands/commands/__tests__/add-merge-command.spec.ts @@ -14,9 +14,9 @@ * limitations under the License. */ +import type { Injector, IWorkbookData } from '@univerjs/core'; import { ICommandService, IUniverInstanceService, LocaleService, LocaleType } from '@univerjs/core'; import { beforeEach, describe, expect, it } from 'vitest'; -import type { Injector, IWorkbookData } from '@univerjs/core'; import enUS from '../../../locale/en-US'; import zhCN from '../../../locale/zh-CN'; import { AddWorksheetMergeMutation } from '../../mutations/add-worksheet-merge.mutation'; @@ -152,7 +152,10 @@ describe('add-merge-command', () => { const mergeData = worksheet?.getConfig().mergeData; const { startRow, startColumn, endColumn, endRow } = mergeData![0]; expect({ - startRow, startColumn, endColumn, endRow, + startRow, + startColumn, + endColumn, + endRow, }).toEqual({ startRow: 0, startColumn: 0, diff --git a/packages/sheets/src/commands/commands/__tests__/set-range-values.command.spec.ts b/packages/sheets/src/commands/commands/__tests__/set-range-values.command.spec.ts index bd160ff140..d000ccf94b 100644 --- a/packages/sheets/src/commands/commands/__tests__/set-range-values.command.spec.ts +++ b/packages/sheets/src/commands/commands/__tests__/set-range-values.command.spec.ts @@ -142,10 +142,7 @@ describe('Test set range values commands', () => { endColumn: number ) => Nullable>>>; let getStyle: () => any; - let getStyles: (startRow: number, - startColumn: number, - endRow: number, - endColumn: number) => Nullable[][]>; + let getStyles: (startRow: number, startColumn: number, endRow: number, endColumn: number) => Nullable[][]>; beforeEach(() => { const testBed = createCommandTestBed(getTestWorkbookDataDemo()); @@ -192,10 +189,7 @@ describe('Test set range values commands', () => { } }; - getStyles = (startRow: number, - startColumn: number, - endRow: number, - endColumn: number): Nullable[][]> => { + getStyles = (startRow: number, startColumn: number, endRow: number, endColumn: number): Nullable[][]> => { const values = getValues(startRow, startColumn, endRow, endColumn); const styles = get(IUniverInstanceService).getUniverSheetInstance('test')?.getStyles(); diff --git a/packages/sheets/src/commands/commands/remove-row-col.command.ts b/packages/sheets/src/commands/commands/remove-row-col.command.ts index f113c2c4f8..1b2b211cfc 100644 --- a/packages/sheets/src/commands/commands/remove-row-col.command.ts +++ b/packages/sheets/src/commands/commands/remove-row-col.command.ts @@ -239,11 +239,13 @@ export const RemoveColByRangeCommand: ICommand = ...(intercepted.preUndos ?? []), { id: InsertColMutation.id, params: undoRemoveColParams }, { id: SetRangeValuesMutation.id, params: undoSetRangeValuesParams }, - ...intercepted.undos], + ...intercepted.undos, + ], redoMutations: [ ...(intercepted.preRedos ?? []), { id: RemoveColMutation.id, params: removeColParams }, - ...intercepted.redos], + ...intercepted.redos, + ], }); return true; diff --git a/packages/sheets/src/commands/commands/set-border-command.ts b/packages/sheets/src/commands/commands/set-border-command.ts index 1014b3a17c..2ba1aafcd7 100644 --- a/packages/sheets/src/commands/commands/set-border-command.ts +++ b/packages/sheets/src/commands/commands/set-border-command.ts @@ -223,8 +223,12 @@ function getBorderContext(borderStyleManagerService: BorderStyleManagerService, }, }; return { - worksheet, unitId, subUnitId, - style, color, type, + worksheet, + unitId, + subUnitId, + style, + color, + type, top, left, right, diff --git a/packages/sheets/src/commands/commands/set-col-visible.command.ts b/packages/sheets/src/commands/commands/set-col-visible.command.ts index 7e4074cfaa..992ca567ff 100644 --- a/packages/sheets/src/commands/commands/set-col-visible.command.ts +++ b/packages/sheets/src/commands/commands/set-col-visible.command.ts @@ -169,7 +169,8 @@ export const SetColHiddenCommand: ICommand = { const redoMutationParams: ISetColHiddenMutationParams = { unitId, subUnitId, ranges }; const setSelectionOperationParams: ISetSelectionsOperationParams = { - unitId, subUnitId, + unitId, + subUnitId, selections: getSelectionsAfterHiding(ranges).map((range) => ({ range, primary: getPrimaryForRange(range, worksheet), @@ -179,7 +180,8 @@ export const SetColHiddenCommand: ICommand = { const undoMutationParams = SetColHiddenUndoMutationFactory(accessor, redoMutationParams); const undoSetSelectionsOperationParams: ISetSelectionsOperationParams = { - unitId, subUnitId, + unitId, + subUnitId, reveal: true, selections: ranges.map((range) => ({ range, diff --git a/packages/sheets/src/commands/commands/set-row-visible.command.ts b/packages/sheets/src/commands/commands/set-row-visible.command.ts index 67baad29fd..0a90108df9 100644 --- a/packages/sheets/src/commands/commands/set-row-visible.command.ts +++ b/packages/sheets/src/commands/commands/set-row-visible.command.ts @@ -84,7 +84,9 @@ export const SetSpecificRowsVisibleCommand: ICommand = { id: SetRangeProtectionMutation.id, params: { - ...param, rule: oldRule, + ...param, + rule: oldRule, }, }; return result; diff --git a/packages/sheets/src/controllers/merge-cell.controller.ts b/packages/sheets/src/controllers/merge-cell.controller.ts index 31ad188dc7..0603d8d001 100644 --- a/packages/sheets/src/controllers/merge-cell.controller.ts +++ b/packages/sheets/src/controllers/merge-cell.controller.ts @@ -17,7 +17,10 @@ /* eslint-disable max-lines-per-function */ import type { - ICommandInfo, IMutationInfo, IRange, Workbook, + ICommandInfo, + IMutationInfo, + IRange, + Workbook, } from '@univerjs/core'; import type { IAddWorksheetMergeMutationParams, diff --git a/packages/sheets/src/controllers/number-cell.controller.ts b/packages/sheets/src/controllers/number-cell.controller.ts index a40fecfa97..1917113078 100644 --- a/packages/sheets/src/controllers/number-cell.controller.ts +++ b/packages/sheets/src/controllers/number-cell.controller.ts @@ -21,7 +21,8 @@ import { SheetInterceptorService } from '../services/sheet-interceptor/sheet-int export class NumberCellDisplayController extends Disposable { constructor( - @Inject(SheetInterceptorService) private _sheetInterceptorService: SheetInterceptorService) { + @Inject(SheetInterceptorService) private _sheetInterceptorService: SheetInterceptorService + ) { super(); this._initialize(); diff --git a/packages/sheets/src/controllers/permission/sheet-permission-view-model.controller.ts b/packages/sheets/src/controllers/permission/sheet-permission-view-model.controller.ts index e928d93fe4..5d78f92dda 100644 --- a/packages/sheets/src/controllers/permission/sheet-permission-view-model.controller.ts +++ b/packages/sheets/src/controllers/permission/sheet-permission-view-model.controller.ts @@ -59,8 +59,7 @@ export class SheetPermissionViewModelController extends Disposable { return next(cell); }, - } - )); + })); } private _initViewModelBySheetInterceptor() { @@ -88,7 +87,6 @@ export class SheetPermissionViewModelController extends Disposable { } return next(cell); }, - } - )); + })); } } diff --git a/packages/sheets/src/facade/f-permission.ts b/packages/sheets/src/facade/f-permission.ts index 2e60af3dd7..9ef7245684 100644 --- a/packages/sheets/src/facade/f-permission.ts +++ b/packages/sheets/src/facade/f-permission.ts @@ -124,7 +124,8 @@ export class FPermission extends FBase { throw new Error('sheet protection cannot intersect with range protection'); } const permissionId = await this._authzIoService.create({ - objectType: UnitObject.Worksheet, worksheetObject: { + objectType: UnitObject.Worksheet, + worksheetObject: { collaborators: [], unitID: unitId, strategies: [], @@ -215,7 +216,8 @@ export class FPermission extends FBase { const rule = this._worksheetProtectionPointRuleModel.getRule(unitId, subUnitId); if (!rule) { permissionId = await this._authzIoService.create({ - objectType: UnitObject.Worksheet, worksheetObject: { + objectType: UnitObject.Worksheet, + worksheetObject: { collaborators: [], unitID: unitId, strategies: [], @@ -271,7 +273,8 @@ export class FPermission extends FBase { } | undefined> { // The permission ID generation here only provides the most basic permission type. If need collaborators later, need to expand this const permissionId = await this._authzIoService.create({ - objectType: UnitObject.SelectRange, selectRangeObject: { + objectType: UnitObject.SelectRange, + selectRangeObject: { collaborators: [], unitID: unitId, name: '', diff --git a/packages/sheets/src/facade/f-univer.ts b/packages/sheets/src/facade/f-univer.ts index d37d9eb58a..978dd2b9cd 100644 --- a/packages/sheets/src/facade/f-univer.ts +++ b/packages/sheets/src/facade/f-univer.ts @@ -201,13 +201,11 @@ export class FUniverSheetsMixin extends FUniver implements IFUniverSheetsMixin { this.Event.WorkbookDisposed, () => univerInstanceService.unitDisposed$.subscribe((unit) => { if (unit.type === UniverInstanceType.UNIVER_SHEET) { - this.fireEvent(this.Event.WorkbookDisposed, - { - unitId: unit.getUnitId(), - unitType: unit.type, - snapshot: unit.getSnapshot() as IWorkbookData, - } - ); + this.fireEvent(this.Event.WorkbookDisposed, { + unitId: unit.getUnitId(), + unitType: unit.type, + snapshot: unit.getSnapshot() as IWorkbookData, + }); } }) ); @@ -219,14 +217,12 @@ export class FUniverSheetsMixin extends FUniver implements IFUniverSheetsMixin { if (unit.type === UniverInstanceType.UNIVER_SHEET) { const workbook = unit as Workbook; const workbookUnit = injector.createInstance(FWorkbook, workbook); - this.fireEvent(this.Event.WorkbookCreated, - { - unitId: unit.getUnitId(), - type: unit.type, - workbook: workbookUnit, - unit: workbookUnit, - } - ); + this.fireEvent(this.Event.WorkbookCreated, { + unitId: unit.getUnitId(), + type: unit.type, + workbook: workbookUnit, + unit: workbookUnit, + }); } }) ); diff --git a/packages/sheets/src/facade/f-worksheet.ts b/packages/sheets/src/facade/f-worksheet.ts index e43013a30f..c6f702cf5e 100644 --- a/packages/sheets/src/facade/f-worksheet.ts +++ b/packages/sheets/src/facade/f-worksheet.ts @@ -829,13 +829,12 @@ export class FWorksheet extends FBaseInitialable { range: ranges[0], value: WrapStrategy.WRAP, } as ISetTextWrapCommandParams); - this._commandService.syncExecuteCommand(SetWorksheetRowIsAutoHeightMutation.id, - { - unitId, - subUnitId, - ranges, - autoHeightInfo: auto, - }); + this._commandService.syncExecuteCommand(SetWorksheetRowIsAutoHeightMutation.id, { + unitId, + subUnitId, + ranges, + autoHeightInfo: auto, + }); return this; } diff --git a/packages/sheets/src/services/permission/range-permission/range-protection.service.ts b/packages/sheets/src/services/permission/range-permission/range-protection.service.ts index 1381490acf..04deb35996 100644 --- a/packages/sheets/src/services/permission/range-permission/range-protection.service.ts +++ b/packages/sheets/src/services/permission/range-permission/range-protection.service.ts @@ -70,7 +70,8 @@ export class RangeProtectionService extends Disposable { break; } } - })); + }) + ); } private _initSnapshot() { @@ -91,7 +92,8 @@ export class RangeProtectionService extends Disposable { }; this.disposeWithMe( this._resourceManagerService.registerPluginResource({ - toJson, parseJson, + toJson, + parseJson, pluginName: PLUGIN_NAME, businesses: [UniverType.UNIVER_SHEET], onLoad: (unitId, resources) => { diff --git a/packages/sheets/src/services/permission/worksheet-permission/worksheet-permission.service.ts b/packages/sheets/src/services/permission/worksheet-permission/worksheet-permission.service.ts index 6ba42694ec..189fe39e5c 100644 --- a/packages/sheets/src/services/permission/worksheet-permission/worksheet-permission.service.ts +++ b/packages/sheets/src/services/permission/worksheet-permission/worksheet-permission.service.ts @@ -123,7 +123,8 @@ export class WorksheetPermissionService extends RxDisposable { break; } } - })); + }) + ); } private _initRuleSnapshot() { @@ -143,7 +144,8 @@ export class WorksheetPermissionService extends RxDisposable { }; this.disposeWithMe( this._resourceManagerService.registerPluginResource({ - toJson, parseJson, + toJson, + parseJson, pluginName: RULE_MODEL_PLUGIN_NAME, businesses: [UniverType.UNIVER_SHEET], onLoad: (unitId, resources) => { @@ -197,7 +199,8 @@ export class WorksheetPermissionService extends RxDisposable { }; this.disposeWithMe( this._resourceManagerService.registerPluginResource({ - toJson, parseJson, + toJson, + parseJson, pluginName: POINT_MODEL_PLUGIN_NAME, businesses: [UniverType.UNIVER_SHEET], onLoad: (unitId, resources) => { diff --git a/packages/sheets/src/services/ref-range/__tests__/utils.spec.ts b/packages/sheets/src/services/ref-range/__tests__/utils.spec.ts index cef447e9a8..75df1c31b3 100644 --- a/packages/sheets/src/services/ref-range/__tests__/utils.spec.ts +++ b/packages/sheets/src/services/ref-range/__tests__/utils.spec.ts @@ -15,8 +15,12 @@ */ import type { IMutationInfo, IRange } from '@univerjs/core'; -import { beforeEach, describe, expect, it } from 'vitest'; +import type { IRemoveSheetMutationParams } from '../../../basics'; +import type { IMoveRowsMutationParams } from '../../../commands/mutations/move-rows-cols.mutation'; +import { beforeEach, describe, expect, it } from 'vitest'; +import { MoveRowsMutation } from '../../../commands/mutations/move-rows-cols.mutation'; +import { RemoveSheetMutation } from '../../../commands/mutations/remove-sheet.mutation'; import { EffectRefRangId } from '../type'; import { adjustRangeOnMutation, @@ -39,10 +43,6 @@ import { handleRemoveRowCommon, runRefRangeMutations, } from '../util'; -import { RemoveSheetMutation } from '../../../commands/mutations/remove-sheet.mutation'; -import type { IRemoveSheetMutationParams } from '../../../basics'; -import type { IMoveRowsMutationParams } from '../../../commands/mutations/move-rows-cols.mutation'; -import { MoveRowsMutation } from '../../../commands/mutations/move-rows-cols.mutation'; const countRange = ([a, b, c, d]: readonly [number, number, number, number]) => (a * 1000 + b * 100 + c * 10 + d); @@ -1228,8 +1228,7 @@ describe('test ref-range move', () => { endRow: 10, startColumn: 8, startRow: 6, - }, - { + }, { endColumn: 7, endRow: 10, startColumn: 6, diff --git a/packages/sheets/src/services/ref-range/__tests__/watch-range.spec.ts b/packages/sheets/src/services/ref-range/__tests__/watch-range.spec.ts index a2b586dc81..ee919c5123 100644 --- a/packages/sheets/src/services/ref-range/__tests__/watch-range.spec.ts +++ b/packages/sheets/src/services/ref-range/__tests__/watch-range.spec.ts @@ -15,18 +15,18 @@ */ import type { IMutationInfo, IRange } from '@univerjs/core'; -import { beforeEach, describe, expect, it } from 'vitest'; +import type { IRemoveColMutationParams, IRemoveRowsMutationParams } from '../../../basics'; +import type { IMoveRowsMutationParams } from '../../../commands/mutations/move-rows-cols.mutation'; +import { beforeEach, describe, expect, it } from 'vitest'; +import { MoveRowsMutation } from '../../../commands/mutations/move-rows-cols.mutation'; +import { RemoveColMutation, RemoveRowMutation } from '../../../commands/mutations/remove-row-col.mutation'; import { EffectRefRangId } from '../type'; import { adjustRangeOnMutation, handleIRemoveRow, runRefRangeMutations, } from '../util'; -import type { IRemoveColMutationParams, IRemoveRowsMutationParams } from '../../../basics'; -import type { IMoveRowsMutationParams } from '../../../commands/mutations/move-rows-cols.mutation'; -import { MoveRowsMutation } from '../../../commands/mutations/move-rows-cols.mutation'; -import { RemoveColMutation, RemoveRowMutation } from '../../../commands/mutations/remove-row-col.mutation'; describe('test ref-range move', () => { describe('handleMoveRows', () => { @@ -48,7 +48,8 @@ describe('test ref-range move', () => { targetRange: moveTargetRange, unitId: '', subUnitId: '', - }, id: MoveRowsMutation.id, + }, + id: MoveRowsMutation.id, }; }; }); @@ -193,7 +194,8 @@ describe('test ref-range move', () => { targetRange: moveTargetRange, unitId: '', subUnitId: '', - }, id: MoveRowsMutation.id, + }, + id: MoveRowsMutation.id, }; }; }); diff --git a/packages/sheets/src/services/sheet-interceptor/sheet-interceptor.service.ts b/packages/sheets/src/services/sheet-interceptor/sheet-interceptor.service.ts index bf4f8ac771..5d19d1f466 100644 --- a/packages/sheets/src/services/sheet-interceptor/sheet-interceptor.service.ts +++ b/packages/sheets/src/services/sheet-interceptor/sheet-interceptor.service.ts @@ -387,7 +387,8 @@ export class SheetInterceptorService extends Disposable { worksheet, workbook, rawData, - }); + } + ); }, })); diff --git a/packages/slides-ui/package.json b/packages/slides-ui/package.json index 45b7aed081..c68bed2caf 100644 --- a/packages/slides-ui/package.json +++ b/packages/slides-ui/package.json @@ -85,7 +85,7 @@ "react": "18.3.1", "rxjs": "^7.8.1", "tailwindcss": "^3.4.17", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/slides-ui/src/controllers/slide-editing.render-controller.ts b/packages/slides-ui/src/controllers/slide-editing.render-controller.ts index 073d533244..3ad1c3285f 100644 --- a/packages/slides-ui/src/controllers/slide-editing.render-controller.ts +++ b/packages/slides-ui/src/controllers/slide-editing.render-controller.ts @@ -21,7 +21,8 @@ import type { IPosition, Nullable, SlideDataModel, - UnitModel } from '@univerjs/core'; + UnitModel, +} from '@univerjs/core'; import type { IDocObjectParam, IEditorInputConfig } from '@univerjs/docs-ui'; import type { DocBackground, diff --git a/packages/slides-ui/src/services/slide-popup-manager.service.ts b/packages/slides-ui/src/services/slide-popup-manager.service.ts index 261896b5a1..1584762abb 100644 --- a/packages/slides-ui/src/services/slide-popup-manager.service.ts +++ b/packages/slides-ui/src/services/slide-popup-manager.service.ts @@ -14,18 +14,16 @@ * limitations under the License. */ +import type { IDisposable } from '@univerjs/core'; +import type { BaseObject, IBoundRectNoAngle, IRender, Scene } from '@univerjs/engine-render'; +import type { IPopup } from '@univerjs/ui'; import { Disposable, DisposableCollection, ICommandService, Inject, IUniverInstanceService, UniverInstanceType } from '@univerjs/core'; import { IRenderManagerService, pxToNum } from '@univerjs/engine-render'; import { SLIDE_KEY } from '@univerjs/slides'; import { ICanvasPopupService } from '@univerjs/ui'; import { BehaviorSubject } from 'rxjs'; -import type { IDisposable } from '@univerjs/core'; -import type { BaseObject, IBoundRectNoAngle, IRender, Scene } from '@univerjs/engine-render'; -import type { IPopup } from '@univerjs/ui'; -export interface ISlideCanvasPopup extends Pick { +export interface ISlideCanvasPopup extends Pick { mask?: boolean; extraProps?: Record; } diff --git a/packages/slides/package.json b/packages/slides/package.json index 3000065878..89ff91daea 100644 --- a/packages/slides/package.json +++ b/packages/slides/package.json @@ -63,7 +63,7 @@ }, "devDependencies": { "@univerjs-infra/shared": "workspace:*", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/telemetry/package.json b/packages/telemetry/package.json index ec23bf6764..997770f8d8 100644 --- a/packages/telemetry/package.json +++ b/packages/telemetry/package.json @@ -59,7 +59,7 @@ }, "devDependencies": { "@univerjs-infra/shared": "workspace:*", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/thread-comment-ui/package.json b/packages/thread-comment-ui/package.json index 90980eb7a8..dfc2609c95 100644 --- a/packages/thread-comment-ui/package.json +++ b/packages/thread-comment-ui/package.json @@ -80,7 +80,7 @@ "react": "18.3.1", "rxjs": "^7.8.1", "tailwindcss": "^3.4.17", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/thread-comment-ui/src/views/thread-comment-panel/index.tsx b/packages/thread-comment-ui/src/views/thread-comment-panel/index.tsx index 45351fab83..2dbac35234 100644 --- a/packages/thread-comment-ui/src/views/thread-comment-panel/index.tsx +++ b/packages/thread-comment-ui/src/views/thread-comment-panel/index.tsx @@ -208,7 +208,8 @@ export const ThreadCommentPanel = (props: IThreadCommentPanelProps) => { { value: 'current', label: localeService.t('threadCommentUI.filter.sheet.current'), - }, { + }, + { value: 'all', label: localeService.t('threadCommentUI.filter.sheet.all'), }, @@ -224,7 +225,8 @@ export const ThreadCommentPanel = (props: IThreadCommentPanelProps) => { { value: 'all', label: localeService.t('threadCommentUI.filter.status.all'), - }, { + }, + { value: 'resolved', label: localeService.t('threadCommentUI.filter.status.resolved'), }, diff --git a/packages/thread-comment/package.json b/packages/thread-comment/package.json index 478941f54a..b089e15375 100644 --- a/packages/thread-comment/package.json +++ b/packages/thread-comment/package.json @@ -65,7 +65,7 @@ "devDependencies": { "@univerjs-infra/shared": "workspace:*", "rxjs": "^7.8.1", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/ui/package.json b/packages/ui/package.json index cad8dc7df8..b015ded6f8 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -96,7 +96,7 @@ "rxjs": "^7.8.1", "tailwindcss": "^3.4.17", "tailwindcss-animate": "^1.0.7", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7", "vue": "^3.5.13" diff --git a/packages/ui/src/components/font-size/index.module.less b/packages/ui/src/components/font-size/index.module.less index 2ca685c9d4..1df30b854f 100644 --- a/packages/ui/src/components/font-size/index.module.less +++ b/packages/ui/src/components/font-size/index.module.less @@ -8,6 +8,7 @@ line-height: 24px; background-color: transparent; border: none; + display: block; input { font-size: var(--font-size-xs); diff --git a/packages/ui/src/components/menu/desktop/Menu.tsx b/packages/ui/src/components/menu/desktop/Menu.tsx index e7016dc72f..36c289694c 100644 --- a/packages/ui/src/components/menu/desktop/Menu.tsx +++ b/packages/ui/src/components/menu/desktop/Menu.tsx @@ -28,7 +28,8 @@ import { clsx, Menu as DesignMenu, MenuItem as DesignMenuItem, - MenuItemGroup as DesignMenuItemGroup, SubMenu as DesignSubMenu, + MenuItemGroup as DesignMenuItemGroup, + SubMenu as DesignSubMenu, } from '@univerjs/design'; import { CheckMarkSingle, MoreSingle } from '@univerjs/icons'; import { useEffect, useMemo, useState } from 'react'; diff --git a/packages/ui/src/mobile-ui-plugin.ts b/packages/ui/src/mobile-ui-plugin.ts index b8bd07ecba..1f51b704b3 100644 --- a/packages/ui/src/mobile-ui-plugin.ts +++ b/packages/ui/src/mobile-ui-plugin.ts @@ -95,7 +95,8 @@ export class UniverMobileUIPlugin extends Plugin { // controllers [ - IUIController, { + IUIController, + { useFactory: (injector: Injector) => injector.createInstance(MobileUIController, this._config), deps: [Injector], }, diff --git a/packages/ui/src/views/components/global-zone/GlobalZone.tsx b/packages/ui/src/views/components/global-zone/GlobalZone.tsx index 2b079feeec..b9f1cecd50 100644 --- a/packages/ui/src/views/components/global-zone/GlobalZone.tsx +++ b/packages/ui/src/views/components/global-zone/GlobalZone.tsx @@ -19,7 +19,6 @@ import { useEffect, useMemo, useState } from 'react'; import { ComponentManager } from '../../../common/component-manager'; import { IGlobalZoneService } from '../../../services/global-zone/global-zone.service'; import { useDependency, useObservable } from '../../../utils/di'; -import styles from './index.module.less'; export function GlobalZone() { const globalZoneService = useDependency(IGlobalZoneService); @@ -27,8 +26,6 @@ export function GlobalZone() { const componentKey = useObservable(globalZoneService.componentKey$, globalZoneService.componentKey); const componentManager = useDependency(ComponentManager); - const _className = clsx(styles.globalZone, styles.globalZoneOpen); - const Component = useMemo(() => { const Component = componentManager.get(componentKey ?? ''); if (Component) { @@ -50,5 +47,17 @@ export function GlobalZone() { return null; } - return
{Component && }
; + return ( +
+ {Component && } +
+ ); } diff --git a/packages/ui/src/views/components/global-zone/index.module.less b/packages/ui/src/views/components/global-zone/index.module.less deleted file mode 100644 index 9e769d18ac..0000000000 --- a/packages/ui/src/views/components/global-zone/index.module.less +++ /dev/null @@ -1,21 +0,0 @@ -.global-zone { - position: absolute; - display: none; - - &-open { - z-index: 100; - top: 0; - left: 0; - - display: block; - - width: 100%; - height: 100%; - - background: rgb(var(--bg-color)); - } - - &-close { - display: none; - } -} diff --git a/packages/ui/src/views/components/popup/RectPopup.tsx b/packages/ui/src/views/components/popup/RectPopup.tsx index 7f306199d9..cfdf66a7d2 100644 --- a/packages/ui/src/views/components/popup/RectPopup.tsx +++ b/packages/ui/src/views/components/popup/RectPopup.tsx @@ -147,10 +147,7 @@ function RectPopup(props: IRectPopupProps) { }); return () => anchorRectSub.unsubscribe(); - }, - - [anchorRect$, direction] - ); + }, [anchorRect$, direction]); useEffect(() => { const handleClickOther = (e: MouseEvent) => { diff --git a/packages/ui/src/views/components/popup/single-canvas-popup.tsx b/packages/ui/src/views/components/popup/single-canvas-popup.tsx deleted file mode 100644 index efb09d74b3..0000000000 --- a/packages/ui/src/views/components/popup/single-canvas-popup.tsx +++ /dev/null @@ -1,98 +0,0 @@ -/** - * Copyright 2023-present DreamNum Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import type { IPopup } from '../../../services/popup/canvas-popup.service'; -import React, { useEffect, useMemo, useState } from 'react'; -import { animationFrameScheduler, combineLatest, map, of, throttleTime } from 'rxjs'; -import { useObservableRef } from '../../../utils/di'; -import { RectPopup } from './RectPopup'; - -interface ISingleCanvasPopupProps { - popup: IPopup; - children?: React.ReactNode; -} - -const SingleCanvasPopup = ({ popup, children }: ISingleCanvasPopupProps) => { - const [hidden, setHidden] = useState(false); - const anchorRect$ = useMemo(() => popup.anchorRect$.pipe( - throttleTime(0, animationFrameScheduler), - map((anchorRect) => { - const { bottom, left, right, top } = anchorRect; - const [x = 0, y = 0] = popup.offset ?? []; - return { - left: left - x, - right: right + x, - top: top - y, - bottom: bottom + y, - }; - }) - ), [popup.anchorRect$, popup.offset]); - const hiddenRects$ = useMemo(() => popup.hiddenRects$?.pipe(throttleTime(0, animationFrameScheduler)) ?? of([]), [popup.hiddenRects$]); - const excludeRects$ = useMemo(() => popup.excludeRects$?.pipe(throttleTime(0, animationFrameScheduler)), [popup.excludeRects$]); - const excludeRectsRef = useObservableRef(excludeRects$, popup.excludeRects); - const { canvasElement, hideOnInvisible = true, hiddenType = 'destroy' } = popup; - - useEffect(() => { - if (!hideOnInvisible) { - return; - } - - const anchorRectSub = combineLatest([anchorRect$, hiddenRects$]).subscribe(([rectWithOffset, hiddenRects]) => { - const rect = canvasElement.getBoundingClientRect(); - const { top, left, bottom, right } = rect; - const rectHeight = rectWithOffset.bottom - rectWithOffset.top; - const rectWidth = rectWithOffset.right - rectWithOffset.left; - - const isInHiddenRect = hiddenRects.some((hiddenRect) => { - return rectWithOffset.top >= (hiddenRect.top - (0.5 * rectHeight)) && - rectWithOffset.bottom <= (hiddenRect.bottom + (0.5 * rectHeight)) && - rectWithOffset.left >= (hiddenRect.left - (0.5 * rectWidth)) && - rectWithOffset.right <= (hiddenRect.right + (0.5 * rectWidth)); - }); - - if (rectWithOffset.bottom < top || rectWithOffset.top > bottom || rectWithOffset.right < left || rectWithOffset.left > right || isInHiddenRect) { - setHidden(true); - } else { - setHidden(false); - } - }); - - return () => anchorRectSub.unsubscribe(); - }, [canvasElement, hideOnInvisible, anchorRect$, hiddenRects$]); - if ((hidden && hiddenType === 'destroy')) { - return null; - } - - return ( - - ); -}; - -export type { ISingleCanvasPopupProps }; -export { SingleCanvasPopup }; diff --git a/packages/ui/src/views/components/ribbon/Button/ToolbarButton.tsx b/packages/ui/src/views/components/ribbon/Button/ToolbarButton.tsx index 1a7f2c3786..927381ba08 100644 --- a/packages/ui/src/views/components/ribbon/Button/ToolbarButton.tsx +++ b/packages/ui/src/views/components/ribbon/Button/ToolbarButton.tsx @@ -89,7 +89,7 @@ export function ToolbarButton(props: IBaseToolbarButtonProps) { className={clsx(` univer-flex univer-h-6 univer-min-w-6 univer-cursor-pointer univer-items-center univer-justify-center univer-rounded univer-border-none univer-bg-transparent univer-p-0 univer-text-base univer-text-gray-900 - univer-outline-none + univer-outline-none univer-transition-colors [&:disabled]:univer-cursor-not-allowed [&:disabled]:univer-text-gray-200 [&:disabled]:hover:univer-bg-transparent hover:univer-bg-gray-100 diff --git a/packages/ui/src/views/components/ribbon/Ribbon.tsx b/packages/ui/src/views/components/ribbon/Ribbon.tsx index aa5d69be0b..68d4545c02 100644 --- a/packages/ui/src/views/components/ribbon/Ribbon.tsx +++ b/packages/ui/src/views/components/ribbon/Ribbon.tsx @@ -17,15 +17,14 @@ import type { ComponentType } from 'react'; import type { IMenuSchema } from '../../../services/menu/menu-manager.service'; import { LocaleService } from '@univerjs/core'; -import { clsx } from '@univerjs/design'; +import { clsx, Separator } from '@univerjs/design'; import { MoreFunctionSingle } from '@univerjs/icons'; -import { useCallback, useEffect, useMemo, useRef, useState } from 'react'; +import { Fragment, useCallback, useEffect, useMemo, useRef, useState } from 'react'; import { IMenuManagerService } from '../../../services/menu/menu-manager.service'; import { MenuManagerPosition, RibbonPosition } from '../../../services/menu/types'; import { useDependency } from '../../../utils/di'; import { ComponentContainer } from '../ComponentContainer'; import { ToolbarButton } from '../ribbon/Button/ToolbarButton'; -import styles from './index.module.less'; import { ToolbarItem } from './ToolbarItem'; import { DropdownWrapper, TooltipWrapper } from './TooltipButtonWrapper'; @@ -33,6 +32,10 @@ interface IRibbonProps { headerMenuComponents?: Set; } +function Divider() { + return ; +} + export function Ribbon(props: IRibbonProps) { const { headerMenuComponents } = props; @@ -108,7 +111,9 @@ export function Ribbon(props: IRibbonProps) { for (const item of allGroups) { if (item.children) { const visibleChildren = item.children.filter((child) => !collapsedIds.includes(child.key)); - visibleGroups.push({ ...item, children: visibleChildren }); + if (visibleChildren.length > 0) { + visibleGroups.push({ ...item, children: visibleChildren }); + } if (visibleChildren.length < item.children.length) { hiddenGroups.push({ ...item, children: item.children.filter((child) => collapsedIds.includes(child.key)) }); @@ -125,24 +130,27 @@ export function Ribbon(props: IRibbonProps) { const fakeToolbarContent = useMemo(() => ( activeGroup.allGroups.map((groupItem) => ( -
- {groupItem.children?.map((child) => ( - child.item && ( - { - if (ref?.el) { - toolbarItemRefs.current[child.key] = { - el: ref.el, - key: child.key, - }; - } - }} - /> - ) - ))} -
+ +
+ {groupItem.children?.map((child) => ( + child.item && ( + { + if (ref?.el) { + toolbarItemRefs.current[child.key] = { + el: ref.el, + key: child.key, + }; + } + }} + /> + ) + ))} +
+ +
)) ), [activeGroup.allGroups]); @@ -190,50 +198,75 @@ export function Ribbon(props: IRibbonProps) { )} -
+
- {activeGroup.visibleGroups.map((groupItem) => (groupItem.children?.length || groupItem.item) && ( -
- {groupItem.children - ? groupItem.children?.map((child) => ( - child.item && - )) - : ( - groupItem.item && - )} -
+ {activeGroup.visibleGroups.map((groupItem, index) => (groupItem.children?.length || groupItem.item) && ( + +
+ {groupItem.children + ? groupItem.children?.map((child) => ( + child.item && + )) + : ( + groupItem.item && + )} +
+ {index < activeGroup.visibleGroups.length - 1 && activeGroup.visibleGroups.some((groupItem) => groupItem.children?.length || !!groupItem.item) && } +
))} {/* overflow menu items */} {collapsedIds.length > 0 && ( - - - {activeGroup.hiddenGroups.map((groupItem) => ( -
- {groupItem.children - ? groupItem.children?.map((child) => ( - child.item && - )) - : ( - groupItem.item && - )} -
- ))} -
- )} - > - - - - - + <> + + + + {activeGroup.hiddenGroups.map((groupItem) => ( +
+
+ {groupItem.children + ? groupItem.children?.map((child) => ( + child.item && + )) + : ( + groupItem.item && + )} +
+
+ ))} +
+ )} + > + + + + + + )}
diff --git a/packages/ui/src/views/components/ribbon/ToolbarItem.tsx b/packages/ui/src/views/components/ribbon/ToolbarItem.tsx index 385cbc6f82..12024655e7 100644 --- a/packages/ui/src/views/components/ribbon/ToolbarItem.tsx +++ b/packages/ui/src/views/components/ribbon/ToolbarItem.tsx @@ -28,7 +28,6 @@ import { MenuItemType } from '../../../services/menu/menu'; import { useDependency, useObservable } from '../../../utils/di'; import { ToolbarButton } from './Button/ToolbarButton'; import { useToolbarItemStatus } from './hook'; -import styles from './index.module.less'; import { DropdownMenuWrapper, TooltipWrapper } from './TooltipButtonWrapper'; export const ToolbarItem = forwardRef>((props, ref) => { @@ -105,17 +104,21 @@ export const ToolbarItem = forwardRef
- +
@@ -168,9 +172,15 @@ export const ToolbarItem = forwardRef
- +
diff --git a/packages/ui/src/views/components/ribbon/TooltipButtonWrapper.tsx b/packages/ui/src/views/components/ribbon/TooltipButtonWrapper.tsx index 5002b43eb9..163c348336 100644 --- a/packages/ui/src/views/components/ribbon/TooltipButtonWrapper.tsx +++ b/packages/ui/src/views/components/ribbon/TooltipButtonWrapper.tsx @@ -79,7 +79,8 @@ export const TooltipWrapper = forwardRef((pro ); }); -export function DropdownWrapper({ children, overlay, disabled }: { children: ReactNode; overlay: ReactNode; disabled?: boolean }) { +export function DropdownWrapper(props: Omit, 'overlay'> & { overlay: ReactNode; align?: 'start' | 'end' | 'center' }) { + const { children, overlay, disabled, align = 'start' } = props; const { setDropdownVisible } = useContext(TooltipWrapperContext); function handleVisibleChange(visible: boolean) { @@ -88,7 +89,7 @@ export function DropdownWrapper({ children, overlay, disabled }: { children: Rea return ( {overlay} diff --git a/packages/ui/src/views/components/ribbon/index.module.less b/packages/ui/src/views/components/ribbon/index.module.less deleted file mode 100644 index 7eff69d670..0000000000 --- a/packages/ui/src/views/components/ribbon/index.module.less +++ /dev/null @@ -1,167 +0,0 @@ -@toolbar-btn-size: 24px; - -.toolbar { - user-select: none; - - position: relative; - - display: flex; - align-items: center; - - box-sizing: border-box; - height: 32px; - - font-size: var(--font-size-base); - color: rgb(var(--text-color)); - - background-color: rgb(var(--bg-color-secondary)); - border-bottom: 1px solid rgb(var(--border-color)); - - &-more { - max-width: 80%; - - &-container { - display: grid; - - box-sizing: border-box; - padding: var(--padding-sm); - - background-color: rgb(var(--bg-color-secondary)); - border-radius: var(--border-radius-base); - box-shadow: var(--box-shadow-base); - - .toolbar-group { - flex-wrap: wrap; - - &:not(:last-child) { - &::after { - content: initial; - } - - > * { - margin-bottom: var(--margin-xs); - } - } - } - } - } - - &-group { - display: flex; - gap: var(--margin-xs); - align-items: center; - flex-shrink: 0; - - > * { - flex-shrink: 0; - } - - &:not(:last-child, :empty) { - &::after { - content: ''; - - display: block; - - width: 1px; - height: 20px; - - background-color: rgb(var(--border-color)); - flex-shrink: 0; - } - } - } - - &-item { - &-select-button { - cursor: pointer; - - position: relative; - - overflow: hidden; - display: flex; - align-items: center; - - font-size: var(--font-size-lg); - - border-radius: var(--border-radius-base); - - &-disabled { - cursor: not-allowed; - color: rgb(var(--grey-200)); - &.toolbar-item-select-button-activated { - color: rgba(var(--text-color), 0.25); - .toolbar-item-select-button { - &-label, - &-arrow { - &:hover { - background-color: rgb(var(--grey-100)) !important; - } - } - } - } - } - - &-activated { - background-color: rgb(var(--grey-100)); - } - - &-label { - position: relative; - z-index: 1; - - display: flex; - align-items: center; - - height: 100%; - padding: 0 var(--padding-xs); - } - } - - &-select { - cursor: pointer; - - position: relative; - - display: flex; - gap: var(--margin-xs); - align-items: center; - - height: @toolbar-btn-size; - padding: 0 var(--padding-xs); - - font-size: var(--font-size-lg); - - border-radius: var(--border-radius-base); - - &-disabled { - cursor: not-allowed; - color: rgb(var(--grey-200)); - } - - &:hover { - background-color: rgb(var(--grey-100)); - border-radius: var(--border-radius-base); - } - - &-arrow { - display: flex; - align-items: center; - - height: 100%; - - color: rgb(var(--grey-400)); - - &-disabled { - cursor: not-allowed; - color: rgb(var(--grey-200)); - &.toolbar-item-select-arrow-activated { - color: rgba(var(--text-color), 0.25); - &:hover { - background-color: rgb(var(--grey-100)); - } - } - } - } - } - } -} diff --git a/packages/ui/src/views/components/shortcut-panel/ShortcutPanel.tsx b/packages/ui/src/views/components/shortcut-panel/ShortcutPanel.tsx index 7fa4363ee6..9bd2e5c223 100644 --- a/packages/ui/src/views/components/shortcut-panel/ShortcutPanel.tsx +++ b/packages/ui/src/views/components/shortcut-panel/ShortcutPanel.tsx @@ -19,7 +19,6 @@ import React, { useCallback, useEffect } from 'react'; import { IShortcutService } from '../../../services/shortcut/shortcut.service'; import { useDependency, useObservable } from '../../../utils/di'; -import styles from './index.module.less'; interface IRenderShortcutItem { title: string; @@ -86,18 +85,35 @@ export function ShortcutPanel() { }, [shortcutService, updateShortcuts]); return ( -
+
    {shortcutItems.map((group) => ( -
    -
    {group.name}
    - {group.items.map((item, index) => ( -
    - {item.title} - {item.shortcut} -
    - ))} -
    +
  • +
    + {group.name} +
    + +
      li:last]:univer-border-b-0 + [&>li]:univer-border-0 [&>li]:univer-border-b [&>li]:univer-border-solid + [&>li]:univer-border-b-gray-200 + `} + > + {group.items.map((item) => ( +
    • + {item.title} + {item.shortcut} +
    • + ))} +
    +
  • ))} -
+ ); } diff --git a/packages/ui/src/views/components/shortcut-panel/index.module.less b/packages/ui/src/views/components/shortcut-panel/index.module.less deleted file mode 100644 index bb09c08948..0000000000 --- a/packages/ui/src/views/components/shortcut-panel/index.module.less +++ /dev/null @@ -1,38 +0,0 @@ -.shortcut-panel { - &-group-title { - height: 40px; - font-size: 13px; - font-weight: 700; - line-height: 40px; - } - - &-item { - display: flex; - justify-content: space-between; - - height: 40px; - - font-size: 13px; - line-height: 40px; - - &-title { - overflow: hidden; - flex-grow: 1; - flex-shrink: 1; - - max-width: 200px; - - text-overflow: ellipsis; - text-wrap: nowrap; - } - - &-shortcut { - flex-grow: 0; - flex-shrink: 0; - } - - &:not(:last-of-type) { - border-bottom: 1px solid rgb(var(--grey-200)); - } - } -} diff --git a/packages/uniscript/package.json b/packages/uniscript/package.json index 1f8c020552..a6486a5ed3 100644 --- a/packages/uniscript/package.json +++ b/packages/uniscript/package.json @@ -82,7 +82,7 @@ "react": "18.3.1", "rxjs": "^7.8.1", "tailwindcss": "^3.4.17", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/packages/watermark/package.json b/packages/watermark/package.json index a47992f795..ef67714fbc 100644 --- a/packages/watermark/package.json +++ b/packages/watermark/package.json @@ -73,7 +73,7 @@ "devDependencies": { "@univerjs-infra/shared": "workspace:*", "rxjs": "^7.8.1", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vite": "^6.2.0", "vitest": "^3.0.7" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b27e53aeb2..4e1067fcdd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,28 +16,28 @@ importers: devDependencies: '@antfu/eslint-config': specifier: 4.3.0 - version: 4.3.0(@eslint-react/eslint-plugin@1.28.0(eslint@9.21.0(jiti@2.4.2))(ts-api-utils@2.0.1(typescript@5.7.3))(typescript@5.7.3))(@typescript-eslint/utils@8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3))(@vue/compiler-sfc@3.4.38)(eslint-plugin-format@1.0.1(eslint@9.21.0(jiti@2.4.2)))(eslint-plugin-react-hooks@5.1.0(eslint@9.21.0(jiti@2.4.2)))(eslint-plugin-react-refresh@0.4.19(eslint@9.21.0(jiti@2.4.2)))(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)(vitest@3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 4.3.0(@eslint-react/eslint-plugin@1.29.0(eslint@9.21.0(jiti@2.4.2))(ts-api-utils@2.0.1(typescript@5.8.2))(typescript@5.8.2))(@typescript-eslint/utils@8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2))(@vue/compiler-sfc@3.4.38)(eslint-plugin-format@1.0.1(eslint@9.21.0(jiti@2.4.2)))(eslint-plugin-react-hooks@5.2.0(eslint@9.21.0(jiti@2.4.2)))(eslint-plugin-react-refresh@0.4.19(eslint@9.21.0(jiti@2.4.2)))(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2)(vitest@3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) '@commitlint/cli': specifier: ^19.7.1 - version: 19.7.1(@types/node@22.13.5)(typescript@5.7.3) + version: 19.7.1(@types/node@22.13.5)(typescript@5.8.2) '@commitlint/config-conventional': specifier: ^19.7.1 version: 19.7.1 '@eslint-react/eslint-plugin': - specifier: ^1.28.0 - version: 1.28.0(eslint@9.21.0(jiti@2.4.2))(ts-api-utils@2.0.1(typescript@5.7.3))(typescript@5.7.3) + specifier: ^1.29.0 + version: 1.29.0(eslint@9.21.0(jiti@2.4.2))(ts-api-utils@2.0.1(typescript@5.8.2))(typescript@5.8.2) '@playwright/test': specifier: ^1.50.1 version: 1.50.1 '@release-it-plugins/workspaces': specifier: ^4.2.0 - version: 4.2.0(release-it@17.11.0(typescript@5.7.3)) + version: 4.2.0(release-it@17.11.0(typescript@5.8.2)) '@release-it/conventional-changelog': specifier: ^9.0.4 - version: 9.0.4(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.0.0)(release-it@17.11.0(typescript@5.7.3)) + version: 9.0.4(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.0.0)(release-it@17.11.0(typescript@5.8.2)) '@storybook/react': specifier: 8.6.0 - version: 8.6.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.8(prettier@3.4.2))(typescript@5.7.3) + version: 8.6.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.3(prettier@3.4.2))(typescript@5.8.2) '@types/node': specifier: ^22.13.5 version: 22.13.5 @@ -78,8 +78,8 @@ importers: specifier: ^7.37.4 version: 7.37.4(eslint@9.21.0(jiti@2.4.2)) eslint-plugin-react-hooks: - specifier: 5.1.0 - version: 5.1.0(eslint@9.21.0(jiti@2.4.2)) + specifier: 5.2.0 + version: 5.2.0(eslint@9.21.0(jiti@2.4.2)) eslint-plugin-react-refresh: specifier: ^0.4.19 version: 0.4.19(eslint@9.21.0(jiti@2.4.2)) @@ -100,7 +100,7 @@ importers: version: 19.0.0(react@19.0.0) release-it: specifier: ^17.11.0 - version: 17.11.0(typescript@5.7.3) + version: 17.11.0(typescript@5.8.2) serve: specifier: ^14.2.4 version: 14.2.4 @@ -111,8 +111,8 @@ importers: specifier: ^2.4.4 version: 2.4.4 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vitest: specifier: ^3.0.7 version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) @@ -121,16 +121,16 @@ importers: dependencies: '@typescript-eslint/parser': specifier: ^8.24.1 - version: 8.24.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + version: 8.24.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 4.3.4(vite@6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))(vue@3.4.38(typescript@5.7.3)) + version: 5.2.1(vite@6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))(vue@3.4.38(typescript@5.8.2)) '@vitest/coverage-istanbul': specifier: ^3.0.7 - version: 3.0.7(vitest@3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 3.0.7(vitest@3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) autoprefixer: specifier: ^10.4.20 version: 10.4.20(postcss@8.4.49) @@ -160,16 +160,16 @@ importers: version: 3.4.17 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vite-plugin-dts: specifier: ^4.5.0 - version: 4.5.0(@types/node@22.13.5)(rollup@4.34.8)(typescript@5.7.3)(vite@6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 4.5.0(@types/node@22.13.8)(rollup@4.34.8)(typescript@5.8.2)(vite@6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) vite-plugin-external: specifier: ^6.0.1 version: 6.0.1 vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) devDependencies: '@types/fs-extra': specifier: ^11.0.4 @@ -187,17 +187,17 @@ importers: common/storybook: dependencies: '@chromatic-com/storybook': - specifier: ^3.2.4 - version: 3.2.4(react@19.0.0)(storybook@8.5.8(prettier@3.4.2)) + specifier: ^3.2.5 + version: 3.2.5(react@19.0.0)(storybook@8.6.3(prettier@3.4.2)) '@storybook/addon-essentials': - specifier: ^8.5.8 - version: 8.5.8(@types/react@19.0.8)(storybook@8.5.8(prettier@3.4.2)) + specifier: ^8.6.3 + version: 8.6.3(@types/react@19.0.8)(storybook@8.6.3(prettier@3.4.2)) '@storybook/addon-interactions': - specifier: ^8.5.8 - version: 8.5.8(storybook@8.5.8(prettier@3.4.2)) + specifier: ^8.6.3 + version: 8.6.3(storybook@8.6.3(prettier@3.4.2)) '@storybook/addon-links': - specifier: ^8.5.8 - version: 8.5.8(react@19.0.0)(storybook@8.5.8(prettier@3.4.2)) + specifier: ^8.6.3 + version: 8.6.3(react@19.0.0)(storybook@8.6.3(prettier@3.4.2)) '@storybook/addon-styling-webpack': specifier: ^1.0.1 version: 1.0.1(webpack@5.98.0(@swc/core@1.10.18)(esbuild@0.25.0)) @@ -205,20 +205,20 @@ importers: specifier: ^2.1.0 version: 2.1.0(webpack@5.98.0(@swc/core@1.10.18)(esbuild@0.25.0)) '@storybook/blocks': - specifier: ^8.5.8 - version: 8.5.8(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.8(prettier@3.4.2)) + specifier: ^8.6.3 + version: 8.6.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.3(prettier@3.4.2)) '@storybook/icons': specifier: ^1.3.2 version: 1.3.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@storybook/react': - specifier: ^8.5.8 - version: 8.5.8(@storybook/test@8.5.8(storybook@8.5.8(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.8(prettier@3.4.2))(typescript@5.7.3) + specifier: ^8.6.3 + version: 8.6.3(@storybook/test@8.6.3(storybook@8.6.3(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.3(prettier@3.4.2))(typescript@5.8.2) '@storybook/react-webpack5': - specifier: ^8.5.8 - version: 8.5.8(@storybook/test@8.5.8(storybook@8.5.8(prettier@3.4.2)))(@swc/core@1.10.18)(esbuild@0.25.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.8(prettier@3.4.2))(typescript@5.7.3) + specifier: ^8.6.3 + version: 8.6.3(@storybook/test@8.6.3(storybook@8.6.3(prettier@3.4.2)))(@swc/core@1.10.18)(esbuild@0.25.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.3(prettier@3.4.2))(typescript@5.8.2) '@storybook/types': - specifier: ^8.5.8 - version: 8.5.8(storybook@8.5.8(prettier@3.4.2)) + specifier: ^8.6.3 + version: 8.6.3(storybook@8.6.3(prettier@3.4.2)) '@univerjs/core': specifier: workspace:* version: link:../../packages/core @@ -236,10 +236,10 @@ importers: version: 12.2.0(less@4.2.2)(webpack@5.98.0(@swc/core@1.10.18)(esbuild@0.25.0)) postcss-loader: specifier: ^8.1.1 - version: 8.1.1(postcss@8.5.3)(typescript@5.7.3)(webpack@5.98.0(@swc/core@1.10.18)(esbuild@0.25.0)) + version: 8.1.1(postcss@8.5.3)(typescript@5.8.2)(webpack@5.98.0(@swc/core@1.10.18)(esbuild@0.25.0)) storybook: - specifier: ^8.5.8 - version: 8.5.8(prettier@3.4.2) + specifier: ^8.6.3 + version: 8.6.3(prettier@3.4.2) storybook-addon-swc: specifier: ^1.2.0 version: 1.2.0(@swc/core@1.10.18)(terser-webpack-plugin@5.3.11(@swc/core@1.10.18)(esbuild@0.25.0)(webpack@5.98.0(@swc/core@1.10.18)(esbuild@0.25.0)))(webpack@5.98.0(@swc/core@1.10.18)(esbuild@0.25.0)) @@ -250,8 +250,8 @@ importers: specifier: ^4.2.0 version: 4.2.0 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 devDependencies: '@types/fs-extra': specifier: ^11.0.4 @@ -459,7 +459,7 @@ importers: version: 19.0.0(react@19.0.0) react-mosaic-component: specifier: ^6.1.1 - version: 6.1.1(@types/node@22.13.5)(@types/react@19.0.8)(dnd-core@16.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 6.1.1(@types/node@22.13.8)(@types/react@19.0.8)(dnd-core@16.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) devDependencies: '@types/fs-extra': specifier: ^11.0.4 @@ -484,7 +484,7 @@ importers: version: 2.1.1(esbuild@0.25.0) esbuild-plugin-vue3: specifier: ^0.4.2 - version: 0.4.2(sass@1.77.5)(vue@3.4.38(typescript@5.7.3)) + version: 0.4.2(sass@1.77.5)(vue@3.4.38(typescript@5.8.2)) esbuild-style-plugin: specifier: ^1.6.3 version: 1.6.3 @@ -510,8 +510,8 @@ importers: specifier: ^1.0.7 version: 1.0.7(tailwindcss@3.4.17) typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 mockdata: dependencies: @@ -568,8 +568,8 @@ importers: specifier: workspace:* version: link:../common/shared typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 packages-experimental/action-recorder: dependencies: @@ -611,14 +611,14 @@ importers: specifier: ^3.4.17 version: 3.4.17 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages-experimental/debugger: dependencies: @@ -669,18 +669,18 @@ importers: specifier: ^3.4.17 version: 3.4.17 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) optionalDependencies: vue: specifier: '>=3.0.0' - version: 3.4.38(typescript@5.7.3) + version: 3.4.38(typescript@5.8.2) packages-experimental/sheets-source-binding: dependencies: @@ -698,14 +698,14 @@ importers: specifier: ^7.8.1 version: 7.8.1 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages-experimental/uni-docs-ui: dependencies: @@ -744,14 +744,14 @@ importers: specifier: ^3.4.17 version: 3.4.17 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages-experimental/uni-formula: dependencies: @@ -763,14 +763,14 @@ importers: specifier: workspace:* version: link:../../common/shared typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages-experimental/uni-formula-ui: dependencies: @@ -827,14 +827,14 @@ importers: specifier: ^3.4.17 version: 3.4.17 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages-experimental/uni-sheets-ui: dependencies: @@ -885,14 +885,14 @@ importers: specifier: ^3.4.17 version: 3.4.17 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages-experimental/uni-slides-ui: dependencies: @@ -937,14 +937,14 @@ importers: specifier: ^3.4.17 version: 3.4.17 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages-experimental/uniui: dependencies: @@ -998,14 +998,14 @@ importers: specifier: ^3.4.17 version: 3.4.17 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/core: dependencies: @@ -1059,14 +1059,14 @@ importers: specifier: ^7.8.1 version: 7.8.1 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/data-validation: dependencies: @@ -1087,14 +1087,14 @@ importers: specifier: ^7.8.1 version: 7.8.1 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/design: dependencies: @@ -1187,14 +1187,14 @@ importers: specifier: ^1.0.7 version: 1.0.7(tailwindcss@3.4.17) typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/docs: dependencies: @@ -1212,14 +1212,14 @@ importers: specifier: ^7.8.1 version: 7.8.1 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/docs-drawing: dependencies: @@ -1234,14 +1234,14 @@ importers: specifier: workspace:* version: link:../../common/shared typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/docs-drawing-ui: dependencies: @@ -1295,14 +1295,14 @@ importers: specifier: ^3.4.17 version: 3.4.17 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/docs-hyper-link: dependencies: @@ -1314,14 +1314,14 @@ importers: specifier: workspace:* version: link:../../common/shared typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/docs-hyper-link-ui: dependencies: @@ -1366,14 +1366,14 @@ importers: specifier: ^3.4.17 version: 3.4.17 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/docs-mention-ui: dependencies: @@ -1412,14 +1412,14 @@ importers: specifier: ^3.4.17 version: 3.4.17 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/docs-thread-comment-ui: dependencies: @@ -1464,14 +1464,14 @@ importers: specifier: ^3.4.17 version: 3.4.17 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/docs-ui: dependencies: @@ -1519,14 +1519,14 @@ importers: specifier: ^3.4.17 version: 3.4.17 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/drawing: dependencies: @@ -1544,14 +1544,14 @@ importers: specifier: ^7.8.1 version: 7.8.1 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/drawing-ui: dependencies: @@ -1593,14 +1593,14 @@ importers: specifier: ^3.4.17 version: 3.4.17 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/engine-formula: dependencies: @@ -1630,14 +1630,14 @@ importers: specifier: ^7.8.1 version: 7.8.1 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/engine-numfmt: devDependencies: @@ -1645,14 +1645,14 @@ importers: specifier: workspace:* version: link:../../common/shared typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/engine-render: dependencies: @@ -1685,14 +1685,14 @@ importers: specifier: ^7.8.1 version: 7.8.1 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/facade: dependencies: @@ -1773,14 +1773,14 @@ importers: specifier: ^7.8.1 version: 7.8.1 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/find-replace: dependencies: @@ -1819,14 +1819,14 @@ importers: specifier: ^3.4.17 version: 3.4.17 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/network: dependencies: @@ -1841,14 +1841,14 @@ importers: specifier: ^7.8.1 version: 7.8.1 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/rpc: dependencies: @@ -1863,14 +1863,14 @@ importers: specifier: ^7.8.1 version: 7.8.1 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/rpc-node: dependencies: @@ -1888,14 +1888,14 @@ importers: specifier: ^7.8.1 version: 7.8.1 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/sheets: dependencies: @@ -1922,14 +1922,14 @@ importers: specifier: ^7.8.1 version: 7.8.1 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/sheets-conditional-formatting: dependencies: @@ -1956,14 +1956,14 @@ importers: specifier: ^7.8.1 version: 7.8.1 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/sheets-conditional-formatting-ui: dependencies: @@ -2029,14 +2029,14 @@ importers: specifier: ^3.4.17 version: 3.4.17 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/sheets-crosshair-highlight: dependencies: @@ -2081,14 +2081,14 @@ importers: specifier: ^3.4.17 version: 3.4.17 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/sheets-data-validation: dependencies: @@ -2121,14 +2121,14 @@ importers: specifier: ^7.8.1 version: 7.8.1 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/sheets-data-validation-ui: dependencies: @@ -2194,14 +2194,14 @@ importers: specifier: ^3.4.17 version: 3.4.17 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/sheets-drawing: dependencies: @@ -2219,14 +2219,14 @@ importers: specifier: workspace:* version: link:../sheets typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/sheets-drawing-ui: dependencies: @@ -2286,14 +2286,14 @@ importers: specifier: ^3.4.17 version: 3.4.17 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/sheets-filter: dependencies: @@ -2311,14 +2311,14 @@ importers: specifier: ^7.8.1 version: 7.8.1 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/sheets-filter-ui: dependencies: @@ -2369,14 +2369,14 @@ importers: specifier: ^3.4.17 version: 3.4.17 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/sheets-find-replace: dependencies: @@ -2403,14 +2403,14 @@ importers: specifier: ^7.8.1 version: 7.8.1 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/sheets-formula: dependencies: @@ -2437,14 +2437,14 @@ importers: specifier: ^7.8.1 version: 7.8.1 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/sheets-formula-ui: dependencies: @@ -2501,14 +2501,14 @@ importers: specifier: ^3.4.17 version: 3.4.17 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/sheets-graphics: dependencies: @@ -2523,14 +2523,14 @@ importers: specifier: workspace:* version: link:../../common/shared typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/sheets-hyper-link: dependencies: @@ -2557,14 +2557,14 @@ importers: specifier: ^7.8.1 version: 7.8.1 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/sheets-hyper-link-ui: dependencies: @@ -2624,14 +2624,14 @@ importers: specifier: ^3.4.17 version: 3.4.17 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/sheets-numfmt: dependencies: @@ -2655,14 +2655,14 @@ importers: specifier: ^7.8.1 version: 7.8.1 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/sheets-numfmt-ui: dependencies: @@ -2716,14 +2716,14 @@ importers: specifier: ^3.4.17 version: 3.4.17 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/sheets-sort: dependencies: @@ -2741,14 +2741,14 @@ importers: specifier: workspace:* version: link:../../common/shared typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/sheets-sort-ui: dependencies: @@ -2796,14 +2796,14 @@ importers: specifier: ^3.4.17 version: 3.4.17 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/sheets-thread-comment: dependencies: @@ -2827,14 +2827,14 @@ importers: specifier: ^7.8.1 version: 7.8.1 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/sheets-thread-comment-ui: dependencies: @@ -2885,14 +2885,14 @@ importers: specifier: ^3.4.17 version: 3.4.17 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/sheets-ui: dependencies: @@ -2952,14 +2952,14 @@ importers: specifier: ^3.4.17 version: 3.4.17 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/sheets-zen-editor: dependencies: @@ -3010,14 +3010,14 @@ importers: specifier: ^3.4.17 version: 3.4.17 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/slides: dependencies: @@ -3032,14 +3032,14 @@ importers: specifier: workspace:* version: link:../../common/shared typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/slides-ui: dependencies: @@ -3090,14 +3090,14 @@ importers: specifier: ^3.4.17 version: 3.4.17 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/telemetry: dependencies: @@ -3109,14 +3109,14 @@ importers: specifier: workspace:* version: link:../../common/shared typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/thread-comment: dependencies: @@ -3134,14 +3134,14 @@ importers: specifier: ^7.8.1 version: 7.8.1 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/thread-comment-ui: dependencies: @@ -3183,14 +3183,14 @@ importers: specifier: ^3.4.17 version: 3.4.17 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/ui: dependencies: @@ -3244,18 +3244,18 @@ importers: specifier: ^1.0.7 version: 1.0.7(tailwindcss@3.4.17) typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) optionalDependencies: vue: specifier: '>=3.0.0' - version: 3.4.38(typescript@5.7.3) + version: 3.4.38(typescript@5.8.2) packages/uniscript: dependencies: @@ -3297,14 +3297,14 @@ importers: specifier: ^3.4.17 version: 3.4.17 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/watermark: dependencies: @@ -3322,14 +3322,14 @@ importers: specifier: ^7.8.1 version: 7.8.1 typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) tests/formula-integration: dependencies: @@ -3374,11 +3374,11 @@ importers: specifier: workspace:* version: link:../../common/shared typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vitest: specifier: ^3.0.7 - version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages: @@ -3620,8 +3620,8 @@ packages: resolution: {integrity: sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==} engines: {node: '>=6.9.0'} - '@chromatic-com/storybook@3.2.4': - resolution: {integrity: sha512-5/bOOYxfwZ2BktXeqcCpOVAoR6UCoeART5t9FVy22hoo8F291zOuX4y3SDgm10B1GVU/ZTtJWPT2X9wZFlxYLg==} + '@chromatic-com/storybook@3.2.5': + resolution: {integrity: sha512-Y388ft6po5FmGKdkcqz3r2sW6aMF5DSBaatC0jvT5bI/Dh27RJw3gPTmXJcZVNjteNl6tpiP3qxZ9MswAk5luw==} engines: {node: '>=16.0.0', yarn: '>=1.22.18'} peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 @@ -4154,20 +4154,20 @@ packages: resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint-react/ast@1.28.0': - resolution: {integrity: sha512-KZ0roDM5MZW8h1OH7rr8ePCmsEchg4V4X425mlosAGQivMt0/p+hDq47wJduLi7A0xZ731H7OG7blJvBpBO52A==} + '@eslint-react/ast@1.29.0': + resolution: {integrity: sha512-PuPkv17+xk4SSaR6KU51lU0qALN1Aw2DGhgjx1tvqkJbEadNoVeXCFrOhwx8tfLlNnQSPocGNrLKi7RpW4cXQw==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} - '@eslint-react/core@1.28.0': - resolution: {integrity: sha512-V0bjUHReS+/P7ssWUCVmNj0/1yInEuKMCxp5tGWHHFI6OZhszWbbydoe6KVZtMWsbPtuP9Xyl9ZHwMK5Zp4Z4g==} + '@eslint-react/core@1.29.0': + resolution: {integrity: sha512-mi4PhWiqHxVSS6vr34Y3IOLVxZS7qnhI7jBXCkfiTyqVg54OEG5JIvZRejF7ls+92FYFz8+eVfF1rKGjLqCC4Q==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} - '@eslint-react/eff@1.28.0': - resolution: {integrity: sha512-fFHsXs+DHhQMnMrVOUJB/aRJvVouHWF/Zn+wPYr2SXuH2ZTASiDAwJAUWPOgOPy556TwW+SaNpqkaJVDKXcSTg==} + '@eslint-react/eff@1.29.0': + resolution: {integrity: sha512-mTBN6tsydNL5QVp+jb2T2MC9TsO7yazzARSrDMkrCsWBBN01iAQCVA6DSdmTNF5w0SzV25iRyNmw9l6qxZLUQg==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} - '@eslint-react/eslint-plugin@1.28.0': - resolution: {integrity: sha512-3tWXx1ekjQ57IE/YgcaQKDHvYWafqquR+kR1ukJMyiRs7/W7d3l5gzjVHPEHmduQ0d5g87oH0Xsbt4ykKdLLaQ==} + '@eslint-react/eslint-plugin@1.29.0': + resolution: {integrity: sha512-owDJEyB8ciGt2jyuCY9CrmDJloTemsE8XRCZOf3T0/pUKlM05MxhOXvvOGhLy99kR0SnPzGhY+yeJXC8Cv9Pzw==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -4176,16 +4176,16 @@ packages: typescript: optional: true - '@eslint-react/jsx@1.28.0': - resolution: {integrity: sha512-IUeb13IJnJrhrhjXL7g53/FjQstdw0SYAPFq5BOM8kVQn6bqQhkY17pZt/oaBd0cMzT9rN4UOZPUdTQmcdkj0g==} + '@eslint-react/jsx@1.29.0': + resolution: {integrity: sha512-LJHlS4NT174RuAXc2fDz75nUwmSAJspAPsOJIz4DUWo4uTl6Fs9d0SQ/ddNelqsWlnIYnaHkaWz02Y9bng5nJg==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} - '@eslint-react/shared@1.28.0': - resolution: {integrity: sha512-SennAGq/D6TvkUgg4Rn6Qu2xGNF1KFx+sDEbr7A5xCV+PDlZbR+kaPx3Wyt3Rc6i4QyjBfraPoVw5GdinPBZ2g==} + '@eslint-react/shared@1.29.0': + resolution: {integrity: sha512-aRIJzmZQedjfHradfKbL5fst/d2QNZDOxRUR7jvGf24RTAKnt+WUF5LzpmDiReMUqroav/L68TTsTbnjdOqzKg==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} - '@eslint-react/var@1.28.0': - resolution: {integrity: sha512-PxcVbuYupbhvlzH1vaXtQMpbU3WJWSHwOlzlJK3d6DddTi6ryH0aPT+nCI8wH0zPgPYBUzkZIa9PLIknV4+DJw==} + '@eslint-react/var@1.29.0': + resolution: {integrity: sha512-9I/0zpBBsWaDDnEL2uQ3JGEYWyWR3AaH0Wob2F0tIDa9gUUOjylmQL2wstImpuTwr04G1iVT7OGMgiJMelgKoQ==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} '@eslint/compat@1.2.6': @@ -4929,130 +4929,127 @@ packages: resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} engines: {node: '>=18'} - '@storybook/addon-actions@8.5.8': - resolution: {integrity: sha512-7J0NAz+WDw1NmvmKIh0Qr5cxgVRDPFC5fmngbDNxedk147TkwrgmqOypgEi/SAksHbTWxJclbimoqdcsNtWffA==} + '@storybook/addon-actions@8.6.3': + resolution: {integrity: sha512-0UrVqRoZFRFCqjtR8ODacpJNqi47qDUnsnB5F7e93U9ihSrH2edOBBX6frl11XKYA23rzq7jtnviFTVOpWpG7Q==} peerDependencies: - storybook: ^8.5.8 + storybook: ^8.6.3 - '@storybook/addon-backgrounds@8.5.8': - resolution: {integrity: sha512-TsQFagQ95+d7H3/+qUZKI2B0SEK8iu6CV13cyry9Dm59nn2bBylFrwx4I3xDQUOWMiSF6QIRjCYzxKQ/jJ5OEg==} + '@storybook/addon-backgrounds@8.6.3': + resolution: {integrity: sha512-2mmMpMyUsS8rti2guMR4rk4h5YBLNHidxUqTm+U4nITZFfCXNP76To9hfTczpLTvUEpPxSbPG0sCIeHFaw4NRQ==} peerDependencies: - storybook: ^8.5.8 + storybook: ^8.6.3 - '@storybook/addon-controls@8.5.8': - resolution: {integrity: sha512-3iifI8mBGPsiPmV9eAYk+tK9i+xuWhVsa+sXz01xTZ/0yoOREpp972hka86mtCqdDTOJIpzh1LmxvB218OssvQ==} + '@storybook/addon-controls@8.6.3': + resolution: {integrity: sha512-j4Oof3nwjyiO6oNP1bJ98Sz1iZlYhdcgHX284yd0wBO91Q5B2GoCeqyCE+yRCh752ZnnYG1gazJrHmiG6gKxVg==} peerDependencies: - storybook: ^8.5.8 + storybook: ^8.6.3 - '@storybook/addon-docs@8.5.8': - resolution: {integrity: sha512-zKVUqE0UGiq1gZtY2TX57SYB4RIsdlbTDxKW2JZ9HhZGLvZ5Qb7AvdiKTZxfOepGhuw3UcNXH/zCFkFCTJifMw==} + '@storybook/addon-docs@8.6.3': + resolution: {integrity: sha512-FRABH+r2huMpAK8iUQiFlYZtYenbqtudX3fNKFK9b38eV1R14kWggVG02lsa6upXbzxWVbMLUdOqaZJHxNbO/A==} peerDependencies: - storybook: ^8.5.8 + storybook: ^8.6.3 - '@storybook/addon-essentials@8.5.8': - resolution: {integrity: sha512-sCNvMZqL6dywnyHuZBrWl4f6QXsvpJHOioL3wJJKaaRMZmctbFmS0u6J8TQjmgZhQfyRzuJuhr1gJg9oeqp6AA==} + '@storybook/addon-essentials@8.6.3': + resolution: {integrity: sha512-tH+MwkZ6UwRWyhGdq8izVZAZHGWdeiBY1wpIwdceP1Rl2j9s11Gbddb/JlmiXrC+f/Oiylxghaf7EIksVVqLQQ==} peerDependencies: - storybook: ^8.5.8 + storybook: ^8.6.3 - '@storybook/addon-highlight@8.5.8': - resolution: {integrity: sha512-kkldtFrY0oQJY/vfNLkV66hVgtp66OO8T68KoZFsmUz4a3iYgzDS8WF+Av2/9jthktFvMchjFr8NKOno9YBGIg==} + '@storybook/addon-highlight@8.6.3': + resolution: {integrity: sha512-LYZsgZt5q3EZBkZjUEELh/5+TDnUP0njuQ5g6skyKil6vj9+2RI4/Vjodp+ni5+xct5aDhXavRyUnPRfclX/Cg==} peerDependencies: - storybook: ^8.5.8 + storybook: ^8.6.3 - '@storybook/addon-interactions@8.5.8': - resolution: {integrity: sha512-SDyIV3M+c41QemXgg1OchsFBO6YGZkZcmVeUF8C7aWm5SnzLh6B2OiggiKvRk0v3Eh3rDLXdkx3XdR2F/rG+0Q==} + '@storybook/addon-interactions@8.6.3': + resolution: {integrity: sha512-cDvxuMcjoQdtimNrT4BM9AK0qZJhA0Ep/CWPcVK1bAFzqlzBbe//UZa5It/AeC4EMYAr5rFY+LWEli3YPeOnjQ==} peerDependencies: - storybook: ^8.5.8 + storybook: ^8.6.3 - '@storybook/addon-links@8.5.8': - resolution: {integrity: sha512-nLfcWhqDCTaEB/zPjzdN+FtsJ3WnvrRE7Uq+UZHF/HDqt7EXicUYCnbzHIF6ReyNBFklr48O/RhotDu9cyUDlw==} + '@storybook/addon-links@8.6.3': + resolution: {integrity: sha512-3wGiMZxWbgdjEgymUrCVG5PwU0vAYF9EiSHsGxiSxje69l08GLD6s7FTLx0HwvuyiNFcigLcuF45XZnB252RtA==} peerDependencies: react: 19.0.0 - storybook: ^8.5.8 + storybook: ^8.6.3 peerDependenciesMeta: react: optional: true - '@storybook/addon-measure@8.5.8': - resolution: {integrity: sha512-xf84ByTRkFPoNSck6Z5OJ0kXTYAYgmg/0Ke0eCY/CNgwh7lfjYQBrcjuKiYZ6jyRUMLdysXzIfF9/2MeFqLfIg==} + '@storybook/addon-measure@8.6.3': + resolution: {integrity: sha512-FC/3pqM2adSnwyPOd9AxEoZD5XWCMKAk16urQFQ0M4+IzRUdf2OV8cc7aM/oZiBX36+q/UCcUWm2SbQ5nzNJpg==} peerDependencies: - storybook: ^8.5.8 + storybook: ^8.6.3 - '@storybook/addon-outline@8.5.8': - resolution: {integrity: sha512-NAC9VWZFg2gwvduzJRVAtxPeQfJjB8xfDDgcGjgLOCSQkZDDOmGVdLXf78pykMQKyuu/0YZ989KufAac6kRG5g==} + '@storybook/addon-outline@8.6.3': + resolution: {integrity: sha512-YklKHRkoDLSWawIIBrEI69RAWEdvhkYCOv+fMLu9zBeVPnkwbtIjXN/I+UJwPCm6jlxeEwEUAvbPWZMMf+BkPQ==} peerDependencies: - storybook: ^8.5.8 + storybook: ^8.6.3 '@storybook/addon-styling-webpack@1.0.1': resolution: {integrity: sha512-5n+SXPfMTc4m7sWaJWPWjoHYWc6/B111M2Ia55toQ3GV4ON4vVlTgH9FX+EgCkDticElj99HLTMDJkHRj2yvkg==} peerDependencies: webpack: ^5.0.0 - '@storybook/addon-toolbars@8.5.8': - resolution: {integrity: sha512-AfGdMNBp+vOjyiFKlOyUFLIU0kN1QF4PhVBqd0vYkWAk2w9n6a/ZlG0TcJGe7K5+bcvmZDAerYMKbDMSeg9bAw==} + '@storybook/addon-toolbars@8.6.3': + resolution: {integrity: sha512-GTC1GPrFNfWvvBaQQnGuL7ZfGK5Q+3ZovwQA9tnPu7QZEwea/4CXvUyQh1u0NwqrFZkrabOad1XvYfpRuCPGSA==} peerDependencies: - storybook: ^8.5.8 + storybook: ^8.6.3 - '@storybook/addon-viewport@8.5.8': - resolution: {integrity: sha512-SdoRb4bH99Knj2R+rTcMQQxHrtcIO1GLzTFitAefxBE1OUkq8FNLHMHd0Ip/sCQGLW/5F03U70R2uh7SkhBBYA==} + '@storybook/addon-viewport@8.6.3': + resolution: {integrity: sha512-AixZKiQdBVs7ePj5iV0U1IY2jvH0G7wQJwBRTOq4qC1FKiOsZEYmrwc3wLUBUlVqyenXFKN+H40r4VhPzzSfLw==} peerDependencies: - storybook: ^8.5.8 + storybook: ^8.6.3 '@storybook/addon-webpack5-compiler-swc@2.1.0': resolution: {integrity: sha512-mCzNtuqY8LJqj/2vW12o3S/UujRSBFstxRqhOUErrbbOBRyM6RgcPuvytDdRv1npFi8OaKOIz3SoJBT/EtAN3A==} engines: {node: '>=18'} - '@storybook/blocks@8.5.8': - resolution: {integrity: sha512-O6tJDJM83fDm3ZP1+lTf24l7HOTzSRXkkMDD7zB/JHixzlj9p6wI4UQc2lplLadDCa5ya1IwyE7zUDN/0UfC5Q==} + '@storybook/blocks@8.6.3': + resolution: {integrity: sha512-Ieu6kwqdeAcrLzcX2QIqnCd0XWZi46i4eem8W54JRiOMQMYUpZ7onbciRAP58qxEWrZWqgxPS+tiCTaJe48VVQ==} peerDependencies: react: 19.0.0 react-dom: 19.0.0 - storybook: ^8.5.8 + storybook: ^8.6.3 peerDependenciesMeta: react: optional: true react-dom: optional: true - '@storybook/builder-webpack5@8.5.8': - resolution: {integrity: sha512-QaBIMyqWX/eQs4laQBXvAW9M/ylk73WljJySPlTl+8PNVuDtHli24oBJXwx5aV1NT53BLsaKAn/vb2QNL4+G1Q==} + '@storybook/builder-webpack5@8.6.3': + resolution: {integrity: sha512-+Er6wFbi6O1xAqSsCZwqMcOfKM90n2jYDgSixYTsgqhjEcKLvCX9sn5akyRB1pPl5cGq4zBDIG4l9aLzZLLC3Q==} peerDependencies: - storybook: ^8.5.8 + storybook: ^8.6.3 typescript: '*' peerDependenciesMeta: typescript: optional: true - '@storybook/components@8.5.8': - resolution: {integrity: sha512-PPEMqWPXn7rX+qISaOOv9CDSuuvG538f0+4M5Ppq2LwpjXecgOG5ktqJF0ZqxmTytT+RpEaJmgjGW0dMAKZswA==} - peerDependencies: - storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - '@storybook/components@8.6.0': resolution: {integrity: sha512-k5MQAuLPt5KOaa5J4QvX/WKucaiFTMJiEX5lsSaY6qON6Sx8PtnLQxVwWF7BIMW/jLpd94BUxrVjVrQKlwoLKQ==} peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - '@storybook/core-webpack@8.5.8': - resolution: {integrity: sha512-M2LNQdYp0br8fgKMVtBh7YIo8mQsgALLc4i9PEXRS7wrp+bhvVnA9qhd5xDPzb0Rl4CHYbs4Yvkzo7ZQMibeIQ==} + '@storybook/components@8.6.3': + resolution: {integrity: sha512-q5DQkV+E/j0KfF818RywgqEHjaZTg71q5YY4z0UO8CRSzDQ/VYF6L76oc69corbkJtYAk/GqaYJllzrWykS4sg==} peerDependencies: - storybook: ^8.5.8 + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - '@storybook/core@8.5.8': - resolution: {integrity: sha512-OT02DQhkGpBgn5P+nZOZmbzxqubC4liVqbhpjp/HOGi5cOA3+fCJzDJeSDTu+pPh7dZnopC4XnR+5dWjtOJHdA==} + '@storybook/core-webpack@8.6.3': + resolution: {integrity: sha512-JYrHPwgyiXa4BgfkrUIDyl5Dp1I7xZG+GV7z0m/2wCn1PcDrDJ8iRl2HHbVbHZXYRK3zSp84iRjdBK4DF94HGQ==} + peerDependencies: + storybook: ^8.6.3 + + '@storybook/core@8.6.3': + resolution: {integrity: sha512-0iMTfmo3UFCa1hFJLtThnRIppkIpGPyTL3MElhORP1t5l9lCUq5am0ymbi/TeCbsJPjE86FjeO0NinokL9iQiw==} peerDependencies: prettier: ^2 || ^3 peerDependenciesMeta: prettier: optional: true - '@storybook/csf-plugin@8.5.8': - resolution: {integrity: sha512-9p+TFutbvtPYEmg14UsvqBDWKP/p/+OkIdi+gkwCMw0yiJF/+7ErMHDB0vr5SpJpU7SFQmfpY2c/LaglEtaniw==} + '@storybook/csf-plugin@8.6.3': + resolution: {integrity: sha512-0QDLBcMOxSEt1yH28cvIsoiaIokIxDDShMnxVJHWk/7+KZ3xe4lZBfKCWZspZoJmrxgz10gLRifj1b3ysIFlyA==} peerDependencies: - storybook: ^8.5.8 - - '@storybook/csf@0.1.12': - resolution: {integrity: sha512-9/exVhabisyIVL0VxTCxo01Tdm8wefIXKXfltAPTSr8cbLn5JAxGQ6QV3mjdecLGEOucfoVhAKtJfVHxEK1iqw==} + storybook: ^8.6.3 '@storybook/global@5.0.0': resolution: {integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==} @@ -5064,43 +5061,43 @@ packages: react: 19.0.0 react-dom: 19.0.0 - '@storybook/instrumenter@8.5.8': - resolution: {integrity: sha512-+d5bbnwqcSQlj0wkZo6/1b+8rge70EU2wTq14DO22/VSXa9nm3bwPJlEyqBT7laWmC4DJQWHVJwF/790KjT9yg==} + '@storybook/instrumenter@8.6.3': + resolution: {integrity: sha512-Y5n6JWCWdOqok08Hgklsc98TBoqROhAhBRSzNWuIaLsRhz8EziXQtuEkWqmVbyYOys25iTZiK3S8+QQkOzGrBw==} peerDependencies: - storybook: ^8.5.8 - - '@storybook/manager-api@8.5.8': - resolution: {integrity: sha512-ik3yikvYxAJMDFg0s3Pm7hZWucAlkFaaO7e2RlfOctaJFdaEi3evR4RS7GdmS38uKBEk31RC7x+nnIJkqEC59A==} - peerDependencies: - storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + storybook: ^8.6.3 '@storybook/manager-api@8.6.0': resolution: {integrity: sha512-ddBibYrO3yQCdtZBqQYqfABjR9eS+llvt2NFDajfyQw+zmuNIZfw4BDGKH1WHE4wm/kXmlFFhPHXaHgAPTRPfQ==} peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + '@storybook/manager-api@8.6.3': + resolution: {integrity: sha512-7m9MQELc6XpuKIuliqMiQWzl8yVWpUDwTcpr+rTT7l3OfRzw7Y00UFct2tI03YG6EXsxsykw8EmueMQhe0lG5Q==} + peerDependencies: + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + '@storybook/node-logger@8.1.6': resolution: {integrity: sha512-IZEiTLFHu8Oom/vdEGpisSw5CfU+cw6/fTaX1P3EVClFOWVuy8/3X5MPu4wJH3jPym6E2DBduIUFeRsiuq61gA==} - '@storybook/preset-react-webpack@8.5.8': - resolution: {integrity: sha512-8x64BAMQWe66EEBWbhS4EUh3q+0/WynHm5MyGVGU+5zy8WEpSLK5et0xbU2xXJCCJfVEB8Q3Mc/giF3iUoAyZw==} + '@storybook/preset-react-webpack@8.6.3': + resolution: {integrity: sha512-ROZdvtRm0jtApA21DQa4q5FkG3EPiHdYEWp01DxtGQrenl8YV4JBF3va9sYcPFki2gW+lx/iVpAcHfIAR7PS2Q==} engines: {node: '>=18.0.0'} peerDependencies: react: 19.0.0 react-dom: 19.0.0 - storybook: ^8.5.8 + storybook: ^8.6.3 typescript: '*' peerDependenciesMeta: typescript: optional: true - '@storybook/preview-api@8.5.8': - resolution: {integrity: sha512-HJoz2o28VVprnU5OG6JO6CHrD3ah6qVPWixbnmyUKd0hOYF5dayK5ptmeLyUpYX56Eb2KoYcuVaeQqAby4RkNw==} + '@storybook/preview-api@8.6.0': + resolution: {integrity: sha512-c/sZj4Tb+DtdCndcjoFUneUwl2XUdQckqN4nf1SuIJ/BXRbAexlD04fvPJ4wzmwUNg8EQF7BhTWVNDa1RvJz2w==} peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - '@storybook/preview-api@8.6.0': - resolution: {integrity: sha512-c/sZj4Tb+DtdCndcjoFUneUwl2XUdQckqN4nf1SuIJ/BXRbAexlD04fvPJ4wzmwUNg8EQF7BhTWVNDa1RvJz2w==} + '@storybook/preview-api@8.6.3': + resolution: {integrity: sha512-y2Ic6eHBQD/AwaCHctKOJ4tOM1r7/mPXfhGh0I+Qf8kZPlDTgQcJ6Z7/Ruma1L+ijXPBWouDaPw51gipcX+t9Q==} peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 @@ -5110,13 +5107,6 @@ packages: typescript: '>= 4.x' webpack: '>= 4' - '@storybook/react-dom-shim@8.5.8': - resolution: {integrity: sha512-UT/kGJHPW+HLNCTmI1rV1to+dUZuXKUTaRv2wZ2BUq2/gjIuePyqQZYVQeb0LkZbuH2uviLrPfXpS5d3/RSUJw==} - peerDependencies: - react: 19.0.0 - react-dom: 19.0.0 - storybook: ^8.5.8 - '@storybook/react-dom-shim@8.6.0': resolution: {integrity: sha512-5Y+vMHhcx0xnaNsLQMbkmjc3zkDn/fGBNsiLH2e4POvW3ZQvOxjoyxAsEQaKwLtFgsdCFSd2tR89F6ItYrA2JQ==} peerDependencies: @@ -5124,30 +5114,22 @@ packages: react-dom: 19.0.0 storybook: ^8.6.0 - '@storybook/react-webpack5@8.5.8': - resolution: {integrity: sha512-ZgYrJF7IptRIc0q7aYlrW2oq3EZpLIGWQca3V75jebyOgfiWJ9bOmhTqlItAwg9Jx08VzcmGczcLSWCMzfyAMA==} - engines: {node: '>=18.0.0'} + '@storybook/react-dom-shim@8.6.3': + resolution: {integrity: sha512-vE3LA2TxbzDF1Fso2IgvUtoHc+8a6laKhuJdx8frP5A8M1KGOBfuEPFCCcE49Q90HUlDgwb/zQl1GNq/QjLgWQ==} peerDependencies: react: 19.0.0 react-dom: 19.0.0 - storybook: ^8.5.8 - typescript: '>= 4.2.x' - peerDependenciesMeta: - typescript: - optional: true + storybook: ^8.6.3 - '@storybook/react@8.5.8': - resolution: {integrity: sha512-QYgKpInR2FLiJHsRoGKCzNhKTRNjOssbLZVd3B0ZABUee+AjkwE0Pey7x2XaNAcp9PxSjQXEPGu+DlaP4BWw2Q==} + '@storybook/react-webpack5@8.6.3': + resolution: {integrity: sha512-T4dpvXUMiG7zMLZcFuJNshMr9rUulowl2AyqLd2LjQtN32COAzhn6uKJkFycTHkOMM8qC03WNefc55MNJVtr/w==} engines: {node: '>=18.0.0'} peerDependencies: - '@storybook/test': 8.5.8 react: 19.0.0 react-dom: 19.0.0 - storybook: ^8.5.8 + storybook: ^8.6.3 typescript: '>= 4.2.x' peerDependenciesMeta: - '@storybook/test': - optional: true typescript: optional: true @@ -5166,23 +5148,38 @@ packages: typescript: optional: true - '@storybook/test@8.5.8': - resolution: {integrity: sha512-cpdl9Vk4msRnkINwwSNLklyWXOwAsLAA7JsHMICNPR2GFVc8T+TwZHATcRToCHXhFJTZBMMBYrnqCdD5C2Kr3g==} + '@storybook/react@8.6.3': + resolution: {integrity: sha512-B4WYRWU2Y71UWl4CG3+mcB7duNln9finJyDB8Y1o2CYWUxgEo+3Bnp3k7NUr++tYVkZI1H+28UWeX0rpCkvReQ==} + engines: {node: '>=18.0.0'} peerDependencies: - storybook: ^8.5.8 + '@storybook/test': 8.6.3 + react: 19.0.0 + react-dom: 19.0.0 + storybook: ^8.6.3 + typescript: '>= 4.2.x' + peerDependenciesMeta: + '@storybook/test': + optional: true + typescript: + optional: true - '@storybook/theming@8.5.8': - resolution: {integrity: sha512-/Rm6BV778sCT+3Ok861VYmw9BlEV5zcCq2zg5TOVuk8HqZw7H7VHtubVsjukEuhveYCs+oF+i2tv/II6jh6jdg==} + '@storybook/test@8.6.3': + resolution: {integrity: sha512-UimvhV/PmYoXCwIbGpkyqQfMhjdH2GaHJbV6BWr7M7BHA3kUS6zYJAm2V2CC5SYcmyj7FejLB4tgL7FmLXB6hA==} peerDependencies: - storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + storybook: ^8.6.3 '@storybook/theming@8.6.0': resolution: {integrity: sha512-te7dl0ZXnEyKS4LW+QHc3MP7nurWhWhmClY7G2WKNW9eHenb9zvXkcAQt6c4OWhrJi01CAYoXmZNJP0jEzxRRQ==} peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - '@storybook/types@8.5.8': - resolution: {integrity: sha512-XAXi5w+mG8v8m8FFNPE0uDJb5ms39oU+HDOb6hYOYVOt4ezQkKI3g45T9qlqKfdR9rK22zB9JGUYpDir+O7zeA==} + '@storybook/theming@8.6.3': + resolution: {integrity: sha512-sDcWnnko73KOCIc9stQyec9KvTmGOuMswqeKtWh0ha/wsgYB6G2/2j1xOheFmWKPitOsbwgvqtjCP7bRE68uIA==} + peerDependencies: + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + + '@storybook/types@8.6.3': + resolution: {integrity: sha512-lU2PO4SBhgtDru7TH/18jFNY7I5aFPdmd7BpZk1dkHuOgklOKUU2yC6VtRoRu8cJUmhzuUXET/K/FHOx95c4dw==} peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 @@ -5392,6 +5389,9 @@ packages: '@types/node@22.13.5': resolution: {integrity: sha512-+lTU0PxZXn0Dr1NBtC7Y8cR21AJr87dLLU953CWA6pMxxv/UDc7jYAY90upcrie1nRcD6XNG5HOYEDtgW5TxAg==} + '@types/node@22.13.8': + resolution: {integrity: sha512-G3EfaZS+iOGYWLLRCEAXdWK9my08oHNZ+FHluRiggIYJPOXzhOiDgpVCUHaUvyIC5/fj7C/p637jdzC666AOKQ==} + '@types/node@22.8.7': resolution: {integrity: sha512-LidcG+2UeYIWcMuMUpBKOnryBWG/rnmOHQR5apjn8myTQcx3rinFRn7DcIFhMnS0PPFSC6OafdIKEad0lj6U0Q==} @@ -7215,8 +7215,8 @@ packages: peerDependencies: eslint: '>=8.0.0' - eslint-plugin-react-debug@1.28.0: - resolution: {integrity: sha512-GsypuqEV/kzIgKUXRGMUf5+9s/lAC8QTs9IkTzranUnKA2kEKtiHypZ6xPwA4gMvZa8KX6pRjTWylbbsP+Lkzw==} + eslint-plugin-react-debug@1.29.0: + resolution: {integrity: sha512-b+WKuaa0wKOXtCj1DGaxEQQhqUOH/BVOz3fwydeEx3xl9n8+LBHvAy4gzozTZu7MYZRhBzSP5WCysG6hmirQ+A==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -7225,8 +7225,8 @@ packages: typescript: optional: true - eslint-plugin-react-dom@1.28.0: - resolution: {integrity: sha512-KjVJL4oSCSDEx1jmQ1ikZ875BkMPN3TcrrjlvqiaOojNXlbGBgo4w4ADndgRWwGOAmv71DDXtTyvb8LaAsAzjA==} + eslint-plugin-react-dom@1.29.0: + resolution: {integrity: sha512-FjnFyN7TPLCCo2g0Nd8SoNKPyEnsMpZ7OyPsJrCUOPzmL6nI+/6JEO9GabU93THZ0bXh7acuh/d0zLmqAhXmSw==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -7235,8 +7235,8 @@ packages: typescript: optional: true - eslint-plugin-react-hooks-extra@1.28.0: - resolution: {integrity: sha512-aqvRPBr1is5clBMzlUeTJC6TcaIyRDA1lUSUaO5QaCoJ9cc3WpyhhEO4VffX2g028YlwsRVObQz+roRPkCo2dg==} + eslint-plugin-react-hooks-extra@1.29.0: + resolution: {integrity: sha512-0ELoqiCRPlVGwyRT+KW4arYySs67qO393dbLbz6SEYw8RMDjuRER5MhB6O30X+vLKr1xjfoC6fFxz+zk2UFQTw==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -7245,14 +7245,14 @@ packages: typescript: optional: true - eslint-plugin-react-hooks@5.1.0: - resolution: {integrity: sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw==} + eslint-plugin-react-hooks@5.2.0: + resolution: {integrity: sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 - eslint-plugin-react-naming-convention@1.28.0: - resolution: {integrity: sha512-5EDlIWRWg7nSL15z0j1zpdb8vHbB7DGEMlW3koKsYo65sryicPxWXBybkxg38oXoKrNvwgvjZhXNvftKZle01Q==} + eslint-plugin-react-naming-convention@1.29.0: + resolution: {integrity: sha512-KOoGkwCbORjaQl+vE+l1qtLJVmAweczp2tHew70yQDVUOsCGKUvuE/hVW7JnU7jOH+OEJyDsrv/ENFCXZNE2Rg==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -7266,8 +7266,8 @@ packages: peerDependencies: eslint: '>=8.40' - eslint-plugin-react-web-api@1.28.0: - resolution: {integrity: sha512-uECq1oF2oiLaETZoxh8e9MVwae2QOLDmZTJhVcOmb3giWgx3UKI/b/sNl7/u/UtUS1dZHvSTRRvE75dTBl3PNw==} + eslint-plugin-react-web-api@1.29.0: + resolution: {integrity: sha512-4JC6nmGGBcB2PTg8nmqpMXeip9Jdlyg0OYzi2GLBIVd6XvZnptTC4IB77PtZ4NoeJA+6rJ5mz9ExH9+w3NliFw==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -7276,8 +7276,8 @@ packages: typescript: optional: true - eslint-plugin-react-x@1.28.0: - resolution: {integrity: sha512-LbDX+3WVAetM1fFX83vXnlO4Eu1NX3+bcsCUS6rEIF+egDYAVQC87Su4ZmXZOdVQI5HTBidJs9Ji7ZwjgCUglw==} + eslint-plugin-react-x@1.29.0: + resolution: {integrity: sha512-SdmIFVcSd9JIIM+bQpH/yuxvtiXiWaoSL5gzPpmAJcSuF0Qy1LDpzhyv3GkkEzGolJwiFXkDvVx3DPpuSz3Xrg==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -10262,8 +10262,8 @@ packages: webpack: optional: true - storybook@8.5.8: - resolution: {integrity: sha512-k3QDa7z4a656oO3Mx929KNm+xIdEI2nIDCKatVl1mA6vt+ge+uwoiG+ro182J9LOEppR5XXD2mQQi4u1xNsy6A==} + storybook@8.6.3: + resolution: {integrity: sha512-Vbmd8/FXp6X0AOMak6arcg3WdkHj+2AYJTNHbCPVHsCEbnREyRZIG+Eq5/Ffmy6byiz+4OAX5HwsHGSMR6Xmow==} hasBin: true peerDependencies: prettier: ^2 || ^3 @@ -10666,8 +10666,8 @@ packages: engines: {node: '>=14.17'} hasBin: true - typescript@5.7.3: - resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==} + typescript@5.8.2: + resolution: {integrity: sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==} engines: {node: '>=14.17'} hasBin: true @@ -11164,16 +11164,16 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - '@antfu/eslint-config@4.3.0(@eslint-react/eslint-plugin@1.28.0(eslint@9.21.0(jiti@2.4.2))(ts-api-utils@2.0.1(typescript@5.7.3))(typescript@5.7.3))(@typescript-eslint/utils@8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3))(@vue/compiler-sfc@3.4.38)(eslint-plugin-format@1.0.1(eslint@9.21.0(jiti@2.4.2)))(eslint-plugin-react-hooks@5.1.0(eslint@9.21.0(jiti@2.4.2)))(eslint-plugin-react-refresh@0.4.19(eslint@9.21.0(jiti@2.4.2)))(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)(vitest@3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': + '@antfu/eslint-config@4.3.0(@eslint-react/eslint-plugin@1.29.0(eslint@9.21.0(jiti@2.4.2))(ts-api-utils@2.0.1(typescript@5.8.2))(typescript@5.8.2))(@typescript-eslint/utils@8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2))(@vue/compiler-sfc@3.4.38)(eslint-plugin-format@1.0.1(eslint@9.21.0(jiti@2.4.2)))(eslint-plugin-react-hooks@5.2.0(eslint@9.21.0(jiti@2.4.2)))(eslint-plugin-react-refresh@0.4.19(eslint@9.21.0(jiti@2.4.2)))(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2)(vitest@3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': dependencies: '@antfu/install-pkg': 1.0.0 '@clack/prompts': 0.10.0 '@eslint-community/eslint-plugin-eslint-comments': 4.4.1(eslint@9.21.0(jiti@2.4.2)) '@eslint/markdown': 6.2.2 - '@stylistic/eslint-plugin': 4.0.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/eslint-plugin': 8.24.1(@typescript-eslint/parser@8.24.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/parser': 8.24.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) - '@vitest/eslint-plugin': 1.1.31(@typescript-eslint/utils@8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)(vitest@3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + '@stylistic/eslint-plugin': 4.0.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/eslint-plugin': 8.24.1(@typescript-eslint/parser@8.24.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/parser': 8.24.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + '@vitest/eslint-plugin': 1.1.31(@typescript-eslint/utils@8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2)(vitest@3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) ansis: 3.15.0 cac: 6.7.14 eslint: 9.21.0(jiti@2.4.2) @@ -11182,16 +11182,16 @@ snapshots: eslint-merge-processors: 2.0.0(eslint@9.21.0(jiti@2.4.2)) eslint-plugin-antfu: 3.1.0(eslint@9.21.0(jiti@2.4.2)) eslint-plugin-command: 3.1.0(eslint@9.21.0(jiti@2.4.2)) - eslint-plugin-import-x: 4.6.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + eslint-plugin-import-x: 4.6.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) eslint-plugin-jsdoc: 50.6.3(eslint@9.21.0(jiti@2.4.2)) eslint-plugin-jsonc: 2.19.1(eslint@9.21.0(jiti@2.4.2)) eslint-plugin-n: 17.15.1(eslint@9.21.0(jiti@2.4.2)) eslint-plugin-no-only-tests: 3.3.0 - eslint-plugin-perfectionist: 4.9.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + eslint-plugin-perfectionist: 4.9.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) eslint-plugin-regexp: 2.7.0(eslint@9.21.0(jiti@2.4.2)) eslint-plugin-toml: 0.12.0(eslint@9.21.0(jiti@2.4.2)) eslint-plugin-unicorn: 57.0.0(eslint@9.21.0(jiti@2.4.2)) - eslint-plugin-unused-imports: 4.1.4(@typescript-eslint/eslint-plugin@8.24.1(@typescript-eslint/parser@8.24.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.21.0(jiti@2.4.2)) + eslint-plugin-unused-imports: 4.1.4(@typescript-eslint/eslint-plugin@8.24.1(@typescript-eslint/parser@8.24.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.21.0(jiti@2.4.2)) eslint-plugin-vue: 9.32.0(eslint@9.21.0(jiti@2.4.2)) eslint-plugin-yml: 1.17.0(eslint@9.21.0(jiti@2.4.2)) eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.4.38)(eslint@9.21.0(jiti@2.4.2)) @@ -11203,9 +11203,9 @@ snapshots: vue-eslint-parser: 9.4.3(eslint@9.21.0(jiti@2.4.2)) yaml-eslint-parser: 1.2.3 optionalDependencies: - '@eslint-react/eslint-plugin': 1.28.0(eslint@9.21.0(jiti@2.4.2))(ts-api-utils@2.0.1(typescript@5.7.3))(typescript@5.7.3) + '@eslint-react/eslint-plugin': 1.29.0(eslint@9.21.0(jiti@2.4.2))(ts-api-utils@2.0.1(typescript@5.8.2))(typescript@5.8.2) eslint-plugin-format: 1.0.1(eslint@9.21.0(jiti@2.4.2)) - eslint-plugin-react-hooks: 5.1.0(eslint@9.21.0(jiti@2.4.2)) + eslint-plugin-react-hooks: 5.2.0(eslint@9.21.0(jiti@2.4.2)) eslint-plugin-react-refresh: 0.4.19(eslint@9.21.0(jiti@2.4.2)) transitivePeerDependencies: - '@eslint/json' @@ -11474,13 +11474,13 @@ snapshots: '@babel/helper-string-parser': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 - '@chromatic-com/storybook@3.2.4(react@19.0.0)(storybook@8.5.8(prettier@3.4.2))': + '@chromatic-com/storybook@3.2.5(react@19.0.0)(storybook@8.6.3(prettier@3.4.2))': dependencies: chromatic: 11.20.2 filesize: 10.1.6 jsonfile: 6.1.0 react-confetti: 6.2.2(react@19.0.0) - storybook: 8.5.8(prettier@3.4.2) + storybook: 8.6.3(prettier@3.4.2) strip-ansi: 7.1.0 transitivePeerDependencies: - '@chromatic-com/cypress' @@ -11498,11 +11498,11 @@ snapshots: picocolors: 1.1.1 sisteransi: 1.0.5 - '@commitlint/cli@19.7.1(@types/node@22.13.5)(typescript@5.7.3)': + '@commitlint/cli@19.7.1(@types/node@22.13.5)(typescript@5.8.2)': dependencies: '@commitlint/format': 19.5.0 '@commitlint/lint': 19.7.1 - '@commitlint/load': 19.6.1(@types/node@22.13.5)(typescript@5.7.3) + '@commitlint/load': 19.6.1(@types/node@22.13.5)(typescript@5.8.2) '@commitlint/read': 19.5.0 '@commitlint/types': 19.5.0 tinyexec: 0.3.2 @@ -11549,15 +11549,15 @@ snapshots: '@commitlint/rules': 19.6.0 '@commitlint/types': 19.5.0 - '@commitlint/load@19.6.1(@types/node@22.13.5)(typescript@5.7.3)': + '@commitlint/load@19.6.1(@types/node@22.13.5)(typescript@5.8.2)': dependencies: '@commitlint/config-validator': 19.5.0 '@commitlint/execute-rule': 19.5.0 '@commitlint/resolve-extends': 19.5.0 '@commitlint/types': 19.5.0 chalk: 5.4.1 - cosmiconfig: 9.0.0(typescript@5.7.3) - cosmiconfig-typescript-loader: 6.1.0(@types/node@22.13.5)(cosmiconfig@9.0.0(typescript@5.7.3))(typescript@5.7.3) + cosmiconfig: 9.0.0(typescript@5.8.2) + cosmiconfig-typescript-loader: 6.1.0(@types/node@22.13.5)(cosmiconfig@9.0.0(typescript@5.8.2))(typescript@5.8.2) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -11980,12 +11980,12 @@ snapshots: '@eslint-community/regexpp@4.12.1': {} - '@eslint-react/ast@1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)': + '@eslint-react/ast@1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: - '@eslint-react/eff': 1.28.0 + '@eslint-react/eff': 1.29.0 '@typescript-eslint/types': 8.25.0 - '@typescript-eslint/typescript-estree': 8.25.0(typescript@5.7.3) - '@typescript-eslint/utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/typescript-estree': 8.25.0(typescript@5.8.2) + '@typescript-eslint/utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) string-ts: 2.2.1 ts-pattern: 5.6.2 transitivePeerDependencies: @@ -11993,17 +11993,17 @@ snapshots: - supports-color - typescript - '@eslint-react/core@1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)': + '@eslint-react/core@1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: - '@eslint-react/ast': 1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) - '@eslint-react/eff': 1.28.0 - '@eslint-react/jsx': 1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) - '@eslint-react/shared': 1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) - '@eslint-react/var': 1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@eslint-react/ast': 1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/eff': 1.29.0 + '@eslint-react/jsx': 1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/shared': 1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/var': 1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/scope-manager': 8.25.0 - '@typescript-eslint/type-utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/type-utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/types': 8.25.0 - '@typescript-eslint/utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) birecord: 0.1.1 ts-pattern: 5.6.2 transitivePeerDependencies: @@ -12011,47 +12011,47 @@ snapshots: - supports-color - typescript - '@eslint-react/eff@1.28.0': {} + '@eslint-react/eff@1.29.0': {} - '@eslint-react/eslint-plugin@1.28.0(eslint@9.21.0(jiti@2.4.2))(ts-api-utils@2.0.1(typescript@5.7.3))(typescript@5.7.3)': + '@eslint-react/eslint-plugin@1.29.0(eslint@9.21.0(jiti@2.4.2))(ts-api-utils@2.0.1(typescript@5.8.2))(typescript@5.8.2)': dependencies: - '@eslint-react/eff': 1.28.0 - '@eslint-react/shared': 1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@eslint-react/eff': 1.29.0 + '@eslint-react/shared': 1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/scope-manager': 8.25.0 - '@typescript-eslint/type-utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/type-utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/types': 8.25.0 - '@typescript-eslint/utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) eslint: 9.21.0(jiti@2.4.2) - eslint-plugin-react-debug: 1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) - eslint-plugin-react-dom: 1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) - eslint-plugin-react-hooks-extra: 1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) - eslint-plugin-react-naming-convention: 1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) - eslint-plugin-react-web-api: 1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) - eslint-plugin-react-x: 1.28.0(eslint@9.21.0(jiti@2.4.2))(ts-api-utils@2.0.1(typescript@5.7.3))(typescript@5.7.3) + eslint-plugin-react-debug: 1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + eslint-plugin-react-dom: 1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + eslint-plugin-react-hooks-extra: 1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + eslint-plugin-react-naming-convention: 1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + eslint-plugin-react-web-api: 1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + eslint-plugin-react-x: 1.29.0(eslint@9.21.0(jiti@2.4.2))(ts-api-utils@2.0.1(typescript@5.8.2))(typescript@5.8.2) optionalDependencies: - typescript: 5.7.3 + typescript: 5.8.2 transitivePeerDependencies: - supports-color - ts-api-utils - '@eslint-react/jsx@1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)': + '@eslint-react/jsx@1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: - '@eslint-react/ast': 1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) - '@eslint-react/eff': 1.28.0 - '@eslint-react/var': 1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@eslint-react/ast': 1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/eff': 1.29.0 + '@eslint-react/var': 1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/scope-manager': 8.25.0 '@typescript-eslint/types': 8.25.0 - '@typescript-eslint/utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) ts-pattern: 5.6.2 transitivePeerDependencies: - eslint - supports-color - typescript - '@eslint-react/shared@1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)': + '@eslint-react/shared@1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: - '@eslint-react/eff': 1.28.0 - '@typescript-eslint/utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@eslint-react/eff': 1.29.0 + '@typescript-eslint/utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) picomatch: 4.0.2 ts-pattern: 5.6.2 transitivePeerDependencies: @@ -12059,13 +12059,13 @@ snapshots: - supports-color - typescript - '@eslint-react/var@1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)': + '@eslint-react/var@1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: - '@eslint-react/ast': 1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) - '@eslint-react/eff': 1.28.0 + '@eslint-react/ast': 1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/eff': 1.29.0 '@typescript-eslint/scope-manager': 8.25.0 '@typescript-eslint/types': 8.25.0 - '@typescript-eslint/utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) string-ts: 2.2.1 ts-pattern: 5.6.2 transitivePeerDependencies: @@ -12243,23 +12243,23 @@ snapshots: '@types/react': 19.0.8 react: 19.0.0 - '@microsoft/api-extractor-model@7.30.2(@types/node@22.13.5)': + '@microsoft/api-extractor-model@7.30.2(@types/node@22.13.8)': dependencies: '@microsoft/tsdoc': 0.15.1 '@microsoft/tsdoc-config': 0.17.1 - '@rushstack/node-core-library': 5.10.2(@types/node@22.13.5) + '@rushstack/node-core-library': 5.10.2(@types/node@22.13.8) transitivePeerDependencies: - '@types/node' - '@microsoft/api-extractor@7.49.1(@types/node@22.13.5)': + '@microsoft/api-extractor@7.49.1(@types/node@22.13.8)': dependencies: - '@microsoft/api-extractor-model': 7.30.2(@types/node@22.13.5) + '@microsoft/api-extractor-model': 7.30.2(@types/node@22.13.8) '@microsoft/tsdoc': 0.15.1 '@microsoft/tsdoc-config': 0.17.1 - '@rushstack/node-core-library': 5.10.2(@types/node@22.13.5) + '@rushstack/node-core-library': 5.10.2(@types/node@22.13.8) '@rushstack/rig-package': 0.5.3 - '@rushstack/terminal': 0.14.5(@types/node@22.13.5) - '@rushstack/ts-command-line': 4.23.3(@types/node@22.13.5) + '@rushstack/terminal': 0.14.5(@types/node@22.13.8) + '@rushstack/ts-command-line': 4.23.3(@types/node@22.13.8) lodash: 4.17.21 minimatch: 3.0.8 resolve: 1.22.10 @@ -12690,24 +12690,24 @@ snapshots: '@react-dnd/shallowequal@4.0.2': {} - '@release-it-plugins/workspaces@4.2.0(release-it@17.11.0(typescript@5.7.3))': + '@release-it-plugins/workspaces@4.2.0(release-it@17.11.0(typescript@5.8.2))': dependencies: detect-indent: 6.1.0 detect-newline: 3.1.0 - release-it: 17.11.0(typescript@5.7.3) + release-it: 17.11.0(typescript@5.8.2) semver: 7.6.2 url-join: 4.0.1 validate-peer-dependencies: 1.2.0 walk-sync: 2.2.0 yaml: 2.4.5 - '@release-it/conventional-changelog@9.0.4(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.0.0)(release-it@17.11.0(typescript@5.7.3))': + '@release-it/conventional-changelog@9.0.4(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.0.0)(release-it@17.11.0(typescript@5.8.2))': dependencies: concat-stream: 2.0.0 conventional-changelog: 6.0.0(conventional-commits-filter@5.0.0) conventional-recommended-bump: 10.0.0 git-semver-tags: 8.0.0(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.0.0) - release-it: 17.11.0(typescript@5.7.3) + release-it: 17.11.0(typescript@5.8.2) semver: 7.6.3 transitivePeerDependencies: - conventional-commits-filter @@ -12778,7 +12778,7 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.34.8': optional: true - '@rushstack/node-core-library@5.10.2(@types/node@22.13.5)': + '@rushstack/node-core-library@5.10.2(@types/node@22.13.8)': dependencies: ajv: 8.13.0 ajv-draft-04: 1.0.0(ajv@8.13.0) @@ -12789,23 +12789,23 @@ snapshots: resolve: 1.22.10 semver: 7.5.4 optionalDependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.8 '@rushstack/rig-package@0.5.3': dependencies: resolve: 1.22.10 strip-json-comments: 3.1.1 - '@rushstack/terminal@0.14.5(@types/node@22.13.5)': + '@rushstack/terminal@0.14.5(@types/node@22.13.8)': dependencies: - '@rushstack/node-core-library': 5.10.2(@types/node@22.13.5) + '@rushstack/node-core-library': 5.10.2(@types/node@22.13.8) supports-color: 8.1.1 optionalDependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.8 - '@rushstack/ts-command-line@4.23.3(@types/node@22.13.5)': + '@rushstack/ts-command-line@4.23.3(@types/node@22.13.8)': dependencies: - '@rushstack/terminal': 0.14.5(@types/node@22.13.5) + '@rushstack/terminal': 0.14.5(@types/node@22.13.8) '@types/argparse': 1.0.38 argparse: 1.0.10 string-argv: 0.3.2 @@ -12814,91 +12814,90 @@ snapshots: '@sindresorhus/merge-streams@2.3.0': {} - '@storybook/addon-actions@8.5.8(storybook@8.5.8(prettier@3.4.2))': + '@storybook/addon-actions@8.6.3(storybook@8.6.3(prettier@3.4.2))': dependencies: '@storybook/global': 5.0.0 '@types/uuid': 9.0.8 dequal: 2.0.3 polished: 4.3.1 - storybook: 8.5.8(prettier@3.4.2) + storybook: 8.6.3(prettier@3.4.2) uuid: 9.0.1 - '@storybook/addon-backgrounds@8.5.8(storybook@8.5.8(prettier@3.4.2))': + '@storybook/addon-backgrounds@8.6.3(storybook@8.6.3(prettier@3.4.2))': dependencies: '@storybook/global': 5.0.0 memoizerific: 1.11.3 - storybook: 8.5.8(prettier@3.4.2) + storybook: 8.6.3(prettier@3.4.2) ts-dedent: 2.2.0 - '@storybook/addon-controls@8.5.8(storybook@8.5.8(prettier@3.4.2))': + '@storybook/addon-controls@8.6.3(storybook@8.6.3(prettier@3.4.2))': dependencies: '@storybook/global': 5.0.0 dequal: 2.0.3 - storybook: 8.5.8(prettier@3.4.2) + storybook: 8.6.3(prettier@3.4.2) ts-dedent: 2.2.0 - '@storybook/addon-docs@8.5.8(@types/react@19.0.8)(storybook@8.5.8(prettier@3.4.2))': + '@storybook/addon-docs@8.6.3(@types/react@19.0.8)(storybook@8.6.3(prettier@3.4.2))': dependencies: '@mdx-js/react': 3.1.0(@types/react@19.0.8)(react@19.0.0) - '@storybook/blocks': 8.5.8(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.8(prettier@3.4.2)) - '@storybook/csf-plugin': 8.5.8(storybook@8.5.8(prettier@3.4.2)) - '@storybook/react-dom-shim': 8.5.8(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.8(prettier@3.4.2)) + '@storybook/blocks': 8.6.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.3(prettier@3.4.2)) + '@storybook/csf-plugin': 8.6.3(storybook@8.6.3(prettier@3.4.2)) + '@storybook/react-dom-shim': 8.6.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.3(prettier@3.4.2)) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - storybook: 8.5.8(prettier@3.4.2) + storybook: 8.6.3(prettier@3.4.2) ts-dedent: 2.2.0 transitivePeerDependencies: - '@types/react' - '@storybook/addon-essentials@8.5.8(@types/react@19.0.8)(storybook@8.5.8(prettier@3.4.2))': + '@storybook/addon-essentials@8.6.3(@types/react@19.0.8)(storybook@8.6.3(prettier@3.4.2))': dependencies: - '@storybook/addon-actions': 8.5.8(storybook@8.5.8(prettier@3.4.2)) - '@storybook/addon-backgrounds': 8.5.8(storybook@8.5.8(prettier@3.4.2)) - '@storybook/addon-controls': 8.5.8(storybook@8.5.8(prettier@3.4.2)) - '@storybook/addon-docs': 8.5.8(@types/react@19.0.8)(storybook@8.5.8(prettier@3.4.2)) - '@storybook/addon-highlight': 8.5.8(storybook@8.5.8(prettier@3.4.2)) - '@storybook/addon-measure': 8.5.8(storybook@8.5.8(prettier@3.4.2)) - '@storybook/addon-outline': 8.5.8(storybook@8.5.8(prettier@3.4.2)) - '@storybook/addon-toolbars': 8.5.8(storybook@8.5.8(prettier@3.4.2)) - '@storybook/addon-viewport': 8.5.8(storybook@8.5.8(prettier@3.4.2)) - storybook: 8.5.8(prettier@3.4.2) + '@storybook/addon-actions': 8.6.3(storybook@8.6.3(prettier@3.4.2)) + '@storybook/addon-backgrounds': 8.6.3(storybook@8.6.3(prettier@3.4.2)) + '@storybook/addon-controls': 8.6.3(storybook@8.6.3(prettier@3.4.2)) + '@storybook/addon-docs': 8.6.3(@types/react@19.0.8)(storybook@8.6.3(prettier@3.4.2)) + '@storybook/addon-highlight': 8.6.3(storybook@8.6.3(prettier@3.4.2)) + '@storybook/addon-measure': 8.6.3(storybook@8.6.3(prettier@3.4.2)) + '@storybook/addon-outline': 8.6.3(storybook@8.6.3(prettier@3.4.2)) + '@storybook/addon-toolbars': 8.6.3(storybook@8.6.3(prettier@3.4.2)) + '@storybook/addon-viewport': 8.6.3(storybook@8.6.3(prettier@3.4.2)) + storybook: 8.6.3(prettier@3.4.2) ts-dedent: 2.2.0 transitivePeerDependencies: - '@types/react' - '@storybook/addon-highlight@8.5.8(storybook@8.5.8(prettier@3.4.2))': + '@storybook/addon-highlight@8.6.3(storybook@8.6.3(prettier@3.4.2))': dependencies: '@storybook/global': 5.0.0 - storybook: 8.5.8(prettier@3.4.2) + storybook: 8.6.3(prettier@3.4.2) - '@storybook/addon-interactions@8.5.8(storybook@8.5.8(prettier@3.4.2))': + '@storybook/addon-interactions@8.6.3(storybook@8.6.3(prettier@3.4.2))': dependencies: '@storybook/global': 5.0.0 - '@storybook/instrumenter': 8.5.8(storybook@8.5.8(prettier@3.4.2)) - '@storybook/test': 8.5.8(storybook@8.5.8(prettier@3.4.2)) + '@storybook/instrumenter': 8.6.3(storybook@8.6.3(prettier@3.4.2)) + '@storybook/test': 8.6.3(storybook@8.6.3(prettier@3.4.2)) polished: 4.3.1 - storybook: 8.5.8(prettier@3.4.2) + storybook: 8.6.3(prettier@3.4.2) ts-dedent: 2.2.0 - '@storybook/addon-links@8.5.8(react@19.0.0)(storybook@8.5.8(prettier@3.4.2))': + '@storybook/addon-links@8.6.3(react@19.0.0)(storybook@8.6.3(prettier@3.4.2))': dependencies: - '@storybook/csf': 0.1.12 '@storybook/global': 5.0.0 - storybook: 8.5.8(prettier@3.4.2) + storybook: 8.6.3(prettier@3.4.2) ts-dedent: 2.2.0 optionalDependencies: react: 19.0.0 - '@storybook/addon-measure@8.5.8(storybook@8.5.8(prettier@3.4.2))': + '@storybook/addon-measure@8.6.3(storybook@8.6.3(prettier@3.4.2))': dependencies: '@storybook/global': 5.0.0 - storybook: 8.5.8(prettier@3.4.2) + storybook: 8.6.3(prettier@3.4.2) tiny-invariant: 1.3.3 - '@storybook/addon-outline@8.5.8(storybook@8.5.8(prettier@3.4.2))': + '@storybook/addon-outline@8.6.3(storybook@8.6.3(prettier@3.4.2))': dependencies: '@storybook/global': 5.0.0 - storybook: 8.5.8(prettier@3.4.2) + storybook: 8.6.3(prettier@3.4.2) ts-dedent: 2.2.0 '@storybook/addon-styling-webpack@1.0.1(webpack@5.98.0(@swc/core@1.10.18)(esbuild@0.25.0))': @@ -12906,14 +12905,14 @@ snapshots: '@storybook/node-logger': 8.1.6 webpack: 5.98.0(@swc/core@1.10.18)(esbuild@0.25.0) - '@storybook/addon-toolbars@8.5.8(storybook@8.5.8(prettier@3.4.2))': + '@storybook/addon-toolbars@8.6.3(storybook@8.6.3(prettier@3.4.2))': dependencies: - storybook: 8.5.8(prettier@3.4.2) + storybook: 8.6.3(prettier@3.4.2) - '@storybook/addon-viewport@8.5.8(storybook@8.5.8(prettier@3.4.2))': + '@storybook/addon-viewport@8.6.3(storybook@8.6.3(prettier@3.4.2))': dependencies: memoizerific: 1.11.3 - storybook: 8.5.8(prettier@3.4.2) + storybook: 8.6.3(prettier@3.4.2) '@storybook/addon-webpack5-compiler-swc@2.1.0(webpack@5.98.0(@swc/core@1.10.18)(esbuild@0.25.0))': dependencies: @@ -12923,19 +12922,18 @@ snapshots: - '@swc/helpers' - webpack - '@storybook/blocks@8.5.8(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.8(prettier@3.4.2))': + '@storybook/blocks@8.6.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.3(prettier@3.4.2))': dependencies: - '@storybook/csf': 0.1.12 '@storybook/icons': 1.3.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - storybook: 8.5.8(prettier@3.4.2) + storybook: 8.6.3(prettier@3.4.2) ts-dedent: 2.2.0 optionalDependencies: react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@storybook/builder-webpack5@8.5.8(@swc/core@1.10.18)(esbuild@0.25.0)(storybook@8.5.8(prettier@3.4.2))(typescript@5.7.3)': + '@storybook/builder-webpack5@8.6.3(@swc/core@1.10.18)(esbuild@0.25.0)(storybook@8.6.3(prettier@3.4.2))(typescript@5.8.2)': dependencies: - '@storybook/core-webpack': 8.5.8(storybook@8.5.8(prettier@3.4.2)) + '@storybook/core-webpack': 8.6.3(storybook@8.6.3(prettier@3.4.2)) '@types/semver': 7.5.8 browser-assert: 1.2.1 case-sensitive-paths-webpack-plugin: 2.4.0 @@ -12943,13 +12941,13 @@ snapshots: constants-browserify: 1.0.0 css-loader: 6.11.0(webpack@5.98.0(@swc/core@1.10.18)(esbuild@0.25.0)) es-module-lexer: 1.6.0 - fork-ts-checker-webpack-plugin: 8.0.0(typescript@5.7.3)(webpack@5.98.0(@swc/core@1.10.18)(esbuild@0.25.0)) + fork-ts-checker-webpack-plugin: 8.0.0(typescript@5.8.2)(webpack@5.98.0(@swc/core@1.10.18)(esbuild@0.25.0)) html-webpack-plugin: 5.6.3(webpack@5.98.0(@swc/core@1.10.18)(esbuild@0.25.0)) magic-string: 0.30.17 path-browserify: 1.0.1 process: 0.11.10 semver: 7.7.1 - storybook: 8.5.8(prettier@3.4.2) + storybook: 8.6.3(prettier@3.4.2) style-loader: 3.3.4(webpack@5.98.0(@swc/core@1.10.18)(esbuild@0.25.0)) terser-webpack-plugin: 5.3.11(@swc/core@1.10.18)(esbuild@0.25.0)(webpack@5.98.0(@swc/core@1.10.18)(esbuild@0.25.0)) ts-dedent: 2.2.0 @@ -12961,7 +12959,7 @@ snapshots: webpack-hot-middleware: 2.26.1 webpack-virtual-modules: 0.6.2 optionalDependencies: - typescript: 5.7.3 + typescript: 5.8.2 transitivePeerDependencies: - '@rspack/core' - '@swc/core' @@ -12969,22 +12967,22 @@ snapshots: - uglify-js - webpack-cli - '@storybook/components@8.5.8(storybook@8.5.8(prettier@3.4.2))': + '@storybook/components@8.6.0(storybook@8.6.3(prettier@3.4.2))': dependencies: - storybook: 8.5.8(prettier@3.4.2) + storybook: 8.6.3(prettier@3.4.2) - '@storybook/components@8.6.0(storybook@8.5.8(prettier@3.4.2))': + '@storybook/components@8.6.3(storybook@8.6.3(prettier@3.4.2))': dependencies: - storybook: 8.5.8(prettier@3.4.2) + storybook: 8.6.3(prettier@3.4.2) - '@storybook/core-webpack@8.5.8(storybook@8.5.8(prettier@3.4.2))': + '@storybook/core-webpack@8.6.3(storybook@8.6.3(prettier@3.4.2))': dependencies: - storybook: 8.5.8(prettier@3.4.2) + storybook: 8.6.3(prettier@3.4.2) ts-dedent: 2.2.0 - '@storybook/core@8.5.8(prettier@3.4.2)': + '@storybook/core@8.6.3(prettier@3.4.2)(storybook@8.6.3(prettier@3.4.2))': dependencies: - '@storybook/csf': 0.1.12 + '@storybook/theming': 8.6.3(storybook@8.6.3(prettier@3.4.2)) better-opn: 3.0.2 browser-assert: 1.2.1 esbuild: 0.25.0 @@ -12999,18 +12997,15 @@ snapshots: prettier: 3.4.2 transitivePeerDependencies: - bufferutil + - storybook - supports-color - utf-8-validate - '@storybook/csf-plugin@8.5.8(storybook@8.5.8(prettier@3.4.2))': + '@storybook/csf-plugin@8.6.3(storybook@8.6.3(prettier@3.4.2))': dependencies: - storybook: 8.5.8(prettier@3.4.2) + storybook: 8.6.3(prettier@3.4.2) unplugin: 1.16.1 - '@storybook/csf@0.1.12': - dependencies: - type-fest: 2.19.0 - '@storybook/global@5.0.0': {} '@storybook/icons@1.3.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': @@ -13018,27 +13013,27 @@ snapshots: react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@storybook/instrumenter@8.5.8(storybook@8.5.8(prettier@3.4.2))': + '@storybook/instrumenter@8.6.3(storybook@8.6.3(prettier@3.4.2))': dependencies: '@storybook/global': 5.0.0 '@vitest/utils': 2.1.9 - storybook: 8.5.8(prettier@3.4.2) + storybook: 8.6.3(prettier@3.4.2) - '@storybook/manager-api@8.5.8(storybook@8.5.8(prettier@3.4.2))': + '@storybook/manager-api@8.6.0(storybook@8.6.3(prettier@3.4.2))': dependencies: - storybook: 8.5.8(prettier@3.4.2) + storybook: 8.6.3(prettier@3.4.2) - '@storybook/manager-api@8.6.0(storybook@8.5.8(prettier@3.4.2))': + '@storybook/manager-api@8.6.3(storybook@8.6.3(prettier@3.4.2))': dependencies: - storybook: 8.5.8(prettier@3.4.2) + storybook: 8.6.3(prettier@3.4.2) '@storybook/node-logger@8.1.6': {} - '@storybook/preset-react-webpack@8.5.8(@storybook/test@8.5.8(storybook@8.5.8(prettier@3.4.2)))(@swc/core@1.10.18)(esbuild@0.25.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.8(prettier@3.4.2))(typescript@5.7.3)': + '@storybook/preset-react-webpack@8.6.3(@storybook/test@8.6.3(storybook@8.6.3(prettier@3.4.2)))(@swc/core@1.10.18)(esbuild@0.25.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.3(prettier@3.4.2))(typescript@5.8.2)': dependencies: - '@storybook/core-webpack': 8.5.8(storybook@8.5.8(prettier@3.4.2)) - '@storybook/react': 8.5.8(@storybook/test@8.5.8(storybook@8.5.8(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.8(prettier@3.4.2))(typescript@5.7.3) - '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.7.3)(webpack@5.98.0(@swc/core@1.10.18)(esbuild@0.25.0)) + '@storybook/core-webpack': 8.6.3(storybook@8.6.3(prettier@3.4.2)) + '@storybook/react': 8.6.3(@storybook/test@8.6.3(storybook@8.6.3(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.3(prettier@3.4.2))(typescript@5.8.2) + '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.8.2)(webpack@5.98.0(@swc/core@1.10.18)(esbuild@0.25.0)) '@types/semver': 7.5.8 find-up: 5.0.0 magic-string: 0.30.17 @@ -13047,11 +13042,11 @@ snapshots: react-dom: 19.0.0(react@19.0.0) resolve: 1.22.10 semver: 7.7.1 - storybook: 8.5.8(prettier@3.4.2) + storybook: 8.6.3(prettier@3.4.2) tsconfig-paths: 4.2.0 webpack: 5.98.0(@swc/core@1.10.18)(esbuild@0.25.0) optionalDependencies: - typescript: 5.7.3 + typescript: 5.8.2 transitivePeerDependencies: - '@storybook/test' - '@swc/core' @@ -13060,50 +13055,50 @@ snapshots: - uglify-js - webpack-cli - '@storybook/preview-api@8.5.8(storybook@8.5.8(prettier@3.4.2))': + '@storybook/preview-api@8.6.0(storybook@8.6.3(prettier@3.4.2))': dependencies: - storybook: 8.5.8(prettier@3.4.2) + storybook: 8.6.3(prettier@3.4.2) - '@storybook/preview-api@8.6.0(storybook@8.5.8(prettier@3.4.2))': + '@storybook/preview-api@8.6.3(storybook@8.6.3(prettier@3.4.2))': dependencies: - storybook: 8.5.8(prettier@3.4.2) + storybook: 8.6.3(prettier@3.4.2) - '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0(typescript@5.7.3)(webpack@5.98.0(@swc/core@1.10.18)(esbuild@0.25.0))': + '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0(typescript@5.8.2)(webpack@5.98.0(@swc/core@1.10.18)(esbuild@0.25.0))': dependencies: debug: 4.4.0 endent: 2.1.0 find-cache-dir: 3.3.2 flat-cache: 3.2.0 micromatch: 4.0.8 - react-docgen-typescript: 2.2.2(typescript@5.7.3) + react-docgen-typescript: 2.2.2(typescript@5.8.2) tslib: 2.8.1 - typescript: 5.7.3 + typescript: 5.8.2 webpack: 5.98.0(@swc/core@1.10.18)(esbuild@0.25.0) transitivePeerDependencies: - supports-color - '@storybook/react-dom-shim@8.5.8(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.8(prettier@3.4.2))': + '@storybook/react-dom-shim@8.6.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.3(prettier@3.4.2))': dependencies: react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - storybook: 8.5.8(prettier@3.4.2) + storybook: 8.6.3(prettier@3.4.2) - '@storybook/react-dom-shim@8.6.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.8(prettier@3.4.2))': + '@storybook/react-dom-shim@8.6.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.3(prettier@3.4.2))': dependencies: react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - storybook: 8.5.8(prettier@3.4.2) + storybook: 8.6.3(prettier@3.4.2) - '@storybook/react-webpack5@8.5.8(@storybook/test@8.5.8(storybook@8.5.8(prettier@3.4.2)))(@swc/core@1.10.18)(esbuild@0.25.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.8(prettier@3.4.2))(typescript@5.7.3)': + '@storybook/react-webpack5@8.6.3(@storybook/test@8.6.3(storybook@8.6.3(prettier@3.4.2)))(@swc/core@1.10.18)(esbuild@0.25.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.3(prettier@3.4.2))(typescript@5.8.2)': dependencies: - '@storybook/builder-webpack5': 8.5.8(@swc/core@1.10.18)(esbuild@0.25.0)(storybook@8.5.8(prettier@3.4.2))(typescript@5.7.3) - '@storybook/preset-react-webpack': 8.5.8(@storybook/test@8.5.8(storybook@8.5.8(prettier@3.4.2)))(@swc/core@1.10.18)(esbuild@0.25.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.8(prettier@3.4.2))(typescript@5.7.3) - '@storybook/react': 8.5.8(@storybook/test@8.5.8(storybook@8.5.8(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.8(prettier@3.4.2))(typescript@5.7.3) + '@storybook/builder-webpack5': 8.6.3(@swc/core@1.10.18)(esbuild@0.25.0)(storybook@8.6.3(prettier@3.4.2))(typescript@5.8.2) + '@storybook/preset-react-webpack': 8.6.3(@storybook/test@8.6.3(storybook@8.6.3(prettier@3.4.2)))(@swc/core@1.10.18)(esbuild@0.25.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.3(prettier@3.4.2))(typescript@5.8.2) + '@storybook/react': 8.6.3(@storybook/test@8.6.3(storybook@8.6.3(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.3(prettier@3.4.2))(typescript@5.8.2) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - storybook: 8.5.8(prettier@3.4.2) + storybook: 8.6.3(prettier@3.4.2) optionalDependencies: - typescript: 5.7.3 + typescript: 5.8.2 transitivePeerDependencies: - '@rspack/core' - '@storybook/test' @@ -13113,62 +13108,61 @@ snapshots: - uglify-js - webpack-cli - '@storybook/react@8.5.8(@storybook/test@8.5.8(storybook@8.5.8(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.8(prettier@3.4.2))(typescript@5.7.3)': + '@storybook/react@8.6.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.3(prettier@3.4.2))(typescript@5.8.2)': dependencies: - '@storybook/components': 8.5.8(storybook@8.5.8(prettier@3.4.2)) + '@storybook/components': 8.6.0(storybook@8.6.3(prettier@3.4.2)) '@storybook/global': 5.0.0 - '@storybook/manager-api': 8.5.8(storybook@8.5.8(prettier@3.4.2)) - '@storybook/preview-api': 8.5.8(storybook@8.5.8(prettier@3.4.2)) - '@storybook/react-dom-shim': 8.5.8(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.8(prettier@3.4.2)) - '@storybook/theming': 8.5.8(storybook@8.5.8(prettier@3.4.2)) + '@storybook/manager-api': 8.6.0(storybook@8.6.3(prettier@3.4.2)) + '@storybook/preview-api': 8.6.0(storybook@8.6.3(prettier@3.4.2)) + '@storybook/react-dom-shim': 8.6.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.3(prettier@3.4.2)) + '@storybook/theming': 8.6.0(storybook@8.6.3(prettier@3.4.2)) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - storybook: 8.5.8(prettier@3.4.2) + storybook: 8.6.3(prettier@3.4.2) optionalDependencies: - '@storybook/test': 8.5.8(storybook@8.5.8(prettier@3.4.2)) - typescript: 5.7.3 + typescript: 5.8.2 - '@storybook/react@8.6.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.8(prettier@3.4.2))(typescript@5.7.3)': + '@storybook/react@8.6.3(@storybook/test@8.6.3(storybook@8.6.3(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.3(prettier@3.4.2))(typescript@5.8.2)': dependencies: - '@storybook/components': 8.6.0(storybook@8.5.8(prettier@3.4.2)) + '@storybook/components': 8.6.3(storybook@8.6.3(prettier@3.4.2)) '@storybook/global': 5.0.0 - '@storybook/manager-api': 8.6.0(storybook@8.5.8(prettier@3.4.2)) - '@storybook/preview-api': 8.6.0(storybook@8.5.8(prettier@3.4.2)) - '@storybook/react-dom-shim': 8.6.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.8(prettier@3.4.2)) - '@storybook/theming': 8.6.0(storybook@8.5.8(prettier@3.4.2)) + '@storybook/manager-api': 8.6.3(storybook@8.6.3(prettier@3.4.2)) + '@storybook/preview-api': 8.6.3(storybook@8.6.3(prettier@3.4.2)) + '@storybook/react-dom-shim': 8.6.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.3(prettier@3.4.2)) + '@storybook/theming': 8.6.3(storybook@8.6.3(prettier@3.4.2)) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - storybook: 8.5.8(prettier@3.4.2) + storybook: 8.6.3(prettier@3.4.2) optionalDependencies: - typescript: 5.7.3 + '@storybook/test': 8.6.3(storybook@8.6.3(prettier@3.4.2)) + typescript: 5.8.2 - '@storybook/test@8.5.8(storybook@8.5.8(prettier@3.4.2))': + '@storybook/test@8.6.3(storybook@8.6.3(prettier@3.4.2))': dependencies: - '@storybook/csf': 0.1.12 '@storybook/global': 5.0.0 - '@storybook/instrumenter': 8.5.8(storybook@8.5.8(prettier@3.4.2)) + '@storybook/instrumenter': 8.6.3(storybook@8.6.3(prettier@3.4.2)) '@testing-library/dom': 10.4.0 '@testing-library/jest-dom': 6.5.0 '@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0) '@vitest/expect': 2.0.5 '@vitest/spy': 2.0.5 - storybook: 8.5.8(prettier@3.4.2) + storybook: 8.6.3(prettier@3.4.2) - '@storybook/theming@8.5.8(storybook@8.5.8(prettier@3.4.2))': + '@storybook/theming@8.6.0(storybook@8.6.3(prettier@3.4.2))': dependencies: - storybook: 8.5.8(prettier@3.4.2) + storybook: 8.6.3(prettier@3.4.2) - '@storybook/theming@8.6.0(storybook@8.5.8(prettier@3.4.2))': + '@storybook/theming@8.6.3(storybook@8.6.3(prettier@3.4.2))': dependencies: - storybook: 8.5.8(prettier@3.4.2) + storybook: 8.6.3(prettier@3.4.2) - '@storybook/types@8.5.8(storybook@8.5.8(prettier@3.4.2))': + '@storybook/types@8.6.3(storybook@8.6.3(prettier@3.4.2))': dependencies: - storybook: 8.5.8(prettier@3.4.2) + storybook: 8.6.3(prettier@3.4.2) - '@stylistic/eslint-plugin@4.0.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)': + '@stylistic/eslint-plugin@4.0.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: - '@typescript-eslint/utils': 8.24.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/utils': 8.24.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) eslint: 9.21.0(jiti@2.4.2) eslint-visitor-keys: 4.2.0 espree: 10.3.0 @@ -13372,6 +13366,10 @@ snapshots: dependencies: undici-types: 6.20.0 + '@types/node@22.13.8': + dependencies: + undici-types: 6.20.0 + '@types/node@22.8.7': dependencies: undici-types: 6.19.8 @@ -13420,32 +13418,32 @@ snapshots: '@types/validator@13.12.0': {} - '@typescript-eslint/eslint-plugin@8.24.1(@typescript-eslint/parser@8.24.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/eslint-plugin@8.24.1(@typescript-eslint/parser@8.24.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.24.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/parser': 8.24.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/scope-manager': 8.24.1 - '@typescript-eslint/type-utils': 8.24.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/utils': 8.24.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/type-utils': 8.24.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/utils': 8.24.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/visitor-keys': 8.24.1 eslint: 9.21.0(jiti@2.4.2) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 2.0.1(typescript@5.7.3) - typescript: 5.7.3 + ts-api-utils: 2.0.1(typescript@5.8.2) + typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.24.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/parser@8.24.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: '@typescript-eslint/scope-manager': 8.24.1 '@typescript-eslint/types': 8.24.1 - '@typescript-eslint/typescript-estree': 8.24.1(typescript@5.7.3) + '@typescript-eslint/typescript-estree': 8.24.1(typescript@5.8.2) '@typescript-eslint/visitor-keys': 8.24.1 debug: 4.4.0 eslint: 9.21.0(jiti@2.4.2) - typescript: 5.7.3 + typescript: 5.8.2 transitivePeerDependencies: - supports-color @@ -13459,25 +13457,25 @@ snapshots: '@typescript-eslint/types': 8.25.0 '@typescript-eslint/visitor-keys': 8.25.0 - '@typescript-eslint/type-utils@8.24.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/type-utils@8.24.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: - '@typescript-eslint/typescript-estree': 8.24.1(typescript@5.7.3) - '@typescript-eslint/utils': 8.24.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/typescript-estree': 8.24.1(typescript@5.8.2) + '@typescript-eslint/utils': 8.24.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) debug: 4.4.0 eslint: 9.21.0(jiti@2.4.2) - ts-api-utils: 2.0.1(typescript@5.7.3) - typescript: 5.7.3 + ts-api-utils: 2.0.1(typescript@5.8.2) + typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/type-utils@8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: - '@typescript-eslint/typescript-estree': 8.25.0(typescript@5.7.3) - '@typescript-eslint/utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/typescript-estree': 8.25.0(typescript@5.8.2) + '@typescript-eslint/utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) debug: 4.4.0 eslint: 9.21.0(jiti@2.4.2) - ts-api-utils: 2.0.1(typescript@5.7.3) - typescript: 5.7.3 + ts-api-utils: 2.0.1(typescript@5.8.2) + typescript: 5.8.2 transitivePeerDependencies: - supports-color @@ -13485,7 +13483,7 @@ snapshots: '@typescript-eslint/types@8.25.0': {} - '@typescript-eslint/typescript-estree@8.24.1(typescript@5.7.3)': + '@typescript-eslint/typescript-estree@8.24.1(typescript@5.8.2)': dependencies: '@typescript-eslint/types': 8.24.1 '@typescript-eslint/visitor-keys': 8.24.1 @@ -13494,12 +13492,12 @@ snapshots: is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.7.1 - ts-api-utils: 2.0.1(typescript@5.7.3) - typescript: 5.7.3 + ts-api-utils: 2.0.1(typescript@5.8.2) + typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.25.0(typescript@5.7.3)': + '@typescript-eslint/typescript-estree@8.25.0(typescript@5.8.2)': dependencies: '@typescript-eslint/types': 8.25.0 '@typescript-eslint/visitor-keys': 8.25.0 @@ -13508,30 +13506,30 @@ snapshots: is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.7.1 - ts-api-utils: 2.0.1(typescript@5.7.3) - typescript: 5.7.3 + ts-api-utils: 2.0.1(typescript@5.8.2) + typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.24.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/utils@8.24.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@9.21.0(jiti@2.4.2)) '@typescript-eslint/scope-manager': 8.24.1 '@typescript-eslint/types': 8.24.1 - '@typescript-eslint/typescript-estree': 8.24.1(typescript@5.7.3) + '@typescript-eslint/typescript-estree': 8.24.1(typescript@5.8.2) eslint: 9.21.0(jiti@2.4.2) - typescript: 5.7.3 + typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/utils@8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@9.21.0(jiti@2.4.2)) '@typescript-eslint/scope-manager': 8.25.0 '@typescript-eslint/types': 8.25.0 - '@typescript-eslint/typescript-estree': 8.25.0(typescript@5.7.3) + '@typescript-eslint/typescript-estree': 8.25.0(typescript@5.8.2) eslint: 9.21.0(jiti@2.4.2) - typescript: 5.7.3 + typescript: 5.8.2 transitivePeerDependencies: - supports-color @@ -13573,12 +13571,23 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@5.2.1(vite@6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))(vue@3.4.38(typescript@5.7.3))': + '@vitejs/plugin-react@4.3.4(vite@6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': dependencies: - vite: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) - vue: 3.4.38(typescript@5.7.3) + '@babel/core': 7.26.0 + '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) + '@types/babel__core': 7.20.5 + react-refresh: 0.14.2 + vite: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + transitivePeerDependencies: + - supports-color - '@vitest/coverage-istanbul@3.0.7(vitest@3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': + '@vitejs/plugin-vue@5.2.1(vite@6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))(vue@3.4.38(typescript@5.8.2))': + dependencies: + vite: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vue: 3.4.38(typescript@5.8.2) + + '@vitest/coverage-istanbul@3.0.7(vitest@3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': dependencies: '@istanbuljs/schema': 0.1.3 debug: 4.4.0 @@ -13590,16 +13599,16 @@ snapshots: magicast: 0.3.5 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vitest: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) transitivePeerDependencies: - supports-color - '@vitest/eslint-plugin@1.1.31(@typescript-eslint/utils@8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)(vitest@3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': + '@vitest/eslint-plugin@1.1.31(@typescript-eslint/utils@8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2)(vitest@3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': dependencies: - '@typescript-eslint/utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) eslint: 9.21.0(jiti@2.4.2) optionalDependencies: - typescript: 5.7.3 + typescript: 5.8.2 vitest: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) '@vitest/expect@2.0.5': @@ -13624,6 +13633,14 @@ snapshots: optionalDependencies: vite: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + '@vitest/mocker@3.0.7(vite@6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': + dependencies: + '@vitest/spy': 3.0.7 + estree-walker: 3.0.3 + magic-string: 0.30.17 + optionalDependencies: + vite: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + '@vitest/pretty-format@2.0.5': dependencies: tinyrainbow: 1.2.0 @@ -13734,7 +13751,7 @@ snapshots: de-indent: 1.0.2 he: 1.2.0 - '@vue/language-core@2.2.0(typescript@5.7.3)': + '@vue/language-core@2.2.0(typescript@5.8.2)': dependencies: '@volar/language-core': 2.4.11 '@vue/compiler-dom': 3.5.13 @@ -13745,7 +13762,7 @@ snapshots: muggle-string: 0.4.1 path-browserify: 1.0.1 optionalDependencies: - typescript: 5.7.3 + typescript: 5.8.2 '@vue/reactivity@3.4.38': dependencies: @@ -13763,11 +13780,11 @@ snapshots: '@vue/shared': 3.4.38 csstype: 3.1.3 - '@vue/server-renderer@3.4.38(vue@3.4.38(typescript@5.7.3))': + '@vue/server-renderer@3.4.38(vue@3.4.38(typescript@5.8.2))': dependencies: '@vue/compiler-ssr': 3.4.38 '@vue/shared': 3.4.38 - vue: 3.4.38(typescript@5.7.3) + vue: 3.4.38(typescript@5.8.2) '@vue/shared@3.4.38': {} @@ -14586,12 +14603,12 @@ snapshots: dependencies: browserslist: 4.24.4 - cosmiconfig-typescript-loader@6.1.0(@types/node@22.13.5)(cosmiconfig@9.0.0(typescript@5.7.3))(typescript@5.7.3): + cosmiconfig-typescript-loader@6.1.0(@types/node@22.13.5)(cosmiconfig@9.0.0(typescript@5.8.2))(typescript@5.8.2): dependencies: '@types/node': 22.13.5 - cosmiconfig: 9.0.0(typescript@5.7.3) + cosmiconfig: 9.0.0(typescript@5.8.2) jiti: 2.4.2 - typescript: 5.7.3 + typescript: 5.8.2 cosmiconfig@7.1.0: dependencies: @@ -14601,14 +14618,14 @@ snapshots: path-type: 4.0.0 yaml: 1.10.2 - cosmiconfig@9.0.0(typescript@5.7.3): + cosmiconfig@9.0.0(typescript@5.8.2): dependencies: env-paths: 2.2.1 import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 optionalDependencies: - typescript: 5.7.3 + typescript: 5.8.2 cross-env@7.0.3: dependencies: @@ -15146,11 +15163,11 @@ snapshots: fs-extra: 10.1.0 globby: 11.1.0 - esbuild-plugin-vue3@0.4.2(sass@1.77.5)(vue@3.4.38(typescript@5.7.3)): + esbuild-plugin-vue3@0.4.2(sass@1.77.5)(vue@3.4.38(typescript@5.8.2)): dependencies: esbuild: 0.14.54 typescript: 4.9.5 - vue: 3.4.38(typescript@5.7.3) + vue: 3.4.38(typescript@5.8.2) optionalDependencies: sass: 1.77.5 @@ -15327,11 +15344,11 @@ snapshots: dependencies: eslint: 9.21.0(jiti@2.4.2) - eslint-plugin-import-x@4.6.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3): + eslint-plugin-import-x@4.6.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2): dependencies: '@types/doctrine': 0.0.9 '@typescript-eslint/scope-manager': 8.24.1 - '@typescript-eslint/utils': 8.24.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/utils': 8.24.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) debug: 4.4.0 doctrine: 3.0.0 enhanced-resolve: 5.18.1 @@ -15402,96 +15419,97 @@ snapshots: eslint: 9.21.0(jiti@2.4.2) requireindex: 1.2.0 - eslint-plugin-perfectionist@4.9.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3): + eslint-plugin-perfectionist@4.9.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2): dependencies: '@typescript-eslint/types': 8.24.1 - '@typescript-eslint/utils': 8.24.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/utils': 8.24.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) eslint: 9.21.0(jiti@2.4.2) natural-orderby: 5.0.0 transitivePeerDependencies: - supports-color - typescript - eslint-plugin-react-debug@1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3): + eslint-plugin-react-debug@1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2): dependencies: - '@eslint-react/ast': 1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) - '@eslint-react/core': 1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) - '@eslint-react/eff': 1.28.0 - '@eslint-react/jsx': 1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) - '@eslint-react/shared': 1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) - '@eslint-react/var': 1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@eslint-react/ast': 1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/core': 1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/eff': 1.29.0 + '@eslint-react/jsx': 1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/shared': 1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/var': 1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/scope-manager': 8.25.0 - '@typescript-eslint/type-utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/type-utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/types': 8.25.0 - '@typescript-eslint/utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) eslint: 9.21.0(jiti@2.4.2) string-ts: 2.2.1 ts-pattern: 5.6.2 optionalDependencies: - typescript: 5.7.3 + typescript: 5.8.2 transitivePeerDependencies: - supports-color - eslint-plugin-react-dom@1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3): + eslint-plugin-react-dom@1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2): dependencies: - '@eslint-react/ast': 1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) - '@eslint-react/core': 1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) - '@eslint-react/eff': 1.28.0 - '@eslint-react/jsx': 1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) - '@eslint-react/shared': 1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) - '@eslint-react/var': 1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@eslint-react/ast': 1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/core': 1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/eff': 1.29.0 + '@eslint-react/jsx': 1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/shared': 1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/var': 1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/scope-manager': 8.25.0 '@typescript-eslint/types': 8.25.0 - '@typescript-eslint/utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) compare-versions: 6.1.1 eslint: 9.21.0(jiti@2.4.2) string-ts: 2.2.1 ts-pattern: 5.6.2 optionalDependencies: - typescript: 5.7.3 + typescript: 5.8.2 transitivePeerDependencies: - supports-color - eslint-plugin-react-hooks-extra@1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3): + eslint-plugin-react-hooks-extra@1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2): dependencies: - '@eslint-react/ast': 1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) - '@eslint-react/core': 1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) - '@eslint-react/eff': 1.28.0 - '@eslint-react/jsx': 1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) - '@eslint-react/shared': 1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) - '@eslint-react/var': 1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@eslint-react/ast': 1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/core': 1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/eff': 1.29.0 + '@eslint-react/jsx': 1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/shared': 1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/var': 1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/scope-manager': 8.25.0 - '@typescript-eslint/type-utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/type-utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/types': 8.25.0 - '@typescript-eslint/utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) eslint: 9.21.0(jiti@2.4.2) string-ts: 2.2.1 ts-pattern: 5.6.2 optionalDependencies: - typescript: 5.7.3 + typescript: 5.8.2 transitivePeerDependencies: - supports-color - eslint-plugin-react-hooks@5.1.0(eslint@9.21.0(jiti@2.4.2)): + eslint-plugin-react-hooks@5.2.0(eslint@9.21.0(jiti@2.4.2)): dependencies: eslint: 9.21.0(jiti@2.4.2) - eslint-plugin-react-naming-convention@1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3): + eslint-plugin-react-naming-convention@1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2): dependencies: - '@eslint-react/ast': 1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) - '@eslint-react/core': 1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) - '@eslint-react/eff': 1.28.0 - '@eslint-react/jsx': 1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) - '@eslint-react/shared': 1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@eslint-react/ast': 1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/core': 1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/eff': 1.29.0 + '@eslint-react/jsx': 1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/shared': 1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/var': 1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/scope-manager': 8.25.0 - '@typescript-eslint/type-utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/type-utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/types': 8.25.0 - '@typescript-eslint/utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) eslint: 9.21.0(jiti@2.4.2) string-ts: 2.2.1 ts-pattern: 5.6.2 optionalDependencies: - typescript: 5.7.3 + typescript: 5.8.2 transitivePeerDependencies: - supports-color @@ -15499,45 +15517,45 @@ snapshots: dependencies: eslint: 9.21.0(jiti@2.4.2) - eslint-plugin-react-web-api@1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3): + eslint-plugin-react-web-api@1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2): dependencies: - '@eslint-react/ast': 1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) - '@eslint-react/core': 1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) - '@eslint-react/eff': 1.28.0 - '@eslint-react/jsx': 1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) - '@eslint-react/shared': 1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) - '@eslint-react/var': 1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@eslint-react/ast': 1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/core': 1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/eff': 1.29.0 + '@eslint-react/jsx': 1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/shared': 1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/var': 1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/scope-manager': 8.25.0 '@typescript-eslint/types': 8.25.0 - '@typescript-eslint/utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) eslint: 9.21.0(jiti@2.4.2) string-ts: 2.2.1 ts-pattern: 5.6.2 optionalDependencies: - typescript: 5.7.3 + typescript: 5.8.2 transitivePeerDependencies: - supports-color - eslint-plugin-react-x@1.28.0(eslint@9.21.0(jiti@2.4.2))(ts-api-utils@2.0.1(typescript@5.7.3))(typescript@5.7.3): + eslint-plugin-react-x@1.29.0(eslint@9.21.0(jiti@2.4.2))(ts-api-utils@2.0.1(typescript@5.8.2))(typescript@5.8.2): dependencies: - '@eslint-react/ast': 1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) - '@eslint-react/core': 1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) - '@eslint-react/eff': 1.28.0 - '@eslint-react/jsx': 1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) - '@eslint-react/shared': 1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) - '@eslint-react/var': 1.28.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@eslint-react/ast': 1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/core': 1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/eff': 1.29.0 + '@eslint-react/jsx': 1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/shared': 1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint-react/var': 1.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/scope-manager': 8.25.0 - '@typescript-eslint/type-utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/type-utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/types': 8.25.0 - '@typescript-eslint/utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) compare-versions: 6.1.1 eslint: 9.21.0(jiti@2.4.2) - is-immutable-type: 5.0.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + is-immutable-type: 5.0.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) string-ts: 2.2.1 ts-pattern: 5.6.2 optionalDependencies: - ts-api-utils: 2.0.1(typescript@5.7.3) - typescript: 5.7.3 + ts-api-utils: 2.0.1(typescript@5.8.2) + typescript: 5.8.2 transitivePeerDependencies: - supports-color @@ -15609,11 +15627,11 @@ snapshots: semver: 7.7.1 strip-indent: 4.0.0 - eslint-plugin-unused-imports@4.1.4(@typescript-eslint/eslint-plugin@8.24.1(@typescript-eslint/parser@8.24.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.21.0(jiti@2.4.2)): + eslint-plugin-unused-imports@4.1.4(@typescript-eslint/eslint-plugin@8.24.1(@typescript-eslint/parser@8.24.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.21.0(jiti@2.4.2)): dependencies: eslint: 9.21.0(jiti@2.4.2) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.24.1(@typescript-eslint/parser@8.24.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/eslint-plugin': 8.24.1(@typescript-eslint/parser@8.24.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) eslint-plugin-vue@9.32.0(eslint@9.21.0(jiti@2.4.2)): dependencies: @@ -15891,7 +15909,7 @@ snapshots: cross-spawn: 7.0.6 signal-exit: 4.1.0 - fork-ts-checker-webpack-plugin@8.0.0(typescript@5.7.3)(webpack@5.98.0(@swc/core@1.10.18)(esbuild@0.25.0)): + fork-ts-checker-webpack-plugin@8.0.0(typescript@5.8.2)(webpack@5.98.0(@swc/core@1.10.18)(esbuild@0.25.0)): dependencies: '@babel/code-frame': 7.26.2 chalk: 4.1.2 @@ -15905,7 +15923,7 @@ snapshots: schema-utils: 3.3.0 semver: 7.7.1 tapable: 2.2.1 - typescript: 5.7.3 + typescript: 5.8.2 webpack: 5.98.0(@swc/core@1.10.18)(esbuild@0.25.0) form-data@4.0.0: @@ -16439,13 +16457,13 @@ snapshots: dependencies: is-extglob: 2.1.1 - is-immutable-type@5.0.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3): + is-immutable-type@5.0.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2): dependencies: - '@typescript-eslint/type-utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/type-utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) eslint: 9.21.0(jiti@2.4.2) - ts-api-utils: 2.0.1(typescript@5.7.3) - ts-declaration-location: 1.0.5(typescript@5.7.3) - typescript: 5.7.3 + ts-api-utils: 2.0.1(typescript@5.8.2) + ts-declaration-location: 1.0.5(typescript@5.8.2) + typescript: 5.8.2 transitivePeerDependencies: - supports-color @@ -16662,7 +16680,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.8 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -17907,9 +17925,9 @@ snapshots: optionalDependencies: postcss: 8.4.49 - postcss-loader@8.1.1(postcss@8.5.3)(typescript@5.7.3)(webpack@5.98.0(@swc/core@1.10.18)(esbuild@0.25.0)): + postcss-loader@8.1.1(postcss@8.5.3)(typescript@5.8.2)(webpack@5.98.0(@swc/core@1.10.18)(esbuild@0.25.0)): dependencies: - cosmiconfig: 9.0.0(typescript@5.7.3) + cosmiconfig: 9.0.0(typescript@5.8.2) jiti: 1.21.6 postcss: 8.5.3 semver: 7.6.3 @@ -18157,7 +18175,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 22.13.5 + '@types/node': 22.13.8 long: 5.3.1 protocols@2.0.1: {} @@ -18375,26 +18393,26 @@ snapshots: dependencies: dnd-core: 16.0.1 - react-dnd-multi-backend@8.1.2(dnd-core@16.0.1)(react-dnd@16.0.1(@types/node@22.13.5)(@types/react@19.0.8)(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + react-dnd-multi-backend@8.1.2(dnd-core@16.0.1)(react-dnd@16.0.1(@types/node@22.13.8)(@types/react@19.0.8)(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: dnd-core: 16.0.1 dnd-multi-backend: 8.1.2(dnd-core@16.0.1) react: 19.0.0 - react-dnd: 16.0.1(@types/node@22.13.5)(@types/react@19.0.8)(react@19.0.0) - react-dnd-preview: 8.1.2(react-dnd@16.0.1(@types/node@22.13.5)(@types/react@19.0.8)(react@19.0.0))(react@19.0.0) + react-dnd: 16.0.1(@types/node@22.13.8)(@types/react@19.0.8)(react@19.0.0) + react-dnd-preview: 8.1.2(react-dnd@16.0.1(@types/node@22.13.8)(@types/react@19.0.8)(react@19.0.0))(react@19.0.0) react-dom: 19.0.0(react@19.0.0) - react-dnd-preview@8.1.2(react-dnd@16.0.1(@types/node@22.13.5)(@types/react@19.0.8)(react@19.0.0))(react@19.0.0): + react-dnd-preview@8.1.2(react-dnd@16.0.1(@types/node@22.13.8)(@types/react@19.0.8)(react@19.0.0))(react@19.0.0): dependencies: react: 19.0.0 - react-dnd: 16.0.1(@types/node@22.13.5)(@types/react@19.0.8)(react@19.0.0) + react-dnd: 16.0.1(@types/node@22.13.8)(@types/react@19.0.8)(react@19.0.0) react-dnd-touch-backend@16.0.1: dependencies: '@react-dnd/invariant': 4.0.2 dnd-core: 16.0.1 - react-dnd@16.0.1(@types/node@22.13.5)(@types/react@19.0.8)(react@19.0.0): + react-dnd@16.0.1(@types/node@22.13.8)(@types/react@19.0.8)(react@19.0.0): dependencies: '@react-dnd/invariant': 4.0.2 '@react-dnd/shallowequal': 4.0.2 @@ -18403,12 +18421,12 @@ snapshots: hoist-non-react-statics: 3.3.2 react: 19.0.0 optionalDependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.8 '@types/react': 19.0.8 - react-docgen-typescript@2.2.2(typescript@5.7.3): + react-docgen-typescript@2.2.2(typescript@5.8.2): dependencies: - typescript: 5.7.3 + typescript: 5.8.2 react-docgen@7.1.1: dependencies: @@ -18465,7 +18483,7 @@ snapshots: react-is@18.3.1: {} - react-mosaic-component@6.1.1(@types/node@22.13.5)(@types/react@19.0.8)(dnd-core@16.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + react-mosaic-component@6.1.1(@types/node@22.13.8)(@types/react@19.0.8)(dnd-core@16.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: classnames: 2.5.1 immutability-helper: 3.1.1 @@ -18473,9 +18491,9 @@ snapshots: prop-types: 15.8.1 rdndmb-html5-to-touch: 8.1.2(dnd-core@16.0.1) react: 19.0.0 - react-dnd: 16.0.1(@types/node@22.13.5)(@types/react@19.0.8)(react@19.0.0) + react-dnd: 16.0.1(@types/node@22.13.8)(@types/react@19.0.8)(react@19.0.0) react-dnd-html5-backend: 16.0.1 - react-dnd-multi-backend: 8.1.2(dnd-core@16.0.1)(react-dnd@16.0.1(@types/node@22.13.5)(@types/react@19.0.8)(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react-dnd-multi-backend: 8.1.2(dnd-core@16.0.1)(react-dnd@16.0.1(@types/node@22.13.8)(@types/react@19.0.8)(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react-dnd-touch-backend: 16.0.1 uuid: 9.0.1 transitivePeerDependencies: @@ -18644,14 +18662,14 @@ snapshots: relateurl@0.2.7: {} - release-it@17.11.0(typescript@5.7.3): + release-it@17.11.0(typescript@5.8.2): dependencies: '@iarna/toml': 2.2.5 '@octokit/rest': 20.1.1 async-retry: 1.3.3 chalk: 5.4.1 ci-info: 4.1.0 - cosmiconfig: 9.0.0(typescript@5.7.3) + cosmiconfig: 9.0.0(typescript@5.8.2) execa: 8.0.0 git-url-parse: 14.0.0 globby: 14.0.2 @@ -19043,9 +19061,9 @@ snapshots: terser-webpack-plugin: 5.3.11(@swc/core@1.10.18)(esbuild@0.25.0)(webpack@5.98.0(@swc/core@1.10.18)(esbuild@0.25.0)) webpack: 5.98.0(@swc/core@1.10.18)(esbuild@0.25.0) - storybook@8.5.8(prettier@3.4.2): + storybook@8.6.3(prettier@3.4.2): dependencies: - '@storybook/core': 8.5.8(prettier@3.4.2) + '@storybook/core': 8.6.3(prettier@3.4.2)(storybook@8.6.3(prettier@3.4.2)) optionalDependencies: prettier: 3.4.2 transitivePeerDependencies: @@ -19337,14 +19355,14 @@ snapshots: collapse-white-space: 2.1.0 n-gram: 2.0.2 - ts-api-utils@2.0.1(typescript@5.7.3): + ts-api-utils@2.0.1(typescript@5.8.2): dependencies: - typescript: 5.7.3 + typescript: 5.8.2 - ts-declaration-location@1.0.5(typescript@5.7.3): + ts-declaration-location@1.0.5(typescript@5.8.2): dependencies: minimatch: 10.0.1 - typescript: 5.7.3 + typescript: 5.8.2 ts-dedent@2.2.0: {} @@ -19460,7 +19478,7 @@ snapshots: typescript@5.7.2: {} - typescript@5.7.3: {} + typescript@5.8.2: {} ufo@1.5.4: {} @@ -19634,20 +19652,41 @@ snapshots: - tsx - yaml - vite-plugin-dts@4.5.0(@types/node@22.13.5)(rollup@4.34.8)(typescript@5.7.3)(vite@6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)): + vite-node@3.0.7(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0): dependencies: - '@microsoft/api-extractor': 7.49.1(@types/node@22.13.5) + cac: 6.7.14 + debug: 4.4.0 + es-module-lexer: 1.6.0 + pathe: 2.0.3 + vite: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + transitivePeerDependencies: + - '@types/node' + - jiti + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + + vite-plugin-dts@4.5.0(@types/node@22.13.8)(rollup@4.34.8)(typescript@5.8.2)(vite@6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)): + dependencies: + '@microsoft/api-extractor': 7.49.1(@types/node@22.13.8) '@rollup/pluginutils': 5.1.4(rollup@4.34.8) '@volar/typescript': 2.4.11 - '@vue/language-core': 2.2.0(typescript@5.7.3) + '@vue/language-core': 2.2.0(typescript@5.8.2) compare-versions: 6.1.1 debug: 4.4.0 kolorist: 1.8.0 local-pkg: 0.5.1 magic-string: 0.30.17 - typescript: 5.7.3 + typescript: 5.8.2 optionalDependencies: - vite: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) transitivePeerDependencies: - '@types/node' - rollup @@ -19674,6 +19713,21 @@ snapshots: tsx: 4.19.3 yaml: 2.7.0 + vite@6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0): + dependencies: + esbuild: 0.25.0 + postcss: 8.5.3 + rollup: 4.34.8 + optionalDependencies: + '@types/node': 22.13.8 + fsevents: 2.3.3 + jiti: 2.4.2 + less: 4.2.2 + sass: 1.77.5 + terser: 5.39.0 + tsx: 4.19.3 + yaml: 2.7.0 + vitest@3.0.7(@types/debug@4.1.12)(@types/node@22.13.5)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0): dependencies: '@vitest/expect': 3.0.7 @@ -19715,6 +19769,47 @@ snapshots: - tsx - yaml + vitest@3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(happy-dom@15.0.0)(jiti@2.4.2)(jsdom@24.1.1)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0): + dependencies: + '@vitest/expect': 3.0.7 + '@vitest/mocker': 3.0.7(vite@6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + '@vitest/pretty-format': 3.0.7 + '@vitest/runner': 3.0.7 + '@vitest/snapshot': 3.0.7 + '@vitest/spy': 3.0.7 + '@vitest/utils': 3.0.7 + chai: 5.2.0 + debug: 4.4.0 + expect-type: 1.1.0 + magic-string: 0.30.17 + pathe: 2.0.3 + std-env: 3.8.0 + tinybench: 2.9.0 + tinyexec: 0.3.2 + tinypool: 1.0.2 + tinyrainbow: 2.0.0 + vite: 6.2.0(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite-node: 3.0.7(@types/node@22.13.8)(jiti@2.4.2)(less@4.2.2)(sass@1.77.5)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + why-is-node-running: 2.3.0 + optionalDependencies: + '@types/debug': 4.1.12 + '@types/node': 22.13.8 + happy-dom: 15.0.0 + jsdom: 24.1.1 + transitivePeerDependencies: + - jiti + - less + - lightningcss + - msw + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + vscode-uri@3.0.8: {} vue-eslint-parser@9.4.3(eslint@9.21.0(jiti@2.4.2)): @@ -19730,15 +19825,15 @@ snapshots: transitivePeerDependencies: - supports-color - vue@3.4.38(typescript@5.7.3): + vue@3.4.38(typescript@5.8.2): dependencies: '@vue/compiler-dom': 3.4.38 '@vue/compiler-sfc': 3.4.38 '@vue/runtime-dom': 3.4.38 - '@vue/server-renderer': 3.4.38(vue@3.4.38(typescript@5.7.3)) + '@vue/server-renderer': 3.4.38(vue@3.4.38(typescript@5.8.2)) '@vue/shared': 3.4.38 optionalDependencies: - typescript: 5.7.3 + typescript: 5.8.2 w3c-xmlserializer@5.0.0: dependencies: diff --git a/tests/formula-integration/package.json b/tests/formula-integration/package.json index 2b39764885..2c018378f5 100644 --- a/tests/formula-integration/package.json +++ b/tests/formula-integration/package.json @@ -25,7 +25,7 @@ }, "devDependencies": { "@univerjs-infra/shared": "workspace:*", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "vitest": "^3.0.7" } }