slate 0.113.0 → 0.114.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.
@@ -9,6 +9,12 @@ export interface BaseText {
9
9
  text: string;
10
10
  }
11
11
  export type Text = ExtendedType<'Text', BaseText>;
12
+ export interface LeafPosition {
13
+ start: number;
14
+ end: number;
15
+ isFirst?: true;
16
+ isLast?: true;
17
+ }
12
18
  export interface TextEqualsOptions {
13
19
  loose?: boolean;
14
20
  }
@@ -49,7 +55,10 @@ export interface TextInterface {
49
55
  /**
50
56
  * Get the leaves for a text node given decorations.
51
57
  */
52
- decorations: (node: Text, decorations: DecoratedRange[]) => Text[];
58
+ decorations: (node: Text, decorations: DecoratedRange[]) => {
59
+ leaf: Text;
60
+ position?: LeafPosition;
61
+ }[];
53
62
  }
54
63
  export declare const Text: TextInterface;
55
64
  //# sourceMappingURL=text.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../../packages/slate/src/interfaces/text.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,IAAI,CAAA;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAGpD;;;;GAIG;AAEH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;AAEjD,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG;IACnC;;;OAGG;IACH,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAA;CACjD,CAAA;AAED,MAAM,WAAW,aAAa;IAC5B;;;;;OAKG;IACH,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,iBAAiB,KAAK,OAAO,CAAA;IAE3E;;OAEG;IACH,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,KAAK,IAAI,IAAI,CAAA;IAErC;;OAEG;IACH,UAAU,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,KAAK,IAAI,IAAI,EAAE,CAAA;IAE3C;;OAEG;IACH,WAAW,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAEnD;;;;;OAKG;IACH,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAA;IAEtD;;OAEG;IACH,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,IAAI,EAAE,CAAA;CACnE;AAGD,eAAO,MAAM,IAAI,EAAE,aAsHlB,CAAA"}
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../../packages/slate/src/interfaces/text.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,KAAK,EAAE,MAAM,IAAI,CAAA;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAGpD;;;;GAIG;AAEH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;AAEjD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,CAAC,EAAE,IAAI,CAAA;IACd,MAAM,CAAC,EAAE,IAAI,CAAA;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG;IACnC;;;OAGG;IACH,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAA;CACjD,CAAA;AAED,MAAM,WAAW,aAAa;IAC5B;;;;;OAKG;IACH,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,iBAAiB,KAAK,OAAO,CAAA;IAE3E;;OAEG;IACH,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,KAAK,IAAI,IAAI,CAAA;IAErC;;OAEG;IACH,UAAU,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,KAAK,IAAI,IAAI,EAAE,CAAA;IAE3C;;OAEG;IACH,WAAW,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAEnD;;;;;OAKG;IACH,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAA;IAEtD;;OAEG;IACH,WAAW,EAAE,CACX,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,cAAc,EAAE,KAC1B;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,QAAQ,CAAC,EAAE,YAAY,CAAA;KAAE,EAAE,CAAA;CAC/C;AAGD,eAAO,MAAM,IAAI,EAAE,aA0IlB,CAAA"}
package/dist/slate.js CHANGED
@@ -3327,7 +3327,9 @@
3327
3327
  return true;
3328
3328
  },
3329
3329
  decorations: function decorations(node, _decorations) {
3330
- var leaves = [_objectSpread$a({}, node)];
3330
+ var leaves = [{
3331
+ leaf: _objectSpread$a({}, node)
3332
+ }];
3331
3333
  var _iterator = _createForOfIteratorHelper$k(_decorations),
3332
3334
  _step;
3333
3335
  try {
@@ -3339,30 +3341,34 @@
3339
3341
  rest = _objectWithoutProperties(dec, _excluded2$2);
3340
3342
  var _Range$edges = Range.edges(dec),
3341
3343
  _Range$edges2 = _slicedToArray(_Range$edges, 2),
3342
- start = _Range$edges2[0],
3343
- end = _Range$edges2[1];
3344
+ _start = _Range$edges2[0],
3345
+ _end = _Range$edges2[1];
3344
3346
  var next = [];
3345
3347
  var leafEnd = 0;
3346
- var decorationStart = start.offset;
3347
- var decorationEnd = end.offset;
3348
+ var decorationStart = _start.offset;
3349
+ var decorationEnd = _end.offset;
3348
3350
  var merge = mergeDecoration !== null && mergeDecoration !== void 0 ? mergeDecoration : Object.assign;
3349
- var _iterator2 = _createForOfIteratorHelper$k(leaves),
3350
- _step2;
3351
+ var _iterator3 = _createForOfIteratorHelper$k(leaves),
3352
+ _step3;
3351
3353
  try {
3352
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
3353
- var leaf = _step2.value;
3354
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
3355
+ var leaf = _step3.value.leaf;
3354
3356
  var length = leaf.text.length;
3355
3357
  var leafStart = leafEnd;
3356
3358
  leafEnd += length;
3357
3359
  // If the range encompasses the entire leaf, add the range.
3358
3360
  if (decorationStart <= leafStart && leafEnd <= decorationEnd) {
3359
3361
  merge(leaf, rest);
3360
- next.push(leaf);
3362
+ next.push({
3363
+ leaf: leaf
3364
+ });
3361
3365
  continue;
3362
3366
  }
3363
3367
  // If the range expanded and match the leaf, or starts after, or ends before it, continue.
3364
3368
  if (decorationStart !== decorationEnd && (decorationStart === leafEnd || decorationEnd === leafStart) || decorationStart > leafEnd || decorationEnd < leafStart || decorationEnd === leafStart && leafStart !== 0) {
3365
- next.push(leaf);
3369
+ next.push({
3370
+ leaf: leaf
3371
+ });
3366
3372
  continue;
3367
3373
  }
3368
3374
  // Otherwise we need to split the leaf, at the start, end, or both,
@@ -3373,18 +3379,22 @@
3373
3379
  var after = void 0;
3374
3380
  if (decorationEnd < leafEnd) {
3375
3381
  var off = decorationEnd - leafStart;
3376
- after = _objectSpread$a(_objectSpread$a({}, middle), {}, {
3377
- text: middle.text.slice(off)
3378
- });
3382
+ after = {
3383
+ leaf: _objectSpread$a(_objectSpread$a({}, middle), {}, {
3384
+ text: middle.text.slice(off)
3385
+ })
3386
+ };
3379
3387
  middle = _objectSpread$a(_objectSpread$a({}, middle), {}, {
3380
3388
  text: middle.text.slice(0, off)
3381
3389
  });
3382
3390
  }
3383
3391
  if (decorationStart > leafStart) {
3384
3392
  var _off = decorationStart - leafStart;
3385
- before = _objectSpread$a(_objectSpread$a({}, middle), {}, {
3386
- text: middle.text.slice(0, _off)
3387
- });
3393
+ before = {
3394
+ leaf: _objectSpread$a(_objectSpread$a({}, middle), {}, {
3395
+ text: middle.text.slice(0, _off)
3396
+ })
3397
+ };
3388
3398
  middle = _objectSpread$a(_objectSpread$a({}, middle), {}, {
3389
3399
  text: middle.text.slice(_off)
3390
3400
  });
@@ -3393,15 +3403,17 @@
3393
3403
  if (before) {
3394
3404
  next.push(before);
3395
3405
  }
3396
- next.push(middle);
3406
+ next.push({
3407
+ leaf: middle
3408
+ });
3397
3409
  if (after) {
3398
3410
  next.push(after);
3399
3411
  }
3400
3412
  }
3401
3413
  } catch (err) {
3402
- _iterator2.e(err);
3414
+ _iterator3.e(err);
3403
3415
  } finally {
3404
- _iterator2.f();
3416
+ _iterator3.f();
3405
3417
  }
3406
3418
  leaves = next;
3407
3419
  }
@@ -3410,6 +3422,32 @@
3410
3422
  } finally {
3411
3423
  _iterator.f();
3412
3424
  }
3425
+ if (leaves.length > 1) {
3426
+ var currentOffset = 0;
3427
+ var _iterator2 = _createForOfIteratorHelper$k(leaves.entries()),
3428
+ _step2;
3429
+ try {
3430
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
3431
+ var _step2$value = _slicedToArray(_step2.value, 2),
3432
+ index = _step2$value[0],
3433
+ item = _step2$value[1];
3434
+ var start = currentOffset;
3435
+ var end = start + item.leaf.text.length;
3436
+ var position = {
3437
+ start: start,
3438
+ end: end
3439
+ };
3440
+ if (index === 0) position.isFirst = true;
3441
+ if (index === leaves.length - 1) position.isLast = true;
3442
+ item.position = position;
3443
+ currentOffset = end;
3444
+ }
3445
+ } catch (err) {
3446
+ _iterator2.e(err);
3447
+ } finally {
3448
+ _iterator2.f();
3449
+ }
3450
+ }
3413
3451
  return leaves;
3414
3452
  }
3415
3453
  };