@esri/calcite-components 1.0.0-next.367 → 1.0.0-next.370

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 (172) hide show
  1. package/dist/calcite/calcite.esm.js +1 -1
  2. package/dist/calcite/{p-946c3bed.system.entry.js → p-0389f96b.system.entry.js} +1 -1
  3. package/dist/calcite/{p-f95fb85f.entry.js → p-04bf684c.entry.js} +1 -1
  4. package/dist/calcite/p-0a5d059d.js +5 -0
  5. package/dist/calcite/{p-02589ad3.system.entry.js → p-0faf1684.system.entry.js} +1 -1
  6. package/dist/calcite/{p-a348ffb1.system.entry.js → p-10b1b39a.system.entry.js} +1 -1
  7. package/dist/calcite/p-1b06ada3.entry.js +5 -0
  8. package/dist/calcite/{p-b14e0be5.system.entry.js → p-203e951b.system.entry.js} +1 -1
  9. package/dist/calcite/{p-bda51610.entry.js → p-242fdd67.entry.js} +1 -1
  10. package/dist/calcite/{p-832d7f68.system.entry.js → p-24b54c99.system.entry.js} +1 -1
  11. package/dist/calcite/{p-94717214.entry.js → p-283ff9e8.entry.js} +1 -1
  12. package/dist/calcite/{p-897fc280.system.entry.js → p-2d411997.system.entry.js} +1 -1
  13. package/dist/calcite/{p-e2094dff.system.entry.js → p-2e351904.system.entry.js} +1 -1
  14. package/dist/calcite/{p-55e2658e.entry.js → p-341eef4e.entry.js} +1 -1
  15. package/dist/calcite/{p-2b48aa8c.entry.js → p-4641ef1f.entry.js} +1 -1
  16. package/dist/calcite/{p-1ef9235e.system.entry.js → p-492d644c.system.entry.js} +1 -1
  17. package/dist/calcite/{p-7cf09784.system.entry.js → p-4b3160ad.system.entry.js} +1 -1
  18. package/dist/calcite/{p-46b63d75.entry.js → p-4c021c5c.entry.js} +1 -1
  19. package/dist/calcite/{p-af7ed41f.system.entry.js → p-4c6fe413.system.entry.js} +1 -1
  20. package/dist/calcite/{p-dd4457cd.entry.js → p-4ef2119c.entry.js} +1 -1
  21. package/dist/calcite/p-500b9fa0.entry.js +5 -0
  22. package/dist/calcite/{p-0282fd8b.system.entry.js → p-57584243.system.entry.js} +1 -1
  23. package/dist/calcite/{p-05b03971.system.entry.js → p-57bf81c4.system.entry.js} +2 -2
  24. package/dist/calcite/{p-1bcce6c9.entry.js → p-590d13bd.entry.js} +1 -1
  25. package/dist/calcite/{p-4347fde9.system.entry.js → p-5aaa0088.system.entry.js} +1 -1
  26. package/dist/calcite/{p-ba000c59.entry.js → p-5b7d5f36.entry.js} +1 -1
  27. package/dist/calcite/{p-436d9f0e.system.entry.js → p-67e13029.system.entry.js} +1 -1
  28. package/dist/calcite/{p-ba915998.entry.js → p-6b8dcbb0.entry.js} +1 -1
  29. package/dist/calcite/{p-16cfe8e8.entry.js → p-6c4bec59.entry.js} +1 -1
  30. package/dist/calcite/p-6de78659.system.entry.js +5 -0
  31. package/dist/calcite/{p-40cbbd20.entry.js → p-6fa59c8c.entry.js} +1 -1
  32. package/dist/calcite/p-7165e37e.entry.js +5 -0
  33. package/dist/calcite/{p-f4614b28.system.entry.js → p-77279f88.system.entry.js} +1 -1
  34. package/dist/calcite/{p-9fe77a88.system.entry.js → p-7cba1720.system.entry.js} +1 -1
  35. package/dist/calcite/{p-60e4f404.entry.js → p-7db0947c.entry.js} +1 -1
  36. package/dist/calcite/{p-a52288cd.system.entry.js → p-7f50128c.system.entry.js} +1 -1
  37. package/dist/calcite/{p-9b723fdd.system.entry.js → p-84defe75.system.entry.js} +1 -1
  38. package/dist/calcite/{p-597b782e.system.entry.js → p-8f647ab0.system.entry.js} +1 -1
  39. package/dist/calcite/{p-08847812.entry.js → p-92de4a81.entry.js} +1 -1
  40. package/dist/calcite/{p-5682a918.entry.js → p-950b42e3.entry.js} +1 -1
  41. package/dist/calcite/p-99d32fc3.system.js +1 -1
  42. package/dist/calcite/{p-050ff462.entry.js → p-a25ebce7.entry.js} +1 -1
  43. package/dist/calcite/{p-953259af.entry.js → p-a5c73259.entry.js} +1 -1
  44. package/dist/calcite/{p-409d0a3f.entry.js → p-a980b2df.entry.js} +1 -1
  45. package/dist/calcite/{p-b53b28e3.system.js → p-ab14b0a2.system.js} +1 -1
  46. package/dist/calcite/{p-db10485b.system.js → p-ac4aec20.system.js} +1 -1
  47. package/dist/calcite/{p-25ed6059.entry.js → p-b052f523.entry.js} +1 -1
  48. package/dist/calcite/p-b9a47a94.system.entry.js +5 -0
  49. package/dist/calcite/{p-eff2fb8c.system.entry.js → p-bb20e0fc.system.entry.js} +1 -1
  50. package/dist/calcite/{p-209f2049.entry.js → p-bde80af8.entry.js} +1 -1
  51. package/dist/calcite/p-c029ffb1.entry.js +5 -0
  52. package/dist/calcite/{p-888a152c.system.entry.js → p-d908834f.system.entry.js} +1 -1
  53. package/dist/calcite/{p-fd57beb5.system.entry.js → p-de09fc5c.system.entry.js} +1 -1
  54. package/dist/calcite/{p-3280f0ac.system.entry.js → p-de8496be.system.entry.js} +1 -1
  55. package/dist/calcite/p-ea510477.js +5 -0
  56. package/dist/calcite/{p-aea7c650.system.entry.js → p-ee7e311e.system.entry.js} +1 -1
  57. package/dist/calcite/{p-d5d91f34.system.entry.js → p-f044fcc5.system.entry.js} +1 -1
  58. package/dist/calcite/{p-43cd4b9b.entry.js → p-f385d631.entry.js} +1 -1
  59. package/dist/calcite/{p-7279ccf9.entry.js → p-fe94050d.entry.js} +1 -1
  60. package/dist/calcite/{p-b88d7391.entry.js → p-fee6af61.entry.js} +1 -1
  61. package/dist/cjs/calcite-action-bar.cjs.entry.js +2 -2
  62. package/dist/cjs/calcite-action-group.cjs.entry.js +2 -2
  63. package/dist/cjs/calcite-action-menu.cjs.entry.js +2 -2
  64. package/dist/cjs/calcite-action-pad.cjs.entry.js +2 -2
  65. package/dist/cjs/calcite-action.cjs.entry.js +2 -2
  66. package/dist/cjs/calcite-block_2.cjs.entry.js +2 -2
  67. package/dist/cjs/calcite-button.cjs.entry.js +1 -1
  68. package/dist/cjs/calcite-chip.cjs.entry.js +2 -2
  69. package/dist/cjs/calcite-combobox_3.cjs.entry.js +1 -1
  70. package/dist/cjs/calcite-dropdown_3.cjs.entry.js +1 -1
  71. package/dist/cjs/calcite-flow.cjs.entry.js +1 -1
  72. package/dist/cjs/calcite-graph_2.cjs.entry.js +4 -4
  73. package/dist/cjs/calcite-icon.cjs.entry.js +1 -1
  74. package/dist/cjs/calcite-input.cjs.entry.js +93 -36
  75. package/dist/cjs/calcite-list_3.cjs.entry.js +2 -2
  76. package/dist/cjs/calcite-modal.cjs.entry.js +2 -2
  77. package/dist/cjs/calcite-notice.cjs.entry.js +2 -2
  78. package/dist/cjs/calcite-option_3.cjs.entry.js +1 -1
  79. package/dist/cjs/calcite-panel.cjs.entry.js +2 -2
  80. package/dist/cjs/calcite-pick-list_3.cjs.entry.js +2 -2
  81. package/dist/cjs/calcite-shell_3.cjs.entry.js +2 -2
  82. package/dist/cjs/calcite-sortable-list.cjs.entry.js +1 -1
  83. package/dist/cjs/calcite-tab_4.cjs.entry.js +1 -1
  84. package/dist/cjs/calcite-tile.cjs.entry.js +2 -2
  85. package/dist/cjs/calcite-tip_3.cjs.entry.js +2 -2
  86. package/dist/cjs/calcite-tree_2.cjs.entry.js +2 -2
  87. package/dist/cjs/calcite-value-list_2.cjs.entry.js +2 -2
  88. package/dist/cjs/{conditionalSlot-e874fbb0.js → conditionalSlot-92505fba.js} +1 -1
  89. package/dist/cjs/{observers-41837607.js → observers-79bfb8bc.js} +5 -1
  90. package/dist/collection/components/calcite-action/calcite-action.css +1 -0
  91. package/dist/collection/components/calcite-input/calcite-input.js +93 -36
  92. package/dist/collection/components/calcite-slider/calcite-slider.css +3 -0
  93. package/dist/collection/components/calcite-slider/calcite-slider.js +2 -2
  94. package/dist/collection/utils/globalAttributes.js +59 -0
  95. package/dist/collection/utils/observers.js +5 -1
  96. package/dist/components/calcite-action2.js +1 -1
  97. package/dist/components/calcite-input2.js +93 -36
  98. package/dist/components/calcite-slider.js +3 -3
  99. package/dist/components/observers.js +5 -1
  100. package/dist/custom-elements/index.js +103 -42
  101. package/dist/esm/calcite-action-bar.entry.js +2 -2
  102. package/dist/esm/calcite-action-group.entry.js +2 -2
  103. package/dist/esm/calcite-action-menu.entry.js +2 -2
  104. package/dist/esm/calcite-action-pad.entry.js +2 -2
  105. package/dist/esm/calcite-action.entry.js +2 -2
  106. package/dist/esm/calcite-block_2.entry.js +2 -2
  107. package/dist/esm/calcite-button.entry.js +1 -1
  108. package/dist/esm/calcite-chip.entry.js +2 -2
  109. package/dist/esm/calcite-combobox_3.entry.js +1 -1
  110. package/dist/esm/calcite-dropdown_3.entry.js +1 -1
  111. package/dist/esm/calcite-flow.entry.js +1 -1
  112. package/dist/esm/calcite-graph_2.entry.js +4 -4
  113. package/dist/esm/calcite-icon.entry.js +1 -1
  114. package/dist/esm/calcite-input.entry.js +93 -36
  115. package/dist/esm/calcite-list_3.entry.js +2 -2
  116. package/dist/esm/calcite-modal.entry.js +2 -2
  117. package/dist/esm/calcite-notice.entry.js +2 -2
  118. package/dist/esm/calcite-option_3.entry.js +1 -1
  119. package/dist/esm/calcite-panel.entry.js +2 -2
  120. package/dist/esm/calcite-pick-list_3.entry.js +2 -2
  121. package/dist/esm/calcite-shell_3.entry.js +2 -2
  122. package/dist/esm/calcite-sortable-list.entry.js +1 -1
  123. package/dist/esm/calcite-tab_4.entry.js +1 -1
  124. package/dist/esm/calcite-tile.entry.js +2 -2
  125. package/dist/esm/calcite-tip_3.entry.js +2 -2
  126. package/dist/esm/calcite-tree_2.entry.js +2 -2
  127. package/dist/esm/calcite-value-list_2.entry.js +2 -2
  128. package/dist/esm/{conditionalSlot-0c4ea23a.js → conditionalSlot-9e7d8609.js} +1 -1
  129. package/dist/esm/{observers-8f0bc419.js → observers-46118290.js} +5 -1
  130. package/dist/esm-es5/calcite-action-bar.entry.js +2 -2
  131. package/dist/esm-es5/calcite-action-group.entry.js +1 -1
  132. package/dist/esm-es5/calcite-action-menu.entry.js +1 -1
  133. package/dist/esm-es5/calcite-action-pad.entry.js +2 -2
  134. package/dist/esm-es5/calcite-action.entry.js +1 -1
  135. package/dist/esm-es5/calcite-block_2.entry.js +1 -1
  136. package/dist/esm-es5/calcite-button.entry.js +1 -1
  137. package/dist/esm-es5/calcite-chip.entry.js +1 -1
  138. package/dist/esm-es5/calcite-combobox_3.entry.js +1 -1
  139. package/dist/esm-es5/calcite-dropdown_3.entry.js +1 -1
  140. package/dist/esm-es5/calcite-flow.entry.js +1 -1
  141. package/dist/esm-es5/calcite-graph_2.entry.js +1 -1
  142. package/dist/esm-es5/calcite-icon.entry.js +1 -1
  143. package/dist/esm-es5/calcite-input.entry.js +1 -1
  144. package/dist/esm-es5/calcite-list_3.entry.js +1 -1
  145. package/dist/esm-es5/calcite-modal.entry.js +1 -1
  146. package/dist/esm-es5/calcite-notice.entry.js +1 -1
  147. package/dist/esm-es5/calcite-option_3.entry.js +1 -1
  148. package/dist/esm-es5/calcite-panel.entry.js +1 -1
  149. package/dist/esm-es5/calcite-pick-list_3.entry.js +1 -1
  150. package/dist/esm-es5/calcite-shell_3.entry.js +1 -1
  151. package/dist/esm-es5/calcite-sortable-list.entry.js +1 -1
  152. package/dist/esm-es5/calcite-tab_4.entry.js +1 -1
  153. package/dist/esm-es5/calcite-tile.entry.js +1 -1
  154. package/dist/esm-es5/calcite-tip_3.entry.js +1 -1
  155. package/dist/esm-es5/calcite-tree_2.entry.js +1 -1
  156. package/dist/esm-es5/calcite-value-list_2.entry.js +1 -1
  157. package/dist/esm-es5/{conditionalSlot-0c4ea23a.js → conditionalSlot-9e7d8609.js} +1 -1
  158. package/dist/esm-es5/{observers-8f0bc419.js → observers-46118290.js} +1 -1
  159. package/dist/extras/docs-json.json +1 -1
  160. package/dist/types/components/calcite-input/calcite-input.d.ts +6 -1
  161. package/dist/types/utils/globalAttributes.d.ts +35 -0
  162. package/hydrate/index.js +98 -41
  163. package/package.json +1 -1
  164. package/readme.md +0 -30
  165. package/dist/calcite/p-02856c5a.system.entry.js +0 -5
  166. package/dist/calcite/p-20d2db84.entry.js +0 -5
  167. package/dist/calcite/p-4d22b788.entry.js +0 -5
  168. package/dist/calcite/p-660c8077.js +0 -5
  169. package/dist/calcite/p-9bfe6679.system.entry.js +0 -5
  170. package/dist/calcite/p-9f349c92.entry.js +0 -5
  171. package/dist/calcite/p-a71d17b4.entry.js +0 -5
  172. package/dist/calcite/p-e4acb5a8.js +0 -5
@@ -109,6 +109,8 @@ let CalciteInput = class {
109
109
  this.value = "";
110
110
  /** keep track of the rendered child type */
111
111
  this.childElType = "input";
112
+ /** whether the value of the input was changed as a result of user typing or not */
113
+ this.internalValueChange = false;
112
114
  //--------------------------------------------------------------------------
113
115
  //
114
116
  // Private Methods
@@ -128,11 +130,15 @@ let CalciteInput = class {
128
130
  }
129
131
  };
130
132
  this.clearInputValue = (nativeEvent) => {
131
- this.setValue("", nativeEvent, true);
133
+ this.setValue({
134
+ committing: true,
135
+ nativeEvent,
136
+ value: ""
137
+ });
132
138
  };
133
139
  this.inputBlurHandler = () => {
134
140
  if (this.type === "number") {
135
- this.setLocalizedValue(this.value);
141
+ this.setValue({ value: this.value });
136
142
  }
137
143
  this.calciteInputBlur.emit({
138
144
  element: this.childEl,
@@ -156,7 +162,10 @@ let CalciteInput = class {
156
162
  if (this.disabled || this.readOnly) {
157
163
  return;
158
164
  }
159
- this.setValue(nativeEvent.target.value, nativeEvent);
165
+ this.setValue({
166
+ nativeEvent,
167
+ value: nativeEvent.target.value
168
+ });
160
169
  };
161
170
  this.inputKeyDownHandler = (event) => {
162
171
  if (this.disabled || this.readOnly) {
@@ -176,11 +185,17 @@ let CalciteInput = class {
176
185
  if (!number.isValidNumber(delocalizedValue)) {
177
186
  nativeEvent.preventDefault();
178
187
  }
179
- this.setValue(number.parseNumberString(delocalizedValue), nativeEvent);
188
+ this.setValue({
189
+ nativeEvent,
190
+ value: number.parseNumberString(delocalizedValue)
191
+ });
180
192
  this.childNumberEl.value = this.localizedValue;
181
193
  }
182
194
  else {
183
- this.setValue(locale.delocalizeNumberString(value, this.locale), nativeEvent);
195
+ this.setValue({
196
+ nativeEvent,
197
+ value: locale.delocalizeNumberString(value, this.locale)
198
+ });
184
199
  }
185
200
  };
186
201
  this.inputNumberKeyDownHandler = (event) => {
@@ -276,18 +291,44 @@ let CalciteInput = class {
276
291
  this.setChildNumberElRef = (el) => {
277
292
  this.childNumberEl = el;
278
293
  };
279
- this.setLocalizedValue = (value) => {
280
- this.localizedValue = locale.localizeNumberString(value, this.locale, this.groupSeparator);
294
+ this.setInputValue = (newInputValue) => {
295
+ if (this.type === "text" && !this.childEl) {
296
+ return;
297
+ }
298
+ if (this.type === "number" && !this.childNumberEl) {
299
+ return;
300
+ }
301
+ this[`child${this.type === "number" ? "Number" : ""}El`].value = newInputValue;
302
+ };
303
+ this.setPreviousValue = (newPreviousValue) => {
304
+ this.previousValue =
305
+ this.type === "number"
306
+ ? number.isValidNumber(newPreviousValue)
307
+ ? newPreviousValue
308
+ : ""
309
+ : newPreviousValue;
281
310
  };
282
- this.setValue = (value, nativeEvent, committing = false) => {
283
- const previousValue = this.value;
311
+ this.setValue = ({ committing = false, nativeEvent, origin = "internal", value }) => {
312
+ const previousLocalizedValue = this.type === "number"
313
+ ? locale.localizeNumberString(this.previousValue, this.locale, this.groupSeparator)
314
+ : "";
315
+ const sanitizedValue = this.type === "number" ? number.sanitizeNumberString(value) : value;
316
+ const newValue = this.type === "number" && value && !sanitizedValue
317
+ ? number.isValidNumber(this.previousValue)
318
+ ? this.previousValue
319
+ : ""
320
+ : sanitizedValue;
321
+ const newLocalizedValue = this.type === "number"
322
+ ? locale.localizeNumberString(newValue, this.locale, this.groupSeparator)
323
+ : "";
324
+ this.internalValueChange = origin === "internal";
325
+ this.setPreviousValue(this.value);
326
+ this.value = newValue;
284
327
  if (this.type === "number") {
285
- const sanitizedValue = number.sanitizeNumberString(value);
286
- this.value = sanitizedValue;
287
- this.setLocalizedValue(sanitizedValue);
328
+ this.localizedValue = newLocalizedValue;
288
329
  }
289
- else {
290
- this.value = value;
330
+ if (origin === "external") {
331
+ this.setInputValue(this.type === "number" ? newLocalizedValue : newValue);
291
332
  }
292
333
  if (nativeEvent) {
293
334
  const calciteInputInputEvent = this.calciteInputInput.emit({
@@ -296,8 +337,8 @@ let CalciteInput = class {
296
337
  value: this.value
297
338
  });
298
339
  if (calciteInputInputEvent.defaultPrevented) {
299
- this.value = previousValue;
300
- this.setLocalizedValue(previousValue);
340
+ this.value = this.previousValue;
341
+ this.localizedValue = previousLocalizedValue;
301
342
  }
302
343
  else if (committing) {
303
344
  this.calciteInputChange.emit();
@@ -322,17 +363,20 @@ let CalciteInput = class {
322
363
  this.minString = ((_a = this.min) === null || _a === void 0 ? void 0 : _a.toString()) || null;
323
364
  }
324
365
  valueWatcher(newValue) {
325
- if (newValue == null) {
326
- this.value = "";
327
- return;
328
- }
329
- if (this.type === "number" &&
330
- this.localizedValue !== locale.localizeNumberString(newValue, this.locale)) {
331
- this.setLocalizedValue(newValue);
332
- }
333
- else if (this.childEl && this.childEl.value !== newValue) {
334
- this.childEl.value = newValue;
366
+ if (!this.internalValueChange) {
367
+ this.setValue({
368
+ origin: "external",
369
+ value: newValue == null
370
+ ? ""
371
+ : this.type === "number"
372
+ ? number.isValidNumber(newValue)
373
+ ? newValue
374
+ : this.previousValue || ""
375
+ : newValue
376
+ });
377
+ this.warnAboutInvalidNumberValue(newValue);
335
378
  }
379
+ this.internalValueChange = false;
336
380
  }
337
381
  updateRequestedIcon() {
338
382
  this.requestedIcon = dom.setRequestedIcon(INPUT_TYPE_ICONS, this.icon, this.type);
@@ -355,13 +399,13 @@ let CalciteInput = class {
355
399
  if (this.inlineEditableEl) {
356
400
  this.editingEnabled = this.inlineEditableEl.editingEnabled || false;
357
401
  }
358
- if (this.type === "number" && this.value) {
359
- if (number.isValidNumber(this.value)) {
360
- this.localizedValue = locale.localizeNumberString(this.value, this.locale, this.groupSeparator);
361
- }
362
- else {
363
- this.value = "";
364
- }
402
+ this.setPreviousValue(this.value);
403
+ if (this.type === "number") {
404
+ this.warnAboutInvalidNumberValue(this.value);
405
+ this.setValue({
406
+ origin: "loading",
407
+ value: number.isValidNumber(this.value) ? this.value : ""
408
+ });
365
409
  }
366
410
  label.connectLabel(this);
367
411
  form.connectForm(this);
@@ -383,7 +427,9 @@ let CalciteInput = class {
383
427
  }
384
428
  componentShouldUpdate(newValue, oldValue, property) {
385
429
  if (this.type === "number" && property === "value" && newValue && !number.isValidNumber(newValue)) {
386
- this.value = oldValue;
430
+ this.setValue({
431
+ value: oldValue
432
+ });
387
433
  return false;
388
434
  }
389
435
  return true;
@@ -418,10 +464,16 @@ let CalciteInput = class {
418
464
  : nudgedValue;
419
465
  const inputValPlaces = math.decimalPlaces(inputVal);
420
466
  const inputStepPlaces = math.decimalPlaces(inputStep);
421
- this.setValue(finalValue.toFixed(Math.max(inputValPlaces, inputStepPlaces)), nativeEvent, true);
467
+ this.setValue({
468
+ committing: true,
469
+ nativeEvent,
470
+ value: finalValue.toFixed(Math.max(inputValPlaces, inputStepPlaces))
471
+ });
422
472
  }
423
473
  onFormReset() {
424
- this.setValue(this.defaultValue);
474
+ this.setValue({
475
+ value: this.defaultValue
476
+ });
425
477
  }
426
478
  syncHiddenFormInput(input) {
427
479
  var _a, _b, _c, _d;
@@ -452,6 +504,11 @@ let CalciteInput = class {
452
504
  ? slottedActionEl.setAttribute("disabled", "")
453
505
  : slottedActionEl.removeAttribute("disabled");
454
506
  }
507
+ warnAboutInvalidNumberValue(value) {
508
+ if (this.type === "number" && value && !number.isValidNumber(value)) {
509
+ console.warn(`The specified value "${value}" cannot be parsed, or is out of range.`);
510
+ }
511
+ }
455
512
  // --------------------------------------------------------------------------
456
513
  //
457
514
  // Render Methods
@@ -8,10 +8,10 @@ Object.defineProperty(exports, '__esModule', { value: true });
8
8
 
9
9
  const index = require('./index-6b5d2de5.js');
10
10
  const dom = require('./dom-0de9fb18.js');
11
- const conditionalSlot = require('./conditionalSlot-e874fbb0.js');
11
+ const conditionalSlot = require('./conditionalSlot-92505fba.js');
12
12
  const CalciteHeading = require('./CalciteHeading-112c19f9.js');
13
13
  require('./guid-b270f0db.js');
14
- require('./observers-41837607.js');
14
+ require('./observers-79bfb8bc.js');
15
15
 
16
16
  const CSS$2 = {
17
17
  container: "container"
@@ -8,8 +8,8 @@ Object.defineProperty(exports, '__esModule', { value: true });
8
8
 
9
9
  const index = require('./index-6b5d2de5.js');
10
10
  const dom = require('./dom-0de9fb18.js');
11
- const observers = require('./observers-41837607.js');
12
- const conditionalSlot = require('./conditionalSlot-e874fbb0.js');
11
+ const observers = require('./observers-79bfb8bc.js');
12
+ const conditionalSlot = require('./conditionalSlot-92505fba.js');
13
13
  require('./guid-b270f0db.js');
14
14
 
15
15
  /**
@@ -9,9 +9,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
9
9
  const index = require('./index-6b5d2de5.js');
10
10
  const interfaces = require('./interfaces-54651c1c.js');
11
11
  const dom = require('./dom-0de9fb18.js');
12
- const conditionalSlot = require('./conditionalSlot-e874fbb0.js');
12
+ const conditionalSlot = require('./conditionalSlot-92505fba.js');
13
13
  require('./guid-b270f0db.js');
14
- require('./observers-41837607.js');
14
+ require('./observers-79bfb8bc.js');
15
15
 
16
16
  const TEXT = {
17
17
  close: "Close"
@@ -7,7 +7,7 @@
7
7
  Object.defineProperty(exports, '__esModule', { value: true });
8
8
 
9
9
  const index = require('./index-6b5d2de5.js');
10
- const observers = require('./observers-41837607.js');
10
+ const observers = require('./observers-79bfb8bc.js');
11
11
  const dom = require('./dom-0de9fb18.js');
12
12
  const label = require('./label-1bca211b.js');
13
13
  const form = require('./form-4b7c317e.js');
@@ -10,9 +10,9 @@ const index = require('./index-6b5d2de5.js');
10
10
  const dom = require('./dom-0de9fb18.js');
11
11
  const CalciteHeading = require('./CalciteHeading-112c19f9.js');
12
12
  const resources = require('./resources-ffe563a2.js');
13
- const conditionalSlot = require('./conditionalSlot-e874fbb0.js');
13
+ const conditionalSlot = require('./conditionalSlot-92505fba.js');
14
14
  require('./guid-b270f0db.js');
15
- require('./observers-41837607.js');
15
+ require('./observers-79bfb8bc.js');
16
16
 
17
17
  const CSS = {
18
18
  backButton: "back-button",
@@ -8,10 +8,10 @@ Object.defineProperty(exports, '__esModule', { value: true });
8
8
 
9
9
  const index = require('./index-6b5d2de5.js');
10
10
  const resources = require('./resources-405cc2c4.js');
11
- const observers = require('./observers-41837607.js');
11
+ const observers = require('./observers-79bfb8bc.js');
12
12
  const dom = require('./dom-0de9fb18.js');
13
13
  const CalciteHeading = require('./CalciteHeading-112c19f9.js');
14
- const conditionalSlot = require('./conditionalSlot-e874fbb0.js');
14
+ const conditionalSlot = require('./conditionalSlot-92505fba.js');
15
15
  require('./array-a5dedf5a.js');
16
16
  require('./debounce-95979061.js');
17
17
  require('./guid-b270f0db.js');
@@ -8,10 +8,10 @@ Object.defineProperty(exports, '__esModule', { value: true });
8
8
 
9
9
  const index = require('./index-6b5d2de5.js');
10
10
  const dom = require('./dom-0de9fb18.js');
11
- const conditionalSlot = require('./conditionalSlot-e874fbb0.js');
11
+ const conditionalSlot = require('./conditionalSlot-92505fba.js');
12
12
  const math = require('./math-145c80e2.js');
13
13
  require('./guid-b270f0db.js');
14
- require('./observers-41837607.js');
14
+ require('./observers-79bfb8bc.js');
15
15
 
16
16
  const CSS$2 = {
17
17
  main: "main",
@@ -8,7 +8,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
8
8
 
9
9
  const index = require('./index-6b5d2de5.js');
10
10
  const sortable_esm = require('./sortable.esm-d7a4560b.js');
11
- const observers = require('./observers-41837607.js');
11
+ const observers = require('./observers-79bfb8bc.js');
12
12
 
13
13
  const CSS = {
14
14
  sortItem: "sort-item",
@@ -9,7 +9,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
9
9
  const index = require('./index-6b5d2de5.js');
10
10
  const guid = require('./guid-b270f0db.js');
11
11
  const dom = require('./dom-0de9fb18.js');
12
- const observers = require('./observers-41837607.js');
12
+ const observers = require('./observers-79bfb8bc.js');
13
13
 
14
14
  const calciteTabCss = "@-webkit-keyframes in{0%{opacity:0}100%{opacity:1}}@keyframes in{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes in-down{0%{opacity:0;-webkit-transform:translate3D(0, -5px, 0);transform:translate3D(0, -5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@keyframes in-down{0%{opacity:0;-webkit-transform:translate3D(0, -5px, 0);transform:translate3D(0, -5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@-webkit-keyframes in-up{0%{opacity:0;-webkit-transform:translate3D(0, 5px, 0);transform:translate3D(0, 5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@keyframes in-up{0%{opacity:0;-webkit-transform:translate3D(0, 5px, 0);transform:translate3D(0, 5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@-webkit-keyframes in-scale{0%{opacity:0;-webkit-transform:scale3D(0.95, 0.95, 1);transform:scale3D(0.95, 0.95, 1)}100%{opacity:1;-webkit-transform:scale3D(1, 1, 1);transform:scale3D(1, 1, 1)}}@keyframes in-scale{0%{opacity:0;-webkit-transform:scale3D(0.95, 0.95, 1);transform:scale3D(0.95, 0.95, 1)}100%{opacity:1;-webkit-transform:scale3D(1, 1, 1);transform:scale3D(1, 1, 1)}}:root{--calcite-animation-timing:calc(150ms * var(--calcite-internal-duration-factor));--calcite-internal-duration-factor:var(--calcite-duration-factor, 1);--calcite-internal-animation-timing-fast:calc(100ms * var(--calcite-internal-duration-factor));--calcite-internal-animation-timing-medium:calc(200ms * var(--calcite-internal-duration-factor));--calcite-internal-animation-timing-slow:calc(300ms * var(--calcite-internal-duration-factor))}.calcite-animate{opacity:0;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:var(--calcite-animation-timing);animation-duration:var(--calcite-animation-timing)}.calcite-animate__in{-webkit-animation-name:in;animation-name:in}.calcite-animate__in-down{-webkit-animation-name:in-down;animation-name:in-down}.calcite-animate__in-up{-webkit-animation-name:in-up;animation-name:in-up}.calcite-animate__in-scale{-webkit-animation-name:in-scale;animation-name:in-scale}:root{--calcite-popper-transition:var(--calcite-animation-timing)}:host([hidden]){display:none}:host([active]) section{display:block}:host{display:none;height:100%;width:100%}:host([active]){display:block;height:100%;width:100%;overflow:auto}section{display:none;height:100%;width:100%}:host([scale=s]){padding-top:0.25rem;padding-bottom:0.25rem;font-size:var(--calcite-font-size--2);line-height:1rem}:host([scale=m]){padding-top:0.5rem;padding-bottom:0.5rem;font-size:var(--calcite-font-size--1);line-height:1rem}:host([scale=l]){padding-top:0.75rem;padding-bottom:0.75rem;font-size:var(--calcite-font-size-0);line-height:1.25rem}";
15
15
 
@@ -8,9 +8,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
8
8
 
9
9
  const index = require('./index-6b5d2de5.js');
10
10
  const dom = require('./dom-0de9fb18.js');
11
- const conditionalSlot = require('./conditionalSlot-e874fbb0.js');
11
+ const conditionalSlot = require('./conditionalSlot-92505fba.js');
12
12
  require('./guid-b270f0db.js');
13
- require('./observers-41837607.js');
13
+ require('./observers-79bfb8bc.js');
14
14
 
15
15
  const SLOTS = {
16
16
  contentStart: "content-start",
@@ -9,8 +9,8 @@ Object.defineProperty(exports, '__esModule', { value: true });
9
9
  const index = require('./index-6b5d2de5.js');
10
10
  const dom = require('./dom-0de9fb18.js');
11
11
  const CalciteHeading = require('./CalciteHeading-112c19f9.js');
12
- const conditionalSlot = require('./conditionalSlot-e874fbb0.js');
13
- const observers = require('./observers-41837607.js');
12
+ const conditionalSlot = require('./conditionalSlot-92505fba.js');
13
+ const observers = require('./observers-79bfb8bc.js');
14
14
  require('./guid-b270f0db.js');
15
15
 
16
16
  const CSS$1 = {
@@ -8,9 +8,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
8
8
 
9
9
  const index = require('./index-6b5d2de5.js');
10
10
  const dom = require('./dom-0de9fb18.js');
11
- const conditionalSlot = require('./conditionalSlot-e874fbb0.js');
11
+ const conditionalSlot = require('./conditionalSlot-92505fba.js');
12
12
  require('./guid-b270f0db.js');
13
- require('./observers-41837607.js');
13
+ require('./observers-79bfb8bc.js');
14
14
 
15
15
  var TreeSelectionMode;
16
16
  (function (TreeSelectionMode) {
@@ -10,10 +10,10 @@ const index = require('./index-6b5d2de5.js');
10
10
  const sortable_esm = require('./sortable.esm-d7a4560b.js');
11
11
  const resources = require('./resources-405cc2c4.js');
12
12
  const array = require('./array-a5dedf5a.js');
13
- const observers = require('./observers-41837607.js');
13
+ const observers = require('./observers-79bfb8bc.js');
14
14
  const guid = require('./guid-b270f0db.js');
15
15
  const dom = require('./dom-0de9fb18.js');
16
- const conditionalSlot = require('./conditionalSlot-e874fbb0.js');
16
+ const conditionalSlot = require('./conditionalSlot-92505fba.js');
17
17
  require('./debounce-95979061.js');
18
18
 
19
19
  const CSS = {
@@ -5,7 +5,7 @@
5
5
  'use strict';
6
6
 
7
7
  const index = require('./index-6b5d2de5.js');
8
- const observers = require('./observers-41837607.js');
8
+ const observers = require('./observers-79bfb8bc.js');
9
9
 
10
10
  const observed = new Set();
11
11
  let mutationObserver;
@@ -16,7 +16,11 @@ function createObserver(type, callback, options) {
16
16
  return new Observer(callback, options) ;
17
17
  }
18
18
  function getObserver(type) {
19
- return (type === "intersection" ? IntersectionObserver : type === "mutation" ? MutationObserver : ResizeObserver);
19
+ return (type === "intersection"
20
+ ? window.IntersectionObserver
21
+ : type === "mutation"
22
+ ? window.MutationObserver
23
+ : window.ResizeObserver);
20
24
  }
21
25
 
22
26
  exports.createObserver = createObserver;
@@ -118,6 +118,7 @@
118
118
  transition: outline-offset 100ms ease-in-out, outline-color 100ms ease-in-out;
119
119
  font-family: inherit;
120
120
  text-align: unset;
121
+ flex: 1 0 auto;
121
122
  }
122
123
  .button:hover {
123
124
  background-color: var(--calcite-ui-foreground-2);
@@ -74,6 +74,8 @@ export class CalciteInput {
74
74
  this.value = "";
75
75
  /** keep track of the rendered child type */
76
76
  this.childElType = "input";
77
+ /** whether the value of the input was changed as a result of user typing or not */
78
+ this.internalValueChange = false;
77
79
  //--------------------------------------------------------------------------
78
80
  //
79
81
  // Private Methods
@@ -93,11 +95,15 @@ export class CalciteInput {
93
95
  }
94
96
  };
95
97
  this.clearInputValue = (nativeEvent) => {
96
- this.setValue("", nativeEvent, true);
98
+ this.setValue({
99
+ committing: true,
100
+ nativeEvent,
101
+ value: ""
102
+ });
97
103
  };
98
104
  this.inputBlurHandler = () => {
99
105
  if (this.type === "number") {
100
- this.setLocalizedValue(this.value);
106
+ this.setValue({ value: this.value });
101
107
  }
102
108
  this.calciteInputBlur.emit({
103
109
  element: this.childEl,
@@ -121,7 +127,10 @@ export class CalciteInput {
121
127
  if (this.disabled || this.readOnly) {
122
128
  return;
123
129
  }
124
- this.setValue(nativeEvent.target.value, nativeEvent);
130
+ this.setValue({
131
+ nativeEvent,
132
+ value: nativeEvent.target.value
133
+ });
125
134
  };
126
135
  this.inputKeyDownHandler = (event) => {
127
136
  if (this.disabled || this.readOnly) {
@@ -141,11 +150,17 @@ export class CalciteInput {
141
150
  if (!isValidNumber(delocalizedValue)) {
142
151
  nativeEvent.preventDefault();
143
152
  }
144
- this.setValue(parseNumberString(delocalizedValue), nativeEvent);
153
+ this.setValue({
154
+ nativeEvent,
155
+ value: parseNumberString(delocalizedValue)
156
+ });
145
157
  this.childNumberEl.value = this.localizedValue;
146
158
  }
147
159
  else {
148
- this.setValue(delocalizeNumberString(value, this.locale), nativeEvent);
160
+ this.setValue({
161
+ nativeEvent,
162
+ value: delocalizeNumberString(value, this.locale)
163
+ });
149
164
  }
150
165
  };
151
166
  this.inputNumberKeyDownHandler = (event) => {
@@ -241,18 +256,44 @@ export class CalciteInput {
241
256
  this.setChildNumberElRef = (el) => {
242
257
  this.childNumberEl = el;
243
258
  };
244
- this.setLocalizedValue = (value) => {
245
- this.localizedValue = localizeNumberString(value, this.locale, this.groupSeparator);
259
+ this.setInputValue = (newInputValue) => {
260
+ if (this.type === "text" && !this.childEl) {
261
+ return;
262
+ }
263
+ if (this.type === "number" && !this.childNumberEl) {
264
+ return;
265
+ }
266
+ this[`child${this.type === "number" ? "Number" : ""}El`].value = newInputValue;
267
+ };
268
+ this.setPreviousValue = (newPreviousValue) => {
269
+ this.previousValue =
270
+ this.type === "number"
271
+ ? isValidNumber(newPreviousValue)
272
+ ? newPreviousValue
273
+ : ""
274
+ : newPreviousValue;
246
275
  };
247
- this.setValue = (value, nativeEvent, committing = false) => {
248
- const previousValue = this.value;
276
+ this.setValue = ({ committing = false, nativeEvent, origin = "internal", value }) => {
277
+ const previousLocalizedValue = this.type === "number"
278
+ ? localizeNumberString(this.previousValue, this.locale, this.groupSeparator)
279
+ : "";
280
+ const sanitizedValue = this.type === "number" ? sanitizeNumberString(value) : value;
281
+ const newValue = this.type === "number" && value && !sanitizedValue
282
+ ? isValidNumber(this.previousValue)
283
+ ? this.previousValue
284
+ : ""
285
+ : sanitizedValue;
286
+ const newLocalizedValue = this.type === "number"
287
+ ? localizeNumberString(newValue, this.locale, this.groupSeparator)
288
+ : "";
289
+ this.internalValueChange = origin === "internal";
290
+ this.setPreviousValue(this.value);
291
+ this.value = newValue;
249
292
  if (this.type === "number") {
250
- const sanitizedValue = sanitizeNumberString(value);
251
- this.value = sanitizedValue;
252
- this.setLocalizedValue(sanitizedValue);
293
+ this.localizedValue = newLocalizedValue;
253
294
  }
254
- else {
255
- this.value = value;
295
+ if (origin === "external") {
296
+ this.setInputValue(this.type === "number" ? newLocalizedValue : newValue);
256
297
  }
257
298
  if (nativeEvent) {
258
299
  const calciteInputInputEvent = this.calciteInputInput.emit({
@@ -261,8 +302,8 @@ export class CalciteInput {
261
302
  value: this.value
262
303
  });
263
304
  if (calciteInputInputEvent.defaultPrevented) {
264
- this.value = previousValue;
265
- this.setLocalizedValue(previousValue);
305
+ this.value = this.previousValue;
306
+ this.localizedValue = previousLocalizedValue;
266
307
  }
267
308
  else if (committing) {
268
309
  this.calciteInputChange.emit();
@@ -287,17 +328,20 @@ export class CalciteInput {
287
328
  this.minString = ((_a = this.min) === null || _a === void 0 ? void 0 : _a.toString()) || null;
288
329
  }
289
330
  valueWatcher(newValue) {
290
- if (newValue == null) {
291
- this.value = "";
292
- return;
293
- }
294
- if (this.type === "number" &&
295
- this.localizedValue !== localizeNumberString(newValue, this.locale)) {
296
- this.setLocalizedValue(newValue);
297
- }
298
- else if (this.childEl && this.childEl.value !== newValue) {
299
- this.childEl.value = newValue;
331
+ if (!this.internalValueChange) {
332
+ this.setValue({
333
+ origin: "external",
334
+ value: newValue == null
335
+ ? ""
336
+ : this.type === "number"
337
+ ? isValidNumber(newValue)
338
+ ? newValue
339
+ : this.previousValue || ""
340
+ : newValue
341
+ });
342
+ this.warnAboutInvalidNumberValue(newValue);
300
343
  }
344
+ this.internalValueChange = false;
301
345
  }
302
346
  updateRequestedIcon() {
303
347
  this.requestedIcon = setRequestedIcon(INPUT_TYPE_ICONS, this.icon, this.type);
@@ -320,13 +364,13 @@ export class CalciteInput {
320
364
  if (this.inlineEditableEl) {
321
365
  this.editingEnabled = this.inlineEditableEl.editingEnabled || false;
322
366
  }
323
- if (this.type === "number" && this.value) {
324
- if (isValidNumber(this.value)) {
325
- this.localizedValue = localizeNumberString(this.value, this.locale, this.groupSeparator);
326
- }
327
- else {
328
- this.value = "";
329
- }
367
+ this.setPreviousValue(this.value);
368
+ if (this.type === "number") {
369
+ this.warnAboutInvalidNumberValue(this.value);
370
+ this.setValue({
371
+ origin: "loading",
372
+ value: isValidNumber(this.value) ? this.value : ""
373
+ });
330
374
  }
331
375
  connectLabel(this);
332
376
  connectForm(this);
@@ -348,7 +392,9 @@ export class CalciteInput {
348
392
  }
349
393
  componentShouldUpdate(newValue, oldValue, property) {
350
394
  if (this.type === "number" && property === "value" && newValue && !isValidNumber(newValue)) {
351
- this.value = oldValue;
395
+ this.setValue({
396
+ value: oldValue
397
+ });
352
398
  return false;
353
399
  }
354
400
  return true;
@@ -383,10 +429,16 @@ export class CalciteInput {
383
429
  : nudgedValue;
384
430
  const inputValPlaces = decimalPlaces(inputVal);
385
431
  const inputStepPlaces = decimalPlaces(inputStep);
386
- this.setValue(finalValue.toFixed(Math.max(inputValPlaces, inputStepPlaces)), nativeEvent, true);
432
+ this.setValue({
433
+ committing: true,
434
+ nativeEvent,
435
+ value: finalValue.toFixed(Math.max(inputValPlaces, inputStepPlaces))
436
+ });
387
437
  }
388
438
  onFormReset() {
389
- this.setValue(this.defaultValue);
439
+ this.setValue({
440
+ value: this.defaultValue
441
+ });
390
442
  }
391
443
  syncHiddenFormInput(input) {
392
444
  var _a, _b, _c, _d;
@@ -417,6 +469,11 @@ export class CalciteInput {
417
469
  ? slottedActionEl.setAttribute("disabled", "")
418
470
  : slottedActionEl.removeAttribute("disabled");
419
471
  }
472
+ warnAboutInvalidNumberValue(value) {
473
+ if (this.type === "number" && value && !isValidNumber(value)) {
474
+ console.warn(`The specified value "${value}" cannot be parsed, or is out of range.`);
475
+ }
476
+ }
420
477
  // --------------------------------------------------------------------------
421
478
  //
422
479
  // Render Methods
@@ -183,6 +183,9 @@
183
183
  display: inline-block;
184
184
  width: 1em;
185
185
  }
186
+ .thumb .handle__label.hyphen--wrap {
187
+ display: flex;
188
+ }
186
189
  .thumb .handle{
187
190
  box-sizing: border-box;
188
191
  border-radius: 9999px;