@blokkli/editor 2.0.0-alpha.13 → 2.0.0-alpha.15
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 +1 -1
- package/dist/module.mjs +4873 -1167
- package/dist/modules/drupal/graphql/base/fragment.ParagraphsBlokkliConfigInput.graphql +31 -0
- package/dist/modules/drupal/graphql/base/fragment.blokkliProps.graphql +1 -0
- package/dist/modules/drupal/graphql/base/fragment.paragraphsBlokkliEditState.graphql +5 -0
- package/dist/modules/drupal/graphql/base/query.pbEntityConfig.graphql +5 -0
- 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/update_host_options.graphql +15 -0
- package/dist/modules/drupal/index.d.mts +1 -1
- package/dist/modules/drupal/index.mjs +37 -7
- package/dist/modules/drupal/runtime/adapter/index.js +140 -5
- package/dist/runtime/adapter/index.d.ts +90 -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 +3 -0
- package/dist/runtime/blokkliPlugins/ContextMenu/index.vue +3 -2
- package/dist/runtime/blokkliPlugins/DroppableEdit/index.vue +3 -3
- 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 +2 -2
- package/dist/runtime/blokkliPlugins/Sidebar/Detached/index.vue +6 -7
- package/dist/runtime/blokkliPlugins/Sidebar/index.vue +2 -9
- package/dist/runtime/blokkliPlugins/Sidebar/index.vue.d.ts +1 -1
- package/dist/runtime/blokkliPlugins/ViewOption/index.vue +6 -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/BlokkliProvider.vue +1 -0
- package/dist/runtime/components/BlokkliProvider.vue.d.ts +1 -0
- package/dist/runtime/components/Edit/Actions/index.vue +39 -67
- 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/AppMenu/index.vue +5 -5
- package/dist/runtime/components/Edit/Dialog/index.vue +5 -1
- package/dist/runtime/components/Edit/Dialog/index.vue.d.ts +1 -1
- 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/DragInteractions/index.vue +35 -6
- package/dist/runtime/components/Edit/EditProvider.vue +46 -35
- package/dist/runtime/components/Edit/Features/AddList/index.vue +15 -25
- package/dist/runtime/components/Edit/Features/Analyze/Overlay/fragment.glsl +58 -0
- package/dist/runtime/components/Edit/Features/Analyze/Overlay/index.vue +168 -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 +101 -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 +136 -0
- package/dist/runtime/components/Edit/Features/Anchors/index.vue +32 -0
- package/dist/runtime/components/Edit/Features/Anchors/index.vue.d.ts +2 -0
- package/dist/runtime/components/Edit/Features/Artboard/Overview/index.vue +25 -13
- package/dist/runtime/components/Edit/Features/Artboard/Renderer.vue +296 -0
- package/dist/runtime/components/Edit/Features/Artboard/Renderer.vue.d.ts +7 -0
- package/dist/runtime/components/Edit/Features/Artboard/index.vue +10 -245
- package/dist/runtime/components/Edit/Features/Assistant/index.vue +3 -2
- package/dist/runtime/components/Edit/Features/BlockAddList/index.vue +4 -4
- package/dist/runtime/components/Edit/Features/Clipboard/index.vue +161 -28
- package/dist/runtime/components/Edit/Features/CommandPalette/Palette/Group/index.vue +16 -4
- package/dist/runtime/components/Edit/Features/CommandPalette/Palette/Group/index.vue.d.ts +0 -1
- package/dist/runtime/components/Edit/Features/CommandPalette/Palette/index.vue +4 -53
- package/dist/runtime/components/Edit/Features/CommandPalette/index.vue +3 -2
- package/dist/runtime/components/Edit/Features/Conversions/index.vue +12 -14
- package/dist/runtime/components/Edit/Features/Debug/Viewport/index.vue +14 -0
- package/dist/runtime/components/Edit/Features/Debug/index.vue +27 -24
- 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 +4 -4
- package/dist/runtime/components/Edit/Features/DraggingOverlay/DropTargets/fragment.glsl +1 -1
- package/dist/runtime/components/Edit/Features/DraggingOverlay/DropTargets/index.vue +35 -71
- package/dist/runtime/components/Edit/Features/DraggingOverlay/DropTargets/vertex.glsl +1 -1
- package/dist/runtime/components/Edit/Features/DraggingOverlay/index.vue +62 -48
- package/dist/runtime/components/Edit/Features/EditForm/Frame/index.vue +3 -3
- package/dist/runtime/components/Edit/Features/EditForm/index.vue +3 -3
- package/dist/runtime/components/Edit/Features/EditableField/index.vue +6 -2
- 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/index.vue +3 -2
- package/dist/runtime/components/Edit/Features/History/index.vue +35 -12
- 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/index.vue +11 -9
- package/dist/runtime/components/Edit/Features/MediaLibrary/Library/index.vue +5 -8
- package/dist/runtime/components/Edit/Features/MultiSelect/Overlay/fragment.glsl +1 -1
- package/dist/runtime/components/Edit/Features/MultiSelect/Overlay/index.vue +9 -4
- package/dist/runtime/components/Edit/Features/MultiSelect/Overlay/vertex.glsl +1 -1
- package/dist/runtime/components/Edit/Features/MultiSelect/index.vue +8 -14
- 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/Item.vue +9 -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 +81 -37
- package/dist/runtime/components/Edit/Features/Options/Form/index.vue.d.ts +5 -5
- package/dist/runtime/components/Edit/Features/Options/index.vue +30 -6
- package/dist/runtime/components/Edit/Features/PreviewGrant/index.vue +3 -3
- 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/ScheduleDate.vue +183 -0
- package/dist/runtime/components/Edit/Features/Publish/Dialog/ScheduleDate.vue.d.ts +13 -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 +381 -128
- package/dist/runtime/components/Edit/Features/Publish/Dialog/index.vue.d.ts +3 -14
- package/dist/runtime/components/Edit/Features/Publish/index.vue +37 -22
- package/dist/runtime/components/Edit/Features/Revert/index.vue +3 -3
- package/dist/runtime/components/Edit/Features/Search/index.vue +3 -2
- package/dist/runtime/components/Edit/Features/Selection/AddButtons/AddButtonsField.vue +54 -0
- package/dist/runtime/components/Edit/Features/Selection/AddButtons/AddButtonsField.vue.d.ts +14 -0
- package/dist/runtime/components/Edit/Features/Selection/AddButtons/Overlay/index.vue +120 -0
- package/dist/runtime/components/Edit/Features/Selection/AddButtons/Overlay/index.vue.d.ts +15 -0
- package/dist/runtime/components/Edit/Features/Selection/AddButtons/index.vue +459 -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 +14 -9
- package/dist/runtime/components/Edit/Features/Selection/Overlay/index.vue +32 -11
- package/dist/runtime/components/Edit/Features/Selection/Overlay/vertex.glsl +1 -1
- package/dist/runtime/components/Edit/Features/Selection/index.vue +76 -7
- 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/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/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 +155 -44
- 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/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 +33 -0
- package/dist/runtime/components/Edit/Form/Text/index.vue.d.ts +19 -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/FormOverlay/index.vue +1 -1
- 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/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/ShortcutIndicator/index.vue +8 -3
- 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/index.vue +41 -0
- package/dist/runtime/components/Edit/Transition/index.vue.d.ts +19 -0
- package/dist/runtime/components/Edit/index.d.ts +24 -15
- package/dist/runtime/components/Edit/index.js +46 -28
- package/dist/runtime/composables/defineBlokkli.js +7 -3
- package/dist/runtime/composables/defineBlokkliFeature.d.ts +4 -7
- package/dist/runtime/composables/defineBlokkliProvider.d.ts +11 -0
- package/dist/runtime/composables/defineBlokkliProvider.js +46 -0
- package/dist/runtime/composables/useBlokkliHelper.js +1 -1
- 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 +4 -2
- package/dist/runtime/helpers/animationProvider.js +7 -2
- package/dist/runtime/helpers/bundles/index.d.ts +1 -0
- package/dist/runtime/helpers/bundles/index.js +4 -0
- package/dist/runtime/helpers/composables/useStickyToolbar.d.ts +20 -0
- package/dist/runtime/helpers/composables/useStickyToolbar.js +215 -0
- package/dist/runtime/helpers/definitionProvider.d.ts +2 -1
- package/dist/runtime/helpers/definitionProvider.js +17 -0
- package/dist/runtime/helpers/domProvider.d.ts +2 -1
- package/dist/runtime/helpers/domProvider.js +89 -43
- 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 -1
- package/dist/runtime/helpers/index.js +57 -0
- 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/renderCycle.d.ts +1 -0
- package/dist/runtime/helpers/renderCycle.js +10 -0
- package/dist/runtime/helpers/runtimeHelpers/index.js +14 -11
- package/dist/runtime/helpers/selectionProvider.d.ts +16 -0
- package/dist/runtime/helpers/selectionProvider.js +47 -35
- package/dist/runtime/helpers/stateProvider.d.ts +7 -2
- package/dist/runtime/helpers/stateProvider.js +89 -14
- package/dist/runtime/helpers/storageProvider.d.ts +4 -3
- package/dist/runtime/helpers/storageProvider.js +56 -3
- package/dist/runtime/helpers/symbols.d.ts +1 -0
- package/dist/runtime/helpers/symbols.js +1 -0
- package/dist/runtime/helpers/textProvider.js +6 -0
- package/dist/runtime/helpers/themeProvider.d.ts +2 -0
- package/dist/runtime/helpers/themeProvider.js +4 -1
- package/dist/runtime/helpers/transform.js +1 -3
- package/dist/runtime/helpers/uiProvider.d.ts +9 -2
- package/dist/runtime/helpers/uiProvider.js +72 -47
- package/dist/runtime/helpers/useTransitionedValue.d.ts +18 -0
- package/dist/runtime/helpers/useTransitionedValue.js +57 -0
- 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/chart.svg +1 -0
- package/dist/runtime/icons/copy.svg +1 -0
- package/dist/runtime/icons/cursor-move.svg +1 -1
- package/dist/runtime/icons/diff.svg +1 -1
- 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/speedometer.svg +1 -0
- package/dist/runtime/types/blokkOptions.d.ts +8 -0
- package/dist/runtime/types/index.d.ts +172 -6
- 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 +20 -5
- 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/components/Edit/Features/{FieldAreas/Overlay → Analyze}/index.vue.d.ts +0 -0
- /package/dist/runtime/components/Edit/Features/{FieldAreas/index.vue.d.ts → Anchors/Renderer.vue.d.ts} +0 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
export const MIN_GAP = 20;
|
|
2
|
+
export function getGapSize(orientation, element) {
|
|
3
|
+
const computedStyle = window.getComputedStyle(element);
|
|
4
|
+
if (computedStyle.display.includes("grid") || computedStyle.display.includes("flex")) {
|
|
5
|
+
const gap = orientation === "vertical" ? computedStyle.columnGap || computedStyle.gridColumnGap : computedStyle.rowGap || computedStyle.gridRowGap;
|
|
6
|
+
if (gap) {
|
|
7
|
+
const gapParts = gap.split(" ");
|
|
8
|
+
const gapValue = gapParts[0];
|
|
9
|
+
if (gapValue?.endsWith("px")) {
|
|
10
|
+
return Number.parseFloat(gapValue);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return MIN_GAP;
|
|
15
|
+
}
|
|
16
|
+
export function getChildrenOrientation(element) {
|
|
17
|
+
const computedStyle = window.getComputedStyle(element);
|
|
18
|
+
if (computedStyle.display.includes("flex")) {
|
|
19
|
+
if (computedStyle.flexDirection === "row" || computedStyle.flexDirection === "row-reverse") {
|
|
20
|
+
return "horizontal";
|
|
21
|
+
} else {
|
|
22
|
+
return "vertical";
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (computedStyle.display.includes("grid")) {
|
|
26
|
+
if (computedStyle.gridTemplateColumns.split(" ").length > 1) {
|
|
27
|
+
return "horizontal";
|
|
28
|
+
} else {
|
|
29
|
+
return "vertical";
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return "vertical";
|
|
33
|
+
}
|
|
34
|
+
export function determineCanAddChildren(field, children, uuids, currentCount, itemsToAdd, draggingBundles) {
|
|
35
|
+
if (field.cardinality !== -1) {
|
|
36
|
+
const childrenThatAreSelection = children.filter((child) => {
|
|
37
|
+
const uuid = child.dataset.uuid;
|
|
38
|
+
if (!uuid) {
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
return uuids.includes(uuid);
|
|
42
|
+
}).length;
|
|
43
|
+
const countAfter = currentCount - childrenThatAreSelection + itemsToAdd;
|
|
44
|
+
if (countAfter > field.cardinality) {
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return !draggingBundles?.length || draggingBundles.every((bundle) => field.allowedBundles.includes(bundle));
|
|
49
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { EventbusEvents } from '#blokkli/types';
|
|
2
2
|
export declare const eventBus: import("mitt").Emitter<EventbusEvents>;
|
|
3
|
-
export declare const emitMessage: (message: string, type?: "success" | "error", additional?: string | Error | unknown) => void;
|
|
3
|
+
export declare const emitMessage: (message: string, type?: "success" | "error", additional?: string | Error | unknown, replace?: boolean) => void;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import mitt from "mitt";
|
|
2
2
|
export const eventBus = mitt();
|
|
3
|
-
export const emitMessage = (message, type = "success", additional) => {
|
|
4
|
-
eventBus.emit("message", { type, message, additional });
|
|
3
|
+
export const emitMessage = (message, type = "success", additional, replace) => {
|
|
4
|
+
eventBus.emit("message", { type, message, additional, replace });
|
|
5
5
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { DraggableItem, Rectangle, DroppableEntityField, DraggableExistingBlock, EntityContext, Coord, LibraryItemProps } from '#blokkli/types';
|
|
1
|
+
import type { DraggableItem, Rectangle, DroppableEntityField, DraggableExistingBlock, EntityContext, Coord, LibraryItemProps, Size } from '#blokkli/types';
|
|
2
2
|
import type { RGB } from '#blokkli/types/theme';
|
|
3
3
|
/**
|
|
4
4
|
* Type check for falsy values.
|
|
@@ -39,6 +39,15 @@ export declare function distanceToRectangle(x: number, y: number, rect: Rectangl
|
|
|
39
39
|
* Return the distance from the given coordinates to the center of the rectangle.
|
|
40
40
|
*/
|
|
41
41
|
export declare function distanceToClosestRectangleEdge(x: number, y: number, rect: Rectangle): number;
|
|
42
|
+
/**
|
|
43
|
+
* Subtracts a rectangle from a viewport and returns the remaining area as rectangles.
|
|
44
|
+
* The viewport is assumed to have x=0 and y=0.
|
|
45
|
+
*
|
|
46
|
+
* @param viewport - The size of the viewport to subtract from
|
|
47
|
+
* @param rect - The rectangle to subtract
|
|
48
|
+
* @returns An array of 0 to 4 rectangles representing the area outside of rect
|
|
49
|
+
*/
|
|
50
|
+
export declare function subtractRectFromViewport(viewport: Size, rect: Rectangle): Rectangle[];
|
|
42
51
|
export declare function getDistance(a: Coord, b: Coord): number;
|
|
43
52
|
export declare const parseColorString: (color: string) => RGB | undefined;
|
|
44
53
|
/**
|
|
@@ -234,6 +234,63 @@ export function distanceToClosestRectangleEdge(x, y, rect) {
|
|
|
234
234
|
const dy = Math.max(minY - y, 0, y - maxY);
|
|
235
235
|
return Math.sqrt(dx * dx + dy * dy);
|
|
236
236
|
}
|
|
237
|
+
export function subtractRectFromViewport(viewport, rect) {
|
|
238
|
+
const viewportLeft = 0;
|
|
239
|
+
const viewportTop = 0;
|
|
240
|
+
const viewportRight = viewport.width;
|
|
241
|
+
const viewportBottom = viewport.height;
|
|
242
|
+
const intersectLeft = Math.max(viewportLeft, rect.x);
|
|
243
|
+
const intersectTop = Math.max(viewportTop, rect.y);
|
|
244
|
+
const intersectRight = Math.min(viewportRight, rect.x + rect.width);
|
|
245
|
+
const intersectBottom = Math.min(viewportBottom, rect.y + rect.height);
|
|
246
|
+
if (intersectLeft >= intersectRight || intersectTop >= intersectBottom) {
|
|
247
|
+
return [
|
|
248
|
+
{
|
|
249
|
+
x: 0,
|
|
250
|
+
y: 0,
|
|
251
|
+
width: viewport.width,
|
|
252
|
+
height: viewport.height
|
|
253
|
+
}
|
|
254
|
+
];
|
|
255
|
+
}
|
|
256
|
+
if (intersectLeft <= viewportLeft && intersectTop <= viewportTop && intersectRight >= viewportRight && intersectBottom >= viewportBottom) {
|
|
257
|
+
return [];
|
|
258
|
+
}
|
|
259
|
+
const result = [];
|
|
260
|
+
if (intersectTop > viewportTop) {
|
|
261
|
+
result.push({
|
|
262
|
+
x: viewportLeft,
|
|
263
|
+
y: viewportTop,
|
|
264
|
+
width: viewport.width,
|
|
265
|
+
height: intersectTop - viewportTop
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
if (intersectBottom < viewportBottom) {
|
|
269
|
+
result.push({
|
|
270
|
+
x: viewportLeft,
|
|
271
|
+
y: intersectBottom,
|
|
272
|
+
width: viewport.width,
|
|
273
|
+
height: viewportBottom - intersectBottom
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
if (intersectLeft > viewportLeft) {
|
|
277
|
+
result.push({
|
|
278
|
+
x: viewportLeft,
|
|
279
|
+
y: intersectTop,
|
|
280
|
+
width: intersectLeft - viewportLeft,
|
|
281
|
+
height: intersectBottom - intersectTop
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
if (intersectRight < viewportRight) {
|
|
285
|
+
result.push({
|
|
286
|
+
x: intersectRight,
|
|
287
|
+
y: intersectTop,
|
|
288
|
+
width: viewportRight - intersectRight,
|
|
289
|
+
height: intersectBottom - intersectTop
|
|
290
|
+
});
|
|
291
|
+
}
|
|
292
|
+
return result;
|
|
293
|
+
}
|
|
237
294
|
export function getDistance(a, b) {
|
|
238
295
|
const dx = a.x - b.x;
|
|
239
296
|
const dy = a.y - b.y;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type Ref } from 'vue';
|
|
2
|
+
import type { BlockIndicator } from '../types/index.js';
|
|
3
|
+
export type IndicatorsProvider = {
|
|
4
|
+
indicators: Ref<BlockIndicator[]>;
|
|
5
|
+
hovered: Ref<string>;
|
|
6
|
+
addIndicator: (indicator: BlockIndicator) => void;
|
|
7
|
+
removeIndicator: (id: string, uuid: string) => void;
|
|
8
|
+
setHovered: (uuid?: string | null) => void;
|
|
9
|
+
};
|
|
10
|
+
export default function (): IndicatorsProvider;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ref } from "vue";
|
|
2
|
+
export default function() {
|
|
3
|
+
const indicators = ref([]);
|
|
4
|
+
const hovered = ref("");
|
|
5
|
+
function addIndicator(indicator) {
|
|
6
|
+
indicators.value.push(indicator);
|
|
7
|
+
}
|
|
8
|
+
function removeIndicator(id, uuid) {
|
|
9
|
+
indicators.value = indicators.value.filter(
|
|
10
|
+
(v) => v.id !== id || v.uuid !== uuid
|
|
11
|
+
);
|
|
12
|
+
}
|
|
13
|
+
function setHovered(uuid) {
|
|
14
|
+
hovered.value = uuid ?? "";
|
|
15
|
+
}
|
|
16
|
+
return {
|
|
17
|
+
indicators,
|
|
18
|
+
hovered,
|
|
19
|
+
addIndicator,
|
|
20
|
+
removeIndicator,
|
|
21
|
+
setHovered
|
|
22
|
+
};
|
|
23
|
+
}
|
|
@@ -13,6 +13,8 @@ export type KeyboardProvider = {
|
|
|
13
13
|
shortcuts: ComputedRef<RegisteredShortcut[]>;
|
|
14
14
|
registerShortcut: (shortcut: KeyboardShortcut) => void;
|
|
15
15
|
unregisterShortcut: (shortcut: KeyboardShortcut) => void;
|
|
16
|
+
lockKeyboardEvents: (id: string) => void;
|
|
17
|
+
unlockKeyboardEvents: (id: string) => void;
|
|
16
18
|
};
|
|
17
19
|
export default function (animationProvider: AnimationProvider): KeyboardProvider;
|
|
18
20
|
export {};
|
|
@@ -18,6 +18,8 @@ export default function(animationProvider) {
|
|
|
18
18
|
const isPressingSpace = ref(false);
|
|
19
19
|
const isPressingShift = ref(false);
|
|
20
20
|
const registeredShortcuts = ref([]);
|
|
21
|
+
const keyboardLocks = ref([]);
|
|
22
|
+
const keyboardLocked = computed(() => !!keyboardLocks.value.length);
|
|
21
23
|
const onKeyUp = (e) => {
|
|
22
24
|
isPressingControl.value = e.getModifierState("Control") || e.getModifierState("Meta");
|
|
23
25
|
isPressingShift.value = e.getModifierState("Shift");
|
|
@@ -29,6 +31,9 @@ export default function(animationProvider) {
|
|
|
29
31
|
}
|
|
30
32
|
};
|
|
31
33
|
const onKeyDown = (e) => {
|
|
34
|
+
if (keyboardLocked.value) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
32
37
|
isPressingControl.value = getControlState(e);
|
|
33
38
|
isPressingShift.value = e.getModifierState("Shift");
|
|
34
39
|
if (!isPressingSpace.value) {
|
|
@@ -78,6 +83,15 @@ export default function(animationProvider) {
|
|
|
78
83
|
isPressingControl.value = getControlState(e);
|
|
79
84
|
isPressingShift.value = !!e.shiftKey;
|
|
80
85
|
}
|
|
86
|
+
function lockKeyboardEvents(id) {
|
|
87
|
+
if (keyboardLocks.value.includes(id)) {
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
keyboardLocks.value.push(id);
|
|
91
|
+
}
|
|
92
|
+
function unlockKeyboardEvents(id) {
|
|
93
|
+
keyboardLocks.value = keyboardLocks.value.filter((v) => v !== id);
|
|
94
|
+
}
|
|
81
95
|
return {
|
|
82
96
|
isPressingSpace: readonly(isPressingSpace),
|
|
83
97
|
isPressingControl: readonly(isPressingControl),
|
|
@@ -85,6 +99,8 @@ export default function(animationProvider) {
|
|
|
85
99
|
shortcuts,
|
|
86
100
|
registerShortcut,
|
|
87
101
|
unregisterShortcut,
|
|
88
|
-
setShortcutStateFromEvent
|
|
102
|
+
setShortcutStateFromEvent,
|
|
103
|
+
lockKeyboardEvents,
|
|
104
|
+
unlockKeyboardEvents
|
|
89
105
|
};
|
|
90
106
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { AddAction } from '#blokkli/types';
|
|
2
|
+
type PluginAddFunction<T> = () => T | T[] | undefined;
|
|
3
|
+
type AddActionFunction = PluginAddFunction<AddAction>;
|
|
4
|
+
export type PluginProvider = {
|
|
5
|
+
addAddAction: (fn: AddActionFunction) => void;
|
|
6
|
+
removeAddAction: (fn: AddActionFunction) => void;
|
|
7
|
+
getAddActions: () => AddAction[];
|
|
8
|
+
};
|
|
9
|
+
export default function (): PluginProvider;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export default function() {
|
|
2
|
+
let addActions = [];
|
|
3
|
+
function addAddAction(fn) {
|
|
4
|
+
addActions.push(fn);
|
|
5
|
+
}
|
|
6
|
+
function removeAddAction(fn) {
|
|
7
|
+
addActions = addActions.filter((v) => v !== fn);
|
|
8
|
+
}
|
|
9
|
+
function getAddActions() {
|
|
10
|
+
const actions = [];
|
|
11
|
+
for (let i = 0; i < addActions.length; i++) {
|
|
12
|
+
const callback = addActions[i];
|
|
13
|
+
if (!callback) {
|
|
14
|
+
continue;
|
|
15
|
+
}
|
|
16
|
+
const result = callback();
|
|
17
|
+
if (!result) {
|
|
18
|
+
continue;
|
|
19
|
+
}
|
|
20
|
+
if (Array.isArray(result)) {
|
|
21
|
+
actions.push(...result);
|
|
22
|
+
} else {
|
|
23
|
+
actions.push(result);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return actions;
|
|
27
|
+
}
|
|
28
|
+
return {
|
|
29
|
+
addAddAction,
|
|
30
|
+
removeAddAction,
|
|
31
|
+
getAddActions
|
|
32
|
+
};
|
|
33
|
+
}
|
|
@@ -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(
|
|
@@ -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);
|
|
@@ -6,6 +6,14 @@ export type SelectionProvider = {
|
|
|
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>;
|
|
9
17
|
/**
|
|
10
18
|
* The currently selected UUIDs as a Set.
|
|
11
19
|
*/
|
|
@@ -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
79
|
export default function (dom: DomProvider): SelectionProvider;
|
|
@@ -1,21 +1,18 @@
|
|
|
1
1
|
import onBlokkliEvent from "./composables/onBlokkliEvent.js";
|
|
2
2
|
import { computed, ref } from "#imports";
|
|
3
|
-
import {
|
|
4
|
-
findElement,
|
|
5
|
-
buildDraggableItem,
|
|
6
|
-
falsy,
|
|
7
|
-
modulo,
|
|
8
|
-
onlyUnique
|
|
9
|
-
} from "#blokkli/helpers";
|
|
3
|
+
import { falsy, modulo, onlyUnique } from "#blokkli/helpers";
|
|
10
4
|
import { eventBus } from "#blokkli/helpers/eventBus";
|
|
11
5
|
export default function(dom) {
|
|
12
6
|
const selectedUuids = ref([]);
|
|
7
|
+
const hasHostSelected = ref(false);
|
|
13
8
|
const activeFieldKey = ref("");
|
|
14
9
|
const draggingMode = ref(null);
|
|
15
10
|
const editableActive = ref(false);
|
|
16
11
|
const isChangingOptions = ref(false);
|
|
17
12
|
const isMultiSelecting = ref(false);
|
|
18
13
|
const interactionMode = ref("mouse");
|
|
14
|
+
const selectionLocks = ref([]);
|
|
15
|
+
const selectionIsLocked = computed(() => !!selectionLocks.value.length);
|
|
19
16
|
const dragItems = ref([]);
|
|
20
17
|
const dragItemsBundles = computed(
|
|
21
18
|
() => dragItems.value.map((v) => v.itemBundle).filter(falsy)
|
|
@@ -24,34 +21,30 @@ export default function(dom) {
|
|
|
24
21
|
const isDragging = computed(() => !!draggingMode.value);
|
|
25
22
|
const blocks = computed(
|
|
26
23
|
() => selectedUuids.value.map((uuid) => {
|
|
27
|
-
|
|
24
|
+
if (dom.registeredBlockUuids.value.includes(uuid)) {
|
|
25
|
+
return dom.findBlock(uuid);
|
|
26
|
+
}
|
|
27
|
+
return null;
|
|
28
28
|
}).filter(falsy)
|
|
29
29
|
);
|
|
30
|
-
function
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
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);
|
|
30
|
+
function updateSelectedUuids(uuids, force) {
|
|
31
|
+
if (selectionIsLocked.value && !force) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
selectedUuids.value = uuids;
|
|
42
35
|
}
|
|
43
36
|
function unselectItems() {
|
|
44
37
|
activeFieldKey.value = "";
|
|
45
38
|
if (selectedUuids.value.length === 0) {
|
|
46
39
|
return;
|
|
47
40
|
}
|
|
48
|
-
|
|
41
|
+
updateSelectedUuids([]);
|
|
49
42
|
}
|
|
50
|
-
function onSelect(v) {
|
|
43
|
+
function onSelect(v, force) {
|
|
51
44
|
if (typeof v === "string") {
|
|
52
|
-
|
|
45
|
+
updateSelectedUuids([v], force);
|
|
53
46
|
} else {
|
|
54
|
-
|
|
47
|
+
updateSelectedUuids(v.filter(onlyUnique), force);
|
|
55
48
|
}
|
|
56
49
|
}
|
|
57
50
|
const selectInList = (prev) => {
|
|
@@ -74,15 +67,18 @@ export default function(dom) {
|
|
|
74
67
|
};
|
|
75
68
|
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
77
|
activeFieldKey.value = "";
|
|
82
78
|
});
|
|
83
79
|
onBlokkliEvent("select:toggle", (uuid) => {
|
|
84
80
|
if (selectedUuids.value.includes(uuid)) {
|
|
85
|
-
selectedUuids.value
|
|
81
|
+
updateSelectedUuids(selectedUuids.value.filter((v) => v !== uuid));
|
|
86
82
|
} else {
|
|
87
83
|
selectedUuids.value.push(uuid);
|
|
88
84
|
}
|
|
@@ -92,16 +88,11 @@ export default function(dom) {
|
|
|
92
88
|
if (!uuids || uuids.length === 0 && selectedUuids.value.length === 0) {
|
|
93
89
|
return;
|
|
94
90
|
}
|
|
95
|
-
|
|
91
|
+
updateSelectedUuids(uuids);
|
|
96
92
|
});
|
|
97
93
|
onBlokkliEvent("select:previous", () => selectInList(true));
|
|
98
94
|
onBlokkliEvent("select:next", selectInList);
|
|
99
95
|
onBlokkliEvent("setActiveFieldKey", setActiveFieldKey);
|
|
100
|
-
onBlokkliEvent("state:reloaded", () => {
|
|
101
|
-
selectedUuids.value = selectedUuids.value.filter((uuid) => {
|
|
102
|
-
return !!dom.findBlock(uuid);
|
|
103
|
-
});
|
|
104
|
-
});
|
|
105
96
|
onBlokkliEvent("dragging:start", (e) => {
|
|
106
97
|
draggingMode.value = e.mode;
|
|
107
98
|
isMultiSelecting.value = false;
|
|
@@ -110,14 +101,20 @@ export default function(dom) {
|
|
|
110
101
|
(v) => v.itemType === "existing"
|
|
111
102
|
);
|
|
112
103
|
if (blocks2.length) {
|
|
113
|
-
|
|
104
|
+
updateSelectedUuids(blocks2.map((v) => v.uuid));
|
|
114
105
|
}
|
|
115
106
|
});
|
|
116
107
|
onBlokkliEvent("dragging:end", () => {
|
|
117
108
|
draggingMode.value = null;
|
|
118
109
|
});
|
|
119
110
|
onBlokkliEvent("select:unselect", () => {
|
|
120
|
-
|
|
111
|
+
updateSelectedUuids([]);
|
|
112
|
+
});
|
|
113
|
+
onBlokkliEvent("select:host", () => {
|
|
114
|
+
hasHostSelected.value = true;
|
|
115
|
+
});
|
|
116
|
+
onBlokkliEvent("select:host:unselect", () => {
|
|
117
|
+
hasHostSelected.value = false;
|
|
121
118
|
});
|
|
122
119
|
onBlokkliEvent("window:clickAway", () => {
|
|
123
120
|
unselectItems();
|
|
@@ -131,9 +128,18 @@ export default function(dom) {
|
|
|
131
128
|
(v) => v.itemType === "existing" || v.itemType === "existing_structure"
|
|
132
129
|
);
|
|
133
130
|
});
|
|
131
|
+
const hasAnythingSelected = computed(() => {
|
|
132
|
+
return hasHostSelected.value || !!selectedUuids.value.length;
|
|
133
|
+
});
|
|
134
134
|
function isBlockSelected(uuid) {
|
|
135
135
|
return uuidsSet.value.has(uuid);
|
|
136
136
|
}
|
|
137
|
+
function lockSelection(key) {
|
|
138
|
+
selectionLocks.value.push(key);
|
|
139
|
+
}
|
|
140
|
+
function unlockSelection(key) {
|
|
141
|
+
selectionLocks.value = selectionLocks.value.filter((v) => v !== key);
|
|
142
|
+
}
|
|
137
143
|
return {
|
|
138
144
|
uuids: selectedUuids,
|
|
139
145
|
blocks,
|
|
@@ -149,6 +155,12 @@ export default function(dom) {
|
|
|
149
155
|
dragItems,
|
|
150
156
|
uuidsSet,
|
|
151
157
|
dragItemsBundles,
|
|
152
|
-
isBlockSelected
|
|
158
|
+
isBlockSelected,
|
|
159
|
+
hasHostSelected: computed(() => {
|
|
160
|
+
return hasHostSelected.value && !selectedUuids.value.length;
|
|
161
|
+
}),
|
|
162
|
+
hasAnythingSelected,
|
|
163
|
+
lockSelection,
|
|
164
|
+
unlockSelection
|
|
153
165
|
};
|
|
154
166
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Ref, type ComputedRef } from 'vue';
|
|
2
2
|
import type { BlokkliAdapter, AdapterContext } from '../adapter/index.js';
|
|
3
|
-
import type { MutatedField, EditEntity, MutatedOptions, TranslationState, MutationItem, Validation, MutateWithLoadingStateFunction, EditMode, FieldListItem } from '#blokkli/types';
|
|
3
|
+
import type { MutatedField, EditEntity, MutatedOptions, TranslationState, MappedState, MutationItem, Validation, MutateWithLoadingStateFunction, EditMode, FieldListItem, PublishOptions } from '#blokkli/types';
|
|
4
4
|
import type { TextProvider } from './textProvider.js';
|
|
5
5
|
export type BlokkliOwner = {
|
|
6
6
|
name: string | undefined;
|
|
@@ -19,6 +19,7 @@ export type StateProvider = {
|
|
|
19
19
|
entity: Readonly<Ref<EditEntity>>;
|
|
20
20
|
mutatedOptions: MutatedOptions;
|
|
21
21
|
translation: Readonly<Ref<TranslationState>>;
|
|
22
|
+
publishOptions: Readonly<Ref<PublishOptions>>;
|
|
22
23
|
mutations: Readonly<Ref<MutationItem[]>>;
|
|
23
24
|
currentMutationIndex: Readonly<Ref<number>>;
|
|
24
25
|
violations: Readonly<Ref<Validation[]>>;
|
|
@@ -33,5 +34,9 @@ export type StateProvider = {
|
|
|
33
34
|
getFieldListItem: (uuid: string) => FieldListItem | undefined;
|
|
34
35
|
getFieldListForBlock: (uuid: string) => MutatedField | undefined;
|
|
35
36
|
getMutatedField: (uuid: string, fieldName: string) => MutatedField | undefined;
|
|
37
|
+
getAllUuids: (bundle?: string) => string[];
|
|
38
|
+
getMappedState: () => MappedState;
|
|
39
|
+
setOverrideState: (state: MappedState) => void;
|
|
40
|
+
clearOverrideState: () => void;
|
|
36
41
|
};
|
|
37
|
-
export default function (adapter: BlokkliAdapter<any>, context: ComputedRef<AdapterContext>, $t: TextProvider): Promise<StateProvider>;
|
|
42
|
+
export default function (adapter: BlokkliAdapter<any>, context: ComputedRef<AdapterContext>, $t: TextProvider, providerKey: string): Promise<StateProvider>;
|