@esri/solutions-components 0.10.49 → 0.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/ExpandToggle-44886935.js +115 -0
- package/dist/cjs/FloatingArrow-d7ea2b0f.js +48 -0
- package/dist/cjs/Heading-ee0aa171.js +25 -0
- package/dist/cjs/IdentityManager-d84c82f1.js +2047 -0
- package/dist/cjs/Validation-9515ef0c.js +20 -0
- package/dist/cjs/app-globals-03a6ab9b.js +67 -0
- package/dist/cjs/ar-180cd9b0.js +106 -0
- package/dist/cjs/asyncToGenerator-c7fc3ee4.js +92 -0
- package/dist/cjs/basemap-gallery_7.cjs.entry.js +37 -12
- package/dist/cjs/bg-fd095c86.js +84 -0
- package/dist/cjs/browser-717f77af.js +35 -0
- package/dist/cjs/bs-11fa6f0d.js +53 -0
- package/dist/cjs/buffer-tools_3.cjs.entry.js +6 -6
- package/dist/cjs/ca-0685b1cc.js +73 -0
- package/dist/cjs/calcite-accordion_2.cjs.entry.js +5 -5
- package/dist/cjs/calcite-action-bar.cjs.entry.js +8 -8
- package/dist/cjs/calcite-action-group.cjs.entry.js +7 -7
- package/dist/cjs/calcite-action-menu_2.cjs.entry.js +9 -9
- package/dist/cjs/calcite-action-pad_2.cjs.entry.js +8 -8
- package/dist/cjs/calcite-action_2.cjs.entry.js +13 -13
- package/dist/cjs/calcite-alert_2.cjs.entry.js +500 -0
- package/dist/cjs/calcite-avatar.cjs.entry.js +1 -1
- package/dist/cjs/calcite-block-section.cjs.entry.js +6 -6
- package/dist/cjs/calcite-block_5.cjs.entry.js +17 -17
- package/dist/cjs/calcite-button-de2c2e75.js +282 -0
- package/dist/cjs/calcite-button.cjs.entry.js +8 -8
- package/dist/cjs/calcite-card-group.cjs.entry.js +4 -4
- package/dist/cjs/calcite-card.cjs.entry.js +7 -7
- package/dist/cjs/calcite-carousel_2.cjs.entry.js +7 -7
- package/dist/cjs/calcite-checkbox.cjs.entry.js +5 -5
- package/dist/cjs/calcite-chip-group.cjs.entry.js +4 -4
- package/dist/cjs/calcite-chip_2.cjs.entry.js +9 -9
- package/dist/cjs/calcite-color-picker-hex-input_2.cjs.entry.js +3 -3
- package/dist/cjs/calcite-color-picker.cjs.entry.js +7 -7
- package/dist/cjs/calcite-combobox-item-group.cjs.entry.js +3 -3
- package/dist/cjs/calcite-combobox_3.cjs.entry.js +66 -20
- package/dist/cjs/calcite-date-picker-day_3.cjs.entry.js +8 -8
- package/dist/cjs/calcite-dialog-a5c288bb.js +5876 -0
- package/dist/cjs/calcite-dialog.cjs.entry.js +9 -9
- package/dist/cjs/calcite-dropdown_2.cjs.entry.js +7 -7
- package/dist/cjs/calcite-fab.cjs.entry.js +4 -4
- package/dist/cjs/calcite-filter_5.cjs.entry.js +7 -7
- package/dist/cjs/calcite-flow-item_5.cjs.entry.js +1752 -0
- package/dist/cjs/calcite-flow_4.cjs.entry.js +12 -12
- package/dist/cjs/calcite-graph_2.cjs.entry.js +7 -7
- package/dist/cjs/calcite-icon_2.cjs.entry.js +4 -4
- package/dist/cjs/calcite-inline-editable.cjs.entry.js +7 -7
- package/dist/cjs/calcite-input-945ec162.js +1001 -0
- package/dist/cjs/calcite-input-number.cjs.entry.js +9 -9
- package/dist/cjs/calcite-input-text.cjs.entry.js +9 -9
- package/dist/cjs/calcite-input-time-picker-3aeef2d4.js +1870 -0
- package/dist/cjs/calcite-input-time-picker.cjs.entry.js +13 -13
- package/dist/cjs/calcite-input-time-zone.cjs.entry.js +8 -8
- package/dist/cjs/calcite-input_2.cjs.entry.js +9 -9
- package/dist/cjs/calcite-label-e7b67a86.js +111 -0
- package/dist/cjs/calcite-label.cjs.entry.js +1 -1
- package/dist/cjs/calcite-link.cjs.entry.js +4 -4
- package/dist/cjs/calcite-list-item-group.cjs.entry.js +2 -2
- package/dist/cjs/calcite-menu-item.cjs.entry.js +6 -6
- package/dist/cjs/calcite-menu.cjs.entry.js +6 -6
- package/dist/cjs/calcite-meter.cjs.entry.js +6 -6
- package/dist/cjs/calcite-modal_4.cjs.entry.js +972 -0
- package/dist/cjs/calcite-navigation-logo.cjs.entry.js +4 -4
- package/dist/cjs/calcite-navigation-user.cjs.entry.js +3 -3
- package/dist/cjs/calcite-navigation.cjs.entry.js +3 -3
- package/dist/cjs/calcite-notice-a48cc9e7.js +261 -0
- package/dist/cjs/calcite-notice.cjs.entry.js +8 -8
- package/dist/cjs/calcite-option-group.cjs.entry.js +1 -1
- package/dist/cjs/calcite-option_2.cjs.entry.js +7 -7
- package/dist/cjs/calcite-pagination.cjs.entry.js +6 -6
- package/dist/cjs/calcite-pick-list-group.cjs.entry.js +7 -7
- package/dist/cjs/calcite-pick-list-item.cjs.entry.js +10 -10
- package/dist/cjs/calcite-pick-list.cjs.entry.js +8 -8
- package/dist/cjs/calcite-radio-button-group.cjs.entry.js +5 -5
- package/dist/cjs/calcite-radio-button.cjs.entry.js +5 -5
- package/dist/cjs/calcite-rating.cjs.entry.js +8 -8
- package/dist/cjs/calcite-scrim.cjs.entry.js +5 -5
- package/dist/cjs/calcite-segmented-control_2.cjs.entry.js +6 -6
- package/dist/cjs/calcite-sheet.cjs.entry.js +7 -7
- package/dist/cjs/calcite-shell-center-row.cjs.entry.js +6 -6
- package/dist/cjs/calcite-shell-panel_14.cjs.entry.js +24 -24
- package/dist/cjs/calcite-shell.cjs.entry.js +4 -4
- package/dist/cjs/calcite-sortable-list.cjs.entry.js +4 -4
- package/dist/cjs/calcite-split-button.cjs.entry.js +4 -4
- package/dist/cjs/calcite-stepper-item.cjs.entry.js +7 -7
- package/dist/cjs/calcite-stepper.cjs.entry.js +5 -5
- package/dist/cjs/calcite-switch.cjs.entry.js +5 -5
- package/dist/cjs/calcite-table-cell_2.cjs.entry.js +7 -7
- package/dist/cjs/calcite-table-row.cjs.entry.js +2 -2
- package/dist/cjs/calcite-table.cjs.entry.js +6 -6
- package/dist/cjs/calcite-text-area.cjs.entry.js +9 -9
- package/dist/cjs/calcite-tile-group.cjs.entry.js +4 -4
- package/dist/cjs/calcite-tile-select-group.cjs.entry.js +4 -4
- package/dist/cjs/calcite-tile-select.cjs.entry.js +6 -6
- package/dist/cjs/calcite-tile.cjs.entry.js +4 -4
- package/dist/cjs/calcite-time-picker.cjs.entry.js +7 -7
- package/dist/cjs/calcite-tip-group.cjs.entry.js +3 -3
- package/dist/cjs/calcite-tip-manager.cjs.entry.js +8 -8
- package/dist/cjs/calcite-tip.cjs.entry.js +9 -9
- package/dist/cjs/calcite-tooltip.cjs.entry.js +5 -5
- package/dist/cjs/calcite-tree_2.cjs.entry.js +5 -5
- package/dist/cjs/card-manager_3.cjs.entry.js +194 -51
- package/dist/cjs/common-10d11a29.js +37 -0
- package/dist/cjs/conditionalSlot-130cce71.js +54 -0
- package/dist/cjs/config-c999f8fc.js +40 -0
- package/dist/cjs/consent-manager.cjs.entry.js +7915 -46
- package/dist/cjs/crowdsource-manager.cjs.entry.js +6 -6
- package/dist/cjs/crowdsource-reporter.cjs.entry.js +3 -3
- package/dist/cjs/cs-70e8ba01.js +149 -0
- package/dist/cjs/da-e8eb9ff4.js +69 -0
- package/dist/cjs/date-40a80298.js +264 -0
- package/dist/cjs/de-4b8310d2.js +93 -0
- package/dist/cjs/de-at-dc8ed8c3.js +92 -0
- package/dist/cjs/de-ch-c5971940.js +92 -0
- package/dist/cjs/deduct-calculator.cjs.entry.js +2 -2
- package/dist/cjs/downloadUtils-b6490537.js +3223 -0
- package/dist/cjs/el-a70d9f12.js +68 -0
- package/dist/cjs/en-au-88ddb80f.js +68 -0
- package/dist/cjs/en-ca-5a29b95b.js +67 -0
- package/dist/cjs/en-gb-3c763a84.js +71 -0
- package/dist/cjs/es-e83e8ff5.js +68 -0
- package/dist/cjs/es-mx-2ea879ef.js +67 -0
- package/dist/cjs/et-7b00c80d.js +94 -0
- package/dist/cjs/feature-list.cjs.entry.js +12 -10
- package/dist/cjs/fi-92ca007b.js +117 -0
- package/dist/cjs/floating-ui-7fa9e006.js +2413 -0
- package/dist/cjs/focusTrapComponent-a7cfa6da.js +1013 -0
- package/dist/cjs/form-dd5380da.js +370 -0
- package/dist/cjs/form-f2a43327.js +381 -0
- package/dist/cjs/fr-a1f5dfd4.js +70 -0
- package/dist/cjs/fr-ch-8a4a9d67.js +68 -0
- package/dist/cjs/he-38b2b883.js +107 -0
- package/dist/cjs/helpers-47465fc2.js +940 -0
- package/dist/cjs/hi-a517b1a8.js +67 -0
- package/dist/cjs/hr-c1e34de1.js +82 -0
- package/dist/cjs/hu-e46e8ae7.js +90 -0
- package/dist/cjs/icon-f45e7fbb.js +979 -0
- package/dist/cjs/id-bfc376d8.js +68 -0
- package/dist/cjs/index-1ab17699.js +201 -0
- package/dist/cjs/index-3bae5121.js +1789 -0
- package/dist/cjs/index-5d8d6ae2.js +2157 -0
- package/dist/cjs/index.es-5fc7bebc.js +11221 -0
- package/dist/cjs/instant-apps-app-guide.cjs.entry.js +2 -2
- package/dist/cjs/instant-apps-control-panel.cjs.entry.js +1 -1
- package/dist/cjs/instant-apps-create.cjs.entry.js +2 -2
- package/dist/cjs/instant-apps-export-views.cjs.entry.js +2 -2
- package/dist/cjs/instant-apps-export.cjs.entry.js +2 -2
- package/dist/cjs/instant-apps-header.cjs.entry.js +2 -2
- package/dist/cjs/instant-apps-interactive-legend-classic.cjs.entry.js +3 -3
- package/dist/cjs/instant-apps-interactive-legend-count_2.cjs.entry.js +3 -3
- package/dist/cjs/instant-apps-interactive-legend-group-legend-element-caption.cjs.entry.js +3 -3
- package/dist/cjs/instant-apps-interactive-legend-group-legend-element_5.cjs.entry.js +3 -3
- package/dist/cjs/instant-apps-interactive-legend.cjs.entry.js +4 -4
- package/dist/cjs/instant-apps-keyboard-shortcuts.cjs.entry.js +2 -2
- package/dist/cjs/instant-apps-landing-page.cjs.entry.js +1 -1
- package/dist/cjs/instant-apps-language-switcher.cjs.entry.js +4 -4
- package/dist/cjs/instant-apps-language-translator.cjs.entry.js +4 -4
- package/dist/cjs/instant-apps-measurement.cjs.entry.js +2 -2
- package/dist/cjs/instant-apps-popover.cjs.entry.js +2 -2
- package/dist/cjs/instant-apps-popovers.cjs.entry.js +1 -1
- package/dist/cjs/instant-apps-scoreboard.cjs.entry.js +2 -2
- package/dist/cjs/instant-apps-sign-in.cjs.entry.js +2 -2
- package/dist/cjs/instant-apps-splash.cjs.entry.js +3 -3
- package/dist/cjs/instant-apps-time-filter.cjs.entry.js +3 -3
- package/dist/cjs/interactive-b59e6294.js +86 -0
- package/dist/cjs/interactive-e1c3ccf2.js +85 -0
- package/dist/cjs/it-6d8c8360.js +68 -0
- package/dist/cjs/it-ch-2b05812c.js +68 -0
- package/dist/cjs/ja-eb46f963.js +74 -0
- package/dist/cjs/ko-dbe28d19.js +74 -0
- package/dist/cjs/loadable-19ab5827.js +98 -0
- package/dist/cjs/loader-97bb6b45.js +176 -0
- package/dist/cjs/loader.cjs.js +5 -5
- package/dist/cjs/locale-3a817e03.js +1488 -0
- package/dist/cjs/locale-80aff4b9.js +605 -0
- package/dist/cjs/locale-a79da367.js +160 -0
- package/dist/cjs/logger-780b61e8.js +61 -0
- package/dist/cjs/lt-651bfa9c.js +99 -0
- package/dist/cjs/lv-f6fe37a3.js +68 -0
- package/dist/cjs/map-select-tools_3.cjs.entry.js +13 -11
- package/dist/cjs/mk-1f0ffdf6.js +68 -0
- package/dist/cjs/nb-8b7b39ed.js +69 -0
- package/dist/cjs/nl-27515721.js +69 -0
- package/dist/cjs/observers-902ebe13.js +58 -0
- package/dist/cjs/openCloseComponent-039ee139.js +65 -0
- package/dist/cjs/openCloseComponent-e8e50700.js +66 -0
- package/dist/cjs/pci-calculator.cjs.entry.js +2 -2
- package/dist/cjs/pl-d2098514.js +116 -0
- package/dist/cjs/popupUtils-72d48968.js +121 -0
- package/dist/cjs/pt-a3304010.js +69 -0
- package/dist/cjs/pt-br-09d60ba8.js +67 -0
- package/dist/cjs/public-notification.cjs.entry.js +12 -10
- package/dist/cjs/publicNotificationStore-04b6837d.js +47 -0
- package/dist/cjs/request-19fdbaaa.js +21 -0
- package/dist/cjs/restHelpersGet-e4639890.js +507 -0
- package/dist/cjs/ro-2ea54b1c.js +68 -0
- package/dist/cjs/ru-f94ee202.js +128 -0
- package/dist/cjs/shared-list-render-fb08b2af.js +361 -0
- package/dist/cjs/sk-3cdf67d8.js +150 -0
- package/dist/cjs/sl-075daf42.js +170 -0
- package/dist/cjs/solution-configuration.cjs.entry.js +53 -53
- package/dist/cjs/solution-contents_3.cjs.entry.js +11 -11
- package/dist/cjs/solution-item-accordion.cjs.entry.js +3 -3
- package/dist/cjs/solution-item-icon.cjs.entry.js +2 -2
- package/dist/cjs/solution-resource-d0a2f7fe.js +1845 -0
- package/dist/cjs/solution-store-4e602251.js +1105 -0
- package/dist/cjs/solutions-components.cjs.js +6 -6
- package/dist/cjs/spatial-ref.cjs.entry.js +5 -6
- package/dist/cjs/sr-2f08967b.js +103 -0
- package/dist/cjs/store-manager.cjs.entry.js +7 -7
- package/dist/cjs/sv-65f0e21c.js +73 -0
- package/dist/cjs/t9n-0195f685.js +108 -0
- package/dist/cjs/templates-1e84847a.js +407 -0
- package/dist/cjs/th-db63e592.js +67 -0
- package/dist/cjs/time-caa0abbe.js +301 -0
- package/dist/cjs/tr-b6401cac.js +68 -0
- package/dist/cjs/typeof-2a7e2dec.js +28 -0
- package/dist/cjs/uk-d00c351d.js +106 -0
- package/dist/cjs/update-243ea407.js +783 -0
- package/dist/cjs/utils-7eb34f90.js +153 -0
- package/dist/cjs/utils-d2bcba4f.js +79 -0
- package/dist/cjs/vi-efe4ad72.js +72 -0
- package/dist/cjs/zh-cn-63f07390.js +96 -0
- package/dist/cjs/zh-hk-84a86ab9.js +94 -0
- package/dist/cjs/zh-tw-894f1adf.js +94 -0
- package/dist/collection/assets/t9n/consent-manager/resources.json +3 -10
- package/dist/collection/assets/t9n/consent-manager/resources_en.json +3 -10
- package/dist/collection/collection-manifest.json +2 -4
- package/dist/collection/components/basemap-gallery/basemap-gallery.js +1 -1
- package/dist/collection/components/buffer-tools/buffer-tools.js +1 -1
- package/dist/collection/components/card-manager/card-manager.js +1 -1
- package/dist/collection/components/consent-manager/consent-manager.js +116 -40
- package/dist/collection/components/create-feature/create-feature.js +2 -2
- package/dist/collection/components/create-related-feature/create-related-feature.js +1 -1
- package/dist/collection/components/crowdsource-manager/crowdsource-manager.css +4 -0
- package/dist/collection/components/crowdsource-manager/crowdsource-manager.js +3 -3
- package/dist/collection/components/crowdsource-reporter/crowdsource-reporter.js +1 -1
- package/dist/collection/components/deduct-calculator/deduct-calculator.js +1 -1
- package/dist/collection/components/delete-button/delete-button.js +2 -2
- package/dist/collection/components/delete-dialog/delete-dialog.js +1 -1
- package/dist/collection/components/edit-card/edit-card.js +26 -2
- package/dist/collection/components/feature-details/feature-details.js +6 -6
- package/dist/collection/components/feature-list/feature-list.js +3 -3
- package/dist/collection/components/floor-filter/floor-filter.js +1 -1
- package/dist/collection/components/info-card/info-card.js +2 -2
- package/dist/collection/components/json-editor/json-editor.js +1 -1
- package/dist/collection/components/layer-table/layer-table.js +224 -47
- package/dist/collection/components/map-card/map-card.js +2 -2
- package/dist/collection/components/map-draw-tools/map-draw-tools.js +1 -1
- package/dist/collection/components/map-fullscreen/map-fullscreen.js +1 -1
- package/dist/collection/components/map-layer-picker/map-layer-picker.js +121 -5
- package/dist/collection/components/map-legend/map-legend.js +1 -1
- package/dist/collection/components/map-picker/map-picker.js +53 -4
- package/dist/collection/components/map-search/map-search.js +1 -1
- package/dist/collection/components/map-select-tools/map-select-tools.js +1 -1
- package/dist/collection/components/map-tools/map-tools.js +2 -2
- package/dist/collection/components/pci-calculator/pci-calculator.js +1 -1
- package/dist/collection/components/pdf-download/pdf-download.js +1 -1
- package/dist/collection/components/public-notification/public-notification.js +2 -2
- package/dist/collection/components/refine-selection/refine-selection.js +1 -1
- package/dist/collection/components/solution-configuration/solution-configuration.js +3 -3
- package/dist/collection/components/solution-contents/solution-contents.js +1 -1
- package/dist/collection/components/solution-item/solution-item.js +1 -1
- package/dist/collection/components/solution-item-accordion/solution-item-accordion.js +1 -1
- package/dist/collection/components/solution-item-details/solution-item-details.js +1 -1
- package/dist/collection/components/solution-item-icon/solution-item-icon.js +1 -1
- package/dist/collection/components/solution-item-sharing/solution-item-sharing.js +1 -1
- package/dist/collection/components/solution-organization-variables/solution-organization-variables.js +1 -1
- package/dist/collection/components/solution-resource-item/solution-resource-item.js +1 -1
- package/dist/collection/components/solution-spatial-ref/solution-spatial-ref.js +1 -1
- package/dist/collection/components/solution-template-data/solution-template-data.js +1 -1
- package/dist/collection/components/solution-variables/solution-variables.js +1 -1
- package/dist/collection/components/spatial-ref/spatial-ref.js +1 -1
- package/dist/collection/demos/consent-manager.html +56 -0
- package/dist/collection/utils/interfaces.ts +14 -0
- package/dist/components/IdentityManager.js +6 -2154
- package/dist/components/asyncToGenerator.js +88 -0
- package/dist/components/basemap-gallery2.js +1 -1
- package/dist/components/buffer-tools2.js +1 -1
- package/dist/components/calcite-dialog.js +1 -663
- package/dist/components/card-manager2.js +10 -10
- package/dist/components/common.js +0 -1
- package/dist/components/consent-manager.js +8054 -204
- package/dist/components/create-feature2.js +2 -2
- package/dist/components/create-related-feature2.js +1 -1
- package/dist/components/crowdsource-manager.js +37 -37
- package/dist/components/crowdsource-reporter.js +28 -28
- package/dist/components/deduct-calculator2.js +1 -1
- package/dist/components/delete-button2.js +29 -11
- package/dist/components/delete-dialog2.js +33 -9
- package/dist/components/dialog.js +670 -0
- package/dist/components/downloadUtils.js +10 -26
- package/dist/components/edit-card2.js +7 -2
- package/dist/components/feature-details2.js +23 -23
- package/dist/components/feature-list2.js +3 -3
- package/dist/components/floor-filter2.js +1 -1
- package/dist/components/index.es.js +25 -104
- package/dist/components/index2.js +6 -5
- package/dist/components/info-card2.js +9 -9
- package/dist/components/json-editor2.js +1 -1
- package/dist/components/layer-table2.js +212 -69
- package/dist/components/map-card2.js +2 -2
- package/dist/components/map-draw-tools2.js +1 -1
- package/dist/components/map-fullscreen2.js +1 -1
- package/dist/components/map-layer-picker2.js +53 -5
- package/dist/components/map-legend2.js +1 -1
- package/dist/components/map-picker2.js +28 -3
- package/dist/components/map-search2.js +1 -1
- package/dist/components/map-select-tools2.js +1 -1
- package/dist/components/map-tools2.js +2 -2
- package/dist/components/pci-calculator.js +1 -1
- package/dist/components/pdf-download2.js +1 -1
- package/dist/components/public-notification.js +2 -2
- package/dist/components/refine-selection2.js +1 -1
- package/dist/components/restHelpersGet.js +74 -557
- package/dist/components/solution-configuration.js +27 -28
- package/dist/components/solution-contents2.js +1 -1
- package/dist/components/solution-item-accordion.js +1 -1
- package/dist/components/solution-item-details2.js +1 -1
- package/dist/components/solution-item-icon2.js +1 -1
- package/dist/components/solution-item-sharing2.js +1 -1
- package/dist/components/solution-item2.js +1 -1
- package/dist/components/solution-organization-variables2.js +1 -1
- package/dist/components/solution-resource-item2.js +1 -2
- package/dist/components/solution-resource.js +1701 -1
- package/dist/components/solution-spatial-ref2.js +1 -1
- package/dist/components/solution-store.js +36 -285
- package/dist/components/solution-template-data2.js +1 -1
- package/dist/components/solution-variables2.js +1 -1
- package/dist/components/spatial-ref.js +1 -1
- package/dist/components/templates.js +0 -1
- package/dist/components/typeof.js +25 -0
- package/dist/components/update.js +773 -0
- package/dist/esm/ExpandToggle-324f556e.js +108 -0
- package/dist/esm/FloatingArrow-cd37b366.js +46 -0
- package/dist/esm/Heading-b6b7a8a6.js +22 -0
- package/dist/esm/IdentityManager-6880e890.js +2012 -0
- package/dist/esm/Validation-b62abebe.js +18 -0
- package/dist/esm/app-globals-b6ef4076.js +65 -0
- package/dist/esm/ar-aa347a04.js +104 -0
- package/dist/esm/asyncToGenerator-96b2368d.js +88 -0
- package/dist/esm/basemap-gallery_7.entry.js +37 -12
- package/dist/esm/bg-b56e89f6.js +82 -0
- package/dist/esm/browser-e42b9848.js +32 -0
- package/dist/esm/bs-62486009.js +51 -0
- package/dist/esm/buffer-tools_3.entry.js +7 -7
- package/dist/esm/ca-db6a81f3.js +71 -0
- package/dist/esm/calcite-accordion_2.entry.js +6 -6
- package/dist/esm/calcite-action-bar.entry.js +9 -9
- package/dist/esm/calcite-action-group.entry.js +8 -8
- package/dist/esm/calcite-action-menu_2.entry.js +10 -10
- package/dist/esm/calcite-action-pad_2.entry.js +9 -9
- package/dist/esm/calcite-action_2.entry.js +14 -14
- package/dist/esm/calcite-alert_2.entry.js +495 -0
- package/dist/esm/calcite-avatar.entry.js +2 -2
- package/dist/esm/calcite-block-section.entry.js +7 -7
- package/dist/esm/calcite-block_5.entry.js +19 -19
- package/dist/esm/calcite-button-e86d99b3.js +279 -0
- package/dist/esm/calcite-button.entry.js +10 -10
- package/dist/esm/calcite-card-group.entry.js +5 -5
- package/dist/esm/calcite-card.entry.js +8 -8
- package/dist/esm/calcite-carousel_2.entry.js +8 -8
- package/dist/esm/calcite-checkbox.entry.js +7 -7
- package/dist/esm/calcite-chip-group.entry.js +5 -5
- package/dist/esm/calcite-chip_2.entry.js +10 -10
- package/dist/esm/calcite-color-picker-hex-input_2.entry.js +4 -4
- package/dist/esm/calcite-color-picker.entry.js +8 -8
- package/dist/esm/calcite-combobox-item-group.entry.js +4 -4
- package/dist/esm/calcite-combobox_3.entry.js +68 -22
- package/dist/esm/calcite-date-picker-day_3.entry.js +9 -9
- package/dist/esm/calcite-dialog-f5f9cfea.js +5873 -0
- package/dist/esm/calcite-dialog.entry.js +10 -10
- package/dist/esm/calcite-dropdown_2.entry.js +8 -8
- package/dist/esm/calcite-fab.entry.js +5 -5
- package/dist/esm/calcite-filter_5.entry.js +8 -8
- package/dist/esm/calcite-flow-item_5.entry.js +1744 -0
- package/dist/esm/calcite-flow_4.entry.js +12 -12
- package/dist/esm/calcite-graph_2.entry.js +9 -9
- package/dist/esm/calcite-icon_2.entry.js +5 -5
- package/dist/esm/calcite-inline-editable.entry.js +9 -9
- package/dist/esm/calcite-input-1f12bce0.js +998 -0
- package/dist/esm/calcite-input-number.entry.js +11 -11
- package/dist/esm/calcite-input-text.entry.js +11 -11
- package/dist/esm/calcite-input-time-picker-07db9ed7.js +1867 -0
- package/dist/esm/calcite-input-time-picker.entry.js +15 -15
- package/dist/esm/calcite-input-time-zone.entry.js +10 -10
- package/dist/esm/calcite-input_2.entry.js +11 -11
- package/dist/esm/calcite-label-d80f6f1c.js +108 -0
- package/dist/esm/calcite-label.entry.js +3 -3
- package/dist/esm/calcite-link.entry.js +5 -5
- package/dist/esm/calcite-list-item-group.entry.js +2 -2
- package/dist/esm/calcite-menu-item.entry.js +7 -7
- package/dist/esm/calcite-menu.entry.js +7 -7
- package/dist/esm/calcite-meter.entry.js +7 -7
- package/dist/esm/calcite-modal_4.entry.js +965 -0
- package/dist/esm/calcite-navigation-logo.entry.js +4 -4
- package/dist/esm/calcite-navigation-user.entry.js +3 -3
- package/dist/esm/calcite-navigation.entry.js +4 -4
- package/dist/esm/calcite-notice-acc12411.js +258 -0
- package/dist/esm/calcite-notice.entry.js +9 -9
- package/dist/esm/calcite-option-group.entry.js +1 -1
- package/dist/esm/calcite-option_2.entry.js +9 -9
- package/dist/esm/calcite-pagination.entry.js +7 -7
- package/dist/esm/calcite-pick-list-group.entry.js +8 -8
- package/dist/esm/calcite-pick-list-item.entry.js +11 -11
- package/dist/esm/calcite-pick-list.entry.js +9 -9
- package/dist/esm/calcite-radio-button-group.entry.js +6 -6
- package/dist/esm/calcite-radio-button.entry.js +7 -7
- package/dist/esm/calcite-rating.entry.js +10 -10
- package/dist/esm/calcite-scrim.entry.js +6 -6
- package/dist/esm/calcite-segmented-control_2.entry.js +8 -8
- package/dist/esm/calcite-sheet.entry.js +8 -8
- package/dist/esm/calcite-shell-center-row.entry.js +7 -7
- package/dist/esm/calcite-shell-panel_14.entry.js +25 -25
- package/dist/esm/calcite-shell.entry.js +5 -5
- package/dist/esm/calcite-sortable-list.entry.js +5 -5
- package/dist/esm/calcite-split-button.entry.js +4 -4
- package/dist/esm/calcite-stepper-item.entry.js +8 -8
- package/dist/esm/calcite-stepper.entry.js +6 -6
- package/dist/esm/calcite-switch.entry.js +7 -7
- package/dist/esm/calcite-table-cell_2.entry.js +8 -8
- package/dist/esm/calcite-table-row.entry.js +3 -3
- package/dist/esm/calcite-table.entry.js +7 -7
- package/dist/esm/calcite-text-area.entry.js +11 -11
- package/dist/esm/calcite-tile-group.entry.js +5 -5
- package/dist/esm/calcite-tile-select-group.entry.js +4 -4
- package/dist/esm/calcite-tile-select.entry.js +6 -6
- package/dist/esm/calcite-tile.entry.js +5 -5
- package/dist/esm/calcite-time-picker.entry.js +8 -8
- package/dist/esm/calcite-tip-group.entry.js +3 -3
- 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 +6 -6
- package/dist/esm/calcite-tree_2.entry.js +6 -6
- package/dist/esm/card-manager_3.entry.js +194 -51
- package/dist/esm/common-c8dc0e85.js +35 -0
- package/dist/esm/conditionalSlot-2e16b206.js +51 -0
- package/dist/esm/config-e6645458.js +36 -0
- package/dist/esm/consent-manager.entry.js +7911 -42
- package/dist/esm/crowdsource-manager.entry.js +6 -6
- package/dist/esm/crowdsource-reporter.entry.js +3 -3
- package/dist/esm/cs-250e21c6.js +147 -0
- package/dist/esm/da-bab8eb4e.js +67 -0
- package/dist/esm/date-272939fd.js +248 -0
- package/dist/esm/de-808a43dc.js +91 -0
- package/dist/esm/de-at-9c396c81.js +90 -0
- package/dist/esm/de-ch-415303cf.js +90 -0
- package/dist/esm/deduct-calculator.entry.js +2 -2
- package/dist/esm/dom-66c5cd46.js +1165 -0
- package/dist/esm/downloadUtils-8ba094d7.js +3217 -0
- package/dist/esm/el-3d1eaeb8.js +66 -0
- package/dist/esm/en-au-e6b00a93.js +66 -0
- package/dist/esm/en-ca-29b94ea2.js +65 -0
- package/dist/esm/en-gb-09267176.js +69 -0
- package/dist/esm/es-95fef748.js +66 -0
- package/dist/esm/es-mx-9b70cfc9.js +65 -0
- package/dist/esm/et-08cbe214.js +92 -0
- package/dist/esm/feature-list.entry.js +12 -10
- package/dist/esm/fi-e850e58b.js +115 -0
- package/dist/esm/floating-ui-1a431a21.js +2404 -0
- package/dist/esm/focusTrapComponent-e80b8863.js +1008 -0
- package/dist/esm/form-1528db83.js +362 -0
- package/dist/esm/form-99398da6.js +372 -0
- package/dist/esm/fr-c71b6844.js +68 -0
- package/dist/esm/fr-ch-7ac7a7eb.js +66 -0
- package/dist/esm/he-311cb5ba.js +105 -0
- package/dist/esm/helpers-f52a734a.js +913 -0
- package/dist/esm/hi-c41f0938.js +65 -0
- package/dist/esm/hr-f42cc721.js +80 -0
- package/dist/esm/hu-d1d33b21.js +88 -0
- package/dist/esm/icon-18c0eb17.js +959 -0
- package/dist/esm/id-1867967d.js +66 -0
- package/dist/esm/index-38bde943.js +199 -0
- package/dist/esm/index-d233c7a2.js +1753 -0
- package/dist/esm/index-d88c3eb6.js +2155 -0
- package/dist/esm/index.es-d286eecc.js +11134 -0
- package/dist/esm/instant-apps-app-guide.entry.js +2 -2
- package/dist/esm/instant-apps-control-panel.entry.js +1 -1
- package/dist/esm/instant-apps-create.entry.js +2 -2
- package/dist/esm/instant-apps-export-views.entry.js +2 -2
- package/dist/esm/instant-apps-export.entry.js +2 -2
- package/dist/esm/instant-apps-header.entry.js +2 -2
- package/dist/esm/instant-apps-interactive-legend-classic.entry.js +3 -3
- package/dist/esm/instant-apps-interactive-legend-count_2.entry.js +3 -3
- package/dist/esm/instant-apps-interactive-legend-group-legend-element-caption.entry.js +3 -3
- package/dist/esm/instant-apps-interactive-legend-group-legend-element_5.entry.js +3 -3
- package/dist/esm/instant-apps-interactive-legend.entry.js +4 -4
- package/dist/esm/instant-apps-keyboard-shortcuts.entry.js +2 -2
- package/dist/esm/instant-apps-landing-page.entry.js +1 -1
- package/dist/esm/instant-apps-language-switcher.entry.js +4 -4
- package/dist/esm/instant-apps-language-translator.entry.js +4 -4
- package/dist/esm/instant-apps-measurement.entry.js +2 -2
- package/dist/esm/instant-apps-popover.entry.js +2 -2
- package/dist/esm/instant-apps-popovers.entry.js +1 -1
- package/dist/esm/instant-apps-scoreboard.entry.js +2 -2
- package/dist/esm/instant-apps-sign-in.entry.js +2 -2
- package/dist/esm/instant-apps-splash.entry.js +3 -3
- package/dist/esm/instant-apps-time-filter.entry.js +3 -3
- package/dist/esm/interactive-5139f8d7.js +83 -0
- package/dist/esm/interactive-cad37709.js +82 -0
- package/dist/esm/it-6a7495d8.js +66 -0
- package/dist/esm/it-ch-89fa3c82.js +66 -0
- package/dist/esm/ja-f87a1f44.js +72 -0
- package/dist/esm/ko-0f4c7a11.js +72 -0
- package/dist/esm/label-56002f24.js +179 -0
- package/dist/esm/loadable-dc3f24a8.js +93 -0
- package/dist/esm/loader-bae2aa52.js +173 -0
- package/dist/esm/loader.js +6 -6
- package/dist/esm/locale-586d9375.js +155 -0
- package/dist/esm/locale-911eca09.js +591 -0
- package/dist/esm/locale-be7fd298.js +1423 -0
- package/dist/esm/logger-ff14b12f.js +59 -0
- package/dist/esm/lt-a4b14416.js +97 -0
- package/dist/esm/lv-3901862d.js +66 -0
- package/dist/esm/map-select-tools_3.entry.js +13 -11
- package/dist/esm/mk-886d280d.js +66 -0
- package/dist/esm/nb-b667a0e1.js +67 -0
- package/dist/esm/nl-d357a092.js +67 -0
- package/dist/esm/observers-ab3d6528.js +56 -0
- package/dist/esm/openCloseComponent-0e1e6768.js +64 -0
- package/dist/esm/openCloseComponent-c3f79463.js +63 -0
- package/dist/esm/pci-calculator.entry.js +2 -2
- package/dist/esm/pl-75d54069.js +114 -0
- package/dist/esm/popupUtils-ddb1f6fa.js +119 -0
- package/dist/esm/pt-32bd5da2.js +67 -0
- package/dist/esm/pt-br-6f32314d.js +65 -0
- package/dist/esm/public-notification.entry.js +12 -10
- package/dist/esm/publicNotificationStore-8b54bf6f.js +45 -0
- package/dist/esm/request-2dbb152a.js +19 -0
- package/dist/esm/restHelpersGet-a7fda344.js +493 -0
- package/dist/esm/ro-d238055e.js +66 -0
- package/dist/esm/ru-ef7165ff.js +126 -0
- package/dist/esm/shared-list-render-5f202c55.js +339 -0
- package/dist/esm/sk-959dbca1.js +148 -0
- package/dist/esm/sl-96436015.js +168 -0
- package/dist/esm/solution-configuration.entry.js +34 -34
- package/dist/esm/solution-contents_3.entry.js +11 -11
- package/dist/esm/solution-item-accordion.entry.js +3 -3
- package/dist/esm/solution-item-icon.entry.js +2 -2
- package/dist/esm/solution-resource-30a29505.js +1842 -0
- package/dist/esm/solution-store-f252cb74.js +1103 -0
- package/dist/esm/solutions-components.js +7 -7
- package/dist/esm/spatial-ref.entry.js +5 -6
- package/dist/esm/sr-73033c89.js +101 -0
- package/dist/esm/store-manager.entry.js +7 -7
- package/dist/esm/sv-b1153aa8.js +71 -0
- package/dist/esm/t9n-1698878e.js +103 -0
- package/dist/esm/templates-60f33938.js +401 -0
- package/dist/esm/th-e1a074e2.js +65 -0
- package/dist/esm/time-bca5f70b.js +286 -0
- package/dist/esm/tr-1350f529.js +66 -0
- package/dist/esm/typeof-ef2a007d.js +25 -0
- package/dist/esm/uk-18ded66c.js +104 -0
- package/dist/esm/update-ad0b88fa.js +773 -0
- package/dist/esm/utils-0da093e1.js +142 -0
- package/dist/esm/utils-30c4c8ca.js +66 -0
- package/dist/esm/vi-cee99413.js +70 -0
- package/dist/esm/zh-cn-6e204128.js +94 -0
- package/dist/esm/zh-hk-ffb02673.js +92 -0
- package/dist/esm/zh-tw-0f52dd8c.js +92 -0
- package/dist/solutions-components/assets/t9n/consent-manager/resources.json +3 -10
- package/dist/solutions-components/assets/t9n/consent-manager/resources_en.json +3 -10
- package/dist/solutions-components/demos/consent-manager.html +56 -0
- package/dist/solutions-components/p-0094924f.entry.js +6 -0
- package/dist/solutions-components/p-00ea0ccc.entry.js +11 -0
- package/dist/solutions-components/p-018d1f95.entry.js +6 -0
- package/dist/solutions-components/p-025af0b3.entry.js +21 -0
- package/dist/solutions-components/p-0549a65c.js +6 -0
- package/dist/solutions-components/p-058d0542.js +17 -0
- package/dist/solutions-components/p-0668e30d.js +34 -0
- package/dist/solutions-components/p-066fc169.js +6 -0
- package/dist/solutions-components/p-067e36b2.entry.js +6 -0
- package/dist/solutions-components/p-0681b29b.entry.js +11 -0
- package/dist/solutions-components/p-0691d1af.entry.js +22 -0
- package/dist/solutions-components/p-088a5dca.js +67 -0
- package/dist/solutions-components/p-097b80df.js +6 -0
- package/dist/solutions-components/p-0a0902c4.entry.js +6 -0
- package/dist/solutions-components/p-0a71f549.entry.js +29 -0
- package/dist/solutions-components/p-0ac9cc4a.entry.js +21 -0
- package/dist/solutions-components/p-0b1fb6ae.js +36 -0
- package/dist/solutions-components/p-0d82ed7b.entry.js +11 -0
- package/dist/solutions-components/p-0e307601.entry.js +11 -0
- package/dist/solutions-components/p-0ece17fc.entry.js +6 -0
- package/dist/solutions-components/p-0f58bb3a.entry.js +11 -0
- package/dist/solutions-components/p-0f9f7528.entry.js +11 -0
- package/dist/solutions-components/p-135b2aba.js +16 -0
- package/dist/solutions-components/p-13bdb2c0.js +6 -0
- package/dist/solutions-components/p-14519a8a.entry.js +11 -0
- package/dist/solutions-components/p-1492bb6d.js +6 -0
- package/dist/solutions-components/p-1664573a.entry.js +6 -0
- package/dist/solutions-components/p-1900f9b1.js +11 -0
- package/dist/solutions-components/p-1984f2c7.entry.js +17 -0
- package/dist/solutions-components/p-1c1842b0.entry.js +6 -0
- package/dist/solutions-components/p-1f9d927b.entry.js +6 -0
- package/dist/solutions-components/p-1fb3756b.js +6 -0
- package/dist/solutions-components/p-208b5cc4.entry.js +6 -0
- package/dist/solutions-components/p-20cda8ef.entry.js +6 -0
- package/dist/solutions-components/p-2130a063.entry.js +17 -0
- package/dist/solutions-components/p-21f90019.js +21 -0
- package/dist/solutions-components/p-230f7315.entry.js +6 -0
- package/dist/solutions-components/p-24b42859.entry.js +47 -0
- package/dist/solutions-components/p-26f9f9c8.js +11 -0
- package/dist/solutions-components/p-270ca219.entry.js +6 -0
- package/dist/solutions-components/p-27a91364.entry.js +17 -0
- package/dist/solutions-components/p-28498868.entry.js +11 -0
- package/dist/solutions-components/p-2a5a5bfd.entry.js +11 -0
- package/dist/solutions-components/p-2ac553f6.js +6 -0
- package/dist/solutions-components/p-2b004a83.entry.js +11 -0
- package/dist/solutions-components/p-2b1e6acb.entry.js +6 -0
- package/dist/solutions-components/p-2bc98cb0.js +30 -0
- package/dist/solutions-components/p-2d96fdb9.js +6 -0
- package/dist/solutions-components/p-2dd8e49c.js +11 -0
- package/dist/solutions-components/p-30a16b7e.entry.js +11 -0
- package/dist/solutions-components/p-3212300b.entry.js +6 -0
- package/dist/solutions-components/p-35245316.entry.js +6 -0
- package/dist/solutions-components/p-3643a87a.entry.js +6 -0
- package/dist/solutions-components/p-3708cbdc.entry.js +6 -0
- package/dist/solutions-components/p-3828e77b.js +11 -0
- package/dist/solutions-components/p-38e0f88b.js +17 -0
- package/dist/solutions-components/p-3b3bfba5.entry.js +6 -0
- package/dist/solutions-components/p-3ba80c7c.js +6 -0
- package/dist/solutions-components/p-3d1f0434.js +21 -0
- package/dist/solutions-components/p-3ffc4738.js +6 -0
- package/dist/solutions-components/p-409401ce.js +11 -0
- package/dist/solutions-components/p-46159285.js +6 -0
- package/dist/solutions-components/p-49a67314.entry.js +6 -0
- package/dist/solutions-components/p-4cbdea35.js +129 -0
- package/dist/solutions-components/p-4dfc2fc4.js +11 -0
- package/dist/solutions-components/p-4f236b5d.js +43 -0
- package/dist/solutions-components/p-4f50385f.js +16 -0
- package/dist/solutions-components/p-4fe489cf.js +6 -0
- package/dist/solutions-components/p-50239e15.entry.js +6 -0
- package/dist/solutions-components/p-531f66c7.entry.js +6 -0
- package/dist/solutions-components/p-570754a4.js +6 -0
- package/dist/solutions-components/p-570b13d9.js +67 -0
- package/dist/solutions-components/p-58d53a46.entry.js +6 -0
- package/dist/solutions-components/p-59970898.js +6 -0
- package/dist/solutions-components/p-59d02697.entry.js +11 -0
- package/dist/solutions-components/p-5b2ae6c4.js +6 -0
- package/dist/solutions-components/p-5b9783e6.entry.js +23 -0
- package/dist/solutions-components/p-5c5cbe3c.js +6 -0
- package/dist/solutions-components/p-5c692ed6.entry.js +11 -0
- package/dist/solutions-components/p-5cfa35f8.js +6 -0
- package/dist/solutions-components/p-5d581b7e.entry.js +6 -0
- package/dist/solutions-components/p-5df09fe4.js +31 -0
- package/dist/solutions-components/p-5ee359f1.entry.js +11 -0
- package/dist/solutions-components/p-5f099cd2.js +6 -0
- package/dist/solutions-components/p-60123545.js +6 -0
- package/dist/solutions-components/p-6148468f.js +11 -0
- package/dist/solutions-components/p-617d2160.js +6 -0
- package/dist/solutions-components/p-619a1ad0.js +6 -0
- package/dist/solutions-components/p-61d2582e.entry.js +6 -0
- package/dist/solutions-components/p-662cf7fa.entry.js +11 -0
- package/dist/solutions-components/p-6708060e.js +11 -0
- package/dist/solutions-components/p-676a2d60.entry.js +6 -0
- package/dist/solutions-components/p-68b5ec37.js +11 -0
- package/dist/solutions-components/p-68cf5134.entry.js +12 -0
- package/dist/solutions-components/p-694cfe4c.js +6 -0
- package/dist/solutions-components/p-6bcde3c4.js +6 -0
- package/dist/solutions-components/p-6c73f067.js +16 -0
- package/dist/solutions-components/p-6d56f75e.js +11 -0
- package/dist/solutions-components/p-6db88e16.entry.js +11 -0
- package/dist/solutions-components/p-6f93ec3e.entry.js +6 -0
- package/dist/solutions-components/p-7053b20e.entry.js +6 -0
- package/dist/solutions-components/p-741151d4.js +6 -0
- package/dist/solutions-components/p-749fe711.js +6 -0
- package/dist/solutions-components/p-7518e92a.js +6 -0
- package/dist/solutions-components/p-7802efa1.entry.js +11 -0
- package/dist/solutions-components/p-782c71a7.js +6 -0
- package/dist/solutions-components/p-78aa10b0.js +6 -0
- package/dist/solutions-components/p-7a8edc01.entry.js +11 -0
- package/dist/solutions-components/p-7a9e773b.js +6 -0
- package/dist/solutions-components/p-7aa5b402.entry.js +11 -0
- package/dist/solutions-components/p-7aafba66.js +11 -0
- package/dist/solutions-components/p-7d619b04.entry.js +11 -0
- package/dist/solutions-components/p-7dc37540.js +11 -0
- package/dist/solutions-components/p-7e3a6a0b.entry.js +11 -0
- package/dist/solutions-components/p-7fd55161.entry.js +6 -0
- package/dist/solutions-components/p-80168ff4.entry.js +11 -0
- package/dist/solutions-components/p-823684a3.js +6 -0
- package/dist/solutions-components/p-825ef4a7.js +6 -0
- package/dist/solutions-components/p-82d93164.js +11 -0
- package/dist/solutions-components/p-82f661c7.entry.js +11 -0
- package/dist/solutions-components/p-8378852e.js +6 -0
- package/dist/solutions-components/p-85bb5908.js +11 -0
- package/dist/solutions-components/p-866a2fad.js +11 -0
- package/dist/solutions-components/p-8744fe2a.entry.js +6 -0
- package/dist/solutions-components/p-8850bd21.js +21 -0
- package/dist/solutions-components/p-896a5fce.entry.js +11 -0
- package/dist/solutions-components/p-8df5939f.js +6 -0
- package/dist/solutions-components/p-8ec56f08.entry.js +11 -0
- package/dist/solutions-components/p-8ff2cba2.entry.js +11 -0
- package/dist/solutions-components/p-8ff4b2aa.js +488 -0
- package/dist/solutions-components/p-94ad391c.js +40 -0
- package/dist/solutions-components/p-958c68c2.js +61 -0
- package/dist/solutions-components/p-95fcb607.js +6 -0
- package/dist/solutions-components/p-97df5300.js +27 -0
- package/dist/solutions-components/p-98079396.js +21 -0
- package/dist/solutions-components/p-98b1c057.entry.js +6 -0
- package/dist/solutions-components/p-9d4f62ca.js +6 -0
- package/dist/solutions-components/p-9d733373.entry.js +17 -0
- package/dist/solutions-components/p-9d9df87f.entry.js +6 -0
- package/dist/solutions-components/p-9e5d59aa.entry.js +11 -0
- package/dist/solutions-components/p-9f89901b.entry.js +6 -0
- package/dist/solutions-components/p-9fa8da35.entry.js +11 -0
- package/dist/solutions-components/p-a28502ac.entry.js +6 -0
- package/dist/solutions-components/p-a5df8093.entry.js +11 -0
- package/dist/solutions-components/p-a757bf75.js +16 -0
- package/dist/solutions-components/p-a7eded8f.entry.js +11 -0
- package/dist/solutions-components/p-a91fc014.entry.js +6 -0
- package/dist/solutions-components/p-aa6656f0.js +6 -0
- package/dist/solutions-components/p-abe60b81.entry.js +6 -0
- package/dist/solutions-components/p-ad66b010.entry.js +11 -0
- package/dist/solutions-components/p-adb57e25.entry.js +6 -0
- package/dist/solutions-components/p-add122e7.js +6 -0
- package/dist/solutions-components/p-ae357552.entry.js +11 -0
- package/dist/solutions-components/p-af4f2d4a.js +11 -0
- package/dist/solutions-components/p-b0d0022c.entry.js +11 -0
- package/dist/solutions-components/p-b14d2423.entry.js +11 -0
- package/dist/solutions-components/p-b1546c15.js +17 -0
- package/dist/solutions-components/p-b1c45ef8.entry.js +6 -0
- package/dist/solutions-components/p-b1f3c713.js +6 -0
- package/dist/solutions-components/p-b22046db.js +11 -0
- package/dist/solutions-components/p-b290affa.js +17 -0
- package/dist/solutions-components/p-b3b70f6b.entry.js +12 -0
- package/dist/solutions-components/p-b4a94ffe.entry.js +6 -0
- package/dist/solutions-components/p-b62871c3.entry.js +11 -0
- package/dist/solutions-components/p-b6a36bfe.js +6 -0
- package/dist/solutions-components/p-b915029b.js +6 -0
- package/dist/solutions-components/p-b98e9479.js +11 -0
- package/dist/solutions-components/p-b9bc3e7b.entry.js +17 -0
- package/dist/solutions-components/p-ba539e5a.entry.js +11 -0
- package/dist/solutions-components/p-bad614c0.entry.js +11 -0
- package/dist/solutions-components/p-bb158785.entry.js +11 -0
- package/dist/solutions-components/p-bc281e3b.js +6 -0
- package/dist/solutions-components/p-bc2b747e.js +6 -0
- package/dist/solutions-components/p-be78bc15.entry.js +6 -0
- package/dist/solutions-components/p-bf154e41.js +6 -0
- package/dist/solutions-components/p-c109e720.js +6 -0
- package/dist/solutions-components/p-c115215d.entry.js +6 -0
- package/dist/solutions-components/p-c433cc38.js +6 -0
- package/dist/solutions-components/p-c43fdf49.entry.js +16 -0
- package/dist/solutions-components/p-c5e0e5ef.js +6 -0
- package/dist/solutions-components/p-c766823c.entry.js +11 -0
- package/dist/solutions-components/p-c8a2c326.entry.js +29 -0
- package/dist/solutions-components/p-c8b26c56.js +6 -0
- package/dist/solutions-components/p-c900e9e8.entry.js +17 -0
- package/dist/solutions-components/p-c9dae6fb.entry.js +6 -0
- package/dist/solutions-components/p-cbf0769a.entry.js +11 -0
- package/dist/solutions-components/p-cc7d784e.entry.js +6 -0
- package/dist/solutions-components/p-ce8a69ef.entry.js +11 -0
- package/dist/solutions-components/p-cea51591.js +16 -0
- package/dist/solutions-components/p-d0b1d33f.js +6 -0
- package/dist/solutions-components/p-d0b36f2e.entry.js +6 -0
- package/dist/solutions-components/p-d2a6e970.js +6 -0
- package/dist/solutions-components/p-d2dc7d65.entry.js +11 -0
- package/dist/solutions-components/p-d60dc1f1.entry.js +11 -0
- package/dist/solutions-components/p-d654b676.entry.js +11 -0
- package/dist/solutions-components/p-d65f8b73.js +6 -0
- package/dist/solutions-components/p-d82ee2f9.entry.js +6 -0
- package/dist/solutions-components/p-d96fe526.entry.js +22 -0
- package/dist/solutions-components/p-da0cb140.entry.js +11 -0
- package/dist/solutions-components/p-da36faca.entry.js +6 -0
- package/dist/solutions-components/p-daf6a012.entry.js +6 -0
- package/dist/solutions-components/p-dba4704c.js +11 -0
- package/dist/solutions-components/p-dd16d94e.js +6 -0
- package/dist/solutions-components/p-dd689226.js +11 -0
- package/dist/solutions-components/p-dd6a34c6.entry.js +17 -0
- package/dist/solutions-components/p-df4bfe45.js +6 -0
- package/dist/solutions-components/p-dfe18931.js +6 -0
- package/dist/solutions-components/p-e2570a80.js +11 -0
- package/dist/solutions-components/p-ea9e0a79.js +6 -0
- package/dist/solutions-components/p-eb88fddc.js +6 -0
- package/dist/solutions-components/p-ed4fb4a1.entry.js +6 -0
- package/dist/solutions-components/p-ef0c43dc.js +6 -0
- package/dist/solutions-components/p-f05bbd82.entry.js +11 -0
- package/dist/solutions-components/p-f0ceb675.entry.js +11 -0
- package/dist/solutions-components/p-f1f356f0.js +7 -0
- package/dist/solutions-components/p-f46f7da7.entry.js +12 -0
- package/dist/solutions-components/p-f6e3d19a.entry.js +11 -0
- package/dist/solutions-components/p-f6e81cf8.js +22 -0
- package/dist/solutions-components/p-f7085e9e.entry.js +17 -0
- package/dist/solutions-components/p-f8ea8e73.js +6 -0
- package/dist/solutions-components/p-fb6ca6dd.entry.js +11 -0
- package/dist/solutions-components/p-fdaf1290.entry.js +11 -0
- package/dist/solutions-components/p-fe719f16.entry.js +6 -0
- package/dist/solutions-components/p-feebdac9.entry.js +17 -0
- package/dist/solutions-components/p-ff15447c.entry.js +6 -0
- package/dist/solutions-components/solutions-components.esm.js +1 -1
- package/dist/solutions-components/utils/interfaces.ts +14 -0
- package/dist/types/components/consent-manager/consent-manager.d.ts +24 -21
- package/dist/types/components/delete-button/delete-button.d.ts +1 -1
- package/dist/types/components/edit-card/edit-card.d.ts +4 -0
- package/dist/types/components/layer-table/layer-table.d.ts +55 -7
- package/dist/types/components/map-layer-picker/map-layer-picker.d.ts +18 -2
- package/dist/types/components/map-picker/map-picker.d.ts +10 -2
- package/dist/types/components.d.ts +69 -36
- package/dist/types/preact.d.ts +6 -7
- package/dist/types/stencil-public-runtime.d.ts +6 -0
- package/dist/types/utils/interfaces.d.ts +12 -0
- package/package.json +10 -10
- package/dist/cjs/ExpandToggle-7cd6bc0d.js +0 -115
- package/dist/cjs/FloatingArrow-bf91ebb1.js +0 -48
- package/dist/cjs/Heading-ae667128.js +0 -25
- package/dist/cjs/IdentityManager-b7fa2f5f.js +0 -4174
- package/dist/cjs/Validation-a206c7a2.js +0 -20
- package/dist/cjs/app-globals-04574c64.js +0 -67
- package/dist/cjs/ar-c930d85d.js +0 -106
- package/dist/cjs/arcgis-login.cjs.entry.js +0 -61
- package/dist/cjs/bg-a2001c61.js +0 -84
- package/dist/cjs/browser-040b13db.js +0 -35
- package/dist/cjs/bs-5576dc1b.js +0 -53
- package/dist/cjs/ca-220471e9.js +0 -73
- package/dist/cjs/calcite-alert_6.cjs.entry.js +0 -2105
- package/dist/cjs/calcite-button-ac4b979a.js +0 -281
- package/dist/cjs/calcite-dialog-97f38598.js +0 -5875
- package/dist/cjs/calcite-input-0ecf3d60.js +0 -1000
- package/dist/cjs/calcite-input-time-picker-4020e170.js +0 -1870
- package/dist/cjs/calcite-label-8ca1fbce.js +0 -110
- package/dist/cjs/calcite-modal.cjs.entry.js +0 -393
- package/dist/cjs/calcite-notice-2e248d8d.js +0 -260
- package/dist/cjs/common-eee0c33f.js +0 -38
- package/dist/cjs/conditionalSlot-489d0ef0.js +0 -54
- package/dist/cjs/config-164bf148.js +0 -40
- package/dist/cjs/cs-a049b34a.js +0 -149
- package/dist/cjs/da-d71057be.js +0 -69
- package/dist/cjs/date-831e93f2.js +0 -264
- package/dist/cjs/de-at-977ab186.js +0 -92
- package/dist/cjs/de-b1eb21d0.js +0 -93
- package/dist/cjs/de-ch-486d1e5d.js +0 -92
- package/dist/cjs/delete-dialog.cjs.entry.js +0 -131
- package/dist/cjs/downloadUtils-f50841bc.js +0 -3240
- package/dist/cjs/el-577ee36f.js +0 -68
- package/dist/cjs/en-au-e7c3a0f9.js +0 -68
- package/dist/cjs/en-ca-111580b6.js +0 -67
- package/dist/cjs/en-gb-b061a0ac.js +0 -71
- package/dist/cjs/es-ae90d3b8.js +0 -68
- package/dist/cjs/es-mx-620f2f82.js +0 -67
- package/dist/cjs/et-3b0bd1a9.js +0 -94
- package/dist/cjs/fi-8708148b.js +0 -117
- package/dist/cjs/floating-ui-a1745c4c.js +0 -2413
- package/dist/cjs/focusTrapComponent-59e1194f.js +0 -1013
- package/dist/cjs/form-3666a51b.js +0 -370
- package/dist/cjs/form-a2adec8c.js +0 -381
- package/dist/cjs/fr-9a9d3ce3.js +0 -70
- package/dist/cjs/fr-ch-95662c01.js +0 -68
- package/dist/cjs/he-f973a740.js +0 -107
- package/dist/cjs/helpers-292a0709.js +0 -940
- package/dist/cjs/hi-f0b9cea5.js +0 -67
- package/dist/cjs/hr-4654706f.js +0 -82
- package/dist/cjs/hu-bc3d5588.js +0 -90
- package/dist/cjs/icon-96d27ae8.js +0 -979
- package/dist/cjs/id-1131b8da.js +0 -68
- package/dist/cjs/index-29826564.js +0 -201
- package/dist/cjs/index-92385c74.js +0 -1772
- package/dist/cjs/index-f052f656.js +0 -2156
- package/dist/cjs/index.es-b8c8c931.js +0 -11307
- package/dist/cjs/instant-apps-ckeditor-wrapper_3.cjs.entry.js +0 -590
- package/dist/cjs/interactive-9f715ff8.js +0 -86
- package/dist/cjs/interactive-c384fd9b.js +0 -85
- package/dist/cjs/it-7a8ec220.js +0 -68
- package/dist/cjs/it-ch-f9cb696d.js +0 -68
- package/dist/cjs/ja-45b4845d.js +0 -74
- package/dist/cjs/ko-61449645.js +0 -74
- package/dist/cjs/loadable-9cb8a3cd.js +0 -98
- package/dist/cjs/loader-b9aa1d67.js +0 -176
- package/dist/cjs/locale-a0772a2b.js +0 -605
- package/dist/cjs/locale-afa30303.js +0 -160
- package/dist/cjs/locale-f6e0493d.js +0 -1488
- package/dist/cjs/logger-e5bdc044.js +0 -61
- package/dist/cjs/lt-2e727f9c.js +0 -99
- package/dist/cjs/lv-ed202e00.js +0 -68
- package/dist/cjs/mk-418a9e03.js +0 -68
- package/dist/cjs/nb-333e1c58.js +0 -69
- package/dist/cjs/nl-da937865.js +0 -69
- package/dist/cjs/observers-ce262300.js +0 -58
- package/dist/cjs/openCloseComponent-214808b0.js +0 -66
- package/dist/cjs/openCloseComponent-c0b7af22.js +0 -65
- package/dist/cjs/pl-cbe57516.js +0 -116
- package/dist/cjs/popupUtils-2a425c37.js +0 -121
- package/dist/cjs/pt-b1ec4928.js +0 -69
- package/dist/cjs/pt-br-e395a325.js +0 -67
- package/dist/cjs/publicNotificationStore-1d934df9.js +0 -47
- package/dist/cjs/request-9f87ab34.js +0 -21
- package/dist/cjs/restHelpersGet-5c2245a3.js +0 -991
- package/dist/cjs/ro-144b5f62.js +0 -68
- package/dist/cjs/ru-bf7d1a3e.js +0 -128
- package/dist/cjs/share-item.cjs.entry.js +0 -61
- package/dist/cjs/shared-list-render-0b452799.js +0 -361
- package/dist/cjs/sk-515227a5.js +0 -150
- package/dist/cjs/sl-f879b07d.js +0 -170
- package/dist/cjs/solution-resource-40e70253.js +0 -145
- package/dist/cjs/solution-store-f3257490.js +0 -1354
- package/dist/cjs/sr-0510fba6.js +0 -103
- package/dist/cjs/sv-c5fbe1ff.js +0 -73
- package/dist/cjs/t9n-e69b3d42.js +0 -108
- package/dist/cjs/templates-0b7f886f.js +0 -408
- package/dist/cjs/th-8cafcb47.js +0 -67
- package/dist/cjs/time-ceec376d.js +0 -301
- package/dist/cjs/tr-7f905223.js +0 -68
- package/dist/cjs/uk-991e83da.js +0 -106
- package/dist/cjs/utils-d8dabd76.js +0 -153
- package/dist/cjs/utils-e60dc760.js +0 -79
- package/dist/cjs/vi-d5eababe.js +0 -72
- package/dist/cjs/zh-cn-e6bc2622.js +0 -96
- package/dist/cjs/zh-hk-30480131.js +0 -94
- package/dist/cjs/zh-tw-1f3b4cda.js +0 -94
- package/dist/collection/components/arcgis-login/arcgis-login.css +0 -19
- package/dist/collection/components/arcgis-login/arcgis-login.js +0 -80
- package/dist/collection/components/share-item/share-item.css +0 -19
- package/dist/collection/components/share-item/share-item.js +0 -80
- package/dist/components/arcgis-login.d.ts +0 -11
- package/dist/components/arcgis-login.js +0 -76
- package/dist/components/share-item.d.ts +0 -11
- package/dist/components/share-item.js +0 -76
- package/dist/esm/ExpandToggle-51a5210b.js +0 -108
- package/dist/esm/FloatingArrow-41be757a.js +0 -46
- package/dist/esm/Heading-62ae5a41.js +0 -22
- package/dist/esm/IdentityManager-28f1ebb3.js +0 -4139
- package/dist/esm/Validation-e4b3bd31.js +0 -18
- package/dist/esm/app-globals-9df1c281.js +0 -65
- package/dist/esm/ar-000d3816.js +0 -104
- package/dist/esm/arcgis-login.entry.js +0 -57
- package/dist/esm/bg-50ceeb3e.js +0 -82
- package/dist/esm/browser-13cd5e9f.js +0 -32
- package/dist/esm/bs-8de5a54e.js +0 -51
- package/dist/esm/ca-3b560649.js +0 -71
- package/dist/esm/calcite-alert_6.entry.js +0 -2096
- package/dist/esm/calcite-button-3501ac03.js +0 -278
- package/dist/esm/calcite-dialog-21f00586.js +0 -5872
- package/dist/esm/calcite-input-355d3812.js +0 -997
- package/dist/esm/calcite-input-time-picker-0137aecc.js +0 -1867
- package/dist/esm/calcite-label-ac4a2e81.js +0 -107
- package/dist/esm/calcite-modal.entry.js +0 -389
- package/dist/esm/calcite-notice-56c3f190.js +0 -257
- package/dist/esm/common-c3bbba83.js +0 -36
- package/dist/esm/conditionalSlot-3eb5090f.js +0 -51
- package/dist/esm/config-1d142af8.js +0 -36
- package/dist/esm/cs-5cdc1d3f.js +0 -147
- package/dist/esm/da-30365c90.js +0 -67
- package/dist/esm/date-ac9ec758.js +0 -248
- package/dist/esm/de-at-941b583e.js +0 -90
- package/dist/esm/de-b89def95.js +0 -91
- package/dist/esm/de-ch-568c0c8e.js +0 -90
- package/dist/esm/delete-dialog.entry.js +0 -127
- package/dist/esm/dom-6f6759df.js +0 -1165
- package/dist/esm/downloadUtils-74a6bad9.js +0 -3233
- package/dist/esm/el-340bad09.js +0 -66
- package/dist/esm/en-au-b4bdb56c.js +0 -66
- package/dist/esm/en-ca-0a08923c.js +0 -65
- package/dist/esm/en-gb-f5381626.js +0 -69
- package/dist/esm/es-876b0a13.js +0 -66
- package/dist/esm/es-mx-955bc6a1.js +0 -65
- package/dist/esm/et-c76bc3b6.js +0 -92
- package/dist/esm/fi-52e100ba.js +0 -115
- package/dist/esm/floating-ui-5be07261.js +0 -2404
- package/dist/esm/focusTrapComponent-821ef6e1.js +0 -1008
- package/dist/esm/form-df6403ca.js +0 -362
- package/dist/esm/form-fbc745ea.js +0 -372
- package/dist/esm/fr-0699e247.js +0 -68
- package/dist/esm/fr-ch-c58b9b94.js +0 -66
- package/dist/esm/he-68c61be9.js +0 -105
- package/dist/esm/helpers-50d61130.js +0 -913
- package/dist/esm/hi-32cfce47.js +0 -65
- package/dist/esm/hr-962d1e56.js +0 -80
- package/dist/esm/hu-d13da86a.js +0 -88
- package/dist/esm/icon-3fb97c97.js +0 -959
- package/dist/esm/id-6de1980b.js +0 -66
- package/dist/esm/index-1b6f06f9.js +0 -199
- package/dist/esm/index-3eee2657.js +0 -1736
- package/dist/esm/index-e14fade9.js +0 -2154
- package/dist/esm/index.es-3b04354a.js +0 -11220
- package/dist/esm/instant-apps-ckeditor-wrapper_3.entry.js +0 -584
- package/dist/esm/interactive-62057336.js +0 -82
- package/dist/esm/interactive-8a35f349.js +0 -83
- package/dist/esm/it-cccb6e82.js +0 -66
- package/dist/esm/it-ch-9d87107f.js +0 -66
- package/dist/esm/ja-1401a8ec.js +0 -72
- package/dist/esm/ko-9f06170e.js +0 -72
- package/dist/esm/label-1ef4763d.js +0 -179
- package/dist/esm/loadable-bbec26c5.js +0 -93
- package/dist/esm/loader-6a8f3dda.js +0 -173
- package/dist/esm/locale-22b2e8b1.js +0 -155
- package/dist/esm/locale-92d419e3.js +0 -1423
- package/dist/esm/locale-9f52f113.js +0 -591
- package/dist/esm/logger-5eff868b.js +0 -59
- package/dist/esm/lt-61945627.js +0 -97
- package/dist/esm/lv-def8646d.js +0 -66
- package/dist/esm/mk-db09f1f6.js +0 -66
- package/dist/esm/nb-ea4966a3.js +0 -67
- package/dist/esm/nl-159f195e.js +0 -67
- package/dist/esm/observers-4e931eb6.js +0 -56
- package/dist/esm/openCloseComponent-2022c9ab.js +0 -64
- package/dist/esm/openCloseComponent-9ae0e1fe.js +0 -63
- package/dist/esm/pl-5514150f.js +0 -114
- package/dist/esm/popupUtils-685635b7.js +0 -119
- package/dist/esm/pt-91415524.js +0 -67
- package/dist/esm/pt-br-0f472af4.js +0 -65
- package/dist/esm/publicNotificationStore-836d3cb4.js +0 -45
- package/dist/esm/request-d71d6adf.js +0 -19
- package/dist/esm/restHelpersGet-48113381.js +0 -976
- package/dist/esm/ro-decfcb47.js +0 -66
- package/dist/esm/ru-84ce786d.js +0 -126
- package/dist/esm/share-item.entry.js +0 -57
- package/dist/esm/shared-list-render-4dbefca0.js +0 -339
- package/dist/esm/sk-4468c163.js +0 -148
- package/dist/esm/sl-404f285f.js +0 -168
- package/dist/esm/solution-resource-f5809979.js +0 -142
- package/dist/esm/solution-store-5b79fffe.js +0 -1352
- package/dist/esm/sr-152d8bf8.js +0 -101
- package/dist/esm/sv-47115030.js +0 -71
- package/dist/esm/t9n-cbccd1ca.js +0 -103
- package/dist/esm/templates-0b442208.js +0 -402
- package/dist/esm/th-1c539f57.js +0 -65
- package/dist/esm/time-53cad131.js +0 -286
- package/dist/esm/tr-432df990.js +0 -66
- package/dist/esm/uk-46c024d3.js +0 -104
- package/dist/esm/utils-0e3d8992.js +0 -142
- package/dist/esm/utils-d55c5742.js +0 -66
- package/dist/esm/vi-2ad870b8.js +0 -70
- package/dist/esm/zh-cn-1955c2ce.js +0 -94
- package/dist/esm/zh-hk-b32fb4c1.js +0 -92
- package/dist/esm/zh-tw-67bdf163.js +0 -92
- package/dist/solutions-components/p-000848d5.js +0 -6
- package/dist/solutions-components/p-01021fdb.js +0 -6
- package/dist/solutions-components/p-02800894.entry.js +0 -11
- package/dist/solutions-components/p-03434d39.js +0 -11
- package/dist/solutions-components/p-060b853f.entry.js +0 -6
- package/dist/solutions-components/p-0bd7c945.js +0 -6
- package/dist/solutions-components/p-0c985f61.entry.js +0 -6
- package/dist/solutions-components/p-0ca3272e.entry.js +0 -6
- package/dist/solutions-components/p-0ebb1a18.js +0 -11
- package/dist/solutions-components/p-1092fdc9.entry.js +0 -6
- package/dist/solutions-components/p-16afbc95.entry.js +0 -6
- package/dist/solutions-components/p-18c10df7.entry.js +0 -6
- package/dist/solutions-components/p-194bcdd6.entry.js +0 -12
- package/dist/solutions-components/p-197cfd05.js +0 -6
- package/dist/solutions-components/p-1afc6682.js +0 -6
- package/dist/solutions-components/p-1c80d549.entry.js +0 -17
- package/dist/solutions-components/p-1cbec431.entry.js +0 -6
- package/dist/solutions-components/p-1e60d3ea.js +0 -6
- package/dist/solutions-components/p-23c2e69d.entry.js +0 -11
- package/dist/solutions-components/p-23d24056.entry.js +0 -11
- package/dist/solutions-components/p-25ebeb0c.entry.js +0 -11
- package/dist/solutions-components/p-25f84466.entry.js +0 -11
- package/dist/solutions-components/p-25fe9f3e.entry.js +0 -6
- package/dist/solutions-components/p-26ba0cc7.js +0 -17
- package/dist/solutions-components/p-291faeb2.js +0 -6
- package/dist/solutions-components/p-2a6eba20.entry.js +0 -11
- package/dist/solutions-components/p-2b389ce5.entry.js +0 -11
- package/dist/solutions-components/p-2b77a660.entry.js +0 -11
- package/dist/solutions-components/p-2c78f92c.entry.js +0 -11
- package/dist/solutions-components/p-2e193975.entry.js +0 -17
- package/dist/solutions-components/p-32262047.entry.js +0 -11
- package/dist/solutions-components/p-36470f6b.js +0 -6
- package/dist/solutions-components/p-36552016.entry.js +0 -12
- package/dist/solutions-components/p-37ddeea3.js +0 -488
- package/dist/solutions-components/p-3812d485.entry.js +0 -6
- package/dist/solutions-components/p-3948268c.entry.js +0 -6
- package/dist/solutions-components/p-3b312dff.js +0 -6
- package/dist/solutions-components/p-3b451796.js +0 -6
- package/dist/solutions-components/p-3b54163f.js +0 -11
- package/dist/solutions-components/p-3b859054.js +0 -16
- package/dist/solutions-components/p-3cf3c658.entry.js +0 -29
- package/dist/solutions-components/p-3d6698a7.js +0 -11
- package/dist/solutions-components/p-3dfe5cdb.js +0 -6
- package/dist/solutions-components/p-3e4ac28d.entry.js +0 -6
- package/dist/solutions-components/p-3f0f6504.js +0 -6
- package/dist/solutions-components/p-3f18fb1f.js +0 -11
- package/dist/solutions-components/p-3f20a550.entry.js +0 -6
- package/dist/solutions-components/p-3fc70768.entry.js +0 -6
- package/dist/solutions-components/p-405118a8.entry.js +0 -11
- package/dist/solutions-components/p-412759ed.entry.js +0 -11
- package/dist/solutions-components/p-46da7d9f.entry.js +0 -6
- package/dist/solutions-components/p-47fdc484.js +0 -17
- package/dist/solutions-components/p-4858ae16.js +0 -6
- package/dist/solutions-components/p-49888ae8.entry.js +0 -11
- package/dist/solutions-components/p-4a13d8d9.js +0 -6
- package/dist/solutions-components/p-4b1a9c65.js +0 -6
- package/dist/solutions-components/p-4d14be12.entry.js +0 -11
- package/dist/solutions-components/p-50721c04.js +0 -16
- package/dist/solutions-components/p-531c7fdb.js +0 -11
- package/dist/solutions-components/p-535335f2.js +0 -6
- package/dist/solutions-components/p-53bf0fe4.js +0 -6
- package/dist/solutions-components/p-544e3025.entry.js +0 -11
- package/dist/solutions-components/p-55a6c0d1.entry.js +0 -6
- package/dist/solutions-components/p-55b8fab3.entry.js +0 -6
- package/dist/solutions-components/p-564d285a.entry.js +0 -6
- package/dist/solutions-components/p-56b44bf7.entry.js +0 -11
- package/dist/solutions-components/p-57079c91.entry.js +0 -6
- package/dist/solutions-components/p-5732176e.entry.js +0 -47
- package/dist/solutions-components/p-57409415.js +0 -17
- package/dist/solutions-components/p-576843e9.js +0 -11
- package/dist/solutions-components/p-5773023c.entry.js +0 -11
- package/dist/solutions-components/p-5c20cdef.entry.js +0 -11
- package/dist/solutions-components/p-5d1ab17e.entry.js +0 -21
- package/dist/solutions-components/p-5dd95ca6.entry.js +0 -20
- package/dist/solutions-components/p-5e71e72a.js +0 -21
- package/dist/solutions-components/p-5f9afbb9.entry.js +0 -17
- package/dist/solutions-components/p-6155f4e7.js +0 -6
- package/dist/solutions-components/p-619b12c3.entry.js +0 -17
- package/dist/solutions-components/p-61bd743b.entry.js +0 -22
- package/dist/solutions-components/p-64860143.entry.js +0 -11
- package/dist/solutions-components/p-64a569da.entry.js +0 -6
- package/dist/solutions-components/p-6a1a4124.js +0 -6
- package/dist/solutions-components/p-6b8a94f0.entry.js +0 -6
- package/dist/solutions-components/p-6e842050.entry.js +0 -11
- package/dist/solutions-components/p-721bf278.js +0 -6
- package/dist/solutions-components/p-731eb030.js +0 -11
- package/dist/solutions-components/p-73db9e69.entry.js +0 -11
- package/dist/solutions-components/p-73e24177.js +0 -6
- package/dist/solutions-components/p-74b25167.entry.js +0 -11
- package/dist/solutions-components/p-7530a02f.js +0 -30
- package/dist/solutions-components/p-760f833e.js +0 -6
- package/dist/solutions-components/p-7781048a.js +0 -11
- package/dist/solutions-components/p-779c8194.entry.js +0 -6
- package/dist/solutions-components/p-7a1177c0.entry.js +0 -6
- package/dist/solutions-components/p-7c7549b0.js +0 -61
- package/dist/solutions-components/p-7e574f00.js +0 -11
- package/dist/solutions-components/p-80913362.entry.js +0 -11
- package/dist/solutions-components/p-80e05130.entry.js +0 -11
- package/dist/solutions-components/p-81a2f4c3.entry.js +0 -12
- package/dist/solutions-components/p-81c41f7b.entry.js +0 -11
- package/dist/solutions-components/p-82ee3b26.js +0 -7
- package/dist/solutions-components/p-8354374d.entry.js +0 -6
- package/dist/solutions-components/p-844b7f82.entry.js +0 -6
- package/dist/solutions-components/p-8535b484.entry.js +0 -17
- package/dist/solutions-components/p-853db1b6.entry.js +0 -6
- package/dist/solutions-components/p-85c0d237.entry.js +0 -11
- package/dist/solutions-components/p-885b958c.entry.js +0 -6
- package/dist/solutions-components/p-88e8400a.entry.js +0 -11
- package/dist/solutions-components/p-899179d7.js +0 -6
- package/dist/solutions-components/p-8a9d2564.entry.js +0 -11
- package/dist/solutions-components/p-8b60e48a.entry.js +0 -11
- package/dist/solutions-components/p-8d028e6a.entry.js +0 -11
- package/dist/solutions-components/p-8f7a11c9.js +0 -21
- package/dist/solutions-components/p-90240f7f.entry.js +0 -6
- package/dist/solutions-components/p-917b535b.js +0 -11
- package/dist/solutions-components/p-929b5bd1.entry.js +0 -6
- package/dist/solutions-components/p-92c8093d.entry.js +0 -6
- package/dist/solutions-components/p-934a6d75.js +0 -6
- package/dist/solutions-components/p-938fc0cf.entry.js +0 -6
- package/dist/solutions-components/p-94b818bb.js +0 -11
- package/dist/solutions-components/p-973ec320.js +0 -36
- package/dist/solutions-components/p-97b64bea.entry.js +0 -11
- package/dist/solutions-components/p-97e56ccc.js +0 -6
- package/dist/solutions-components/p-9b513db6.entry.js +0 -16
- package/dist/solutions-components/p-9bb44f57.js +0 -65
- package/dist/solutions-components/p-9c33a239.entry.js +0 -6
- package/dist/solutions-components/p-9cc10554.js +0 -6
- package/dist/solutions-components/p-9ce8e34f.js +0 -11
- package/dist/solutions-components/p-9f38488c.js +0 -6
- package/dist/solutions-components/p-a104bc28.js +0 -6
- package/dist/solutions-components/p-a1e6cfd8.js +0 -6
- package/dist/solutions-components/p-a3633e71.entry.js +0 -6
- package/dist/solutions-components/p-a3bc6dd8.entry.js +0 -29
- package/dist/solutions-components/p-a412c674.js +0 -11
- package/dist/solutions-components/p-a4748493.entry.js +0 -11
- package/dist/solutions-components/p-a570536b.js +0 -6
- package/dist/solutions-components/p-a60d197e.entry.js +0 -6
- package/dist/solutions-components/p-a806b4cf.entry.js +0 -17
- package/dist/solutions-components/p-a927a4e4.entry.js +0 -6
- package/dist/solutions-components/p-aaa0d91b.entry.js +0 -11
- package/dist/solutions-components/p-ab2a12e4.entry.js +0 -17
- package/dist/solutions-components/p-abcf272c.entry.js +0 -23
- package/dist/solutions-components/p-ad536cdf.js +0 -11
- package/dist/solutions-components/p-aef6e1f5.js +0 -6
- package/dist/solutions-components/p-b13d3b66.js +0 -6
- package/dist/solutions-components/p-b2064f52.entry.js +0 -6
- package/dist/solutions-components/p-b209d4b9.js +0 -6
- package/dist/solutions-components/p-b2a1177d.entry.js +0 -11
- package/dist/solutions-components/p-b54b2fc6.js +0 -31
- package/dist/solutions-components/p-b56b9a89.js +0 -11
- package/dist/solutions-components/p-b5fe0c3e.entry.js +0 -6
- package/dist/solutions-components/p-b6ea0097.js +0 -6
- package/dist/solutions-components/p-b7b32972.entry.js +0 -6
- package/dist/solutions-components/p-b7b5e88d.entry.js +0 -11
- package/dist/solutions-components/p-b9afb782.entry.js +0 -6
- package/dist/solutions-components/p-b9b3b48a.entry.js +0 -6
- package/dist/solutions-components/p-ba62b5f4.js +0 -16
- package/dist/solutions-components/p-bb9e232f.js +0 -6
- package/dist/solutions-components/p-bba22752.js +0 -6
- package/dist/solutions-components/p-bc47653a.js +0 -6
- package/dist/solutions-components/p-bccc997c.js +0 -6
- package/dist/solutions-components/p-bd220980.js +0 -21
- package/dist/solutions-components/p-bd6a96db.js +0 -6
- package/dist/solutions-components/p-bded7c22.entry.js +0 -6
- package/dist/solutions-components/p-be28e2bf.js +0 -6
- package/dist/solutions-components/p-be7c3f1d.js +0 -6
- package/dist/solutions-components/p-c023fc82.js +0 -6
- package/dist/solutions-components/p-c1160ad0.entry.js +0 -6
- package/dist/solutions-components/p-c26b8546.entry.js +0 -6
- package/dist/solutions-components/p-c2ff1a82.js +0 -6
- package/dist/solutions-components/p-c323117d.js +0 -16
- package/dist/solutions-components/p-c5713c95.entry.js +0 -11
- package/dist/solutions-components/p-c8c16d43.js +0 -11
- package/dist/solutions-components/p-c9b5a34f.js +0 -52
- package/dist/solutions-components/p-ca26f8f8.js +0 -6
- package/dist/solutions-components/p-cb007d2f.js +0 -6
- package/dist/solutions-components/p-cc9e1367.entry.js +0 -6
- package/dist/solutions-components/p-cdadd82c.entry.js +0 -17
- package/dist/solutions-components/p-ce67bbbb.js +0 -11
- package/dist/solutions-components/p-cf46113c.js +0 -6
- package/dist/solutions-components/p-cfc2fae0.entry.js +0 -17
- package/dist/solutions-components/p-d0d020a5.js +0 -37
- package/dist/solutions-components/p-d21f3851.js +0 -11
- package/dist/solutions-components/p-d2c460b9.entry.js +0 -11
- package/dist/solutions-components/p-d4c44a94.js +0 -6
- package/dist/solutions-components/p-dca07fd3.js +0 -143
- package/dist/solutions-components/p-dcfe9514.entry.js +0 -6
- package/dist/solutions-components/p-dd0bee4a.entry.js +0 -6
- package/dist/solutions-components/p-de2fecc0.js +0 -40
- package/dist/solutions-components/p-de44364f.js +0 -11
- package/dist/solutions-components/p-decc356d.entry.js +0 -11
- package/dist/solutions-components/p-e043aae3.js +0 -6
- package/dist/solutions-components/p-e04831b9.js +0 -6
- package/dist/solutions-components/p-e06f90a2.entry.js +0 -11
- package/dist/solutions-components/p-e0e6d099.js +0 -21
- package/dist/solutions-components/p-e21cb40e.entry.js +0 -11
- package/dist/solutions-components/p-e33b7602.js +0 -6
- package/dist/solutions-components/p-e385cdcf.entry.js +0 -11
- package/dist/solutions-components/p-e3e89708.entry.js +0 -11
- package/dist/solutions-components/p-e4206773.entry.js +0 -11
- package/dist/solutions-components/p-e4c16e8f.entry.js +0 -6
- package/dist/solutions-components/p-e6b2432e.entry.js +0 -6
- package/dist/solutions-components/p-e76f93bc.js +0 -11
- package/dist/solutions-components/p-e82a84ac.entry.js +0 -6
- package/dist/solutions-components/p-e9d3365f.js +0 -22
- package/dist/solutions-components/p-eb1edf3e.entry.js +0 -6
- package/dist/solutions-components/p-ebac7396.entry.js +0 -6
- package/dist/solutions-components/p-ecabb824.entry.js +0 -6
- package/dist/solutions-components/p-ecfe49cf.entry.js +0 -6
- package/dist/solutions-components/p-ed50a65b.entry.js +0 -17
- package/dist/solutions-components/p-eda5e49e.entry.js +0 -11
- package/dist/solutions-components/p-ef51b934.js +0 -6
- package/dist/solutions-components/p-f22622b4.js +0 -6
- package/dist/solutions-components/p-f2340619.js +0 -6
- package/dist/solutions-components/p-f33c5883.entry.js +0 -6
- package/dist/solutions-components/p-f4eea8c2.js +0 -67
- package/dist/solutions-components/p-f7653a0b.js +0 -6
- package/dist/solutions-components/p-f876de3f.js +0 -6
- package/dist/solutions-components/p-f87f02a1.entry.js +0 -6
- package/dist/solutions-components/p-faaf42a3.entry.js +0 -11
- package/dist/solutions-components/p-fcd719b7.entry.js +0 -22
- package/dist/solutions-components/p-fd152d68.js +0 -16
- package/dist/solutions-components/p-fdf5a50e.entry.js +0 -11
- package/dist/solutions-components/p-fe43b510.js +0 -17
- package/dist/solutions-components/p-ff609816.entry.js +0 -11
- package/dist/types/components/arcgis-login/arcgis-login.d.ts +0 -19
- package/dist/types/components/share-item/share-item.d.ts +0 -19
@@ -3,7 +3,8 @@
|
|
3
3
|
* Licensed under the Apache License, Version 2.0
|
4
4
|
* http://www.apache.org/licenses/LICENSE-2.0
|
5
5
|
*/
|
6
|
-
import { r as r$6, t as t$7, n as n$c, l as l$3, j as j$2, e as r$7, f as a$3, h as t$8, i as e$a, k as b$3, m as L$1, u as u$3, o as b$4, p as m$4, q as e$b, v as m$5, w as l$4, x as r$8, y as e$c, z as w$2, N as N$1, A as a$4, B as a$5, C as v$3, D as t$9, E as w$3, F as o$7, P, G as l$5, _
|
6
|
+
import { r as r$6, t as t$7, n as n$c, l as l$3, j as j$2, e as r$7, f as a$3, h as t$8, i as e$a, k as b$3, m as L$1, u as u$3, o as b$4, p as m$4, q as e$b, v as m$5, w as l$4, x as r$8, y as e$c, z as w$2, N as N$1, A as a$4, B as a$5, C as v$3, D as t$9, E as w$3, F as o$7, P, G as l$5, _, H as n$d, I as k$1, J as s$9, K as f$4, M as f$5, O as u$4, Q as t$a, R as g$3, S as h$5, T as n$e, U as o$8, V as f$6, W as I, X as l$6, s as s$a, Y as c$7, Z as F, $ as x$3, a0 as U$1, a1 as A$4, a2 as et, a3 as v$4, a4 as a$6, a5 as r$9, a6 as s$b, a7 as K, a8 as T, a9 as Et, aa as i$7, ab as n$f } from './locale3.js';
|
7
|
+
import { S as Sanitizer } from './index2.js';
|
7
8
|
import { Build, getAssetPath, setAssetPath } from '@stencil/core/internal/client';
|
8
9
|
|
9
10
|
/*
|
@@ -78,2155 +79,6 @@ See https://js.arcgis.com/4.31/esri/copyright.txt for details.
|
|
78
79
|
*/
|
79
80
|
const r$5=Object.prototype.toString;function o$5(n){const r="__accessorMetadata__"in n?w$2(n):n;return function(...t){if(t.push(r),"number"==typeof t[2])throw new Error("Using @cast has parameter decorator is not supported since 4.16");return e$9.apply(this,t)}}function e$9(t,r,o,e){o$7(t,r).cast=e;}function i$4(t){return (r,o)=>{o$7(r,t).cast=r[o];}}function s$6(...t){if(3!==t.length||"string"!=typeof t[1])return 1===t.length&&"[object Function]"===r$5.call(t[0])?o$5(t[0]):1===t.length&&"string"==typeof t[0]?i$4(t[0]):void 0}
|
80
81
|
|
81
|
-
/*!
|
82
|
-
* @esri/arcgis-html-sanitizer - v4.1.0-next.3 - Wed Sep 25 2024 10:04:57 GMT-0400 (Eastern Daylight Time)
|
83
|
-
* Copyright (c) 2024 - Environmental Systems Research Institute, Inc.
|
84
|
-
* Apache-2.0
|
85
|
-
*
|
86
|
-
* js-xss
|
87
|
-
* Copyright (c) 2012-2018 Zongmin Lei(雷宗民) <leizongmin@gmail.com>
|
88
|
-
* http://ucdok.com
|
89
|
-
* MIT License, see https://github.com/leizongmin/js-xss/blob/master/LICENSE for details
|
90
|
-
*/
|
91
|
-
/*! *****************************************************************************
|
92
|
-
Copyright (c) Microsoft Corporation.
|
93
|
-
|
94
|
-
Permission to use, copy, modify, and/or distribute this software for any
|
95
|
-
purpose with or without fee is hereby granted.
|
96
|
-
|
97
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
98
|
-
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
99
|
-
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
100
|
-
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
101
|
-
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
102
|
-
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
103
|
-
PERFORMANCE OF THIS SOFTWARE.
|
104
|
-
***************************************************************************** */
|
105
|
-
/* global Reflect, Promise */
|
106
|
-
|
107
|
-
|
108
|
-
var __assign = function() {
|
109
|
-
__assign = Object.assign || function __assign(t) {
|
110
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
111
|
-
s = arguments[i];
|
112
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
113
|
-
}
|
114
|
-
return t;
|
115
|
-
};
|
116
|
-
return __assign.apply(this, arguments);
|
117
|
-
};
|
118
|
-
|
119
|
-
var lib$1 = {exports: {}};
|
120
|
-
|
121
|
-
var _default$1 = {};
|
122
|
-
|
123
|
-
var lib = {exports: {}};
|
124
|
-
|
125
|
-
var _default = {};
|
126
|
-
|
127
|
-
/**
|
128
|
-
* cssfilter
|
129
|
-
*
|
130
|
-
* @author 老雷<leizongmin@gmail.com>
|
131
|
-
*/
|
132
|
-
|
133
|
-
function getDefaultWhiteList$1 () {
|
134
|
-
// 白名单值说明:
|
135
|
-
// true: 允许该属性
|
136
|
-
// Function: function (val) { } 返回true表示允许该属性,其他值均表示不允许
|
137
|
-
// RegExp: regexp.test(val) 返回true表示允许该属性,其他值均表示不允许
|
138
|
-
// 除上面列出的值外均表示不允许
|
139
|
-
var whiteList = {};
|
140
|
-
|
141
|
-
whiteList['align-content'] = false; // default: auto
|
142
|
-
whiteList['align-items'] = false; // default: auto
|
143
|
-
whiteList['align-self'] = false; // default: auto
|
144
|
-
whiteList['alignment-adjust'] = false; // default: auto
|
145
|
-
whiteList['alignment-baseline'] = false; // default: baseline
|
146
|
-
whiteList['all'] = false; // default: depending on individual properties
|
147
|
-
whiteList['anchor-point'] = false; // default: none
|
148
|
-
whiteList['animation'] = false; // default: depending on individual properties
|
149
|
-
whiteList['animation-delay'] = false; // default: 0
|
150
|
-
whiteList['animation-direction'] = false; // default: normal
|
151
|
-
whiteList['animation-duration'] = false; // default: 0
|
152
|
-
whiteList['animation-fill-mode'] = false; // default: none
|
153
|
-
whiteList['animation-iteration-count'] = false; // default: 1
|
154
|
-
whiteList['animation-name'] = false; // default: none
|
155
|
-
whiteList['animation-play-state'] = false; // default: running
|
156
|
-
whiteList['animation-timing-function'] = false; // default: ease
|
157
|
-
whiteList['azimuth'] = false; // default: center
|
158
|
-
whiteList['backface-visibility'] = false; // default: visible
|
159
|
-
whiteList['background'] = true; // default: depending on individual properties
|
160
|
-
whiteList['background-attachment'] = true; // default: scroll
|
161
|
-
whiteList['background-clip'] = true; // default: border-box
|
162
|
-
whiteList['background-color'] = true; // default: transparent
|
163
|
-
whiteList['background-image'] = true; // default: none
|
164
|
-
whiteList['background-origin'] = true; // default: padding-box
|
165
|
-
whiteList['background-position'] = true; // default: 0% 0%
|
166
|
-
whiteList['background-repeat'] = true; // default: repeat
|
167
|
-
whiteList['background-size'] = true; // default: auto
|
168
|
-
whiteList['baseline-shift'] = false; // default: baseline
|
169
|
-
whiteList['binding'] = false; // default: none
|
170
|
-
whiteList['bleed'] = false; // default: 6pt
|
171
|
-
whiteList['bookmark-label'] = false; // default: content()
|
172
|
-
whiteList['bookmark-level'] = false; // default: none
|
173
|
-
whiteList['bookmark-state'] = false; // default: open
|
174
|
-
whiteList['border'] = true; // default: depending on individual properties
|
175
|
-
whiteList['border-bottom'] = true; // default: depending on individual properties
|
176
|
-
whiteList['border-bottom-color'] = true; // default: current color
|
177
|
-
whiteList['border-bottom-left-radius'] = true; // default: 0
|
178
|
-
whiteList['border-bottom-right-radius'] = true; // default: 0
|
179
|
-
whiteList['border-bottom-style'] = true; // default: none
|
180
|
-
whiteList['border-bottom-width'] = true; // default: medium
|
181
|
-
whiteList['border-collapse'] = true; // default: separate
|
182
|
-
whiteList['border-color'] = true; // default: depending on individual properties
|
183
|
-
whiteList['border-image'] = true; // default: none
|
184
|
-
whiteList['border-image-outset'] = true; // default: 0
|
185
|
-
whiteList['border-image-repeat'] = true; // default: stretch
|
186
|
-
whiteList['border-image-slice'] = true; // default: 100%
|
187
|
-
whiteList['border-image-source'] = true; // default: none
|
188
|
-
whiteList['border-image-width'] = true; // default: 1
|
189
|
-
whiteList['border-left'] = true; // default: depending on individual properties
|
190
|
-
whiteList['border-left-color'] = true; // default: current color
|
191
|
-
whiteList['border-left-style'] = true; // default: none
|
192
|
-
whiteList['border-left-width'] = true; // default: medium
|
193
|
-
whiteList['border-radius'] = true; // default: 0
|
194
|
-
whiteList['border-right'] = true; // default: depending on individual properties
|
195
|
-
whiteList['border-right-color'] = true; // default: current color
|
196
|
-
whiteList['border-right-style'] = true; // default: none
|
197
|
-
whiteList['border-right-width'] = true; // default: medium
|
198
|
-
whiteList['border-spacing'] = true; // default: 0
|
199
|
-
whiteList['border-style'] = true; // default: depending on individual properties
|
200
|
-
whiteList['border-top'] = true; // default: depending on individual properties
|
201
|
-
whiteList['border-top-color'] = true; // default: current color
|
202
|
-
whiteList['border-top-left-radius'] = true; // default: 0
|
203
|
-
whiteList['border-top-right-radius'] = true; // default: 0
|
204
|
-
whiteList['border-top-style'] = true; // default: none
|
205
|
-
whiteList['border-top-width'] = true; // default: medium
|
206
|
-
whiteList['border-width'] = true; // default: depending on individual properties
|
207
|
-
whiteList['bottom'] = false; // default: auto
|
208
|
-
whiteList['box-decoration-break'] = true; // default: slice
|
209
|
-
whiteList['box-shadow'] = true; // default: none
|
210
|
-
whiteList['box-sizing'] = true; // default: content-box
|
211
|
-
whiteList['box-snap'] = true; // default: none
|
212
|
-
whiteList['box-suppress'] = true; // default: show
|
213
|
-
whiteList['break-after'] = true; // default: auto
|
214
|
-
whiteList['break-before'] = true; // default: auto
|
215
|
-
whiteList['break-inside'] = true; // default: auto
|
216
|
-
whiteList['caption-side'] = false; // default: top
|
217
|
-
whiteList['chains'] = false; // default: none
|
218
|
-
whiteList['clear'] = true; // default: none
|
219
|
-
whiteList['clip'] = false; // default: auto
|
220
|
-
whiteList['clip-path'] = false; // default: none
|
221
|
-
whiteList['clip-rule'] = false; // default: nonzero
|
222
|
-
whiteList['color'] = true; // default: implementation dependent
|
223
|
-
whiteList['color-interpolation-filters'] = true; // default: auto
|
224
|
-
whiteList['column-count'] = false; // default: auto
|
225
|
-
whiteList['column-fill'] = false; // default: balance
|
226
|
-
whiteList['column-gap'] = false; // default: normal
|
227
|
-
whiteList['column-rule'] = false; // default: depending on individual properties
|
228
|
-
whiteList['column-rule-color'] = false; // default: current color
|
229
|
-
whiteList['column-rule-style'] = false; // default: medium
|
230
|
-
whiteList['column-rule-width'] = false; // default: medium
|
231
|
-
whiteList['column-span'] = false; // default: none
|
232
|
-
whiteList['column-width'] = false; // default: auto
|
233
|
-
whiteList['columns'] = false; // default: depending on individual properties
|
234
|
-
whiteList['contain'] = false; // default: none
|
235
|
-
whiteList['content'] = false; // default: normal
|
236
|
-
whiteList['counter-increment'] = false; // default: none
|
237
|
-
whiteList['counter-reset'] = false; // default: none
|
238
|
-
whiteList['counter-set'] = false; // default: none
|
239
|
-
whiteList['crop'] = false; // default: auto
|
240
|
-
whiteList['cue'] = false; // default: depending on individual properties
|
241
|
-
whiteList['cue-after'] = false; // default: none
|
242
|
-
whiteList['cue-before'] = false; // default: none
|
243
|
-
whiteList['cursor'] = false; // default: auto
|
244
|
-
whiteList['direction'] = false; // default: ltr
|
245
|
-
whiteList['display'] = true; // default: depending on individual properties
|
246
|
-
whiteList['display-inside'] = true; // default: auto
|
247
|
-
whiteList['display-list'] = true; // default: none
|
248
|
-
whiteList['display-outside'] = true; // default: inline-level
|
249
|
-
whiteList['dominant-baseline'] = false; // default: auto
|
250
|
-
whiteList['elevation'] = false; // default: level
|
251
|
-
whiteList['empty-cells'] = false; // default: show
|
252
|
-
whiteList['filter'] = false; // default: none
|
253
|
-
whiteList['flex'] = false; // default: depending on individual properties
|
254
|
-
whiteList['flex-basis'] = false; // default: auto
|
255
|
-
whiteList['flex-direction'] = false; // default: row
|
256
|
-
whiteList['flex-flow'] = false; // default: depending on individual properties
|
257
|
-
whiteList['flex-grow'] = false; // default: 0
|
258
|
-
whiteList['flex-shrink'] = false; // default: 1
|
259
|
-
whiteList['flex-wrap'] = false; // default: nowrap
|
260
|
-
whiteList['float'] = false; // default: none
|
261
|
-
whiteList['float-offset'] = false; // default: 0 0
|
262
|
-
whiteList['flood-color'] = false; // default: black
|
263
|
-
whiteList['flood-opacity'] = false; // default: 1
|
264
|
-
whiteList['flow-from'] = false; // default: none
|
265
|
-
whiteList['flow-into'] = false; // default: none
|
266
|
-
whiteList['font'] = true; // default: depending on individual properties
|
267
|
-
whiteList['font-family'] = true; // default: implementation dependent
|
268
|
-
whiteList['font-feature-settings'] = true; // default: normal
|
269
|
-
whiteList['font-kerning'] = true; // default: auto
|
270
|
-
whiteList['font-language-override'] = true; // default: normal
|
271
|
-
whiteList['font-size'] = true; // default: medium
|
272
|
-
whiteList['font-size-adjust'] = true; // default: none
|
273
|
-
whiteList['font-stretch'] = true; // default: normal
|
274
|
-
whiteList['font-style'] = true; // default: normal
|
275
|
-
whiteList['font-synthesis'] = true; // default: weight style
|
276
|
-
whiteList['font-variant'] = true; // default: normal
|
277
|
-
whiteList['font-variant-alternates'] = true; // default: normal
|
278
|
-
whiteList['font-variant-caps'] = true; // default: normal
|
279
|
-
whiteList['font-variant-east-asian'] = true; // default: normal
|
280
|
-
whiteList['font-variant-ligatures'] = true; // default: normal
|
281
|
-
whiteList['font-variant-numeric'] = true; // default: normal
|
282
|
-
whiteList['font-variant-position'] = true; // default: normal
|
283
|
-
whiteList['font-weight'] = true; // default: normal
|
284
|
-
whiteList['grid'] = false; // default: depending on individual properties
|
285
|
-
whiteList['grid-area'] = false; // default: depending on individual properties
|
286
|
-
whiteList['grid-auto-columns'] = false; // default: auto
|
287
|
-
whiteList['grid-auto-flow'] = false; // default: none
|
288
|
-
whiteList['grid-auto-rows'] = false; // default: auto
|
289
|
-
whiteList['grid-column'] = false; // default: depending on individual properties
|
290
|
-
whiteList['grid-column-end'] = false; // default: auto
|
291
|
-
whiteList['grid-column-start'] = false; // default: auto
|
292
|
-
whiteList['grid-row'] = false; // default: depending on individual properties
|
293
|
-
whiteList['grid-row-end'] = false; // default: auto
|
294
|
-
whiteList['grid-row-start'] = false; // default: auto
|
295
|
-
whiteList['grid-template'] = false; // default: depending on individual properties
|
296
|
-
whiteList['grid-template-areas'] = false; // default: none
|
297
|
-
whiteList['grid-template-columns'] = false; // default: none
|
298
|
-
whiteList['grid-template-rows'] = false; // default: none
|
299
|
-
whiteList['hanging-punctuation'] = false; // default: none
|
300
|
-
whiteList['height'] = true; // default: auto
|
301
|
-
whiteList['hyphens'] = false; // default: manual
|
302
|
-
whiteList['icon'] = false; // default: auto
|
303
|
-
whiteList['image-orientation'] = false; // default: auto
|
304
|
-
whiteList['image-resolution'] = false; // default: normal
|
305
|
-
whiteList['ime-mode'] = false; // default: auto
|
306
|
-
whiteList['initial-letters'] = false; // default: normal
|
307
|
-
whiteList['inline-box-align'] = false; // default: last
|
308
|
-
whiteList['justify-content'] = false; // default: auto
|
309
|
-
whiteList['justify-items'] = false; // default: auto
|
310
|
-
whiteList['justify-self'] = false; // default: auto
|
311
|
-
whiteList['left'] = false; // default: auto
|
312
|
-
whiteList['letter-spacing'] = true; // default: normal
|
313
|
-
whiteList['lighting-color'] = true; // default: white
|
314
|
-
whiteList['line-box-contain'] = false; // default: block inline replaced
|
315
|
-
whiteList['line-break'] = false; // default: auto
|
316
|
-
whiteList['line-grid'] = false; // default: match-parent
|
317
|
-
whiteList['line-height'] = false; // default: normal
|
318
|
-
whiteList['line-snap'] = false; // default: none
|
319
|
-
whiteList['line-stacking'] = false; // default: depending on individual properties
|
320
|
-
whiteList['line-stacking-ruby'] = false; // default: exclude-ruby
|
321
|
-
whiteList['line-stacking-shift'] = false; // default: consider-shifts
|
322
|
-
whiteList['line-stacking-strategy'] = false; // default: inline-line-height
|
323
|
-
whiteList['list-style'] = true; // default: depending on individual properties
|
324
|
-
whiteList['list-style-image'] = true; // default: none
|
325
|
-
whiteList['list-style-position'] = true; // default: outside
|
326
|
-
whiteList['list-style-type'] = true; // default: disc
|
327
|
-
whiteList['margin'] = true; // default: depending on individual properties
|
328
|
-
whiteList['margin-bottom'] = true; // default: 0
|
329
|
-
whiteList['margin-left'] = true; // default: 0
|
330
|
-
whiteList['margin-right'] = true; // default: 0
|
331
|
-
whiteList['margin-top'] = true; // default: 0
|
332
|
-
whiteList['marker-offset'] = false; // default: auto
|
333
|
-
whiteList['marker-side'] = false; // default: list-item
|
334
|
-
whiteList['marks'] = false; // default: none
|
335
|
-
whiteList['mask'] = false; // default: border-box
|
336
|
-
whiteList['mask-box'] = false; // default: see individual properties
|
337
|
-
whiteList['mask-box-outset'] = false; // default: 0
|
338
|
-
whiteList['mask-box-repeat'] = false; // default: stretch
|
339
|
-
whiteList['mask-box-slice'] = false; // default: 0 fill
|
340
|
-
whiteList['mask-box-source'] = false; // default: none
|
341
|
-
whiteList['mask-box-width'] = false; // default: auto
|
342
|
-
whiteList['mask-clip'] = false; // default: border-box
|
343
|
-
whiteList['mask-image'] = false; // default: none
|
344
|
-
whiteList['mask-origin'] = false; // default: border-box
|
345
|
-
whiteList['mask-position'] = false; // default: center
|
346
|
-
whiteList['mask-repeat'] = false; // default: no-repeat
|
347
|
-
whiteList['mask-size'] = false; // default: border-box
|
348
|
-
whiteList['mask-source-type'] = false; // default: auto
|
349
|
-
whiteList['mask-type'] = false; // default: luminance
|
350
|
-
whiteList['max-height'] = true; // default: none
|
351
|
-
whiteList['max-lines'] = false; // default: none
|
352
|
-
whiteList['max-width'] = true; // default: none
|
353
|
-
whiteList['min-height'] = true; // default: 0
|
354
|
-
whiteList['min-width'] = true; // default: 0
|
355
|
-
whiteList['move-to'] = false; // default: normal
|
356
|
-
whiteList['nav-down'] = false; // default: auto
|
357
|
-
whiteList['nav-index'] = false; // default: auto
|
358
|
-
whiteList['nav-left'] = false; // default: auto
|
359
|
-
whiteList['nav-right'] = false; // default: auto
|
360
|
-
whiteList['nav-up'] = false; // default: auto
|
361
|
-
whiteList['object-fit'] = false; // default: fill
|
362
|
-
whiteList['object-position'] = false; // default: 50% 50%
|
363
|
-
whiteList['opacity'] = false; // default: 1
|
364
|
-
whiteList['order'] = false; // default: 0
|
365
|
-
whiteList['orphans'] = false; // default: 2
|
366
|
-
whiteList['outline'] = false; // default: depending on individual properties
|
367
|
-
whiteList['outline-color'] = false; // default: invert
|
368
|
-
whiteList['outline-offset'] = false; // default: 0
|
369
|
-
whiteList['outline-style'] = false; // default: none
|
370
|
-
whiteList['outline-width'] = false; // default: medium
|
371
|
-
whiteList['overflow'] = false; // default: depending on individual properties
|
372
|
-
whiteList['overflow-wrap'] = false; // default: normal
|
373
|
-
whiteList['overflow-x'] = false; // default: visible
|
374
|
-
whiteList['overflow-y'] = false; // default: visible
|
375
|
-
whiteList['padding'] = true; // default: depending on individual properties
|
376
|
-
whiteList['padding-bottom'] = true; // default: 0
|
377
|
-
whiteList['padding-left'] = true; // default: 0
|
378
|
-
whiteList['padding-right'] = true; // default: 0
|
379
|
-
whiteList['padding-top'] = true; // default: 0
|
380
|
-
whiteList['page'] = false; // default: auto
|
381
|
-
whiteList['page-break-after'] = false; // default: auto
|
382
|
-
whiteList['page-break-before'] = false; // default: auto
|
383
|
-
whiteList['page-break-inside'] = false; // default: auto
|
384
|
-
whiteList['page-policy'] = false; // default: start
|
385
|
-
whiteList['pause'] = false; // default: implementation dependent
|
386
|
-
whiteList['pause-after'] = false; // default: implementation dependent
|
387
|
-
whiteList['pause-before'] = false; // default: implementation dependent
|
388
|
-
whiteList['perspective'] = false; // default: none
|
389
|
-
whiteList['perspective-origin'] = false; // default: 50% 50%
|
390
|
-
whiteList['pitch'] = false; // default: medium
|
391
|
-
whiteList['pitch-range'] = false; // default: 50
|
392
|
-
whiteList['play-during'] = false; // default: auto
|
393
|
-
whiteList['position'] = false; // default: static
|
394
|
-
whiteList['presentation-level'] = false; // default: 0
|
395
|
-
whiteList['quotes'] = false; // default: text
|
396
|
-
whiteList['region-fragment'] = false; // default: auto
|
397
|
-
whiteList['resize'] = false; // default: none
|
398
|
-
whiteList['rest'] = false; // default: depending on individual properties
|
399
|
-
whiteList['rest-after'] = false; // default: none
|
400
|
-
whiteList['rest-before'] = false; // default: none
|
401
|
-
whiteList['richness'] = false; // default: 50
|
402
|
-
whiteList['right'] = false; // default: auto
|
403
|
-
whiteList['rotation'] = false; // default: 0
|
404
|
-
whiteList['rotation-point'] = false; // default: 50% 50%
|
405
|
-
whiteList['ruby-align'] = false; // default: auto
|
406
|
-
whiteList['ruby-merge'] = false; // default: separate
|
407
|
-
whiteList['ruby-position'] = false; // default: before
|
408
|
-
whiteList['shape-image-threshold'] = false; // default: 0.0
|
409
|
-
whiteList['shape-outside'] = false; // default: none
|
410
|
-
whiteList['shape-margin'] = false; // default: 0
|
411
|
-
whiteList['size'] = false; // default: auto
|
412
|
-
whiteList['speak'] = false; // default: auto
|
413
|
-
whiteList['speak-as'] = false; // default: normal
|
414
|
-
whiteList['speak-header'] = false; // default: once
|
415
|
-
whiteList['speak-numeral'] = false; // default: continuous
|
416
|
-
whiteList['speak-punctuation'] = false; // default: none
|
417
|
-
whiteList['speech-rate'] = false; // default: medium
|
418
|
-
whiteList['stress'] = false; // default: 50
|
419
|
-
whiteList['string-set'] = false; // default: none
|
420
|
-
whiteList['tab-size'] = false; // default: 8
|
421
|
-
whiteList['table-layout'] = false; // default: auto
|
422
|
-
whiteList['text-align'] = true; // default: start
|
423
|
-
whiteList['text-align-last'] = true; // default: auto
|
424
|
-
whiteList['text-combine-upright'] = true; // default: none
|
425
|
-
whiteList['text-decoration'] = true; // default: none
|
426
|
-
whiteList['text-decoration-color'] = true; // default: currentColor
|
427
|
-
whiteList['text-decoration-line'] = true; // default: none
|
428
|
-
whiteList['text-decoration-skip'] = true; // default: objects
|
429
|
-
whiteList['text-decoration-style'] = true; // default: solid
|
430
|
-
whiteList['text-emphasis'] = true; // default: depending on individual properties
|
431
|
-
whiteList['text-emphasis-color'] = true; // default: currentColor
|
432
|
-
whiteList['text-emphasis-position'] = true; // default: over right
|
433
|
-
whiteList['text-emphasis-style'] = true; // default: none
|
434
|
-
whiteList['text-height'] = true; // default: auto
|
435
|
-
whiteList['text-indent'] = true; // default: 0
|
436
|
-
whiteList['text-justify'] = true; // default: auto
|
437
|
-
whiteList['text-orientation'] = true; // default: mixed
|
438
|
-
whiteList['text-overflow'] = true; // default: clip
|
439
|
-
whiteList['text-shadow'] = true; // default: none
|
440
|
-
whiteList['text-space-collapse'] = true; // default: collapse
|
441
|
-
whiteList['text-transform'] = true; // default: none
|
442
|
-
whiteList['text-underline-position'] = true; // default: auto
|
443
|
-
whiteList['text-wrap'] = true; // default: normal
|
444
|
-
whiteList['top'] = false; // default: auto
|
445
|
-
whiteList['transform'] = false; // default: none
|
446
|
-
whiteList['transform-origin'] = false; // default: 50% 50% 0
|
447
|
-
whiteList['transform-style'] = false; // default: flat
|
448
|
-
whiteList['transition'] = false; // default: depending on individual properties
|
449
|
-
whiteList['transition-delay'] = false; // default: 0s
|
450
|
-
whiteList['transition-duration'] = false; // default: 0s
|
451
|
-
whiteList['transition-property'] = false; // default: all
|
452
|
-
whiteList['transition-timing-function'] = false; // default: ease
|
453
|
-
whiteList['unicode-bidi'] = false; // default: normal
|
454
|
-
whiteList['vertical-align'] = false; // default: baseline
|
455
|
-
whiteList['visibility'] = false; // default: visible
|
456
|
-
whiteList['voice-balance'] = false; // default: center
|
457
|
-
whiteList['voice-duration'] = false; // default: auto
|
458
|
-
whiteList['voice-family'] = false; // default: implementation dependent
|
459
|
-
whiteList['voice-pitch'] = false; // default: medium
|
460
|
-
whiteList['voice-range'] = false; // default: medium
|
461
|
-
whiteList['voice-rate'] = false; // default: normal
|
462
|
-
whiteList['voice-stress'] = false; // default: normal
|
463
|
-
whiteList['voice-volume'] = false; // default: medium
|
464
|
-
whiteList['volume'] = false; // default: medium
|
465
|
-
whiteList['white-space'] = false; // default: normal
|
466
|
-
whiteList['widows'] = false; // default: 2
|
467
|
-
whiteList['width'] = true; // default: auto
|
468
|
-
whiteList['will-change'] = false; // default: auto
|
469
|
-
whiteList['word-break'] = true; // default: normal
|
470
|
-
whiteList['word-spacing'] = true; // default: normal
|
471
|
-
whiteList['word-wrap'] = true; // default: normal
|
472
|
-
whiteList['wrap-flow'] = false; // default: auto
|
473
|
-
whiteList['wrap-through'] = false; // default: wrap
|
474
|
-
whiteList['writing-mode'] = false; // default: horizontal-tb
|
475
|
-
whiteList['z-index'] = false; // default: auto
|
476
|
-
|
477
|
-
return whiteList;
|
478
|
-
}
|
479
|
-
|
480
|
-
|
481
|
-
/**
|
482
|
-
* 匹配到白名单上的一个属性时
|
483
|
-
*
|
484
|
-
* @param {String} name
|
485
|
-
* @param {String} value
|
486
|
-
* @param {Object} options
|
487
|
-
* @return {String}
|
488
|
-
*/
|
489
|
-
function onAttr (name, value, options) {
|
490
|
-
// do nothing
|
491
|
-
}
|
492
|
-
|
493
|
-
/**
|
494
|
-
* 匹配到不在白名单上的一个属性时
|
495
|
-
*
|
496
|
-
* @param {String} name
|
497
|
-
* @param {String} value
|
498
|
-
* @param {Object} options
|
499
|
-
* @return {String}
|
500
|
-
*/
|
501
|
-
function onIgnoreAttr (name, value, options) {
|
502
|
-
// do nothing
|
503
|
-
}
|
504
|
-
|
505
|
-
var REGEXP_URL_JAVASCRIPT = /javascript\s*\:/img;
|
506
|
-
|
507
|
-
/**
|
508
|
-
* 过滤属性值
|
509
|
-
*
|
510
|
-
* @param {String} name
|
511
|
-
* @param {String} value
|
512
|
-
* @return {String}
|
513
|
-
*/
|
514
|
-
function safeAttrValue$1(name, value) {
|
515
|
-
if (REGEXP_URL_JAVASCRIPT.test(value)) return '';
|
516
|
-
return value;
|
517
|
-
}
|
518
|
-
|
519
|
-
|
520
|
-
_default.whiteList = getDefaultWhiteList$1();
|
521
|
-
_default.getDefaultWhiteList = getDefaultWhiteList$1;
|
522
|
-
_default.onAttr = onAttr;
|
523
|
-
_default.onIgnoreAttr = onIgnoreAttr;
|
524
|
-
_default.safeAttrValue = safeAttrValue$1;
|
525
|
-
|
526
|
-
var util$1 = {
|
527
|
-
indexOf: function (arr, item) {
|
528
|
-
var i, j;
|
529
|
-
if (Array.prototype.indexOf) {
|
530
|
-
return arr.indexOf(item);
|
531
|
-
}
|
532
|
-
for (i = 0, j = arr.length; i < j; i++) {
|
533
|
-
if (arr[i] === item) {
|
534
|
-
return i;
|
535
|
-
}
|
536
|
-
}
|
537
|
-
return -1;
|
538
|
-
},
|
539
|
-
forEach: function (arr, fn, scope) {
|
540
|
-
var i, j;
|
541
|
-
if (Array.prototype.forEach) {
|
542
|
-
return arr.forEach(fn, scope);
|
543
|
-
}
|
544
|
-
for (i = 0, j = arr.length; i < j; i++) {
|
545
|
-
fn.call(scope, arr[i], i, arr);
|
546
|
-
}
|
547
|
-
},
|
548
|
-
trim: function (str) {
|
549
|
-
if (String.prototype.trim) {
|
550
|
-
return str.trim();
|
551
|
-
}
|
552
|
-
return str.replace(/(^\s*)|(\s*$)/g, '');
|
553
|
-
},
|
554
|
-
trimRight: function (str) {
|
555
|
-
if (String.prototype.trimRight) {
|
556
|
-
return str.trimRight();
|
557
|
-
}
|
558
|
-
return str.replace(/(\s*$)/g, '');
|
559
|
-
}
|
560
|
-
};
|
561
|
-
|
562
|
-
/**
|
563
|
-
* cssfilter
|
564
|
-
*
|
565
|
-
* @author 老雷<leizongmin@gmail.com>
|
566
|
-
*/
|
567
|
-
|
568
|
-
var _$3 = util$1;
|
569
|
-
|
570
|
-
|
571
|
-
/**
|
572
|
-
* 解析style
|
573
|
-
*
|
574
|
-
* @param {String} css
|
575
|
-
* @param {Function} onAttr 处理属性的函数
|
576
|
-
* 参数格式: function (sourcePosition, position, name, value, source)
|
577
|
-
* @return {String}
|
578
|
-
*/
|
579
|
-
function parseStyle$1 (css, onAttr) {
|
580
|
-
css = _$3.trimRight(css);
|
581
|
-
if (css[css.length - 1] !== ';') css += ';';
|
582
|
-
var cssLength = css.length;
|
583
|
-
var isParenthesisOpen = false;
|
584
|
-
var lastPos = 0;
|
585
|
-
var i = 0;
|
586
|
-
var retCSS = '';
|
587
|
-
|
588
|
-
function addNewAttr () {
|
589
|
-
// 如果没有正常的闭合圆括号,则直接忽略当前属性
|
590
|
-
if (!isParenthesisOpen) {
|
591
|
-
var source = _$3.trim(css.slice(lastPos, i));
|
592
|
-
var j = source.indexOf(':');
|
593
|
-
if (j !== -1) {
|
594
|
-
var name = _$3.trim(source.slice(0, j));
|
595
|
-
var value = _$3.trim(source.slice(j + 1));
|
596
|
-
// 必须有属性名称
|
597
|
-
if (name) {
|
598
|
-
var ret = onAttr(lastPos, retCSS.length, name, value, source);
|
599
|
-
if (ret) retCSS += ret + '; ';
|
600
|
-
}
|
601
|
-
}
|
602
|
-
}
|
603
|
-
lastPos = i + 1;
|
604
|
-
}
|
605
|
-
|
606
|
-
for (; i < cssLength; i++) {
|
607
|
-
var c = css[i];
|
608
|
-
if (c === '/' && css[i + 1] === '*') {
|
609
|
-
// 备注开始
|
610
|
-
var j = css.indexOf('*/', i + 2);
|
611
|
-
// 如果没有正常的备注结束,则后面的部分全部跳过
|
612
|
-
if (j === -1) break;
|
613
|
-
// 直接将当前位置调到备注结尾,并且初始化状态
|
614
|
-
i = j + 1;
|
615
|
-
lastPos = i + 1;
|
616
|
-
isParenthesisOpen = false;
|
617
|
-
} else if (c === '(') {
|
618
|
-
isParenthesisOpen = true;
|
619
|
-
} else if (c === ')') {
|
620
|
-
isParenthesisOpen = false;
|
621
|
-
} else if (c === ';') {
|
622
|
-
if (isParenthesisOpen) ; else {
|
623
|
-
addNewAttr();
|
624
|
-
}
|
625
|
-
} else if (c === '\n') {
|
626
|
-
addNewAttr();
|
627
|
-
}
|
628
|
-
}
|
629
|
-
|
630
|
-
return _$3.trim(retCSS);
|
631
|
-
}
|
632
|
-
|
633
|
-
var parser$2 = parseStyle$1;
|
634
|
-
|
635
|
-
/**
|
636
|
-
* cssfilter
|
637
|
-
*
|
638
|
-
* @author 老雷<leizongmin@gmail.com>
|
639
|
-
*/
|
640
|
-
|
641
|
-
var DEFAULT$1 = _default;
|
642
|
-
var parseStyle = parser$2;
|
643
|
-
|
644
|
-
|
645
|
-
/**
|
646
|
-
* 返回值是否为空
|
647
|
-
*
|
648
|
-
* @param {Object} obj
|
649
|
-
* @return {Boolean}
|
650
|
-
*/
|
651
|
-
function isNull$1 (obj) {
|
652
|
-
return (obj === undefined || obj === null);
|
653
|
-
}
|
654
|
-
|
655
|
-
/**
|
656
|
-
* 浅拷贝对象
|
657
|
-
*
|
658
|
-
* @param {Object} obj
|
659
|
-
* @return {Object}
|
660
|
-
*/
|
661
|
-
function shallowCopyObject$1 (obj) {
|
662
|
-
var ret = {};
|
663
|
-
for (var i in obj) {
|
664
|
-
ret[i] = obj[i];
|
665
|
-
}
|
666
|
-
return ret;
|
667
|
-
}
|
668
|
-
|
669
|
-
/**
|
670
|
-
* 创建CSS过滤器
|
671
|
-
*
|
672
|
-
* @param {Object} options
|
673
|
-
* - {Object} whiteList
|
674
|
-
* - {Function} onAttr
|
675
|
-
* - {Function} onIgnoreAttr
|
676
|
-
* - {Function} safeAttrValue
|
677
|
-
*/
|
678
|
-
function FilterCSS$2 (options) {
|
679
|
-
options = shallowCopyObject$1(options || {});
|
680
|
-
options.whiteList = options.whiteList || DEFAULT$1.whiteList;
|
681
|
-
options.onAttr = options.onAttr || DEFAULT$1.onAttr;
|
682
|
-
options.onIgnoreAttr = options.onIgnoreAttr || DEFAULT$1.onIgnoreAttr;
|
683
|
-
options.safeAttrValue = options.safeAttrValue || DEFAULT$1.safeAttrValue;
|
684
|
-
this.options = options;
|
685
|
-
}
|
686
|
-
|
687
|
-
FilterCSS$2.prototype.process = function (css) {
|
688
|
-
// 兼容各种奇葩输入
|
689
|
-
css = css || '';
|
690
|
-
css = css.toString();
|
691
|
-
if (!css) return '';
|
692
|
-
|
693
|
-
var me = this;
|
694
|
-
var options = me.options;
|
695
|
-
var whiteList = options.whiteList;
|
696
|
-
var onAttr = options.onAttr;
|
697
|
-
var onIgnoreAttr = options.onIgnoreAttr;
|
698
|
-
var safeAttrValue = options.safeAttrValue;
|
699
|
-
|
700
|
-
var retCSS = parseStyle(css, function (sourcePosition, position, name, value, source) {
|
701
|
-
|
702
|
-
var check = whiteList[name];
|
703
|
-
var isWhite = false;
|
704
|
-
if (check === true) isWhite = check;
|
705
|
-
else if (typeof check === 'function') isWhite = check(value);
|
706
|
-
else if (check instanceof RegExp) isWhite = check.test(value);
|
707
|
-
if (isWhite !== true) isWhite = false;
|
708
|
-
|
709
|
-
// 如果过滤后 value 为空则直接忽略
|
710
|
-
value = safeAttrValue(name, value);
|
711
|
-
if (!value) return;
|
712
|
-
|
713
|
-
var opts = {
|
714
|
-
position: position,
|
715
|
-
sourcePosition: sourcePosition,
|
716
|
-
source: source,
|
717
|
-
isWhite: isWhite
|
718
|
-
};
|
719
|
-
|
720
|
-
if (isWhite) {
|
721
|
-
|
722
|
-
var ret = onAttr(name, value, opts);
|
723
|
-
if (isNull$1(ret)) {
|
724
|
-
return name + ':' + value;
|
725
|
-
} else {
|
726
|
-
return ret;
|
727
|
-
}
|
728
|
-
|
729
|
-
} else {
|
730
|
-
|
731
|
-
var ret = onIgnoreAttr(name, value, opts);
|
732
|
-
if (!isNull$1(ret)) {
|
733
|
-
return ret;
|
734
|
-
}
|
735
|
-
|
736
|
-
}
|
737
|
-
});
|
738
|
-
|
739
|
-
return retCSS;
|
740
|
-
};
|
741
|
-
|
742
|
-
|
743
|
-
var css = FilterCSS$2;
|
744
|
-
|
745
|
-
/**
|
746
|
-
* cssfilter
|
747
|
-
*
|
748
|
-
* @author 老雷<leizongmin@gmail.com>
|
749
|
-
*/
|
750
|
-
|
751
|
-
(function (module, exports) {
|
752
|
-
var DEFAULT = _default;
|
753
|
-
var FilterCSS = css;
|
754
|
-
|
755
|
-
|
756
|
-
/**
|
757
|
-
* XSS过滤
|
758
|
-
*
|
759
|
-
* @param {String} css 要过滤的CSS代码
|
760
|
-
* @param {Object} options 选项:whiteList, onAttr, onIgnoreAttr
|
761
|
-
* @return {String}
|
762
|
-
*/
|
763
|
-
function filterCSS (html, options) {
|
764
|
-
var xss = new FilterCSS(options);
|
765
|
-
return xss.process(html);
|
766
|
-
}
|
767
|
-
|
768
|
-
|
769
|
-
// 输出
|
770
|
-
exports = module.exports = filterCSS;
|
771
|
-
exports.FilterCSS = FilterCSS;
|
772
|
-
for (var i in DEFAULT) exports[i] = DEFAULT[i];
|
773
|
-
} (lib, lib.exports));
|
774
|
-
|
775
|
-
var libExports$1 = lib.exports;
|
776
|
-
|
777
|
-
var util = {
|
778
|
-
indexOf: function (arr, item) {
|
779
|
-
var i, j;
|
780
|
-
if (Array.prototype.indexOf) {
|
781
|
-
return arr.indexOf(item);
|
782
|
-
}
|
783
|
-
for (i = 0, j = arr.length; i < j; i++) {
|
784
|
-
if (arr[i] === item) {
|
785
|
-
return i;
|
786
|
-
}
|
787
|
-
}
|
788
|
-
return -1;
|
789
|
-
},
|
790
|
-
forEach: function (arr, fn, scope) {
|
791
|
-
var i, j;
|
792
|
-
if (Array.prototype.forEach) {
|
793
|
-
return arr.forEach(fn, scope);
|
794
|
-
}
|
795
|
-
for (i = 0, j = arr.length; i < j; i++) {
|
796
|
-
fn.call(scope, arr[i], i, arr);
|
797
|
-
}
|
798
|
-
},
|
799
|
-
trim: function (str) {
|
800
|
-
if (String.prototype.trim) {
|
801
|
-
return str.trim();
|
802
|
-
}
|
803
|
-
return str.replace(/(^\s*)|(\s*$)/g, "");
|
804
|
-
},
|
805
|
-
spaceIndex: function (str) {
|
806
|
-
var reg = /\s|\n|\t/;
|
807
|
-
var match = reg.exec(str);
|
808
|
-
return match ? match.index : -1;
|
809
|
-
},
|
810
|
-
};
|
811
|
-
|
812
|
-
/**
|
813
|
-
* default settings
|
814
|
-
*
|
815
|
-
* @author Zongmin Lei<leizongmin@gmail.com>
|
816
|
-
*/
|
817
|
-
|
818
|
-
var FilterCSS$1 = libExports$1.FilterCSS;
|
819
|
-
var getDefaultCSSWhiteList = libExports$1.getDefaultWhiteList;
|
820
|
-
var _$2 = util;
|
821
|
-
|
822
|
-
function getDefaultWhiteList() {
|
823
|
-
return {
|
824
|
-
a: ["target", "href", "title"],
|
825
|
-
abbr: ["title"],
|
826
|
-
address: [],
|
827
|
-
area: ["shape", "coords", "href", "alt"],
|
828
|
-
article: [],
|
829
|
-
aside: [],
|
830
|
-
audio: [
|
831
|
-
"autoplay",
|
832
|
-
"controls",
|
833
|
-
"crossorigin",
|
834
|
-
"loop",
|
835
|
-
"muted",
|
836
|
-
"preload",
|
837
|
-
"src",
|
838
|
-
],
|
839
|
-
b: [],
|
840
|
-
bdi: ["dir"],
|
841
|
-
bdo: ["dir"],
|
842
|
-
big: [],
|
843
|
-
blockquote: ["cite"],
|
844
|
-
br: [],
|
845
|
-
caption: [],
|
846
|
-
center: [],
|
847
|
-
cite: [],
|
848
|
-
code: [],
|
849
|
-
col: ["align", "valign", "span", "width"],
|
850
|
-
colgroup: ["align", "valign", "span", "width"],
|
851
|
-
dd: [],
|
852
|
-
del: ["datetime"],
|
853
|
-
details: ["open"],
|
854
|
-
div: [],
|
855
|
-
dl: [],
|
856
|
-
dt: [],
|
857
|
-
em: [],
|
858
|
-
figcaption: [],
|
859
|
-
figure: [],
|
860
|
-
font: ["color", "size", "face"],
|
861
|
-
footer: [],
|
862
|
-
h1: [],
|
863
|
-
h2: [],
|
864
|
-
h3: [],
|
865
|
-
h4: [],
|
866
|
-
h5: [],
|
867
|
-
h6: [],
|
868
|
-
header: [],
|
869
|
-
hr: [],
|
870
|
-
i: [],
|
871
|
-
img: ["src", "alt", "title", "width", "height"],
|
872
|
-
ins: ["datetime"],
|
873
|
-
li: [],
|
874
|
-
mark: [],
|
875
|
-
nav: [],
|
876
|
-
ol: [],
|
877
|
-
p: [],
|
878
|
-
pre: [],
|
879
|
-
s: [],
|
880
|
-
section: [],
|
881
|
-
small: [],
|
882
|
-
span: [],
|
883
|
-
sub: [],
|
884
|
-
summary: [],
|
885
|
-
sup: [],
|
886
|
-
strong: [],
|
887
|
-
strike: [],
|
888
|
-
table: ["width", "border", "align", "valign"],
|
889
|
-
tbody: ["align", "valign"],
|
890
|
-
td: ["width", "rowspan", "colspan", "align", "valign"],
|
891
|
-
tfoot: ["align", "valign"],
|
892
|
-
th: ["width", "rowspan", "colspan", "align", "valign"],
|
893
|
-
thead: ["align", "valign"],
|
894
|
-
tr: ["rowspan", "align", "valign"],
|
895
|
-
tt: [],
|
896
|
-
u: [],
|
897
|
-
ul: [],
|
898
|
-
video: [
|
899
|
-
"autoplay",
|
900
|
-
"controls",
|
901
|
-
"crossorigin",
|
902
|
-
"loop",
|
903
|
-
"muted",
|
904
|
-
"playsinline",
|
905
|
-
"poster",
|
906
|
-
"preload",
|
907
|
-
"src",
|
908
|
-
"height",
|
909
|
-
"width",
|
910
|
-
],
|
911
|
-
};
|
912
|
-
}
|
913
|
-
|
914
|
-
var defaultCSSFilter = new FilterCSS$1();
|
915
|
-
|
916
|
-
/**
|
917
|
-
* default onTag function
|
918
|
-
*
|
919
|
-
* @param {String} tag
|
920
|
-
* @param {String} html
|
921
|
-
* @param {Object} options
|
922
|
-
* @return {String}
|
923
|
-
*/
|
924
|
-
function onTag(tag, html, options) {
|
925
|
-
// do nothing
|
926
|
-
}
|
927
|
-
|
928
|
-
/**
|
929
|
-
* default onIgnoreTag function
|
930
|
-
*
|
931
|
-
* @param {String} tag
|
932
|
-
* @param {String} html
|
933
|
-
* @param {Object} options
|
934
|
-
* @return {String}
|
935
|
-
*/
|
936
|
-
function onIgnoreTag(tag, html, options) {
|
937
|
-
// do nothing
|
938
|
-
}
|
939
|
-
|
940
|
-
/**
|
941
|
-
* default onTagAttr function
|
942
|
-
*
|
943
|
-
* @param {String} tag
|
944
|
-
* @param {String} name
|
945
|
-
* @param {String} value
|
946
|
-
* @return {String}
|
947
|
-
*/
|
948
|
-
function onTagAttr(tag, name, value) {
|
949
|
-
// do nothing
|
950
|
-
}
|
951
|
-
|
952
|
-
/**
|
953
|
-
* default onIgnoreTagAttr function
|
954
|
-
*
|
955
|
-
* @param {String} tag
|
956
|
-
* @param {String} name
|
957
|
-
* @param {String} value
|
958
|
-
* @return {String}
|
959
|
-
*/
|
960
|
-
function onIgnoreTagAttr(tag, name, value) {
|
961
|
-
// do nothing
|
962
|
-
}
|
963
|
-
|
964
|
-
/**
|
965
|
-
* default escapeHtml function
|
966
|
-
*
|
967
|
-
* @param {String} html
|
968
|
-
*/
|
969
|
-
function escapeHtml(html) {
|
970
|
-
return html.replace(REGEXP_LT, "<").replace(REGEXP_GT, ">");
|
971
|
-
}
|
972
|
-
|
973
|
-
/**
|
974
|
-
* default safeAttrValue function
|
975
|
-
*
|
976
|
-
* @param {String} tag
|
977
|
-
* @param {String} name
|
978
|
-
* @param {String} value
|
979
|
-
* @param {Object} cssFilter
|
980
|
-
* @return {String}
|
981
|
-
*/
|
982
|
-
function safeAttrValue(tag, name, value, cssFilter) {
|
983
|
-
// unescape attribute value firstly
|
984
|
-
value = friendlyAttrValue(value);
|
985
|
-
|
986
|
-
if (name === "href" || name === "src") {
|
987
|
-
// filter `href` and `src` attribute
|
988
|
-
// only allow the value that starts with `http://` | `https://` | `mailto:` | `/` | `#`
|
989
|
-
value = _$2.trim(value);
|
990
|
-
if (value === "#") return "#";
|
991
|
-
if (
|
992
|
-
!(
|
993
|
-
value.substr(0, 7) === "http://" ||
|
994
|
-
value.substr(0, 8) === "https://" ||
|
995
|
-
value.substr(0, 7) === "mailto:" ||
|
996
|
-
value.substr(0, 4) === "tel:" ||
|
997
|
-
value.substr(0, 11) === "data:image/" ||
|
998
|
-
value.substr(0, 6) === "ftp://" ||
|
999
|
-
value.substr(0, 2) === "./" ||
|
1000
|
-
value.substr(0, 3) === "../" ||
|
1001
|
-
value[0] === "#" ||
|
1002
|
-
value[0] === "/"
|
1003
|
-
)
|
1004
|
-
) {
|
1005
|
-
return "";
|
1006
|
-
}
|
1007
|
-
} else if (name === "background") {
|
1008
|
-
// filter `background` attribute (maybe no use)
|
1009
|
-
// `javascript:`
|
1010
|
-
REGEXP_DEFAULT_ON_TAG_ATTR_4.lastIndex = 0;
|
1011
|
-
if (REGEXP_DEFAULT_ON_TAG_ATTR_4.test(value)) {
|
1012
|
-
return "";
|
1013
|
-
}
|
1014
|
-
} else if (name === "style") {
|
1015
|
-
// `expression()`
|
1016
|
-
REGEXP_DEFAULT_ON_TAG_ATTR_7.lastIndex = 0;
|
1017
|
-
if (REGEXP_DEFAULT_ON_TAG_ATTR_7.test(value)) {
|
1018
|
-
return "";
|
1019
|
-
}
|
1020
|
-
// `url()`
|
1021
|
-
REGEXP_DEFAULT_ON_TAG_ATTR_8.lastIndex = 0;
|
1022
|
-
if (REGEXP_DEFAULT_ON_TAG_ATTR_8.test(value)) {
|
1023
|
-
REGEXP_DEFAULT_ON_TAG_ATTR_4.lastIndex = 0;
|
1024
|
-
if (REGEXP_DEFAULT_ON_TAG_ATTR_4.test(value)) {
|
1025
|
-
return "";
|
1026
|
-
}
|
1027
|
-
}
|
1028
|
-
if (cssFilter !== false) {
|
1029
|
-
cssFilter = cssFilter || defaultCSSFilter;
|
1030
|
-
value = cssFilter.process(value);
|
1031
|
-
}
|
1032
|
-
}
|
1033
|
-
|
1034
|
-
// escape `<>"` before returns
|
1035
|
-
value = escapeAttrValue(value);
|
1036
|
-
return value;
|
1037
|
-
}
|
1038
|
-
|
1039
|
-
// RegExp list
|
1040
|
-
var REGEXP_LT = /</g;
|
1041
|
-
var REGEXP_GT = />/g;
|
1042
|
-
var REGEXP_QUOTE = /"/g;
|
1043
|
-
var REGEXP_QUOTE_2 = /"/g;
|
1044
|
-
var REGEXP_ATTR_VALUE_1 = /&#([a-zA-Z0-9]*);?/gim;
|
1045
|
-
var REGEXP_ATTR_VALUE_COLON = /:?/gim;
|
1046
|
-
var REGEXP_ATTR_VALUE_NEWLINE = /&newline;?/gim;
|
1047
|
-
// var REGEXP_DEFAULT_ON_TAG_ATTR_3 = /\/\*|\*\//gm;
|
1048
|
-
var REGEXP_DEFAULT_ON_TAG_ATTR_4 =
|
1049
|
-
/((j\s*a\s*v\s*a|v\s*b|l\s*i\s*v\s*e)\s*s\s*c\s*r\s*i\s*p\s*t\s*|m\s*o\s*c\s*h\s*a):/gi;
|
1050
|
-
// var REGEXP_DEFAULT_ON_TAG_ATTR_5 = /^[\s"'`]*(d\s*a\s*t\s*a\s*)\:/gi;
|
1051
|
-
// var REGEXP_DEFAULT_ON_TAG_ATTR_6 = /^[\s"'`]*(d\s*a\s*t\s*a\s*)\:\s*image\//gi;
|
1052
|
-
var REGEXP_DEFAULT_ON_TAG_ATTR_7 =
|
1053
|
-
/e\s*x\s*p\s*r\s*e\s*s\s*s\s*i\s*o\s*n\s*\(.*/gi;
|
1054
|
-
var REGEXP_DEFAULT_ON_TAG_ATTR_8 = /u\s*r\s*l\s*\(.*/gi;
|
1055
|
-
|
1056
|
-
/**
|
1057
|
-
* escape double quote
|
1058
|
-
*
|
1059
|
-
* @param {String} str
|
1060
|
-
* @return {String} str
|
1061
|
-
*/
|
1062
|
-
function escapeQuote(str) {
|
1063
|
-
return str.replace(REGEXP_QUOTE, """);
|
1064
|
-
}
|
1065
|
-
|
1066
|
-
/**
|
1067
|
-
* unescape double quote
|
1068
|
-
*
|
1069
|
-
* @param {String} str
|
1070
|
-
* @return {String} str
|
1071
|
-
*/
|
1072
|
-
function unescapeQuote(str) {
|
1073
|
-
return str.replace(REGEXP_QUOTE_2, '"');
|
1074
|
-
}
|
1075
|
-
|
1076
|
-
/**
|
1077
|
-
* escape html entities
|
1078
|
-
*
|
1079
|
-
* @param {String} str
|
1080
|
-
* @return {String}
|
1081
|
-
*/
|
1082
|
-
function escapeHtmlEntities(str) {
|
1083
|
-
return str.replace(REGEXP_ATTR_VALUE_1, function replaceUnicode(str, code) {
|
1084
|
-
return code[0] === "x" || code[0] === "X"
|
1085
|
-
? String.fromCharCode(parseInt(code.substr(1), 16))
|
1086
|
-
: String.fromCharCode(parseInt(code, 10));
|
1087
|
-
});
|
1088
|
-
}
|
1089
|
-
|
1090
|
-
/**
|
1091
|
-
* escape html5 new danger entities
|
1092
|
-
*
|
1093
|
-
* @param {String} str
|
1094
|
-
* @return {String}
|
1095
|
-
*/
|
1096
|
-
function escapeDangerHtml5Entities(str) {
|
1097
|
-
return str
|
1098
|
-
.replace(REGEXP_ATTR_VALUE_COLON, ":")
|
1099
|
-
.replace(REGEXP_ATTR_VALUE_NEWLINE, " ");
|
1100
|
-
}
|
1101
|
-
|
1102
|
-
/**
|
1103
|
-
* clear nonprintable characters
|
1104
|
-
*
|
1105
|
-
* @param {String} str
|
1106
|
-
* @return {String}
|
1107
|
-
*/
|
1108
|
-
function clearNonPrintableCharacter(str) {
|
1109
|
-
var str2 = "";
|
1110
|
-
for (var i = 0, len = str.length; i < len; i++) {
|
1111
|
-
str2 += str.charCodeAt(i) < 32 ? " " : str.charAt(i);
|
1112
|
-
}
|
1113
|
-
return _$2.trim(str2);
|
1114
|
-
}
|
1115
|
-
|
1116
|
-
/**
|
1117
|
-
* get friendly attribute value
|
1118
|
-
*
|
1119
|
-
* @param {String} str
|
1120
|
-
* @return {String}
|
1121
|
-
*/
|
1122
|
-
function friendlyAttrValue(str) {
|
1123
|
-
str = unescapeQuote(str);
|
1124
|
-
str = escapeHtmlEntities(str);
|
1125
|
-
str = escapeDangerHtml5Entities(str);
|
1126
|
-
str = clearNonPrintableCharacter(str);
|
1127
|
-
return str;
|
1128
|
-
}
|
1129
|
-
|
1130
|
-
/**
|
1131
|
-
* unescape attribute value
|
1132
|
-
*
|
1133
|
-
* @param {String} str
|
1134
|
-
* @return {String}
|
1135
|
-
*/
|
1136
|
-
function escapeAttrValue(str) {
|
1137
|
-
str = escapeQuote(str);
|
1138
|
-
str = escapeHtml(str);
|
1139
|
-
return str;
|
1140
|
-
}
|
1141
|
-
|
1142
|
-
/**
|
1143
|
-
* `onIgnoreTag` function for removing all the tags that are not in whitelist
|
1144
|
-
*/
|
1145
|
-
function onIgnoreTagStripAll() {
|
1146
|
-
return "";
|
1147
|
-
}
|
1148
|
-
|
1149
|
-
/**
|
1150
|
-
* remove tag body
|
1151
|
-
* specify a `tags` list, if the tag is not in the `tags` list then process by the specify function (optional)
|
1152
|
-
*
|
1153
|
-
* @param {array} tags
|
1154
|
-
* @param {function} next
|
1155
|
-
*/
|
1156
|
-
function StripTagBody(tags, next) {
|
1157
|
-
if (typeof next !== "function") {
|
1158
|
-
next = function () {};
|
1159
|
-
}
|
1160
|
-
|
1161
|
-
var isRemoveAllTag = !Array.isArray(tags);
|
1162
|
-
function isRemoveTag(tag) {
|
1163
|
-
if (isRemoveAllTag) return true;
|
1164
|
-
return _$2.indexOf(tags, tag) !== -1;
|
1165
|
-
}
|
1166
|
-
|
1167
|
-
var removeList = [];
|
1168
|
-
var posStart = false;
|
1169
|
-
|
1170
|
-
return {
|
1171
|
-
onIgnoreTag: function (tag, html, options) {
|
1172
|
-
if (isRemoveTag(tag)) {
|
1173
|
-
if (options.isClosing) {
|
1174
|
-
var ret = "[/removed]";
|
1175
|
-
var end = options.position + ret.length;
|
1176
|
-
removeList.push([
|
1177
|
-
posStart !== false ? posStart : options.position,
|
1178
|
-
end,
|
1179
|
-
]);
|
1180
|
-
posStart = false;
|
1181
|
-
return ret;
|
1182
|
-
} else {
|
1183
|
-
if (!posStart) {
|
1184
|
-
posStart = options.position;
|
1185
|
-
}
|
1186
|
-
return "[removed]";
|
1187
|
-
}
|
1188
|
-
} else {
|
1189
|
-
return next(tag, html, options);
|
1190
|
-
}
|
1191
|
-
},
|
1192
|
-
remove: function (html) {
|
1193
|
-
var rethtml = "";
|
1194
|
-
var lastPos = 0;
|
1195
|
-
_$2.forEach(removeList, function (pos) {
|
1196
|
-
rethtml += html.slice(lastPos, pos[0]);
|
1197
|
-
lastPos = pos[1];
|
1198
|
-
});
|
1199
|
-
rethtml += html.slice(lastPos);
|
1200
|
-
return rethtml;
|
1201
|
-
},
|
1202
|
-
};
|
1203
|
-
}
|
1204
|
-
|
1205
|
-
/**
|
1206
|
-
* remove html comments
|
1207
|
-
*
|
1208
|
-
* @param {String} html
|
1209
|
-
* @return {String}
|
1210
|
-
*/
|
1211
|
-
function stripCommentTag(html) {
|
1212
|
-
var retHtml = "";
|
1213
|
-
var lastPos = 0;
|
1214
|
-
while (lastPos < html.length) {
|
1215
|
-
var i = html.indexOf("<!--", lastPos);
|
1216
|
-
if (i === -1) {
|
1217
|
-
retHtml += html.slice(lastPos);
|
1218
|
-
break;
|
1219
|
-
}
|
1220
|
-
retHtml += html.slice(lastPos, i);
|
1221
|
-
var j = html.indexOf("-->", i);
|
1222
|
-
if (j === -1) {
|
1223
|
-
break;
|
1224
|
-
}
|
1225
|
-
lastPos = j + 3;
|
1226
|
-
}
|
1227
|
-
return retHtml;
|
1228
|
-
}
|
1229
|
-
|
1230
|
-
/**
|
1231
|
-
* remove invisible characters
|
1232
|
-
*
|
1233
|
-
* @param {String} html
|
1234
|
-
* @return {String}
|
1235
|
-
*/
|
1236
|
-
function stripBlankChar(html) {
|
1237
|
-
var chars = html.split("");
|
1238
|
-
chars = chars.filter(function (char) {
|
1239
|
-
var c = char.charCodeAt(0);
|
1240
|
-
if (c === 127) return false;
|
1241
|
-
if (c <= 31) {
|
1242
|
-
if (c === 10 || c === 13) return true;
|
1243
|
-
return false;
|
1244
|
-
}
|
1245
|
-
return true;
|
1246
|
-
});
|
1247
|
-
return chars.join("");
|
1248
|
-
}
|
1249
|
-
|
1250
|
-
_default$1.whiteList = getDefaultWhiteList();
|
1251
|
-
_default$1.getDefaultWhiteList = getDefaultWhiteList;
|
1252
|
-
_default$1.onTag = onTag;
|
1253
|
-
_default$1.onIgnoreTag = onIgnoreTag;
|
1254
|
-
_default$1.onTagAttr = onTagAttr;
|
1255
|
-
_default$1.onIgnoreTagAttr = onIgnoreTagAttr;
|
1256
|
-
_default$1.safeAttrValue = safeAttrValue;
|
1257
|
-
_default$1.escapeHtml = escapeHtml;
|
1258
|
-
_default$1.escapeQuote = escapeQuote;
|
1259
|
-
_default$1.unescapeQuote = unescapeQuote;
|
1260
|
-
_default$1.escapeHtmlEntities = escapeHtmlEntities;
|
1261
|
-
_default$1.escapeDangerHtml5Entities = escapeDangerHtml5Entities;
|
1262
|
-
_default$1.clearNonPrintableCharacter = clearNonPrintableCharacter;
|
1263
|
-
_default$1.friendlyAttrValue = friendlyAttrValue;
|
1264
|
-
_default$1.escapeAttrValue = escapeAttrValue;
|
1265
|
-
_default$1.onIgnoreTagStripAll = onIgnoreTagStripAll;
|
1266
|
-
_default$1.StripTagBody = StripTagBody;
|
1267
|
-
_default$1.stripCommentTag = stripCommentTag;
|
1268
|
-
_default$1.stripBlankChar = stripBlankChar;
|
1269
|
-
_default$1.cssFilter = defaultCSSFilter;
|
1270
|
-
_default$1.getDefaultCSSWhiteList = getDefaultCSSWhiteList;
|
1271
|
-
|
1272
|
-
var parser$1 = {};
|
1273
|
-
|
1274
|
-
/**
|
1275
|
-
* Simple HTML Parser
|
1276
|
-
*
|
1277
|
-
* @author Zongmin Lei<leizongmin@gmail.com>
|
1278
|
-
*/
|
1279
|
-
|
1280
|
-
var _$1 = util;
|
1281
|
-
|
1282
|
-
/**
|
1283
|
-
* get tag name
|
1284
|
-
*
|
1285
|
-
* @param {String} html e.g. '<a hef="#">'
|
1286
|
-
* @return {String}
|
1287
|
-
*/
|
1288
|
-
function getTagName(html) {
|
1289
|
-
var i = _$1.spaceIndex(html);
|
1290
|
-
var tagName;
|
1291
|
-
if (i === -1) {
|
1292
|
-
tagName = html.slice(1, -1);
|
1293
|
-
} else {
|
1294
|
-
tagName = html.slice(1, i + 1);
|
1295
|
-
}
|
1296
|
-
tagName = _$1.trim(tagName).toLowerCase();
|
1297
|
-
if (tagName.slice(0, 1) === "/") tagName = tagName.slice(1);
|
1298
|
-
if (tagName.slice(-1) === "/") tagName = tagName.slice(0, -1);
|
1299
|
-
return tagName;
|
1300
|
-
}
|
1301
|
-
|
1302
|
-
/**
|
1303
|
-
* is close tag?
|
1304
|
-
*
|
1305
|
-
* @param {String} html 如:'<a hef="#">'
|
1306
|
-
* @return {Boolean}
|
1307
|
-
*/
|
1308
|
-
function isClosing(html) {
|
1309
|
-
return html.slice(0, 2) === "</";
|
1310
|
-
}
|
1311
|
-
|
1312
|
-
/**
|
1313
|
-
* parse input html and returns processed html
|
1314
|
-
*
|
1315
|
-
* @param {String} html
|
1316
|
-
* @param {Function} onTag e.g. function (sourcePosition, position, tag, html, isClosing)
|
1317
|
-
* @param {Function} escapeHtml
|
1318
|
-
* @return {String}
|
1319
|
-
*/
|
1320
|
-
function parseTag$1(html, onTag, escapeHtml) {
|
1321
|
-
|
1322
|
-
var rethtml = "";
|
1323
|
-
var lastPos = 0;
|
1324
|
-
var tagStart = false;
|
1325
|
-
var quoteStart = false;
|
1326
|
-
var currentPos = 0;
|
1327
|
-
var len = html.length;
|
1328
|
-
var currentTagName = "";
|
1329
|
-
var currentHtml = "";
|
1330
|
-
|
1331
|
-
chariterator: for (currentPos = 0; currentPos < len; currentPos++) {
|
1332
|
-
var c = html.charAt(currentPos);
|
1333
|
-
if (tagStart === false) {
|
1334
|
-
if (c === "<") {
|
1335
|
-
tagStart = currentPos;
|
1336
|
-
continue;
|
1337
|
-
}
|
1338
|
-
} else {
|
1339
|
-
if (quoteStart === false) {
|
1340
|
-
if (c === "<") {
|
1341
|
-
rethtml += escapeHtml(html.slice(lastPos, currentPos));
|
1342
|
-
tagStart = currentPos;
|
1343
|
-
lastPos = currentPos;
|
1344
|
-
continue;
|
1345
|
-
}
|
1346
|
-
if (c === ">") {
|
1347
|
-
rethtml += escapeHtml(html.slice(lastPos, tagStart));
|
1348
|
-
currentHtml = html.slice(tagStart, currentPos + 1);
|
1349
|
-
currentTagName = getTagName(currentHtml);
|
1350
|
-
rethtml += onTag(
|
1351
|
-
tagStart,
|
1352
|
-
rethtml.length,
|
1353
|
-
currentTagName,
|
1354
|
-
currentHtml,
|
1355
|
-
isClosing(currentHtml)
|
1356
|
-
);
|
1357
|
-
lastPos = currentPos + 1;
|
1358
|
-
tagStart = false;
|
1359
|
-
continue;
|
1360
|
-
}
|
1361
|
-
if (c === '"' || c === "'") {
|
1362
|
-
var i = 1;
|
1363
|
-
var ic = html.charAt(currentPos - i);
|
1364
|
-
|
1365
|
-
while (ic.trim() === "" || ic === "=") {
|
1366
|
-
if (ic === "=") {
|
1367
|
-
quoteStart = c;
|
1368
|
-
continue chariterator;
|
1369
|
-
}
|
1370
|
-
ic = html.charAt(currentPos - ++i);
|
1371
|
-
}
|
1372
|
-
}
|
1373
|
-
} else {
|
1374
|
-
if (c === quoteStart) {
|
1375
|
-
quoteStart = false;
|
1376
|
-
continue;
|
1377
|
-
}
|
1378
|
-
}
|
1379
|
-
}
|
1380
|
-
}
|
1381
|
-
if (lastPos < html.length) {
|
1382
|
-
rethtml += escapeHtml(html.substr(lastPos));
|
1383
|
-
}
|
1384
|
-
|
1385
|
-
return rethtml;
|
1386
|
-
}
|
1387
|
-
|
1388
|
-
var REGEXP_ILLEGAL_ATTR_NAME = /[^a-zA-Z0-9\\_:.-]/gim;
|
1389
|
-
|
1390
|
-
/**
|
1391
|
-
* parse input attributes and returns processed attributes
|
1392
|
-
*
|
1393
|
-
* @param {String} html e.g. `href="#" target="_blank"`
|
1394
|
-
* @param {Function} onAttr e.g. `function (name, value)`
|
1395
|
-
* @return {String}
|
1396
|
-
*/
|
1397
|
-
function parseAttr$1(html, onAttr) {
|
1398
|
-
|
1399
|
-
var lastPos = 0;
|
1400
|
-
var lastMarkPos = 0;
|
1401
|
-
var retAttrs = [];
|
1402
|
-
var tmpName = false;
|
1403
|
-
var len = html.length;
|
1404
|
-
|
1405
|
-
function addAttr(name, value) {
|
1406
|
-
name = _$1.trim(name);
|
1407
|
-
name = name.replace(REGEXP_ILLEGAL_ATTR_NAME, "").toLowerCase();
|
1408
|
-
if (name.length < 1) return;
|
1409
|
-
var ret = onAttr(name, value || "");
|
1410
|
-
if (ret) retAttrs.push(ret);
|
1411
|
-
}
|
1412
|
-
|
1413
|
-
// 逐个分析字符
|
1414
|
-
for (var i = 0; i < len; i++) {
|
1415
|
-
var c = html.charAt(i);
|
1416
|
-
var v, j;
|
1417
|
-
if (tmpName === false && c === "=") {
|
1418
|
-
tmpName = html.slice(lastPos, i);
|
1419
|
-
lastPos = i + 1;
|
1420
|
-
lastMarkPos = html.charAt(lastPos) === '"' || html.charAt(lastPos) === "'" ? lastPos : findNextQuotationMark(html, i + 1);
|
1421
|
-
continue;
|
1422
|
-
}
|
1423
|
-
if (tmpName !== false) {
|
1424
|
-
if (
|
1425
|
-
i === lastMarkPos
|
1426
|
-
) {
|
1427
|
-
j = html.indexOf(c, i + 1);
|
1428
|
-
if (j === -1) {
|
1429
|
-
break;
|
1430
|
-
} else {
|
1431
|
-
v = _$1.trim(html.slice(lastMarkPos + 1, j));
|
1432
|
-
addAttr(tmpName, v);
|
1433
|
-
tmpName = false;
|
1434
|
-
i = j;
|
1435
|
-
lastPos = i + 1;
|
1436
|
-
continue;
|
1437
|
-
}
|
1438
|
-
}
|
1439
|
-
}
|
1440
|
-
if (/\s|\n|\t/.test(c)) {
|
1441
|
-
html = html.replace(/\s|\n|\t/g, " ");
|
1442
|
-
if (tmpName === false) {
|
1443
|
-
j = findNextEqual(html, i);
|
1444
|
-
if (j === -1) {
|
1445
|
-
v = _$1.trim(html.slice(lastPos, i));
|
1446
|
-
addAttr(v);
|
1447
|
-
tmpName = false;
|
1448
|
-
lastPos = i + 1;
|
1449
|
-
continue;
|
1450
|
-
} else {
|
1451
|
-
i = j - 1;
|
1452
|
-
continue;
|
1453
|
-
}
|
1454
|
-
} else {
|
1455
|
-
j = findBeforeEqual(html, i - 1);
|
1456
|
-
if (j === -1) {
|
1457
|
-
v = _$1.trim(html.slice(lastPos, i));
|
1458
|
-
v = stripQuoteWrap(v);
|
1459
|
-
addAttr(tmpName, v);
|
1460
|
-
tmpName = false;
|
1461
|
-
lastPos = i + 1;
|
1462
|
-
continue;
|
1463
|
-
} else {
|
1464
|
-
continue;
|
1465
|
-
}
|
1466
|
-
}
|
1467
|
-
}
|
1468
|
-
}
|
1469
|
-
|
1470
|
-
if (lastPos < html.length) {
|
1471
|
-
if (tmpName === false) {
|
1472
|
-
addAttr(html.slice(lastPos));
|
1473
|
-
} else {
|
1474
|
-
addAttr(tmpName, stripQuoteWrap(_$1.trim(html.slice(lastPos))));
|
1475
|
-
}
|
1476
|
-
}
|
1477
|
-
|
1478
|
-
return _$1.trim(retAttrs.join(" "));
|
1479
|
-
}
|
1480
|
-
|
1481
|
-
function findNextEqual(str, i) {
|
1482
|
-
for (; i < str.length; i++) {
|
1483
|
-
var c = str[i];
|
1484
|
-
if (c === " ") continue;
|
1485
|
-
if (c === "=") return i;
|
1486
|
-
return -1;
|
1487
|
-
}
|
1488
|
-
}
|
1489
|
-
|
1490
|
-
function findNextQuotationMark(str, i) {
|
1491
|
-
for (; i < str.length; i++) {
|
1492
|
-
var c = str[i];
|
1493
|
-
if (c === " ") continue;
|
1494
|
-
if (c === "'" || c === '"') return i;
|
1495
|
-
return -1;
|
1496
|
-
}
|
1497
|
-
}
|
1498
|
-
|
1499
|
-
function findBeforeEqual(str, i) {
|
1500
|
-
for (; i > 0; i--) {
|
1501
|
-
var c = str[i];
|
1502
|
-
if (c === " ") continue;
|
1503
|
-
if (c === "=") return i;
|
1504
|
-
return -1;
|
1505
|
-
}
|
1506
|
-
}
|
1507
|
-
|
1508
|
-
function isQuoteWrapString(text) {
|
1509
|
-
if (
|
1510
|
-
(text[0] === '"' && text[text.length - 1] === '"') ||
|
1511
|
-
(text[0] === "'" && text[text.length - 1] === "'")
|
1512
|
-
) {
|
1513
|
-
return true;
|
1514
|
-
} else {
|
1515
|
-
return false;
|
1516
|
-
}
|
1517
|
-
}
|
1518
|
-
|
1519
|
-
function stripQuoteWrap(text) {
|
1520
|
-
if (isQuoteWrapString(text)) {
|
1521
|
-
return text.substr(1, text.length - 2);
|
1522
|
-
} else {
|
1523
|
-
return text;
|
1524
|
-
}
|
1525
|
-
}
|
1526
|
-
|
1527
|
-
parser$1.parseTag = parseTag$1;
|
1528
|
-
parser$1.parseAttr = parseAttr$1;
|
1529
|
-
|
1530
|
-
/**
|
1531
|
-
* filter xss
|
1532
|
-
*
|
1533
|
-
* @author Zongmin Lei<leizongmin@gmail.com>
|
1534
|
-
*/
|
1535
|
-
|
1536
|
-
var FilterCSS = libExports$1.FilterCSS;
|
1537
|
-
var DEFAULT = _default$1;
|
1538
|
-
var parser = parser$1;
|
1539
|
-
var parseTag = parser.parseTag;
|
1540
|
-
var parseAttr = parser.parseAttr;
|
1541
|
-
var _ = util;
|
1542
|
-
|
1543
|
-
/**
|
1544
|
-
* returns `true` if the input value is `undefined` or `null`
|
1545
|
-
*
|
1546
|
-
* @param {Object} obj
|
1547
|
-
* @return {Boolean}
|
1548
|
-
*/
|
1549
|
-
function isNull(obj) {
|
1550
|
-
return obj === undefined || obj === null;
|
1551
|
-
}
|
1552
|
-
|
1553
|
-
/**
|
1554
|
-
* get attributes for a tag
|
1555
|
-
*
|
1556
|
-
* @param {String} html
|
1557
|
-
* @return {Object}
|
1558
|
-
* - {String} html
|
1559
|
-
* - {Boolean} closing
|
1560
|
-
*/
|
1561
|
-
function getAttrs(html) {
|
1562
|
-
var i = _.spaceIndex(html);
|
1563
|
-
if (i === -1) {
|
1564
|
-
return {
|
1565
|
-
html: "",
|
1566
|
-
closing: html[html.length - 2] === "/",
|
1567
|
-
};
|
1568
|
-
}
|
1569
|
-
html = _.trim(html.slice(i + 1, -1));
|
1570
|
-
var isClosing = html[html.length - 1] === "/";
|
1571
|
-
if (isClosing) html = _.trim(html.slice(0, -1));
|
1572
|
-
return {
|
1573
|
-
html: html,
|
1574
|
-
closing: isClosing,
|
1575
|
-
};
|
1576
|
-
}
|
1577
|
-
|
1578
|
-
/**
|
1579
|
-
* shallow copy
|
1580
|
-
*
|
1581
|
-
* @param {Object} obj
|
1582
|
-
* @return {Object}
|
1583
|
-
*/
|
1584
|
-
function shallowCopyObject(obj) {
|
1585
|
-
var ret = {};
|
1586
|
-
for (var i in obj) {
|
1587
|
-
ret[i] = obj[i];
|
1588
|
-
}
|
1589
|
-
return ret;
|
1590
|
-
}
|
1591
|
-
|
1592
|
-
function keysToLowerCase(obj) {
|
1593
|
-
var ret = {};
|
1594
|
-
for (var i in obj) {
|
1595
|
-
if (Array.isArray(obj[i])) {
|
1596
|
-
ret[i.toLowerCase()] = obj[i].map(function (item) {
|
1597
|
-
return item.toLowerCase();
|
1598
|
-
});
|
1599
|
-
} else {
|
1600
|
-
ret[i.toLowerCase()] = obj[i];
|
1601
|
-
}
|
1602
|
-
}
|
1603
|
-
return ret;
|
1604
|
-
}
|
1605
|
-
|
1606
|
-
/**
|
1607
|
-
* FilterXSS class
|
1608
|
-
*
|
1609
|
-
* @param {Object} options
|
1610
|
-
* whiteList (or allowList), onTag, onTagAttr, onIgnoreTag,
|
1611
|
-
* onIgnoreTagAttr, safeAttrValue, escapeHtml
|
1612
|
-
* stripIgnoreTagBody, allowCommentTag, stripBlankChar
|
1613
|
-
* css{whiteList, onAttr, onIgnoreAttr} `css=false` means don't use `cssfilter`
|
1614
|
-
*/
|
1615
|
-
function FilterXSS(options) {
|
1616
|
-
options = shallowCopyObject(options || {});
|
1617
|
-
|
1618
|
-
if (options.stripIgnoreTag) {
|
1619
|
-
if (options.onIgnoreTag) {
|
1620
|
-
console.error(
|
1621
|
-
'Notes: cannot use these two options "stripIgnoreTag" and "onIgnoreTag" at the same time'
|
1622
|
-
);
|
1623
|
-
}
|
1624
|
-
options.onIgnoreTag = DEFAULT.onIgnoreTagStripAll;
|
1625
|
-
}
|
1626
|
-
if (options.whiteList || options.allowList) {
|
1627
|
-
options.whiteList = keysToLowerCase(options.whiteList || options.allowList);
|
1628
|
-
} else {
|
1629
|
-
options.whiteList = DEFAULT.whiteList;
|
1630
|
-
}
|
1631
|
-
|
1632
|
-
options.onTag = options.onTag || DEFAULT.onTag;
|
1633
|
-
options.onTagAttr = options.onTagAttr || DEFAULT.onTagAttr;
|
1634
|
-
options.onIgnoreTag = options.onIgnoreTag || DEFAULT.onIgnoreTag;
|
1635
|
-
options.onIgnoreTagAttr = options.onIgnoreTagAttr || DEFAULT.onIgnoreTagAttr;
|
1636
|
-
options.safeAttrValue = options.safeAttrValue || DEFAULT.safeAttrValue;
|
1637
|
-
options.escapeHtml = options.escapeHtml || DEFAULT.escapeHtml;
|
1638
|
-
this.options = options;
|
1639
|
-
|
1640
|
-
if (options.css === false) {
|
1641
|
-
this.cssFilter = false;
|
1642
|
-
} else {
|
1643
|
-
options.css = options.css || {};
|
1644
|
-
this.cssFilter = new FilterCSS(options.css);
|
1645
|
-
}
|
1646
|
-
}
|
1647
|
-
|
1648
|
-
/**
|
1649
|
-
* start process and returns result
|
1650
|
-
*
|
1651
|
-
* @param {String} html
|
1652
|
-
* @return {String}
|
1653
|
-
*/
|
1654
|
-
FilterXSS.prototype.process = function (html) {
|
1655
|
-
// compatible with the input
|
1656
|
-
html = html || "";
|
1657
|
-
html = html.toString();
|
1658
|
-
if (!html) return "";
|
1659
|
-
|
1660
|
-
var me = this;
|
1661
|
-
var options = me.options;
|
1662
|
-
var whiteList = options.whiteList;
|
1663
|
-
var onTag = options.onTag;
|
1664
|
-
var onIgnoreTag = options.onIgnoreTag;
|
1665
|
-
var onTagAttr = options.onTagAttr;
|
1666
|
-
var onIgnoreTagAttr = options.onIgnoreTagAttr;
|
1667
|
-
var safeAttrValue = options.safeAttrValue;
|
1668
|
-
var escapeHtml = options.escapeHtml;
|
1669
|
-
var cssFilter = me.cssFilter;
|
1670
|
-
|
1671
|
-
// remove invisible characters
|
1672
|
-
if (options.stripBlankChar) {
|
1673
|
-
html = DEFAULT.stripBlankChar(html);
|
1674
|
-
}
|
1675
|
-
|
1676
|
-
// remove html comments
|
1677
|
-
if (!options.allowCommentTag) {
|
1678
|
-
html = DEFAULT.stripCommentTag(html);
|
1679
|
-
}
|
1680
|
-
|
1681
|
-
// if enable stripIgnoreTagBody
|
1682
|
-
var stripIgnoreTagBody = false;
|
1683
|
-
if (options.stripIgnoreTagBody) {
|
1684
|
-
stripIgnoreTagBody = DEFAULT.StripTagBody(
|
1685
|
-
options.stripIgnoreTagBody,
|
1686
|
-
onIgnoreTag
|
1687
|
-
);
|
1688
|
-
onIgnoreTag = stripIgnoreTagBody.onIgnoreTag;
|
1689
|
-
}
|
1690
|
-
|
1691
|
-
var retHtml = parseTag(
|
1692
|
-
html,
|
1693
|
-
function (sourcePosition, position, tag, html, isClosing) {
|
1694
|
-
var info = {
|
1695
|
-
sourcePosition: sourcePosition,
|
1696
|
-
position: position,
|
1697
|
-
isClosing: isClosing,
|
1698
|
-
isWhite: Object.prototype.hasOwnProperty.call(whiteList, tag),
|
1699
|
-
};
|
1700
|
-
|
1701
|
-
// call `onTag()`
|
1702
|
-
var ret = onTag(tag, html, info);
|
1703
|
-
if (!isNull(ret)) return ret;
|
1704
|
-
|
1705
|
-
if (info.isWhite) {
|
1706
|
-
if (info.isClosing) {
|
1707
|
-
return "</" + tag + ">";
|
1708
|
-
}
|
1709
|
-
|
1710
|
-
var attrs = getAttrs(html);
|
1711
|
-
var whiteAttrList = whiteList[tag];
|
1712
|
-
var attrsHtml = parseAttr(attrs.html, function (name, value) {
|
1713
|
-
// call `onTagAttr()`
|
1714
|
-
var isWhiteAttr = _.indexOf(whiteAttrList, name) !== -1;
|
1715
|
-
var ret = onTagAttr(tag, name, value, isWhiteAttr);
|
1716
|
-
if (!isNull(ret)) return ret;
|
1717
|
-
|
1718
|
-
if (isWhiteAttr) {
|
1719
|
-
// call `safeAttrValue()`
|
1720
|
-
value = safeAttrValue(tag, name, value, cssFilter);
|
1721
|
-
if (value) {
|
1722
|
-
return name + '="' + value + '"';
|
1723
|
-
} else {
|
1724
|
-
return name;
|
1725
|
-
}
|
1726
|
-
} else {
|
1727
|
-
// call `onIgnoreTagAttr()`
|
1728
|
-
ret = onIgnoreTagAttr(tag, name, value, isWhiteAttr);
|
1729
|
-
if (!isNull(ret)) return ret;
|
1730
|
-
return;
|
1731
|
-
}
|
1732
|
-
});
|
1733
|
-
|
1734
|
-
// build new tag html
|
1735
|
-
html = "<" + tag;
|
1736
|
-
if (attrsHtml) html += " " + attrsHtml;
|
1737
|
-
if (attrs.closing) html += " /";
|
1738
|
-
html += ">";
|
1739
|
-
return html;
|
1740
|
-
} else {
|
1741
|
-
// call `onIgnoreTag()`
|
1742
|
-
ret = onIgnoreTag(tag, html, info);
|
1743
|
-
if (!isNull(ret)) return ret;
|
1744
|
-
return escapeHtml(html);
|
1745
|
-
}
|
1746
|
-
},
|
1747
|
-
escapeHtml
|
1748
|
-
);
|
1749
|
-
|
1750
|
-
// if enable stripIgnoreTagBody
|
1751
|
-
if (stripIgnoreTagBody) {
|
1752
|
-
retHtml = stripIgnoreTagBody.remove(retHtml);
|
1753
|
-
}
|
1754
|
-
|
1755
|
-
return retHtml;
|
1756
|
-
};
|
1757
|
-
|
1758
|
-
var xss = FilterXSS;
|
1759
|
-
|
1760
|
-
/**
|
1761
|
-
* xss
|
1762
|
-
*
|
1763
|
-
* @author Zongmin Lei<leizongmin@gmail.com>
|
1764
|
-
*/
|
1765
|
-
|
1766
|
-
(function (module, exports) {
|
1767
|
-
var DEFAULT = _default$1;
|
1768
|
-
var parser = parser$1;
|
1769
|
-
var FilterXSS = xss;
|
1770
|
-
|
1771
|
-
/**
|
1772
|
-
* filter xss function
|
1773
|
-
*
|
1774
|
-
* @param {String} html
|
1775
|
-
* @param {Object} options { whiteList, onTag, onTagAttr, onIgnoreTag, onIgnoreTagAttr, safeAttrValue, escapeHtml }
|
1776
|
-
* @return {String}
|
1777
|
-
*/
|
1778
|
-
function filterXSS(html, options) {
|
1779
|
-
var xss = new FilterXSS(options);
|
1780
|
-
return xss.process(html);
|
1781
|
-
}
|
1782
|
-
|
1783
|
-
exports = module.exports = filterXSS;
|
1784
|
-
exports.filterXSS = filterXSS;
|
1785
|
-
exports.FilterXSS = FilterXSS;
|
1786
|
-
|
1787
|
-
(function () {
|
1788
|
-
for (var i in DEFAULT) {
|
1789
|
-
exports[i] = DEFAULT[i];
|
1790
|
-
}
|
1791
|
-
for (var j in parser) {
|
1792
|
-
exports[j] = parser[j];
|
1793
|
-
}
|
1794
|
-
})();
|
1795
|
-
|
1796
|
-
// using `xss` on the WebWorker, output `filterXSS` to the globals
|
1797
|
-
function isWorkerEnv() {
|
1798
|
-
return (
|
1799
|
-
typeof self !== "undefined" &&
|
1800
|
-
typeof DedicatedWorkerGlobalScope !== "undefined" &&
|
1801
|
-
self instanceof DedicatedWorkerGlobalScope
|
1802
|
-
);
|
1803
|
-
}
|
1804
|
-
if (isWorkerEnv()) {
|
1805
|
-
self.filterXSS = module.exports;
|
1806
|
-
}
|
1807
|
-
} (lib$1, lib$1.exports));
|
1808
|
-
|
1809
|
-
var libExports = lib$1.exports;
|
1810
|
-
|
1811
|
-
/**
|
1812
|
-
* Determine if the value is a plain object.
|
1813
|
-
* @param {*} value The value to check.
|
1814
|
-
* @returns {boolean} Returns `true` if `value` is a plain object, else `false`.
|
1815
|
-
*/
|
1816
|
-
var isPlainObject = function (value) {
|
1817
|
-
if (typeof value !== "object" || value === null) {
|
1818
|
-
return false;
|
1819
|
-
}
|
1820
|
-
if (Object.prototype.toString.call(value) !== "[object Object]") {
|
1821
|
-
return false;
|
1822
|
-
}
|
1823
|
-
var proto = Object.getPrototypeOf(value);
|
1824
|
-
if (proto === null) {
|
1825
|
-
return true;
|
1826
|
-
}
|
1827
|
-
while (Object.getPrototypeOf(proto) !== null) {
|
1828
|
-
proto = Object.getPrototypeOf(proto);
|
1829
|
-
}
|
1830
|
-
return Object.getPrototypeOf(value) === proto;
|
1831
|
-
};
|
1832
|
-
|
1833
|
-
/**
|
1834
|
-
* The Sanitizer Class
|
1835
|
-
*
|
1836
|
-
* @export
|
1837
|
-
* @class Sanitizer
|
1838
|
-
*/
|
1839
|
-
var Sanitizer = /** @class */ (function () {
|
1840
|
-
function Sanitizer(filterOptions, extendDefaults) {
|
1841
|
-
var _this = this;
|
1842
|
-
// Supported HTML Spec: https://doc.arcgis.com/en/arcgis-online/reference/supported-html.htm
|
1843
|
-
this.arcgisWhiteList = {
|
1844
|
-
a: ["href", "style", "target"],
|
1845
|
-
abbr: ["title"],
|
1846
|
-
article: ["style"],
|
1847
|
-
aside: ["style"],
|
1848
|
-
audio: ["autoplay", "controls", "loop", "muted", "preload"],
|
1849
|
-
b: [],
|
1850
|
-
blockquote: ["style"],
|
1851
|
-
br: [],
|
1852
|
-
code: ["style"],
|
1853
|
-
dd: ["style"],
|
1854
|
-
del: ["style"],
|
1855
|
-
details: ["open", "style"],
|
1856
|
-
div: ["align", "aria-hidden", "aria-label", "style"],
|
1857
|
-
dl: ["style"],
|
1858
|
-
dt: ["style"],
|
1859
|
-
em: [],
|
1860
|
-
figcaption: ["style"],
|
1861
|
-
figure: ["style"],
|
1862
|
-
font: ["color", "face", "size", "style"],
|
1863
|
-
footer: ["style"],
|
1864
|
-
h1: ["style"],
|
1865
|
-
h2: ["style"],
|
1866
|
-
h3: ["style"],
|
1867
|
-
h4: ["style"],
|
1868
|
-
h5: ["style"],
|
1869
|
-
h6: ["style"],
|
1870
|
-
header: ["style"],
|
1871
|
-
hr: [],
|
1872
|
-
i: [],
|
1873
|
-
img: ["alt", "border", "height", "src", "style", "width"],
|
1874
|
-
li: [],
|
1875
|
-
main: ["style"],
|
1876
|
-
mark: ["style"],
|
1877
|
-
nav: ["style"],
|
1878
|
-
ol: [],
|
1879
|
-
p: ["style"],
|
1880
|
-
pre: ["style"],
|
1881
|
-
section: ["style"],
|
1882
|
-
source: ["media", "src", "type"],
|
1883
|
-
span: ["aria-hidden", "aria-label", "style"],
|
1884
|
-
strong: [],
|
1885
|
-
sub: ["style"],
|
1886
|
-
summary: ["style"],
|
1887
|
-
sup: ["style"],
|
1888
|
-
table: ["border", "cellpadding", "cellspacing", "height", "style", "width"],
|
1889
|
-
tbody: [],
|
1890
|
-
tr: ["align", "height", "style", "valign"],
|
1891
|
-
td: [
|
1892
|
-
"align",
|
1893
|
-
"colspan",
|
1894
|
-
"height",
|
1895
|
-
"nowrap",
|
1896
|
-
"rowspan",
|
1897
|
-
"style",
|
1898
|
-
"valign",
|
1899
|
-
"width",
|
1900
|
-
],
|
1901
|
-
th: [
|
1902
|
-
"align",
|
1903
|
-
"colspan",
|
1904
|
-
"height",
|
1905
|
-
"nowrap",
|
1906
|
-
"rowspan",
|
1907
|
-
"style",
|
1908
|
-
"valign",
|
1909
|
-
"width",
|
1910
|
-
],
|
1911
|
-
time: ["style"],
|
1912
|
-
u: [],
|
1913
|
-
ul: [],
|
1914
|
-
video: [
|
1915
|
-
"autoplay",
|
1916
|
-
"controls",
|
1917
|
-
"height",
|
1918
|
-
"loop",
|
1919
|
-
"muted",
|
1920
|
-
"poster",
|
1921
|
-
"preload",
|
1922
|
-
"width",
|
1923
|
-
],
|
1924
|
-
};
|
1925
|
-
this.arcgisCSSWhiteList = __assign(__assign({}, libExports.getDefaultCSSWhiteList()), { "align-items": true, "align-self": true, "flex": true, "flex-basis": true, "flex-direction": true, "flex-flow": true, "flex-grow": true, "flex-shrink": true, "flex-wrap": true, "float": true, "gap": true, "grid": true, "grid-area": true, "grid-auto-columns": true, "grid-auto-flow": true, "grid-auto-rows": true, "grid-column": true, "grid-column-end": true, "grid-column-start": true, "grid-row": true, "grid-row-end": true, "grid-row-start": true, "grid-template": true, "grid-template-areas": true, "grid-template-columns": true, "grid-template-rows": true, "justify-content": true, "justify-items": true, "justify-self": true, "line-height": true, "overflow": true });
|
1926
|
-
this.allowedProtocols = [
|
1927
|
-
"http",
|
1928
|
-
"https",
|
1929
|
-
"mailto",
|
1930
|
-
"iform",
|
1931
|
-
"tel",
|
1932
|
-
"flow",
|
1933
|
-
"lfmobile",
|
1934
|
-
"arcgis-navigator",
|
1935
|
-
"arcgis-appstudio-player",
|
1936
|
-
"arcgis-survey123",
|
1937
|
-
"arcgis-collector",
|
1938
|
-
"arcgis-workforce",
|
1939
|
-
"arcgis-explorer",
|
1940
|
-
"arcgis-trek2there",
|
1941
|
-
"arcgis-quickcapture",
|
1942
|
-
"mspbi",
|
1943
|
-
"comgooglemaps",
|
1944
|
-
"pdfefile",
|
1945
|
-
"pdfehttp",
|
1946
|
-
"pdfehttps",
|
1947
|
-
"boxapp",
|
1948
|
-
"boxemm",
|
1949
|
-
"awb",
|
1950
|
-
"awbs",
|
1951
|
-
"gropen",
|
1952
|
-
"radarscope",
|
1953
|
-
];
|
1954
|
-
this.arcgisFilterOptions = {
|
1955
|
-
allowCommentTag: true,
|
1956
|
-
safeAttrValue: function (tag, name, value, cssFilter) {
|
1957
|
-
// Take over safe attribute filtering for `a` `href`, `img` `src`,
|
1958
|
-
// and `source` `src` attributes, otherwise pass onto the
|
1959
|
-
// default `XSS.safeAttrValue` method.
|
1960
|
-
if ((tag === "a" && name === "href") ||
|
1961
|
-
((tag === "img" || tag === "source") && name === "src")) {
|
1962
|
-
return _this.sanitizeUrl(value);
|
1963
|
-
}
|
1964
|
-
return libExports.safeAttrValue(tag, name, value, cssFilter);
|
1965
|
-
},
|
1966
|
-
};
|
1967
|
-
this._entityMap = {
|
1968
|
-
"&": "8",
|
1969
|
-
"<": "<",
|
1970
|
-
">": ">",
|
1971
|
-
'"': """,
|
1972
|
-
"'": "'",
|
1973
|
-
"/": "/",
|
1974
|
-
};
|
1975
|
-
var xssFilterOptions;
|
1976
|
-
if (filterOptions && !extendDefaults) {
|
1977
|
-
// Override the defaults
|
1978
|
-
xssFilterOptions = filterOptions;
|
1979
|
-
}
|
1980
|
-
else if (filterOptions && extendDefaults) {
|
1981
|
-
// Extend the defaults
|
1982
|
-
xssFilterOptions = Object.create(this.arcgisFilterOptions);
|
1983
|
-
xssFilterOptions.css = { whiteList: this.arcgisCSSWhiteList };
|
1984
|
-
Object.keys(filterOptions).forEach(function (key) {
|
1985
|
-
if (key === "whiteList") {
|
1986
|
-
// Extend the whitelist by concatenating arrays
|
1987
|
-
xssFilterOptions.whiteList = _this._extendObjectOfArrays([
|
1988
|
-
_this.arcgisWhiteList,
|
1989
|
-
filterOptions.whiteList || {},
|
1990
|
-
]);
|
1991
|
-
}
|
1992
|
-
else if (key === "css") {
|
1993
|
-
var cssExtensions_1 = filterOptions.css.whiteList;
|
1994
|
-
if (cssExtensions_1 != null && filterOptions.css instanceof Object) {
|
1995
|
-
Object.keys(cssExtensions_1).forEach(function (attr) {
|
1996
|
-
return (xssFilterOptions.css.whiteList[attr] =
|
1997
|
-
cssExtensions_1[attr]);
|
1998
|
-
});
|
1999
|
-
}
|
2000
|
-
}
|
2001
|
-
else {
|
2002
|
-
xssFilterOptions[key] = filterOptions[key];
|
2003
|
-
}
|
2004
|
-
});
|
2005
|
-
}
|
2006
|
-
else {
|
2007
|
-
// Only use the defaults
|
2008
|
-
xssFilterOptions = Object.create(this.arcgisFilterOptions);
|
2009
|
-
xssFilterOptions.whiteList = this.arcgisWhiteList;
|
2010
|
-
xssFilterOptions.css = { whiteList: this.arcgisCSSWhiteList };
|
2011
|
-
}
|
2012
|
-
this.xssFilterOptions = xssFilterOptions;
|
2013
|
-
// Make this readable to tests
|
2014
|
-
this._xssFilter = new libExports.FilterXSS(xssFilterOptions);
|
2015
|
-
}
|
2016
|
-
/**
|
2017
|
-
* Sanitizes value to remove invalid HTML tags.
|
2018
|
-
*
|
2019
|
-
* Note: If the value passed does not contain a valid JSON data type (String,
|
2020
|
-
* Number, JSON Object, Array, Boolean, or null), the value will be nullified.
|
2021
|
-
*
|
2022
|
-
* @param {any} value The value to sanitize.
|
2023
|
-
* @returns {any} The sanitized value.
|
2024
|
-
* @memberof Sanitizer
|
2025
|
-
*/
|
2026
|
-
Sanitizer.prototype.sanitize = function (value, options) {
|
2027
|
-
if (options === void 0) { options = {}; }
|
2028
|
-
switch (typeof value) {
|
2029
|
-
case "number":
|
2030
|
-
if (isNaN(value) || !isFinite(value)) {
|
2031
|
-
return null;
|
2032
|
-
}
|
2033
|
-
return value;
|
2034
|
-
case "boolean":
|
2035
|
-
return value;
|
2036
|
-
case "string":
|
2037
|
-
return this._xssFilter.process(value);
|
2038
|
-
case "object":
|
2039
|
-
return this._iterateOverObject(value, options);
|
2040
|
-
default:
|
2041
|
-
if (options.allowUndefined && typeof value === "undefined") {
|
2042
|
-
return;
|
2043
|
-
}
|
2044
|
-
return null;
|
2045
|
-
}
|
2046
|
-
};
|
2047
|
-
/**
|
2048
|
-
* Sanitizes a URL string following the allowed protocols and sanitization rules.
|
2049
|
-
*
|
2050
|
-
* @param {string} value The URL to sanitize.
|
2051
|
-
* @param {{ isProtocolRequired: boolean }} options Configuration options for URL checking.
|
2052
|
-
* @returns {string} The sanitized URL if it's valid, or an empty string if the URL is invalid.
|
2053
|
-
*/
|
2054
|
-
Sanitizer.prototype.sanitizeUrl = function (value, options) {
|
2055
|
-
var _a = (options !== null && options !== void 0 ? options : {}).isProtocolRequired, isProtocolRequired = _a === void 0 ? true : _a;
|
2056
|
-
var protocol = this._trim(value.substring(0, value.indexOf(":")));
|
2057
|
-
var isRootUrl = value === "/";
|
2058
|
-
var isUrlFragment = /^#/.test(value);
|
2059
|
-
var isValidProtocol = protocol && this.allowedProtocols.indexOf(protocol.toLowerCase()) > -1;
|
2060
|
-
if (isRootUrl || isUrlFragment || isValidProtocol) {
|
2061
|
-
return libExports.escapeAttrValue(value);
|
2062
|
-
}
|
2063
|
-
if (!protocol && !isProtocolRequired) {
|
2064
|
-
return libExports.escapeAttrValue("https://".concat(value));
|
2065
|
-
}
|
2066
|
-
return "";
|
2067
|
-
};
|
2068
|
-
/**
|
2069
|
-
* Sanitizes an HTML attribute value.
|
2070
|
-
*
|
2071
|
-
* @param {string} tag The tagname of the HTML element.
|
2072
|
-
* @param {string} attribute The attribute name of the HTML element.
|
2073
|
-
* @param {string} value The raw value to be used for the HTML attribute value.
|
2074
|
-
* @param {XSS.ICSSFilter} [cssFilter] The CSS filter to be used.
|
2075
|
-
* @returns {string} The sanitized attribute value.
|
2076
|
-
* @memberof Sanitizer
|
2077
|
-
*/
|
2078
|
-
Sanitizer.prototype.sanitizeHTMLAttribute = function (tag, attribute, value, cssFilter) {
|
2079
|
-
// use the custom safeAttrValue function if provided
|
2080
|
-
if (typeof this.xssFilterOptions.safeAttrValue === "function") {
|
2081
|
-
return this.xssFilterOptions.safeAttrValue(tag, attribute, value,
|
2082
|
-
// @ts-expect-error safeAttrValue does handle undefined cssFilter
|
2083
|
-
cssFilter);
|
2084
|
-
}
|
2085
|
-
// otherwise use the default
|
2086
|
-
// @ts-ignore safeAttrValue does handle undefined cssFilter
|
2087
|
-
return libExports.safeAttrValue(tag, attribute, value, cssFilter);
|
2088
|
-
};
|
2089
|
-
/**
|
2090
|
-
* Checks if a value only contains valid HTML.
|
2091
|
-
*
|
2092
|
-
* @param {any} value The value to validate.
|
2093
|
-
* @returns {boolean}
|
2094
|
-
* @memberof Sanitizer
|
2095
|
-
*/
|
2096
|
-
Sanitizer.prototype.validate = function (value, options) {
|
2097
|
-
if (options === void 0) { options = {}; }
|
2098
|
-
var sanitized = this.sanitize(value, options);
|
2099
|
-
return {
|
2100
|
-
isValid: value === sanitized,
|
2101
|
-
sanitized: sanitized,
|
2102
|
-
};
|
2103
|
-
};
|
2104
|
-
/**
|
2105
|
-
* Encodes the following characters, `& < > \" ' /` to their hexadecimal HTML entity code.
|
2106
|
-
* Example: "·" => "8middot;"
|
2107
|
-
*
|
2108
|
-
* @param {string} value The value to encode.
|
2109
|
-
* @returns {string} The encoded string value.
|
2110
|
-
* @memberof Sanitizer
|
2111
|
-
*/
|
2112
|
-
Sanitizer.prototype.encodeHTML = function (value) {
|
2113
|
-
var _this = this;
|
2114
|
-
return String(value).replace(/[&<>"'\/]/g, function (s) {
|
2115
|
-
return _this._entityMap[s];
|
2116
|
-
});
|
2117
|
-
};
|
2118
|
-
/**
|
2119
|
-
* Encodes all non-alphanumeric ASCII characters to their hexadecimal HTML entity codes.
|
2120
|
-
* Example: "alert(document.cookie)" => "alert(document.cookie)"
|
2121
|
-
*
|
2122
|
-
* @param {string} value The value to encode.
|
2123
|
-
* @returns {string} The encoded string value.
|
2124
|
-
* @memberof Sanitizer
|
2125
|
-
*/
|
2126
|
-
Sanitizer.prototype.encodeAttrValue = function (value) {
|
2127
|
-
var alphanumericRE = /^[a-zA-Z0-9]$/;
|
2128
|
-
return String(value).replace(/[\x00-\xFF]/g, function (c, idx) {
|
2129
|
-
return !alphanumericRE.test(c)
|
2130
|
-
? "&#x".concat(Number(value.charCodeAt(idx)).toString(16), ";")
|
2131
|
-
: c;
|
2132
|
-
});
|
2133
|
-
};
|
2134
|
-
/**
|
2135
|
-
* Extends an object of arrays by by concatenating arrays of the same object
|
2136
|
-
* keys. If the if the previous key's value is not an array, the next key's
|
2137
|
-
* value will replace the previous key. This method is used for extending the
|
2138
|
-
* whiteList in the XSS filter options.
|
2139
|
-
*
|
2140
|
-
* @private
|
2141
|
-
* @param {Array<{}>} objects An array of objects.
|
2142
|
-
* @returns {{}} The extended object.
|
2143
|
-
* @memberof Sanitizer
|
2144
|
-
*/
|
2145
|
-
Sanitizer.prototype._extendObjectOfArrays = function (objects) {
|
2146
|
-
var finalObj = {};
|
2147
|
-
objects.forEach(function (obj) {
|
2148
|
-
Object.keys(obj).forEach(function (key) {
|
2149
|
-
if (Array.isArray(obj[key]) && Array.isArray(finalObj[key])) {
|
2150
|
-
finalObj[key] = finalObj[key].concat(obj[key]);
|
2151
|
-
}
|
2152
|
-
else {
|
2153
|
-
finalObj[key] = obj[key];
|
2154
|
-
}
|
2155
|
-
});
|
2156
|
-
});
|
2157
|
-
return finalObj;
|
2158
|
-
};
|
2159
|
-
/**
|
2160
|
-
* Iterate over a plain object or array to deeply sanitize each value.
|
2161
|
-
*
|
2162
|
-
* @private
|
2163
|
-
* @param {object} obj The object to iterate over.
|
2164
|
-
* @returns {(object | null)} The sanitized object.
|
2165
|
-
* @memberof Sanitizer
|
2166
|
-
*/
|
2167
|
-
Sanitizer.prototype._iterateOverObject = function (obj, options) {
|
2168
|
-
var _this = this;
|
2169
|
-
if (options === void 0) { options = {}; }
|
2170
|
-
try {
|
2171
|
-
var hasChanged_1 = false;
|
2172
|
-
var changedObj = void 0;
|
2173
|
-
if (Array.isArray(obj)) {
|
2174
|
-
changedObj = obj.reduce(function (prev, value) {
|
2175
|
-
var validation = _this.validate(value, options);
|
2176
|
-
if (validation.isValid) {
|
2177
|
-
return prev.concat([value]);
|
2178
|
-
}
|
2179
|
-
else {
|
2180
|
-
hasChanged_1 = true;
|
2181
|
-
return prev.concat([validation.sanitized]);
|
2182
|
-
}
|
2183
|
-
}, []);
|
2184
|
-
}
|
2185
|
-
else if (!isPlainObject(obj)) {
|
2186
|
-
if (options.allowUndefined && typeof obj === "undefined") {
|
2187
|
-
return;
|
2188
|
-
}
|
2189
|
-
return null;
|
2190
|
-
}
|
2191
|
-
else {
|
2192
|
-
var keys = Object.keys(obj);
|
2193
|
-
changedObj = keys.reduce(function (prev, key) {
|
2194
|
-
var value = obj[key];
|
2195
|
-
var validation = _this.validate(value, options);
|
2196
|
-
if (validation.isValid) {
|
2197
|
-
prev[key] = value;
|
2198
|
-
}
|
2199
|
-
else {
|
2200
|
-
hasChanged_1 = true;
|
2201
|
-
prev[key] = validation.sanitized;
|
2202
|
-
}
|
2203
|
-
return prev;
|
2204
|
-
}, {});
|
2205
|
-
}
|
2206
|
-
if (hasChanged_1) {
|
2207
|
-
return changedObj;
|
2208
|
-
}
|
2209
|
-
return obj;
|
2210
|
-
}
|
2211
|
-
catch (err) {
|
2212
|
-
return null;
|
2213
|
-
}
|
2214
|
-
};
|
2215
|
-
/**
|
2216
|
-
* Trim whitespace from the start and ends of a string.
|
2217
|
-
* @param {string} val The string to trim.
|
2218
|
-
* @returns {string} The trimmed string.
|
2219
|
-
*/
|
2220
|
-
Sanitizer.prototype._trim = function (val) {
|
2221
|
-
// @ts-ignore This is used by Jest,
|
2222
|
-
// but TypeScript errors since it assumes `trim` is always available.
|
2223
|
-
return String.prototype.trim
|
2224
|
-
? val.trim()
|
2225
|
-
: val.replace(/(^\s*)|(\s*$)/g, "");
|
2226
|
-
};
|
2227
|
-
return Sanitizer;
|
2228
|
-
}());
|
2229
|
-
|
2230
82
|
/*
|
2231
83
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
2232
84
|
See https://js.arcgis.com/4.31/esri/copyright.txt for details.
|
@@ -2399,7 +251,7 @@ globalScripts();
|
|
2399
251
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
2400
252
|
See https://js.arcgis.com/4.31/esri/copyright.txt for details.
|
2401
253
|
*/
|
2402
|
-
let c$2;function n$3(){try{getAssetPath(".");}catch{setAssetPath(_
|
254
|
+
let c$2;function n$3(){try{getAssetPath(".");}catch{setAssetPath(_(n$d(c$2)));}}function r$2(t){const o=[];for(const s of Object.keys(t))customElements.get(`calcite-${s}`)||o.push(t[s]?.());return o.length>0?Promise.all(o):null}c$2="components/assets";
|
2403
255
|
|
2404
256
|
/*
|
2405
257
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
@@ -2471,7 +323,7 @@ let i=class extends f$6{constructor(o){super(o),this.adminTokenServiceUrl=null,t
|
|
2471
323
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
2472
324
|
See https://js.arcgis.com/4.31/esri/copyright.txt for details.
|
2473
325
|
*/
|
2474
|
-
const R={},C=e=>{const t=new x$3(e.owningSystemUrl).host,r=new x$3(e.server).host,s=/.+\.arcgis\.com$/i;return s.test(t)&&s.test(r)},D=(e,t)=>!!(C(e)&&t&&t.some((t=>t.test(e.server))));let b=null,q=null;try{b=window.localStorage,q=window.sessionStorage;}catch{}class j extends o$6{constructor(){super(),this._portalConfig=globalThis.esriGeowConfig,this.serverInfos=[],this.oAuthInfos=[],this.credentials=[],this._soReqs=[],this._xoReqs=[],this._portals=[],this._defaultOAuthInfo=null,this._defaultTokenValidity=60,this.dialog=null,this.tokenValidity=null,this.normalizeWebTierAuth=!1,this._appOrigin="null"!==window.origin?window.origin:window.location.origin,this._appUrlObj=I(window.location.href),this._busy=null,this._rejectOnPersistedPageShow=!1,this._oAuthLocationParams=null,this._gwTokenUrl="/sharing/rest/generateToken",this._agsRest="/rest/services",this._agsPortal=/\/sharing(\/|$)/i,this._agsAdmin=/(https?:\/\/[^/]+\/[^/]+)\/admin\/?(\/.*)?$/i,this._adminSvcs=/\/rest\/admin\/services(\/|$)/i,this._gwDomains=[{regex:/^https?:\/\/www\.arcgis\.com/i,customBaseUrl:"maps.arcgis.com",tokenServiceUrl:"https://www.arcgis.com/sharing/rest/generateToken"},{regex:/^https?:\/\/(?:dev|[a-z\d-]+\.mapsdev)\.arcgis\.com/i,customBaseUrl:"mapsdev.arcgis.com",tokenServiceUrl:"https://dev.arcgis.com/sharing/rest/generateToken"},{regex:/^https?:\/\/(?:devext|[a-z\d-]+\.mapsdevext)\.arcgis\.com/i,customBaseUrl:"mapsdevext.arcgis.com",tokenServiceUrl:"https://devext.arcgis.com/sharing/rest/generateToken"},{regex:/^https?:\/\/(?:qaext|[a-z\d-]+\.mapsqa)\.arcgis\.com/i,customBaseUrl:"mapsqa.arcgis.com",tokenServiceUrl:"https://qaext.arcgis.com/sharing/rest/generateToken"},{regex:/^https?:\/\/[a-z\d-]+\.maps\.arcgis\.com/i,customBaseUrl:"maps.arcgis.com",tokenServiceUrl:"https://www.arcgis.com/sharing/rest/generateToken"}],this._legacyFed=[],this._regexSDirUrl=/http.+\/rest\/services\/?/gi,this._regexServerType=/(\/(FeatureServer|GPServer|GeoDataServer|GeocodeServer|GeoenrichmentServer|GeometryServer|GlobeServer|ImageServer|KnowledgeGraphServer|MapServer|MissionServer|MobileServer|NAServer|NetworkDiagramServer|OGCFeatureServer|ParcelFabricServer|RelationalCatalogServer|SceneServer|StreamServer|UtilityNetworkServer|ValidationServer|VectorTileServer|VersionManagementServer|VideoServer)).*/gi,this._gwUser=/http.+\/users\/([^/]+).*/i,this._gwItem=/http.+\/items\/([^/]+).*/i,this._gwGroup=/http.+\/groups\/([^/]+).*/i,this._rePortalTokenSvc=/\/sharing(\/rest)?\/generatetoken/i,this._createDefaultOAuthInfo=!0,this._hasTestedIfAppIsOnPortal=!1,this._getPlatformSelfError=null,this._getOAuthLocationParams(),window.addEventListener("pageshow",(e=>{this._pageShowHandler(e);}));}registerServers(e){const t=this.serverInfos;t?(e=e.filter((e=>!this.findServerInfo(e.server))),this.serverInfos=t.concat(e)):this.serverInfos=e,e.forEach((e=>{e.owningSystemUrl&&this._portals.push(e.owningSystemUrl),e.hasPortal&&this._portals.push(e.server);}));}registerOAuthInfos(e){const t=this.oAuthInfos;if(t){for(const r of e){const e=this.findOAuthInfo(r.portalUrl);e&&t.splice(t.indexOf(e),1);}this.oAuthInfos=t.concat(e);}else this.oAuthInfos=e;}registerToken(e){e={...e};const t=this._sanitizeUrl(e.server),r=this._isServerRsrc(t);let s,i=this.findServerInfo(t),o=!0;i||(i=new s$1,i.server=this._getServerInstanceRoot(t),r?i.hasServer=!0:(i.tokenServiceUrl=this._getTokenSvcUrl(t),i.hasPortal=!0),this.registerServers([i])),s=this._findCredential(t),s?(delete e.server,Object.assign(s,e),o=!1):(s=new E({userId:e.userId,server:i.server??void 0,token:e.token,expires:e.expires,ssl:e.ssl,scope:r?"server":"portal"}),s.resources=[t],this.credentials.push(s)),s.emitTokenChange(!1),o||s.refreshServerTokens();}toJSON(){return l$6({serverInfos:this.serverInfos.map((e=>e.toJSON())),oAuthInfos:this.oAuthInfos.map((e=>e.toJSON())),credentials:this.credentials.map((e=>e.toJSON()))})}initialize(e){if(!e)return;"string"==typeof e&&(e=JSON.parse(e));const t=e.serverInfos,r=e.oAuthInfos,s=e.credentials;if(t){const e=[];t.forEach((t=>{t.server&&t.tokenServiceUrl&&e.push(t.declaredClass?t:new s$1(t));})),e.length&&this.registerServers(e);}if(r){const e=[];r.forEach((t=>{t.appId&&e.push(t.declaredClass?t:new i$1(t));})),e.length&&this.registerOAuthInfos(e);}s&&s.forEach((e=>{e.server&&e.token&&e.expires&&e.expires>Date.now()&&((e=e.declaredClass?e:new E(e)).emitTokenChange(),this.credentials.push(e));}));}findServerInfo(e){let t;e=this._sanitizeUrl(e);for(const r of this.serverInfos)if(this._hasSameServerInstance(r.server,e)){t=r;break}return t}findOAuthInfo(e){let t;e=this._sanitizeUrl(e);for(const r of this.oAuthInfos)if(this._hasSameServerInstance(r.portalUrl,e)){t=r;break}return t}findCredential(e,t){if(!e)return;let r;e=this._sanitizeUrl(e);const s=this._isServerRsrc(e)?"server":"portal";if(t){for(const i of this.credentials)if(this._hasSameServerInstance(i.server,e)&&t===i.userId&&i.scope===s){r=i;break}}else for(const i of this.credentials)if(this._hasSameServerInstance(i.server,e)&&-1!==this._getIdenticalSvcIdx(e,i)&&i.scope===s){r=i;break}return r}getCredential(e,t){let r,s,o=!0;t&&(r=!!t.token,s=t.error,o=!1!==t.prompt),t={...t},e=this._sanitizeUrl(e);const n=new AbortController,a=L$1();if(t.signal&&m$5(t.signal,(()=>{n.abort();})),m$5(n,(()=>{a.reject(new s$a("identity-manager:user-aborted","ABORTED"));})),c$7(n))return a.promise;t.signal=n.signal;const h=this._isAdminResource(e),u=r?this.findCredential(e):null;let _;if(u&&s&&s.details&&498===s.details.httpStatus)u.destroy();else if(u)return _=new s$a("identity-manager:not-authorized","You are currently signed in as: '"+u.userId+"'. You do not have access to this resource: "+e,{error:s}),a.reject(_),a.promise;const f=this._findCredential(e,t);if(f)return a.resolve(f),a.promise;let g=this.findServerInfo(e);if(g)!g.hasPortal&&g.server&&g.owningSystemUrl&&this._hasSameServerInstance(g.server,g.owningSystemUrl)&&(g.hasPortal=!0),!g.hasServer&&this._isServerRsrc(e)&&(g._restInfoPms=this._getTokenSvcUrl(e),g.hasServer=!0);else {const t=this._getTokenSvcUrl(e);if(!t)return _=new s$a("identity-manager:unknown-resource","Unknown resource - could not find token service endpoint."),a.reject(_),a.promise;g=new s$1,g.server=this._getServerInstanceRoot(e),"string"==typeof t?(g.tokenServiceUrl=t,g.hasPortal=!0):(g._restInfoPms=t,g.hasServer=!0),this.registerServers([g]);}return g.hasPortal&&void 0===g._selfReq&&(o||F(g.tokenServiceUrl,this._appOrigin)||this._gwDomains.some((e=>e.tokenServiceUrl===g.tokenServiceUrl)))&&(g._selfReq={owningTenant:t?.owningTenant,selfDfd:this._getPortalSelf(g.tokenServiceUrl.replace(this._rePortalTokenSvc,"/sharing/rest/portals/self"),e)}),this._enqueue(e,g,t,a,h)}getResourceName(e){return this._isRESTService(e)?e.replace(this._regexSDirUrl,"").replace(this._regexServerType,"")||"":this._gwUser.test(e)&&e.replace(this._gwUser,"$1")||this._gwItem.test(e)&&e.replace(this._gwItem,"$1")||this._gwGroup.test(e)&&e.replace(this._gwGroup,"$1")||""}generateToken(e,t,r){const o=this._rePortalTokenSvc.test(e.tokenServiceUrl),n=new x$3(this._appOrigin),a=e.shortLivedTokenValidity;let h,l,c,d,u,f,g,m;t&&(m=this.tokenValidity||a||this._defaultTokenValidity,m>a&&a>0&&(m=a)),r&&(h=r.isAdmin,l=r.serverUrl,c=r.token,f=r.signal,g=r.ssl,e.customParameters=r.customParameters),h?d=e.adminTokenServiceUrl:(d=e.tokenServiceUrl,u=new x$3(d.toLowerCase()),e.webTierAuth&&r?.serverUrl&&!g&&"http"===n.scheme&&(F(n.uri,d,!0)||"https"===u.scheme&&n.host===u.host&&"7080"===n.port&&"7443"===u.port)&&(d=d.replace(/^https:/i,"http:").replace(/:7443/i,":7080")));const v={query:{request:"getToken",username:t?.username,password:t?.password,serverUrl:l,token:c,expiration:m,referer:h||o?this._appOrigin:null,client:h?"referer":null,f:"json",...e.customParameters},method:"post",authMode:"anonymous",useProxy:this._useProxy(e,r),signal:f,...r?.ioArgs};o||(v.withCredentials=!1);return U$1(d,v).then((r=>{const s=r.data;if(!s?.token)return new s$a("identity-manager:authentication-failed","Unable to generate token");const o=e.server;return R[o]||(R[o]={}),t&&(R[o][t.username]=t.password),s.validity=m,s}))}isBusy(){return !!this._busy}async checkSignInStatus(e){return (await this.checkAppAccess(e,"")).credential}checkAppAccess(e,t,r){let o=!1;return this.getCredential(e,{prompt:!1}).then((n=>{let a;const h={f:"json"};if("portal"===n.scope)if(t&&(this._doPortalSignIn(e)||r?.force))a=n.server+"/sharing/rest/oauth2/validateAppAccess",h.client_id=t;else {if(!n.token)return {credential:n};a=n.server+"/sharing/rest";}else {if(!n.token)return {credential:n};a=n.server+"/rest/services";}return n.token&&(h.token=n.token),U$1(a,{query:h,authMode:"anonymous"}).then((e=>{if(!1===e.data.valid)throw new s$a("identity-manager:not-authorized",`You are currently signed in as: '${n.userId}'.`,e.data);return o=!!e.data.viewOnlyUserTypeApp,{credential:n}})).catch((e=>{if("identity-manager:not-authorized"===e.name)throw e;const t=e.details?.httpStatus;if(498===t)throw n.destroy(),new s$a("identity-manager:not-authenticated","User is not signed in.");if(400===t)throw new s$a("identity-manager:invalid-request");return {credential:n}}))})).then((e=>({credential:e.credential,viewOnly:o})))}setOAuthResponseHash(e){e&&("#"===e.charAt(0)&&(e=e.slice(1)),this._processOAuthPopupParams(A$4(e)));}setOAuthRedirectionHandler(e){this._oAuthRedirectFunc=e;}setProtocolErrorHandler(e){this._protocolFunc=e;}signIn(e,t,r={}){const s=L$1(),o=()=>{h$1?.remove(),d?.remove(),this.dialog?.destroy(),this.dialog=h$1=d=null;},n=()=>{o(),this._oAuthDfd=null,s.reject(new s$a("identity-manager:user-aborted","ABORTED"));};r.signal&&m$5(r.signal,(()=>{n();}));const a=new h({open:!0,resource:this.getResourceName(e),server:t.server});this.dialog=a,this.emit("dialog-create");let h$1=a.on("cancel",n),d=a.on("submit",(e=>{this.generateToken(t,e,{isAdmin:r.isAdmin,signal:r.signal}).then((i=>{o();const n=new E({userId:e.username,server:t.server??void 0,token:i.token,expires:null!=i.expires?Number(i.expires):null,ssl:!!i.ssl,isAdmin:r.isAdmin,validity:i.validity});s.resolve(n);})).catch((e=>{a.error=e,a.signingIn=!1;}));}));return s.promise}oAuthSignIn(e,t,r,s){this._oAuthDfd=L$1();const o=this._oAuthDfd;let n;s?.signal&&m$5(s.signal,(()=>{const e=this._oAuthDfd&&this._oAuthDfd.oAuthWin_;e&&!e.closed?e.close():this.dialog&&u();})),o.resUrl_=e,o.sinfo_=t,o.oinfo_=r;const a=r._oAuthCred;if(a.storage&&("authorization-code"===r.flowType||"auto"===r.flowType&&t.currentVersion>=8.4)){let e=crypto.getRandomValues(new Uint8Array(32));n=et(e),a.codeVerifier=n,e=crypto.getRandomValues(new Uint8Array(32)),a.stateUID=et(e),a.save()||(a.codeVerifier=n=null);}else a.codeVerifier=null;let h$1,d;this._getCodeChallenge(n).then((i=>{const o=!s||!1!==s.oAuthPopupConfirmation;if(!r.popup||!o)return void this._doOAuthSignIn(e,t,r,i);const n=new h({oAuthPrompt:!0,server:t.server,open:!0});this.dialog=n,this.emit("dialog-create"),h$1=n.on("cancel",u),d=n.on("submit",(()=>{p(),this._doOAuthSignIn(e,t,r,i);}));}));const u=()=>{p(),this._oAuthDfd=null,o.reject(new s$a("identity-manager:user-aborted","ABORTED"));},p=()=>{h$1?.remove(),d?.remove(),this.dialog?.destroy(),this.dialog=null;};return o.promise}destroyCredentials(){if(this.credentials){this.credentials.slice().forEach((e=>{e.destroy();}));}this.emit("credentials-destroy");}enablePostMessageAuth(e="https://www.arcgis.com/sharing/rest"){this._postMessageAuthHandle&&this._postMessageAuthHandle.remove(),this._postMessageAuthHandle=o$8(window,"message",(t=>{if((t.origin===this._appOrigin||t.origin.endsWith(".arcgis.com"))&&"arcgis:auth:requestCredential"===t.data?.type){const r=t.source;this.getCredential(e).then((e=>{r.postMessage({type:"arcgis:auth:credential",credential:{expires:e.expires,server:e.server,ssl:e.ssl,token:e.token,userId:e.userId}},t.origin);})).catch((e=>{r.postMessage({type:"arcgis:auth:error",error:{name:e.name,message:e.message}},t.origin);}));}}));}disablePostMessageAuth(){this._postMessageAuthHandle&&(this._postMessageAuthHandle.remove(),this._postMessageAuthHandle=null);}_getOAuthLocationParams(){let e=window.location.hash;if(e){"#"===e.charAt(0)&&(e=e.slice(1));const t=A$4(e);let r=!1;if(t.access_token&&t.expires_in&&t.state&&t.hasOwnProperty("username"))try{t.state=JSON.parse(t.state),t.state.portalUrl&&(this._oAuthLocationParams=t,r=!0);}catch{}else if(t.error&&t.error_description&&(console.log("IdentityManager OAuth Error: ",t.error," - ",t.error_description),"access_denied"===t.error&&(r=!0,t.state)))try{t.state=JSON.parse(t.state);}catch{}r&&(window.location.hash=t.state?.hash||"");}let t=window.location.search;if(t){"?"===t.charAt(0)&&(t=t.slice(1));const e=A$4(t);let r=!1;if(e.code&&e.state)try{e.state=JSON.parse(e.state),e.state.portalUrl&&e.state.uid&&(this._oAuthLocationParams=e,r=!0);}catch{}else if(e.error&&e.error_description&&(console.log("IdentityManager OAuth Error: ",e.error," - ",e.error_description),"access_denied"===e.error&&(r=!0,e.state)))try{e.state=JSON.parse(e.state);}catch{}if(r){const t={...e};["code","error","error_description","message_code","persist","state"].forEach((e=>{delete t[e];}));const r=v$4(t),s=window.location.pathname+(r?`?${r}`:"")+(e.state?.hash||"");window.history.replaceState(window.history.state,"",s);}}}_getOAuthToken(e,t,r,i,o){return e=e.replace(/^http:/i,"https:"),U$1(`${e}/sharing/rest/oauth2/token`,{authMode:"anonymous",method:"post",query:i&&o?{grant_type:"authorization_code",code:t,redirect_uri:i,client_id:r,code_verifier:o}:{grant_type:"refresh_token",refresh_token:t,client_id:r}}).then((e=>e.data))}async _getCodeChallenge(e){if(e&&globalThis.isSecureContext){const t=(new TextEncoder).encode(e),r=await crypto.subtle.digest("SHA-256",t);return et(new Uint8Array(r))}return null}_pageShowHandler(e){if(e.persisted&&this.isBusy()&&this._rejectOnPersistedPageShow){const e=new s$a("identity-manager:user-aborted","ABORTED");this._errbackFunc(e);}}_findCredential(e,t){let r,s,i,o,n=-1;const a=t?.token,h=t?.resource,l=this._isServerRsrc(e)?"server":"portal",c=this.credentials.filter((t=>this._hasSameServerInstance(t.server,e)&&t.scope===l));if(e=h||e,c.length)if(1===c.length){if(r=c[0],i=this.findServerInfo(r.server),s=i?.owningSystemUrl,o=s?this.findCredential(s,r.userId):void 0,n=this._getIdenticalSvcIdx(e,r),!a)return -1===n&&r.resources.push(e),this._addResource(e,o),r;-1!==n&&(r.resources.splice(n,1),this._removeResource(e,o));}else {let t,r;if(c.some((a=>(r=this._getIdenticalSvcIdx(e,a),-1!==r&&(t=a,i=this.findServerInfo(t.server),s=i?.owningSystemUrl,o=s?this.findCredential(s,t.userId):void 0,n=r,!0)))),a)t&&(t.resources.splice(n,1),this._removeResource(e,o));else if(t)return this._addResource(e,o),t}}_findOAuthInfo(e){let t=this.findOAuthInfo(e);if(!t)for(const r of this.oAuthInfos)if(this._isIdProvider(r.portalUrl,e)){t=r;break}return t}_addResource(e,t){t&&-1===this._getIdenticalSvcIdx(e,t)&&t.resources.push(e);}_removeResource(e,t){let r=-1;t&&(r=this._getIdenticalSvcIdx(e,t),r>-1&&t.resources.splice(r,1));}_useProxy(e,t){return t?.isAdmin&&!F(e.adminTokenServiceUrl,this._appOrigin)||!this._isPortalDomain(e.tokenServiceUrl)&&"10.1"===String(e.currentVersion)&&!F(e.tokenServiceUrl,this._appOrigin)}_getOrigin(e){const t=new x$3(e);return t.scheme+"://"+t.host+(null!=t.port?":"+t.port:"")}_getServerInstanceRoot(e){const t=e.toLowerCase();let r=t.indexOf(this._agsRest);return -1===r&&this._isAdminResource(e)&&(r=this._agsAdmin.test(e)?e.replace(this._agsAdmin,"$1").length:e.search(this._adminSvcs)),-1!==r||a$6(t)||(r=t.indexOf("/sharing")),-1===r&&t.endsWith("/")&&(r=t.length-1),r>-1?e.slice(0,r):e}_hasSameServerInstance(e,t){return e.endsWith("/")&&(e=e.slice(0,-1)),e=e.toLowerCase(),t=this._getServerInstanceRoot(t).toLowerCase(),e=r$9(e),t=r$9(t),(e=e.slice(Math.max(0,e.indexOf(":"))))===(t=t.slice(Math.max(0,t.indexOf(":"))))}_sanitizeUrl(e){const r=(s$b.request.proxyUrl||"").toLowerCase(),s=r?e.toLowerCase().indexOf(r+"?"):-1;return -1!==s&&(e=e.slice(s+r.length+1)),e=K(e),I(e).path}_isRESTService(e){return e.includes(this._agsRest)}_isAdminResource(e){return this._agsAdmin.test(e)||this._adminSvcs.test(e)}_isServerRsrc(e){return this._isRESTService(e)||this._isAdminResource(e)}_isIdenticalService(e,t){let r=!1;if(this._isRESTService(e)&&this._isRESTService(t)){const s=this._getSuffix(e).toLowerCase(),i=this._getSuffix(t).toLowerCase();if(r=s===i,!r){const e=/(.*)\/(MapServer|FeatureServer|UtilityNetworkServer).*/gi;r=s.replaceAll(e,"$1")===i.replaceAll(e,"$1");}}else this._isAdminResource(e)&&this._isAdminResource(t)?r=!0:this._isServerRsrc(e)||this._isServerRsrc(t)||!this._isPortalDomain(e)||(r=!0);return r}_isPortalDomain(e){const r=new x$3(e.toLowerCase()),s=this._portalConfig;let i=this._gwDomains.some((e=>e.regex.test(r.uri)));return !i&&s&&(i=this._hasSameServerInstance(this._getServerInstanceRoot(s.restBaseUrl),r.uri)),i||s$b.portalUrl&&(i=F(r,s$b.portalUrl,!0)),i||(i=this._portals.some((e=>this._hasSameServerInstance(e,r.uri)))),i=i||this._agsPortal.test(r.path),i}_isIdProvider(e,t){let r=-1,s=-1;this._gwDomains.forEach(((i,o)=>{-1===r&&i.regex.test(e)&&(r=o),-1===s&&i.regex.test(t)&&(s=o);}));let i=!1;if(r>-1&&s>-1&&(0===r||4===r?0!==s&&4!==s||(i=!0):1===r?1!==s&&2!==s||(i=!0):2===r?2===s&&(i=!0):3===r&&3===s&&(i=!0)),!i){const r=this.findServerInfo(t),s=r?.owningSystemUrl;s&&C(r)&&this._isPortalDomain(s)&&this._isIdProvider(e,s)&&(i=!0);}return i}_getIdenticalSvcIdx(e,t){let r=-1;for(let s=0;s<t.resources.length;s++){const i=t.resources[s];if(this._isIdenticalService(e,i)){r=s;break}}return r}_getSuffix(e){return e.replace(this._regexSDirUrl,"").replace(this._regexServerType,"$1")}_getTokenSvcUrl(e){let t,r,i;if(this._isRESTService(e)||this._isAdminResource(e)){const i=this._getServerInstanceRoot(e);return t=i+"/admin/generateToken",r=U$1(e=i+"/rest/info",{query:{f:"json"}}).then((e=>e.data)),{adminUrl:t,promise:r}}if(this._isPortalDomain(e)){let t="";if(this._gwDomains.some((r=>(r.regex.test(e)&&(t=r.tokenServiceUrl),!!t))),t||this._portals.some((r=>(this._hasSameServerInstance(r,e)&&(t=r+this._gwTokenUrl),!!t))),t||(i=e.toLowerCase().indexOf("/sharing"),-1!==i&&(t=e.slice(0,i)+this._gwTokenUrl)),t||(t=this._getOrigin(e)+this._gwTokenUrl),t){const r=new x$3(e).port;/^http:\/\//i.test(e)&&"7080"===r&&(t=t.replace(/:7080/i,":7443")),t=t.replace(/http:/i,"https:");}return t}}_processOAuthResponseParams(e,t,r){const s=t._oAuthCred;if(e.code){const i=s.codeVerifier;return s.codeVerifier=null,s.stateUID=null,s.save(),this._getOAuthToken(r.server,e.code,t.appId,this._getRedirectURI(t,!0),i).then((i=>{const o=new E({userId:i.username,server:r.server??void 0,token:i.access_token,expires:Date.now()+1e3*i.expires_in,ssl:i.ssl,oAuthState:e.state,_oAuthCred:s});return t.userId=o.userId,s.storage=i.persist?b:q,s.refreshToken=i.refresh_token,s.token=null,s.expires=i.refresh_token_expires_in?Date.now()+1e3*i.refresh_token_expires_in:null,s.userId=o.userId,s.ssl=o.ssl,s.save(),o}))}const i=new E({userId:e.username,server:r.server??void 0,token:e.access_token,expires:Date.now()+1e3*Number(e.expires_in),ssl:"true"===e.ssl,oAuthState:e.state,_oAuthCred:s});return t.userId=i.userId,s.storage=e.persist?b:q,s.refreshToken=null,s.token=i.token,s.expires=i.expires,s.userId=i.userId,s.ssl=i.ssl,s.save(),Promise.resolve(i)}_processOAuthPopupParams(e){const t=this._oAuthDfd;if(this._oAuthDfd=null,t)if(clearInterval(this._oAuthIntervalId),this._oAuthOnPopupHandle?.remove(),e.error){const r="access_denied"===e.error,s=new s$a(r?"identity-manager:user-aborted":"identity-manager:authentication-failed",r?"ABORTED":"OAuth: "+e.error+" - "+e.error_description);t.reject(s);}else this._processOAuthResponseParams(e,t.oinfo_,t.sinfo_).then((e=>{t.resolve(e);})).catch((e=>{t.reject(e);}));}_setOAuthResponseQueryString(e){e&&("?"===e.charAt(0)&&(e=e.slice(1)),this._processOAuthPopupParams(A$4(e)));}async _exchangeToken(e,t,r){return (await U$1(`${e}/sharing/rest/oauth2/exchangeToken`,{authMode:"anonymous",method:"post",query:{f:"json",client_id:t,token:r}})).data.token}async _getPlatformSelf(e,t){if(this._getPlatformSelfError&&Date.now()-this._getPlatformSelfError[1]<1e3)throw this._getPlatformSelfError[0];e=e.replace(/^http:/i,"https:");try{const r=await U$1(`${e}/sharing/rest/oauth2/platformSelf`,{authMode:"anonymous",headers:{"X-Esri-Auth-Client-Id":t,"X-Esri-Auth-Redirect-Uri":window.location.href.replace(/#.*$/,"")},method:"post",query:{f:"json",expiration:30},withCredentials:!0});return this._getPlatformSelfError=null,r.data}catch(r){throw "OAUTH_0066"===r.details?.messageCode&&(this._getPlatformSelfError=[r,Date.now()]),r}}_getPortalSelf(e,t){let r;if(this._gwDomains.some((t=>(t.regex.test(e)&&(r=t.customBaseUrl),!!r))),r)return Promise.resolve({allSSL:!0,currentVersion:"8.4",customBaseUrl:r,portalMode:"multitenant",supportsOAuth:!0});this._appOrigin.startsWith("https:")?e=e.replace(/^http:/i,"https:").replace(/:7080/i,":7443"):/^http:/i.test(t)&&(e=e.replace(/^https:/i,"http:").replace(/:7443/i,":7080"));return U$1(e,{query:{f:"json"},authMode:"anonymous",withCredentials:!0}).then((e=>e.data))}_doPortalSignIn(e){const t=this._portalConfig,r=window.location.href,s=this.findServerInfo(e);return !(!t&&!this._isPortalDomain(r)||!(s?s.hasPortal||s.owningSystemUrl&&this._isPortalDomain(s.owningSystemUrl):this._isPortalDomain(e))||!(this._isIdProvider(r,e)||t&&(this._hasSameServerInstance(this._getServerInstanceRoot(t.restBaseUrl),e)||this._isIdProvider(t.restBaseUrl,e))||F(r,e,!0)))}_checkProtocol(e,t,r,s){let o=!0;const n=s?t.adminTokenServiceUrl:t.tokenServiceUrl;if(n.trim().toLowerCase().startsWith("https:")&&!this._appOrigin.startsWith("https:")&&T(n)&&(o=!!this._protocolFunc&&!!this._protocolFunc({resourceUrl:e,serverInfo:t}),!o)){r(new s$a("identity-manager:aborted","Aborted the Sign-In process to avoid sending password over insecure connection."));}return o}_enqueue(e,t,r,s,i,o){return s||(s=L$1()),s.resUrl_=e,s.sinfo_=t,s.options_=r,s.admin_=i,s.refresh_=o,this._busy?this._hasSameServerInstance(this._getServerInstanceRoot(e),this._busy.resUrl_)?(this._oAuthDfd&&this._oAuthDfd.oAuthWin_&&this._oAuthDfd.oAuthWin_.focus(),this._soReqs.push(s)):this._xoReqs.push(s):this._doSignIn(s),s.promise}_doSignIn(e$1){this._busy=e$1,this._rejectOnPersistedPageShow=!1;const t=t=>{const r=e$1.options_?.resource,s=e$1.resUrl_,i=e$1.refresh_;let o=!1;this.credentials.includes(t)||(i&&this.credentials.includes(i)?(i.userId=t.userId,i.token=t.token,i.expires=t.expires,i.validity=t.validity,i.ssl=t.ssl,i.creationTime=t.creationTime,o=!0,t=i):this.credentials.push(t)),t.resources||(t.resources=[]),t.resources.includes(r||s)||t.resources.push(r||s),t.scope=this._isServerRsrc(s)?"server":"portal",t.emitTokenChange();const n=this._soReqs,a={};this._soReqs=[],n.forEach((e=>{if(!this._isIdenticalService(s,e.resUrl_)){const r=this._getSuffix(e.resUrl_);a[r]||(a[r]=!0,t.resources.push(e.resUrl_));}})),e$1.resolve(t),n.forEach((e=>{this._hasSameServerInstance(this._getServerInstanceRoot(s),e.resUrl_)?e.resolve(t):this._soReqs.push(e);})),this._busy=e$1.resUrl_=e$1.sinfo_=e$1.refresh_=null,o||this.emit("credential-create",{credential:t}),this._soReqs.length?this._doSignIn(this._soReqs.shift()):this._xoReqs.length&&this._doSignIn(this._xoReqs.shift());},r=t=>{e$1.reject(t),this._busy=e$1.resUrl_=e$1.sinfo_=e$1.refresh_=null,this._soReqs.length?this._doSignIn(this._soReqs.shift()):this._xoReqs.length&&this._doSignIn(this._xoReqs.shift());},s=(o,a,h,l)=>{const d=e$1.sinfo_,u=!e$1.options_||!1!==e$1.options_.prompt,_=d.hasPortal&&this._findOAuthInfo(e$1.resUrl_);let f,g;if(o)t(new E({userId:o,server:d.server??void 0,token:h??void 0,expires:null!=l?Number(l):null,ssl:!!a}));else if(window!==window.parent&&this._appUrlObj.query?.["arcgis-auth-origin"]&&this._appUrlObj.query?.["arcgis-auth-portal"]&&this._hasSameServerInstance(this._getServerInstanceRoot(this._appUrlObj.query["arcgis-auth-portal"]),e$1.resUrl_)){window.parent.postMessage({type:"arcgis:auth:requestCredential"},this._appUrlObj.query["arcgis-auth-origin"]);const s=o$8(window,"message",(e=>{e.source===window.parent&&e.data&&("arcgis:auth:credential"===e.data.type?(s.remove(),e.data.credential.expires<Date.now()?r(new s$a("identity-manager:credential-request-failed","Parent application's token has expired.")):t(new E(e.data.credential))):"arcgis:auth:error"===e.data.type&&(s.remove(),"tokenExpiredError"===e.data.error.name?r(new s$a("identity-manager:credential-request-failed","Parent application's token has expired.")):r(s$a.fromJSON(e.data.error))));}));m$5(e$1.options_?.signal,(()=>{s.remove();}));}else if(_){let o=_._oAuthCred;if(!o){const e$1=new e(_,b),t=new e(_,q);e$1.isValid()&&t.isValid()?e$1.expires>t.expires?(o=e$1,t.destroy()):(o=t,e$1.destroy()):o=e$1.isValid()?e$1:t,_._oAuthCred=o;}if(o.isValid()){f=new E({userId:o.userId??void 0,server:d.server??void 0,token:o.token??void 0,expires:o.expires,ssl:o.ssl??void 0,_oAuthCred:o});const i=_.appId!==o.appId&&this._doPortalSignIn(e$1.resUrl_);i||o.refreshToken?(e$1._pendingDfd=o.refreshToken?this._getOAuthToken(d.server,o.refreshToken,o.appId).then((e=>(f.expires=Date.now()+1e3*e.expires_in,f.token=e.access_token,f))):Promise.resolve(f),e$1._pendingDfd.then((e=>i?this._exchangeToken(e.server,_.appId,e.token).then((t=>(e.token=t,e))).catch((()=>e)):e)).then((e=>{t(e);})).catch((e=>{const t=e.details?.httpStatus;t>0&&404!==t?(o.destroy(),s()):r(e);}))):t(f);}else if(this._oAuthLocationParams&&this._hasSameServerInstance(_.portalUrl,this._oAuthLocationParams.state.portalUrl)&&(this._oAuthLocationParams.access_token||this._oAuthLocationParams.code&&this._oAuthLocationParams.state.uid===o.stateUID&&o.codeVerifier)){const s=this._oAuthLocationParams;this._oAuthLocationParams=null,e$1._pendingDfd=this._processOAuthResponseParams(s,_,d).then((e=>{t(e);})).catch(r);}else {const s=()=>{u?e$1._pendingDfd=this.oAuthSignIn(e$1.resUrl_,d,_,e$1.options_).then(t,r):(g=new s$a("identity-manager:not-authenticated","User is not signed in."),r(g));};this._doPortalSignIn(e$1.resUrl_)?e$1._pendingDfd=this._getPlatformSelf(d.server,_.appId).then((e=>{F(e.portalUrl,this._appOrigin,!0)?(f=new E({userId:e.username,server:d.server??void 0,expires:Date.now()+1e3*e.expires_in,token:e.token}),t(f)):s();})).catch(s):s();}}else if(u){if(this._checkProtocol(e$1.resUrl_,d,r,e$1.admin_)){let s=e$1.options_;e$1.admin_&&(s=s||{},s.isAdmin=!0),e$1._pendingDfd=this.signIn(e$1.resUrl_,d,s).then(t,r);}}else g=new s$a("identity-manager:not-authenticated","User is not signed in."),r(g);},o=()=>{const s=e$1.sinfo_,i=s.owningSystemUrl,o=e$1.options_;let n,a,h,l;if(o&&(n=o.token,a=o.error,h=o.prompt),l=this._findCredential(i,{token:n,resource:e$1.resUrl_}),!l)for(const e of this.credentials)if(this._isIdProvider(i,e.server)){l=e;break}if(l){const i=this.findCredential(e$1.resUrl_,l.userId);if(i)t(i);else if(D(s,this._legacyFed)){const e=l.toJSON();e.server=s.server,e.resources=null,t(new E(e));}else {(e$1._pendingDfd=this.generateToken(this.findServerInfo(l.server),null,{serverUrl:e$1.resUrl_,token:l.token,signal:e$1.options_.signal,ssl:l.ssl})).then((r=>{t(new E({userId:l?.userId,server:s.server??void 0,token:r.token,expires:null!=r.expires?Number(r.expires):null,ssl:!!r.ssl,isAdmin:e$1.admin_,validity:r.validity}));}),r);}}else {this._busy=null,n&&(e$1.options_.token=null);(e$1._pendingDfd=this.getCredential(i.replace(/\/?$/,"/sharing"),{resource:e$1.resUrl_,owningTenant:s.owningTenant,signal:e$1.options_.signal,token:n,error:a,prompt:h})).then((()=>{this._enqueue(e$1.resUrl_,e$1.sinfo_,e$1.options_,e$1,e$1.admin_);}),(t=>{e$1.resUrl_=e$1.sinfo_=e$1.refresh_=null,e$1.reject(t);}));}};this._errbackFunc=r;const a=e$1.sinfo_.owningSystemUrl,l=this._isServerRsrc(e$1.resUrl_),d=e$1.sinfo_._restInfoPms;d?d.promise.then((t=>{const r=e$1.sinfo_;if(r._restInfoPms){r.adminTokenServiceUrl=r._restInfoPms.adminUrl,r._restInfoPms=null,r.tokenServiceUrl=(t$7("authInfo.tokenServicesUrl",t)||t$7("authInfo.tokenServiceUrl",t)||t$7("tokenServiceUrl",t))??null,r.shortLivedTokenValidity=t$7("authInfo.shortLivedTokenValidity",t)??null,r.currentVersion=t.currentVersion,r.owningTenant=t.owningTenant;const e=r.owningSystemUrl=t.owningSystemUrl;e&&this._portals.push(e);}l&&r.owningSystemUrl?o():s();}),(()=>{e$1.sinfo_._restInfoPms=null;const t=new s$a("identity-manager:server-identification-failed","Unknown resource - could not find token service endpoint.");r(t);})):l&&a?o():e$1.sinfo_._selfReq?e$1.sinfo_._selfReq.selfDfd.then((t=>{const r={};let s,i,o,n;return t&&(s=t.user?.username,r.username=s,r.allSSL=t.allSSL,i=t.supportsOAuth,n=parseFloat(t.currentVersion),"multitenant"===t.portalMode&&(o=t.customBaseUrl),e$1.sinfo_.currentVersion=n),e$1.sinfo_.webTierAuth=!!s,s&&this.normalizeWebTierAuth?this.generateToken(e$1.sinfo_,null,{ssl:r.allSSL}).catch((()=>null)).then((e=>(r.portalToken=e?.token,r.tokenExpiration=e?.expires,r))):!s&&i&&n>=4.4&&!this._findOAuthInfo(e$1.resUrl_)?this._generateOAuthInfo({portalUrl:e$1.sinfo_.server,customBaseUrl:o,owningTenant:e$1.sinfo_._selfReq.owningTenant}).catch((()=>null)).then((()=>r)):r})).catch((()=>null)).then((t=>{e$1.sinfo_._selfReq=null,t?s(t.username,t.allSSL,t.portalToken,t.tokenExpiration):s();})):s();}_generateOAuthInfo(e){let t,r=null,i=e.portalUrl;const o=e.customBaseUrl,n=e.owningTenant,a=!this._defaultOAuthInfo&&this._createDefaultOAuthInfo&&!this._hasTestedIfAppIsOnPortal;if(a){r=window.location.href;let e=r.indexOf("?");e>-1&&(r=r.slice(0,e)),e=r.search(/\/(apps|home)\//),r=e>-1?r.slice(0,e):null;}return a&&r?(this._hasTestedIfAppIsOnPortal=!0,t=U$1(r+"/sharing/rest",{query:{f:"json"}}).then((()=>{this._defaultOAuthInfo=new i$1({appId:"arcgisonline",popupCallbackUrl:r+"/home/oauth-callback.html"});}))):t=Promise.resolve(),t.then((()=>{if(this._defaultOAuthInfo)return i=i.replace(/^http:/i,"https:"),U$1(i+"/sharing/rest/oauth2/validateRedirectUri",{query:{accountId:n,client_id:this._defaultOAuthInfo.appId,redirect_uri:_$4(this._defaultOAuthInfo.popupCallbackUrl),f:"json"}}).then((e=>{if(e.data.valid){const t=this._defaultOAuthInfo.clone();e.data.urlKey&&o?t.portalUrl="https://"+e.data.urlKey.toLowerCase()+"."+o:t.portalUrl=i,t.popup=window!==window.top||!(F(i,this._appOrigin)||this._gwDomains.some((e=>e.regex.test(i)&&e.regex.test(this._appOrigin)))),this.oAuthInfos.push(t);}}))}))}_doOAuthSignIn(e,t,r,s){const o=r._oAuthCred,a={portalUrl:r.portalUrl};!r.popup&&r.preserveUrlHash&&window.location.hash&&(a.hash=window.location.hash),o.stateUID&&(a.uid=o.stateUID);const h={client_id:r.appId,response_type:o.codeVerifier?"code":"token",state:JSON.stringify(a),expiration:r.expiration,locale:r.locale,redirect_uri:this._getRedirectURI(r,!!o.codeVerifier)};r.forceLogin&&(h.force_login=!0),r.forceUserId&&r.userId&&(h.prepopulatedusername=r.userId),!r.popup&&this._doPortalSignIn(e)&&(h.redirectToUserOrgUrl=!0),o.codeVerifier&&(h.code_challenge=s||o.codeVerifier,h.code_challenge_method=s?"S256":"plain");const l=r.portalUrl.replace(/^http:/i,"https:")+"/sharing/oauth2/authorize",c=l+"?"+v$4(h);if(r.popup){const e=window.open(c,"esriJSAPIOAuth",r.popupWindowFeatures);if(e)e.focus(),this._oAuthDfd.oAuthWin_=e,this._oAuthIntervalId=setInterval((()=>{if(e.closed){clearInterval(this._oAuthIntervalId),this._oAuthOnPopupHandle.remove();const e=this._oAuthDfd;if(e){const t=new s$a("identity-manager:user-aborted","ABORTED");e.reject(t);}}}),500),this._oAuthOnPopupHandle=o$8(window,["arcgis:auth:hash","arcgis:auth:location:search"],(e=>{"arcgis:auth:hash"===e.type?this.setOAuthResponseHash(e.detail):this._setOAuthResponseQueryString(e.detail);}));else {const e=new s$a("identity-manager:popup-blocked","ABORTED");this._oAuthDfd.reject(e);}}else this._rejectOnPersistedPageShow=!0,this._oAuthRedirectFunc?this._oAuthRedirectFunc({authorizeParams:h,authorizeUrl:l,resourceUrl:e,serverInfo:t,oAuthInfo:r}):window.location.href=c;}_getRedirectURI(e,t){const r=window.location.href.replace(/#.*$/,"");if(e.popup)return _$4(e.popupCallbackUrl);if(t){const e=I(r);return e.query&&["code","error","error_description","message_code","persist","state"].forEach((t=>{delete e.query[t];})),Et(e.path,e.query)}return r}}j.prototype.declaredClass="esri.identity.IdentityManagerBase";let E=class extends o$6.EventedAccessor{constructor(e){super(e),this._oAuthCred=null,this.tokenRefreshBuffer=2,e?._oAuthCred&&(this._oAuthCred=e._oAuthCred);}initialize(){this.resources=this.resources||[],null==this.creationTime&&(this.creationTime=Date.now());}refreshToken(){const e=i$7,t=e.findServerInfo(this.server),s=t?.owningSystemUrl,i=!!s&&"server"===this.scope,o=i&&D(t,e._legacyFed),n=t.webTierAuth,a=n&&e.normalizeWebTierAuth,h=R[this.server],l=h?.[this.userId];let c,d=this.resources&&this.resources[0],u=i?e.findServerInfo(s):null,p={username:this.userId,password:l};if(n&&!a)return;i&&!u&&e.serverInfos.some((t=>(e._isIdProvider(s,t.server)&&(u=t),!!u)));const _=u?e.findCredential(u.server,this.userId):null;if(!i||_){if(!o){if(i)c={serverUrl:d,token:_?.token,ssl:_?.ssl};else if(a)p=null,c={ssl:this.ssl};else {if(!l){let r;return d&&(d=e._sanitizeUrl(d),this._enqueued=1,r=e._enqueue(d,t,null,null,this.isAdmin,this),r.then((()=>{this._enqueued=0,this.refreshServerTokens();})).catch((()=>{this._enqueued=0;}))),r}this.isAdmin&&(c={isAdmin:!0});}return e.generateToken(i?u:t,i?null:p,c).then((e=>{this.token=e.token,this.expires=null!=e.expires?Number(e.expires):null,this.creationTime=Date.now(),this.validity=e.validity,this.emitTokenChange(),this.refreshServerTokens();})).catch((()=>{}))}_?.refreshToken();}}refreshServerTokens(){if("portal"===this.scope){const e=i$7;e.credentials.forEach((t=>{const r=e.findServerInfo(t.server),s=r?.owningSystemUrl;t!==this&&t.userId===this.userId&&s&&"server"===t.scope&&(e._hasSameServerInstance(this.server,s)||e._isIdProvider(s,this.server))&&(D(r,e._legacyFed)?(t.token=this.token,t.expires=this.expires,t.creationTime=this.creationTime,t.validity=this.validity,t.emitTokenChange()):t.refreshToken());}));}}emitTokenChange(e){clearTimeout(this._refreshTimer);const t=i$7,s=this.server?t.findServerInfo(this.server):null,i=s?.owningSystemUrl,o=i?t.findServerInfo(i):null;!1===e||i&&"portal"!==this.scope&&(!o?.webTierAuth||t.normalizeWebTierAuth)||null==this.expires&&null==this.validity||this._startRefreshTimer(),this.emit("token-change");}destroy(){this.userId=this.server=this.token=this.expires=this.validity=this.resources=this.creationTime=null,this._oAuthCred&&(this._oAuthCred.destroy(),this._oAuthCred=null);const e=i$7,t=e.credentials.indexOf(this);t>-1&&e.credentials.splice(t,1),this.emitTokenChange(),this.emit("destroy");}toJSON(){const e=l$6({userId:this.userId,server:this.server,token:this.token,expires:this.expires,validity:this.validity,ssl:this.ssl,isAdmin:this.isAdmin,creationTime:this.creationTime,scope:this.scope}),t=this.resources;return t&&t.length>0&&(e.resources=t.slice()),e}_startRefreshTimer(){clearTimeout(this._refreshTimer);const e=6e4*this.tokenRefreshBuffer,t=2**31-1;let r=(this.validity?this.creationTime+6e4*this.validity:this.expires)-Date.now();r<0?r=0:r>t&&(r=t),this._refreshTimer=setTimeout(this.refreshToken.bind(this),r>e?r-e:r);}};r$7([m$4()],E.prototype,"creationTime",void 0),r$7([m$4()],E.prototype,"expires",void 0),r$7([m$4()],E.prototype,"isAdmin",void 0),r$7([m$4()],E.prototype,"oAuthState",void 0),r$7([m$4()],E.prototype,"resources",void 0),r$7([m$4()],E.prototype,"scope",void 0),r$7([m$4()],E.prototype,"server",void 0),r$7([m$4()],E.prototype,"ssl",void 0),r$7([m$4()],E.prototype,"token",void 0),r$7([m$4()],E.prototype,"tokenRefreshBuffer",void 0),r$7([m$4()],E.prototype,"userId",void 0),r$7([m$4()],E.prototype,"validity",void 0),E=r$7([a$3("esri.identity.Credential")],E);
|
326
|
+
const R={},C=e=>{const t=new x$3(e.owningSystemUrl).host,r=new x$3(e.server).host,s=/.+\.arcgis\.com$/i;return s.test(t)&&s.test(r)},D=(e,t)=>!!(C(e)&&t&&t.some((t=>t.test(e.server))));let b=null,q=null;try{b=window.localStorage,q=window.sessionStorage;}catch{}class j extends o$6{constructor(){super(),this._portalConfig=globalThis.esriGeowConfig,this.serverInfos=[],this.oAuthInfos=[],this.credentials=[],this._soReqs=[],this._xoReqs=[],this._portals=[],this._defaultOAuthInfo=null,this._defaultTokenValidity=60,this.dialog=null,this.tokenValidity=null,this.normalizeWebTierAuth=!1,this._appOrigin="null"!==window.origin?window.origin:window.location.origin,this._appUrlObj=I(window.location.href),this._busy=null,this._rejectOnPersistedPageShow=!1,this._oAuthLocationParams=null,this._gwTokenUrl="/sharing/rest/generateToken",this._agsRest="/rest/services",this._agsPortal=/\/sharing(\/|$)/i,this._agsAdmin=/(https?:\/\/[^/]+\/[^/]+)\/admin\/?(\/.*)?$/i,this._adminSvcs=/\/rest\/admin\/services(\/|$)/i,this._gwDomains=[{regex:/^https?:\/\/www\.arcgis\.com/i,customBaseUrl:"maps.arcgis.com",tokenServiceUrl:"https://www.arcgis.com/sharing/rest/generateToken"},{regex:/^https?:\/\/(?:dev|[a-z\d-]+\.mapsdev)\.arcgis\.com/i,customBaseUrl:"mapsdev.arcgis.com",tokenServiceUrl:"https://dev.arcgis.com/sharing/rest/generateToken"},{regex:/^https?:\/\/(?:devext|[a-z\d-]+\.mapsdevext)\.arcgis\.com/i,customBaseUrl:"mapsdevext.arcgis.com",tokenServiceUrl:"https://devext.arcgis.com/sharing/rest/generateToken"},{regex:/^https?:\/\/(?:qaext|[a-z\d-]+\.mapsqa)\.arcgis\.com/i,customBaseUrl:"mapsqa.arcgis.com",tokenServiceUrl:"https://qaext.arcgis.com/sharing/rest/generateToken"},{regex:/^https?:\/\/[a-z\d-]+\.maps\.arcgis\.com/i,customBaseUrl:"maps.arcgis.com",tokenServiceUrl:"https://www.arcgis.com/sharing/rest/generateToken"}],this._legacyFed=[],this._regexSDirUrl=/http.+\/rest\/services\/?/gi,this._regexServerType=/(\/(FeatureServer|GPServer|GeoDataServer|GeocodeServer|GeoenrichmentServer|GeometryServer|GlobeServer|ImageServer|KnowledgeGraphServer|MapServer|MissionServer|MobileServer|NAServer|NetworkDiagramServer|OGCFeatureServer|ParcelFabricServer|RelationalCatalogServer|SceneServer|StreamServer|UtilityNetworkServer|ValidationServer|VectorTileServer|VersionManagementServer|VideoServer)).*/gi,this._gwUser=/http.+\/users\/([^/]+).*/i,this._gwItem=/http.+\/items\/([^/]+).*/i,this._gwGroup=/http.+\/groups\/([^/]+).*/i,this._rePortalTokenSvc=/\/sharing(\/rest)?\/generatetoken/i,this._createDefaultOAuthInfo=!0,this._hasTestedIfAppIsOnPortal=!1,this._getPlatformSelfError=null,this._getOAuthLocationParams(),window.addEventListener("pageshow",(e=>{this._pageShowHandler(e);}));}registerServers(e){const t=this.serverInfos;t?(e=e.filter((e=>!this.findServerInfo(e.server))),this.serverInfos=t.concat(e)):this.serverInfos=e,e.forEach((e=>{e.owningSystemUrl&&this._portals.push(e.owningSystemUrl),e.hasPortal&&this._portals.push(e.server);}));}registerOAuthInfos(e){const t=this.oAuthInfos;if(t){for(const r of e){const e=this.findOAuthInfo(r.portalUrl);e&&t.splice(t.indexOf(e),1);}this.oAuthInfos=t.concat(e);}else this.oAuthInfos=e;}registerToken(e){e={...e};const t=this._sanitizeUrl(e.server),r=this._isServerRsrc(t);let s,i=this.findServerInfo(t),o=!0;i||(i=new s$1,i.server=this._getServerInstanceRoot(t),r?i.hasServer=!0:(i.tokenServiceUrl=this._getTokenSvcUrl(t),i.hasPortal=!0),this.registerServers([i])),s=this._findCredential(t),s?(delete e.server,Object.assign(s,e),o=!1):(s=new E({userId:e.userId,server:i.server??void 0,token:e.token,expires:e.expires,ssl:e.ssl,scope:r?"server":"portal"}),s.resources=[t],this.credentials.push(s)),s.emitTokenChange(!1),o||s.refreshServerTokens();}toJSON(){return l$6({serverInfos:this.serverInfos.map((e=>e.toJSON())),oAuthInfos:this.oAuthInfos.map((e=>e.toJSON())),credentials:this.credentials.map((e=>e.toJSON()))})}initialize(e){if(!e)return;"string"==typeof e&&(e=JSON.parse(e));const t=e.serverInfos,r=e.oAuthInfos,s=e.credentials;if(t){const e=[];t.forEach((t=>{t.server&&t.tokenServiceUrl&&e.push(t.declaredClass?t:new s$1(t));})),e.length&&this.registerServers(e);}if(r){const e=[];r.forEach((t=>{t.appId&&e.push(t.declaredClass?t:new i$1(t));})),e.length&&this.registerOAuthInfos(e);}s&&s.forEach((e=>{e.server&&e.token&&e.expires&&e.expires>Date.now()&&((e=e.declaredClass?e:new E(e)).emitTokenChange(),this.credentials.push(e));}));}findServerInfo(e){let t;e=this._sanitizeUrl(e);for(const r of this.serverInfos)if(this._hasSameServerInstance(r.server,e)){t=r;break}return t}findOAuthInfo(e){let t;e=this._sanitizeUrl(e);for(const r of this.oAuthInfos)if(this._hasSameServerInstance(r.portalUrl,e)){t=r;break}return t}findCredential(e,t){if(!e)return;let r;e=this._sanitizeUrl(e);const s=this._isServerRsrc(e)?"server":"portal";if(t){for(const i of this.credentials)if(this._hasSameServerInstance(i.server,e)&&t===i.userId&&i.scope===s){r=i;break}}else for(const i of this.credentials)if(this._hasSameServerInstance(i.server,e)&&-1!==this._getIdenticalSvcIdx(e,i)&&i.scope===s){r=i;break}return r}getCredential(e,t){let r,s,o=!0;t&&(r=!!t.token,s=t.error,o=!1!==t.prompt),t={...t},e=this._sanitizeUrl(e);const n=new AbortController,a=L$1();if(t.signal&&m$5(t.signal,(()=>{n.abort();})),m$5(n,(()=>{a.reject(new s$a("identity-manager:user-aborted","ABORTED"));})),c$7(n))return a.promise;t.signal=n.signal;const h=this._isAdminResource(e),u=r?this.findCredential(e):null;let _;if(u&&s&&s.details&&498===s.details.httpStatus)u.destroy();else if(u)return _=new s$a("identity-manager:not-authorized","You are currently signed in as: '"+u.userId+"'. You do not have access to this resource: "+e,{error:s}),a.reject(_),a.promise;const f=this._findCredential(e,t);if(f)return a.resolve(f),a.promise;let g=this.findServerInfo(e);if(g)!g.hasPortal&&g.server&&g.owningSystemUrl&&this._hasSameServerInstance(g.server,g.owningSystemUrl)&&(g.hasPortal=!0),!g.hasServer&&this._isServerRsrc(e)&&(g._restInfoPms=this._getTokenSvcUrl(e),g.hasServer=!0);else {const t=this._getTokenSvcUrl(e);if(!t)return _=new s$a("identity-manager:unknown-resource","Unknown resource - could not find token service endpoint."),a.reject(_),a.promise;g=new s$1,g.server=this._getServerInstanceRoot(e),"string"==typeof t?(g.tokenServiceUrl=t,g.hasPortal=!0):(g._restInfoPms=t,g.hasServer=!0),this.registerServers([g]);}return g.hasPortal&&void 0===g._selfReq&&(o||F(g.tokenServiceUrl,this._appOrigin)||this._gwDomains.some((e=>e.tokenServiceUrl===g.tokenServiceUrl)))&&(g._selfReq={owningTenant:t?.owningTenant,selfDfd:this._getPortalSelf(g.tokenServiceUrl.replace(this._rePortalTokenSvc,"/sharing/rest/portals/self"),e)}),this._enqueue(e,g,t,a,h)}getResourceName(e){return this._isRESTService(e)?e.replace(this._regexSDirUrl,"").replace(this._regexServerType,"")||"":this._gwUser.test(e)&&e.replace(this._gwUser,"$1")||this._gwItem.test(e)&&e.replace(this._gwItem,"$1")||this._gwGroup.test(e)&&e.replace(this._gwGroup,"$1")||""}generateToken(e,t,r){const o=this._rePortalTokenSvc.test(e.tokenServiceUrl),n=new x$3(this._appOrigin),a=e.shortLivedTokenValidity;let h,l,c,d,u,f,g,m;t&&(m=this.tokenValidity||a||this._defaultTokenValidity,m>a&&a>0&&(m=a)),r&&(h=r.isAdmin,l=r.serverUrl,c=r.token,f=r.signal,g=r.ssl,e.customParameters=r.customParameters),h?d=e.adminTokenServiceUrl:(d=e.tokenServiceUrl,u=new x$3(d.toLowerCase()),e.webTierAuth&&r?.serverUrl&&!g&&"http"===n.scheme&&(F(n.uri,d,!0)||"https"===u.scheme&&n.host===u.host&&"7080"===n.port&&"7443"===u.port)&&(d=d.replace(/^https:/i,"http:").replace(/:7443/i,":7080")));const v={query:{request:"getToken",username:t?.username,password:t?.password,serverUrl:l,token:c,expiration:m,referer:h||o?this._appOrigin:null,client:h?"referer":null,f:"json",...e.customParameters},method:"post",authMode:"anonymous",useProxy:this._useProxy(e,r),signal:f,...r?.ioArgs};o||(v.withCredentials=!1);return U$1(d,v).then((r=>{const s=r.data;if(!s?.token)return new s$a("identity-manager:authentication-failed","Unable to generate token");const o=e.server;return R[o]||(R[o]={}),t&&(R[o][t.username]=t.password),s.validity=m,s}))}isBusy(){return !!this._busy}async checkSignInStatus(e){return (await this.checkAppAccess(e,"")).credential}checkAppAccess(e,t,r){let o=!1;return this.getCredential(e,{prompt:!1}).then((n=>{let a;const h={f:"json"};if("portal"===n.scope)if(t&&(this._doPortalSignIn(e)||r?.force))a=n.server+"/sharing/rest/oauth2/validateAppAccess",h.client_id=t;else {if(!n.token)return {credential:n};a=n.server+"/sharing/rest";}else {if(!n.token)return {credential:n};a=n.server+"/rest/services";}return n.token&&(h.token=n.token),U$1(a,{query:h,authMode:"anonymous"}).then((e=>{if(!1===e.data.valid)throw new s$a("identity-manager:not-authorized",`You are currently signed in as: '${n.userId}'.`,e.data);return o=!!e.data.viewOnlyUserTypeApp,{credential:n}})).catch((e=>{if("identity-manager:not-authorized"===e.name)throw e;const t=e.details?.httpStatus;if(498===t)throw n.destroy(),new s$a("identity-manager:not-authenticated","User is not signed in.");if(400===t)throw new s$a("identity-manager:invalid-request");return {credential:n}}))})).then((e=>({credential:e.credential,viewOnly:o})))}setOAuthResponseHash(e){e&&("#"===e.charAt(0)&&(e=e.slice(1)),this._processOAuthPopupParams(A$4(e)));}setOAuthRedirectionHandler(e){this._oAuthRedirectFunc=e;}setProtocolErrorHandler(e){this._protocolFunc=e;}signIn(e,t,r={}){const s=L$1(),o=()=>{h$1?.remove(),d?.remove(),this.dialog?.destroy(),this.dialog=h$1=d=null;},n=()=>{o(),this._oAuthDfd=null,s.reject(new s$a("identity-manager:user-aborted","ABORTED"));};r.signal&&m$5(r.signal,(()=>{n();}));const a=new h({open:!0,resource:this.getResourceName(e),server:t.server});this.dialog=a,this.emit("dialog-create");let h$1=a.on("cancel",n),d=a.on("submit",(e=>{this.generateToken(t,e,{isAdmin:r.isAdmin,signal:r.signal}).then((i=>{o();const n=new E({userId:e.username,server:t.server??void 0,token:i.token,expires:null!=i.expires?Number(i.expires):null,ssl:!!i.ssl,isAdmin:r.isAdmin,validity:i.validity});s.resolve(n);})).catch((e=>{a.error=e,a.signingIn=!1;}));}));return s.promise}oAuthSignIn(e,t,r,s){this._oAuthDfd=L$1();const o=this._oAuthDfd;let n;s?.signal&&m$5(s.signal,(()=>{const e=this._oAuthDfd&&this._oAuthDfd.oAuthWin_;e&&!e.closed?e.close():this.dialog&&u();})),o.resUrl_=e,o.sinfo_=t,o.oinfo_=r;const a=r._oAuthCred;if(a.storage&&("authorization-code"===r.flowType||"auto"===r.flowType&&t.currentVersion>=8.4)){let e=crypto.getRandomValues(new Uint8Array(32));n=et(e),a.codeVerifier=n,e=crypto.getRandomValues(new Uint8Array(32)),a.stateUID=et(e),a.save()||(a.codeVerifier=n=null);}else a.codeVerifier=null;let h$1,d;this._getCodeChallenge(n).then((i=>{const o=!s||!1!==s.oAuthPopupConfirmation;if(!r.popup||!o)return void this._doOAuthSignIn(e,t,r,i);const n=new h({oAuthPrompt:!0,server:t.server,open:!0});this.dialog=n,this.emit("dialog-create"),h$1=n.on("cancel",u),d=n.on("submit",(()=>{p(),this._doOAuthSignIn(e,t,r,i);}));}));const u=()=>{p(),this._oAuthDfd=null,o.reject(new s$a("identity-manager:user-aborted","ABORTED"));},p=()=>{h$1?.remove(),d?.remove(),this.dialog?.destroy(),this.dialog=null;};return o.promise}destroyCredentials(){if(this.credentials){this.credentials.slice().forEach((e=>{e.destroy();}));}this.emit("credentials-destroy");}enablePostMessageAuth(e="https://www.arcgis.com/sharing/rest"){this._postMessageAuthHandle&&this._postMessageAuthHandle.remove(),this._postMessageAuthHandle=o$8(window,"message",(t=>{if((t.origin===this._appOrigin||t.origin.endsWith(".arcgis.com"))&&"arcgis:auth:requestCredential"===t.data?.type){const r=t.source;this.getCredential(e).then((e=>{r.postMessage({type:"arcgis:auth:credential",credential:{expires:e.expires,server:e.server,ssl:e.ssl,token:e.token,userId:e.userId}},t.origin);})).catch((e=>{r.postMessage({type:"arcgis:auth:error",error:{name:e.name,message:e.message}},t.origin);}));}}));}disablePostMessageAuth(){this._postMessageAuthHandle&&(this._postMessageAuthHandle.remove(),this._postMessageAuthHandle=null);}_getOAuthLocationParams(){let e=window.location.hash;if(e){"#"===e.charAt(0)&&(e=e.slice(1));const t=A$4(e);let r=!1;if(t.access_token&&t.expires_in&&t.state&&t.hasOwnProperty("username"))try{t.state=JSON.parse(t.state),t.state.portalUrl&&(this._oAuthLocationParams=t,r=!0);}catch{}else if(t.error&&t.error_description&&(console.log("IdentityManager OAuth Error: ",t.error," - ",t.error_description),"access_denied"===t.error&&(r=!0,t.state)))try{t.state=JSON.parse(t.state);}catch{}r&&(window.location.hash=t.state?.hash||"");}let t=window.location.search;if(t){"?"===t.charAt(0)&&(t=t.slice(1));const e=A$4(t);let r=!1;if(e.code&&e.state)try{e.state=JSON.parse(e.state),e.state.portalUrl&&e.state.uid&&(this._oAuthLocationParams=e,r=!0);}catch{}else if(e.error&&e.error_description&&(console.log("IdentityManager OAuth Error: ",e.error," - ",e.error_description),"access_denied"===e.error&&(r=!0,e.state)))try{e.state=JSON.parse(e.state);}catch{}if(r){const t={...e};["code","error","error_description","message_code","persist","state"].forEach((e=>{delete t[e];}));const r=v$4(t),s=window.location.pathname+(r?`?${r}`:"")+(e.state?.hash||"");window.history.replaceState(window.history.state,"",s);}}}_getOAuthToken(e,t,r,i,o){return e=e.replace(/^http:/i,"https:"),U$1(`${e}/sharing/rest/oauth2/token`,{authMode:"anonymous",method:"post",query:i&&o?{grant_type:"authorization_code",code:t,redirect_uri:i,client_id:r,code_verifier:o}:{grant_type:"refresh_token",refresh_token:t,client_id:r}}).then((e=>e.data))}async _getCodeChallenge(e){if(e&&globalThis.isSecureContext){const t=(new TextEncoder).encode(e),r=await crypto.subtle.digest("SHA-256",t);return et(new Uint8Array(r))}return null}_pageShowHandler(e){if(e.persisted&&this.isBusy()&&this._rejectOnPersistedPageShow){const e=new s$a("identity-manager:user-aborted","ABORTED");this._errbackFunc(e);}}_findCredential(e,t){let r,s,i,o,n=-1;const a=t?.token,h=t?.resource,l=this._isServerRsrc(e)?"server":"portal",c=this.credentials.filter((t=>this._hasSameServerInstance(t.server,e)&&t.scope===l));if(e=h||e,c.length)if(1===c.length){if(r=c[0],i=this.findServerInfo(r.server),s=i?.owningSystemUrl,o=s?this.findCredential(s,r.userId):void 0,n=this._getIdenticalSvcIdx(e,r),!a)return -1===n&&r.resources.push(e),this._addResource(e,o),r;-1!==n&&(r.resources.splice(n,1),this._removeResource(e,o));}else {let t,r;if(c.some((a=>(r=this._getIdenticalSvcIdx(e,a),-1!==r&&(t=a,i=this.findServerInfo(t.server),s=i?.owningSystemUrl,o=s?this.findCredential(s,t.userId):void 0,n=r,!0)))),a)t&&(t.resources.splice(n,1),this._removeResource(e,o));else if(t)return this._addResource(e,o),t}}_findOAuthInfo(e){let t=this.findOAuthInfo(e);if(!t)for(const r of this.oAuthInfos)if(this._isIdProvider(r.portalUrl,e)){t=r;break}return t}_addResource(e,t){t&&-1===this._getIdenticalSvcIdx(e,t)&&t.resources.push(e);}_removeResource(e,t){let r=-1;t&&(r=this._getIdenticalSvcIdx(e,t),r>-1&&t.resources.splice(r,1));}_useProxy(e,t){return t?.isAdmin&&!F(e.adminTokenServiceUrl,this._appOrigin)||!this._isPortalDomain(e.tokenServiceUrl)&&"10.1"===String(e.currentVersion)&&!F(e.tokenServiceUrl,this._appOrigin)}_getOrigin(e){const t=new x$3(e);return t.scheme+"://"+t.host+(null!=t.port?":"+t.port:"")}_getServerInstanceRoot(e){const t=e.toLowerCase();let r=t.indexOf(this._agsRest);return -1===r&&this._isAdminResource(e)&&(r=this._agsAdmin.test(e)?e.replace(this._agsAdmin,"$1").length:e.search(this._adminSvcs)),-1!==r||a$6(t)||(r=t.indexOf("/sharing")),-1===r&&t.endsWith("/")&&(r=t.length-1),r>-1?e.slice(0,r):e}_hasSameServerInstance(e,t){return e.endsWith("/")&&(e=e.slice(0,-1)),e=e.toLowerCase(),t=this._getServerInstanceRoot(t).toLowerCase(),e=r$9(e),t=r$9(t),(e=e.slice(Math.max(0,e.indexOf(":"))))===(t=t.slice(Math.max(0,t.indexOf(":"))))}_sanitizeUrl(e){const r=(s$b.request.proxyUrl||"").toLowerCase(),s=r?e.toLowerCase().indexOf(r+"?"):-1;return -1!==s&&(e=e.slice(s+r.length+1)),e=K(e),I(e).path}_isRESTService(e){return e.includes(this._agsRest)}_isAdminResource(e){return this._agsAdmin.test(e)||this._adminSvcs.test(e)}_isServerRsrc(e){return this._isRESTService(e)||this._isAdminResource(e)}_isIdenticalService(e,t){let r=!1;if(this._isRESTService(e)&&this._isRESTService(t)){const s=this._getSuffix(e).toLowerCase(),i=this._getSuffix(t).toLowerCase();if(r=s===i,!r){const e=/(.*)\/(MapServer|FeatureServer|UtilityNetworkServer).*/gi;r=s.replaceAll(e,"$1")===i.replaceAll(e,"$1");}}else this._isAdminResource(e)&&this._isAdminResource(t)?r=!0:this._isServerRsrc(e)||this._isServerRsrc(t)||!this._isPortalDomain(e)||(r=!0);return r}_isPortalDomain(e){const r=new x$3(e.toLowerCase()),s=this._portalConfig;let i=this._gwDomains.some((e=>e.regex.test(r.uri)));return !i&&s&&(i=this._hasSameServerInstance(this._getServerInstanceRoot(s.restBaseUrl),r.uri)),i||s$b.portalUrl&&(i=F(r,s$b.portalUrl,!0)),i||(i=this._portals.some((e=>this._hasSameServerInstance(e,r.uri)))),i=i||this._agsPortal.test(r.path),i}_isIdProvider(e,t){let r=-1,s=-1;this._gwDomains.forEach(((i,o)=>{-1===r&&i.regex.test(e)&&(r=o),-1===s&&i.regex.test(t)&&(s=o);}));let i=!1;if(r>-1&&s>-1&&(0===r||4===r?0!==s&&4!==s||(i=!0):1===r?1!==s&&2!==s||(i=!0):2===r?2===s&&(i=!0):3===r&&3===s&&(i=!0)),!i){const r=this.findServerInfo(t),s=r?.owningSystemUrl;s&&C(r)&&this._isPortalDomain(s)&&this._isIdProvider(e,s)&&(i=!0);}return i}_getIdenticalSvcIdx(e,t){let r=-1;for(let s=0;s<t.resources.length;s++){const i=t.resources[s];if(this._isIdenticalService(e,i)){r=s;break}}return r}_getSuffix(e){return e.replace(this._regexSDirUrl,"").replace(this._regexServerType,"$1")}_getTokenSvcUrl(e){let t,r,i;if(this._isRESTService(e)||this._isAdminResource(e)){const i=this._getServerInstanceRoot(e);return t=i+"/admin/generateToken",r=U$1(e=i+"/rest/info",{query:{f:"json"}}).then((e=>e.data)),{adminUrl:t,promise:r}}if(this._isPortalDomain(e)){let t="";if(this._gwDomains.some((r=>(r.regex.test(e)&&(t=r.tokenServiceUrl),!!t))),t||this._portals.some((r=>(this._hasSameServerInstance(r,e)&&(t=r+this._gwTokenUrl),!!t))),t||(i=e.toLowerCase().indexOf("/sharing"),-1!==i&&(t=e.slice(0,i)+this._gwTokenUrl)),t||(t=this._getOrigin(e)+this._gwTokenUrl),t){const r=new x$3(e).port;/^http:\/\//i.test(e)&&"7080"===r&&(t=t.replace(/:7080/i,":7443")),t=t.replace(/http:/i,"https:");}return t}}_processOAuthResponseParams(e,t,r){const s=t._oAuthCred;if(e.code){const i=s.codeVerifier;return s.codeVerifier=null,s.stateUID=null,s.save(),this._getOAuthToken(r.server,e.code,t.appId,this._getRedirectURI(t,!0),i).then((i=>{const o=new E({userId:i.username,server:r.server??void 0,token:i.access_token,expires:Date.now()+1e3*i.expires_in,ssl:i.ssl,oAuthState:e.state,_oAuthCred:s});return t.userId=o.userId,s.storage=i.persist?b:q,s.refreshToken=i.refresh_token,s.token=null,s.expires=i.refresh_token_expires_in?Date.now()+1e3*i.refresh_token_expires_in:null,s.userId=o.userId,s.ssl=o.ssl,s.save(),o}))}const i=new E({userId:e.username,server:r.server??void 0,token:e.access_token,expires:Date.now()+1e3*Number(e.expires_in),ssl:"true"===e.ssl,oAuthState:e.state,_oAuthCred:s});return t.userId=i.userId,s.storage=e.persist?b:q,s.refreshToken=null,s.token=i.token,s.expires=i.expires,s.userId=i.userId,s.ssl=i.ssl,s.save(),Promise.resolve(i)}_processOAuthPopupParams(e){const t=this._oAuthDfd;if(this._oAuthDfd=null,t)if(clearInterval(this._oAuthIntervalId),this._oAuthOnPopupHandle?.remove(),e.error){const r="access_denied"===e.error,s=new s$a(r?"identity-manager:user-aborted":"identity-manager:authentication-failed",r?"ABORTED":"OAuth: "+e.error+" - "+e.error_description);t.reject(s);}else this._processOAuthResponseParams(e,t.oinfo_,t.sinfo_).then((e=>{t.resolve(e);})).catch((e=>{t.reject(e);}));}_setOAuthResponseQueryString(e){e&&("?"===e.charAt(0)&&(e=e.slice(1)),this._processOAuthPopupParams(A$4(e)));}async _exchangeToken(e,t,r){return (await U$1(`${e}/sharing/rest/oauth2/exchangeToken`,{authMode:"anonymous",method:"post",query:{f:"json",client_id:t,token:r}})).data.token}async _getPlatformSelf(e,t){if(this._getPlatformSelfError&&Date.now()-this._getPlatformSelfError[1]<1e3)throw this._getPlatformSelfError[0];e=e.replace(/^http:/i,"https:");try{const r=await U$1(`${e}/sharing/rest/oauth2/platformSelf`,{authMode:"anonymous",headers:{"X-Esri-Auth-Client-Id":t,"X-Esri-Auth-Redirect-Uri":window.location.href.replace(/#.*$/,"")},method:"post",query:{f:"json",expiration:30},withCredentials:!0});return this._getPlatformSelfError=null,r.data}catch(r){throw "OAUTH_0066"===r.details?.messageCode&&(this._getPlatformSelfError=[r,Date.now()]),r}}_getPortalSelf(e,t){let r;if(this._gwDomains.some((t=>(t.regex.test(e)&&(r=t.customBaseUrl),!!r))),r)return Promise.resolve({allSSL:!0,currentVersion:"8.4",customBaseUrl:r,portalMode:"multitenant",supportsOAuth:!0});this._appOrigin.startsWith("https:")?e=e.replace(/^http:/i,"https:").replace(/:7080/i,":7443"):/^http:/i.test(t)&&(e=e.replace(/^https:/i,"http:").replace(/:7443/i,":7080"));return U$1(e,{query:{f:"json"},authMode:"anonymous",withCredentials:!0}).then((e=>e.data))}_doPortalSignIn(e){const t=this._portalConfig,r=window.location.href,s=this.findServerInfo(e);return !(!t&&!this._isPortalDomain(r)||!(s?s.hasPortal||s.owningSystemUrl&&this._isPortalDomain(s.owningSystemUrl):this._isPortalDomain(e))||!(this._isIdProvider(r,e)||t&&(this._hasSameServerInstance(this._getServerInstanceRoot(t.restBaseUrl),e)||this._isIdProvider(t.restBaseUrl,e))||F(r,e,!0)))}_checkProtocol(e,t,r,s){let o=!0;const n=s?t.adminTokenServiceUrl:t.tokenServiceUrl;if(n.trim().toLowerCase().startsWith("https:")&&!this._appOrigin.startsWith("https:")&&T(n)&&(o=!!this._protocolFunc&&!!this._protocolFunc({resourceUrl:e,serverInfo:t}),!o)){r(new s$a("identity-manager:aborted","Aborted the Sign-In process to avoid sending password over insecure connection."));}return o}_enqueue(e,t,r,s,i,o){return s||(s=L$1()),s.resUrl_=e,s.sinfo_=t,s.options_=r,s.admin_=i,s.refresh_=o,this._busy?this._hasSameServerInstance(this._getServerInstanceRoot(e),this._busy.resUrl_)?(this._oAuthDfd&&this._oAuthDfd.oAuthWin_&&this._oAuthDfd.oAuthWin_.focus(),this._soReqs.push(s)):this._xoReqs.push(s):this._doSignIn(s),s.promise}_doSignIn(e$1){this._busy=e$1,this._rejectOnPersistedPageShow=!1;const t=t=>{const r=e$1.options_?.resource,s=e$1.resUrl_,i=e$1.refresh_;let o=!1;this.credentials.includes(t)||(i&&this.credentials.includes(i)?(i.userId=t.userId,i.token=t.token,i.expires=t.expires,i.validity=t.validity,i.ssl=t.ssl,i.creationTime=t.creationTime,o=!0,t=i):this.credentials.push(t)),t.resources||(t.resources=[]),t.resources.includes(r||s)||t.resources.push(r||s),t.scope=this._isServerRsrc(s)?"server":"portal",t.emitTokenChange();const n=this._soReqs,a={};this._soReqs=[],n.forEach((e=>{if(!this._isIdenticalService(s,e.resUrl_)){const r=this._getSuffix(e.resUrl_);a[r]||(a[r]=!0,t.resources.push(e.resUrl_));}})),e$1.resolve(t),n.forEach((e=>{this._hasSameServerInstance(this._getServerInstanceRoot(s),e.resUrl_)?e.resolve(t):this._soReqs.push(e);})),this._busy=e$1.resUrl_=e$1.sinfo_=e$1.refresh_=null,o||this.emit("credential-create",{credential:t}),this._soReqs.length?this._doSignIn(this._soReqs.shift()):this._xoReqs.length&&this._doSignIn(this._xoReqs.shift());},r=t=>{e$1.reject(t),this._busy=e$1.resUrl_=e$1.sinfo_=e$1.refresh_=null,this._soReqs.length?this._doSignIn(this._soReqs.shift()):this._xoReqs.length&&this._doSignIn(this._xoReqs.shift());},s=(o,a,h,l)=>{const d=e$1.sinfo_,u=!e$1.options_||!1!==e$1.options_.prompt,_=d.hasPortal&&this._findOAuthInfo(e$1.resUrl_);let f,g;if(o)t(new E({userId:o,server:d.server??void 0,token:h??void 0,expires:null!=l?Number(l):null,ssl:!!a}));else if(window!==window.parent&&this._appUrlObj.query?.["arcgis-auth-origin"]&&this._appUrlObj.query?.["arcgis-auth-portal"]&&this._hasSameServerInstance(this._getServerInstanceRoot(this._appUrlObj.query["arcgis-auth-portal"]),e$1.resUrl_)){window.parent.postMessage({type:"arcgis:auth:requestCredential"},this._appUrlObj.query["arcgis-auth-origin"]);const s=o$8(window,"message",(e=>{e.source===window.parent&&e.data&&("arcgis:auth:credential"===e.data.type?(s.remove(),e.data.credential.expires<Date.now()?r(new s$a("identity-manager:credential-request-failed","Parent application's token has expired.")):t(new E(e.data.credential))):"arcgis:auth:error"===e.data.type&&(s.remove(),"tokenExpiredError"===e.data.error.name?r(new s$a("identity-manager:credential-request-failed","Parent application's token has expired.")):r(s$a.fromJSON(e.data.error))));}));m$5(e$1.options_?.signal,(()=>{s.remove();}));}else if(_){let o=_._oAuthCred;if(!o){const e$1=new e(_,b),t=new e(_,q);e$1.isValid()&&t.isValid()?e$1.expires>t.expires?(o=e$1,t.destroy()):(o=t,e$1.destroy()):o=e$1.isValid()?e$1:t,_._oAuthCred=o;}if(o.isValid()){f=new E({userId:o.userId??void 0,server:d.server??void 0,token:o.token??void 0,expires:o.expires,ssl:o.ssl??void 0,_oAuthCred:o});const i=_.appId!==o.appId&&this._doPortalSignIn(e$1.resUrl_);i||o.refreshToken?(e$1._pendingDfd=o.refreshToken?this._getOAuthToken(d.server,o.refreshToken,o.appId).then((e=>(f.expires=Date.now()+1e3*e.expires_in,f.token=e.access_token,f))):Promise.resolve(f),e$1._pendingDfd.then((e=>i?this._exchangeToken(e.server,_.appId,e.token).then((t=>(e.token=t,e))).catch((()=>e)):e)).then((e=>{t(e);})).catch((e=>{const t=e.details?.httpStatus;t>0&&404!==t?(o.destroy(),s()):r(e);}))):t(f);}else if(this._oAuthLocationParams&&this._hasSameServerInstance(_.portalUrl,this._oAuthLocationParams.state.portalUrl)&&(this._oAuthLocationParams.access_token||this._oAuthLocationParams.code&&this._oAuthLocationParams.state.uid===o.stateUID&&o.codeVerifier)){const s=this._oAuthLocationParams;this._oAuthLocationParams=null,e$1._pendingDfd=this._processOAuthResponseParams(s,_,d).then((e=>{t(e);})).catch(r);}else {const s=()=>{u?e$1._pendingDfd=this.oAuthSignIn(e$1.resUrl_,d,_,e$1.options_).then(t,r):(g=new s$a("identity-manager:not-authenticated","User is not signed in."),r(g));};this._doPortalSignIn(e$1.resUrl_)?e$1._pendingDfd=this._getPlatformSelf(d.server,_.appId).then((e=>{F(e.portalUrl,this._appOrigin,!0)?(f=new E({userId:e.username,server:d.server??void 0,expires:Date.now()+1e3*e.expires_in,token:e.token}),t(f)):s();})).catch(s):s();}}else if(u){if(this._checkProtocol(e$1.resUrl_,d,r,e$1.admin_)){let s=e$1.options_;e$1.admin_&&(s=s||{},s.isAdmin=!0),e$1._pendingDfd=this.signIn(e$1.resUrl_,d,s).then(t,r);}}else g=new s$a("identity-manager:not-authenticated","User is not signed in."),r(g);},o=()=>{const s=e$1.sinfo_,i=s.owningSystemUrl,o=e$1.options_;let n,a,h,l;if(o&&(n=o.token,a=o.error,h=o.prompt),l=this._findCredential(i,{token:n,resource:e$1.resUrl_}),!l)for(const e of this.credentials)if(this._isIdProvider(i,e.server)){l=e;break}if(l){const i=this.findCredential(e$1.resUrl_,l.userId);if(i)t(i);else if(D(s,this._legacyFed)){const e=l.toJSON();e.server=s.server,e.resources=null,t(new E(e));}else {(e$1._pendingDfd=this.generateToken(this.findServerInfo(l.server),null,{serverUrl:e$1.resUrl_,token:l.token,signal:e$1.options_.signal,ssl:l.ssl})).then((r=>{t(new E({userId:l?.userId,server:s.server??void 0,token:r.token,expires:null!=r.expires?Number(r.expires):null,ssl:!!r.ssl,isAdmin:e$1.admin_,validity:r.validity}));}),r);}}else {this._busy=null,n&&(e$1.options_.token=null);(e$1._pendingDfd=this.getCredential(i.replace(/\/?$/,"/sharing"),{resource:e$1.resUrl_,owningTenant:s.owningTenant,signal:e$1.options_.signal,token:n,error:a,prompt:h})).then((()=>{this._enqueue(e$1.resUrl_,e$1.sinfo_,e$1.options_,e$1,e$1.admin_);}),(t=>{e$1.resUrl_=e$1.sinfo_=e$1.refresh_=null,e$1.reject(t);}));}};this._errbackFunc=r;const a=e$1.sinfo_.owningSystemUrl,l=this._isServerRsrc(e$1.resUrl_),d=e$1.sinfo_._restInfoPms;d?d.promise.then((t=>{const r=e$1.sinfo_;if(r._restInfoPms){r.adminTokenServiceUrl=r._restInfoPms.adminUrl,r._restInfoPms=null,r.tokenServiceUrl=(t$7("authInfo.tokenServicesUrl",t)||t$7("authInfo.tokenServiceUrl",t)||t$7("tokenServiceUrl",t))??null,r.shortLivedTokenValidity=t$7("authInfo.shortLivedTokenValidity",t)??null,r.currentVersion=t.currentVersion,r.owningTenant=t.owningTenant;const e=r.owningSystemUrl=t.owningSystemUrl;e&&this._portals.push(e);}l&&r.owningSystemUrl?o():s();}),(()=>{e$1.sinfo_._restInfoPms=null;const t=new s$a("identity-manager:server-identification-failed","Unknown resource - could not find token service endpoint.");r(t);})):l&&a?o():e$1.sinfo_._selfReq?e$1.sinfo_._selfReq.selfDfd.then((t=>{const r={};let s,i,o,n;return t&&(s=t.user?.username,r.username=s,r.allSSL=t.allSSL,i=t.supportsOAuth,n=parseFloat(t.currentVersion),"multitenant"===t.portalMode&&(o=t.customBaseUrl),e$1.sinfo_.currentVersion=n),e$1.sinfo_.webTierAuth=!!s,s&&this.normalizeWebTierAuth?this.generateToken(e$1.sinfo_,null,{ssl:r.allSSL}).catch((()=>null)).then((e=>(r.portalToken=e?.token,r.tokenExpiration=e?.expires,r))):!s&&i&&n>=4.4&&!this._findOAuthInfo(e$1.resUrl_)?this._generateOAuthInfo({portalUrl:e$1.sinfo_.server,customBaseUrl:o,owningTenant:e$1.sinfo_._selfReq.owningTenant}).catch((()=>null)).then((()=>r)):r})).catch((()=>null)).then((t=>{e$1.sinfo_._selfReq=null,t?s(t.username,t.allSSL,t.portalToken,t.tokenExpiration):s();})):s();}_generateOAuthInfo(e){let t,r=null,i=e.portalUrl;const o=e.customBaseUrl,n=e.owningTenant,a=!this._defaultOAuthInfo&&this._createDefaultOAuthInfo&&!this._hasTestedIfAppIsOnPortal;if(a){r=window.location.href;let e=r.indexOf("?");e>-1&&(r=r.slice(0,e)),e=r.search(/\/(apps|home)\//),r=e>-1?r.slice(0,e):null;}return a&&r?(this._hasTestedIfAppIsOnPortal=!0,t=U$1(r+"/sharing/rest",{query:{f:"json"}}).then((()=>{this._defaultOAuthInfo=new i$1({appId:"arcgisonline",popupCallbackUrl:r+"/home/oauth-callback.html"});}))):t=Promise.resolve(),t.then((()=>{if(this._defaultOAuthInfo)return i=i.replace(/^http:/i,"https:"),U$1(i+"/sharing/rest/oauth2/validateRedirectUri",{query:{accountId:n,client_id:this._defaultOAuthInfo.appId,redirect_uri:_(this._defaultOAuthInfo.popupCallbackUrl),f:"json"}}).then((e=>{if(e.data.valid){const t=this._defaultOAuthInfo.clone();e.data.urlKey&&o?t.portalUrl="https://"+e.data.urlKey.toLowerCase()+"."+o:t.portalUrl=i,t.popup=window!==window.top||!(F(i,this._appOrigin)||this._gwDomains.some((e=>e.regex.test(i)&&e.regex.test(this._appOrigin)))),this.oAuthInfos.push(t);}}))}))}_doOAuthSignIn(e,t,r,s){const o=r._oAuthCred,a={portalUrl:r.portalUrl};!r.popup&&r.preserveUrlHash&&window.location.hash&&(a.hash=window.location.hash),o.stateUID&&(a.uid=o.stateUID);const h={client_id:r.appId,response_type:o.codeVerifier?"code":"token",state:JSON.stringify(a),expiration:r.expiration,locale:r.locale,redirect_uri:this._getRedirectURI(r,!!o.codeVerifier)};r.forceLogin&&(h.force_login=!0),r.forceUserId&&r.userId&&(h.prepopulatedusername=r.userId),!r.popup&&this._doPortalSignIn(e)&&(h.redirectToUserOrgUrl=!0),o.codeVerifier&&(h.code_challenge=s||o.codeVerifier,h.code_challenge_method=s?"S256":"plain");const l=r.portalUrl.replace(/^http:/i,"https:")+"/sharing/oauth2/authorize",c=l+"?"+v$4(h);if(r.popup){const e=window.open(c,"esriJSAPIOAuth",r.popupWindowFeatures);if(e)e.focus(),this._oAuthDfd.oAuthWin_=e,this._oAuthIntervalId=setInterval((()=>{if(e.closed){clearInterval(this._oAuthIntervalId),this._oAuthOnPopupHandle.remove();const e=this._oAuthDfd;if(e){const t=new s$a("identity-manager:user-aborted","ABORTED");e.reject(t);}}}),500),this._oAuthOnPopupHandle=o$8(window,["arcgis:auth:hash","arcgis:auth:location:search"],(e=>{"arcgis:auth:hash"===e.type?this.setOAuthResponseHash(e.detail):this._setOAuthResponseQueryString(e.detail);}));else {const e=new s$a("identity-manager:popup-blocked","ABORTED");this._oAuthDfd.reject(e);}}else this._rejectOnPersistedPageShow=!0,this._oAuthRedirectFunc?this._oAuthRedirectFunc({authorizeParams:h,authorizeUrl:l,resourceUrl:e,serverInfo:t,oAuthInfo:r}):window.location.href=c;}_getRedirectURI(e,t){const r=window.location.href.replace(/#.*$/,"");if(e.popup)return _(e.popupCallbackUrl);if(t){const e=I(r);return e.query&&["code","error","error_description","message_code","persist","state"].forEach((t=>{delete e.query[t];})),Et(e.path,e.query)}return r}}j.prototype.declaredClass="esri.identity.IdentityManagerBase";let E=class extends o$6.EventedAccessor{constructor(e){super(e),this._oAuthCred=null,this.tokenRefreshBuffer=2,e?._oAuthCred&&(this._oAuthCred=e._oAuthCred);}initialize(){this.resources=this.resources||[],null==this.creationTime&&(this.creationTime=Date.now());}refreshToken(){const e=i$7,t=e.findServerInfo(this.server),s=t?.owningSystemUrl,i=!!s&&"server"===this.scope,o=i&&D(t,e._legacyFed),n=t.webTierAuth,a=n&&e.normalizeWebTierAuth,h=R[this.server],l=h?.[this.userId];let c,d=this.resources&&this.resources[0],u=i?e.findServerInfo(s):null,p={username:this.userId,password:l};if(n&&!a)return;i&&!u&&e.serverInfos.some((t=>(e._isIdProvider(s,t.server)&&(u=t),!!u)));const _=u?e.findCredential(u.server,this.userId):null;if(!i||_){if(!o){if(i)c={serverUrl:d,token:_?.token,ssl:_?.ssl};else if(a)p=null,c={ssl:this.ssl};else {if(!l){let r;return d&&(d=e._sanitizeUrl(d),this._enqueued=1,r=e._enqueue(d,t,null,null,this.isAdmin,this),r.then((()=>{this._enqueued=0,this.refreshServerTokens();})).catch((()=>{this._enqueued=0;}))),r}this.isAdmin&&(c={isAdmin:!0});}return e.generateToken(i?u:t,i?null:p,c).then((e=>{this.token=e.token,this.expires=null!=e.expires?Number(e.expires):null,this.creationTime=Date.now(),this.validity=e.validity,this.emitTokenChange(),this.refreshServerTokens();})).catch((()=>{}))}_?.refreshToken();}}refreshServerTokens(){if("portal"===this.scope){const e=i$7;e.credentials.forEach((t=>{const r=e.findServerInfo(t.server),s=r?.owningSystemUrl;t!==this&&t.userId===this.userId&&s&&"server"===t.scope&&(e._hasSameServerInstance(this.server,s)||e._isIdProvider(s,this.server))&&(D(r,e._legacyFed)?(t.token=this.token,t.expires=this.expires,t.creationTime=this.creationTime,t.validity=this.validity,t.emitTokenChange()):t.refreshToken());}));}}emitTokenChange(e){clearTimeout(this._refreshTimer);const t=i$7,s=this.server?t.findServerInfo(this.server):null,i=s?.owningSystemUrl,o=i?t.findServerInfo(i):null;!1===e||i&&"portal"!==this.scope&&(!o?.webTierAuth||t.normalizeWebTierAuth)||null==this.expires&&null==this.validity||this._startRefreshTimer(),this.emit("token-change");}destroy(){this.userId=this.server=this.token=this.expires=this.validity=this.resources=this.creationTime=null,this._oAuthCred&&(this._oAuthCred.destroy(),this._oAuthCred=null);const e=i$7,t=e.credentials.indexOf(this);t>-1&&e.credentials.splice(t,1),this.emitTokenChange(),this.emit("destroy");}toJSON(){const e=l$6({userId:this.userId,server:this.server,token:this.token,expires:this.expires,validity:this.validity,ssl:this.ssl,isAdmin:this.isAdmin,creationTime:this.creationTime,scope:this.scope}),t=this.resources;return t&&t.length>0&&(e.resources=t.slice()),e}_startRefreshTimer(){clearTimeout(this._refreshTimer);const e=6e4*this.tokenRefreshBuffer,t=2**31-1;let r=(this.validity?this.creationTime+6e4*this.validity:this.expires)-Date.now();r<0?r=0:r>t&&(r=t),this._refreshTimer=setTimeout(this.refreshToken.bind(this),r>e?r-e:r);}};r$7([m$4()],E.prototype,"creationTime",void 0),r$7([m$4()],E.prototype,"expires",void 0),r$7([m$4()],E.prototype,"isAdmin",void 0),r$7([m$4()],E.prototype,"oAuthState",void 0),r$7([m$4()],E.prototype,"resources",void 0),r$7([m$4()],E.prototype,"scope",void 0),r$7([m$4()],E.prototype,"server",void 0),r$7([m$4()],E.prototype,"ssl",void 0),r$7([m$4()],E.prototype,"token",void 0),r$7([m$4()],E.prototype,"tokenRefreshBuffer",void 0),r$7([m$4()],E.prototype,"userId",void 0),r$7([m$4()],E.prototype,"validity",void 0),E=r$7([a$3("esri.identity.Credential")],E);
|
2475
327
|
|
2476
328
|
/*
|
2477
329
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
@@ -2480,8 +332,8 @@ See https://js.arcgis.com/4.31/esri/copyright.txt for details.
|
|
2480
332
|
class r extends j{}r.prototype.declaredClass="esri.identity.IdentityManager";const s=new r;n$f(s);
|
2481
333
|
|
2482
334
|
const IdentityManager = /*#__PURE__*/Object.freeze({
|
2483
|
-
|
2484
|
-
|
335
|
+
__proto__: null,
|
336
|
+
'default': s
|
2485
337
|
});
|
2486
338
|
|
2487
339
|
export { CSS_UTILITY as C, DEBOUNCE as D, IdentityManager as I, focusTrapStack as f, isBrowser as i };
|