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,158 +0,0 @@
|
|
|
1
|
-
import * as map from 'lib0-v14/map'
|
|
2
|
-
import * as set from 'lib0-v14/set'
|
|
3
|
-
|
|
4
|
-
import { diffIdSet, intersectSets, mergeIdSets } from './ids.js'
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* @template {DeltaConf} DConf
|
|
8
|
-
* YEvent describes the changes on a YNode.
|
|
9
|
-
*/
|
|
10
|
-
export class YEvent {
|
|
11
|
-
/**
|
|
12
|
-
* @param {YNode<DConf>} target The changed type.
|
|
13
|
-
* @param {import('./Transaction.js').Transaction} transaction
|
|
14
|
-
* @param {Set<any>?} subs The keys that changed
|
|
15
|
-
*/
|
|
16
|
-
constructor (target, transaction, subs) {
|
|
17
|
-
/**
|
|
18
|
-
* The type on which this event was created on.
|
|
19
|
-
* @type {import('../ynode.js').YNode<DConf>}
|
|
20
|
-
*/
|
|
21
|
-
this.target = target
|
|
22
|
-
/**
|
|
23
|
-
* The current target on which the observe callback is called.
|
|
24
|
-
* @type {YNode<any>}
|
|
25
|
-
*/
|
|
26
|
-
this.currentTarget = target
|
|
27
|
-
/**
|
|
28
|
-
* The transaction that triggered this event.
|
|
29
|
-
* @type {import('./Transaction.js').Transaction}
|
|
30
|
-
*/
|
|
31
|
-
this.transaction = transaction
|
|
32
|
-
/**
|
|
33
|
-
* @type {Delta<import('../ynode.js').DeltaConfDeltaToYNode<DConf>>|null}
|
|
34
|
-
*/
|
|
35
|
-
this._delta = null
|
|
36
|
-
/**
|
|
37
|
-
* @type {Delta<DConf>|null}
|
|
38
|
-
*/
|
|
39
|
-
this._deltaDeep = null
|
|
40
|
-
/**
|
|
41
|
-
* Whether the children changed.
|
|
42
|
-
* @type {Boolean}
|
|
43
|
-
* @private
|
|
44
|
-
*/
|
|
45
|
-
this.childListChanged = false
|
|
46
|
-
/**
|
|
47
|
-
* Set of all changed attributes.
|
|
48
|
-
* @type {Set<string>}
|
|
49
|
-
*/
|
|
50
|
-
this.keysChanged = new Set()
|
|
51
|
-
subs?.forEach((sub) => {
|
|
52
|
-
if (sub === null) {
|
|
53
|
-
this.childListChanged = true
|
|
54
|
-
} else {
|
|
55
|
-
this.keysChanged.add(sub)
|
|
56
|
-
}
|
|
57
|
-
})
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* Check if a struct is deleted by this event.
|
|
62
|
-
*
|
|
63
|
-
* In contrast to change.deleted, this method also returns true if the struct was added and then deleted.
|
|
64
|
-
*
|
|
65
|
-
* @param {AbstractStruct} struct
|
|
66
|
-
* @return {boolean}
|
|
67
|
-
*/
|
|
68
|
-
deletes (struct) {
|
|
69
|
-
return this.transaction.deleteSet.hasId(struct.id)
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* Check if a struct is added by this event.
|
|
74
|
-
*
|
|
75
|
-
* In contrast to change.deleted, this method also returns true if the struct was added and then deleted.
|
|
76
|
-
*
|
|
77
|
-
* @param {AbstractStruct} struct
|
|
78
|
-
* @return {boolean}
|
|
79
|
-
*/
|
|
80
|
-
adds (struct) {
|
|
81
|
-
return this.transaction.insertSet.hasId(struct.id)
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
/**
|
|
85
|
-
* @template {boolean} [Deep=false]
|
|
86
|
-
* @param {object} [opts]
|
|
87
|
-
* @param {AbstractRenderer?} [opts.renderer] - renders the content (with attributions); defaults to the target type's active renderer (see {@link YNode#useRenderer}), i.e. `null` (render as-is) unless changed
|
|
88
|
-
* @param {Deep} [opts.deep]
|
|
89
|
-
* @return {Deep extends true ? Delta<DConf> : Delta<import('../ynode.js').DeltaConfDeltaToYNode<DConf>>} The Delta representation of this type.
|
|
90
|
-
*
|
|
91
|
-
* @public
|
|
92
|
-
*/
|
|
93
|
-
getDelta ({ renderer = this.target._renderer, deep } = {}) {
|
|
94
|
-
const insertSet = this.transaction.insertSet
|
|
95
|
-
const deleteSet = this.transaction.deleteSet
|
|
96
|
-
// content that was both inserted AND deleted by this transaction is normally invisible — but a
|
|
97
|
-
// renderer may still render it (e.g. remote content integrated under a suggestion-deleted
|
|
98
|
-
// parent is auto-deleted yet rendered with a delete attribution). Render
|
|
99
|
-
// `(I ∪ D) − ((I ∩ D) − renderer.attributed)`: the symmetric difference plus the attributed
|
|
100
|
-
// part of the intersection.
|
|
101
|
-
const both = intersectSets(insertSet, deleteSet)
|
|
102
|
-
const itemsToRender = mergeIdSets(
|
|
103
|
-
(both.isEmpty() || renderer === null)
|
|
104
|
-
? [diffIdSet(insertSet, deleteSet), diffIdSet(deleteSet, insertSet)]
|
|
105
|
-
: [diffIdSet(insertSet, deleteSet), diffIdSet(deleteSet, insertSet), intersectSets(both, renderer.attributed)]
|
|
106
|
-
)
|
|
107
|
-
/**
|
|
108
|
-
* @todo this should be done only one in the transaction step
|
|
109
|
-
*
|
|
110
|
-
* @type {Map<YNode,Set<string|null>>|null}
|
|
111
|
-
*/
|
|
112
|
-
let modified = this.transaction.changed
|
|
113
|
-
if (deep) {
|
|
114
|
-
// need to add deep changes to copy of modified
|
|
115
|
-
const dchanged = new Map()
|
|
116
|
-
modified.forEach((attrs, type) => {
|
|
117
|
-
dchanged.set(type, new Set(attrs))
|
|
118
|
-
})
|
|
119
|
-
for (let m of modified.keys()) {
|
|
120
|
-
while (m._item != null) {
|
|
121
|
-
const item = m._item
|
|
122
|
-
const ms = map.setIfUndefined(dchanged, item?.parent, set.create)
|
|
123
|
-
if (item && !ms.has(item.parentSub)) {
|
|
124
|
-
ms.add(item.parentSub)
|
|
125
|
-
m = /** @type {any} */ (item.parent)
|
|
126
|
-
} else {
|
|
127
|
-
break
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
modified = dchanged
|
|
132
|
-
}
|
|
133
|
-
return /** @type {any} */ (this.target.toDelta({ renderer, itemsToRender, retainDeletes: true, insertedItems: insertSet, deep: !!deep, modified }))
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
/**
|
|
137
|
-
* Compute the changes in the delta format.
|
|
138
|
-
* A {@link https://quilljs.com/docs/delta/|Quill Delta}) that represents the changes on the document.
|
|
139
|
-
*
|
|
140
|
-
* @type {Delta<import('../ynode.js').DeltaConfDeltaToYNode<DConf>>} The Delta representation of this type.
|
|
141
|
-
* @public
|
|
142
|
-
*/
|
|
143
|
-
get delta () {
|
|
144
|
-
return /** @type {any} */ (this._delta ?? (this._delta = this.getDelta().done()))
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
/**
|
|
148
|
-
* Compute the changes in the delta format.
|
|
149
|
-
* A {@link https://quilljs.com/docs/delta/|Quill Delta}) that represents the changes on the document.
|
|
150
|
-
*
|
|
151
|
-
* @type {Delta<DConf>} The Delta representation of this type.
|
|
152
|
-
* @public
|
|
153
|
-
*/
|
|
154
|
-
get deltaDeep () {
|
|
155
|
-
return /** @type {any} */ (this._deltaDeep ?? (this._deltaDeep = /** @type {any} */ (this.getDelta({ deep: true }))))
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Meta API for describing Yjs documents
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import * as decoding from 'lib0-v14/decoding'
|
|
6
|
-
import * as s from 'lib0-v14/schema'
|
|
7
|
-
|
|
8
|
-
import { $idSet, $idMapAny, createIdMap, writeIdMap, readIdMap } from './ids.js'
|
|
9
|
-
import { IdSetEncoderV2 } from './UpdateEncoder.js'
|
|
10
|
-
import { IdSetDecoderV2 } from './UpdateDecoder.js'
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* @param {IdMap<any>} [inserts]
|
|
14
|
-
* @param {IdMap<any>} [deletes]
|
|
15
|
-
* @return {ContentMap}
|
|
16
|
-
*/
|
|
17
|
-
export const createContentMap = (inserts = createIdMap(), deletes = createIdMap()) => ({ inserts, deletes })
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* @todo this encoding needs to be heavily optimized for production
|
|
21
|
-
*
|
|
22
|
-
* @param {import('./UpdateEncoder.js').IdSetEncoder} encoder
|
|
23
|
-
* @param {ContentMap} contentMap
|
|
24
|
-
*/
|
|
25
|
-
export const writeContentMap = (encoder, contentMap) => {
|
|
26
|
-
writeIdMap(encoder, contentMap.inserts)
|
|
27
|
-
writeIdMap(encoder, contentMap.deletes)
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* @todo this encoding needs to be heavily optimized for production
|
|
32
|
-
*
|
|
33
|
-
* @param {import('./UpdateDecoder.js').IdSetDecoder} decoder
|
|
34
|
-
* @return {ContentMap} contentMap
|
|
35
|
-
*/
|
|
36
|
-
export const readContentMap = (decoder) => createContentMap(
|
|
37
|
-
readIdMap(decoder),
|
|
38
|
-
readIdMap(decoder)
|
|
39
|
-
)
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* @param {ContentMap} contentMap
|
|
43
|
-
*/
|
|
44
|
-
export const encodeContentMap = contentMap => {
|
|
45
|
-
const encoder = new IdSetEncoderV2()
|
|
46
|
-
writeContentMap(encoder, contentMap)
|
|
47
|
-
return encoder.toUint8Array()
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* @param {Uint8Array<any>} buf
|
|
52
|
-
*/
|
|
53
|
-
export const decodeContentMap = buf => readContentMap(new IdSetDecoderV2(decoding.createDecoder(buf)))
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Schema of {@link ContentIds} - the shape produced by {@link createContentIds}.
|
|
57
|
-
*
|
|
58
|
-
* Structural: a `ContentIds` is a plain object literal, so there is no prototype to tag. The
|
|
59
|
-
* *nominal* {@link $idSet} checks on the two fields are what discriminate it from a
|
|
60
|
-
* {@link ContentMap} in both directions.
|
|
61
|
-
*
|
|
62
|
-
* @type {s.Schema<ContentIds>}
|
|
63
|
-
*/
|
|
64
|
-
export const $contentIds = s.$object({ inserts: $idSet, deletes: $idSet })
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* Schema of {@link ContentMap} - the shape produced by {@link createContentMap}.
|
|
68
|
-
*
|
|
69
|
-
* See {@link $contentIds}. Use {@link $idMap} on the individual fields to additionally constrain
|
|
70
|
-
* the mapped-value type; `ContentMap` itself hardcodes `IdMap<any>`.
|
|
71
|
-
*
|
|
72
|
-
* @type {s.Schema<ContentMap>}
|
|
73
|
-
*/
|
|
74
|
-
export const $contentMap = s.$object({ inserts: $idMapAny, deletes: $idMapAny })
|
|
@@ -1,186 +0,0 @@
|
|
|
1
|
-
import * as s from 'lib0-v14/schema'
|
|
2
|
-
import * as error from 'lib0-v14/error'
|
|
3
|
-
import { ObservableV2 } from 'lib0-v14/observable'
|
|
4
|
-
|
|
5
|
-
import { ContentFormat } from '../structs/Item.js'
|
|
6
|
-
|
|
7
|
-
import { createIdSet } from './ids.js'
|
|
8
|
-
|
|
9
|
-
export const attributionJsonSchema = s.$object({
|
|
10
|
-
insert: s.$array(s.$string).optional,
|
|
11
|
-
insertAt: s.$number.optional,
|
|
12
|
-
delete: s.$array(s.$string).optional,
|
|
13
|
-
deleteAt: s.$number.optional,
|
|
14
|
-
format: s.$record(s.$string, s.$array(s.$string)).optional,
|
|
15
|
-
formatAt: s.$number.optional
|
|
16
|
-
})
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* @todo rename this to `insertBy`, `insertAt`, ..
|
|
20
|
-
*
|
|
21
|
-
* @typedef {s.Unwrap<typeof attributionJsonSchema>} Attribution
|
|
22
|
-
*/
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* @template T
|
|
26
|
-
*/
|
|
27
|
-
export class AttributedContent {
|
|
28
|
-
/**
|
|
29
|
-
* @param {AbstractContent} content
|
|
30
|
-
* @param {number} clock
|
|
31
|
-
* @param {boolean} deleted
|
|
32
|
-
* @param {Array<ContentAttribute<T>> | null} attrs
|
|
33
|
-
* @param {0|1|2|3} renderBehavior
|
|
34
|
-
*/
|
|
35
|
-
constructor (content, clock, deleted, attrs, renderBehavior) {
|
|
36
|
-
this.content = content
|
|
37
|
-
this.clock = clock
|
|
38
|
-
this.deleted = deleted
|
|
39
|
-
this.attrs = attrs
|
|
40
|
-
this.render = renderBehavior === 0 ? false : (renderBehavior === 1 ? (!deleted || attrs != null) : true)
|
|
41
|
-
/**
|
|
42
|
-
* Fresh content that was deleted in the same transaction (mode `3`): even in a
|
|
43
|
-
* `retainDeletes` render it must produce an *insert* — the consuming state (e.g. the
|
|
44
|
-
* maintained `delta` cache) has never seen this content, so there is nothing to retain.
|
|
45
|
-
*/
|
|
46
|
-
this.fresh = renderBehavior === 3
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Abstract base class for renderers. A renderer renders Content (with Attributions) to a delta.
|
|
52
|
-
*
|
|
53
|
-
* Should fire an event when the attributions changed _after_ the original change happens. This
|
|
54
|
-
* Event will be used to update the attribution on the current content.
|
|
55
|
-
*
|
|
56
|
-
* Only items claimed via {@link AbstractRenderer#hasItem} reach the renderer — everything else is
|
|
57
|
-
* rendered by the generic fast path (as-is, without attributions, deleted content invisible).
|
|
58
|
-
*
|
|
59
|
-
* @extends {ObservableV2<{change:(idset:IdSet,origin:any,local:boolean)=>void}>}
|
|
60
|
-
*/
|
|
61
|
-
export class AbstractRenderer extends ObservableV2 {
|
|
62
|
-
constructor () {
|
|
63
|
-
super()
|
|
64
|
-
/**
|
|
65
|
-
* Ids of the content this renderer may render non-normally (attributed, restored, hidden, …).
|
|
66
|
-
* May over-approximate — {@link AbstractRenderer#readContent} remains authoritative for what
|
|
67
|
-
* is actually rendered. Content outside this set is rendered by the generic fast path without
|
|
68
|
-
* consulting the renderer.
|
|
69
|
-
*
|
|
70
|
-
* @type {IdSet}
|
|
71
|
-
*/
|
|
72
|
-
this.attributed = createIdSet()
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
* Whether `item` (any part of its id range) must be rendered by this renderer. Items for which
|
|
77
|
-
* this returns `false` are rendered by the generic fast path.
|
|
78
|
-
*
|
|
79
|
-
* @param {Item} item
|
|
80
|
-
* @return {boolean}
|
|
81
|
-
*/
|
|
82
|
-
hasItem (item) {
|
|
83
|
-
return this.attributed.intersects(item.id.client, item.id.clock, item.length)
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
/**
|
|
87
|
-
* @param {Array<AttributedContent<any>>} _contents - where to write the result
|
|
88
|
-
* @param {number} _client
|
|
89
|
-
* @param {number} _clock
|
|
90
|
-
* @param {boolean} _deleted
|
|
91
|
-
* @param {AbstractContent} _content
|
|
92
|
-
* @param {0|1|2|3} _shouldRender - 0: if undeleted or attributed, render as a retain operation. 1: render only if undeleted or attributed. 2: render as insert operation (if unattributed and deleted, render as delete). 3: fresh content deleted in the same transaction, marked {@link AttributedContent#fresh} — render as insert where attributed (it must insert even in a `retainDeletes` render: the consuming state has never seen it), as *nothing* where unattributed (invisible; a delete op would misapply).
|
|
93
|
-
*/
|
|
94
|
-
readContent (_contents, _client, _clock, _deleted, _content, _shouldRender) {
|
|
95
|
-
error.methodUnimplemented()
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
/**
|
|
99
|
-
* Calculate the length of the attributed content. This is used by iterators that walk through the
|
|
100
|
-
* content.
|
|
101
|
-
*
|
|
102
|
-
* If the content is not countable, it should return 0.
|
|
103
|
-
*
|
|
104
|
-
* @param {Item} _item
|
|
105
|
-
* @return {number}
|
|
106
|
-
*/
|
|
107
|
-
contentLength (_item) {
|
|
108
|
-
error.methodUnimplemented()
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
export const $renderer = AbstractRenderer.prototype.$type = s.$type('y:renderer', AbstractRenderer)
|
|
113
|
-
|
|
114
|
-
/**
|
|
115
|
-
* Rendered length of `item` under `renderer`: the generic rule — alive countable content renders
|
|
116
|
-
* at full length, everything else at length `0` — unless the renderer claims the item.
|
|
117
|
-
*
|
|
118
|
-
* @param {AbstractRenderer?} renderer
|
|
119
|
-
* @param {Item} item
|
|
120
|
-
* @return {number}
|
|
121
|
-
*/
|
|
122
|
-
export const rendererContentLength = (renderer, item) =>
|
|
123
|
-
renderer !== null && renderer.hasItem(item)
|
|
124
|
-
? renderer.contentLength(item)
|
|
125
|
-
: ((item.deleted || !item.content.isCountable()) ? 0 : item.length)
|
|
126
|
-
|
|
127
|
-
/**
|
|
128
|
-
* The `AttributedContent` pieces `item` contributes to a *current-state*
|
|
129
|
-
* render — the single physical-sequence interpretation shared by
|
|
130
|
-
* `YNode#toDelta` (full render, `itemsToRender == null && !retainInserts`)
|
|
131
|
-
* and `RangeCursor`'s bounded reads (UPSTREAM.md YP5):
|
|
132
|
-
*
|
|
133
|
-
* - a renderer-claimed item expands through `renderer.readContent` in mode
|
|
134
|
-
* `1` — the renderer's own attribution/restore/hide semantics;
|
|
135
|
-
* - a `ContentFormat` marker contributes one piece carrying its `{key,
|
|
136
|
-
* value}` — consumers fold it into format state (by the piece's effective
|
|
137
|
-
* `deleted` flag) and it occupies no rendered length;
|
|
138
|
-
* - a tombstoned item contributes nothing — invisible in the current state;
|
|
139
|
-
* - any other item contributes itself whole.
|
|
140
|
-
*
|
|
141
|
-
* The pieces' `render`/`fresh` flags follow mode-`1` semantics
|
|
142
|
-
* (`render = !deleted || attrs != null`).
|
|
143
|
-
*
|
|
144
|
-
* `scratch` is an optional caller-owned `AttributedContent` reused for the
|
|
145
|
-
* single trivial piece — both consumers drain `out` before the next call,
|
|
146
|
-
* so reusing it keeps the common live-content path allocation-free
|
|
147
|
-
* (renderer-claimed items always allocate their own pieces).
|
|
148
|
-
*
|
|
149
|
-
* @param {Array<AttributedContent<any>>} out
|
|
150
|
-
* @param {AbstractRenderer?} renderer
|
|
151
|
-
* @param {import('../structs/Item.js').Item} item
|
|
152
|
-
* @param {AttributedContent<any>?} [scratch]
|
|
153
|
-
*/
|
|
154
|
-
export const readItemPieces = (out, renderer, item, scratch = null) => {
|
|
155
|
-
const content = item.content
|
|
156
|
-
if (renderer !== null && renderer.hasItem(item)) {
|
|
157
|
-
renderer.readContent(out, item.id.client, item.id.clock, item.deleted, content, 1)
|
|
158
|
-
return
|
|
159
|
-
}
|
|
160
|
-
let piece = scratch
|
|
161
|
-
if (content.constructor === ContentFormat) {
|
|
162
|
-
if (piece === null) {
|
|
163
|
-
piece = new AttributedContent(content, item.id.clock, item.deleted, null, 1)
|
|
164
|
-
} else {
|
|
165
|
-
piece.content = content
|
|
166
|
-
piece.clock = item.id.clock
|
|
167
|
-
piece.deleted = item.deleted
|
|
168
|
-
piece.attrs = null
|
|
169
|
-
piece.render = !item.deleted
|
|
170
|
-
piece.fresh = false
|
|
171
|
-
}
|
|
172
|
-
out.push(piece)
|
|
173
|
-
} else if (!item.deleted) {
|
|
174
|
-
if (piece === null) {
|
|
175
|
-
piece = new AttributedContent(content, item.id.clock, false, null, 1)
|
|
176
|
-
} else {
|
|
177
|
-
piece.content = content
|
|
178
|
-
piece.clock = item.id.clock
|
|
179
|
-
piece.deleted = false
|
|
180
|
-
piece.attrs = null
|
|
181
|
-
piece.render = true
|
|
182
|
-
piece.fresh = false
|
|
183
|
-
}
|
|
184
|
-
out.push(piece)
|
|
185
|
-
}
|
|
186
|
-
}
|
package/dist/edytor.utils.d.ts
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import type { Text } from './text/text.svelte.js';
|
|
2
|
-
import type { Block } from './block/block.svelte.js';
|
|
3
|
-
import type { Edytor } from './edytor.svelte.js';
|
|
4
|
-
import type { Flow, FlowTarget } from './crdt/flow.js';
|
|
5
|
-
import type { Prepared } from './crdt/edytor-doc.js';
|
|
6
|
-
/** The two endpoints of a range, as the selection holds them. */
|
|
7
|
-
export type RangeEndpoints = {
|
|
8
|
-
startText: Text | null;
|
|
9
|
-
endText: Text | null;
|
|
10
|
-
yStart: number;
|
|
11
|
-
yEnd: number;
|
|
12
|
-
};
|
|
13
|
-
type At = {
|
|
14
|
-
block: string;
|
|
15
|
-
offset: number;
|
|
16
|
-
};
|
|
17
|
-
/**
|
|
18
|
-
* Apply a prepared op and answer the caret it reports (`null` when it planned
|
|
19
|
-
* none); the caret's block and its parent are normalized in its transaction.
|
|
20
|
-
*/
|
|
21
|
-
export declare const applyAt: (edytor: Edytor, plan: Prepared) => At | null;
|
|
22
|
-
/** The caret an op answered, as a text handle and offset. */
|
|
23
|
-
export declare function caretOf(this: Edytor, at: At | null | undefined): readonly [Text | null, number];
|
|
24
|
-
type RangeDelete = {
|
|
25
|
-
replace?: boolean;
|
|
26
|
-
selection?: RangeEndpoints;
|
|
27
|
-
};
|
|
28
|
-
/** The document's range deletion (`del.range.*`; `replace`: the deletion half of a replacement). */
|
|
29
|
-
export declare function prepareDeleteContent(this: Edytor, { replace, selection }: RangeDelete): Prepared;
|
|
30
|
-
/**
|
|
31
|
-
* Delete the selected range (or `selection`) through the document's prepared
|
|
32
|
-
* range deletion and answer the caret the op decided.
|
|
33
|
-
*/
|
|
34
|
-
export declare function deleteContentWithinSelection(this: Edytor, payload: RangeDelete, plan?: Prepared): At | null;
|
|
35
|
-
/** The range deletion's caret; refused at preparation: the range's start; vetoed: none. */
|
|
36
|
-
export declare function rangeCaret(this: Edytor, at: At | null | undefined, payload: RangeDelete): readonly [Text | null, number] | undefined;
|
|
37
|
-
type FlowInsert = {
|
|
38
|
-
flow: Flow;
|
|
39
|
-
target: FlowTarget;
|
|
40
|
-
};
|
|
41
|
-
export declare function prepareFlow(this: Edytor, { flow, target }: FlowInsert): Prepared;
|
|
42
|
-
/** Place an admitted flow at `target` (`flow.*`) and answer the caret the op decided. */
|
|
43
|
-
export declare function insertFlow(this: Edytor, payload: FlowInsert, plan?: Prepared): At | null;
|
|
44
|
-
type BlocksDelete = {
|
|
45
|
-
blocks: Block[];
|
|
46
|
-
};
|
|
47
|
-
export declare function prepareDeleteBlocks(this: Edytor, { blocks }: BlocksDelete): Prepared;
|
|
48
|
-
/** Delete a block selection (one document plan; nested members ride their ancestor). */
|
|
49
|
-
export declare function deleteBlocks(this: Edytor, { blocks }: BlocksDelete, plan?: Prepared): boolean;
|
|
50
|
-
export {};
|
package/dist/edytor.utils.js
DELETED
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { normalizeChildren, normalizeContent } from './block/block.utils.js';
|
|
2
|
-
import { viewOf } from './selection/visibility.js';
|
|
3
|
-
const REFUSED = { status: 'refused', ids: [] };
|
|
4
|
-
/**
|
|
5
|
-
* Apply a prepared op and answer the caret it reports (`null` when it planned
|
|
6
|
-
* none); the caret's block and its parent are normalized in its transaction.
|
|
7
|
-
*/
|
|
8
|
-
export const applyAt = (edytor, plan) => {
|
|
9
|
-
if (!('writes' in plan) || !plan.at)
|
|
10
|
-
return null;
|
|
11
|
-
const { facade, dispatcher } = edytor;
|
|
12
|
-
facade.apply(plan);
|
|
13
|
-
dispatcher.request(plan.at.block, normalizeContent);
|
|
14
|
-
dispatcher.request(facade.parentOf(plan.at.block) ?? 'root', normalizeChildren);
|
|
15
|
-
return plan.at;
|
|
16
|
-
};
|
|
17
|
-
/** The caret an op answered, as a text handle and offset. */
|
|
18
|
-
export function caretOf(at) {
|
|
19
|
-
const hit = at && this.idToBlock.get(at.block)?.textAtOffset(at.offset);
|
|
20
|
-
return hit ? [hit.text, hit.offset] : [null, 0];
|
|
21
|
-
}
|
|
22
|
-
/** The document's range deletion (`del.range.*`; `replace`: the deletion half of a replacement). */
|
|
23
|
-
export function prepareDeleteContent({ replace = false, selection }) {
|
|
24
|
-
const { startText, endText, yStart, yEnd } = selection ?? this.selection.state;
|
|
25
|
-
if (!startText || !endText)
|
|
26
|
-
return REFUSED;
|
|
27
|
-
const at = (text, offset) => ({
|
|
28
|
-
block: text.parent.id,
|
|
29
|
-
offset: text.segStart + offset
|
|
30
|
-
});
|
|
31
|
-
const prepare = replace ? this.facade.prepare.replaceRange : this.facade.prepare.deleteRange;
|
|
32
|
-
return prepare(at(startText, yStart), at(endText, yEnd), viewOf(this));
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Delete the selected range (or `selection`) through the document's prepared
|
|
36
|
-
* range deletion and answer the caret the op decided.
|
|
37
|
-
*/
|
|
38
|
-
export function deleteContentWithinSelection(payload, plan = prepareDeleteContent.call(this, payload)) {
|
|
39
|
-
return applyAt(this, plan);
|
|
40
|
-
}
|
|
41
|
-
/** The range deletion's caret; refused at preparation: the range's start; vetoed: none. */
|
|
42
|
-
export function rangeCaret(at, payload) {
|
|
43
|
-
if (at === undefined)
|
|
44
|
-
return undefined;
|
|
45
|
-
const { startText, yStart } = payload.selection ?? this.selection.state;
|
|
46
|
-
return at ? caretOf.call(this, at) : [startText, yStart];
|
|
47
|
-
}
|
|
48
|
-
export function prepareFlow({ flow, target }) {
|
|
49
|
-
return this.facade.prepare.insertFlow(target, flow, viewOf(this));
|
|
50
|
-
}
|
|
51
|
-
/** Place an admitted flow at `target` (`flow.*`) and answer the caret the op decided. */
|
|
52
|
-
export function insertFlow(payload, plan = prepareFlow.call(this, payload)) {
|
|
53
|
-
return applyAt(this, plan);
|
|
54
|
-
}
|
|
55
|
-
export function prepareDeleteBlocks({ blocks }) {
|
|
56
|
-
return this.facade.prepare.deleteBlocks(blocks.map((block) => block.id));
|
|
57
|
-
}
|
|
58
|
-
/** Delete a block selection (one document plan; nested members ride their ancestor). */
|
|
59
|
-
export function deleteBlocks({ blocks }, plan = prepareDeleteBlocks.call(this, { blocks })) {
|
|
60
|
-
if (!('writes' in plan))
|
|
61
|
-
return false;
|
|
62
|
-
const parents = new Set(blocks.map((block) => block.parent));
|
|
63
|
-
this.facade.apply(plan);
|
|
64
|
-
for (const parent of parents)
|
|
65
|
-
parent?.normalizeChildren();
|
|
66
|
-
return true;
|
|
67
|
-
}
|