@formicoidea/labre-core 1.1.0 → 2.1.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/dist/_pkgs/affine-components/context-menu/input.d.ts +6 -0
- package/dist/_pkgs/affine-components/context-menu/input.js +3 -0
- package/dist/_pkgs/affine-components/context-menu/menu-all.d.ts +1 -0
- 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-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 +67 -2
- 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'
|
|
@@ -9,6 +9,11 @@ export type MenuInputData = {
|
|
|
9
9
|
onComplete?: (value: string) => void;
|
|
10
10
|
onChange?: (value: string) => void;
|
|
11
11
|
onBlur?: (value: string) => void;
|
|
12
|
+
/**
|
|
13
|
+
* Enter on the field, before the menu closes; `false` keeps the menu
|
|
14
|
+
* open on the field (a value the step refuses). Escape never calls it.
|
|
15
|
+
*/
|
|
16
|
+
onEnter?: (value: string) => boolean | void;
|
|
12
17
|
disableAutoFocus?: boolean;
|
|
13
18
|
};
|
|
14
19
|
export declare class MenuInput extends MenuFocusable {
|
|
@@ -46,6 +51,7 @@ export declare const menuInputItems: {
|
|
|
46
51
|
onComplete?: (value: string) => void;
|
|
47
52
|
onChange?: (value: string) => void;
|
|
48
53
|
onBlur?: (value: string) => void;
|
|
54
|
+
onEnter?: (value: string) => boolean | void;
|
|
49
55
|
class?: string;
|
|
50
56
|
style?: Readonly<StyleInfo>;
|
|
51
57
|
}) => (menu: Menu) => TemplateResult<1> | undefined;
|
|
@@ -155,6 +155,8 @@ let MenuInput = (() => {
|
|
|
155
155
|
return;
|
|
156
156
|
}
|
|
157
157
|
if (e.key === 'Enter') {
|
|
158
|
+
if (this.data.onEnter?.(this.inputRef.value) === false)
|
|
159
|
+
return;
|
|
158
160
|
this.complete();
|
|
159
161
|
// Blur before the menu goes away: unmounting a focused input does not
|
|
160
162
|
// emit `blur`, and blur is where the value is saved.
|
|
@@ -283,6 +285,7 @@ export const menuInputItems = {
|
|
|
283
285
|
onComplete: config.onComplete,
|
|
284
286
|
onChange: config.onChange,
|
|
285
287
|
onBlur: config.onBlur,
|
|
288
|
+
onEnter: config.onEnter,
|
|
286
289
|
};
|
|
287
290
|
const style = styleMap({
|
|
288
291
|
display: 'flex',
|
|
@@ -12,6 +12,7 @@ export declare const menu: {
|
|
|
12
12
|
onComplete?: (value: string) => void;
|
|
13
13
|
onChange?: (value: string) => void;
|
|
14
14
|
onBlur?: (value: string) => void;
|
|
15
|
+
onEnter?: (value: string) => boolean | void;
|
|
15
16
|
class?: string;
|
|
16
17
|
style?: Readonly<import("lit-html/directives/style-map.js").StyleInfo>;
|
|
17
18
|
}) => (menu: import("./menu.js").Menu) => import("lit-html").TemplateResult<1> | undefined;
|
|
@@ -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
|
})
|
|
@@ -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
|
}
|
|
@@ -38,6 +38,7 @@ import { ShadowlessElement } from '../../std/index.js';
|
|
|
38
38
|
import { cssVarV2 } from '@toeverything/theme/v2';
|
|
39
39
|
import { css, html, unsafeCSS } from 'lit';
|
|
40
40
|
import { property } from 'lit/decorators.js';
|
|
41
|
+
import { DOC_UNTITLED, translateKey } from '../../affine-shared/services/index.js';
|
|
41
42
|
let BlockRenderer = (() => {
|
|
42
43
|
let _classSuper = WithDisposable(ShadowlessElement);
|
|
43
44
|
let _host_decorators;
|
|
@@ -87,8 +88,8 @@ let BlockRenderer = (() => {
|
|
|
87
88
|
line-height: 24px;
|
|
88
89
|
}
|
|
89
90
|
|
|
90
|
-
database-datasource-block-renderer.empty rich-text::before {
|
|
91
|
-
content:
|
|
91
|
+
database-datasource-block-renderer.empty[data-untitled] rich-text::before {
|
|
92
|
+
content: attr(data-untitled);
|
|
92
93
|
position: absolute;
|
|
93
94
|
color: var(--affine-text-disable-color);
|
|
94
95
|
font-size: 15px;
|
|
@@ -159,6 +160,8 @@ let BlockRenderer = (() => {
|
|
|
159
160
|
if (!model) {
|
|
160
161
|
return;
|
|
161
162
|
}
|
|
163
|
+
// Read by the empty title's placeholder (`::before`), in the host's words.
|
|
164
|
+
this.dataset.untitled = translateKey(this.host.std, ...DOC_UNTITLED);
|
|
162
165
|
return html `
|
|
163
166
|
${this.renderIcon()}
|
|
164
167
|
<rich-text
|