@portabletext/editor 7.10.10 → 7.10.12

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/index.js CHANGED
@@ -8978,6 +8978,9 @@ function createSpanNode(context) {
8978
8978
  marks: []
8979
8979
  };
8980
8980
  }
8981
+ function isCosmeticNormalizationSkipped(editor) {
8982
+ return editor.isProcessingRemoteChanges;
8983
+ }
8981
8984
  const normalizeNode = (editor, entry) => {
8982
8985
  const [node, path2] = entry, nodeRecord = node;
8983
8986
  if (isEditor(node) && node.snapshot.context.value.length === 0) {
@@ -8986,7 +8989,7 @@ const normalizeNode = (editor, entry) => {
8986
8989
  });
8987
8990
  return;
8988
8991
  }
8989
- if (isTextBlock({
8992
+ if (!isCosmeticNormalizationSkipped(editor) && isTextBlock({
8990
8993
  schema: editor.snapshot.context.schema
8991
8994
  }, node)) {
8992
8995
  const children = getChildren(editor.snapshot, path2);
@@ -9302,7 +9305,9 @@ const normalizeNode = (editor, entry) => {
9302
9305
  }, child)) {
9303
9306
  if (prev != null && isSpan({
9304
9307
  schema: editor.snapshot.context.schema
9305
- }, prev)) {
9308
+ }, prev) && // Only this merge/empty-drop arm is cosmetic; the inline-object
9309
+ // bracketing below is a repair and keeps running.
9310
+ !isCosmeticNormalizationSkipped(editor)) {
9306
9311
  if (child.text === "") {
9307
9312
  editor.apply({
9308
9313
  type: "unset",
@@ -15088,7 +15093,10 @@ const abstractAnnotationBehaviors = [defineBehavior({
15088
15093
  ...snapshot.context,
15089
15094
  selection: at
15090
15095
  }
15091
- }, focusTextBlock = getFocusTextBlock(adjustedSnapshot);
15096
+ };
15097
+ if (!isSelectionCollapsed$1(adjustedSnapshot))
15098
+ return !1;
15099
+ const focusTextBlock = getFocusTextBlock(adjustedSnapshot);
15092
15100
  if (!focusTextBlock)
15093
15101
  return !1;
15094
15102
  const nextSibling = getSibling(adjustedSnapshot, focusTextBlock.path, {
@@ -18700,7 +18708,7 @@ function syncBlock({
18700
18708
  if (!oldEngineBlock || !oldBlock) {
18701
18709
  const validation2 = validateValue([block], context.schema, context.keyGenerator);
18702
18710
  if (debug.syncValue("Validating and inserting new block in the end of the value", block), validation2.valid || validation2.resolution?.autoResolve) {
18703
- const engineBlock = toEngineBlock(block, {
18711
+ const repairedBlock = applyAutoResolution(validation2, [block], block), engineBlock = toEngineBlock(repairedBlock, {
18704
18712
  schemaTypes: context.schema
18705
18713
  });
18706
18714
  return withoutNormalizing(editorEngine, () => {
@@ -18739,46 +18747,53 @@ function syncBlock({
18739
18747
  blockChanged: !1,
18740
18748
  blockValid: !0
18741
18749
  };
18742
- const validation = validateValue([blockToValidate], context.schema, context.keyGenerator);
18743
- return !validation.valid && validation.resolution?.autoResolve && validation.resolution?.patches.length > 0 && !context.readOnly && context.previousValue && context.previousValue !== value && (console.warn(`${validation.resolution.action} for block with _key '${blockToValidate._key}'. ${validation.resolution?.description}`), validation.resolution.patches.forEach((patch) => {
18750
+ const validationValue = [blockToValidate], validation = validateValue(validationValue, context.schema, context.keyGenerator);
18751
+ if (!validation.valid && validation.resolution?.autoResolve && validation.resolution?.patches.length > 0 && !context.readOnly && context.previousValue && context.previousValue !== value && (console.warn(`${validation.resolution.action} for block with _key '${blockToValidate._key}'. ${validation.resolution?.description}`), validation.resolution.patches.forEach((patch) => {
18744
18752
  sendBack({
18745
18753
  type: "patch",
18746
18754
  patch
18747
18755
  });
18748
- })), validation.valid || validation.resolution?.autoResolve ? (oldBlock._key === block._key && oldBlock._type === block._type ? (debug.syncValue("Updating block", oldBlock, block), withoutNormalizing(editorEngine, () => {
18749
- withRemoteChanges(editorEngine, () => {
18750
- withoutPatching(editorEngine, () => {
18751
- updateBlock({
18752
- context,
18753
- editorEngine,
18754
- oldEngineBlock,
18755
- block,
18756
- index
18756
+ })), validation.valid || validation.resolution?.autoResolve) {
18757
+ const repairedBlock = applyAutoResolution(validation, validationValue, block);
18758
+ return oldBlock._key === block._key && oldBlock._type === block._type ? (debug.syncValue("Updating block", oldBlock, repairedBlock), withoutNormalizing(editorEngine, () => {
18759
+ withRemoteChanges(editorEngine, () => {
18760
+ withoutPatching(editorEngine, () => {
18761
+ updateBlock({
18762
+ context,
18763
+ editorEngine,
18764
+ oldEngineBlock,
18765
+ block: repairedBlock,
18766
+ index
18767
+ });
18757
18768
  });
18758
18769
  });
18759
- });
18760
- })) : (debug.syncValue("Replacing block", oldBlock, block), withoutNormalizing(editorEngine, () => {
18761
- withRemoteChanges(editorEngine, () => {
18762
- withoutPatching(editorEngine, () => {
18763
- replaceBlock({
18764
- context,
18765
- editorEngine,
18766
- block,
18767
- index
18770
+ })) : (debug.syncValue("Replacing block", oldBlock, repairedBlock), withoutNormalizing(editorEngine, () => {
18771
+ withRemoteChanges(editorEngine, () => {
18772
+ withoutPatching(editorEngine, () => {
18773
+ replaceBlock({
18774
+ context,
18775
+ editorEngine,
18776
+ block: repairedBlock,
18777
+ index
18778
+ });
18768
18779
  });
18769
18780
  });
18770
- });
18771
- })), {
18772
- blockChanged: !0,
18773
- blockValid: !0
18774
- }) : (sendBack({
18775
- type: "invalid value",
18776
- resolution: validation.resolution,
18777
- value
18778
- }), {
18779
- blockChanged: !1,
18780
- blockValid: !1
18781
- });
18781
+ })), {
18782
+ blockChanged: !0,
18783
+ blockValid: !0
18784
+ };
18785
+ } else
18786
+ return sendBack({
18787
+ type: "invalid value",
18788
+ resolution: validation.resolution,
18789
+ value
18790
+ }), {
18791
+ blockChanged: !1,
18792
+ blockValid: !1
18793
+ };
18794
+ }
18795
+ function applyAutoResolution(validation, validationValue, block) {
18796
+ return !validation.valid && validation.resolution?.autoResolve ? applyAll(validationValue, validation.resolution.patches).at(0) ?? block : block;
18782
18797
  }
18783
18798
  function replaceBlock({
18784
18799
  context,