hadron-document 8.6.2 → 8.6.4

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 (61) hide show
  1. package/dist/document.d.ts +152 -0
  2. package/dist/document.d.ts.map +1 -1
  3. package/dist/document.js +161 -0
  4. package/dist/document.js.map +1 -1
  5. package/dist/editor/date.d.ts +36 -0
  6. package/dist/editor/date.d.ts.map +1 -1
  7. package/dist/editor/date.js +38 -0
  8. package/dist/editor/date.js.map +1 -1
  9. package/dist/editor/decimal128.d.ts +18 -0
  10. package/dist/editor/decimal128.d.ts.map +1 -1
  11. package/dist/editor/decimal128.js +18 -0
  12. package/dist/editor/decimal128.js.map +1 -1
  13. package/dist/editor/double.d.ts +25 -0
  14. package/dist/editor/double.d.ts.map +1 -1
  15. package/dist/editor/double.js +30 -1
  16. package/dist/editor/double.js.map +1 -1
  17. package/dist/editor/int32.d.ts +15 -0
  18. package/dist/editor/int32.d.ts.map +1 -1
  19. package/dist/editor/int32.js +15 -0
  20. package/dist/editor/int32.js.map +1 -1
  21. package/dist/editor/int64.d.ts +18 -0
  22. package/dist/editor/int64.d.ts.map +1 -1
  23. package/dist/editor/int64.js +18 -0
  24. package/dist/editor/int64.js.map +1 -1
  25. package/dist/editor/null.d.ts +20 -0
  26. package/dist/editor/null.d.ts.map +1 -1
  27. package/dist/editor/null.js +23 -0
  28. package/dist/editor/null.js.map +1 -1
  29. package/dist/editor/objectid.d.ts +20 -0
  30. package/dist/editor/objectid.d.ts.map +1 -1
  31. package/dist/editor/objectid.js +20 -0
  32. package/dist/editor/objectid.js.map +1 -1
  33. package/dist/editor/standard.d.ts +32 -0
  34. package/dist/editor/standard.d.ts.map +1 -1
  35. package/dist/editor/standard.js +36 -0
  36. package/dist/editor/standard.js.map +1 -1
  37. package/dist/editor/string.d.ts +8 -0
  38. package/dist/editor/string.d.ts.map +1 -1
  39. package/dist/editor/string.js +8 -0
  40. package/dist/editor/string.js.map +1 -1
  41. package/dist/editor/undefined.d.ts +20 -0
  42. package/dist/editor/undefined.d.ts.map +1 -1
  43. package/dist/editor/undefined.js +23 -0
  44. package/dist/editor/undefined.js.map +1 -1
  45. package/dist/element-events.d.ts +3 -0
  46. package/dist/element-events.d.ts.map +1 -1
  47. package/dist/element-events.js +3 -0
  48. package/dist/element-events.js.map +1 -1
  49. package/dist/element.d.ts +321 -0
  50. package/dist/element.d.ts.map +1 -1
  51. package/dist/element.js +341 -0
  52. package/dist/element.js.map +1 -1
  53. package/dist/object-generator.d.ts +96 -0
  54. package/dist/object-generator.d.ts.map +1 -1
  55. package/dist/object-generator.js +129 -0
  56. package/dist/object-generator.js.map +1 -1
  57. package/dist/utils.d.ts +22 -0
  58. package/dist/utils.d.ts.map +1 -1
  59. package/dist/utils.js +25 -0
  60. package/dist/utils.js.map +1 -1
  61. package/package.json +7 -7
@@ -4,6 +4,9 @@ import EventEmitter from 'eventemitter3';
4
4
  import type { KeyInclusionOptions, ObjectGeneratorOptions } from './object-generator';
5
5
  import type { BSONArray, BSONObject, BSONValue } from './utils';
6
6
  import type { HadronEJSONOptions } from './utils';
7
+ /**
8
+ * The event constant.
9
+ */
7
10
  export declare const Events: {
8
11
  Cancel: string;
9
12
  Expanded: string;
@@ -15,6 +18,9 @@ export declare const Events: {
15
18
  DeletionFinished: string;
16
19
  };
17
20
  export declare const DEFAULT_VISIBLE_ELEMENTS = 25;
21
+ /**
22
+ * Represents a document.
23
+ */
18
24
  export declare class Document extends EventEmitter {
19
25
  uuid: string;
20
26
  doc: BSONObject;
@@ -28,11 +34,46 @@ export declare class Document extends EventEmitter {
28
34
  maxVisibleElementsCount: number;
29
35
  editing: boolean;
30
36
  markedForDeletion: boolean;
37
+ /**
38
+ * Send cancel event.
39
+ */
31
40
  cancel(): void;
41
+ /**
42
+ * Create the new document from the provided object.
43
+ *
44
+ * @param {Object} doc - The document.
45
+ * @param {boolean} cloned - If it is a cloned document.
46
+ */
32
47
  constructor(doc: BSONObject, cloned?: boolean);
33
48
  apply(doc: BSONObject | Document): void;
49
+ /**
50
+ * Generate the javascript object for this document.
51
+ *
52
+ * @returns {Object} The javascript object.
53
+ */
34
54
  generateObject(options?: ObjectGeneratorOptions): BSONObject;
55
+ /**
56
+ * Generate the javascript object with the original elements in this document.
57
+ *
58
+ * @returns {Object} The original javascript object.
59
+ */
35
60
  generateOriginalObject(options?: ObjectGeneratorOptions): BSONObject;
61
+ /**
62
+ * Generate the `query` and `updateDoc` to be used in an update operation
63
+ * where the update only succeeds when the changed document's elements have
64
+ * not been changed in the background.
65
+ *
66
+ * `query` and `updateDoc` may use $getField and $setField if field names
67
+ * contain either `.` or start with `$`. These operators are only available
68
+ * on MongoDB 5.0+. (Note that field names starting with `$` are also only
69
+ * allowed in MongoDB 5.0+.)
70
+ *
71
+ * @param keyInclusionOptions Specify which fields to include in the
72
+ * originalFields list.
73
+ *
74
+ * @returns {Object} An object containing the `query` and `updateDoc` to be
75
+ * used in an update operation.
76
+ */
36
77
  generateUpdateUnlessChangedInBackgroundQuery(opts?: Readonly<KeyInclusionOptions>): {
37
78
  query: BSONObject;
38
79
  updateDoc: {
@@ -40,25 +81,136 @@ export declare class Document extends EventEmitter {
40
81
  $unset?: BSONObject;
41
82
  } | BSONArray;
42
83
  };
84
+ /**
85
+ * Get an element by its key.
86
+ *
87
+ * @param {String} key
88
+ *
89
+ * @returns {Element} The element.
90
+ */
43
91
  get(key: string): Element | undefined;
92
+ /**
93
+ * Get an element by a series of segment names.
94
+ *
95
+ * @param {Array} path - The series of fieldnames. Cannot be empty.
96
+ *
97
+ * @returns {Element} The element.
98
+ */
44
99
  getChild(path: (string | number)[]): Element | undefined;
100
+ /**
101
+ * Get the _id value for the document.
102
+ *
103
+ * @returns {Object} The id.
104
+ */
45
105
  getId(): BSONValue;
106
+ /**
107
+ * Generate the query javascript object reflecting the elements that
108
+ * are specified by the keys listed in `keys`. The values of this object are
109
+ * the original values, this can be used when querying for an update based
110
+ * on multiple criteria.
111
+ *
112
+ * @param keyInclusionOptions Specify which fields to include in the
113
+ * originalFields list.
114
+ *
115
+ * @returns {Object} The javascript object.
116
+ */
46
117
  getQueryForOriginalKeysAndValuesForSpecifiedKeys(opts?: Readonly<KeyInclusionOptions>): BSONObject;
118
+ /**
119
+ * Get the _id value as a string. Required if _id is not always an ObjectId.
120
+ *
121
+ * @returns {String} The string id.
122
+ */
47
123
  getStringId(): null | string;
124
+ /**
125
+ * Insert a placeholder element at the end of the document.
126
+ *
127
+ * @returns {Element} The placeholder element.
128
+ */
48
129
  insertPlaceholder(): Element;
130
+ /**
131
+ * Add a new element to this document.
132
+ *
133
+ * @param {String} key - The element key.
134
+ * @param {Object} value - The value.
135
+ *
136
+ * @returns {Element} The new element.
137
+ */
49
138
  insertBeginning(key: string | number, value: BSONValue): Element;
139
+ /**
140
+ * Add a new element to this document.
141
+ *
142
+ * @param {String} key - The element key.
143
+ * @param {Object} value - The value.
144
+ *
145
+ * @returns {Element} The new element.
146
+ */
50
147
  insertEnd(key: string | number, value: BSONValue): Element;
148
+ /**
149
+ * Insert an element after the provided element.
150
+ *
151
+ * @param {Element} element - The element to insert after.
152
+ * @param {String} key - The key.
153
+ * @param {Object} value - The value.
154
+ *
155
+ * @returns {Element} The new element.
156
+ */
51
157
  insertAfter(element: Element, key: string | number, value: BSONValue): Element | undefined;
158
+ /**
159
+ * A document always exists, is never added.
160
+ *
161
+ * @returns Always false.
162
+ */
52
163
  isAdded(): boolean;
164
+ /**
165
+ * Determine if the element is modified at all.
166
+ *
167
+ * @returns {Boolean} If the element is modified.
168
+ */
53
169
  isModified(): boolean;
170
+ /**
171
+ * A document is never removed
172
+ *
173
+ * @returns {false} Always false.
174
+ */
54
175
  isRemoved(): boolean;
176
+ /**
177
+ * The document object is always the root object.
178
+ *
179
+ * @returns {true} Always true.
180
+ */
55
181
  isRoot(): this is Document;
182
+ /**
183
+ * Generates a sequence of elements.
184
+ *
185
+ * @returns {Array} The elements.
186
+ */
56
187
  _generateElements(): ElementList;
188
+ /**
189
+ * @deprecated Use DocumentEvents import instead
190
+ */
57
191
  static get Events(): typeof Events;
192
+ /**
193
+ * Parse a new Document from extended JSON input.
194
+ */
58
195
  static FromEJSON(input: string): Document;
196
+ /**
197
+ * Parse multiple Document from extended JSON input.
198
+ * If the input consists of only a single document without
199
+ * `[array]` brackets, return an array consisting of only
200
+ * that document.
201
+ */
59
202
  static FromEJSONArray(input: string): Document[];
203
+ /**
204
+ * Convert this Document instance into a human-readable EJSON string.
205
+ */
60
206
  toEJSON(source?: 'original' | 'current', options?: HadronEJSONOptions): string;
207
+ /**
208
+ * Expands a document by expanding all of its fields
209
+ */
61
210
  expand(): void;
211
+ /**
212
+ * Collapses a document by collapsing all of its fields
213
+ */
62
214
  collapse(): void;
63
215
  getVisibleElements(): Element[];
64
216
  setMaxVisibleElementsCount(newCount: number): void;
@@ -1 +1 @@
1
- {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../src/document.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../src/document.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,WAAW,EAA2B,MAAM,WAAW,CAAC;AACjE,OAAO,YAAY,MAAM,eAAe,CAAC;AAEzC,OAAO,KAAK,EACV,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEhE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAGlD;;GAEG;AACH,eAAO,MAAM,MAAM;;;;;;;;;CASlB,CAAC;AAOF,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C;;GAEG;AACH,qBAAa,QAAS,SAAQ,YAAY;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,UAAU,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,WAAW,CAAC;IACtB,IAAI,EAAE,UAAU,CAAC;IACjB,WAAW,EAAE,UAAU,CAAC;IACxB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC3B,QAAQ,UAAS;IACjB,uBAAuB,SAA4B;IACnD,OAAO,UAAS;IAChB,iBAAiB,UAAS;IAE1B;;OAEG;IACH,MAAM,IAAI,IAAI;IASd;;;;;OAKG;gBACS,GAAG,EAAE,UAAU,EAAE,MAAM,UAAQ;IAW3C,KAAK,CAAC,GAAG,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI;IAwBvC;;;;OAIG;IACH,cAAc,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,UAAU;IAI5D;;;;OAIG;IACH,sBAAsB,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,UAAU;IAIpE;;;;;;;;;;;;;;;OAeG;IACH,4CAA4C,CAC1C,IAAI,GAAE,QAAQ,CAAC,mBAAmB,CAAM,GACvC;QACD,KAAK,EAAE,UAAU,CAAC;QAClB,SAAS,EAAE;YAAE,IAAI,CAAC,EAAE,UAAU,CAAC;YAAC,MAAM,CAAC,EAAE,UAAU,CAAA;SAAE,GAAG,SAAS,CAAC;KACnE;IAwBD;;;;;;OAMG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAIrC;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,OAAO,GAAG,SAAS;IAmBxD;;;;OAIG;IACH,KAAK,IAAI,SAAS;IAKlB;;;;;;;;;;OAUG;IACH,gDAAgD,CAC9C,IAAI,GAAE,QAAQ,CAAC,mBAAmB,CAAM,GACvC,UAAU;IAQb;;;;OAIG;IACH,WAAW,IAAI,IAAI,GAAG,MAAM;IAa5B;;;;OAIG;IACH,iBAAiB,IAAI,OAAO;IAI5B;;;;;;;OAOG;IACH,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO;IAOhE;;;;;;;OAOG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO;IAO1D;;;;;;;;OAQG;IACH,WAAW,CACT,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,GAAG,MAAM,EACpB,KAAK,EAAE,SAAS,GACf,OAAO,GAAG,SAAS;IAOtB;;;;OAIG;IACH,OAAO,IAAI,OAAO;IAIlB;;;;OAIG;IACH,UAAU,IAAI,OAAO;IASrB;;;;OAIG;IACH,SAAS,IAAI,OAAO;IAIpB;;;;OAIG;IACH,MAAM,IAAI,IAAI,IAAI,QAAQ;IAI1B;;;;OAIG;IACH,iBAAiB,IAAI,WAAW;IAIhC;;OAEG;IACH,MAAM,KAAK,MAAM,IAAI,OAAO,MAAM,CAEjC;IAED;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ;IAKzC;;;;;OAKG;IACH,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,EAAE;IAOhD;;OAEG;IACH,OAAO,CACL,MAAM,GAAE,UAAU,GAAG,SAAqB,EAC1C,OAAO,GAAE,kBAAuB,GAC/B,MAAM;IAQT;;OAEG;IACH,MAAM,IAAI,IAAI;IASd;;OAEG;IACH,QAAQ,IAAI,IAAI;IAShB,kBAAkB;IAIlB,0BAA0B,CAAC,QAAQ,EAAE,MAAM;IAK3C,4BAA4B;IAS5B,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI;IAOxE,aAAa;IAOb,aAAa;IAIb,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAK5C,eAAe;IAIf,aAAa,CAAC,KAAK,EAAE,KAAK;IAI1B,eAAe;IAOf,cAAc;IAOd,aAAa;IAIb,eAAe;IAKf,aAAa,CAAC,KAAK,EAAE,KAAK;CAG3B;AAED,eAAe,QAAQ,CAAC"}
package/dist/document.js CHANGED
@@ -10,6 +10,9 @@ const bson_1 = require("bson");
10
10
  const object_generator_1 = __importDefault(require("./object-generator"));
11
11
  const utils_1 = require("./utils");
12
12
  const _1 = require(".");
13
+ /**
14
+ * The event constant.
15
+ */
13
16
  exports.Events = {
14
17
  Cancel: 'Document::Cancel',
15
18
  Expanded: 'Document::Expanded',
@@ -20,15 +23,32 @@ exports.Events = {
20
23
  MarkedForDeletion: 'Document::MarkedForDeletion',
21
24
  DeletionFinished: 'Document::DeletionFinished',
22
25
  };
26
+ /**
27
+ * The id field.
28
+ */
23
29
  const ID = '_id';
24
30
  exports.DEFAULT_VISIBLE_ELEMENTS = 25;
31
+ /**
32
+ * Represents a document.
33
+ */
25
34
  class Document extends eventemitter3_1.default {
35
+ /**
36
+ * Send cancel event.
37
+ */
26
38
  cancel() {
39
+ // Cancel will remove elements from iterator, clone it before iterating
40
+ // otherwise we will skip items
27
41
  for (const element of Array.from(this.elements)) {
28
42
  element.cancel();
29
43
  }
30
44
  this.emit(exports.Events.Cancel);
31
45
  }
46
+ /**
47
+ * Create the new document from the provided object.
48
+ *
49
+ * @param {Object} doc - The document.
50
+ * @param {boolean} cloned - If it is a cloned document.
51
+ */
32
52
  constructor(doc, cloned = false) {
33
53
  super();
34
54
  this.size = null;
@@ -69,13 +89,43 @@ class Document extends eventemitter3_1.default {
69
89
  }
70
90
  }
71
91
  }
92
+ /**
93
+ * Generate the javascript object for this document.
94
+ *
95
+ * @returns {Object} The javascript object.
96
+ */
72
97
  generateObject(options) {
73
98
  return object_generator_1.default.generate(this.elements, options);
74
99
  }
100
+ /**
101
+ * Generate the javascript object with the original elements in this document.
102
+ *
103
+ * @returns {Object} The original javascript object.
104
+ */
75
105
  generateOriginalObject(options) {
76
106
  return object_generator_1.default.generateOriginal(this.elements, options);
77
107
  }
108
+ /**
109
+ * Generate the `query` and `updateDoc` to be used in an update operation
110
+ * where the update only succeeds when the changed document's elements have
111
+ * not been changed in the background.
112
+ *
113
+ * `query` and `updateDoc` may use $getField and $setField if field names
114
+ * contain either `.` or start with `$`. These operators are only available
115
+ * on MongoDB 5.0+. (Note that field names starting with `$` are also only
116
+ * allowed in MongoDB 5.0+.)
117
+ *
118
+ * @param keyInclusionOptions Specify which fields to include in the
119
+ * originalFields list.
120
+ *
121
+ * @returns {Object} An object containing the `query` and `updateDoc` to be
122
+ * used in an update operation.
123
+ */
78
124
  generateUpdateUnlessChangedInBackgroundQuery(opts = {}) {
125
+ // Build a query that will find the document to update only if it has the
126
+ // values of elements that were changed with their original value.
127
+ // This query won't find the document if an updated element's value isn't
128
+ // the same value as it was when it was originally loaded.
79
129
  const originalFieldsThatWillBeUpdated = object_generator_1.default.getQueryForOriginalKeysAndValuesForSpecifiedFields(this, opts, true);
80
130
  const query = {
81
131
  _id: this.getId(),
@@ -87,9 +137,23 @@ class Document extends eventemitter3_1.default {
87
137
  updateDoc,
88
138
  };
89
139
  }
140
+ /**
141
+ * Get an element by its key.
142
+ *
143
+ * @param {String} key
144
+ *
145
+ * @returns {Element} The element.
146
+ */
90
147
  get(key) {
91
148
  return this.elements.get(key);
92
149
  }
150
+ /**
151
+ * Get an element by a series of segment names.
152
+ *
153
+ * @param {Array} path - The series of fieldnames. Cannot be empty.
154
+ *
155
+ * @returns {Element} The element.
156
+ */
93
157
  getChild(path) {
94
158
  if (!path) {
95
159
  return undefined;
@@ -108,13 +172,34 @@ class Document extends eventemitter3_1.default {
108
172
  }
109
173
  return element;
110
174
  }
175
+ /**
176
+ * Get the _id value for the document.
177
+ *
178
+ * @returns {Object} The id.
179
+ */
111
180
  getId() {
112
181
  const element = this.get(ID);
113
182
  return element ? element.generateObject() : null;
114
183
  }
184
+ /**
185
+ * Generate the query javascript object reflecting the elements that
186
+ * are specified by the keys listed in `keys`. The values of this object are
187
+ * the original values, this can be used when querying for an update based
188
+ * on multiple criteria.
189
+ *
190
+ * @param keyInclusionOptions Specify which fields to include in the
191
+ * originalFields list.
192
+ *
193
+ * @returns {Object} The javascript object.
194
+ */
115
195
  getQueryForOriginalKeysAndValuesForSpecifiedKeys(opts = {}) {
116
196
  return object_generator_1.default.getQueryForOriginalKeysAndValuesForSpecifiedFields(this, opts, false);
117
197
  }
198
+ /**
199
+ * Get the _id value as a string. Required if _id is not always an ObjectId.
200
+ *
201
+ * @returns {String} The string id.
202
+ */
118
203
  getStringId() {
119
204
  const element = this.get(ID);
120
205
  if (!element) {
@@ -126,30 +211,70 @@ class Document extends eventemitter3_1.default {
126
211
  }
127
212
  return String(element.value);
128
213
  }
214
+ /**
215
+ * Insert a placeholder element at the end of the document.
216
+ *
217
+ * @returns {Element} The placeholder element.
218
+ */
129
219
  insertPlaceholder() {
130
220
  return this.insertEnd('', '');
131
221
  }
222
+ /**
223
+ * Add a new element to this document.
224
+ *
225
+ * @param {String} key - The element key.
226
+ * @param {Object} value - The value.
227
+ *
228
+ * @returns {Element} The new element.
229
+ */
132
230
  insertBeginning(key, value) {
133
231
  const newElement = this.elements.insertBeginning(key, value);
134
232
  newElement._bubbleUp(element_1.Events.Added, newElement, this);
135
233
  this.emit(exports.Events.VisibleElementsChanged, this);
136
234
  return newElement;
137
235
  }
236
+ /**
237
+ * Add a new element to this document.
238
+ *
239
+ * @param {String} key - The element key.
240
+ * @param {Object} value - The value.
241
+ *
242
+ * @returns {Element} The new element.
243
+ */
138
244
  insertEnd(key, value) {
139
245
  const newElement = this.elements.insertEnd(key, value);
140
246
  newElement._bubbleUp(element_1.Events.Added, newElement, this);
141
247
  this.emit(exports.Events.VisibleElementsChanged, this);
142
248
  return newElement;
143
249
  }
250
+ /**
251
+ * Insert an element after the provided element.
252
+ *
253
+ * @param {Element} element - The element to insert after.
254
+ * @param {String} key - The key.
255
+ * @param {Object} value - The value.
256
+ *
257
+ * @returns {Element} The new element.
258
+ */
144
259
  insertAfter(element, key, value) {
145
260
  const newElement = this.elements.insertAfter(element, key, value);
146
261
  newElement?._bubbleUp(element_1.Events.Added, newElement, this);
147
262
  this.emit(exports.Events.VisibleElementsChanged, this);
148
263
  return newElement;
149
264
  }
265
+ /**
266
+ * A document always exists, is never added.
267
+ *
268
+ * @returns Always false.
269
+ */
150
270
  isAdded() {
151
271
  return false;
152
272
  }
273
+ /**
274
+ * Determine if the element is modified at all.
275
+ *
276
+ * @returns {Boolean} If the element is modified.
277
+ */
153
278
  isModified() {
154
279
  for (const element of this.elements) {
155
280
  if (element.isModified()) {
@@ -158,34 +283,67 @@ class Document extends eventemitter3_1.default {
158
283
  }
159
284
  return false;
160
285
  }
286
+ /**
287
+ * A document is never removed
288
+ *
289
+ * @returns {false} Always false.
290
+ */
161
291
  isRemoved() {
162
292
  return false;
163
293
  }
294
+ /**
295
+ * The document object is always the root object.
296
+ *
297
+ * @returns {true} Always true.
298
+ */
164
299
  isRoot() {
165
300
  return true;
166
301
  }
302
+ /**
303
+ * Generates a sequence of elements.
304
+ *
305
+ * @returns {Array} The elements.
306
+ */
167
307
  _generateElements() {
168
308
  return new element_1.ElementList(this, this.doc);
169
309
  }
310
+ /**
311
+ * @deprecated Use DocumentEvents import instead
312
+ */
170
313
  static get Events() {
171
314
  return exports.Events;
172
315
  }
316
+ /**
317
+ * Parse a new Document from extended JSON input.
318
+ */
173
319
  static FromEJSON(input) {
174
320
  const parsed = bson_1.EJSON.parse(input, { relaxed: false });
175
321
  return new Document(parsed);
176
322
  }
323
+ /**
324
+ * Parse multiple Document from extended JSON input.
325
+ * If the input consists of only a single document without
326
+ * `[array]` brackets, return an array consisting of only
327
+ * that document.
328
+ */
177
329
  static FromEJSONArray(input) {
178
330
  const parsed = bson_1.EJSON.parse(input, { relaxed: false });
179
331
  return Array.isArray(parsed)
180
332
  ? parsed.map((doc) => new Document(doc))
181
333
  : [new Document(parsed)];
182
334
  }
335
+ /**
336
+ * Convert this Document instance into a human-readable EJSON string.
337
+ */
183
338
  toEJSON(source = 'current', options = {}) {
184
339
  const obj = source === 'original'
185
340
  ? this.generateOriginalObject()
186
341
  : this.generateObject();
187
342
  return (0, utils_1.objectToIdiomaticEJSON)(obj, options);
188
343
  }
344
+ /**
345
+ * Expands a document by expanding all of its fields
346
+ */
189
347
  expand() {
190
348
  this.expanded = true;
191
349
  for (const element of this.elements) {
@@ -194,6 +352,9 @@ class Document extends eventemitter3_1.default {
194
352
  this.emit(exports.Events.Expanded);
195
353
  this.emit(exports.Events.VisibleElementsChanged, this);
196
354
  }
355
+ /**
356
+ * Collapses a document by collapsing all of its fields
357
+ */
197
358
  collapse() {
198
359
  this.expanded = false;
199
360
  for (const element of this.elements) {
@@ -1 +1 @@
1
- {"version":3,"file":"document.js","sourceRoot":"","sources":["../src/document.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"document.js","sourceRoot":"","sources":["../src/document.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,48 @@
1
1
  import type { BSONValue } from '../utils';
2
2
  import StandardEditor from './standard';
3
3
  import type Element from '../element';
4
+ /**
5
+ * CRUD editor for date values.
6
+ */
4
7
  export default class DateEditor extends StandardEditor {
8
+ /**
9
+ * Create the editor with the element.
10
+ *
11
+ * @param {Element} element - The hadron document element.
12
+ */
5
13
  constructor(element: Element);
14
+ /**
15
+ * Complete the date edit by converting the valid string to a date
16
+ * object or leaving as invalid.
17
+ */
6
18
  complete(): void;
19
+ /**
20
+ * Edit the element with the provided value.
21
+ *
22
+ * @param {Object} value - The new value.
23
+ */
7
24
  edit(value: BSONValue): void;
25
+ /**
26
+ * Get the number of characters the value should display.
27
+ *
28
+ * @param {Boolean} editMode - If the element is being edited.
29
+ *
30
+ * @returns {Number} The number of characters.
31
+ */
8
32
  size(editMode?: boolean): number;
33
+ /**
34
+ * Start the date edit.
35
+ *
36
+ * @param {Object} value - The value in the field.
37
+ */
9
38
  start(): void;
39
+ /**
40
+ * Get the value being edited.
41
+ *
42
+ * @param {Boolean} editMode - If the UI is in edit mode.
43
+ *
44
+ * @returns {String} The value.
45
+ */
10
46
  value(): string;
11
47
  _formattedValue(): string;
12
48
  }
@@ -1 +1 @@
1
- {"version":3,"file":"date.d.ts","sourceRoot":"","sources":["../../src/editor/date.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,OAAO,cAAc,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,OAAO,MAAM,YAAY,CAAC;AAKtC,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,cAAc;gBAMxC,OAAO,EAAE,OAAO;IAQ5B,QAAQ,IAAI,IAAI;IAYhB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IA0B5B,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM;IAehC,KAAK,IAAI,IAAI;IAcb,KAAK,IAAI,MAAM;IAQf,eAAe,IAAI,MAAM;CAU1B"}
1
+ {"version":3,"file":"date.d.ts","sourceRoot":"","sources":["../../src/editor/date.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,OAAO,cAAc,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,OAAO,MAAM,YAAY,CAAC;AAEtC;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,cAAc;IACpD;;;;OAIG;gBACS,OAAO,EAAE,OAAO;IAI5B;;;OAGG;IACH,QAAQ,IAAI,IAAI;IAOhB;;;;OAIG;IACH,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAmB5B;;;;;;OAMG;IACH,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM;IAUhC;;;;OAIG;IACH,KAAK,IAAI,IAAI;IAOb;;;;;;OAMG;IACH,KAAK,IAAI,MAAM;IAQf,eAAe,IAAI,MAAM;CAU1B"}
@@ -7,16 +7,33 @@ const hadron_type_checker_1 = __importDefault(require("hadron-type-checker"));
7
7
  const element_events_1 = __importDefault(require("../element-events"));
8
8
  const utils_1 = require("../utils");
9
9
  const standard_1 = __importDefault(require("./standard"));
10
+ /**
11
+ * CRUD editor for date values.
12
+ */
10
13
  class DateEditor extends standard_1.default {
14
+ /**
15
+ * Create the editor with the element.
16
+ *
17
+ * @param {Element} element - The hadron document element.
18
+ */
11
19
  constructor(element) {
12
20
  super(element);
13
21
  }
22
+ /**
23
+ * Complete the date edit by converting the valid string to a date
24
+ * object or leaving as invalid.
25
+ */
14
26
  complete() {
15
27
  super.complete();
16
28
  if (this.element.isCurrentTypeValid()) {
17
29
  this.element.edit(hadron_type_checker_1.default.cast(this._formattedValue(), 'Date'));
18
30
  }
19
31
  }
32
+ /**
33
+ * Edit the element with the provided value.
34
+ *
35
+ * @param {Object} value - The new value.
36
+ */
20
37
  edit(value) {
21
38
  try {
22
39
  const date = hadron_type_checker_1.default.cast(value, 'Date');
@@ -33,6 +50,13 @@ class DateEditor extends standard_1.default {
33
50
  this.element.setInvalid(value, this.element.currentType, e.message);
34
51
  }
35
52
  }
53
+ /**
54
+ * Get the number of characters the value should display.
55
+ *
56
+ * @param {Boolean} editMode - If the element is being edited.
57
+ *
58
+ * @returns {Number} The number of characters.
59
+ */
36
60
  size(editMode) {
37
61
  const value = this.element.currentValue;
38
62
  if (editMode) {
@@ -42,12 +66,24 @@ class DateEditor extends standard_1.default {
42
66
  ? (0, utils_1.fieldStringLen)(this._formattedValue())
43
67
  : (0, utils_1.fieldStringLen)(value);
44
68
  }
69
+ /**
70
+ * Start the date edit.
71
+ *
72
+ * @param {Object} value - The value in the field.
73
+ */
45
74
  start() {
46
75
  super.start();
47
76
  if (this.element.isCurrentTypeValid()) {
48
77
  this.edit(this._formattedValue());
49
78
  }
50
79
  }
80
+ /**
81
+ * Get the value being edited.
82
+ *
83
+ * @param {Boolean} editMode - If the UI is in edit mode.
84
+ *
85
+ * @returns {String} The value.
86
+ */
51
87
  value() {
52
88
  const value = this.element.currentValue;
53
89
  if (!this.editing && this.element.isCurrentTypeValid()) {
@@ -56,6 +92,8 @@ class DateEditor extends standard_1.default {
56
92
  return String(value);
57
93
  }
58
94
  _formattedValue() {
95
+ // BSON Date are uint64_t ms, JS Date only supports float64 ms,
96
+ // so some valid BSON Dates are not representable in JS.
59
97
  const date = new Date(this.element.currentValue);
60
98
  try {
61
99
  return date.toISOString().replace('Z', '+00:00');