@formicoidea/labre-core 0.31.0 → 0.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_pkgs/affine-block-callout/callout-block.d.ts +6 -0
- package/dist/_pkgs/affine-block-callout/callout-block.js +25 -3
- package/dist/_pkgs/affine-block-callout/callout-keymap.js +59 -19
- package/dist/_pkgs/affine-block-callout/commands/callout-to-paragraph.d.ts +20 -0
- package/dist/_pkgs/affine-block-callout/commands/callout-to-paragraph.js +60 -0
- package/dist/_pkgs/affine-block-callout/commands/split-callout.d.ts +17 -0
- package/dist/_pkgs/affine-block-callout/commands/split-callout.js +42 -0
- package/dist/_pkgs/affine-block-callout/configs/slash-menu.js +9 -6
- package/dist/_pkgs/affine-block-callout/emoji-margin.d.ts +9 -0
- package/dist/_pkgs/affine-block-callout/emoji-margin.js +36 -0
- package/dist/_pkgs/affine-block-callout/emoji-menu.d.ts +5 -1
- package/dist/_pkgs/affine-block-callout/emoji-menu.js +5 -0
- package/dist/_pkgs/affine-block-code/code-block.d.ts +14 -0
- package/dist/_pkgs/affine-block-code/code-block.js +44 -6
- package/dist/_pkgs/affine-block-code/code-toolbar/components/code-toolbar.d.ts +2 -0
- package/dist/_pkgs/affine-block-code/code-toolbar/components/code-toolbar.js +23 -14
- package/dist/_pkgs/affine-block-code/code-toolbar/components/more-menu.d.ts +16 -0
- package/dist/_pkgs/affine-block-code/code-toolbar/components/more-menu.js +93 -0
- package/dist/_pkgs/affine-block-code/code-toolbar/config.js +52 -5
- package/dist/_pkgs/affine-block-code/effects.d.ts +2 -0
- package/dist/_pkgs/affine-block-code/effects.js +2 -0
- package/dist/_pkgs/affine-block-code/highlight/affine-code-unit.js +6 -1
- package/dist/_pkgs/affine-block-code/index.d.ts +1 -0
- package/dist/_pkgs/affine-block-code/index.js +1 -0
- package/dist/_pkgs/affine-block-code/line-numbers.d.ts +25 -0
- package/dist/_pkgs/affine-block-code/line-numbers.js +27 -0
- package/dist/_pkgs/affine-block-code/styles.js +31 -0
- package/dist/_pkgs/affine-block-data-view/data-view-block.js +1 -0
- package/dist/_pkgs/affine-block-database/components/title/index.js +4 -1
- package/dist/_pkgs/affine-block-database/configs/slash-menu.js +28 -1
- package/dist/_pkgs/affine-block-database/database-block.js +13 -0
- package/dist/_pkgs/affine-block-database/properties/paste-url.d.ts +24 -0
- package/dist/_pkgs/affine-block-database/properties/paste-url.js +98 -0
- package/dist/_pkgs/affine-block-database/properties/rich-text/cell-renderer.js +9 -19
- package/dist/_pkgs/affine-block-database/properties/title/text.js +20 -25
- package/dist/_pkgs/affine-block-database/views/index.js +1 -0
- package/dist/_pkgs/affine-block-edgeless-text/edgeless-text-block.js +10 -0
- package/dist/_pkgs/affine-block-edgeless-text/edgeless-toolbar/config.d.ts +3 -0
- package/dist/_pkgs/affine-block-edgeless-text/edgeless-toolbar/config.js +48 -1
- package/dist/_pkgs/affine-block-edgeless-text/edgeless-toolbar/font-size.d.ts +17 -0
- package/dist/_pkgs/affine-block-edgeless-text/edgeless-toolbar/font-size.js +24 -0
- package/dist/_pkgs/affine-block-embed-doc/common/doc-trashed.d.ts +9 -0
- package/dist/_pkgs/affine-block-embed-doc/common/doc-trashed.js +10 -0
- package/dist/_pkgs/affine-block-embed-doc/embed-linked-doc-block/embed-linked-doc-block.js +8 -4
- package/dist/_pkgs/affine-block-embed-doc/embed-synced-doc-block/embed-synced-doc-block.d.ts +4 -0
- package/dist/_pkgs/affine-block-embed-doc/embed-synced-doc-block/embed-synced-doc-block.js +22 -3
- package/dist/_pkgs/affine-block-frame/frame-manager.d.ts +13 -0
- package/dist/_pkgs/affine-block-frame/frame-manager.js +32 -2
- package/dist/_pkgs/affine-block-latex/styles.js +6 -1
- package/dist/_pkgs/affine-block-note/note-edgeless-block.d.ts +9 -0
- package/dist/_pkgs/affine-block-note/note-edgeless-block.js +29 -1
- package/dist/_pkgs/affine-block-root/commands/pivot-commands.d.ts +37 -0
- package/dist/_pkgs/affine-block-root/commands/pivot-commands.js +168 -0
- package/dist/_pkgs/affine-block-root/commands/reading-commands.d.ts +23 -0
- package/dist/_pkgs/affine-block-root/commands/reading-commands.js +107 -0
- package/dist/_pkgs/affine-block-root/commands/tag-commands.d.ts +47 -0
- package/dist/_pkgs/affine-block-root/commands/tag-commands.js +159 -0
- package/dist/_pkgs/affine-block-root/configs/toolbar.d.ts +1 -0
- package/dist/_pkgs/affine-block-root/edgeless/configs/toolbar/more.js +9 -2
- package/dist/_pkgs/affine-block-root/edgeless/configs/toolbar/render-linked-doc.js +1 -1
- package/dist/_pkgs/affine-block-root/edgeless/edgeless-keyboard.js +26 -1
- package/dist/_pkgs/affine-block-root/edgeless/edgeless-root-block.js +11 -2
- package/dist/_pkgs/affine-block-root/edgeless/edgeless-root-service.js +14 -0
- package/dist/_pkgs/affine-block-root/edgeless/index.d.ts +1 -0
- package/dist/_pkgs/affine-block-root/edgeless/index.js +1 -0
- package/dist/_pkgs/affine-block-root/edgeless/reserved-keys.d.ts +21 -0
- package/dist/_pkgs/affine-block-root/edgeless/reserved-keys.js +34 -0
- package/dist/_pkgs/affine-block-root/edgeless/utils/clone-utils.d.ts +7 -1
- package/dist/_pkgs/affine-block-root/edgeless/utils/clone-utils.js +11 -2
- package/dist/_pkgs/affine-block-root/index.d.ts +4 -1
- package/dist/_pkgs/affine-block-root/index.js +4 -1
- package/dist/_pkgs/affine-block-root/keyboard/commands.d.ts +2 -0
- package/dist/_pkgs/affine-block-root/keyboard/commands.js +147 -0
- package/dist/_pkgs/affine-block-root/view.js +13 -4
- package/dist/_pkgs/affine-block-surface/commands/reassociate-connectors.js +0 -1
- package/dist/_pkgs/affine-block-surface/effects.js +6 -0
- package/dist/_pkgs/affine-block-surface/element-model/index.d.ts +5 -2
- package/dist/_pkgs/affine-block-surface/element-model/index.js +4 -2
- package/dist/_pkgs/affine-block-surface/extensions/audit.d.ts +107 -0
- package/dist/_pkgs/affine-block-surface/extensions/audit.js +472 -0
- package/dist/_pkgs/affine-block-surface/extensions/crud-extension.d.ts +14 -0
- package/dist/_pkgs/affine-block-surface/extensions/crud-extension.js +27 -0
- package/dist/_pkgs/affine-block-surface/extensions/editor-anchored-panel.d.ts +133 -0
- package/dist/_pkgs/affine-block-surface/extensions/editor-anchored-panel.js +326 -0
- package/dist/_pkgs/affine-block-surface/extensions/index.d.ts +13 -0
- package/dist/_pkgs/affine-block-surface/extensions/index.js +13 -0
- package/dist/_pkgs/affine-block-surface/extensions/map-quality-widget.d.ts +146 -0
- package/dist/_pkgs/affine-block-surface/extensions/map-quality-widget.js +528 -0
- package/dist/_pkgs/affine-block-surface/extensions/map-quality.d.ts +109 -0
- package/dist/_pkgs/affine-block-surface/extensions/map-quality.js +84 -0
- package/dist/_pkgs/affine-block-surface/extensions/reading-toolbar.d.ts +15 -0
- package/dist/_pkgs/affine-block-surface/extensions/reading-toolbar.js +158 -0
- package/dist/_pkgs/affine-block-surface/extensions/reading-widget.d.ts +145 -0
- package/dist/_pkgs/affine-block-surface/extensions/reading-widget.js +590 -0
- package/dist/_pkgs/affine-block-surface/extensions/reading.d.ts +494 -0
- package/dist/_pkgs/affine-block-surface/extensions/reading.js +767 -0
- package/dist/_pkgs/affine-block-surface/extensions/spotlight.d.ts +45 -0
- package/dist/_pkgs/affine-block-surface/extensions/spotlight.js +177 -0
- package/dist/_pkgs/affine-block-surface/extensions/tags-toolbar.d.ts +10 -0
- package/dist/_pkgs/affine-block-surface/extensions/tags-toolbar.js +295 -0
- package/dist/_pkgs/affine-block-surface/extensions/validation-toolbar.d.ts +27 -0
- package/dist/_pkgs/affine-block-surface/extensions/validation-toolbar.js +361 -0
- package/dist/_pkgs/affine-block-surface/extensions/validation.d.ts +1340 -0
- package/dist/_pkgs/affine-block-surface/extensions/validation.js +3009 -0
- package/dist/_pkgs/affine-block-surface/extensions/violation-detail-widget.d.ts +286 -0
- package/dist/_pkgs/affine-block-surface/extensions/violation-detail-widget.js +907 -0
- package/dist/_pkgs/affine-block-surface/extensions/violation-timeline.d.ts +80 -0
- package/dist/_pkgs/affine-block-surface/extensions/violation-timeline.js +123 -0
- package/dist/_pkgs/affine-block-surface/framework-background/def.d.ts +321 -0
- package/dist/_pkgs/affine-block-surface/framework-background/def.js +81 -0
- package/dist/_pkgs/affine-block-surface/framework-background/facts.d.ts +188 -0
- package/dist/_pkgs/affine-block-surface/framework-background/facts.js +284 -0
- package/dist/_pkgs/affine-block-surface/framework-background/index.d.ts +5 -0
- package/dist/_pkgs/affine-block-surface/framework-background/index.js +5 -0
- package/dist/_pkgs/affine-block-surface/framework-background/interaction.d.ts +12 -0
- package/dist/_pkgs/affine-block-surface/framework-background/interaction.js +24 -0
- package/dist/_pkgs/affine-block-surface/framework-background/labels.d.ts +59 -0
- package/dist/_pkgs/affine-block-surface/framework-background/labels.js +117 -0
- package/dist/_pkgs/affine-block-surface/framework-background/renderer.d.ts +8 -0
- package/dist/_pkgs/affine-block-surface/framework-background/renderer.js +238 -0
- package/dist/_pkgs/affine-block-surface/index.d.ts +1 -0
- package/dist/_pkgs/affine-block-surface/index.js +1 -0
- package/dist/_pkgs/affine-block-surface/renderer/canvas-renderer.d.ts +69 -3
- package/dist/_pkgs/affine-block-surface/renderer/canvas-renderer.js +333 -44
- package/dist/_pkgs/affine-block-surface/renderer/dom-renderer.js +18 -2
- package/dist/_pkgs/affine-block-surface/tool/default-tool.js +8 -0
- package/dist/_pkgs/affine-block-surface/utils/font.js +9 -3
- package/dist/_pkgs/affine-block-surface/view.d.ts +17 -0
- package/dist/_pkgs/affine-block-surface/view.js +57 -2
- package/dist/_pkgs/affine-block-table/selection-controller.d.ts +6 -0
- package/dist/_pkgs/affine-block-table/selection-controller.js +24 -1
- package/dist/_pkgs/affine-block-table/table-block.js +8 -2
- package/dist/_pkgs/affine-block-table/table-cell.js +5 -6
- package/dist/_pkgs/affine-block-table/table-keymap.d.ts +18 -0
- package/dist/_pkgs/affine-block-table/table-keymap.js +41 -0
- package/dist/_pkgs/affine-block-table/utils.d.ts +7 -0
- package/dist/_pkgs/affine-block-table/utils.js +12 -0
- package/dist/_pkgs/affine-block-table/view.js +2 -0
- package/dist/_pkgs/affine-components/caption/captioned-block-component.js +2 -1
- package/dist/_pkgs/affine-components/context-menu/button.d.ts +7 -0
- package/dist/_pkgs/affine-components/context-menu/button.js +7 -2
- package/dist/_pkgs/affine-components/context-menu/input.d.ts +4 -0
- package/dist/_pkgs/affine-components/context-menu/input.js +12 -0
- package/dist/_pkgs/affine-components/context-menu/menu-all.d.ts +2 -0
- package/dist/_pkgs/affine-components/context-menu/menu-renderer.js +8 -1
- package/dist/_pkgs/affine-components/context-menu/sub-menu.js +3 -0
- package/dist/_pkgs/affine-components/highlight-dropdown-menu/highlight-duotone-icon.js +8 -8
- package/dist/_pkgs/affine-components/highlight-dropdown-menu/text-duotone-icon.js +11 -11
- package/dist/_pkgs/affine-components/icon-picker/affine-icon-picker-panel.d.ts +28 -0
- package/dist/_pkgs/affine-components/icon-picker/affine-icon-picker-panel.js +231 -0
- package/dist/_pkgs/affine-components/icon-picker/emoji-data.d.ts +40 -0
- package/dist/_pkgs/affine-components/icon-picker/emoji-data.js +99 -0
- package/dist/_pkgs/affine-components/icon-picker/emoji-picker-panel.d.ts +32 -0
- package/dist/_pkgs/affine-components/icon-picker/emoji-picker-panel.js +276 -0
- package/dist/_pkgs/affine-components/icon-picker/icon-data.d.ts +34 -0
- package/dist/_pkgs/affine-components/icon-picker/icon-data.js +83 -0
- package/dist/_pkgs/affine-components/icon-picker/icon-picker.d.ts +39 -0
- package/dist/_pkgs/affine-components/icon-picker/icon-picker.js +233 -0
- package/dist/_pkgs/affine-components/icon-picker/index.d.ts +8 -0
- package/dist/_pkgs/affine-components/icon-picker/index.js +15 -0
- package/dist/_pkgs/affine-components/icon-picker/recent-store.d.ts +8 -0
- package/dist/_pkgs/affine-components/icon-picker/recent-store.js +41 -0
- package/dist/_pkgs/affine-components/icon-picker/styles.d.ts +5 -0
- package/dist/_pkgs/affine-components/icon-picker/styles.js +166 -0
- package/dist/_pkgs/affine-components/icon-picker/types.d.ts +22 -0
- package/dist/_pkgs/affine-components/icon-picker/types.js +10 -0
- package/dist/_pkgs/affine-components/icons/text.js +426 -426
- package/dist/_pkgs/affine-components/open-doc-dropdown-menu/dropdown-menu.d.ts +1 -0
- package/dist/_pkgs/affine-components/portal/portal.d.ts +1 -1
- package/dist/_pkgs/affine-components/toolbar/menu-button.js +1 -0
- package/dist/_pkgs/affine-components/toolbar/toolbar.js +11 -10
- package/dist/_pkgs/affine-foundation/view.js +11 -2
- package/dist/_pkgs/affine-gfx-brush/index.d.ts +1 -0
- package/dist/_pkgs/affine-gfx-brush/index.js +1 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/dom/brush.d.ts +1 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/dom/brush.js +11 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/dom/highlighter.d.ts +1 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/dom/highlighter.js +11 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/dom/index.d.ts +2 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/dom/index.js +2 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/dom/shared.d.ts +14 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/dom/shared.js +54 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/index.d.ts +1 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/index.js +4 -0
- package/dist/_pkgs/affine-gfx-brush/view.d.ts +14 -0
- package/dist/_pkgs/affine-gfx-brush/view.js +29 -3
- package/dist/_pkgs/affine-gfx-connector/connector-manager.js +32 -6
- package/dist/_pkgs/affine-gfx-connector/connector-tool.d.ts +7 -0
- package/dist/_pkgs/affine-gfx-connector/connector-tool.js +2 -1
- package/dist/_pkgs/affine-gfx-connector/direction/direction-reveal.d.ts +123 -0
- package/dist/_pkgs/affine-gfx-connector/direction/direction-reveal.js +281 -0
- package/dist/_pkgs/affine-gfx-connector/direction/direction-widget.d.ts +65 -0
- package/dist/_pkgs/affine-gfx-connector/direction/direction-widget.js +395 -0
- package/dist/_pkgs/affine-gfx-connector/direction/index.d.ts +4 -0
- package/dist/_pkgs/affine-gfx-connector/direction/index.js +4 -0
- package/dist/_pkgs/affine-gfx-connector/direction/invert-direction.d.ts +72 -0
- package/dist/_pkgs/affine-gfx-connector/direction/invert-direction.js +187 -0
- package/dist/_pkgs/affine-gfx-connector/direction/typed-edge.d.ts +69 -0
- package/dist/_pkgs/affine-gfx-connector/direction/typed-edge.js +66 -0
- package/dist/_pkgs/affine-gfx-connector/effects.d.ts +2 -0
- package/dist/_pkgs/affine-gfx-connector/effects.js +2 -0
- package/dist/_pkgs/affine-gfx-connector/element-renderer/connector-dom/index.js +78 -41
- package/dist/_pkgs/affine-gfx-connector/index.d.ts +1 -0
- package/dist/_pkgs/affine-gfx-connector/index.js +1 -0
- package/dist/_pkgs/affine-gfx-connector/toolbar/config.d.ts +50 -0
- package/dist/_pkgs/affine-gfx-connector/toolbar/config.js +67 -1
- package/dist/_pkgs/affine-gfx-connector/view.js +16 -0
- package/dist/_pkgs/affine-gfx-group/command/group-api.js +150 -62
- package/dist/_pkgs/affine-gfx-group/text/edgeless-group-title-editor.js +4 -1
- package/dist/_pkgs/affine-gfx-pointer/tools/pan-tool.d.ts +16 -0
- package/dist/_pkgs/affine-gfx-pointer/tools/pan-tool.js +102 -32
- package/dist/_pkgs/affine-gfx-shape/commands.d.ts +2 -0
- package/dist/_pkgs/affine-gfx-shape/commands.js +33 -0
- package/dist/_pkgs/affine-gfx-shape/element-renderer/shape-dom/index.js +48 -19
- package/dist/_pkgs/affine-gfx-shape/index.d.ts +1 -1
- package/dist/_pkgs/affine-gfx-shape/index.js +1 -1
- package/dist/_pkgs/affine-gfx-shape/text/edgeless-shape-text-editor.d.ts +26 -0
- package/dist/_pkgs/affine-gfx-shape/text/edgeless-shape-text-editor.js +124 -13
- package/dist/_pkgs/affine-gfx-shape/view.js +3 -3
- package/dist/_pkgs/affine-gfx-template/toolbar/template-tool-button.d.ts +2 -0
- package/dist/_pkgs/affine-gfx-template/toolbar/template-tool-button.js +18 -1
- package/dist/_pkgs/affine-gfx-text/edgeless-text-editor.js +9 -5
- package/dist/_pkgs/affine-inline-latex/command.js +46 -26
- package/dist/_pkgs/affine-inline-latex/latex-node/latex-node.d.ts +10 -0
- package/dist/_pkgs/affine-inline-latex/latex-node/latex-node.js +23 -0
- package/dist/_pkgs/affine-inline-link/link-node/affine-link.js +4 -1
- package/dist/_pkgs/affine-inline-preset/adapters/html/html-inline.d.ts +3 -0
- package/dist/_pkgs/affine-inline-preset/adapters/html/html-inline.js +29 -1
- package/dist/_pkgs/affine-model/blocks/code/code-model.d.ts +1 -0
- package/dist/_pkgs/affine-model/blocks/code/code-model.js +1 -0
- package/dist/_pkgs/affine-model/elements/connector/connector.js +24 -0
- package/dist/_pkgs/affine-model/elements/edgy/board.d.ts +32 -0
- package/dist/_pkgs/affine-model/elements/edgy/board.js +112 -0
- package/dist/_pkgs/affine-model/elements/edgy/facets.d.ts +12 -0
- package/dist/_pkgs/affine-model/elements/edgy/facets.js +25 -1
- package/dist/_pkgs/affine-model/elements/edgy/index.d.ts +1 -0
- package/dist/_pkgs/affine-model/elements/edgy/index.js +1 -0
- package/dist/_pkgs/affine-model/elements/framework-background/background.d.ts +42 -0
- package/dist/_pkgs/affine-model/elements/framework-background/background.js +42 -0
- package/dist/_pkgs/affine-model/elements/framework-background/index.d.ts +1 -0
- package/dist/_pkgs/affine-model/elements/framework-background/index.js +1 -0
- package/dist/_pkgs/affine-model/elements/index.d.ts +3 -1
- package/dist/_pkgs/affine-model/elements/index.js +1 -0
- package/dist/_pkgs/affine-model/elements/mindmap/mindmap.js +8 -3
- package/dist/_pkgs/affine-model/elements/mindmap/style.d.ts +10 -0
- package/dist/_pkgs/affine-model/elements/mindmap/style.js +8 -0
- package/dist/_pkgs/affine-model/elements/wardley/wardley.d.ts +21 -29
- package/dist/_pkgs/affine-model/elements/wardley/wardley.js +41 -48
- package/dist/_pkgs/affine-shared/adapters/markdown/delta-converter.d.ts +6 -1
- package/dist/_pkgs/affine-shared/adapters/markdown/delta-converter.js +160 -2
- package/dist/_pkgs/affine-shared/adapters/markdown/markdown.js +5 -1
- package/dist/_pkgs/affine-shared/adapters/types/delta-converter.d.ts +1 -0
- package/dist/_pkgs/affine-shared/adapters/utils/color.d.ts +24 -0
- package/dist/_pkgs/affine-shared/adapters/utils/color.js +280 -0
- package/dist/_pkgs/affine-shared/adapters/utils/index.d.ts +1 -0
- package/dist/_pkgs/affine-shared/adapters/utils/index.js +1 -0
- package/dist/_pkgs/affine-shared/commands/block-crud/get-selected-blocks.js +10 -2
- package/dist/_pkgs/affine-shared/services/audit-service.d.ts +300 -0
- package/dist/_pkgs/affine-shared/services/audit-service.js +228 -0
- package/dist/_pkgs/affine-shared/services/edit-props-store.d.ts +7 -0
- package/dist/_pkgs/affine-shared/services/edit-props-store.js +11 -0
- package/dist/_pkgs/affine-shared/services/font-loader/font-loader-service.d.ts +26 -1
- package/dist/_pkgs/affine-shared/services/font-loader/font-loader-service.js +124 -7
- package/dist/_pkgs/affine-shared/services/index.d.ts +5 -0
- package/dist/_pkgs/affine-shared/services/index.js +5 -0
- package/dist/_pkgs/affine-shared/services/pivot-materiality-publisher.d.ts +129 -0
- package/dist/_pkgs/affine-shared/services/pivot-materiality-publisher.js +311 -0
- package/dist/_pkgs/affine-shared/services/pivot-properties-service.d.ts +217 -0
- package/dist/_pkgs/affine-shared/services/pivot-properties-service.js +114 -0
- package/dist/_pkgs/affine-shared/services/telemetry-service/code-block.d.ts +1 -1
- package/dist/_pkgs/affine-shared/services/telemetry-service/lifecycle.d.ts +182 -0
- package/dist/_pkgs/affine-shared/services/telemetry-service/telemetry-service.d.ts +2 -2
- package/dist/_pkgs/affine-shared/services/telemetry-service/types.d.ts +6 -1
- package/dist/_pkgs/affine-shared/services/toolbar-service/action.d.ts +10 -0
- package/dist/_pkgs/affine-shared/services/toolbar-service/index.d.ts +1 -0
- package/dist/_pkgs/affine-shared/services/toolbar-service/index.js +1 -0
- package/dist/_pkgs/affine-shared/services/toolbar-service/layout.d.ts +134 -0
- package/dist/_pkgs/affine-shared/services/toolbar-service/layout.js +146 -0
- package/dist/_pkgs/affine-shared/services/translation-service/index.d.ts +68 -0
- package/dist/_pkgs/affine-shared/services/translation-service/index.js +39 -0
- package/dist/_pkgs/affine-shared/services/universe-tag-defs-service.d.ts +155 -0
- package/dist/_pkgs/affine-shared/services/universe-tag-defs-service.js +254 -0
- package/dist/_pkgs/affine-shared/utils/dom/point-to-range.d.ts +4 -0
- package/dist/_pkgs/affine-shared/utils/dom/point-to-range.js +58 -2
- package/dist/_pkgs/affine-shared/utils/dom/viewport.d.ts +60 -0
- package/dist/_pkgs/affine-shared/utils/dom/viewport.js +58 -0
- package/dist/_pkgs/affine-shared/utils/print-to-pdf.d.ts +21 -0
- package/dist/_pkgs/affine-shared/utils/print-to-pdf.js +166 -32
- package/dist/_pkgs/affine-shared/utils/zod-schema.d.ts +7 -0
- package/dist/_pkgs/affine-shared/utils/zod-schema.js +27 -1
- package/dist/_pkgs/affine-widget-drag-handle/watchers/edgeless-watcher.d.ts +19 -10
- package/dist/_pkgs/affine-widget-drag-handle/watchers/edgeless-watcher.js +122 -23
- package/dist/_pkgs/affine-widget-drag-handle/watchers/pointer-event-watcher.d.ts +2 -0
- package/dist/_pkgs/affine-widget-drag-handle/watchers/pointer-event-watcher.js +25 -4
- package/dist/_pkgs/affine-widget-edgeless-selected-rect/auto-complete-panel.js +10 -5
- package/dist/_pkgs/affine-widget-edgeless-selected-rect/edgeless-auto-complete.d.ts +15 -1
- package/dist/_pkgs/affine-widget-edgeless-selected-rect/edgeless-auto-complete.js +37 -32
- package/dist/_pkgs/affine-widget-edgeless-selected-rect/edgeless-element-link.js +5 -4
- package/dist/_pkgs/affine-widget-edgeless-selected-rect/edgeless-selected-rect.js +19 -9
- package/dist/_pkgs/affine-widget-edgeless-selected-rect/utils.d.ts +16 -2
- package/dist/_pkgs/affine-widget-edgeless-selected-rect/utils.js +19 -2
- package/dist/_pkgs/affine-widget-edgeless-toolbar/index.d.ts +1 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/index.js +1 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/menu/command-menu.d.ts +38 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/menu/command-menu.js +99 -0
- package/dist/_pkgs/affine-widget-frame-title/edgeless-frame-title-editor.js +4 -1
- package/dist/_pkgs/affine-widget-keyboard-toolbar/icons.js +98 -98
- package/dist/_pkgs/affine-widget-linked-doc/linked-doc-popover.js +2 -15
- package/dist/_pkgs/affine-widget-linked-doc/transformers/markdown.d.ts +10 -1
- package/dist/_pkgs/affine-widget-linked-doc/transformers/markdown.js +133 -6
- package/dist/_pkgs/affine-widget-linked-doc/transformers/utils.d.ts +10 -0
- package/dist/_pkgs/affine-widget-linked-doc/transformers/utils.js +120 -3
- package/dist/_pkgs/affine-widget-linked-doc/utils.d.ts +12 -0
- package/dist/_pkgs/affine-widget-linked-doc/utils.js +33 -0
- package/dist/_pkgs/affine-widget-remote-selection/edgeless/index.js +6 -4
- package/dist/_pkgs/affine-widget-slash-menu/slash-menu-popover.js +8 -4
- package/dist/_pkgs/affine-widget-slash-menu/utils.d.ts +9 -0
- package/dist/_pkgs/affine-widget-slash-menu/utils.js +24 -0
- package/dist/_pkgs/affine-widget-toolbar/toolbar.d.ts +6 -0
- package/dist/_pkgs/affine-widget-toolbar/toolbar.js +34 -6
- package/dist/_pkgs/affine-widget-toolbar/utils.d.ts +146 -3
- package/dist/_pkgs/affine-widget-toolbar/utils.js +738 -56
- package/dist/_pkgs/data-view/core/common/property-menu.js +3 -16
- package/dist/_pkgs/data-view/core/component/tags/multi-tag-select.d.ts +4 -0
- package/dist/_pkgs/data-view/core/component/tags/multi-tag-select.js +28 -1
- package/dist/_pkgs/data-view/core/data-view.d.ts +3 -1
- package/dist/_pkgs/data-view/core/data-view.js +25 -3
- package/dist/_pkgs/data-view/core/detail/field.js +2 -2
- package/dist/_pkgs/data-view/core/detail/selection.d.ts +4 -2
- package/dist/_pkgs/data-view/core/detail/selection.js +23 -7
- package/dist/_pkgs/data-view/core/effect.js +2 -0
- package/dist/_pkgs/data-view/core/filter/eval.js +36 -23
- package/dist/_pkgs/data-view/core/filter/filter-fn/matcher.d.ts +7 -0
- package/dist/_pkgs/data-view/core/filter/filter-fn/matcher.js +12 -0
- package/dist/_pkgs/data-view/core/group-by/compare-date-keys.d.ts +11 -0
- package/dist/_pkgs/data-view/core/group-by/compare-date-keys.js +55 -0
- package/dist/_pkgs/data-view/core/group-by/define.d.ts +6 -0
- package/dist/_pkgs/data-view/core/group-by/define.js +114 -0
- package/dist/_pkgs/data-view/core/group-by/matcher.d.ts +7 -0
- package/dist/_pkgs/data-view/core/group-by/matcher.js +13 -0
- package/dist/_pkgs/data-view/core/group-by/renderer/boolean-group.js +11 -11
- package/dist/_pkgs/data-view/core/group-by/renderer/date-group.d.ts +9 -0
- package/dist/_pkgs/data-view/core/group-by/renderer/date-group.js +97 -0
- package/dist/_pkgs/data-view/core/group-by/setting.js +86 -7
- package/dist/_pkgs/data-view/core/group-by/trait.d.ts +34 -0
- package/dist/_pkgs/data-view/core/group-by/trait.js +106 -10
- package/dist/_pkgs/data-view/core/utils/menu-title.js +17 -17
- package/dist/_pkgs/data-view/property-presets/multi-select/cell-renderer.js +3 -1
- package/dist/_pkgs/data-view/property-presets/number/define.js +2 -1
- package/dist/_pkgs/data-view/property-presets/select/cell-renderer.js +3 -1
- package/dist/_pkgs/data-view/view-presets/calendar/calendar-view-manager.d.ts +70 -0
- package/dist/_pkgs/data-view/view-presets/calendar/calendar-view-manager.js +449 -0
- package/dist/_pkgs/data-view/view-presets/calendar/define.d.ts +10 -0
- package/dist/_pkgs/data-view/view-presets/calendar/define.js +27 -0
- package/dist/_pkgs/data-view/view-presets/calendar/effect.d.ts +1 -0
- package/dist/_pkgs/data-view/view-presets/calendar/effect.js +4 -0
- package/dist/_pkgs/data-view/view-presets/calendar/index.d.ts +6 -0
- package/dist/_pkgs/data-view/view-presets/calendar/index.js +6 -0
- package/dist/_pkgs/data-view/view-presets/calendar/layout.d.ts +37 -0
- package/dist/_pkgs/data-view/view-presets/calendar/layout.js +138 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/actions.d.ts +7 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/actions.js +68 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/dnd.d.ts +32 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/dnd.js +159 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/effect.d.ts +1 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/effect.js +7 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/hit-test.d.ts +1 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/hit-test.js +28 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/styles.d.ts +1 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/styles.js +707 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/view.d.ts +89 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/view.js +837 -0
- package/dist/_pkgs/data-view/view-presets/calendar/renderer.d.ts +2 -0
- package/dist/_pkgs/data-view/view-presets/calendar/renderer.js +8 -0
- package/dist/_pkgs/data-view/view-presets/calendar/source.d.ts +8 -0
- package/dist/_pkgs/data-view/view-presets/calendar/source.js +3 -0
- package/dist/_pkgs/data-view/view-presets/calendar/types.d.ts +79 -0
- package/dist/_pkgs/data-view/view-presets/calendar/types.js +1 -0
- package/dist/_pkgs/data-view/view-presets/convert.js +28 -0
- package/dist/_pkgs/data-view/view-presets/effect.js +2 -0
- package/dist/_pkgs/data-view/view-presets/index.d.ts +2 -0
- package/dist/_pkgs/data-view/view-presets/index.js +3 -0
- package/dist/_pkgs/data-view/view-presets/kanban/kanban-view-manager.js +3 -1
- package/dist/_pkgs/data-view/view-presets/kanban/mobile/cell.js +2 -2
- package/dist/_pkgs/data-view/view-presets/table/collapsed-state.d.ts +18 -0
- package/dist/_pkgs/data-view/view-presets/table/collapsed-state.js +36 -0
- package/dist/_pkgs/data-view/view-presets/table/mobile/cell.js +2 -2
- package/dist/_pkgs/data-view/view-presets/table/mobile/group.d.ts +11 -0
- package/dist/_pkgs/data-view/view-presets/table/mobile/group.js +87 -4
- package/dist/_pkgs/data-view/view-presets/table/pc/cell.d.ts +3 -0
- package/dist/_pkgs/data-view/view-presets/table/pc/cell.js +11 -2
- package/dist/_pkgs/data-view/view-presets/table/pc/controller/hotkeys.d.ts +1 -0
- package/dist/_pkgs/data-view/view-presets/table/pc/controller/hotkeys.js +39 -33
- package/dist/_pkgs/data-view/view-presets/table/pc/group.d.ts +10 -0
- package/dist/_pkgs/data-view/view-presets/table/pc/group.js +84 -5
- package/dist/_pkgs/data-view/view-presets/table/pc-virtual/controller/hotkeys.d.ts +1 -0
- package/dist/_pkgs/data-view/view-presets/table/pc-virtual/controller/hotkeys.js +39 -33
- package/dist/_pkgs/data-view/view-presets/table/pc-virtual/group/top/group-title.js +18 -18
- package/dist/_pkgs/data-view/view-presets/table/pc-virtual/row/cell.d.ts +3 -0
- package/dist/_pkgs/data-view/view-presets/table/pc-virtual/row/cell.js +8 -0
- package/dist/_pkgs/data-view/view-presets/table/table-view-manager.js +3 -1
- package/dist/_pkgs/data-view/view-presets/table/utils.d.ts +3 -0
- package/dist/_pkgs/data-view/view-presets/table/utils.js +16 -1
- package/dist/_pkgs/data-view/widget-presets/tools/presets/view-options/view-options.js +3 -1
- package/dist/_pkgs/global/gfx/curve.js +4 -3
- package/dist/_pkgs/std/clipboard/clipboard.js +13 -3
- package/dist/_pkgs/std/clipboard/utils.d.ts +5 -0
- package/dist/_pkgs/std/clipboard/utils.js +7 -0
- package/dist/_pkgs/std/event/dispatcher.js +27 -1
- package/dist/_pkgs/std/event/keymap.js +16 -6
- package/dist/_pkgs/std/extension/command-registry.d.ts +321 -0
- package/dist/_pkgs/std/extension/command-registry.js +233 -0
- package/dist/_pkgs/std/extension/dnd/index.d.ts +1 -1
- package/dist/_pkgs/std/extension/index.d.ts +2 -0
- package/dist/_pkgs/std/extension/index.js +2 -0
- package/dist/_pkgs/std/extension/translation-manifest.d.ts +49 -0
- package/dist/_pkgs/std/extension/translation-manifest.js +71 -0
- package/dist/_pkgs/std/gfx/index.d.ts +7 -3
- package/dist/_pkgs/std/gfx/index.js +6 -2
- package/dist/_pkgs/std/gfx/interactivity/gfx-view-event-handler.js +6 -1
- package/dist/_pkgs/std/gfx/interactivity/manager.d.ts +8 -0
- package/dist/_pkgs/std/gfx/interactivity/manager.js +18 -0
- package/dist/_pkgs/std/gfx/layer.d.ts +1 -1
- package/dist/_pkgs/std/gfx/layer.js +1 -2
- package/dist/_pkgs/std/gfx/model/surface/decorators/field.js +9 -0
- package/dist/_pkgs/std/gfx/model/surface/decorators/index.d.ts +2 -2
- package/dist/_pkgs/std/gfx/model/surface/decorators/index.js +2 -2
- package/dist/_pkgs/std/gfx/model/surface/decorators/local.d.ts +14 -0
- package/dist/_pkgs/std/gfx/model/surface/decorators/local.js +22 -0
- package/dist/_pkgs/std/gfx/model/surface/decorators/observer.d.ts +2 -0
- package/dist/_pkgs/std/gfx/model/surface/decorators/observer.js +40 -1
- package/dist/_pkgs/std/gfx/model/surface/element-model.d.ts +282 -0
- package/dist/_pkgs/std/gfx/model/surface/element-model.js +436 -25
- package/dist/_pkgs/std/gfx/model/surface/pivot.d.ts +48 -0
- package/dist/_pkgs/std/gfx/model/surface/pivot.js +34 -0
- package/dist/_pkgs/std/gfx/model/surface/role.d.ts +153 -0
- package/dist/_pkgs/std/gfx/model/surface/role.js +115 -0
- package/dist/_pkgs/std/gfx/model/surface/surface-model.d.ts +70 -0
- package/dist/_pkgs/std/gfx/model/surface/surface-model.js +304 -17
- package/dist/_pkgs/std/gfx/model/surface/tags.d.ts +77 -0
- package/dist/_pkgs/std/gfx/model/surface/tags.js +246 -0
- package/dist/_pkgs/std/gfx/perf.d.ts +10 -0
- package/dist/_pkgs/std/gfx/perf.js +30 -0
- package/dist/_pkgs/std/gfx/tool/tool-controller.d.ts +13 -0
- package/dist/_pkgs/std/gfx/tool/tool-controller.js +26 -0
- package/dist/_pkgs/std/gfx/viewport.d.ts +12 -0
- package/dist/_pkgs/std/gfx/viewport.js +19 -1
- package/dist/_pkgs/std/inline/services/event.d.ts +2 -0
- package/dist/_pkgs/std/inline/services/event.js +96 -21
- package/dist/_pkgs/std/utils/layer.js +2 -6
- package/dist/_pkgs/std/utils/tree.d.ts +14 -0
- package/dist/_pkgs/std/utils/tree.js +59 -8
- package/dist/_pkgs/std/view/element/gfx-block-component.js +23 -13
- package/dist/_pkgs/store/extension/workspace/workspace-meta.d.ts +10 -0
- package/dist/_pkgs/store/model/block/flat-sync-controller.js +2 -12
- package/dist/_pkgs/store/model/store/crud.js +7 -4
- package/dist/_pkgs/store/reactive/flat-native-y/index.d.ts +1 -1
- package/dist/_pkgs/store/reactive/flat-native-y/index.js +24 -2
- package/dist/commands.d.ts +58 -0
- package/dist/commands.js +66 -0
- package/dist/extensions/command-telemetry.d.ts +21 -0
- package/dist/extensions/command-telemetry.js +89 -0
- package/dist/extensions/store.d.ts +9 -4
- package/dist/extensions/store.js +27 -24
- package/dist/extensions/view.d.ts +9 -4
- package/dist/extensions/view.js +23 -8
- package/dist/flags.d.ts +98 -21
- package/dist/flags.js +103 -22
- package/dist/frameworks.d.ts +45 -0
- package/dist/frameworks.js +154 -0
- package/dist/schemas.d.ts +8 -5
- package/dist/schemas.js +28 -32
- package/dist/shortcuts.d.ts +16 -16
- package/dist/shortcuts.js +8 -36
- package/dist/translations.d.ts +56 -0
- package/dist/translations.js +112 -0
- package/package.json +16 -4
- package/dist/_pkgs/affine-block-root/keyboard/shortcuts.d.ts +0 -8
- package/dist/_pkgs/affine-block-root/keyboard/shortcuts.js +0 -48
- package/dist/_pkgs/affine-gfx-shape/shortcuts.d.ts +0 -6
- package/dist/_pkgs/affine-gfx-shape/shortcuts.js +0 -28
- package/dist/_pkgs/data-view/core/utils/cache.d.ts +0 -5
- package/dist/_pkgs/data-view/core/utils/cache.js +0 -28
|
@@ -34,17 +34,18 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i
|
|
|
34
34
|
};
|
|
35
35
|
import { menu, popFilterableSimpleMenu, popupTargetFromElement, } from '../../../../affine-components/context-menu/index.js';
|
|
36
36
|
import { SignalWatcher, WithDisposable } from '../../../../global/lit/index.js';
|
|
37
|
-
import { PlusIcon } from '@blocksuite/icons/lit';
|
|
37
|
+
import { PlusIcon, ToggleDownIcon, ToggleRightIcon, } from '@blocksuite/icons/lit';
|
|
38
38
|
import { ShadowlessElement } from '../../../../std/index.js';
|
|
39
|
-
import { effect } from '@preact/signals-core';
|
|
39
|
+
import { effect, signal } from '@preact/signals-core';
|
|
40
40
|
import { cssVarV2 } from '@toeverything/theme/v2';
|
|
41
|
-
import { css, html, unsafeCSS } from 'lit';
|
|
41
|
+
import { css, html, nothing, unsafeCSS } from 'lit';
|
|
42
42
|
import { property, query } from 'lit/decorators.js';
|
|
43
43
|
import { repeat } from 'lit/directives/repeat.js';
|
|
44
44
|
import { GroupTitle } from '../../../core/group-by/group-title.js';
|
|
45
45
|
import { createDndContext } from '../../../core/utils/wc-dnd/dnd-context.js';
|
|
46
46
|
import { defaultActivators } from '../../../core/utils/wc-dnd/sensors/index.js';
|
|
47
47
|
import { linearMove } from '../../../core/utils/wc-dnd/utils/linear-move.js';
|
|
48
|
+
import { getCollapsedState, setCollapsedState } from '../collapsed-state.js';
|
|
48
49
|
import { LEFT_TOOL_BAR_WIDTH } from '../consts.js';
|
|
49
50
|
import { TableViewAreaSelection } from '../selection.js';
|
|
50
51
|
import { DataViewColumnPreview } from './header/column-renderer.js';
|
|
@@ -85,6 +86,28 @@ const styles = css `
|
|
|
85
86
|
line-height: 20px;
|
|
86
87
|
color: var(--affine-text-secondary-color);
|
|
87
88
|
}
|
|
89
|
+
|
|
90
|
+
.group-toggle-btn {
|
|
91
|
+
width: 20px;
|
|
92
|
+
height: 20px;
|
|
93
|
+
display: flex;
|
|
94
|
+
align-items: center;
|
|
95
|
+
justify-content: center;
|
|
96
|
+
border-radius: 4px;
|
|
97
|
+
cursor: pointer;
|
|
98
|
+
transition: background-color 150ms cubic-bezier(0.42, 0, 1, 1);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.group-toggle-btn:hover {
|
|
102
|
+
background: var(--affine-hover-color);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.group-toggle-btn svg {
|
|
106
|
+
width: 16px;
|
|
107
|
+
height: 16px;
|
|
108
|
+
flex-shrink: 0;
|
|
109
|
+
user-select: none;
|
|
110
|
+
}
|
|
88
111
|
`;
|
|
89
112
|
let TableGroup = (() => {
|
|
90
113
|
let _classSuper = SignalWatcher(WithDisposable(ShadowlessElement));
|
|
@@ -109,6 +132,20 @@ let TableGroup = (() => {
|
|
|
109
132
|
if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
110
133
|
}
|
|
111
134
|
static { this.styles = styles; }
|
|
135
|
+
/**
|
|
136
|
+
* Read the stored collapsed state once, as soon as the group and its view
|
|
137
|
+
* are both known. Reading it earlier would key the lookup on a missing view
|
|
138
|
+
* id and pin the group open.
|
|
139
|
+
*/
|
|
140
|
+
_loadCollapsedState() {
|
|
141
|
+
if (this.storageLoaded)
|
|
142
|
+
return;
|
|
143
|
+
this.storageLoaded = true;
|
|
144
|
+
const view = this.tableViewLogic?.view;
|
|
145
|
+
if (!view)
|
|
146
|
+
return;
|
|
147
|
+
this.collapsed$.value = getCollapsedState(view.id, this.group?.key ?? 'all');
|
|
148
|
+
}
|
|
112
149
|
#group_accessor_storage;
|
|
113
150
|
get group() { return this.#group_accessor_storage; }
|
|
114
151
|
set group(value) { this.#group_accessor_storage = value; }
|
|
@@ -153,12 +190,25 @@ let TableGroup = (() => {
|
|
|
153
190
|
</affine-database-column-stats>
|
|
154
191
|
`;
|
|
155
192
|
}
|
|
193
|
+
willUpdate(changed) {
|
|
194
|
+
super.willUpdate(changed);
|
|
195
|
+
if (!this.storageLoaded &&
|
|
196
|
+
(changed.has('group') || changed.has('tableViewLogic'))) {
|
|
197
|
+
this._loadCollapsedState();
|
|
198
|
+
}
|
|
199
|
+
}
|
|
156
200
|
connectedCallback() {
|
|
157
201
|
super.connectedCallback();
|
|
158
202
|
this.showIndicator();
|
|
203
|
+
this._loadCollapsedState();
|
|
159
204
|
}
|
|
160
205
|
render() {
|
|
161
|
-
|
|
206
|
+
// Collapsed, only the header survives — the column header, the rows, the
|
|
207
|
+
// add-row affordance and the stats row all fold away with them.
|
|
208
|
+
return html `
|
|
209
|
+
${this.collapsed$.value ? this.renderGroupHeader() : nothing}
|
|
210
|
+
${this.collapsed$.value ? nothing : this.renderRows(this.rows)}
|
|
211
|
+
`;
|
|
162
212
|
}
|
|
163
213
|
#rowsContainer_accessor_storage;
|
|
164
214
|
get rowsContainer() { return this.#rowsContainer_accessor_storage; }
|
|
@@ -171,6 +221,17 @@ let TableGroup = (() => {
|
|
|
171
221
|
}
|
|
172
222
|
constructor() {
|
|
173
223
|
super(...arguments);
|
|
224
|
+
this.collapsed$ = signal(false);
|
|
225
|
+
this.storageLoaded = false;
|
|
226
|
+
this._toggleCollapse = (e) => {
|
|
227
|
+
e?.stopPropagation();
|
|
228
|
+
const next = !this.collapsed$.value;
|
|
229
|
+
this.collapsed$.value = next;
|
|
230
|
+
const view = this.tableViewLogic?.view;
|
|
231
|
+
if (view) {
|
|
232
|
+
setCollapsedState(view.id, this.group?.key ?? 'all', next);
|
|
233
|
+
}
|
|
234
|
+
};
|
|
174
235
|
this.clickAddRow = () => {
|
|
175
236
|
this.view.rowAdd('end', this.group?.key);
|
|
176
237
|
const selectionController = this.tableViewLogic.selectionController;
|
|
@@ -236,8 +297,26 @@ let TableGroup = (() => {
|
|
|
236
297
|
}
|
|
237
298
|
return html `
|
|
238
299
|
<div
|
|
239
|
-
style="position: sticky;left: 0;width: max-content;padding: 6px 0;margin-bottom: 4px;display:flex;align-items:center;gap:
|
|
300
|
+
style="position: sticky;left: 0;width: max-content;padding: 6px 0;margin-bottom: 4px;display:flex;align-items:center;gap: 8px;max-width: 400px"
|
|
240
301
|
>
|
|
302
|
+
<div
|
|
303
|
+
class="group-toggle-btn"
|
|
304
|
+
role="button"
|
|
305
|
+
aria-expanded=${this.collapsed$.value ? 'false' : 'true'}
|
|
306
|
+
aria-label=${this.collapsed$.value ? 'Expand group' : 'Collapse group'}
|
|
307
|
+
tabindex="0"
|
|
308
|
+
@click=${this._toggleCollapse}
|
|
309
|
+
@keydown=${(e) => {
|
|
310
|
+
if (e.key === 'Enter' || e.key === ' ') {
|
|
311
|
+
e.preventDefault();
|
|
312
|
+
this._toggleCollapse();
|
|
313
|
+
}
|
|
314
|
+
}}
|
|
315
|
+
>
|
|
316
|
+
${this.collapsed$.value
|
|
317
|
+
? ToggleRightIcon({ width: '16px', height: '16px' })
|
|
318
|
+
: ToggleDownIcon({ width: '16px', height: '16px' })}
|
|
319
|
+
</div>
|
|
241
320
|
${GroupTitle(this.group, {
|
|
242
321
|
readonly: this.view.readonly$.value,
|
|
243
322
|
clickAdd: this.clickAddRowInStart,
|
|
@@ -7,5 +7,6 @@ export declare class TableHotkeysController implements ReactiveController {
|
|
|
7
7
|
get selectionController(): import("./selection.js").TableSelectionController;
|
|
8
8
|
constructor(logic: VirtualTableViewUILogic);
|
|
9
9
|
get host(): import("../table-view-ui-logic.js").TableViewUI | undefined;
|
|
10
|
+
private _handleDeleteOrBackspace;
|
|
10
11
|
hostConnected(): void;
|
|
11
12
|
}
|
|
@@ -14,39 +14,26 @@ export class TableHotkeysController {
|
|
|
14
14
|
get host() {
|
|
15
15
|
return this.logic.ui$.value;
|
|
16
16
|
}
|
|
17
|
-
|
|
18
|
-
this.
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
for (let j = start; j <= end; j++) {
|
|
38
|
-
const container = this.selectionController.getCellContainer(groupKey, i, j);
|
|
39
|
-
const rowId = container?.dataset.rowId;
|
|
40
|
-
const columnId = container?.dataset.columnId;
|
|
41
|
-
if (rowId && columnId) {
|
|
42
|
-
container?.column$.value?.valueSetFromString(rowId, '');
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
// single cell
|
|
49
|
-
const container = this.selectionController.getCellContainer(groupKey, focus.rowIndex, focus.columnIndex);
|
|
17
|
+
_handleDeleteOrBackspace() {
|
|
18
|
+
const selection = this.selectionController.selection;
|
|
19
|
+
if (!selection) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
if (TableViewRowSelection.is(selection)) {
|
|
23
|
+
const rows = TableViewRowSelection.rowsIds(selection);
|
|
24
|
+
this.selectionController.selection = undefined;
|
|
25
|
+
this.logic.view.rowsDelete(rows);
|
|
26
|
+
this.logic.ui$.value?.requestUpdate();
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
const { focus, rowsSelection, columnsSelection, isEditing, groupKey } = selection;
|
|
30
|
+
if (focus && !isEditing) {
|
|
31
|
+
if (rowsSelection && columnsSelection) {
|
|
32
|
+
// multi cell
|
|
33
|
+
for (let i = rowsSelection.start; i <= rowsSelection.end; i++) {
|
|
34
|
+
const { start, end } = columnsSelection;
|
|
35
|
+
for (let j = start; j <= end; j++) {
|
|
36
|
+
const container = this.selectionController.getCellContainer(groupKey, i, j);
|
|
50
37
|
const rowId = container?.dataset.rowId;
|
|
51
38
|
const columnId = container?.dataset.columnId;
|
|
52
39
|
if (rowId && columnId) {
|
|
@@ -54,6 +41,25 @@ export class TableHotkeysController {
|
|
|
54
41
|
}
|
|
55
42
|
}
|
|
56
43
|
}
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
// single cell
|
|
47
|
+
const container = this.selectionController.getCellContainer(groupKey, focus.rowIndex, focus.columnIndex);
|
|
48
|
+
const rowId = container?.dataset.rowId;
|
|
49
|
+
const columnId = container?.dataset.columnId;
|
|
50
|
+
if (rowId && columnId) {
|
|
51
|
+
container?.column$.value?.valueSetFromString(rowId, '');
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
hostConnected() {
|
|
57
|
+
this.disposables.add(this.logic.bindHotkey({
|
|
58
|
+
Backspace: () => {
|
|
59
|
+
this._handleDeleteOrBackspace();
|
|
60
|
+
},
|
|
61
|
+
Delete: () => {
|
|
62
|
+
this._handleDeleteOrBackspace();
|
|
57
63
|
},
|
|
58
64
|
Escape: () => {
|
|
59
65
|
const selection = this.selectionController.selection;
|
|
@@ -19,9 +19,9 @@ export const GroupTitle = (groupData, ops) => {
|
|
|
19
19
|
}
|
|
20
20
|
const icon = groupData.value == null
|
|
21
21
|
? ''
|
|
22
|
-
: html ` <uni-lit
|
|
23
|
-
class="${groupHeaderIcon}"
|
|
24
|
-
.uni="${groupData.property.icon}"
|
|
22
|
+
: html ` <uni-lit
|
|
23
|
+
class="${groupHeaderIcon}"
|
|
24
|
+
.uni="${groupData.property.icon}"
|
|
25
25
|
></uni-lit>`;
|
|
26
26
|
const props = {
|
|
27
27
|
group: groupData,
|
|
@@ -29,25 +29,25 @@ export const GroupTitle = (groupData, ops) => {
|
|
|
29
29
|
};
|
|
30
30
|
const showColumnName = groupData.property.type$.value === 'checkbox';
|
|
31
31
|
const columnName = showColumnName
|
|
32
|
-
? html `<span class="${groupHeaderTitle}"
|
|
33
|
-
>${groupData.property.name$.value}</span
|
|
32
|
+
? html `<span class="${groupHeaderTitle}"
|
|
33
|
+
>${groupData.property.name$.value}</span
|
|
34
34
|
>`
|
|
35
35
|
: nothing;
|
|
36
36
|
const opsClass = clsx(ops.groupHover && show, groupHeaderOps);
|
|
37
|
-
return html `
|
|
38
|
-
<div class="${groupTitleRow}">
|
|
39
|
-
${icon} ${renderUniLit(view, props)} ${columnName}
|
|
40
|
-
${GroupHeaderCount(groupData)}
|
|
41
|
-
</div>
|
|
37
|
+
return html `
|
|
38
|
+
<div class="${groupTitleRow}">
|
|
39
|
+
${icon} ${renderUniLit(view, props)} ${columnName}
|
|
40
|
+
${GroupHeaderCount(groupData)}
|
|
41
|
+
</div>
|
|
42
42
|
${!ops.readonly
|
|
43
|
-
? html ` <div class="${opsClass}">
|
|
44
|
-
<div @click="${ops.clickAdd}" class="${groupHeaderOp}">
|
|
45
|
-
${PlusIcon()}
|
|
46
|
-
</div>
|
|
47
|
-
<div @click="${ops.clickOps}" class="${groupHeaderOp}">
|
|
48
|
-
${MoreHorizontalIcon()}
|
|
49
|
-
</div>
|
|
43
|
+
? html ` <div class="${opsClass}">
|
|
44
|
+
<div @click="${ops.clickAdd}" class="${groupHeaderOp}">
|
|
45
|
+
${PlusIcon()}
|
|
46
|
+
</div>
|
|
47
|
+
<div @click="${ops.clickOps}" class="${groupHeaderOp}">
|
|
48
|
+
${MoreHorizontalIcon()}
|
|
49
|
+
</div>
|
|
50
50
|
</div>`
|
|
51
|
-
: nothing}
|
|
51
|
+
: nothing}
|
|
52
52
|
`;
|
|
53
53
|
};
|
|
@@ -17,6 +17,9 @@ export declare class DatabaseCellContainer extends DatabaseCellContainer_base {
|
|
|
17
17
|
isRowSelected$: import("@preact/signals-core").ReadonlySignal<boolean>;
|
|
18
18
|
isSelected(selection: TableViewSelectionWithType): boolean;
|
|
19
19
|
render(): import("lit-html").TemplateResult | undefined;
|
|
20
|
+
private _tagDraft;
|
|
21
|
+
setTagDraft(value: string): void;
|
|
22
|
+
consumeTagDraft(): string | undefined;
|
|
20
23
|
isEditing$: import("@preact/signals-core").Signal<boolean>;
|
|
21
24
|
rowIndex$: import("@preact/signals-core").ReadonlySignal<number>;
|
|
22
25
|
columnIndex$: import("@preact/signals-core").ReadonlySignal<number>;
|
|
@@ -147,6 +147,14 @@ let DatabaseCellContainer = (() => {
|
|
|
147
147
|
},
|
|
148
148
|
});
|
|
149
149
|
}
|
|
150
|
+
setTagDraft(value) {
|
|
151
|
+
this._tagDraft = value;
|
|
152
|
+
}
|
|
153
|
+
consumeTagDraft() {
|
|
154
|
+
const value = this._tagDraft;
|
|
155
|
+
this._tagDraft = undefined;
|
|
156
|
+
return value;
|
|
157
|
+
}
|
|
150
158
|
get rowId() {
|
|
151
159
|
return this.gridCell.row.rowId;
|
|
152
160
|
}
|
|
@@ -154,7 +154,9 @@ export class TableSingleView extends SingleViewBase {
|
|
|
154
154
|
}
|
|
155
155
|
isShow(rowId) {
|
|
156
156
|
if (this.filter$.value?.conditions.length) {
|
|
157
|
-
|
|
157
|
+
// Filters are evaluated against every property of the view, hidden ones
|
|
158
|
+
// included: hiding a column must not silently drop the condition on it.
|
|
159
|
+
const rowMap = Object.fromEntries(this.propertiesRaw$.value.map(column => [
|
|
158
160
|
column.id,
|
|
159
161
|
column.cellGetOrCreate(rowId).jsonValue$.value,
|
|
160
162
|
]));
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
+
import type { ReadonlySignal } from '@preact/signals-core';
|
|
1
2
|
import type { TableViewSelectionWithType } from './selection.js';
|
|
2
3
|
export interface TableCell {
|
|
3
4
|
rowId: string;
|
|
5
|
+
setTagDraft?(value: string): void;
|
|
4
6
|
}
|
|
5
7
|
export type ColumnAccessor<T extends TableCell> = (cell: T) => {
|
|
6
8
|
valueSetFromString(rowId: string, value: string): void;
|
|
9
|
+
type$: ReadonlySignal<string>;
|
|
7
10
|
} | undefined;
|
|
8
11
|
export interface StartEditOptions<T extends TableCell> {
|
|
9
12
|
event: KeyboardEvent;
|
|
@@ -1,4 +1,10 @@
|
|
|
1
|
+
import { multiSelectPropertyType } from '../../property-presets/multi-select/define.js';
|
|
2
|
+
import { selectPropertyType } from '../../property-presets/select/define.js';
|
|
1
3
|
import { TableViewRowSelection } from './selection.js';
|
|
4
|
+
const TAG_COLUMN_TYPES = new Set([
|
|
5
|
+
selectPropertyType.type,
|
|
6
|
+
multiSelectPropertyType.type,
|
|
7
|
+
]);
|
|
2
8
|
export function handleCharStartEdit(options) {
|
|
3
9
|
const { event, selection, getCellContainer, updateSelection, getColumn } = options;
|
|
4
10
|
const target = event.target;
|
|
@@ -15,7 +21,16 @@ export function handleCharStartEdit(options) {
|
|
|
15
21
|
const cell = getCellContainer(selection.groupKey, selection.focus.rowIndex, selection.focus.columnIndex);
|
|
16
22
|
if (cell) {
|
|
17
23
|
const column = getColumn(cell);
|
|
18
|
-
column
|
|
24
|
+
if (column) {
|
|
25
|
+
if (TAG_COLUMN_TYPES.has(column.type$.value) && cell.setTagDraft) {
|
|
26
|
+
// A tag cell has no free-text value to write into: hand the typed
|
|
27
|
+
// character to the cell so the tag picker opens searching for it.
|
|
28
|
+
cell.setTagDraft(event.key);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
column.valueSetFromString(cell.rowId, event.key);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
19
34
|
updateSelection({ ...selection, isEditing: true });
|
|
20
35
|
event.preventDefault();
|
|
21
36
|
return true;
|
|
@@ -236,7 +236,9 @@ export const popViewOptions = (target, dataViewLogic, onClose) => {
|
|
|
236
236
|
`,
|
|
237
237
|
select: () => {
|
|
238
238
|
const id = view.manager.currentViewId$.value;
|
|
239
|
-
|
|
239
|
+
// Re-picking the current layout would reset the view to the
|
|
240
|
+
// defaults of its own type, dropping widths and filters.
|
|
241
|
+
if (!id || meta.type === view.type) {
|
|
240
242
|
return;
|
|
241
243
|
}
|
|
242
244
|
view.manager.viewChangeType(id, meta.type);
|
|
@@ -102,9 +102,10 @@ export function getBezierNearestPoint(values, point) {
|
|
|
102
102
|
return pointOnCurve;
|
|
103
103
|
}
|
|
104
104
|
export function getBezierParameters(points) {
|
|
105
|
-
// Fallback for degenerate Bezier curve (all points
|
|
106
|
-
|
|
107
|
-
|
|
105
|
+
// Fallback for degenerate Bezier curve (empty path or all points at the
|
|
106
|
+
// same position)
|
|
107
|
+
if (points.length <= 1) {
|
|
108
|
+
const point = points[0] ?? new PointLocation();
|
|
108
109
|
return [point, point, point, point];
|
|
109
110
|
}
|
|
110
111
|
return [points[0], points[0].absOut, points[1].absIn, points[1]];
|
|
@@ -5,7 +5,7 @@ import rehypeParse from 'rehype-parse';
|
|
|
5
5
|
import { unified } from 'unified';
|
|
6
6
|
import { LifeCycleWatcher } from '../extension/index.js';
|
|
7
7
|
import { ClipboardAdapterConfigIdentifier } from './clipboard-adapter.js';
|
|
8
|
-
import { onlyContainImgElement } from './utils.js';
|
|
8
|
+
import { escapeHTML, onlyContainImgElement } from './utils.js';
|
|
9
9
|
export class Clipboard extends LifeCycleWatcher {
|
|
10
10
|
constructor() {
|
|
11
11
|
super(...arguments);
|
|
@@ -206,11 +206,21 @@ export class Clipboard extends LifeCycleWatcher {
|
|
|
206
206
|
}
|
|
207
207
|
const hasInnerHTML = Boolean(innerHTML.length);
|
|
208
208
|
const isEmpty = Object.keys(clipboardItems).length === 0;
|
|
209
|
+
// Whatever is left in `items` is a BlockSuite payload (a block snapshot, a
|
|
210
|
+
// surface slice, a database slice). It only travels through the
|
|
211
|
+
// `text/html` flavour, so it has to be written even when the adapters
|
|
212
|
+
// produced plain text and no HTML — otherwise pasting into another
|
|
213
|
+
// document silently degrades to the plain-text fallback and every block /
|
|
214
|
+
// element property is lost.
|
|
215
|
+
const hasSnapshotPayload = Object.values(items).some(value => typeof value === 'string' ? value.length > 0 : Boolean(value));
|
|
209
216
|
// If there are no items, fall back to snapshot.
|
|
210
|
-
if (hasInnerHTML || isEmpty) {
|
|
217
|
+
if (hasInnerHTML || isEmpty || hasSnapshotPayload) {
|
|
211
218
|
const type = 'text/html';
|
|
212
219
|
const snapshot = lz.compressToEncodedURIComponent(JSON.stringify(items));
|
|
213
|
-
|
|
220
|
+
// Keep the plain text readable for external targets that prefer the
|
|
221
|
+
// `text/html` flavour; internal pastes only read the attribute.
|
|
222
|
+
const body = hasInnerHTML ? innerHTML : escapeHTML(text);
|
|
223
|
+
const html = `<div data-blocksuite-snapshot="${snapshot}">${body}</div>`;
|
|
214
224
|
clipboardItems[type] = new Blob([html], { type });
|
|
215
225
|
}
|
|
216
226
|
await navigator.clipboard.write([new ClipboardItem(clipboardItems)]);
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import type { RootContentMap } from 'hast';
|
|
2
2
|
type HastUnionType<K extends keyof RootContentMap, V extends RootContentMap[K]> = V;
|
|
3
|
+
/**
|
|
4
|
+
* Escapes the characters that would break out of an HTML text node.
|
|
5
|
+
* Used to embed plain text in the clipboard snapshot wrapper.
|
|
6
|
+
*/
|
|
7
|
+
export declare function escapeHTML(value: string): string;
|
|
3
8
|
export declare function onlyContainImgElement(ast: HastUnionType<keyof RootContentMap, RootContentMap[keyof RootContentMap]>): 'yes' | 'no' | 'maybe';
|
|
4
9
|
export {};
|
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Escapes the characters that would break out of an HTML text node.
|
|
3
|
+
* Used to embed plain text in the clipboard snapshot wrapper.
|
|
4
|
+
*/
|
|
5
|
+
export function escapeHTML(value) {
|
|
6
|
+
return value.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
|
|
7
|
+
}
|
|
1
8
|
export function onlyContainImgElement(ast) {
|
|
2
9
|
if (ast.type === 'element') {
|
|
3
10
|
switch (ast.tagName) {
|
|
@@ -49,6 +49,15 @@ const eventNames = [
|
|
|
49
49
|
'nativeDragLeave',
|
|
50
50
|
...bypassEventNames,
|
|
51
51
|
];
|
|
52
|
+
/**
|
|
53
|
+
* Events the dispatcher synthesizes itself: `click`, `doubleClick` and
|
|
54
|
+
* `tripleClick` are all derived from a single native `pointerup`. Stopping
|
|
55
|
+
* propagation of that shared native event when a synthetic handler consumes
|
|
56
|
+
* the click would also silence unrelated pointer listeners bound higher up
|
|
57
|
+
* (document-level drag/pan/auto-complete teardown), so it is skipped for them.
|
|
58
|
+
* Consuming a synthetic event still stops the dispatcher's own runner chain.
|
|
59
|
+
*/
|
|
60
|
+
const syntheticEventNames = new Set(['click', 'doubleClick', 'tripleClick']);
|
|
52
61
|
export class UIEventDispatcher extends LifeCycleWatcher {
|
|
53
62
|
static { this._activeDispatcher = null; }
|
|
54
63
|
static { this.key = 'UIEventDispatcher'; }
|
|
@@ -157,6 +166,20 @@ export class UIEventDispatcher extends LifeCycleWatcher {
|
|
|
157
166
|
this._setActive(false);
|
|
158
167
|
}
|
|
159
168
|
});
|
|
169
|
+
// When the selection is outside the host, the event dispatcher should be
|
|
170
|
+
// inactive. Selecting text in a plain (non-focusable) element outside the
|
|
171
|
+
// editor fires neither `focusout` with a relatedTarget nor `blur`, so
|
|
172
|
+
// without this the editor would keep handling keystrokes aimed elsewhere.
|
|
173
|
+
this.disposables.addFromEvent(document, 'selectionchange', () => {
|
|
174
|
+
const sel = document.getSelection();
|
|
175
|
+
if (!sel || sel.rangeCount === 0)
|
|
176
|
+
return;
|
|
177
|
+
const { anchorNode, focusNode } = sel;
|
|
178
|
+
if ((anchorNode && !this.host.contains(anchorNode)) ||
|
|
179
|
+
(focusNode && !this.host.contains(focusNode))) {
|
|
180
|
+
this._setActive(false);
|
|
181
|
+
}
|
|
182
|
+
});
|
|
160
183
|
}
|
|
161
184
|
_buildEventScopeBySelection(name) {
|
|
162
185
|
const handlers = this._handlersMap[name];
|
|
@@ -321,7 +344,10 @@ export class UIEventDispatcher extends LifeCycleWatcher {
|
|
|
321
344
|
const { fn } = runner;
|
|
322
345
|
const result = fn(context);
|
|
323
346
|
if (result) {
|
|
324
|
-
|
|
347
|
+
// Only stop propagation for non-synthetic events
|
|
348
|
+
if (!syntheticEventNames.has(name)) {
|
|
349
|
+
context.get('defaultState').event.stopPropagation();
|
|
350
|
+
}
|
|
325
351
|
return;
|
|
326
352
|
}
|
|
327
353
|
}
|
|
@@ -197,13 +197,23 @@ export function bindKeymap(bindings, interceptors) {
|
|
|
197
197
|
return true;
|
|
198
198
|
}
|
|
199
199
|
}
|
|
200
|
-
//
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
200
|
+
// For non-standard keyboards, fallback to keyCode only when modifier keys
|
|
201
|
+
// are pressed. Do NOT fallback when the key produces a non-ASCII character
|
|
202
|
+
// (e.g. Cyrillic 'х' on a Russian layout), because the user intends to type
|
|
203
|
+
// that character, not to trigger a shortcut bound to the physical key.
|
|
204
|
+
// See: https://github.com/toeverything/AFFiNE/issues/14059
|
|
205
|
+
const hasModifier = event.shiftKey || event.altKey || event.ctrlKey || event.metaKey;
|
|
205
206
|
const baseName = base[event.keyCode];
|
|
206
|
-
|
|
207
|
+
const isSingleAscii = name.length === 1 && name.charCodeAt(0) <= 0x7e;
|
|
208
|
+
const isAltInputChar = event.altKey && !event.ctrlKey && !event.metaKey && !isSingleAscii;
|
|
209
|
+
// Keep supporting existing Alt+digit shortcuts (e.g. Alt-0/1/2 in edgeless)
|
|
210
|
+
// while preventing Alt-based locale input characters from triggering letter
|
|
211
|
+
// shortcuts.
|
|
212
|
+
const isDigitBaseKey = baseName != null && baseName.length === 1 && /[0-9]/.test(baseName);
|
|
213
|
+
if (hasModifier &&
|
|
214
|
+
baseName &&
|
|
215
|
+
baseName !== name &&
|
|
216
|
+
!(isAltInputChar && !isDigitBaseKey)) {
|
|
207
217
|
const fromCode = map[modifiers(baseName, event)];
|
|
208
218
|
if (fromCode && fromCode(ctx)) {
|
|
209
219
|
return true;
|