hadron-document 7.7.0 → 7.10.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.
Files changed (82) hide show
  1. package/README.md +5 -5
  2. package/dist/document.d.ts +53 -0
  3. package/dist/document.d.ts.map +1 -0
  4. package/dist/document.js +248 -0
  5. package/dist/document.js.map +1 -0
  6. package/dist/editor/date.d.ts +13 -0
  7. package/dist/editor/date.d.ts.map +1 -0
  8. package/dist/editor/date.js +65 -0
  9. package/dist/editor/date.js.map +1 -0
  10. package/dist/editor/decimal128.d.ts +9 -0
  11. package/dist/editor/decimal128.d.ts.map +1 -0
  12. package/dist/editor/decimal128.js +32 -0
  13. package/dist/editor/decimal128.js.map +1 -0
  14. package/dist/editor/double.d.ts +10 -0
  15. package/dist/editor/double.d.ts.map +1 -0
  16. package/dist/editor/double.js +44 -0
  17. package/dist/editor/double.js.map +1 -0
  18. package/dist/editor/index.d.ts +38 -0
  19. package/dist/editor/index.d.ts.map +1 -0
  20. package/dist/editor/index.js +51 -0
  21. package/dist/editor/index.js.map +1 -0
  22. package/dist/editor/int32.d.ts +7 -0
  23. package/dist/editor/int32.d.ts.map +1 -0
  24. package/dist/editor/int32.js +17 -0
  25. package/dist/editor/int32.js.map +1 -0
  26. package/dist/editor/int64.d.ts +9 -0
  27. package/dist/editor/int64.d.ts.map +1 -0
  28. package/dist/editor/int64.js +32 -0
  29. package/dist/editor/int64.js.map +1 -0
  30. package/dist/editor/null.d.ts +8 -0
  31. package/dist/editor/null.d.ts.map +1 -0
  32. package/dist/editor/null.js +20 -0
  33. package/dist/editor/null.js.map +1 -0
  34. package/dist/editor/objectid.d.ts +10 -0
  35. package/dist/editor/objectid.d.ts.map +1 -0
  36. package/dist/editor/objectid.js +38 -0
  37. package/dist/editor/objectid.js.map +1 -0
  38. package/dist/editor/standard.d.ts +16 -0
  39. package/dist/editor/standard.d.ts.map +1 -0
  40. package/dist/editor/standard.js +49 -0
  41. package/dist/editor/standard.js.map +1 -0
  42. package/dist/editor/string.d.ts +7 -0
  43. package/dist/editor/string.d.ts.map +1 -0
  44. package/dist/editor/string.js +15 -0
  45. package/dist/editor/string.js.map +1 -0
  46. package/dist/editor/undefined.d.ts +8 -0
  47. package/dist/editor/undefined.d.ts.map +1 -0
  48. package/dist/editor/undefined.js +20 -0
  49. package/dist/editor/undefined.js.map +1 -0
  50. package/dist/element-events.d.ts +11 -0
  51. package/dist/element-events.d.ts.map +1 -0
  52. package/dist/element-events.js +12 -0
  53. package/dist/element-events.js.map +1 -0
  54. package/dist/element.d.ts +112 -0
  55. package/dist/element.d.ts.map +1 -0
  56. package/dist/element.js +652 -0
  57. package/dist/element.js.map +1 -0
  58. package/dist/index.d.ts +6 -0
  59. package/dist/index.d.ts.map +1 -0
  60. package/dist/index.js +35 -0
  61. package/dist/index.js.map +1 -0
  62. package/dist/object-generator.d.ts +9 -0
  63. package/dist/object-generator.d.ts.map +1 -0
  64. package/dist/object-generator.js +82 -0
  65. package/dist/object-generator.js.map +1 -0
  66. package/dist/utils.d.ts +11 -0
  67. package/dist/utils.d.ts.map +1 -0
  68. package/dist/utils.js +37 -0
  69. package/dist/utils.js.map +1 -0
  70. package/package.json +45 -28
  71. package/.babelrc.js +0 -14
  72. package/.depcheckrc +0 -8
  73. package/.eslintignore +0 -1
  74. package/index.js +0 -1
  75. package/lib/document.js +0 -557
  76. package/lib/element.js +0 -1236
  77. package/lib/index.js +0 -4
  78. package/lib/object-generator.js +0 -180
  79. package/src/document.js +0 -391
  80. package/src/element.js +0 -951
  81. package/src/index.js +0 -2
  82. package/src/object-generator.js +0 -96
@@ -0,0 +1,652 @@
1
+ 'use strict';
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.LinkedList = exports.Element = exports.Events = exports.DATE_FORMAT = void 0;
7
+ const eventemitter3_1 = __importDefault(require("eventemitter3"));
8
+ const lodash_keys_1 = __importDefault(require("lodash.keys"));
9
+ const lodash_isplainobject_1 = __importDefault(require("lodash.isplainobject"));
10
+ const lodash_isarray_1 = __importDefault(require("lodash.isarray"));
11
+ const lodash_isequal_1 = __importDefault(require("lodash.isequal"));
12
+ const lodash_isstring_1 = __importDefault(require("lodash.isstring"));
13
+ const object_generator_1 = __importDefault(require("./object-generator"));
14
+ const hadron_type_checker_1 = __importDefault(require("hadron-type-checker"));
15
+ const bson_1 = require("bson");
16
+ const date_1 = __importDefault(require("./editor/date"));
17
+ const element_events_1 = __importDefault(require("./element-events"));
18
+ exports.Events = element_events_1.default;
19
+ const _1 = require(".");
20
+ exports.DATE_FORMAT = 'YYYY-MM-DD HH:mm:ss.SSS';
21
+ const ID = '_id';
22
+ const UNEDITABLE_TYPES = [
23
+ 'Binary',
24
+ 'Code',
25
+ 'MinKey',
26
+ 'MaxKey',
27
+ 'Timestamp',
28
+ 'BSONRegExp',
29
+ 'Undefined',
30
+ 'Null',
31
+ 'DBRef',
32
+ ];
33
+ const CURLY = '{';
34
+ const BRACKET = '[';
35
+ const ARRAY_OR_OBJECT = /^(\[|\{)(.+)(\]|\})$/;
36
+ class Element extends eventemitter3_1.default {
37
+ constructor(key, value, added = false, parent = null, previousElement = null, nextElement = null) {
38
+ super();
39
+ this.uuid = new bson_1.UUID().toHexString();
40
+ this.key = key;
41
+ this.currentKey = key;
42
+ this.parent = parent;
43
+ this.previousElement = previousElement;
44
+ this.nextElement = nextElement;
45
+ this.added = added;
46
+ this.removed = false;
47
+ this.type = hadron_type_checker_1.default.type(value);
48
+ this.currentType = this.type;
49
+ this.level = this._getLevel();
50
+ this.setValid();
51
+ if (this._isExpandable(value)) {
52
+ this.elements = this._generateElements(value);
53
+ this.originalExpandableValue = value;
54
+ }
55
+ else {
56
+ this.value = value;
57
+ this.currentValue = value;
58
+ }
59
+ let parentValue;
60
+ if (this.parent) {
61
+ parentValue = this.parent.isRoot()
62
+ ? this.parent.doc
63
+ : this.parent.originalExpandableValue;
64
+ }
65
+ const parentDecryptedKeys = parentValue && parentValue[Symbol.for('@@mdb.decryptedKeys')];
66
+ this.decrypted = (parentDecryptedKeys || [])
67
+ .map(String)
68
+ .includes(String(key));
69
+ }
70
+ bulkEdit(value) {
71
+ if (ARRAY_OR_OBJECT.exec(value)) {
72
+ this.edit(JSON.parse(value));
73
+ this._bubbleUp(element_events_1.default.Converted, this);
74
+ }
75
+ else {
76
+ this.edit(value);
77
+ }
78
+ }
79
+ cancel() {
80
+ if (this.elements) {
81
+ for (const element of Array.from(this.elements)) {
82
+ element.cancel();
83
+ }
84
+ }
85
+ if (this.isModified()) {
86
+ this.revert();
87
+ }
88
+ }
89
+ _getLevel() {
90
+ let level = -1;
91
+ let parent = this.parent;
92
+ while (parent) {
93
+ level++;
94
+ parent = parent.parent;
95
+ }
96
+ return level;
97
+ }
98
+ edit(value) {
99
+ this.currentType = hadron_type_checker_1.default.type(value);
100
+ if (this._isExpandable(value) && !this._isExpandable(this.currentValue)) {
101
+ this.currentValue = null;
102
+ this.elements = this._generateElements(value);
103
+ }
104
+ else if (!this._isExpandable(value) && this.elements) {
105
+ this.currentValue = value;
106
+ this.elements = undefined;
107
+ }
108
+ else {
109
+ this.currentValue = value;
110
+ }
111
+ this.setValid();
112
+ this._bubbleUp(element_events_1.default.Edited, this);
113
+ }
114
+ changeType(newType) {
115
+ if (newType === 'Object') {
116
+ this.edit('{');
117
+ this.next();
118
+ }
119
+ else if (newType === 'Array') {
120
+ this.edit('[');
121
+ this.next();
122
+ }
123
+ else {
124
+ try {
125
+ if (newType === 'Date') {
126
+ const editor = new date_1.default(this);
127
+ editor.edit(this.generateObject());
128
+ editor.complete();
129
+ }
130
+ else {
131
+ this.edit(hadron_type_checker_1.default.cast(this.generateObject(), newType));
132
+ }
133
+ }
134
+ catch (e) {
135
+ this.setInvalid(this.currentValue, newType, e.message);
136
+ }
137
+ }
138
+ }
139
+ getRoot() {
140
+ var _a;
141
+ let parent = this.parent;
142
+ while ((_a = parent) === null || _a === void 0 ? void 0 : _a.parent) {
143
+ parent = parent.parent;
144
+ }
145
+ return parent;
146
+ }
147
+ get(key) {
148
+ return this.elements ? this.elements.get(key) : undefined;
149
+ }
150
+ at(i) {
151
+ return this.elements ? this.elements.at(i) : undefined;
152
+ }
153
+ next() {
154
+ if (this.currentValue === CURLY) {
155
+ return this._convertToEmptyObject();
156
+ }
157
+ else if (this.currentValue === BRACKET) {
158
+ return this._convertToEmptyArray();
159
+ }
160
+ return this._next();
161
+ }
162
+ rename(key) {
163
+ if (this.parent) {
164
+ const elm = this.parent.elements._map[this.currentKey];
165
+ delete this.parent.elements._map[this.currentKey];
166
+ this.parent.elements._map[key] = elm;
167
+ }
168
+ this.currentKey = key;
169
+ this._bubbleUp(element_events_1.default.Edited, this);
170
+ }
171
+ generateObject() {
172
+ if (this.currentType === 'Array') {
173
+ return object_generator_1.default.generateArray(this.elements);
174
+ }
175
+ if (this.currentType === 'Object') {
176
+ return object_generator_1.default.generate(this.elements);
177
+ }
178
+ return this.currentValue;
179
+ }
180
+ generateOriginalObject() {
181
+ if (this.type === 'Array') {
182
+ const originalElements = this._generateElements(this.originalExpandableValue);
183
+ return object_generator_1.default.generateOriginalArray(originalElements);
184
+ }
185
+ if (this.type === 'Object') {
186
+ const originalElements = this._generateElements(this.originalExpandableValue);
187
+ return object_generator_1.default.generateOriginal(originalElements);
188
+ }
189
+ return this.value;
190
+ }
191
+ insertAfter(element, key, value) {
192
+ if (!this.elements) {
193
+ throw new Error('Cannot insert values on non-array/non-object elements');
194
+ }
195
+ if (this.currentType === 'Array') {
196
+ if (element.currentKey === '') {
197
+ this.elements.handleEmptyKeys(element);
198
+ }
199
+ key = element.currentKey + 1;
200
+ }
201
+ const newElement = this.elements.insertAfter(element, key, value, true, this);
202
+ if (this.currentType === 'Array') {
203
+ this.elements.updateKeys(newElement, 1);
204
+ }
205
+ newElement._bubbleUp(element_events_1.default.Added, newElement, this);
206
+ return newElement;
207
+ }
208
+ insertEnd(key, value) {
209
+ if (!this.elements) {
210
+ throw new Error('Cannot insert values on non-array/non-object elements');
211
+ }
212
+ if (this.currentType === 'Array') {
213
+ this.elements.flush();
214
+ key = 0;
215
+ if (this.elements.lastElement) {
216
+ if (this.elements.lastElement.currentKey === '') {
217
+ this.elements.handleEmptyKeys(this.elements.lastElement);
218
+ }
219
+ key = this.elements.lastElement.currentKey + 1;
220
+ }
221
+ }
222
+ const newElement = this.elements.insertEnd(key, value, true, this);
223
+ this._bubbleUp(element_events_1.default.Added, newElement);
224
+ return newElement;
225
+ }
226
+ insertPlaceholder() {
227
+ return this.insertEnd('', '');
228
+ }
229
+ insertSiblingPlaceholder() {
230
+ return this.parent.insertAfter(this, '', '');
231
+ }
232
+ isAdded() {
233
+ var _a;
234
+ return this.added || !!((_a = this.parent) === null || _a === void 0 ? void 0 : _a.isAdded());
235
+ }
236
+ isBlank() {
237
+ return this.currentKey === '' && this.currentValue === '';
238
+ }
239
+ isCurrentTypeValid() {
240
+ return !!this.currentTypeValid;
241
+ }
242
+ setValid() {
243
+ this.currentTypeValid = true;
244
+ this.invalidTypeMessage = undefined;
245
+ this._bubbleUp(element_events_1.default.Valid, this);
246
+ }
247
+ setInvalid(value, newType, message) {
248
+ this.currentValue = value;
249
+ this.currentType = newType;
250
+ this.currentTypeValid = false;
251
+ this.invalidTypeMessage = message;
252
+ this._bubbleUp(element_events_1.default.Invalid, this);
253
+ }
254
+ isDuplicateKey(value) {
255
+ var _a, _b;
256
+ if (value === '') {
257
+ return false;
258
+ }
259
+ for (const element of (_b = (_a = this.parent) === null || _a === void 0 ? void 0 : _a.elements) !== null && _b !== void 0 ? _b : []) {
260
+ if (element.uuid !== this.uuid && element.currentKey === value) {
261
+ return true;
262
+ }
263
+ }
264
+ return false;
265
+ }
266
+ isEdited() {
267
+ return ((this.isRenamed() ||
268
+ !this._valuesEqual() ||
269
+ this.type !== this.currentType) &&
270
+ !this.isAdded());
271
+ }
272
+ _valuesEqual() {
273
+ if (this.currentType === 'Date' && (0, lodash_isstring_1.default)(this.currentValue)) {
274
+ return (0, lodash_isequal_1.default)(this.value, new Date(this.currentValue));
275
+ }
276
+ else if (this.currentType === 'ObjectId' && (0, lodash_isstring_1.default)(this.currentValue)) {
277
+ return this._isObjectIdEqual();
278
+ }
279
+ return (0, lodash_isequal_1.default)(this.value, this.currentValue);
280
+ }
281
+ _isObjectIdEqual() {
282
+ try {
283
+ return this.value.toHexString() === this.currentValue;
284
+ }
285
+ catch (_) {
286
+ return false;
287
+ }
288
+ }
289
+ isLast() {
290
+ var _a, _b;
291
+ return ((_b = (_a = this.parent) === null || _a === void 0 ? void 0 : _a.elements) === null || _b === void 0 ? void 0 : _b.lastElement) === this;
292
+ }
293
+ isRenamed() {
294
+ let keyChanged = false;
295
+ if (!this.parent ||
296
+ this.parent.isRoot() ||
297
+ this.parent.currentType === 'Object') {
298
+ keyChanged = this.key !== this.currentKey;
299
+ }
300
+ return keyChanged;
301
+ }
302
+ isRevertable() {
303
+ return this.isEdited() || this.isRemoved();
304
+ }
305
+ isRemovable() {
306
+ return !this.parent.isRemoved();
307
+ }
308
+ isNotActionable() {
309
+ return (this.key === ID && !this.isAdded()) || !this.isRemovable();
310
+ }
311
+ isValueDecrypted() {
312
+ return this.decrypted;
313
+ }
314
+ containsDecryptedChildren() {
315
+ if (this.isValueDecrypted()) {
316
+ return true;
317
+ }
318
+ for (const element of this.elements || []) {
319
+ if (element.containsDecryptedChildren()) {
320
+ return true;
321
+ }
322
+ }
323
+ return false;
324
+ }
325
+ isValueEditable() {
326
+ return (this._isKeyLegallyEditable() &&
327
+ !UNEDITABLE_TYPES.includes(this.currentType));
328
+ }
329
+ isParentEditable() {
330
+ if (this.parent && !this.parent.isRoot()) {
331
+ return this.parent._isKeyLegallyEditable();
332
+ }
333
+ return true;
334
+ }
335
+ _isKeyLegallyEditable() {
336
+ return (this.isParentEditable() && (this.isAdded() || this.currentKey !== ID));
337
+ }
338
+ isKeyEditable() {
339
+ return this._isKeyLegallyEditable() && !this.containsDecryptedChildren();
340
+ }
341
+ isModified() {
342
+ if (this.elements) {
343
+ for (const element of this.elements) {
344
+ if (element.isModified()) {
345
+ return true;
346
+ }
347
+ }
348
+ }
349
+ return this.isAdded() || this.isEdited() || this.isRemoved();
350
+ }
351
+ isRemoved() {
352
+ return this.removed;
353
+ }
354
+ isRoot() {
355
+ return false;
356
+ }
357
+ remove() {
358
+ this.revert();
359
+ this.removed = true;
360
+ if (this.parent) {
361
+ this._bubbleUp(element_events_1.default.Removed, this, this.parent);
362
+ }
363
+ }
364
+ revert() {
365
+ var _a;
366
+ if (this.isAdded()) {
367
+ if (((_a = this.parent) === null || _a === void 0 ? void 0 : _a.currentType) === 'Array') {
368
+ this.parent.elements.updateKeys(this, -1);
369
+ }
370
+ this.parent.elements.remove(this);
371
+ this._bubbleUp(element_events_1.default.Removed, this, this.parent);
372
+ this.parent = null;
373
+ }
374
+ else {
375
+ if (this.originalExpandableValue) {
376
+ this.elements = this._generateElements(this.originalExpandableValue);
377
+ this.currentValue = undefined;
378
+ }
379
+ else {
380
+ if (this.currentValue === null && this.value !== null) {
381
+ this.elements = null;
382
+ }
383
+ else {
384
+ this._removeAddedElements();
385
+ }
386
+ this.currentValue = this.value;
387
+ }
388
+ this.currentKey = this.key;
389
+ this.currentType = this.type;
390
+ this.removed = false;
391
+ }
392
+ this.setValid();
393
+ this._bubbleUp(element_events_1.default.Reverted, this);
394
+ }
395
+ _bubbleUp(evt, ...data) {
396
+ this.emit(evt, ...data);
397
+ const element = this.parent;
398
+ if (element) {
399
+ if (element.isRoot()) {
400
+ element.emit(evt, ...data);
401
+ }
402
+ else {
403
+ element._bubbleUp(evt, ...data);
404
+ }
405
+ }
406
+ }
407
+ _convertToEmptyObject() {
408
+ this.edit({});
409
+ this.insertPlaceholder();
410
+ }
411
+ _convertToEmptyArray() {
412
+ this.edit([]);
413
+ this.insertPlaceholder();
414
+ }
415
+ _isElementEmpty(element) {
416
+ return !!element && element.isAdded() && element.isBlank();
417
+ }
418
+ _isExpandable(value) {
419
+ return (0, lodash_isplainobject_1.default)(value) || (0, lodash_isarray_1.default)(value);
420
+ }
421
+ _generateElements(object) {
422
+ return new LinkedList(this, object);
423
+ }
424
+ _key(key, index) {
425
+ return this.currentType === 'Array' ? index : key;
426
+ }
427
+ _next() {
428
+ if (!this._isElementEmpty(this.nextElement) &&
429
+ !this._isElementEmpty(this)) {
430
+ this.parent.insertAfter(this, '', '');
431
+ }
432
+ }
433
+ _removeAddedElements() {
434
+ if (this.elements) {
435
+ for (const element of this.elements) {
436
+ if (element.isAdded()) {
437
+ this.elements.remove(element);
438
+ }
439
+ }
440
+ }
441
+ }
442
+ static get Events() {
443
+ return _1.ElementEvents;
444
+ }
445
+ }
446
+ exports.Element = Element;
447
+ class LinkedList {
448
+ constructor(doc, originalDoc) {
449
+ this.firstElement = null;
450
+ this.lastElement = null;
451
+ this.doc = doc;
452
+ this.originalDoc = originalDoc;
453
+ this.keys = (0, lodash_keys_1.default)(this.originalDoc);
454
+ if (this.doc.currentType === 'Array') {
455
+ this.keys = this.keys.map((k) => parseInt(k, 10));
456
+ }
457
+ this.size = this.keys.length;
458
+ this.loaded = 0;
459
+ this._map = {};
460
+ }
461
+ at(index) {
462
+ this.flush();
463
+ if (!Number.isInteger(index)) {
464
+ return undefined;
465
+ }
466
+ let element = this.firstElement;
467
+ for (let i = 0; i < index; i++) {
468
+ if (!element) {
469
+ return undefined;
470
+ }
471
+ element = element.nextElement;
472
+ }
473
+ return element === null ? undefined : element;
474
+ }
475
+ get(key) {
476
+ this.flush();
477
+ return this._map[key];
478
+ }
479
+ insertAfter(element, key, value, added, parent) {
480
+ this.flush();
481
+ return this._insertAfter(element, key, value, added, parent);
482
+ }
483
+ updateKeys(element, add) {
484
+ this.flush();
485
+ while (element.nextElement) {
486
+ element.nextElement.currentKey += add;
487
+ element = element.nextElement;
488
+ }
489
+ }
490
+ handleEmptyKeys(element) {
491
+ if (element.currentKey === '') {
492
+ let e = element;
493
+ while (e.currentKey === '') {
494
+ if (!e.previousElement) {
495
+ e.currentKey = 0;
496
+ break;
497
+ }
498
+ else {
499
+ e = e.previousElement;
500
+ }
501
+ }
502
+ while (e.nextElement) {
503
+ e.nextElement.currentKey = e.currentKey + 1;
504
+ e = e.nextElement;
505
+ }
506
+ }
507
+ }
508
+ insertBefore(element, key, value, added, parent) {
509
+ this.flush();
510
+ return this._insertBefore(element, key, value, added, parent);
511
+ }
512
+ insertBeginning(key, value, added, parent) {
513
+ this.flush();
514
+ return this._insertBeginning(key, value, added, parent);
515
+ }
516
+ insertEnd(key, value, added, parent) {
517
+ this.flush();
518
+ if (!this.lastElement) {
519
+ return this.insertBeginning(key, value, added, parent);
520
+ }
521
+ return this.insertAfter(this.lastElement, key, value, added, parent);
522
+ }
523
+ flush() {
524
+ var _a;
525
+ if (this.loaded < this.size) {
526
+ for (const element of this) {
527
+ (_a = element === null || element === void 0 ? void 0 : element.elements) === null || _a === void 0 ? void 0 : _a.flush();
528
+ }
529
+ }
530
+ }
531
+ *[Symbol.iterator]() {
532
+ let currentElement;
533
+ let index = 0;
534
+ while (true) {
535
+ if (this._needsLazyLoad(index)) {
536
+ const key = this.keys[index];
537
+ index += 1;
538
+ currentElement = this._lazyInsertEnd(key);
539
+ yield currentElement;
540
+ }
541
+ else if (this._needsStandardIteration(index)) {
542
+ if (currentElement) {
543
+ currentElement = currentElement.nextElement;
544
+ }
545
+ else {
546
+ currentElement = this.firstElement;
547
+ }
548
+ if (currentElement) {
549
+ index += 1;
550
+ yield currentElement;
551
+ }
552
+ else {
553
+ break;
554
+ }
555
+ }
556
+ else {
557
+ break;
558
+ }
559
+ }
560
+ }
561
+ _needsLazyLoad(index) {
562
+ return ((index === 0 && this.loaded === 0 && this.size > 0) ||
563
+ (this.loaded <= index && index < this.size));
564
+ }
565
+ _needsStandardIteration(index) {
566
+ return this.loaded > 0 && index < this.loaded && index < this.size;
567
+ }
568
+ _lazyInsertEnd(key) {
569
+ this.size -= 1;
570
+ return this._insertEnd(key, this.originalDoc[key], this.doc.cloned, this.doc);
571
+ }
572
+ _insertEnd(key, value, added, parent) {
573
+ if (!this.lastElement) {
574
+ return this._insertBeginning(key, value, added, parent);
575
+ }
576
+ return this._insertAfter(this.lastElement, key, value, added, parent);
577
+ }
578
+ _insertBefore(element, key, value, added, parent) {
579
+ const newElement = new Element(key, value, added, parent, element.previousElement, element);
580
+ if (element.previousElement) {
581
+ element.previousElement.nextElement = newElement;
582
+ }
583
+ else {
584
+ this.firstElement = newElement;
585
+ }
586
+ element.previousElement = newElement;
587
+ this._map[newElement.key] = newElement;
588
+ this.size += 1;
589
+ this.loaded += 1;
590
+ return newElement;
591
+ }
592
+ _insertBeginning(key, value, added, parent) {
593
+ if (!this.firstElement) {
594
+ const element = new Element(key, value, added, parent, null, null);
595
+ this.firstElement = this.lastElement = element;
596
+ this.size += 1;
597
+ this.loaded += 1;
598
+ this._map[element.key] = element;
599
+ return element;
600
+ }
601
+ const newElement = this.insertBefore(this.firstElement, key, value, added, parent);
602
+ this._map[newElement.key] = newElement;
603
+ return newElement;
604
+ }
605
+ _insertAfter(element, key, value, added, parent) {
606
+ const newElement = new Element(key, value, added, parent, element, element.nextElement);
607
+ if (element.nextElement) {
608
+ element.nextElement.previousElement = newElement;
609
+ }
610
+ else {
611
+ this.lastElement = newElement;
612
+ }
613
+ element.nextElement = newElement;
614
+ this._map[newElement.key] = newElement;
615
+ this.size += 1;
616
+ this.loaded += 1;
617
+ return newElement;
618
+ }
619
+ remove(element) {
620
+ this.flush();
621
+ if (element.previousElement) {
622
+ element.previousElement.nextElement = element.nextElement;
623
+ }
624
+ else {
625
+ this.firstElement = element.nextElement;
626
+ }
627
+ if (element.nextElement) {
628
+ element.nextElement.previousElement = element.previousElement;
629
+ }
630
+ else {
631
+ this.lastElement = element.previousElement;
632
+ }
633
+ element.nextElement = element.previousElement = null;
634
+ delete this._map[element.currentKey];
635
+ this.size -= 1;
636
+ this.loaded -= 1;
637
+ return this;
638
+ }
639
+ findIndex(el) {
640
+ let idx = 0;
641
+ for (const item of this) {
642
+ if (item === el) {
643
+ return idx;
644
+ }
645
+ idx++;
646
+ }
647
+ return -1;
648
+ }
649
+ }
650
+ exports.LinkedList = LinkedList;
651
+ exports.default = Element;
652
+ //# sourceMappingURL=element.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"element.js","sourceRoot":"","sources":["../src/element.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import Document, { Events as DocumentEvents } from './document';
2
+ import Element, { Events as ElementEvents } from './element';
3
+ import ElementEditor, { Editor } from './editor';
4
+ export default Document;
5
+ export { Document, DocumentEvents, Element, ElementEvents, ElementEditor, Editor, };
6
+ //# sourceMappingURL=index.d.ts.map