edytor 1.0.0-rc.3 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -39
- package/dist/block/block.svelte.d.ts +11 -84
- package/dist/block/block.svelte.js +30 -134
- package/dist/block/colors.d.ts +0 -9
- package/dist/block/colors.js +1 -18
- package/dist/block/contentRange.d.ts +5 -1
- package/dist/block/contentRange.js +15 -16
- package/dist/block/inlineBlock.svelte.d.ts +11 -9
- package/dist/block/inlineBlock.svelte.js +18 -21
- package/dist/clipboard/createClipboardFragment.js +22 -64
- package/dist/clipboard/fragmentData.js +17 -42
- package/dist/clipboard/htmlFlow.js +7 -7
- package/dist/clipboard/insertClipboardFragment.js +5 -4
- package/dist/clipboard/moveText.js +16 -8
- package/dist/clipboard/serializeClipboardFragment.d.ts +2 -0
- package/dist/clipboard/serializeClipboardFragment.js +32 -28
- package/dist/cloudflare/DocumentRoom.d.ts +4 -17
- package/dist/cloudflare/DocumentRoom.js +3 -5
- package/dist/cloudflare/move.d.ts +1 -18
- package/dist/cloudflare/move.js +2 -48
- package/dist/cloudflare/room/admission.d.ts +1 -60
- package/dist/cloudflare/room/admission.js +25 -29
- package/dist/cloudflare/room/comments.d.ts +1 -3
- package/dist/cloudflare/room/comments.js +6 -6
- package/dist/cloudflare/room/context.d.ts +25 -82
- package/dist/cloudflare/room/context.js +8 -8
- package/dist/cloudflare/room/forged.d.ts +1 -1
- package/dist/cloudflare/room/forged.js +2 -12
- package/dist/cloudflare/room/frames.d.ts +1 -1
- package/dist/cloudflare/room/frames.js +1 -1
- package/dist/cloudflare/room/history.d.ts +1 -25
- package/dist/cloudflare/room/history.js +39 -54
- package/dist/cloudflare/room/moves.d.ts +1 -13
- package/dist/cloudflare/room/moves.js +33 -57
- package/dist/cloudflare/room/presence.d.ts +1 -11
- package/dist/cloudflare/room/presence.js +4 -4
- package/dist/cloudflare/room/purge.d.ts +1 -2
- package/dist/cloudflare/room/purge.js +2 -2
- package/dist/cloudflare/room/replicas.d.ts +1 -7
- package/dist/cloudflare/room/replicas.js +2 -2
- package/dist/cloudflare/room/storage.d.ts +3 -32
- package/dist/cloudflare/room/storage.js +33 -108
- package/dist/cloudflare/room/updates.d.ts +4 -4
- package/dist/cloudflare/room/updates.js +17 -24
- package/dist/cloudflare/room/validation.d.ts +1 -5
- package/dist/cloudflare/room/validation.js +16 -37
- package/dist/collaboration/RemoteSelections.svelte +13 -17
- package/dist/collaboration/awarenessSelection.d.ts +22 -1
- package/dist/collaboration/awarenessSelection.js +42 -0
- package/dist/collaboration/comments/client.d.ts +2 -2
- package/dist/collaboration/comments/client.js +1 -1
- package/dist/collaboration/history/index.d.ts +5 -5
- package/dist/collaboration/history/index.js +5 -5
- package/dist/collaboration/history/panel.svelte.d.ts +91 -0
- package/dist/collaboration/history/panel.svelte.js +223 -0
- package/dist/collaboration/providers.d.ts +12 -3
- package/dist/collaboration/providers.js +5 -4
- package/dist/components/Block.svelte +42 -56
- package/dist/components/Block.svelte.d.ts +7 -5
- package/dist/components/Content.svelte +1 -5
- package/dist/components/Edytor.svelte +82 -99
- package/dist/components/Edytor.svelte.d.ts +16 -13
- package/dist/components/InlineBlock.svelte +1 -1
- package/dist/components/Ranges.svelte +96 -0
- package/dist/components/Ranges.svelte.d.ts +19 -0
- package/dist/components/Suggestion.svelte +3 -2
- package/dist/components/Text.svelte +2 -5
- package/dist/components/Text.svelte.d.ts +1 -1
- package/dist/crdt/admission.d.ts +2 -9
- package/dist/crdt/admission.js +3 -9
- package/dist/crdt/attribution/attribution.d.ts +11 -72
- package/dist/crdt/attribution/attribution.js +5 -52
- package/dist/crdt/attribution/block.d.ts +0 -78
- package/dist/crdt/attribution/block.js +1 -144
- package/dist/crdt/data.d.ts +18 -13
- package/dist/crdt/data.js +49 -71
- package/dist/crdt/doc/anchors.js +4 -4
- package/dist/crdt/doc/content.d.ts +5 -1
- package/dist/crdt/doc/content.js +3 -1
- package/dist/crdt/doc/delete.d.ts +1 -0
- package/dist/crdt/doc/funnel.d.ts +0 -23
- package/dist/crdt/doc/funnel.js +34 -85
- package/dist/crdt/doc/gate.d.ts +8 -9
- package/dist/crdt/doc/gate.js +7 -17
- package/dist/crdt/doc/history.d.ts +87 -14
- package/dist/crdt/doc/history.js +334 -149
- package/dist/crdt/doc/layout.d.ts +0 -1
- package/dist/crdt/doc/layout.js +2 -3
- package/dist/crdt/doc/meta.d.ts +4 -4
- package/dist/crdt/doc/meta.js +10 -21
- package/dist/crdt/doc/moves.d.ts +4 -4
- package/dist/crdt/doc/moves.js +5 -5
- package/dist/crdt/doc/plan.d.ts +2 -0
- package/dist/crdt/doc/plan.js +2 -0
- package/dist/crdt/doc/reads.d.ts +8 -5
- package/dist/crdt/doc/reads.js +49 -50
- package/dist/crdt/doc/seed.d.ts +15 -6
- package/dist/crdt/doc/seed.js +27 -26
- package/dist/crdt/doc/split-merge.d.ts +1 -3
- package/dist/crdt/doc/split-merge.js +4 -5
- package/dist/crdt/doc/steps.d.ts +3 -7
- package/dist/crdt/doc/steps.js +20 -9
- package/dist/crdt/doc/types.d.ts +0 -10
- package/dist/crdt/document.d.ts +32 -115
- package/dist/crdt/document.js +216 -302
- package/dist/crdt/edytor-doc.d.ts +689 -90
- package/dist/crdt/edytor-doc.js +74 -149
- package/dist/crdt/engine-api.d.ts +15 -47
- package/dist/crdt/engine.d.ts +7 -17
- package/dist/crdt/engine.js +9 -19
- package/dist/crdt/flow.d.ts +9 -37
- package/dist/crdt/flow.js +260 -238
- package/dist/crdt/index.d.ts +32 -85
- package/dist/crdt/index.js +21 -47
- package/dist/crdt/operations.d.ts +24 -33
- package/dist/crdt/operations.js +8 -17
- package/dist/crdt/placement/display.d.ts +0 -2
- package/dist/crdt/placement/display.js +0 -15
- package/dist/crdt/placement/model.d.ts +160 -12
- package/dist/crdt/placement/model.js +413 -414
- package/dist/crdt/placement/rank.d.ts +1 -5
- package/dist/crdt/placement/rank.js +28 -38
- package/dist/crdt/props.d.ts +32 -0
- package/dist/crdt/props.js +172 -0
- package/dist/crdt/protocol.d.ts +4 -5
- package/dist/crdt/protocol.js +3 -4
- package/dist/crdt/protocols/awareness.d.ts +3 -7
- package/dist/crdt/protocols/awareness.js +17 -33
- package/dist/crdt/protocols/envelope.d.ts +9 -29
- package/dist/crdt/protocols/envelope.js +8 -25
- package/dist/crdt/protocols/sync.d.ts +15 -30
- package/dist/crdt/protocols/sync.js +27 -89
- package/dist/crdt/providers/bound.d.ts +3 -1
- package/dist/crdt/providers/bound.js +3 -1
- package/dist/crdt/providers/container.d.ts +11 -17
- package/dist/crdt/providers/container.js +39 -27
- package/dist/crdt/providers/index.d.ts +34 -6
- package/dist/crdt/providers/index.js +106 -111
- package/dist/crdt/providers/indexeddb.d.ts +2 -12
- package/dist/crdt/providers/indexeddb.js +29 -90
- package/dist/crdt/providers/room.d.ts +58 -2
- package/dist/crdt/providers/room.js +38 -21
- package/dist/crdt/providers/websocket.d.ts +1 -1
- package/dist/crdt/providers/websocket.js +3 -4
- package/dist/crdt/purge.d.ts +2 -2
- package/dist/crdt/purge.js +69 -6
- package/dist/crdt/rangeDelete.d.ts +4 -42
- package/dist/crdt/rangeDelete.js +7 -6
- package/dist/crdt/restore.d.ts +21 -1
- package/dist/crdt/restore.js +54 -59
- package/dist/crdt/schema.d.ts +2 -2
- package/dist/crdt/schema.js +4 -5
- package/dist/crdt/semantics.d.ts +10 -15
- package/dist/crdt/semantics.js +22 -21
- package/dist/crdt/storage.d.ts +7 -13
- package/dist/crdt/storage.js +10 -24
- package/dist/crdt/structs.d.ts +42 -47
- package/dist/crdt/structs.js +76 -67
- package/dist/crdt/tables.d.ts +9 -0
- package/dist/crdt/tables.js +20 -0
- package/dist/crdt/text/delete-index.d.ts +0 -13
- package/dist/crdt/text/delete-index.js +7 -14
- package/dist/crdt/text/deletes.d.ts +9 -22
- package/dist/crdt/text/deletes.js +11 -74
- package/dist/crdt/text/index/cache.js +3 -3
- package/dist/crdt/text/index/fold.d.ts +1 -2
- package/dist/crdt/text/index/fold.js +15 -10
- package/dist/crdt/text/index/layout.d.ts +0 -10
- package/dist/crdt/text/index/layout.js +6 -20
- package/dist/crdt/text/index/records.js +2 -1
- package/dist/crdt/text/index/report.js +5 -6
- package/dist/crdt/text/index/shared.d.ts +11 -4
- package/dist/crdt/text/index/shared.js +8 -7
- package/dist/crdt/text/index/state.d.ts +3 -33
- package/dist/crdt/text/index/state.js +2 -4
- package/dist/crdt/text/model.d.ts +82 -2
- package/dist/crdt/text/model.js +344 -354
- package/dist/crdt/text/rows.d.ts +0 -2
- package/dist/crdt/text/rows.js +0 -11
- package/dist/crdt/text/runs.d.ts +6 -3
- package/dist/crdt/text/runs.js +132 -137
- package/dist/crdt/text/streams.d.ts +1 -1
- package/dist/crdt/text/streams.js +1 -1
- package/dist/crdt/vendor/yjs/API-NOTES.md +25 -8
- package/dist/crdt/vendor/yjs/UPSTREAM.md +288 -8
- package/dist/crdt/vendor/yjs/dts/global.d.ts +5 -26
- package/dist/crdt/vendor/yjs/dts/index.d.ts +10 -15
- package/dist/crdt/vendor/yjs/dts/structs/AbstractStruct.d.ts +2 -2
- package/dist/crdt/vendor/yjs/dts/structs/Item.d.ts +14 -219
- package/dist/crdt/vendor/yjs/dts/structs/Skip.d.ts +2 -2
- package/dist/crdt/vendor/yjs/dts/utils/BlockSet.d.ts +2 -2
- package/dist/crdt/vendor/yjs/dts/utils/Doc.d.ts +12 -123
- package/dist/crdt/vendor/yjs/dts/utils/ID.d.ts +1 -1
- package/dist/crdt/vendor/yjs/dts/utils/RangeCursor.d.ts +37 -58
- package/dist/crdt/vendor/yjs/dts/utils/Transaction.d.ts +3 -78
- package/dist/crdt/vendor/yjs/dts/utils/UpdateDecoder.d.ts +2 -81
- package/dist/crdt/vendor/yjs/dts/utils/UpdateEncoder.d.ts +2 -74
- package/dist/crdt/vendor/yjs/dts/utils/encoding-helpers.d.ts +4 -4
- package/dist/crdt/vendor/yjs/dts/utils/encoding.d.ts +6 -18
- package/dist/crdt/vendor/yjs/dts/utils/ids.d.ts +12 -237
- package/dist/crdt/vendor/yjs/dts/utils/positions.d.ts +5 -0
- package/dist/crdt/vendor/yjs/dts/utils/redo.d.ts +3 -0
- package/dist/crdt/vendor/yjs/dts/utils/transaction-helpers.d.ts +1 -3
- package/dist/crdt/vendor/yjs/dts/utils/updates.d.ts +6 -23
- package/dist/crdt/vendor/yjs/dts/ynode.d.ts +73 -498
- package/dist/crdt/vendor/yjs/global.d.ts +5 -26
- package/dist/crdt/vendor/yjs/src/index.js +11 -25
- package/dist/crdt/vendor/yjs/src/structs/AbstractStruct.js +1 -1
- package/dist/crdt/vendor/yjs/src/structs/GC.js +1 -1
- package/dist/crdt/vendor/yjs/src/structs/Item.js +10 -372
- package/dist/crdt/vendor/yjs/src/structs/Skip.js +1 -1
- package/dist/crdt/vendor/yjs/src/utils/BlockSet.js +2 -2
- package/dist/crdt/vendor/yjs/src/utils/Doc.js +14 -170
- package/dist/crdt/vendor/yjs/src/utils/ID.js +1 -1
- package/dist/crdt/vendor/yjs/src/utils/RangeCursor.js +61 -128
- package/dist/crdt/vendor/yjs/src/utils/StructStore.js +0 -22
- package/dist/crdt/vendor/yjs/src/utils/Transaction.js +17 -282
- package/dist/crdt/vendor/yjs/src/utils/UpdateDecoder.js +3 -130
- package/dist/crdt/vendor/yjs/src/utils/UpdateEncoder.js +2 -132
- package/dist/crdt/vendor/yjs/src/utils/encoding-helpers.js +4 -4
- package/dist/crdt/vendor/yjs/src/utils/encoding.js +49 -146
- package/dist/crdt/vendor/yjs/src/utils/ids.js +23 -900
- package/dist/crdt/vendor/yjs/src/utils/positions.js +115 -0
- package/dist/crdt/vendor/yjs/src/utils/redo.js +143 -0
- package/dist/crdt/vendor/yjs/src/utils/transaction-helpers.js +10 -127
- package/dist/crdt/vendor/yjs/src/utils/updates.js +7 -50
- package/dist/crdt/vendor/yjs/src/ynode.js +261 -2226
- package/dist/dnd/autoScroll.js +1 -2
- package/dist/{plugins/blockHandles → dnd}/dropIndicator.d.ts +2 -2
- package/dist/{plugins/blockHandles → dnd}/dropIndicator.js +52 -60
- package/dist/{plugins/blockHandles → dnd}/geometry.d.ts +4 -3
- package/dist/{plugins/blockHandles → dnd}/geometry.js +6 -6
- package/dist/dnd/placement.d.ts +200 -0
- package/dist/dnd/placement.js +426 -0
- package/dist/dnd/pragmatic.d.ts +4 -22
- package/dist/dnd/pragmatic.js +7 -26
- package/dist/dnd/track.d.ts +14 -0
- package/dist/dnd/track.js +55 -0
- package/dist/dnd/vendor/pragmatic/UPSTREAM.md +103 -0
- package/dist/dnd/vendor/pragmatic/bind-event-listener/LICENSE +21 -0
- package/dist/dnd/vendor/pragmatic/bind-event-listener/bind-all.js +46 -0
- package/dist/dnd/vendor/pragmatic/bind-event-listener/bind.js +7 -0
- package/dist/dnd/vendor/pragmatic/bind-event-listener/index.js +2 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/LICENSE.md +11 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter-native-data-key.js +6 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter.d.ts +57 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter.js +306 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/adapter.d.ts +8 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/adapter.js +10 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/set-custom-native-drag-preview.d.ts +4 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/set-custom-native-drag-preview.js +6 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/types.d.ts +1 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/get-element-from-point-without-honey-pot.js +12 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/honey-pot-data-attribute.js +3 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/is-honey-pot-element.js +4 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/make-honey-pot-fix.js +333 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/internal-types.d.ts +350 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/dispatch-consumer-event.js +128 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/lifecycle-manager.js +340 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/usage-ledger.js +32 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-adapter.js +59 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-drop-target.js +288 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-monitor.js +85 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/combine.js +6 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/set-custom-native-drag-preview.d.ts +36 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/set-custom-native-drag-preview.js +153 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/types.d.ts +16 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/once.js +13 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/add-attribute.js +7 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/android.js +10 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/count-events-for-safari.js +104 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-from-another-window.js +16 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-leaving-window-in-safari.js +12 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-leaving-window.js +55 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/detect-broken-drag.js +48 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/get-input.js +14 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/is-firefox.js +13 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/is-safari.js +19 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/max-z-index.js +3 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/media-types/text-media-type.js +6 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/media-types/url-media-type.js +6 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/popover-reset-styles.js +40 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/supports-popover.js +16 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/LICENSE.md +11 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/entry-point/element.d.ts +4 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/entry-point/element.js +8 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/internal-types.d.ts +50 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/data-attributes.js +9 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/get-scroll-by.js +117 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/make-api.js +90 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/try-scroll.js +183 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/axis.js +22 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/can-scroll-on-edge.js +17 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/configuration.js +49 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/edges.js +9 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/engagement-history.js +43 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-over-element-hitbox.js +50 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-percentage-in-range.js +19 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-scroll-change.js +106 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/is-axis-allowed.js +3 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/is-within.js +11 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/scheduler.js +104 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/side.js +6 -0
- package/dist/dnd/vendor/pragmatic/raf-schd/LICENSE +21 -0
- package/dist/dnd/vendor/pragmatic/raf-schd/raf-schd.esm.js +34 -0
- package/dist/edytor.svelte.d.ts +46 -63
- package/dist/edytor.svelte.js +126 -181
- package/dist/events/beforeInputCommands.d.ts +6 -11
- package/dist/events/beforeInputCommands.js +189 -181
- package/dist/events/beforeInputDeleteCommands.d.ts +20 -1
- package/dist/events/beforeInputDeleteCommands.js +153 -204
- package/dist/events/domTextOffset.d.ts +9 -9
- package/dist/events/domTextOffset.js +20 -48
- package/dist/events/events.utils.d.ts +0 -2
- package/dist/events/events.utils.js +0 -4
- package/dist/events/nativeInteractiveControl.d.ts +13 -13
- package/dist/events/nativeInteractiveControl.js +28 -56
- package/dist/events/onBeforeInput.d.ts +6 -1
- package/dist/events/onBeforeInput.js +207 -331
- package/dist/events/onCopy.js +1 -5
- package/dist/events/onDrop.d.ts +7 -1
- package/dist/events/onDrop.js +64 -78
- package/dist/events/onFocus.d.ts +9 -4
- package/dist/events/onFocus.js +45 -67
- package/dist/events/onInput.d.ts +8 -4
- package/dist/events/onInput.js +34 -147
- package/dist/events/onKeyDown.js +55 -122
- package/dist/events/onPaste.d.ts +14 -1
- package/dist/events/onPaste.js +51 -76
- package/dist/index.d.ts +11 -15
- package/dist/index.js +3 -3
- package/dist/kinds.d.ts +4 -6
- package/dist/kinds.js +28 -27
- package/dist/labels.d.ts +83 -320
- package/dist/labels.js +181 -408
- package/dist/plugins/Chrome.svelte +29 -0
- package/dist/plugins/Chrome.svelte.d.ts +32 -0
- package/dist/plugins/Control.svelte +23 -0
- package/dist/plugins/Control.svelte.d.ts +30 -0
- package/dist/plugins/anchored.svelte.d.ts +47 -0
- package/dist/plugins/anchored.svelte.js +73 -0
- package/dist/plugins/arrowMove/arrowMove.d.ts +2 -1
- package/dist/plugins/arrowMove/arrowMove.js +9 -5
- package/dist/plugins/bands.svelte.d.ts +57 -0
- package/dist/plugins/bands.svelte.js +95 -0
- package/dist/plugins/blockHandles/BlockHandle.svelte +14 -154
- package/dist/plugins/blockHandles/BlockHandle.svelte.d.ts +2 -2
- package/dist/plugins/blockHandles/BlockHandleController.svelte.d.ts +21 -196
- package/dist/plugins/blockHandles/BlockHandleController.svelte.js +158 -573
- package/dist/plugins/blockHandles/BlockHandles.svelte +15 -23
- package/dist/plugins/blockHandles/BlockHandles.svelte.d.ts +2 -2
- package/dist/plugins/blockHandles/blockHandlesPlugin.d.ts +25 -39
- package/dist/plugins/blockHandles/blockHandlesPlugin.js +130 -185
- package/dist/plugins/blockHandles/dragPreview.d.ts +8 -6
- package/dist/plugins/blockHandles/dragPreview.js +18 -16
- package/dist/plugins/blockMenu/BlockMenuController.svelte.d.ts +28 -38
- package/dist/plugins/blockMenu/BlockMenuController.svelte.js +116 -183
- package/dist/plugins/blockMenu/blockMenuPlugin.d.ts +1 -3
- package/dist/plugins/blockMenu/blockMenuPlugin.js +12 -29
- package/dist/plugins/brand.d.ts +8 -0
- package/dist/plugins/brand.js +8 -0
- package/dist/plugins/chrome.d.ts +45 -38
- package/dist/plugins/chrome.js +59 -36
- package/dist/plugins/code/CodeHeader.svelte +8 -38
- package/dist/plugins/code/CodePlugin.svelte +53 -56
- package/dist/plugins/code/CodePlugin.svelte.d.ts +0 -2
- package/dist/plugins/code/LanguageMenu.svelte +16 -125
- package/dist/plugins/code/LanguageMenu.svelte.d.ts +2 -1
- package/dist/plugins/code/code.css +5 -117
- package/dist/plugins/code/header.svelte.d.ts +2 -11
- package/dist/plugins/code/header.svelte.js +11 -38
- package/dist/plugins/code/languageMenu.svelte.d.ts +12 -32
- package/dist/plugins/code/languageMenu.svelte.js +30 -160
- package/dist/plugins/code/languages.d.ts +9 -22
- package/dist/plugins/code/languages.js +39 -128
- package/dist/plugins/columns/ColumnResize.svelte +16 -27
- package/dist/plugins/columns/ColumnResize.svelte.d.ts +1 -1
- package/dist/plugins/columns/ColumnsPlugin.svelte +46 -78
- package/dist/plugins/columns/ColumnsPlugin.svelte.d.ts +0 -12
- package/dist/plugins/columns/columns.css +7 -26
- package/dist/plugins/columns/gaps.d.ts +7 -5
- package/dist/plugins/columns/gaps.js +11 -6
- package/dist/plugins/columns/resize.svelte.d.ts +17 -54
- package/dist/plugins/columns/resize.svelte.js +80 -173
- package/dist/plugins/comments/CommentsController.svelte.d.ts +1 -4
- package/dist/plugins/comments/CommentsController.svelte.js +14 -25
- package/dist/plugins/comments/CommentsSidebar.svelte +82 -431
- package/dist/plugins/comments/CommentsSidebar.svelte.d.ts +4 -2
- package/dist/plugins/comments/commentsPlugin.d.ts +25 -9
- package/dist/plugins/comments/commentsPlugin.js +12 -10
- package/dist/plugins/equation/EquationEditor.svelte +16 -130
- package/dist/plugins/equation/EquationEditor.svelte.d.ts +1 -2
- package/dist/plugins/equation/EquationPlugin.svelte +109 -172
- package/dist/plugins/equation/EquationPlugin.svelte.d.ts +3 -2
- package/dist/plugins/equation/EquationView.svelte +20 -11
- package/dist/plugins/equation/equation.css +7 -0
- package/dist/plugins/equation/equation.svelte.d.ts +37 -24
- package/dist/plugins/equation/equation.svelte.js +20 -94
- package/dist/plugins/equation/katex.js +6 -9
- package/dist/plugins/fileDrop.d.ts +28 -0
- package/dist/plugins/fileDrop.js +116 -0
- package/dist/plugins/find/FindController.svelte.d.ts +8 -13
- package/dist/plugins/find/FindController.svelte.js +34 -55
- package/dist/plugins/find/findPlugin.d.ts +4 -8
- package/dist/plugins/find/findPlugin.js +29 -9
- package/dist/plugins/image/ImageChrome.svelte +6 -167
- package/dist/plugins/image/ImageChrome.svelte.d.ts +0 -2
- package/dist/plugins/image/ImagePlugin.svelte +71 -151
- package/dist/plugins/image/ImagePlugin.svelte.d.ts +12 -41
- package/dist/plugins/image/ImageToolbarHost.svelte +37 -0
- package/dist/plugins/image/ImageToolbarHost.svelte.d.ts +9 -0
- package/dist/plugins/image/controls.svelte.d.ts +6 -36
- package/dist/plugins/image/controls.svelte.js +43 -212
- package/dist/plugins/image/image.css +17 -0
- package/dist/plugins/image/image.d.ts +0 -5
- package/dist/plugins/image/image.js +0 -3
- package/dist/plugins/image/toolbar.svelte.d.ts +69 -0
- package/dist/plugins/image/toolbar.svelte.js +145 -0
- package/dist/plugins/index.d.ts +30 -26
- package/dist/plugins/index.js +28 -22
- package/dist/plugins/list.svelte.d.ts +128 -0
- package/dist/plugins/list.svelte.js +217 -0
- package/dist/plugins/markdownShortcuts.d.ts +1 -1
- package/dist/plugins/markdownShortcuts.js +10 -9
- package/dist/plugins/marquee/MarqueeBox.svelte +3 -20
- package/dist/plugins/marquee/MarqueeBox.svelte.d.ts +1 -1
- package/dist/plugins/marquee/MarqueeController.svelte.d.ts +0 -2
- package/dist/plugins/marquee/MarqueeController.svelte.js +20 -23
- package/dist/plugins/marquee/marquee.js +4 -21
- package/dist/plugins/marquee/marqueePlugin.d.ts +4 -3
- package/dist/plugins/marquee/marqueePlugin.js +16 -15
- package/dist/plugins/media/AudioPlugin.svelte +13 -88
- package/dist/plugins/media/AudioPlugin.svelte.d.ts +11 -4
- package/dist/plugins/media/BookmarkPlugin.svelte +113 -120
- package/dist/plugins/media/BookmarkPlugin.svelte.d.ts +10 -15
- package/dist/plugins/media/EmbedPlugin.svelte +82 -86
- package/dist/plugins/media/EmbedPlugin.svelte.d.ts +11 -17
- package/dist/plugins/media/EmptySlot.svelte +44 -0
- package/dist/plugins/media/EmptySlot.svelte.d.ts +25 -0
- package/dist/plugins/media/FilePlugin.svelte +45 -113
- package/dist/plugins/media/FilePlugin.svelte.d.ts +21 -4
- package/dist/plugins/media/MediaEmpty.svelte +51 -90
- package/dist/plugins/media/MediaEmpty.svelte.d.ts +26 -10
- package/dist/plugins/media/SourceBlock.svelte +200 -0
- package/dist/plugins/media/SourceBlock.svelte.d.ts +34 -0
- package/dist/plugins/media/UploadPreview.svelte +32 -0
- package/dist/plugins/media/UploadPreview.svelte.d.ts +11 -0
- package/dist/plugins/media/VideoPlugin.svelte +14 -97
- package/dist/plugins/media/VideoPlugin.svelte.d.ts +12 -5
- package/dist/plugins/media/empty.svelte.d.ts +47 -46
- package/dist/plugins/media/empty.svelte.js +67 -60
- package/dist/plugins/media/media.d.ts +97 -44
- package/dist/plugins/media/media.js +77 -99
- package/dist/plugins/media/upload.css +23 -0
- package/dist/plugins/media/urlPaste.svelte.d.ts +6 -37
- package/dist/plugins/media/urlPaste.svelte.js +32 -102
- package/dist/plugins/mention/MentionPlugin.svelte +84 -126
- package/dist/plugins/mention/MentionPlugin.svelte.d.ts +17 -27
- package/dist/plugins/mention/mention.css +6 -0
- package/dist/plugins/page/PageLink.svelte +54 -38
- package/dist/plugins/page/PagePlugin.svelte +20 -18
- package/dist/plugins/page/PagePlugin.svelte.d.ts +2 -4
- package/dist/plugins/page/page.d.ts +35 -9
- package/dist/plugins/page/page.js +3 -4
- package/dist/plugins/pageLink/PageLinkPlugin.svelte +154 -109
- package/dist/plugins/pageLink/PageLinkPlugin.svelte.d.ts +19 -26
- package/dist/plugins/pageLink/pageLink.css +6 -0
- package/dist/plugins/planned.d.ts +10 -0
- package/dist/plugins/planned.js +12 -0
- package/dist/plugins/richtext/CalloutIcon.svelte +13 -26
- package/dist/plugins/richtext/CalloutIconPicker.svelte +26 -0
- package/dist/plugins/richtext/CalloutIconPicker.svelte.d.ts +9 -0
- package/dist/plugins/richtext/EmptyBody.svelte +13 -20
- package/dist/plugins/richtext/RichTextControl.svelte +39 -0
- package/dist/plugins/richtext/RichTextControl.svelte.d.ts +8 -0
- package/dist/plugins/richtext/RichTextPlugin.svelte +174 -183
- package/dist/plugins/richtext/RichTextPlugin.svelte.d.ts +34 -34
- package/dist/plugins/richtext/TodoCheckbox.svelte +10 -21
- package/dist/plugins/richtext/TodoCheckbox.svelte.d.ts +0 -2
- package/dist/plugins/richtext/body.js +2 -2
- package/dist/plugins/richtext/calloutIcons.svelte.d.ts +50 -55
- package/dist/plugins/richtext/calloutIcons.svelte.js +86 -174
- package/dist/plugins/richtext/callouts.d.ts +15 -0
- package/dist/plugins/richtext/callouts.js +23 -0
- package/dist/plugins/richtext/controls.svelte.d.ts +110 -0
- package/dist/plugins/richtext/controls.svelte.js +126 -0
- package/dist/plugins/richtext/richTextOperations.js +37 -28
- package/dist/plugins/richtext/richtext.css +6 -0
- package/dist/plugins/slashMenu/SlashMenuController.svelte.d.ts +2 -14
- package/dist/plugins/slashMenu/SlashMenuController.svelte.js +34 -71
- package/dist/plugins/slashMenu/slashMenuPlugin.d.ts +9 -26
- package/dist/plugins/slashMenu/slashMenuPlugin.js +27 -68
- package/dist/plugins/suggestions/SuggestionBars.svelte +27 -84
- package/dist/plugins/suggestions/SuggestionBars.svelte.d.ts +9 -3
- package/dist/plugins/suggestions/suggestionsPlugin.d.ts +10 -18
- package/dist/plugins/suggestions/suggestionsPlugin.js +9 -24
- package/dist/plugins/table/TableChrome.svelte +40 -124
- package/dist/plugins/table/TablePlugin.svelte +106 -168
- package/dist/plugins/table/TablePlugin.svelte.d.ts +0 -4
- package/dist/plugins/table/chrome.svelte.d.ts +38 -141
- package/dist/plugins/table/chrome.svelte.js +340 -589
- package/dist/plugins/table/ops.d.ts +47 -0
- package/dist/plugins/table/ops.js +233 -0
- package/dist/plugins/table/table.css +16 -152
- package/dist/plugins/table/table.d.ts +15 -14
- package/dist/plugins/table/table.js +22 -16
- package/dist/plugins/toc/TableOfContents.svelte +32 -38
- package/dist/plugins/toc/TableOfContents.svelte.d.ts +1 -5
- package/dist/plugins/toc/TocPlugin.svelte +22 -22
- package/dist/plugins/toc/TocPlugin.svelte.d.ts +4 -6
- package/dist/plugins/toc/toc.d.ts +41 -10
- package/dist/plugins/toc/toc.js +2 -3
- package/dist/plugins/toolbar/ToolbarController.svelte.d.ts +4 -68
- package/dist/plugins/toolbar/ToolbarController.svelte.js +63 -89
- package/dist/plugins/toolbar/toolbarPlugin.d.ts +8 -18
- package/dist/plugins/toolbar/toolbarPlugin.js +28 -43
- package/dist/plugins/triggers/TriggerController.svelte.d.ts +4 -68
- package/dist/plugins/triggers/TriggerController.svelte.js +48 -129
- package/dist/plugins/triggers/place.d.ts +0 -9
- package/dist/plugins/triggers/place.js +1 -17
- package/dist/plugins/triggers/triggers.d.ts +31 -9
- package/dist/plugins/triggers/triggers.js +82 -62
- package/dist/plugins/uploads.svelte.d.ts +55 -24
- package/dist/plugins/uploads.svelte.js +123 -50
- package/dist/plugins.d.ts +187 -66
- package/dist/selection/domSelection.d.ts +13 -4
- package/dist/selection/domSelection.js +110 -183
- package/dist/selection/pointer.svelte.d.ts +8 -10
- package/dist/selection/pointer.svelte.js +32 -73
- package/dist/selection/replaceSelection.d.ts +21 -22
- package/dist/selection/replaceSelection.js +60 -69
- package/dist/selection/selection.svelte.d.ts +5 -73
- package/dist/selection/selection.svelte.js +224 -542
- package/dist/selection/selection.utils.d.ts +34 -11
- package/dist/selection/selection.utils.js +128 -247
- package/dist/selection/visibility.d.ts +3 -8
- package/dist/selection/visibility.js +7 -5
- package/dist/session/announcer.svelte.d.ts +2 -1
- package/dist/session/announcer.svelte.js +7 -3
- package/dist/session/attempt.d.ts +43 -39
- package/dist/session/attempt.js +62 -55
- package/dist/session/bindings.js +117 -145
- package/dist/session/commands.d.ts +47 -22
- package/dist/session/commands.js +208 -208
- package/dist/session/composition.svelte.d.ts +2 -4
- package/dist/session/composition.svelte.js +55 -65
- package/dist/session/editing/text.d.ts +6 -0
- package/dist/session/editing/text.js +17 -3
- package/dist/session/handles.d.ts +10 -1
- package/dist/session/handles.js +28 -0
- package/dist/session/history.d.ts +0 -4
- package/dist/session/history.js +16 -21
- package/dist/session/inputRules.d.ts +6 -3
- package/dist/session/inputRules.js +78 -83
- package/dist/session/keymap.d.ts +1 -6
- package/dist/session/keymap.js +17 -20
- package/dist/session/moves.d.ts +43 -10
- package/dist/session/moves.js +101 -59
- package/dist/session/navigation.d.ts +10 -2
- package/dist/session/navigation.js +140 -172
- package/dist/session/ports.d.ts +2 -7
- package/dist/session/props.d.ts +25 -25
- package/dist/session/props.js +62 -159
- package/dist/session/selection.d.ts +4 -3
- package/dist/session/selection.js +5 -0
- package/dist/session/suggestions.svelte.d.ts +1 -1
- package/dist/session/suggestions.svelte.js +42 -47
- package/dist/session/uploads.d.ts +29 -0
- package/dist/session/uploads.js +10 -0
- package/dist/session/virtual.d.ts +3 -3
- package/dist/session/virtual.js +18 -40
- package/dist/surface/attributes.d.ts +1 -0
- package/dist/surface/attributes.js +3 -26
- package/dist/surface/cells.d.ts +5 -0
- package/dist/surface/cells.js +5 -0
- package/dist/surface/lines.d.ts +2 -2
- package/dist/surface/lines.js +1 -1
- package/dist/surface/observer.svelte.d.ts +3 -20
- package/dist/surface/observer.svelte.js +52 -72
- package/dist/surface/overlay.d.ts +41 -3
- package/dist/surface/overlay.js +92 -37
- package/dist/surface/pin.svelte.d.ts +5 -0
- package/dist/surface/pin.svelte.js +5 -0
- package/dist/surface/projector.svelte.d.ts +4 -6
- package/dist/surface/projector.svelte.js +42 -69
- package/dist/text/text.svelte.d.ts +14 -40
- package/dist/text/text.svelte.js +35 -51
- package/dist/text/wordBoundary.d.ts +19 -0
- package/dist/text/wordBoundary.js +29 -44
- package/dist/themes/notion.css +272 -106
- package/dist/utils/json.d.ts +3 -1
- package/dist/utils/json.js +52 -51
- package/dist/utils/listen.d.ts +8 -0
- package/dist/utils/listen.js +19 -0
- package/package.json +4 -5
- package/dist/block/block.utils.d.ts +0 -340
- package/dist/block/block.utils.js +0 -356
- package/dist/collaboration/history/HistoryPanel.svelte +0 -554
- package/dist/collaboration/history/HistoryPanel.svelte.d.ts +0 -7
- package/dist/collaboration/history/panel.d.ts +0 -61
- package/dist/collaboration/history/panel.js +0 -3
- package/dist/components/SuggestionRanges.svelte +0 -58
- package/dist/components/SuggestionRanges.svelte.d.ts +0 -7
- package/dist/crdt/doc/table.d.ts +0 -21
- package/dist/crdt/doc/table.js +0 -288
- package/dist/crdt/migration/generation.d.ts +0 -58
- package/dist/crdt/migration/generation.js +0 -70
- package/dist/crdt/migration/legacy-schema.d.ts +0 -61
- package/dist/crdt/migration/legacy-schema.js +0 -151
- package/dist/crdt/migration/migrate.d.ts +0 -56
- package/dist/crdt/migration/migrate.js +0 -227
- package/dist/crdt/nodes.d.ts +0 -121
- package/dist/crdt/nodes.js +0 -56
- package/dist/crdt/text/index/checks.d.ts +0 -15
- package/dist/crdt/text/index/checks.js +0 -156
- package/dist/crdt/vendor/yjs/dts/utils/EventHandler.d.ts +0 -17
- package/dist/crdt/vendor/yjs/dts/utils/RelativePosition.d.ts +0 -80
- package/dist/crdt/vendor/yjs/dts/utils/UndoManager.d.ts +0 -205
- package/dist/crdt/vendor/yjs/dts/utils/YEvent.d.ts +0 -93
- package/dist/crdt/vendor/yjs/dts/utils/meta.d.ts +0 -25
- package/dist/crdt/vendor/yjs/dts/utils/renderer-helpers.d.ts +0 -98
- package/dist/crdt/vendor/yjs/dts/utils/schemas.d.ts +0 -2
- package/dist/crdt/vendor/yjs/src/utils/EventHandler.js +0 -75
- package/dist/crdt/vendor/yjs/src/utils/RelativePosition.js +0 -301
- package/dist/crdt/vendor/yjs/src/utils/UndoManager.js +0 -554
- package/dist/crdt/vendor/yjs/src/utils/YEvent.js +0 -158
- package/dist/crdt/vendor/yjs/src/utils/meta.js +0 -74
- package/dist/crdt/vendor/yjs/src/utils/renderer-helpers.js +0 -186
- package/dist/crdt/vendor/yjs/src/utils/schemas.js +0 -3
- package/dist/edytor.utils.d.ts +0 -50
- package/dist/edytor.utils.js +0 -67
- package/dist/plugins/blockMenu/BlockMenu.svelte +0 -335
- package/dist/plugins/blockMenu/BlockMenu.svelte.d.ts +0 -9
- package/dist/plugins/find/FindBar.svelte +0 -170
- package/dist/plugins/find/FindBar.svelte.d.ts +0 -9
- package/dist/plugins/find/FindHighlights.svelte +0 -75
- package/dist/plugins/find/FindHighlights.svelte.d.ts +0 -9
- package/dist/plugins/icons.d.ts +0 -2
- package/dist/plugins/icons.js +0 -63
- package/dist/plugins/image/ImageEmpty.svelte +0 -93
- package/dist/plugins/image/ImageEmpty.svelte.d.ts +0 -15
- package/dist/plugins/image/empty.svelte.d.ts +0 -56
- package/dist/plugins/image/empty.svelte.js +0 -83
- package/dist/plugins/keepInView.d.ts +0 -4
- package/dist/plugins/keepInView.js +0 -6
- package/dist/plugins/media/UrlPasteMenu.svelte +0 -92
- package/dist/plugins/media/UrlPasteMenu.svelte.d.ts +0 -9
- package/dist/plugins/richtext/CalloutIconMenu.svelte +0 -98
- package/dist/plugins/richtext/CalloutIconMenu.svelte.d.ts +0 -9
- package/dist/plugins/richtext/labels.d.ts +0 -9
- package/dist/plugins/richtext/labels.js +0 -7
- package/dist/plugins/slashMenu/SlashMenu.svelte +0 -276
- package/dist/plugins/slashMenu/SlashMenu.svelte.d.ts +0 -11
- package/dist/plugins/table/dragPreview.d.ts +0 -29
- package/dist/plugins/table/dragPreview.js +0 -103
- package/dist/plugins/toolbar/LinkCard.svelte +0 -122
- package/dist/plugins/toolbar/LinkCard.svelte.d.ts +0 -9
- package/dist/plugins/toolbar/Toolbar.svelte +0 -349
- package/dist/plugins/toolbar/Toolbar.svelte.d.ts +0 -9
- package/dist/plugins/triggers/TriggerMenu.svelte +0 -135
- package/dist/plugins/triggers/TriggerMenu.svelte.d.ts +0 -7
- package/dist/text/deltas.d.ts +0 -22
- package/dist/text/deltas.js +0 -46
- package/dist/text/text.utils.d.ts +0 -45
- package/dist/text/text.utils.js +0 -199
- /package/dist/{plugins/columns → dnd}/stacking.d.ts +0 -0
- /package/dist/{plugins/columns → dnd}/stacking.js +0 -0
|
@@ -1,356 +0,0 @@
|
|
|
1
|
-
import { id } from '../utils.js';
|
|
2
|
-
import { cloneJson, jsonBlockToSpec, jsonContentToItems } from '../utils/json.js';
|
|
3
|
-
import { InlineBlock } from './inlineBlock.svelte.js';
|
|
4
|
-
/**
|
|
5
|
-
* Bind an operation onto its wrapper: every call is dispatched as a command
|
|
6
|
-
* (`session/commands.ts`): admission, hooks before any write (on the command
|
|
7
|
-
* and, when `prepare` answers one document plan, on each planned step), one
|
|
8
|
-
* transaction, normalization, the result. `func` receives the prepared plan
|
|
9
|
-
* and answers the op's document result; `resolve` turns it into wrappers
|
|
10
|
-
* after the commit patched them.
|
|
11
|
-
*/
|
|
12
|
-
export function batch(operation, func, prepare, resolve) {
|
|
13
|
-
return function (...[payload]) {
|
|
14
|
-
const out = this.edytor.dispatcher.dispatch(operation, payload, { block: this }, (p, plan) => func.call(this, p, plan), prepare && ((p) => prepare.call(this, p)));
|
|
15
|
-
const value = resolve ? resolve.call(this, out, payload) : out;
|
|
16
|
-
return this.edytor.dispatcher.answer(value);
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* The handle of block `id` (null: refused at preparation, or gone; undefined:
|
|
21
|
-
* the command did not run). Inside an outer transaction too: the index shows
|
|
22
|
-
* the block that transaction created.
|
|
23
|
-
*/
|
|
24
|
-
export function blockOf(id) {
|
|
25
|
-
return id === undefined ? undefined : (id && this.edytor.idToBlock.get(id)) || null;
|
|
26
|
-
}
|
|
27
|
-
const REFUSED = { status: 'refused', ids: [] };
|
|
28
|
-
/**
|
|
29
|
-
* An op's body over its prepared plan: write it and request normalization of
|
|
30
|
-
* the blocks it touched (captured before the write). Answers the applied
|
|
31
|
-
* plan, or null when it was refused.
|
|
32
|
-
*/
|
|
33
|
-
const applyPlan = (block, plan, touched) => {
|
|
34
|
-
if (!('writes' in plan))
|
|
35
|
-
return null;
|
|
36
|
-
block.edytor.facade.apply(plan);
|
|
37
|
-
for (const parent of touched)
|
|
38
|
-
parent?.normalizeChildren();
|
|
39
|
-
return plan;
|
|
40
|
-
};
|
|
41
|
-
/** The document's name for `block`'s child list: `null` for the root. */
|
|
42
|
-
const ref = (block) => (block.isRoot ? null : block.id);
|
|
43
|
-
/**
|
|
44
|
-
* Dispatch `operation` on `block` as the one plan `prepare` answers (a
|
|
45
|
-
* composed command: hooks see it and each planned step, one transaction).
|
|
46
|
-
* `then` runs in that transaction once the plan applied, with the payload
|
|
47
|
-
* hooks left. Answers the applied plan, or null when refused.
|
|
48
|
-
*/
|
|
49
|
-
export const dispatchPlan = (block, operation, payload, prepare, touched = [block.parent], then) => block.edytor.dispatcher.dispatch(operation, payload, { block }, (p, plan = prepare(p)) => {
|
|
50
|
-
const applied = applyPlan(block, plan, touched);
|
|
51
|
-
if (applied)
|
|
52
|
-
then?.(p);
|
|
53
|
-
return applied;
|
|
54
|
-
}, prepare) ?? null;
|
|
55
|
-
/** One child at `index` (a default-kind block without `block`); see {@link addChildBlocks}. */
|
|
56
|
-
export function addChildBlock({ block, index }) {
|
|
57
|
-
const blocks = [block || { type: this.edytor.defaultChild(this) }];
|
|
58
|
-
return addChildBlocks.call(this, { blocks, index })[0];
|
|
59
|
-
}
|
|
60
|
-
/** Children at `index`, clamped to the child list (at its end by default); ids kept or minted. */
|
|
61
|
-
export function addChildBlocks({ blocks, index = this.children.length }) {
|
|
62
|
-
index = Math.max(0, Math.min(index, this.children.length));
|
|
63
|
-
const specs = blocks.map((block) => ({ ...block, id: block.id ?? id('b') }));
|
|
64
|
-
this.insertChildren(index, specs);
|
|
65
|
-
this.normalizeChildren();
|
|
66
|
-
return specs.map((spec) => this.edytor.idToBlock.block(spec.id));
|
|
67
|
-
}
|
|
68
|
-
/** Insert `block` as a sibling of `this`, `after` it or before it. */
|
|
69
|
-
const prepareSibling = (self, block, after) => self.parent
|
|
70
|
-
? self.edytor.facade.prepare.insertBlocks({ parent: ref(self.parent), index: self.index + (after ? 1 : 0) }, [jsonBlockToSpec(block)])
|
|
71
|
-
: REFUSED;
|
|
72
|
-
export function prepareInsertAfter({ block }) {
|
|
73
|
-
return prepareSibling(this, block, true);
|
|
74
|
-
}
|
|
75
|
-
export function prepareInsertBefore({ block }) {
|
|
76
|
-
return prepareSibling(this, block, false);
|
|
77
|
-
}
|
|
78
|
-
/** Apply `plan` under `this`'s parent; the id it answers first (inserted or surviving). */
|
|
79
|
-
function resultOf(plan) {
|
|
80
|
-
return applyPlan(this, plan, [this.parent])?.ids[0] ?? null;
|
|
81
|
-
}
|
|
82
|
-
export function insertBlockAfter(payload, plan = prepareInsertAfter.call(this, payload)) {
|
|
83
|
-
return resultOf.call(this, plan);
|
|
84
|
-
}
|
|
85
|
-
export function insertBlockBefore(payload, plan = prepareInsertBefore.call(this, payload)) {
|
|
86
|
-
return resultOf.call(this, plan);
|
|
87
|
-
}
|
|
88
|
-
export function prepareDuplicate() {
|
|
89
|
-
if (!this.parent || !this.isInTree)
|
|
90
|
-
return REFUSED;
|
|
91
|
-
return this.edytor.facade.prepare.duplicateBlock(this.id, (_, kind) => id(kind === 'block' ? 'b' : 'i'));
|
|
92
|
-
}
|
|
93
|
-
export function duplicateBlock(_ = {}, plan = prepareDuplicate.call(this)) {
|
|
94
|
-
return resultOf.call(this, plan);
|
|
95
|
-
}
|
|
96
|
-
export function prepareSplit({ index, text }) {
|
|
97
|
-
if (!text || !this.parent || !this.model)
|
|
98
|
-
return REFUSED;
|
|
99
|
-
// The sibling takes its parent's default child type and no data — a
|
|
100
|
-
// list-like kind (`continues`) keeps its own, with its first preset's data.
|
|
101
|
-
const { continues, presets } = this.definition;
|
|
102
|
-
const tail = continues
|
|
103
|
-
? { type: this.type, data: { ...(presets?.[0]?.data ?? {}) } }
|
|
104
|
-
: { type: this.edytor.defaultChild(this.parent), data: {} };
|
|
105
|
-
const offset = text.segStart + index;
|
|
106
|
-
return this.edytor.facade.prepare.splitBlock(this.model.id, offset, id('b'), tail);
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* A split whose children stay with the block (a container's header): the
|
|
110
|
-
* tail, of `tail`'s kind, becomes the block's first child (`child`) or its
|
|
111
|
-
* next sibling. One plan: the document's split step, placed here, without
|
|
112
|
-
* the move that gives the tail the children.
|
|
113
|
-
*/
|
|
114
|
-
export function prepareSplitKeepingChildren({ index, text }, tail, child) {
|
|
115
|
-
if (!text || !this.parent || !this.model)
|
|
116
|
-
return REFUSED;
|
|
117
|
-
const { facade } = this.edytor;
|
|
118
|
-
const born = id('b');
|
|
119
|
-
const split = facade.prepare.splitBlock(this.model.id, text.segStart + index, born, tail);
|
|
120
|
-
const step = 'writes' in split ? split.writes[0] : undefined;
|
|
121
|
-
if (step?.op !== 'splitBlock')
|
|
122
|
-
return REFUSED;
|
|
123
|
-
if (!child)
|
|
124
|
-
return facade.compose({ ...split, writes: [step] });
|
|
125
|
-
// The rank of a first child, and the document's answer on placing the kind there.
|
|
126
|
-
const slot = facade.prepare.insertBlocks({ parent: this.model.id, index: 0 }, [
|
|
127
|
-
{ id: born, type: tail.type }
|
|
128
|
-
]);
|
|
129
|
-
const first = 'writes' in slot ? slot.writes[0] : undefined;
|
|
130
|
-
if (first?.op !== 'insertBlocks')
|
|
131
|
-
return REFUSED;
|
|
132
|
-
const placed = { ...step, parent: this.model.id, rank: first.ranks[0] };
|
|
133
|
-
return facade.compose({ ...split, writes: [placed] });
|
|
134
|
-
}
|
|
135
|
-
export function splitBlock(payload, plan = prepareSplit.call(this, payload)) {
|
|
136
|
-
return applyPlan(this, plan, [this.parent])?.effect.creates[0] ?? null;
|
|
137
|
-
}
|
|
138
|
-
export function prepareRemove({ keepChildren = true } = {}) {
|
|
139
|
-
if (!this.parent || !this.model || !this.isInTree)
|
|
140
|
-
return REFUSED;
|
|
141
|
-
return this.edytor.facade.prepare.deleteBlock(this.model.id, { keepChildren });
|
|
142
|
-
}
|
|
143
|
-
export function removeBlock(payload = {}, plan = prepareRemove.call(this, payload)) {
|
|
144
|
-
applyPlan(this, plan, [this.parent]);
|
|
145
|
-
}
|
|
146
|
-
export function prepareMergeBackward() {
|
|
147
|
-
return this.parent && this.model
|
|
148
|
-
? this.edytor.facade.prepare.mergeBackward(this.model.id)
|
|
149
|
-
: REFUSED;
|
|
150
|
-
}
|
|
151
|
-
export function prepareMergeForward() {
|
|
152
|
-
return this.parent && this.model
|
|
153
|
-
? this.edytor.facade.prepare.mergeForward(this.model.id)
|
|
154
|
-
: REFUSED;
|
|
155
|
-
}
|
|
156
|
-
export function mergeBlockBackward(_ = {}, plan = prepareMergeBackward.call(this)) {
|
|
157
|
-
return resultOf.call(this, plan);
|
|
158
|
-
}
|
|
159
|
-
export function mergeBlockForward(_ = {}, plan = prepareMergeForward.call(this)) {
|
|
160
|
-
return resultOf.call(this, plan);
|
|
161
|
-
}
|
|
162
|
-
/** The destination parent a view-tree path (`[...parentPath, index]`) names. */
|
|
163
|
-
const parentAt = (edytor, path) => {
|
|
164
|
-
let parent = edytor.root;
|
|
165
|
-
for (const index of path.slice(0, -1))
|
|
166
|
-
parent = parent?.children[index];
|
|
167
|
-
return [parent, path.at(-1)];
|
|
168
|
-
};
|
|
169
|
-
export function prepareMove({ path }) {
|
|
170
|
-
// Admission: the caller path is a view-tree address — validate its shape
|
|
171
|
-
// and resolve it to the destination PARENT block + index. Structural
|
|
172
|
-
// permission is the document's (`canPlace`: island seals, void/island
|
|
173
|
-
// destinations, moves into the block's own subtree).
|
|
174
|
-
if (!path.length || path.some((p) => isNaN(p) || p < 0) || !this.parent)
|
|
175
|
-
return REFUSED;
|
|
176
|
-
const [parent, index] = parentAt(this.edytor, path);
|
|
177
|
-
if (!parent || !this.model)
|
|
178
|
-
return REFUSED;
|
|
179
|
-
return this.edytor.facade.prepare.moveBlock(this.model.id, { parent: ref(parent), index });
|
|
180
|
-
}
|
|
181
|
-
export function moveBlock(payload, plan = prepareMove.call(this, payload)) {
|
|
182
|
-
return applyPlan(this, plan, [this.parent, parentAt(this.edytor, payload.path)[0]]) ? this : null;
|
|
183
|
-
}
|
|
184
|
-
/**
|
|
185
|
-
* Grouped move — the operation-layer counterpart of `moveBlock` for
|
|
186
|
-
* drags/multi-moves. `path` is the same view-tree address shape:
|
|
187
|
-
* the prefix resolves the destination PARENT block, the last element is
|
|
188
|
-
* the FINAL index — already discounted for the moved members by the
|
|
189
|
-
* caller (the `facade.moveBlocks` contract, which counts the
|
|
190
|
-
* destination's children with the moved members excluded). Structural
|
|
191
|
-
* permission stays in the facade.
|
|
192
|
-
*/
|
|
193
|
-
export function prepareMoves({ blocks, path }) {
|
|
194
|
-
if (!path.length || path.some((p) => isNaN(p) || p < 0) || !blocks.length)
|
|
195
|
-
return REFUSED;
|
|
196
|
-
const [parent, index] = parentAt(this.edytor, path);
|
|
197
|
-
if (!parent || blocks.some((block) => block.isRoot))
|
|
198
|
-
return REFUSED;
|
|
199
|
-
return this.edytor.facade.prepare.moveBlocks(blocks.map((block) => block.id), { parent: ref(parent), index });
|
|
200
|
-
}
|
|
201
|
-
export function moveBlocks(payload, plan = prepareMoves.call(this, payload)) {
|
|
202
|
-
const { blocks, path } = payload;
|
|
203
|
-
const parents = new Set([...blocks.map((block) => block.parent), parentAt(this.edytor, path)[0]]);
|
|
204
|
-
return applyPlan(this, plan, [...parents]) ? blocks : [];
|
|
205
|
-
}
|
|
206
|
-
/**
|
|
207
|
-
* The facade owns the refusal rules (`unNestBlock`: top-level blocks,
|
|
208
|
-
* island-sealed blocks and sealed destinations).
|
|
209
|
-
*/
|
|
210
|
-
export function prepareUnNest() {
|
|
211
|
-
return this.parent && this.model
|
|
212
|
-
? this.edytor.facade.prepare.unNestBlock(this.model.id)
|
|
213
|
-
: REFUSED;
|
|
214
|
-
}
|
|
215
|
-
export function unNestBlock(_ = {}, plan = prepareUnNest.call(this)) {
|
|
216
|
-
return applyPlan(this, plan, [this.parent, this.parent?.parent, this]) ? this : null;
|
|
217
|
-
}
|
|
218
|
-
/**
|
|
219
|
-
* Admission resolves the nest target — the previous sibling — and the
|
|
220
|
-
* facade owns permission: `nestBlock` refuses void/island/inside-island
|
|
221
|
-
* targets and island-sealed sources (`canPlace`).
|
|
222
|
-
*/
|
|
223
|
-
export function prepareNest() {
|
|
224
|
-
const target = this.previousBlock?.id;
|
|
225
|
-
return this.parent && this.model && target != null
|
|
226
|
-
? this.edytor.facade.prepare.nestBlock(this.model.id, target)
|
|
227
|
-
: REFUSED;
|
|
228
|
-
}
|
|
229
|
-
export function nestBlock(_ = {}, plan = prepareNest.call(this)) {
|
|
230
|
-
return applyPlan(this, plan, [this.parent, this.previousBlock]) ? this : null;
|
|
231
|
-
}
|
|
232
|
-
export function prepareSet({ value }) {
|
|
233
|
-
if (!this.model)
|
|
234
|
-
return REFUSED;
|
|
235
|
-
// Spec preparation is pure JSON → `ContentItem`/`BlockSpec` conversion:
|
|
236
|
-
// the document stores the items verbatim and derives the content
|
|
237
|
-
// invariant on projection.
|
|
238
|
-
return this.edytor.facade.prepare.setBlock(this.model.id, {
|
|
239
|
-
...(value.type !== undefined ? { type: value.type } : {}),
|
|
240
|
-
...(value.data !== undefined ? { data: cloneJson(value.data) } : {}),
|
|
241
|
-
...(value.content !== undefined ? { content: jsonContentToItems(value.content) } : {}),
|
|
242
|
-
...(value.children !== undefined
|
|
243
|
-
? { children: value.children.map((child) => jsonBlockToSpec(child)) }
|
|
244
|
-
: {})
|
|
245
|
-
});
|
|
246
|
-
}
|
|
247
|
-
export function setBlock(payload, plan = prepareSet.call(this, payload)) {
|
|
248
|
-
if (!applyPlan(this, plan, [this]))
|
|
249
|
-
return;
|
|
250
|
-
this.normalizeContent();
|
|
251
|
-
}
|
|
252
|
-
export function pushContentIntoBlock({ value }) {
|
|
253
|
-
const model = this.model;
|
|
254
|
-
if (!model)
|
|
255
|
-
return;
|
|
256
|
-
for (const part of value) {
|
|
257
|
-
if (part instanceof InlineBlock) {
|
|
258
|
-
const { id, type, data } = part;
|
|
259
|
-
model.insertInline(model.length, { id, type, ...(data ? { data: cloneJson(data) } : {}) });
|
|
260
|
-
}
|
|
261
|
-
else {
|
|
262
|
-
for (const { text, marks } of part.value)
|
|
263
|
-
if (text.length)
|
|
264
|
-
model.insertText(model.length, text, marks);
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
this.normalizeContent();
|
|
268
|
-
}
|
|
269
|
-
export function prepareRemoveInline({ index }) {
|
|
270
|
-
const part = this.content.at(index);
|
|
271
|
-
return part instanceof InlineBlock && this.model
|
|
272
|
-
? this.edytor.facade.prepare.removeInline(this.model.id, part.id)
|
|
273
|
-
: REFUSED;
|
|
274
|
-
}
|
|
275
|
-
export function removeInlineBlock(payload, plan = prepareRemoveInline.call(this, payload)) {
|
|
276
|
-
if (applyPlan(this, plan, []))
|
|
277
|
-
this.normalizeContent();
|
|
278
|
-
}
|
|
279
|
-
export function preparePatch({ ops, atom }) {
|
|
280
|
-
const target = this.isRoot ? null : atom === undefined ? this.id : { block: this.id, atom };
|
|
281
|
-
return this.edytor.facade.prepare.patchData(target, ops);
|
|
282
|
-
}
|
|
283
|
-
export function patchData(payload, plan = preparePatch.call(this, payload)) {
|
|
284
|
-
applyPlan(this, plan, []);
|
|
285
|
-
}
|
|
286
|
-
/**
|
|
287
|
-
* Insert an inline atom at `index` of `text`. Answers the atom's id; the
|
|
288
|
-
* batched operation resolves it to the text after the atom once committed
|
|
289
|
-
* ({@link textAfterAtom}), where the caret's pending marks follow.
|
|
290
|
-
*/
|
|
291
|
-
export function addInlineBlock({ index, block, text }) {
|
|
292
|
-
const atom = { ...block, id: block.id ?? id('i') };
|
|
293
|
-
this.model?.insertInline(text.segStart + index, {
|
|
294
|
-
id: atom.id,
|
|
295
|
-
type: atom.type,
|
|
296
|
-
...(atom.data ? { data: cloneJson(atom.data) } : {})
|
|
297
|
-
});
|
|
298
|
-
this.normalizeContent();
|
|
299
|
-
return atom.id;
|
|
300
|
-
}
|
|
301
|
-
/** The text after atom `atom` of this block; the caret's pending marks follow it there. */
|
|
302
|
-
export function textAfterAtom(atom) {
|
|
303
|
-
if (atom === undefined)
|
|
304
|
-
return undefined;
|
|
305
|
-
const at = this.content.findIndex((part) => part.id === atom);
|
|
306
|
-
const after = at < 0 ? undefined : this.content[at + 1];
|
|
307
|
-
if (!after || after instanceof InlineBlock)
|
|
308
|
-
return null;
|
|
309
|
-
const { selection } = this.edytor;
|
|
310
|
-
const pending = selection.pending;
|
|
311
|
-
const caret = pending && selection.textValue(after, 0);
|
|
312
|
-
if (caret && caret.kind === 'text')
|
|
313
|
-
selection.select(Object.freeze({ ...caret, pending }));
|
|
314
|
-
return after;
|
|
315
|
-
}
|
|
316
|
-
/**
|
|
317
|
-
* Normalization runs at the end of the command's transaction
|
|
318
|
-
* (`Dispatcher.drain`): a normalizer reads handles over the index; when a
|
|
319
|
-
* plugin hook answers work, the work runs in the same transaction and the
|
|
320
|
-
* block is requested again (bounded by the dispatcher's pass limit).
|
|
321
|
-
*/
|
|
322
|
-
export function normalizeContent() {
|
|
323
|
-
if (this.edytor.dispatcher.defer(this, normalizeContent))
|
|
324
|
-
return;
|
|
325
|
-
// The v14 content model maintains the part invariants by construction —
|
|
326
|
-
// projected content always derives to text-first/text-last/non-adjacent
|
|
327
|
-
// parts — so the only remaining normalization is the plugin hook.
|
|
328
|
-
const work = this.definition?.normalizeContent?.({ block: this });
|
|
329
|
-
if (work) {
|
|
330
|
-
this.edytor.dispatcher.write(work);
|
|
331
|
-
this.normalizeContent();
|
|
332
|
-
}
|
|
333
|
-
}
|
|
334
|
-
export function normalizeChildren() {
|
|
335
|
-
if (this.edytor.dispatcher.defer(this, normalizeChildren))
|
|
336
|
-
return;
|
|
337
|
-
// An emptied root writes nothing: the view shows its virtual paragraph (`doc.empty.virtual`).
|
|
338
|
-
const work = this.definition?.normalizeChildren?.({ block: this });
|
|
339
|
-
if (work) {
|
|
340
|
-
this.edytor.dispatcher.write(work);
|
|
341
|
-
this.normalizeChildren();
|
|
342
|
-
}
|
|
343
|
-
}
|
|
344
|
-
export function prepareDeleteRange({ start: [startIndex, startOffset], end: [endIndex, endOffset] }) {
|
|
345
|
-
const parts = this.edytor.idToBlock.parts(this.id);
|
|
346
|
-
const [startPart, endPart] = [parts.at(startIndex), parts.at(endIndex)];
|
|
347
|
-
if (!startPart || !endPart || !this.model)
|
|
348
|
-
return REFUSED;
|
|
349
|
-
const at = startPart.start + startOffset;
|
|
350
|
-
const length = Math.max(0, endPart.start + endOffset - at);
|
|
351
|
-
return this.edytor.facade.prepare.deleteText(this.model.id, at, length);
|
|
352
|
-
}
|
|
353
|
-
export function deleteContentAtRange(payload, plan = prepareDeleteRange.call(this, payload)) {
|
|
354
|
-
if (applyPlan(this, plan, []))
|
|
355
|
-
this.normalizeContent();
|
|
356
|
-
}
|