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
package/dist/crdt/doc/funnel.js
CHANGED
|
@@ -1,7 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The write funnel: every facade write goes through `write` (disposal and the
|
|
3
|
+
* document's writable guard), and every prepared plan through `apply` — one
|
|
4
|
+
* transaction, its result read from what the transaction wrote, and the
|
|
5
|
+
* frame's one attribution pass.
|
|
6
|
+
*/
|
|
7
|
+
import { blockNodeOf, buildInline, materializeSpec, ownText, view as modelView, writePlacement, writeSplit } from '../placement/model.js';
|
|
1
8
|
import { ENTRY_FACET } from '../text/runs.js';
|
|
2
9
|
import { AT, DEL_PREFIX, ID, LAST_CHANGED_ATTR, TYPE } from '../schema.js';
|
|
3
10
|
import { writeLeaves } from '../data.js';
|
|
4
11
|
import { NOOP } from './plan.js';
|
|
12
|
+
import { claimInto, deleteRange, formatRangeIn, insertIntoText } from '../text/model.js';
|
|
5
13
|
/**
|
|
6
14
|
* Raised when a mutating facade op runs after `dispose()` — disposal is
|
|
7
15
|
* terminal for writes (reads stay dead-safe: a stale handle may still be
|
|
@@ -15,21 +23,9 @@ export class EdytorDocDisposedError extends Error {
|
|
|
15
23
|
this.name = 'EdytorDocDisposedError';
|
|
16
24
|
}
|
|
17
25
|
}
|
|
18
|
-
/**
|
|
19
|
-
* The lineage ring depth, validated — `NaN`/`Infinity`/fractional/negative
|
|
20
|
-
* values would silently disable the ring's trim bound. The one check every
|
|
21
|
-
* entry path (facade creation, document attach and reattach) runs.
|
|
22
|
-
*/
|
|
23
|
-
export const lineageDepthOf = (depth) => {
|
|
24
|
-
const d = depth ?? 0;
|
|
25
|
-
if (!Number.isInteger(d) || d < 0) {
|
|
26
|
-
throw new RangeError(`lineage.depth must be a non-negative integer, got ${JSON.stringify(d)}`);
|
|
27
|
-
}
|
|
28
|
-
return d;
|
|
29
|
-
};
|
|
30
26
|
/** The write funnel of one facade. */
|
|
31
27
|
export const writeFunnel = (c) => {
|
|
32
|
-
const { doc,
|
|
28
|
+
const { doc, runsView, dataNode, BA, config } = c;
|
|
33
29
|
/**
|
|
34
30
|
* Terminal flag — set by `dispose()`. Mutating ops funnel through
|
|
35
31
|
* `write`, so gating there covers every facade write + `transact` +
|
|
@@ -56,39 +52,14 @@ export const writeFunnel = (c) => {
|
|
|
56
52
|
// is observed, never predicted.
|
|
57
53
|
//
|
|
58
54
|
// Each apply opens a frame that tracks the index's folds. When it
|
|
59
|
-
// closes, ONE pass over the facets the fold saw stamps attribution
|
|
60
|
-
//
|
|
61
|
-
// its `createdBy` record; a block whose content, claims, type or data
|
|
55
|
+
// closes, ONE pass over the facets the fold saw stamps attribution: a
|
|
56
|
+
// block whose registry entry was created gets its `createdBy` record; a block whose content, claims, type or data
|
|
62
57
|
// changed gets a contributor stamp; moves and delete marks stamp
|
|
63
58
|
// nothing. Two intents the effects cannot name are recorded by their
|
|
64
59
|
// steps: a split-born block inherits its source's contributors, and a
|
|
65
|
-
// merge survivor unions the absorbed block's.
|
|
66
|
-
//
|
|
67
|
-
// only for targets the effects show changed, deleted or absorbed. With
|
|
68
|
-
// no configured `actor` the funnel writes no attribution at all.
|
|
60
|
+
// merge survivor unions the absorbed block's. With no configured
|
|
61
|
+
// `actor` the funnel writes no attribution at all.
|
|
69
62
|
const actorOf = () => config.actor?.();
|
|
70
|
-
const lineageDepth = lineageDepthOf(config.lineageDepth);
|
|
71
|
-
/**
|
|
72
|
-
* Capture `id`'s displaced state when the current actor is NOT the `l`
|
|
73
|
-
* winner (`force`: destructive paths, where the state is lost whoever
|
|
74
|
-
* owns `l`). First capture in a frame wins — it is the pre-frame state.
|
|
75
|
-
*/
|
|
76
|
-
const lineagePending = (id, force = false) => {
|
|
77
|
-
const actor = actorOf();
|
|
78
|
-
const node = M.blockNodeOf(doc, id);
|
|
79
|
-
if (lineageDepth <= 0 || actor === undefined || node === null)
|
|
80
|
-
return undefined;
|
|
81
|
-
const l = node.getAttr(LAST_CHANGED_ATTR);
|
|
82
|
-
if (!force && l === actor.id)
|
|
83
|
-
return undefined;
|
|
84
|
-
const j = blockJSON(id);
|
|
85
|
-
return { ...(typeof l === 'string' ? { a: l } : {}), by: actor.id, t: Date.now(), j };
|
|
86
|
-
};
|
|
87
|
-
const capture = (f, id, force = false) => {
|
|
88
|
-
const pending = f.lineage.has(id) ? undefined : lineagePending(id, force);
|
|
89
|
-
if (pending !== undefined)
|
|
90
|
-
f.lineage.set(id, pending);
|
|
91
|
-
};
|
|
92
63
|
/** The frame's one attribution pass over the facets the fold saw it write. */
|
|
93
64
|
const close = (f, folded) => {
|
|
94
65
|
const actor = actorOf();
|
|
@@ -96,79 +67,72 @@ export const writeFunnel = (c) => {
|
|
|
96
67
|
return;
|
|
97
68
|
const created = new Set();
|
|
98
69
|
const changed = new Set();
|
|
99
|
-
const gone = new Set(f.unions.map(([, from]) => from));
|
|
100
70
|
for (const [id, facets] of folded.touched) {
|
|
101
|
-
if (facets.has(ENTRY_FACET) &&
|
|
71
|
+
if (facets.has(ENTRY_FACET) && blockNodeOf(doc, id) !== null)
|
|
102
72
|
created.add(id);
|
|
103
73
|
else
|
|
104
|
-
for (const facet of facets)
|
|
105
|
-
if (facet.startsWith(DEL_PREFIX)
|
|
106
|
-
|
|
107
|
-
else if (![ENTRY_FACET, AT, ID, LAST_CHANGED_ATTR].includes(facet))
|
|
74
|
+
for (const facet of facets)
|
|
75
|
+
if (!facet.startsWith(DEL_PREFIX) &&
|
|
76
|
+
![ENTRY_FACET, AT, ID, LAST_CHANGED_ATTR].includes(facet))
|
|
108
77
|
changed.add(id);
|
|
109
|
-
}
|
|
110
78
|
}
|
|
111
79
|
for (const id of created) {
|
|
112
|
-
const node =
|
|
80
|
+
const node = blockNodeOf(doc, id);
|
|
113
81
|
if (node !== null)
|
|
114
82
|
BA.stampCreated(doc, node, id, actor.id, f.inherit.get(id));
|
|
115
83
|
}
|
|
116
84
|
for (const id of changed) {
|
|
117
|
-
const node = created.has(id) ? null :
|
|
85
|
+
const node = created.has(id) ? null : blockNodeOf(doc, id);
|
|
118
86
|
if (node !== null)
|
|
119
87
|
BA.stampChange(doc, node, id, actor.id);
|
|
120
88
|
}
|
|
121
89
|
for (const [into, from] of f.unions)
|
|
122
90
|
BA.unionContributors(doc, into, from);
|
|
123
|
-
for (const [id, pending] of f.lineage) {
|
|
124
|
-
if (changed.has(id) || gone.has(id))
|
|
125
|
-
BA.appendLineage(doc, id, pending, lineageDepth);
|
|
126
|
-
}
|
|
127
91
|
};
|
|
128
92
|
/**
|
|
129
93
|
* A streamless block gets its own text before the first write that
|
|
130
|
-
* needs a stream (`
|
|
94
|
+
* needs a stream (`ownText`: a writer derived from its dead
|
|
131
95
|
* incarnation); its attribution record follows the re-minted nonce.
|
|
132
96
|
*/
|
|
133
97
|
const needStream = (id) => {
|
|
134
|
-
if ((
|
|
98
|
+
if ((modelView(doc).own.display(id) ?? []).length > 0)
|
|
135
99
|
return;
|
|
136
|
-
const { from, to } =
|
|
100
|
+
const { from, to } = ownText(doc, id);
|
|
137
101
|
BA.retarget(doc, id, from, to);
|
|
138
102
|
};
|
|
139
103
|
/** One planned step, written (the plan decided it; writers never refuse). */
|
|
140
104
|
const writeStep = (w, f) => {
|
|
141
105
|
// Structural steps need no view: delete marks and placements write one node.
|
|
142
106
|
if (w.op === 'deleteBlock')
|
|
143
|
-
return w.marks.forEach((id) =>
|
|
107
|
+
return w.marks.forEach((id) => blockNodeOf(doc, id).setAttr(DEL_PREFIX + doc.clientID, true));
|
|
144
108
|
if (w.op === 'splitBlock' || w.op === 'insertText' || w.op === 'insertInline')
|
|
145
109
|
needStream(w.id);
|
|
146
|
-
const { blocks, own } =
|
|
147
|
-
const node = (id) =>
|
|
110
|
+
const { blocks, own } = modelView(doc);
|
|
111
|
+
const node = (id) => blockNodeOf(doc, id);
|
|
148
112
|
switch (w.op) {
|
|
149
113
|
case 'insertBlocks':
|
|
150
|
-
return w.specs.forEach((sp, i) =>
|
|
114
|
+
return w.specs.forEach((sp, i) => materializeSpec(doc, sp, w.parent, w.ranks[i]));
|
|
151
115
|
case 'moveBlocks':
|
|
152
|
-
return w.ids.forEach((id, i) =>
|
|
116
|
+
return w.ids.forEach((id, i) => writePlacement(doc, node(id), w.parent, w.ranks[i]));
|
|
153
117
|
case 'splitBlock':
|
|
154
118
|
f.inherit.set(w.newId, w.id);
|
|
155
|
-
return
|
|
119
|
+
return writeSplit(doc, w.id, w.offset, w.newId, w.tail, { p: w.parent, r: w.rank });
|
|
156
120
|
case 'mergeBlocks':
|
|
157
121
|
f.unions.push([w.into, w.from]);
|
|
158
|
-
return
|
|
122
|
+
return claimInto(blocks, own, w.from, w.into);
|
|
159
123
|
case 'setBlockType':
|
|
160
124
|
return void node(w.id).setAttr(TYPE, w.type);
|
|
161
125
|
case 'patchData':
|
|
162
126
|
return writeLeaves(dataNode(w.id, w.inlineId), w.leaves);
|
|
163
127
|
case 'insertText':
|
|
164
|
-
return
|
|
128
|
+
return insertIntoText(doc, blocks, own, w.id, w.offset, w.text, w.marks);
|
|
165
129
|
case 'insertInline':
|
|
166
|
-
return
|
|
130
|
+
return insertIntoText(doc, blocks, own, w.id, w.offset, buildInline(w.atom));
|
|
167
131
|
case 'deleteText':
|
|
168
132
|
case 'removeInline':
|
|
169
|
-
return
|
|
133
|
+
return deleteRange(doc, blocks, own, w.id, w.offset, 'length' in w ? w.length : 1);
|
|
170
134
|
case 'formatRange':
|
|
171
|
-
return
|
|
135
|
+
return formatRangeIn(doc, blocks, own, w.id, w.offset, w.length, w.marks);
|
|
172
136
|
}
|
|
173
137
|
};
|
|
174
138
|
/**
|
|
@@ -185,20 +149,8 @@ export const writeFunnel = (c) => {
|
|
|
185
149
|
}
|
|
186
150
|
return write(() => doc.transact(() => {
|
|
187
151
|
const frame = runsView.track();
|
|
188
|
-
const f = {
|
|
152
|
+
const f = { inherit: new Map(), unions: [] };
|
|
189
153
|
try {
|
|
190
|
-
// Lineage captures every target's pre-write state before the
|
|
191
|
-
// first write; destructive steps capture whoever owns `l`.
|
|
192
|
-
for (const w of p.writes) {
|
|
193
|
-
if (w.op === 'deleteBlock')
|
|
194
|
-
capture(f, w.id, true);
|
|
195
|
-
else if (w.op === 'mergeBlocks') {
|
|
196
|
-
capture(f, w.from, true);
|
|
197
|
-
capture(f, w.into);
|
|
198
|
-
}
|
|
199
|
-
else if ('id' in w && w.id !== undefined)
|
|
200
|
-
capture(f, w.id);
|
|
201
|
-
}
|
|
202
154
|
for (const w of p.writes)
|
|
203
155
|
writeStep(w, f);
|
|
204
156
|
}
|
|
@@ -215,9 +167,6 @@ export const writeFunnel = (c) => {
|
|
|
215
167
|
return {
|
|
216
168
|
write,
|
|
217
169
|
apply,
|
|
218
|
-
actorOf,
|
|
219
|
-
lineageDepth,
|
|
220
|
-
lineagePending,
|
|
221
170
|
/** Disposal is terminal for writes. */
|
|
222
171
|
dispose: () => {
|
|
223
172
|
disposed = true;
|
package/dist/crdt/doc/gate.d.ts
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
* ```
|
|
26
26
|
*/
|
|
27
27
|
import type { EngineDoc } from '../engine-api.js';
|
|
28
|
-
export declare const SCHEMA_VERSION:
|
|
28
|
+
export declare const SCHEMA_VERSION: 6;
|
|
29
29
|
export declare const SCHEMA_NAME: "edytor-doc";
|
|
30
30
|
export declare const META_KEY: "meta";
|
|
31
31
|
/**
|
|
@@ -87,20 +87,19 @@ export declare class SchemaMismatchError extends Error {
|
|
|
87
87
|
*/
|
|
88
88
|
export declare const assertSchema: (doc: EngineDoc, docName?: string) => void;
|
|
89
89
|
/**
|
|
90
|
-
* Error raised by {@link assertUsableDoc} — the doc cannot host a v14 facade
|
|
91
|
-
*
|
|
92
|
-
*
|
|
93
|
-
* legacy v13 Edytor schema (applied v13 update rows awaiting migration).
|
|
90
|
+
* Error raised by {@link assertUsableDoc} — the doc cannot host a v14 facade:
|
|
91
|
+
* a foreign engine object (a v13 `yjs` Doc — a different CRDT implementation
|
|
92
|
+
* entirely).
|
|
94
93
|
*/
|
|
95
94
|
export declare class UnsupportedDocError extends Error {
|
|
96
|
-
readonly kind: 'foreign'
|
|
97
|
-
constructor(kind: 'foreign'
|
|
95
|
+
readonly kind: 'foreign';
|
|
96
|
+
constructor(kind: 'foreign');
|
|
98
97
|
}
|
|
99
98
|
/**
|
|
100
99
|
* Document-boundary guard run by {@link EdytorDocBinding.create} before the
|
|
101
100
|
* runs view attaches. The facade only speaks the v14 unified-node surface —
|
|
102
101
|
* without this gate a foreign doc dies obscurely inside `buildView`
|
|
103
|
-
* (`registry.forEachAttr is not a function`)
|
|
104
|
-
*
|
|
102
|
+
* (`registry.forEachAttr is not a function`); it fails fast with an
|
|
103
|
+
* actionable error instead.
|
|
105
104
|
*/
|
|
106
105
|
export declare const assertUsableDoc: (doc: EngineDoc) => void;
|
package/dist/crdt/doc/gate.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { isNodeLike, SCHEMA } from '../schema.js';
|
|
2
|
-
import { isLegacyDoc } from '../migration/legacy-schema.js';
|
|
3
2
|
export const SCHEMA_VERSION = SCHEMA.version;
|
|
4
3
|
export const SCHEMA_NAME = SCHEMA.name;
|
|
5
4
|
export const META_KEY = SCHEMA.roots.meta;
|
|
@@ -75,21 +74,15 @@ export const assertSchema = (doc, docName = 'doc') => {
|
|
|
75
74
|
throw new SchemaMismatchError(docName, problem);
|
|
76
75
|
};
|
|
77
76
|
/**
|
|
78
|
-
* Error raised by {@link assertUsableDoc} — the doc cannot host a v14 facade
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
* legacy v13 Edytor schema (applied v13 update rows awaiting migration).
|
|
77
|
+
* Error raised by {@link assertUsableDoc} — the doc cannot host a v14 facade:
|
|
78
|
+
* a foreign engine object (a v13 `yjs` Doc — a different CRDT implementation
|
|
79
|
+
* entirely).
|
|
82
80
|
*/
|
|
83
81
|
export class UnsupportedDocError extends Error {
|
|
84
82
|
kind;
|
|
85
83
|
constructor(kind) {
|
|
86
|
-
super(
|
|
87
|
-
|
|
88
|
-
'migrate it via `crdt.migration` before attaching an editor.'
|
|
89
|
-
: 'Document is not a v14 engine doc — the `blocks` registry is not a ' +
|
|
90
|
-
'unified Y.Node. Use `crdt.createDoc()` (or `new Y.Doc()` from ' +
|
|
91
|
-
'`edytor/crdt`); a v13 `yjs` Doc must be migrated via ' +
|
|
92
|
-
'`crdt.migration` (from its stored updates), not passed to the runtime.');
|
|
84
|
+
super('Document is not a v14 engine doc — the `blocks` registry is not a ' +
|
|
85
|
+
'unified Y.Node. Use `crdt.createDoc()` (or `new Y.Doc()` from `edytor/crdt`).');
|
|
93
86
|
this.kind = kind;
|
|
94
87
|
this.name = 'UnsupportedDocError';
|
|
95
88
|
}
|
|
@@ -98,8 +91,8 @@ export class UnsupportedDocError extends Error {
|
|
|
98
91
|
* Document-boundary guard run by {@link EdytorDocBinding.create} before the
|
|
99
92
|
* runs view attaches. The facade only speaks the v14 unified-node surface —
|
|
100
93
|
* without this gate a foreign doc dies obscurely inside `buildView`
|
|
101
|
-
* (`registry.forEachAttr is not a function`)
|
|
102
|
-
*
|
|
94
|
+
* (`registry.forEachAttr is not a function`); it fails fast with an
|
|
95
|
+
* actionable error instead.
|
|
103
96
|
*/
|
|
104
97
|
export const assertUsableDoc = (doc) => {
|
|
105
98
|
let registry;
|
|
@@ -112,7 +105,4 @@ export const assertUsableDoc = (doc) => {
|
|
|
112
105
|
if (!isNodeLike(registry) || typeof registry.forEachAttr !== 'function') {
|
|
113
106
|
throw new UnsupportedDocError('foreign');
|
|
114
107
|
}
|
|
115
|
-
if (isLegacyDoc(doc)) {
|
|
116
|
-
throw new UnsupportedDocError('legacy');
|
|
117
|
-
}
|
|
118
108
|
};
|
|
@@ -1,27 +1,100 @@
|
|
|
1
|
-
|
|
2
|
-
* The document's history: the undo manager every view's history is (scope,
|
|
3
|
-
* text delete marks, withdrawn creations, the attr repair, the step limit and
|
|
4
|
-
* the purge horizon, lineage for undo and redo).
|
|
5
|
-
*/
|
|
6
|
-
import type { EngineApi, EngineDoc, YUndoManager } from '../engine-api.js';
|
|
1
|
+
import type { EngineApi, EngineDoc, EngineNode } from '../engine-api.js';
|
|
7
2
|
import type { TextDeletes } from '../text/deletes.js';
|
|
8
|
-
import type
|
|
3
|
+
import { type IdSetOf, type StoreStruct } from '../structs.js';
|
|
9
4
|
import { type WriteFunnel } from './funnel.js';
|
|
10
5
|
import type { DocBase } from './reads.js';
|
|
11
6
|
/** The undo steps a document's history keeps by default: older ones are released. */
|
|
12
7
|
export declare const DEFAULT_HISTORY_LIMIT = 200;
|
|
8
|
+
/** One undo or redo step: what its transactions inserted and deleted, and what the views keep on it. */
|
|
9
|
+
export declare class StackItem {
|
|
10
|
+
inserts: IdSetOf;
|
|
11
|
+
deletes: IdSetOf;
|
|
12
|
+
/** Per-view metadata (`session/history.ts`: the selections around the step). */
|
|
13
|
+
readonly meta: Map<string, unknown>;
|
|
14
|
+
constructor(inserts: IdSetOf, deletes: IdSetOf);
|
|
15
|
+
}
|
|
16
|
+
/** A step taken into a stack: added (a new step) or updated (the open one took a transaction). */
|
|
17
|
+
export type StepEvent = {
|
|
18
|
+
stackItem: StackItem;
|
|
19
|
+
origin: unknown;
|
|
20
|
+
type: 'undo' | 'redo';
|
|
21
|
+
};
|
|
22
|
+
export type HistoryOptions = {
|
|
23
|
+
/** The origins whose transactions are captured (by identity, or by constructor). Default `{ null }`. */
|
|
24
|
+
trackedOrigins?: Set<unknown>;
|
|
25
|
+
/** Transactions closer together than this many milliseconds merge into one step. Default 500. */
|
|
26
|
+
captureTimeout?: number;
|
|
27
|
+
/** The undo steps kept; older ones are released. Default {@link DEFAULT_HISTORY_LIMIT}. */
|
|
28
|
+
limit?: number;
|
|
29
|
+
/** Whether a tracked transaction is captured at all. Default: every one. */
|
|
30
|
+
captureTransaction?: (tr: {
|
|
31
|
+
local?: boolean;
|
|
32
|
+
origin?: unknown;
|
|
33
|
+
}) => boolean;
|
|
34
|
+
};
|
|
35
|
+
/** What a history is made over: the document and the rules of its replay. */
|
|
36
|
+
type Rules = {
|
|
37
|
+
Y: EngineApi;
|
|
38
|
+
doc: EngineDoc;
|
|
39
|
+
scope: EngineNode[];
|
|
40
|
+
/** The text delete marks' restore and apply rules (`text/deletes.ts`). */
|
|
41
|
+
marks: {
|
|
42
|
+
restoreFilter(item: unknown): boolean;
|
|
43
|
+
onApply(tr: unknown, step: StackItem): void;
|
|
44
|
+
};
|
|
45
|
+
/** Whether an item a replay would delete is withdrawn instead (`hist.undo.withdraw`). */
|
|
46
|
+
withdraw(item: StoreStruct, step: StackItem): boolean;
|
|
47
|
+
/** Repair the attrs a replay left undefined. */
|
|
48
|
+
repair(step: StackItem): void;
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* A document's undo manager: the undo and redo stacks of the tracked local
|
|
52
|
+
* transactions in its scope. `undo()`/`redo()` replay the top step and
|
|
53
|
+
* return it (`null`: nothing changed); `stopCapturing()` closes the open
|
|
54
|
+
* step; `clear()` drops every step and releases what they kept.
|
|
55
|
+
*/
|
|
56
|
+
export declare class UndoManager {
|
|
57
|
+
#private;
|
|
58
|
+
undoStack: StackItem[];
|
|
59
|
+
redoStack: StackItem[];
|
|
60
|
+
/** Whether an `undo()` is replaying (its transaction is captured into the redo stack). */
|
|
61
|
+
undoing: boolean;
|
|
62
|
+
redoing: boolean;
|
|
63
|
+
/** The step a replay applies, while its transaction runs. */
|
|
64
|
+
currStackItem: StackItem | null;
|
|
65
|
+
/** When the open step last took a transaction (ms since the epoch; 0: no open step). */
|
|
66
|
+
lastChange: number;
|
|
67
|
+
captureTimeout: number;
|
|
68
|
+
readonly trackedOrigins: Set<unknown>;
|
|
69
|
+
captureTransaction: (tr: {
|
|
70
|
+
local?: boolean;
|
|
71
|
+
origin?: unknown;
|
|
72
|
+
}) => boolean;
|
|
73
|
+
readonly limit: number;
|
|
74
|
+
readonly doc: EngineDoc;
|
|
75
|
+
constructor(rules: Rules, options?: HistoryOptions);
|
|
76
|
+
/** Be told of every step taken into a stack (added, or the open one updated). Returns the unsubscribe. */
|
|
77
|
+
observe(f: (event: StepEvent, added: boolean) => void): () => void;
|
|
78
|
+
/** The next transaction starts a step of its own. */
|
|
79
|
+
stopCapturing(): void;
|
|
80
|
+
canUndo(): boolean;
|
|
81
|
+
canRedo(): boolean;
|
|
82
|
+
/** Replay the top undo step; the step, or `null` when nothing changed. */
|
|
83
|
+
undo(): StackItem | null;
|
|
84
|
+
/** Replay the top redo step; the step, or `null` when nothing changed. */
|
|
85
|
+
redo(): StackItem | null;
|
|
86
|
+
/** Drop every step (undo and redo) and release what they kept for their replay. */
|
|
87
|
+
clear(): void;
|
|
88
|
+
destroy: () => void;
|
|
89
|
+
}
|
|
13
90
|
/** What a facade's history is made over: its doc, the write funnel and the bound engine layers. */
|
|
14
|
-
export type HistoryContext = DocBase & Pick<WriteFunnel, 'write' | 'disposed'
|
|
91
|
+
export type HistoryContext = DocBase & Pick<WriteFunnel, 'write' | 'disposed'> & {
|
|
15
92
|
D: TextDeletes;
|
|
16
|
-
BA: BlockAttributionApi;
|
|
17
|
-
/** Each history's release of all its steps (`releaseHistory`). */
|
|
18
|
-
releasers: WeakMap<YUndoManager, () => void>;
|
|
19
93
|
/** Stamp the version record before the history attaches. */
|
|
20
94
|
init: (doc: EngineDoc) => void;
|
|
21
95
|
};
|
|
22
96
|
/** The history factory of one facade. */
|
|
23
97
|
export declare const docHistory: (c: HistoryContext) => {
|
|
24
|
-
createUndoManager: (options?:
|
|
25
|
-
limit?: number;
|
|
26
|
-
}) => YUndoManager;
|
|
98
|
+
createUndoManager: (options?: HistoryOptions) => UndoManager;
|
|
27
99
|
};
|
|
100
|
+
export {};
|