@esri/solutions-components 0.6.8 → 0.6.9
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.
- package/dist/assets/t9n/info-card/resources.json +1 -1
- package/dist/assets/t9n/info-card/resources_en.json +1 -1
- package/dist/assets/t9n/map-tools/resources.json +1 -1
- package/dist/assets/t9n/map-tools/resources_en.json +1 -1
- package/dist/cjs/{ExpandToggle-e6a0d66e.js → ExpandToggle-c5690e14.js} +5 -5
- package/dist/cjs/{FloatingArrow-0119ec6e.js → FloatingArrow-675171a6.js} +1 -1
- package/dist/cjs/{Heading-521f39ac.js → Heading-3712677d.js} +1 -1
- package/dist/cjs/{app-globals-72576a1c.js → app-globals-a62ad1ad.js} +3 -3
- package/dist/cjs/{ar-1718ae57.js → ar-1dc23c0a.js} +14 -14
- package/dist/cjs/{array-46bb7df1.js → array-2db3fd4a.js} +1 -1
- package/dist/cjs/{basemap-gallery_4.cjs.entry.js → basemap-gallery_5.cjs.entry.js} +115 -6
- package/dist/cjs/{bg-190a176c.js → bg-4024b354.js} +14 -14
- package/dist/cjs/{bs-919e0de8.js → bs-3134d711.js} +14 -14
- package/dist/cjs/buffer-tools_4.cjs.entry.js +15 -15
- package/dist/cjs/{ca-94918e06.js → ca-8d6647d3.js} +14 -14
- package/dist/cjs/calcite-accordion-item.cjs.entry.js +7 -12
- package/dist/cjs/calcite-accordion.cjs.entry.js +1 -6
- package/dist/cjs/calcite-action-bar.cjs.entry.js +31 -26
- package/dist/cjs/calcite-action-group_2.cjs.entry.js +18 -20
- package/dist/cjs/calcite-action-pad.cjs.entry.js +20 -16
- package/dist/cjs/calcite-action_2.cjs.entry.js +17 -22
- package/dist/cjs/calcite-alert.cjs.entry.js +11 -11
- package/dist/cjs/calcite-avatar.cjs.entry.js +6 -6
- package/dist/cjs/calcite-block-section.cjs.entry.js +9 -9
- package/dist/cjs/calcite-block.cjs.entry.js +12 -12
- package/dist/cjs/calcite-button.cjs.entry.js +12 -12
- package/dist/cjs/calcite-card.cjs.entry.js +9 -9
- package/dist/cjs/calcite-checkbox.cjs.entry.js +8 -13
- package/dist/cjs/calcite-chip-group.cjs.entry.js +6 -11
- package/dist/cjs/calcite-chip.cjs.entry.js +11 -11
- package/dist/cjs/calcite-color-picker-hex-input_2.cjs.entry.js +8 -8
- package/dist/cjs/calcite-color-picker.cjs.entry.js +12 -12
- package/dist/cjs/calcite-combobox-item-group.cjs.entry.js +5 -5
- package/dist/cjs/calcite-combobox_6.cjs.entry.js +21 -26
- package/dist/cjs/calcite-date-picker-day_3.cjs.entry.js +10 -10
- package/dist/cjs/calcite-date-picker.cjs.entry.js +11 -11
- package/dist/cjs/calcite-fab.cjs.entry.js +6 -6
- package/dist/cjs/calcite-filter_5.cjs.entry.js +16 -16
- package/dist/cjs/calcite-flow-item.cjs.entry.js +11 -11
- package/dist/cjs/calcite-flow.cjs.entry.js +3 -3
- package/dist/cjs/calcite-graph.cjs.entry.js +5 -10
- package/dist/cjs/calcite-icon.cjs.entry.js +6 -6
- package/dist/cjs/calcite-inline-editable.cjs.entry.js +11 -11
- package/dist/cjs/calcite-input-date-picker.cjs.entry.js +17 -17
- package/dist/cjs/calcite-input-number_2.cjs.entry.js +13 -13
- package/dist/cjs/{calcite-input-time-picker-b99baf7b.js → calcite-input-time-picker-4efcd55d.js} +60 -60
- package/dist/cjs/calcite-input-time-picker.cjs.entry.js +14 -14
- package/dist/cjs/calcite-input-time-zone.cjs.entry.js +12 -12
- package/dist/cjs/calcite-input_2.cjs.entry.js +12 -12
- package/dist/cjs/calcite-label.cjs.entry.js +5 -5
- package/dist/cjs/calcite-link.cjs.entry.js +5 -5
- package/dist/cjs/calcite-list-item-group.cjs.entry.js +3 -3
- package/dist/cjs/calcite-loader.cjs.entry.js +1 -1
- package/dist/cjs/calcite-menu-item.cjs.entry.js +9 -9
- package/dist/cjs/calcite-menu.cjs.entry.js +9 -9
- package/dist/cjs/calcite-modal.cjs.entry.js +12 -12
- package/dist/cjs/calcite-navigation-logo.cjs.entry.js +2 -2
- package/dist/cjs/calcite-navigation-user.cjs.entry.js +2 -2
- package/dist/cjs/calcite-navigation.cjs.entry.js +5 -5
- package/dist/cjs/calcite-notice.cjs.entry.js +11 -11
- package/dist/cjs/calcite-option_2.cjs.entry.js +9 -9
- package/dist/cjs/calcite-pagination.cjs.entry.js +9 -9
- package/dist/cjs/calcite-panel_2.cjs.entry.js +14 -14
- package/dist/cjs/calcite-pick-list-group.cjs.entry.js +7 -7
- package/dist/cjs/calcite-pick-list-item.cjs.entry.js +12 -12
- package/dist/cjs/calcite-pick-list.cjs.entry.js +10 -10
- package/dist/cjs/calcite-radio-button-group.cjs.entry.js +2 -7
- package/dist/cjs/calcite-radio-button.cjs.entry.js +9 -9
- package/dist/cjs/calcite-rating.cjs.entry.js +12 -12
- package/dist/cjs/calcite-scrim.cjs.entry.js +8 -8
- package/dist/cjs/calcite-segmented-control_2.cjs.entry.js +8 -8
- package/dist/cjs/calcite-shell-center-row.cjs.entry.js +6 -6
- package/dist/cjs/calcite-shell-panel_14.cjs.entry.js +29 -32
- package/dist/cjs/calcite-sortable-list.cjs.entry.js +7 -7
- package/dist/cjs/calcite-split-button.cjs.entry.js +3 -3
- package/dist/cjs/calcite-stepper-item.cjs.entry.js +8 -8
- package/dist/cjs/calcite-stepper.cjs.entry.js +3 -8
- package/dist/cjs/calcite-switch.cjs.entry.js +8 -8
- package/dist/cjs/calcite-text-area.cjs.entry.js +15 -15
- package/dist/cjs/calcite-tile-select-group.cjs.entry.js +1 -1
- package/dist/cjs/calcite-tile-select.cjs.entry.js +4 -4
- package/dist/cjs/calcite-tile.cjs.entry.js +7 -7
- package/dist/cjs/calcite-time-picker.cjs.entry.js +10 -10
- package/dist/cjs/calcite-tip-manager.cjs.entry.js +9 -9
- package/dist/cjs/calcite-tip.cjs.entry.js +10 -10
- package/dist/cjs/calcite-tooltip.cjs.entry.js +9 -9
- package/dist/cjs/calcite-tree_3.cjs.entry.js +8 -8
- package/dist/cjs/{card-manager_4.cjs.entry.js → card-manager_3.cjs.entry.js} +47 -93
- package/dist/cjs/{conditionalSlot-85b3a6b3.js → conditionalSlot-126d557f.js} +2 -2
- package/dist/cjs/crowdsource-manager.cjs.entry.js +23 -11
- package/dist/cjs/{cs-fe27e732.js → cs-b24cd994.js} +14 -14
- package/dist/cjs/{da-1b7f3440.js → da-9dee3a1f.js} +14 -14
- package/dist/cjs/{date-cec32b0e.js → date-0fec6f6b.js} +2 -2
- package/dist/cjs/{de-0dc1effa.js → de-1a98b964.js} +14 -14
- package/dist/cjs/{de-at-acdc4d01.js → de-at-782e6c7f.js} +14 -14
- package/dist/cjs/{de-ch-778a0d99.js → de-ch-d5c95469.js} +14 -14
- package/dist/cjs/{dom-c1807fc1.js → dom-456f9f13.js} +3 -3
- package/dist/cjs/{downloadUtils-a8c530f7.js → downloadUtils-1f057ec0.js} +249 -262
- package/dist/cjs/edit-card_2.cjs.entry.js +6 -5
- package/dist/cjs/{el-fdbc9bc1.js → el-af28cafa.js} +14 -14
- package/dist/cjs/{en-au-0ff50cdf.js → en-au-109f3119.js} +14 -14
- package/dist/cjs/{en-ca-284e9368.js → en-ca-22890a25.js} +14 -14
- package/dist/cjs/{en-gb-0fcae8ae.js → en-gb-dc23c9dd.js} +14 -14
- package/dist/cjs/{es-cd54acba.js → es-3f353355.js} +14 -14
- package/dist/cjs/{es-mx-2078d50f.js → es-mx-ccb57857.js} +14 -14
- package/dist/cjs/{et-17f323f6.js → et-119c047b.js} +14 -14
- package/dist/cjs/{fi-82f27397.js → fi-13096d81.js} +14 -14
- package/dist/cjs/{filter-bda212b4.js → filter-8d8c453e.js} +1 -1
- package/dist/cjs/{floating-ui-8d10af88.js → floating-ui-2b0fbba0.js} +2 -2
- package/dist/cjs/{focusTrapComponent-a22fc6a8.js → focusTrapComponent-d8412ddc.js} +4 -4
- package/dist/cjs/{form-9d8ebf06.js → form-7c6054c3.js} +2 -2
- package/dist/cjs/{fr-af7e1192.js → fr-563dfcd5.js} +14 -14
- package/dist/cjs/{fr-ch-5e1f2c28.js → fr-ch-f66cfd49.js} +14 -14
- package/dist/cjs/{guid-3abe3cc6.js → guid-d1123d5e.js} +1 -1
- package/dist/cjs/{he-ea851800.js → he-d8253a1a.js} +14 -14
- package/dist/cjs/{hi-5212a21d.js → hi-58c7c3b5.js} +14 -14
- package/dist/cjs/{hr-4eecb2ed.js → hr-5aba114a.js} +14 -14
- package/dist/cjs/{hu-6b527d8e.js → hu-38c15915.js} +14 -14
- package/dist/cjs/{id-d78f12ec.js → id-3a94c080.js} +14 -14
- package/dist/cjs/{index.es-4542630e.js → index.es-a1507f1c.js} +3 -3
- package/dist/cjs/{interactive-2fe0f43a.js → interactive-48299817.js} +2 -2
- package/dist/cjs/{it-15242935.js → it-88834555.js} +14 -14
- package/dist/cjs/{it-ch-9dc21944.js → it-ch-970563cd.js} +14 -14
- package/dist/cjs/{ja-f702cfc2.js → ja-13d4b1ae.js} +14 -14
- package/dist/cjs/{key-b8b55ea3.js → key-8de93212.js} +1 -1
- package/dist/cjs/{ko-aa9bde2c.js → ko-10cbdd98.js} +14 -14
- package/dist/cjs/{label-6e33e971.js → label-166e2d81.js} +3 -3
- package/dist/cjs/layout-manager.cjs.entry.js +93 -0
- package/dist/cjs/{loadModules-31cab7ac.js → loadModules-c5490589.js} +1 -1
- package/dist/cjs/{loadable-bac9cdd6.js → loadable-6925d840.js} +1 -1
- package/dist/cjs/loader.cjs.js +3 -3
- package/dist/cjs/{locale-c63a1b57.js → locale-79c3d30e.js} +5 -5
- package/dist/cjs/{locale-d15cd743.js → locale-88c21da2.js} +15 -15
- package/dist/cjs/{lt-e741ff2f.js → lt-3fc5017a.js} +14 -14
- package/dist/cjs/{lv-92d6768e.js → lv-9d9cf999.js} +14 -14
- package/dist/cjs/map-select-tools_3.cjs.entry.js +3 -3
- package/dist/cjs/{math-5132d9bd.js → math-f28069f3.js} +1 -1
- package/dist/cjs/{mk-b209ac0d.js → mk-9f79812b.js} +14 -14
- package/dist/cjs/{nb-db13e666.js → nb-673fe3fd.js} +14 -14
- package/dist/cjs/{nl-fcd9e0c5.js → nl-4dc0504f.js} +14 -14
- package/dist/cjs/{observers-f5fa975b.js → observers-9912f013.js} +1 -1
- package/dist/cjs/{openCloseComponent-5d70fcd8.js → openCloseComponent-05cb01ff.js} +9 -4
- package/dist/cjs/{pl-87c83322.js → pl-d809a6c3.js} +14 -14
- package/dist/cjs/{pt-b0b5f472.js → pt-78eefbc7.js} +14 -14
- package/dist/cjs/{pt-br-03333e90.js → pt-br-55f1893a.js} +14 -14
- package/dist/cjs/public-notification.cjs.entry.js +3 -3
- package/dist/cjs/{resources-60c27547.js → resources-030a27ed.js} +1 -1
- package/dist/cjs/{resources-91409a5d.js → resources-10d29626.js} +1 -1
- package/dist/cjs/{resources-9f2b33ee.js → resources-24b6eee0.js} +1 -1
- package/dist/cjs/{resources-4da89742.js → resources-2b51cf4c.js} +1 -1
- package/dist/cjs/{resources-e1258e8a.js → resources-8f4e8ba8.js} +1 -1
- package/dist/cjs/{resources-77713c2e.js → resources-993f6faf.js} +1 -1
- package/dist/cjs/{resources-2901b608.js → resources-a2e2a544.js} +1 -1
- package/dist/cjs/{resources-c913200c.js → resources-acf9a7ea.js} +1 -1
- package/dist/cjs/{resources-8233a151.js → resources-caca31c2.js} +1 -1
- package/dist/cjs/{ro-c3661b73.js → ro-f0cff196.js} +14 -14
- package/dist/cjs/{ru-8dd3fd58.js → ru-5e9b37f9.js} +14 -14
- package/dist/cjs/{shared-list-render-c0adb192.js → shared-list-render-9bbcb306.js} +6 -6
- package/dist/cjs/{sk-151d9acf.js → sk-322cd349.js} +14 -14
- package/dist/cjs/{sl-9b45a152.js → sl-fd948e50.js} +14 -14
- package/dist/cjs/solution-configuration.cjs.entry.js +1 -1
- package/dist/cjs/solution-contents_3.cjs.entry.js +1 -1
- package/dist/cjs/solutions-components.cjs.js +3 -3
- package/dist/cjs/{sortableComponent-58679f07.js → sortableComponent-70bf79de.js} +2 -2
- package/dist/cjs/{sr-186bf15c.js → sr-f0058b24.js} +14 -14
- package/dist/cjs/{sv-a93fee0c.js → sv-8a8378bf.js} +14 -14
- package/dist/cjs/{t9n-1d032c30.js → t9n-62d807df.js} +2 -2
- package/dist/cjs/{th-41680352.js → th-f219fad6.js} +14 -14
- package/dist/cjs/{time-5e450ec8.js → time-24d40c60.js} +2 -2
- package/dist/cjs/{tr-0bd886d6.js → tr-03109641.js} +14 -14
- package/dist/cjs/{uk-4fade133.js → uk-dde46112.js} +14 -14
- package/dist/cjs/{utils-cd14113f.js → utils-09191c93.js} +2 -2
- package/dist/cjs/{utils-acfeed9d.js → utils-651e6663.js} +3 -3
- package/dist/cjs/{utils-ae9bdd59.js → utils-852fe124.js} +3 -3
- package/dist/cjs/{utils-bae432a9.js → utils-a194dc3d.js} +5 -2
- package/dist/cjs/{vi-1c9fe343.js → vi-60ed6e30.js} +14 -14
- package/dist/cjs/{zh-cn-28fa1fe1.js → zh-cn-a2f6f51d.js} +14 -14
- package/dist/cjs/{zh-hk-5abf8eb5.js → zh-hk-e14e2fc0.js} +14 -14
- package/dist/cjs/{zh-tw-07500357.js → zh-tw-7ea0d7e4.js} +14 -14
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/crowdsource-manager/crowdsource-manager.js +22 -28
- package/dist/collection/components/info-card/info-card.css +14 -0
- package/dist/collection/components/info-card/info-card.js +3 -2
- package/dist/collection/components/layer-table/layer-table.js +60 -9
- package/dist/collection/components/map-card/map-card.js +10 -6
- package/dist/collection/components/map-legend/map-legend.css +3 -0
- package/dist/collection/components/map-legend/map-legend.js +166 -0
- package/dist/collection/components/map-legend/test/map-legend.e2e.js +14 -0
- package/dist/collection/components/map-legend/test/map-legend.spec.js +22 -0
- package/dist/collection/components/map-tools/map-tools.js +25 -4
- package/dist/collection/demos/crowdsource-manager.html +26 -1
- package/dist/collection/utils/downloadUtils.js +250 -230
- package/dist/collection/utils/downloadUtils.ts +347 -326
- package/dist/collection/utils/interfaces.ts +11 -0
- package/dist/collection/utils/test/downloadUtils.spec.js +503 -57
- package/dist/collection/utils/test/downloadUtils.spec.tsx +587 -61
- package/dist/components/ExpandToggle.js +2 -2
- package/dist/components/FloatingArrow.js +1 -1
- package/dist/components/Heading.js +1 -1
- package/dist/components/action-bar.js +23 -15
- package/dist/components/action-group.js +9 -10
- package/dist/components/action-menu.js +1 -1
- package/dist/components/action.js +1 -1
- package/dist/components/alert.js +2 -2
- package/dist/components/array.js +1 -1
- package/dist/components/avatar.js +2 -2
- package/dist/components/button.js +1 -1
- package/dist/components/calcite-accordion-item.js +2 -7
- package/dist/components/calcite-accordion.js +0 -5
- package/dist/components/calcite-action-pad.js +10 -5
- package/dist/components/calcite-block-section.js +2 -2
- package/dist/components/calcite-block.js +2 -2
- package/dist/components/calcite-card.js +1 -1
- package/dist/components/calcite-chip-group.js +0 -5
- package/dist/components/calcite-combobox-item-group.js +1 -1
- package/dist/components/calcite-fab.js +1 -1
- package/dist/components/calcite-flow-item.js +1 -1
- package/dist/components/calcite-flow.js +1 -1
- package/dist/components/calcite-inline-editable.js +1 -1
- package/dist/components/calcite-input-date-picker.js +1 -1
- package/dist/components/calcite-input-time-picker.js +1 -1
- package/dist/components/calcite-input-time-zone.js +1 -1
- package/dist/components/calcite-list-item-group.js +1 -1
- package/dist/components/calcite-menu-item.js +1 -1
- package/dist/components/calcite-modal.js +2 -2
- package/dist/components/calcite-navigation-logo.js +1 -1
- package/dist/components/calcite-navigation-user.js +1 -1
- package/dist/components/calcite-navigation.js +2 -2
- package/dist/components/calcite-pagination.js +1 -1
- package/dist/components/calcite-radio-button-group.js +0 -5
- package/dist/components/calcite-radio-button.js +1 -1
- package/dist/components/calcite-rating.js +1 -1
- package/dist/components/calcite-shell-center-row.js +1 -1
- package/dist/components/calcite-sortable-list.js +1 -1
- package/dist/components/calcite-split-button.js +1 -1
- package/dist/components/calcite-stepper.js +0 -5
- package/dist/components/calcite-text-area.js +5 -5
- package/dist/components/calcite-tile-select.js +1 -1
- package/dist/components/calcite-tip-manager.js +1 -1
- package/dist/components/calcite-tip.js +1 -1
- package/dist/components/card-manager2.js +5 -5
- package/dist/components/checkbox.js +0 -5
- package/dist/components/chip.js +2 -2
- package/dist/components/color-picker-hex-input.js +2 -2
- package/dist/components/color-picker-swatch.js +1 -1
- package/dist/components/combobox-item.js +1 -1
- package/dist/components/combobox.js +1 -6
- package/dist/components/conditionalSlot.js +1 -1
- package/dist/components/crowdsource-manager.js +29 -18
- package/dist/components/date-picker-month-header.js +1 -1
- package/dist/components/date-picker.js +2 -2
- package/dist/components/date.js +1 -1
- package/dist/components/dom.js +2 -2
- package/dist/components/downloadUtils.js +247 -260
- package/dist/components/dropdown-group.js +1 -1
- package/dist/components/dropdown-item.js +1 -1
- package/dist/components/dropdown.js +1 -1
- package/dist/components/esri-loader.js +15 -15
- package/dist/components/filter.js +1 -1
- package/dist/components/filter2.js +1 -1
- package/dist/components/floating-ui.js +1 -1
- package/dist/components/focusTrapComponent.js +4 -4
- package/dist/components/form.js +1 -1
- package/dist/components/graph.js +3 -8
- package/dist/components/guid.js +1 -1
- package/dist/components/handle.js +1 -1
- package/dist/components/icon.js +2 -2
- package/dist/components/index.js +2 -2
- package/dist/components/info-card2.js +9 -8
- package/dist/components/input-message.js +1 -1
- package/dist/components/input-number.js +1 -1
- package/dist/components/input-text.js +1 -1
- package/dist/components/input.js +1 -1
- package/dist/components/interactive.js +2 -2
- package/dist/components/key.js +1 -1
- package/dist/components/label.js +2 -2
- package/dist/components/label2.js +1 -1
- package/dist/components/layer-table2.js +40 -9
- package/dist/components/layout-manager.js +129 -1
- package/dist/components/list-item2.js +1 -1
- package/dist/components/list.js +2 -2
- package/dist/components/loadable.js +1 -1
- package/dist/components/locale2.js +2 -2
- package/dist/components/map-card2.js +46 -37
- package/dist/components/map-legend.d.ts +11 -0
- package/dist/components/map-legend.js +11 -0
- package/dist/components/map-legend2.js +118 -0
- package/dist/components/map-tools2.js +47 -22
- package/dist/components/math.js +1 -1
- package/dist/components/menu.js +1 -1
- package/dist/components/notice.js +1 -1
- package/dist/components/observers.js +1 -1
- package/dist/components/openCloseComponent.js +9 -4
- package/dist/components/panel.js +2 -2
- package/dist/components/pick-list-item.js +1 -1
- package/dist/components/popover.js +3 -8
- package/dist/components/resources.js +1 -1
- package/dist/components/resources2.js +1 -1
- package/dist/components/resources3.js +1 -1
- package/dist/components/resources4.js +1 -1
- package/dist/components/scrim.js +1 -1
- package/dist/components/segmented-control-item.js +1 -1
- package/dist/components/select.js +1 -1
- package/dist/components/shared-list-render.js +2 -2
- package/dist/components/shell-panel.js +9 -6
- package/dist/components/shell.js +2 -2
- package/dist/components/slider.js +1 -1
- package/dist/components/sortableComponent.js +1 -1
- package/dist/components/stack.js +2 -2
- package/dist/components/t9n.js +1 -1
- package/dist/components/tab-title.js +1 -6
- package/dist/components/tabs.js +1 -1
- package/dist/components/tile.js +1 -1
- package/dist/components/time-picker.js +2 -2
- package/dist/components/tooltip.js +3 -3
- package/dist/components/tree-item.js +2 -2
- package/dist/components/tree.js +1 -1
- package/dist/components/utils.js +5 -2
- package/dist/components/utils2.js +2 -2
- package/dist/components/utils3.js +2 -2
- package/dist/components/value-list-item.js +1 -1
- package/dist/components/value-list.js +2 -2
- package/dist/esm/{ExpandToggle-3d10bd1e.js → ExpandToggle-3bfcb842.js} +5 -5
- package/dist/esm/{FloatingArrow-29db6da6.js → FloatingArrow-cf140d6b.js} +1 -1
- package/dist/esm/{Heading-cb79e5b2.js → Heading-140d10ff.js} +1 -1
- package/dist/esm/{app-globals-5cbac6b0.js → app-globals-fffe4e27.js} +3 -3
- package/dist/esm/{ar-4b751ba8.js → ar-45abeb31.js} +14 -14
- package/dist/esm/{array-751a2b87.js → array-d95985ad.js} +1 -1
- package/dist/esm/{basemap-gallery_4.entry.js → basemap-gallery_5.entry.js} +115 -7
- package/dist/esm/{bg-5d8bf5ea.js → bg-af759e86.js} +14 -14
- package/dist/esm/{bs-ff510e71.js → bs-20d012de.js} +14 -14
- package/dist/esm/buffer-tools_4.entry.js +15 -15
- package/dist/esm/{ca-b9a5e51a.js → ca-1498df65.js} +14 -14
- package/dist/esm/calcite-accordion-item.entry.js +7 -12
- package/dist/esm/calcite-accordion.entry.js +1 -6
- package/dist/esm/calcite-action-bar.entry.js +31 -26
- package/dist/esm/calcite-action-group_2.entry.js +18 -20
- package/dist/esm/calcite-action-pad.entry.js +20 -16
- package/dist/esm/calcite-action_2.entry.js +17 -22
- package/dist/esm/calcite-alert.entry.js +11 -11
- package/dist/esm/calcite-avatar.entry.js +6 -6
- package/dist/esm/calcite-block-section.entry.js +9 -9
- package/dist/esm/calcite-block.entry.js +12 -12
- package/dist/esm/calcite-button.entry.js +12 -12
- package/dist/esm/calcite-card.entry.js +9 -9
- package/dist/esm/calcite-checkbox.entry.js +8 -13
- package/dist/esm/calcite-chip-group.entry.js +6 -11
- package/dist/esm/calcite-chip.entry.js +11 -11
- package/dist/esm/calcite-color-picker-hex-input_2.entry.js +8 -8
- package/dist/esm/calcite-color-picker.entry.js +12 -12
- package/dist/esm/calcite-combobox-item-group.entry.js +5 -5
- package/dist/esm/calcite-combobox_6.entry.js +21 -26
- package/dist/esm/calcite-date-picker-day_3.entry.js +10 -10
- package/dist/esm/calcite-date-picker.entry.js +11 -11
- package/dist/esm/calcite-fab.entry.js +6 -6
- package/dist/esm/calcite-filter_5.entry.js +16 -16
- package/dist/esm/calcite-flow-item.entry.js +11 -11
- package/dist/esm/calcite-flow.entry.js +3 -3
- package/dist/esm/calcite-graph.entry.js +5 -10
- package/dist/esm/calcite-icon.entry.js +6 -6
- package/dist/esm/calcite-inline-editable.entry.js +11 -11
- package/dist/esm/calcite-input-date-picker.entry.js +17 -17
- package/dist/esm/calcite-input-number_2.entry.js +13 -13
- package/dist/esm/{calcite-input-time-picker-13448515.js → calcite-input-time-picker-227e60c3.js} +60 -60
- package/dist/esm/calcite-input-time-picker.entry.js +14 -14
- package/dist/esm/calcite-input-time-zone.entry.js +12 -12
- package/dist/esm/calcite-input_2.entry.js +12 -12
- package/dist/esm/calcite-label.entry.js +5 -5
- package/dist/esm/calcite-link.entry.js +5 -5
- package/dist/esm/calcite-list-item-group.entry.js +3 -3
- package/dist/esm/calcite-loader.entry.js +1 -1
- package/dist/esm/calcite-menu-item.entry.js +9 -9
- package/dist/esm/calcite-menu.entry.js +9 -9
- package/dist/esm/calcite-modal.entry.js +12 -12
- package/dist/esm/calcite-navigation-logo.entry.js +2 -2
- package/dist/esm/calcite-navigation-user.entry.js +2 -2
- package/dist/esm/calcite-navigation.entry.js +5 -5
- package/dist/esm/calcite-notice.entry.js +11 -11
- package/dist/esm/calcite-option_2.entry.js +9 -9
- package/dist/esm/calcite-pagination.entry.js +9 -9
- package/dist/esm/calcite-panel_2.entry.js +14 -14
- package/dist/esm/calcite-pick-list-group.entry.js +7 -7
- package/dist/esm/calcite-pick-list-item.entry.js +12 -12
- package/dist/esm/calcite-pick-list.entry.js +10 -10
- package/dist/esm/calcite-radio-button-group.entry.js +2 -7
- package/dist/esm/calcite-radio-button.entry.js +9 -9
- package/dist/esm/calcite-rating.entry.js +12 -12
- package/dist/esm/calcite-scrim.entry.js +8 -8
- package/dist/esm/calcite-segmented-control_2.entry.js +8 -8
- package/dist/esm/calcite-shell-center-row.entry.js +6 -6
- package/dist/esm/calcite-shell-panel_14.entry.js +29 -32
- package/dist/esm/calcite-sortable-list.entry.js +7 -7
- package/dist/esm/calcite-split-button.entry.js +3 -3
- package/dist/esm/calcite-stepper-item.entry.js +8 -8
- package/dist/esm/calcite-stepper.entry.js +3 -8
- package/dist/esm/calcite-switch.entry.js +8 -8
- package/dist/esm/calcite-text-area.entry.js +15 -15
- package/dist/esm/calcite-tile-select-group.entry.js +1 -1
- package/dist/esm/calcite-tile-select.entry.js +4 -4
- package/dist/esm/calcite-tile.entry.js +7 -7
- package/dist/esm/calcite-time-picker.entry.js +10 -10
- package/dist/esm/calcite-tip-manager.entry.js +9 -9
- package/dist/esm/calcite-tip.entry.js +10 -10
- package/dist/esm/calcite-tooltip.entry.js +9 -9
- package/dist/esm/calcite-tree_3.entry.js +8 -8
- package/dist/esm/{card-manager_4.entry.js → card-manager_3.entry.js} +48 -93
- package/dist/esm/{conditionalSlot-27a0fce0.js → conditionalSlot-55a14abd.js} +2 -2
- package/dist/esm/crowdsource-manager.entry.js +23 -11
- package/dist/esm/{cs-f21a0628.js → cs-3bd67855.js} +14 -14
- package/dist/esm/{da-dc48fc4c.js → da-7a76e131.js} +14 -14
- package/dist/esm/{date-0ed48e97.js → date-bd5b879c.js} +2 -2
- package/dist/esm/{de-59290071.js → de-0808a43e.js} +14 -14
- package/dist/esm/{de-at-cd6e6ab7.js → de-at-0b6874cb.js} +14 -14
- package/dist/esm/{de-ch-27c44e34.js → de-ch-c9d429dd.js} +14 -14
- package/dist/esm/{dom-843e3afd.js → dom-37f2dec9.js} +3 -3
- package/dist/esm/{downloadUtils-63661805.js → downloadUtils-64c27514.js} +249 -262
- package/dist/esm/edit-card_2.entry.js +6 -5
- package/dist/esm/{el-f09fdec6.js → el-66001281.js} +14 -14
- package/dist/esm/{en-au-90087aa5.js → en-au-6424fec0.js} +14 -14
- package/dist/esm/{en-ca-10751695.js → en-ca-f5f1659d.js} +14 -14
- package/dist/esm/{en-gb-0f8547bd.js → en-gb-796beadd.js} +14 -14
- package/dist/esm/{es-b0997cf1.js → es-cd139926.js} +14 -14
- package/dist/esm/{es-mx-226f5028.js → es-mx-854dc3e4.js} +14 -14
- package/dist/esm/{et-dc96c453.js → et-2aa6782d.js} +14 -14
- package/dist/esm/{fi-0941704d.js → fi-965727bd.js} +14 -14
- package/dist/esm/{filter-1cac3edf.js → filter-60517290.js} +1 -1
- package/dist/esm/{floating-ui-d28d0fd6.js → floating-ui-7cde67cf.js} +2 -2
- package/dist/esm/{focusTrapComponent-ff3a9f28.js → focusTrapComponent-ec344399.js} +4 -4
- package/dist/esm/{form-11c6a015.js → form-04d47b0b.js} +2 -2
- package/dist/esm/{fr-8da3458d.js → fr-c1884e89.js} +14 -14
- package/dist/esm/{fr-ch-739ceddf.js → fr-ch-1fd8dd3a.js} +14 -14
- package/dist/esm/{guid-2bbb8cd1.js → guid-70cda807.js} +1 -1
- package/dist/esm/{he-8b662dfa.js → he-0d7b78b4.js} +14 -14
- package/dist/esm/{hi-10996f89.js → hi-0376c82d.js} +14 -14
- package/dist/esm/{hr-42c2024d.js → hr-28a64903.js} +14 -14
- package/dist/esm/{hu-4768b3ff.js → hu-44a02ff7.js} +14 -14
- package/dist/esm/{id-24a08170.js → id-034fc4a5.js} +14 -14
- package/dist/esm/{index.es-3a3aa8e3.js → index.es-b7bc2db1.js} +3 -3
- package/dist/esm/{interactive-eaf4be29.js → interactive-bd6837bc.js} +2 -2
- package/dist/esm/{it-ad09649f.js → it-56e52026.js} +14 -14
- package/dist/esm/{it-ch-b05fc10d.js → it-ch-a4a0e136.js} +14 -14
- package/dist/esm/{ja-ab839b73.js → ja-f2365272.js} +14 -14
- package/dist/esm/{key-7a525416.js → key-02fa06ae.js} +1 -1
- package/dist/esm/{ko-c778539e.js → ko-e7650b4c.js} +14 -14
- package/dist/esm/{label-6a1caf64.js → label-b6dfb4d5.js} +3 -3
- package/dist/{components/layout-manager2.js → esm/layout-manager.entry.js} +11 -58
- package/dist/esm/{loadModules-2ecd1e44.js → loadModules-f5f910b6.js} +1 -1
- package/dist/esm/{loadable-6bca96ad.js → loadable-47170cb6.js} +1 -1
- package/dist/esm/loader.js +3 -3
- package/dist/esm/{locale-d8561d54.js → locale-146251f7.js} +5 -5
- package/dist/esm/{locale-aa3de591.js → locale-efad8f83.js} +15 -15
- package/dist/esm/{lt-447d9aa9.js → lt-1577a952.js} +14 -14
- package/dist/esm/{lv-4d715e11.js → lv-9ef7e4f6.js} +14 -14
- package/dist/esm/map-select-tools_3.entry.js +3 -3
- package/dist/esm/{math-5f92f517.js → math-0d6817c3.js} +1 -1
- package/dist/esm/{mk-b3d7401a.js → mk-94264e08.js} +14 -14
- package/dist/esm/{nb-2b4a8366.js → nb-fa24d5b2.js} +14 -14
- package/dist/esm/{nl-c0db1da2.js → nl-33f10900.js} +14 -14
- package/dist/esm/{observers-9d66685a.js → observers-95c50046.js} +1 -1
- package/dist/esm/{openCloseComponent-2b5c6bed.js → openCloseComponent-10efeff3.js} +9 -4
- package/dist/esm/{pl-0d322bb4.js → pl-9ed16565.js} +14 -14
- package/dist/esm/{pt-5997598c.js → pt-52731ddf.js} +14 -14
- package/dist/esm/{pt-br-6b77e7db.js → pt-br-8de51ff4.js} +14 -14
- package/dist/esm/public-notification.entry.js +3 -3
- package/dist/esm/{resources-5bce3953.js → resources-0151b0c0.js} +1 -1
- package/dist/esm/{resources-94c47e64.js → resources-1e6d76df.js} +1 -1
- package/dist/esm/{resources-40d8e06f.js → resources-24255b05.js} +1 -1
- package/dist/esm/{resources-dca3d475.js → resources-2e5aa562.js} +1 -1
- package/dist/esm/{resources-c253772f.js → resources-2edfa0af.js} +1 -1
- package/dist/esm/{resources-a9b2d33c.js → resources-41416583.js} +1 -1
- package/dist/esm/{resources-d6a4d343.js → resources-b392187d.js} +1 -1
- package/dist/esm/{resources-58d30a0f.js → resources-c676d5de.js} +1 -1
- package/dist/esm/{resources-c65f5654.js → resources-efae7280.js} +1 -1
- package/dist/esm/{ro-ac3724e0.js → ro-99f009ad.js} +14 -14
- package/dist/esm/{ru-4e75151f.js → ru-592ffaf0.js} +14 -14
- package/dist/esm/{shared-list-render-abd19c8d.js → shared-list-render-4f0f6af8.js} +6 -6
- package/dist/esm/{sk-bbfa22a3.js → sk-44f7bd19.js} +14 -14
- package/dist/esm/{sl-867cecfc.js → sl-08cad9bd.js} +14 -14
- package/dist/esm/solution-configuration.entry.js +1 -1
- package/dist/esm/solution-contents_3.entry.js +1 -1
- package/dist/esm/solutions-components.js +3 -3
- package/dist/esm/{sortableComponent-db502e97.js → sortableComponent-8a84709a.js} +2 -2
- package/dist/esm/{sr-198b5c00.js → sr-84f261fc.js} +14 -14
- package/dist/esm/{sv-02d64370.js → sv-d0d7bc1e.js} +14 -14
- package/dist/esm/{t9n-76168237.js → t9n-5f748619.js} +2 -2
- package/dist/esm/{th-1616e303.js → th-a5149d44.js} +14 -14
- package/dist/esm/{time-6721a4c2.js → time-fa1151aa.js} +2 -2
- package/dist/esm/{tr-f4619f64.js → tr-feb0cad4.js} +14 -14
- package/dist/esm/{uk-df7df34a.js → uk-c9ba62a0.js} +14 -14
- package/dist/esm/{utils-f54411df.js → utils-0a5c1a07.js} +3 -3
- package/dist/esm/{utils-ccfd94a7.js → utils-667cc396.js} +3 -3
- package/dist/esm/{utils-18db6b1d.js → utils-7af1efcc.js} +2 -2
- package/dist/esm/{utils-2c91c963.js → utils-7cf107ec.js} +5 -2
- package/dist/esm/{vi-176ca9f7.js → vi-788dcb99.js} +14 -14
- package/dist/esm/{zh-cn-e13d83d1.js → zh-cn-3ccfb820.js} +14 -14
- package/dist/esm/{zh-hk-d97365d8.js → zh-hk-b29b61e8.js} +14 -14
- package/dist/esm/{zh-tw-a2b6f0b7.js → zh-tw-2bdbc6eb.js} +14 -14
- package/dist/solutions-components/assets/icon/applySelectionToExistingView16.json +1 -0
- package/dist/solutions-components/assets/icon/applySelectionToExistingView24.json +1 -0
- package/dist/solutions-components/assets/icon/applySelectionToExistingView32.json +1 -0
- package/dist/solutions-components/assets/icon/channels16.json +1 -0
- package/dist/solutions-components/assets/icon/channels24.json +1 -0
- package/dist/solutions-components/assets/icon/channels32.json +1 -0
- package/dist/solutions-components/assets/icon/chevronDownLeft16.json +1 -0
- package/dist/solutions-components/assets/icon/chevronDownLeft24.json +1 -0
- package/dist/solutions-components/assets/icon/chevronDownLeft32.json +1 -0
- package/dist/solutions-components/assets/icon/chevronDownRight16.json +1 -0
- package/dist/solutions-components/assets/icon/chevronDownRight24.json +1 -0
- package/dist/solutions-components/assets/icon/chevronDownRight32.json +1 -0
- package/dist/solutions-components/assets/icon/chevronUpLeft16.json +1 -0
- package/dist/solutions-components/assets/icon/chevronUpLeft24.json +1 -0
- package/dist/solutions-components/assets/icon/chevronUpLeft32.json +1 -0
- package/dist/solutions-components/assets/icon/chevronUpRight16.json +1 -0
- package/dist/solutions-components/assets/icon/chevronUpRight24.json +1 -0
- package/dist/solutions-components/assets/icon/chevronUpRight32.json +1 -0
- package/dist/solutions-components/assets/icon/clearSelection16.json +1 -0
- package/dist/solutions-components/assets/icon/clearSelection24.json +1 -0
- package/dist/solutions-components/assets/icon/clearSelection32.json +1 -0
- package/dist/solutions-components/assets/icon/communityLinkChartLayout16.json +1 -0
- package/dist/solutions-components/assets/icon/communityLinkChartLayout24.json +1 -0
- package/dist/solutions-components/assets/icon/communityLinkChartLayout32.json +1 -0
- package/dist/solutions-components/assets/icon/dataCard16.json +1 -0
- package/dist/solutions-components/assets/icon/dataCard24.json +1 -0
- package/dist/solutions-components/assets/icon/dataCard32.json +1 -0
- package/dist/solutions-components/assets/icon/dateTime16.json +1 -0
- package/dist/solutions-components/assets/icon/dateTime24.json +1 -0
- package/dist/solutions-components/assets/icon/dateTime32.json +1 -0
- package/dist/solutions-components/assets/icon/expressionDefinedColor16.json +1 -0
- package/dist/solutions-components/assets/icon/expressionDefinedColor24.json +1 -0
- package/dist/solutions-components/assets/icon/expressionDefinedColor32.json +1 -0
- package/dist/solutions-components/assets/icon/forceDirectedLinkChartLayout16.json +1 -0
- package/dist/solutions-components/assets/icon/forceDirectedLinkChartLayout24.json +1 -0
- package/dist/solutions-components/assets/icon/forceDirectedLinkChartLayout32.json +1 -0
- package/dist/solutions-components/assets/icon/hierarchicalLinkChartLayout16.json +1 -0
- package/dist/solutions-components/assets/icon/hierarchicalLinkChartLayout24.json +1 -0
- package/dist/solutions-components/assets/icon/hierarchicalLinkChartLayout32.json +1 -0
- package/dist/solutions-components/assets/icon/knowledgeStudio16.json +1 -0
- package/dist/solutions-components/assets/icon/knowledgeStudio24.json +1 -0
- package/dist/solutions-components/assets/icon/knowledgeStudio32.json +1 -0
- package/dist/solutions-components/assets/icon/linkChartExpand16.json +1 -0
- package/dist/solutions-components/assets/icon/linkChartExpand24.json +1 -0
- package/dist/solutions-components/assets/icon/linkChartExpand32.json +1 -0
- package/dist/solutions-components/assets/icon/minusSquare16F.json +1 -0
- package/dist/solutions-components/assets/icon/minusSquare24F.json +1 -0
- package/dist/solutions-components/assets/icon/minusSquare32F.json +1 -0
- package/dist/solutions-components/assets/icon/newLinkChart16.json +1 -0
- package/dist/solutions-components/assets/icon/newLinkChart24.json +1 -0
- package/dist/solutions-components/assets/icon/newLinkChart32.json +1 -0
- package/dist/solutions-components/assets/icon/radialTreeLinkChartYayout16.json +1 -0
- package/dist/solutions-components/assets/icon/radialTreeLinkChartYayout24.json +1 -0
- package/dist/solutions-components/assets/icon/radialTreeLinkChartYayout32.json +1 -0
- package/dist/solutions-components/assets/icon/removeLinkchart16.json +1 -0
- package/dist/solutions-components/assets/icon/removeLinkchart24.json +1 -0
- package/dist/solutions-components/assets/icon/removeLinkchart32.json +1 -0
- package/dist/solutions-components/assets/icon/simpleLinkChartLayout16.json +1 -0
- package/dist/solutions-components/assets/icon/simpleLinkChartLayout24.json +1 -0
- package/dist/solutions-components/assets/icon/simpleLinkChartLayout32.json +1 -0
- package/dist/solutions-components/assets/icon/smartTreeLinkChartLayout16.json +1 -0
- package/dist/solutions-components/assets/icon/smartTreeLinkChartLayout24.json +1 -0
- package/dist/solutions-components/assets/icon/smartTreeLinkChartLayout32.json +1 -0
- package/dist/solutions-components/assets/icon/sortAscendingArrow16.json +1 -1
- package/dist/solutions-components/assets/icon/sortAscendingArrow24.json +1 -1
- package/dist/solutions-components/assets/icon/sortAscendingArrow32.json +1 -1
- package/dist/solutions-components/assets/icon/sortDescendingArrow16.json +1 -1
- package/dist/solutions-components/assets/icon/sortDescendingArrow24.json +1 -1
- package/dist/solutions-components/assets/icon/sortDescendingArrow32.json +1 -1
- package/dist/solutions-components/assets/icon/timeZone16.json +1 -0
- package/dist/solutions-components/assets/icon/timeZone24.json +1 -0
- package/dist/solutions-components/assets/icon/timeZone32.json +1 -0
- package/dist/solutions-components/assets/icon/updateProject16.json +1 -0
- package/dist/solutions-components/assets/icon/updateProject24.json +1 -0
- package/dist/solutions-components/assets/icon/updateProject32.json +1 -0
- package/dist/solutions-components/demos/crowdsource-manager.html +26 -1
- package/dist/solutions-components/{p-9fb16c72.entry.js → p-0109bef4.entry.js} +10 -10
- package/dist/solutions-components/{p-46d5970b.entry.js → p-01c83b8c.entry.js} +1 -1
- package/dist/solutions-components/{p-6de98c51.js → p-0266ca81.js} +1 -1
- package/dist/solutions-components/{p-8a758303.js → p-05b2bdf9.js} +3 -3
- package/dist/solutions-components/p-072155f9.js +12 -0
- package/dist/solutions-components/{p-e07b8a72.entry.js → p-082365d6.entry.js} +3 -3
- package/dist/solutions-components/{p-ea282908.js → p-0b8463d6.js} +1 -1
- package/dist/solutions-components/{p-cad5587c.entry.js → p-0c2e392e.entry.js} +6 -6
- package/dist/solutions-components/p-0dce2c3b.entry.js +6 -0
- package/dist/solutions-components/{p-c3f8b670.js → p-0ecd7346.js} +1 -1
- package/dist/solutions-components/{p-18f1772b.js → p-0ed14b4b.js} +1 -1
- package/dist/solutions-components/p-0f77e83c.entry.js +11 -0
- package/dist/solutions-components/{p-29d41c7e.js → p-0f85fa4b.js} +1 -1
- package/dist/solutions-components/{p-541697d0.js → p-0fa3d1aa.js} +2 -2
- package/dist/solutions-components/{p-a6900100.entry.js → p-10e1ebe4.entry.js} +3 -3
- package/dist/solutions-components/{p-7c33e500.entry.js → p-12f06497.entry.js} +1 -1
- package/dist/solutions-components/{p-f41105c8.js → p-138cf009.js} +1 -1
- package/dist/solutions-components/{p-2b96e551.entry.js → p-149b4d3c.entry.js} +3 -3
- package/dist/solutions-components/{p-022a9b7a.js → p-167eb73b.js} +1 -1
- package/dist/solutions-components/{p-32f9c709.js → p-168a7d63.js} +1 -1
- package/dist/solutions-components/{p-2b252afd.entry.js → p-17a29fa6.entry.js} +1 -1
- package/dist/solutions-components/p-18538cd9.entry.js +11 -0
- package/dist/solutions-components/p-1bcfca9b.entry.js +6 -0
- package/dist/solutions-components/{p-19fe7725.js → p-1cebde99.js} +1 -1
- package/dist/solutions-components/{p-b948ecd2.entry.js → p-1dbaff04.entry.js} +2 -2
- package/dist/solutions-components/{p-2656168f.entry.js → p-1e7a31c1.entry.js} +3 -3
- package/dist/solutions-components/{p-d554507d.js → p-1eda2d20.js} +1 -1
- package/dist/solutions-components/{p-ef48bd77.entry.js → p-1efcac52.entry.js} +3 -3
- package/dist/solutions-components/{p-c6d83122.entry.js → p-1fba74a5.entry.js} +3 -3
- package/dist/solutions-components/{p-3cbe5ef3.js → p-2154de6d.js} +1 -1
- package/dist/solutions-components/{p-1ea1dcac.js → p-22d06238.js} +1 -1
- package/dist/solutions-components/{p-1ede2e18.js → p-2592c0b8.js} +3 -3
- package/dist/solutions-components/{p-90bbf223.entry.js → p-261394d7.entry.js} +1 -1
- package/dist/solutions-components/{p-754e2df2.js → p-27e0f599.js} +1 -1
- package/dist/solutions-components/{p-6a820c4d.js → p-28b5a7cf.js} +1 -1
- package/dist/solutions-components/{p-804e4751.entry.js → p-29efbf76.entry.js} +3 -3
- package/dist/solutions-components/{p-421d5e7c.js → p-2bf63e2e.js} +1 -1
- package/dist/solutions-components/{p-d4c103a8.js → p-2e8a41da.js} +1 -1
- package/dist/solutions-components/{p-de59d2f5.js → p-31aaa60f.js} +1 -1
- package/dist/solutions-components/{p-a2748b38.entry.js → p-34ef43ce.entry.js} +1 -1
- package/dist/solutions-components/{p-97c47bbd.entry.js → p-35cb6eca.entry.js} +3 -3
- package/dist/solutions-components/{p-39ff5ee5.js → p-3766be72.js} +2 -2
- package/dist/solutions-components/{p-9e727488.js → p-38f906f2.js} +1 -1
- package/dist/solutions-components/{p-c5e294e4.js → p-3948a96c.js} +1 -1
- package/dist/solutions-components/{p-9bbc05ff.js → p-3a844a72.js} +1 -1
- package/dist/solutions-components/{p-825bac0e.js → p-3c15959e.js} +1 -1
- package/dist/solutions-components/{p-ffac6f88.entry.js → p-3ce89910.entry.js} +1 -1
- package/dist/solutions-components/{p-7920b5a2.entry.js → p-3cfaf52b.entry.js} +2 -2
- package/dist/solutions-components/{p-b9749e09.js → p-3d3e6e20.js} +1 -1
- package/dist/solutions-components/{p-844ee452.entry.js → p-410068d9.entry.js} +2 -2
- package/dist/solutions-components/{p-a775ba2f.entry.js → p-42f9ab43.entry.js} +3 -3
- package/dist/solutions-components/{p-2291b598.js → p-43ba7a04.js} +1 -1
- package/dist/solutions-components/{p-f28d69ac.entry.js → p-446ab7f8.entry.js} +3 -3
- package/dist/solutions-components/{p-4bc7b875.entry.js → p-452850b4.entry.js} +2 -2
- package/dist/solutions-components/{p-0fbc27fd.entry.js → p-456f5afe.entry.js} +2 -2
- package/dist/solutions-components/{p-b86b4512.entry.js → p-46e0ce0c.entry.js} +2 -2
- package/dist/solutions-components/p-470a9ec4.entry.js +6 -0
- package/dist/solutions-components/{p-d62784a4.js → p-476e5302.js} +1 -1
- package/dist/solutions-components/{p-7b90c18e.entry.js → p-476eb52c.entry.js} +1 -1
- package/dist/solutions-components/{p-5961c4e0.js → p-4a75b3dc.js} +1 -1
- package/dist/solutions-components/{p-42c7a5fa.entry.js → p-4d76eaf6.entry.js} +2 -2
- package/dist/solutions-components/{p-4e4b55b9.entry.js → p-4f9f97b2.entry.js} +3 -3
- package/dist/solutions-components/{p-67ce3c0c.entry.js → p-56f1d66b.entry.js} +3 -3
- package/dist/solutions-components/{p-5b9b1cbb.entry.js → p-58167087.entry.js} +3 -3
- package/dist/solutions-components/{p-ad72a379.entry.js → p-586f0e3d.entry.js} +3 -3
- package/dist/solutions-components/{p-6f2edf5b.js → p-588bc0c0.js} +1 -1
- package/dist/solutions-components/{p-a040efff.js → p-5958dad9.js} +1 -1
- package/dist/solutions-components/{p-4d17943f.js → p-5c9fa0e7.js} +1 -1
- package/dist/solutions-components/{p-b4157e6a.js → p-5ceef49b.js} +1 -1
- package/dist/solutions-components/{p-c9858d8f.entry.js → p-5d62566c.entry.js} +2 -2
- package/dist/solutions-components/{p-5f5c371e.js → p-5e08d4de.js} +1 -1
- package/dist/solutions-components/{p-b684bbc7.entry.js → p-5eaaf6ea.entry.js} +1 -1
- package/dist/solutions-components/{p-10248e04.js → p-60c15592.js} +1 -1
- package/dist/solutions-components/{p-7601988d.entry.js → p-6295e168.entry.js} +2 -2
- package/dist/solutions-components/{p-4f0c3fc1.js → p-635bbbd4.js} +1 -1
- package/dist/solutions-components/{p-aeebdb15.js → p-636f4631.js} +1 -1
- package/dist/solutions-components/{p-fb7e0054.js → p-643a0325.js} +1 -1
- package/dist/solutions-components/{p-606ca126.js → p-64e2c099.js} +1 -1
- package/dist/solutions-components/{p-ad4d6d02.entry.js → p-651459e2.entry.js} +4 -4
- package/dist/solutions-components/{p-b0c4138f.entry.js → p-667e7134.entry.js} +2 -2
- package/dist/solutions-components/{p-4b95d05e.entry.js → p-66b5211f.entry.js} +1 -1
- package/dist/solutions-components/{p-216801d5.js → p-688f6a0a.js} +1 -1
- package/dist/solutions-components/{p-3e139360.js → p-6be3c411.js} +1 -1
- package/dist/solutions-components/{p-6a524392.entry.js → p-6ce7b446.entry.js} +2 -2
- package/dist/solutions-components/{p-0e7914e6.entry.js → p-6ddc9567.entry.js} +3 -3
- package/dist/solutions-components/{p-7b9adfff.js → p-7060caf6.js} +1 -1
- package/dist/solutions-components/{p-bd3a3afe.js → p-7262469a.js} +1 -1
- package/dist/solutions-components/{p-3f0193e9.js → p-73220ff1.js} +1 -1
- package/dist/solutions-components/{p-31ff3452.entry.js → p-78a40191.entry.js} +2 -2
- package/dist/solutions-components/{p-82199b7b.entry.js → p-7a027758.entry.js} +1 -1
- package/dist/solutions-components/{p-a843af2a.js → p-7b2314ac.js} +1 -1
- package/dist/solutions-components/p-7bb12deb.js +11 -0
- package/dist/solutions-components/{p-56300653.js → p-7f271c31.js} +5 -5
- package/dist/solutions-components/p-7f9642d5.js +21 -0
- package/dist/solutions-components/{p-5c097e25.entry.js → p-80cb42e4.entry.js} +3 -3
- package/dist/solutions-components/{p-5383607a.js → p-80ea5869.js} +3 -3
- package/dist/solutions-components/{p-ab8f5c6b.entry.js → p-81814234.entry.js} +2 -2
- package/dist/solutions-components/{p-abda8ca2.entry.js → p-8544d557.entry.js} +2 -2
- package/dist/solutions-components/{p-680d193d.entry.js → p-864c190b.entry.js} +3 -3
- package/dist/solutions-components/p-869d4521.entry.js +6 -0
- package/dist/solutions-components/{p-d3a22725.js → p-872036a8.js} +1 -1
- package/dist/solutions-components/{p-22d580b0.entry.js → p-879d6377.entry.js} +3 -3
- package/dist/solutions-components/{p-4805ff13.js → p-87d66120.js} +1 -1
- package/dist/solutions-components/{p-9cb94ea0.js → p-8927339d.js} +1 -1
- package/dist/solutions-components/{p-7aa949a3.entry.js → p-89504313.entry.js} +2 -2
- package/dist/solutions-components/{p-cf43278c.entry.js → p-8af52074.entry.js} +3 -3
- package/dist/solutions-components/{p-3fc17d72.js → p-8b448a5b.js} +1 -1
- package/dist/solutions-components/{p-03fccde6.entry.js → p-8b74f5bb.entry.js} +3 -3
- package/dist/solutions-components/p-8b8a6c1f.entry.js +6 -0
- package/dist/solutions-components/{p-2ae17fa2.js → p-8c61431d.js} +1 -1
- package/dist/solutions-components/{p-634e1240.js → p-8d00a17e.js} +1 -1
- package/dist/solutions-components/{p-c07af9c2.entry.js → p-8f68f1d3.entry.js} +2 -2
- package/dist/solutions-components/{p-e6bee82f.js → p-8f8d2861.js} +1 -1
- package/dist/solutions-components/{p-108fbf59.entry.js → p-90cef98d.entry.js} +1 -1
- package/dist/solutions-components/{p-9603c3ff.entry.js → p-9370bb48.entry.js} +2 -2
- package/dist/solutions-components/{p-a777b18c.js → p-96239d0d.js} +2 -2
- package/dist/solutions-components/p-97a4001d.entry.js +6 -0
- package/dist/solutions-components/{p-215d3505.js → p-99402001.js} +1 -1
- package/dist/solutions-components/p-99891e57.js +11 -0
- package/dist/solutions-components/{p-15ef7894.js → p-9a35ef8e.js} +1 -1
- package/dist/solutions-components/{p-35123c90.js → p-9b76bf3d.js} +1 -1
- package/dist/solutions-components/{p-6b2f2b85.js → p-a16feeec.js} +4 -4
- package/dist/solutions-components/{p-e645edf2.entry.js → p-a1c6db13.entry.js} +1 -1
- package/dist/solutions-components/{p-75f26870.js → p-a26dc184.js} +13 -13
- package/dist/solutions-components/{p-0cc32f06.js → p-a287be8b.js} +1 -1
- package/dist/solutions-components/{p-052ff2c7.js → p-a46f1b45.js} +1 -1
- package/dist/solutions-components/{p-1f468797.js → p-ab072027.js} +1 -1
- package/dist/solutions-components/{p-31316d61.entry.js → p-ac0abf04.entry.js} +3 -3
- package/dist/solutions-components/{p-38ef0684.js → p-ad75b9bb.js} +2 -2
- package/dist/solutions-components/{p-a08bd8c1.entry.js → p-ae6a7b3b.entry.js} +1 -1
- package/dist/solutions-components/{p-05db4340.js → p-aea37c90.js} +1 -1
- package/dist/solutions-components/{p-164be8ef.entry.js → p-b25005cf.entry.js} +1 -1
- package/dist/solutions-components/{p-b2e6c578.js → p-b28b6d40.js} +1 -1
- package/dist/solutions-components/{p-639cca97.js → p-b28ff52c.js} +1 -1
- package/dist/solutions-components/{p-5e59219b.entry.js → p-b2a52acb.entry.js} +1 -1
- package/dist/solutions-components/{p-21f00df6.js → p-bde323ec.js} +1 -1
- package/dist/solutions-components/{p-a0edbb27.js → p-be146646.js} +1 -1
- package/dist/solutions-components/{p-a258f5e7.js → p-c1dcc1e7.js} +1 -1
- package/dist/solutions-components/p-c3ab7439.js +11 -0
- package/dist/solutions-components/{p-283e3a2d.js → p-c6e55b32.js} +1 -1
- package/dist/solutions-components/{p-e10a62f4.entry.js → p-c79c7978.entry.js} +3 -3
- package/dist/solutions-components/{p-647a4130.js → p-c9633864.js} +3 -3
- package/dist/solutions-components/{p-916f90ec.entry.js → p-c968f9aa.entry.js} +1 -1
- package/dist/solutions-components/{p-cf1af08f.entry.js → p-c9df539a.entry.js} +1 -1
- package/dist/solutions-components/{p-93074bd4.entry.js → p-ca3d7edd.entry.js} +2 -2
- package/dist/solutions-components/{p-2005280f.js → p-cacfa6ae.js} +2 -2
- package/dist/solutions-components/{p-27a1ac1f.entry.js → p-cc2393c3.entry.js} +3 -3
- package/dist/solutions-components/p-cd673260.js +6 -0
- package/dist/solutions-components/{p-761a033a.entry.js → p-cec47579.entry.js} +2 -2
- package/dist/solutions-components/{p-32ef065d.entry.js → p-ced11bea.entry.js} +2 -2
- package/dist/solutions-components/{p-ee066c67.js → p-cee23126.js} +5 -5
- package/dist/solutions-components/p-d2d3e4b5.js +11 -0
- package/dist/solutions-components/{p-0ece6df1.entry.js → p-d6f68a4e.entry.js} +2 -2
- package/dist/solutions-components/{p-326fa270.js → p-d864b7e3.js} +1 -1
- package/dist/solutions-components/{p-5adf37ea.entry.js → p-da6acb22.entry.js} +2 -2
- package/dist/solutions-components/{p-de58bd49.js → p-e0c011b8.js} +1 -1
- package/dist/solutions-components/{p-58ce5639.js → p-e0fb0920.js} +1 -1
- package/dist/solutions-components/{p-b1f84ae5.js → p-e2637fe6.js} +1 -1
- package/dist/solutions-components/{p-ef96894d.entry.js → p-e2eb4fd3.entry.js} +4 -4
- package/dist/solutions-components/{p-18869c0f.js → p-e3525c00.js} +1 -1
- package/dist/solutions-components/{p-1add4e39.entry.js → p-e3d72832.entry.js} +2 -2
- package/dist/solutions-components/{p-6431fd69.js → p-e4d2fcc5.js} +3 -3
- package/dist/solutions-components/{p-f055a840.js → p-e761b7cd.js} +1 -1
- package/dist/solutions-components/{p-4daae757.js → p-ea285144.js} +1 -1
- package/dist/solutions-components/p-ebbff02e.js +6 -0
- package/dist/solutions-components/{p-07bc4f07.entry.js → p-ec378ea0.entry.js} +3 -3
- package/dist/solutions-components/{p-12a4fa84.js → p-ec889511.js} +1 -1
- package/dist/solutions-components/{p-e02fcfa9.entry.js → p-f153f1c9.entry.js} +2 -2
- package/dist/solutions-components/{p-b49bdc72.entry.js → p-f596eabd.entry.js} +1 -1
- package/dist/solutions-components/{p-3aba40e8.js → p-f7b520ae.js} +2 -2
- package/dist/solutions-components/{p-4c43820f.entry.js → p-f815b5ef.entry.js} +1 -1
- package/dist/solutions-components/{p-955a956a.entry.js → p-fe96e0d9.entry.js} +4 -4
- package/dist/solutions-components/{p-b5d67495.entry.js → p-feff224c.entry.js} +2 -2
- package/dist/solutions-components/solutions-components.esm.js +1 -1
- package/dist/solutions-components/utils/downloadUtils.ts +347 -326
- package/dist/solutions-components/utils/interfaces.ts +11 -0
- package/dist/solutions-components/utils/test/downloadUtils.spec.tsx +587 -61
- package/dist/types/components/crowdsource-manager/crowdsource-manager.d.ts +11 -4
- package/dist/types/components/layer-table/layer-table.d.ts +14 -2
- package/dist/types/components/map-card/map-card.d.ts +2 -2
- package/dist/types/components/map-legend/map-legend.d.ts +64 -0
- package/dist/types/components/map-tools/map-tools.d.ts +13 -1
- package/dist/types/components.d.ts +40 -11
- package/dist/types/preact.d.ts +2 -0
- package/dist/types/utils/downloadUtils.d.ts +122 -15
- package/dist/types/utils/interfaces.d.ts +9 -0
- package/package.json +4 -10
- package/dist/solutions-components/p-2d70d3fd.js +0 -12
- package/dist/solutions-components/p-361f1fe1.js +0 -11
- package/dist/solutions-components/p-3bd99fc9.js +0 -11
- package/dist/solutions-components/p-418d0b60.entry.js +0 -6
- package/dist/solutions-components/p-525f1188.js +0 -11
- package/dist/solutions-components/p-55aefaa8.entry.js +0 -6
- package/dist/solutions-components/p-5b5a6ac8.entry.js +0 -6
- package/dist/solutions-components/p-91caf655.entry.js +0 -11
- package/dist/solutions-components/p-a0a2c53d.js +0 -21
- package/dist/solutions-components/p-a6c85bd7.entry.js +0 -6
- package/dist/solutions-components/p-b6578a32.js +0 -6
- package/dist/solutions-components/p-baccfd70.entry.js +0 -6
- package/dist/solutions-components/p-bba3fa4e.entry.js +0 -11
- package/dist/solutions-components/p-c1ee0d69.js +0 -11
- package/dist/solutions-components/p-d6322e4b.js +0 -6
|
@@ -15,9 +15,92 @@
|
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
import * as downloadUtils from "../downloadUtils";
|
|
18
|
+
import * as esriLoader from 'esri-loader';
|
|
18
19
|
|
|
19
20
|
describe("downloadUtils", () => {
|
|
20
21
|
|
|
22
|
+
describe('removeDuplicateLabels', () => {
|
|
23
|
+
|
|
24
|
+
it('should remove duplicate labels', () => {
|
|
25
|
+
const labels = [
|
|
26
|
+
['Label 1', 'Value 1'],
|
|
27
|
+
['Label 2', 'Value 2'],
|
|
28
|
+
['Label 1', 'Value 1']
|
|
29
|
+
];
|
|
30
|
+
const result = downloadUtils.removeDuplicateLabels(labels);
|
|
31
|
+
expect(result).toEqual([
|
|
32
|
+
['Label 1', 'Value 1'],
|
|
33
|
+
['Label 2', 'Value 2']
|
|
34
|
+
]);
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
describe("_cleanupLabel", () => {
|
|
40
|
+
|
|
41
|
+
it("handles <br> variants", () => {
|
|
42
|
+
const labelText = "<div style='text-align: left;'>{NAME}<br />{STREET}<br/>{CITY}, {STATE} {ZIP} <br></div>";
|
|
43
|
+
const expectedCleanedText = "{NAME}|{STREET}|{CITY}, {STATE} {ZIP}";
|
|
44
|
+
|
|
45
|
+
const result: string = downloadUtils._cleanupLabel(labelText);
|
|
46
|
+
expect(result).toEqual(expectedCleanedText);
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
it("handles <p>", () => {
|
|
50
|
+
const labelText = "<p>{NAME}</p><p>{STREET}</p><p>{CITY}, {STATE} {ZIP}</p>";
|
|
51
|
+
const expectedCleanedText = "{NAME}|{STREET}|{CITY}, {STATE} {ZIP}";
|
|
52
|
+
|
|
53
|
+
const result: string = downloadUtils._cleanupLabel(labelText);
|
|
54
|
+
expect(result).toEqual(expectedCleanedText);
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
it("handles popup's use of \xA0", () => {
|
|
58
|
+
const labelText =
|
|
59
|
+
"<div style='text-align: left;'>{NAME}<br />{STREET}<br />{CITY},\xA0{STATE}\xA0{ZIP}\xA0<br /></div>";
|
|
60
|
+
const expectedCleanedText = "{NAME}|{STREET}|{CITY}, {STATE} {ZIP}";
|
|
61
|
+
|
|
62
|
+
const result: string = downloadUtils._cleanupLabel(labelText);
|
|
63
|
+
expect(result).toEqual(expectedCleanedText);
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
it("removes newlines and blank lines, and trims each line", () => {
|
|
67
|
+
const labelText =
|
|
68
|
+
" \n\n {NAME} \n \n\n {STREET}\n{CITY}, {STATE} {ZIP}\n\n \n ";
|
|
69
|
+
const expectedCleanedText = "{NAME}|{STREET}|{CITY}, {STATE} {ZIP}";
|
|
70
|
+
|
|
71
|
+
const result: string = downloadUtils._cleanupLabel(labelText);
|
|
72
|
+
expect(result).toEqual(expectedCleanedText);
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
it("handles tabs", () => {
|
|
76
|
+
const labelText =
|
|
77
|
+
" \t\t {NAME} \n \n\n {STREET}\n{CITY}, {STATE} {ZIP}";
|
|
78
|
+
const expectedCleanedText = "{NAME}|{STREET}|{CITY}, {STATE} {ZIP}";
|
|
79
|
+
|
|
80
|
+
const result: string = downloadUtils._cleanupLabel(labelText);
|
|
81
|
+
expect(result).toEqual(expectedCleanedText);
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
it("removes extra HTML", () => {
|
|
85
|
+
const labelText =
|
|
86
|
+
"\n<div style='text-align: left;'><span style='font-weight:bold'>{NAME}</span><br />{STREET}<br />{CITY},\xA0{STATE}\xA0{ZIP}\xA0<br /></div>\n";
|
|
87
|
+
const expectedCleanedText = "{NAME}|{STREET}|{CITY}, {STATE} {ZIP}";
|
|
88
|
+
|
|
89
|
+
const result: string = downloadUtils._cleanupLabel(labelText);
|
|
90
|
+
expect(result).toEqual(expectedCleanedText);
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
it("handles some special characters", () => {
|
|
94
|
+
const labelText =
|
|
95
|
+
"<div style='text-align: left;'><{NAME}><br />{STREET}<br/>{CITY}, {STATE} {ZIP}<br></div>";
|
|
96
|
+
const expectedCleanedText = "<{NAME}>|{STREET}|{CITY}, {STATE} {ZIP}";
|
|
97
|
+
|
|
98
|
+
const result: string = downloadUtils._cleanupLabel(labelText);
|
|
99
|
+
expect(result).toEqual(expectedCleanedText);
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
});
|
|
103
|
+
|
|
21
104
|
describe("_convertPopupFieldsToLabelSpec", () => {
|
|
22
105
|
|
|
23
106
|
it("handles fieldname visibility", () => {
|
|
@@ -30,8 +113,10 @@ describe("downloadUtils", () => {
|
|
|
30
113
|
const bypassFieldVisiblity = false;
|
|
31
114
|
const expectedLabelSpec = "{A}|{B}|{D}";
|
|
32
115
|
|
|
33
|
-
const
|
|
34
|
-
|
|
116
|
+
const result: downloadUtils.ILabelFormat =
|
|
117
|
+
downloadUtils._convertPopupFieldsToLabelSpec(fieldInfos, bypassFieldVisiblity);
|
|
118
|
+
expect(result.type).toEqual("pattern");
|
|
119
|
+
expect(result.format).toEqual(expectedLabelSpec);
|
|
35
120
|
});
|
|
36
121
|
|
|
37
122
|
it("handles fieldname ignoring visibility", () => {
|
|
@@ -44,8 +129,10 @@ describe("downloadUtils", () => {
|
|
|
44
129
|
const bypassFieldVisiblity = true;
|
|
45
130
|
const expectedLabelSpec = "{A}|{B}|{C}|{D}";
|
|
46
131
|
|
|
47
|
-
const
|
|
48
|
-
|
|
132
|
+
const result: downloadUtils.ILabelFormat =
|
|
133
|
+
downloadUtils._convertPopupFieldsToLabelSpec(fieldInfos, bypassFieldVisiblity);
|
|
134
|
+
expect(result.type).toEqual("pattern");
|
|
135
|
+
expect(result.format).toEqual(expectedLabelSpec);
|
|
49
136
|
});
|
|
50
137
|
|
|
51
138
|
});
|
|
@@ -56,48 +143,81 @@ describe("downloadUtils", () => {
|
|
|
56
143
|
const popupInfo = "<div style='text-align: left;'>{NAME}<br />{STREET}<br/>{CITY}, {STATE} {ZIP} <br></div>";
|
|
57
144
|
const expectedLabelSpec = "{NAME}|{STREET}|{CITY}, {STATE} {ZIP}";
|
|
58
145
|
|
|
59
|
-
const
|
|
60
|
-
expect(
|
|
146
|
+
const result: downloadUtils.ILabelFormat = downloadUtils._convertPopupTextToLabelSpec(popupInfo);
|
|
147
|
+
expect(result.type).toEqual("pattern");
|
|
148
|
+
expect(result.format).toEqual(expectedLabelSpec);
|
|
61
149
|
});
|
|
62
150
|
|
|
63
151
|
it("handles <p>", () => {
|
|
64
152
|
const popupInfo = "<p>{NAME}</p><p>{STREET}</p><p>{CITY}, {STATE} {ZIP}</p>";
|
|
65
153
|
const expectedLabelSpec = "{NAME}|{STREET}|{CITY}, {STATE} {ZIP}";
|
|
66
154
|
|
|
67
|
-
const
|
|
68
|
-
expect(
|
|
155
|
+
const result: downloadUtils.ILabelFormat = downloadUtils._convertPopupTextToLabelSpec(popupInfo);
|
|
156
|
+
expect(result.type).toEqual("pattern");
|
|
157
|
+
expect(result.format).toEqual(expectedLabelSpec);
|
|
69
158
|
});
|
|
70
159
|
|
|
71
160
|
it("handles popup's use of \xA0", () => {
|
|
72
|
-
const popupInfo =
|
|
161
|
+
const popupInfo =
|
|
162
|
+
"<div style='text-align: left;'>{NAME}<br />{STREET}<br />{CITY},\xA0{STATE}\xA0{ZIP}\xA0<br /></div>";
|
|
73
163
|
const expectedLabelSpec = "{NAME}|{STREET}|{CITY}, {STATE} {ZIP}";
|
|
74
164
|
|
|
75
|
-
const
|
|
76
|
-
expect(
|
|
165
|
+
const result: downloadUtils.ILabelFormat = downloadUtils._convertPopupTextToLabelSpec(popupInfo);
|
|
166
|
+
expect(result.type).toEqual("pattern");
|
|
167
|
+
expect(result.format).toEqual(expectedLabelSpec);
|
|
77
168
|
});
|
|
78
169
|
|
|
79
170
|
it("removes newlines and blank lines, and trims each line", () => {
|
|
80
|
-
const popupInfo =
|
|
171
|
+
const popupInfo =
|
|
172
|
+
" \n\n {NAME} \n \n\n {STREET}\n{CITY}, {STATE} {ZIP}\n\n \n ";
|
|
81
173
|
const expectedLabelSpec = "{NAME}|{STREET}|{CITY}, {STATE} {ZIP}";
|
|
82
174
|
|
|
83
|
-
const
|
|
84
|
-
expect(
|
|
175
|
+
const result: downloadUtils.ILabelFormat = downloadUtils._convertPopupTextToLabelSpec(popupInfo);
|
|
176
|
+
expect(result.type).toEqual("pattern");
|
|
177
|
+
expect(result.format).toEqual(expectedLabelSpec);
|
|
85
178
|
});
|
|
86
179
|
|
|
87
180
|
it("removes extra HTML", () => {
|
|
88
|
-
const popupInfo =
|
|
181
|
+
const popupInfo =
|
|
182
|
+
"\n<div style='text-align: left;'><span style='font-weight:bold'>{NAME}</span><br />{STREET}<br />{CITY},\xA0{STATE}\xA0{ZIP}\xA0<br /></div>\n";
|
|
89
183
|
const expectedLabelSpec = "{NAME}|{STREET}|{CITY}, {STATE} {ZIP}";
|
|
90
184
|
|
|
91
|
-
const
|
|
92
|
-
expect(
|
|
185
|
+
const result: downloadUtils.ILabelFormat = downloadUtils._convertPopupTextToLabelSpec(popupInfo);
|
|
186
|
+
expect(result.type).toEqual("pattern");
|
|
187
|
+
expect(result.format).toEqual(expectedLabelSpec);
|
|
93
188
|
});
|
|
94
189
|
|
|
95
190
|
it("handles some special characters", () => {
|
|
96
|
-
const popupInfo =
|
|
191
|
+
const popupInfo =
|
|
192
|
+
"<div style='text-align: left;'><{NAME}><br />{STREET}<br/>{CITY}, {STATE} {ZIP}<br></div>";
|
|
97
193
|
const expectedLabelSpec = "<{NAME}>|{STREET}|{CITY}, {STATE} {ZIP}";
|
|
98
194
|
|
|
99
|
-
const
|
|
100
|
-
expect(
|
|
195
|
+
const result: downloadUtils.ILabelFormat = downloadUtils._convertPopupTextToLabelSpec(popupInfo);
|
|
196
|
+
expect(result.type).toEqual("pattern");
|
|
197
|
+
expect(result.format).toEqual(expectedLabelSpec);
|
|
198
|
+
});
|
|
199
|
+
|
|
200
|
+
});
|
|
201
|
+
|
|
202
|
+
describe("_convertPopupArcadeToLabelSpec", () => {
|
|
203
|
+
|
|
204
|
+
it("handles <br> variants", async () => {
|
|
205
|
+
const Arcade = {
|
|
206
|
+
createArcadeExecutor: (): Promise<__esri.ArcadeExecutor> => {
|
|
207
|
+
const executor: __esri.ArcadeExecutor = {} as __esri.ArcadeExecutor;
|
|
208
|
+
return Promise.resolve(executor);
|
|
209
|
+
}
|
|
210
|
+
};
|
|
211
|
+
const loadModulesSpy = jest.spyOn(esriLoader, 'loadModules').mockResolvedValue([Arcade]);
|
|
212
|
+
|
|
213
|
+
const expressionInfo: __esri.ElementExpressionInfo = {
|
|
214
|
+
expression: 'var feat = $feature\nvar label = `\n\t${feat["name"]} ${feat["age"]} years <br>\n\tstarted: ${feat["start"]}\n`\n\nreturn { \n type : \'text\', \n text : label\n}'
|
|
215
|
+
} as any;
|
|
216
|
+
|
|
217
|
+
const result: downloadUtils.ILabelFormat = await downloadUtils._convertPopupArcadeToLabelSpec(expressionInfo);
|
|
218
|
+
expect(result.type).toEqual("executor");
|
|
219
|
+
|
|
220
|
+
loadModulesSpy.mockRestore();
|
|
101
221
|
});
|
|
102
222
|
|
|
103
223
|
});
|
|
@@ -131,294 +251,700 @@ describe("downloadUtils", () => {
|
|
|
131
251
|
});
|
|
132
252
|
|
|
133
253
|
describe("_getExpressionsFromLabel", () => {
|
|
254
|
+
|
|
134
255
|
it("handles a label with ASCII expression names", () => {
|
|
135
256
|
const labelSpec = "{expression/expr0}\n{OWNERNM1}\n{PSTLADDRESS}\n{PSTLCITY}, {PSTLSTATE} {PSTLZIP5}";
|
|
136
257
|
const expectedExpressions = ["{expression/expr0}"];
|
|
137
258
|
const expressions = downloadUtils._getExpressionsFromLabel(labelSpec);
|
|
138
259
|
expect(expressions).toEqual(expectedExpressions);
|
|
139
260
|
});
|
|
261
|
+
|
|
140
262
|
});
|
|
141
263
|
|
|
142
|
-
describe("
|
|
264
|
+
describe("_getFieldExpressionsFromLabel", () => {
|
|
265
|
+
|
|
143
266
|
it("handles a label with ASCII field names", () => {
|
|
144
267
|
const labelSpec = "{expression/expr0}\n{OWNERNM1}\n{PSTLADDRESS}\n{PSTLCITY}, {PSTLSTATE} {PSTLZIP5}";
|
|
145
268
|
const expectedFields = ["{OWNERNM1}", "{PSTLADDRESS}", "{PSTLCITY}", "{PSTLSTATE}", "{PSTLZIP5}"];
|
|
146
|
-
const fields = downloadUtils.
|
|
269
|
+
const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec);
|
|
147
270
|
expect(fields).toEqual(expectedFields);
|
|
148
271
|
});
|
|
149
272
|
|
|
150
273
|
it("handles a label with Arabic (ar) field name", () => {
|
|
151
274
|
const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{بحث}|{time}";
|
|
152
275
|
const expectedFields = ["{latitude}", "{longitude}", "{بحث}", "{time}"];
|
|
153
|
-
const fields = downloadUtils.
|
|
276
|
+
const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec);
|
|
154
277
|
expect(fields).toEqual(expectedFields);
|
|
155
278
|
});
|
|
156
279
|
|
|
157
280
|
it("handles a label with Bosnian (bs) field name", () => {
|
|
158
281
|
const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{računa}|{time}";
|
|
159
282
|
const expectedFields = ["{latitude}", "{longitude}", "{računa}", "{time}"];
|
|
160
|
-
const fields = downloadUtils.
|
|
283
|
+
const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec);
|
|
161
284
|
expect(fields).toEqual(expectedFields);
|
|
162
285
|
});
|
|
163
286
|
|
|
164
287
|
it("handles a label with Bulgarian (bg) field name", () => {
|
|
165
288
|
const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{Търсене}|{time}";
|
|
166
289
|
const expectedFields = ["{latitude}", "{longitude}", "{Търсене}", "{time}"];
|
|
167
|
-
const fields = downloadUtils.
|
|
290
|
+
const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec);
|
|
168
291
|
expect(fields).toEqual(expectedFields);
|
|
169
292
|
});
|
|
170
293
|
|
|
171
294
|
it("handles a label with Catalan (ca) field name", () => {
|
|
172
295
|
const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{Descripció}|{time}";
|
|
173
296
|
const expectedFields = ["{latitude}", "{longitude}", "{Descripció}", "{time}"];
|
|
174
|
-
const fields = downloadUtils.
|
|
297
|
+
const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec);
|
|
175
298
|
expect(fields).toEqual(expectedFields);
|
|
176
299
|
});
|
|
177
300
|
|
|
178
301
|
it("handles a label with Simplified Chinese (zh-cn) field name", () => {
|
|
179
302
|
const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{帐户个人资料}|{time}";
|
|
180
303
|
const expectedFields = ["{latitude}", "{longitude}", "{帐户个人资料}", "{time}"];
|
|
181
|
-
const fields = downloadUtils.
|
|
304
|
+
const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec);
|
|
182
305
|
expect(fields).toEqual(expectedFields);
|
|
183
306
|
});
|
|
184
307
|
|
|
185
308
|
it("handles a label with Traditional Chinese (Hong Kong) (zh-hk) field name", () => {
|
|
186
309
|
const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{帳號設定檔}|{time}";
|
|
187
310
|
const expectedFields = ["{latitude}", "{longitude}", "{帳號設定檔}", "{time}"];
|
|
188
|
-
const fields = downloadUtils.
|
|
311
|
+
const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec);
|
|
189
312
|
expect(fields).toEqual(expectedFields);
|
|
190
313
|
});
|
|
191
314
|
|
|
192
315
|
it("handles a label with Traditional Chinese (Taiwan) (zh-tw) field name", () => {
|
|
193
316
|
const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{搜尋}|{time}";
|
|
194
317
|
const expectedFields = ["{latitude}", "{longitude}", "{搜尋}", "{time}"];
|
|
195
|
-
const fields = downloadUtils.
|
|
318
|
+
const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec);
|
|
196
319
|
expect(fields).toEqual(expectedFields);
|
|
197
320
|
});
|
|
198
321
|
|
|
199
322
|
it("handles a label with Croatian (hr) field name", () => {
|
|
200
323
|
const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{Pretraživanje}|{time}";
|
|
201
324
|
const expectedFields = ["{latitude}", "{longitude}", "{Pretraživanje}", "{time}"];
|
|
202
|
-
const fields = downloadUtils.
|
|
325
|
+
const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec);
|
|
203
326
|
expect(fields).toEqual(expectedFields);
|
|
204
327
|
});
|
|
205
328
|
|
|
206
329
|
it("handles a label with Czech (cs) field name", () => {
|
|
207
330
|
const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{Přihlásit}|{time}";
|
|
208
331
|
const expectedFields = ["{latitude}", "{longitude}", "{Přihlásit}", "{time}"];
|
|
209
|
-
const fields = downloadUtils.
|
|
332
|
+
const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec);
|
|
210
333
|
expect(fields).toEqual(expectedFields);
|
|
211
334
|
});
|
|
212
335
|
|
|
213
336
|
it("handles a label with Danish (da) field name", () => {
|
|
214
337
|
const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{Vælg}|{time}";
|
|
215
338
|
const expectedFields = ["{latitude}", "{longitude}", "{Vælg}", "{time}"];
|
|
216
|
-
const fields = downloadUtils.
|
|
339
|
+
const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec);
|
|
217
340
|
expect(fields).toEqual(expectedFields);
|
|
218
341
|
});
|
|
219
342
|
|
|
220
343
|
it("handles a label with Dutch (nl) field name", () => {
|
|
221
344
|
const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{geïmplementeerd}|{time}";
|
|
222
345
|
const expectedFields = ["{latitude}", "{longitude}", "{geïmplementeerd}", "{time}"];
|
|
223
|
-
const fields = downloadUtils.
|
|
346
|
+
const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec);
|
|
224
347
|
expect(fields).toEqual(expectedFields);
|
|
225
348
|
});
|
|
226
349
|
|
|
227
350
|
it("handles a label with Estonian (et) field name", () => {
|
|
228
351
|
const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{Valdkonnapõhised}|{time}";
|
|
229
352
|
const expectedFields = ["{latitude}", "{longitude}", "{Valdkonnapõhised}", "{time}"];
|
|
230
|
-
const fields = downloadUtils.
|
|
353
|
+
const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec);
|
|
231
354
|
expect(fields).toEqual(expectedFields);
|
|
232
355
|
});
|
|
233
356
|
|
|
234
357
|
it("handles a label with Finnish (fi) field name", () => {
|
|
235
358
|
const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{Näytä}|{time}";
|
|
236
359
|
const expectedFields = ["{latitude}", "{longitude}", "{Näytä}", "{time}"];
|
|
237
|
-
const fields = downloadUtils.
|
|
360
|
+
const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec);
|
|
238
361
|
expect(fields).toEqual(expectedFields);
|
|
239
362
|
});
|
|
240
363
|
|
|
241
364
|
it("handles a label with French (fr) field name", () => {
|
|
242
365
|
const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{accès}|{time}";
|
|
243
366
|
const expectedFields = ["{latitude}", "{longitude}", "{accès}", "{time}"];
|
|
244
|
-
const fields = downloadUtils.
|
|
367
|
+
const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec);
|
|
245
368
|
expect(fields).toEqual(expectedFields);
|
|
246
369
|
});
|
|
247
370
|
|
|
248
371
|
it("handles a label with German (de) field name", () => {
|
|
249
372
|
const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{Öffentliche}|{time}";
|
|
250
373
|
const expectedFields = ["{latitude}", "{longitude}", "{Öffentliche}", "{time}"];
|
|
251
|
-
const fields = downloadUtils.
|
|
374
|
+
const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec);
|
|
252
375
|
expect(fields).toEqual(expectedFields);
|
|
253
376
|
});
|
|
254
377
|
|
|
255
378
|
it("handles a label with Greek (el) field name", () => {
|
|
256
379
|
const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{Αναζήτηση}|{time}";
|
|
257
380
|
const expectedFields = ["{latitude}", "{longitude}", "{Αναζήτηση}", "{time}"];
|
|
258
|
-
const fields = downloadUtils.
|
|
381
|
+
const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec);
|
|
259
382
|
expect(fields).toEqual(expectedFields);
|
|
260
383
|
});
|
|
261
384
|
|
|
262
385
|
it("handles a label with Hebrew (he) field name", () => {
|
|
263
386
|
const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{עוֹמֶק}|{time}";
|
|
264
387
|
const expectedFields = ["{latitude}", "{longitude}", "{עוֹמֶק}", "{time}"];
|
|
265
|
-
const fields = downloadUtils.
|
|
388
|
+
const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec);
|
|
266
389
|
expect(fields).toEqual(expectedFields);
|
|
267
390
|
});
|
|
268
391
|
|
|
269
392
|
it("handles a label with Hungarian (hu) field name", () => {
|
|
270
393
|
const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{Nyelvváltás}|{time}";
|
|
271
394
|
const expectedFields = ["{latitude}", "{longitude}", "{Nyelvváltás}", "{time}"];
|
|
272
|
-
const fields = downloadUtils.
|
|
395
|
+
const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec);
|
|
273
396
|
expect(fields).toEqual(expectedFields);
|
|
274
397
|
});
|
|
275
398
|
|
|
276
399
|
it("handles a label with Indonesian (id) field name", () => {
|
|
277
400
|
const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{Bahasa}|{time}";
|
|
278
401
|
const expectedFields = ["{latitude}", "{longitude}", "{Bahasa}", "{time}"];
|
|
279
|
-
const fields = downloadUtils.
|
|
402
|
+
const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec);
|
|
280
403
|
expect(fields).toEqual(expectedFields);
|
|
281
404
|
});
|
|
282
405
|
|
|
283
406
|
it("handles a label with Italian (it) field name", () => {
|
|
284
407
|
const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{Elettricità}|{time}";
|
|
285
408
|
const expectedFields = ["{latitude}", "{longitude}", "{Elettricità}", "{time}"];
|
|
286
|
-
const fields = downloadUtils.
|
|
409
|
+
const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec);
|
|
287
410
|
expect(fields).toEqual(expectedFields);
|
|
288
411
|
});
|
|
289
412
|
|
|
290
413
|
it("handles a label with Japanese (ja) field name", () => {
|
|
291
414
|
const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{深さ}|{time}";
|
|
292
415
|
const expectedFields = ["{latitude}", "{longitude}", "{深さ}", "{time}"];
|
|
293
|
-
const fields = downloadUtils.
|
|
416
|
+
const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec);
|
|
294
417
|
expect(fields).toEqual(expectedFields);
|
|
295
418
|
});
|
|
296
419
|
|
|
297
420
|
it("handles a label with Korean (ko) field name", () => {
|
|
298
421
|
const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{계정 프로필}|{time}";
|
|
299
422
|
const expectedFields = ["{latitude}", "{longitude}", "{계정 프로필}", "{time}"];
|
|
300
|
-
const fields = downloadUtils.
|
|
423
|
+
const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec);
|
|
301
424
|
expect(fields).toEqual(expectedFields);
|
|
302
425
|
});
|
|
303
426
|
|
|
304
427
|
it("handles a label with Latvian (lv) field name", () => {
|
|
305
428
|
const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{Meklēt}|{time}";
|
|
306
429
|
const expectedFields = ["{latitude}", "{longitude}", "{Meklēt}", "{time}"];
|
|
307
|
-
const fields = downloadUtils.
|
|
430
|
+
const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec);
|
|
308
431
|
expect(fields).toEqual(expectedFields);
|
|
309
432
|
});
|
|
310
433
|
|
|
311
434
|
it("handles a label with Lithuanian (lt) field name", () => {
|
|
312
435
|
const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{sričių}|{time}";
|
|
313
436
|
const expectedFields = ["{latitude}", "{longitude}", "{sričių}", "{time}"];
|
|
314
|
-
const fields = downloadUtils.
|
|
437
|
+
const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec);
|
|
315
438
|
expect(fields).toEqual(expectedFields);
|
|
316
439
|
});
|
|
317
440
|
|
|
318
441
|
it("handles a label with Norwegian (nb) field name", () => {
|
|
319
442
|
const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{språk}|{time}";
|
|
320
443
|
const expectedFields = ["{latitude}", "{longitude}", "{språk}", "{time}"];
|
|
321
|
-
const fields = downloadUtils.
|
|
444
|
+
const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec);
|
|
322
445
|
expect(fields).toEqual(expectedFields);
|
|
323
446
|
});
|
|
324
447
|
|
|
325
448
|
it("handles a label with Polish (pl) field name", () => {
|
|
326
449
|
const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{Przełącz}|{time}";
|
|
327
450
|
const expectedFields = ["{latitude}", "{longitude}", "{Przełącz}", "{time}"];
|
|
328
|
-
const fields = downloadUtils.
|
|
451
|
+
const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec);
|
|
329
452
|
expect(fields).toEqual(expectedFields);
|
|
330
453
|
});
|
|
331
454
|
|
|
332
455
|
it("handles a label with Portuguese (Brazil) (pt-br) field name", () => {
|
|
333
456
|
const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{Configurações}|{time}";
|
|
334
457
|
const expectedFields = ["{latitude}", "{longitude}", "{Configurações}", "{time}"];
|
|
335
|
-
const fields = downloadUtils.
|
|
458
|
+
const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec);
|
|
336
459
|
expect(fields).toEqual(expectedFields);
|
|
337
460
|
});
|
|
338
461
|
|
|
339
462
|
it("handles a label with Portuguese (Portugal) (pt-pt) field name", () => {
|
|
340
463
|
const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{sessão}|{time}";
|
|
341
464
|
const expectedFields = ["{latitude}", "{longitude}", "{sessão}", "{time}"];
|
|
342
|
-
const fields = downloadUtils.
|
|
465
|
+
const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec);
|
|
343
466
|
expect(fields).toEqual(expectedFields);
|
|
344
467
|
});
|
|
345
468
|
|
|
346
469
|
it("handles a label with Romanian (ro) field name", () => {
|
|
347
470
|
const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{Copiați}|{time}";
|
|
348
471
|
const expectedFields = ["{latitude}", "{longitude}", "{Copiați}", "{time}"];
|
|
349
|
-
const fields = downloadUtils.
|
|
472
|
+
const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec);
|
|
350
473
|
expect(fields).toEqual(expectedFields);
|
|
351
474
|
});
|
|
352
475
|
|
|
353
476
|
it("handles a label with Russian (ru) field name", () => {
|
|
354
477
|
const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{Вход}|{time}";
|
|
355
478
|
const expectedFields = ["{latitude}", "{longitude}", "{Вход}", "{time}"];
|
|
356
|
-
const fields = downloadUtils.
|
|
479
|
+
const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec);
|
|
357
480
|
expect(fields).toEqual(expectedFields);
|
|
358
481
|
});
|
|
359
482
|
|
|
360
483
|
it("handles a label with Serbian (sr) field name", () => {
|
|
361
484
|
const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{pregledač}|{time}";
|
|
362
485
|
const expectedFields = ["{latitude}", "{longitude}", "{pregledač}", "{time}"];
|
|
363
|
-
const fields = downloadUtils.
|
|
486
|
+
const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec);
|
|
364
487
|
expect(fields).toEqual(expectedFields);
|
|
365
488
|
});
|
|
366
489
|
|
|
367
490
|
it("handles a label with Slovak (sk) field name", () => {
|
|
368
491
|
const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{Prihlásiť}|{time}";
|
|
369
492
|
const expectedFields = ["{latitude}", "{longitude}", "{Prihlásiť}", "{time}"];
|
|
370
|
-
const fields = downloadUtils.
|
|
493
|
+
const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec);
|
|
371
494
|
expect(fields).toEqual(expectedFields);
|
|
372
495
|
});
|
|
373
496
|
|
|
374
497
|
it("handles a label with Slovenian (sl) field name", () => {
|
|
375
498
|
const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{računa}|{time}";
|
|
376
499
|
const expectedFields = ["{latitude}", "{longitude}", "{računa}", "{time}"];
|
|
377
|
-
const fields = downloadUtils.
|
|
500
|
+
const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec);
|
|
378
501
|
expect(fields).toEqual(expectedFields);
|
|
379
502
|
});
|
|
380
503
|
|
|
381
504
|
it("handles a label with Spanish (es) field name", () => {
|
|
382
505
|
const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{través}|{time}";
|
|
383
506
|
const expectedFields = ["{latitude}", "{longitude}", "{través}", "{time}"];
|
|
384
|
-
const fields = downloadUtils.
|
|
507
|
+
const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec);
|
|
385
508
|
expect(fields).toEqual(expectedFields);
|
|
386
509
|
});
|
|
387
510
|
|
|
388
511
|
it("handles a label with Swedish (sv) field name", () => {
|
|
389
512
|
const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{språk}|{time}";
|
|
390
513
|
const expectedFields = ["{latitude}", "{longitude}", "{språk}", "{time}"];
|
|
391
|
-
const fields = downloadUtils.
|
|
514
|
+
const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec);
|
|
392
515
|
expect(fields).toEqual(expectedFields);
|
|
393
516
|
});
|
|
394
517
|
|
|
395
518
|
it("handles a label with Thai (th) field name", () => {
|
|
396
519
|
const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{โปรไฟล์บัญ}|{time}";
|
|
397
520
|
const expectedFields = ["{latitude}", "{longitude}", "{โปรไฟล์บัญ}", "{time}"];
|
|
398
|
-
const fields = downloadUtils.
|
|
521
|
+
const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec);
|
|
399
522
|
expect(fields).toEqual(expectedFields);
|
|
400
523
|
});
|
|
401
524
|
|
|
402
525
|
it("handles a label with Turkish (tr) field name", () => {
|
|
403
526
|
const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{Değiştir}|{time}";
|
|
404
527
|
const expectedFields = ["{latitude}", "{longitude}", "{Değiştir}", "{time}"];
|
|
405
|
-
const fields = downloadUtils.
|
|
528
|
+
const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec);
|
|
406
529
|
expect(fields).toEqual(expectedFields);
|
|
407
530
|
});
|
|
408
531
|
|
|
409
532
|
it("handles a label with Ukrainian (uk) field name", () => {
|
|
410
533
|
const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{Пошук}|{time}";
|
|
411
534
|
const expectedFields = ["{latitude}", "{longitude}", "{Пошук}", "{time}"];
|
|
412
|
-
const fields = downloadUtils.
|
|
535
|
+
const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec);
|
|
413
536
|
expect(fields).toEqual(expectedFields);
|
|
414
537
|
});
|
|
415
538
|
|
|
416
539
|
it("handles a label with Vietnamese (vi) field name", () => {
|
|
417
540
|
const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{Chuyển}|{time}";
|
|
418
541
|
const expectedFields = ["{latitude}", "{longitude}", "{Chuyển}", "{time}"];
|
|
419
|
-
const fields = downloadUtils.
|
|
542
|
+
const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec);
|
|
420
543
|
expect(fields).toEqual(expectedFields);
|
|
421
544
|
});
|
|
545
|
+
|
|
546
|
+
});
|
|
547
|
+
|
|
548
|
+
describe('_getFieldNamesFromFieldExpressions', () => {
|
|
549
|
+
|
|
550
|
+
it("extracts field names from field name expressions", () => {
|
|
551
|
+
const expressions = ["{NAME}", "{STREET}", "{CITY}", "{STATE}", "{ZIP}"];
|
|
552
|
+
const names = ["NAME", "STREET", "CITY", "STATE", "ZIP"];
|
|
553
|
+
expect(downloadUtils._getFieldNamesFromFieldExpressions(expressions)).toEqual(names);
|
|
554
|
+
});
|
|
555
|
+
|
|
556
|
+
});
|
|
557
|
+
|
|
558
|
+
describe('_getLabelFormat', () => {
|
|
559
|
+
|
|
560
|
+
it('should prepare labels from visible popup fields', async () => {
|
|
561
|
+
const popupTemplate = {
|
|
562
|
+
title: '{name}',
|
|
563
|
+
content: [{
|
|
564
|
+
type: 'fields'
|
|
565
|
+
}],
|
|
566
|
+
fieldInfos: [{
|
|
567
|
+
fieldName: 'name',
|
|
568
|
+
visible: true
|
|
569
|
+
}, {
|
|
570
|
+
fieldName: 'age',
|
|
571
|
+
format: {
|
|
572
|
+
places: 0,
|
|
573
|
+
digitSeparator: true
|
|
574
|
+
},
|
|
575
|
+
visible: true
|
|
576
|
+
}, {
|
|
577
|
+
fieldName: 'start',
|
|
578
|
+
format: {
|
|
579
|
+
dateFormat: 'short-date'
|
|
580
|
+
},
|
|
581
|
+
visible: true
|
|
582
|
+
}]
|
|
583
|
+
};
|
|
584
|
+
const layer = {
|
|
585
|
+
popupEnabled: true,
|
|
586
|
+
popupTemplate
|
|
587
|
+
};
|
|
588
|
+
const formatUsingLayerPopup = true;
|
|
589
|
+
|
|
590
|
+
const attributeFormats: downloadUtils.IAttributeFormats = {};
|
|
591
|
+
const result: downloadUtils.ILabelFormat =
|
|
592
|
+
await downloadUtils._getLabelFormat(layer as any, formatUsingLayerPopup, attributeFormats);
|
|
593
|
+
expect(result.type).toEqual('pattern');
|
|
594
|
+
expect(result.format).toEqual('{name}|{age}|{start}');
|
|
595
|
+
});
|
|
596
|
+
|
|
597
|
+
it('should prepare labels from a partial set of visible popup fields', async () => {
|
|
598
|
+
const popupTemplate = {
|
|
599
|
+
title: '{name}',
|
|
600
|
+
content: [{
|
|
601
|
+
type: 'fields'
|
|
602
|
+
}],
|
|
603
|
+
fieldInfos: [{
|
|
604
|
+
fieldName: 'name',
|
|
605
|
+
visible: false
|
|
606
|
+
}, {
|
|
607
|
+
fieldName: 'age',
|
|
608
|
+
format: {
|
|
609
|
+
places: 0,
|
|
610
|
+
digitSeparator: true
|
|
611
|
+
},
|
|
612
|
+
visible: false
|
|
613
|
+
}, {
|
|
614
|
+
fieldName: 'start',
|
|
615
|
+
format: {
|
|
616
|
+
dateFormat: 'short-date'
|
|
617
|
+
},
|
|
618
|
+
visible: true
|
|
619
|
+
}]
|
|
620
|
+
};
|
|
621
|
+
const layer = {
|
|
622
|
+
popupEnabled: true,
|
|
623
|
+
popupTemplate
|
|
624
|
+
};
|
|
625
|
+
const formatUsingLayerPopup = true;
|
|
626
|
+
|
|
627
|
+
const attributeFormats: downloadUtils.IAttributeFormats = {};
|
|
628
|
+
const result: downloadUtils.ILabelFormat =
|
|
629
|
+
await downloadUtils._getLabelFormat(layer as any, formatUsingLayerPopup, attributeFormats);
|
|
630
|
+
expect(result.type).toEqual('pattern');
|
|
631
|
+
expect(result.format).toEqual('{start}');
|
|
632
|
+
});
|
|
633
|
+
|
|
634
|
+
it('should prepare labels from invisible popup fields, but title is present', async () => {
|
|
635
|
+
const popupTemplate = {
|
|
636
|
+
title: '{name}',
|
|
637
|
+
content: [{
|
|
638
|
+
type: 'fields'
|
|
639
|
+
}],
|
|
640
|
+
fieldInfos: [{
|
|
641
|
+
fieldName: 'name',
|
|
642
|
+
visible: false
|
|
643
|
+
}, {
|
|
644
|
+
fieldName: 'age',
|
|
645
|
+
format: {
|
|
646
|
+
places: 0,
|
|
647
|
+
digitSeparator: true
|
|
648
|
+
},
|
|
649
|
+
visible: false
|
|
650
|
+
}, {
|
|
651
|
+
fieldName: 'start',
|
|
652
|
+
format: {
|
|
653
|
+
dateFormat: 'short-date'
|
|
654
|
+
},
|
|
655
|
+
visible: false
|
|
656
|
+
}]
|
|
657
|
+
};
|
|
658
|
+
const layer = {
|
|
659
|
+
popupEnabled: true,
|
|
660
|
+
popupTemplate
|
|
661
|
+
};
|
|
662
|
+
const formatUsingLayerPopup = true;
|
|
663
|
+
|
|
664
|
+
const attributeFormats: downloadUtils.IAttributeFormats = {};
|
|
665
|
+
const result: downloadUtils.ILabelFormat =
|
|
666
|
+
await downloadUtils._getLabelFormat(layer as any, formatUsingLayerPopup, attributeFormats);
|
|
667
|
+
expect(result.type).toEqual('pattern');
|
|
668
|
+
expect(result.format).toEqual('{name}');
|
|
669
|
+
});
|
|
670
|
+
|
|
671
|
+
it('should prepare labels from invisible popup fields with no title present', async () => {
|
|
672
|
+
const popupTemplate = {
|
|
673
|
+
title: '',
|
|
674
|
+
content: [{
|
|
675
|
+
type: 'fields'
|
|
676
|
+
}],
|
|
677
|
+
fieldInfos: [{
|
|
678
|
+
fieldName: 'name',
|
|
679
|
+
visible: false
|
|
680
|
+
}, {
|
|
681
|
+
fieldName: 'age',
|
|
682
|
+
format: {
|
|
683
|
+
places: 0,
|
|
684
|
+
digitSeparator: true
|
|
685
|
+
},
|
|
686
|
+
visible: false
|
|
687
|
+
}, {
|
|
688
|
+
fieldName: 'start',
|
|
689
|
+
format: {
|
|
690
|
+
dateFormat: 'short-date'
|
|
691
|
+
},
|
|
692
|
+
visible: false
|
|
693
|
+
}]
|
|
694
|
+
};
|
|
695
|
+
const layer = {
|
|
696
|
+
popupEnabled: true,
|
|
697
|
+
popupTemplate
|
|
698
|
+
};
|
|
699
|
+
const formatUsingLayerPopup = true;
|
|
700
|
+
|
|
701
|
+
const attributeFormats: downloadUtils.IAttributeFormats = {};
|
|
702
|
+
const result: downloadUtils.ILabelFormat =
|
|
703
|
+
await downloadUtils._getLabelFormat(layer as any, formatUsingLayerPopup, attributeFormats);
|
|
704
|
+
expect(result.type).toEqual('pattern');
|
|
705
|
+
expect(result.format).toEqual('{name}|{age}|{start}');
|
|
706
|
+
});
|
|
707
|
+
|
|
708
|
+
it('should prepare labels from popup text', async () => {
|
|
709
|
+
const popupTemplate = {
|
|
710
|
+
title: '{name}',
|
|
711
|
+
content: [{
|
|
712
|
+
type: 'text',
|
|
713
|
+
text: '<p>{name} {age} years </p><p>started: {start}</p>'
|
|
714
|
+
}],
|
|
715
|
+
fieldInfos: [{
|
|
716
|
+
fieldName: 'name',
|
|
717
|
+
visible: true
|
|
718
|
+
}, {
|
|
719
|
+
fieldName: 'age',
|
|
720
|
+
format: {
|
|
721
|
+
places: 0,
|
|
722
|
+
digitSeparator: true
|
|
723
|
+
},
|
|
724
|
+
visible: true
|
|
725
|
+
}, {
|
|
726
|
+
fieldName: 'start',
|
|
727
|
+
format: {
|
|
728
|
+
dateFormat: 'short-date'
|
|
729
|
+
},
|
|
730
|
+
visible: true
|
|
731
|
+
}]
|
|
732
|
+
};
|
|
733
|
+
const layer = {
|
|
734
|
+
popupEnabled: true,
|
|
735
|
+
popupTemplate
|
|
736
|
+
};
|
|
737
|
+
const formatUsingLayerPopup = true;
|
|
738
|
+
|
|
739
|
+
const attributeFormats: downloadUtils.IAttributeFormats = {};
|
|
740
|
+
const result: downloadUtils.ILabelFormat =
|
|
741
|
+
await downloadUtils._getLabelFormat(layer as any, formatUsingLayerPopup, attributeFormats);
|
|
742
|
+
expect(result.type).toEqual('pattern');
|
|
743
|
+
expect(result.format).toEqual('{name} {age} years|started: {start}');
|
|
744
|
+
});
|
|
745
|
+
|
|
746
|
+
it('should prepare labels from popup Arcade', async () => {
|
|
747
|
+
const Arcade = {
|
|
748
|
+
createArcadeExecutor: (): Promise<__esri.ArcadeExecutor> => {
|
|
749
|
+
const executor: __esri.ArcadeExecutor = {} as __esri.ArcadeExecutor;
|
|
750
|
+
return Promise.resolve(executor);
|
|
751
|
+
}
|
|
752
|
+
};
|
|
753
|
+
const loadModulesSpy = jest.spyOn(esriLoader, 'loadModules').mockResolvedValue([Arcade]);
|
|
754
|
+
|
|
755
|
+
const popupTemplate = {
|
|
756
|
+
title: '{name}',
|
|
757
|
+
content: [{
|
|
758
|
+
type: 'expression',
|
|
759
|
+
expressionInfo: {
|
|
760
|
+
title: 'New expression',
|
|
761
|
+
expression: 'var feat = $feature\nvar label = `\n\t${feat["name"]} ${feat["age"]} years <br>\n\tstarted: ${feat["start"]}\n`\n\nreturn { \n type : \'text\', \n text : label\n}',
|
|
762
|
+
returnType: 'dictionary'
|
|
763
|
+
}
|
|
764
|
+
}],
|
|
765
|
+
fieldInfos: [{
|
|
766
|
+
fieldName: 'name',
|
|
767
|
+
visible: true
|
|
768
|
+
}, {
|
|
769
|
+
fieldName: 'age',
|
|
770
|
+
format: {
|
|
771
|
+
places: 0,
|
|
772
|
+
digitSeparator: true
|
|
773
|
+
},
|
|
774
|
+
visible: true
|
|
775
|
+
}, {
|
|
776
|
+
fieldName: 'start',
|
|
777
|
+
format: {
|
|
778
|
+
dateFormat: 'short-date'
|
|
779
|
+
},
|
|
780
|
+
visible: true
|
|
781
|
+
}]
|
|
782
|
+
};
|
|
783
|
+
const layer = {
|
|
784
|
+
popupEnabled: true,
|
|
785
|
+
popupTemplate
|
|
786
|
+
};
|
|
787
|
+
const formatUsingLayerPopup = true;
|
|
788
|
+
|
|
789
|
+
const attributeFormats: downloadUtils.IAttributeFormats = {};
|
|
790
|
+
const result: downloadUtils.ILabelFormat =
|
|
791
|
+
await downloadUtils._getLabelFormat(layer as any, formatUsingLayerPopup, attributeFormats);
|
|
792
|
+
expect(result.type).toEqual('executor');
|
|
793
|
+
|
|
794
|
+
loadModulesSpy.mockRestore();
|
|
795
|
+
});
|
|
796
|
+
|
|
797
|
+
it('should prepare labels without popup; formatUsingLayerPopup is true', async () => {
|
|
798
|
+
const layer = {
|
|
799
|
+
popupEnabled: false,
|
|
800
|
+
fields: [
|
|
801
|
+
{
|
|
802
|
+
name: 'name',
|
|
803
|
+
type: 'string'
|
|
804
|
+
},
|
|
805
|
+
{
|
|
806
|
+
name: 'age',
|
|
807
|
+
type: 'integer'
|
|
808
|
+
}
|
|
809
|
+
]
|
|
810
|
+
} as __esri.FeatureLayer;
|
|
811
|
+
const formatUsingLayerPopup = true;
|
|
812
|
+
|
|
813
|
+
const attributeFormats: downloadUtils.IAttributeFormats = {};
|
|
814
|
+
const result: downloadUtils.ILabelFormat =
|
|
815
|
+
await downloadUtils._getLabelFormat(layer as any, formatUsingLayerPopup, attributeFormats);
|
|
816
|
+
expect(result.type).toEqual('unsupported');
|
|
817
|
+
expect(result.format).toBeUndefined();
|
|
818
|
+
});
|
|
819
|
+
|
|
820
|
+
it('should prepare labels without popup; formatUsingLayerPopup is false', async () => {
|
|
821
|
+
const layer = {
|
|
822
|
+
popupEnabled: false,
|
|
823
|
+
fields: [
|
|
824
|
+
{
|
|
825
|
+
name: 'name',
|
|
826
|
+
type: 'string'
|
|
827
|
+
},
|
|
828
|
+
{
|
|
829
|
+
name: 'age',
|
|
830
|
+
type: 'integer'
|
|
831
|
+
}
|
|
832
|
+
]
|
|
833
|
+
} as __esri.FeatureLayer;
|
|
834
|
+
const formatUsingLayerPopup = false;
|
|
835
|
+
|
|
836
|
+
const attributeFormats: downloadUtils.IAttributeFormats = {};
|
|
837
|
+
const result: downloadUtils.ILabelFormat =
|
|
838
|
+
await downloadUtils._getLabelFormat(layer as any, formatUsingLayerPopup, attributeFormats);
|
|
839
|
+
expect(result.type).toEqual('unsupported');
|
|
840
|
+
expect(result.format).toBeUndefined();
|
|
841
|
+
});
|
|
842
|
+
|
|
843
|
+
});
|
|
844
|
+
|
|
845
|
+
describe('_getSelectionSetNames', () => {
|
|
846
|
+
|
|
847
|
+
it('should return selection set names for matching IDs', () => {
|
|
848
|
+
const exportInfos = {
|
|
849
|
+
'layer1': {
|
|
850
|
+
selectionSetNames: ['Selection Set 1', 'Selection Set 2']
|
|
851
|
+
},
|
|
852
|
+
'layer2': {
|
|
853
|
+
selectionSetNames: ['Selection Set 3']
|
|
854
|
+
}
|
|
855
|
+
};
|
|
856
|
+
const result = downloadUtils._getSelectionSetNames(exportInfos as any, /^layer/);
|
|
857
|
+
expect(result).toEqual(['Selection Set 1', 'Selection Set 2', 'Selection Set 3']);
|
|
858
|
+
});
|
|
859
|
+
|
|
860
|
+
it('should return an empty array if no matching IDs are found', () => {
|
|
861
|
+
const exportInfos = {
|
|
862
|
+
'layer1': {
|
|
863
|
+
selectionSetNames: ['Selection Set 1', 'Selection Set 2']
|
|
864
|
+
},
|
|
865
|
+
'layer2': {
|
|
866
|
+
selectionSetNames: ['Selection Set 3']
|
|
867
|
+
}
|
|
868
|
+
};
|
|
869
|
+
const result = downloadUtils._getSelectionSetNames(exportInfos as any, /^foo/);
|
|
870
|
+
expect(result).toEqual([]);
|
|
871
|
+
});
|
|
872
|
+
|
|
873
|
+
});
|
|
874
|
+
|
|
875
|
+
describe('_prepareAttributeValue', () => {
|
|
876
|
+
|
|
877
|
+
it('should format date attributes using the specified date format', () => {
|
|
878
|
+
const attributeValue = new Date('2022-01-01T00:00:00.000Z');
|
|
879
|
+
const attributeType = 'date';
|
|
880
|
+
const attributeDomain = null;
|
|
881
|
+
const attributeFormat = {
|
|
882
|
+
dateFormat: 'short-date'
|
|
883
|
+
};
|
|
884
|
+
const intl = {
|
|
885
|
+
formatDate: jest.fn().mockReturnValue('01/01/2022'),
|
|
886
|
+
convertDateFormatToIntlOptions: jest.fn().mockReturnValue({})
|
|
887
|
+
};
|
|
888
|
+
const result = downloadUtils._prepareAttributeValue(attributeValue, attributeType, attributeDomain, attributeFormat as any, intl);
|
|
889
|
+
expect(result).toEqual('01/01/2022');
|
|
890
|
+
expect(intl.formatDate).toHaveBeenCalledWith(attributeValue, {});
|
|
891
|
+
expect(intl.convertDateFormatToIntlOptions).toHaveBeenCalledWith('short-date');
|
|
892
|
+
});
|
|
893
|
+
|
|
894
|
+
it('should format number attributes using the specified number format', () => {
|
|
895
|
+
const attributeValue = 1234.5678;
|
|
896
|
+
const attributeType = 'double';
|
|
897
|
+
const attributeDomain = null;
|
|
898
|
+
const attributeFormat = {
|
|
899
|
+
places: 2,
|
|
900
|
+
digitSeparator: true
|
|
901
|
+
};
|
|
902
|
+
const intl = {
|
|
903
|
+
formatNumber: jest.fn().mockReturnValue('1,234.57'),
|
|
904
|
+
convertNumberFormatToIntlOptions: jest.fn().mockReturnValue({})
|
|
905
|
+
};
|
|
906
|
+
const result = downloadUtils._prepareAttributeValue(attributeValue, attributeType, attributeDomain, attributeFormat as any, intl);
|
|
907
|
+
expect(result).toEqual('1,234.57');
|
|
908
|
+
expect(intl.formatNumber).toHaveBeenCalledWith(attributeValue, {});
|
|
909
|
+
expect(intl.convertNumberFormatToIntlOptions).toHaveBeenCalledWith(attributeFormat);
|
|
910
|
+
});
|
|
911
|
+
|
|
912
|
+
it('should return the attribute value if no format is specified', () => {
|
|
913
|
+
const attributeValue = 'Value';
|
|
914
|
+
const attributeType = 'string';
|
|
915
|
+
const attributeDomain = null;
|
|
916
|
+
const attributeFormat = null;
|
|
917
|
+
const intl = {};
|
|
918
|
+
const result = downloadUtils._prepareAttributeValue(attributeValue, attributeType, attributeDomain, attributeFormat, intl);
|
|
919
|
+
expect(result).toEqual('Value');
|
|
920
|
+
});
|
|
921
|
+
|
|
922
|
+
it('should return the domain name for coded-value domain fields', () => {
|
|
923
|
+
const attributeValue = '1';
|
|
924
|
+
const attributeType = 'string';
|
|
925
|
+
const attributeDomain = {
|
|
926
|
+
type: 'coded-value',
|
|
927
|
+
name: 'Domain',
|
|
928
|
+
codedValues: [
|
|
929
|
+
{
|
|
930
|
+
name: 'Value 1',
|
|
931
|
+
code: '1'
|
|
932
|
+
},
|
|
933
|
+
{
|
|
934
|
+
name: 'Value 2',
|
|
935
|
+
code: '2'
|
|
936
|
+
}
|
|
937
|
+
],
|
|
938
|
+
getName: function (code: string) {
|
|
939
|
+
return this.codedValues.find((codedValue: any) => codedValue.code === code)?.name;
|
|
940
|
+
}
|
|
941
|
+
} as __esri.CodedValueDomain;
|
|
942
|
+
const attributeFormat = null;
|
|
943
|
+
const intl = {};
|
|
944
|
+
const result = downloadUtils._prepareAttributeValue(attributeValue, attributeType, attributeDomain as any, attributeFormat, intl);
|
|
945
|
+
expect(result).toEqual('Value 1');
|
|
946
|
+
});
|
|
947
|
+
|
|
422
948
|
});
|
|
423
949
|
|
|
424
950
|
});
|