@esri/solutions-components 0.2.6 → 0.2.7

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 (314) hide show
  1. package/dist/cjs/deduct-calculator.cjs.entry.js +1 -1
  2. package/dist/cjs/pci-calculator.cjs.entry.js +1 -1
  3. package/dist/cjs/{pciUtils-6a806ba4.js → pciUtils-423cfc68.js} +25 -7
  4. package/dist/collection/demos/deduct-calculator.html +2 -5
  5. package/dist/collection/demos/new-public-notification.html +6 -4
  6. package/dist/collection/utils/pciUtils.js +25 -7
  7. package/dist/collection/utils/pciUtils.ts +30 -7
  8. package/dist/components/ExpandToggle.js +110 -0
  9. package/dist/components/Heading.js +22 -0
  10. package/dist/components/_commonjsHelpers.js +22 -0
  11. package/dist/components/action-bar.js +276 -0
  12. package/dist/components/action-group.js +149 -0
  13. package/dist/components/action-menu.js +356 -0
  14. package/dist/components/action.js +214 -0
  15. package/dist/components/add-record-modal.d.ts +11 -0
  16. package/dist/components/add-record-modal.js +171 -0
  17. package/dist/components/array.js +15 -0
  18. package/dist/components/block.js +272 -0
  19. package/dist/components/buffer-tools.d.ts +11 -0
  20. package/dist/components/buffer-tools.js +11 -0
  21. package/dist/components/buffer-tools2.js +262 -0
  22. package/dist/components/button.js +263 -0
  23. package/dist/components/calcite-accordion-item.js +244 -0
  24. package/dist/components/calcite-accordion.js +180 -0
  25. package/dist/components/calcite-action-bar.js +11 -0
  26. package/dist/components/calcite-action-group.js +11 -0
  27. package/dist/components/calcite-action-menu.js +11 -0
  28. package/dist/components/calcite-action-pad.js +197 -0
  29. package/dist/components/calcite-action.js +11 -0
  30. package/dist/components/calcite-alert.js +297 -0
  31. package/dist/components/calcite-avatar.js +182 -0
  32. package/dist/components/calcite-block-section.js +155 -0
  33. package/dist/components/calcite-block.js +11 -0
  34. package/dist/components/calcite-button.js +11 -0
  35. package/dist/components/calcite-card.js +187 -0
  36. package/dist/components/calcite-checkbox.js +11 -0
  37. package/dist/components/calcite-chip.js +11 -0
  38. package/dist/components/calcite-color-picker-hex-input.js +11 -0
  39. package/dist/components/calcite-color-picker-swatch.js +11 -0
  40. package/dist/components/calcite-color-picker.js +1036 -0
  41. package/dist/components/calcite-combobox-item-group.js +75 -0
  42. package/dist/components/calcite-combobox-item.js +11 -0
  43. package/dist/components/calcite-combobox.js +11 -0
  44. package/dist/components/calcite-date-picker-day.js +11 -0
  45. package/dist/components/calcite-date-picker-month-header.js +11 -0
  46. package/dist/components/calcite-date-picker-month.js +11 -0
  47. package/dist/components/calcite-date-picker.js +11 -0
  48. package/dist/components/calcite-dropdown-group.js +11 -0
  49. package/dist/components/calcite-dropdown-item.js +11 -0
  50. package/dist/components/calcite-dropdown.js +11 -0
  51. package/dist/components/calcite-fab.js +144 -0
  52. package/dist/components/calcite-filter.js +195 -0
  53. package/dist/components/calcite-flow-item.js +243 -0
  54. package/dist/components/calcite-flow.js +147 -0
  55. package/dist/components/calcite-graph.js +11 -0
  56. package/dist/components/calcite-handle.js +11 -0
  57. package/dist/components/calcite-icon.js +11 -0
  58. package/dist/components/calcite-inline-editable.js +294 -0
  59. package/dist/components/calcite-input-date-picker.js +713 -0
  60. package/dist/components/calcite-input-message.js +11 -0
  61. package/dist/components/calcite-input-number.js +637 -0
  62. package/dist/components/calcite-input-text.js +400 -0
  63. package/dist/components/calcite-input-time-picker.js +434 -0
  64. package/dist/components/calcite-input.js +11 -0
  65. package/dist/components/calcite-label.js +11 -0
  66. package/dist/components/calcite-link.js +11 -0
  67. package/dist/components/calcite-list-item-group.js +65 -0
  68. package/dist/components/calcite-list-item.js +11 -0
  69. package/dist/components/calcite-list.js +11 -0
  70. package/dist/components/calcite-loader.js +11 -0
  71. package/dist/components/calcite-modal.js +11 -0
  72. package/dist/components/calcite-notice.js +11 -0
  73. package/dist/components/calcite-option-group.js +64 -0
  74. package/dist/components/calcite-option.js +11 -0
  75. package/dist/components/calcite-pagination.js +258 -0
  76. package/dist/components/calcite-panel.js +11 -0
  77. package/dist/components/calcite-pick-list-group.js +74 -0
  78. package/dist/components/calcite-pick-list-item.js +11 -0
  79. package/dist/components/calcite-pick-list.js +11 -0
  80. package/dist/components/calcite-popover-manager.js +94 -0
  81. package/dist/components/calcite-popover.js +11 -0
  82. package/dist/components/calcite-progress.js +11 -0
  83. package/dist/components/calcite-radio-button-group.js +132 -0
  84. package/dist/components/calcite-radio-button.js +310 -0
  85. package/dist/components/calcite-radio-group-item.js +11 -0
  86. package/dist/components/calcite-radio-group.js +11 -0
  87. package/dist/components/calcite-rating.js +201 -0
  88. package/dist/components/calcite-scrim.js +11 -0
  89. package/dist/components/calcite-select.js +11 -0
  90. package/dist/components/calcite-shell-center-row.js +100 -0
  91. package/dist/components/calcite-shell-panel.js +11 -0
  92. package/dist/components/calcite-shell.js +11 -0
  93. package/dist/components/calcite-slider.js +11 -0
  94. package/dist/components/calcite-sortable-list.js +202 -0
  95. package/dist/components/calcite-split-button.js +11 -0
  96. package/dist/components/calcite-stepper-item.js +271 -0
  97. package/dist/components/calcite-stepper.js +256 -0
  98. package/dist/components/calcite-switch.js +11 -0
  99. package/dist/components/calcite-tab-nav.js +11 -0
  100. package/dist/components/calcite-tab-title.js +11 -0
  101. package/dist/components/calcite-tab.js +11 -0
  102. package/dist/components/calcite-tabs.js +11 -0
  103. package/dist/components/calcite-tile-select-group.js +65 -0
  104. package/dist/components/calcite-tile-select.js +266 -0
  105. package/dist/components/calcite-tile.js +11 -0
  106. package/dist/components/calcite-time-picker.js +11 -0
  107. package/dist/components/calcite-tip-group.js +41 -0
  108. package/dist/components/calcite-tip-manager.js +223 -0
  109. package/dist/components/calcite-tip.js +162 -0
  110. package/dist/components/calcite-tooltip-manager.js +57 -0
  111. package/dist/components/calcite-tooltip.js +11 -0
  112. package/dist/components/calcite-tree-item.js +11 -0
  113. package/dist/components/calcite-tree.js +11 -0
  114. package/dist/components/calcite-value-list-item.js +11 -0
  115. package/dist/components/calcite-value-list.js +11 -0
  116. package/dist/components/card-manager.d.ts +11 -0
  117. package/dist/components/card-manager.js +143 -0
  118. package/dist/components/check-list.d.ts +11 -0
  119. package/dist/components/check-list.js +11 -0
  120. package/dist/components/check-list2.js +131 -0
  121. package/dist/components/checkbox.js +165 -0
  122. package/dist/components/chip.js +170 -0
  123. package/dist/components/color-picker-hex-input.js +363 -0
  124. package/dist/components/color-picker-swatch.js +2034 -0
  125. package/dist/components/combobox-item.js +182 -0
  126. package/dist/components/combobox.js +912 -0
  127. package/dist/components/comment-card.d.ts +11 -0
  128. package/dist/components/comment-card.js +90 -0
  129. package/dist/components/conditionalSlot.js +50 -0
  130. package/dist/components/config-buffer-tools.d.ts +11 -0
  131. package/dist/components/config-buffer-tools.js +187 -0
  132. package/dist/components/config-draw-tools.d.ts +11 -0
  133. package/dist/components/config-draw-tools.js +121 -0
  134. package/dist/components/config-layer-picker.d.ts +11 -0
  135. package/dist/components/config-layer-picker.js +163 -0
  136. package/dist/components/config-pdf-download.d.ts +11 -0
  137. package/dist/components/config-pdf-download.js +154 -0
  138. package/dist/components/crowdsource-manager.d.ts +11 -0
  139. package/dist/components/crowdsource-manager.js +90 -0
  140. package/dist/components/crowdsource-reporter.d.ts +11 -0
  141. package/dist/components/crowdsource-reporter.js +90 -0
  142. package/dist/components/csvUtils.js +74 -0
  143. package/dist/components/date-picker-day.js +111 -0
  144. package/dist/components/date-picker-month-header.js +224 -0
  145. package/dist/components/date-picker-month.js +344 -0
  146. package/dist/components/date-picker.js +575 -0
  147. package/dist/components/date.js +180 -0
  148. package/dist/components/debounce.js +487 -0
  149. package/dist/components/deduct-calculator.d.ts +11 -0
  150. package/dist/components/deduct-calculator.js +11 -0
  151. package/dist/components/deduct-calculator2.js +1002 -0
  152. package/dist/components/dom.js +231 -0
  153. package/dist/components/dropdown-group.js +96 -0
  154. package/dist/components/dropdown-item.js +232 -0
  155. package/dist/components/dropdown.js +505 -0
  156. package/dist/components/edit-record-modal.d.ts +11 -0
  157. package/dist/components/edit-record-modal.js +11 -0
  158. package/dist/components/edit-record-modal2.js +161 -0
  159. package/dist/components/filter.js +763 -0
  160. package/dist/components/floating-ui.js +1768 -0
  161. package/dist/components/form.js +228 -0
  162. package/dist/components/graph.js +254 -0
  163. package/dist/components/guid.js +24 -0
  164. package/dist/components/handle.js +119 -0
  165. package/dist/components/icon.js +202 -0
  166. package/dist/components/index.d.ts +61 -0
  167. package/dist/components/index.js +196 -0
  168. package/dist/components/index2.js +199 -0
  169. package/dist/components/info-card.d.ts +11 -0
  170. package/dist/components/info-card.js +11 -0
  171. package/dist/components/info-card2.js +97 -0
  172. package/dist/components/input-message.js +101 -0
  173. package/dist/components/input.js +740 -0
  174. package/dist/components/interactive.js +51 -0
  175. package/dist/components/interfaces.js +19 -0
  176. package/dist/components/interfaces2.js +21 -0
  177. package/dist/components/interfaces3.js +80 -0
  178. package/dist/components/json-editor.d.ts +11 -0
  179. package/dist/components/json-editor.js +11 -0
  180. package/dist/components/json-editor2.js +441 -0
  181. package/dist/components/key.js +16 -0
  182. package/dist/components/label.js +106 -0
  183. package/dist/components/label2.js +131 -0
  184. package/dist/components/labelFormats.js +210 -0
  185. package/dist/components/layer-table.d.ts +11 -0
  186. package/dist/components/layer-table.js +453 -0
  187. package/dist/components/link.js +123 -0
  188. package/dist/components/list-item.d.ts +11 -0
  189. package/dist/components/list-item.js +90 -0
  190. package/dist/components/list-item2.js +149 -0
  191. package/dist/components/list.js +83 -0
  192. package/dist/components/loadModules.js +28 -0
  193. package/dist/components/loader.js +116 -0
  194. package/dist/components/locale.js +412 -0
  195. package/dist/components/locale2.js +413 -0
  196. package/dist/components/map-card.d.ts +11 -0
  197. package/dist/components/map-card.js +354 -0
  198. package/dist/components/map-draw-tools.d.ts +11 -0
  199. package/dist/components/map-draw-tools.js +11 -0
  200. package/dist/components/map-draw-tools2.js +228 -0
  201. package/dist/components/map-layer-picker.d.ts +11 -0
  202. package/dist/components/map-layer-picker.js +11 -0
  203. package/dist/components/map-layer-picker2.js +188 -0
  204. package/dist/components/map-search.d.ts +11 -0
  205. package/dist/components/map-search.js +155 -0
  206. package/dist/components/map-select-tools.d.ts +11 -0
  207. package/dist/components/map-select-tools.js +11 -0
  208. package/dist/components/map-select-tools2.js +588 -0
  209. package/dist/components/mapViewUtils.js +129 -0
  210. package/dist/components/math.js +24 -0
  211. package/dist/components/media-card.d.ts +11 -0
  212. package/dist/components/media-card.js +11 -0
  213. package/dist/components/media-card2.js +177 -0
  214. package/dist/components/modal.js +495 -0
  215. package/dist/components/nonChromiumPlatformUtils.js +503 -0
  216. package/dist/components/notice.js +192 -0
  217. package/dist/components/observers.js +56 -0
  218. package/dist/components/openCloseComponent.js +56 -0
  219. package/dist/components/option.js +109 -0
  220. package/dist/components/panel.js +459 -0
  221. package/dist/components/pci-calculator.d.ts +11 -0
  222. package/dist/components/pci-calculator.js +193 -0
  223. package/dist/components/pdf-download.d.ts +11 -0
  224. package/dist/components/pdf-download.js +11 -0
  225. package/dist/components/pdf-download2.js +189 -0
  226. package/dist/components/pick-list-item.js +255 -0
  227. package/dist/components/pick-list.js +170 -0
  228. package/dist/components/popover.js +500 -0
  229. package/dist/components/progress.js +60 -0
  230. package/dist/components/public-notification.d.ts +11 -0
  231. package/dist/components/public-notification.js +825 -0
  232. package/dist/components/publicNotificationStore.js +38 -0
  233. package/dist/components/queryUtils.js +187 -0
  234. package/dist/components/radio-group-item.js +101 -0
  235. package/dist/components/radio-group.js +235 -0
  236. package/dist/components/refine-selection-tools.d.ts +11 -0
  237. package/dist/components/refine-selection-tools.js +11 -0
  238. package/dist/components/refine-selection-tools2.js +492 -0
  239. package/dist/components/refine-selection.d.ts +11 -0
  240. package/dist/components/refine-selection.js +11 -0
  241. package/dist/components/refine-selection2.js +376 -0
  242. package/dist/components/resources.js +24 -0
  243. package/dist/components/resources2.js +21 -0
  244. package/dist/components/resources3.js +38 -0
  245. package/dist/components/scrim.js +83 -0
  246. package/dist/components/select.js +259 -0
  247. package/dist/components/shared-list-render.js +319 -0
  248. package/dist/components/shell-panel.js +281 -0
  249. package/dist/components/shell.js +121 -0
  250. package/dist/components/slider.js +896 -0
  251. package/dist/components/solution-configuration.d.ts +11 -0
  252. package/dist/components/solution-configuration.js +2233 -0
  253. package/dist/components/solution-contents.d.ts +11 -0
  254. package/dist/components/solution-contents.js +11 -0
  255. package/dist/components/solution-contents2.js +128 -0
  256. package/dist/components/solution-item-details.d.ts +11 -0
  257. package/dist/components/solution-item-details.js +11 -0
  258. package/dist/components/solution-item-details2.js +234 -0
  259. package/dist/components/solution-item-icon.d.ts +11 -0
  260. package/dist/components/solution-item-icon.js +11 -0
  261. package/dist/components/solution-item-icon2.js +342 -0
  262. package/dist/components/solution-item-sharing.d.ts +11 -0
  263. package/dist/components/solution-item-sharing.js +11 -0
  264. package/dist/components/solution-item-sharing2.js +167 -0
  265. package/dist/components/solution-item.d.ts +11 -0
  266. package/dist/components/solution-item.js +11 -0
  267. package/dist/components/solution-item2.js +315 -0
  268. package/dist/components/solution-organization-variables.d.ts +11 -0
  269. package/dist/components/solution-organization-variables.js +11 -0
  270. package/dist/components/solution-organization-variables2.js +132 -0
  271. package/dist/components/solution-resource-item.d.ts +11 -0
  272. package/dist/components/solution-resource-item.js +11 -0
  273. package/dist/components/solution-resource-item2.js +356 -0
  274. package/dist/components/solution-spatial-ref.d.ts +11 -0
  275. package/dist/components/solution-spatial-ref.js +11 -0
  276. package/dist/components/solution-spatial-ref2.js +21446 -0
  277. package/dist/components/solution-store.js +4092 -0
  278. package/dist/components/solution-template-data.d.ts +11 -0
  279. package/dist/components/solution-template-data.js +11 -0
  280. package/dist/components/solution-template-data2.js +233 -0
  281. package/dist/components/solution-variables.d.ts +11 -0
  282. package/dist/components/solution-variables.js +11 -0
  283. package/dist/components/solution-variables2.js +150 -0
  284. package/dist/components/sortable.esm.js +3026 -0
  285. package/dist/components/split-button.js +165 -0
  286. package/dist/components/store-manager.d.ts +11 -0
  287. package/dist/components/store-manager.js +83 -0
  288. package/dist/components/switch.js +139 -0
  289. package/dist/components/tab-nav.js +241 -0
  290. package/dist/components/tab-title.js +276 -0
  291. package/dist/components/tab.js +154 -0
  292. package/dist/components/tabs.js +188 -0
  293. package/dist/components/tile.js +129 -0
  294. package/dist/components/time-picker.js +943 -0
  295. package/dist/components/tooltip.js +399 -0
  296. package/dist/components/tree-item.js +294 -0
  297. package/dist/components/tree.js +327 -0
  298. package/dist/components/utils.js +119 -0
  299. package/dist/components/utils2.js +51 -0
  300. package/dist/components/value-list-item.js +204 -0
  301. package/dist/components/value-list.js +333 -0
  302. package/dist/esm/deduct-calculator.entry.js +1 -1
  303. package/dist/esm/pci-calculator.entry.js +1 -1
  304. package/dist/esm/{pciUtils-e3007a1c.js → pciUtils-ecda46e5.js} +25 -7
  305. package/dist/solutions-components/demos/deduct-calculator.html +2 -5
  306. package/dist/solutions-components/demos/new-public-notification.html +6 -4
  307. package/dist/solutions-components/{p-ff80ffbb.entry.js → p-0512635b.entry.js} +1 -1
  308. package/dist/solutions-components/{p-5ec407c2.entry.js → p-0c088725.entry.js} +1 -1
  309. package/dist/solutions-components/p-cc815aca.js +21 -0
  310. package/dist/solutions-components/solutions-components.esm.js +1 -1
  311. package/dist/solutions-components/utils/pciUtils.ts +30 -7
  312. package/dist/types/utils/pciUtils.d.ts +2 -1
  313. package/package.json +4 -3
  314. package/dist/solutions-components/p-647bbd18.js +0 -21
@@ -0,0 +1,413 @@
1
+ /*!
2
+ * Copyright 2022 Esri
3
+ * Licensed under the Apache License, Version 2.0
4
+ * http://www.apache.org/licenses/LICENSE-2.0
5
+ */
6
+ import { n as numberKeys } from './key.js';
7
+ import { c as createObserver } from './observers.js';
8
+ import { p as containsCrossShadowBoundary, h as closestElementCrossShadowBoundary } from './dom.js';
9
+
10
+ /*!
11
+ * All material copyright ESRI, All Rights Reserved, unless otherwise specified.
12
+ * See https://github.com/Esri/calcite-components/blob/master/LICENSE.md for details.
13
+ * v1.0.0-beta.97
14
+ */
15
+ // adopted from https://stackoverflow.com/a/66939244
16
+ class BigDecimal {
17
+ constructor(input) {
18
+ if (input instanceof BigDecimal) {
19
+ return input;
20
+ }
21
+ const [integers, decimals] = String(input).split(".").concat("");
22
+ this.value =
23
+ BigInt(integers + decimals.padEnd(BigDecimal.DECIMALS, "0").slice(0, BigDecimal.DECIMALS)) +
24
+ BigInt(BigDecimal.ROUNDED && decimals[BigDecimal.DECIMALS] >= "5");
25
+ this.isNegative = input.charAt(0) === "-";
26
+ }
27
+ static _divRound(dividend, divisor) {
28
+ return BigDecimal.fromBigInt(dividend / divisor + (BigDecimal.ROUNDED ? ((dividend * BigInt(2)) / divisor) % BigInt(2) : BigInt(0)));
29
+ }
30
+ static fromBigInt(bigint) {
31
+ return Object.assign(Object.create(BigDecimal.prototype), { value: bigint });
32
+ }
33
+ toString() {
34
+ const s = this.value
35
+ .toString()
36
+ .replace(new RegExp("-", "g"), "")
37
+ .padStart(BigDecimal.DECIMALS + 1, "0");
38
+ const i = s.slice(0, -BigDecimal.DECIMALS);
39
+ const d = s.slice(-BigDecimal.DECIMALS).replace(/\.?0+$/, "");
40
+ const value = i.concat(d.length ? "." + d : "");
41
+ return `${this.isNegative ? "-" : ""}${value}`;
42
+ }
43
+ formatToParts(formatter) {
44
+ const s = this.value
45
+ .toString()
46
+ .replace(new RegExp("-", "g"), "")
47
+ .padStart(BigDecimal.DECIMALS + 1, "0");
48
+ const i = s.slice(0, -BigDecimal.DECIMALS);
49
+ const d = s.slice(-BigDecimal.DECIMALS).replace(/\.?0+$/, "");
50
+ const parts = formatter.formatToParts(BigInt(i));
51
+ this.isNegative && parts.unshift({ type: "minusSign", value: numberStringFormatter.minusSign });
52
+ if (d.length) {
53
+ parts.push({ type: "decimal", value: numberStringFormatter.decimal });
54
+ d.split("").forEach((char) => parts.push({ type: "fraction", value: char }));
55
+ }
56
+ return parts;
57
+ }
58
+ format(formatter) {
59
+ const s = this.value
60
+ .toString()
61
+ .replace(new RegExp("-", "g"), "")
62
+ .padStart(BigDecimal.DECIMALS + 1, "0");
63
+ const i = s.slice(0, -BigDecimal.DECIMALS);
64
+ const d = s.slice(-BigDecimal.DECIMALS).replace(/\.?0+$/, "");
65
+ const iFormatted = `${this.isNegative ? numberStringFormatter.minusSign : ""}${formatter.format(BigInt(i))}`;
66
+ const dFormatted = d.length ? `${numberStringFormatter.decimal}${formatter.format(BigInt(d))}` : "";
67
+ return `${iFormatted}${dFormatted}`;
68
+ }
69
+ add(num) {
70
+ return BigDecimal.fromBigInt(this.value + new BigDecimal(num).value);
71
+ }
72
+ subtract(num) {
73
+ return BigDecimal.fromBigInt(this.value - new BigDecimal(num).value);
74
+ }
75
+ multiply(num) {
76
+ return BigDecimal._divRound(this.value * new BigDecimal(num).value, BigDecimal.SHIFT);
77
+ }
78
+ divide(num) {
79
+ return BigDecimal._divRound(this.value * BigDecimal.SHIFT, new BigDecimal(num).value);
80
+ }
81
+ }
82
+ // Configuration: constants
83
+ BigDecimal.DECIMALS = 100; // number of decimals on all instances
84
+ BigDecimal.ROUNDED = true; // numbers are truncated (false) or rounded (true)
85
+ BigDecimal.SHIFT = BigInt("1" + "0".repeat(BigDecimal.DECIMALS)); // derived constant
86
+ function isValidNumber(numberString) {
87
+ return !(!numberString || isNaN(Number(numberString)));
88
+ }
89
+ function parseNumberString(numberString) {
90
+ if (!numberString || !stringContainsNumbers(numberString)) {
91
+ return "";
92
+ }
93
+ return sanitizeExponentialNumberString(numberString, (nonExpoNumString) => {
94
+ let containsDecimal = false;
95
+ const result = nonExpoNumString
96
+ .split("")
97
+ .filter((value, i) => {
98
+ if (value.match(/\./g) && !containsDecimal) {
99
+ containsDecimal = true;
100
+ return true;
101
+ }
102
+ if (value.match(/\-/g) && i === 0) {
103
+ return true;
104
+ }
105
+ return numberKeys.includes(value);
106
+ })
107
+ .reduce((string, part) => string + part);
108
+ return isValidNumber(result) ? new BigDecimal(result).toString() : "";
109
+ });
110
+ }
111
+ // regex for number sanitization
112
+ const allLeadingZerosOptionallyNegative = /^([-0])0+(?=\d)/;
113
+ const decimalOnlyAtEndOfString = /(?!^\.)\.$/;
114
+ const allHyphensExceptTheStart = /(?!^-)-/g;
115
+ const isNegativeDecimalOnlyZeros = /^-\b0\b\.?0*$/;
116
+ const sanitizeNumberString = (numberString) => sanitizeExponentialNumberString(numberString, (nonExpoNumString) => {
117
+ const sanitizedValue = nonExpoNumString
118
+ .replace(allHyphensExceptTheStart, "")
119
+ .replace(decimalOnlyAtEndOfString, "")
120
+ .replace(allLeadingZerosOptionallyNegative, "$1");
121
+ return isValidNumber(sanitizedValue)
122
+ ? isNegativeDecimalOnlyZeros.test(sanitizedValue)
123
+ ? sanitizedValue
124
+ : new BigDecimal(sanitizedValue).toString()
125
+ : nonExpoNumString;
126
+ });
127
+ function sanitizeExponentialNumberString(numberString, func) {
128
+ if (!numberString) {
129
+ return numberString;
130
+ }
131
+ const firstE = numberString.toLowerCase().indexOf("e") + 1;
132
+ if (!firstE) {
133
+ return func(numberString);
134
+ }
135
+ return numberString
136
+ .replace(/[eE]*$/g, "")
137
+ .substring(0, firstE)
138
+ .concat(numberString.slice(firstE).replace(/[eE]/g, ""))
139
+ .split(/[eE]/)
140
+ .map((section, i) => (i === 1 ? func(section.replace(/\./g, "")) : func(section)))
141
+ .join("e")
142
+ .replace(/^e/, "1e");
143
+ }
144
+ function stringContainsNumbers(string) {
145
+ return numberKeys.some((number) => string.includes(number));
146
+ }
147
+
148
+ /*!
149
+ * All material copyright ESRI, All Rights Reserved, unless otherwise specified.
150
+ * See https://github.com/Esri/calcite-components/blob/master/LICENSE.md for details.
151
+ * v1.0.0-beta.97
152
+ */
153
+ const defaultLocale = "en";
154
+ const locales = [
155
+ "ar",
156
+ "bg",
157
+ "bs",
158
+ "ca",
159
+ "cs",
160
+ "da",
161
+ "de",
162
+ "de-CH",
163
+ "el",
164
+ defaultLocale,
165
+ "en-AU",
166
+ "en-CA",
167
+ "en-GB",
168
+ "es",
169
+ "es-MX",
170
+ "et",
171
+ "fi",
172
+ "fr",
173
+ "fr-CH",
174
+ "he",
175
+ "hi",
176
+ "hr",
177
+ "hu",
178
+ "id",
179
+ "it",
180
+ "it-CH",
181
+ "ja",
182
+ "ko",
183
+ "lt",
184
+ "lv",
185
+ "mk",
186
+ "nb",
187
+ "nl",
188
+ "pl",
189
+ "pt",
190
+ "pt-PT",
191
+ "ro",
192
+ "ru",
193
+ "sk",
194
+ "sl",
195
+ "sr",
196
+ "sv",
197
+ "th",
198
+ "tr",
199
+ "uk",
200
+ "vi",
201
+ "zh-CN",
202
+ "zh-HK",
203
+ "zh-TW"
204
+ ];
205
+ const numberingSystems = [
206
+ "arab",
207
+ "arabext",
208
+ "bali",
209
+ "beng",
210
+ "deva",
211
+ "fullwide",
212
+ "gujr",
213
+ "guru",
214
+ "hanidec",
215
+ "khmr",
216
+ "knda",
217
+ "laoo",
218
+ "latn",
219
+ "limb",
220
+ "mlym",
221
+ "mong",
222
+ "mymr",
223
+ "orya",
224
+ "tamldec",
225
+ "telu",
226
+ "thai",
227
+ "tibt"
228
+ ];
229
+ const isNumberingSystemSupported = (numberingSystem) => numberingSystems.includes(numberingSystem);
230
+ const browserNumberingSystem = new Intl.NumberFormat().resolvedOptions().numberingSystem;
231
+ const defaultNumberingSystem = browserNumberingSystem === "arab" || !isNumberingSystemSupported(browserNumberingSystem)
232
+ ? "latn"
233
+ : browserNumberingSystem;
234
+ const getSupportedNumberingSystem = (numberingSystem) => isNumberingSystemSupported(numberingSystem) ? numberingSystem : defaultNumberingSystem;
235
+ function getSupportedLocale(locale) {
236
+ if (locales.indexOf(locale) > -1) {
237
+ return locale;
238
+ }
239
+ if (!locale) {
240
+ return defaultLocale;
241
+ }
242
+ locale = locale.toLowerCase();
243
+ // we support both 'nb' and 'no' (BCP 47) for Norwegian
244
+ if (locale === "nb") {
245
+ return "no";
246
+ }
247
+ if (locale.includes("-")) {
248
+ locale = locale.replace(/(\w+)-(\w+)/, (_match, language, region) => `${language}-${region.toUpperCase()}`);
249
+ if (!locales.includes(locale)) {
250
+ locale = locale.split("-")[0];
251
+ }
252
+ }
253
+ return locales.includes(locale) ? locale : defaultLocale;
254
+ }
255
+ const connectedComponents = new Set();
256
+ /**
257
+ * This utility sets up internals for messages support.
258
+ *
259
+ * It needs to be called in `connectedCallback` before any logic that depends on locale
260
+ *
261
+ * @param component
262
+ */
263
+ function connectLocalized(component) {
264
+ updateEffectiveLocale(component);
265
+ if (connectedComponents.size === 0) {
266
+ mutationObserver.observe(document.documentElement, {
267
+ attributes: true,
268
+ attributeFilter: ["lang"],
269
+ subtree: true
270
+ });
271
+ }
272
+ connectedComponents.add(component);
273
+ }
274
+ /**
275
+ * This is only exported for components that implemented the now deprecated `locale` prop.
276
+ *
277
+ * Do not use this utils for new components.
278
+ *
279
+ * @param component
280
+ */
281
+ function updateEffectiveLocale(component) {
282
+ component.effectiveLocale = getLocale(component);
283
+ }
284
+ /**
285
+ * This utility tears down internals for messages support.
286
+ *
287
+ * It needs to be called in `disconnectedCallback`
288
+ *
289
+ * @param component
290
+ */
291
+ function disconnectLocalized(component) {
292
+ connectedComponents.delete(component);
293
+ if (connectedComponents.size === 0) {
294
+ mutationObserver.disconnect();
295
+ }
296
+ }
297
+ const mutationObserver = createObserver("mutation", (records) => {
298
+ records.forEach((record) => {
299
+ const el = record.target;
300
+ connectedComponents.forEach((component) => {
301
+ const hasOverridingLocale = !!(component.locale && !component.el.lang);
302
+ const inUnrelatedSubtree = !containsCrossShadowBoundary(el, component.el);
303
+ if (hasOverridingLocale || inUnrelatedSubtree) {
304
+ return;
305
+ }
306
+ const closestLangEl = closestElementCrossShadowBoundary(component.el, "[lang]");
307
+ if (!closestLangEl) {
308
+ component.effectiveLocale = defaultLocale;
309
+ return;
310
+ }
311
+ const closestLang = closestLangEl.lang;
312
+ component.effectiveLocale =
313
+ // user set lang="" means unknown language, so we use default
314
+ closestLangEl.hasAttribute("lang") && closestLang === "" ? defaultLocale : closestLang;
315
+ });
316
+ });
317
+ });
318
+ /**
319
+ * This util helps resolve a component's locale.
320
+ * It will also fall back on the deprecated `locale` if a component implemented this previously.
321
+ *
322
+ * @param component
323
+ */
324
+ function getLocale(component) {
325
+ var _a;
326
+ return (component.el.lang ||
327
+ component.locale ||
328
+ ((_a = closestElementCrossShadowBoundary(component.el, "[lang]")) === null || _a === void 0 ? void 0 : _a.lang) ||
329
+ document.documentElement.lang ||
330
+ defaultLocale);
331
+ }
332
+ /**
333
+ * This util formats and parses numbers for localization
334
+ */
335
+ class NumberStringFormat {
336
+ constructor() {
337
+ this.delocalize = (numberString) =>
338
+ // For performance, (de)localization is skipped if the formatter isn't initialized.
339
+ // In order to localize/delocalize, e.g. when lang/numberingSystem props are not default values,
340
+ // `numberFormatOptions` must be set in a component to create and cache the formatter.
341
+ this._numberFormatOptions
342
+ ? sanitizeExponentialNumberString(numberString, (nonExpoNumString) => nonExpoNumString
343
+ .trim()
344
+ .replace(new RegExp(`[${this._minusSign}]`, "g"), "-")
345
+ .replace(new RegExp(`[${this._group}]`, "g"), "")
346
+ .replace(new RegExp(`[${this._decimal}]`, "g"), ".")
347
+ .replace(new RegExp(`[${this._digits.join("")}]`, "g"), this._getDigitIndex))
348
+ : numberString;
349
+ this.localize = (numberString) => this._numberFormatOptions
350
+ ? sanitizeExponentialNumberString(numberString, (nonExpoNumString) => isValidNumber(nonExpoNumString.trim())
351
+ ? new BigDecimal(nonExpoNumString.trim())
352
+ .format(this._numberFormatter)
353
+ .replace(new RegExp(`[${this._actualGroup}]`, "g"), this._group)
354
+ : nonExpoNumString)
355
+ : numberString;
356
+ }
357
+ get group() {
358
+ return this._group;
359
+ }
360
+ get decimal() {
361
+ return this._decimal;
362
+ }
363
+ get minusSign() {
364
+ return this._minusSign;
365
+ }
366
+ get digits() {
367
+ return this._digits;
368
+ }
369
+ get numberFormatter() {
370
+ return this._numberFormatter;
371
+ }
372
+ get numberFormatOptions() {
373
+ return this._numberFormatOptions;
374
+ }
375
+ /**
376
+ * numberFormatOptions needs to be set before localize/delocalize is called to ensure the options are up to date
377
+ */
378
+ set numberFormatOptions(options) {
379
+ options.locale = getSupportedLocale(options === null || options === void 0 ? void 0 : options.locale);
380
+ options.numberingSystem = getSupportedNumberingSystem(options === null || options === void 0 ? void 0 : options.numberingSystem);
381
+ if (
382
+ // No need to create the formatter if `locale` and `numberingSystem`
383
+ // are the default values and `numberFormatOptions` has not been set
384
+ (!this._numberFormatOptions &&
385
+ options.locale === defaultLocale &&
386
+ options.numberingSystem === defaultNumberingSystem &&
387
+ // don't skip initialization if any options besides locale/numberingSystem are set
388
+ Object.keys(options).length === 2) ||
389
+ // cache formatter by only recreating when options change
390
+ JSON.stringify(this._numberFormatOptions) === JSON.stringify(options)) {
391
+ return;
392
+ }
393
+ this._numberFormatOptions = options;
394
+ this._numberFormatter = new Intl.NumberFormat(this._numberFormatOptions.locale, this._numberFormatOptions);
395
+ this._digits = [
396
+ ...new Intl.NumberFormat(this._numberFormatOptions.locale, {
397
+ useGrouping: false,
398
+ numberingSystem: this._numberFormatOptions.numberingSystem
399
+ }).format(9876543210)
400
+ ].reverse();
401
+ const index = new Map(this._digits.map((d, i) => [d, i]));
402
+ const parts = new Intl.NumberFormat(this._numberFormatOptions.locale).formatToParts(-12345678.9);
403
+ this._actualGroup = parts.find((d) => d.type === "group").value;
404
+ // change whitespace group characters that don't render correctly
405
+ this._group = this._actualGroup.trim().length === 0 ? " " : this._actualGroup;
406
+ this._decimal = parts.find((d) => d.type === "decimal").value;
407
+ this._minusSign = parts.find((d) => d.type === "minusSign").value;
408
+ this._getDigitIndex = (d) => index.get(d);
409
+ }
410
+ }
411
+ const numberStringFormatter = new NumberStringFormat();
412
+
413
+ export { defaultNumberingSystem as a, getSupportedNumberingSystem as b, connectLocalized as c, disconnectLocalized as d, getSupportedLocale as g, isValidNumber as i, numberStringFormatter as n, parseNumberString as p, sanitizeNumberString as s, updateEffectiveLocale as u };
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface MapCard extends Components.MapCard, HTMLElement {}
4
+ export const MapCard: {
5
+ prototype: MapCard;
6
+ new (): MapCard;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;