@blokkli/editor 2.0.0-alpha.2 → 2.0.0-alpha.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/module.d.mts +1 -1
- package/dist/module.json +5 -5
- package/dist/module.mjs +5549 -1269
- package/dist/modules/drupal/graphql/base/fragment.ParagraphsBlokkliConfigInput.graphql +31 -0
- package/dist/modules/drupal/graphql/base/fragment.blokkliProps.graphql +9 -0
- package/dist/modules/drupal/graphql/base/fragment.paragraphsBlokkliEditState.graphql +5 -0
- package/dist/modules/drupal/graphql/base/fragment.paragraphsFieldItem.graphql +9 -0
- package/dist/modules/drupal/graphql/base/query.pbConfig.graphql +1 -10
- package/dist/modules/drupal/graphql/base/query.pbEntityConfig.graphql +5 -0
- package/dist/modules/drupal/graphql/features/comments.graphql +11 -8
- package/dist/modules/drupal/graphql/features/publishNew.graphql +1 -4
- package/dist/modules/drupal/graphql/features/scheduler.graphql +31 -0
- package/dist/modules/drupal/graphql/features/transform.graphql +9 -1
- package/dist/modules/drupal/graphql/features/transform_host.graphql +38 -0
- package/dist/modules/drupal/graphql/mutations/set_paragraph_schedule.graphql +15 -0
- package/dist/modules/drupal/graphql/mutations/update_host_options.graphql +15 -0
- package/dist/modules/drupal/index.d.mts +1 -1
- package/dist/modules/drupal/index.mjs +79 -9
- package/dist/modules/drupal/runtime/adapter/index.d.ts +3 -0
- package/dist/modules/drupal/{adapter/index.mjs → runtime/adapter/index.js} +166 -20
- package/dist/runtime/adapter/index.d.ts +111 -1
- package/dist/runtime/blokkliPlugins/AddAction/index.vue +27 -3
- package/dist/runtime/blokkliPlugins/BlockIndicator/index.vue +65 -0
- package/dist/runtime/blokkliPlugins/BlockIndicator/index.vue.d.ts +26 -0
- package/dist/runtime/blokkliPlugins/ContextMenu/Menu/index.vue +6 -0
- package/dist/runtime/blokkliPlugins/ContextMenu/index.vue +3 -2
- package/dist/runtime/blokkliPlugins/ContextMenu/index.vue.d.ts +2 -19
- package/dist/runtime/blokkliPlugins/DebugOverlay/index.vue.d.ts +2 -7
- package/dist/runtime/blokkliPlugins/DroppableEdit/index.vue +3 -3
- package/dist/runtime/blokkliPlugins/DroppableEdit/index.vue.d.ts +2 -19
- package/dist/runtime/blokkliPlugins/ItemAction/index.vue +23 -15
- package/dist/runtime/blokkliPlugins/ItemAction/index.vue.d.ts +21 -44
- package/dist/runtime/blokkliPlugins/ItemDropdown/index.vue +49 -11
- package/dist/runtime/blokkliPlugins/ItemDropdown/index.vue.d.ts +29 -15
- package/dist/runtime/blokkliPlugins/MenuButton/index.vue.d.ts +3 -3
- package/dist/runtime/blokkliPlugins/Sidebar/Detached/index.vue +6 -7
- package/dist/runtime/blokkliPlugins/Sidebar/Detached/index.vue.d.ts +2 -51
- package/dist/runtime/blokkliPlugins/Sidebar/index.vue +2 -9
- package/dist/runtime/blokkliPlugins/Sidebar/index.vue.d.ts +15 -9
- package/dist/runtime/blokkliPlugins/ToolbarButton/index.vue.d.ts +1 -1
- package/dist/runtime/blokkliPlugins/TourItem/index.vue +10 -5
- package/dist/runtime/blokkliPlugins/TourItem/index.vue.d.ts +2 -4
- package/dist/runtime/blokkliPlugins/ViewOption/index.vue +6 -3
- package/dist/runtime/blokkliPlugins/ViewOption/index.vue.d.ts +4 -3
- package/dist/runtime/blokkliPlugins/index.d.ts +8 -7
- package/dist/runtime/blokkliPlugins/index.js +15 -13
- package/dist/runtime/components/Blocks/Fragment/icon.svg +1 -1
- package/dist/runtime/components/Blocks/FromLibrary/index.vue +4 -2
- package/dist/runtime/components/BlokkliEditable.vue +34 -16
- package/dist/runtime/components/BlokkliEditable.vue.d.ts +2 -1
- package/dist/runtime/components/BlokkliField.vue +31 -27
- package/dist/runtime/components/BlokkliField.vue.d.ts +61 -17
- package/dist/runtime/components/BlokkliItem.vue +2 -2
- package/dist/runtime/components/BlokkliItem.vue.d.ts +4 -2
- package/dist/runtime/components/BlokkliProvider.vue +60 -45
- package/dist/runtime/components/BlokkliProvider.vue.d.ts +45 -7
- package/dist/runtime/components/Edit/Actions/index.vue +69 -78
- package/dist/runtime/components/Edit/AddListItem/index.vue +2 -5
- package/dist/runtime/components/Edit/AddListItem/index.vue.d.ts +1 -1
- package/dist/runtime/components/Edit/AddListItemIcon/index.vue +19 -0
- package/dist/runtime/components/Edit/AddListItemIcon/index.vue.d.ts +15 -0
- package/dist/runtime/components/Edit/AnimationCanvas/index.vue +436 -25
- package/dist/runtime/components/Edit/AppMenu/index.vue +5 -5
- package/dist/runtime/components/Edit/ArtboardTooltip/index.vue +83 -0
- package/dist/runtime/components/Edit/ArtboardTooltip/index.vue.d.ts +32 -0
- package/dist/runtime/components/Edit/Banner/index.vue +51 -0
- package/dist/runtime/components/Edit/Banner/index.vue.d.ts +18 -0
- package/dist/runtime/components/Edit/BlockProxy/index.vue +3 -1
- package/dist/runtime/components/Edit/BlokkliErrorBoundary.vue.d.ts +2 -13
- package/dist/runtime/components/Edit/Dialog/index.vue +14 -5
- package/dist/runtime/components/Edit/Dialog/index.vue.d.ts +4 -2
- package/dist/runtime/components/Edit/DiffViewer/State.vue +276 -0
- package/dist/runtime/components/Edit/DiffViewer/State.vue.d.ts +16 -0
- package/dist/runtime/components/Edit/DraggableList.vue +20 -50
- package/dist/runtime/components/Edit/DraggableList.vue.d.ts +7 -7
- package/dist/runtime/components/Edit/EditIndicator.vue +118 -44
- package/dist/runtime/components/Edit/EditIndicator.vue.d.ts +3 -0
- package/dist/runtime/components/Edit/EditProvider.vue +192 -80
- package/dist/runtime/components/Edit/EditProvider.vue.d.ts +3 -0
- package/dist/runtime/components/Edit/Features/AddList/index.vue +24 -36
- package/dist/runtime/components/Edit/Features/Analyze/Overlay/fragment.glsl +58 -0
- package/dist/runtime/components/Edit/Features/Analyze/Overlay/index.vue +170 -0
- package/dist/runtime/components/Edit/Features/Analyze/Overlay/index.vue.d.ts +9 -0
- package/dist/runtime/components/Edit/Features/Analyze/Overlay/vertex.glsl +72 -0
- package/dist/runtime/components/Edit/Features/Analyze/Renderer.vue +159 -0
- package/dist/runtime/components/Edit/Features/Analyze/Renderer.vue.d.ts +7 -0
- package/dist/runtime/components/Edit/Features/Analyze/Results/Results.vue +100 -0
- package/dist/runtime/components/Edit/Features/Analyze/Results/Results.vue.d.ts +6 -0
- package/dist/runtime/components/Edit/Features/Analyze/Results/ResultsItem.vue +56 -0
- package/dist/runtime/components/Edit/Features/Analyze/Results/ResultsItem.vue.d.ts +3 -0
- package/dist/runtime/components/Edit/Features/Analyze/Results/ResultsItemNodes.vue +87 -0
- package/dist/runtime/components/Edit/Features/Analyze/Results/ResultsItemNodes.vue.d.ts +7 -0
- package/dist/runtime/components/Edit/Features/Analyze/Results/ResultsItemNodesTarget.vue +105 -0
- package/dist/runtime/components/Edit/Features/Analyze/Results/ResultsItemNodesTarget.vue.d.ts +8 -0
- package/dist/runtime/components/Edit/Features/Analyze/Results/Status.vue +18 -0
- package/dist/runtime/components/Edit/Features/Analyze/Results/Status.vue.d.ts +8 -0
- package/dist/runtime/components/Edit/Features/Analyze/Summary/Chart.vue +92 -0
- package/dist/runtime/components/Edit/Features/Analyze/Summary/Chart.vue.d.ts +17 -0
- package/dist/runtime/components/Edit/Features/Analyze/Summary/index.vue +77 -0
- package/dist/runtime/components/Edit/Features/Analyze/Summary/index.vue.d.ts +6 -0
- package/dist/runtime/components/Edit/Features/Analyze/analyzers/axe.d.ts +12 -0
- package/dist/runtime/components/Edit/Features/Analyze/analyzers/axe.js +75 -0
- package/dist/runtime/components/Edit/Features/Analyze/analyzers/defineAnalyzer.d.ts +4 -0
- package/dist/runtime/components/Edit/Features/Analyze/analyzers/defineAnalyzer.js +5 -0
- package/dist/runtime/components/Edit/Features/Analyze/analyzers/helpers/Context.d.ts +32 -0
- package/dist/runtime/components/Edit/Features/Analyze/analyzers/helpers/Context.js +45 -0
- package/dist/runtime/components/Edit/Features/Analyze/analyzers/helpers/collectTextElements.d.ts +5 -0
- package/dist/runtime/components/Edit/Features/Analyze/analyzers/helpers/collectTextElements.js +95 -0
- package/dist/runtime/components/Edit/Features/Analyze/analyzers/helpers/normalizeArray.d.ts +3 -0
- package/dist/runtime/components/Edit/Features/Analyze/analyzers/helpers/normalizeArray.js +13 -0
- package/dist/runtime/components/Edit/Features/Analyze/analyzers/index.d.ts +2 -0
- package/dist/runtime/components/Edit/Features/Analyze/analyzers/index.js +2 -0
- package/dist/runtime/components/Edit/Features/Analyze/analyzers/readability.d.ts +2 -0
- package/dist/runtime/components/Edit/Features/Analyze/analyzers/readability.js +165 -0
- package/dist/runtime/components/Edit/Features/Analyze/analyzers/types.d.ts +44 -0
- package/dist/runtime/components/Edit/Features/Analyze/analyzers/types.js +0 -0
- package/dist/runtime/components/Edit/Features/Analyze/helper.d.ts +5 -0
- package/dist/runtime/components/Edit/Features/Analyze/helper.js +28 -0
- package/dist/runtime/components/Edit/Features/Analyze/index.vue +44 -0
- package/dist/runtime/components/Edit/Features/Anchors/Renderer.vue +53 -0
- package/dist/runtime/components/Edit/Features/Anchors/index.vue +32 -0
- package/dist/runtime/components/Edit/Features/Artboard/Overview/index.vue +25 -13
- package/dist/runtime/components/Edit/Features/Artboard/Renderer.vue +299 -0
- package/dist/runtime/components/Edit/Features/Artboard/Renderer.vue.d.ts +7 -0
- package/dist/runtime/components/Edit/Features/Artboard/index.vue +10 -217
- package/dist/runtime/components/Edit/Features/Assistant/index.vue +5 -3
- package/dist/runtime/components/Edit/Features/BlockAddList/index.vue +33 -57
- package/dist/runtime/components/Edit/Features/BlockScheduler/Dialog/ScheduleSection.vue +154 -0
- package/dist/runtime/components/Edit/Features/BlockScheduler/Dialog/ScheduleSection.vue.d.ts +27 -0
- package/dist/runtime/components/Edit/Features/BlockScheduler/Dialog/index.vue +222 -0
- package/dist/runtime/components/Edit/Features/BlockScheduler/Dialog/index.vue.d.ts +11 -0
- package/dist/runtime/components/Edit/Features/BlockScheduler/index.vue +96 -0
- package/dist/runtime/components/Edit/Features/BlockScheduler/index.vue.d.ts +2 -0
- package/dist/runtime/components/Edit/Features/Clipboard/index.vue +177 -46
- package/dist/runtime/components/Edit/Features/CommandPalette/Palette/Item/index.vue +51 -0
- package/dist/runtime/components/Edit/Features/CommandPalette/Palette/Item/index.vue.d.ts +17 -0
- package/dist/runtime/components/Edit/Features/CommandPalette/Palette/index.vue +48 -117
- package/dist/runtime/components/Edit/Features/CommandPalette/index.vue +5 -2
- package/dist/runtime/components/Edit/Features/Comments/AddForm/index.vue +35 -20
- package/dist/runtime/components/Edit/Features/Comments/AddForm/index.vue.d.ts +5 -3
- package/dist/runtime/components/Edit/Features/Comments/CommentInput/index.vue +29 -0
- package/dist/runtime/components/Edit/Features/Comments/CommentInput/index.vue.d.ts +13 -0
- package/dist/runtime/components/Edit/Features/Comments/Overlay/Item/index.vue +22 -16
- package/dist/runtime/components/Edit/Features/Comments/Overlay/Item/index.vue.d.ts +1 -0
- package/dist/runtime/components/Edit/Features/Comments/Overlay/index.vue +15 -6
- package/dist/runtime/components/Edit/Features/Comments/index.vue +21 -9
- package/dist/runtime/components/Edit/Features/Conversions/index.vue +16 -21
- package/dist/runtime/components/Edit/Features/Debug/Rects/index.vue +26 -35
- package/dist/runtime/components/Edit/Features/Debug/Renderer.vue +240 -0
- package/dist/runtime/components/Edit/Features/Debug/Renderer.vue.d.ts +6 -0
- package/dist/runtime/components/Edit/Features/Debug/Viewport/index.vue +14 -0
- package/dist/runtime/components/Edit/Features/Debug/index.vue +7 -162
- package/dist/runtime/components/Edit/Features/Delete/index.vue +1 -1
- package/dist/runtime/components/Edit/Features/Diff/DiffView/index.vue +13 -190
- package/dist/runtime/components/Edit/Features/Diff/index.vue +2 -2
- package/dist/runtime/components/Edit/Features/DraggingOverlay/DragItems/index.vue +18 -10
- package/dist/runtime/components/Edit/Features/DraggingOverlay/DropTargets/fragment.glsl +8 -2
- package/dist/runtime/components/Edit/Features/DraggingOverlay/DropTargets/index.vue +111 -121
- package/dist/runtime/components/Edit/Features/DraggingOverlay/DropTargets/index.vue.d.ts +3 -132
- package/dist/runtime/components/Edit/Features/DraggingOverlay/DropTargets/vertex.glsl +2 -1
- package/dist/runtime/components/Edit/Features/DraggingOverlay/index.vue +87 -61
- package/dist/runtime/components/Edit/Features/Duplicate/index.vue +6 -8
- package/dist/runtime/components/Edit/Features/Edit/index.vue +16 -22
- package/dist/runtime/components/Edit/Features/EditForm/Frame/index.vue +3 -3
- package/dist/runtime/components/Edit/Features/EditForm/index.vue +10 -9
- package/dist/runtime/components/Edit/Features/EditableField/Overlay/Frame/index.vue +69 -4
- package/dist/runtime/components/Edit/Features/EditableField/Overlay/Frame/index.vue.d.ts +2 -2
- package/dist/runtime/components/Edit/Features/EditableField/Overlay/Plaintext/index.vue +13 -9
- package/dist/runtime/components/Edit/Features/EditableField/Overlay/index.vue +45 -87
- package/dist/runtime/components/Edit/Features/EditableField/Overlay/index.vue.d.ts +2 -2
- package/dist/runtime/components/Edit/Features/EditableField/index.vue +45 -43
- package/dist/runtime/components/Edit/Features/EditableMask/index.vue +3 -20
- package/dist/runtime/components/Edit/Features/EntityTitle/index.vue +33 -1
- package/dist/runtime/components/Edit/Features/Fragments/Dialog/index.vue +11 -9
- package/dist/runtime/components/Edit/Features/Fragments/index.vue +8 -6
- package/dist/runtime/components/Edit/Features/History/index.vue +39 -13
- package/dist/runtime/components/Edit/Features/Hover/Overlay/fragment.glsl +139 -0
- package/dist/runtime/components/Edit/Features/Hover/Overlay/index.vue +261 -0
- package/dist/runtime/components/Edit/Features/Hover/Overlay/index.vue.d.ts +6 -0
- package/dist/runtime/components/Edit/Features/Hover/Overlay/vertex.glsl +117 -0
- package/dist/runtime/components/Edit/Features/Hover/index.vue +25 -0
- package/dist/runtime/components/Edit/Features/Hover/index.vue.d.ts +2 -0
- package/dist/runtime/components/Edit/Features/ImportExisting/Dialog/index.vue +6 -2
- package/dist/runtime/components/Edit/Features/ImportExisting/index.vue +3 -2
- package/dist/runtime/components/Edit/Features/Library/EditReusable/index.vue +5 -7
- package/dist/runtime/components/Edit/Features/Library/LibraryDialog/index.vue +19 -27
- package/dist/runtime/components/Edit/Features/Library/ReusableDialog/index.vue +32 -28
- package/dist/runtime/components/Edit/Features/Library/index.vue +40 -32
- package/dist/runtime/components/Edit/Features/MediaLibrary/Library/index.vue +11 -11
- package/dist/runtime/components/Edit/Features/MediaLibrary/index.vue +15 -12
- package/dist/runtime/components/Edit/Features/MultiSelect/Overlay/fragment.glsl +1 -1
- package/dist/runtime/components/Edit/Features/MultiSelect/Overlay/index.vue +44 -32
- package/dist/runtime/components/Edit/Features/MultiSelect/Overlay/vertex.glsl +1 -1
- package/dist/runtime/components/Edit/Features/MultiSelect/index.vue +10 -18
- package/dist/runtime/components/Edit/Features/Options/Form/Checkbox/index.vue +3 -2
- package/dist/runtime/components/Edit/Features/Options/Form/Checkbox/index.vue.d.ts +2 -0
- package/dist/runtime/components/Edit/Features/Options/Form/Group.vue.d.ts +2 -11
- package/dist/runtime/components/Edit/Features/Options/Form/Item.vue +14 -3
- package/dist/runtime/components/Edit/Features/Options/Form/Item.vue.d.ts +0 -1
- package/dist/runtime/components/Edit/Features/Options/Form/Radios/index.vue +37 -19
- package/dist/runtime/components/Edit/Features/Options/Form/Radios/index.vue.d.ts +8 -2
- package/dist/runtime/components/Edit/Features/Options/Form/index.vue +88 -42
- package/dist/runtime/components/Edit/Features/Options/Form/index.vue.d.ts +5 -5
- package/dist/runtime/components/Edit/Features/Options/index.vue +35 -11
- package/dist/runtime/components/Edit/Features/Ownership/Renderer.vue +35 -0
- package/dist/runtime/components/Edit/Features/Ownership/Renderer.vue.d.ts +6 -0
- package/dist/runtime/components/Edit/Features/Ownership/index.vue +7 -25
- package/dist/runtime/components/Edit/Features/PreviewGrant/index.vue +3 -3
- package/dist/runtime/components/Edit/Features/ProxyView/index.vue +5 -1
- package/dist/runtime/components/Edit/Features/Publish/Dialog/Item.vue +41 -14
- package/dist/runtime/components/Edit/Features/Publish/Dialog/Item.vue.d.ts +2 -0
- package/dist/runtime/components/Edit/Features/Publish/Dialog/PublishOption.vue +47 -0
- package/dist/runtime/components/Edit/Features/Publish/Dialog/PublishOption.vue.d.ts +19 -0
- package/dist/runtime/components/Edit/Features/Publish/Dialog/Summary.vue +83 -0
- package/dist/runtime/components/Edit/Features/Publish/Dialog/Summary.vue.d.ts +9 -0
- package/dist/runtime/components/Edit/Features/Publish/Dialog/index.vue +439 -123
- package/dist/runtime/components/Edit/Features/Publish/Dialog/index.vue.d.ts +3 -14
- package/dist/runtime/components/Edit/Features/Publish/index.vue +57 -24
- package/dist/runtime/components/Edit/Features/ResponsivePreview/Frame/index.vue.d.ts +2 -13
- package/dist/runtime/components/Edit/Features/Revert/index.vue +3 -3
- package/dist/runtime/components/Edit/Features/Search/Overlay/Results/Page/index.vue +15 -15
- package/dist/runtime/components/Edit/Features/Search/index.vue +7 -3
- package/dist/runtime/components/Edit/Features/Selection/AddButtons/Overlay/index.vue +85 -0
- package/dist/runtime/components/Edit/Features/{CommandPalette/Palette/Group → Selection/AddButtons/Overlay}/index.vue.d.ts +8 -13
- package/dist/runtime/components/Edit/Features/Selection/AddButtons/Renderer/fragment.glsl +106 -0
- package/dist/runtime/components/Edit/Features/Selection/AddButtons/Renderer/index.vue +440 -0
- package/dist/runtime/components/Edit/Features/Selection/AddButtons/Renderer/index.vue.d.ts +32 -0
- package/dist/runtime/components/Edit/Features/Selection/AddButtons/Renderer/vertex.glsl +102 -0
- package/dist/runtime/components/Edit/Features/Selection/AddButtons/index.vue +387 -0
- package/dist/runtime/components/Edit/Features/Selection/AddButtons/index.vue.d.ts +6 -0
- package/dist/runtime/components/Edit/Features/Selection/Overlay/fragment.glsl +15 -10
- package/dist/runtime/components/Edit/Features/Selection/Overlay/index.vue +105 -25
- package/dist/runtime/components/Edit/Features/Selection/Overlay/index.vue.d.ts +5 -3
- package/dist/runtime/components/Edit/Features/Selection/Overlay/vertex.glsl +12 -3
- package/dist/runtime/components/Edit/Features/Selection/OverlayFallback/index.vue +2 -2
- package/dist/runtime/components/Edit/Features/Selection/index.vue +135 -25
- package/dist/runtime/components/Edit/Features/Settings/Dialog/FeatureSetting/index.vue +12 -17
- package/dist/runtime/components/Edit/Features/Settings/index.vue +11 -25
- package/dist/runtime/components/Edit/Features/Structure/List/Field/index.vue +2 -2
- package/dist/runtime/components/Edit/Features/Structure/List/Item/index.vue +13 -6
- package/dist/runtime/components/Edit/Features/Theme/Color/index.vue +5 -1
- package/dist/runtime/components/Edit/Features/Theme/index.vue +2 -1
- package/dist/runtime/components/Edit/Features/TouchActionBar/index.vue +3 -2
- package/dist/runtime/components/Edit/Features/Tour/Overlay/index.vue +3 -0
- package/dist/runtime/components/Edit/Features/Transform/Dialog/index.vue +198 -0
- package/dist/runtime/components/Edit/Features/Transform/Dialog/index.vue.d.ts +13 -0
- package/dist/runtime/components/Edit/Features/Transform/index.vue +156 -70
- package/dist/runtime/components/Edit/Features/Translations/Banner/index.vue +17 -11
- package/dist/runtime/components/Edit/Features/Translations/index.vue +20 -23
- package/dist/runtime/components/Edit/Features/Validations/SidebarItem/index.vue +5 -5
- package/dist/runtime/components/Edit/Features/index.vue +17 -7
- package/dist/runtime/components/Edit/Form/Datepicker/index.vue +198 -0
- package/dist/runtime/components/Edit/Form/Datepicker/index.vue.d.ts +15 -0
- package/dist/runtime/components/Edit/Form/Group/index.vue.d.ts +2 -4
- package/dist/runtime/components/Edit/Form/Item/index.vue.d.ts +2 -4
- package/dist/runtime/components/Edit/Form/Radio/index.vue +33 -0
- package/dist/runtime/components/Edit/Form/Radio/index.vue.d.ts +20 -0
- package/dist/runtime/components/Edit/Form/RadioTabs/index.vue +37 -0
- package/dist/runtime/components/Edit/Form/RadioTabs/index.vue.d.ts +22 -0
- package/dist/runtime/components/Edit/Form/Select/index.vue +29 -0
- package/dist/runtime/components/Edit/Form/Select/index.vue.d.ts +20 -0
- package/dist/runtime/components/Edit/Form/Text/index.vue +34 -0
- package/dist/runtime/components/Edit/Form/Text/index.vue.d.ts +20 -0
- package/dist/runtime/components/Edit/Form/Textarea/index.vue +13 -6
- package/dist/runtime/components/Edit/Form/Textarea/index.vue.d.ts +4 -0
- package/dist/runtime/components/Edit/Form/Toggle/index.vue +4 -3
- package/dist/runtime/components/Edit/Form/Toggle/index.vue.d.ts +12 -2
- package/dist/runtime/components/Edit/FormOverlay/index.vue +1 -1
- package/dist/runtime/components/Edit/FormOverlay/index.vue.d.ts +3 -2
- package/dist/runtime/components/Edit/Indicators/index.vue +123 -0
- package/dist/runtime/components/Edit/Indicators/index.vue.d.ts +2 -0
- package/dist/runtime/components/Edit/InfoBox/index.vue +6 -2
- package/dist/runtime/components/Edit/InfoBox/index.vue.d.ts +12 -2
- package/dist/runtime/components/Edit/ItemIcon/index.vue +2 -1
- package/dist/runtime/components/Edit/Konami/Game/PixelGrid.vue +66 -0
- package/dist/runtime/components/Edit/Konami/Game/PixelGrid.vue.d.ts +7 -0
- package/dist/runtime/components/Edit/Konami/Game/blokkli.png +0 -0
- package/dist/runtime/components/Edit/Konami/Game/charmap.d.ts +2 -0
- package/dist/runtime/components/Edit/Konami/Game/charmap.js +168 -0
- package/dist/runtime/components/Edit/Konami/Game/index.vue +752 -0
- package/dist/runtime/components/Edit/Konami/Game/index.vue.d.ts +6 -0
- package/dist/runtime/components/Edit/Konami/Game/textRendering.d.ts +8 -0
- package/dist/runtime/components/Edit/Konami/Game/textRendering.js +138 -0
- package/dist/runtime/components/Edit/Konami/Game/useIconRendering.d.ts +9 -0
- package/dist/runtime/components/Edit/Konami/Game/useIconRendering.js +130 -0
- package/dist/runtime/components/Edit/Konami/index.vue +44 -0
- package/dist/runtime/components/Edit/Konami/index.vue.d.ts +2 -0
- package/dist/runtime/components/Edit/Loading/index.vue +6 -2
- package/dist/runtime/components/Edit/Loading/index.vue.d.ts +2 -0
- package/dist/runtime/components/Edit/Messages/index.vue +8 -3
- package/dist/runtime/components/Edit/PluginConfigForm/Checkbox/index.vue +17 -0
- package/dist/runtime/components/Edit/PluginConfigForm/Checkbox/index.vue.d.ts +11 -0
- package/dist/runtime/components/Edit/PluginConfigForm/Options/index.vue +37 -0
- package/dist/runtime/components/Edit/PluginConfigForm/Options/index.vue.d.ts +11 -0
- package/dist/runtime/components/Edit/PluginConfigForm/Text/index.vue +43 -0
- package/dist/runtime/components/Edit/PluginConfigForm/Text/index.vue.d.ts +11 -0
- package/dist/runtime/components/Edit/PluginConfigForm/index.vue +57 -0
- package/dist/runtime/components/Edit/PluginConfigForm/index.vue.d.ts +16 -0
- package/dist/runtime/components/Edit/PreviewProvider.vue +3 -4
- package/dist/runtime/components/Edit/RelativeTime/index.vue +3 -2
- package/dist/runtime/components/Edit/RelativeTime/index.vue.d.ts +2 -2
- package/dist/runtime/components/Edit/Resizable/index.vue.d.ts +1 -1
- package/dist/runtime/components/Edit/ScaleToFit/index.vue.d.ts +1 -1
- package/dist/runtime/components/Edit/ScheduleDate/index.vue +131 -0
- package/dist/runtime/components/Edit/ScheduleDate/index.vue.d.ts +23 -0
- package/dist/runtime/components/Edit/ScrollBoundary/index.vue.d.ts +2 -7
- package/dist/runtime/components/Edit/ShortcutIndicator/index.vue +11 -3
- package/dist/runtime/components/Edit/Sortli/index.vue.d.ts +1 -1
- package/dist/runtime/components/Edit/SystemRequirements/index.vue +3 -3
- package/dist/runtime/components/Edit/Toolbar/index.vue +3 -2
- package/dist/runtime/components/Edit/Transition/Height.vue +95 -0
- package/dist/runtime/components/Edit/Transition/Height.vue.d.ts +36 -0
- package/dist/runtime/components/Edit/Transition/index.vue +41 -0
- package/dist/runtime/components/Edit/Transition/index.vue.d.ts +19 -0
- package/dist/runtime/components/Edit/ViewportBlockingRect/index.vue.d.ts +2 -7
- package/dist/runtime/components/Edit/index.d.ts +28 -15
- package/dist/runtime/components/Edit/index.js +54 -28
- package/dist/runtime/composables/defineBlokkli.js +16 -3
- package/dist/runtime/composables/defineBlokkliFeature.d.ts +4 -7
- package/dist/runtime/composables/defineBlokkliFragment.js +8 -1
- package/dist/runtime/composables/defineBlokkliProvider.d.ts +11 -0
- package/dist/runtime/composables/defineBlokkliProvider.js +46 -0
- package/dist/runtime/composables/useBlokkliHelper.d.ts +19 -0
- package/dist/runtime/composables/useBlokkliHelper.js +95 -0
- package/dist/runtime/constants/index.d.ts +3 -0
- package/dist/runtime/constants/index.js +3 -0
- package/dist/runtime/css/output.css +1 -1
- package/dist/runtime/helpers/addElementClasses.d.ts +2 -0
- package/dist/runtime/helpers/addElementClasses.js +24 -0
- package/dist/runtime/helpers/animationProvider.d.ts +38 -2
- package/dist/runtime/helpers/animationProvider.js +188 -47
- package/dist/runtime/helpers/bundles/index.d.ts +1 -0
- package/dist/runtime/helpers/bundles/index.js +4 -0
- package/dist/runtime/helpers/composables/defineRenderer.d.ts +8 -0
- package/dist/runtime/helpers/composables/defineRenderer.js +8 -0
- package/dist/runtime/helpers/composables/useBlockRegistration.d.ts +5 -0
- package/dist/runtime/helpers/composables/useBlockRegistration.js +23 -0
- package/dist/runtime/helpers/composables/useDelayedIntersectionObserver.d.ts +1 -1
- package/dist/runtime/helpers/composables/useDelayedIntersectionObserver.js +3 -2
- package/dist/runtime/helpers/composables/useStateBasedCache.d.ts +4 -0
- package/dist/runtime/helpers/composables/useStateBasedCache.js +13 -0
- package/dist/runtime/helpers/composables/useStickyToolbar.d.ts +23 -0
- package/dist/runtime/helpers/composables/useStickyToolbar.js +233 -0
- package/dist/runtime/helpers/definitionProvider.d.ts +3 -2
- package/dist/runtime/helpers/definitionProvider.js +17 -0
- package/dist/runtime/helpers/dom/index.d.ts +60 -0
- package/dist/runtime/helpers/dom/index.js +48 -0
- package/dist/runtime/helpers/domProvider.d.ts +58 -17
- package/dist/runtime/helpers/domProvider.js +320 -245
- package/dist/runtime/helpers/dropTargets/index.d.ts +6 -0
- package/dist/runtime/helpers/dropTargets/index.js +49 -0
- package/dist/runtime/helpers/eventBus.d.ts +1 -1
- package/dist/runtime/helpers/eventBus.js +2 -2
- package/dist/runtime/helpers/index.d.ts +10 -14
- package/dist/runtime/helpers/index.js +58 -121
- package/dist/runtime/helpers/indicatorsProvider.d.ts +10 -0
- package/dist/runtime/helpers/indicatorsProvider.js +23 -0
- package/dist/runtime/helpers/keyboardProvider.d.ts +2 -0
- package/dist/runtime/helpers/keyboardProvider.js +17 -1
- package/dist/runtime/helpers/pluginProvider.d.ts +10 -0
- package/dist/runtime/helpers/pluginProvider.js +33 -0
- package/dist/runtime/helpers/providers/blocks.d.ts +10 -0
- package/dist/runtime/helpers/providers/blocks.js +91 -0
- package/dist/runtime/helpers/providers/directive.d.ts +25 -0
- package/dist/runtime/helpers/providers/directive.js +208 -0
- package/dist/runtime/helpers/providers/element.d.ts +6 -0
- package/dist/runtime/helpers/providers/element.js +35 -0
- package/dist/runtime/helpers/providers/fields.d.ts +8 -0
- package/dist/runtime/helpers/providers/fields.js +47 -0
- package/dist/runtime/helpers/renderCycle.d.ts +1 -0
- package/dist/runtime/helpers/renderCycle.js +10 -0
- package/dist/runtime/helpers/runtimeHelpers/index.js +15 -12
- package/dist/runtime/helpers/selectionProvider.d.ts +27 -11
- package/dist/runtime/helpers/selectionProvider.js +79 -74
- package/dist/runtime/helpers/stateProvider.d.ts +12 -2
- package/dist/runtime/helpers/stateProvider.js +164 -20
- package/dist/runtime/helpers/storageProvider.d.ts +5 -3
- package/dist/runtime/helpers/storageProvider.js +61 -4
- package/dist/runtime/helpers/symbols.d.ts +2 -0
- package/dist/runtime/helpers/symbols.js +2 -0
- package/dist/runtime/helpers/textProvider.js +6 -0
- package/dist/runtime/helpers/themeProvider.d.ts +4 -1
- package/dist/runtime/helpers/themeProvider.js +28 -15
- package/dist/runtime/helpers/transform.js +1 -3
- package/dist/runtime/helpers/typesProvider.js +10 -26
- package/dist/runtime/helpers/uiProvider.d.ts +18 -3
- package/dist/runtime/helpers/uiProvider.js +114 -61
- package/dist/runtime/helpers/useTransitionedValue.d.ts +18 -0
- package/dist/runtime/helpers/useTransitionedValue.js +57 -0
- package/dist/runtime/helpers/webgl/index.d.ts +11 -2
- package/dist/runtime/helpers/webgl/index.js +162 -7
- package/dist/runtime/icons/anchor.svg +1 -0
- package/dist/runtime/icons/arrow-left.svg +1 -1
- package/dist/runtime/icons/arrow-right.svg +1 -1
- package/dist/runtime/icons/arrow-top-right.svg +1 -0
- package/dist/runtime/icons/calendar-clock.svg +1 -0
- package/dist/runtime/icons/calendar.svg +1 -0
- package/dist/runtime/icons/chart.svg +1 -0
- package/dist/runtime/icons/clock.svg +1 -0
- package/dist/runtime/icons/comment_add.svg +1 -5
- package/dist/runtime/icons/copy.svg +1 -0
- package/dist/runtime/icons/cursor-move.svg +1 -1
- package/dist/runtime/icons/delete.svg +1 -8
- package/dist/runtime/icons/diff.svg +1 -1
- package/dist/runtime/icons/duplicate.svg +1 -12
- package/dist/runtime/icons/edit.svg +1 -8
- package/dist/runtime/icons/eye-off.svg +1 -0
- package/dist/runtime/icons/eye.svg +1 -1
- package/dist/runtime/icons/info.svg +1 -1
- package/dist/runtime/icons/link.svg +1 -0
- package/dist/runtime/icons/reusable.svg +1 -5
- package/dist/runtime/icons/speedometer.svg +1 -0
- package/dist/runtime/plugins/blokkliDirectives.js +109 -0
- package/dist/runtime/types/blokkOptions.d.ts +8 -0
- package/dist/runtime/types/index.d.ts +278 -42
- package/dist/runtime/types/theme.d.ts +2 -1
- package/dist/shared/{editor.gz_ac6uT.d.mts → editor.CKsrTpc1.d.mts} +1 -1
- package/package.json +55 -38
- package/dist/modules/drupal/adapter/index.d.mts +0 -6
- package/dist/runtime/components/Edit/DragInteractions/index.vue +0 -364
- package/dist/runtime/components/Edit/Features/CommandPalette/Palette/Group/index.vue +0 -51
- package/dist/runtime/components/Edit/Features/FieldAreas/Overlay/index.vue +0 -22
- package/dist/runtime/components/Edit/Features/FieldAreas/index.vue +0 -41
- package/dist/runtime/plugins/blokkliEditable.js +0 -31
- /package/dist/runtime/components/Edit/{DragInteractions → Features/Analyze}/index.vue.d.ts +0 -0
- /package/dist/runtime/components/Edit/Features/{FieldAreas/Overlay/index.vue.d.ts → Anchors/Renderer.vue.d.ts} +0 -0
- /package/dist/runtime/components/Edit/Features/{FieldAreas → Anchors}/index.vue.d.ts +0 -0
- /package/dist/runtime/plugins/{blokkliEditable.d.ts → blokkliDirectives.d.ts} +0 -0
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
import { falsy } from "#blokkli/helpers";
|
|
2
|
+
import useDelayedIntersectionObserver from "./../composables/useDelayedIntersectionObserver.js";
|
|
3
|
+
import { computed, onBeforeUnmount, ref } from "#imports";
|
|
4
|
+
import onBlokkliEvent from "./../composables/onBlokkliEvent.js";
|
|
5
|
+
import { itemEntityType } from "#blokkli-build/config";
|
|
6
|
+
export default function(debug, ui) {
|
|
7
|
+
const logger = debug.createLogger("DirectiveProvider");
|
|
8
|
+
let initTimeout = null;
|
|
9
|
+
const isInitalizing = ref(true);
|
|
10
|
+
let stateReloadTimeout = null;
|
|
11
|
+
const elementMap = /* @__PURE__ */ new WeakMap();
|
|
12
|
+
const elements = /* @__PURE__ */ new Map();
|
|
13
|
+
const fieldData = /* @__PURE__ */ new Map();
|
|
14
|
+
const rects = {};
|
|
15
|
+
const visible = /* @__PURE__ */ new Set();
|
|
16
|
+
const editablesByUuid = {};
|
|
17
|
+
function doInitTimeout() {
|
|
18
|
+
if (initTimeout) {
|
|
19
|
+
window.clearTimeout(initTimeout);
|
|
20
|
+
}
|
|
21
|
+
if (isInitalizing.value) {
|
|
22
|
+
initTimeout = window.setTimeout(() => {
|
|
23
|
+
isInitalizing.value = false;
|
|
24
|
+
}, 500);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
function getVisible(directiveType) {
|
|
28
|
+
return [...visible.keys()].map((key) => {
|
|
29
|
+
if (key.startsWith(directiveType)) {
|
|
30
|
+
return rects[key];
|
|
31
|
+
}
|
|
32
|
+
}).filter(falsy);
|
|
33
|
+
}
|
|
34
|
+
function getEditableKey(fieldName, entity, directiveType) {
|
|
35
|
+
return `${directiveType}:${entity.type}:${entity.uuid}:${fieldName}`;
|
|
36
|
+
}
|
|
37
|
+
function intersectionCallback(entries) {
|
|
38
|
+
const scale = ui.artboardScale.value;
|
|
39
|
+
const offset = ui.artboardOffset.value;
|
|
40
|
+
for (const entry of entries) {
|
|
41
|
+
if (entry.target instanceof HTMLElement) {
|
|
42
|
+
const data = elementMap.get(entry.target);
|
|
43
|
+
if (!data) {
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
const key = getEditableKey(data.fieldName, data, data.directiveType);
|
|
47
|
+
const domRect = entry.target.getBoundingClientRect();
|
|
48
|
+
rects[key] ||= {
|
|
49
|
+
width: 0,
|
|
50
|
+
height: 0,
|
|
51
|
+
x: 0,
|
|
52
|
+
y: 0,
|
|
53
|
+
key
|
|
54
|
+
};
|
|
55
|
+
const newRect = ui.getAbsoluteElementRect(domRect, scale, offset);
|
|
56
|
+
rects[key].width = newRect.width;
|
|
57
|
+
rects[key].height = newRect.height;
|
|
58
|
+
rects[key].x = newRect.x;
|
|
59
|
+
rects[key].y = newRect.y;
|
|
60
|
+
if (entry.isIntersecting) {
|
|
61
|
+
visible.add(key);
|
|
62
|
+
} else {
|
|
63
|
+
visible.delete(key);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
const intersectionObserver = useDelayedIntersectionObserver(
|
|
69
|
+
intersectionCallback,
|
|
70
|
+
{
|
|
71
|
+
rootMargin: "400px 0px 400px 0px"
|
|
72
|
+
}
|
|
73
|
+
);
|
|
74
|
+
function registerDirectiveElement(el, fieldName, entity, directiveType) {
|
|
75
|
+
const key = getEditableKey(fieldName, entity, directiveType);
|
|
76
|
+
const data = {
|
|
77
|
+
...entity,
|
|
78
|
+
fieldName,
|
|
79
|
+
directiveType,
|
|
80
|
+
key
|
|
81
|
+
};
|
|
82
|
+
elementMap.set(el, data);
|
|
83
|
+
fieldData.set(key, data);
|
|
84
|
+
intersectionObserver.observe(el);
|
|
85
|
+
elements.set(key, el);
|
|
86
|
+
if (directiveType === "editable" && entity.type === itemEntityType) {
|
|
87
|
+
editablesByUuid[entity.uuid] ||= {};
|
|
88
|
+
editablesByUuid[entity.uuid][fieldName] = data;
|
|
89
|
+
}
|
|
90
|
+
logger.log("Registered directive element", data);
|
|
91
|
+
doInitTimeout();
|
|
92
|
+
}
|
|
93
|
+
function unregisterDirectiveElement(el, fieldName, entity, directiveType) {
|
|
94
|
+
const key = getEditableKey(fieldName, entity, directiveType);
|
|
95
|
+
logger.log("Unregistered directive element", key);
|
|
96
|
+
intersectionObserver.unobserve(el);
|
|
97
|
+
elementMap.delete(el);
|
|
98
|
+
fieldData.delete(key);
|
|
99
|
+
delete rects[key];
|
|
100
|
+
visible.delete(key);
|
|
101
|
+
elements.delete(key);
|
|
102
|
+
if (directiveType === "editable" && entity.type === itemEntityType) {
|
|
103
|
+
if (editablesByUuid[entity.uuid]) {
|
|
104
|
+
editablesByUuid[entity.uuid][fieldName] = void 0;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
function init() {
|
|
109
|
+
intersectionObserver.init();
|
|
110
|
+
}
|
|
111
|
+
function getEditableAtPoint(x, y) {
|
|
112
|
+
const scale = ui.artboardScale.value;
|
|
113
|
+
const offset = ui.artboardOffset.value;
|
|
114
|
+
const artboardX = x / scale - offset.x / scale;
|
|
115
|
+
const artboardY = y / scale - offset.y / scale;
|
|
116
|
+
for (const key of visible) {
|
|
117
|
+
if (!key.startsWith("editable:")) continue;
|
|
118
|
+
const rect = rects[key];
|
|
119
|
+
if (!rect) continue;
|
|
120
|
+
if (artboardX >= rect.x && artboardX <= rect.x + rect.width && artboardY >= rect.y && artboardY <= rect.y + rect.height) {
|
|
121
|
+
return fieldData.get(key);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
return void 0;
|
|
125
|
+
}
|
|
126
|
+
function updateRects() {
|
|
127
|
+
const scale = ui.artboardScale.value;
|
|
128
|
+
const offset = ui.artboardOffset.value;
|
|
129
|
+
const keysToUpdate = elements.size < 150 ? Array.from(elements.keys()) : Array.from(visible);
|
|
130
|
+
for (let i = 0; i < keysToUpdate.length; i++) {
|
|
131
|
+
const key = keysToUpdate[i];
|
|
132
|
+
const el = elements.get(key);
|
|
133
|
+
if (!el) continue;
|
|
134
|
+
const domRect = el.getBoundingClientRect();
|
|
135
|
+
const newRect = ui.getAbsoluteElementRect(domRect, scale, offset);
|
|
136
|
+
if (rects[key]) {
|
|
137
|
+
rects[key].width = newRect.width;
|
|
138
|
+
rects[key].height = newRect.height;
|
|
139
|
+
rects[key].x = newRect.x;
|
|
140
|
+
rects[key].y = newRect.y;
|
|
141
|
+
} else {
|
|
142
|
+
rects[key] = {
|
|
143
|
+
width: newRect.width,
|
|
144
|
+
height: newRect.height,
|
|
145
|
+
x: newRect.x,
|
|
146
|
+
y: newRect.y,
|
|
147
|
+
key
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
function handleRefresh() {
|
|
153
|
+
if (stateReloadTimeout) {
|
|
154
|
+
window.clearTimeout(stateReloadTimeout);
|
|
155
|
+
}
|
|
156
|
+
if (visible.size < 150) {
|
|
157
|
+
updateRects();
|
|
158
|
+
}
|
|
159
|
+
stateReloadTimeout = window.setTimeout(updateRects, 300);
|
|
160
|
+
}
|
|
161
|
+
function getEditablesForBlock(uuid) {
|
|
162
|
+
const editables = editablesByUuid[uuid];
|
|
163
|
+
if (!editables) {
|
|
164
|
+
return [];
|
|
165
|
+
}
|
|
166
|
+
return Object.values(editables).filter(falsy);
|
|
167
|
+
}
|
|
168
|
+
function getDroppableElements() {
|
|
169
|
+
const droppableElements = [];
|
|
170
|
+
for (const item of fieldData.values()) {
|
|
171
|
+
if (item.directiveType !== "droppable") {
|
|
172
|
+
continue;
|
|
173
|
+
}
|
|
174
|
+
const element = elements.get(item.key);
|
|
175
|
+
if (!element) {
|
|
176
|
+
continue;
|
|
177
|
+
}
|
|
178
|
+
droppableElements.push({
|
|
179
|
+
...item,
|
|
180
|
+
element
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
return droppableElements;
|
|
184
|
+
}
|
|
185
|
+
function findEditableElement(fieldName, host) {
|
|
186
|
+
const key = getEditableKey(fieldName, host, "editable");
|
|
187
|
+
return elements.get(key);
|
|
188
|
+
}
|
|
189
|
+
onBlokkliEvent("state:reloaded", handleRefresh);
|
|
190
|
+
onBlokkliEvent("ui:resized", handleRefresh);
|
|
191
|
+
onBlokkliEvent("option:finish-change", handleRefresh);
|
|
192
|
+
onBeforeUnmount(() => {
|
|
193
|
+
if (stateReloadTimeout) {
|
|
194
|
+
window.clearTimeout(stateReloadTimeout);
|
|
195
|
+
}
|
|
196
|
+
});
|
|
197
|
+
return {
|
|
198
|
+
registerDirectiveElement,
|
|
199
|
+
unregisterDirectiveElement,
|
|
200
|
+
init,
|
|
201
|
+
getVisible,
|
|
202
|
+
getEditableAtPoint,
|
|
203
|
+
getEditablesForBlock,
|
|
204
|
+
findEditableElement,
|
|
205
|
+
getDroppableElements,
|
|
206
|
+
isReady: computed(() => !isInitalizing.value)
|
|
207
|
+
};
|
|
208
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { DebugProvider } from '../debugProvider.js';
|
|
2
|
+
export type ElementProvider = {
|
|
3
|
+
queryAll: <T = HTMLElement>(target: HTMLElement | Document, query: string, reason: string, map?: (v: HTMLElement) => T | null | undefined) => T[];
|
|
4
|
+
query: <T = HTMLElement>(target: HTMLElement | Document, query: string, reason: string, map?: (v: HTMLElement) => T | null | undefined) => T | null;
|
|
5
|
+
};
|
|
6
|
+
export default function (debug: DebugProvider): ElementProvider;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export default function(debug) {
|
|
2
|
+
const logger = debug.createLogger("ElementProvider");
|
|
3
|
+
function queryAll(target, query2, reason, map) {
|
|
4
|
+
const results = [];
|
|
5
|
+
logger.log(`querySelectorAll - "${query2}" - ${reason}`);
|
|
6
|
+
for (const element of target.querySelectorAll(query2)) {
|
|
7
|
+
if (element instanceof HTMLElement) {
|
|
8
|
+
if (map) {
|
|
9
|
+
const result = map(element);
|
|
10
|
+
if (result) {
|
|
11
|
+
results.push(result);
|
|
12
|
+
}
|
|
13
|
+
} else {
|
|
14
|
+
results.push(element);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return results;
|
|
19
|
+
}
|
|
20
|
+
function query(target, query2, reason, map) {
|
|
21
|
+
logger.log(`querySelector - "${query2}" - ${reason}`);
|
|
22
|
+
const match = target.querySelector(query2);
|
|
23
|
+
if (!(match instanceof HTMLElement)) {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
if (map) {
|
|
27
|
+
return map(match) ?? null;
|
|
28
|
+
}
|
|
29
|
+
return match;
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
query,
|
|
33
|
+
queryAll
|
|
34
|
+
};
|
|
35
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { BlokkliFieldElement } from '#blokkli/types';
|
|
2
|
+
import type { DomProvider } from '../domProvider.js';
|
|
3
|
+
import type { StateProvider } from '../stateProvider.js';
|
|
4
|
+
import type { BlockDefinitionProvider } from '../typesProvider.js';
|
|
5
|
+
export type FieldsProvider = {
|
|
6
|
+
find: (uuid: string, fieldName: string) => BlokkliFieldElement | undefined;
|
|
7
|
+
};
|
|
8
|
+
export default function (state: StateProvider, dom: DomProvider, types: BlockDefinitionProvider): FieldsProvider;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import onBlokkliEvent from "../composables/onBlokkliEvent.js";
|
|
2
|
+
export default function(state, dom, types) {
|
|
3
|
+
const fieldCache = /* @__PURE__ */ new Map();
|
|
4
|
+
function find(uuid, fieldName) {
|
|
5
|
+
const key = uuid + ":" + fieldName;
|
|
6
|
+
const cached = fieldCache.get(key);
|
|
7
|
+
if (cached) {
|
|
8
|
+
return cached;
|
|
9
|
+
}
|
|
10
|
+
const registeredField = dom.getRegisteredField(uuid, fieldName);
|
|
11
|
+
if (!registeredField) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const definition = types.getFieldConfig(
|
|
15
|
+
registeredField.entity.type,
|
|
16
|
+
registeredField.entity.bundle,
|
|
17
|
+
registeredField.fieldName
|
|
18
|
+
);
|
|
19
|
+
if (!definition) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
const fieldElement = {
|
|
23
|
+
key,
|
|
24
|
+
name: registeredField.fieldName,
|
|
25
|
+
label: definition.label,
|
|
26
|
+
isNested: registeredField.isNested,
|
|
27
|
+
nestingLevel: registeredField.nestingLevel,
|
|
28
|
+
fieldListType: registeredField.fieldListType,
|
|
29
|
+
hostEntityType: registeredField.entity.type,
|
|
30
|
+
hostEntityBundle: registeredField.entity.bundle,
|
|
31
|
+
hostEntityUuid: registeredField.entity.uuid,
|
|
32
|
+
allowedBundles: definition.allowedBundles,
|
|
33
|
+
allowedFragments: registeredField.allowedFragments,
|
|
34
|
+
cardinality: definition.cardinality,
|
|
35
|
+
element: registeredField.element,
|
|
36
|
+
dropAlignment: registeredField.dropAlignment
|
|
37
|
+
};
|
|
38
|
+
fieldCache.set(key, fieldElement);
|
|
39
|
+
return fieldElement;
|
|
40
|
+
}
|
|
41
|
+
onBlokkliEvent("state:reloaded", () => {
|
|
42
|
+
fieldCache.clear();
|
|
43
|
+
});
|
|
44
|
+
return {
|
|
45
|
+
find
|
|
46
|
+
};
|
|
47
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function renderCycle(): Promise<void>;
|
|
@@ -6,6 +6,7 @@ import {
|
|
|
6
6
|
bundlesWithHiddenGlobally
|
|
7
7
|
} from "#blokkli-build/default-global-options";
|
|
8
8
|
import { BK_HIDDEN_GLOBALLY, BK_VISIBLE_LANGUAGES } from "../symbols.js";
|
|
9
|
+
import { BUNDLE_FROM_LIBRARY } from "#blokkli/constants";
|
|
9
10
|
export function mapCheckboxTrue(v) {
|
|
10
11
|
return v === true || v === "1" || v === 1 || v === "true" ? "1" : "0";
|
|
11
12
|
}
|
|
@@ -82,16 +83,18 @@ export function isVisibleByOptions(item, language) {
|
|
|
82
83
|
return true;
|
|
83
84
|
}
|
|
84
85
|
export function getRuntimeOptions(item, context, fromLibraryOptions) {
|
|
85
|
-
if (item.bundle ===
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
86
|
+
if (item.bundle === BUNDLE_FROM_LIBRARY) {
|
|
87
|
+
if ("props" in item && item.props && "libraryItem" in item.props) {
|
|
88
|
+
const actualBlock = item.props.libraryItem?.block;
|
|
89
|
+
if (actualBlock) {
|
|
90
|
+
return getRuntimeOptions(
|
|
91
|
+
actualBlock,
|
|
92
|
+
context,
|
|
93
|
+
item.options
|
|
94
|
+
);
|
|
95
|
+
}
|
|
89
96
|
}
|
|
90
|
-
|
|
91
|
-
actualBlock,
|
|
92
|
-
context,
|
|
93
|
-
item.options
|
|
94
|
-
);
|
|
97
|
+
throw new Error("Missing block");
|
|
95
98
|
}
|
|
96
99
|
const availableOptions = OPTIONS["block:" + item.bundle] || {};
|
|
97
100
|
return Object.entries(availableOptions).reduce(
|
|
@@ -99,7 +102,7 @@ export function getRuntimeOptions(item, context, fromLibraryOptions) {
|
|
|
99
102
|
if (fromLibraryOptions && fromLibraryOptions[key] !== void 0 && fromLibraryOptions[key] !== null) {
|
|
100
103
|
acc[key] = getRuntimeOptionValue(
|
|
101
104
|
definition,
|
|
102
|
-
fromLibraryOptions.value[key]
|
|
105
|
+
fromLibraryOptions.value?.[key]
|
|
103
106
|
);
|
|
104
107
|
return acc;
|
|
105
108
|
}
|
|
@@ -114,7 +117,7 @@ export function getRuntimeOptions(item, context, fromLibraryOptions) {
|
|
|
114
117
|
);
|
|
115
118
|
}
|
|
116
119
|
export function getActualBlock(item) {
|
|
117
|
-
if (item.bundle ===
|
|
120
|
+
if (item.bundle === BUNDLE_FROM_LIBRARY) {
|
|
118
121
|
const block = item.props.libraryItem?.block;
|
|
119
122
|
if (!block) {
|
|
120
123
|
return null;
|
|
@@ -131,7 +134,7 @@ export function getItemsforBundles(items, bundles) {
|
|
|
131
134
|
const filtered = [];
|
|
132
135
|
for (let i = 0; i < items.length; i++) {
|
|
133
136
|
const item = items[i];
|
|
134
|
-
if (item.bundle ===
|
|
137
|
+
if (item.bundle === BUNDLE_FROM_LIBRARY) {
|
|
135
138
|
const actual = getActualBlock(item);
|
|
136
139
|
if (actual && bundles.includes(actual.bundle)) {
|
|
137
140
|
filtered.push(actual);
|
|
@@ -1,23 +1,35 @@
|
|
|
1
|
-
import type { DomProvider } from './domProvider.js';
|
|
2
1
|
import { type Ref, type ComputedRef } from '#imports';
|
|
3
|
-
import type {
|
|
2
|
+
import type { DraggableItem, InteractionMode, RenderedFieldListItem } from '#blokkli/types';
|
|
3
|
+
import type { BlocksProvider } from './providers/blocks.js';
|
|
4
4
|
export type SelectionProvider = {
|
|
5
5
|
/**
|
|
6
6
|
* The currently selected UUIDs.
|
|
7
7
|
*/
|
|
8
8
|
uuids: Readonly<Ref<string[]>>;
|
|
9
|
+
/**
|
|
10
|
+
* Whether the host is currently selected.
|
|
11
|
+
*/
|
|
12
|
+
hasHostSelected: ComputedRef<boolean>;
|
|
13
|
+
/**
|
|
14
|
+
* Whether anything is selected.
|
|
15
|
+
*/
|
|
16
|
+
hasAnythingSelected: ComputedRef<boolean>;
|
|
17
|
+
/**
|
|
18
|
+
* The selected bundles.
|
|
19
|
+
*/
|
|
20
|
+
bundles: ComputedRef<string[]>;
|
|
9
21
|
/**
|
|
10
22
|
* The currently selected UUIDs as a Set.
|
|
11
23
|
*/
|
|
12
24
|
uuidsSet: ComputedRef<Set<string>>;
|
|
13
25
|
/**
|
|
14
|
-
* The currently selected
|
|
26
|
+
* The currently selected field list items.
|
|
15
27
|
*/
|
|
16
|
-
|
|
28
|
+
items: ComputedRef<RenderedFieldListItem[]>;
|
|
17
29
|
/**
|
|
18
|
-
* The
|
|
30
|
+
* The currently selected field list item, if only a single item is selected.
|
|
19
31
|
*/
|
|
20
|
-
|
|
32
|
+
item: ComputedRef<RenderedFieldListItem | null>;
|
|
21
33
|
/**
|
|
22
34
|
* Whether the user is currently dragging a block.
|
|
23
35
|
*/
|
|
@@ -38,10 +50,6 @@ export type SelectionProvider = {
|
|
|
38
50
|
* Whether the user is currently in multi select mode.
|
|
39
51
|
*/
|
|
40
52
|
isMultiSelecting: Ref<boolean>;
|
|
41
|
-
/**
|
|
42
|
-
* Update the active field key.
|
|
43
|
-
*/
|
|
44
|
-
setActiveFieldKey: (key: string) => void;
|
|
45
53
|
/**
|
|
46
54
|
* Whether an editable field is currently being edited.
|
|
47
55
|
*/
|
|
@@ -59,5 +67,13 @@ export type SelectionProvider = {
|
|
|
59
67
|
*/
|
|
60
68
|
dragItemsBundles: ComputedRef<string[]>;
|
|
61
69
|
isBlockSelected(uuid: string): boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Lock selection.
|
|
72
|
+
*/
|
|
73
|
+
lockSelection: (key: string) => void;
|
|
74
|
+
/**
|
|
75
|
+
* Unlock selection.
|
|
76
|
+
*/
|
|
77
|
+
unlockSelection: (key: string) => void;
|
|
62
78
|
};
|
|
63
|
-
export default function (
|
|
79
|
+
export default function (blocks: BlocksProvider): SelectionProvider;
|
|
@@ -1,88 +1,83 @@
|
|
|
1
1
|
import onBlokkliEvent from "./composables/onBlokkliEvent.js";
|
|
2
2
|
import { computed, ref } from "#imports";
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
buildDraggableItem,
|
|
6
|
-
falsy,
|
|
7
|
-
modulo,
|
|
8
|
-
onlyUnique
|
|
9
|
-
} from "#blokkli/helpers";
|
|
10
|
-
import { eventBus } from "#blokkli/helpers/eventBus";
|
|
11
|
-
export default function(dom) {
|
|
3
|
+
import { falsy, onlyUnique } from "#blokkli/helpers";
|
|
4
|
+
export default function(blocks) {
|
|
12
5
|
const selectedUuids = ref([]);
|
|
13
|
-
const
|
|
6
|
+
const hasHostSelected = ref(false);
|
|
14
7
|
const draggingMode = ref(null);
|
|
15
8
|
const editableActive = ref(false);
|
|
16
9
|
const isChangingOptions = ref(false);
|
|
17
10
|
const isMultiSelecting = ref(false);
|
|
18
11
|
const interactionMode = ref("mouse");
|
|
12
|
+
const selectionLocks = ref([]);
|
|
13
|
+
const selectedRenderedItems = computed(() => {
|
|
14
|
+
const items = [];
|
|
15
|
+
for (let i = 0; i < selectedUuids.value.length; i++) {
|
|
16
|
+
const uuid = selectedUuids.value[i];
|
|
17
|
+
if (!uuid) {
|
|
18
|
+
continue;
|
|
19
|
+
}
|
|
20
|
+
const item2 = blocks.getBlock(uuid);
|
|
21
|
+
if (!item2) {
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
items.push(item2);
|
|
25
|
+
}
|
|
26
|
+
return items;
|
|
27
|
+
});
|
|
28
|
+
const item = computed(() => {
|
|
29
|
+
if (selectedRenderedItems.value.length === 1) {
|
|
30
|
+
return selectedRenderedItems.value[0] ?? null;
|
|
31
|
+
}
|
|
32
|
+
return null;
|
|
33
|
+
});
|
|
34
|
+
const bundles = computed(() => {
|
|
35
|
+
return selectedRenderedItems.value.map((v) => v.bundle).filter(onlyUnique);
|
|
36
|
+
});
|
|
37
|
+
const selectionIsLocked = computed(() => !!selectionLocks.value.length);
|
|
19
38
|
const dragItems = ref([]);
|
|
20
39
|
const dragItemsBundles = computed(
|
|
21
|
-
() => dragItems.value.map((v) =>
|
|
40
|
+
() => dragItems.value.map((v) => {
|
|
41
|
+
if (v.itemType === "existing") {
|
|
42
|
+
return v.block.bundle;
|
|
43
|
+
} else if ("itemBundle" in v) {
|
|
44
|
+
return v.itemBundle;
|
|
45
|
+
}
|
|
46
|
+
}).filter(falsy)
|
|
22
47
|
);
|
|
23
48
|
const uuidsSet = computed(() => new Set(selectedUuids.value));
|
|
24
49
|
const isDragging = computed(() => !!draggingMode.value);
|
|
25
|
-
|
|
26
|
-
(
|
|
27
|
-
return
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
function selectItems(uuids) {
|
|
31
|
-
unselectItems();
|
|
32
|
-
const items = uuids.map((uuid) => {
|
|
33
|
-
const element = findElement(uuid);
|
|
34
|
-
if (element) {
|
|
35
|
-
const item = buildDraggableItem(element);
|
|
36
|
-
if (item && item.itemType === "existing") {
|
|
37
|
-
return item;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}).filter(falsy);
|
|
41
|
-
selectedUuids.value = items.map((v) => v.uuid);
|
|
50
|
+
function updateSelectedUuids(uuids, force) {
|
|
51
|
+
if (selectionIsLocked.value && !force) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
selectedUuids.value = uuids;
|
|
42
55
|
}
|
|
43
56
|
function unselectItems() {
|
|
44
|
-
activeFieldKey.value = "";
|
|
45
57
|
if (selectedUuids.value.length === 0) {
|
|
46
58
|
return;
|
|
47
59
|
}
|
|
48
|
-
|
|
60
|
+
updateSelectedUuids([]);
|
|
49
61
|
}
|
|
50
|
-
function onSelect(v) {
|
|
62
|
+
function onSelect(v, force) {
|
|
51
63
|
if (typeof v === "string") {
|
|
52
|
-
|
|
64
|
+
updateSelectedUuids([v], force);
|
|
53
65
|
} else {
|
|
54
|
-
|
|
66
|
+
updateSelectedUuids(v.filter(onlyUnique), force);
|
|
55
67
|
}
|
|
56
68
|
}
|
|
57
|
-
const selectInList = (prev) => {
|
|
58
|
-
const items = dom.getAllBlocks();
|
|
59
|
-
if (!items.length) {
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
62
|
-
const currentIndex = blocks.value[0] ? items.findIndex((v) => v.uuid === blocks.value[0].uuid) : -1;
|
|
63
|
-
const targetIndex = modulo(
|
|
64
|
-
prev ? currentIndex - 1 : currentIndex + 1,
|
|
65
|
-
items.length
|
|
66
|
-
);
|
|
67
|
-
const targetItem = items[targetIndex];
|
|
68
|
-
if (!targetItem) {
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
onSelect(targetItem.uuid);
|
|
72
|
-
dom.refreshBlockRect(targetItem.uuid);
|
|
73
|
-
eventBus.emit("scrollIntoView", { uuid: targetItem.uuid });
|
|
74
|
-
};
|
|
75
|
-
const setActiveFieldKey = (key) => activeFieldKey.value = key;
|
|
76
69
|
onBlokkliEvent("select", onSelect);
|
|
70
|
+
onBlokkliEvent("select:force", (arg) => {
|
|
71
|
+
onSelect(arg, true);
|
|
72
|
+
});
|
|
77
73
|
onBlokkliEvent("select:start", (e) => {
|
|
78
|
-
|
|
74
|
+
updateSelectedUuids((e.uuids || []).filter(onlyUnique));
|
|
79
75
|
isMultiSelecting.value = true;
|
|
80
76
|
interactionMode.value = e.mode;
|
|
81
|
-
activeFieldKey.value = "";
|
|
82
77
|
});
|
|
83
78
|
onBlokkliEvent("select:toggle", (uuid) => {
|
|
84
79
|
if (selectedUuids.value.includes(uuid)) {
|
|
85
|
-
selectedUuids.value
|
|
80
|
+
updateSelectedUuids(selectedUuids.value.filter((v) => v !== uuid));
|
|
86
81
|
} else {
|
|
87
82
|
selectedUuids.value.push(uuid);
|
|
88
83
|
}
|
|
@@ -92,36 +87,31 @@ export default function(dom) {
|
|
|
92
87
|
if (!uuids || uuids.length === 0 && selectedUuids.value.length === 0) {
|
|
93
88
|
return;
|
|
94
89
|
}
|
|
95
|
-
|
|
96
|
-
});
|
|
97
|
-
onBlokkliEvent("select:previous", () => selectInList(true));
|
|
98
|
-
onBlokkliEvent("select:next", selectInList);
|
|
99
|
-
onBlokkliEvent("setActiveFieldKey", setActiveFieldKey);
|
|
100
|
-
onBlokkliEvent("state:reloaded", () => {
|
|
101
|
-
selectedUuids.value = selectedUuids.value.filter((uuid) => {
|
|
102
|
-
return !!dom.findBlock(uuid);
|
|
103
|
-
});
|
|
90
|
+
updateSelectedUuids(uuids);
|
|
104
91
|
});
|
|
105
92
|
onBlokkliEvent("dragging:start", (e) => {
|
|
106
93
|
draggingMode.value = e.mode;
|
|
107
94
|
isMultiSelecting.value = false;
|
|
108
95
|
dragItems.value = e.items;
|
|
109
|
-
const blocks2 = e.items.filter(
|
|
110
|
-
(v) => v.itemType === "existing"
|
|
111
|
-
);
|
|
96
|
+
const blocks2 = e.items.filter((v) => v.itemType === "existing");
|
|
112
97
|
if (blocks2.length) {
|
|
113
|
-
|
|
98
|
+
updateSelectedUuids(blocks2.map((v) => v.block.uuid));
|
|
114
99
|
}
|
|
115
100
|
});
|
|
116
101
|
onBlokkliEvent("dragging:end", () => {
|
|
117
102
|
draggingMode.value = null;
|
|
118
103
|
});
|
|
119
104
|
onBlokkliEvent("select:unselect", () => {
|
|
120
|
-
|
|
105
|
+
updateSelectedUuids([]);
|
|
106
|
+
});
|
|
107
|
+
onBlokkliEvent("select:host", () => {
|
|
108
|
+
hasHostSelected.value = true;
|
|
109
|
+
});
|
|
110
|
+
onBlokkliEvent("select:host:unselect", () => {
|
|
111
|
+
hasHostSelected.value = false;
|
|
121
112
|
});
|
|
122
113
|
onBlokkliEvent("window:clickAway", () => {
|
|
123
114
|
unselectItems();
|
|
124
|
-
activeFieldKey.value = "";
|
|
125
115
|
if (document.activeElement instanceof HTMLElement) {
|
|
126
116
|
document.activeElement.blur();
|
|
127
117
|
}
|
|
@@ -131,16 +121,25 @@ export default function(dom) {
|
|
|
131
121
|
(v) => v.itemType === "existing" || v.itemType === "existing_structure"
|
|
132
122
|
);
|
|
133
123
|
});
|
|
124
|
+
const hasAnythingSelected = computed(() => {
|
|
125
|
+
return hasHostSelected.value || !!selectedUuids.value.length;
|
|
126
|
+
});
|
|
134
127
|
function isBlockSelected(uuid) {
|
|
135
128
|
return uuidsSet.value.has(uuid);
|
|
136
129
|
}
|
|
130
|
+
function lockSelection(key) {
|
|
131
|
+
selectionLocks.value.push(key);
|
|
132
|
+
}
|
|
133
|
+
function unlockSelection(key) {
|
|
134
|
+
selectionLocks.value = selectionLocks.value.filter((v) => v !== key);
|
|
135
|
+
}
|
|
137
136
|
return {
|
|
138
137
|
uuids: selectedUuids,
|
|
139
|
-
|
|
140
|
-
|
|
138
|
+
bundles,
|
|
139
|
+
items: selectedRenderedItems,
|
|
140
|
+
item,
|
|
141
141
|
isDragging,
|
|
142
142
|
isDraggingExisting,
|
|
143
|
-
setActiveFieldKey,
|
|
144
143
|
editableActive,
|
|
145
144
|
isChangingOptions,
|
|
146
145
|
isMultiSelecting,
|
|
@@ -149,6 +148,12 @@ export default function(dom) {
|
|
|
149
148
|
dragItems,
|
|
150
149
|
uuidsSet,
|
|
151
150
|
dragItemsBundles,
|
|
152
|
-
isBlockSelected
|
|
151
|
+
isBlockSelected,
|
|
152
|
+
hasHostSelected: computed(() => {
|
|
153
|
+
return hasHostSelected.value && !selectedUuids.value.length;
|
|
154
|
+
}),
|
|
155
|
+
hasAnythingSelected,
|
|
156
|
+
lockSelection,
|
|
157
|
+
unlockSelection
|
|
153
158
|
};
|
|
154
159
|
}
|