@portabletext/editor 1.45.3 → 1.45.4
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/lib/_chunks-cjs/behavior.core.cjs.map +1 -1
- package/lib/_chunks-cjs/editor-provider.cjs +57 -57
- package/lib/_chunks-cjs/editor-provider.cjs.map +1 -1
- package/lib/_chunks-es/behavior.core.js.map +1 -1
- package/lib/_chunks-es/editor-provider.js +57 -57
- package/lib/_chunks-es/editor-provider.js.map +1 -1
- package/lib/behaviors/index.d.cts +26 -36
- package/lib/behaviors/index.d.ts +26 -36
- package/lib/index.d.cts +26 -36
- package/lib/index.d.ts +26 -36
- package/lib/plugins/index.d.cts +26 -36
- package/lib/plugins/index.d.ts +26 -36
- package/lib/selectors/index.d.cts +26 -36
- package/lib/selectors/index.d.ts +26 -36
- package/lib/utils/index.d.cts +26 -36
- package/lib/utils/index.d.ts +26 -36
- package/package.json +1 -1
- package/src/behaviors/behavior.perform-event.ts +14 -16
- package/src/behaviors/behavior.types.action.ts +1 -6
- package/src/behaviors/behavior.types.guard.ts +1 -6
- package/src/editor/components/Synchronizer.tsx +6 -3
- package/src/editor/create-editor.ts +1 -1
- package/src/editor/editor-machine.ts +6 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"behavior.core.js","sources":["../../src/behaviors/behavior.types.action.ts","../../src/behaviors/behavior.types.behavior.ts","../../src/behaviors/behavior.core.annotations.ts","../../src/internal-utils/is-hotkey.ts","../../src/behaviors/behavior.core.block-objects.ts","../../src/behaviors/behavior.core.decorators.ts","../../src/behaviors/behavior.core.dnd.ts","../../src/behaviors/behavior.core.insert-break.ts","../../src/behaviors/behavior.core.lists.ts","../../src/behaviors/behavior.core.ts"],"sourcesContent":["import type {EditorContext, EditorSnapshot} from '../editor/editor-snapshot'\nimport type {OmitFromUnion, PickFromUnion} from '../type-utils'\nimport type {PortableTextSlateEditor} from '../types/editor'\nimport type {\n AbstractBehaviorEvent,\n CustomBehaviorEvent,\n SyntheticBehaviorEvent,\n} from './behavior.types.event'\n\n/**\n * @beta\n */\nexport type BehaviorAction =\n | SyntheticBehaviorEvent\n | {\n type: 'raise'\n event:\n | AbstractBehaviorEvent\n | SyntheticBehaviorEvent\n | CustomBehaviorEvent\n }\n | {\n type: 'noop'\n }\n | {\n type: 'effect'\n effect: () => void\n }\n\n/**\n * @beta\n */\nexport function raise(\n event: AbstractBehaviorEvent | SyntheticBehaviorEvent | CustomBehaviorEvent,\n): PickFromUnion<BehaviorAction, 'type', 'raise'> {\n return {type: 'raise', event}\n}\n\n/**\n * @beta\n */\nexport type BehaviorActionSet<TBehaviorEvent, TGuardResponse> = (\n payload: {\n /**\n * @deprecated\n * Use `snapshot` instead\n */\n context: EditorContext\n snapshot: EditorSnapshot\n event: TBehaviorEvent\n },\n guardResponse: TGuardResponse,\n) => Array<BehaviorAction>\n\nexport type InternalBehaviorAction = OmitFromUnion<\n BehaviorAction,\n 'type',\n 'raise'\n> & {\n editor: PortableTextSlateEditor\n}\n","import type {BehaviorActionSet} from './behavior.types.action'\nimport type {\n BehaviorEvent,\n BehaviorEventTypeNamespace,\n CustomBehaviorEvent,\n ResolveBehaviorEvent,\n} from './behavior.types.event'\nimport type {BehaviorGuard} from './behavior.types.guard'\n\n/**\n * @beta\n */\nexport type Behavior<\n TBehaviorEventType extends\n | '*'\n | `${BehaviorEventTypeNamespace}.*`\n | BehaviorEvent['type'] =\n | '*'\n | `${BehaviorEventTypeNamespace}.*`\n | BehaviorEvent['type'],\n TGuardResponse = true,\n TBehaviorEvent extends\n ResolveBehaviorEvent<TBehaviorEventType> = ResolveBehaviorEvent<TBehaviorEventType>,\n> = {\n /**\n * Editor Event that triggers this Behavior.\n */\n on: TBehaviorEventType\n /**\n * Predicate function that determines if the Behavior should be executed.\n * Returning a non-nullable value from the guard will pass the value to the\n * actions and execute them.\n */\n guard?: BehaviorGuard<TBehaviorEvent, TGuardResponse>\n /**\n * Array of Behavior Action sets.\n * Each set represents a step in the history stack.\n */\n actions: Array<BehaviorActionSet<TBehaviorEvent, TGuardResponse>>\n}\n\n/**\n * @beta\n *\n * @example\n *\n * ```tsx\n * const noLowerCaseA = defineBehavior({\n * on: 'insert.text',\n * guard: ({event, snapshot}) => event.text === 'a',\n * actions: [({event, snapshot}) => [{type: 'insert.text', text: 'A'}]],\n * })\n * ```\n *\n */\nexport function defineBehavior<\n TPayload extends Record<string, unknown>,\n TBehaviorEventType extends\n | '*'\n | `${BehaviorEventTypeNamespace}.*`\n | BehaviorEvent['type'] = CustomBehaviorEvent['type'],\n TGuardResponse = true,\n>(\n behavior: Behavior<\n TBehaviorEventType,\n TGuardResponse,\n ResolveBehaviorEvent<TBehaviorEventType, TPayload>\n >,\n): Behavior\nexport function defineBehavior<\n TPayload extends never = never,\n TBehaviorEventType extends\n | '*'\n | `${BehaviorEventTypeNamespace}.*`\n | BehaviorEvent['type'] = BehaviorEvent['type'],\n TGuardResponse = true,\n TBehaviorEvent extends ResolveBehaviorEvent<\n TBehaviorEventType,\n TPayload\n > = ResolveBehaviorEvent<TBehaviorEventType, TPayload>,\n>(\n behavior: Behavior<TBehaviorEventType, TGuardResponse, TBehaviorEvent>,\n): Behavior {\n return behavior as unknown as Behavior\n}\n","import * as selectors from '../selectors'\nimport {raise} from './behavior.types.action'\nimport {defineBehavior} from './behavior.types.behavior'\n\nconst addAnnotationOnCollapsedSelection = defineBehavior({\n on: 'annotation.add',\n guard: ({snapshot}) => {\n if (!selectors.isSelectionCollapsed(snapshot)) {\n return false\n }\n\n const caretWordSelection = selectors.getCaretWordSelection(snapshot)\n\n if (\n !caretWordSelection ||\n !selectors.isSelectionExpanded({\n ...snapshot,\n context: {\n ...snapshot.context,\n selection: caretWordSelection,\n },\n })\n ) {\n return false\n }\n\n return {caretWordSelection}\n },\n actions: [\n ({event}, {caretWordSelection}) => [\n raise({type: 'select', at: caretWordSelection}),\n raise({type: 'annotation.add', annotation: event.annotation}),\n ],\n ],\n})\n\nexport const coreAnnotationBehaviors = {\n addAnnotationOnCollapsedSelection,\n}\n","export interface KeyboardEventLike {\n key: string\n keyCode?: number\n altKey: boolean\n ctrlKey: boolean\n metaKey: boolean\n shiftKey: boolean\n}\n\ninterface HotKey {\n keyCode?: number | undefined\n key?: string | undefined\n altKey: boolean | null\n ctrlKey: boolean | null\n metaKey: boolean | null\n shiftKey: boolean | null\n}\n\nconst IS_MAC =\n typeof window !== 'undefined' &&\n /Mac|iPod|iPhone|iPad/.test(window.navigator.userAgent)\n\ntype Modifier = 'altKey' | 'ctrlKey' | 'metaKey' | 'shiftKey'\n\nconst modifiers: Record<string, Modifier | undefined> = {\n alt: 'altKey',\n control: 'ctrlKey',\n meta: 'metaKey',\n shift: 'shiftKey',\n}\n\nconst aliases: Record<string, string | undefined> = {\n add: '+',\n break: 'pause',\n cmd: 'meta',\n command: 'meta',\n ctl: 'control',\n ctrl: 'control',\n del: 'delete',\n down: 'arrowdown',\n esc: 'escape',\n ins: 'insert',\n left: 'arrowleft',\n mod: IS_MAC ? 'meta' : 'control',\n opt: 'alt',\n option: 'alt',\n return: 'enter',\n right: 'arrowright',\n space: ' ',\n spacebar: ' ',\n up: 'arrowup',\n win: 'meta',\n windows: 'meta',\n}\n\nconst keyCodes: Record<string, number | undefined> = {\n 'backspace': 8,\n 'tab': 9,\n 'enter': 13,\n 'shift': 16,\n 'control': 17,\n 'alt': 18,\n 'pause': 19,\n 'capslock': 20,\n 'escape': 27,\n ' ': 32,\n 'pageup': 33,\n 'pagedown': 34,\n 'end': 35,\n 'home': 36,\n 'arrowleft': 37,\n 'arrowup': 38,\n 'arrowright': 39,\n 'arrowdown': 40,\n 'insert': 45,\n 'delete': 46,\n 'meta': 91,\n 'numlock': 144,\n 'scrolllock': 145,\n ';': 186,\n '=': 187,\n ',': 188,\n '-': 189,\n '.': 190,\n '/': 191,\n '`': 192,\n '[': 219,\n '\\\\': 220,\n ']': 221,\n \"'\": 222,\n 'f1': 112,\n 'f2': 113,\n 'f3': 114,\n 'f4': 115,\n 'f5': 116,\n 'f6': 117,\n 'f7': 118,\n 'f8': 119,\n 'f9': 120,\n 'f10': 121,\n 'f11': 122,\n 'f12': 123,\n 'f13': 124,\n 'f14': 125,\n 'f15': 126,\n 'f16': 127,\n 'f17': 128,\n 'f18': 129,\n 'f19': 130,\n 'f20': 131,\n}\n\nexport function isHotkey(hotkey: string, event: KeyboardEventLike): boolean {\n return compareHotkey(parseHotkey(hotkey), event)\n}\n\nfunction parseHotkey(hotkey: string): HotKey {\n // Ensure that all the modifiers are set to false unless the hotkey has them.\n const parsedHotkey: HotKey = {\n altKey: false,\n ctrlKey: false,\n metaKey: false,\n shiftKey: false,\n }\n\n // Special case to handle the `+` key since we use it as a separator.\n const hotkeySegments = hotkey.replace('++', '+add').split('+')\n\n for (const rawHotkeySegment of hotkeySegments) {\n const optional =\n rawHotkeySegment.endsWith('?') && rawHotkeySegment.length > 1\n const hotkeySegment = optional\n ? rawHotkeySegment.slice(0, -1)\n : rawHotkeySegment\n const keyName = toKeyName(hotkeySegment)\n const modifier = modifiers[keyName]\n const alias = aliases[hotkeySegment]\n const code = keyCodes[keyName]\n\n if (\n hotkeySegment.length > 1 &&\n modifier === undefined &&\n alias === undefined &&\n code === undefined\n ) {\n throw new TypeError(`Unknown modifier: \"${hotkeySegment}\"`)\n }\n\n if (hotkeySegments.length === 1 || modifier === undefined) {\n parsedHotkey.key = keyName\n parsedHotkey.keyCode = toKeyCode(hotkeySegment)\n }\n\n if (modifier !== undefined) {\n parsedHotkey[modifier] = optional ? null : true\n }\n }\n\n return parsedHotkey\n}\n\nfunction compareHotkey(\n parsedHotkey: HotKey,\n event: KeyboardEventLike,\n): boolean {\n const matchingModifiers =\n (parsedHotkey.altKey != null\n ? parsedHotkey.altKey === event.altKey\n : true) &&\n (parsedHotkey.ctrlKey != null\n ? parsedHotkey.ctrlKey === event.ctrlKey\n : true) &&\n (parsedHotkey.metaKey != null\n ? parsedHotkey.metaKey === event.metaKey\n : true) &&\n (parsedHotkey.shiftKey != null\n ? parsedHotkey.shiftKey === event.shiftKey\n : true)\n\n if (!matchingModifiers) {\n return false\n }\n\n if (parsedHotkey.keyCode !== undefined && event.keyCode !== undefined) {\n if (parsedHotkey.keyCode === 91 && event.keyCode === 93) {\n return true\n }\n\n return parsedHotkey.keyCode === event.keyCode\n }\n\n return (\n parsedHotkey.keyCode === event.keyCode ||\n parsedHotkey.key === event.key.toLowerCase()\n )\n}\n\nfunction toKeyCode(name: string): number {\n const keyName = toKeyName(name)\n const keyCode = keyCodes[keyName] ?? keyName.toUpperCase().charCodeAt(0)\n\n return keyCode\n}\n\nfunction toKeyName(name: string): string {\n const keyName = name.toLowerCase()\n\n return aliases[keyName] ?? keyName\n}\n","import {isPortableTextTextBlock} from '@sanity/types'\nimport {isHotkey} from '../internal-utils/is-hotkey'\nimport * as selectors from '../selectors'\nimport {isEmptyTextBlock} from '../utils/util.is-empty-text-block'\nimport {raise} from './behavior.types.action'\nimport {defineBehavior} from './behavior.types.behavior'\n\nconst arrowDownOnLonelyBlockObject = defineBehavior({\n on: 'keyboard.keydown',\n guard: ({snapshot, event}) => {\n const isArrowDown = isHotkey('ArrowDown', event.originEvent)\n\n if (!isArrowDown) {\n return false\n }\n\n const collapsedSelection = selectors.isSelectionCollapsed(snapshot)\n\n if (!collapsedSelection) {\n return false\n }\n\n const focusBlockObject = selectors.getFocusBlockObject(snapshot)\n const nextBlock = selectors.getNextBlock(snapshot)\n\n return focusBlockObject && !nextBlock\n },\n actions: [\n ({snapshot}) => [\n raise({\n type: 'insert.block',\n block: {\n _type: snapshot.context.schema.block.name,\n },\n placement: 'after',\n }),\n ],\n ],\n})\n\nconst arrowUpOnLonelyBlockObject = defineBehavior({\n on: 'keyboard.keydown',\n guard: ({snapshot, event}) => {\n const isArrowUp = isHotkey('ArrowUp', event.originEvent)\n\n if (!isArrowUp) {\n return false\n }\n\n const collapsedSelection = selectors.isSelectionCollapsed(snapshot)\n\n if (!collapsedSelection) {\n return false\n }\n\n const focusBlockObject = selectors.getFocusBlockObject(snapshot)\n const previousBlock = selectors.getPreviousBlock(snapshot)\n\n return focusBlockObject && !previousBlock\n },\n actions: [\n ({snapshot}) => [\n raise({\n type: 'insert.block',\n block: {\n _type: snapshot.context.schema.block.name,\n },\n placement: 'before',\n }),\n ],\n ],\n})\n\nconst breakingBlockObject = defineBehavior({\n on: 'insert.break',\n guard: ({snapshot}) => {\n const focusBlockObject = selectors.getFocusBlockObject(snapshot)\n const collapsedSelection = selectors.isSelectionCollapsed(snapshot)\n\n return collapsedSelection && focusBlockObject !== undefined\n },\n actions: [\n ({snapshot}) => [\n raise({\n type: 'insert.block',\n block: {\n _type: snapshot.context.schema.block.name,\n },\n placement: 'after',\n }),\n ],\n ],\n})\n\nconst clickingAboveLonelyBlockObject = defineBehavior({\n on: 'mouse.click',\n guard: ({snapshot, event}) => {\n if (snapshot.context.readOnly) {\n return false\n }\n\n if (\n snapshot.context.selection &&\n !selectors.isSelectionCollapsed(snapshot)\n ) {\n return false\n }\n\n const focusBlockObject = selectors.getFocusBlockObject({\n ...snapshot,\n context: {\n ...snapshot.context,\n selection: event.position.selection,\n },\n })\n const previousBlock = selectors.getPreviousBlock({\n ...snapshot,\n context: {\n ...snapshot.context,\n selection: event.position.selection,\n },\n })\n\n return (\n event.position.isEditor &&\n event.position.block === 'start' &&\n focusBlockObject &&\n !previousBlock\n )\n },\n actions: [\n ({snapshot, event}) => [\n raise({\n type: 'select',\n at: event.position.selection,\n }),\n raise({\n type: 'insert.block',\n block: {\n _type: snapshot.context.schema.block.name,\n },\n placement: 'before',\n select: 'start',\n }),\n ],\n ],\n})\n\nconst clickingBelowLonelyBlockObject = defineBehavior({\n on: 'mouse.click',\n guard: ({snapshot, event}) => {\n if (snapshot.context.readOnly) {\n return false\n }\n\n if (\n snapshot.context.selection &&\n !selectors.isSelectionCollapsed(snapshot)\n ) {\n return false\n }\n\n const focusBlockObject = selectors.getFocusBlockObject({\n ...snapshot,\n context: {\n ...snapshot.context,\n selection: event.position.selection,\n },\n })\n const nextBlock = selectors.getNextBlock({\n ...snapshot,\n context: {\n ...snapshot.context,\n selection: event.position.selection,\n },\n })\n\n return (\n event.position.isEditor &&\n event.position.block === 'end' &&\n focusBlockObject &&\n !nextBlock\n )\n },\n actions: [\n ({snapshot, event}) => [\n raise({\n type: 'select',\n at: event.position.selection,\n }),\n raise({\n type: 'insert.block',\n block: {\n _type: snapshot.context.schema.block.name,\n },\n placement: 'after',\n select: 'start',\n }),\n ],\n ],\n})\n\nconst deletingEmptyTextBlockAfterBlockObject = defineBehavior({\n on: 'delete.backward',\n guard: ({snapshot}) => {\n const focusTextBlock = selectors.getFocusTextBlock(snapshot)\n const selectionCollapsed = selectors.isSelectionCollapsed(snapshot)\n const previousBlock = selectors.getPreviousBlock(snapshot)\n\n if (!focusTextBlock || !selectionCollapsed || !previousBlock) {\n return false\n }\n\n if (\n isEmptyTextBlock(focusTextBlock.node) &&\n !isPortableTextTextBlock(previousBlock.node)\n ) {\n return {focusTextBlock, previousBlock}\n }\n\n return false\n },\n actions: [\n (_, {focusTextBlock, previousBlock}) => [\n raise({\n type: 'delete.block',\n at: focusTextBlock.path,\n }),\n raise({\n type: 'select',\n at: {\n anchor: {path: previousBlock.path, offset: 0},\n focus: {path: previousBlock.path, offset: 0},\n },\n }),\n ],\n ],\n})\n\nconst deletingEmptyTextBlockBeforeBlockObject = defineBehavior({\n on: 'delete.forward',\n guard: ({snapshot}) => {\n const focusTextBlock = selectors.getFocusTextBlock(snapshot)\n const selectionCollapsed = selectors.isSelectionCollapsed(snapshot)\n const nextBlock = selectors.getNextBlock(snapshot)\n\n if (!focusTextBlock || !selectionCollapsed || !nextBlock) {\n return false\n }\n\n if (\n isEmptyTextBlock(focusTextBlock.node) &&\n !isPortableTextTextBlock(nextBlock.node)\n ) {\n return {focusTextBlock, nextBlock}\n }\n\n return false\n },\n actions: [\n (_, {focusTextBlock, nextBlock}) => [\n raise({\n type: 'delete.block',\n at: focusTextBlock.path,\n }),\n raise({\n type: 'select',\n at: {\n anchor: {path: nextBlock.path, offset: 0},\n focus: {path: nextBlock.path, offset: 0},\n },\n }),\n ],\n ],\n})\n\nexport const coreBlockObjectBehaviors = {\n arrowDownOnLonelyBlockObject,\n arrowUpOnLonelyBlockObject,\n breakingBlockObject,\n clickingAboveLonelyBlockObject,\n clickingBelowLonelyBlockObject,\n deletingEmptyTextBlockAfterBlockObject,\n deletingEmptyTextBlockBeforeBlockObject,\n}\n","import {isHotkey} from '../internal-utils/is-hotkey'\nimport {raise} from './behavior.types.action'\nimport {defineBehavior} from './behavior.types.behavior'\n\nexport const coreDecoratorBehaviors = {\n strongShortcut: defineBehavior({\n on: 'keyboard.keydown',\n guard: ({snapshot, event}) =>\n isHotkey('mod+b', event.originEvent) &&\n snapshot.context.schema.decorators.some(\n (decorator) => decorator.value === 'strong',\n ),\n actions: [() => [raise({type: 'decorator.toggle', decorator: 'strong'})]],\n }),\n emShortcut: defineBehavior({\n on: 'keyboard.keydown',\n guard: ({snapshot, event}) =>\n isHotkey('mod+i', event.originEvent) &&\n snapshot.context.schema.decorators.some(\n (decorator) => decorator.value === 'em',\n ),\n actions: [() => [raise({type: 'decorator.toggle', decorator: 'em'})]],\n }),\n underlineShortcut: defineBehavior({\n on: 'keyboard.keydown',\n guard: ({snapshot, event}) =>\n isHotkey('mod+u', event.originEvent) &&\n snapshot.context.schema.decorators.some(\n (decorator) => decorator.value === 'underline',\n ),\n actions: [\n () => [raise({type: 'decorator.toggle', decorator: 'underline'})],\n ],\n }),\n codeShortcut: defineBehavior({\n on: 'keyboard.keydown',\n guard: ({snapshot, event}) =>\n isHotkey(\"mod+'\", event.originEvent) &&\n snapshot.context.schema.decorators.some(\n (decorator) => decorator.value === 'code',\n ),\n actions: [() => [raise({type: 'decorator.toggle', decorator: 'code'})]],\n }),\n}\n","import * as selectors from '../selectors'\nimport {defineBehavior} from './behavior.types.behavior'\n\nexport const coreDndBehaviors = [\n /**\n * When dragging over the drag origin, we don't want to show the caret in the\n * text.\n */\n defineBehavior({\n on: 'drag.dragover',\n guard: ({snapshot, event}) => {\n const dragOrigin = snapshot.beta.internalDrag?.origin\n const draggingOverDragOrigin = dragOrigin\n ? selectors.isOverlappingSelection(event.position.selection)({\n ...snapshot,\n context: {\n ...snapshot.context,\n selection: dragOrigin.selection,\n },\n })\n : false\n\n return draggingOverDragOrigin\n },\n actions: [() => [{type: 'noop'}]],\n }),\n]\n","import * as selectors from '../selectors'\nimport {raise} from './behavior.types.action'\nimport {defineBehavior} from './behavior.types.behavior'\n\nconst breakingAtTheEndOfTextBlock = defineBehavior({\n on: 'insert.break',\n guard: ({snapshot}) => {\n const focusTextBlock = selectors.getFocusTextBlock(snapshot)\n const selectionCollapsed = selectors.isSelectionCollapsed(snapshot)\n\n if (!snapshot.context.selection || !focusTextBlock || !selectionCollapsed) {\n return false\n }\n\n const atTheEndOfBlock =\n selectors.isAtTheEndOfBlock(focusTextBlock)(snapshot)\n\n const focusListItem = focusTextBlock.node.listItem\n const focusLevel = focusTextBlock.node.level\n\n if (atTheEndOfBlock) {\n return {focusListItem, focusLevel}\n }\n\n return false\n },\n actions: [\n ({snapshot}, {focusListItem, focusLevel}) => [\n raise({\n type: 'insert.block',\n block: {\n _type: snapshot.context.schema.block.name,\n children: [\n {\n _type: snapshot.context.schema.span.name,\n text: '',\n marks: [],\n },\n ],\n markDefs: [],\n listItem: focusListItem,\n level: focusLevel,\n style: snapshot.context.schema.styles[0]?.value,\n },\n placement: 'after',\n }),\n ],\n ],\n})\n\nconst breakingAtTheStartOfTextBlock = defineBehavior({\n on: 'insert.break',\n guard: ({snapshot}) => {\n const focusTextBlock = selectors.getFocusTextBlock(snapshot)\n const selectionCollapsed = selectors.isSelectionCollapsed(snapshot)\n\n if (!snapshot.context.selection || !focusTextBlock || !selectionCollapsed) {\n return false\n }\n\n const focusSpan = selectors.getFocusSpan(snapshot)\n\n const focusDecorators = focusSpan?.node.marks?.filter(\n (mark) =>\n snapshot.context.schema.decorators.some(\n (decorator) => decorator.value === mark,\n ) ?? [],\n )\n const focusAnnotations =\n focusSpan?.node.marks?.filter(\n (mark) =>\n !snapshot.context.schema.decorators.some(\n (decorator) => decorator.value === mark,\n ),\n ) ?? []\n const focusListItem = focusTextBlock.node.listItem\n const focusLevel = focusTextBlock.node.level\n\n const atTheStartOfBlock =\n selectors.isAtTheStartOfBlock(focusTextBlock)(snapshot)\n\n if (atTheStartOfBlock) {\n return {focusAnnotations, focusDecorators, focusListItem, focusLevel}\n }\n\n return false\n },\n actions: [\n (\n {snapshot},\n {focusAnnotations, focusDecorators, focusListItem, focusLevel},\n ) => [\n raise({\n type: 'insert.block',\n block: {\n _type: snapshot.context.schema.block.name,\n children: [\n {\n _type: snapshot.context.schema.span.name,\n marks: focusAnnotations.length === 0 ? focusDecorators : [],\n text: '',\n },\n ],\n listItem: focusListItem,\n level: focusLevel,\n style: snapshot.context.schema.styles[0]?.value,\n },\n placement: 'before',\n select: 'none',\n }),\n ],\n ],\n})\n\nexport const coreInsertBreakBehaviors = {\n breakingAtTheEndOfTextBlock,\n breakingAtTheStartOfTextBlock,\n}\n","import {createGuards} from '../behavior-actions/behavior.guards'\nimport {isHotkey} from '../internal-utils/is-hotkey'\nimport * as selectors from '../selectors'\nimport {isEmptyTextBlock} from '../utils/util.is-empty-text-block'\nimport {raise} from './behavior.types.action'\nimport {defineBehavior} from './behavior.types.behavior'\n\nconst MAX_LIST_LEVEL = 10\n\nconst clearListOnBackspace = defineBehavior({\n on: 'delete.backward',\n guard: ({snapshot}) => {\n const selectionCollapsed = selectors.isSelectionCollapsed(snapshot)\n const focusTextBlock = selectors.getFocusTextBlock(snapshot)\n const focusSpan = selectors.getFocusSpan(snapshot)\n\n if (!selectionCollapsed || !focusTextBlock || !focusSpan) {\n return false\n }\n\n const atTheBeginningOfBLock =\n focusTextBlock.node.children[0]._key === focusSpan.node._key &&\n snapshot.context.selection?.focus.offset === 0\n\n if (atTheBeginningOfBLock && focusTextBlock.node.level === 1) {\n return {focusTextBlock}\n }\n\n return false\n },\n actions: [\n (_, {focusTextBlock}) => [\n raise({\n type: 'block.unset',\n props: ['listItem', 'level'],\n at: focusTextBlock.path,\n }),\n ],\n ],\n})\n\nconst unindentListOnBackspace = defineBehavior({\n on: 'delete.backward',\n guard: ({snapshot}) => {\n const selectionCollapsed = selectors.isSelectionCollapsed(snapshot)\n const focusTextBlock = selectors.getFocusTextBlock(snapshot)\n const focusSpan = selectors.getFocusSpan(snapshot)\n\n if (!selectionCollapsed || !focusTextBlock || !focusSpan) {\n return false\n }\n\n const atTheBeginningOfBLock =\n focusTextBlock.node.children[0]._key === focusSpan.node._key &&\n snapshot.context.selection?.focus.offset === 0\n\n if (\n atTheBeginningOfBLock &&\n focusTextBlock.node.level !== undefined &&\n focusTextBlock.node.level > 1\n ) {\n return {focusTextBlock, level: focusTextBlock.node.level - 1}\n }\n\n return false\n },\n actions: [\n (_, {focusTextBlock, level}) => [\n raise({\n type: 'block.set',\n props: {level},\n at: focusTextBlock.path,\n }),\n ],\n ],\n})\n\nconst clearListOnEnter = defineBehavior({\n on: 'insert.break',\n guard: ({snapshot}) => {\n const selectionCollapsed = selectors.isSelectionCollapsed(snapshot)\n const focusListBlock = selectors.getFocusListBlock(snapshot)\n\n if (\n !selectionCollapsed ||\n !focusListBlock ||\n !isEmptyTextBlock(focusListBlock.node)\n ) {\n return false\n }\n\n return {focusListBlock}\n },\n actions: [\n (_, {focusListBlock}) => [\n raise({\n type: 'block.unset',\n props: ['listItem', 'level'],\n at: focusListBlock.path,\n }),\n ],\n ],\n})\n\nconst indentListOnTab = defineBehavior({\n on: 'keyboard.keydown',\n guard: ({snapshot, event}) => {\n const isTab = isHotkey('Tab', event.originEvent)\n\n if (!isTab) {\n return false\n }\n\n const selectedBlocks = selectors.getSelectedBlocks(snapshot)\n const guards = createGuards(snapshot.context)\n const selectedListBlocks = selectedBlocks.flatMap((block) =>\n guards.isListBlock(block.node)\n ? [\n {\n node: block.node,\n path: block.path,\n },\n ]\n : [],\n )\n\n if (selectedListBlocks.length === selectedBlocks.length) {\n return {selectedListBlocks}\n }\n\n return false\n },\n actions: [\n (_, {selectedListBlocks}) =>\n selectedListBlocks.map((selectedListBlock) =>\n raise({\n type: 'block.set',\n props: {\n level: Math.min(\n MAX_LIST_LEVEL,\n Math.max(1, selectedListBlock.node.level + 1),\n ),\n },\n at: selectedListBlock.path,\n }),\n ),\n ],\n})\n\nconst unindentListOnShiftTab = defineBehavior({\n on: 'keyboard.keydown',\n guard: ({snapshot, event}) => {\n const isShiftTab = isHotkey('Shift+Tab', event.originEvent)\n\n if (!isShiftTab) {\n return false\n }\n\n const selectedBlocks = selectors.getSelectedBlocks(snapshot)\n const guards = createGuards(snapshot.context)\n const selectedListBlocks = selectedBlocks.flatMap((block) =>\n guards.isListBlock(block.node)\n ? [\n {\n node: block.node,\n path: block.path,\n },\n ]\n : [],\n )\n\n if (selectedListBlocks.length === selectedBlocks.length) {\n return {selectedListBlocks}\n }\n\n return false\n },\n actions: [\n (_, {selectedListBlocks}) =>\n selectedListBlocks.map((selectedListBlock) =>\n raise({\n type: 'block.set',\n props: {\n level: Math.min(\n MAX_LIST_LEVEL,\n Math.max(1, selectedListBlock.node.level - 1),\n ),\n },\n at: selectedListBlock.path,\n }),\n ),\n ],\n})\n\nexport const coreListBehaviors = {\n clearListOnBackspace,\n unindentListOnBackspace,\n clearListOnEnter,\n indentListOnTab,\n unindentListOnShiftTab,\n}\n","import {coreAnnotationBehaviors} from './behavior.core.annotations'\nimport {coreBlockObjectBehaviors} from './behavior.core.block-objects'\nimport {coreDecoratorBehaviors} from './behavior.core.decorators'\nimport {coreDndBehaviors} from './behavior.core.dnd'\nimport {coreInsertBreakBehaviors} from './behavior.core.insert-break'\nimport {coreListBehaviors} from './behavior.core.lists'\n\n/**\n * @beta\n */\nexport const coreBehaviors = [\n coreAnnotationBehaviors.addAnnotationOnCollapsedSelection,\n coreDecoratorBehaviors.strongShortcut,\n coreDecoratorBehaviors.emShortcut,\n coreDecoratorBehaviors.underlineShortcut,\n coreDecoratorBehaviors.codeShortcut,\n ...coreDndBehaviors,\n coreBlockObjectBehaviors.clickingAboveLonelyBlockObject,\n coreBlockObjectBehaviors.clickingBelowLonelyBlockObject,\n coreBlockObjectBehaviors.arrowDownOnLonelyBlockObject,\n coreBlockObjectBehaviors.arrowUpOnLonelyBlockObject,\n coreBlockObjectBehaviors.breakingBlockObject,\n coreBlockObjectBehaviors.deletingEmptyTextBlockAfterBlockObject,\n coreBlockObjectBehaviors.deletingEmptyTextBlockBeforeBlockObject,\n coreListBehaviors.clearListOnBackspace,\n coreListBehaviors.unindentListOnBackspace,\n coreListBehaviors.clearListOnEnter,\n coreListBehaviors.indentListOnTab,\n coreListBehaviors.unindentListOnShiftTab,\n coreInsertBreakBehaviors.breakingAtTheEndOfTextBlock,\n coreInsertBreakBehaviors.breakingAtTheStartOfTextBlock,\n]\n"],"names":["raise","event","type","defineBehavior","behavior","addAnnotationOnCollapsedSelection","on","guard","snapshot","selectors","caretWordSelection","context","selection","actions","at","annotation","coreAnnotationBehaviors","IS_MAC","window","test","navigator","userAgent","modifiers","alt","control","meta","shift","aliases","add","break","cmd","command","ctl","ctrl","del","down","esc","ins","left","mod","opt","option","return","right","space","spacebar","up","win","windows","keyCodes","isHotkey","hotkey","compareHotkey","parseHotkey","parsedHotkey","altKey","ctrlKey","metaKey","shiftKey","hotkeySegments","replace","split","rawHotkeySegment","optional","endsWith","length","hotkeySegment","slice","keyName","toKeyName","modifier","alias","code","undefined","TypeError","key","keyCode","toKeyCode","toLowerCase","name","toUpperCase","charCodeAt","arrowDownOnLonelyBlockObject","originEvent","focusBlockObject","nextBlock","block","_type","schema","placement","arrowUpOnLonelyBlockObject","previousBlock","breakingBlockObject","clickingAboveLonelyBlockObject","readOnly","position","isEditor","select","clickingBelowLonelyBlockObject","deletingEmptyTextBlockAfterBlockObject","focusTextBlock","selectionCollapsed","isEmptyTextBlock","node","isPortableTextTextBlock","_","path","anchor","offset","focus","deletingEmptyTextBlockBeforeBlockObject","coreBlockObjectBehaviors","coreDecoratorBehaviors","strongShortcut","decorators","some","decorator","value","emShortcut","underlineShortcut","codeShortcut","coreDndBehaviors","dragOrigin","beta","internalDrag","origin","breakingAtTheEndOfTextBlock","atTheEndOfBlock","focusListItem","listItem","focusLevel","level","children","span","text","marks","markDefs","style","styles","breakingAtTheStartOfTextBlock","focusSpan","focusDecorators","filter","mark","focusAnnotations","coreInsertBreakBehaviors","MAX_LIST_LEVEL","clearListOnBackspace","_key","props","unindentListOnBackspace","clearListOnEnter","focusListBlock","indentListOnTab","selectedBlocks","guards","createGuards","selectedListBlocks","flatMap","isListBlock","map","selectedListBlock","Math","min","max","unindentListOnShiftTab","coreListBehaviors","coreBehaviors"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"behavior.core.js","sources":["../../src/behaviors/behavior.types.action.ts","../../src/behaviors/behavior.types.behavior.ts","../../src/behaviors/behavior.core.annotations.ts","../../src/internal-utils/is-hotkey.ts","../../src/behaviors/behavior.core.block-objects.ts","../../src/behaviors/behavior.core.decorators.ts","../../src/behaviors/behavior.core.dnd.ts","../../src/behaviors/behavior.core.insert-break.ts","../../src/behaviors/behavior.core.lists.ts","../../src/behaviors/behavior.core.ts"],"sourcesContent":["import type {EditorSnapshot} from '../editor/editor-snapshot'\nimport type {OmitFromUnion, PickFromUnion} from '../type-utils'\nimport type {PortableTextSlateEditor} from '../types/editor'\nimport type {\n AbstractBehaviorEvent,\n CustomBehaviorEvent,\n SyntheticBehaviorEvent,\n} from './behavior.types.event'\n\n/**\n * @beta\n */\nexport type BehaviorAction =\n | SyntheticBehaviorEvent\n | {\n type: 'raise'\n event:\n | AbstractBehaviorEvent\n | SyntheticBehaviorEvent\n | CustomBehaviorEvent\n }\n | {\n type: 'noop'\n }\n | {\n type: 'effect'\n effect: () => void\n }\n\n/**\n * @beta\n */\nexport function raise(\n event: AbstractBehaviorEvent | SyntheticBehaviorEvent | CustomBehaviorEvent,\n): PickFromUnion<BehaviorAction, 'type', 'raise'> {\n return {type: 'raise', event}\n}\n\n/**\n * @beta\n */\nexport type BehaviorActionSet<TBehaviorEvent, TGuardResponse> = (\n payload: {\n snapshot: EditorSnapshot\n event: TBehaviorEvent\n },\n guardResponse: TGuardResponse,\n) => Array<BehaviorAction>\n\nexport type InternalBehaviorAction = OmitFromUnion<\n BehaviorAction,\n 'type',\n 'raise'\n> & {\n editor: PortableTextSlateEditor\n}\n","import type {BehaviorActionSet} from './behavior.types.action'\nimport type {\n BehaviorEvent,\n BehaviorEventTypeNamespace,\n CustomBehaviorEvent,\n ResolveBehaviorEvent,\n} from './behavior.types.event'\nimport type {BehaviorGuard} from './behavior.types.guard'\n\n/**\n * @beta\n */\nexport type Behavior<\n TBehaviorEventType extends\n | '*'\n | `${BehaviorEventTypeNamespace}.*`\n | BehaviorEvent['type'] =\n | '*'\n | `${BehaviorEventTypeNamespace}.*`\n | BehaviorEvent['type'],\n TGuardResponse = true,\n TBehaviorEvent extends\n ResolveBehaviorEvent<TBehaviorEventType> = ResolveBehaviorEvent<TBehaviorEventType>,\n> = {\n /**\n * Editor Event that triggers this Behavior.\n */\n on: TBehaviorEventType\n /**\n * Predicate function that determines if the Behavior should be executed.\n * Returning a non-nullable value from the guard will pass the value to the\n * actions and execute them.\n */\n guard?: BehaviorGuard<TBehaviorEvent, TGuardResponse>\n /**\n * Array of Behavior Action sets.\n * Each set represents a step in the history stack.\n */\n actions: Array<BehaviorActionSet<TBehaviorEvent, TGuardResponse>>\n}\n\n/**\n * @beta\n *\n * @example\n *\n * ```tsx\n * const noLowerCaseA = defineBehavior({\n * on: 'insert.text',\n * guard: ({event, snapshot}) => event.text === 'a',\n * actions: [({event, snapshot}) => [{type: 'insert.text', text: 'A'}]],\n * })\n * ```\n *\n */\nexport function defineBehavior<\n TPayload extends Record<string, unknown>,\n TBehaviorEventType extends\n | '*'\n | `${BehaviorEventTypeNamespace}.*`\n | BehaviorEvent['type'] = CustomBehaviorEvent['type'],\n TGuardResponse = true,\n>(\n behavior: Behavior<\n TBehaviorEventType,\n TGuardResponse,\n ResolveBehaviorEvent<TBehaviorEventType, TPayload>\n >,\n): Behavior\nexport function defineBehavior<\n TPayload extends never = never,\n TBehaviorEventType extends\n | '*'\n | `${BehaviorEventTypeNamespace}.*`\n | BehaviorEvent['type'] = BehaviorEvent['type'],\n TGuardResponse = true,\n TBehaviorEvent extends ResolveBehaviorEvent<\n TBehaviorEventType,\n TPayload\n > = ResolveBehaviorEvent<TBehaviorEventType, TPayload>,\n>(\n behavior: Behavior<TBehaviorEventType, TGuardResponse, TBehaviorEvent>,\n): Behavior {\n return behavior as unknown as Behavior\n}\n","import * as selectors from '../selectors'\nimport {raise} from './behavior.types.action'\nimport {defineBehavior} from './behavior.types.behavior'\n\nconst addAnnotationOnCollapsedSelection = defineBehavior({\n on: 'annotation.add',\n guard: ({snapshot}) => {\n if (!selectors.isSelectionCollapsed(snapshot)) {\n return false\n }\n\n const caretWordSelection = selectors.getCaretWordSelection(snapshot)\n\n if (\n !caretWordSelection ||\n !selectors.isSelectionExpanded({\n ...snapshot,\n context: {\n ...snapshot.context,\n selection: caretWordSelection,\n },\n })\n ) {\n return false\n }\n\n return {caretWordSelection}\n },\n actions: [\n ({event}, {caretWordSelection}) => [\n raise({type: 'select', at: caretWordSelection}),\n raise({type: 'annotation.add', annotation: event.annotation}),\n ],\n ],\n})\n\nexport const coreAnnotationBehaviors = {\n addAnnotationOnCollapsedSelection,\n}\n","export interface KeyboardEventLike {\n key: string\n keyCode?: number\n altKey: boolean\n ctrlKey: boolean\n metaKey: boolean\n shiftKey: boolean\n}\n\ninterface HotKey {\n keyCode?: number | undefined\n key?: string | undefined\n altKey: boolean | null\n ctrlKey: boolean | null\n metaKey: boolean | null\n shiftKey: boolean | null\n}\n\nconst IS_MAC =\n typeof window !== 'undefined' &&\n /Mac|iPod|iPhone|iPad/.test(window.navigator.userAgent)\n\ntype Modifier = 'altKey' | 'ctrlKey' | 'metaKey' | 'shiftKey'\n\nconst modifiers: Record<string, Modifier | undefined> = {\n alt: 'altKey',\n control: 'ctrlKey',\n meta: 'metaKey',\n shift: 'shiftKey',\n}\n\nconst aliases: Record<string, string | undefined> = {\n add: '+',\n break: 'pause',\n cmd: 'meta',\n command: 'meta',\n ctl: 'control',\n ctrl: 'control',\n del: 'delete',\n down: 'arrowdown',\n esc: 'escape',\n ins: 'insert',\n left: 'arrowleft',\n mod: IS_MAC ? 'meta' : 'control',\n opt: 'alt',\n option: 'alt',\n return: 'enter',\n right: 'arrowright',\n space: ' ',\n spacebar: ' ',\n up: 'arrowup',\n win: 'meta',\n windows: 'meta',\n}\n\nconst keyCodes: Record<string, number | undefined> = {\n 'backspace': 8,\n 'tab': 9,\n 'enter': 13,\n 'shift': 16,\n 'control': 17,\n 'alt': 18,\n 'pause': 19,\n 'capslock': 20,\n 'escape': 27,\n ' ': 32,\n 'pageup': 33,\n 'pagedown': 34,\n 'end': 35,\n 'home': 36,\n 'arrowleft': 37,\n 'arrowup': 38,\n 'arrowright': 39,\n 'arrowdown': 40,\n 'insert': 45,\n 'delete': 46,\n 'meta': 91,\n 'numlock': 144,\n 'scrolllock': 145,\n ';': 186,\n '=': 187,\n ',': 188,\n '-': 189,\n '.': 190,\n '/': 191,\n '`': 192,\n '[': 219,\n '\\\\': 220,\n ']': 221,\n \"'\": 222,\n 'f1': 112,\n 'f2': 113,\n 'f3': 114,\n 'f4': 115,\n 'f5': 116,\n 'f6': 117,\n 'f7': 118,\n 'f8': 119,\n 'f9': 120,\n 'f10': 121,\n 'f11': 122,\n 'f12': 123,\n 'f13': 124,\n 'f14': 125,\n 'f15': 126,\n 'f16': 127,\n 'f17': 128,\n 'f18': 129,\n 'f19': 130,\n 'f20': 131,\n}\n\nexport function isHotkey(hotkey: string, event: KeyboardEventLike): boolean {\n return compareHotkey(parseHotkey(hotkey), event)\n}\n\nfunction parseHotkey(hotkey: string): HotKey {\n // Ensure that all the modifiers are set to false unless the hotkey has them.\n const parsedHotkey: HotKey = {\n altKey: false,\n ctrlKey: false,\n metaKey: false,\n shiftKey: false,\n }\n\n // Special case to handle the `+` key since we use it as a separator.\n const hotkeySegments = hotkey.replace('++', '+add').split('+')\n\n for (const rawHotkeySegment of hotkeySegments) {\n const optional =\n rawHotkeySegment.endsWith('?') && rawHotkeySegment.length > 1\n const hotkeySegment = optional\n ? rawHotkeySegment.slice(0, -1)\n : rawHotkeySegment\n const keyName = toKeyName(hotkeySegment)\n const modifier = modifiers[keyName]\n const alias = aliases[hotkeySegment]\n const code = keyCodes[keyName]\n\n if (\n hotkeySegment.length > 1 &&\n modifier === undefined &&\n alias === undefined &&\n code === undefined\n ) {\n throw new TypeError(`Unknown modifier: \"${hotkeySegment}\"`)\n }\n\n if (hotkeySegments.length === 1 || modifier === undefined) {\n parsedHotkey.key = keyName\n parsedHotkey.keyCode = toKeyCode(hotkeySegment)\n }\n\n if (modifier !== undefined) {\n parsedHotkey[modifier] = optional ? null : true\n }\n }\n\n return parsedHotkey\n}\n\nfunction compareHotkey(\n parsedHotkey: HotKey,\n event: KeyboardEventLike,\n): boolean {\n const matchingModifiers =\n (parsedHotkey.altKey != null\n ? parsedHotkey.altKey === event.altKey\n : true) &&\n (parsedHotkey.ctrlKey != null\n ? parsedHotkey.ctrlKey === event.ctrlKey\n : true) &&\n (parsedHotkey.metaKey != null\n ? parsedHotkey.metaKey === event.metaKey\n : true) &&\n (parsedHotkey.shiftKey != null\n ? parsedHotkey.shiftKey === event.shiftKey\n : true)\n\n if (!matchingModifiers) {\n return false\n }\n\n if (parsedHotkey.keyCode !== undefined && event.keyCode !== undefined) {\n if (parsedHotkey.keyCode === 91 && event.keyCode === 93) {\n return true\n }\n\n return parsedHotkey.keyCode === event.keyCode\n }\n\n return (\n parsedHotkey.keyCode === event.keyCode ||\n parsedHotkey.key === event.key.toLowerCase()\n )\n}\n\nfunction toKeyCode(name: string): number {\n const keyName = toKeyName(name)\n const keyCode = keyCodes[keyName] ?? keyName.toUpperCase().charCodeAt(0)\n\n return keyCode\n}\n\nfunction toKeyName(name: string): string {\n const keyName = name.toLowerCase()\n\n return aliases[keyName] ?? keyName\n}\n","import {isPortableTextTextBlock} from '@sanity/types'\nimport {isHotkey} from '../internal-utils/is-hotkey'\nimport * as selectors from '../selectors'\nimport {isEmptyTextBlock} from '../utils/util.is-empty-text-block'\nimport {raise} from './behavior.types.action'\nimport {defineBehavior} from './behavior.types.behavior'\n\nconst arrowDownOnLonelyBlockObject = defineBehavior({\n on: 'keyboard.keydown',\n guard: ({snapshot, event}) => {\n const isArrowDown = isHotkey('ArrowDown', event.originEvent)\n\n if (!isArrowDown) {\n return false\n }\n\n const collapsedSelection = selectors.isSelectionCollapsed(snapshot)\n\n if (!collapsedSelection) {\n return false\n }\n\n const focusBlockObject = selectors.getFocusBlockObject(snapshot)\n const nextBlock = selectors.getNextBlock(snapshot)\n\n return focusBlockObject && !nextBlock\n },\n actions: [\n ({snapshot}) => [\n raise({\n type: 'insert.block',\n block: {\n _type: snapshot.context.schema.block.name,\n },\n placement: 'after',\n }),\n ],\n ],\n})\n\nconst arrowUpOnLonelyBlockObject = defineBehavior({\n on: 'keyboard.keydown',\n guard: ({snapshot, event}) => {\n const isArrowUp = isHotkey('ArrowUp', event.originEvent)\n\n if (!isArrowUp) {\n return false\n }\n\n const collapsedSelection = selectors.isSelectionCollapsed(snapshot)\n\n if (!collapsedSelection) {\n return false\n }\n\n const focusBlockObject = selectors.getFocusBlockObject(snapshot)\n const previousBlock = selectors.getPreviousBlock(snapshot)\n\n return focusBlockObject && !previousBlock\n },\n actions: [\n ({snapshot}) => [\n raise({\n type: 'insert.block',\n block: {\n _type: snapshot.context.schema.block.name,\n },\n placement: 'before',\n }),\n ],\n ],\n})\n\nconst breakingBlockObject = defineBehavior({\n on: 'insert.break',\n guard: ({snapshot}) => {\n const focusBlockObject = selectors.getFocusBlockObject(snapshot)\n const collapsedSelection = selectors.isSelectionCollapsed(snapshot)\n\n return collapsedSelection && focusBlockObject !== undefined\n },\n actions: [\n ({snapshot}) => [\n raise({\n type: 'insert.block',\n block: {\n _type: snapshot.context.schema.block.name,\n },\n placement: 'after',\n }),\n ],\n ],\n})\n\nconst clickingAboveLonelyBlockObject = defineBehavior({\n on: 'mouse.click',\n guard: ({snapshot, event}) => {\n if (snapshot.context.readOnly) {\n return false\n }\n\n if (\n snapshot.context.selection &&\n !selectors.isSelectionCollapsed(snapshot)\n ) {\n return false\n }\n\n const focusBlockObject = selectors.getFocusBlockObject({\n ...snapshot,\n context: {\n ...snapshot.context,\n selection: event.position.selection,\n },\n })\n const previousBlock = selectors.getPreviousBlock({\n ...snapshot,\n context: {\n ...snapshot.context,\n selection: event.position.selection,\n },\n })\n\n return (\n event.position.isEditor &&\n event.position.block === 'start' &&\n focusBlockObject &&\n !previousBlock\n )\n },\n actions: [\n ({snapshot, event}) => [\n raise({\n type: 'select',\n at: event.position.selection,\n }),\n raise({\n type: 'insert.block',\n block: {\n _type: snapshot.context.schema.block.name,\n },\n placement: 'before',\n select: 'start',\n }),\n ],\n ],\n})\n\nconst clickingBelowLonelyBlockObject = defineBehavior({\n on: 'mouse.click',\n guard: ({snapshot, event}) => {\n if (snapshot.context.readOnly) {\n return false\n }\n\n if (\n snapshot.context.selection &&\n !selectors.isSelectionCollapsed(snapshot)\n ) {\n return false\n }\n\n const focusBlockObject = selectors.getFocusBlockObject({\n ...snapshot,\n context: {\n ...snapshot.context,\n selection: event.position.selection,\n },\n })\n const nextBlock = selectors.getNextBlock({\n ...snapshot,\n context: {\n ...snapshot.context,\n selection: event.position.selection,\n },\n })\n\n return (\n event.position.isEditor &&\n event.position.block === 'end' &&\n focusBlockObject &&\n !nextBlock\n )\n },\n actions: [\n ({snapshot, event}) => [\n raise({\n type: 'select',\n at: event.position.selection,\n }),\n raise({\n type: 'insert.block',\n block: {\n _type: snapshot.context.schema.block.name,\n },\n placement: 'after',\n select: 'start',\n }),\n ],\n ],\n})\n\nconst deletingEmptyTextBlockAfterBlockObject = defineBehavior({\n on: 'delete.backward',\n guard: ({snapshot}) => {\n const focusTextBlock = selectors.getFocusTextBlock(snapshot)\n const selectionCollapsed = selectors.isSelectionCollapsed(snapshot)\n const previousBlock = selectors.getPreviousBlock(snapshot)\n\n if (!focusTextBlock || !selectionCollapsed || !previousBlock) {\n return false\n }\n\n if (\n isEmptyTextBlock(focusTextBlock.node) &&\n !isPortableTextTextBlock(previousBlock.node)\n ) {\n return {focusTextBlock, previousBlock}\n }\n\n return false\n },\n actions: [\n (_, {focusTextBlock, previousBlock}) => [\n raise({\n type: 'delete.block',\n at: focusTextBlock.path,\n }),\n raise({\n type: 'select',\n at: {\n anchor: {path: previousBlock.path, offset: 0},\n focus: {path: previousBlock.path, offset: 0},\n },\n }),\n ],\n ],\n})\n\nconst deletingEmptyTextBlockBeforeBlockObject = defineBehavior({\n on: 'delete.forward',\n guard: ({snapshot}) => {\n const focusTextBlock = selectors.getFocusTextBlock(snapshot)\n const selectionCollapsed = selectors.isSelectionCollapsed(snapshot)\n const nextBlock = selectors.getNextBlock(snapshot)\n\n if (!focusTextBlock || !selectionCollapsed || !nextBlock) {\n return false\n }\n\n if (\n isEmptyTextBlock(focusTextBlock.node) &&\n !isPortableTextTextBlock(nextBlock.node)\n ) {\n return {focusTextBlock, nextBlock}\n }\n\n return false\n },\n actions: [\n (_, {focusTextBlock, nextBlock}) => [\n raise({\n type: 'delete.block',\n at: focusTextBlock.path,\n }),\n raise({\n type: 'select',\n at: {\n anchor: {path: nextBlock.path, offset: 0},\n focus: {path: nextBlock.path, offset: 0},\n },\n }),\n ],\n ],\n})\n\nexport const coreBlockObjectBehaviors = {\n arrowDownOnLonelyBlockObject,\n arrowUpOnLonelyBlockObject,\n breakingBlockObject,\n clickingAboveLonelyBlockObject,\n clickingBelowLonelyBlockObject,\n deletingEmptyTextBlockAfterBlockObject,\n deletingEmptyTextBlockBeforeBlockObject,\n}\n","import {isHotkey} from '../internal-utils/is-hotkey'\nimport {raise} from './behavior.types.action'\nimport {defineBehavior} from './behavior.types.behavior'\n\nexport const coreDecoratorBehaviors = {\n strongShortcut: defineBehavior({\n on: 'keyboard.keydown',\n guard: ({snapshot, event}) =>\n isHotkey('mod+b', event.originEvent) &&\n snapshot.context.schema.decorators.some(\n (decorator) => decorator.value === 'strong',\n ),\n actions: [() => [raise({type: 'decorator.toggle', decorator: 'strong'})]],\n }),\n emShortcut: defineBehavior({\n on: 'keyboard.keydown',\n guard: ({snapshot, event}) =>\n isHotkey('mod+i', event.originEvent) &&\n snapshot.context.schema.decorators.some(\n (decorator) => decorator.value === 'em',\n ),\n actions: [() => [raise({type: 'decorator.toggle', decorator: 'em'})]],\n }),\n underlineShortcut: defineBehavior({\n on: 'keyboard.keydown',\n guard: ({snapshot, event}) =>\n isHotkey('mod+u', event.originEvent) &&\n snapshot.context.schema.decorators.some(\n (decorator) => decorator.value === 'underline',\n ),\n actions: [\n () => [raise({type: 'decorator.toggle', decorator: 'underline'})],\n ],\n }),\n codeShortcut: defineBehavior({\n on: 'keyboard.keydown',\n guard: ({snapshot, event}) =>\n isHotkey(\"mod+'\", event.originEvent) &&\n snapshot.context.schema.decorators.some(\n (decorator) => decorator.value === 'code',\n ),\n actions: [() => [raise({type: 'decorator.toggle', decorator: 'code'})]],\n }),\n}\n","import * as selectors from '../selectors'\nimport {defineBehavior} from './behavior.types.behavior'\n\nexport const coreDndBehaviors = [\n /**\n * When dragging over the drag origin, we don't want to show the caret in the\n * text.\n */\n defineBehavior({\n on: 'drag.dragover',\n guard: ({snapshot, event}) => {\n const dragOrigin = snapshot.beta.internalDrag?.origin\n const draggingOverDragOrigin = dragOrigin\n ? selectors.isOverlappingSelection(event.position.selection)({\n ...snapshot,\n context: {\n ...snapshot.context,\n selection: dragOrigin.selection,\n },\n })\n : false\n\n return draggingOverDragOrigin\n },\n actions: [() => [{type: 'noop'}]],\n }),\n]\n","import * as selectors from '../selectors'\nimport {raise} from './behavior.types.action'\nimport {defineBehavior} from './behavior.types.behavior'\n\nconst breakingAtTheEndOfTextBlock = defineBehavior({\n on: 'insert.break',\n guard: ({snapshot}) => {\n const focusTextBlock = selectors.getFocusTextBlock(snapshot)\n const selectionCollapsed = selectors.isSelectionCollapsed(snapshot)\n\n if (!snapshot.context.selection || !focusTextBlock || !selectionCollapsed) {\n return false\n }\n\n const atTheEndOfBlock =\n selectors.isAtTheEndOfBlock(focusTextBlock)(snapshot)\n\n const focusListItem = focusTextBlock.node.listItem\n const focusLevel = focusTextBlock.node.level\n\n if (atTheEndOfBlock) {\n return {focusListItem, focusLevel}\n }\n\n return false\n },\n actions: [\n ({snapshot}, {focusListItem, focusLevel}) => [\n raise({\n type: 'insert.block',\n block: {\n _type: snapshot.context.schema.block.name,\n children: [\n {\n _type: snapshot.context.schema.span.name,\n text: '',\n marks: [],\n },\n ],\n markDefs: [],\n listItem: focusListItem,\n level: focusLevel,\n style: snapshot.context.schema.styles[0]?.value,\n },\n placement: 'after',\n }),\n ],\n ],\n})\n\nconst breakingAtTheStartOfTextBlock = defineBehavior({\n on: 'insert.break',\n guard: ({snapshot}) => {\n const focusTextBlock = selectors.getFocusTextBlock(snapshot)\n const selectionCollapsed = selectors.isSelectionCollapsed(snapshot)\n\n if (!snapshot.context.selection || !focusTextBlock || !selectionCollapsed) {\n return false\n }\n\n const focusSpan = selectors.getFocusSpan(snapshot)\n\n const focusDecorators = focusSpan?.node.marks?.filter(\n (mark) =>\n snapshot.context.schema.decorators.some(\n (decorator) => decorator.value === mark,\n ) ?? [],\n )\n const focusAnnotations =\n focusSpan?.node.marks?.filter(\n (mark) =>\n !snapshot.context.schema.decorators.some(\n (decorator) => decorator.value === mark,\n ),\n ) ?? []\n const focusListItem = focusTextBlock.node.listItem\n const focusLevel = focusTextBlock.node.level\n\n const atTheStartOfBlock =\n selectors.isAtTheStartOfBlock(focusTextBlock)(snapshot)\n\n if (atTheStartOfBlock) {\n return {focusAnnotations, focusDecorators, focusListItem, focusLevel}\n }\n\n return false\n },\n actions: [\n (\n {snapshot},\n {focusAnnotations, focusDecorators, focusListItem, focusLevel},\n ) => [\n raise({\n type: 'insert.block',\n block: {\n _type: snapshot.context.schema.block.name,\n children: [\n {\n _type: snapshot.context.schema.span.name,\n marks: focusAnnotations.length === 0 ? focusDecorators : [],\n text: '',\n },\n ],\n listItem: focusListItem,\n level: focusLevel,\n style: snapshot.context.schema.styles[0]?.value,\n },\n placement: 'before',\n select: 'none',\n }),\n ],\n ],\n})\n\nexport const coreInsertBreakBehaviors = {\n breakingAtTheEndOfTextBlock,\n breakingAtTheStartOfTextBlock,\n}\n","import {createGuards} from '../behavior-actions/behavior.guards'\nimport {isHotkey} from '../internal-utils/is-hotkey'\nimport * as selectors from '../selectors'\nimport {isEmptyTextBlock} from '../utils/util.is-empty-text-block'\nimport {raise} from './behavior.types.action'\nimport {defineBehavior} from './behavior.types.behavior'\n\nconst MAX_LIST_LEVEL = 10\n\nconst clearListOnBackspace = defineBehavior({\n on: 'delete.backward',\n guard: ({snapshot}) => {\n const selectionCollapsed = selectors.isSelectionCollapsed(snapshot)\n const focusTextBlock = selectors.getFocusTextBlock(snapshot)\n const focusSpan = selectors.getFocusSpan(snapshot)\n\n if (!selectionCollapsed || !focusTextBlock || !focusSpan) {\n return false\n }\n\n const atTheBeginningOfBLock =\n focusTextBlock.node.children[0]._key === focusSpan.node._key &&\n snapshot.context.selection?.focus.offset === 0\n\n if (atTheBeginningOfBLock && focusTextBlock.node.level === 1) {\n return {focusTextBlock}\n }\n\n return false\n },\n actions: [\n (_, {focusTextBlock}) => [\n raise({\n type: 'block.unset',\n props: ['listItem', 'level'],\n at: focusTextBlock.path,\n }),\n ],\n ],\n})\n\nconst unindentListOnBackspace = defineBehavior({\n on: 'delete.backward',\n guard: ({snapshot}) => {\n const selectionCollapsed = selectors.isSelectionCollapsed(snapshot)\n const focusTextBlock = selectors.getFocusTextBlock(snapshot)\n const focusSpan = selectors.getFocusSpan(snapshot)\n\n if (!selectionCollapsed || !focusTextBlock || !focusSpan) {\n return false\n }\n\n const atTheBeginningOfBLock =\n focusTextBlock.node.children[0]._key === focusSpan.node._key &&\n snapshot.context.selection?.focus.offset === 0\n\n if (\n atTheBeginningOfBLock &&\n focusTextBlock.node.level !== undefined &&\n focusTextBlock.node.level > 1\n ) {\n return {focusTextBlock, level: focusTextBlock.node.level - 1}\n }\n\n return false\n },\n actions: [\n (_, {focusTextBlock, level}) => [\n raise({\n type: 'block.set',\n props: {level},\n at: focusTextBlock.path,\n }),\n ],\n ],\n})\n\nconst clearListOnEnter = defineBehavior({\n on: 'insert.break',\n guard: ({snapshot}) => {\n const selectionCollapsed = selectors.isSelectionCollapsed(snapshot)\n const focusListBlock = selectors.getFocusListBlock(snapshot)\n\n if (\n !selectionCollapsed ||\n !focusListBlock ||\n !isEmptyTextBlock(focusListBlock.node)\n ) {\n return false\n }\n\n return {focusListBlock}\n },\n actions: [\n (_, {focusListBlock}) => [\n raise({\n type: 'block.unset',\n props: ['listItem', 'level'],\n at: focusListBlock.path,\n }),\n ],\n ],\n})\n\nconst indentListOnTab = defineBehavior({\n on: 'keyboard.keydown',\n guard: ({snapshot, event}) => {\n const isTab = isHotkey('Tab', event.originEvent)\n\n if (!isTab) {\n return false\n }\n\n const selectedBlocks = selectors.getSelectedBlocks(snapshot)\n const guards = createGuards(snapshot.context)\n const selectedListBlocks = selectedBlocks.flatMap((block) =>\n guards.isListBlock(block.node)\n ? [\n {\n node: block.node,\n path: block.path,\n },\n ]\n : [],\n )\n\n if (selectedListBlocks.length === selectedBlocks.length) {\n return {selectedListBlocks}\n }\n\n return false\n },\n actions: [\n (_, {selectedListBlocks}) =>\n selectedListBlocks.map((selectedListBlock) =>\n raise({\n type: 'block.set',\n props: {\n level: Math.min(\n MAX_LIST_LEVEL,\n Math.max(1, selectedListBlock.node.level + 1),\n ),\n },\n at: selectedListBlock.path,\n }),\n ),\n ],\n})\n\nconst unindentListOnShiftTab = defineBehavior({\n on: 'keyboard.keydown',\n guard: ({snapshot, event}) => {\n const isShiftTab = isHotkey('Shift+Tab', event.originEvent)\n\n if (!isShiftTab) {\n return false\n }\n\n const selectedBlocks = selectors.getSelectedBlocks(snapshot)\n const guards = createGuards(snapshot.context)\n const selectedListBlocks = selectedBlocks.flatMap((block) =>\n guards.isListBlock(block.node)\n ? [\n {\n node: block.node,\n path: block.path,\n },\n ]\n : [],\n )\n\n if (selectedListBlocks.length === selectedBlocks.length) {\n return {selectedListBlocks}\n }\n\n return false\n },\n actions: [\n (_, {selectedListBlocks}) =>\n selectedListBlocks.map((selectedListBlock) =>\n raise({\n type: 'block.set',\n props: {\n level: Math.min(\n MAX_LIST_LEVEL,\n Math.max(1, selectedListBlock.node.level - 1),\n ),\n },\n at: selectedListBlock.path,\n }),\n ),\n ],\n})\n\nexport const coreListBehaviors = {\n clearListOnBackspace,\n unindentListOnBackspace,\n clearListOnEnter,\n indentListOnTab,\n unindentListOnShiftTab,\n}\n","import {coreAnnotationBehaviors} from './behavior.core.annotations'\nimport {coreBlockObjectBehaviors} from './behavior.core.block-objects'\nimport {coreDecoratorBehaviors} from './behavior.core.decorators'\nimport {coreDndBehaviors} from './behavior.core.dnd'\nimport {coreInsertBreakBehaviors} from './behavior.core.insert-break'\nimport {coreListBehaviors} from './behavior.core.lists'\n\n/**\n * @beta\n */\nexport const coreBehaviors = [\n coreAnnotationBehaviors.addAnnotationOnCollapsedSelection,\n coreDecoratorBehaviors.strongShortcut,\n coreDecoratorBehaviors.emShortcut,\n coreDecoratorBehaviors.underlineShortcut,\n coreDecoratorBehaviors.codeShortcut,\n ...coreDndBehaviors,\n coreBlockObjectBehaviors.clickingAboveLonelyBlockObject,\n coreBlockObjectBehaviors.clickingBelowLonelyBlockObject,\n coreBlockObjectBehaviors.arrowDownOnLonelyBlockObject,\n coreBlockObjectBehaviors.arrowUpOnLonelyBlockObject,\n coreBlockObjectBehaviors.breakingBlockObject,\n coreBlockObjectBehaviors.deletingEmptyTextBlockAfterBlockObject,\n coreBlockObjectBehaviors.deletingEmptyTextBlockBeforeBlockObject,\n coreListBehaviors.clearListOnBackspace,\n coreListBehaviors.unindentListOnBackspace,\n coreListBehaviors.clearListOnEnter,\n coreListBehaviors.indentListOnTab,\n coreListBehaviors.unindentListOnShiftTab,\n coreInsertBreakBehaviors.breakingAtTheEndOfTextBlock,\n coreInsertBreakBehaviors.breakingAtTheStartOfTextBlock,\n]\n"],"names":["raise","event","type","defineBehavior","behavior","addAnnotationOnCollapsedSelection","on","guard","snapshot","selectors","caretWordSelection","context","selection","actions","at","annotation","coreAnnotationBehaviors","IS_MAC","window","test","navigator","userAgent","modifiers","alt","control","meta","shift","aliases","add","break","cmd","command","ctl","ctrl","del","down","esc","ins","left","mod","opt","option","return","right","space","spacebar","up","win","windows","keyCodes","isHotkey","hotkey","compareHotkey","parseHotkey","parsedHotkey","altKey","ctrlKey","metaKey","shiftKey","hotkeySegments","replace","split","rawHotkeySegment","optional","endsWith","length","hotkeySegment","slice","keyName","toKeyName","modifier","alias","code","undefined","TypeError","key","keyCode","toKeyCode","toLowerCase","name","toUpperCase","charCodeAt","arrowDownOnLonelyBlockObject","originEvent","focusBlockObject","nextBlock","block","_type","schema","placement","arrowUpOnLonelyBlockObject","previousBlock","breakingBlockObject","clickingAboveLonelyBlockObject","readOnly","position","isEditor","select","clickingBelowLonelyBlockObject","deletingEmptyTextBlockAfterBlockObject","focusTextBlock","selectionCollapsed","isEmptyTextBlock","node","isPortableTextTextBlock","_","path","anchor","offset","focus","deletingEmptyTextBlockBeforeBlockObject","coreBlockObjectBehaviors","coreDecoratorBehaviors","strongShortcut","decorators","some","decorator","value","emShortcut","underlineShortcut","codeShortcut","coreDndBehaviors","dragOrigin","beta","internalDrag","origin","breakingAtTheEndOfTextBlock","atTheEndOfBlock","focusListItem","listItem","focusLevel","level","children","span","text","marks","markDefs","style","styles","breakingAtTheStartOfTextBlock","focusSpan","focusDecorators","filter","mark","focusAnnotations","coreInsertBreakBehaviors","MAX_LIST_LEVEL","clearListOnBackspace","_key","props","unindentListOnBackspace","clearListOnEnter","focusListBlock","indentListOnTab","selectedBlocks","guards","createGuards","selectedListBlocks","flatMap","isListBlock","map","selectedListBlock","Math","min","max","unindentListOnShiftTab","coreListBehaviors","coreBehaviors"],"mappings":"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"}
|
|
@@ -2064,7 +2064,7 @@ function Synchronizer(props) {
|
|
|
2064
2064
|
const $ = c(41), {
|
|
2065
2065
|
editorActor,
|
|
2066
2066
|
slateEditor
|
|
2067
|
-
} = props,
|
|
2067
|
+
} = props, incomingValue = useSelector(props.editorActor, _temp), readOnly = useSelector(props.editorActor, _temp2);
|
|
2068
2068
|
let t0;
|
|
2069
2069
|
$[0] !== props.editorActor ? (t0 = props.editorActor.getSnapshot(), $[0] = props.editorActor, $[1] = t0) : t0 = $[1];
|
|
2070
2070
|
const t1 = t0.context.keyGenerator;
|
|
@@ -2154,12 +2154,12 @@ function Synchronizer(props) {
|
|
|
2154
2154
|
});
|
|
2155
2155
|
}, t12 = [syncActorRef, readOnly], $[26] = readOnly, $[27] = syncActorRef, $[28] = t11, $[29] = t12) : (t11 = $[28], t12 = $[29]), useEffect(t11, t12);
|
|
2156
2156
|
let t13, t14;
|
|
2157
|
-
$[30] !==
|
|
2157
|
+
$[30] !== incomingValue || $[31] !== syncActorRef ? (t13 = () => {
|
|
2158
2158
|
debug$d("Value from props changed, syncing new value"), syncActorRef.send({
|
|
2159
2159
|
type: "update value",
|
|
2160
|
-
value
|
|
2160
|
+
value: incomingValue
|
|
2161
2161
|
});
|
|
2162
|
-
}, t14 = [syncActorRef,
|
|
2162
|
+
}, t14 = [syncActorRef, incomingValue], $[30] = incomingValue, $[31] = syncActorRef, $[32] = t13, $[33] = t14) : (t13 = $[32], t14 = $[33]), useEffect(t13, t14);
|
|
2163
2163
|
let t15;
|
|
2164
2164
|
$[34] !== editorActor || $[35] !== mutationActorRef ? (t15 = () => {
|
|
2165
2165
|
debug$d("Subscribing to patch events");
|
|
@@ -2182,7 +2182,7 @@ function _temp2(s_0) {
|
|
|
2182
2182
|
});
|
|
2183
2183
|
}
|
|
2184
2184
|
function _temp(s) {
|
|
2185
|
-
return s.context.
|
|
2185
|
+
return s.context.incomingValue;
|
|
2186
2186
|
}
|
|
2187
2187
|
Synchronizer.displayName = "Synchronizer";
|
|
2188
2188
|
const converterJson = {
|
|
@@ -6033,65 +6033,65 @@ function performEvent({
|
|
|
6033
6033
|
schema
|
|
6034
6034
|
},
|
|
6035
6035
|
action: defaultAction
|
|
6036
|
-
});
|
|
6036
|
+
}), editor.onChange();
|
|
6037
6037
|
} catch (error) {
|
|
6038
6038
|
console.error(new Error(`Performing action "${defaultAction.type}" as a result of "${event.type}" failed due to: ${error.message}`));
|
|
6039
6039
|
}
|
|
6040
|
-
})
|
|
6040
|
+
});
|
|
6041
6041
|
return;
|
|
6042
6042
|
}
|
|
6043
|
-
const
|
|
6043
|
+
const guardSnapshot = getSnapshot();
|
|
6044
6044
|
let behaviorOverwritten = !1;
|
|
6045
6045
|
for (const eventBehavior of eventBehaviors) {
|
|
6046
6046
|
const shouldRun = eventBehavior.guard === void 0 || eventBehavior.guard({
|
|
6047
|
-
|
|
6048
|
-
snapshot: editorSnapshot,
|
|
6047
|
+
snapshot: guardSnapshot,
|
|
6049
6048
|
event
|
|
6050
6049
|
});
|
|
6051
|
-
if (
|
|
6052
|
-
|
|
6053
|
-
|
|
6054
|
-
|
|
6055
|
-
|
|
6056
|
-
|
|
6057
|
-
|
|
6058
|
-
|
|
6059
|
-
|
|
6060
|
-
|
|
6061
|
-
|
|
6062
|
-
|
|
6063
|
-
|
|
6064
|
-
event: action.event,
|
|
6065
|
-
editor,
|
|
6066
|
-
keyGenerator,
|
|
6067
|
-
schema,
|
|
6068
|
-
getSnapshot,
|
|
6069
|
-
defaultActionCallback: void 0,
|
|
6070
|
-
nativeEvent: void 0
|
|
6071
|
-
});
|
|
6072
|
-
continue;
|
|
6073
|
-
}
|
|
6074
|
-
const internalAction = {
|
|
6075
|
-
...action,
|
|
6076
|
-
editor
|
|
6077
|
-
};
|
|
6078
|
-
try {
|
|
6079
|
-
performAction({
|
|
6080
|
-
context: {
|
|
6050
|
+
if (shouldRun) {
|
|
6051
|
+
for (const actionSet of eventBehavior.actions) {
|
|
6052
|
+
const actionsSnapshot = getSnapshot(), actions = actionSet({
|
|
6053
|
+
snapshot: actionsSnapshot,
|
|
6054
|
+
event
|
|
6055
|
+
}, shouldRun);
|
|
6056
|
+
actions.length !== 0 && (behaviorOverwritten = behaviorOverwritten || actions.some((action) => action.type !== "effect"), withApplyingBehaviorActionSet(editor, () => {
|
|
6057
|
+
for (const action of actions) {
|
|
6058
|
+
if (action.type === "raise") {
|
|
6059
|
+
performEvent({
|
|
6060
|
+
behaviors,
|
|
6061
|
+
event: action.event,
|
|
6062
|
+
editor,
|
|
6081
6063
|
keyGenerator,
|
|
6082
|
-
schema
|
|
6083
|
-
|
|
6084
|
-
|
|
6085
|
-
|
|
6086
|
-
|
|
6087
|
-
|
|
6088
|
-
|
|
6064
|
+
schema,
|
|
6065
|
+
getSnapshot,
|
|
6066
|
+
defaultActionCallback: void 0,
|
|
6067
|
+
nativeEvent: void 0
|
|
6068
|
+
});
|
|
6069
|
+
continue;
|
|
6070
|
+
}
|
|
6071
|
+
const internalAction = {
|
|
6072
|
+
...action,
|
|
6073
|
+
editor
|
|
6074
|
+
};
|
|
6075
|
+
try {
|
|
6076
|
+
performAction({
|
|
6077
|
+
context: {
|
|
6078
|
+
keyGenerator,
|
|
6079
|
+
schema
|
|
6080
|
+
},
|
|
6081
|
+
action: internalAction
|
|
6082
|
+
});
|
|
6083
|
+
} catch (error) {
|
|
6084
|
+
console.error(new Error(`Performing action "${internalAction.type}" as a result of "${event.type}" failed due to: ${error.message}`));
|
|
6085
|
+
break;
|
|
6086
|
+
}
|
|
6089
6087
|
}
|
|
6090
|
-
|
|
6091
|
-
|
|
6092
|
-
|
|
6093
|
-
|
|
6094
|
-
|
|
6088
|
+
editor.onChange();
|
|
6089
|
+
}));
|
|
6090
|
+
}
|
|
6091
|
+
if (behaviorOverwritten) {
|
|
6092
|
+
nativeEvent?.preventDefault();
|
|
6093
|
+
break;
|
|
6094
|
+
}
|
|
6095
6095
|
}
|
|
6096
6096
|
}
|
|
6097
6097
|
if (!behaviorOverwritten) {
|
|
@@ -6115,11 +6115,11 @@ function performEvent({
|
|
|
6115
6115
|
schema
|
|
6116
6116
|
},
|
|
6117
6117
|
action: defaultAction
|
|
6118
|
-
});
|
|
6118
|
+
}), editor.onChange();
|
|
6119
6119
|
} catch (error) {
|
|
6120
6120
|
console.error(new Error(`Performing action "${defaultAction.type}" as a result of "${event.type}" failed due to: ${error.message}`));
|
|
6121
6121
|
}
|
|
6122
|
-
})
|
|
6122
|
+
});
|
|
6123
6123
|
}
|
|
6124
6124
|
}
|
|
6125
6125
|
function slateChildrenToBlocks(schema, value) {
|
|
@@ -6303,7 +6303,7 @@ const editorMachine = setup({
|
|
|
6303
6303
|
selection: null,
|
|
6304
6304
|
initialReadOnly: input.readOnly ?? !1,
|
|
6305
6305
|
maxBlocks: input.maxBlocks,
|
|
6306
|
-
|
|
6306
|
+
incomingValue: input.initialValue
|
|
6307
6307
|
}),
|
|
6308
6308
|
on: {
|
|
6309
6309
|
"notify.blurred": {
|
|
@@ -6402,7 +6402,7 @@ const editorMachine = setup({
|
|
|
6402
6402
|
},
|
|
6403
6403
|
"update value": {
|
|
6404
6404
|
actions: assign({
|
|
6405
|
-
|
|
6405
|
+
incomingValue: ({
|
|
6406
6406
|
event
|
|
6407
6407
|
}) => event.value
|
|
6408
6408
|
})
|
|
@@ -7011,7 +7011,7 @@ function editorConfigToMachineInput(config) {
|
|
|
7011
7011
|
maxBlocks: config.maxBlocks,
|
|
7012
7012
|
readOnly: config.readOnly,
|
|
7013
7013
|
schema: config.schemaDefinition ? compileSchemaDefinition(config.schemaDefinition) : createEditorSchema(config.schema.hasOwnProperty("jsonType") ? config.schema : compileType(config.schema)),
|
|
7014
|
-
|
|
7014
|
+
initialValue: config.initialValue
|
|
7015
7015
|
};
|
|
7016
7016
|
}
|
|
7017
7017
|
function createInternalEditorFromActor(editorActor) {
|