@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.
- package/dist/base.d.ts +0 -1
- package/dist/base.d.ts.map +1 -1
- package/dist/base.js.map +1 -1
- package/dist/client.d.ts +0 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +8 -29
- package/dist/client.js.map +1 -1
- package/dist/collections.d.ts +0 -3
- package/dist/collections.d.ts.map +1 -1
- package/dist/collections.js +6 -22
- package/dist/collections.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -3
- package/dist/index.js.map +1 -1
- package/dist/mergeTree.d.ts +8 -26
- package/dist/mergeTree.d.ts.map +1 -1
- package/dist/mergeTree.js +16 -277
- package/dist/mergeTree.js.map +1 -1
- package/dist/ops.d.ts +0 -6
- package/dist/ops.d.ts.map +1 -1
- package/dist/ops.js +1 -8
- package/dist/ops.js.map +1 -1
- package/dist/partialLengths.d.ts.map +1 -1
- package/dist/partialLengths.js +0 -9
- package/dist/partialLengths.js.map +1 -1
- package/dist/properties.d.ts.map +1 -1
- package/dist/properties.js +2 -15
- package/dist/properties.js.map +1 -1
- package/dist/snapshotlegacy.d.ts.map +1 -1
- package/dist/snapshotlegacy.js +3 -6
- package/dist/snapshotlegacy.js.map +1 -1
- package/dist/textSegment.d.ts.map +1 -1
- package/dist/textSegment.js +0 -14
- package/dist/textSegment.js.map +1 -1
- package/lib/base.d.ts +0 -1
- package/lib/base.d.ts.map +1 -1
- package/lib/base.js.map +1 -1
- package/lib/client.d.ts +0 -2
- package/lib/client.d.ts.map +1 -1
- package/lib/client.js +5 -26
- package/lib/client.js.map +1 -1
- package/lib/collections.d.ts +0 -3
- package/lib/collections.d.ts.map +1 -1
- package/lib/collections.js +6 -22
- package/lib/collections.js.map +1 -1
- package/lib/index.d.ts +0 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +0 -1
- package/lib/index.js.map +1 -1
- package/lib/mergeTree.d.ts +8 -26
- package/lib/mergeTree.d.ts.map +1 -1
- package/lib/mergeTree.js +15 -274
- package/lib/mergeTree.js.map +1 -1
- package/lib/ops.d.ts +0 -6
- package/lib/ops.d.ts.map +1 -1
- package/lib/ops.js +0 -7
- package/lib/ops.js.map +1 -1
- package/lib/partialLengths.d.ts.map +1 -1
- package/lib/partialLengths.js +0 -9
- package/lib/partialLengths.js.map +1 -1
- package/lib/properties.d.ts.map +1 -1
- package/lib/properties.js +2 -15
- package/lib/properties.js.map +1 -1
- package/lib/snapshotlegacy.d.ts.map +1 -1
- package/lib/snapshotlegacy.js +3 -6
- package/lib/snapshotlegacy.js.map +1 -1
- package/lib/textSegment.d.ts.map +1 -1
- package/lib/textSegment.js +1 -15
- package/lib/textSegment.js.map +1 -1
- package/package.json +10 -10
- package/src/base.ts +0 -1
- package/src/client.ts +5 -29
- package/src/collections.ts +7 -24
- package/src/index.ts +0 -1
- package/src/mergeTree.ts +31 -306
- package/src/ops.ts +0 -7
- package/src/partialLengths.ts +0 -10
- package/src/properties.ts +7 -15
- package/src/snapshotlegacy.ts +4 -6
- package/src/textSegment.ts +2 -17
- package/dist/text.d.ts +0 -8
- package/dist/text.d.ts.map +0 -1
- package/dist/text.js +0 -78
- package/dist/text.js.map +0 -1
- package/lib/text.d.ts +0 -8
- package/lib/text.d.ts.map +0 -1
- package/lib/text.js +0 -73
- package/lib/text.js.map +0 -1
- package/src/text.ts +0 -83
package/src/ops.ts
CHANGED
package/src/partialLengths.ts
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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];
|
package/src/snapshotlegacy.ts
CHANGED
|
@@ -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
|
-
|
|
158
|
-
|
|
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
|
-
|
|
196
|
-
if (this.header.segmentsTotalLength
|
|
193
|
+
|
|
194
|
+
if (this.header.segmentsTotalLength !== totalLength) {
|
|
197
195
|
this.logger.sendErrorEvent({
|
|
198
196
|
eventName: "SegmentsTotalLengthMismatch",
|
|
199
197
|
totalLength,
|
package/src/textSegment.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { IIntegerRange } from "./base";
|
|
7
|
-
import { BaseSegment,
|
|
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
|
-
|
|
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
|
package/dist/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/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
|
-
}
|