@limetech/lime-elements 39.13.3 → 39.14.1

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 (184) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/cjs/{_assignValue-D2D1zedG.js → _assignValue-DpsLUlF4.js} +25 -2
  3. package/dist/cjs/{_baseForOwn-QM0kHQT5.js → _baseEach-C570gT5Y.js} +43 -1
  4. package/dist/cjs/{_baseIsEqual-D6hrjmx4.js → _baseIsEqual-aOPReRWl.js} +1 -0
  5. package/dist/cjs/{_baseIteratee-iGEZ9pZY.js → _baseIteratee-DggA4e7a.js} +3 -1
  6. package/dist/cjs/_commonjsHelpers-CFO10eej.js +7 -0
  7. package/dist/cjs/_getAllKeysIn-BQIV8aw7.js +118 -0
  8. package/dist/cjs/_isIterateeCall-CPWXFS_s.js +72 -0
  9. package/dist/cjs/cloneDeep-CxFNKF1Y.js +619 -0
  10. package/dist/cjs/{isArrayLikeObject-CTP6Ak01.js → difference-Bfsq4sXB.js} +93 -5
  11. package/dist/cjs/{focus-trigger-element-NnpJ5nTp.js → focus-trigger-element-Brw8VubX.js} +1 -1
  12. package/dist/cjs/{format-D04vDIBj.js → format-D4jZb7Ls.js} +1 -1
  13. package/dist/cjs/{index-mbfaT7TB.js → index-BgFEL6FF.js} +1 -1
  14. package/dist/cjs/{isEmpty-DCC_l2Xp.js → isEmpty-EBCFxX1S.js} +1 -1
  15. package/dist/cjs/{isEqual-BsHLqE-x.js → isEqual-bXyw7kXo.js} +1 -1
  16. package/dist/cjs/lime-elements.cjs.js +1 -1
  17. package/dist/cjs/limel-badge.cjs.entry.js +2 -2
  18. package/dist/cjs/limel-breadcrumbs_7.cjs.entry.js +2 -3
  19. package/dist/cjs/limel-chip_2.cjs.entry.js +3 -3
  20. package/dist/cjs/limel-circular-progress.cjs.entry.js +2 -2
  21. package/dist/cjs/limel-code-editor.cjs.entry.js +1 -1
  22. package/dist/cjs/limel-date-picker.cjs.entry.js +3 -3
  23. package/dist/cjs/limel-dialog.cjs.entry.js +2 -2
  24. package/dist/cjs/limel-file-dropzone_2.cjs.entry.js +5 -44
  25. package/dist/cjs/limel-file-viewer.cjs.entry.js +2 -2
  26. package/dist/cjs/limel-flatpickr-adapter.cjs.entry.js +12 -74
  27. package/dist/cjs/limel-form.cjs.entry.js +38541 -50295
  28. package/dist/cjs/limel-markdown.cjs.entry.js +3 -3
  29. package/dist/cjs/limel-popover_2.cjs.entry.js +2 -3
  30. package/dist/cjs/limel-prosemirror-adapter.cjs.entry.js +23 -481
  31. package/dist/cjs/limel-tab-bar.cjs.entry.js +4 -83
  32. package/dist/cjs/limel-table.cjs.entry.js +14 -269
  33. package/dist/cjs/loader.cjs.js +1 -1
  34. package/dist/cjs/{markdown-parser-DCnW9yak.js → markdown-parser-BIa99LAc.js} +2 -2
  35. package/dist/cjs/{moment-DCqC7BZP.js → moment-CqRdiK10.js} +1 -1
  36. package/dist/cjs/pickBy-kLjYLoam.js +201 -0
  37. package/dist/cjs/{sv-jO-ewmqh.js → sv-BSR4W58y.js} +1 -1
  38. package/dist/collection/components/form/adapters/widget-adapter.js +23 -30
  39. package/dist/collection/components/form/fields/array-field.js +39 -6
  40. package/dist/collection/components/form/fields/field-helpers.js +4 -4
  41. package/dist/collection/components/form/fields/object-field.js +4 -2
  42. package/dist/collection/components/form/fields/schema-field.js +33 -70
  43. package/dist/collection/components/form/form.css +19 -19
  44. package/dist/collection/components/form/form.js +40 -72
  45. package/dist/collection/components/form/form.test-schemas.js +308 -0
  46. package/dist/collection/components/form/row/row-context.js +2 -0
  47. package/dist/collection/components/form/row/row.js +2 -2
  48. package/dist/collection/components/form/templates/array-context.js +2 -0
  49. package/dist/collection/components/form/templates/array-field-collapsible-item.js +4 -4
  50. package/dist/collection/components/form/templates/array-field-item.js +47 -0
  51. package/dist/collection/components/form/templates/array-field-simple-item.js +6 -7
  52. package/dist/collection/components/form/templates/array-field.js +38 -94
  53. package/dist/collection/components/form/templates/index.js +1 -0
  54. package/dist/collection/components/form/templates/object-field.js +15 -11
  55. package/dist/collection/components/form/validation-display.js +75 -0
  56. package/dist/collection/components/form/validator.js +10 -0
  57. package/dist/collection/components/form/widgets/code-editor.js +1 -1
  58. package/dist/collection/components/form/widgets/select.js +2 -1
  59. package/dist/collection/components/text-editor/prosemirror-adapter/plugins/trigger/create-html-inserter.js +2 -2
  60. package/dist/collection/components/text-editor/prosemirror-adapter/plugins/trigger/factory-helpers/append-transaction-handler.js +7 -0
  61. package/dist/collection/components/text-editor/prosemirror-adapter/plugins/trigger/inserter.js +1 -1
  62. package/dist/esm/{_assignValue-DkGAX8ec.js → _assignValue-DOEO9byf.js} +24 -2
  63. package/dist/esm/{_baseForOwn-CfpQNnvA.js → _baseEach-CL_-rBMy.js} +42 -2
  64. package/dist/esm/{_baseIsEqual-BvHnKRmD.js → _baseIsEqual-BfXMsuGh.js} +2 -2
  65. package/dist/esm/{_baseIteratee-DFBCJcMA.js → _baseIteratee-kS1-0_xD.js} +3 -3
  66. package/dist/esm/_commonjsHelpers-B85MJLTf.js +5 -0
  67. package/dist/esm/_getAllKeysIn-BKpeslPJ.js +113 -0
  68. package/dist/esm/_isIterateeCall-CTcCv8Mb.js +69 -0
  69. package/dist/esm/cloneDeep-BXAw5H-1.js +609 -0
  70. package/dist/esm/{isArrayLikeObject-D7yRwRv4.js → difference-DMAjHh-t.js} +91 -7
  71. package/dist/esm/{focus-trigger-element-6aEStEKM.js → focus-trigger-element-DubROLkE.js} +1 -1
  72. package/dist/esm/{format-BMPGHLQ8.js → format-hTrthuPP.js} +1 -1
  73. package/dist/esm/{index-DJJymEnS.js → index-t4DgGbWS.js} +1 -1
  74. package/dist/esm/{isArrayLike-bWHU4ebg.js → isArrayLike-D1QkaJU2.js} +1 -1
  75. package/dist/esm/{isEmpty-tfwtR2ai.js → isEmpty-DrFXbHWO.js} +2 -2
  76. package/dist/esm/{isEqual-BkQ4Z_9r.js → isEqual-CpaoJ_AF.js} +1 -1
  77. package/dist/esm/lime-elements.js +1 -1
  78. package/dist/esm/limel-badge.entry.js +2 -2
  79. package/dist/esm/limel-breadcrumbs_7.entry.js +2 -3
  80. package/dist/esm/limel-chip_2.entry.js +4 -4
  81. package/dist/esm/limel-circular-progress.entry.js +2 -2
  82. package/dist/esm/limel-code-editor.entry.js +1 -1
  83. package/dist/esm/limel-date-picker.entry.js +3 -3
  84. package/dist/esm/limel-dialog.entry.js +3 -3
  85. package/dist/esm/limel-file-dropzone_2.entry.js +4 -43
  86. package/dist/esm/limel-file-viewer.entry.js +2 -2
  87. package/dist/esm/limel-flatpickr-adapter.entry.js +8 -70
  88. package/dist/esm/limel-form.entry.js +38553 -50307
  89. package/dist/esm/limel-markdown.entry.js +3 -3
  90. package/dist/esm/limel-popover_2.entry.js +2 -3
  91. package/dist/esm/limel-prosemirror-adapter.entry.js +22 -480
  92. package/dist/esm/limel-tab-bar.entry.js +4 -83
  93. package/dist/esm/limel-table.entry.js +11 -266
  94. package/dist/esm/loader.js +1 -1
  95. package/dist/esm/{markdown-parser-CXYHPPe2.js → markdown-parser-D7vLKElE.js} +2 -2
  96. package/dist/esm/{moment-DhvPC9Jt.js → moment-DQRNe8qq.js} +1 -1
  97. package/dist/esm/pickBy-BEA90LIZ.js +195 -0
  98. package/dist/esm/{sv-84mf7Xsv.js → sv-CY-6-yEp.js} +1 -1
  99. package/dist/lime-elements/lime-elements.esm.js +1 -1
  100. package/dist/lime-elements/p-1cb2d781.entry.js +13 -0
  101. package/dist/lime-elements/{p-00d6ccd6.entry.js → p-25ae3a55.entry.js} +5 -5
  102. package/dist/lime-elements/{p-be0cbddb.entry.js → p-374ec191.entry.js} +1 -1
  103. package/dist/lime-elements/p-3a662d7e.entry.js +1 -0
  104. package/dist/lime-elements/{p-f0f5eda1.entry.js → p-41be4893.entry.js} +1 -1
  105. package/dist/lime-elements/{p-c84911e6.entry.js → p-4ad193a2.entry.js} +1 -1
  106. package/dist/lime-elements/{p-dd7a2361.entry.js → p-4ce682cf.entry.js} +3 -3
  107. package/dist/lime-elements/{p-eeae0ef6.entry.js → p-5ee484a7.entry.js} +4 -4
  108. package/dist/lime-elements/{p-b1d6553c.entry.js → p-77abb595.entry.js} +1 -1
  109. package/dist/lime-elements/p-8065425a.entry.js +1 -0
  110. package/dist/lime-elements/{p-77ba0f66.entry.js → p-8299af78.entry.js} +1 -1
  111. package/dist/lime-elements/{p-87c5e951.entry.js → p-8c7a7003.entry.js} +1 -1
  112. package/dist/lime-elements/{p-ce20d720.entry.js → p-97c401f1.entry.js} +1 -1
  113. package/dist/lime-elements/p-9a378cf0.entry.js +1 -0
  114. package/dist/lime-elements/p-B3zCFNAw.js +1 -0
  115. package/dist/lime-elements/p-B6bNnxRu.js +1 -0
  116. package/dist/lime-elements/p-B85MJLTf.js +1 -0
  117. package/dist/lime-elements/p-BCMRfUKp.js +1 -0
  118. package/dist/lime-elements/p-BbU4FGNT.js +1 -0
  119. package/dist/lime-elements/p-Bp0tNo1s.js +1 -0
  120. package/dist/lime-elements/{p-DpyWBa_Z.js → p-Bt64o80S.js} +1 -1
  121. package/dist/lime-elements/{p-BqiDn_Sf.js → p-BvDmWgCs.js} +1 -1
  122. package/dist/lime-elements/p-CMjGNANG.js +1 -0
  123. package/dist/lime-elements/p-DFWcgJ_i.js +1 -0
  124. package/dist/lime-elements/{p-B4YDb6f3.js → p-DJvGLFul.js} +1 -1
  125. package/dist/lime-elements/p-DTXIk0fN.js +1 -0
  126. package/dist/lime-elements/{p-BgPHaiMH.js → p-D_uMnX5g.js} +1 -1
  127. package/dist/lime-elements/{p-g3InYy9F.js → p-DdYOzHlg.js} +1 -1
  128. package/dist/lime-elements/{p-ndpPJpml.js → p-DsDkl4Sy.js} +1 -1
  129. package/dist/lime-elements/p-UGKt6Ywx.js +1 -0
  130. package/dist/lime-elements/p-afcf580c.entry.js +16 -0
  131. package/dist/lime-elements/p-f6c3f49b.entry.js +1 -0
  132. package/dist/lime-elements/p-v6b303K5.js +1 -0
  133. package/dist/lime-elements/p-xQsJdKrq.js +1 -0
  134. package/dist/lime-elements/{p-BYx8mudw.js → p-zo6O9LC9.js} +2 -2
  135. package/dist/types/components/form/adapters/widget-adapter.d.ts +3 -2
  136. package/dist/types/components/form/fields/array-field.d.ts +11 -19
  137. package/dist/types/components/form/fields/object-field.d.ts +2 -2
  138. package/dist/types/components/form/fields/schema-field.d.ts +5 -18
  139. package/dist/types/components/form/form.d.ts +4 -8
  140. package/dist/types/components/form/form.test-schemas.d.ts +30 -0
  141. package/dist/types/components/form/row/row-context.d.ts +2 -0
  142. package/dist/types/components/form/templates/array-context.d.ts +7 -0
  143. package/dist/types/components/form/templates/array-field-collapsible-item.d.ts +7 -11
  144. package/dist/types/components/form/templates/array-field-item.d.ts +6 -0
  145. package/dist/types/components/form/templates/array-field-simple-item.d.ts +7 -9
  146. package/dist/types/components/form/templates/array-field.d.ts +7 -8
  147. package/dist/types/components/form/templates/index.d.ts +1 -0
  148. package/dist/types/components/form/templates/object-field.d.ts +6 -1
  149. package/dist/types/components/form/templates/types.d.ts +2 -4
  150. package/dist/types/components/form/validation-display.d.ts +60 -0
  151. package/dist/types/components/form/validator.d.ts +6 -0
  152. package/dist/types/components/form/widgets/code-editor.d.ts +1 -1
  153. package/dist/types/components/form/widgets/types.d.ts +1 -1
  154. package/dist/types/components/text-editor/prosemirror-adapter/plugins/trigger/create-html-inserter.d.ts +2 -1
  155. package/package.json +4 -2
  156. package/dist/cjs/_baseAssignValue-BJgt6T7z.js +0 -27
  157. package/dist/cjs/_commonjsHelpers-BJu3ubxk.js +0 -10
  158. package/dist/cjs/_getPrototype-BK9cL-57.js +0 -8
  159. package/dist/cjs/negate-Bg3SqQh6.js +0 -42
  160. package/dist/collection/components/form/fields/types.js +0 -1
  161. package/dist/collection/components/form/schema-cache.js +0 -66
  162. package/dist/esm/_baseAssignValue-C8Uwn8zr.js +0 -25
  163. package/dist/esm/_commonjsHelpers-BFTU3MAI.js +0 -7
  164. package/dist/esm/_getPrototype-jV9gkkJy.js +0 -6
  165. package/dist/esm/negate-ooVD-6_a.js +0 -40
  166. package/dist/lime-elements/p-45dfcaf3.entry.js +0 -1
  167. package/dist/lime-elements/p-5db2d069.entry.js +0 -1
  168. package/dist/lime-elements/p-9728aa4a.entry.js +0 -1
  169. package/dist/lime-elements/p-BFTU3MAI.js +0 -1
  170. package/dist/lime-elements/p-BlJd1RC5.js +0 -1
  171. package/dist/lime-elements/p-C6SEjICu.js +0 -1
  172. package/dist/lime-elements/p-CqEHNkif.js +0 -1
  173. package/dist/lime-elements/p-Cs5T63LB.js +0 -1
  174. package/dist/lime-elements/p-Cw1B5fXE.js +0 -1
  175. package/dist/lime-elements/p-DKxusNKT.js +0 -1
  176. package/dist/lime-elements/p-DrjUjEz3.js +0 -1
  177. package/dist/lime-elements/p-DzlmgobW.js +0 -1
  178. package/dist/lime-elements/p-ZcW3uvZL.js +0 -1
  179. package/dist/lime-elements/p-a4a09ce9.entry.js +0 -7
  180. package/dist/lime-elements/p-c4e2885d.entry.js +0 -16
  181. package/dist/lime-elements/p-ee80a6f2.entry.js +0 -1
  182. package/dist/lime-elements/p-ooVD-6_a.js +0 -1
  183. package/dist/types/components/form/fields/types.d.ts +0 -41
  184. package/dist/types/components/form/schema-cache.d.ts +0 -17
@@ -0,0 +1,619 @@
1
+ 'use strict';
2
+
3
+ var _baseIsEqual = require('./_baseIsEqual-aOPReRWl.js');
4
+ var _assignValue = require('./_assignValue-DpsLUlF4.js');
5
+ var _getAllKeysIn = require('./_getAllKeysIn-BQIV8aw7.js');
6
+ var isObject = require('./isObject-B6Osvvqp.js');
7
+ var isArray = require('./isArray-BuFVIU_i.js');
8
+ var isObjectLike = require('./isObjectLike-Dlpn-j-1.js');
9
+
10
+ /** Built-in value references. */
11
+ var objectCreate = Object.create;
12
+
13
+ /**
14
+ * The base implementation of `_.create` without support for assigning
15
+ * properties to the created object.
16
+ *
17
+ * @private
18
+ * @param {Object} proto The object to inherit from.
19
+ * @returns {Object} Returns the new object.
20
+ */
21
+ var baseCreate = (function() {
22
+ function object() {}
23
+ return function(proto) {
24
+ if (!isObject.isObject(proto)) {
25
+ return {};
26
+ }
27
+ if (objectCreate) {
28
+ return objectCreate(proto);
29
+ }
30
+ object.prototype = proto;
31
+ var result = new object;
32
+ object.prototype = undefined;
33
+ return result;
34
+ };
35
+ }());
36
+
37
+ /**
38
+ * Copies the values of `source` to `array`.
39
+ *
40
+ * @private
41
+ * @param {Array} source The array to copy values from.
42
+ * @param {Array} [array=[]] The array to copy values to.
43
+ * @returns {Array} Returns `array`.
44
+ */
45
+ function copyArray(source, array) {
46
+ var index = -1,
47
+ length = source.length;
48
+
49
+ array || (array = Array(length));
50
+ while (++index < length) {
51
+ array[index] = source[index];
52
+ }
53
+ return array;
54
+ }
55
+
56
+ /**
57
+ * A specialized version of `_.forEach` for arrays without support for
58
+ * iteratee shorthands.
59
+ *
60
+ * @private
61
+ * @param {Array} [array] The array to iterate over.
62
+ * @param {Function} iteratee The function invoked per iteration.
63
+ * @returns {Array} Returns `array`.
64
+ */
65
+ function arrayEach(array, iteratee) {
66
+ var index = -1,
67
+ length = array == null ? 0 : array.length;
68
+
69
+ while (++index < length) {
70
+ if (iteratee(array[index], index, array) === false) {
71
+ break;
72
+ }
73
+ }
74
+ return array;
75
+ }
76
+
77
+ /**
78
+ * Copies properties of `source` to `object`.
79
+ *
80
+ * @private
81
+ * @param {Object} source The object to copy properties from.
82
+ * @param {Array} props The property identifiers to copy.
83
+ * @param {Object} [object={}] The object to copy properties to.
84
+ * @param {Function} [customizer] The function to customize copied values.
85
+ * @returns {Object} Returns `object`.
86
+ */
87
+ function copyObject(source, props, object, customizer) {
88
+ var isNew = !object;
89
+ object || (object = {});
90
+
91
+ var index = -1,
92
+ length = props.length;
93
+
94
+ while (++index < length) {
95
+ var key = props[index];
96
+
97
+ var newValue = undefined;
98
+
99
+ if (newValue === undefined) {
100
+ newValue = source[key];
101
+ }
102
+ if (isNew) {
103
+ _assignValue.baseAssignValue(object, key, newValue);
104
+ } else {
105
+ _assignValue.assignValue(object, key, newValue);
106
+ }
107
+ }
108
+ return object;
109
+ }
110
+
111
+ /**
112
+ * The base implementation of `_.assign` without support for multiple sources
113
+ * or `customizer` functions.
114
+ *
115
+ * @private
116
+ * @param {Object} object The destination object.
117
+ * @param {Object} source The source object.
118
+ * @returns {Object} Returns `object`.
119
+ */
120
+ function baseAssign(object, source) {
121
+ return object && copyObject(source, _baseIsEqual.keys(source), object);
122
+ }
123
+
124
+ /**
125
+ * The base implementation of `_.assignIn` without support for multiple sources
126
+ * or `customizer` functions.
127
+ *
128
+ * @private
129
+ * @param {Object} object The destination object.
130
+ * @param {Object} source The source object.
131
+ * @returns {Object} Returns `object`.
132
+ */
133
+ function baseAssignIn(object, source) {
134
+ return object && copyObject(source, _getAllKeysIn.keysIn(source), object);
135
+ }
136
+
137
+ /** Detect free variable `exports`. */
138
+ var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
139
+
140
+ /** Detect free variable `module`. */
141
+ var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
142
+
143
+ /** Detect the popular CommonJS extension `module.exports`. */
144
+ var moduleExports = freeModule && freeModule.exports === freeExports;
145
+
146
+ /** Built-in value references. */
147
+ var Buffer = moduleExports ? isObject.root.Buffer : undefined,
148
+ allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;
149
+
150
+ /**
151
+ * Creates a clone of `buffer`.
152
+ *
153
+ * @private
154
+ * @param {Buffer} buffer The buffer to clone.
155
+ * @param {boolean} [isDeep] Specify a deep clone.
156
+ * @returns {Buffer} Returns the cloned buffer.
157
+ */
158
+ function cloneBuffer(buffer, isDeep) {
159
+ if (isDeep) {
160
+ return buffer.slice();
161
+ }
162
+ var length = buffer.length,
163
+ result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);
164
+
165
+ buffer.copy(result);
166
+ return result;
167
+ }
168
+
169
+ /**
170
+ * Copies own symbols of `source` to `object`.
171
+ *
172
+ * @private
173
+ * @param {Object} source The object to copy symbols from.
174
+ * @param {Object} [object={}] The object to copy symbols to.
175
+ * @returns {Object} Returns `object`.
176
+ */
177
+ function copySymbols(source, object) {
178
+ return copyObject(source, _baseIsEqual.getSymbols(source), object);
179
+ }
180
+
181
+ /**
182
+ * Copies own and inherited symbols of `source` to `object`.
183
+ *
184
+ * @private
185
+ * @param {Object} source The object to copy symbols from.
186
+ * @param {Object} [object={}] The object to copy symbols to.
187
+ * @returns {Object} Returns `object`.
188
+ */
189
+ function copySymbolsIn(source, object) {
190
+ return copyObject(source, _getAllKeysIn.getSymbolsIn(source), object);
191
+ }
192
+
193
+ /** Used for built-in method references. */
194
+ var objectProto = Object.prototype;
195
+
196
+ /** Used to check objects for own properties. */
197
+ var hasOwnProperty = objectProto.hasOwnProperty;
198
+
199
+ /**
200
+ * Initializes an array clone.
201
+ *
202
+ * @private
203
+ * @param {Array} array The array to clone.
204
+ * @returns {Array} Returns the initialized clone.
205
+ */
206
+ function initCloneArray(array) {
207
+ var length = array.length,
208
+ result = new array.constructor(length);
209
+
210
+ // Add properties assigned by `RegExp#exec`.
211
+ if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {
212
+ result.index = array.index;
213
+ result.input = array.input;
214
+ }
215
+ return result;
216
+ }
217
+
218
+ /**
219
+ * Creates a clone of `arrayBuffer`.
220
+ *
221
+ * @private
222
+ * @param {ArrayBuffer} arrayBuffer The array buffer to clone.
223
+ * @returns {ArrayBuffer} Returns the cloned array buffer.
224
+ */
225
+ function cloneArrayBuffer(arrayBuffer) {
226
+ var result = new arrayBuffer.constructor(arrayBuffer.byteLength);
227
+ new _baseIsEqual.Uint8Array(result).set(new _baseIsEqual.Uint8Array(arrayBuffer));
228
+ return result;
229
+ }
230
+
231
+ /**
232
+ * Creates a clone of `dataView`.
233
+ *
234
+ * @private
235
+ * @param {Object} dataView The data view to clone.
236
+ * @param {boolean} [isDeep] Specify a deep clone.
237
+ * @returns {Object} Returns the cloned data view.
238
+ */
239
+ function cloneDataView(dataView, isDeep) {
240
+ var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;
241
+ return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);
242
+ }
243
+
244
+ /** Used to match `RegExp` flags from their coerced string values. */
245
+ var reFlags = /\w*$/;
246
+
247
+ /**
248
+ * Creates a clone of `regexp`.
249
+ *
250
+ * @private
251
+ * @param {Object} regexp The regexp to clone.
252
+ * @returns {Object} Returns the cloned regexp.
253
+ */
254
+ function cloneRegExp(regexp) {
255
+ var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));
256
+ result.lastIndex = regexp.lastIndex;
257
+ return result;
258
+ }
259
+
260
+ /** Used to convert symbols to primitives and strings. */
261
+ var symbolProto = isObject.Symbol ? isObject.Symbol.prototype : undefined,
262
+ symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;
263
+
264
+ /**
265
+ * Creates a clone of the `symbol` object.
266
+ *
267
+ * @private
268
+ * @param {Object} symbol The symbol object to clone.
269
+ * @returns {Object} Returns the cloned symbol object.
270
+ */
271
+ function cloneSymbol(symbol) {
272
+ return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};
273
+ }
274
+
275
+ /**
276
+ * Creates a clone of `typedArray`.
277
+ *
278
+ * @private
279
+ * @param {Object} typedArray The typed array to clone.
280
+ * @param {boolean} [isDeep] Specify a deep clone.
281
+ * @returns {Object} Returns the cloned typed array.
282
+ */
283
+ function cloneTypedArray(typedArray, isDeep) {
284
+ var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;
285
+ return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);
286
+ }
287
+
288
+ /** `Object#toString` result references. */
289
+ var boolTag$1 = '[object Boolean]',
290
+ dateTag$1 = '[object Date]',
291
+ mapTag$2 = '[object Map]',
292
+ numberTag$1 = '[object Number]',
293
+ regexpTag$1 = '[object RegExp]',
294
+ setTag$2 = '[object Set]',
295
+ stringTag$1 = '[object String]',
296
+ symbolTag$1 = '[object Symbol]';
297
+
298
+ var arrayBufferTag$1 = '[object ArrayBuffer]',
299
+ dataViewTag$1 = '[object DataView]',
300
+ float32Tag$1 = '[object Float32Array]',
301
+ float64Tag$1 = '[object Float64Array]',
302
+ int8Tag$1 = '[object Int8Array]',
303
+ int16Tag$1 = '[object Int16Array]',
304
+ int32Tag$1 = '[object Int32Array]',
305
+ uint8Tag$1 = '[object Uint8Array]',
306
+ uint8ClampedTag$1 = '[object Uint8ClampedArray]',
307
+ uint16Tag$1 = '[object Uint16Array]',
308
+ uint32Tag$1 = '[object Uint32Array]';
309
+
310
+ /**
311
+ * Initializes an object clone based on its `toStringTag`.
312
+ *
313
+ * **Note:** This function only supports cloning values with tags of
314
+ * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.
315
+ *
316
+ * @private
317
+ * @param {Object} object The object to clone.
318
+ * @param {string} tag The `toStringTag` of the object to clone.
319
+ * @param {boolean} [isDeep] Specify a deep clone.
320
+ * @returns {Object} Returns the initialized clone.
321
+ */
322
+ function initCloneByTag(object, tag, isDeep) {
323
+ var Ctor = object.constructor;
324
+ switch (tag) {
325
+ case arrayBufferTag$1:
326
+ return cloneArrayBuffer(object);
327
+
328
+ case boolTag$1:
329
+ case dateTag$1:
330
+ return new Ctor(+object);
331
+
332
+ case dataViewTag$1:
333
+ return cloneDataView(object, isDeep);
334
+
335
+ case float32Tag$1: case float64Tag$1:
336
+ case int8Tag$1: case int16Tag$1: case int32Tag$1:
337
+ case uint8Tag$1: case uint8ClampedTag$1: case uint16Tag$1: case uint32Tag$1:
338
+ return cloneTypedArray(object, isDeep);
339
+
340
+ case mapTag$2:
341
+ return new Ctor;
342
+
343
+ case numberTag$1:
344
+ case stringTag$1:
345
+ return new Ctor(object);
346
+
347
+ case regexpTag$1:
348
+ return cloneRegExp(object);
349
+
350
+ case setTag$2:
351
+ return new Ctor;
352
+
353
+ case symbolTag$1:
354
+ return cloneSymbol(object);
355
+ }
356
+ }
357
+
358
+ /**
359
+ * Initializes an object clone.
360
+ *
361
+ * @private
362
+ * @param {Object} object The object to clone.
363
+ * @returns {Object} Returns the initialized clone.
364
+ */
365
+ function initCloneObject(object) {
366
+ return (typeof object.constructor == 'function' && !_baseIsEqual.isPrototype(object))
367
+ ? baseCreate(_getAllKeysIn.getPrototype(object))
368
+ : {};
369
+ }
370
+
371
+ /** `Object#toString` result references. */
372
+ var mapTag$1 = '[object Map]';
373
+
374
+ /**
375
+ * The base implementation of `_.isMap` without Node.js optimizations.
376
+ *
377
+ * @private
378
+ * @param {*} value The value to check.
379
+ * @returns {boolean} Returns `true` if `value` is a map, else `false`.
380
+ */
381
+ function baseIsMap(value) {
382
+ return isObjectLike.isObjectLike(value) && _baseIsEqual.getTag(value) == mapTag$1;
383
+ }
384
+
385
+ /* Node.js helper references. */
386
+ var nodeIsMap = _baseIsEqual.nodeUtil && _baseIsEqual.nodeUtil.isMap;
387
+
388
+ /**
389
+ * Checks if `value` is classified as a `Map` object.
390
+ *
391
+ * @static
392
+ * @memberOf _
393
+ * @since 4.3.0
394
+ * @category Lang
395
+ * @param {*} value The value to check.
396
+ * @returns {boolean} Returns `true` if `value` is a map, else `false`.
397
+ * @example
398
+ *
399
+ * _.isMap(new Map);
400
+ * // => true
401
+ *
402
+ * _.isMap(new WeakMap);
403
+ * // => false
404
+ */
405
+ var isMap = nodeIsMap ? _baseIsEqual.baseUnary(nodeIsMap) : baseIsMap;
406
+
407
+ /** `Object#toString` result references. */
408
+ var setTag$1 = '[object Set]';
409
+
410
+ /**
411
+ * The base implementation of `_.isSet` without Node.js optimizations.
412
+ *
413
+ * @private
414
+ * @param {*} value The value to check.
415
+ * @returns {boolean} Returns `true` if `value` is a set, else `false`.
416
+ */
417
+ function baseIsSet(value) {
418
+ return isObjectLike.isObjectLike(value) && _baseIsEqual.getTag(value) == setTag$1;
419
+ }
420
+
421
+ /* Node.js helper references. */
422
+ var nodeIsSet = _baseIsEqual.nodeUtil && _baseIsEqual.nodeUtil.isSet;
423
+
424
+ /**
425
+ * Checks if `value` is classified as a `Set` object.
426
+ *
427
+ * @static
428
+ * @memberOf _
429
+ * @since 4.3.0
430
+ * @category Lang
431
+ * @param {*} value The value to check.
432
+ * @returns {boolean} Returns `true` if `value` is a set, else `false`.
433
+ * @example
434
+ *
435
+ * _.isSet(new Set);
436
+ * // => true
437
+ *
438
+ * _.isSet(new WeakSet);
439
+ * // => false
440
+ */
441
+ var isSet = nodeIsSet ? _baseIsEqual.baseUnary(nodeIsSet) : baseIsSet;
442
+
443
+ /** Used to compose bitmasks for cloning. */
444
+ var CLONE_DEEP_FLAG$1 = 1,
445
+ CLONE_FLAT_FLAG = 2,
446
+ CLONE_SYMBOLS_FLAG$1 = 4;
447
+
448
+ /** `Object#toString` result references. */
449
+ var argsTag = '[object Arguments]',
450
+ arrayTag = '[object Array]',
451
+ boolTag = '[object Boolean]',
452
+ dateTag = '[object Date]',
453
+ errorTag = '[object Error]',
454
+ funcTag = '[object Function]',
455
+ genTag = '[object GeneratorFunction]',
456
+ mapTag = '[object Map]',
457
+ numberTag = '[object Number]',
458
+ objectTag = '[object Object]',
459
+ regexpTag = '[object RegExp]',
460
+ setTag = '[object Set]',
461
+ stringTag = '[object String]',
462
+ symbolTag = '[object Symbol]',
463
+ weakMapTag = '[object WeakMap]';
464
+
465
+ var arrayBufferTag = '[object ArrayBuffer]',
466
+ dataViewTag = '[object DataView]',
467
+ float32Tag = '[object Float32Array]',
468
+ float64Tag = '[object Float64Array]',
469
+ int8Tag = '[object Int8Array]',
470
+ int16Tag = '[object Int16Array]',
471
+ int32Tag = '[object Int32Array]',
472
+ uint8Tag = '[object Uint8Array]',
473
+ uint8ClampedTag = '[object Uint8ClampedArray]',
474
+ uint16Tag = '[object Uint16Array]',
475
+ uint32Tag = '[object Uint32Array]';
476
+
477
+ /** Used to identify `toStringTag` values supported by `_.clone`. */
478
+ var cloneableTags = {};
479
+ cloneableTags[argsTag] = cloneableTags[arrayTag] =
480
+ cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =
481
+ cloneableTags[boolTag] = cloneableTags[dateTag] =
482
+ cloneableTags[float32Tag] = cloneableTags[float64Tag] =
483
+ cloneableTags[int8Tag] = cloneableTags[int16Tag] =
484
+ cloneableTags[int32Tag] = cloneableTags[mapTag] =
485
+ cloneableTags[numberTag] = cloneableTags[objectTag] =
486
+ cloneableTags[regexpTag] = cloneableTags[setTag] =
487
+ cloneableTags[stringTag] = cloneableTags[symbolTag] =
488
+ cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =
489
+ cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;
490
+ cloneableTags[errorTag] = cloneableTags[funcTag] =
491
+ cloneableTags[weakMapTag] = false;
492
+
493
+ /**
494
+ * The base implementation of `_.clone` and `_.cloneDeep` which tracks
495
+ * traversed objects.
496
+ *
497
+ * @private
498
+ * @param {*} value The value to clone.
499
+ * @param {boolean} bitmask The bitmask flags.
500
+ * 1 - Deep clone
501
+ * 2 - Flatten inherited properties
502
+ * 4 - Clone symbols
503
+ * @param {Function} [customizer] The function to customize cloning.
504
+ * @param {string} [key] The key of `value`.
505
+ * @param {Object} [object] The parent object of `value`.
506
+ * @param {Object} [stack] Tracks traversed objects and their clone counterparts.
507
+ * @returns {*} Returns the cloned value.
508
+ */
509
+ function baseClone(value, bitmask, customizer, key, object, stack) {
510
+ var result,
511
+ isDeep = bitmask & CLONE_DEEP_FLAG$1,
512
+ isFlat = bitmask & CLONE_FLAT_FLAG,
513
+ isFull = bitmask & CLONE_SYMBOLS_FLAG$1;
514
+
515
+ if (customizer) {
516
+ result = object ? customizer(value, key, object, stack) : customizer(value);
517
+ }
518
+ if (result !== undefined) {
519
+ return result;
520
+ }
521
+ if (!isObject.isObject(value)) {
522
+ return value;
523
+ }
524
+ var isArr = isArray.isArray(value);
525
+ if (isArr) {
526
+ result = initCloneArray(value);
527
+ if (!isDeep) {
528
+ return copyArray(value, result);
529
+ }
530
+ } else {
531
+ var tag = _baseIsEqual.getTag(value),
532
+ isFunc = tag == funcTag || tag == genTag;
533
+
534
+ if (_baseIsEqual.isBuffer(value)) {
535
+ return cloneBuffer(value, isDeep);
536
+ }
537
+ if (tag == objectTag || tag == argsTag || (isFunc && !object)) {
538
+ result = (isFlat || isFunc) ? {} : initCloneObject(value);
539
+ if (!isDeep) {
540
+ return isFlat
541
+ ? copySymbolsIn(value, baseAssignIn(result, value))
542
+ : copySymbols(value, baseAssign(result, value));
543
+ }
544
+ } else {
545
+ if (!cloneableTags[tag]) {
546
+ return object ? value : {};
547
+ }
548
+ result = initCloneByTag(value, tag, isDeep);
549
+ }
550
+ }
551
+ // Check for circular references and return its corresponding clone.
552
+ stack || (stack = new _baseIsEqual.Stack);
553
+ var stacked = stack.get(value);
554
+ if (stacked) {
555
+ return stacked;
556
+ }
557
+ stack.set(value, result);
558
+
559
+ if (isSet(value)) {
560
+ value.forEach(function(subValue) {
561
+ result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));
562
+ });
563
+ } else if (isMap(value)) {
564
+ value.forEach(function(subValue, key) {
565
+ result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));
566
+ });
567
+ }
568
+
569
+ var keysFunc = isFull
570
+ ? (isFlat ? _getAllKeysIn.getAllKeysIn : _baseIsEqual.getAllKeys)
571
+ : (isFlat ? _getAllKeysIn.keysIn : _baseIsEqual.keys);
572
+
573
+ var props = isArr ? undefined : keysFunc(value);
574
+ arrayEach(props || value, function(subValue, key) {
575
+ if (props) {
576
+ key = subValue;
577
+ subValue = value[key];
578
+ }
579
+ // Recursively populate clone (susceptible to call stack limits).
580
+ _assignValue.assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));
581
+ });
582
+ return result;
583
+ }
584
+
585
+ /** Used to compose bitmasks for cloning. */
586
+ var CLONE_DEEP_FLAG = 1,
587
+ CLONE_SYMBOLS_FLAG = 4;
588
+
589
+ /**
590
+ * This method is like `_.clone` except that it recursively clones `value`.
591
+ *
592
+ * @static
593
+ * @memberOf _
594
+ * @since 1.0.0
595
+ * @category Lang
596
+ * @param {*} value The value to recursively clone.
597
+ * @returns {*} Returns the deep cloned value.
598
+ * @see _.clone
599
+ * @example
600
+ *
601
+ * var objects = [{ 'a': 1 }, { 'b': 2 }];
602
+ *
603
+ * var deep = _.cloneDeep(objects);
604
+ * console.log(deep[0] === objects[0]);
605
+ * // => false
606
+ */
607
+ function cloneDeep(value) {
608
+ return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);
609
+ }
610
+
611
+ exports.arrayEach = arrayEach;
612
+ exports.baseClone = baseClone;
613
+ exports.baseCreate = baseCreate;
614
+ exports.cloneBuffer = cloneBuffer;
615
+ exports.cloneDeep = cloneDeep;
616
+ exports.cloneTypedArray = cloneTypedArray;
617
+ exports.copyArray = copyArray;
618
+ exports.copyObject = copyObject;
619
+ exports.initCloneObject = initCloneObject;