@fluidframework/merge-tree 0.57.1 → 0.58.0-55561

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.
Files changed (90) hide show
  1. package/dist/base.d.ts +0 -1
  2. package/dist/base.d.ts.map +1 -1
  3. package/dist/base.js.map +1 -1
  4. package/dist/client.d.ts +0 -2
  5. package/dist/client.d.ts.map +1 -1
  6. package/dist/client.js +8 -29
  7. package/dist/client.js.map +1 -1
  8. package/dist/collections.d.ts +0 -3
  9. package/dist/collections.d.ts.map +1 -1
  10. package/dist/collections.js +6 -22
  11. package/dist/collections.js.map +1 -1
  12. package/dist/index.d.ts +0 -1
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +0 -3
  15. package/dist/index.js.map +1 -1
  16. package/dist/mergeTree.d.ts +8 -26
  17. package/dist/mergeTree.d.ts.map +1 -1
  18. package/dist/mergeTree.js +16 -277
  19. package/dist/mergeTree.js.map +1 -1
  20. package/dist/ops.d.ts +0 -6
  21. package/dist/ops.d.ts.map +1 -1
  22. package/dist/ops.js +1 -8
  23. package/dist/ops.js.map +1 -1
  24. package/dist/partialLengths.d.ts.map +1 -1
  25. package/dist/partialLengths.js +0 -9
  26. package/dist/partialLengths.js.map +1 -1
  27. package/dist/properties.d.ts.map +1 -1
  28. package/dist/properties.js +2 -15
  29. package/dist/properties.js.map +1 -1
  30. package/dist/snapshotlegacy.d.ts.map +1 -1
  31. package/dist/snapshotlegacy.js +3 -6
  32. package/dist/snapshotlegacy.js.map +1 -1
  33. package/dist/textSegment.d.ts.map +1 -1
  34. package/dist/textSegment.js +0 -14
  35. package/dist/textSegment.js.map +1 -1
  36. package/lib/base.d.ts +0 -1
  37. package/lib/base.d.ts.map +1 -1
  38. package/lib/base.js.map +1 -1
  39. package/lib/client.d.ts +0 -2
  40. package/lib/client.d.ts.map +1 -1
  41. package/lib/client.js +5 -26
  42. package/lib/client.js.map +1 -1
  43. package/lib/collections.d.ts +0 -3
  44. package/lib/collections.d.ts.map +1 -1
  45. package/lib/collections.js +6 -22
  46. package/lib/collections.js.map +1 -1
  47. package/lib/index.d.ts +0 -1
  48. package/lib/index.d.ts.map +1 -1
  49. package/lib/index.js +0 -1
  50. package/lib/index.js.map +1 -1
  51. package/lib/mergeTree.d.ts +8 -26
  52. package/lib/mergeTree.d.ts.map +1 -1
  53. package/lib/mergeTree.js +15 -274
  54. package/lib/mergeTree.js.map +1 -1
  55. package/lib/ops.d.ts +0 -6
  56. package/lib/ops.d.ts.map +1 -1
  57. package/lib/ops.js +0 -7
  58. package/lib/ops.js.map +1 -1
  59. package/lib/partialLengths.d.ts.map +1 -1
  60. package/lib/partialLengths.js +0 -9
  61. package/lib/partialLengths.js.map +1 -1
  62. package/lib/properties.d.ts.map +1 -1
  63. package/lib/properties.js +2 -15
  64. package/lib/properties.js.map +1 -1
  65. package/lib/snapshotlegacy.d.ts.map +1 -1
  66. package/lib/snapshotlegacy.js +3 -6
  67. package/lib/snapshotlegacy.js.map +1 -1
  68. package/lib/textSegment.d.ts.map +1 -1
  69. package/lib/textSegment.js +1 -15
  70. package/lib/textSegment.js.map +1 -1
  71. package/package.json +10 -10
  72. package/src/base.ts +0 -1
  73. package/src/client.ts +5 -29
  74. package/src/collections.ts +7 -24
  75. package/src/index.ts +0 -1
  76. package/src/mergeTree.ts +31 -306
  77. package/src/ops.ts +0 -7
  78. package/src/partialLengths.ts +0 -10
  79. package/src/properties.ts +7 -15
  80. package/src/snapshotlegacy.ts +4 -6
  81. package/src/textSegment.ts +2 -17
  82. package/dist/text.d.ts +0 -8
  83. package/dist/text.d.ts.map +0 -1
  84. package/dist/text.js +0 -78
  85. package/dist/text.js.map +0 -1
  86. package/lib/text.d.ts +0 -8
  87. package/lib/text.d.ts.map +0 -1
  88. package/lib/text.js +0 -73
  89. package/lib/text.js.map +0 -1
  90. package/src/text.ts +0 -83
package/src/ops.ts CHANGED
@@ -14,13 +14,6 @@ export enum ReferenceType {
14
14
  Transient = 0x100,
15
15
  }
16
16
 
17
- export enum IntervalType {
18
- Simple = 0x0,
19
- Nest = 0x1,
20
- SlideOnRemove = 0x2,
21
- Transient = 0x4,
22
- }
23
-
24
17
  export interface IMarkerDef {
25
18
  refType?: ReferenceType;
26
19
  }
@@ -198,8 +198,6 @@ export class PartialSequenceLengths {
198
198
  }
199
199
  }
200
200
  // TODO: incremental zamboni during build
201
- // console.log(combinedPartialLengths.toString());
202
- // console.log(`ZZZ...(min ${segmentWindow.minSeq})`);
203
201
  if (PartialSequenceLengths.options.zamboni) {
204
202
  combinedPartialLengths.zamboni(collabWindow);
205
203
  }
@@ -208,7 +206,6 @@ export class PartialSequenceLengths {
208
206
  combinedPartialLengths.verify();
209
207
  }
210
208
 
211
- // console.log(combinedPartialLengths.toString());
212
209
  return combinedPartialLengths;
213
210
  }
214
211
 
@@ -227,9 +224,6 @@ export class PartialSequenceLengths {
227
224
  if (child.isLeaf()) {
228
225
  // Leaf segment
229
226
  const segment = child;
230
- // eslint-disable-next-line max-len
231
- // console.log(`seg br ${segBranchId} cli ${glc(mergeTree, segment.clientId)} me ${glc(mergeTree, mergeTree.collabWindow.clientId)}`);
232
-
233
227
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
234
228
  if (seqLTE(segment.seq!, collabWindow.minSeq)) {
235
229
  combinedPartialLengths.minLength += segment.cachedLength;
@@ -448,15 +442,12 @@ export class PartialSequenceLengths {
448
442
  this.clientSeqNumbers[clientId] = [];
449
443
  }
450
444
  PartialSequenceLengths.addSeq(this.clientSeqNumbers[clientId], seq, seqSeglen);
451
- // console.log(this.toString());
452
445
  if (PartialSequenceLengths.options.zamboni) {
453
446
  this.zamboni(collabWindow);
454
447
  }
455
448
  if (PartialSequenceLengths.options.verify) {
456
449
  this.verify();
457
450
  }
458
- // console.log('ZZZ');
459
- // console.log(this.toString());
460
451
  }
461
452
 
462
453
  public getPartialLength(refSeq: number, clientId: number) {
@@ -522,7 +513,6 @@ export class PartialSequenceLengths {
522
513
  function copyDown(partialLengths: PartialSequenceLength[]) {
523
514
  const mindex = latestLEQ(partialLengths, segmentWindow.minSeq);
524
515
  let minLength = 0;
525
- // console.log(`mindex ${mindex}`);
526
516
  if (mindex >= 0) {
527
517
  minLength = partialLengths[mindex].len;
528
518
  const seqCount = partialLengths.length;
package/src/properties.ts CHANGED
@@ -28,7 +28,7 @@ export function combine(combiningInfo: ICombiningOp, currentValue: any, newValue
28
28
  _currentValue = combiningInfo.defaultValue;
29
29
  }
30
30
  // Fixed set of operations for now
31
- /* eslint-disable default-case */
31
+
32
32
  switch (combiningInfo.name) {
33
33
  case "incr":
34
34
  _currentValue += newValue as number;
@@ -56,8 +56,7 @@ export function combine(combiningInfo: ICombiningOp, currentValue: any, newValue
56
56
  }
57
57
  break;
58
58
  }
59
- /* eslint-enable default-case */
60
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
59
+
61
60
  return _currentValue;
62
61
  }
63
62
 
@@ -67,7 +66,7 @@ export function matchProperties(a: PropertySet | undefined, b: PropertySet | und
67
66
  return false;
68
67
  } else {
69
68
  // For now, straightforward; later use hashing
70
- // eslint-disable-next-line no-restricted-syntax
69
+
71
70
  for (const key in a) {
72
71
  if (b[key] === undefined) {
73
72
  return false;
@@ -79,7 +78,7 @@ export function matchProperties(a: PropertySet | undefined, b: PropertySet | und
79
78
  return false;
80
79
  }
81
80
  }
82
- // eslint-disable-next-line no-restricted-syntax
81
+
83
82
  for (const key in b) {
84
83
  if (a[key] === undefined) {
85
84
  return false;
@@ -101,14 +100,10 @@ export function extend<T>(
101
100
  seq?: number,
102
101
  ) {
103
102
  if (extension !== undefined) {
104
- if ((typeof extension !== "object")) {
105
- console.log(`oh my ${extension}`);
106
- }
107
- // eslint-disable-next-line guard-for-in, no-restricted-syntax
103
+ // eslint-disable-next-line guard-for-in
108
104
  for (const key in extension) {
109
105
  const v = extension[key];
110
106
  if (v === null) {
111
- // eslint-disable-next-line @typescript-eslint/no-dynamic-delete
112
107
  delete base[key];
113
108
  } else {
114
109
  if (combiningOp && (combiningOp.name !== "rewrite")) {
@@ -127,7 +122,7 @@ export function clone<T>(extension: MapLike<T> | undefined) {
127
122
  return undefined;
128
123
  }
129
124
  const cloneMap = createMap<T>();
130
- // eslint-disable-next-line guard-for-in, no-restricted-syntax
125
+ // eslint-disable-next-line guard-for-in
131
126
  for (const key in extension) {
132
127
  const v = extension[key];
133
128
  if (v !== null) {
@@ -153,10 +148,7 @@ export function addProperties(
153
148
 
154
149
  export function extendIfUndefined<T>(base: MapLike<T>, extension: MapLike<T> | undefined) {
155
150
  if (extension !== undefined) {
156
- if ((typeof extension !== "object")) {
157
- console.log(`oh my ${extension}`);
158
- }
159
- // eslint-disable-next-line no-restricted-syntax
151
+
160
152
  for (const key in extension) {
161
153
  if (base[key] === undefined) {
162
154
  base[key] = extension[key];
@@ -154,10 +154,8 @@ export class SnapshotLegacy {
154
154
  const extractSegment =
155
155
  // eslint-disable-next-line max-len
156
156
  (segment: ISegment, pos: number, refSeq: number, clientId: number, start: number | undefined, end: number | undefined) => {
157
- // eslint-disable-next-line eqeqeq
158
- if ((segment.seq != UnassignedSequenceNumber) && (segment.seq! <= this.seq!) &&
159
- // eslint-disable-next-line eqeqeq
160
- ((segment.removedSeq === undefined) || (segment.removedSeq == UnassignedSequenceNumber) ||
157
+ if ((segment.seq !== UnassignedSequenceNumber) && (segment.seq! <= this.seq!) &&
158
+ ((segment.removedSeq === undefined) || (segment.removedSeq === UnassignedSequenceNumber) ||
161
159
  (segment.removedSeq > this.seq!))) {
162
160
  if (prev && prev.canAppend(segment)
163
161
  && matchProperties(prev.properties, segment.properties)
@@ -192,8 +190,8 @@ export class SnapshotLegacy {
192
190
  // When this condition happens, we might not write out all segments in getSeqLengthSegs()
193
191
  // when writing out "body". Issue #1995 tracks following up on the core of the problem.
194
192
  // In the meantime, this code makes sure we will write out all segments properly
195
- // eslint-disable-next-line eqeqeq
196
- if (this.header.segmentsTotalLength != totalLength) {
193
+
194
+ if (this.header.segmentsTotalLength !== totalLength) {
197
195
  this.logger.sendErrorEvent({
198
196
  eventName: "SegmentsTotalLengthMismatch",
199
197
  totalLength,
@@ -4,7 +4,7 @@
4
4
  */
5
5
 
6
6
  import { IIntegerRange } from "./base";
7
- import { BaseSegment, glc, ISegment, Marker, MergeTree } from "./mergeTree";
7
+ import { BaseSegment, ISegment, Marker, MergeTree } from "./mergeTree";
8
8
  import { IJSONSegment } from "./ops";
9
9
  import { PropertySet } from "./properties";
10
10
  import { LocalReferenceCollection } from "./localReference";
@@ -154,11 +154,6 @@ export class MergeTreeTextHelper {
154
154
  textSegment: new TextSegment(""),
155
155
  };
156
156
 
157
- if (MergeTree.traceGatherText) {
158
- console.log(
159
- `get text on cli ${glc(this.mergeTree, this.mergeTree.collabWindow.clientId)} ` +
160
- `ref cli ${glc(this.mergeTree, clientId)} refSeq ${refSeq}`);
161
- }
162
157
  this.mergeTree.mapRange<ITextAndMarkerAccumulator>(
163
158
  { leaf: this.gatherText },
164
159
  refSeq,
@@ -175,11 +170,6 @@ export class MergeTreeTextHelper {
175
170
 
176
171
  const accum: ITextAccumulator = { textSegment: new TextSegment(""), placeholder };
177
172
 
178
- if (MergeTree.traceGatherText) {
179
- console.log(
180
- `get text on cli ${glc(this.mergeTree, this.mergeTree.collabWindow.clientId)} ` +
181
- `ref cli ${glc(this.mergeTree, clientId)} refSeq ${refSeq}`);
182
- }
183
173
  this.mergeTree.mapRange<ITextAccumulator>(
184
174
  { leaf: this.gatherText },
185
175
  refSeq,
@@ -207,12 +197,7 @@ export class MergeTreeTextHelper {
207
197
  end: number, accumText: ITextAccumulatorType) => {
208
198
  let _start = start;
209
199
  if (TextSegment.is(segment)) {
210
- if (MergeTree.traceGatherText) {
211
- console.log(
212
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
213
- `@cli ${this.mergeTree.getLongClientId!(this.mergeTree.collabWindow.clientId)} ` +
214
- `gather seg seq ${segment.seq} rseq ${segment.removedSeq} text ${segment.text}`);
215
- }
200
+
216
201
  let beginTags = "";
217
202
  let endTags = "";
218
203
  if (isTextAndMarkerAccumulator(accumText)) {
package/dist/text.d.ts DELETED
@@ -1,8 +0,0 @@
1
- /*!
2
- * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
- * Licensed under the MIT License.
4
- */
5
- import { ISegment, MergeTree } from "./mergeTree";
6
- export declare function loadSegments(content: string, segLimit: number, markers?: boolean, withProps?: boolean): ISegment[];
7
- export declare function loadText(content: string, mergeTree: MergeTree, segLimit: number, markers?: boolean): MergeTree;
8
- //# sourceMappingURL=text.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../src/text.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACH,QAAQ,EAER,SAAS,EAEZ,MAAM,aAAa,CAAC;AAIrB,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe,EAAE,SAAS,GAAE,OAAc,cA2DlH;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,UAAQ,aAOhG"}
package/dist/text.js DELETED
@@ -1,78 +0,0 @@
1
- "use strict";
2
- /*!
3
- * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
4
- * Licensed under the MIT License.
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.loadText = exports.loadSegments = void 0;
8
- const mergeTree_1 = require("./mergeTree");
9
- const ops_1 = require("./ops");
10
- const textSegment_1 = require("./textSegment");
11
- function loadSegments(content, segLimit, markers = false, withProps = true) {
12
- const BOMFreeContent = content.replace(/^\uFEFF/, "");
13
- const paragraphs = BOMFreeContent.split(/\r?\n/);
14
- for (let i = 0, len = paragraphs.length; i < len; i++) {
15
- paragraphs[i] = paragraphs[i]
16
- .replace(/\r?\n/g, " ")
17
- .replace(/\u201c|\u201d/g, '"')
18
- .replace(/\u2019/g, "'");
19
- if (!markers && i !== paragraphs.length - 1) {
20
- paragraphs[i] += "\n";
21
- }
22
- }
23
- const segments = [];
24
- for (const paragraph of paragraphs) {
25
- let pgMarker;
26
- if (markers) {
27
- pgMarker = mergeTree_1.Marker.make(ops_1.ReferenceType.Tile, { [mergeTree_1.reservedTileLabelsKey]: ["pg"] });
28
- }
29
- if (withProps) {
30
- if ((paragraph.includes("Chapter")) || (paragraph.includes("PRIDE AND PREJ"))) {
31
- if (pgMarker) {
32
- pgMarker.addProperties({ header: 2 });
33
- segments.push(new textSegment_1.TextSegment(paragraph));
34
- }
35
- else {
36
- segments.push(textSegment_1.TextSegment.make(paragraph, { fontSize: "140%", lineHeight: "150%" }));
37
- }
38
- }
39
- else {
40
- const emphStrings = paragraph.split("_");
41
- for (let i = 0, len = emphStrings.length; i < len; i++) {
42
- // eslint-disable-next-line no-bitwise
43
- if (i & 1) {
44
- if (emphStrings[i].length > 0) {
45
- segments.push(textSegment_1.TextSegment.make(emphStrings[i], { fontStyle: "italic" }));
46
- }
47
- }
48
- else {
49
- if (emphStrings[i].length > 0) {
50
- segments.push(new textSegment_1.TextSegment(emphStrings[i]));
51
- }
52
- }
53
- }
54
- }
55
- }
56
- else {
57
- segments.push(new textSegment_1.TextSegment(paragraph));
58
- }
59
- if (pgMarker) {
60
- segments.push(pgMarker);
61
- }
62
- }
63
- if (segLimit > 0) {
64
- segments.length = segLimit;
65
- }
66
- return segments;
67
- }
68
- exports.loadSegments = loadSegments;
69
- function loadText(content, mergeTree, segLimit, markers = false) {
70
- const segments = loadSegments(content, segLimit, markers);
71
- mergeTree.reloadFromSegments(segments);
72
- // console.log(`Number of Segments: ${segments.length}`);
73
- // console.log(`Height: ${mergeTree.getStats().maxHeight}`);
74
- // console.log(segTree.toString());
75
- return mergeTree;
76
- }
77
- exports.loadText = loadText;
78
- //# sourceMappingURL=text.js.map
package/dist/text.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"text.js","sourceRoot":"","sources":["../src/text.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport {\n ISegment,\n Marker,\n MergeTree,\n reservedTileLabelsKey,\n} from \"./mergeTree\";\nimport { ReferenceType } from \"./ops\";\nimport { TextSegment } from \"./textSegment\";\n\nexport function loadSegments(content: string, segLimit: number, markers: boolean = false, withProps: boolean = true) {\n const BOMFreeContent = content.replace(/^\\uFEFF/, \"\");\n\n const paragraphs = BOMFreeContent.split(/\\r?\\n/);\n for (let i = 0, len = paragraphs.length; i < len; i++) {\n paragraphs[i] = paragraphs[i]\n .replace(/\\r?\\n/g, \" \")\n .replace(/\\u201c|\\u201d/g, '\"')\n .replace(/\\u2019/g, \"'\");\n if (!markers && i !== paragraphs.length - 1) {\n paragraphs[i] += \"\\n\";\n }\n }\n\n const segments = [] as ISegment[];\n for (const paragraph of paragraphs) {\n let pgMarker: Marker | undefined;\n if (markers) {\n pgMarker = Marker.make(ReferenceType.Tile,\n { [reservedTileLabelsKey]: [\"pg\"] });\n }\n if (withProps) {\n if ((paragraph.includes(\"Chapter\")) || (paragraph.includes(\"PRIDE AND PREJ\"))) {\n if (pgMarker) {\n pgMarker.addProperties({ header: 2 });\n segments.push(new TextSegment(paragraph));\n } else {\n segments.push(\n TextSegment.make(paragraph, { fontSize: \"140%\", lineHeight: \"150%\" }));\n }\n } else {\n const emphStrings = paragraph.split(\"_\");\n for (let i = 0, len = emphStrings.length; i < len; i++) {\n // eslint-disable-next-line no-bitwise\n if (i & 1) {\n if (emphStrings[i].length > 0) {\n segments.push(\n TextSegment.make(emphStrings[i], { fontStyle: \"italic\" }));\n }\n } else {\n if (emphStrings[i].length > 0) {\n segments.push(new TextSegment(emphStrings[i]));\n }\n }\n }\n }\n } else {\n segments.push(new TextSegment(paragraph));\n }\n if (pgMarker) {\n segments.push(pgMarker);\n }\n }\n\n if (segLimit > 0) {\n segments.length = segLimit;\n }\n\n return segments;\n}\n\nexport function loadText(content: string, mergeTree: MergeTree, segLimit: number, markers = false) {\n const segments = loadSegments(content, segLimit, markers);\n mergeTree.reloadFromSegments(segments);\n // console.log(`Number of Segments: ${segments.length}`);\n // console.log(`Height: ${mergeTree.getStats().maxHeight}`);\n // console.log(segTree.toString());\n return mergeTree;\n}\n"]}
package/lib/text.d.ts DELETED
@@ -1,8 +0,0 @@
1
- /*!
2
- * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
- * Licensed under the MIT License.
4
- */
5
- import { ISegment, MergeTree } from "./mergeTree";
6
- export declare function loadSegments(content: string, segLimit: number, markers?: boolean, withProps?: boolean): ISegment[];
7
- export declare function loadText(content: string, mergeTree: MergeTree, segLimit: number, markers?: boolean): MergeTree;
8
- //# sourceMappingURL=text.d.ts.map
package/lib/text.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../src/text.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACH,QAAQ,EAER,SAAS,EAEZ,MAAM,aAAa,CAAC;AAIrB,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe,EAAE,SAAS,GAAE,OAAc,cA2DlH;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,UAAQ,aAOhG"}
package/lib/text.js DELETED
@@ -1,73 +0,0 @@
1
- /*!
2
- * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
- * Licensed under the MIT License.
4
- */
5
- import { Marker, reservedTileLabelsKey, } from "./mergeTree";
6
- import { ReferenceType } from "./ops";
7
- import { TextSegment } from "./textSegment";
8
- export function loadSegments(content, segLimit, markers = false, withProps = true) {
9
- const BOMFreeContent = content.replace(/^\uFEFF/, "");
10
- const paragraphs = BOMFreeContent.split(/\r?\n/);
11
- for (let i = 0, len = paragraphs.length; i < len; i++) {
12
- paragraphs[i] = paragraphs[i]
13
- .replace(/\r?\n/g, " ")
14
- .replace(/\u201c|\u201d/g, '"')
15
- .replace(/\u2019/g, "'");
16
- if (!markers && i !== paragraphs.length - 1) {
17
- paragraphs[i] += "\n";
18
- }
19
- }
20
- const segments = [];
21
- for (const paragraph of paragraphs) {
22
- let pgMarker;
23
- if (markers) {
24
- pgMarker = Marker.make(ReferenceType.Tile, { [reservedTileLabelsKey]: ["pg"] });
25
- }
26
- if (withProps) {
27
- if ((paragraph.includes("Chapter")) || (paragraph.includes("PRIDE AND PREJ"))) {
28
- if (pgMarker) {
29
- pgMarker.addProperties({ header: 2 });
30
- segments.push(new TextSegment(paragraph));
31
- }
32
- else {
33
- segments.push(TextSegment.make(paragraph, { fontSize: "140%", lineHeight: "150%" }));
34
- }
35
- }
36
- else {
37
- const emphStrings = paragraph.split("_");
38
- for (let i = 0, len = emphStrings.length; i < len; i++) {
39
- // eslint-disable-next-line no-bitwise
40
- if (i & 1) {
41
- if (emphStrings[i].length > 0) {
42
- segments.push(TextSegment.make(emphStrings[i], { fontStyle: "italic" }));
43
- }
44
- }
45
- else {
46
- if (emphStrings[i].length > 0) {
47
- segments.push(new TextSegment(emphStrings[i]));
48
- }
49
- }
50
- }
51
- }
52
- }
53
- else {
54
- segments.push(new TextSegment(paragraph));
55
- }
56
- if (pgMarker) {
57
- segments.push(pgMarker);
58
- }
59
- }
60
- if (segLimit > 0) {
61
- segments.length = segLimit;
62
- }
63
- return segments;
64
- }
65
- export function loadText(content, mergeTree, segLimit, markers = false) {
66
- const segments = loadSegments(content, segLimit, markers);
67
- mergeTree.reloadFromSegments(segments);
68
- // console.log(`Number of Segments: ${segments.length}`);
69
- // console.log(`Height: ${mergeTree.getStats().maxHeight}`);
70
- // console.log(segTree.toString());
71
- return mergeTree;
72
- }
73
- //# sourceMappingURL=text.js.map
package/lib/text.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"text.js","sourceRoot":"","sources":["../src/text.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport {\n ISegment,\n Marker,\n MergeTree,\n reservedTileLabelsKey,\n} from \"./mergeTree\";\nimport { ReferenceType } from \"./ops\";\nimport { TextSegment } from \"./textSegment\";\n\nexport function loadSegments(content: string, segLimit: number, markers: boolean = false, withProps: boolean = true) {\n const BOMFreeContent = content.replace(/^\\uFEFF/, \"\");\n\n const paragraphs = BOMFreeContent.split(/\\r?\\n/);\n for (let i = 0, len = paragraphs.length; i < len; i++) {\n paragraphs[i] = paragraphs[i]\n .replace(/\\r?\\n/g, \" \")\n .replace(/\\u201c|\\u201d/g, '\"')\n .replace(/\\u2019/g, \"'\");\n if (!markers && i !== paragraphs.length - 1) {\n paragraphs[i] += \"\\n\";\n }\n }\n\n const segments = [] as ISegment[];\n for (const paragraph of paragraphs) {\n let pgMarker: Marker | undefined;\n if (markers) {\n pgMarker = Marker.make(ReferenceType.Tile,\n { [reservedTileLabelsKey]: [\"pg\"] });\n }\n if (withProps) {\n if ((paragraph.includes(\"Chapter\")) || (paragraph.includes(\"PRIDE AND PREJ\"))) {\n if (pgMarker) {\n pgMarker.addProperties({ header: 2 });\n segments.push(new TextSegment(paragraph));\n } else {\n segments.push(\n TextSegment.make(paragraph, { fontSize: \"140%\", lineHeight: \"150%\" }));\n }\n } else {\n const emphStrings = paragraph.split(\"_\");\n for (let i = 0, len = emphStrings.length; i < len; i++) {\n // eslint-disable-next-line no-bitwise\n if (i & 1) {\n if (emphStrings[i].length > 0) {\n segments.push(\n TextSegment.make(emphStrings[i], { fontStyle: \"italic\" }));\n }\n } else {\n if (emphStrings[i].length > 0) {\n segments.push(new TextSegment(emphStrings[i]));\n }\n }\n }\n }\n } else {\n segments.push(new TextSegment(paragraph));\n }\n if (pgMarker) {\n segments.push(pgMarker);\n }\n }\n\n if (segLimit > 0) {\n segments.length = segLimit;\n }\n\n return segments;\n}\n\nexport function loadText(content: string, mergeTree: MergeTree, segLimit: number, markers = false) {\n const segments = loadSegments(content, segLimit, markers);\n mergeTree.reloadFromSegments(segments);\n // console.log(`Number of Segments: ${segments.length}`);\n // console.log(`Height: ${mergeTree.getStats().maxHeight}`);\n // console.log(segTree.toString());\n return mergeTree;\n}\n"]}
package/src/text.ts DELETED
@@ -1,83 +0,0 @@
1
- /*!
2
- * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
- * Licensed under the MIT License.
4
- */
5
-
6
- import {
7
- ISegment,
8
- Marker,
9
- MergeTree,
10
- reservedTileLabelsKey,
11
- } from "./mergeTree";
12
- import { ReferenceType } from "./ops";
13
- import { TextSegment } from "./textSegment";
14
-
15
- export function loadSegments(content: string, segLimit: number, markers: boolean = false, withProps: boolean = true) {
16
- const BOMFreeContent = content.replace(/^\uFEFF/, "");
17
-
18
- const paragraphs = BOMFreeContent.split(/\r?\n/);
19
- for (let i = 0, len = paragraphs.length; i < len; i++) {
20
- paragraphs[i] = paragraphs[i]
21
- .replace(/\r?\n/g, " ")
22
- .replace(/\u201c|\u201d/g, '"')
23
- .replace(/\u2019/g, "'");
24
- if (!markers && i !== paragraphs.length - 1) {
25
- paragraphs[i] += "\n";
26
- }
27
- }
28
-
29
- const segments = [] as ISegment[];
30
- for (const paragraph of paragraphs) {
31
- let pgMarker: Marker | undefined;
32
- if (markers) {
33
- pgMarker = Marker.make(ReferenceType.Tile,
34
- { [reservedTileLabelsKey]: ["pg"] });
35
- }
36
- if (withProps) {
37
- if ((paragraph.includes("Chapter")) || (paragraph.includes("PRIDE AND PREJ"))) {
38
- if (pgMarker) {
39
- pgMarker.addProperties({ header: 2 });
40
- segments.push(new TextSegment(paragraph));
41
- } else {
42
- segments.push(
43
- TextSegment.make(paragraph, { fontSize: "140%", lineHeight: "150%" }));
44
- }
45
- } else {
46
- const emphStrings = paragraph.split("_");
47
- for (let i = 0, len = emphStrings.length; i < len; i++) {
48
- // eslint-disable-next-line no-bitwise
49
- if (i & 1) {
50
- if (emphStrings[i].length > 0) {
51
- segments.push(
52
- TextSegment.make(emphStrings[i], { fontStyle: "italic" }));
53
- }
54
- } else {
55
- if (emphStrings[i].length > 0) {
56
- segments.push(new TextSegment(emphStrings[i]));
57
- }
58
- }
59
- }
60
- }
61
- } else {
62
- segments.push(new TextSegment(paragraph));
63
- }
64
- if (pgMarker) {
65
- segments.push(pgMarker);
66
- }
67
- }
68
-
69
- if (segLimit > 0) {
70
- segments.length = segLimit;
71
- }
72
-
73
- return segments;
74
- }
75
-
76
- export function loadText(content: string, mergeTree: MergeTree, segLimit: number, markers = false) {
77
- const segments = loadSegments(content, segLimit, markers);
78
- mergeTree.reloadFromSegments(segments);
79
- // console.log(`Number of Segments: ${segments.length}`);
80
- // console.log(`Height: ${mergeTree.getStats().maxHeight}`);
81
- // console.log(segTree.toString());
82
- return mergeTree;
83
- }