@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
|
@@ -26,7 +26,31 @@ import { queryFeaturesByID } from "./queryUtils";
|
|
|
26
26
|
export { ILabel } from "./pdfUtils";
|
|
27
27
|
const lineSeparatorChar = "|";
|
|
28
28
|
//#endregion
|
|
29
|
+
// ------------------------------------------------------------------------------------------------------------------ //
|
|
29
30
|
//#region Public functions
|
|
31
|
+
/**
|
|
32
|
+
* Create and consolidate labels from all layers
|
|
33
|
+
*
|
|
34
|
+
* @param exportInfos Key details about what to export (ids, layer, and selectionSetNames)
|
|
35
|
+
* @param formatUsingLayerPopup When true, the layer's popup is used to choose attributes for each column; when false,
|
|
36
|
+
* all attributes are exported
|
|
37
|
+
* @param includeHeaderNames Add the label format at the front of the list of generated labels
|
|
38
|
+
* @returns selectionSetNames that will be used for export filenames
|
|
39
|
+
*/
|
|
40
|
+
export async function consolidateLabels(exportInfos, formatUsingLayerPopup = true, includeHeaderNames = false, isCSVExport = false) {
|
|
41
|
+
const labelRequests = [];
|
|
42
|
+
Object.keys(exportInfos).forEach(k => {
|
|
43
|
+
var _a;
|
|
44
|
+
const labelInfo = exportInfos[k];
|
|
45
|
+
labelRequests.push(_prepareLabels(((_a = labelInfo.layerView) === null || _a === void 0 ? void 0 : _a.layer) || labelInfo.layer, labelInfo.ids, formatUsingLayerPopup, includeHeaderNames));
|
|
46
|
+
if (isCSVExport) {
|
|
47
|
+
// add the layer id as a temp value separator that we can use to split values for CSV export
|
|
48
|
+
labelRequests.push(Promise.resolve([[k]]));
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
const labels = await Promise.all(labelRequests);
|
|
52
|
+
return labels.reduce((prev, cur) => prev.concat(cur), []);
|
|
53
|
+
}
|
|
30
54
|
/**
|
|
31
55
|
* Downloads csv of mailing labels for the provided list of ids
|
|
32
56
|
*
|
|
@@ -79,14 +103,62 @@ export async function downloadPDF(exportInfos, labelPageDescription, removeDupli
|
|
|
79
103
|
exportPDF(_createFilename(selectionSetNames), labels, labelPageDescription, title, initialImageDataUrl);
|
|
80
104
|
return Promise.resolve();
|
|
81
105
|
}
|
|
106
|
+
/**
|
|
107
|
+
* Remove any duplicate labels
|
|
108
|
+
*
|
|
109
|
+
* @param labels Labels to evaluate for duplicates
|
|
110
|
+
* @returns labels with duplicates removed
|
|
111
|
+
*/
|
|
112
|
+
export function removeDuplicateLabels(labels) {
|
|
113
|
+
const labelsAsStrings = labels.map(label => JSON.stringify(label));
|
|
114
|
+
const uniqueLabels = new Set(labelsAsStrings);
|
|
115
|
+
return Array.from(uniqueLabels, labelString => JSON.parse(labelString));
|
|
116
|
+
}
|
|
82
117
|
//#endregion
|
|
118
|
+
// ------------------------------------------------------------------------------------------------------------------ //
|
|
83
119
|
//#region Private functions
|
|
120
|
+
/**
|
|
121
|
+
* Converts the text of a custom popup into a multiline label specification; conversion splits text into
|
|
122
|
+
* lines on <br>s, and removes HTML tags.
|
|
123
|
+
*
|
|
124
|
+
* @param labelText Layer's popup text, e.g.,
|
|
125
|
+
* "<div style='text-align: left;'>{NAME}<br />{STREET}<br />{CITY}, {STATE} {ZIP} <br /></div>"
|
|
126
|
+
* @return Cleaned-up popup text with lines separated by `lineSeparatorChar`
|
|
127
|
+
*/
|
|
128
|
+
export function _cleanupLabel(labelText) {
|
|
129
|
+
// Replace <br> variants with the line separator character
|
|
130
|
+
labelText = labelText.replace(/<br\s*\/?>/gi, lineSeparatorChar);
|
|
131
|
+
// Replace <p> variants with the line separator character, except in the first position
|
|
132
|
+
labelText = labelText.replace(/<p[^>]*>/gi, lineSeparatorChar).trim().replace(/^\|/, "");
|
|
133
|
+
// Remove </p>
|
|
134
|
+
labelText = labelText.replace(/<\/p>/gi, "");
|
|
135
|
+
// Replace \n with the line separator character
|
|
136
|
+
labelText = labelText.replace(/\n/gi, "|");
|
|
137
|
+
// Remove remaining HTML tags, replace 0xA0 that popup uses for spaces, and replace some char representations
|
|
138
|
+
labelText = labelText
|
|
139
|
+
.replace(/<[\s.]*[^<>]*\/?>/gi, "")
|
|
140
|
+
.replace(/\xA0/gi, " ")
|
|
141
|
+
.replace(/</gi, "<")
|
|
142
|
+
.replace(/>/gi, ">")
|
|
143
|
+
.replace(/ /gi, " ");
|
|
144
|
+
// Trim each line
|
|
145
|
+
labelText = labelText.replace(/\s*\|\s*/g, "|");
|
|
146
|
+
// Remove empty lines
|
|
147
|
+
while (labelText.match(/\|\|/)) {
|
|
148
|
+
labelText = labelText.replace(/\|\|/, "|");
|
|
149
|
+
}
|
|
150
|
+
// Remove leading and trailing line feeds
|
|
151
|
+
labelText = labelText.replace(/^\|/, "");
|
|
152
|
+
labelText = labelText.replace(/\|$/, "");
|
|
153
|
+
return labelText;
|
|
154
|
+
}
|
|
155
|
+
;
|
|
84
156
|
/**
|
|
85
157
|
* Converts a set of fieldInfos into template lines.
|
|
86
158
|
*
|
|
87
159
|
* @param fieldInfos Layer's fieldInfos structure
|
|
88
160
|
* @param bypassFieldVisiblity Indicates if the configured fieldInfo visibility property should be ignored
|
|
89
|
-
* @return
|
|
161
|
+
* @return "pattern" label spec with lines separated by `lineSeparatorChar`
|
|
90
162
|
*/
|
|
91
163
|
export function _convertPopupFieldsToLabelSpec(fieldInfos, bypassFieldVisiblity = false) {
|
|
92
164
|
const labelSpec = [];
|
|
@@ -96,66 +168,35 @@ export function _convertPopupFieldsToLabelSpec(fieldInfos, bypassFieldVisiblity
|
|
|
96
168
|
labelSpec.push(`{${fieldInfo.fieldName}}`);
|
|
97
169
|
}
|
|
98
170
|
});
|
|
99
|
-
return
|
|
171
|
+
return {
|
|
172
|
+
type: "pattern",
|
|
173
|
+
format: labelSpec.join(lineSeparatorChar)
|
|
174
|
+
};
|
|
100
175
|
}
|
|
101
176
|
;
|
|
102
177
|
/**
|
|
103
178
|
* Converts the text of a custom popup into a multiline label specification; conversion splits text into
|
|
104
179
|
* lines on <br>s, and removes HTML tags. It does not handle Arcade and related records.
|
|
105
180
|
*
|
|
106
|
-
* @param
|
|
181
|
+
* @param labelText Layer's labelText structure containing description, fieldInfos, and expressionInfos, e.g.,
|
|
107
182
|
* "<div style='text-align: left;'>{NAME}<br />{STREET}<br />{CITY}, {STATE} {ZIP} <br /></div>"
|
|
108
|
-
* @return
|
|
183
|
+
* @return "pattern" label spec with lines separated by `lineSeparatorChar`
|
|
109
184
|
*/
|
|
110
185
|
export function _convertPopupTextToLabelSpec(popupInfo) {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
// Remove </p>
|
|
116
|
-
popupInfo = popupInfo.replace(/<\/p>/gi, "");
|
|
117
|
-
// Replace \n with the line separator character
|
|
118
|
-
popupInfo = popupInfo.replace(/\n/gi, "|");
|
|
119
|
-
// Remove remaining HTML tags, replace 0xA0 that popup uses for spaces, and replace some char representations
|
|
120
|
-
let labelSpec = popupInfo
|
|
121
|
-
.replace(/<[\s.]*[^<>]*\/?>/gi, "")
|
|
122
|
-
.replace(/\xA0/gi, " ")
|
|
123
|
-
.replace(/</gi, "<")
|
|
124
|
-
.replace(/>/gi, ">")
|
|
125
|
-
.replace(/ /gi, " ");
|
|
126
|
-
// Trim each line
|
|
127
|
-
labelSpec = labelSpec.replace(/\s*\|\s*/g, "|");
|
|
128
|
-
// Remove empty lines
|
|
129
|
-
while (labelSpec.match(/\|\|/)) {
|
|
130
|
-
labelSpec = labelSpec.replace(/\|\|/, "|");
|
|
131
|
-
}
|
|
132
|
-
// Remove leading and trailing line feeds
|
|
133
|
-
labelSpec = labelSpec.replace(/^\|/, "");
|
|
134
|
-
labelSpec = labelSpec.replace(/\|$/, "");
|
|
135
|
-
return labelSpec.trim();
|
|
186
|
+
return {
|
|
187
|
+
type: "pattern",
|
|
188
|
+
format: _cleanupLabel(popupInfo)
|
|
189
|
+
};
|
|
136
190
|
}
|
|
137
191
|
;
|
|
138
192
|
/**
|
|
139
|
-
*
|
|
140
|
-
* referenced expression name.
|
|
193
|
+
* Converts an Arcade expression of a custom popup into a multiline label specification.
|
|
141
194
|
*
|
|
142
|
-
* @param
|
|
143
|
-
* @
|
|
144
|
-
* @return Promise resolving to a set of executors keyed using the expression name
|
|
195
|
+
* @param expressionInfo Structure containing expression and info about it
|
|
196
|
+
* @return Promise resolving to an "executor" label spec
|
|
145
197
|
*/
|
|
146
|
-
async function
|
|
147
|
-
|
|
148
|
-
// Are any Arcade expressions in the layer?
|
|
149
|
-
if (!Array.isArray(layer.popupTemplate.expressionInfos) || layer.popupTemplate.expressionInfos.length === 0) {
|
|
150
|
-
return Promise.resolve(arcadeExecutors);
|
|
151
|
-
}
|
|
152
|
-
// Are there any Arcade expressions in the label format?
|
|
153
|
-
const arcadeExpressionRegExp = /\{expression\/\w+\}/g;
|
|
154
|
-
const arcadeExpressionsMatches = labelFormat.match(arcadeExpressionRegExp);
|
|
155
|
-
if (!arcadeExpressionsMatches) {
|
|
156
|
-
return Promise.resolve(arcadeExecutors);
|
|
157
|
-
}
|
|
158
|
-
// Generate an Arcade executor for each match
|
|
198
|
+
export async function _convertPopupArcadeToLabelSpec(expressionInfo) {
|
|
199
|
+
// Generate an Arcade executor
|
|
159
200
|
const [arcade] = await loadModules(["esri/arcade"]);
|
|
160
201
|
const labelingProfile = {
|
|
161
202
|
variables: [
|
|
@@ -177,24 +218,10 @@ async function _createArcadeExecutors(labelFormat, layer) {
|
|
|
177
218
|
}
|
|
178
219
|
]
|
|
179
220
|
};
|
|
180
|
-
const
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
if (expressionInfo.name === expressionName) {
|
|
185
|
-
createArcadeExecutorPromises[expressionName] =
|
|
186
|
-
arcade.createArcadeExecutor(expressionInfo.expression, labelingProfile);
|
|
187
|
-
}
|
|
188
|
-
});
|
|
189
|
-
});
|
|
190
|
-
const promises = Object.values(createArcadeExecutorPromises);
|
|
191
|
-
return Promise.all(promises)
|
|
192
|
-
.then(executors => {
|
|
193
|
-
const expressionNames = Object.keys(createArcadeExecutorPromises);
|
|
194
|
-
for (let i = 0; i < expressionNames.length; ++i) {
|
|
195
|
-
arcadeExecutors[expressionNames[i]] = executors[i].valueOf();
|
|
196
|
-
}
|
|
197
|
-
return arcadeExecutors;
|
|
221
|
+
const executor = await arcade.createArcadeExecutor(expressionInfo.expression, labelingProfile);
|
|
222
|
+
return Promise.resolve({
|
|
223
|
+
type: "executor",
|
|
224
|
+
format: executor
|
|
198
225
|
});
|
|
199
226
|
}
|
|
200
227
|
/**
|
|
@@ -258,7 +285,7 @@ export function _getExpressionsFromLabel(labelFormat) {
|
|
|
258
285
|
* @param labelFormat Label to examine
|
|
259
286
|
* @returns Array of field name expressions, e.g., ["{NAME}", "{STREET}", "{CITY}", "{STATE}", "{ZIP}"]
|
|
260
287
|
*/
|
|
261
|
-
export function
|
|
288
|
+
export function _getFieldExpressionsFromLabel(labelFormat) {
|
|
262
289
|
// Get all fields
|
|
263
290
|
const fieldExpressions = [];
|
|
264
291
|
let iStart = 0;
|
|
@@ -280,6 +307,81 @@ export function _getFieldsFromLabel(labelFormat) {
|
|
|
280
307
|
// Remove the Arcade expressions from the returned list of field expressions
|
|
281
308
|
return fieldExpressions.filter(fieldExpression => arcadeExpressions.indexOf(fieldExpression) < 0);
|
|
282
309
|
}
|
|
310
|
+
/**
|
|
311
|
+
* Extracts field names from field name expressions.
|
|
312
|
+
*
|
|
313
|
+
* @param fieldExpressions Array of field name expressions, e.g., ["{NAME}", "{STREET}", "{CITY}", "{STATE}", "{ZIP}"]
|
|
314
|
+
* @returns Array of field names, e.g., ["NAME", "STREET", "CITY", "STATE", "ZIP"]
|
|
315
|
+
*/
|
|
316
|
+
export function _getFieldNamesFromFieldExpressions(fieldExpressions) {
|
|
317
|
+
return fieldExpressions.map(expr => expr.substring(1, expr.length - 1));
|
|
318
|
+
}
|
|
319
|
+
/**
|
|
320
|
+
* Extracts the label format from the layer.
|
|
321
|
+
*
|
|
322
|
+
* @param layer Layer with label format
|
|
323
|
+
* @param formatUsingLayerPopup When true, the layer's popup is used to choose attributes for each column; when false,
|
|
324
|
+
* all attributes are exported
|
|
325
|
+
* @param attributeFormats Empty object to hold the formats for each attribute in a feature; the object is filled
|
|
326
|
+
* with formats by this function
|
|
327
|
+
* @returns A Promise resolving to the format of a single label, e.g., for ILabelFormat type "pattern":
|
|
328
|
+
* "{NAME}|{STREET}|{CITY}, {STATE} {ZIP}"
|
|
329
|
+
*/
|
|
330
|
+
export async function _getLabelFormat(layer, formatUsingLayerPopup, attributeFormats) {
|
|
331
|
+
var _a, _b, _c, _d, _e, _f;
|
|
332
|
+
let labelFormat = {
|
|
333
|
+
type: "unsupported",
|
|
334
|
+
format: undefined
|
|
335
|
+
};
|
|
336
|
+
if (layer.popupEnabled) {
|
|
337
|
+
layer.popupTemplate.fieldInfos.forEach(
|
|
338
|
+
// Extract any format info that we have
|
|
339
|
+
fieldInfo => {
|
|
340
|
+
if (fieldInfo.format) {
|
|
341
|
+
attributeFormats[fieldInfo.fieldName] = fieldInfo.format;
|
|
342
|
+
}
|
|
343
|
+
});
|
|
344
|
+
// What is the nature of the label content?
|
|
345
|
+
// Fields list
|
|
346
|
+
if (formatUsingLayerPopup && ((_b = (_a = layer.popupTemplate) === null || _a === void 0 ? void 0 : _a.content[0]) === null || _b === void 0 ? void 0 : _b.type) === "fields") {
|
|
347
|
+
labelFormat = _convertPopupFieldsToLabelSpec(layer.popupTemplate.fieldInfos);
|
|
348
|
+
// If popup is configured with "no attribute information", then no fields will visible
|
|
349
|
+
if (labelFormat.format.length === 0) {
|
|
350
|
+
// Can we use the popup title?
|
|
351
|
+
labelFormat = layer.popupTemplate.title && typeof layer.popupTemplate.title === "string" ?
|
|
352
|
+
{ type: "pattern", format: layer.popupTemplate.title }
|
|
353
|
+
:
|
|
354
|
+
// Otherwise revert to using attributes
|
|
355
|
+
_convertPopupFieldsToLabelSpec(layer.popupTemplate.fieldInfos, true);
|
|
356
|
+
}
|
|
357
|
+
// Example text: '<p>{name} {age} years </p><p>started: {start}</p>'
|
|
358
|
+
}
|
|
359
|
+
else if (formatUsingLayerPopup && ((_d = (_c = layer.popupTemplate) === null || _c === void 0 ? void 0 : _c.content[0]) === null || _d === void 0 ? void 0 : _d.type) === "text") {
|
|
360
|
+
labelFormat = _convertPopupTextToLabelSpec(layer.popupTemplate.content[0].text);
|
|
361
|
+
// Example 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}',
|
|
362
|
+
}
|
|
363
|
+
else if (formatUsingLayerPopup && ((_f = (_e = layer.popupTemplate) === null || _e === void 0 ? void 0 : _e.content[0]) === null || _f === void 0 ? void 0 : _f.type) === "expression") {
|
|
364
|
+
labelFormat = await _convertPopupArcadeToLabelSpec(layer.popupTemplate.content[0].expressionInfo);
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
return Promise.resolve(labelFormat);
|
|
368
|
+
}
|
|
369
|
+
/**
|
|
370
|
+
* Extract selectionSetNames from the provided exportInfos
|
|
371
|
+
*
|
|
372
|
+
* @param exportInfos Key details about what to export (ids, layer, and selectionSetNames)
|
|
373
|
+
* @returns selectionSetNames that will be used for export filenames
|
|
374
|
+
*/
|
|
375
|
+
export function _getSelectionSetNames(exportInfos, id = /.+/) {
|
|
376
|
+
let selectionSetNames = [];
|
|
377
|
+
Object.keys(exportInfos).forEach(k => {
|
|
378
|
+
const exportInfo = exportInfos[k];
|
|
379
|
+
if (id.test(k)) {
|
|
380
|
+
selectionSetNames = selectionSetNames.concat(exportInfo.selectionSetNames);
|
|
381
|
+
}
|
|
382
|
+
});
|
|
383
|
+
return selectionSetNames;
|
|
384
|
+
}
|
|
283
385
|
/**
|
|
284
386
|
* Prepares an attribute's value by applying domain and type information.
|
|
285
387
|
*
|
|
@@ -288,13 +390,16 @@ export function _getFieldsFromLabel(labelFormat) {
|
|
|
288
390
|
* @param attributeDomain Domain info for attribute, if any
|
|
289
391
|
* @param attributeFormat Format info for attribute, if any
|
|
290
392
|
* @param intl esri/intl
|
|
291
|
-
* @return Attribute value modified appropriate to domain and type
|
|
393
|
+
* @return Attribute value modified appropriate to domain and type and converted to a string
|
|
292
394
|
*/
|
|
293
|
-
function _prepareAttributeValue(attributeValue, attributeType, attributeDomain, attributeFormat, intl) {
|
|
395
|
+
export function _prepareAttributeValue(attributeValue, attributeType, attributeDomain, attributeFormat, intl) {
|
|
396
|
+
if (attributeValue === null || typeof attributeValue === "undefined") {
|
|
397
|
+
return "";
|
|
398
|
+
}
|
|
294
399
|
if (attributeDomain && attributeDomain.type === "coded-value") {
|
|
295
400
|
// "coded-value" domain field
|
|
296
401
|
const value = attributeDomain.getName(attributeValue);
|
|
297
|
-
return value;
|
|
402
|
+
return value.toString();
|
|
298
403
|
}
|
|
299
404
|
else {
|
|
300
405
|
// Non-domain field or unsupported domain type
|
|
@@ -338,9 +443,7 @@ function _prepareAttributeValue(attributeValue, attributeType, attributeDomain,
|
|
|
338
443
|
* @param includeHeaderNames Add the label format at the front of the list of generated labels
|
|
339
444
|
* @returns Promise resolving when function is done
|
|
340
445
|
*/
|
|
341
|
-
async function _prepareLabels(layer, ids, formatUsingLayerPopup = true, includeHeaderNames = false) {
|
|
342
|
-
var _a, _b, _c, _d;
|
|
343
|
-
const [intl] = await loadModules(["esri/intl"]);
|
|
446
|
+
export async function _prepareLabels(layer, ids, formatUsingLayerPopup = true, includeHeaderNames = false) {
|
|
344
447
|
// Get the features to export
|
|
345
448
|
const featureSet = await queryFeaturesByID(ids, layer, [], false);
|
|
346
449
|
// Get field data types. Do we have any domain-based fields?
|
|
@@ -352,179 +455,96 @@ async function _prepareLabels(layer, ids, formatUsingLayerPopup = true, includeH
|
|
|
352
455
|
});
|
|
353
456
|
const attributeFormats = {};
|
|
354
457
|
// Get the label formatting, if any
|
|
355
|
-
|
|
356
|
-
let relationshipQueries = {};
|
|
357
|
-
let arcadeExecutors = {};
|
|
358
|
-
if (layer.popupEnabled) {
|
|
359
|
-
layer.popupTemplate.fieldInfos.forEach(
|
|
360
|
-
// Extract any format info that we have
|
|
361
|
-
fieldInfo => {
|
|
362
|
-
if (fieldInfo.format) {
|
|
363
|
-
attributeFormats[fieldInfo.fieldName] = fieldInfo.format;
|
|
364
|
-
}
|
|
365
|
-
});
|
|
366
|
-
// What data fields are used in the labels?
|
|
367
|
-
// Example labelFormat: ['{NAME}', '{STREET}', '{CITY}, {STATE} {ZIP}']
|
|
368
|
-
if (formatUsingLayerPopup && ((_b = (_a = layer.popupTemplate) === null || _a === void 0 ? void 0 : _a.content[0]) === null || _b === void 0 ? void 0 : _b.type) === "fields") {
|
|
369
|
-
labelFormat = _convertPopupFieldsToLabelSpec(layer.popupTemplate.fieldInfos);
|
|
370
|
-
// If popup is configured with "no attribute information", then no fields will visible
|
|
371
|
-
if (labelFormat.length === 0) {
|
|
372
|
-
// Can we use the popup title?
|
|
373
|
-
// eslint-disable-next-line unicorn/prefer-ternary
|
|
374
|
-
if (typeof layer.popupTemplate.title === "string") {
|
|
375
|
-
labelFormat = layer.popupTemplate.title;
|
|
376
|
-
// Otherwise revert to using attributes
|
|
377
|
-
}
|
|
378
|
-
else {
|
|
379
|
-
labelFormat = _convertPopupFieldsToLabelSpec(layer.popupTemplate.fieldInfos, true);
|
|
380
|
-
}
|
|
381
|
-
}
|
|
382
|
-
}
|
|
383
|
-
else if (formatUsingLayerPopup && ((_d = (_c = layer.popupTemplate) === null || _c === void 0 ? void 0 : _c.content[0]) === null || _d === void 0 ? void 0 : _d.type) === "text") {
|
|
384
|
-
labelFormat = _convertPopupTextToLabelSpec(layer.popupTemplate.content[0].text);
|
|
385
|
-
// Do we need any relationship queries?
|
|
386
|
-
relationshipQueries = _createRelationshipQueries(layer);
|
|
387
|
-
// Do we need any Arcade executors?
|
|
388
|
-
arcadeExecutors = await _createArcadeExecutors(labelFormat, layer);
|
|
389
|
-
}
|
|
390
|
-
}
|
|
458
|
+
const labelFormat = await _getLabelFormat(layer, formatUsingLayerPopup, attributeFormats);
|
|
391
459
|
// Apply the label format
|
|
392
|
-
|
|
393
|
-
// eslint-disable-next-line unicorn/prefer-ternary
|
|
394
|
-
if (labelFormat) {
|
|
395
|
-
// Find the label fields that we need to replace with values
|
|
396
|
-
const arcadeExpressionMatches = _getExpressionsFromLabel(labelFormat);
|
|
397
|
-
const attributeMatches = _getFieldsFromLabel(labelFormat);
|
|
398
|
-
// Convert feature attributes into an array of labels
|
|
399
|
-
const relationshipKeys = Object.keys(relationshipQueries);
|
|
400
|
-
labels = await Promise.all(featureSet.map(async (feature) => {
|
|
401
|
-
let labelPrep = labelFormat;
|
|
402
|
-
// Replace Arcade expressions in this feature
|
|
403
|
-
arcadeExpressionMatches.forEach((match) => {
|
|
404
|
-
const expressionName = match.substring(match.indexOf("/") + 1, match.length - 1);
|
|
405
|
-
const value = arcadeExecutors[expressionName].execute({ "$feature": feature });
|
|
406
|
-
labelPrep = labelPrep.replace(match, value);
|
|
407
|
-
});
|
|
408
|
-
// Replace relationship expressions in this feature
|
|
409
|
-
const relatedFeatureQueries = [];
|
|
410
|
-
const relationshipIds = [];
|
|
411
|
-
relationshipKeys.forEach((relationshipId) => {
|
|
412
|
-
const relationship = relationshipQueries[relationshipId];
|
|
413
|
-
const objectId = feature.attributes[relationship.layer.objectIdField];
|
|
414
|
-
const relatedQuery = Object.assign(Object.assign({}, relationship.relatedQuery), { objectIds: [objectId] });
|
|
415
|
-
relatedFeatureQueries.push(relationship.layer.queryRelatedFeatures(relatedQuery));
|
|
416
|
-
relationshipIds.push(relationshipId);
|
|
417
|
-
});
|
|
418
|
-
// Wait for all of the queries for related records for this label
|
|
419
|
-
const relatedFeatureQueryResults = await Promise.all(relatedFeatureQueries);
|
|
420
|
-
relatedFeatureQueryResults.forEach((relatedFeatureQueryResult, i) => {
|
|
421
|
-
// We have an object with FeatureSets grouped by source layer or table objectIds
|
|
422
|
-
const relationshipId = relationshipIds[i];
|
|
423
|
-
// Run through the source layer or table objectIds
|
|
424
|
-
Object.keys(relatedFeatureQueryResult).forEach(relatedFeatureSetId => {
|
|
425
|
-
// We have a feature set
|
|
426
|
-
const relatedFeatures = relatedFeatureQueryResult[relatedFeatureSetId].features;
|
|
427
|
-
// Get the values from each feature and replace them in the label
|
|
428
|
-
relatedFeatures.forEach(feature => {
|
|
429
|
-
// Merge the base and related feature attributes and create the label
|
|
430
|
-
// Prefix related feature's attributes with "relationships/<id>/" to match popup
|
|
431
|
-
const rePrefix = "\{relationships/" + relationshipId + "/";
|
|
432
|
-
const reSuffix = "\}";
|
|
433
|
-
const attributes = feature.attributes;
|
|
434
|
-
Object.keys(attributes).forEach(attributeName => {
|
|
435
|
-
// Replace the value using the attribute name as a relationship
|
|
436
|
-
const attributeRelationshipRegExp = new RegExp(rePrefix + attributeName + reSuffix, "g");
|
|
437
|
-
labelPrep = labelPrep.replaceAll(attributeRelationshipRegExp, attributes[attributeName]);
|
|
438
|
-
});
|
|
439
|
-
});
|
|
440
|
-
});
|
|
441
|
-
});
|
|
442
|
-
// Replace non-Arcade fields in this feature
|
|
443
|
-
attributeMatches.forEach((match) => {
|
|
444
|
-
const attributeName = match.substring(1, match.length - 1);
|
|
445
|
-
const value = _prepareAttributeValue(feature.attributes[attributeName], attributeTypes[attributeName], attributeDomains[attributeName], attributeFormats[attributeName], intl);
|
|
446
|
-
labelPrep = labelPrep.replace(match, value);
|
|
447
|
-
});
|
|
448
|
-
// Split label into lines
|
|
449
|
-
let label = labelPrep.split(lineSeparatorChar);
|
|
450
|
-
// Trim lines
|
|
451
|
-
label = label.map(line => line.trim());
|
|
452
|
-
return label;
|
|
453
|
-
}));
|
|
454
|
-
}
|
|
455
|
-
else {
|
|
460
|
+
const labels = labelFormat.type === "unsupported" ?
|
|
456
461
|
// Export all attributes
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
+
await _prepareLabelsFromAll(featureSet, attributeTypes, attributeDomains, includeHeaderNames)
|
|
463
|
+
: labelFormat.type == "pattern" ?
|
|
464
|
+
// Export attributes in format
|
|
465
|
+
await _prepareLabelsFromPattern(featureSet, attributeTypes, attributeDomains, attributeFormats, labelFormat.format, includeHeaderNames)
|
|
466
|
+
:
|
|
467
|
+
// Export attributes in expression
|
|
468
|
+
await _prepareLabelsUsingExecutor(featureSet, labelFormat.format);
|
|
469
|
+
return Promise.resolve(labels);
|
|
470
|
+
}
|
|
471
|
+
/**
|
|
472
|
+
* Creates labels from all attributes in items.
|
|
473
|
+
*
|
|
474
|
+
* @param featureSet Features to convert to labels
|
|
475
|
+
* @param attributeTypes Type for each attribute in a feature
|
|
476
|
+
* @param attributeDomains Domains for each attribute in a feature
|
|
477
|
+
* @param includeHeaderNames Add the label format at the front of the list of generated labels
|
|
478
|
+
* @returns Promise resolving with list of labels, each of which is a list of label lines
|
|
479
|
+
*/
|
|
480
|
+
export async function _prepareLabelsFromAll(featureSet, attributeTypes, attributeDomains, includeHeaderNames = false) {
|
|
481
|
+
const [intl] = await loadModules(["esri/intl"]);
|
|
482
|
+
// Export all attributes
|
|
483
|
+
const labels = featureSet.map(feature => {
|
|
484
|
+
return Object.keys(feature.attributes).map((attributeName) => {
|
|
485
|
+
return _prepareAttributeValue(feature.attributes[attributeName], attributeTypes[attributeName], attributeDomains[attributeName], null, intl);
|
|
462
486
|
});
|
|
463
|
-
}
|
|
487
|
+
});
|
|
464
488
|
// Add header names
|
|
465
489
|
if (includeHeaderNames) {
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
const featuresAttrs = featureSet[0].attributes;
|
|
472
|
-
Object.keys(featuresAttrs).forEach(k => {
|
|
473
|
-
headerNames.push(k);
|
|
474
|
-
});
|
|
475
|
-
}
|
|
490
|
+
const headerNames = [];
|
|
491
|
+
const featuresAttrs = featureSet[0].attributes;
|
|
492
|
+
Object.keys(featuresAttrs).forEach(k => {
|
|
493
|
+
headerNames.push(k);
|
|
494
|
+
});
|
|
476
495
|
labels.unshift(headerNames);
|
|
477
496
|
}
|
|
478
497
|
return Promise.resolve(labels);
|
|
479
498
|
}
|
|
480
499
|
/**
|
|
481
|
-
*
|
|
500
|
+
* Creates labels from attributes in a layer popup.
|
|
482
501
|
*
|
|
483
|
-
* @param
|
|
484
|
-
* @
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
}
|
|
491
|
-
/**
|
|
492
|
-
* Extract selectionSetNames from the provided exportInfos
|
|
493
|
-
*
|
|
494
|
-
* @param exportInfos Key details about what to export (ids, layer, and selectionSetNames)
|
|
495
|
-
* @returns selectionSetNames that will be used for export filenames
|
|
502
|
+
* @param featureSet Features to convert to labels
|
|
503
|
+
* @param attributeTypes Type for each attribute in a feature
|
|
504
|
+
* @param attributeDomains Domains for each attribute in a feature
|
|
505
|
+
* @param attributeFormats Formats for each attribute in a feature
|
|
506
|
+
* @param labelFormat Format for label
|
|
507
|
+
* @param includeHeaderNames Add the label format at the front of the list of generated labels
|
|
508
|
+
* @returns Promise resolving with list of labels, each of which is a list of label lines
|
|
496
509
|
*/
|
|
497
|
-
function
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
510
|
+
export async function _prepareLabelsFromPattern(featureSet, attributeTypes, attributeDomains, attributeFormats, labelFormat, includeHeaderNames = false) {
|
|
511
|
+
const [intl] = await loadModules(["esri/intl"]);
|
|
512
|
+
// Find the label fields that we need to replace with values
|
|
513
|
+
const attributeExpressionMatches = _getFieldExpressionsFromLabel(labelFormat);
|
|
514
|
+
const attributeNames = _getFieldNamesFromFieldExpressions(attributeExpressionMatches);
|
|
515
|
+
// Convert feature attributes into an array of labels
|
|
516
|
+
const labels = await Promise.all(featureSet.map(async (feature) => {
|
|
517
|
+
let labelPrep = labelFormat;
|
|
518
|
+
// Replace non-Arcade fields in this feature
|
|
519
|
+
attributeNames.forEach((attributeName, i) => {
|
|
520
|
+
const value = _prepareAttributeValue(feature.attributes[attributeName], attributeTypes[attributeName], attributeDomains[attributeName], attributeFormats[attributeName], intl);
|
|
521
|
+
labelPrep = labelPrep.replace(attributeExpressionMatches[i], value);
|
|
522
|
+
});
|
|
523
|
+
// Split label into lines
|
|
524
|
+
let label = labelPrep.split(lineSeparatorChar);
|
|
525
|
+
// Trim lines
|
|
526
|
+
label = label.map(line => _cleanupLabel(line));
|
|
527
|
+
return label;
|
|
528
|
+
}));
|
|
529
|
+
// Add header names
|
|
530
|
+
if (includeHeaderNames) {
|
|
531
|
+
labels.unshift(attributeNames);
|
|
532
|
+
}
|
|
533
|
+
return Promise.resolve(labels);
|
|
506
534
|
}
|
|
507
535
|
/**
|
|
508
|
-
*
|
|
536
|
+
* Creates labels from attributes in an Arcade label.
|
|
509
537
|
*
|
|
510
|
-
* @param
|
|
511
|
-
* @param
|
|
512
|
-
*
|
|
513
|
-
* @param includeHeaderNames Add the label format at the front of the list of generated labels
|
|
514
|
-
* @returns selectionSetNames that will be used for export filenames
|
|
538
|
+
* @param featureSet Features to convert to labels
|
|
539
|
+
* @param labelFormat Arcade executor for label
|
|
540
|
+
* @returns Promise resolving with list of labels, each of which is a list of label lines
|
|
515
541
|
*/
|
|
516
|
-
export async function
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
// add the layer id as a temp value separator that we can use to split values for CSV export
|
|
524
|
-
labelRequests.push(Promise.resolve([[k]]));
|
|
525
|
-
}
|
|
526
|
-
});
|
|
527
|
-
const labels = await Promise.all(labelRequests);
|
|
528
|
-
return labels.reduce((prev, cur) => prev.concat(cur), []);
|
|
542
|
+
export async function _prepareLabelsUsingExecutor(featureSet, labelFormat) {
|
|
543
|
+
// Convert feature attributes into an array of labels
|
|
544
|
+
const execResults = await Promise.all(featureSet.map(async (feature) => {
|
|
545
|
+
return labelFormat.executeAsync({ "$feature": feature });
|
|
546
|
+
}));
|
|
547
|
+
const labels = execResults.map(result => _cleanupLabel(result.text).split(lineSeparatorChar));
|
|
548
|
+
return Promise.resolve(labels);
|
|
529
549
|
}
|
|
530
550
|
//#endregion
|