@formicoidea/labre-core 1.1.0 → 2.0.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/architecture/code.c4 +37 -34
- package/architecture/likec4.config.json +3 -3
- package/dist/_pkgs/affine-block-surface/extensions/reading-toolbar.js +12 -12
- package/dist/_pkgs/affine-components/context-menu/menu-renderer.d.ts +3 -1
- package/dist/_pkgs/affine-components/context-menu/menu-renderer.js +9 -1
- package/dist/_pkgs/affine-components/context-menu/menu.d.ts +7 -0
- package/dist/_pkgs/affine-components/context-menu/menu.js +5 -0
- package/dist/_pkgs/affine-components/context-menu/sub-menu.d.ts +16 -1
- package/dist/_pkgs/affine-components/context-menu/sub-menu.js +32 -5
- 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-database-block/configs/slash-menu.js +14 -6
- package/dist/_pkgs/affine-database-block/database-block-styles.js +4 -3
- package/dist/_pkgs/affine-database-block/database-block.js +6 -18
- package/dist/_pkgs/affine-database-block/database-dnd-preview-block.js +5 -1
- package/dist/_pkgs/affine-database-block/detail-panel/block-renderer.js +5 -2
- package/dist/_pkgs/affine-database-block/detail-panel/note-renderer.js +3 -2
- package/dist/_pkgs/affine-database-block/external-data-source.d.ts +10 -0
- package/dist/_pkgs/affine-database-block/external-data-source.js +24 -0
- package/dist/_pkgs/affine-database-block/properties/created-time/define.js +3 -1
- package/dist/_pkgs/affine-database-block/properties/link/cell-renderer.js +3 -2
- package/dist/_pkgs/affine-database-block/properties/link/define.js +3 -1
- package/dist/_pkgs/affine-database-block/properties/rich-text/define.js +3 -1
- package/dist/_pkgs/affine-database-block/properties/text/hosted.js +1 -0
- package/dist/_pkgs/affine-database-block/properties/title/define.js +3 -1
- package/dist/_pkgs/affine-database-block/properties/title/hosted.js +1 -0
- package/dist/_pkgs/affine-database-block/service/new-row-menu.d.ts +1 -1
- package/dist/_pkgs/affine-database-block/service/new-row-menu.js +1 -1
- package/dist/_pkgs/affine-database-block/translations.d.ts +11 -0
- package/dist/_pkgs/affine-database-block/translations.js +57 -0
- package/dist/_pkgs/affine-database-block/views/index.d.ts +7 -9
- package/dist/_pkgs/affine-database-block/views/index.js +7 -10
- package/dist/_pkgs/affine-database-engine/core/common/properties.js +7 -7
- package/dist/_pkgs/affine-database-engine/core/common/property-menu.d.ts +18 -2
- package/dist/_pkgs/affine-database-engine/core/common/property-menu.js +78 -27
- package/dist/_pkgs/affine-database-engine/core/data-source/base.d.ts +11 -0
- package/dist/_pkgs/affine-database-engine/core/data-source/base.js +3 -0
- package/dist/_pkgs/affine-database-engine/core/detail/detail.js +8 -5
- package/dist/_pkgs/affine-database-engine/core/detail/field.js +14 -7
- package/dist/_pkgs/affine-database-engine/core/filter/add-filter.js +4 -2
- package/dist/_pkgs/affine-database-engine/core/filter/filter-fn/boolean.js +7 -4
- package/dist/_pkgs/affine-database-engine/core/filter/filter-fn/create.d.ts +9 -1
- package/dist/_pkgs/affine-database-engine/core/filter/filter-fn/create.js +2 -0
- package/dist/_pkgs/affine-database-engine/core/filter/filter-fn/date.js +7 -4
- package/dist/_pkgs/affine-database-engine/core/filter/filter-fn/multi-tag.js +17 -8
- package/dist/_pkgs/affine-database-engine/core/filter/filter-fn/number.js +6 -6
- package/dist/_pkgs/affine-database-engine/core/filter/filter-fn/string.js +19 -12
- package/dist/_pkgs/affine-database-engine/core/filter/filter-fn/tag.js +9 -4
- package/dist/_pkgs/affine-database-engine/core/filter/filter-fn/unknown.js +7 -4
- package/dist/_pkgs/affine-database-engine/core/filter/literal/define.js +6 -4
- package/dist/_pkgs/affine-database-engine/core/filter/literal/matcher.d.ts +2 -1
- package/dist/_pkgs/affine-database-engine/core/filter/literal/matcher.js +3 -2
- package/dist/_pkgs/affine-database-engine/core/filter/literal/types.d.ts +4 -1
- package/dist/_pkgs/affine-database-engine/core/filter/literal/types.js +1 -1
- package/dist/_pkgs/affine-database-engine/core/group-by/define.js +11 -9
- package/dist/_pkgs/affine-database-engine/core/group-by/group-title.js +16 -6
- package/dist/_pkgs/affine-database-engine/core/group-by/locate-row.d.ts +16 -0
- package/dist/_pkgs/affine-database-engine/core/group-by/locate-row.js +32 -0
- package/dist/_pkgs/affine-database-engine/core/group-by/renderer/date-group.js +10 -3
- package/dist/_pkgs/affine-database-engine/core/group-by/setting.d.ts +2 -0
- package/dist/_pkgs/affine-database-engine/core/group-by/setting.js +40 -28
- package/dist/_pkgs/affine-database-engine/core/group-by/trait.d.ts +3 -0
- package/dist/_pkgs/affine-database-engine/core/group-by/trait.js +8 -0
- package/dist/_pkgs/affine-database-engine/core/group-by/types.d.ts +3 -1
- package/dist/_pkgs/affine-database-engine/core/group-by/types.js +1 -1
- package/dist/_pkgs/affine-database-engine/core/property/types.d.ts +7 -0
- package/dist/_pkgs/affine-database-engine/core/property/types.js +1 -1
- package/dist/_pkgs/affine-database-engine/core/sort/add-sort.js +3 -1
- package/dist/_pkgs/affine-database-engine/core/statistics/any.js +43 -21
- package/dist/_pkgs/affine-database-engine/core/statistics/checkbox.js +29 -14
- package/dist/_pkgs/affine-database-engine/core/statistics/number.js +54 -31
- package/dist/_pkgs/affine-database-engine/core/statistics/types.d.ts +8 -0
- package/dist/_pkgs/affine-database-engine/core/statistics/types.js +2 -1
- package/dist/_pkgs/affine-database-engine/core/utils/wording.d.ts +20 -1
- package/dist/_pkgs/affine-database-engine/core/utils/wording.js +24 -0
- package/dist/_pkgs/affine-database-engine/core/view-manager/property.d.ts +7 -0
- package/dist/_pkgs/affine-database-engine/core/view-manager/property.js +29 -5
- package/dist/_pkgs/affine-database-engine/core/view-manager/single-view.d.ts +14 -0
- package/dist/_pkgs/affine-database-engine/core/view-manager/single-view.js +11 -0
- package/dist/_pkgs/affine-database-engine/property-presets/checkbox/define.js +3 -1
- package/dist/_pkgs/affine-database-engine/property-presets/date/define.js +3 -1
- package/dist/_pkgs/affine-database-engine/property-presets/multi-select/define.js +3 -1
- package/dist/_pkgs/affine-database-engine/property-presets/number/define.js +3 -1
- package/dist/_pkgs/affine-database-engine/property-presets/number/utils/formats.d.ts +3 -0
- package/dist/_pkgs/affine-database-engine/property-presets/number/utils/formats.js +56 -9
- package/dist/_pkgs/affine-database-engine/property-presets/progress/define.js +3 -1
- package/dist/_pkgs/affine-database-engine/property-presets/select/define.js +3 -1
- package/dist/_pkgs/affine-database-engine/property-presets/text/define.js +3 -1
- package/dist/_pkgs/affine-database-engine/translations.d.ts +133 -5
- package/dist/_pkgs/affine-database-engine/translations.js +625 -9
- package/dist/_pkgs/affine-database-engine/view-presets/convert.js +0 -28
- package/dist/_pkgs/affine-database-engine/view-presets/effect.js +0 -2
- package/dist/_pkgs/affine-database-engine/view-presets/flat/flat-converts.js +2 -4
- package/dist/_pkgs/affine-database-engine/view-presets/flat/flat-view-ui.d.ts +57 -0
- package/dist/_pkgs/affine-database-engine/view-presets/flat/flat-view-ui.js +113 -4
- package/dist/_pkgs/affine-database-engine/view-presets/gallery/gallery-view.js +2 -1
- package/dist/_pkgs/affine-database-engine/view-presets/index.d.ts +0 -2
- package/dist/_pkgs/affine-database-engine/view-presets/index.js +0 -3
- package/dist/_pkgs/affine-database-engine/view-presets/kanban/kanban-view-manager.js +2 -0
- package/dist/_pkgs/affine-database-engine/view-presets/kanban/mobile/group.js +7 -5
- package/dist/_pkgs/affine-database-engine/view-presets/kanban/mobile/kanban-view-ui-logic.d.ts +5 -0
- package/dist/_pkgs/affine-database-engine/view-presets/kanban/mobile/kanban-view-ui-logic.js +25 -3
- package/dist/_pkgs/affine-database-engine/view-presets/kanban/mobile/menu.js +12 -6
- package/dist/_pkgs/affine-database-engine/view-presets/kanban/pc/controller/selection.d.ts +8 -0
- package/dist/_pkgs/affine-database-engine/view-presets/kanban/pc/controller/selection.js +35 -12
- package/dist/_pkgs/affine-database-engine/view-presets/kanban/pc/group.js +7 -5
- package/dist/_pkgs/affine-database-engine/view-presets/kanban/pc/header.js +5 -1
- package/dist/_pkgs/affine-database-engine/view-presets/kanban/pc/kanban-view-ui-logic.d.ts +5 -0
- package/dist/_pkgs/affine-database-engine/view-presets/kanban/pc/kanban-view-ui-logic.js +8 -4
- package/dist/_pkgs/affine-database-engine/view-presets/kanban/pc/menu.js +12 -6
- package/dist/_pkgs/affine-database-engine/view-presets/list/list-view.js +2 -1
- package/dist/_pkgs/affine-database-engine/view-presets/table/mobile/column-header.js +6 -4
- package/dist/_pkgs/affine-database-engine/view-presets/table/mobile/group.js +6 -5
- package/dist/_pkgs/affine-database-engine/view-presets/table/mobile/header.js +2 -2
- package/dist/_pkgs/affine-database-engine/view-presets/table/mobile/table-view-ui-logic.d.ts +4 -3
- package/dist/_pkgs/affine-database-engine/view-presets/table/mobile/table-view-ui-logic.js +29 -5
- package/dist/_pkgs/affine-database-engine/view-presets/table/pc/controller/clipboard.js +6 -2
- package/dist/_pkgs/affine-database-engine/view-presets/table/pc/controller/selection.js +2 -0
- package/dist/_pkgs/affine-database-engine/view-presets/table/pc/group.js +6 -5
- package/dist/_pkgs/affine-database-engine/view-presets/table/pc/header/column-header.js +11 -7
- package/dist/_pkgs/affine-database-engine/view-presets/table/pc/header/database-header-column.js +16 -12
- package/dist/_pkgs/affine-database-engine/view-presets/table/pc/header/number-format-bar.js +4 -2
- package/dist/_pkgs/affine-database-engine/view-presets/table/pc/menu.js +9 -6
- package/dist/_pkgs/affine-database-engine/view-presets/table/pc/table-view-ui-logic.d.ts +8 -1
- package/dist/_pkgs/affine-database-engine/view-presets/table/pc/table-view-ui-logic.js +29 -7
- package/dist/_pkgs/affine-database-engine/view-presets/table/pc-virtual/controller/clipboard.js +6 -2
- package/dist/_pkgs/affine-database-engine/view-presets/table/pc-virtual/controller/selection.js +2 -0
- package/dist/_pkgs/affine-database-engine/view-presets/table/pc-virtual/group/bottom/group-footer.js +5 -2
- package/dist/_pkgs/affine-database-engine/view-presets/table/pc-virtual/group/bottom/stats/column-stats-column.d.ts +1 -1
- package/dist/_pkgs/affine-database-engine/view-presets/table/pc-virtual/group/bottom/stats/column-stats-column.js +14 -6
- package/dist/_pkgs/affine-database-engine/view-presets/table/pc-virtual/group/top/group-header.js +5 -2
- package/dist/_pkgs/affine-database-engine/view-presets/table/pc-virtual/group/top/group-title.js +5 -3
- package/dist/_pkgs/affine-database-engine/view-presets/table/pc-virtual/group/top/header/column-header.js +17 -10
- package/dist/_pkgs/affine-database-engine/view-presets/table/pc-virtual/group/top/header/number-format-bar.js +4 -2
- package/dist/_pkgs/affine-database-engine/view-presets/table/pc-virtual/group/top/header/single-column-header.js +20 -14
- package/dist/_pkgs/affine-database-engine/view-presets/table/pc-virtual/row/menu.js +9 -6
- package/dist/_pkgs/affine-database-engine/view-presets/table/pc-virtual/table-view-ui-logic.d.ts +6 -1
- package/dist/_pkgs/affine-database-engine/view-presets/table/pc-virtual/table-view-ui-logic.js +30 -3
- package/dist/_pkgs/affine-database-engine/view-presets/table/stats/column-stats-column.d.ts +1 -1
- package/dist/_pkgs/affine-database-engine/view-presets/table/stats/column-stats-column.js +14 -6
- package/dist/_pkgs/affine-database-engine/view-presets/table/table-view-manager.js +2 -0
- package/dist/_pkgs/affine-database-engine/widget-presets/quick-setting-bar/filter/condition-view.d.ts +2 -0
- package/dist/_pkgs/affine-database-engine/widget-presets/quick-setting-bar/filter/condition-view.js +13 -6
- package/dist/_pkgs/affine-database-engine/widget-presets/quick-setting-bar/filter/group-panel-view.js +20 -13
- package/dist/_pkgs/affine-database-engine/widget-presets/quick-setting-bar/filter/root-panel-view.js +10 -5
- package/dist/_pkgs/affine-database-engine/widget-presets/quick-setting-bar/sort/root-panel.js +8 -5
- package/dist/_pkgs/affine-database-engine/widget-presets/tools/presets/search/search.js +2 -2
- package/dist/_pkgs/affine-database-engine/widget-presets/tools/presets/table-add-row/add-row.d.ts +6 -0
- package/dist/_pkgs/affine-database-engine/widget-presets/tools/presets/table-add-row/add-row.js +49 -4
- package/dist/_pkgs/affine-database-engine/widget-presets/tools/presets/view-options/view-settings.d.ts +3 -3
- package/dist/_pkgs/affine-database-engine/widget-presets/tools/presets/view-options/view-settings.js +3 -3
- package/dist/_pkgs/affine-database-engine/widget-presets/views-bar/views-view.js +5 -0
- package/dist/_pkgs/affine-database-view-block/configs/slash-menu.js +6 -3
- package/dist/_pkgs/affine-database-view-block/data-view-block.js +5 -4
- package/dist/_pkgs/affine-fragment-doc-title/doc-title.d.ts +3 -2
- package/dist/_pkgs/affine-fragment-doc-title/doc-title.js +3 -2
- package/dist/_pkgs/affine-shared/services/data-source-picker-service.d.ts +31 -0
- package/dist/_pkgs/affine-widget-edgeless-zoom-toolbar/index.js +26 -26
- package/dist/_pkgs/affine-widget-keyboard-toolbar/icons.js +98 -98
- package/dist/_pkgs/affine-widget-page-dragging-area/index.js +10 -10
- package/dist/_pkgs/affine-widget-viewport-overlay/index.js +13 -13
- package/package.json +1 -1
- package/dist/_pkgs/affine-database-engine/view-presets/calendar/calendar-view-manager.d.ts +0 -70
- package/dist/_pkgs/affine-database-engine/view-presets/calendar/calendar-view-manager.js +0 -449
- package/dist/_pkgs/affine-database-engine/view-presets/calendar/define.d.ts +0 -10
- package/dist/_pkgs/affine-database-engine/view-presets/calendar/define.js +0 -29
- package/dist/_pkgs/affine-database-engine/view-presets/calendar/effect.d.ts +0 -1
- package/dist/_pkgs/affine-database-engine/view-presets/calendar/effect.js +0 -4
- package/dist/_pkgs/affine-database-engine/view-presets/calendar/index.d.ts +0 -6
- package/dist/_pkgs/affine-database-engine/view-presets/calendar/index.js +0 -6
- package/dist/_pkgs/affine-database-engine/view-presets/calendar/layout.d.ts +0 -37
- package/dist/_pkgs/affine-database-engine/view-presets/calendar/layout.js +0 -138
- package/dist/_pkgs/affine-database-engine/view-presets/calendar/pc/actions.d.ts +0 -7
- package/dist/_pkgs/affine-database-engine/view-presets/calendar/pc/actions.js +0 -64
- package/dist/_pkgs/affine-database-engine/view-presets/calendar/pc/dnd.d.ts +0 -32
- package/dist/_pkgs/affine-database-engine/view-presets/calendar/pc/dnd.js +0 -159
- package/dist/_pkgs/affine-database-engine/view-presets/calendar/pc/effect.d.ts +0 -1
- package/dist/_pkgs/affine-database-engine/view-presets/calendar/pc/effect.js +0 -7
- package/dist/_pkgs/affine-database-engine/view-presets/calendar/pc/hit-test.d.ts +0 -1
- package/dist/_pkgs/affine-database-engine/view-presets/calendar/pc/hit-test.js +0 -28
- package/dist/_pkgs/affine-database-engine/view-presets/calendar/pc/styles.d.ts +0 -1
- package/dist/_pkgs/affine-database-engine/view-presets/calendar/pc/styles.js +0 -707
- package/dist/_pkgs/affine-database-engine/view-presets/calendar/pc/view.d.ts +0 -89
- package/dist/_pkgs/affine-database-engine/view-presets/calendar/pc/view.js +0 -849
- package/dist/_pkgs/affine-database-engine/view-presets/calendar/renderer.d.ts +0 -2
- package/dist/_pkgs/affine-database-engine/view-presets/calendar/renderer.js +0 -8
- package/dist/_pkgs/affine-database-engine/view-presets/calendar/source.d.ts +0 -8
- package/dist/_pkgs/affine-database-engine/view-presets/calendar/source.js +0 -3
- package/dist/_pkgs/affine-database-engine/view-presets/calendar/types.d.ts +0 -79
- package/dist/_pkgs/affine-database-engine/view-presets/calendar/types.js +0 -1
package/architecture/code.c4
CHANGED
|
@@ -1537,13 +1537,13 @@ model {
|
|
|
1537
1537
|
link https://github.com/formicoidea/blocksuite-labre/tree/blocksuite-labre-main/packages/affine/database/engine
|
|
1538
1538
|
metadata {
|
|
1539
1539
|
path 'packages/affine/database/engine'
|
|
1540
|
-
files '
|
|
1540
|
+
files '338'
|
|
1541
1541
|
}
|
|
1542
1542
|
core = folder 'core/' {
|
|
1543
1543
|
link https://github.com/formicoidea/blocksuite-labre/tree/blocksuite-labre-main/packages/affine/database/engine/src/core
|
|
1544
1544
|
metadata {
|
|
1545
1545
|
path 'packages/affine/database/engine/src/core'
|
|
1546
|
-
files '
|
|
1546
|
+
files '167'
|
|
1547
1547
|
}
|
|
1548
1548
|
}
|
|
1549
1549
|
property-presets = folder 'property-presets/' {
|
|
@@ -1564,7 +1564,7 @@ model {
|
|
|
1564
1564
|
link https://github.com/formicoidea/blocksuite-labre/tree/blocksuite-labre-main/packages/affine/database/engine/src/view-presets
|
|
1565
1565
|
metadata {
|
|
1566
1566
|
path 'packages/affine/database/engine/src/view-presets'
|
|
1567
|
-
files '
|
|
1567
|
+
files '114'
|
|
1568
1568
|
}
|
|
1569
1569
|
}
|
|
1570
1570
|
widget-presets = folder 'widget-presets/' {
|
|
@@ -3728,7 +3728,7 @@ model {
|
|
|
3728
3728
|
features.database.block -[uses]-> features.inlines.preset '3 imports'
|
|
3729
3729
|
features.database.block -[uses]-> features.inlines.reference '1 import'
|
|
3730
3730
|
features.database.block -[uses]-> features.rich-text '2 imports, 2 type-only'
|
|
3731
|
-
features.database.block -[uses]-> features.shared '
|
|
3731
|
+
features.database.block -[uses]-> features.shared '45 imports, 8 type-only'
|
|
3732
3732
|
features.database.block -[uses]-> features.widgets.drag-handle '1 import'
|
|
3733
3733
|
features.database.block -[uses]-> features.widgets.slash-menu '2 imports, 1 type-only'
|
|
3734
3734
|
features.database.block -[uses]-> framework.global_ '16 imports'
|
|
@@ -3744,14 +3744,14 @@ model {
|
|
|
3744
3744
|
features.database.editor -[uses]-> framework.global_ '3 imports'
|
|
3745
3745
|
features.database.editor -[uses]-> framework.std '8 imports, 5 type-only'
|
|
3746
3746
|
features.database.editor -[uses]-> framework.store '1 import'
|
|
3747
|
-
features.database.engine -[uses]-> features.components '
|
|
3748
|
-
features.database.engine -[uses]-> features.shared '
|
|
3749
|
-
features.database.engine -[uses]-> framework.global_ '
|
|
3750
|
-
features.database.engine -[uses]-> framework.std '
|
|
3751
|
-
features.database.engine -[uses]-> framework.store '
|
|
3747
|
+
features.database.engine -[uses]-> features.components '75 imports, 4 type-only'
|
|
3748
|
+
features.database.engine -[uses]-> features.shared '98 imports, 44 type-only'
|
|
3749
|
+
features.database.engine -[uses]-> framework.global_ '96 imports, 5 type-only'
|
|
3750
|
+
features.database.engine -[uses]-> framework.std '81 imports, 9 type-only'
|
|
3751
|
+
features.database.engine -[uses]-> framework.store '12 imports, 4 type-only'
|
|
3752
3752
|
features.database.engine -[uses]-> model_.model_ '7 imports, 4 type-only'
|
|
3753
3753
|
features.database.view-block -[uses]-> features.components '5 imports'
|
|
3754
|
-
features.database.view-block -[uses]-> features.database.block '
|
|
3754
|
+
features.database.view-block -[uses]-> features.database.block '5 imports'
|
|
3755
3755
|
features.database.view-block -[uses]-> features.database.engine '11 imports, 4 type-only'
|
|
3756
3756
|
features.database.view-block -[uses]-> features.ext-loader '2 imports'
|
|
3757
3757
|
features.database.view-block -[uses]-> features.shared '6 imports'
|
|
@@ -5697,7 +5697,8 @@ model {
|
|
|
5697
5697
|
features.database.block.components -[imports]-> framework.global_.lit '2 imports'
|
|
5698
5698
|
features.database.block.components -[imports]-> framework.std.src '3 imports'
|
|
5699
5699
|
features.database.block.components -[imports]-> framework.store.src '1 import, 1 type-only'
|
|
5700
|
-
features.database.block.configs -[imports]-> features.database.block.src '
|
|
5700
|
+
features.database.block.configs -[imports]-> features.database.block.src '4 imports'
|
|
5701
|
+
features.database.block.configs -[imports]-> features.database.engine.src '1 import'
|
|
5701
5702
|
features.database.block.configs -[imports]-> features.database.engine.view-presets '1 import'
|
|
5702
5703
|
features.database.block.configs -[imports]-> features.shared.commands '1 import'
|
|
5703
5704
|
features.database.block.configs -[imports]-> features.shared.services '1 import'
|
|
@@ -5706,12 +5707,13 @@ model {
|
|
|
5706
5707
|
features.database.block.configs -[imports]-> framework.std.src '1 import, 1 type-only'
|
|
5707
5708
|
features.database.block.context -[imports]-> framework.global_.di '1 import'
|
|
5708
5709
|
features.database.block.context -[imports]-> framework.std.src '1 import, 1 type-only'
|
|
5710
|
+
features.database.block.detail-panel -[imports]-> features.database.block.src '1 import'
|
|
5709
5711
|
features.database.block.detail-panel -[imports]-> features.database.block.utils '1 import'
|
|
5710
5712
|
features.database.block.detail-panel -[imports]-> features.database.engine.src '2 imports, 2 type-only'
|
|
5711
5713
|
features.database.block.detail-panel -[imports]-> features.database.engine.view-presets '1 import, 1 type-only'
|
|
5712
5714
|
features.database.block.detail-panel -[imports]-> features.inlines.preset.src '1 import'
|
|
5713
5715
|
features.database.block.detail-panel -[imports]-> features.shared.consts '1 import'
|
|
5714
|
-
features.database.block.detail-panel -[imports]-> features.shared.services '
|
|
5716
|
+
features.database.block.detail-panel -[imports]-> features.shared.services '2 imports'
|
|
5715
5717
|
features.database.block.detail-panel -[imports]-> features.shared.types '1 import, 1 type-only'
|
|
5716
5718
|
features.database.block.detail-panel -[imports]-> features.shared.utils '1 import'
|
|
5717
5719
|
features.database.block.detail-panel -[imports]-> framework.global_.lit '2 imports'
|
|
@@ -5719,7 +5721,7 @@ model {
|
|
|
5719
5721
|
features.database.block.detail-panel -[imports]-> framework.store.src '1 import, 1 type-only'
|
|
5720
5722
|
features.database.block.detail-panel -[imports]-> model_.model_.src '1 import'
|
|
5721
5723
|
features.database.block.properties -[imports]-> features.database.block.context '5 imports'
|
|
5722
|
-
features.database.block.properties -[imports]-> features.database.block.src '
|
|
5724
|
+
features.database.block.properties -[imports]-> features.database.block.src '6 imports, 2 type-only'
|
|
5723
5725
|
features.database.block.properties -[imports]-> features.database.block.utils '3 imports'
|
|
5724
5726
|
features.database.block.properties -[imports]-> features.database.engine.property-presets '6 imports'
|
|
5725
5727
|
features.database.block.properties -[imports]-> features.database.engine.src '14 imports, 2 type-only'
|
|
@@ -5758,12 +5760,12 @@ model {
|
|
|
5758
5760
|
features.database.block.src -[imports]-> features.database.block.views_ '1 import'
|
|
5759
5761
|
features.database.block.src -[imports]-> features.database.engine.property-presets '1 import'
|
|
5760
5762
|
features.database.block.src -[imports]-> features.database.engine.src '7 imports, 2 type-only'
|
|
5761
|
-
features.database.block.src -[imports]-> features.database.engine.view-presets '
|
|
5763
|
+
features.database.block.src -[imports]-> features.database.engine.view-presets '1 import'
|
|
5762
5764
|
features.database.block.src -[imports]-> features.database.engine.widget-presets '1 import'
|
|
5763
5765
|
features.database.block.src -[imports]-> features.ext-loader.src '2 imports'
|
|
5764
5766
|
features.database.block.src -[imports]-> features.shared.commands '1 import'
|
|
5765
5767
|
features.database.block.src -[imports]-> features.shared.consts '1 import'
|
|
5766
|
-
features.database.block.src -[imports]-> features.shared.services '
|
|
5768
|
+
features.database.block.src -[imports]-> features.shared.services '7 imports, 2 type-only'
|
|
5767
5769
|
features.database.block.src -[imports]-> features.shared.theme '1 import'
|
|
5768
5770
|
features.database.block.src -[imports]-> features.shared.utils '4 imports, 1 type-only'
|
|
5769
5771
|
features.database.block.src -[imports]-> features.widgets.drag-handle.src '1 import'
|
|
@@ -5831,10 +5833,10 @@ model {
|
|
|
5831
5833
|
features.database.engine.core -[imports]-> features.components.color-picker '2 imports'
|
|
5832
5834
|
features.database.engine.core -[imports]-> features.components.context-menu '18 imports, 4 type-only'
|
|
5833
5835
|
features.database.engine.core -[imports]-> features.components.icons_ '1 import'
|
|
5834
|
-
features.database.engine.core -[imports]-> features.components.src '
|
|
5835
|
-
features.database.engine.core -[imports]-> features.database.engine.src '
|
|
5836
|
+
features.database.engine.core -[imports]-> features.components.src '2 imports'
|
|
5837
|
+
features.database.engine.core -[imports]-> features.database.engine.src '23 imports'
|
|
5836
5838
|
features.database.engine.core -[imports]-> features.database.engine.view-presets '5 imports, 3 type-only'
|
|
5837
|
-
features.database.engine.core -[imports]-> features.shared.services '
|
|
5839
|
+
features.database.engine.core -[imports]-> features.shared.services '18 imports, 10 type-only'
|
|
5838
5840
|
features.database.engine.core -[imports]-> features.shared.theme '5 imports'
|
|
5839
5841
|
features.database.engine.core -[imports]-> features.shared.types '12 imports, 12 type-only'
|
|
5840
5842
|
features.database.engine.core -[imports]-> features.shared.utils '10 imports, 8 type-only'
|
|
@@ -5843,14 +5845,15 @@ model {
|
|
|
5843
5845
|
features.database.engine.core -[imports]-> framework.global_.env '3 imports'
|
|
5844
5846
|
features.database.engine.core -[imports]-> framework.global_.exceptions '3 imports'
|
|
5845
5847
|
features.database.engine.core -[imports]-> framework.global_.lit '19 imports'
|
|
5846
|
-
features.database.engine.core -[imports]-> framework.std.src '27 imports,
|
|
5848
|
+
features.database.engine.core -[imports]-> framework.std.src '27 imports, 6 type-only'
|
|
5847
5849
|
features.database.engine.core -[imports]-> framework.store.src '6 imports, 2 type-only'
|
|
5848
5850
|
features.database.engine.core -[imports]-> model_.model_.src '6 imports, 3 type-only'
|
|
5849
5851
|
features.database.engine.property-presets -[imports]-> features.components.context-menu '3 imports'
|
|
5850
5852
|
features.database.engine.property-presets -[imports]-> features.components.date-picker '1 import'
|
|
5851
5853
|
features.database.engine.property-presets -[imports]-> features.components.portal '1 import'
|
|
5852
5854
|
features.database.engine.property-presets -[imports]-> features.database.engine.core '50 imports, 2 type-only'
|
|
5853
|
-
features.database.engine.property-presets -[imports]-> features.
|
|
5855
|
+
features.database.engine.property-presets -[imports]-> features.database.engine.src '8 imports'
|
|
5856
|
+
features.database.engine.property-presets -[imports]-> features.shared.services '2 imports, 1 type-only'
|
|
5854
5857
|
features.database.engine.property-presets -[imports]-> features.shared.theme '1 import'
|
|
5855
5858
|
features.database.engine.property-presets -[imports]-> framework.global_.env '2 imports'
|
|
5856
5859
|
features.database.engine.property-presets -[imports]-> framework.global_.gfx '1 import'
|
|
@@ -5860,29 +5863,28 @@ model {
|
|
|
5860
5863
|
features.database.engine.src -[imports]-> features.database.engine.view-presets '1 import'
|
|
5861
5864
|
features.database.engine.src -[imports]-> features.database.engine.widget-presets '1 import'
|
|
5862
5865
|
features.database.engine.src -[imports]-> features.shared.services '1 import, 1 type-only'
|
|
5863
|
-
features.database.engine.view-presets -[imports]-> features.components.context-menu '
|
|
5864
|
-
features.database.engine.view-presets -[imports]-> features.components.src '
|
|
5865
|
-
features.database.engine.view-presets -[imports]-> features.database.engine.core '
|
|
5866
|
+
features.database.engine.view-presets -[imports]-> features.components.context-menu '30 imports'
|
|
5867
|
+
features.database.engine.view-presets -[imports]-> features.components.src '5 imports'
|
|
5868
|
+
features.database.engine.view-presets -[imports]-> features.database.engine.core '228 imports, 60 type-only'
|
|
5866
5869
|
features.database.engine.view-presets -[imports]-> features.database.engine.property-presets '7 imports'
|
|
5867
|
-
features.database.engine.view-presets -[imports]-> features.database.engine.src '
|
|
5870
|
+
features.database.engine.view-presets -[imports]-> features.database.engine.src '31 imports'
|
|
5868
5871
|
features.database.engine.view-presets -[imports]-> features.database.engine.widget-presets '2 imports'
|
|
5869
|
-
features.database.engine.view-presets -[imports]-> features.shared.services '
|
|
5872
|
+
features.database.engine.view-presets -[imports]-> features.shared.services '10 imports'
|
|
5870
5873
|
features.database.engine.view-presets -[imports]-> features.shared.theme '10 imports'
|
|
5871
|
-
features.database.engine.view-presets -[imports]-> features.shared.types '
|
|
5872
|
-
features.database.engine.view-presets -[imports]-> features.shared.utils '
|
|
5873
|
-
features.database.engine.view-presets -[imports]-> framework.global_.di '1 import'
|
|
5874
|
+
features.database.engine.view-presets -[imports]-> features.shared.types '1 import, 1 type-only'
|
|
5875
|
+
features.database.engine.view-presets -[imports]-> features.shared.utils '15 imports, 10 type-only'
|
|
5874
5876
|
features.database.engine.view-presets -[imports]-> framework.global_.disposable '3 imports'
|
|
5875
5877
|
features.database.engine.view-presets -[imports]-> framework.global_.env '1 import'
|
|
5876
5878
|
features.database.engine.view-presets -[imports]-> framework.global_.exceptions '2 imports'
|
|
5877
5879
|
features.database.engine.view-presets -[imports]-> framework.global_.gfx '1 import'
|
|
5878
5880
|
features.database.engine.view-presets -[imports]-> framework.global_.lit '38 imports'
|
|
5879
|
-
features.database.engine.view-presets -[imports]-> framework.std.src '
|
|
5880
|
-
features.database.engine.view-presets -[imports]-> framework.store.src '
|
|
5881
|
+
features.database.engine.view-presets -[imports]-> framework.std.src '42 imports, 3 type-only'
|
|
5882
|
+
features.database.engine.view-presets -[imports]-> framework.store.src '4 imports, 2 type-only'
|
|
5881
5883
|
features.database.engine.widget-presets -[imports]-> features.components.context-menu '12 imports'
|
|
5882
|
-
features.database.engine.widget-presets -[imports]-> features.database.engine.core '
|
|
5883
|
-
features.database.engine.widget-presets -[imports]-> features.database.engine.src '
|
|
5884
|
+
features.database.engine.widget-presets -[imports]-> features.database.engine.core '95 imports, 24 type-only'
|
|
5885
|
+
features.database.engine.widget-presets -[imports]-> features.database.engine.src '13 imports'
|
|
5884
5886
|
features.database.engine.widget-presets -[imports]-> features.database.engine.view-presets '2 imports, 2 type-only'
|
|
5885
|
-
features.database.engine.widget-presets -[imports]-> features.shared.services '
|
|
5887
|
+
features.database.engine.widget-presets -[imports]-> features.shared.services '8 imports, 1 type-only'
|
|
5886
5888
|
features.database.engine.widget-presets -[imports]-> features.shared.theme '5 imports'
|
|
5887
5889
|
features.database.engine.widget-presets -[imports]-> framework.global_.di '1 import'
|
|
5888
5890
|
features.database.engine.widget-presets -[imports]-> framework.global_.env '3 imports'
|
|
@@ -5896,6 +5898,7 @@ model {
|
|
|
5896
5898
|
features.database.view-block.columns -[imports]-> features.database.block.src '1 import'
|
|
5897
5899
|
features.database.view-block.columns -[imports]-> features.database.engine.property-presets '1 import'
|
|
5898
5900
|
features.database.view-block.columns -[imports]-> features.database.engine.src '1 import, 1 type-only'
|
|
5901
|
+
features.database.view-block.configs -[imports]-> features.database.block.src '1 import'
|
|
5899
5902
|
features.database.view-block.configs -[imports]-> features.database.engine.src '1 import'
|
|
5900
5903
|
features.database.view-block.configs -[imports]-> features.database.view-block.src '1 import, 1 type-only'
|
|
5901
5904
|
features.database.view-block.configs -[imports]-> features.shared.services '1 import'
|
|
@@ -5906,7 +5909,7 @@ model {
|
|
|
5906
5909
|
features.database.view-block.src -[imports]-> features.components.icons_ '1 import'
|
|
5907
5910
|
features.database.view-block.src -[imports]-> features.components.peek '1 import'
|
|
5908
5911
|
features.database.view-block.src -[imports]-> features.components.toast '1 import'
|
|
5909
|
-
features.database.view-block.src -[imports]-> features.database.block.src '
|
|
5912
|
+
features.database.view-block.src -[imports]-> features.database.block.src '3 imports'
|
|
5910
5913
|
features.database.view-block.src -[imports]-> features.database.engine.property-presets '1 import'
|
|
5911
5914
|
features.database.view-block.src -[imports]-> features.database.engine.src '3 imports, 1 type-only'
|
|
5912
5915
|
features.database.view-block.src -[imports]-> features.database.engine.widget-presets '1 import'
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "blocksuite"
|
|
3
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "blocksuite"
|
|
3
|
+
}
|
|
@@ -58,18 +58,18 @@ const READ_LABEL_FALLBACK = 'Read this component';
|
|
|
58
58
|
* Drawn inline like its neighbours: this package does not depend on
|
|
59
59
|
* `@blocksuite/icons` and one glyph is not worth a new dependency.
|
|
60
60
|
*/
|
|
61
|
-
const ReadIcon = html `<svg
|
|
62
|
-
width="20"
|
|
63
|
-
height="20"
|
|
64
|
-
viewBox="0 0 24 24"
|
|
65
|
-
fill="none"
|
|
66
|
-
stroke="currentColor"
|
|
67
|
-
stroke-width="2"
|
|
68
|
-
stroke-linecap="round"
|
|
69
|
-
stroke-linejoin="round"
|
|
70
|
-
>
|
|
71
|
-
<path d="M2 12s3.5-6 10-6 10 6 10 6-3.5 6-10 6-10-6-10-6z" />
|
|
72
|
-
<circle cx="12" cy="12" r="3" />
|
|
61
|
+
const ReadIcon = html `<svg
|
|
62
|
+
width="20"
|
|
63
|
+
height="20"
|
|
64
|
+
viewBox="0 0 24 24"
|
|
65
|
+
fill="none"
|
|
66
|
+
stroke="currentColor"
|
|
67
|
+
stroke-width="2"
|
|
68
|
+
stroke-linecap="round"
|
|
69
|
+
stroke-linejoin="round"
|
|
70
|
+
>
|
|
71
|
+
<path d="M2 12s3.5-6 10-6 10 6 10 6-3.5 6-10 6-10-6-10-6z" />
|
|
72
|
+
<circle cx="12" cy="12" r="3" />
|
|
73
73
|
</svg>`;
|
|
74
74
|
/** The command this module drives. Spelled once. */
|
|
75
75
|
const ELEMENT_READ_ID = 'element.read';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { BlockStdScope } from '../../std/index.js';
|
|
2
2
|
import { ShadowlessElement } from '../../std/index.js';
|
|
3
|
-
import { type Middleware, type ReferenceElement } from '@floating-ui/dom';
|
|
3
|
+
import { type Middleware, type Placement, type ReferenceElement } from '@floating-ui/dom';
|
|
4
4
|
import type { MenuFocusable } from './focusable.js';
|
|
5
5
|
import { Menu, type MenuConfig, type MenuOptions } from './menu.js';
|
|
6
6
|
import type { MenuComponentInterface } from './types.js';
|
|
@@ -61,6 +61,8 @@ export declare const createPopup: (target: PopupTarget, content: HTMLElement, op
|
|
|
61
61
|
onClose?: () => void;
|
|
62
62
|
middleware?: Array<Middleware | null | undefined | false>;
|
|
63
63
|
container?: HTMLElement;
|
|
64
|
+
/** Told where the popup was placed, at each placement. */
|
|
65
|
+
onPlaced?: (placement: Placement) => void;
|
|
64
66
|
}) => () => void;
|
|
65
67
|
export type MenuHandler = {
|
|
66
68
|
close: () => void;
|
|
@@ -527,7 +527,8 @@ export const createPopup = (target, content, options) => {
|
|
|
527
527
|
computePosition(target.targetRect, content, {
|
|
528
528
|
middleware: options?.middleware ?? [shift({ crossAxis: true })],
|
|
529
529
|
})
|
|
530
|
-
.then(({ x, y }) => {
|
|
530
|
+
.then(({ x, y, placement }) => {
|
|
531
|
+
options?.onPlaced?.(placement);
|
|
531
532
|
Object.assign(content.style, {
|
|
532
533
|
left: `${x}px`,
|
|
533
534
|
top: `${y}px`,
|
|
@@ -620,6 +621,13 @@ export const popMenu = (target, props) => {
|
|
|
620
621
|
onClose: () => {
|
|
621
622
|
menu.close();
|
|
622
623
|
},
|
|
624
|
+
// A menu placed beside its anchor opens its sub-menus on that side too.
|
|
625
|
+
onPlaced: placement => {
|
|
626
|
+
if (placement.startsWith('left'))
|
|
627
|
+
menu.side = 'left';
|
|
628
|
+
else if (placement.startsWith('right'))
|
|
629
|
+
menu.side = 'right';
|
|
630
|
+
},
|
|
623
631
|
middleware: props.middleware ?? [
|
|
624
632
|
autoPlacement({
|
|
625
633
|
allowedPlacements: [
|
|
@@ -19,9 +19,16 @@ export type MenuOptions = {
|
|
|
19
19
|
};
|
|
20
20
|
type MenuOpenListener = (menu: Menu) => (() => void) | void;
|
|
21
21
|
export declare function onMenuOpen(listener: MenuOpenListener): () => void;
|
|
22
|
+
/** The side of its parent a sub-menu opened on. */
|
|
23
|
+
export type SubMenuSide = 'left' | 'right';
|
|
22
24
|
export declare class Menu {
|
|
23
25
|
options: MenuOptions;
|
|
24
26
|
private _cleanupFns;
|
|
27
|
+
/**
|
|
28
|
+
* Set once a sub-menu is placed; its own sub-menus open on the same side
|
|
29
|
+
* (`nestedSubMenuPosition`). Undefined for a root menu.
|
|
30
|
+
*/
|
|
31
|
+
side: SubMenuSide | undefined;
|
|
25
32
|
private readonly _currentFocused$;
|
|
26
33
|
private readonly _subMenu$;
|
|
27
34
|
closed: boolean;
|
|
@@ -18,6 +18,11 @@ export class Menu {
|
|
|
18
18
|
constructor(options) {
|
|
19
19
|
this.options = options;
|
|
20
20
|
this._cleanupFns = [];
|
|
21
|
+
/**
|
|
22
|
+
* Set once a sub-menu is placed; its own sub-menus open on the same side
|
|
23
|
+
* (`nestedSubMenuPosition`). Undefined for a root menu.
|
|
24
|
+
*/
|
|
25
|
+
this.side = undefined;
|
|
21
26
|
this._currentFocused$ = signal();
|
|
22
27
|
this._subMenu$ = signal();
|
|
23
28
|
this.closed = false;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type TemplateResult } from 'lit';
|
|
2
2
|
import { MenuFocusable } from './focusable.js';
|
|
3
|
-
import { Menu, type MenuOptions } from './menu.js';
|
|
3
|
+
import { Menu, type MenuOptions, type SubMenuSide } from './menu.js';
|
|
4
4
|
export type MenuSubMenuData = {
|
|
5
5
|
content: () => TemplateResult;
|
|
6
6
|
options: MenuOptions;
|
|
@@ -24,6 +24,21 @@ export declare const subMenuMiddleware: {
|
|
|
24
24
|
options?: any;
|
|
25
25
|
fn: (state: import("@floating-ui/dom").MiddlewareState) => import("@floating-ui/core").MiddlewareReturn | Promise<import("@floating-ui/core").MiddlewareReturn>;
|
|
26
26
|
}[];
|
|
27
|
+
/**
|
|
28
|
+
* Where a nested sub-menu opens: on the side its parent opened on, right for
|
|
29
|
+
* a menu's first sub-menu, the other side only when it does not fit there.
|
|
30
|
+
* `autoPlacement` took the side with the most room, so a third level drawn
|
|
31
|
+
* from a menu sitting right of the page's middle went left, back over the
|
|
32
|
+
* first menu, instead of beside the second (#571).
|
|
33
|
+
*/
|
|
34
|
+
export declare function nestedSubMenuPosition(parentSide: SubMenuSide | undefined): {
|
|
35
|
+
placement: "left-start" | "right-start";
|
|
36
|
+
middleware: {
|
|
37
|
+
name: string;
|
|
38
|
+
options?: any;
|
|
39
|
+
fn: (state: import("@floating-ui/dom").MiddlewareState) => import("@floating-ui/core").MiddlewareReturn | Promise<import("@floating-ui/core").MiddlewareReturn>;
|
|
40
|
+
}[];
|
|
41
|
+
};
|
|
27
42
|
export declare class MenuSubMenu extends MenuFocusable {
|
|
28
43
|
createTime: number;
|
|
29
44
|
connectedCallback(): void;
|
|
@@ -34,7 +34,7 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i
|
|
|
34
34
|
};
|
|
35
35
|
import { IS_MOBILE } from '../../global/env/index.js';
|
|
36
36
|
import { ArrowRightSmallIcon } from '@blocksuite/icons/lit';
|
|
37
|
-
import { autoPlacement, autoUpdate, computePosition, offset, } from '@floating-ui/dom';
|
|
37
|
+
import { autoPlacement, autoUpdate, computePosition, flip, offset, shift, } from '@floating-ui/dom';
|
|
38
38
|
import { html, nothing } from 'lit';
|
|
39
39
|
import { property } from 'lit/decorators.js';
|
|
40
40
|
import { classMap } from 'lit/directives/class-map.js';
|
|
@@ -50,6 +50,27 @@ export const subMenuPlacements = autoPlacement({
|
|
|
50
50
|
allowedPlacements: ['right-start', 'left-start', 'right-end', 'left-end'],
|
|
51
51
|
});
|
|
52
52
|
export const subMenuMiddleware = [subMenuOffset, subMenuPlacements];
|
|
53
|
+
/**
|
|
54
|
+
* Where a nested sub-menu opens: on the side its parent opened on, right for
|
|
55
|
+
* a menu's first sub-menu, the other side only when it does not fit there.
|
|
56
|
+
* `autoPlacement` took the side with the most room, so a third level drawn
|
|
57
|
+
* from a menu sitting right of the page's middle went left, back over the
|
|
58
|
+
* first menu, instead of beside the second (#571).
|
|
59
|
+
*/
|
|
60
|
+
export function nestedSubMenuPosition(parentSide) {
|
|
61
|
+
const side = parentSide ?? 'right';
|
|
62
|
+
const other = side === 'right' ? 'left' : 'right';
|
|
63
|
+
return {
|
|
64
|
+
placement: `${side}-start`,
|
|
65
|
+
middleware: [
|
|
66
|
+
subMenuOffset,
|
|
67
|
+
flip({
|
|
68
|
+
fallbackPlacements: [`${other}-start`, `${side}-end`, `${other}-end`],
|
|
69
|
+
}),
|
|
70
|
+
shift({ padding: 8 }),
|
|
71
|
+
],
|
|
72
|
+
};
|
|
73
|
+
}
|
|
53
74
|
let MenuSubMenu = (() => {
|
|
54
75
|
let _classSuper = MenuFocusable;
|
|
55
76
|
let _data_decorators;
|
|
@@ -90,7 +111,13 @@ let MenuSubMenu = (() => {
|
|
|
90
111
|
const focus = this.menu.currentFocused$.value;
|
|
91
112
|
const menu = new Menu({
|
|
92
113
|
...this.data.options,
|
|
114
|
+
// An entry picked at any depth completes the whole chain: this menu's
|
|
115
|
+
// own completion runs too, so a pick two levels down closes the root
|
|
116
|
+
// as a pick one level down always did (#571: "Link an existing source"
|
|
117
|
+
// → database → source left the creation popover open, and the next
|
|
118
|
+
// click only closed it).
|
|
93
119
|
onComplete: () => {
|
|
120
|
+
this.menu.options.onComplete?.();
|
|
94
121
|
this.menu.close();
|
|
95
122
|
},
|
|
96
123
|
onClose: () => {
|
|
@@ -101,11 +128,11 @@ let MenuSubMenu = (() => {
|
|
|
101
128
|
},
|
|
102
129
|
});
|
|
103
130
|
this.menu.menuElement.parentElement?.append(menu.menuElement);
|
|
131
|
+
const position = nestedSubMenuPosition(this.menu.side);
|
|
104
132
|
const unsub = autoUpdate(this, menu.menuElement, () => {
|
|
105
|
-
computePosition(this, menu.menuElement,
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
.then(({ x, y }) => {
|
|
133
|
+
computePosition(this, menu.menuElement, position)
|
|
134
|
+
.then(({ x, y, placement }) => {
|
|
135
|
+
menu.side = placement.startsWith('left') ? 'left' : 'right';
|
|
109
136
|
menu.menuElement.style.left = `${x}px`;
|
|
110
137
|
menu.menuElement.style.top = `${y}px`;
|
|
111
138
|
})
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { HighLightDuotoneIcon } from '@blocksuite/icons/lit';
|
|
2
2
|
import { css, LitElement } from 'lit';
|
|
3
3
|
export class HighlightDuotoneIcon extends LitElement {
|
|
4
|
-
static { this.styles = css `
|
|
5
|
-
svg {
|
|
6
|
-
display: flex;
|
|
7
|
-
font-size: 20px;
|
|
8
|
-
}
|
|
9
|
-
svg > path:nth-child(1) {
|
|
10
|
-
fill: var(--color, unset);
|
|
11
|
-
}
|
|
4
|
+
static { this.styles = css `
|
|
5
|
+
svg {
|
|
6
|
+
display: flex;
|
|
7
|
+
font-size: 20px;
|
|
8
|
+
}
|
|
9
|
+
svg > path:nth-child(1) {
|
|
10
|
+
fill: var(--color, unset);
|
|
11
|
+
}
|
|
12
12
|
`; }
|
|
13
13
|
render() {
|
|
14
14
|
return HighLightDuotoneIcon();
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { TextBackgroundDuotoneIcon } from '@blocksuite/icons/lit';
|
|
2
2
|
import { css, LitElement } from 'lit';
|
|
3
3
|
export class TextDuotoneIcon extends LitElement {
|
|
4
|
-
static { this.styles = css `
|
|
5
|
-
svg {
|
|
6
|
-
display: flex;
|
|
7
|
-
font-size: 20px;
|
|
8
|
-
}
|
|
9
|
-
svg > path:nth-child(1) {
|
|
10
|
-
fill: var(--background, unset);
|
|
11
|
-
}
|
|
12
|
-
svg > path:nth-child(3) {
|
|
13
|
-
fill: var(--color, unset);
|
|
14
|
-
}
|
|
4
|
+
static { this.styles = css `
|
|
5
|
+
svg {
|
|
6
|
+
display: flex;
|
|
7
|
+
font-size: 20px;
|
|
8
|
+
}
|
|
9
|
+
svg > path:nth-child(1) {
|
|
10
|
+
fill: var(--background, unset);
|
|
11
|
+
}
|
|
12
|
+
svg > path:nth-child(3) {
|
|
13
|
+
fill: var(--color, unset);
|
|
14
|
+
}
|
|
15
15
|
`; }
|
|
16
16
|
render() {
|
|
17
17
|
return TextBackgroundDuotoneIcon();
|
|
@@ -7,6 +7,8 @@ import { insertDatabaseBlockCommand } from '../commands.js';
|
|
|
7
7
|
import { DatabaseCreationMenuIdentifier } from '../creation-menu.js';
|
|
8
8
|
import { createHostedDatabaseView } from '../linked-view.js';
|
|
9
9
|
import { KanbanViewTooltip, TableViewTooltip } from './tooltips.js';
|
|
10
|
+
import { DATABASE_SLASH_KANBAN_DESCRIPTION, DATABASE_SLASH_TABLE_DESCRIPTION, } from '../translations.js';
|
|
11
|
+
import { VIEW_NAME_TABLE, VIEW_NAME_KANBAN, } from '../../affine-database-engine/translations.js';
|
|
10
12
|
/**
|
|
11
13
|
* With a data-source picker the host owns database creation (ADR 0035 §5):
|
|
12
14
|
* its `createDatabase` is the only way in, and without it no entry creates
|
|
@@ -104,13 +106,16 @@ export const databaseSlashMenuConfig = {
|
|
|
104
106
|
disableWhen: ({ model }) => model.flavour === 'affine:database',
|
|
105
107
|
items: [
|
|
106
108
|
{
|
|
107
|
-
name:
|
|
108
|
-
|
|
109
|
+
name: VIEW_NAME_TABLE[1],
|
|
110
|
+
nameWording: VIEW_NAME_TABLE,
|
|
111
|
+
description: DATABASE_SLASH_TABLE_DESCRIPTION[1],
|
|
112
|
+
descriptionWording: DATABASE_SLASH_TABLE_DESCRIPTION,
|
|
109
113
|
searchAlias: ['database'],
|
|
110
114
|
icon: DatabaseTableViewIcon(),
|
|
111
115
|
tooltip: {
|
|
112
116
|
figure: TableViewTooltip,
|
|
113
|
-
caption:
|
|
117
|
+
caption: VIEW_NAME_TABLE[1],
|
|
118
|
+
captionWording: VIEW_NAME_TABLE,
|
|
114
119
|
},
|
|
115
120
|
group: '7_Database@0',
|
|
116
121
|
when: ({ model, std }) => !isInsideBlockByFlavour(model.store, model, 'affine:edgeless-text') &&
|
|
@@ -118,13 +123,16 @@ export const databaseSlashMenuConfig = {
|
|
|
118
123
|
action: createDatabaseAction(viewPresets.tableViewMeta.type),
|
|
119
124
|
},
|
|
120
125
|
{
|
|
121
|
-
name:
|
|
122
|
-
|
|
126
|
+
name: VIEW_NAME_KANBAN[1],
|
|
127
|
+
nameWording: VIEW_NAME_KANBAN,
|
|
128
|
+
description: DATABASE_SLASH_KANBAN_DESCRIPTION[1],
|
|
129
|
+
descriptionWording: DATABASE_SLASH_KANBAN_DESCRIPTION,
|
|
123
130
|
searchAlias: ['database'],
|
|
124
131
|
icon: DatabaseKanbanViewIcon(),
|
|
125
132
|
tooltip: {
|
|
126
133
|
figure: KanbanViewTooltip,
|
|
127
|
-
caption:
|
|
134
|
+
caption: VIEW_NAME_KANBAN[1],
|
|
135
|
+
captionWording: VIEW_NAME_KANBAN,
|
|
128
136
|
},
|
|
129
137
|
group: '7_Database@2',
|
|
130
138
|
when: ({ model, std }) => !isInsideBlockByFlavour(model.store, model, 'affine:edgeless-text') &&
|
|
@@ -50,11 +50,12 @@ export const databaseHeaderContainerStyles = css({
|
|
|
50
50
|
display: 'flex',
|
|
51
51
|
flexDirection: 'column',
|
|
52
52
|
// Drawn as the page, which scrolls sideways under a wide table: the view
|
|
53
|
-
// bar stays in view, a viewport wide
|
|
53
|
+
// bar stays in view, a viewport wide, inside the inset the full page's
|
|
54
|
+
// root sets to keep it under the centred heading (0 elsewhere).
|
|
54
55
|
'affine-database[data-standalone] &': {
|
|
55
56
|
position: 'sticky',
|
|
56
|
-
left: 'var(--affine-editor-side-padding, 24px)',
|
|
57
|
-
width: 'calc(100cqw - 2 * var(--affine-editor-side-padding, 24px))',
|
|
57
|
+
left: 'calc(var(--affine-editor-side-padding, 24px) + var(--affine-database-page-inset, 0px))',
|
|
58
|
+
width: 'calc(100cqw - 2 * var(--affine-editor-side-padding, 24px) - 2 * var(--affine-database-page-inset, 0px))',
|
|
58
59
|
},
|
|
59
60
|
});
|
|
60
61
|
export const databaseTitleRowStyles = css({
|
|
@@ -6,10 +6,9 @@ import { LoadingIcon } from '../affine-components/icons/index.js';
|
|
|
6
6
|
import { toast } from '../affine-components/toast/index.js';
|
|
7
7
|
import { EDGELESS_TOP_CONTENTEDITABLE_SELECTOR } from '../affine-shared/consts/index.js';
|
|
8
8
|
import { getScrollContainer } from '../affine-shared/utils/index.js';
|
|
9
|
-
import { BlockCommentManager, CommentProviderIdentifier, DataSourcePickerProvider, DocModeProvider, NotificationProvider, PropertiesPanelProvider, TelemetryProvider, TOAST_COPIED_TO_CLIPBOARD, translateKey, } from '../affine-shared/services/index.js';
|
|
9
|
+
import { BlockCommentManager, CommentProviderIdentifier, DataSourcePickerProvider, DocModeProvider, NotificationProvider, PropertiesPanelProvider, TelemetryProvider, TOAST_COPIED_TO_CLIPBOARD, translateKey, TOOLBAR_COPY, TOOLBAR_COMMENT, } from '../affine-shared/services/index.js';
|
|
10
10
|
import { getDropResult } from '../affine-widget-drag-handle/index.js';
|
|
11
11
|
import { createRecordDetail, createUniComponentFromWebComponent, DataViewRootUILogic, DataViewEventTraceKey, defineUniComponent, ExternalGroupByConfigProvider, NewRowMenuOpenerKey, PageLayoutKey, PropertiesPanelOpenerKey, renderUniLit, traceViewEvent, uniMap, ViewCreationOffKey, } from '../affine-database-engine/index.js';
|
|
12
|
-
import { CalendarExternalSourceProvider } from '../affine-database-engine/view-presets/index.js';
|
|
13
12
|
import { widgetPresets } from '../affine-database-engine/widget-presets/index.js';
|
|
14
13
|
import { Rect } from '../global/gfx/index.js';
|
|
15
14
|
import { CommentIcon, CopyIcon, DeleteIcon, MoreHorizontalIcon, } from '@blocksuite/icons/lit';
|
|
@@ -33,7 +32,7 @@ import { sourceRequirement } from './linked-view.js';
|
|
|
33
32
|
import { DatabaseSelection } from './selection.js';
|
|
34
33
|
import { isStandaloneDatabase } from './standalone-layout.js';
|
|
35
34
|
import { databaseOpenRowRequest, DatabaseDataSourceProvider, DatabaseInitialViewProvider, DatabaseNewRowMenuProvider, DatabaseOpenRowProvider, openDatabasePropertiesPanel, rowOpenedParams, } from './service/index.js';
|
|
36
|
-
import { DATABASE_CREATION_TITLE, DATABASE_MOVE_INTO_SOURCE, DATABASE_NEW_RECORD_MORE, DATABASE_SOURCE_MISSING, DATABASE_SOURCE_MISSING_HINT, DATABASE_SOURCE_REQUIRED, DATABASE_SOURCE_REQUIRED_HINT, DATABASE_SOURCE_REQUIRED_READ_ONLY, } from './translations.js';
|
|
35
|
+
import { DATABASE_CREATION_TITLE, DATABASE_MOVE_INTO_SOURCE, DATABASE_NEW_RECORD_MORE, DATABASE_SOURCE_MISSING, DATABASE_SOURCE_MISSING_HINT, DATABASE_SOURCE_REQUIRED, DATABASE_SOURCE_REQUIRED_HINT, DATABASE_SOURCE_REQUIRED_READ_ONLY, DATABASE_DELETE, DATABASE_TITLE_LABEL, } from './translations.js';
|
|
37
36
|
import { canTurnIntoSource, moveDatabaseRowsIntoSource, } from './turn-into-source.js';
|
|
38
37
|
import { currentViewStorage, initialViewId } from './utils/current-view.js';
|
|
39
38
|
import { getSingleDocIdFromText } from './utils/title-doc.js';
|
|
@@ -46,14 +45,14 @@ export class DatabaseBlockComponent extends CaptionedBlockComponent {
|
|
|
46
45
|
items: [
|
|
47
46
|
menu.input({
|
|
48
47
|
initialValue: this.model.props.title.toString(),
|
|
49
|
-
placeholder:
|
|
48
|
+
placeholder: translateKey(this.std, ...DATABASE_TITLE_LABEL),
|
|
50
49
|
onChange: text => {
|
|
51
50
|
this.model.props.title.replace(0, this.model.props.title.length, text);
|
|
52
51
|
},
|
|
53
52
|
}),
|
|
54
53
|
menu.action({
|
|
55
54
|
prefix: CommentIcon(),
|
|
56
|
-
name:
|
|
55
|
+
name: translateKey(this.std, ...TOOLBAR_COMMENT),
|
|
57
56
|
hide: () => !this.std.getOptional(CommentProviderIdentifier),
|
|
58
57
|
select: () => {
|
|
59
58
|
this.std.getOptional(CommentProviderIdentifier)?.addComment([
|
|
@@ -65,7 +64,7 @@ export class DatabaseBlockComponent extends CaptionedBlockComponent {
|
|
|
65
64
|
}),
|
|
66
65
|
menu.action({
|
|
67
66
|
prefix: CopyIcon(),
|
|
68
|
-
name:
|
|
67
|
+
name: translateKey(this.std, ...TOOLBAR_COPY),
|
|
69
68
|
select: () => {
|
|
70
69
|
const slice = Slice.fromModels(this.store, [this.model]);
|
|
71
70
|
this.std.clipboard
|
|
@@ -83,7 +82,7 @@ export class DatabaseBlockComponent extends CaptionedBlockComponent {
|
|
|
83
82
|
class: {
|
|
84
83
|
'delete-item': true,
|
|
85
84
|
},
|
|
86
|
-
name:
|
|
85
|
+
name: translateKey(this.std, ...DATABASE_DELETE),
|
|
87
86
|
select: () => {
|
|
88
87
|
this.model.children.slice().forEach(block => {
|
|
89
88
|
this.store.deleteBlock(block);
|
|
@@ -215,12 +214,6 @@ export class DatabaseBlockComponent extends CaptionedBlockComponent {
|
|
|
215
214
|
widgetPresets.tools.viewOptions,
|
|
216
215
|
widgetPresets.tools.tableAddRow,
|
|
217
216
|
],
|
|
218
|
-
calendar: [
|
|
219
|
-
widgetPresets.tools.filter,
|
|
220
|
-
widgetPresets.tools.search,
|
|
221
|
-
widgetPresets.tools.viewOptions,
|
|
222
|
-
widgetPresets.tools.tableAddRow,
|
|
223
|
-
],
|
|
224
217
|
gallery: [
|
|
225
218
|
widgetPresets.tools.filter,
|
|
226
219
|
widgetPresets.tools.sort,
|
|
@@ -394,11 +387,6 @@ export class DatabaseBlockComponent extends CaptionedBlockComponent {
|
|
|
394
387
|
.forEach(config => {
|
|
395
388
|
dataSource.serviceSet(ExternalGroupByConfigProvider(config.name), config);
|
|
396
389
|
});
|
|
397
|
-
this.std.provider
|
|
398
|
-
.getAll(CalendarExternalSourceProvider)
|
|
399
|
-
.forEach(source => {
|
|
400
|
-
dataSource.serviceSet(CalendarExternalSourceProvider(source.id), source);
|
|
401
|
-
});
|
|
402
390
|
};
|
|
403
391
|
const provider = this.std.getOptional(DatabaseDataSourceProvider);
|
|
404
392
|
const dataSource = provider && this.model.props.externalSourceId
|
|
@@ -2,6 +2,8 @@ import { unsafeCSSVarV2 } from '../affine-shared/theme/index.js';
|
|
|
2
2
|
import { DatabaseListViewIcon } from '@blocksuite/icons/lit';
|
|
3
3
|
import { BlockComponent } from '../std/index.js';
|
|
4
4
|
import { css, html } from 'lit';
|
|
5
|
+
import { translateKey } from '../affine-shared/services/index.js';
|
|
6
|
+
import { DATABASE_DRAG_PREVIEW } from './translations.js';
|
|
5
7
|
export class DatabaseDndPreviewBlockComponent extends BlockComponent {
|
|
6
8
|
static { this.styles = css `
|
|
7
9
|
.affine-database-preview-container {
|
|
@@ -39,7 +41,9 @@ export class DatabaseDndPreviewBlockComponent extends BlockComponent {
|
|
|
39
41
|
>
|
|
40
42
|
<div class="database-preview-content">
|
|
41
43
|
${DatabaseListViewIcon({ width: '24px', height: '24px' })}
|
|
42
|
-
<span class="text"
|
|
44
|
+
<span class="text"
|
|
45
|
+
>${translateKey(this.std, ...DATABASE_DRAG_PREVIEW)}</span
|
|
46
|
+
>
|
|
43
47
|
</div>
|
|
44
48
|
</div>`;
|
|
45
49
|
}
|