edytor 1.0.0-rc.2 → 1.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 +65 -25
- package/dist/block/block.svelte.d.ts +10 -85
- package/dist/block/block.svelte.js +47 -141
- 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 +8 -10
- package/dist/block/inlineBlock.svelte.js +14 -22
- package/dist/clipboard/createClipboardFragment.js +22 -64
- package/dist/clipboard/fragmentData.js +17 -42
- package/dist/clipboard/htmlFlow.d.ts +6 -1
- package/dist/clipboard/htmlFlow.js +26 -13
- 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 +22 -17
- package/dist/cloudflare/DocumentRoom.js +10 -5
- package/dist/cloudflare/index.d.ts +1 -1
- package/dist/cloudflare/index.js +1 -1
- 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 +20 -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 +9 -30
- package/dist/cloudflare/room/storage.js +52 -104
- 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/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 +160 -119
- package/dist/components/Block.svelte.d.ts +8 -3
- package/dist/components/Content.svelte +91 -44
- package/dist/components/CustomMark.svelte +46 -0
- package/dist/components/CustomMark.svelte.d.ts +11 -0
- package/dist/components/Edytor.svelte +80 -95
- package/dist/components/Edytor.svelte.d.ts +8 -12
- package/dist/components/InlineBlock.svelte +4 -9
- package/dist/components/Mark.svelte +46 -35
- package/dist/components/Mark.svelte.d.ts +7 -0
- 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 +48 -14
- 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 +8 -13
- package/dist/crdt/data.js +30 -70
- 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 +1 -5
- package/dist/crdt/doc/reads.js +38 -49
- 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 +24 -115
- package/dist/crdt/document.js +207 -305
- package/dist/crdt/edytor-doc.d.ts +671 -90
- package/dist/crdt/edytor-doc.js +73 -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 +26 -85
- package/dist/crdt/index.js +21 -47
- package/dist/crdt/operations.d.ts +24 -33
- package/dist/crdt/operations.js +7 -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/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/{plugins/blockHandles → dnd}/autoScroll.d.ts +2 -1
- package/dist/{plugins/blockHandles → dnd}/autoScroll.js +3 -3
- 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 +34 -64
- package/dist/edytor.svelte.js +118 -180
- package/dist/events/beforeInputCommands.d.ts +6 -11
- package/dist/events/beforeInputCommands.js +189 -184
- 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 +33 -72
- package/dist/events/onFocus.d.ts +9 -4
- package/dist/events/onFocus.js +92 -72
- 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 +13 -1
- package/dist/events/onPaste.js +46 -76
- package/dist/index.d.ts +10 -13
- package/dist/index.js +3 -3
- package/dist/kinds.d.ts +4 -6
- package/dist/kinds.js +28 -27
- package/dist/labels.d.ts +91 -314
- package/dist/labels.js +180 -396
- 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 -151
- package/dist/plugins/blockHandles/BlockHandle.svelte.d.ts +2 -2
- package/dist/plugins/blockHandles/BlockHandleController.svelte.d.ts +63 -97
- package/dist/plugins/blockHandles/BlockHandleController.svelte.js +247 -268
- package/dist/plugins/blockHandles/BlockHandles.svelte +46 -29
- package/dist/plugins/blockHandles/BlockHandles.svelte.d.ts +2 -2
- package/dist/plugins/blockHandles/blockHandlesPlugin.d.ts +29 -23
- package/dist/plugins/blockHandles/blockHandlesPlugin.js +130 -162
- package/dist/plugins/blockHandles/dragPreview.d.ts +8 -6
- package/dist/plugins/blockHandles/dragPreview.js +20 -17
- package/dist/plugins/blockHandles/dropIndicator.js +52 -60
- package/dist/plugins/blockHandles/geometry.d.ts +46 -1
- package/dist/plugins/blockHandles/geometry.js +51 -4
- package/dist/plugins/blockMenu/BlockMenuController.svelte.d.ts +59 -28
- package/dist/plugins/blockMenu/BlockMenuController.svelte.js +180 -105
- 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 +79 -0
- package/dist/plugins/chrome.js +87 -0
- package/dist/plugins/code/CodeHeader.svelte +12 -58
- package/dist/plugins/code/CodeHeader.svelte.d.ts +1 -0
- package/dist/plugins/code/CodePlugin.svelte +75 -56
- package/dist/plugins/code/CodePlugin.svelte.d.ts +0 -2
- package/dist/plugins/code/LanguageMenu.svelte +25 -0
- package/dist/plugins/code/LanguageMenu.svelte.d.ts +9 -0
- package/dist/plugins/code/code.css +5 -100
- package/dist/plugins/code/header.svelte.d.ts +47 -0
- package/dist/plugins/code/header.svelte.js +141 -0
- package/dist/plugins/code/languageMenu.svelte.d.ts +84 -0
- package/dist/plugins/code/languageMenu.svelte.js +199 -0
- package/dist/plugins/code/languages.d.ts +21 -10
- package/dist/plugins/code/languages.js +39 -126
- package/dist/plugins/columns/ColumnResize.svelte +13 -25
- 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/resize.svelte.d.ts +14 -51
- package/dist/plugins/columns/resize.svelte.js +70 -164
- 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 -430
- package/dist/plugins/comments/CommentsSidebar.svelte.d.ts +6 -7
- package/dist/plugins/comments/commentsPlugin.d.ts +31 -10
- package/dist/plugins/comments/commentsPlugin.js +12 -10
- package/dist/plugins/equation/EquationEditor.svelte +18 -129
- package/dist/plugins/equation/EquationEditor.svelte.d.ts +2 -1
- package/dist/plugins/equation/EquationPlugin.svelte +123 -168
- package/dist/plugins/equation/EquationPlugin.svelte.d.ts +5 -3
- package/dist/plugins/equation/EquationView.svelte +20 -11
- package/dist/plugins/equation/equation.svelte.d.ts +74 -36
- package/dist/plugins/equation/equation.svelte.js +74 -66
- package/dist/plugins/equation/importUrl.d.ts +6 -0
- package/dist/plugins/equation/importUrl.js +6 -0
- package/dist/plugins/equation/katex.d.ts +8 -0
- package/dist/plugins/equation/katex.js +77 -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 +5 -151
- package/dist/plugins/image/ImagePlugin.svelte +49 -117
- package/dist/plugins/image/ImagePlugin.svelte.d.ts +1 -24
- 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 -57
- package/dist/plugins/image/controls.svelte.js +51 -174
- 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 +39 -24
- package/dist/plugins/index.js +30 -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 +6 -5
- package/dist/plugins/marquee/MarqueeBox.svelte +15 -0
- package/dist/plugins/marquee/MarqueeBox.svelte.d.ts +9 -0
- package/dist/plugins/marquee/MarqueeController.svelte.d.ts +46 -0
- package/dist/plugins/marquee/MarqueeController.svelte.js +243 -0
- package/dist/plugins/marquee/marquee.d.ts +33 -0
- package/dist/plugins/marquee/marquee.js +89 -0
- package/dist/plugins/marquee/marqueePlugin.d.ts +32 -0
- package/dist/plugins/marquee/marqueePlugin.js +68 -0
- package/dist/plugins/media/AudioPlugin.svelte +3 -88
- package/dist/plugins/media/AudioPlugin.svelte.d.ts +1 -4
- package/dist/plugins/media/BookmarkPlugin.svelte +124 -112
- package/dist/plugins/media/BookmarkPlugin.svelte.d.ts +20 -7
- package/dist/plugins/media/EmbedPlugin.svelte +93 -77
- package/dist/plugins/media/EmbedPlugin.svelte.d.ts +21 -9
- package/dist/plugins/media/EmptySlot.svelte +44 -0
- package/dist/plugins/media/EmptySlot.svelte.d.ts +25 -0
- package/dist/plugins/media/FilePlugin.svelte +35 -111
- package/dist/plugins/media/FilePlugin.svelte.d.ts +12 -4
- package/dist/plugins/media/MediaEmpty.svelte +55 -112
- package/dist/plugins/media/MediaEmpty.svelte.d.ts +26 -10
- package/dist/plugins/media/SourceBlock.svelte +164 -0
- package/dist/plugins/media/SourceBlock.svelte.d.ts +33 -0
- package/dist/plugins/media/VideoPlugin.svelte +4 -97
- package/dist/plugins/media/VideoPlugin.svelte.d.ts +2 -5
- package/dist/plugins/media/empty.svelte.d.ts +69 -0
- package/dist/plugins/media/empty.svelte.js +111 -0
- package/dist/plugins/media/media.d.ts +93 -30
- package/dist/plugins/media/media.js +79 -86
- package/dist/plugins/media/urlPaste.svelte.d.ts +9 -32
- package/dist/plugins/media/urlPaste.svelte.js +46 -75
- package/dist/plugins/mention/MentionPlugin.svelte +47 -124
- package/dist/plugins/mention/MentionPlugin.svelte.d.ts +11 -23
- 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 +52 -108
- package/dist/plugins/pageLink/PageLinkPlugin.svelte.d.ts +11 -23
- package/dist/plugins/planned.d.ts +10 -0
- package/dist/plugins/planned.js +12 -0
- package/dist/plugins/richtext/CalloutIcon.svelte +25 -0
- package/dist/plugins/richtext/CalloutIcon.svelte.d.ts +9 -0
- package/dist/plugins/richtext/CalloutIconPicker.svelte +26 -0
- package/dist/plugins/richtext/CalloutIconPicker.svelte.d.ts +9 -0
- package/dist/plugins/richtext/EmptyBody.svelte +25 -0
- package/dist/plugins/richtext/EmptyBody.svelte.d.ts +8 -0
- package/dist/plugins/richtext/RichTextControl.svelte +39 -0
- package/dist/plugins/richtext/RichTextControl.svelte.d.ts +8 -0
- package/dist/plugins/richtext/RichTextPlugin.svelte +272 -148
- package/dist/plugins/richtext/RichTextPlugin.svelte.d.ts +37 -18
- package/dist/plugins/richtext/TodoCheckbox.svelte +10 -21
- package/dist/plugins/richtext/TodoCheckbox.svelte.d.ts +0 -2
- package/dist/plugins/richtext/body.d.ts +9 -0
- package/dist/plugins/richtext/body.js +16 -0
- package/dist/plugins/richtext/calloutIcons.svelte.d.ts +97 -0
- package/dist/plugins/richtext/calloutIcons.svelte.js +214 -0
- 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/slashMenu/SlashMenuController.svelte.d.ts +18 -11
- package/dist/plugins/slashMenu/SlashMenuController.svelte.js +93 -35
- package/dist/plugins/slashMenu/slashMenuPlugin.d.ts +11 -24
- package/dist/plugins/slashMenu/slashMenuPlugin.js +27 -68
- package/dist/plugins/suggestions/SuggestionBars.svelte +32 -84
- package/dist/plugins/suggestions/SuggestionBars.svelte.d.ts +9 -3
- package/dist/plugins/suggestions/suggestionsPlugin.d.ts +10 -16
- package/dist/plugins/suggestions/suggestionsPlugin.js +9 -24
- package/dist/plugins/table/TableChrome.svelte +96 -127
- package/dist/plugins/table/TableChrome.svelte.d.ts +5 -1
- package/dist/plugins/table/TablePlugin.svelte +116 -171
- package/dist/plugins/table/TablePlugin.svelte.d.ts +0 -4
- package/dist/plugins/table/chrome.svelte.d.ts +110 -117
- package/dist/plugins/table/chrome.svelte.js +643 -289
- package/dist/plugins/table/ops.d.ts +47 -0
- package/dist/plugins/table/ops.js +233 -0
- package/dist/plugins/table/table.css +55 -134
- package/dist/plugins/table/table.d.ts +26 -7
- package/dist/plugins/table/table.js +23 -49
- 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 +29 -66
- package/dist/plugins/toolbar/ToolbarController.svelte.js +151 -76
- package/dist/plugins/toolbar/toolbarPlugin.d.ts +14 -13
- package/dist/plugins/toolbar/toolbarPlugin.js +28 -43
- package/dist/plugins/triggers/TriggerController.svelte.d.ts +6 -45
- package/dist/plugins/triggers/TriggerController.svelte.js +51 -96
- 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 +38 -20
- package/dist/plugins/uploads.svelte.js +39 -32
- package/dist/plugins.d.ts +167 -60
- package/dist/selection/domSelection.d.ts +13 -4
- package/dist/selection/domSelection.js +110 -183
- package/dist/selection/pointer.svelte.d.ts +12 -10
- package/dist/selection/pointer.svelte.js +154 -71
- 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 +263 -542
- package/dist/selection/selection.utils.d.ts +34 -11
- package/dist/selection/selection.utils.js +128 -247
- package/dist/selection/visibility.d.ts +11 -8
- package/dist/selection/visibility.js +23 -8
- package/dist/session/announcer.svelte.d.ts +2 -1
- package/dist/session/announcer.svelte.js +7 -3
- package/dist/session/attempt.d.ts +33 -39
- package/dist/session/attempt.js +61 -53
- package/dist/session/bindings.js +108 -139
- package/dist/session/commands.d.ts +47 -22
- package/dist/session/commands.js +206 -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 +15 -21
- package/dist/session/inputRules.js +75 -84
- package/dist/session/keymap.d.ts +1 -6
- package/dist/session/keymap.js +17 -20
- package/dist/session/moves.d.ts +10 -10
- package/dist/session/moves.js +31 -59
- package/dist/session/navigation.d.ts +18 -3
- package/dist/session/navigation.js +194 -153
- package/dist/session/ports.d.ts +7 -0
- package/dist/session/selection.d.ts +4 -3
- package/dist/session/selection.js +8 -0
- package/dist/session/suggestions.svelte.d.ts +1 -1
- package/dist/session/suggestions.svelte.js +64 -47
- 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 +32 -0
- package/dist/surface/lines.js +43 -0
- package/dist/surface/observer.svelte.d.ts +3 -20
- package/dist/surface/observer.svelte.js +73 -77
- package/dist/surface/overlay.d.ts +48 -6
- package/dist/surface/overlay.js +133 -23
- 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 +315 -126
- 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 -525
- package/dist/collaboration/history/HistoryPanel.svelte.d.ts +0 -7
- package/dist/collaboration/history/panel.d.ts +0 -43
- 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 -447
- 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 -116
- package/dist/plugins/image/ImageEmpty.svelte.d.ts +0 -12
- package/dist/plugins/keepInView.d.ts +0 -4
- package/dist/plugins/keepInView.js +0 -6
- package/dist/plugins/media/UrlPasteMenu.svelte +0 -83
- package/dist/plugins/media/UrlPasteMenu.svelte.d.ts +0 -7
- package/dist/plugins/richtext/labels.d.ts +0 -5
- package/dist/plugins/richtext/labels.js +0 -3
- package/dist/plugins/slashMenu/SlashMenu.svelte +0 -360
- package/dist/plugins/slashMenu/SlashMenu.svelte.d.ts +0 -11
- package/dist/plugins/toolbar/LinkCard.svelte +0 -118
- package/dist/plugins/toolbar/LinkCard.svelte.d.ts +0 -7
- package/dist/plugins/toolbar/Toolbar.svelte +0 -400
- package/dist/plugins/toolbar/Toolbar.svelte.d.ts +0 -9
- package/dist/plugins/triggers/TriggerMenu.svelte +0 -144
- package/dist/plugins/triggers/TriggerMenu.svelte.d.ts +0 -7
- package/dist/session/props.d.ts +0 -28
- package/dist/session/props.js +0 -162
- 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
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* A relative position is based on the Yjs model and is not affected by document changes.
|
|
3
|
-
* E.g. If you place a relative position before a certain character, it will always point to this character.
|
|
4
|
-
* If you place a relative position at the end of a type, it will always point to the end of the type.
|
|
5
|
-
*
|
|
6
|
-
* A numeric position is often unsuited for user selections, because it does not change when content is inserted
|
|
7
|
-
* before or after.
|
|
8
|
-
*
|
|
9
|
-
* ```Insert(0, 'x')('a|bc') = 'xa|bc'``` Where | is the relative position.
|
|
10
|
-
*
|
|
11
|
-
* One of the properties must be defined.
|
|
12
|
-
*
|
|
13
|
-
* @example
|
|
14
|
-
* // Current cursor position is at position 10
|
|
15
|
-
* const relativePosition = createRelativePositionFromIndex(yText, 10)
|
|
16
|
-
* // modify yText
|
|
17
|
-
* yText.insert(0, 'abc')
|
|
18
|
-
* yText.delete(3, 10)
|
|
19
|
-
* // Compute the cursor position
|
|
20
|
-
* const absolutePosition = createAbsolutePositionFromRelativePosition(y, relativePosition)
|
|
21
|
-
* absolutePosition.type === yText // => true
|
|
22
|
-
* console.log('cursor location is ' + absolutePosition.index) // => cursor location is 3
|
|
23
|
-
*
|
|
24
|
-
*/
|
|
25
|
-
export class RelativePosition {
|
|
26
|
-
/**
|
|
27
|
-
* @param {ID|null} type
|
|
28
|
-
* @param {string|null} tname
|
|
29
|
-
* @param {ID|null} item
|
|
30
|
-
* @param {number} assoc
|
|
31
|
-
*/
|
|
32
|
-
constructor(type: ID | null, tname: string | null, item: ID | null, assoc?: number);
|
|
33
|
-
/**
|
|
34
|
-
* @type {ID|null}
|
|
35
|
-
*/
|
|
36
|
-
type: ID | null;
|
|
37
|
-
/**
|
|
38
|
-
* @type {string|null}
|
|
39
|
-
*/
|
|
40
|
-
tname: string | null;
|
|
41
|
-
/**
|
|
42
|
-
* @type {ID | null}
|
|
43
|
-
*/
|
|
44
|
-
item: ID | null;
|
|
45
|
-
/**
|
|
46
|
-
* A relative position is associated to a specific character. By default
|
|
47
|
-
* assoc >= 0, the relative position is associated to the character
|
|
48
|
-
* after the meant position.
|
|
49
|
-
* I.e. position 1 in 'ab' is associated to character 'b'.
|
|
50
|
-
*
|
|
51
|
-
* If assoc < 0, then the relative position is associated to the character
|
|
52
|
-
* before the meant position.
|
|
53
|
-
*
|
|
54
|
-
* @type {number}
|
|
55
|
-
*/
|
|
56
|
-
assoc: number;
|
|
57
|
-
}
|
|
58
|
-
export function relativePositionToJSON(rpos: RelativePosition): any;
|
|
59
|
-
export function createRelativePositionFromJSON(json: any): RelativePosition;
|
|
60
|
-
export class AbsolutePosition {
|
|
61
|
-
/**
|
|
62
|
-
* @param {YNode<any>} type
|
|
63
|
-
* @param {number} index
|
|
64
|
-
* @param {number} [assoc]
|
|
65
|
-
*/
|
|
66
|
-
constructor(type: YNode<any>, index: number, assoc?: number);
|
|
67
|
-
/**
|
|
68
|
-
* @type {YNode<any>}
|
|
69
|
-
*/
|
|
70
|
-
type: YNode<any>;
|
|
71
|
-
/**
|
|
72
|
-
* @type {number}
|
|
73
|
-
*/
|
|
74
|
-
index: number;
|
|
75
|
-
assoc: number;
|
|
76
|
-
}
|
|
77
|
-
export function createAbsolutePosition(type: YNode<any>, index: number, assoc?: number): AbsolutePosition;
|
|
78
|
-
export function createRelativePosition(type: YNode<any>, item: ID | null, assoc?: number): RelativePosition;
|
|
79
|
-
export function createRelativePositionFromTypeIndex(type: YNode, index: number, assoc?: number, renderer?: import("./renderer-helpers.js").AbstractRenderer | null): RelativePosition;
|
|
80
|
-
export function createAbsolutePositionFromRelativePosition(rpos: RelativePosition, doc: Doc, followUndoneDeletions?: boolean, renderer?: import("./renderer-helpers.js").AbstractRenderer | null): AbsolutePosition | null;
|
|
@@ -1,205 +0,0 @@
|
|
|
1
|
-
export class StackItem {
|
|
2
|
-
/**
|
|
3
|
-
* @param {IdSet} insertions
|
|
4
|
-
* @param {IdSet} deletions
|
|
5
|
-
*/
|
|
6
|
-
constructor(insertions: IdSet, deletions: IdSet);
|
|
7
|
-
inserts: import("./ids.js").IdSet;
|
|
8
|
-
deletes: import("./ids.js").IdSet;
|
|
9
|
-
/**
|
|
10
|
-
* Use this to save and restore metadata like selection range
|
|
11
|
-
*/
|
|
12
|
-
meta: Map<any, any>;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* @typedef {Object} UndoManagerOptions
|
|
16
|
-
* @property {number} [UndoManagerOptions.captureTimeout=500]
|
|
17
|
-
* @property {function(Transaction):boolean} [UndoManagerOptions.captureTransaction] Do not capture changes of a Transaction if result false.
|
|
18
|
-
* @property {function(Item):boolean} [UndoManagerOptions.deleteFilter=()=>true] Sometimes
|
|
19
|
-
* it is necessary to filter what an Undo/Redo operation can delete. If this
|
|
20
|
-
* filter returns false, the type/item won't be deleted even it is in the
|
|
21
|
-
* undo/redo scope.
|
|
22
|
-
* @property {Set<any>} [UndoManagerOptions.trackedOrigins=new Set([null])]
|
|
23
|
-
* @property {boolean} [ignoreRemoteAttributeChanges] By default, the UndoManager will never overwrite remote changes. In some cases this might be the expected behavior. This property enables overwriting remote changes on attribute changes. (previously named `ignoreRemoteMapChanges`)
|
|
24
|
-
* @property {Doc} [doc] The document that this UndoManager operates on. Only needed if typeScope is empty.
|
|
25
|
-
* @property {function(Item,StackItem):boolean} [restoreFilter] Whether popping the stack item may re-create the deleted item (default: always). // YP11
|
|
26
|
-
* @property {function(Transaction,StackItem):void} [onApply] Called inside the undo/redo transaction once the stack item is applied; its writes join the step. // YP11
|
|
27
|
-
* @property {function(Item,StackItem,Transaction):boolean} [withdraw] Asked for every item a popped stack item would delete; `true` keeps it (the hook may write in its place, in the transaction) and counts as a change (default: never). // YP12
|
|
28
|
-
*/
|
|
29
|
-
/**
|
|
30
|
-
* @typedef {Object} StackItemEvent
|
|
31
|
-
* @property {StackItem} StackItemEvent.stackItem
|
|
32
|
-
* @property {any} StackItemEvent.origin
|
|
33
|
-
* @property {'undo'|'redo'} StackItemEvent.type
|
|
34
|
-
* @property {Map<YNode,Array<YEvent<any>>>} StackItemEvent.changedParentTypes
|
|
35
|
-
*/
|
|
36
|
-
/**
|
|
37
|
-
* Fires 'stack-item-added' event when a stack item was added to either the undo- or
|
|
38
|
-
* the redo-stack. You may store additional stack information via the
|
|
39
|
-
* metadata property on `event.stackItem.meta` (it is a `Map` of metadata properties).
|
|
40
|
-
* Fires 'stack-item-popped' event when a stack item was popped from either the
|
|
41
|
-
* undo- or the redo-stack. You may restore the saved stack information from `event.stackItem.meta`.
|
|
42
|
-
*
|
|
43
|
-
* @extends {ObservableV2<{'stack-item-added':function(StackItemEvent, UndoManager):void, 'stack-item-popped': function(StackItemEvent, UndoManager):void, 'stack-cleared': function({ undoStackCleared: boolean, redoStackCleared: boolean }):void, 'stack-item-updated': function(StackItemEvent, UndoManager):void }>}
|
|
44
|
-
*/
|
|
45
|
-
export class UndoManager extends ObservableV2<{
|
|
46
|
-
'stack-item-added': (arg0: StackItemEvent, arg1: UndoManager) => void;
|
|
47
|
-
'stack-item-popped': (arg0: StackItemEvent, arg1: UndoManager) => void;
|
|
48
|
-
'stack-cleared': (arg0: {
|
|
49
|
-
undoStackCleared: boolean;
|
|
50
|
-
redoStackCleared: boolean;
|
|
51
|
-
}) => void;
|
|
52
|
-
'stack-item-updated': (arg0: StackItemEvent, arg1: UndoManager) => void;
|
|
53
|
-
}> {
|
|
54
|
-
/**
|
|
55
|
-
* @param {Doc|YNode|Array<YNode>} typeScope Limits the scope of the UndoManager. If this is set to a ydoc instance, all changes on that ydoc will be undone. If set to a specific type, only changes on that type or its children will be undone. Also accepts an array of types.
|
|
56
|
-
* @param {UndoManagerOptions} options
|
|
57
|
-
*/
|
|
58
|
-
constructor(typeScope: Doc | YNode | Array<YNode>, { captureTimeout, captureTransaction, deleteFilter, trackedOrigins, ignoreRemoteAttributeChanges, restoreFilter, onApply, withdraw, doc }?: UndoManagerOptions);
|
|
59
|
-
/**
|
|
60
|
-
* @type {Array<YNode | Doc>}
|
|
61
|
-
*/
|
|
62
|
-
scope: Array<YNode | Doc>;
|
|
63
|
-
doc: Doc;
|
|
64
|
-
deleteFilter: (arg0: Item) => boolean;
|
|
65
|
-
restoreFilter: (arg0: Item, arg1: StackItem) => boolean;
|
|
66
|
-
onApply: (arg0: Transaction, arg1: StackItem) => void;
|
|
67
|
-
withdraw: (arg0: Item, arg1: StackItem, arg2: Transaction) => boolean;
|
|
68
|
-
trackedOrigins: Set<any>;
|
|
69
|
-
captureTransaction: (arg0: Transaction) => boolean;
|
|
70
|
-
/**
|
|
71
|
-
* @type {Array<StackItem>}
|
|
72
|
-
*/
|
|
73
|
-
undoStack: Array<StackItem>;
|
|
74
|
-
/**
|
|
75
|
-
* @type {Array<StackItem>}
|
|
76
|
-
*/
|
|
77
|
-
redoStack: Array<StackItem>;
|
|
78
|
-
/**
|
|
79
|
-
* Whether the client is currently undoing (calling UndoManager.undo)
|
|
80
|
-
*
|
|
81
|
-
* @type {boolean}
|
|
82
|
-
*/
|
|
83
|
-
undoing: boolean;
|
|
84
|
-
redoing: boolean;
|
|
85
|
-
/**
|
|
86
|
-
* The currently popped stack item if UndoManager.undoing or UndoManager.redoing
|
|
87
|
-
*
|
|
88
|
-
* @type {StackItem|null}
|
|
89
|
-
*/
|
|
90
|
-
currStackItem: StackItem | null;
|
|
91
|
-
lastChange: number;
|
|
92
|
-
ignoreRemoteAttributeChanges: boolean;
|
|
93
|
-
captureTimeout: number;
|
|
94
|
-
/**
|
|
95
|
-
* @param {Transaction} transaction
|
|
96
|
-
*/
|
|
97
|
-
afterTransactionHandler: (transaction: Transaction) => void;
|
|
98
|
-
/**
|
|
99
|
-
* Extend the scope.
|
|
100
|
-
*
|
|
101
|
-
* @param {Array<YNode | Doc> | YNode | Doc} ynodes
|
|
102
|
-
*/
|
|
103
|
-
addToScope(ynodes: Array<YNode | Doc> | YNode | Doc): void;
|
|
104
|
-
/**
|
|
105
|
-
* @param {any} origin
|
|
106
|
-
*/
|
|
107
|
-
addTrackedOrigin(origin: any): void;
|
|
108
|
-
/**
|
|
109
|
-
* @param {any} origin
|
|
110
|
-
*/
|
|
111
|
-
removeTrackedOrigin(origin: any): void;
|
|
112
|
-
clear(clearUndoStack?: boolean, clearRedoStack?: boolean): void;
|
|
113
|
-
/**
|
|
114
|
-
* UndoManager merges Undo-StackItem if they are created within time-gap
|
|
115
|
-
* smaller than `options.captureTimeout`. Call `um.stopCapturing()` so that the next
|
|
116
|
-
* StackItem won't be merged.
|
|
117
|
-
*
|
|
118
|
-
*
|
|
119
|
-
* @example
|
|
120
|
-
* // without stopCapturing
|
|
121
|
-
* ytext.insert(0, 'a')
|
|
122
|
-
* ytext.insert(1, 'b')
|
|
123
|
-
* um.undo()
|
|
124
|
-
* ytext.toString() // => '' (note that 'ab' was removed)
|
|
125
|
-
* // with stopCapturing
|
|
126
|
-
* ytext.insert(0, 'a')
|
|
127
|
-
* um.stopCapturing()
|
|
128
|
-
* ytext.insert(0, 'b')
|
|
129
|
-
* um.undo()
|
|
130
|
-
* ytext.toString() // => 'a' (note that only 'b' was removed)
|
|
131
|
-
*
|
|
132
|
-
*/
|
|
133
|
-
stopCapturing(): void;
|
|
134
|
-
/**
|
|
135
|
-
* Undo last changes on type.
|
|
136
|
-
*
|
|
137
|
-
* @return {StackItem?} Returns StackItem if a change was applied
|
|
138
|
-
*/
|
|
139
|
-
undo(): StackItem | null;
|
|
140
|
-
/**
|
|
141
|
-
* Redo last undo operation.
|
|
142
|
-
*
|
|
143
|
-
* @return {StackItem?} Returns StackItem if a change was applied
|
|
144
|
-
*/
|
|
145
|
-
redo(): StackItem | null;
|
|
146
|
-
/**
|
|
147
|
-
* Are undo steps available?
|
|
148
|
-
*
|
|
149
|
-
* @return {boolean} `true` if undo is possible
|
|
150
|
-
*/
|
|
151
|
-
canUndo(): boolean;
|
|
152
|
-
/**
|
|
153
|
-
* Are redo steps available?
|
|
154
|
-
*
|
|
155
|
-
* @return {boolean} `true` if redo is possible
|
|
156
|
-
*/
|
|
157
|
-
canRedo(): boolean;
|
|
158
|
-
}
|
|
159
|
-
export function redoItem(transaction: Transaction, item: Item, redoitems: Set<Item>, itemsToDelete: IdSet, ignoreRemoteAttributeChanges: boolean, um: import("../utils/UndoManager.js").UndoManager): Item | null;
|
|
160
|
-
export function keepItem(item: Item | null, keep: boolean): void;
|
|
161
|
-
export type UndoManagerOptions = {
|
|
162
|
-
captureTimeout?: number | undefined;
|
|
163
|
-
/**
|
|
164
|
-
* Do not capture changes of a Transaction if result false.
|
|
165
|
-
*/
|
|
166
|
-
captureTransaction?: ((arg0: Transaction) => boolean) | undefined;
|
|
167
|
-
/**
|
|
168
|
-
* Sometimes
|
|
169
|
-
* it is necessary to filter what an Undo/Redo operation can delete. If this
|
|
170
|
-
* filter returns false, the type/item won't be deleted even it is in the
|
|
171
|
-
* undo/redo scope.
|
|
172
|
-
*/
|
|
173
|
-
deleteFilter?: ((arg0: Item) => boolean) | undefined;
|
|
174
|
-
trackedOrigins?: Set<any> | undefined;
|
|
175
|
-
/**
|
|
176
|
-
* By default, the UndoManager will never overwrite remote changes. In some cases this might be the expected behavior. This property enables overwriting remote changes on attribute changes. (previously named `ignoreRemoteMapChanges`)
|
|
177
|
-
*/
|
|
178
|
-
ignoreRemoteAttributeChanges?: boolean | undefined;
|
|
179
|
-
/**
|
|
180
|
-
* The document that this UndoManager operates on. Only needed if typeScope is empty.
|
|
181
|
-
*/
|
|
182
|
-
doc?: Doc | undefined;
|
|
183
|
-
/**
|
|
184
|
-
* Whether popping the stack item may re-create the deleted item (default: always). // YP11
|
|
185
|
-
*/
|
|
186
|
-
restoreFilter?: ((arg0: Item, arg1: StackItem) => boolean) | undefined;
|
|
187
|
-
/**
|
|
188
|
-
* Called inside the undo/redo transaction once the stack item is applied; its writes join the step. // YP11
|
|
189
|
-
*/
|
|
190
|
-
onApply?: ((arg0: Transaction, arg1: StackItem) => void) | undefined;
|
|
191
|
-
/**
|
|
192
|
-
* Asked for every item a popped stack item would delete; `true` keeps it (the hook may write in its place, in the transaction) and counts as a change (default: never). // YP12
|
|
193
|
-
*/
|
|
194
|
-
withdraw?: ((arg0: Item, arg1: StackItem, arg2: Transaction) => boolean) | undefined;
|
|
195
|
-
};
|
|
196
|
-
export type StackItemEvent = {
|
|
197
|
-
stackItem: StackItem;
|
|
198
|
-
origin: any;
|
|
199
|
-
type: "undo" | "redo";
|
|
200
|
-
changedParentTypes: Map<YNode, Array<YEvent<any>>>;
|
|
201
|
-
};
|
|
202
|
-
import { ObservableV2 } from 'lib0-v14/observable';
|
|
203
|
-
import { YNode } from '../ynode.js';
|
|
204
|
-
import { Doc } from './Doc.js';
|
|
205
|
-
import { Item } from '../structs/Item.js';
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @template {DeltaConf} DConf
|
|
3
|
-
* YEvent describes the changes on a YNode.
|
|
4
|
-
*/
|
|
5
|
-
export class YEvent<DConf extends DeltaConf> {
|
|
6
|
-
/**
|
|
7
|
-
* @param {YNode<DConf>} target The changed type.
|
|
8
|
-
* @param {import('./Transaction.js').Transaction} transaction
|
|
9
|
-
* @param {Set<any>?} subs The keys that changed
|
|
10
|
-
*/
|
|
11
|
-
constructor(target: YNode<DConf>, transaction: import("./Transaction.js").Transaction, subs: Set<any> | null);
|
|
12
|
-
/**
|
|
13
|
-
* The type on which this event was created on.
|
|
14
|
-
* @type {import('../ynode.js').YNode<DConf>}
|
|
15
|
-
*/
|
|
16
|
-
target: import("../ynode.js").YNode<DConf>;
|
|
17
|
-
/**
|
|
18
|
-
* The current target on which the observe callback is called.
|
|
19
|
-
* @type {YNode<any>}
|
|
20
|
-
*/
|
|
21
|
-
currentTarget: YNode<any>;
|
|
22
|
-
/**
|
|
23
|
-
* The transaction that triggered this event.
|
|
24
|
-
* @type {import('./Transaction.js').Transaction}
|
|
25
|
-
*/
|
|
26
|
-
transaction: import("./Transaction.js").Transaction;
|
|
27
|
-
/**
|
|
28
|
-
* @type {Delta<import('../ynode.js').DeltaConfDeltaToYNode<DConf>>|null}
|
|
29
|
-
*/
|
|
30
|
-
_delta: Delta<import("../ynode.js").DeltaConfDeltaToYNode<DConf>> | null;
|
|
31
|
-
/**
|
|
32
|
-
* @type {Delta<DConf>|null}
|
|
33
|
-
*/
|
|
34
|
-
_deltaDeep: Delta<DConf> | null;
|
|
35
|
-
/**
|
|
36
|
-
* Whether the children changed.
|
|
37
|
-
* @type {Boolean}
|
|
38
|
-
* @private
|
|
39
|
-
*/
|
|
40
|
-
private childListChanged;
|
|
41
|
-
/**
|
|
42
|
-
* Set of all changed attributes.
|
|
43
|
-
* @type {Set<string>}
|
|
44
|
-
*/
|
|
45
|
-
keysChanged: Set<string>;
|
|
46
|
-
/**
|
|
47
|
-
* Check if a struct is deleted by this event.
|
|
48
|
-
*
|
|
49
|
-
* In contrast to change.deleted, this method also returns true if the struct was added and then deleted.
|
|
50
|
-
*
|
|
51
|
-
* @param {AbstractStruct} struct
|
|
52
|
-
* @return {boolean}
|
|
53
|
-
*/
|
|
54
|
-
deletes(struct: AbstractStruct): boolean;
|
|
55
|
-
/**
|
|
56
|
-
* Check if a struct is added by this event.
|
|
57
|
-
*
|
|
58
|
-
* In contrast to change.deleted, this method also returns true if the struct was added and then deleted.
|
|
59
|
-
*
|
|
60
|
-
* @param {AbstractStruct} struct
|
|
61
|
-
* @return {boolean}
|
|
62
|
-
*/
|
|
63
|
-
adds(struct: AbstractStruct): boolean;
|
|
64
|
-
/**
|
|
65
|
-
* @template {boolean} [Deep=false]
|
|
66
|
-
* @param {object} [opts]
|
|
67
|
-
* @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
|
|
68
|
-
* @param {Deep} [opts.deep]
|
|
69
|
-
* @return {Deep extends true ? Delta<DConf> : Delta<import('../ynode.js').DeltaConfDeltaToYNode<DConf>>} The Delta representation of this type.
|
|
70
|
-
*
|
|
71
|
-
* @public
|
|
72
|
-
*/
|
|
73
|
-
public getDelta<Deep extends boolean = false>({ renderer, deep }?: {
|
|
74
|
-
renderer?: import("./renderer-helpers.js").AbstractRenderer | null | undefined;
|
|
75
|
-
deep?: Deep | undefined;
|
|
76
|
-
}): Deep extends true ? Delta<DConf> : Delta<import("../ynode.js").DeltaConfDeltaToYNode<DConf>>;
|
|
77
|
-
/**
|
|
78
|
-
* Compute the changes in the delta format.
|
|
79
|
-
* A {@link https://quilljs.com/docs/delta/|Quill Delta}) that represents the changes on the document.
|
|
80
|
-
*
|
|
81
|
-
* @type {Delta<import('../ynode.js').DeltaConfDeltaToYNode<DConf>>} The Delta representation of this type.
|
|
82
|
-
* @public
|
|
83
|
-
*/
|
|
84
|
-
public get delta(): Delta<import("../ynode.js").DeltaConfDeltaToYNode<DConf>>;
|
|
85
|
-
/**
|
|
86
|
-
* Compute the changes in the delta format.
|
|
87
|
-
* A {@link https://quilljs.com/docs/delta/|Quill Delta}) that represents the changes on the document.
|
|
88
|
-
*
|
|
89
|
-
* @type {Delta<DConf>} The Delta representation of this type.
|
|
90
|
-
* @public
|
|
91
|
-
*/
|
|
92
|
-
public get deltaDeep(): Delta<DConf>;
|
|
93
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
export function createContentMap(inserts?: IdMap<any>, deletes?: IdMap<any>): ContentMap;
|
|
2
|
-
export function writeContentMap(encoder: import("./UpdateEncoder.js").IdSetEncoder, contentMap: ContentMap): void;
|
|
3
|
-
export function readContentMap(decoder: import("./UpdateDecoder.js").IdSetDecoder): ContentMap;
|
|
4
|
-
export function encodeContentMap(contentMap: ContentMap): Uint8Array<ArrayBuffer>;
|
|
5
|
-
export function decodeContentMap(buf: Uint8Array<any>): import("./ids.js").ContentMap;
|
|
6
|
-
/**
|
|
7
|
-
* Schema of {@link ContentIds} - the shape produced by {@link createContentIds}.
|
|
8
|
-
*
|
|
9
|
-
* Structural: a `ContentIds` is a plain object literal, so there is no prototype to tag. The
|
|
10
|
-
* *nominal* {@link $idSet} checks on the two fields are what discriminate it from a
|
|
11
|
-
* {@link ContentMap} in both directions.
|
|
12
|
-
*
|
|
13
|
-
* @type {s.Schema<ContentIds>}
|
|
14
|
-
*/
|
|
15
|
-
export const $contentIds: s.Schema<ContentIds>;
|
|
16
|
-
/**
|
|
17
|
-
* Schema of {@link ContentMap} - the shape produced by {@link createContentMap}.
|
|
18
|
-
*
|
|
19
|
-
* See {@link $contentIds}. Use {@link $idMap} on the individual fields to additionally constrain
|
|
20
|
-
* the mapped-value type; `ContentMap` itself hardcodes `IdMap<any>`.
|
|
21
|
-
*
|
|
22
|
-
* @type {s.Schema<ContentMap>}
|
|
23
|
-
*/
|
|
24
|
-
export const $contentMap: s.Schema<ContentMap>;
|
|
25
|
-
import * as s from 'lib0-v14/schema';
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
export const attributionJsonSchema: s.Schema<{
|
|
2
|
-
insert?: string[] | undefined;
|
|
3
|
-
insertAt?: number | undefined;
|
|
4
|
-
delete?: string[] | undefined;
|
|
5
|
-
deleteAt?: number | undefined;
|
|
6
|
-
format?: {
|
|
7
|
-
[x: string]: string[];
|
|
8
|
-
} | undefined;
|
|
9
|
-
formatAt?: number | undefined;
|
|
10
|
-
}>;
|
|
11
|
-
/**
|
|
12
|
-
* @todo rename this to `insertBy`, `insertAt`, ..
|
|
13
|
-
*
|
|
14
|
-
* @typedef {s.Unwrap<typeof attributionJsonSchema>} Attribution
|
|
15
|
-
*/
|
|
16
|
-
/**
|
|
17
|
-
* @template T
|
|
18
|
-
*/
|
|
19
|
-
export class AttributedContent<T> {
|
|
20
|
-
/**
|
|
21
|
-
* @param {AbstractContent} content
|
|
22
|
-
* @param {number} clock
|
|
23
|
-
* @param {boolean} deleted
|
|
24
|
-
* @param {Array<ContentAttribute<T>> | null} attrs
|
|
25
|
-
* @param {0|1|2|3} renderBehavior
|
|
26
|
-
*/
|
|
27
|
-
constructor(content: AbstractContent, clock: number, deleted: boolean, attrs: Array<ContentAttribute<T>> | null, renderBehavior: 0 | 1 | 2 | 3);
|
|
28
|
-
content: import("../structs/Item.js").AbstractContent;
|
|
29
|
-
clock: number;
|
|
30
|
-
deleted: boolean;
|
|
31
|
-
attrs: import("./ids.js").ContentAttribute<T>[] | null;
|
|
32
|
-
render: boolean;
|
|
33
|
-
/**
|
|
34
|
-
* Fresh content that was deleted in the same transaction (mode `3`): even in a
|
|
35
|
-
* `retainDeletes` render it must produce an *insert* — the consuming state (e.g. the
|
|
36
|
-
* maintained `delta` cache) has never seen this content, so there is nothing to retain.
|
|
37
|
-
*/
|
|
38
|
-
fresh: boolean;
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Abstract base class for renderers. A renderer renders Content (with Attributions) to a delta.
|
|
42
|
-
*
|
|
43
|
-
* Should fire an event when the attributions changed _after_ the original change happens. This
|
|
44
|
-
* Event will be used to update the attribution on the current content.
|
|
45
|
-
*
|
|
46
|
-
* Only items claimed via {@link AbstractRenderer#hasItem} reach the renderer — everything else is
|
|
47
|
-
* rendered by the generic fast path (as-is, without attributions, deleted content invisible).
|
|
48
|
-
*
|
|
49
|
-
* @extends {ObservableV2<{change:(idset:IdSet,origin:any,local:boolean)=>void}>}
|
|
50
|
-
*/
|
|
51
|
-
export class AbstractRenderer extends ObservableV2<{
|
|
52
|
-
change: (idset: IdSet, origin: any, local: boolean) => void;
|
|
53
|
-
}> {
|
|
54
|
-
constructor();
|
|
55
|
-
/**
|
|
56
|
-
* Ids of the content this renderer may render non-normally (attributed, restored, hidden, …).
|
|
57
|
-
* May over-approximate — {@link AbstractRenderer#readContent} remains authoritative for what
|
|
58
|
-
* is actually rendered. Content outside this set is rendered by the generic fast path without
|
|
59
|
-
* consulting the renderer.
|
|
60
|
-
*
|
|
61
|
-
* @type {IdSet}
|
|
62
|
-
*/
|
|
63
|
-
attributed: IdSet;
|
|
64
|
-
/**
|
|
65
|
-
* Whether `item` (any part of its id range) must be rendered by this renderer. Items for which
|
|
66
|
-
* this returns `false` are rendered by the generic fast path.
|
|
67
|
-
*
|
|
68
|
-
* @param {Item} item
|
|
69
|
-
* @return {boolean}
|
|
70
|
-
*/
|
|
71
|
-
hasItem(item: Item): boolean;
|
|
72
|
-
/**
|
|
73
|
-
* @param {Array<AttributedContent<any>>} _contents - where to write the result
|
|
74
|
-
* @param {number} _client
|
|
75
|
-
* @param {number} _clock
|
|
76
|
-
* @param {boolean} _deleted
|
|
77
|
-
* @param {AbstractContent} _content
|
|
78
|
-
* @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).
|
|
79
|
-
*/
|
|
80
|
-
readContent(_contents: Array<AttributedContent<any>>, _client: number, _clock: number, _deleted: boolean, _content: AbstractContent, _shouldRender: 0 | 1 | 2 | 3): void;
|
|
81
|
-
/**
|
|
82
|
-
* Calculate the length of the attributed content. This is used by iterators that walk through the
|
|
83
|
-
* content.
|
|
84
|
-
*
|
|
85
|
-
* If the content is not countable, it should return 0.
|
|
86
|
-
*
|
|
87
|
-
* @param {Item} _item
|
|
88
|
-
* @return {number}
|
|
89
|
-
*/
|
|
90
|
-
contentLength(_item: Item): number;
|
|
91
|
-
$type: s.Schema<AbstractRenderer>;
|
|
92
|
-
}
|
|
93
|
-
export const $renderer: s.Schema<AbstractRenderer>;
|
|
94
|
-
export function rendererContentLength(renderer: AbstractRenderer | null, item: Item): number;
|
|
95
|
-
export function readItemPieces(out: Array<AttributedContent<any>>, renderer: AbstractRenderer | null, item: import("../structs/Item.js").Item, scratch?: AttributedContent<any> | null): void;
|
|
96
|
-
export type Attribution = s.Unwrap<typeof attributionJsonSchema>;
|
|
97
|
-
import * as s from 'lib0-v14/schema';
|
|
98
|
-
import { ObservableV2 } from 'lib0-v14/observable';
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import * as f from 'lib0-v14/function'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* General event handler implementation.
|
|
5
|
-
*
|
|
6
|
-
* @template ARG0, ARG1
|
|
7
|
-
*
|
|
8
|
-
* @private
|
|
9
|
-
*/
|
|
10
|
-
export class EventHandler {
|
|
11
|
-
constructor () {
|
|
12
|
-
/**
|
|
13
|
-
* @type {Array<function(ARG0, ARG1):void>}
|
|
14
|
-
*/
|
|
15
|
-
this.l = []
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* @template ARG0,ARG1
|
|
21
|
-
* @returns {EventHandler<ARG0,ARG1>}
|
|
22
|
-
*
|
|
23
|
-
* @private
|
|
24
|
-
* @function
|
|
25
|
-
*/
|
|
26
|
-
export const createEventHandler = () => new EventHandler()
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Adds an event listener that is called when
|
|
30
|
-
* {@link EventHandler#callEventListeners} is called.
|
|
31
|
-
*
|
|
32
|
-
* @template ARG0,ARG1
|
|
33
|
-
* @param {EventHandler<ARG0,ARG1>} eventHandler
|
|
34
|
-
* @param {function(ARG0,ARG1):void} f The event handler.
|
|
35
|
-
*
|
|
36
|
-
* @private
|
|
37
|
-
* @function
|
|
38
|
-
*/
|
|
39
|
-
export const addEventHandlerListener = (eventHandler, f) =>
|
|
40
|
-
eventHandler.l.push(f)
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Removes an event listener.
|
|
44
|
-
*
|
|
45
|
-
* @template ARG0,ARG1
|
|
46
|
-
* @param {EventHandler<ARG0,ARG1>} eventHandler
|
|
47
|
-
* @param {function(ARG0,ARG1):void} f The event handler that was added with
|
|
48
|
-
* {@link EventHandler#addEventListener}
|
|
49
|
-
*
|
|
50
|
-
* @private
|
|
51
|
-
* @function
|
|
52
|
-
*/
|
|
53
|
-
export const removeEventHandlerListener = (eventHandler, f) => {
|
|
54
|
-
const l = eventHandler.l
|
|
55
|
-
const len = l.length
|
|
56
|
-
eventHandler.l = l.filter(g => f !== g)
|
|
57
|
-
if (len === eventHandler.l.length) {
|
|
58
|
-
console.error('[yjs] Tried to remove event handler that doesn\'t exist.')
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
* Call all event listeners that were added via
|
|
64
|
-
* {@link EventHandler#addEventListener}.
|
|
65
|
-
*
|
|
66
|
-
* @template ARG0,ARG1
|
|
67
|
-
* @param {EventHandler<ARG0,ARG1>} eventHandler
|
|
68
|
-
* @param {ARG0} arg0
|
|
69
|
-
* @param {ARG1} arg1
|
|
70
|
-
*
|
|
71
|
-
* @private
|
|
72
|
-
* @function
|
|
73
|
-
*/
|
|
74
|
-
export const callEventHandlerListeners = (eventHandler, arg0, arg1) =>
|
|
75
|
-
f.callAll(eventHandler.l, [arg0, arg1])
|