@esri/solutions-components 0.6.7 → 0.6.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1280) hide show
  1. package/dist/cjs/ExpandToggle-e6a0d66e.js +117 -0
  2. package/dist/cjs/FloatingArrow-0119ec6e.js +48 -0
  3. package/dist/cjs/Heading-521f39ac.js +25 -0
  4. package/dist/cjs/app-globals-72576a1c.js +69 -0
  5. package/dist/cjs/ar-1718ae57.js +97 -0
  6. package/dist/cjs/basemap-gallery_4.cjs.entry.js +622 -0
  7. package/dist/cjs/bg-190a176c.js +78 -0
  8. package/dist/cjs/bs-919e0de8.js +47 -0
  9. package/dist/cjs/buffer-tools_4.cjs.entry.js +1437 -1437
  10. package/dist/cjs/ca-94918e06.js +67 -0
  11. package/dist/cjs/calcite-accordion-item.cjs.entry.js +140 -140
  12. package/dist/cjs/calcite-accordion.cjs.entry.js +75 -75
  13. package/dist/cjs/calcite-action-bar.cjs.entry.js +216 -216
  14. package/dist/cjs/calcite-action-group_2.cjs.entry.js +365 -365
  15. package/dist/cjs/calcite-action-pad.cjs.entry.js +135 -135
  16. package/dist/cjs/calcite-action_2.cjs.entry.js +445 -445
  17. package/dist/cjs/calcite-alert.cjs.entry.js +247 -247
  18. package/dist/cjs/calcite-avatar.cjs.entry.js +73 -73
  19. package/dist/cjs/calcite-block-section.cjs.entry.js +122 -122
  20. package/dist/cjs/calcite-block.cjs.entry.js +131 -131
  21. package/dist/cjs/calcite-button.cjs.entry.js +182 -182
  22. package/dist/cjs/calcite-card.cjs.entry.js +99 -99
  23. package/dist/cjs/calcite-checkbox.cjs.entry.js +125 -125
  24. package/dist/cjs/calcite-chip-group.cjs.entry.js +164 -164
  25. package/dist/cjs/calcite-chip.cjs.entry.js +213 -213
  26. package/dist/cjs/calcite-color-picker-hex-input_2.cjs.entry.js +303 -303
  27. package/dist/cjs/calcite-color-picker.cjs.entry.js +886 -886
  28. package/dist/cjs/calcite-combobox-item-group.cjs.entry.js +35 -35
  29. package/dist/cjs/calcite-combobox_6.cjs.entry.js +1786 -1786
  30. package/dist/cjs/calcite-date-picker-day_3.cjs.entry.js +589 -589
  31. package/dist/cjs/calcite-date-picker.cjs.entry.js +434 -434
  32. package/dist/cjs/calcite-fab.cjs.entry.js +66 -66
  33. package/dist/cjs/calcite-filter_5.cjs.entry.js +1131 -1131
  34. package/dist/cjs/calcite-flow-item.cjs.entry.js +146 -146
  35. package/dist/cjs/calcite-flow.cjs.entry.js +117 -117
  36. package/dist/cjs/calcite-graph.cjs.entry.js +66 -66
  37. package/dist/cjs/calcite-icon.cjs.entry.js +80 -80
  38. package/dist/cjs/calcite-inline-editable.cjs.entry.js +225 -225
  39. package/dist/cjs/calcite-input-date-picker.cjs.entry.js +632 -632
  40. package/dist/cjs/calcite-input-number_2.cjs.entry.js +846 -846
  41. package/dist/cjs/calcite-input-time-picker-b99baf7b.js +1718 -0
  42. package/dist/cjs/calcite-input-time-picker.cjs.entry.js +15 -15
  43. package/dist/cjs/calcite-input-time-zone.cjs.entry.js +150 -150
  44. package/dist/cjs/calcite-input_2.cjs.entry.js +645 -645
  45. package/dist/cjs/calcite-label.cjs.entry.js +40 -40
  46. package/dist/cjs/calcite-link.cjs.entry.js +96 -96
  47. package/dist/cjs/calcite-list-item-group.cjs.entry.js +46 -46
  48. package/dist/cjs/calcite-loader.cjs.entry.js +65 -65
  49. package/dist/cjs/calcite-menu-item.cjs.entry.js +246 -246
  50. package/dist/cjs/calcite-menu.cjs.entry.js +161 -161
  51. package/dist/cjs/calcite-modal.cjs.entry.js +282 -282
  52. package/dist/cjs/calcite-navigation-logo.cjs.entry.js +52 -52
  53. package/dist/cjs/calcite-navigation-user.cjs.entry.js +45 -45
  54. package/dist/cjs/calcite-navigation.cjs.entry.js +126 -126
  55. package/dist/cjs/calcite-notice.cjs.entry.js +105 -105
  56. package/dist/cjs/calcite-option-group.cjs.entry.js +24 -24
  57. package/dist/cjs/calcite-option_2.cjs.entry.js +271 -271
  58. package/dist/cjs/calcite-pagination.cjs.entry.js +191 -191
  59. package/dist/cjs/calcite-panel_2.cjs.entry.js +346 -346
  60. package/dist/cjs/calcite-pick-list-group.cjs.entry.js +46 -46
  61. package/dist/cjs/calcite-pick-list-item.cjs.entry.js +181 -181
  62. package/dist/cjs/calcite-pick-list.cjs.entry.js +130 -130
  63. package/dist/cjs/calcite-radio-button-group.cjs.entry.js +118 -118
  64. package/dist/cjs/calcite-radio-button.cjs.entry.js +292 -292
  65. package/dist/cjs/calcite-rating.cjs.entry.js +245 -245
  66. package/dist/cjs/calcite-scrim.cjs.entry.js +93 -93
  67. package/dist/cjs/calcite-segmented-control_2.cjs.entry.js +225 -225
  68. package/dist/cjs/calcite-shell-center-row.cjs.entry.js +42 -42
  69. package/dist/cjs/calcite-shell-panel_14.cjs.entry.js +2604 -2604
  70. package/dist/cjs/calcite-sortable-list.cjs.entry.js +134 -134
  71. package/dist/cjs/calcite-split-button.cjs.entry.js +92 -92
  72. package/dist/cjs/calcite-stepper-item.cjs.entry.js +197 -197
  73. package/dist/cjs/calcite-stepper.cjs.entry.js +187 -187
  74. package/dist/cjs/calcite-switch.cjs.entry.js +100 -100
  75. package/dist/cjs/calcite-text-area.cjs.entry.js +235 -235
  76. package/dist/cjs/calcite-tile-select-group.cjs.entry.js +27 -27
  77. package/dist/cjs/calcite-tile-select.cjs.entry.js +180 -180
  78. package/dist/cjs/calcite-tile.cjs.entry.js +58 -58
  79. package/dist/cjs/calcite-time-picker.cjs.entry.js +619 -619
  80. package/dist/cjs/calcite-tip-group.cjs.entry.js +10 -10
  81. package/dist/cjs/calcite-tip-manager.cjs.entry.js +185 -185
  82. package/dist/cjs/calcite-tip.cjs.entry.js +94 -94
  83. package/dist/cjs/calcite-tooltip.cjs.entry.js +185 -185
  84. package/dist/cjs/calcite-tree_3.cjs.entry.js +821 -821
  85. package/dist/cjs/card-manager_4.cjs.entry.js +707 -653
  86. package/dist/cjs/conditionalSlot-85b3a6b3.js +63 -0
  87. package/dist/cjs/crowdsource-manager.cjs.entry.js +258 -256
  88. package/dist/cjs/crowdsource-reporter.cjs.entry.js +60 -60
  89. package/dist/cjs/cs-fe27e732.js +143 -0
  90. package/dist/cjs/da-1b7f3440.js +62 -0
  91. package/dist/cjs/date-cec32b0e.js +250 -0
  92. package/dist/cjs/de-0dc1effa.js +87 -0
  93. package/dist/cjs/de-at-acdc4d01.js +86 -0
  94. package/dist/cjs/de-ch-778a0d99.js +86 -0
  95. package/dist/cjs/deduct-calculator.cjs.entry.js +90 -90
  96. package/dist/cjs/dom-c1807fc1.js +1046 -0
  97. package/dist/cjs/downloadUtils-a8c530f7.js +2767 -0
  98. package/dist/cjs/edit-card_2.cjs.entry.js +345 -345
  99. package/dist/cjs/el-fdbc9bc1.js +62 -0
  100. package/dist/cjs/en-au-0ff50cdf.js +62 -0
  101. package/dist/cjs/en-ca-284e9368.js +61 -0
  102. package/dist/cjs/en-gb-0fcae8ae.js +65 -0
  103. package/dist/cjs/es-cd54acba.js +62 -0
  104. package/dist/cjs/es-mx-2078d50f.js +61 -0
  105. package/dist/cjs/et-17f323f6.js +88 -0
  106. package/dist/cjs/fi-82f27397.js +111 -0
  107. package/dist/cjs/filter-bda212b4.js +765 -0
  108. package/dist/cjs/floating-ui-8d10af88.js +1888 -0
  109. package/dist/cjs/focusTrapComponent-a22fc6a8.js +1009 -0
  110. package/dist/cjs/form-9d8ebf06.js +288 -0
  111. package/dist/cjs/fr-af7e1192.js +64 -0
  112. package/dist/cjs/fr-ch-5e1f2c28.js +62 -0
  113. package/dist/cjs/he-ea851800.js +101 -0
  114. package/dist/cjs/hi-5212a21d.js +61 -0
  115. package/dist/cjs/hr-4eecb2ed.js +76 -0
  116. package/dist/cjs/hu-6b527d8e.js +84 -0
  117. package/dist/cjs/id-d78f12ec.js +62 -0
  118. package/dist/cjs/index-0e50040c.js +1938 -0
  119. package/dist/cjs/index-2b60e135.js +201 -0
  120. package/dist/cjs/index.es-4542630e.js +10808 -0
  121. package/dist/cjs/interfaces-d539e30c.js +85 -0
  122. package/dist/cjs/it-15242935.js +62 -0
  123. package/dist/cjs/it-ch-9dc21944.js +62 -0
  124. package/dist/cjs/ja-f702cfc2.js +68 -0
  125. package/dist/cjs/ko-aa9bde2c.js +68 -0
  126. package/dist/cjs/label-6e33e971.js +136 -0
  127. package/dist/cjs/list-item.cjs.entry.js +60 -60
  128. package/dist/cjs/loadModules-31cab7ac.js +30 -0
  129. package/dist/cjs/loadable-bac9cdd6.js +94 -0
  130. package/dist/cjs/loader.cjs.js +5 -14
  131. package/dist/cjs/locale-c63a1b57.js +604 -0
  132. package/dist/cjs/locale-d15cd743.js +416 -0
  133. package/dist/cjs/lt-e741ff2f.js +93 -0
  134. package/dist/cjs/lv-92d6768e.js +62 -0
  135. package/dist/cjs/map-select-tools_3.cjs.entry.js +1285 -1285
  136. package/dist/cjs/mapViewUtils-9da2dddd.js +411 -0
  137. package/dist/cjs/mk-b209ac0d.js +62 -0
  138. package/dist/cjs/nb-db13e666.js +63 -0
  139. package/dist/cjs/nl-fcd9e0c5.js +63 -0
  140. package/dist/cjs/openCloseComponent-5d70fcd8.js +84 -0
  141. package/dist/cjs/pci-calculator.cjs.entry.js +102 -102
  142. package/dist/cjs/pciUtils-e0ddeb7c.js +847 -0
  143. package/dist/cjs/pl-87c83322.js +110 -0
  144. package/dist/cjs/pt-b0b5f472.js +63 -0
  145. package/dist/cjs/pt-br-03333e90.js +61 -0
  146. package/dist/cjs/public-notification.cjs.entry.js +844 -844
  147. package/dist/cjs/publicNotificationStore-55edd658.js +51 -0
  148. package/dist/cjs/ro-c3661b73.js +62 -0
  149. package/dist/cjs/ru-8dd3fd58.js +122 -0
  150. package/dist/cjs/shared-list-render-c0adb192.js +364 -0
  151. package/dist/cjs/sk-151d9acf.js +144 -0
  152. package/dist/cjs/sl-9b45a152.js +62 -0
  153. package/dist/cjs/solution-configuration.cjs.entry.js +888 -888
  154. package/dist/cjs/solution-contents_3.cjs.entry.js +21506 -21506
  155. package/dist/cjs/solution-store-0004e4e6.js +4100 -0
  156. package/dist/cjs/solutions-components.cjs.js +5 -5
  157. package/dist/cjs/sortableComponent-58679f07.js +3112 -0
  158. package/dist/cjs/sr-186bf15c.js +97 -0
  159. package/dist/cjs/store-manager.cjs.entry.js +52 -52
  160. package/dist/cjs/sv-a93fee0c.js +67 -0
  161. package/dist/cjs/t9n-1d032c30.js +100 -0
  162. package/dist/cjs/th-41680352.js +61 -0
  163. package/dist/cjs/throttle-aeeb1b4d.js +75 -0
  164. package/dist/cjs/time-5e450ec8.js +208 -0
  165. package/dist/cjs/tr-0bd886d6.js +62 -0
  166. package/dist/cjs/uk-4fade133.js +100 -0
  167. package/dist/cjs/utils-acfeed9d.js +64 -0
  168. package/dist/cjs/utils-ae9bdd59.js +55 -0
  169. package/dist/cjs/vi-1c9fe343.js +66 -0
  170. package/dist/cjs/zh-cn-28fa1fe1.js +90 -0
  171. package/dist/cjs/zh-hk-5abf8eb5.js +67 -0
  172. package/dist/cjs/zh-tw-07500357.js +88 -0
  173. package/dist/collection/collection-manifest.json +37 -35
  174. package/dist/collection/components/basemap-gallery/basemap-gallery.css +19 -0
  175. package/dist/collection/components/basemap-gallery/basemap-gallery.js +166 -0
  176. package/dist/collection/components/basemap-gallery/test/basemap-gallery.e2e.js +29 -0
  177. package/dist/collection/components/basemap-gallery/test/basemap-gallery.spec.js +37 -0
  178. package/dist/collection/components/buffer-tools/buffer-tools.js +481 -476
  179. package/dist/collection/components/buffer-tools/test/buffer-tools.e2e.js +29 -0
  180. package/dist/collection/components/buffer-tools/test/buffer-tools.spec.js +160 -0
  181. package/dist/collection/components/card-manager/card-manager.js +199 -197
  182. package/dist/collection/components/card-manager/test/card-manager.e2e.js +29 -0
  183. package/dist/collection/components/card-manager/test/card-manager.spec.js +37 -0
  184. package/dist/collection/components/crowdsource-manager/crowdsource-manager.js +448 -406
  185. package/dist/collection/components/crowdsource-manager/test/crowdsource-manager.e2e.js +29 -0
  186. package/dist/collection/components/crowdsource-manager/test/crowdsource-manager.spec.js +37 -0
  187. package/dist/collection/components/crowdsource-reporter/crowdsource-reporter.js +89 -89
  188. package/dist/collection/components/crowdsource-reporter/test/crowdsource-reporter.e2e.js +29 -0
  189. package/dist/collection/components/crowdsource-reporter/test/crowdsource-reporter.spec.js +37 -0
  190. package/dist/collection/components/deduct-calculator/deduct-calculator.js +143 -143
  191. package/dist/collection/components/deduct-calculator/test/deduct-calculator.e2e.js +29 -0
  192. package/dist/collection/components/deduct-calculator/test/deduct-calculator.spec.js +37 -0
  193. package/dist/collection/components/edit-card/edit-card.js +302 -300
  194. package/dist/collection/components/edit-card/test/edit-card.e2e.js +14 -0
  195. package/dist/collection/components/edit-card/test/edit-card.spec.js +22 -0
  196. package/dist/collection/components/info-card/info-card.js +361 -357
  197. package/dist/collection/components/info-card/test/info-card.e2e.js +29 -0
  198. package/dist/collection/components/info-card/test/info-card.spec.js +37 -0
  199. package/dist/collection/components/json-editor/json-editor.js +618 -614
  200. package/dist/collection/components/json-editor/test/json-editor.e2e.js +36 -0
  201. package/dist/collection/components/json-editor/test/json-editor.spec.js +65 -0
  202. package/dist/collection/components/layer-table/layer-table.js +620 -548
  203. package/dist/collection/components/layer-table/test/layer-table.e2e.js +29 -0
  204. package/dist/collection/components/layer-table/test/layer-table.spec.js +37 -0
  205. package/dist/collection/components/layout-manager/layout-manager.js +136 -135
  206. package/dist/collection/components/layout-manager/test/layout-manager.e2e.js +29 -0
  207. package/dist/collection/components/layout-manager/test/layout-manager.spec.js +37 -0
  208. package/dist/collection/components/list-item/list-item.js +89 -89
  209. package/dist/collection/components/list-item/test/list-item.e2e.js +29 -0
  210. package/dist/collection/components/list-item/test/list-item.spec.js +37 -0
  211. package/dist/collection/components/map-card/map-card.css +0 -7
  212. package/dist/collection/components/map-card/map-card.js +211 -203
  213. package/dist/collection/components/map-card/test/map-card.e2e.js +29 -0
  214. package/dist/collection/components/map-card/test/map-card.spec.js +37 -0
  215. package/dist/collection/components/map-draw-tools/map-draw-tools.js +692 -683
  216. package/dist/collection/components/map-draw-tools/test/map-draw-tools.e2e.js +29 -0
  217. package/dist/collection/components/map-draw-tools/test/map-draw-tools.spec.js +37 -0
  218. package/dist/collection/components/map-layer-picker/map-layer-picker.js +424 -423
  219. package/dist/collection/components/map-layer-picker/test/map-layer-picker.e2e.js +29 -0
  220. package/dist/collection/components/map-layer-picker/test/map-layer-picker.spec.js +114 -0
  221. package/dist/collection/components/map-picker/map-picker.js +226 -224
  222. package/dist/collection/components/map-picker/test/map-picker.e2e.js +29 -0
  223. package/dist/collection/components/map-picker/test/map-picker.spec.js +37 -0
  224. package/dist/collection/components/map-search/map-search.css +24 -0
  225. package/dist/collection/components/map-search/map-search.js +321 -0
  226. package/dist/collection/components/map-search/test/map-search.e2e.js +29 -0
  227. package/dist/collection/components/map-search/test/map-search.spec.js +37 -0
  228. package/dist/collection/components/map-select-tools/map-select-tools.js +1242 -1229
  229. package/dist/collection/components/map-select-tools/test/map-select-tools.e2e.js +29 -0
  230. package/dist/collection/components/map-select-tools/test/map-select-tools.spec.js +366 -0
  231. package/dist/collection/components/map-tools/map-tools.js +337 -210
  232. package/dist/collection/components/map-tools/test/map-tools.e2e.js +29 -0
  233. package/dist/collection/components/map-tools/test/map-tools.spec.js +37 -0
  234. package/dist/collection/components/pci-calculator/pci-calculator.js +143 -143
  235. package/dist/collection/components/pci-calculator/test/pci-calculator.e2e.js +29 -0
  236. package/dist/collection/components/pci-calculator/test/pci-calculator.spec.js +37 -0
  237. package/dist/collection/components/pdf-download/pdf-download.js +338 -333
  238. package/dist/collection/components/pdf-download/test/pdf-download.e2e.js +76 -0
  239. package/dist/collection/components/pdf-download/test/pdf-download.spec.js +107 -0
  240. package/dist/collection/components/public-notification/public-notification.js +1295 -1287
  241. package/dist/collection/components/public-notification/test/public-notification.spec.js +161 -0
  242. package/dist/collection/components/refine-selection/refine-selection.js +608 -601
  243. package/dist/collection/components/refine-selection/test/refine-selection.e2e.js +14 -0
  244. package/dist/collection/components/refine-selection/test/refine-selection.spec.js +22 -0
  245. package/dist/collection/components/solution-configuration/solution-configuration.js +739 -735
  246. package/dist/collection/components/solution-configuration/test/solution-configuration.e2e.js +36 -0
  247. package/dist/collection/components/solution-configuration/test/solution-configuration.spec.js +119 -0
  248. package/dist/collection/components/solution-contents/solution-contents.js +163 -162
  249. package/dist/collection/components/solution-contents/test/solution-contents.e2e.js +94 -0
  250. package/dist/collection/components/solution-contents/test/solution-contents.spec.js +143 -0
  251. package/dist/collection/components/solution-item/solution-item.js +203 -202
  252. package/dist/collection/components/solution-item/test/solution-item.e2e.js +36 -0
  253. package/dist/collection/components/solution-item/test/solution-item.spec.js +77 -0
  254. package/dist/collection/components/solution-item-details/solution-item-details.js +248 -248
  255. package/dist/collection/components/solution-item-details/test/solution-item-details.e2e.js +36 -0
  256. package/dist/collection/components/solution-item-details/test/solution-item-details.spec.js +142 -0
  257. package/dist/collection/components/solution-item-icon/solution-item-icon.js +398 -398
  258. package/dist/collection/components/solution-item-icon/test/solution-item-icon.e2e.js +29 -0
  259. package/dist/collection/components/solution-item-icon/test/solution-item-icon.spec.js +39 -0
  260. package/dist/collection/components/solution-item-sharing/solution-item-sharing.js +200 -199
  261. package/dist/collection/components/solution-item-sharing/test/solution-item-sharing.e2e.js +36 -0
  262. package/dist/collection/components/solution-item-sharing/test/solution-item-sharing.spec.js +54 -0
  263. package/dist/collection/components/solution-organization-variables/solution-organization-variables.js +156 -156
  264. package/dist/collection/components/solution-organization-variables/test/solution-organization-variables.e2e.js +36 -0
  265. package/dist/collection/components/solution-organization-variables/test/solution-organization-variables.spec.js +65 -0
  266. package/dist/collection/components/solution-resource-item/solution-resource-item.js +348 -347
  267. package/dist/collection/components/solution-resource-item/test/solution-resource-item.e2e.js +36 -0
  268. package/dist/collection/components/solution-resource-item/test/solution-resource-item.spec.js +55 -0
  269. package/dist/collection/components/solution-spatial-ref/solution-spatial-ref.js +515 -510
  270. package/dist/collection/components/solution-spatial-ref/spatialreferences.js +21046 -21046
  271. package/dist/collection/components/solution-spatial-ref/test/solution-spatial-ref.e2e.js +36 -0
  272. package/dist/collection/components/solution-spatial-ref/test/solution-spatial-ref.spec.js +175 -0
  273. package/dist/collection/components/solution-template-data/solution-template-data.js +230 -230
  274. package/dist/collection/components/solution-template-data/test/solution-template-data.e2e.js +36 -0
  275. package/dist/collection/components/solution-template-data/test/solution-template-data.spec.js +60 -0
  276. package/dist/collection/components/solution-variables/solution-variables.js +168 -168
  277. package/dist/collection/components/solution-variables/test/solution-variables.e2e.js +36 -0
  278. package/dist/collection/components/solution-variables/test/solution-variables.spec.js +131 -0
  279. package/dist/collection/components/store-manager/store-manager.js +128 -127
  280. package/dist/collection/demos/crowdsource-manager.html +3 -3
  281. package/dist/collection/index.js +1 -1
  282. package/dist/collection/utils/common.js +296 -296
  283. package/dist/collection/utils/csvDownload.js +41 -41
  284. package/dist/collection/utils/csvUtils.js +37 -37
  285. package/dist/collection/utils/downloadUtils.js +530 -530
  286. package/dist/collection/utils/interfaces.js +83 -83
  287. package/dist/collection/utils/interfaces.ts +2 -0
  288. package/dist/collection/utils/languageUtil.js +90 -90
  289. package/dist/collection/utils/loadModules.js +25 -25
  290. package/dist/collection/utils/locale.js +61 -61
  291. package/dist/collection/utils/mapViewUtils.js +240 -240
  292. package/dist/collection/utils/pciUtils.js +842 -842
  293. package/dist/collection/utils/pdfUtils.js +87 -87
  294. package/dist/collection/utils/publicNotificationStore.js +47 -47
  295. package/dist/collection/utils/queryUtils.js +200 -200
  296. package/dist/collection/utils/solution-store.js +584 -584
  297. package/dist/collection/utils/templates.e2e.js +30 -0
  298. package/dist/collection/utils/templates.js +346 -346
  299. package/dist/collection/utils/test/csvUtils.spec.js +51 -0
  300. package/dist/collection/utils/test/downloadUtils.spec.js +357 -0
  301. package/dist/collection/utils/test/mocks/jsApi.js +79 -79
  302. package/dist/collection/utils/test/pciUtils.spec.js +302 -0
  303. package/dist/collection/utils/test/solution-store.spec.js +444 -0
  304. package/dist/collection/utils/test/testUtils.js +123 -123
  305. package/dist/collection/utils/types.js +1 -1
  306. package/dist/components/ExpandToggle.js +1 -1
  307. package/dist/components/action-bar.js +262 -262
  308. package/dist/components/action-group.js +144 -144
  309. package/dist/components/action-menu.js +310 -310
  310. package/dist/components/action.js +185 -185
  311. package/dist/components/alert.js +286 -286
  312. package/dist/components/avatar.js +99 -99
  313. package/dist/components/basemap-gallery.d.ts +11 -0
  314. package/dist/components/basemap-gallery.js +11 -0
  315. package/dist/components/basemap-gallery2.js +118 -0
  316. package/dist/components/buffer-tools2.js +263 -263
  317. package/dist/components/button.js +225 -225
  318. package/dist/components/calcite-accordion-item.js +168 -167
  319. package/dist/components/calcite-accordion.js +95 -95
  320. package/dist/components/calcite-action-pad.js +180 -180
  321. package/dist/components/calcite-block-section.js +150 -150
  322. package/dist/components/calcite-block.js +186 -186
  323. package/dist/components/calcite-card.js +132 -132
  324. package/dist/components/calcite-chip-group.js +181 -181
  325. package/dist/components/calcite-color-picker.js +979 -979
  326. package/dist/components/calcite-combobox-item-group.js +52 -52
  327. package/dist/components/calcite-fab.js +104 -104
  328. package/dist/components/calcite-filter.js +1 -1
  329. package/dist/components/calcite-flow-item.js +204 -204
  330. package/dist/components/calcite-flow.js +136 -136
  331. package/dist/components/calcite-inline-editable.js +259 -259
  332. package/dist/components/calcite-input-date-picker.js +703 -703
  333. package/dist/components/calcite-input-time-picker.js +595 -595
  334. package/dist/components/calcite-input-time-zone.js +189 -189
  335. package/dist/components/calcite-label.js +1 -1
  336. package/dist/components/calcite-list-item-group.js +64 -64
  337. package/dist/components/calcite-menu-item.js +297 -296
  338. package/dist/components/calcite-modal.js +328 -328
  339. package/dist/components/calcite-navigation-logo.js +76 -76
  340. package/dist/components/calcite-navigation-user.js +78 -78
  341. package/dist/components/calcite-navigation.js +166 -166
  342. package/dist/components/calcite-option-group.js +42 -42
  343. package/dist/components/calcite-pagination.js +217 -217
  344. package/dist/components/calcite-pick-list-group.js +59 -59
  345. package/dist/components/calcite-pick-list.js +150 -150
  346. package/dist/components/calcite-radio-button-group.js +141 -141
  347. package/dist/components/calcite-radio-button.js +316 -316
  348. package/dist/components/calcite-rating.js +279 -279
  349. package/dist/components/calcite-shell-center-row.js +57 -57
  350. package/dist/components/calcite-sortable-list.js +153 -153
  351. package/dist/components/calcite-split-button.js +142 -142
  352. package/dist/components/calcite-stack.js +1 -1
  353. package/dist/components/calcite-stepper-item.js +225 -225
  354. package/dist/components/calcite-stepper.js +212 -212
  355. package/dist/components/calcite-text-area.js +266 -266
  356. package/dist/components/calcite-tile-select-group.js +44 -44
  357. package/dist/components/calcite-tile-select.js +223 -223
  358. package/dist/components/calcite-tip-group.js +27 -27
  359. package/dist/components/calcite-tip-manager.js +222 -222
  360. package/dist/components/calcite-tip.js +126 -126
  361. package/dist/components/card-manager2.js +155 -155
  362. package/dist/components/checkbox.js +146 -146
  363. package/dist/components/chip.js +245 -245
  364. package/dist/components/color-picker-hex-input.js +287 -287
  365. package/dist/components/color-picker-swatch.js +79 -79
  366. package/dist/components/combobox-item.js +135 -135
  367. package/dist/components/combobox.js +921 -921
  368. package/dist/components/crowdsource-manager.js +528 -512
  369. package/dist/components/crowdsource-reporter.js +75 -75
  370. package/dist/components/date-picker-day.js +110 -109
  371. package/dist/components/date-picker-month-header.js +197 -197
  372. package/dist/components/date-picker-month.js +372 -372
  373. package/dist/components/date-picker.js +492 -492
  374. package/dist/components/date.js +1 -1
  375. package/dist/components/deduct-calculator2.js +981 -981
  376. package/dist/components/dom.js +2 -23
  377. package/dist/components/downloadUtils.js +655 -655
  378. package/dist/components/dropdown-group.js +72 -72
  379. package/dist/components/dropdown-item.js +195 -195
  380. package/dist/components/dropdown.js +420 -420
  381. package/dist/components/edit-card2.js +191 -191
  382. package/dist/components/esri-loader.js +301 -0
  383. package/dist/components/filter.js +751 -202
  384. package/dist/components/filter2.js +191 -740
  385. package/dist/components/floating-ui.js +2 -2
  386. package/dist/components/focusTrapComponent.js +1 -1
  387. package/dist/components/graph.js +86 -86
  388. package/dist/components/handle.js +165 -165
  389. package/dist/components/icon.js +99 -99
  390. package/dist/components/index.d.ts +5 -35
  391. package/dist/components/index.js +26 -154
  392. package/dist/components/info-card2.js +251 -251
  393. package/dist/components/input-message.js +66 -66
  394. package/dist/components/input-number.js +600 -599
  395. package/dist/components/input-text.js +368 -367
  396. package/dist/components/input.js +687 -686
  397. package/dist/components/interfaces.js +78 -78
  398. package/dist/components/json-editor2.js +425 -425
  399. package/dist/components/label.js +117 -65
  400. package/dist/components/label2.js +58 -110
  401. package/dist/components/layer-table2.js +598 -547
  402. package/dist/components/layout-manager2.js +118 -118
  403. package/dist/components/link.js +123 -122
  404. package/dist/components/list-item.js +75 -75
  405. package/dist/components/list-item2.js +431 -431
  406. package/dist/components/list.js +510 -510
  407. package/dist/components/loadModules.js +19 -19
  408. package/dist/components/loader.js +86 -86
  409. package/dist/components/locale.js +106 -399
  410. package/dist/components/locale2.js +2 -2
  411. package/dist/components/map-card2.js +236 -218
  412. package/dist/components/map-draw-tools2.js +383 -383
  413. package/dist/components/map-layer-picker2.js +291 -291
  414. package/dist/components/map-picker2.js +235 -235
  415. package/dist/components/map-search.d.ts +11 -0
  416. package/dist/components/map-search.js +11 -0
  417. package/dist/components/map-search2.js +201 -0
  418. package/dist/components/map-select-tools2.js +916 -916
  419. package/dist/components/map-tools2.js +287 -177
  420. package/dist/components/mapViewUtils.js +235 -235
  421. package/dist/components/menu.js +178 -178
  422. package/dist/components/notice.js +130 -130
  423. package/dist/components/option.js +91 -91
  424. package/dist/components/panel.js +307 -307
  425. package/dist/components/pci-calculator.js +169 -169
  426. package/dist/components/pdf-download2.js +173 -173
  427. package/dist/components/pick-list-item.js +219 -219
  428. package/dist/components/popover.js +349 -349
  429. package/dist/components/progress.js +46 -45
  430. package/dist/components/public-notification.js +1101 -1101
  431. package/dist/components/publicNotificationStore.js +39 -39
  432. package/dist/components/queryUtils.js +152 -152
  433. package/dist/components/refine-selection2.js +546 -546
  434. package/dist/components/resources.js +17 -9
  435. package/dist/components/resources2.js +9 -13
  436. package/dist/components/resources3.js +9 -5
  437. package/dist/components/scrim.js +115 -115
  438. package/dist/components/segmented-control-item.js +62 -62
  439. package/dist/components/segmented-control.js +213 -213
  440. package/dist/components/select.js +226 -226
  441. package/dist/components/shared-list-render.js +3 -3
  442. package/dist/components/shell-panel.js +398 -397
  443. package/dist/components/shell.js +119 -119
  444. package/dist/components/slider.js +898 -898
  445. package/dist/components/solution-configuration.js +1095 -1095
  446. package/dist/components/solution-contents2.js +111 -111
  447. package/dist/components/solution-item-details2.js +217 -217
  448. package/dist/components/solution-item-icon2.js +330 -330
  449. package/dist/components/solution-item-sharing2.js +151 -151
  450. package/dist/components/solution-item2.js +269 -269
  451. package/dist/components/solution-organization-variables2.js +115 -115
  452. package/dist/components/solution-resource-item2.js +331 -331
  453. package/dist/components/solution-spatial-ref2.js +21420 -21420
  454. package/dist/components/solution-store.js +575 -575
  455. package/dist/components/solution-template-data2.js +202 -202
  456. package/dist/components/solution-variables2.js +132 -132
  457. package/dist/components/sortableComponent.js +1 -1
  458. package/dist/components/stack.js +78 -78
  459. package/dist/components/store-manager.js +70 -70
  460. package/dist/components/switch.js +118 -118
  461. package/dist/components/tab-nav.js +254 -254
  462. package/dist/components/tab-title.js +300 -300
  463. package/dist/components/tab.js +111 -111
  464. package/dist/components/tabs.js +130 -130
  465. package/dist/components/tile.js +89 -89
  466. package/dist/components/time-picker.js +654 -654
  467. package/dist/components/tooltip.js +207 -207
  468. package/dist/components/tree-item.js +288 -287
  469. package/dist/components/tree.js +281 -281
  470. package/dist/components/utils.js +1 -1
  471. package/dist/components/utils2.js +2 -2
  472. package/dist/components/utils3.js +1 -1
  473. package/dist/components/value-list-item.js +169 -169
  474. package/dist/components/value-list.js +275 -275
  475. package/dist/esm/ExpandToggle-3d10bd1e.js +109 -0
  476. package/dist/esm/FloatingArrow-29db6da6.js +46 -0
  477. package/dist/esm/Heading-cb79e5b2.js +22 -0
  478. package/dist/esm/app-globals-5cbac6b0.js +67 -0
  479. package/dist/esm/ar-4b751ba8.js +95 -0
  480. package/dist/esm/basemap-gallery_4.entry.js +615 -0
  481. package/dist/esm/bg-5d8bf5ea.js +76 -0
  482. package/dist/esm/bs-ff510e71.js +45 -0
  483. package/dist/esm/buffer-tools_4.entry.js +1437 -1437
  484. package/dist/esm/ca-b9a5e51a.js +65 -0
  485. package/dist/esm/calcite-accordion-item.entry.js +140 -140
  486. package/dist/esm/calcite-accordion.entry.js +75 -75
  487. package/dist/esm/calcite-action-bar.entry.js +216 -216
  488. package/dist/esm/calcite-action-group_2.entry.js +365 -365
  489. package/dist/esm/calcite-action-pad.entry.js +135 -135
  490. package/dist/esm/calcite-action_2.entry.js +445 -445
  491. package/dist/esm/calcite-alert.entry.js +247 -247
  492. package/dist/esm/calcite-avatar.entry.js +73 -73
  493. package/dist/esm/calcite-block-section.entry.js +122 -122
  494. package/dist/esm/calcite-block.entry.js +131 -131
  495. package/dist/esm/calcite-button.entry.js +182 -182
  496. package/dist/esm/calcite-card.entry.js +99 -99
  497. package/dist/esm/calcite-checkbox.entry.js +125 -125
  498. package/dist/esm/calcite-chip-group.entry.js +164 -164
  499. package/dist/esm/calcite-chip.entry.js +213 -213
  500. package/dist/esm/calcite-color-picker-hex-input_2.entry.js +303 -303
  501. package/dist/esm/calcite-color-picker.entry.js +886 -886
  502. package/dist/esm/calcite-combobox-item-group.entry.js +35 -35
  503. package/dist/esm/calcite-combobox_6.entry.js +1786 -1786
  504. package/dist/esm/calcite-date-picker-day_3.entry.js +589 -589
  505. package/dist/esm/calcite-date-picker.entry.js +434 -434
  506. package/dist/esm/calcite-fab.entry.js +66 -66
  507. package/dist/esm/calcite-filter_5.entry.js +1131 -1131
  508. package/dist/esm/calcite-flow-item.entry.js +146 -146
  509. package/dist/esm/calcite-flow.entry.js +117 -117
  510. package/dist/esm/calcite-graph.entry.js +66 -66
  511. package/dist/esm/calcite-icon.entry.js +80 -80
  512. package/dist/esm/calcite-inline-editable.entry.js +225 -225
  513. package/dist/esm/calcite-input-date-picker.entry.js +632 -632
  514. package/dist/esm/calcite-input-number_2.entry.js +846 -846
  515. package/dist/esm/calcite-input-time-picker-13448515.js +1715 -0
  516. package/dist/esm/calcite-input-time-picker.entry.js +15 -15
  517. package/dist/esm/calcite-input-time-zone.entry.js +150 -150
  518. package/dist/esm/calcite-input_2.entry.js +645 -645
  519. package/dist/esm/calcite-label.entry.js +40 -40
  520. package/dist/esm/calcite-link.entry.js +96 -96
  521. package/dist/esm/calcite-list-item-group.entry.js +46 -46
  522. package/dist/esm/calcite-loader.entry.js +65 -65
  523. package/dist/esm/calcite-menu-item.entry.js +246 -246
  524. package/dist/esm/calcite-menu.entry.js +161 -161
  525. package/dist/esm/calcite-modal.entry.js +282 -282
  526. package/dist/esm/calcite-navigation-logo.entry.js +52 -52
  527. package/dist/esm/calcite-navigation-user.entry.js +45 -45
  528. package/dist/esm/calcite-navigation.entry.js +126 -126
  529. package/dist/esm/calcite-notice.entry.js +105 -105
  530. package/dist/esm/calcite-option-group.entry.js +24 -24
  531. package/dist/esm/calcite-option_2.entry.js +271 -271
  532. package/dist/esm/calcite-pagination.entry.js +191 -191
  533. package/dist/esm/calcite-panel_2.entry.js +346 -346
  534. package/dist/esm/calcite-pick-list-group.entry.js +46 -46
  535. package/dist/esm/calcite-pick-list-item.entry.js +181 -181
  536. package/dist/esm/calcite-pick-list.entry.js +130 -130
  537. package/dist/esm/calcite-radio-button-group.entry.js +118 -118
  538. package/dist/esm/calcite-radio-button.entry.js +292 -292
  539. package/dist/esm/calcite-rating.entry.js +245 -245
  540. package/dist/esm/calcite-scrim.entry.js +93 -93
  541. package/dist/esm/calcite-segmented-control_2.entry.js +225 -225
  542. package/dist/esm/calcite-shell-center-row.entry.js +42 -42
  543. package/dist/esm/calcite-shell-panel_14.entry.js +2604 -2604
  544. package/dist/esm/calcite-sortable-list.entry.js +134 -134
  545. package/dist/esm/calcite-split-button.entry.js +92 -92
  546. package/dist/esm/calcite-stepper-item.entry.js +197 -197
  547. package/dist/esm/calcite-stepper.entry.js +187 -187
  548. package/dist/esm/calcite-switch.entry.js +100 -100
  549. package/dist/esm/calcite-text-area.entry.js +235 -235
  550. package/dist/esm/calcite-tile-select-group.entry.js +27 -27
  551. package/dist/esm/calcite-tile-select.entry.js +180 -180
  552. package/dist/esm/calcite-tile.entry.js +58 -58
  553. package/dist/esm/calcite-time-picker.entry.js +619 -619
  554. package/dist/esm/calcite-tip-group.entry.js +10 -10
  555. package/dist/esm/calcite-tip-manager.entry.js +185 -185
  556. package/dist/esm/calcite-tip.entry.js +94 -94
  557. package/dist/esm/calcite-tooltip.entry.js +185 -185
  558. package/dist/esm/calcite-tree_3.entry.js +821 -821
  559. package/dist/esm/card-manager_4.entry.js +707 -653
  560. package/dist/esm/conditionalSlot-27a0fce0.js +60 -0
  561. package/dist/esm/crowdsource-manager.entry.js +258 -256
  562. package/dist/esm/crowdsource-reporter.entry.js +60 -60
  563. package/dist/esm/cs-f21a0628.js +141 -0
  564. package/dist/esm/da-dc48fc4c.js +60 -0
  565. package/dist/esm/date-0ed48e97.js +235 -0
  566. package/dist/esm/de-59290071.js +85 -0
  567. package/dist/esm/de-at-cd6e6ab7.js +84 -0
  568. package/dist/esm/de-ch-27c44e34.js +84 -0
  569. package/dist/esm/deduct-calculator.entry.js +90 -90
  570. package/dist/esm/dom-843e3afd.js +1017 -0
  571. package/dist/esm/downloadUtils-63661805.js +2761 -0
  572. package/dist/esm/edit-card_2.entry.js +345 -345
  573. package/dist/esm/el-f09fdec6.js +60 -0
  574. package/dist/esm/en-au-90087aa5.js +60 -0
  575. package/dist/esm/en-ca-10751695.js +59 -0
  576. package/dist/esm/en-gb-0f8547bd.js +63 -0
  577. package/dist/esm/es-b0997cf1.js +60 -0
  578. package/dist/esm/es-mx-226f5028.js +59 -0
  579. package/dist/esm/et-dc96c453.js +86 -0
  580. package/dist/esm/fi-0941704d.js +109 -0
  581. package/dist/esm/filter-1cac3edf.js +763 -0
  582. package/dist/esm/floating-ui-d28d0fd6.js +1880 -0
  583. package/dist/esm/focusTrapComponent-ff3a9f28.js +1004 -0
  584. package/dist/esm/form-11c6a015.js +280 -0
  585. package/dist/esm/fr-8da3458d.js +62 -0
  586. package/dist/esm/fr-ch-739ceddf.js +60 -0
  587. package/dist/esm/he-8b662dfa.js +99 -0
  588. package/dist/esm/hi-10996f89.js +59 -0
  589. package/dist/esm/hr-42c2024d.js +74 -0
  590. package/dist/esm/hu-4768b3ff.js +82 -0
  591. package/dist/esm/id-24a08170.js +60 -0
  592. package/dist/esm/index-b5d9d795.js +1904 -0
  593. package/dist/esm/index-b91c174c.js +199 -0
  594. package/dist/esm/index.es-3a3aa8e3.js +10722 -0
  595. package/dist/esm/interfaces-5a2fe8b4.js +85 -0
  596. package/dist/esm/it-ad09649f.js +60 -0
  597. package/dist/esm/it-ch-b05fc10d.js +60 -0
  598. package/dist/esm/ja-ab839b73.js +66 -0
  599. package/dist/esm/ko-c778539e.js +66 -0
  600. package/dist/esm/label-6a1caf64.js +130 -0
  601. package/dist/esm/list-item.entry.js +60 -60
  602. package/dist/esm/loadModules-2ecd1e44.js +28 -0
  603. package/dist/esm/loadable-6bca96ad.js +89 -0
  604. package/dist/esm/loader.js +6 -15
  605. package/dist/esm/locale-aa3de591.js +412 -0
  606. package/dist/esm/locale-d8561d54.js +592 -0
  607. package/dist/esm/lt-447d9aa9.js +91 -0
  608. package/dist/esm/lv-4d715e11.js +60 -0
  609. package/dist/esm/map-select-tools_3.entry.js +1285 -1285
  610. package/dist/esm/mapViewUtils-f0c04325.js +395 -0
  611. package/dist/esm/mk-b3d7401a.js +60 -0
  612. package/dist/esm/nb-2b4a8366.js +61 -0
  613. package/dist/esm/nl-c0db1da2.js +61 -0
  614. package/dist/esm/openCloseComponent-2b5c6bed.js +82 -0
  615. package/dist/esm/pci-calculator.entry.js +102 -102
  616. package/dist/esm/pciUtils-59c29b42.js +844 -0
  617. package/dist/esm/pl-0d322bb4.js +108 -0
  618. package/dist/esm/pt-5997598c.js +61 -0
  619. package/dist/esm/pt-br-6b77e7db.js +59 -0
  620. package/dist/esm/public-notification.entry.js +844 -844
  621. package/dist/esm/publicNotificationStore-ade82148.js +49 -0
  622. package/dist/esm/resources-40d8e06f.js +20 -0
  623. package/dist/esm/ro-ac3724e0.js +60 -0
  624. package/dist/esm/ru-4e75151f.js +120 -0
  625. package/dist/esm/shared-list-render-abd19c8d.js +342 -0
  626. package/dist/esm/sk-bbfa22a3.js +142 -0
  627. package/dist/esm/sl-867cecfc.js +60 -0
  628. package/dist/esm/solution-configuration.entry.js +888 -888
  629. package/dist/esm/solution-contents_3.entry.js +21506 -21506
  630. package/dist/esm/solution-store-46bc46a5.js +4092 -0
  631. package/dist/esm/solutions-components.js +6 -6
  632. package/dist/esm/sortableComponent-db502e97.js +3109 -0
  633. package/dist/esm/sr-198b5c00.js +95 -0
  634. package/dist/esm/store-manager.entry.js +52 -52
  635. package/dist/esm/sv-02d64370.js +65 -0
  636. package/dist/esm/t9n-76168237.js +95 -0
  637. package/dist/esm/th-1616e303.js +59 -0
  638. package/dist/esm/throttle-9ab70933.js +73 -0
  639. package/dist/esm/time-6721a4c2.js +195 -0
  640. package/dist/esm/tr-f4619f64.js +60 -0
  641. package/dist/esm/uk-df7df34a.js +98 -0
  642. package/dist/esm/utils-ccfd94a7.js +45 -0
  643. package/dist/esm/utils-f54411df.js +61 -0
  644. package/dist/esm/vi-176ca9f7.js +64 -0
  645. package/dist/esm/zh-cn-e13d83d1.js +88 -0
  646. package/dist/esm/zh-hk-d97365d8.js +65 -0
  647. package/dist/esm/zh-tw-a2b6f0b7.js +86 -0
  648. package/dist/loader/index.d.ts +2 -2
  649. package/dist/solutions-components/demos/crowdsource-manager.html +3 -3
  650. package/dist/solutions-components/p-022a9b7a.js +6 -0
  651. package/dist/solutions-components/p-03fccde6.entry.js +11 -0
  652. package/dist/solutions-components/p-052ff2c7.js +6 -0
  653. package/dist/solutions-components/p-05db4340.js +6 -0
  654. package/dist/solutions-components/p-07bc4f07.entry.js +11 -0
  655. package/dist/solutions-components/p-0cc32f06.js +6 -0
  656. package/dist/solutions-components/p-0e7914e6.entry.js +11 -0
  657. package/dist/solutions-components/p-0ece6df1.entry.js +12 -0
  658. package/dist/solutions-components/p-0f8440bb.entry.js +6 -0
  659. package/dist/solutions-components/p-0fbc27fd.entry.js +11 -0
  660. package/dist/solutions-components/p-10248e04.js +11 -0
  661. package/dist/solutions-components/p-108fbf59.entry.js +6 -0
  662. package/dist/solutions-components/p-12a4fa84.js +6 -0
  663. package/dist/solutions-components/p-13290851.js +259 -0
  664. package/dist/solutions-components/p-15ef7894.js +6 -0
  665. package/dist/solutions-components/p-164be8ef.entry.js +6 -0
  666. package/dist/solutions-components/p-19fe7725.js +6 -0
  667. package/dist/solutions-components/p-1add4e39.entry.js +11 -0
  668. package/dist/solutions-components/p-1ea1dcac.js +61 -0
  669. package/dist/solutions-components/p-1ede2e18.js +11 -0
  670. package/dist/solutions-components/p-2005280f.js +11 -0
  671. package/dist/solutions-components/p-216801d5.js +6 -0
  672. package/dist/solutions-components/p-21f00df6.js +6 -0
  673. package/dist/solutions-components/p-22d580b0.entry.js +11 -0
  674. package/dist/solutions-components/p-2656168f.entry.js +11 -0
  675. package/dist/solutions-components/p-27a1ac1f.entry.js +17 -0
  676. package/dist/solutions-components/p-28d2670f.entry.js +6 -0
  677. package/dist/solutions-components/p-29d41c7e.js +11 -0
  678. package/dist/solutions-components/p-2ae17fa2.js +6 -0
  679. package/dist/solutions-components/p-2b252afd.entry.js +6 -0
  680. package/dist/solutions-components/p-2b96e551.entry.js +11 -0
  681. package/dist/solutions-components/p-2c0dc7b1.js +6 -0
  682. package/dist/solutions-components/p-2d70d3fd.js +12 -0
  683. package/dist/solutions-components/p-31316d61.entry.js +11 -0
  684. package/dist/solutions-components/p-31ff3452.entry.js +11 -0
  685. package/dist/solutions-components/p-326fa270.js +6 -0
  686. package/dist/solutions-components/p-32ef065d.entry.js +11 -0
  687. package/dist/solutions-components/p-32f9c709.js +6 -0
  688. package/dist/solutions-components/p-3445a8c6.js +21 -0
  689. package/dist/solutions-components/p-35123c90.js +6 -0
  690. package/dist/solutions-components/p-361f1fe1.js +11 -0
  691. package/dist/solutions-components/p-39ff5ee5.js +11 -0
  692. package/dist/solutions-components/p-3aba40e8.js +18 -0
  693. package/dist/solutions-components/p-3bd99fc9.js +11 -0
  694. package/dist/solutions-components/p-3cbe5ef3.js +6 -0
  695. package/dist/solutions-components/p-3cce003d.js +27 -0
  696. package/dist/solutions-components/p-3e139360.js +6 -0
  697. package/dist/solutions-components/p-3f0193e9.js +6 -0
  698. package/dist/solutions-components/p-418d0b60.entry.js +6 -0
  699. package/dist/solutions-components/p-421d5e7c.js +6 -0
  700. package/dist/solutions-components/p-42c7a5fa.entry.js +11 -0
  701. package/dist/solutions-components/p-46d5970b.entry.js +37 -0
  702. package/dist/solutions-components/p-4b95d05e.entry.js +6 -0
  703. package/dist/solutions-components/p-4bc7b875.entry.js +11 -0
  704. package/dist/solutions-components/p-4c43820f.entry.js +6 -0
  705. package/dist/solutions-components/p-4d17943f.js +6 -0
  706. package/dist/solutions-components/p-4daae757.js +6 -0
  707. package/dist/solutions-components/p-4e4b55b9.entry.js +37 -0
  708. package/dist/solutions-components/p-4f0c3fc1.js +6 -0
  709. package/dist/solutions-components/p-525f1188.js +11 -0
  710. package/dist/solutions-components/p-5383607a.js +22 -0
  711. package/dist/solutions-components/p-541697d0.js +11 -0
  712. package/dist/solutions-components/p-55aefaa8.entry.js +6 -0
  713. package/dist/solutions-components/p-56300653.js +16 -0
  714. package/dist/solutions-components/p-57c08531.entry.js +6 -0
  715. package/dist/solutions-components/p-5adf37ea.entry.js +12 -0
  716. package/dist/solutions-components/p-5b5a6ac8.entry.js +6 -0
  717. package/dist/solutions-components/p-5b9b1cbb.entry.js +11 -0
  718. package/dist/solutions-components/p-5c097e25.entry.js +11 -0
  719. package/dist/solutions-components/p-5e59219b.entry.js +6 -0
  720. package/dist/solutions-components/p-5f5c371e.js +6 -0
  721. package/dist/solutions-components/p-606ca126.js +6 -0
  722. package/dist/solutions-components/p-634e1240.js +6 -0
  723. package/dist/solutions-components/p-639cca97.js +6 -0
  724. package/dist/solutions-components/p-6431fd69.js +11 -0
  725. package/dist/solutions-components/p-647a4130.js +16 -0
  726. package/dist/solutions-components/p-6665fa1f.js +6 -0
  727. package/dist/solutions-components/p-67ce3c0c.entry.js +11 -0
  728. package/dist/solutions-components/p-680d193d.entry.js +11 -0
  729. package/dist/solutions-components/p-6a524392.entry.js +11 -0
  730. package/dist/solutions-components/p-6a820c4d.js +6 -0
  731. package/dist/solutions-components/p-6b2f2b85.js +17 -0
  732. package/dist/solutions-components/p-6de98c51.js +21 -0
  733. package/dist/solutions-components/p-754e2df2.js +6 -0
  734. package/dist/solutions-components/p-75f26870.js +474 -0
  735. package/dist/solutions-components/p-7601988d.entry.js +11 -0
  736. package/dist/solutions-components/p-761a033a.entry.js +11 -0
  737. package/dist/solutions-components/p-7920b5a2.entry.js +11 -0
  738. package/dist/solutions-components/p-7aa949a3.entry.js +11 -0
  739. package/dist/solutions-components/p-7b90c18e.entry.js +6 -0
  740. package/dist/solutions-components/p-7b9adfff.js +6 -0
  741. package/dist/solutions-components/p-7c33e500.entry.js +6 -0
  742. package/dist/solutions-components/p-804e4751.entry.js +17 -0
  743. package/dist/solutions-components/p-82199b7b.entry.js +6 -0
  744. package/dist/solutions-components/p-825bac0e.js +6 -0
  745. package/dist/solutions-components/p-844ee452.entry.js +11 -0
  746. package/dist/solutions-components/p-8a758303.js +17 -0
  747. package/dist/solutions-components/p-90bbf223.entry.js +6 -0
  748. package/dist/solutions-components/p-916f90ec.entry.js +6 -0
  749. package/dist/solutions-components/p-91caf655.entry.js +11 -0
  750. package/dist/solutions-components/p-93074bd4.entry.js +11 -0
  751. package/dist/solutions-components/p-9310b882.js +7 -0
  752. package/dist/solutions-components/p-955a956a.entry.js +23 -0
  753. package/dist/solutions-components/p-9603c3ff.entry.js +11 -0
  754. package/dist/solutions-components/p-97c47bbd.entry.js +18 -0
  755. package/dist/solutions-components/p-9bbc05ff.js +11 -0
  756. package/dist/solutions-components/p-9cb94ea0.js +6 -0
  757. package/dist/solutions-components/p-9e727488.js +6 -0
  758. package/dist/solutions-components/p-9fb16c72.entry.js +35 -0
  759. package/dist/solutions-components/p-a040efff.js +6 -0
  760. package/dist/solutions-components/p-a08bd8c1.entry.js +6 -0
  761. package/dist/solutions-components/p-a0a2c53d.js +21 -0
  762. package/dist/solutions-components/p-a0edbb27.js +6 -0
  763. package/dist/solutions-components/p-a258f5e7.js +6 -0
  764. package/dist/solutions-components/p-a2748b38.entry.js +6 -0
  765. package/dist/solutions-components/p-a6900100.entry.js +11 -0
  766. package/dist/solutions-components/p-a6c85bd7.entry.js +6 -0
  767. package/dist/solutions-components/p-a775ba2f.entry.js +11 -0
  768. package/dist/solutions-components/p-a777b18c.js +11 -0
  769. package/dist/solutions-components/p-a82f35c9.js +6 -0
  770. package/dist/solutions-components/p-a843af2a.js +6 -0
  771. package/dist/solutions-components/p-ab8f5c6b.entry.js +11 -0
  772. package/dist/solutions-components/p-abda8ca2.entry.js +11 -0
  773. package/dist/solutions-components/p-ad4d6d02.entry.js +22 -0
  774. package/dist/solutions-components/p-ad72a379.entry.js +16 -0
  775. package/dist/solutions-components/p-aeebdb15.js +6 -0
  776. package/dist/solutions-components/p-b0c4138f.entry.js +11 -0
  777. package/dist/solutions-components/p-b1f84ae5.js +6 -0
  778. package/dist/solutions-components/p-b2e6c578.js +6 -0
  779. package/dist/solutions-components/p-b4157e6a.js +6 -0
  780. package/dist/solutions-components/p-b49bdc72.entry.js +6 -0
  781. package/dist/solutions-components/p-b5d67495.entry.js +11 -0
  782. package/dist/solutions-components/p-b6578a32.js +6 -0
  783. package/dist/solutions-components/p-b684bbc7.entry.js +6 -0
  784. package/dist/solutions-components/p-b86b4512.entry.js +11 -0
  785. package/dist/solutions-components/p-b948ecd2.entry.js +11 -0
  786. package/dist/solutions-components/p-baccfd70.entry.js +6 -0
  787. package/dist/solutions-components/p-bba3fa4e.entry.js +11 -0
  788. package/dist/solutions-components/p-bbb0d957.entry.js +6 -0
  789. package/dist/solutions-components/p-bd3a3afe.js +6 -0
  790. package/dist/solutions-components/p-bf9e18d4.js +8 -0
  791. package/dist/solutions-components/p-c07af9c2.entry.js +11 -0
  792. package/dist/solutions-components/p-c1ee0d69.js +11 -0
  793. package/dist/solutions-components/p-c3f8b670.js +6 -0
  794. package/dist/solutions-components/p-c5e294e4.js +6 -0
  795. package/dist/solutions-components/p-c6d83122.entry.js +11 -0
  796. package/dist/solutions-components/p-c70392c4.entry.js +6 -0
  797. package/dist/solutions-components/p-c9858d8f.entry.js +11 -0
  798. package/dist/solutions-components/p-cad5587c.entry.js +35 -0
  799. package/dist/solutions-components/p-cf1af08f.entry.js +6 -0
  800. package/dist/solutions-components/p-cf43278c.entry.js +11 -0
  801. package/dist/solutions-components/p-d3a22725.js +6 -0
  802. package/dist/solutions-components/p-d62784a4.js +11 -0
  803. package/dist/solutions-components/p-d6322e4b.js +6 -0
  804. package/dist/solutions-components/p-dc9dad31.entry.js +6 -0
  805. package/dist/solutions-components/p-de58bd49.js +6 -0
  806. package/dist/solutions-components/p-de59d2f5.js +6 -0
  807. package/dist/solutions-components/p-e02fcfa9.entry.js +12 -0
  808. package/dist/solutions-components/p-e07b8a72.entry.js +11 -0
  809. package/dist/solutions-components/p-e10a62f4.entry.js +11 -0
  810. package/dist/solutions-components/p-e4253e1b.entry.js +6 -0
  811. package/dist/solutions-components/p-e645edf2.entry.js +6 -0
  812. package/dist/solutions-components/p-e6bee82f.js +6 -0
  813. package/dist/solutions-components/p-ea282908.js +6 -0
  814. package/dist/solutions-components/p-ee066c67.js +16 -0
  815. package/dist/solutions-components/p-ef48bd77.entry.js +17 -0
  816. package/dist/solutions-components/p-ef96894d.entry.js +23 -0
  817. package/dist/solutions-components/p-f28d69ac.entry.js +11 -0
  818. package/dist/solutions-components/p-f41105c8.js +6 -0
  819. package/dist/solutions-components/p-f8dd2784.js +36 -0
  820. package/dist/solutions-components/p-ffac6f88.entry.js +6 -0
  821. package/dist/solutions-components/solutions-components.esm.js +1 -1
  822. package/dist/solutions-components/utils/interfaces.ts +2 -0
  823. package/dist/types/components/basemap-gallery/basemap-gallery.d.ts +64 -0
  824. package/dist/types/components/buffer-tools/buffer-tools.d.ts +170 -170
  825. package/dist/types/components/card-manager/card-manager.d.ts +70 -70
  826. package/dist/types/components/crowdsource-manager/crowdsource-manager.d.ts +182 -174
  827. package/dist/types/components/crowdsource-reporter/crowdsource-reporter.d.ts +26 -26
  828. package/dist/types/components/deduct-calculator/deduct-calculator.d.ts +90 -90
  829. package/dist/types/components/edit-card/edit-card.d.ts +140 -140
  830. package/dist/types/components/info-card/info-card.d.ts +143 -143
  831. package/dist/types/components/json-editor/json-editor.d.ts +229 -229
  832. package/dist/types/components/layer-table/layer-table.d.ts +298 -276
  833. package/dist/types/components/layout-manager/layout-manager.d.ts +69 -69
  834. package/dist/types/components/list-item/list-item.d.ts +26 -26
  835. package/dist/types/components/map-card/map-card.d.ts +91 -83
  836. package/dist/types/components/map-draw-tools/map-draw-tools.d.ts +231 -231
  837. package/dist/types/components/map-layer-picker/map-layer-picker.d.ts +160 -160
  838. package/dist/types/components/map-picker/map-picker.d.ts +109 -109
  839. package/dist/types/components/map-search/map-search.d.ts +107 -0
  840. package/dist/types/components/map-select-tools/map-select-tools.d.ts +469 -469
  841. package/dist/types/components/map-tools/map-tools.d.ts +167 -104
  842. package/dist/types/components/pci-calculator/pci-calculator.d.ts +71 -71
  843. package/dist/types/components/pdf-download/pdf-download.d.ts +101 -101
  844. package/dist/types/components/public-notification/public-notification.d.ts +610 -610
  845. package/dist/types/components/refine-selection/refine-selection.d.ts +234 -234
  846. package/dist/types/components/solution-configuration/solution-configuration.d.ts +205 -205
  847. package/dist/types/components/solution-contents/solution-contents.d.ts +46 -46
  848. package/dist/types/components/solution-item/solution-item.d.ts +71 -71
  849. package/dist/types/components/solution-item-details/solution-item-details.d.ts +100 -100
  850. package/dist/types/components/solution-item-icon/solution-item-icon.d.ts +44 -44
  851. package/dist/types/components/solution-item-sharing/solution-item-sharing.d.ts +62 -62
  852. package/dist/types/components/solution-organization-variables/solution-organization-variables.d.ts +63 -63
  853. package/dist/types/components/solution-resource-item/solution-resource-item.d.ts +144 -144
  854. package/dist/types/components/solution-spatial-ref/solution-spatial-ref.d.ts +180 -180
  855. package/dist/types/components/solution-spatial-ref/spatialreferences.d.ts +17 -17
  856. package/dist/types/components/solution-template-data/solution-template-data.d.ts +72 -72
  857. package/dist/types/components/solution-variables/solution-variables.d.ts +69 -69
  858. package/dist/types/components/store-manager/store-manager.d.ts +55 -55
  859. package/dist/types/components.d.ts +124 -0
  860. package/dist/types/index.d.ts +16 -16
  861. package/dist/types/preact.d.ts +4 -0
  862. package/dist/types/stencil-public-runtime.d.ts +29 -14
  863. package/dist/types/utils/common.d.ts +49 -49
  864. package/dist/types/utils/csvDownload.d.ts +24 -24
  865. package/dist/types/utils/csvUtils.d.ts +22 -22
  866. package/dist/types/utils/downloadUtils.d.ts +118 -118
  867. package/dist/types/utils/interfaces.d.ts +400 -398
  868. package/dist/types/utils/languageUtil.d.ts +11 -11
  869. package/dist/types/utils/loadModules.d.ts +17 -17
  870. package/dist/types/utils/locale.d.ts +22 -22
  871. package/dist/types/utils/mapViewUtils.d.ts +124 -124
  872. package/dist/types/utils/pciUtils.d.ts +97 -97
  873. package/dist/types/utils/pdfUtils.d.ts +27 -27
  874. package/dist/types/utils/publicNotificationStore.d.ts +24 -24
  875. package/dist/types/utils/queryUtils.d.ts +95 -95
  876. package/dist/types/utils/solution-store.d.ts +234 -234
  877. package/dist/types/utils/templates.d.ts +50 -50
  878. package/dist/types/utils/test/mocks/jsApi.d.ts +59 -59
  879. package/dist/types/utils/test/testUtils.d.ts +36 -36
  880. package/dist/types/utils/types.d.ts +1 -1
  881. package/package.json +2 -2
  882. package/dist/cjs/ExpandToggle-70890ae0.js +0 -117
  883. package/dist/cjs/FloatingArrow-4ca06439.js +0 -48
  884. package/dist/cjs/Heading-c5c71fc5.js +0 -25
  885. package/dist/cjs/app-globals-a34c0991.js +0 -64
  886. package/dist/cjs/ar-fa16156d.js +0 -97
  887. package/dist/cjs/bg-b39e773e.js +0 -78
  888. package/dist/cjs/bs-4579ea2a.js +0 -47
  889. package/dist/cjs/ca-f3f64686.js +0 -67
  890. package/dist/cjs/calcite-input-time-picker-6f38ef8c.js +0 -1718
  891. package/dist/cjs/conditionalSlot-a51326e7.js +0 -63
  892. package/dist/cjs/cs-1bcd5b46.js +0 -143
  893. package/dist/cjs/da-30ee21db.js +0 -62
  894. package/dist/cjs/date-f6611a19.js +0 -250
  895. package/dist/cjs/de-42aae5ad.js +0 -87
  896. package/dist/cjs/de-at-a3a6f020.js +0 -86
  897. package/dist/cjs/de-ch-36c13310.js +0 -86
  898. package/dist/cjs/dom-d529bae8.js +0 -1046
  899. package/dist/cjs/downloadUtils-6eb59363.js +0 -2767
  900. package/dist/cjs/el-90d066ae.js +0 -62
  901. package/dist/cjs/en-au-685b882b.js +0 -62
  902. package/dist/cjs/en-ca-ff4bc403.js +0 -61
  903. package/dist/cjs/en-gb-2f5587ad.js +0 -65
  904. package/dist/cjs/es-e9183ca0.js +0 -62
  905. package/dist/cjs/es-mx-dcc9afb2.js +0 -61
  906. package/dist/cjs/et-a18949ea.js +0 -88
  907. package/dist/cjs/fi-1ce00d38.js +0 -111
  908. package/dist/cjs/filter-494bf35e.js +0 -765
  909. package/dist/cjs/floating-ui-7d6e57d3.js +0 -1888
  910. package/dist/cjs/focusTrapComponent-0c4d7671.js +0 -1009
  911. package/dist/cjs/form-bcf49eae.js +0 -288
  912. package/dist/cjs/fr-a9435a19.js +0 -64
  913. package/dist/cjs/fr-ch-51efa9bf.js +0 -62
  914. package/dist/cjs/he-c5dccfa2.js +0 -101
  915. package/dist/cjs/hi-0898e7f2.js +0 -61
  916. package/dist/cjs/hr-68f7d8da.js +0 -76
  917. package/dist/cjs/hu-e494037d.js +0 -84
  918. package/dist/cjs/id-bef40c1c.js +0 -62
  919. package/dist/cjs/index-6654298b.js +0 -1796
  920. package/dist/cjs/index-e1b1954f.js +0 -201
  921. package/dist/cjs/index.es-d9b5d3a5.js +0 -10808
  922. package/dist/cjs/interfaces-ad03ec39.js +0 -85
  923. package/dist/cjs/it-1144ca67.js +0 -62
  924. package/dist/cjs/it-ch-2c14dca7.js +0 -62
  925. package/dist/cjs/ja-caad9809.js +0 -68
  926. package/dist/cjs/ko-ddec9054.js +0 -68
  927. package/dist/cjs/label-215c4af3.js +0 -136
  928. package/dist/cjs/loadModules-ae7715f2.js +0 -30
  929. package/dist/cjs/loadable-6da743c6.js +0 -94
  930. package/dist/cjs/locale-477d8d51.js +0 -604
  931. package/dist/cjs/locale-b113c6b2.js +0 -416
  932. package/dist/cjs/lt-205a1aa6.js +0 -93
  933. package/dist/cjs/lv-3ba82f9b.js +0 -62
  934. package/dist/cjs/map-picker_2.cjs.entry.js +0 -264
  935. package/dist/cjs/mapViewUtils-77a1ff88.js +0 -411
  936. package/dist/cjs/mk-069ea86a.js +0 -62
  937. package/dist/cjs/nb-9e9c934f.js +0 -63
  938. package/dist/cjs/nl-5dd0116f.js +0 -63
  939. package/dist/cjs/openCloseComponent-3fa18210.js +0 -84
  940. package/dist/cjs/pciUtils-423cfc68.js +0 -847
  941. package/dist/cjs/pl-74e70b37.js +0 -110
  942. package/dist/cjs/pt-br-0f76e430.js +0 -61
  943. package/dist/cjs/pt-cc737fcc.js +0 -63
  944. package/dist/cjs/publicNotificationStore-ec1bdd2d.js +0 -51
  945. package/dist/cjs/ro-5e396753.js +0 -62
  946. package/dist/cjs/ru-f7371aca.js +0 -122
  947. package/dist/cjs/shared-list-render-76c5dc25.js +0 -364
  948. package/dist/cjs/sk-ec02498f.js +0 -144
  949. package/dist/cjs/sl-8363f4d7.js +0 -62
  950. package/dist/cjs/solution-store-bd956f06.js +0 -4100
  951. package/dist/cjs/sortableComponent-8135ea87.js +0 -3112
  952. package/dist/cjs/sr-b0f92cb1.js +0 -97
  953. package/dist/cjs/sv-e2c27fff.js +0 -67
  954. package/dist/cjs/t9n-8be30efb.js +0 -100
  955. package/dist/cjs/th-8a6dc2cc.js +0 -61
  956. package/dist/cjs/throttle-8ee74c77.js +0 -75
  957. package/dist/cjs/time-9004df7e.js +0 -208
  958. package/dist/cjs/tr-09137435.js +0 -62
  959. package/dist/cjs/uk-c30401f4.js +0 -100
  960. package/dist/cjs/utils-ed4e5028.js +0 -55
  961. package/dist/cjs/utils-fb81c6b3.js +0 -64
  962. package/dist/cjs/vi-e069c9e4.js +0 -66
  963. package/dist/cjs/zh-cn-50f223a8.js +0 -90
  964. package/dist/cjs/zh-hk-5498073d.js +0 -67
  965. package/dist/cjs/zh-tw-dfdb0ae8.js +0 -88
  966. package/dist/esm/ExpandToggle-3420fa39.js +0 -109
  967. package/dist/esm/FloatingArrow-cd8eafa4.js +0 -46
  968. package/dist/esm/Heading-1763134e.js +0 -22
  969. package/dist/esm/app-globals-580889bd.js +0 -62
  970. package/dist/esm/ar-ceb1b389.js +0 -95
  971. package/dist/esm/bg-a8824832.js +0 -76
  972. package/dist/esm/bs-5c2ca44f.js +0 -45
  973. package/dist/esm/ca-47f86073.js +0 -65
  974. package/dist/esm/calcite-input-time-picker-59a3ed66.js +0 -1715
  975. package/dist/esm/conditionalSlot-91396dd5.js +0 -60
  976. package/dist/esm/cs-f651c3cd.js +0 -141
  977. package/dist/esm/da-e32ccc0a.js +0 -60
  978. package/dist/esm/date-51fa981b.js +0 -235
  979. package/dist/esm/de-9b417aed.js +0 -85
  980. package/dist/esm/de-at-f73447e2.js +0 -84
  981. package/dist/esm/de-ch-7ec8c31e.js +0 -84
  982. package/dist/esm/dom-8a9e4ee8.js +0 -1017
  983. package/dist/esm/downloadUtils-43b53f5a.js +0 -2761
  984. package/dist/esm/el-9a3189a2.js +0 -60
  985. package/dist/esm/en-au-5aea3b73.js +0 -60
  986. package/dist/esm/en-ca-fe3e706b.js +0 -59
  987. package/dist/esm/en-gb-a4278000.js +0 -63
  988. package/dist/esm/es-383f9c9e.js +0 -60
  989. package/dist/esm/es-mx-7845b382.js +0 -59
  990. package/dist/esm/et-d8f8df06.js +0 -86
  991. package/dist/esm/fi-14894338.js +0 -109
  992. package/dist/esm/filter-bf34614b.js +0 -763
  993. package/dist/esm/floating-ui-9870f74c.js +0 -1880
  994. package/dist/esm/focusTrapComponent-34010d00.js +0 -1004
  995. package/dist/esm/form-6669a774.js +0 -280
  996. package/dist/esm/fr-6f570086.js +0 -62
  997. package/dist/esm/fr-ch-b9f89159.js +0 -60
  998. package/dist/esm/he-174aca6e.js +0 -99
  999. package/dist/esm/hi-7e469aab.js +0 -59
  1000. package/dist/esm/hr-a4ac455a.js +0 -74
  1001. package/dist/esm/hu-207da291.js +0 -82
  1002. package/dist/esm/id-8e4d57bf.js +0 -60
  1003. package/dist/esm/index-4c4a4f3d.js +0 -199
  1004. package/dist/esm/index-d298aca9.js +0 -1762
  1005. package/dist/esm/index.es-a185f2b1.js +0 -10722
  1006. package/dist/esm/interfaces-bf20e69c.js +0 -85
  1007. package/dist/esm/it-7ade952c.js +0 -60
  1008. package/dist/esm/it-ch-181d76ab.js +0 -60
  1009. package/dist/esm/ja-42013dd3.js +0 -66
  1010. package/dist/esm/ko-8de07550.js +0 -66
  1011. package/dist/esm/label-661d8e10.js +0 -130
  1012. package/dist/esm/loadModules-cd3569de.js +0 -28
  1013. package/dist/esm/loadable-08376d90.js +0 -89
  1014. package/dist/esm/locale-54cac39a.js +0 -412
  1015. package/dist/esm/locale-73d0926a.js +0 -592
  1016. package/dist/esm/lt-1ef29b5b.js +0 -91
  1017. package/dist/esm/lv-263a2f78.js +0 -60
  1018. package/dist/esm/map-picker_2.entry.js +0 -259
  1019. package/dist/esm/mapViewUtils-1e68cede.js +0 -395
  1020. package/dist/esm/mk-d8bae136.js +0 -60
  1021. package/dist/esm/nb-494542b3.js +0 -61
  1022. package/dist/esm/nl-cd882d7f.js +0 -61
  1023. package/dist/esm/openCloseComponent-a40fd6fd.js +0 -82
  1024. package/dist/esm/pciUtils-ecda46e5.js +0 -844
  1025. package/dist/esm/pl-b79095d5.js +0 -108
  1026. package/dist/esm/polyfills/css-shim.js +0 -1
  1027. package/dist/esm/pt-5ca0b751.js +0 -61
  1028. package/dist/esm/pt-br-e1a1ce60.js +0 -59
  1029. package/dist/esm/publicNotificationStore-6ef555f3.js +0 -49
  1030. package/dist/esm/ro-5cbc0f2a.js +0 -60
  1031. package/dist/esm/ru-e66f5b84.js +0 -120
  1032. package/dist/esm/shared-list-render-5b788e63.js +0 -342
  1033. package/dist/esm/sk-be2b5cec.js +0 -142
  1034. package/dist/esm/sl-74600272.js +0 -60
  1035. package/dist/esm/solution-store-c107ca4d.js +0 -4092
  1036. package/dist/esm/sortableComponent-1dd8a4ae.js +0 -3109
  1037. package/dist/esm/sr-58280ce5.js +0 -95
  1038. package/dist/esm/sv-f0e2171a.js +0 -65
  1039. package/dist/esm/t9n-745553e0.js +0 -95
  1040. package/dist/esm/th-6c3eac31.js +0 -59
  1041. package/dist/esm/throttle-26fa347b.js +0 -73
  1042. package/dist/esm/time-7e3ba7c6.js +0 -195
  1043. package/dist/esm/tr-092713ca.js +0 -60
  1044. package/dist/esm/uk-95df0f95.js +0 -98
  1045. package/dist/esm/utils-4f695ec2.js +0 -45
  1046. package/dist/esm/utils-ddff4ef3.js +0 -61
  1047. package/dist/esm/vi-70a9857c.js +0 -64
  1048. package/dist/esm/zh-cn-e024ef2d.js +0 -88
  1049. package/dist/esm/zh-hk-36ff9e8f.js +0 -65
  1050. package/dist/esm/zh-tw-96ddb74c.js +0 -86
  1051. package/dist/solutions-components/p-0056655c.js +0 -6
  1052. package/dist/solutions-components/p-017265ef.entry.js +0 -23
  1053. package/dist/solutions-components/p-017543d5.entry.js +0 -11
  1054. package/dist/solutions-components/p-0209ed2e.js +0 -6
  1055. package/dist/solutions-components/p-0245bb56.entry.js +0 -6
  1056. package/dist/solutions-components/p-043ead99.entry.js +0 -6
  1057. package/dist/solutions-components/p-048a2a6d.js +0 -6
  1058. package/dist/solutions-components/p-050e12eb.entry.js +0 -12
  1059. package/dist/solutions-components/p-06916de9.entry.js +0 -11
  1060. package/dist/solutions-components/p-08320fb9.entry.js +0 -11
  1061. package/dist/solutions-components/p-08e12eb0.js +0 -6
  1062. package/dist/solutions-components/p-0a2c02fd.js +0 -6
  1063. package/dist/solutions-components/p-0a4bc416.js +0 -6
  1064. package/dist/solutions-components/p-0afa17dc.entry.js +0 -23
  1065. package/dist/solutions-components/p-0b4eb6e4.entry.js +0 -11
  1066. package/dist/solutions-components/p-0d900572.js +0 -6
  1067. package/dist/solutions-components/p-0f4d3009.entry.js +0 -11
  1068. package/dist/solutions-components/p-10181f33.entry.js +0 -6
  1069. package/dist/solutions-components/p-105ef63c.entry.js +0 -17
  1070. package/dist/solutions-components/p-11983a08.js +0 -6
  1071. package/dist/solutions-components/p-1260db08.js +0 -61
  1072. package/dist/solutions-components/p-129fcd0a.js +0 -6
  1073. package/dist/solutions-components/p-13f7e487.js +0 -11
  1074. package/dist/solutions-components/p-14769a01.js +0 -11
  1075. package/dist/solutions-components/p-14a4ad77.entry.js +0 -11
  1076. package/dist/solutions-components/p-15e67907.entry.js +0 -11
  1077. package/dist/solutions-components/p-17799448.entry.js +0 -11
  1078. package/dist/solutions-components/p-185a82e0.js +0 -17
  1079. package/dist/solutions-components/p-191c59e9.js +0 -6
  1080. package/dist/solutions-components/p-1b63bec9.entry.js +0 -11
  1081. package/dist/solutions-components/p-1c810f4c.entry.js +0 -6
  1082. package/dist/solutions-components/p-1d28ff09.entry.js +0 -11
  1083. package/dist/solutions-components/p-1e30069a.entry.js +0 -6
  1084. package/dist/solutions-components/p-1e63db11.entry.js +0 -6
  1085. package/dist/solutions-components/p-20274226.entry.js +0 -6
  1086. package/dist/solutions-components/p-2411f1f6.js +0 -6
  1087. package/dist/solutions-components/p-2509b65f.entry.js +0 -22
  1088. package/dist/solutions-components/p-25faeab6.js +0 -6
  1089. package/dist/solutions-components/p-27f5bb4f.js +0 -36
  1090. package/dist/solutions-components/p-2a0d8a46.entry.js +0 -11
  1091. package/dist/solutions-components/p-2dea68b6.entry.js +0 -17
  1092. package/dist/solutions-components/p-2ecd5cb7.js +0 -6
  1093. package/dist/solutions-components/p-30dbc43d.entry.js +0 -11
  1094. package/dist/solutions-components/p-32d821d1.entry.js +0 -37
  1095. package/dist/solutions-components/p-3479d873.entry.js +0 -6
  1096. package/dist/solutions-components/p-36d09c0c.entry.js +0 -35
  1097. package/dist/solutions-components/p-375f0b74.js +0 -474
  1098. package/dist/solutions-components/p-38b4873b.entry.js +0 -6
  1099. package/dist/solutions-components/p-38d61356.js +0 -18
  1100. package/dist/solutions-components/p-3a7156b8.entry.js +0 -6
  1101. package/dist/solutions-components/p-3b041268.js +0 -6
  1102. package/dist/solutions-components/p-3ca9bb95.js +0 -6
  1103. package/dist/solutions-components/p-3e5c8b2f.js +0 -6
  1104. package/dist/solutions-components/p-3ee6af74.js +0 -11
  1105. package/dist/solutions-components/p-3eecbcf0.entry.js +0 -18
  1106. package/dist/solutions-components/p-40432de5.entry.js +0 -11
  1107. package/dist/solutions-components/p-4058733e.entry.js +0 -11
  1108. package/dist/solutions-components/p-4152fae0.js +0 -6
  1109. package/dist/solutions-components/p-4321edfc.js +0 -6
  1110. package/dist/solutions-components/p-4344b6ca.entry.js +0 -11
  1111. package/dist/solutions-components/p-44e26e37.js +0 -6
  1112. package/dist/solutions-components/p-477ae127.js +0 -21
  1113. package/dist/solutions-components/p-4c8b1179.js +0 -6
  1114. package/dist/solutions-components/p-4e32bf8c.js +0 -6
  1115. package/dist/solutions-components/p-4e93132b.entry.js +0 -6
  1116. package/dist/solutions-components/p-4ea79dc4.entry.js +0 -11
  1117. package/dist/solutions-components/p-4f51db32.js +0 -6
  1118. package/dist/solutions-components/p-4f64d786.js +0 -6
  1119. package/dist/solutions-components/p-4ff653eb.js +0 -6
  1120. package/dist/solutions-components/p-53347add.js +0 -6
  1121. package/dist/solutions-components/p-54fce798.js +0 -11
  1122. package/dist/solutions-components/p-573d282b.entry.js +0 -11
  1123. package/dist/solutions-components/p-58340eba.js +0 -6
  1124. package/dist/solutions-components/p-5930cd6d.entry.js +0 -6
  1125. package/dist/solutions-components/p-5fc99541.js +0 -257
  1126. package/dist/solutions-components/p-6071078a.entry.js +0 -6
  1127. package/dist/solutions-components/p-69863a28.entry.js +0 -6
  1128. package/dist/solutions-components/p-699031c9.entry.js +0 -11
  1129. package/dist/solutions-components/p-6998e886.entry.js +0 -11
  1130. package/dist/solutions-components/p-6a813a31.entry.js +0 -6
  1131. package/dist/solutions-components/p-6b12b5eb.entry.js +0 -16
  1132. package/dist/solutions-components/p-6e89e9dd.js +0 -6
  1133. package/dist/solutions-components/p-705b7f81.entry.js +0 -12
  1134. package/dist/solutions-components/p-75578ebf.entry.js +0 -6
  1135. package/dist/solutions-components/p-7c72df3c.js +0 -22
  1136. package/dist/solutions-components/p-7ca47589.entry.js +0 -11
  1137. package/dist/solutions-components/p-7cb8a4db.js +0 -6
  1138. package/dist/solutions-components/p-7cc13b24.js +0 -8
  1139. package/dist/solutions-components/p-8008b2fe.entry.js +0 -6
  1140. package/dist/solutions-components/p-81531fbe.entry.js +0 -11
  1141. package/dist/solutions-components/p-81627211.entry.js +0 -11
  1142. package/dist/solutions-components/p-8aa806fe.js +0 -12
  1143. package/dist/solutions-components/p-8ae8b789.js +0 -6
  1144. package/dist/solutions-components/p-8b1236bf.js +0 -6
  1145. package/dist/solutions-components/p-8b14f9aa.js +0 -16
  1146. package/dist/solutions-components/p-8b4e79fd.js +0 -16
  1147. package/dist/solutions-components/p-8bc91d5b.entry.js +0 -11
  1148. package/dist/solutions-components/p-8df0c98c.entry.js +0 -35
  1149. package/dist/solutions-components/p-953cf07a.entry.js +0 -6
  1150. package/dist/solutions-components/p-95cf8aa0.entry.js +0 -11
  1151. package/dist/solutions-components/p-99ece5e1.js +0 -11
  1152. package/dist/solutions-components/p-9a2a551d.js +0 -6
  1153. package/dist/solutions-components/p-9b43b4cf.js +0 -11
  1154. package/dist/solutions-components/p-9f922d49.js +0 -11
  1155. package/dist/solutions-components/p-9fb09c2c.js +0 -11
  1156. package/dist/solutions-components/p-a0e50ea6.entry.js +0 -6
  1157. package/dist/solutions-components/p-a1154bb5.entry.js +0 -11
  1158. package/dist/solutions-components/p-a709a84a.js +0 -11
  1159. package/dist/solutions-components/p-a99832c1.js +0 -27
  1160. package/dist/solutions-components/p-ad41cd27.entry.js +0 -6
  1161. package/dist/solutions-components/p-ad962e25.js +0 -6
  1162. package/dist/solutions-components/p-ae1459ed.entry.js +0 -6
  1163. package/dist/solutions-components/p-af9510a4.entry.js +0 -6
  1164. package/dist/solutions-components/p-afc462f0.js +0 -6
  1165. package/dist/solutions-components/p-b02a2b2f.js +0 -11
  1166. package/dist/solutions-components/p-b0eb13a1.js +0 -6
  1167. package/dist/solutions-components/p-b1228e6c.entry.js +0 -11
  1168. package/dist/solutions-components/p-b1ff9f2e.entry.js +0 -11
  1169. package/dist/solutions-components/p-b20bf7b7.entry.js +0 -6
  1170. package/dist/solutions-components/p-b361af64.entry.js +0 -11
  1171. package/dist/solutions-components/p-b4a6abe2.js +0 -11
  1172. package/dist/solutions-components/p-b68b17b6.entry.js +0 -37
  1173. package/dist/solutions-components/p-b73e9c4d.js +0 -6
  1174. package/dist/solutions-components/p-b9111e12.js +0 -6
  1175. package/dist/solutions-components/p-b9653a1e.js +0 -6
  1176. package/dist/solutions-components/p-b9fa9ca9.js +0 -6
  1177. package/dist/solutions-components/p-ba9bb2ba.entry.js +0 -11
  1178. package/dist/solutions-components/p-bc35e445.entry.js +0 -6
  1179. package/dist/solutions-components/p-bccc74a8.js +0 -6
  1180. package/dist/solutions-components/p-bd213033.entry.js +0 -6
  1181. package/dist/solutions-components/p-c0dc792a.entry.js +0 -11
  1182. package/dist/solutions-components/p-c16e540d.js +0 -6
  1183. package/dist/solutions-components/p-c35b219b.entry.js +0 -11
  1184. package/dist/solutions-components/p-c38c0612.entry.js +0 -11
  1185. package/dist/solutions-components/p-c8c3554b.js +0 -17
  1186. package/dist/solutions-components/p-cbebdffa.js +0 -6
  1187. package/dist/solutions-components/p-cbf52aa2.entry.js +0 -11
  1188. package/dist/solutions-components/p-ce21ee76.js +0 -6
  1189. package/dist/solutions-components/p-ce3e73ae.entry.js +0 -6
  1190. package/dist/solutions-components/p-cf14e2f3.js +0 -6
  1191. package/dist/solutions-components/p-cfebc45c.entry.js +0 -11
  1192. package/dist/solutions-components/p-d15a4f36.entry.js +0 -11
  1193. package/dist/solutions-components/p-d3550542.js +0 -6
  1194. package/dist/solutions-components/p-d3dceabd.entry.js +0 -11
  1195. package/dist/solutions-components/p-d43c1fc8.entry.js +0 -11
  1196. package/dist/solutions-components/p-d7ddd3a2.js +0 -21
  1197. package/dist/solutions-components/p-d841cb8b.js +0 -6
  1198. package/dist/solutions-components/p-d9868bac.js +0 -6
  1199. package/dist/solutions-components/p-dc94bec2.js +0 -6
  1200. package/dist/solutions-components/p-dd0f8875.js +0 -6
  1201. package/dist/solutions-components/p-dec7b660.js +0 -11
  1202. package/dist/solutions-components/p-deca8a07.js +0 -6
  1203. package/dist/solutions-components/p-df5ec082.entry.js +0 -11
  1204. package/dist/solutions-components/p-e046f728.js +0 -6
  1205. package/dist/solutions-components/p-e27ce6d2.entry.js +0 -11
  1206. package/dist/solutions-components/p-e2abc969.js +0 -6
  1207. package/dist/solutions-components/p-e3f9e213.js +0 -6
  1208. package/dist/solutions-components/p-e43839a8.entry.js +0 -11
  1209. package/dist/solutions-components/p-e4d5188b.entry.js +0 -6
  1210. package/dist/solutions-components/p-e666c0d6.entry.js +0 -6
  1211. package/dist/solutions-components/p-e6c20791.js +0 -11
  1212. package/dist/solutions-components/p-ec4c8dc3.js +0 -11
  1213. package/dist/solutions-components/p-ef34c9e2.entry.js +0 -11
  1214. package/dist/solutions-components/p-f346f8ab.js +0 -11
  1215. package/dist/solutions-components/p-f780ecc1.entry.js +0 -11
  1216. package/dist/solutions-components/p-f8be5d5f.js +0 -7
  1217. package/dist/solutions-components/p-f9a56d6b.entry.js +0 -6
  1218. package/dist/solutions-components/p-f9b9b211.entry.js +0 -12
  1219. package/dist/solutions-components/p-fc2277fe.js +0 -21
  1220. package/dist/solutions-components/p-fd65b14d.entry.js +0 -6
  1221. package/dist/solutions-components/p-fe0e8542.entry.js +0 -17
  1222. /package/dist/cjs/{array-51e7da8f.js → array-46bb7df1.js} +0 -0
  1223. /package/dist/cjs/{debounce-69c3bada.js → debounce-30afab47.js} +0 -0
  1224. /package/dist/cjs/{guid-ca85ade0.js → guid-3abe3cc6.js} +0 -0
  1225. /package/dist/cjs/{html2canvas-770c1171.js → html2canvas-34208bbf.js} +0 -0
  1226. /package/dist/cjs/{interactive-4e212b36.js → interactive-2fe0f43a.js} +0 -0
  1227. /package/dist/cjs/{key-b32a6438.js → key-b8b55ea3.js} +0 -0
  1228. /package/dist/cjs/{math-ef14a84a.js → math-5132d9bd.js} +0 -0
  1229. /package/dist/cjs/{observers-20fe6f01.js → observers-f5fa975b.js} +0 -0
  1230. /package/dist/cjs/{purify-5389d8d6.js → purify-f8c3e427.js} +0 -0
  1231. /package/dist/cjs/{resources-1d2258a1.js → resources-2901b608.js} +0 -0
  1232. /package/dist/cjs/{resources-a7e3371d.js → resources-4da89742.js} +0 -0
  1233. /package/dist/cjs/{resources-7c9bff85.js → resources-60c27547.js} +0 -0
  1234. /package/dist/cjs/{resources-b4b4b4fe.js → resources-77713c2e.js} +0 -0
  1235. /package/dist/cjs/{resources-b176fc52.js → resources-8233a151.js} +0 -0
  1236. /package/dist/cjs/{resources-f13e2605.js → resources-91409a5d.js} +0 -0
  1237. /package/dist/cjs/{resources-9dcbf30f.js → resources-9f2b33ee.js} +0 -0
  1238. /package/dist/cjs/{resources-f3e30b7b.js → resources-c913200c.js} +0 -0
  1239. /package/dist/cjs/{resources-c6f066a4.js → resources-e1258e8a.js} +0 -0
  1240. /package/dist/cjs/{utils-662561ad.js → utils-bae432a9.js} +0 -0
  1241. /package/dist/cjs/{utils-8a0f3e68.js → utils-cd14113f.js} +0 -0
  1242. /package/dist/{esm/resources-b5267429.js → components/resources4.js} +0 -0
  1243. /package/dist/esm/{array-4a653f59.js → array-751a2b87.js} +0 -0
  1244. /package/dist/esm/{debounce-4c884e5c.js → debounce-229b1a22.js} +0 -0
  1245. /package/dist/esm/{guid-1608fd71.js → guid-2bbb8cd1.js} +0 -0
  1246. /package/dist/esm/{html2canvas-12c862c8.js → html2canvas-a0a4df55.js} +0 -0
  1247. /package/dist/esm/{interactive-0733ee76.js → interactive-eaf4be29.js} +0 -0
  1248. /package/dist/esm/{key-97b504af.js → key-7a525416.js} +0 -0
  1249. /package/dist/esm/{math-e006358c.js → math-5f92f517.js} +0 -0
  1250. /package/dist/esm/{observers-67bdf9e5.js → observers-9d66685a.js} +0 -0
  1251. /package/dist/esm/{purify-75c61cf7.js → purify-c99d2ace.js} +0 -0
  1252. /package/dist/esm/{resources-913009ae.js → resources-58d30a0f.js} +0 -0
  1253. /package/dist/esm/{resources-6be20fcc.js → resources-5bce3953.js} +0 -0
  1254. /package/dist/esm/{resources-f97db74e.js → resources-94c47e64.js} +0 -0
  1255. /package/dist/esm/{resources-43d63050.js → resources-a9b2d33c.js} +0 -0
  1256. /package/dist/esm/{resources-34b761fa.js → resources-c253772f.js} +0 -0
  1257. /package/dist/esm/{resources-6b7800e6.js → resources-c65f5654.js} +0 -0
  1258. /package/dist/esm/{resources-01034dfa.js → resources-d6a4d343.js} +0 -0
  1259. /package/dist/esm/{resources-5490ccf4.js → resources-dca3d475.js} +0 -0
  1260. /package/dist/esm/{utils-dcd05f69.js → utils-18db6b1d.js} +0 -0
  1261. /package/dist/esm/{utils-649c76ab.js → utils-2c91c963.js} +0 -0
  1262. /package/dist/solutions-components/{p-5d25ba99.js → p-18869c0f.js} +0 -0
  1263. /package/dist/solutions-components/{p-43ebe36a.js → p-18f1772b.js} +0 -0
  1264. /package/dist/solutions-components/{p-76b83a13.js → p-1f468797.js} +0 -0
  1265. /package/dist/solutions-components/{p-f93e6931.js → p-215d3505.js} +0 -0
  1266. /package/dist/solutions-components/{p-0b32d4fe.js → p-2291b598.js} +0 -0
  1267. /package/dist/solutions-components/{p-0630e686.js → p-283e3a2d.js} +0 -0
  1268. /package/dist/solutions-components/{p-a963dd48.js → p-38ef0684.js} +0 -0
  1269. /package/dist/solutions-components/{p-3adf63ca.js → p-3fc17d72.js} +0 -0
  1270. /package/dist/solutions-components/{p-fb3ba11a.js → p-4805ff13.js} +0 -0
  1271. /package/dist/solutions-components/{p-5242a652.js → p-58ce5639.js} +0 -0
  1272. /package/dist/solutions-components/{p-203b16df.js → p-5961c4e0.js} +0 -0
  1273. /package/dist/solutions-components/{p-cc815aca.js → p-63a0e9bf.js} +0 -0
  1274. /package/dist/solutions-components/{p-d556b5c4.js → p-6f2edf5b.js} +0 -0
  1275. /package/dist/solutions-components/{p-9ab03591.js → p-868df4a0.js} +0 -0
  1276. /package/dist/solutions-components/{p-ff4afb7d.js → p-b9749e09.js} +0 -0
  1277. /package/dist/solutions-components/{p-3b72043f.js → p-d4c103a8.js} +0 -0
  1278. /package/dist/solutions-components/{p-7ac7b1a1.js → p-d554507d.js} +0 -0
  1279. /package/dist/solutions-components/{p-0506e06f.js → p-f055a840.js} +0 -0
  1280. /package/dist/solutions-components/{p-08ab045a.js → p-fb7e0054.js} +0 -0
@@ -1,4100 +0,0 @@
1
- /*!
2
- * Copyright 2022 Esri
3
- * Licensed under the Apache License, Version 2.0
4
- * http://www.apache.org/licenses/LICENSE-2.0
5
- */
6
- 'use strict';
7
-
8
- const index = require('./index-e1b1954f.js');
9
- const interfaces = require('./interfaces-ad03ec39.js');
10
- const _commonjsHelpers = require('./_commonjsHelpers-384729db.js');
11
-
12
- /*! *****************************************************************************
13
- Copyright (c) Microsoft Corporation.
14
-
15
- Permission to use, copy, modify, and/or distribute this software for any
16
- purpose with or without fee is hereby granted.
17
-
18
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
19
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
20
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
21
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
22
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
23
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
24
- PERFORMANCE OF THIS SOFTWARE.
25
- ***************************************************************************** */
26
- /* global Reflect, Promise */
27
-
28
- var extendStatics = function(d, b) {
29
- extendStatics = Object.setPrototypeOf ||
30
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
31
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
32
- return extendStatics(d, b);
33
- };
34
-
35
- function __extends(d, b) {
36
- extendStatics(d, b);
37
- function __() { this.constructor = d; }
38
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
39
- }
40
-
41
- var __assign$1 = function() {
42
- __assign$1 = Object.assign || function __assign(t) {
43
- for (var s, i = 1, n = arguments.length; i < n; i++) {
44
- s = arguments[i];
45
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
46
- }
47
- return t;
48
- };
49
- return __assign$1.apply(this, arguments);
50
- };
51
-
52
- /* Copyright (c) 2017 Environmental Systems Research Institute, Inc.
53
- * Apache-2.0 */
54
- /**
55
- * Checks parameters to see if we should use FormData to send the request
56
- * @param params The object whose keys will be encoded.
57
- * @return A boolean indicating if FormData will be required.
58
- */
59
- function requiresFormData(params) {
60
- return Object.keys(params).some(function (key) {
61
- var value = params[key];
62
- if (!value) {
63
- return false;
64
- }
65
- if (value && value.toParam) {
66
- value = value.toParam();
67
- }
68
- var type = value.constructor.name;
69
- switch (type) {
70
- case "Array":
71
- return false;
72
- case "Object":
73
- return false;
74
- case "Date":
75
- return false;
76
- case "Function":
77
- return false;
78
- case "Boolean":
79
- return false;
80
- case "String":
81
- return false;
82
- case "Number":
83
- return false;
84
- default:
85
- return true;
86
- }
87
- });
88
- }
89
- /**
90
- * Converts parameters to the proper representation to send to the ArcGIS REST API.
91
- * @param params The object whose keys will be encoded.
92
- * @return A new object with properly encoded values.
93
- */
94
- function processParams(params) {
95
- var newParams = {};
96
- Object.keys(params).forEach(function (key) {
97
- var _a, _b;
98
- var param = params[key];
99
- if (param && param.toParam) {
100
- param = param.toParam();
101
- }
102
- if (!param &&
103
- param !== 0 &&
104
- typeof param !== "boolean" &&
105
- typeof param !== "string") {
106
- return;
107
- }
108
- var type = param.constructor.name;
109
- var value;
110
- // properly encodes objects, arrays and dates for arcgis.com and other services.
111
- // ported from https://github.com/Esri/esri-leaflet/blob/master/src/Request.js#L22-L30
112
- // also see https://github.com/Esri/arcgis-rest-js/issues/18:
113
- // null, undefined, function are excluded. If you want to send an empty key you need to send an empty string "".
114
- switch (type) {
115
- case "Array":
116
- // Based on the first element of the array, classify array as an array of arrays, an array of objects
117
- // to be stringified, or an array of non-objects to be comma-separated
118
- // eslint-disable-next-line no-case-declarations
119
- var firstElementType = (_b = (_a = param[0]) === null || _a === void 0 ? void 0 : _a.constructor) === null || _b === void 0 ? void 0 : _b.name;
120
- value =
121
- firstElementType === "Array" ? param : // pass thru array of arrays
122
- firstElementType === "Object" ? JSON.stringify(param) : // stringify array of objects
123
- param.join(","); // join other types of array elements
124
- break;
125
- case "Object":
126
- value = JSON.stringify(param);
127
- break;
128
- case "Date":
129
- value = param.valueOf();
130
- break;
131
- case "Function":
132
- value = null;
133
- break;
134
- case "Boolean":
135
- value = param + "";
136
- break;
137
- default:
138
- value = param;
139
- break;
140
- }
141
- if (value || value === 0 || typeof value === "string" || Array.isArray(value)) {
142
- newParams[key] = value;
143
- }
144
- });
145
- return newParams;
146
- }
147
-
148
- /* Copyright (c) 2017 Environmental Systems Research Institute, Inc.
149
- * Apache-2.0 */
150
- /**
151
- * Encodes keys and parameters for use in a URL's query string.
152
- *
153
- * @param key Parameter's key
154
- * @param value Parameter's value
155
- * @returns Query string with key and value pairs separated by "&"
156
- */
157
- function encodeParam(key, value) {
158
- // For array of arrays, repeat key=value for each element of containing array
159
- if (Array.isArray(value) && value[0] && Array.isArray(value[0])) {
160
- return value.map(function (arrayElem) { return encodeParam(key, arrayElem); }).join("&");
161
- }
162
- return encodeURIComponent(key) + "=" + encodeURIComponent(value);
163
- }
164
- /**
165
- * Encodes the passed object as a query string.
166
- *
167
- * @param params An object to be encoded.
168
- * @returns An encoded query string.
169
- */
170
- function encodeQueryString(params) {
171
- var newParams = processParams(params);
172
- return Object.keys(newParams)
173
- .map(function (key) {
174
- return encodeParam(key, newParams[key]);
175
- })
176
- .join("&");
177
- }
178
-
179
- /* Copyright (c) 2017 Environmental Systems Research Institute, Inc.
180
- * Apache-2.0 */
181
- /**
182
- * Encodes parameters in a [FormData](https://developer.mozilla.org/en-US/docs/Web/API/FormData) object in browsers or in a [FormData](https://github.com/form-data/form-data) in Node.js
183
- *
184
- * @param params An object to be encoded.
185
- * @returns The complete [FormData](https://developer.mozilla.org/en-US/docs/Web/API/FormData) object.
186
- */
187
- function encodeFormData(params, forceFormData) {
188
- // see https://github.com/Esri/arcgis-rest-js/issues/499 for more info.
189
- var useFormData = requiresFormData(params) || forceFormData;
190
- var newParams = processParams(params);
191
- if (useFormData) {
192
- var formData_1 = new FormData();
193
- Object.keys(newParams).forEach(function (key) {
194
- if (typeof Blob !== "undefined" && newParams[key] instanceof Blob) {
195
- /* To name the Blob:
196
- 1. look to an alternate request parameter called 'fileName'
197
- 2. see if 'name' has been tacked onto the Blob manually
198
- 3. if all else fails, use the request parameter
199
- */
200
- var filename = newParams["fileName"] || newParams[key].name || key;
201
- formData_1.append(key, newParams[key], filename);
202
- }
203
- else {
204
- formData_1.append(key, newParams[key]);
205
- }
206
- });
207
- return formData_1;
208
- }
209
- else {
210
- return encodeQueryString(params);
211
- }
212
- }
213
-
214
- /* Copyright (c) 2017 Environmental Systems Research Institute, Inc.
215
- * Apache-2.0 */
216
- // TypeScript 2.1 no longer allows you to extend built in types. See https://github.com/Microsoft/TypeScript/issues/12790#issuecomment-265981442
217
- // and https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work
218
- //
219
- // This code is from MDN https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Custom_Error_Types.
220
- var ArcGISRequestError = /** @class */ (function () {
221
- /**
222
- * Create a new `ArcGISRequestError` object.
223
- *
224
- * @param message - The error message from the API
225
- * @param code - The error code from the API
226
- * @param response - The original response from the API that caused the error
227
- * @param url - The original url of the request
228
- * @param options - The original options and parameters of the request
229
- */
230
- function ArcGISRequestError(message, code, response, url, options) {
231
- message = message || "UNKNOWN_ERROR";
232
- code = code || "UNKNOWN_ERROR_CODE";
233
- this.name = "ArcGISRequestError";
234
- this.message =
235
- code === "UNKNOWN_ERROR_CODE" ? message : code + ": " + message;
236
- this.originalMessage = message;
237
- this.code = code;
238
- this.response = response;
239
- this.url = url;
240
- this.options = options;
241
- }
242
- return ArcGISRequestError;
243
- }());
244
- ArcGISRequestError.prototype = Object.create(Error.prototype);
245
- ArcGISRequestError.prototype.constructor = ArcGISRequestError;
246
-
247
- /* Copyright (c) 2017-2018 Environmental Systems Research Institute, Inc.
248
- * Apache-2.0 */
249
- var NODEJS_DEFAULT_REFERER_HEADER = "@esri/arcgis-rest-js";
250
- var DEFAULT_ARCGIS_REQUEST_OPTIONS = {
251
- httpMethod: "POST",
252
- params: {
253
- f: "json",
254
- },
255
- };
256
- var ArcGISAuthError = /** @class */ (function (_super) {
257
- __extends(ArcGISAuthError, _super);
258
- /**
259
- * Create a new `ArcGISAuthError` object.
260
- *
261
- * @param message - The error message from the API
262
- * @param code - The error code from the API
263
- * @param response - The original response from the API that caused the error
264
- * @param url - The original url of the request
265
- * @param options - The original options of the request
266
- */
267
- function ArcGISAuthError(message, code, response, url, options) {
268
- if (message === void 0) { message = "AUTHENTICATION_ERROR"; }
269
- if (code === void 0) { code = "AUTHENTICATION_ERROR_CODE"; }
270
- var _this = _super.call(this, message, code, response, url, options) || this;
271
- _this.name = "ArcGISAuthError";
272
- _this.message =
273
- code === "AUTHENTICATION_ERROR_CODE" ? message : code + ": " + message;
274
- return _this;
275
- }
276
- ArcGISAuthError.prototype.retry = function (getSession, retryLimit) {
277
- var _this = this;
278
- if (retryLimit === void 0) { retryLimit = 3; }
279
- var tries = 0;
280
- var retryRequest = function (resolve, reject) {
281
- getSession(_this.url, _this.options)
282
- .then(function (session) {
283
- var newOptions = __assign$1(__assign$1({}, _this.options), { authentication: session });
284
- tries = tries + 1;
285
- return request(_this.url, newOptions);
286
- })
287
- .then(function (response) {
288
- resolve(response);
289
- })
290
- .catch(function (e) {
291
- if (e.name === "ArcGISAuthError" && tries < retryLimit) {
292
- retryRequest(resolve, reject);
293
- }
294
- else if (e.name === "ArcGISAuthError" && tries >= retryLimit) {
295
- reject(_this);
296
- }
297
- else {
298
- reject(e);
299
- }
300
- });
301
- };
302
- return new Promise(function (resolve, reject) {
303
- retryRequest(resolve, reject);
304
- });
305
- };
306
- return ArcGISAuthError;
307
- }(ArcGISRequestError));
308
- /**
309
- * Checks for errors in a JSON response from the ArcGIS REST API. If there are no errors, it will return the `data` passed in. If there is an error, it will throw an `ArcGISRequestError` or `ArcGISAuthError`.
310
- *
311
- * @param data The response JSON to check for errors.
312
- * @param url The url of the original request
313
- * @param params The parameters of the original request
314
- * @param options The options of the original request
315
- * @returns The data that was passed in the `data` parameter
316
- */
317
- function checkForErrors(response, url, params, options, originalAuthError) {
318
- // this is an error message from billing.arcgis.com backend
319
- if (response.code >= 400) {
320
- var message = response.message, code = response.code;
321
- throw new ArcGISRequestError(message, code, response, url, options);
322
- }
323
- // error from ArcGIS Online or an ArcGIS Portal or server instance.
324
- if (response.error) {
325
- var _a = response.error, message = _a.message, code = _a.code, messageCode = _a.messageCode;
326
- var errorCode = messageCode || code || "UNKNOWN_ERROR_CODE";
327
- if (code === 498 ||
328
- code === 499 ||
329
- messageCode === "GWM_0003" ||
330
- (code === 400 && message === "Unable to generate token.")) {
331
- if (originalAuthError) {
332
- throw originalAuthError;
333
- }
334
- else {
335
- throw new ArcGISAuthError(message, errorCode, response, url, options);
336
- }
337
- }
338
- throw new ArcGISRequestError(message, errorCode, response, url, options);
339
- }
340
- // error from a status check
341
- if (response.status === "failed" || response.status === "failure") {
342
- var message = void 0;
343
- var code = "UNKNOWN_ERROR_CODE";
344
- try {
345
- message = JSON.parse(response.statusMessage).message;
346
- code = JSON.parse(response.statusMessage).code;
347
- }
348
- catch (e) {
349
- message = response.statusMessage || response.message;
350
- }
351
- throw new ArcGISRequestError(message, code, response, url, options);
352
- }
353
- return response;
354
- }
355
- /**
356
- * ```js
357
- * import { request } from '@esri/arcgis-rest-request';
358
- * //
359
- * request('https://www.arcgis.com/sharing/rest')
360
- * .then(response) // response.currentVersion === 5.2
361
- * //
362
- * request('https://www.arcgis.com/sharing/rest', {
363
- * httpMethod: "GET"
364
- * })
365
- * //
366
- * request('https://www.arcgis.com/sharing/rest/search', {
367
- * params: { q: 'parks' }
368
- * })
369
- * .then(response) // response.total => 78379
370
- * ```
371
- * Generic method for making HTTP requests to ArcGIS REST API endpoints.
372
- *
373
- * @param url - The URL of the ArcGIS REST API endpoint.
374
- * @param requestOptions - Options for the request, including parameters relevant to the endpoint.
375
- * @returns A Promise that will resolve with the data from the response.
376
- */
377
- function request(url, requestOptions) {
378
- if (requestOptions === void 0) { requestOptions = { params: { f: "json" } }; }
379
- var options = __assign$1(__assign$1(__assign$1({ httpMethod: "POST" }, DEFAULT_ARCGIS_REQUEST_OPTIONS), requestOptions), {
380
- params: __assign$1(__assign$1({}, DEFAULT_ARCGIS_REQUEST_OPTIONS.params), requestOptions.params),
381
- headers: __assign$1(__assign$1({}, DEFAULT_ARCGIS_REQUEST_OPTIONS.headers), requestOptions.headers),
382
- });
383
- var missingGlobals = [];
384
- var recommendedPackages = [];
385
- // don't check for a global fetch if a custom implementation was passed through
386
- if (!options.fetch && typeof fetch !== "undefined") {
387
- options.fetch = fetch.bind(Function("return this")());
388
- }
389
- else {
390
- missingGlobals.push("`fetch`");
391
- recommendedPackages.push("`node-fetch`");
392
- }
393
- if (typeof Promise === "undefined") {
394
- missingGlobals.push("`Promise`");
395
- recommendedPackages.push("`es6-promise`");
396
- }
397
- if (typeof FormData === "undefined") {
398
- missingGlobals.push("`FormData`");
399
- recommendedPackages.push("`isomorphic-form-data`");
400
- }
401
- if (!options.fetch ||
402
- typeof Promise === "undefined" ||
403
- typeof FormData === "undefined") {
404
- throw new Error("`arcgis-rest-request` requires a `fetch` implementation and global variables for `Promise` and `FormData` to be present in the global scope. You are missing " + missingGlobals.join(", ") + ". We recommend installing the " + recommendedPackages.join(", ") + " modules at the root of your application to add these to the global scope. See https://bit.ly/2KNwWaJ for more info.");
405
- }
406
- var httpMethod = options.httpMethod, authentication = options.authentication, rawResponse = options.rawResponse;
407
- var params = __assign$1({ f: "json" }, options.params);
408
- var originalAuthError = null;
409
- var fetchOptions = {
410
- method: httpMethod,
411
- /* ensures behavior mimics XMLHttpRequest.
412
- needed to support sending IWA cookies */
413
- credentials: options.credentials || "same-origin",
414
- };
415
- // the /oauth2/platformSelf route will add X-Esri-Auth-Client-Id header
416
- // and that request needs to send cookies cross domain
417
- // so we need to set the credentials to "include"
418
- if (options.headers &&
419
- options.headers["X-Esri-Auth-Client-Id"] &&
420
- url.indexOf("/oauth2/platformSelf") > -1) {
421
- fetchOptions.credentials = "include";
422
- }
423
- return (authentication
424
- ? authentication.getToken(url, { fetch: options.fetch }).catch(function (err) {
425
- /**
426
- * append original request url and requestOptions
427
- * to the error thrown by getToken()
428
- * to assist with retrying
429
- */
430
- err.url = url;
431
- err.options = options;
432
- /**
433
- * if an attempt is made to talk to an unfederated server
434
- * first try the request anonymously. if a 'token required'
435
- * error is thrown, throw the UNFEDERATED error then.
436
- */
437
- originalAuthError = err;
438
- return Promise.resolve("");
439
- })
440
- : Promise.resolve(""))
441
- .then(function (token) {
442
- if (token.length) {
443
- params.token = token;
444
- }
445
- if (authentication && authentication.getDomainCredentials) {
446
- fetchOptions.credentials = authentication.getDomainCredentials(url);
447
- }
448
- // Custom headers to add to request. IRequestOptions.headers with merge over requestHeaders.
449
- var requestHeaders = {};
450
- if (fetchOptions.method === "GET") {
451
- // Prevents token from being passed in query params when hideToken option is used.
452
- /* istanbul ignore if - window is always defined in a browser. Test case is covered by Jasmine in node test */
453
- if (params.token &&
454
- options.hideToken &&
455
- // Sharing API does not support preflight check required by modern browsers https://developer.mozilla.org/en-US/docs/Glossary/Preflight_request
456
- typeof window === "undefined") {
457
- requestHeaders["X-Esri-Authorization"] = "Bearer " + params.token;
458
- delete params.token;
459
- }
460
- // encode the parameters into the query string
461
- var queryParams = encodeQueryString(params);
462
- // dont append a '?' unless parameters are actually present
463
- var urlWithQueryString = queryParams === "" ? url : url + "?" + encodeQueryString(params);
464
- if (
465
- // This would exceed the maximum length for URLs specified by the consumer and requires POST
466
- (options.maxUrlLength &&
467
- urlWithQueryString.length > options.maxUrlLength) ||
468
- // Or if the customer requires the token to be hidden and it has not already been hidden in the header (for browsers)
469
- (params.token && options.hideToken)) {
470
- // the consumer specified a maximum length for URLs
471
- // and this would exceed it, so use post instead
472
- fetchOptions.method = "POST";
473
- // If the token was already added as a Auth header, add the token back to body with other params instead of header
474
- if (token.length && options.hideToken) {
475
- params.token = token;
476
- // Remove existing header that was added before url query length was checked
477
- delete requestHeaders["X-Esri-Authorization"];
478
- }
479
- }
480
- else {
481
- // just use GET
482
- url = urlWithQueryString;
483
- }
484
- }
485
- /* updateResources currently requires FormData even when the input parameters dont warrant it.
486
- https://developers.arcgis.com/rest/users-groups-and-items/update-resources.htm
487
- see https://github.com/Esri/arcgis-rest-js/pull/500 for more info. */
488
- var forceFormData = new RegExp("/items/.+/updateResources").test(url);
489
- if (fetchOptions.method === "POST") {
490
- fetchOptions.body = encodeFormData(params, forceFormData);
491
- }
492
- // Mixin headers from request options
493
- fetchOptions.headers = __assign$1(__assign$1({}, requestHeaders), options.headers);
494
- /* istanbul ignore next - karma reports coverage on browser tests only */
495
- if (typeof window === "undefined" && !fetchOptions.headers.referer) {
496
- fetchOptions.headers.referer = NODEJS_DEFAULT_REFERER_HEADER;
497
- }
498
- /* istanbul ignore else blob responses are difficult to make cross platform we will just have to trust the isomorphic fetch will do its job */
499
- if (!requiresFormData(params) && !forceFormData) {
500
- fetchOptions.headers["Content-Type"] =
501
- "application/x-www-form-urlencoded";
502
- }
503
- return options.fetch(url, fetchOptions);
504
- })
505
- .then(function (response) {
506
- if (!response.ok) {
507
- // server responded w/ an actual error (404, 500, etc)
508
- var status_1 = response.status, statusText = response.statusText;
509
- throw new ArcGISRequestError(statusText, "HTTP " + status_1, response, url, options);
510
- }
511
- if (rawResponse) {
512
- return response;
513
- }
514
- switch (params.f) {
515
- case "json":
516
- return response.json();
517
- case "geojson":
518
- return response.json();
519
- case "html":
520
- return response.text();
521
- case "text":
522
- return response.text();
523
- /* istanbul ignore next blob responses are difficult to make cross platform we will just have to trust that isomorphic fetch will do its job */
524
- default:
525
- return response.blob();
526
- }
527
- })
528
- .then(function (data) {
529
- if ((params.f === "json" || params.f === "geojson") && !rawResponse) {
530
- var response = checkForErrors(data, url, params, options, originalAuthError);
531
- if (originalAuthError) {
532
- /* If the request was made to an unfederated service that
533
- didn't require authentication, add the base url and a dummy token
534
- to the list of trusted servers to avoid another federation check
535
- in the event of a repeat request */
536
- var truncatedUrl = url
537
- .toLowerCase()
538
- .split(/\/rest(\/admin)?\/services\//)[0];
539
- options.authentication.federatedServers[truncatedUrl] = {
540
- token: [],
541
- // default to 24 hours
542
- expires: new Date(Date.now() + 86400 * 1000),
543
- };
544
- originalAuthError = null;
545
- }
546
- return response;
547
- }
548
- else {
549
- return data;
550
- }
551
- });
552
- }
553
-
554
- /* Copyright (c) 2018 Environmental Systems Research Institute, Inc.
555
- * Apache-2.0 */
556
- /**
557
- * Helper method to ensure that user supplied urls don't include whitespace or a trailing slash.
558
- */
559
- function cleanUrl(url) {
560
- // Guard so we don't try to trim something that's not a string
561
- if (typeof url !== "string") {
562
- return url;
563
- }
564
- // trim leading and trailing spaces, but not spaces inside the url
565
- url = url.trim();
566
- // remove the trailing slash to the url if one was included
567
- if (url[url.length - 1] === "/") {
568
- url = url.slice(0, -1);
569
- }
570
- return url;
571
- }
572
-
573
- /** @license
574
- * Copyright 2018 Esri
575
- *
576
- * Licensed under the Apache License, Version 2.0 (the "License");
577
- * you may not use this file except in compliance with the License.
578
- * You may obtain a copy of the License at
579
- *
580
- * http://www.apache.org/licenses/LICENSE-2.0
581
- *
582
- * Unless required by applicable law or agreed to in writing, software
583
- * distributed under the License is distributed on an "AS IS" BASIS,
584
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
585
- * See the License for the specific language governing permissions and
586
- * limitations under the License.
587
- */
588
- //#endregion ---------------------------------------------------------------------------------------------------------//
589
- const SolutionTemplateFormatVersion = 1;
590
- //#region Enums ------------------------------------------------------------------------------------------------------//
591
- /**
592
- * Flags for storing an item's binary resources.
593
- */
594
- exports.EFileType = void 0;
595
- (function (EFileType) {
596
- EFileType[EFileType["Data"] = 0] = "Data";
597
- EFileType[EFileType["Info"] = 1] = "Info";
598
- EFileType[EFileType["Metadata"] = 2] = "Metadata";
599
- EFileType[EFileType["Resource"] = 3] = "Resource";
600
- EFileType[EFileType["Thumbnail"] = 4] = "Thumbnail";
601
- })(exports.EFileType || (exports.EFileType = {}));
602
- /**
603
- * Text versions of flags for storing an item's binary resources.
604
- */
605
- var SFileType;
606
- (function (SFileType) {
607
- SFileType[SFileType["Data"] = 0] = "Data";
608
- SFileType[SFileType["Info"] = 1] = "Info";
609
- SFileType[SFileType["Metadata"] = 2] = "Metadata";
610
- SFileType[SFileType["Resource"] = 3] = "Resource";
611
- SFileType[SFileType["Thumbnail"] = 4] = "Thumbnail";
612
- })(SFileType || (SFileType = {}));
613
- /**
614
- * Flags for reporting the status of creating or deploying an item.
615
- */
616
- var EItemProgressStatus;
617
- (function (EItemProgressStatus) {
618
- EItemProgressStatus[EItemProgressStatus["Started"] = 0] = "Started";
619
- EItemProgressStatus[EItemProgressStatus["Created"] = 1] = "Created";
620
- EItemProgressStatus[EItemProgressStatus["Cancelled"] = 2] = "Cancelled";
621
- EItemProgressStatus[EItemProgressStatus["Finished"] = 3] = "Finished";
622
- EItemProgressStatus[EItemProgressStatus["Ignored"] = 4] = "Ignored";
623
- EItemProgressStatus[EItemProgressStatus["Failed"] = 5] = "Failed";
624
- EItemProgressStatus[EItemProgressStatus["Unknown"] = 6] = "Unknown";
625
- })(EItemProgressStatus || (EItemProgressStatus = {}));
626
- //#endregion ---------------------------------------------------------------------------------------------------------//
627
-
628
- /* Copyright (c) 2018-2019 Environmental Systems Research Institute, Inc.
629
- * Apache-2.0 */
630
- /**
631
- * Returns an array with arrays of the given size.
632
- *
633
- * @param arr Array to split
634
- * @param size Size of every group
635
- */
636
- function chunkArray(arr, size) {
637
- const results = [];
638
- let index = 0;
639
- while (index < arr.length) {
640
- results.push(arr.slice(index, index + size));
641
- index += size;
642
- }
643
- return results;
644
- }
645
-
646
- /*! *****************************************************************************
647
- Copyright (c) Microsoft Corporation.
648
-
649
- Permission to use, copy, modify, and/or distribute this software for any
650
- purpose with or without fee is hereby granted.
651
-
652
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
653
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
654
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
655
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
656
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
657
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
658
- PERFORMANCE OF THIS SOFTWARE.
659
- ***************************************************************************** */
660
-
661
- var __assign = function() {
662
- __assign = Object.assign || function __assign(t) {
663
- for (var s, i = 1, n = arguments.length; i < n; i++) {
664
- s = arguments[i];
665
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
666
- }
667
- return t;
668
- };
669
- return __assign.apply(this, arguments);
670
- };
671
-
672
- /* Copyright (c) 2017 Environmental Systems Research Institute, Inc.
673
- * Apache-2.0 */
674
- /**
675
- * Helper that returns the appropriate portal url for a given request. `requestOptions.portal` is given
676
- * precedence over `authentication.portal`. If neither `portal` nor `authentication` is present,
677
- * `www.arcgis.com/sharing/rest` is returned.
678
- *
679
- * @param requestOptions - Request options that may have authentication manager
680
- * @returns Portal url to be used in API requests
681
- */
682
- function getPortalUrl(requestOptions) {
683
- if (requestOptions === void 0) { requestOptions = {}; }
684
- // use portal in options if specified
685
- if (requestOptions.portal) {
686
- return cleanUrl(requestOptions.portal);
687
- }
688
- // if auth was passed, use that portal
689
- if (requestOptions.authentication) {
690
- // the portal url is already scrubbed in the auth package
691
- return requestOptions.authentication.portal;
692
- }
693
- // default to arcgis.com
694
- return "https://www.arcgis.com/sharing/rest";
695
- }
696
-
697
- /* Copyright (c) 2017-2018 Environmental Systems Research Institute, Inc.
698
- * Apache-2.0 */
699
- /**
700
- * Serialize an item and its data into a json format accepted by the Portal API for create and update operations
701
- *
702
- * @param item Item to be serialized
703
- * @returns a formatted json object to be sent to Portal
704
- */
705
- function serializeItem(item) {
706
- // create a clone so we're not messing with the original
707
- var clone = JSON.parse(JSON.stringify(item));
708
- // binary data needs POSTed as a `file`
709
- // JSON object literals should be passed as `text`.
710
- if (clone.data) {
711
- (typeof Blob !== "undefined" && item.data instanceof Blob) ||
712
- // Node.js doesn't implement Blob
713
- item.data.constructor.name === "ReadStream"
714
- ? (clone.file = item.data)
715
- : (clone.text = item.data);
716
- delete clone.data;
717
- }
718
- return clone;
719
- }
720
- /**
721
- * `requestOptions.owner` is given priority, `requestOptions.item.owner` will be checked next. If neither are present, `authentication.getUserName()` will be used instead.
722
- */
723
- function determineOwner(requestOptions) {
724
- if (requestOptions.owner) {
725
- return Promise.resolve(requestOptions.owner);
726
- }
727
- else if (requestOptions.item && requestOptions.item.owner) {
728
- return Promise.resolve(requestOptions.item.owner);
729
- }
730
- else if (requestOptions.authentication &&
731
- requestOptions.authentication.getUsername) {
732
- return requestOptions.authentication.getUsername();
733
- }
734
- else {
735
- return Promise.reject(new Error("Could not determine the owner of this item. Pass the `owner`, `item.owner`, or `authentication` option."));
736
- }
737
- }
738
- /**
739
- * checks if the extent is a valid BBox (2 element array of coordinate pair arrays)
740
- * @param extent
741
- * @returns
742
- */
743
- function isBBox(extent) {
744
- return (Array.isArray(extent) &&
745
- Array.isArray(extent[0]) &&
746
- Array.isArray(extent[1]));
747
- }
748
- /**
749
- * Given a Bbox, convert it to a string. Some api endpoints expect a string
750
- *
751
- * @param {BBox} extent
752
- * @return {*} {string}
753
- */
754
- function bboxToString(extent) {
755
- return extent.join(",");
756
- }
757
-
758
- /* Copyright (c) 2018 Environmental Systems Research Institute, Inc.
759
- * Apache-2.0 */
760
- /**
761
- * ```js
762
- * import { updateItem } from "@esri/arcgis-rest-portal";
763
- * //
764
- * updateItem({
765
- * item: {
766
- * id: "3ef",
767
- * description: "A three hour tour"
768
- * },
769
- * authentication
770
- * })
771
- * .then(response)
772
- * ```
773
- * Update an Item. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/update-item.htm) for more information.
774
- *
775
- * @param requestOptions - Options for the request.
776
- * @returns A Promise that updates an item.
777
- */
778
- function updateItem$1(requestOptions) {
779
- return determineOwner(requestOptions).then(function (owner) {
780
- var url = requestOptions.folderId
781
- ? getPortalUrl(requestOptions) + "/content/users/" + owner + "/" + requestOptions.folderId + "/items/" + requestOptions.item.id + "/update"
782
- : getPortalUrl(requestOptions) + "/content/users/" + owner + "/items/" + requestOptions.item.id + "/update";
783
- // serialize the item into something Portal will accept
784
- requestOptions.params = __assign(__assign({}, requestOptions.params), serializeItem(requestOptions.item));
785
- // convert extent, if present, into a string from bbox
786
- // processParams was previously doing this sort of work,
787
- // however now we need to let array of arrays through
788
- // Thus for extents we need to move this logic here
789
- if (requestOptions.params.extent && isBBox(requestOptions.params.extent)) {
790
- requestOptions.params.extent = bboxToString(requestOptions.params.extent);
791
- }
792
- return request(url, requestOptions);
793
- });
794
- }
795
- /**
796
- * ```js
797
- * import { updateItemResource } from "@esri/arcgis-rest-portal";
798
- * //
799
- * updateItemResource({
800
- * id: '3ef',
801
- * resource: file,
802
- * name: 'bigkahuna.jpg',
803
- * authentication
804
- * })
805
- * .then(response)
806
- * ```
807
- * Update a resource associated with an item. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/update-resources.htm) for more information.
808
- *
809
- * @param requestOptions - Options for the request
810
- * @returns A Promise that updates an item resource.
811
- */
812
- function updateItemResource(requestOptions) {
813
- return determineOwner(requestOptions).then(function (owner) {
814
- var url = getPortalUrl(requestOptions) + "/content/users/" + owner + "/items/" + requestOptions.id + "/updateResources";
815
- // mix in user supplied params
816
- requestOptions.params = __assign({ file: requestOptions.resource, fileName: requestOptions.name, resourcesPrefix: requestOptions.prefix, text: requestOptions.content }, requestOptions.params);
817
- // only override the access specified previously if 'private' is passed explicitly
818
- if (typeof requestOptions.private !== "undefined") {
819
- requestOptions.params.access = requestOptions.private
820
- ? "private"
821
- : "inherit";
822
- }
823
- return request(url, requestOptions);
824
- });
825
- }
826
-
827
- /* Copyright (c) 2018 Environmental Systems Research Institute, Inc.
828
- * Apache-2.0 */
829
- /**
830
- * ```js
831
- * import { addItemResource } from "@esri/arcgis-rest-portal";
832
- * //
833
- * // Add a file resource
834
- * addItemResource({
835
- * id: '3ef',
836
- * resource: file,
837
- * name: 'bigkahuna.jpg',
838
- * authentication
839
- * })
840
- * .then(response)
841
- * //
842
- * // Add a text resource
843
- * addItemResource({
844
- * id: '4fg',
845
- * content: "Text content",
846
- * name: 'bigkahuna.txt',
847
- * authentication
848
- * })
849
- * .then(response)
850
- * ```
851
- * Add a resource associated with an item. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/add-resources.htm) for more information.
852
- *
853
- * @param requestOptions - Options for the request
854
- * @returns A Promise to add item resources.
855
- */
856
- function addItemResource(requestOptions) {
857
- return determineOwner(requestOptions).then(function (owner) {
858
- var url = getPortalUrl(requestOptions) + "/content/users/" + owner + "/items/" + requestOptions.id + "/addResources";
859
- requestOptions.params = __assign({ file: requestOptions.resource, fileName: requestOptions.name, resourcesPrefix: requestOptions.prefix, text: requestOptions.content, access: requestOptions.private ? "private" : "inherit" }, requestOptions.params);
860
- return request(url, requestOptions);
861
- });
862
- }
863
-
864
- /* Copyright (c) 2018 Environmental Systems Research Institute, Inc.
865
- * Apache-2.0 */
866
- /**
867
- * Remove a resource associated with an item
868
- *
869
- * @param requestOptions - Options for the request
870
- * @returns A Promise that deletes an item resource.
871
- */
872
- function removeItemResource(requestOptions) {
873
- return determineOwner(requestOptions).then(function (owner) {
874
- var url = getPortalUrl(requestOptions) + "/content/users/" + owner + "/items/" + requestOptions.id + "/removeResources";
875
- // mix in user supplied params
876
- requestOptions.params = __assign(__assign({}, requestOptions.params), { resource: requestOptions.resource });
877
- // only override the deleteAll param specified previously if it is passed explicitly
878
- if (typeof requestOptions.deleteAll !== "undefined") {
879
- requestOptions.params.deleteAll = requestOptions.deleteAll;
880
- }
881
- return request(url, requestOptions);
882
- });
883
- }
884
-
885
- var jszip_min = _commonjsHelpers.createCommonjsModule(function (module, exports) {
886
- /*!
887
-
888
- JSZip v3.10.1 - A JavaScript class for generating and reading zip files
889
- <http://stuartk.com/jszip>
890
-
891
- (c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>
892
- Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown.
893
-
894
- JSZip uses the library pako released under the MIT license :
895
- https://github.com/nodeca/pako/blob/main/LICENSE
896
- */
897
-
898
- !function(e){module.exports=e();}(function(){return function s(a,o,h){function u(r,e){if(!o[r]){if(!a[r]){var t="function"==typeof _commonjsHelpers.commonjsRequire&&_commonjsHelpers.commonjsRequire;if(!e&&t)return t(r,!0);if(l)return l(r,!0);var n=new Error("Cannot find module '"+r+"'");throw n.code="MODULE_NOT_FOUND",n}var i=o[r]={exports:{}};a[r][0].call(i.exports,function(e){var t=a[r][1][e];return u(t||e)},i,i.exports,s,a,o,h);}return o[r].exports}for(var l="function"==typeof _commonjsHelpers.commonjsRequire&&_commonjsHelpers.commonjsRequire,e=0;e<h.length;e++)u(h[e]);return u}({1:[function(e,t,r){var d=e("./utils"),c=e("./support"),p="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";r.encode=function(e){for(var t,r,n,i,s,a,o,h=[],u=0,l=e.length,f=l,c="string"!==d.getTypeOf(e);u<e.length;)f=l-u,n=c?(t=e[u++],r=u<l?e[u++]:0,u<l?e[u++]:0):(t=e.charCodeAt(u++),r=u<l?e.charCodeAt(u++):0,u<l?e.charCodeAt(u++):0),i=t>>2,s=(3&t)<<4|r>>4,a=1<f?(15&r)<<2|n>>6:64,o=2<f?63&n:64,h.push(p.charAt(i)+p.charAt(s)+p.charAt(a)+p.charAt(o));return h.join("")},r.decode=function(e){var t,r,n,i,s,a,o=0,h=0,u="data:";if(e.substr(0,u.length)===u)throw new Error("Invalid base64 input, it looks like a data url.");var l,f=3*(e=e.replace(/[^A-Za-z0-9+/=]/g,"")).length/4;if(e.charAt(e.length-1)===p.charAt(64)&&f--,e.charAt(e.length-2)===p.charAt(64)&&f--,f%1!=0)throw new Error("Invalid base64 input, bad content length.");for(l=c.uint8array?new Uint8Array(0|f):new Array(0|f);o<e.length;)t=p.indexOf(e.charAt(o++))<<2|(i=p.indexOf(e.charAt(o++)))>>4,r=(15&i)<<4|(s=p.indexOf(e.charAt(o++)))>>2,n=(3&s)<<6|(a=p.indexOf(e.charAt(o++))),l[h++]=t,64!==s&&(l[h++]=r),64!==a&&(l[h++]=n);return l};},{"./support":30,"./utils":32}],2:[function(e,t,r){var n=e("./external"),i=e("./stream/DataWorker"),s=e("./stream/Crc32Probe"),a=e("./stream/DataLengthProbe");function o(e,t,r,n,i){this.compressedSize=e,this.uncompressedSize=t,this.crc32=r,this.compression=n,this.compressedContent=i;}o.prototype={getContentWorker:function(){var e=new i(n.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a("data_length")),t=this;return e.on("end",function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),e},getCompressedWorker:function(){return new i(n.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},o.createWorkerFrom=function(e,t,r){return e.pipe(new s).pipe(new a("uncompressedSize")).pipe(t.compressWorker(r)).pipe(new a("compressedSize")).withStreamInfo("compression",t)},t.exports=o;},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(e,t,r){var n=e("./stream/GenericWorker");r.STORE={magic:"\0\0",compressWorker:function(){return new n("STORE compression")},uncompressWorker:function(){return new n("STORE decompression")}},r.DEFLATE=e("./flate");},{"./flate":7,"./stream/GenericWorker":28}],4:[function(e,t,r){var n=e("./utils");var o=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e;}return t}();t.exports=function(e,t){return void 0!==e&&e.length?"string"!==n.getTypeOf(e)?function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a<s;a++)e=e>>>8^i[255&(e^t[a])];return -1^e}(0|t,e,e.length,0):function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a<s;a++)e=e>>>8^i[255&(e^t.charCodeAt(a))];return -1^e}(0|t,e,e.length,0):0};},{"./utils":32}],5:[function(e,t,r){r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null;},{}],6:[function(e,t,r){var n=null;n="undefined"!=typeof Promise?Promise:e("lie"),t.exports={Promise:n};},{lie:37}],7:[function(e,t,r){var n="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,i=e("pako"),s=e("./utils"),a=e("./stream/GenericWorker"),o=n?"uint8array":"array";function h(e,t){a.call(this,"FlateWorker/"+e),this._pako=null,this._pakoAction=e,this._pakoOptions=t,this.meta={};}r.magic="\b\0",s.inherits(h,a),h.prototype.processChunk=function(e){this.meta=e.meta,null===this._pako&&this._createPako(),this._pako.push(s.transformTo(o,e.data),!1);},h.prototype.flush=function(){a.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0);},h.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this._pako=null;},h.prototype._createPako=function(){this._pako=new i[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var t=this;this._pako.onData=function(e){t.push({data:e,meta:t.meta});};},r.compressWorker=function(e){return new h("Deflate",e)},r.uncompressWorker=function(){return new h("Inflate",{})};},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(e,t,r){function A(e,t){var r,n="";for(r=0;r<t;r++)n+=String.fromCharCode(255&e),e>>>=8;return n}function n(e,t,r,n,i,s){var a,o,h=e.file,u=e.compression,l=s!==O.utf8encode,f=I.transformTo("string",s(h.name)),c=I.transformTo("string",O.utf8encode(h.name)),d=h.comment,p=I.transformTo("string",s(d)),m=I.transformTo("string",O.utf8encode(d)),_=c.length!==h.name.length,g=m.length!==d.length,b="",v="",y="",w=h.dir,k=h.date,x={crc32:0,compressedSize:0,uncompressedSize:0};t&&!r||(x.crc32=e.crc32,x.compressedSize=e.compressedSize,x.uncompressedSize=e.uncompressedSize);var S=0;t&&(S|=8),l||!_&&!g||(S|=2048);var z=0,C=0;w&&(z|=16),"UNIX"===i?(C=798,z|=function(e,t){var r=e;return e||(r=t?16893:33204),(65535&r)<<16}(h.unixPermissions,w)):(C=20,z|=function(e){return 63&(e||0)}(h.dosPermissions)),a=k.getUTCHours(),a<<=6,a|=k.getUTCMinutes(),a<<=5,a|=k.getUTCSeconds()/2,o=k.getUTCFullYear()-1980,o<<=4,o|=k.getUTCMonth()+1,o<<=5,o|=k.getUTCDate(),_&&(v=A(1,1)+A(B(f),4)+c,b+="up"+A(v.length,2)+v),g&&(y=A(1,1)+A(B(p),4)+m,b+="uc"+A(y.length,2)+y);var E="";return E+="\n\0",E+=A(S,2),E+=u.magic,E+=A(a,2),E+=A(o,2),E+=A(x.crc32,4),E+=A(x.compressedSize,4),E+=A(x.uncompressedSize,4),E+=A(f.length,2),E+=A(b.length,2),{fileRecord:R.LOCAL_FILE_HEADER+E+f+b,dirRecord:R.CENTRAL_FILE_HEADER+A(C,2)+E+A(p.length,2)+"\0\0\0\0"+A(z,4)+A(n,4)+f+b+p}}var I=e("../utils"),i=e("../stream/GenericWorker"),O=e("../utf8"),B=e("../crc32"),R=e("../signature");function s(e,t,r,n){i.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=t,this.zipPlatform=r,this.encodeFileName=n,this.streamFiles=e,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[];}I.inherits(s,i),s.prototype.push=function(e){var t=e.meta.percent||0,r=this.entriesCount,n=this._sources.length;this.accumulate?this.contentBuffer.push(e):(this.bytesWritten+=e.data.length,i.prototype.push.call(this,{data:e.data,meta:{currentFile:this.currentFile,percent:r?(t+100*(r-n-1))/r:100}}));},s.prototype.openedSource=function(e){this.currentSourceOffset=this.bytesWritten,this.currentFile=e.file.name;var t=this.streamFiles&&!e.file.dir;if(t){var r=n(e,t,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}});}else this.accumulate=!0;},s.prototype.closedSource=function(e){this.accumulate=!1;var t=this.streamFiles&&!e.file.dir,r=n(e,t,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),t)this.push({data:function(e){return R.DATA_DESCRIPTOR+A(e.crc32,4)+A(e.compressedSize,4)+A(e.uncompressedSize,4)}(e),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null;},s.prototype.flush=function(){for(var e=this.bytesWritten,t=0;t<this.dirRecords.length;t++)this.push({data:this.dirRecords[t],meta:{percent:100}});var r=this.bytesWritten-e,n=function(e,t,r,n,i){var s=I.transformTo("string",i(n));return R.CENTRAL_DIRECTORY_END+"\0\0\0\0"+A(e,2)+A(e,2)+A(t,4)+A(r,4)+A(s.length,2)+s}(this.dirRecords.length,r,e,this.zipComment,this.encodeFileName);this.push({data:n,meta:{percent:100}});},s.prototype.prepareNextSource=function(){this.previous=this._sources.shift(),this.openedSource(this.previous.streamInfo),this.isPaused?this.previous.pause():this.previous.resume();},s.prototype.registerPrevious=function(e){this._sources.push(e);var t=this;return e.on("data",function(e){t.processChunk(e);}),e.on("end",function(){t.closedSource(t.previous.streamInfo),t._sources.length?t.prepareNextSource():t.end();}),e.on("error",function(e){t.error(e);}),this},s.prototype.resume=function(){return !!i.prototype.resume.call(this)&&(!this.previous&&this._sources.length?(this.prepareNextSource(),!0):this.previous||this._sources.length||this.generatedError?void 0:(this.end(),!0))},s.prototype.error=function(e){var t=this._sources;if(!i.prototype.error.call(this,e))return !1;for(var r=0;r<t.length;r++)try{t[r].error(e);}catch(e){}return !0},s.prototype.lock=function(){i.prototype.lock.call(this);for(var e=this._sources,t=0;t<e.length;t++)e[t].lock();},t.exports=s;},{"../crc32":4,"../signature":23,"../stream/GenericWorker":28,"../utf8":31,"../utils":32}],9:[function(e,t,r){var u=e("../compressions"),n=e("./ZipFileWorker");r.generateWorker=function(e,a,t){var o=new n(a.streamFiles,t,a.platform,a.encodeFileName),h=0;try{e.forEach(function(e,t){h++;var r=function(e,t){var r=e||t,n=u[r];if(!n)throw new Error(r+" is not a valid compression method !");return n}(t.options.compression,a.compression),n=t.options.compressionOptions||a.compressionOptions||{},i=t.dir,s=t.date;t._compressWorker(r,n).withStreamInfo("file",{name:e,dir:i,date:s,comment:t.comment||"",unixPermissions:t.unixPermissions,dosPermissions:t.dosPermissions}).pipe(o);}),o.entriesCount=h;}catch(e){o.error(e);}return o};},{"../compressions":3,"./ZipFileWorker":8}],10:[function(e,t,r){function n(){if(!(this instanceof n))return new n;if(arguments.length)throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.");this.files=Object.create(null),this.comment=null,this.root="",this.clone=function(){var e=new n;for(var t in this)"function"!=typeof this[t]&&(e[t]=this[t]);return e};}(n.prototype=e("./object")).loadAsync=e("./load"),n.support=e("./support"),n.defaults=e("./defaults"),n.version="3.10.1",n.loadAsync=function(e,t){return (new n).loadAsync(e,t)},n.external=e("./external"),t.exports=n;},{"./defaults":5,"./external":6,"./load":11,"./object":15,"./support":30}],11:[function(e,t,r){var u=e("./utils"),i=e("./external"),n=e("./utf8"),s=e("./zipEntries"),a=e("./stream/Crc32Probe"),l=e("./nodejsUtils");function f(n){return new i.Promise(function(e,t){var r=n.decompressed.getContentWorker().pipe(new a);r.on("error",function(e){t(e);}).on("end",function(){r.streamInfo.crc32!==n.decompressed.crc32?t(new Error("Corrupted zip : CRC32 mismatch")):e();}).resume();})}t.exports=function(e,o){var h=this;return o=u.extend(o||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:n.utf8decode}),l.isNode&&l.isStream(e)?i.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")):u.prepareContent("the loaded zip file",e,!0,o.optimizedBinaryString,o.base64).then(function(e){var t=new s(o);return t.load(e),t}).then(function(e){var t=[i.Promise.resolve(e)],r=e.files;if(o.checkCRC32)for(var n=0;n<r.length;n++)t.push(f(r[n]));return i.Promise.all(t)}).then(function(e){for(var t=e.shift(),r=t.files,n=0;n<r.length;n++){var i=r[n],s=i.fileNameStr,a=u.resolve(i.fileNameStr);h.file(a,i.decompressed,{binary:!0,optimizedBinaryString:!0,date:i.date,dir:i.dir,comment:i.fileCommentStr.length?i.fileCommentStr:null,unixPermissions:i.unixPermissions,dosPermissions:i.dosPermissions,createFolders:o.createFolders}),i.dir||(h.file(a).unsafeOriginalName=s);}return t.zipComment.length&&(h.comment=t.zipComment),h})};},{"./external":6,"./nodejsUtils":14,"./stream/Crc32Probe":25,"./utf8":31,"./utils":32,"./zipEntries":33}],12:[function(e,t,r){var n=e("../utils"),i=e("../stream/GenericWorker");function s(e,t){i.call(this,"Nodejs stream input adapter for "+e),this._upstreamEnded=!1,this._bindStream(t);}n.inherits(s,i),s.prototype._bindStream=function(e){var t=this;(this._stream=e).pause(),e.on("data",function(e){t.push({data:e,meta:{percent:0}});}).on("error",function(e){t.isPaused?this.generatedError=e:t.error(e);}).on("end",function(){t.isPaused?t._upstreamEnded=!0:t.end();});},s.prototype.pause=function(){return !!i.prototype.pause.call(this)&&(this._stream.pause(),!0)},s.prototype.resume=function(){return !!i.prototype.resume.call(this)&&(this._upstreamEnded?this.end():this._stream.resume(),!0)},t.exports=s;},{"../stream/GenericWorker":28,"../utils":32}],13:[function(e,t,r){var i=e("readable-stream").Readable;function n(e,t,r){i.call(this,t),this._helper=e;var n=this;e.on("data",function(e,t){n.push(e)||n._helper.pause(),r&&r(t);}).on("error",function(e){n.emit("error",e);}).on("end",function(){n.push(null);});}e("../utils").inherits(n,i),n.prototype._read=function(){this._helper.resume();},t.exports=n;},{"../utils":32,"readable-stream":16}],14:[function(e,t,r){t.exports={isNode:"undefined"!=typeof Buffer,newBufferFrom:function(e,t){if(Buffer.from&&Buffer.from!==Uint8Array.from)return Buffer.from(e,t);if("number"==typeof e)throw new Error('The "data" argument must not be a number');return new Buffer(e,t)},allocBuffer:function(e){if(Buffer.alloc)return Buffer.alloc(e);var t=new Buffer(e);return t.fill(0),t},isBuffer:function(e){return Buffer.isBuffer(e)},isStream:function(e){return e&&"function"==typeof e.on&&"function"==typeof e.pause&&"function"==typeof e.resume}};},{}],15:[function(e,t,r){function s(e,t,r){var n,i=u.getTypeOf(t),s=u.extend(r||{},f);s.date=s.date||new Date,null!==s.compression&&(s.compression=s.compression.toUpperCase()),"string"==typeof s.unixPermissions&&(s.unixPermissions=parseInt(s.unixPermissions,8)),s.unixPermissions&&16384&s.unixPermissions&&(s.dir=!0),s.dosPermissions&&16&s.dosPermissions&&(s.dir=!0),s.dir&&(e=g(e)),s.createFolders&&(n=_(e))&&b.call(this,n,!0);var a="string"===i&&!1===s.binary&&!1===s.base64;r&&void 0!==r.binary||(s.binary=!a),(t instanceof c&&0===t.uncompressedSize||s.dir||!t||0===t.length)&&(s.base64=!1,s.binary=!0,t="",s.compression="STORE",i="string");var o=null;o=t instanceof c||t instanceof l?t:p.isNode&&p.isStream(t)?new m(e,t):u.prepareContent(e,t,s.binary,s.optimizedBinaryString,s.base64);var h=new d(e,o,s);this.files[e]=h;}var i=e("./utf8"),u=e("./utils"),l=e("./stream/GenericWorker"),a=e("./stream/StreamHelper"),f=e("./defaults"),c=e("./compressedObject"),d=e("./zipObject"),o=e("./generate"),p=e("./nodejsUtils"),m=e("./nodejs/NodejsStreamInputAdapter"),_=function(e){"/"===e.slice(-1)&&(e=e.substring(0,e.length-1));var t=e.lastIndexOf("/");return 0<t?e.substring(0,t):""},g=function(e){return "/"!==e.slice(-1)&&(e+="/"),e},b=function(e,t){return t=void 0!==t?t:f.createFolders,e=g(e),this.files[e]||s.call(this,e,null,{dir:!0,createFolders:t}),this.files[e]};function h(e){return "[object RegExp]"===Object.prototype.toString.call(e)}var n={load:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},forEach:function(e){var t,r,n;for(t in this.files)n=this.files[t],(r=t.slice(this.root.length,t.length))&&t.slice(0,this.root.length)===this.root&&e(r,n);},filter:function(r){var n=[];return this.forEach(function(e,t){r(e,t)&&n.push(t);}),n},file:function(e,t,r){if(1!==arguments.length)return e=this.root+e,s.call(this,e,t,r),this;if(h(e)){var n=e;return this.filter(function(e,t){return !t.dir&&n.test(e)})}var i=this.files[this.root+e];return i&&!i.dir?i:null},folder:function(r){if(!r)return this;if(h(r))return this.filter(function(e,t){return t.dir&&r.test(e)});var e=this.root+r,t=b.call(this,e),n=this.clone();return n.root=t.name,n},remove:function(r){r=this.root+r;var e=this.files[r];if(e||("/"!==r.slice(-1)&&(r+="/"),e=this.files[r]),e&&!e.dir)delete this.files[r];else for(var t=this.filter(function(e,t){return t.name.slice(0,r.length)===r}),n=0;n<t.length;n++)delete this.files[t[n].name];return this},generate:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},generateInternalStream:function(e){var t,r={};try{if((r=u.extend(e||{},{streamFiles:!1,compression:"STORE",compressionOptions:null,type:"",platform:"DOS",comment:null,mimeType:"application/zip",encodeFileName:i.utf8encode})).type=r.type.toLowerCase(),r.compression=r.compression.toUpperCase(),"binarystring"===r.type&&(r.type="string"),!r.type)throw new Error("No output type specified.");u.checkSupport(r.type),"darwin"!==r.platform&&"freebsd"!==r.platform&&"linux"!==r.platform&&"sunos"!==r.platform||(r.platform="UNIX"),"win32"===r.platform&&(r.platform="DOS");var n=r.comment||this.comment||"";t=o.generateWorker(this,r,n);}catch(e){(t=new l("error")).error(e);}return new a(t,r.type||"string",r.mimeType)},generateAsync:function(e,t){return this.generateInternalStream(e).accumulate(t)},generateNodeStream:function(e,t){return (e=e||{}).type||(e.type="nodebuffer"),this.generateInternalStream(e).toNodejsStream(t)}};t.exports=n;},{"./compressedObject":2,"./defaults":5,"./generate":9,"./nodejs/NodejsStreamInputAdapter":12,"./nodejsUtils":14,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31,"./utils":32,"./zipObject":35}],16:[function(e,t,r){t.exports=e("stream");},{stream:void 0}],17:[function(e,t,r){var n=e("./DataReader");function i(e){n.call(this,e);for(var t=0;t<this.data.length;t++)e[t]=255&e[t];}e("../utils").inherits(i,n),i.prototype.byteAt=function(e){return this.data[this.zero+e]},i.prototype.lastIndexOfSignature=function(e){for(var t=e.charCodeAt(0),r=e.charCodeAt(1),n=e.charCodeAt(2),i=e.charCodeAt(3),s=this.length-4;0<=s;--s)if(this.data[s]===t&&this.data[s+1]===r&&this.data[s+2]===n&&this.data[s+3]===i)return s-this.zero;return -1},i.prototype.readAndCheckSignature=function(e){var t=e.charCodeAt(0),r=e.charCodeAt(1),n=e.charCodeAt(2),i=e.charCodeAt(3),s=this.readData(4);return t===s[0]&&r===s[1]&&n===s[2]&&i===s[3]},i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return [];var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i;},{"../utils":32,"./DataReader":18}],18:[function(e,t,r){var n=e("../utils");function i(e){this.data=e,this.length=e.length,this.index=0,this.zero=0;}i.prototype={checkOffset:function(e){this.checkIndex(this.index+e);},checkIndex:function(e){if(this.length<this.zero+e||e<0)throw new Error("End of data reached (data length = "+this.length+", asked index = "+e+"). Corrupted zip ?")},setIndex:function(e){this.checkIndex(e),this.index=e;},skip:function(e){this.setIndex(this.index+e);},byteAt:function(){},readInt:function(e){var t,r=0;for(this.checkOffset(e),t=this.index+e-1;t>=this.index;t--)r=(r<<8)+this.byteAt(t);return this.index+=e,r},readString:function(e){return n.transformTo("string",this.readData(e))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var e=this.readInt(4);return new Date(Date.UTC(1980+(e>>25&127),(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(31&e)<<1))}},t.exports=i;},{"../utils":32}],19:[function(e,t,r){var n=e("./Uint8ArrayReader");function i(e){n.call(this,e);}e("../utils").inherits(i,n),i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i;},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(e,t,r){var n=e("./DataReader");function i(e){n.call(this,e);}e("../utils").inherits(i,n),i.prototype.byteAt=function(e){return this.data.charCodeAt(this.zero+e)},i.prototype.lastIndexOfSignature=function(e){return this.data.lastIndexOf(e)-this.zero},i.prototype.readAndCheckSignature=function(e){return e===this.readData(4)},i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i;},{"../utils":32,"./DataReader":18}],21:[function(e,t,r){var n=e("./ArrayReader");function i(e){n.call(this,e);}e("../utils").inherits(i,n),i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return new Uint8Array(0);var t=this.data.subarray(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i;},{"../utils":32,"./ArrayReader":17}],22:[function(e,t,r){var n=e("../utils"),i=e("../support"),s=e("./ArrayReader"),a=e("./StringReader"),o=e("./NodeBufferReader"),h=e("./Uint8ArrayReader");t.exports=function(e){var t=n.getTypeOf(e);return n.checkSupport(t),"string"!==t||i.uint8array?"nodebuffer"===t?new o(e):i.uint8array?new h(n.transformTo("uint8array",e)):new s(n.transformTo("array",e)):new a(e)};},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(e,t,r){r.LOCAL_FILE_HEADER="PK",r.CENTRAL_FILE_HEADER="PK",r.CENTRAL_DIRECTORY_END="PK",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK",r.ZIP64_CENTRAL_DIRECTORY_END="PK",r.DATA_DESCRIPTOR="PK\b";},{}],24:[function(e,t,r){var n=e("./GenericWorker"),i=e("../utils");function s(e){n.call(this,"ConvertWorker to "+e),this.destType=e;}i.inherits(s,n),s.prototype.processChunk=function(e){this.push({data:i.transformTo(this.destType,e.data),meta:e.meta});},t.exports=s;},{"../utils":32,"./GenericWorker":28}],25:[function(e,t,r){var n=e("./GenericWorker"),i=e("../crc32");function s(){n.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0);}e("../utils").inherits(s,n),s.prototype.processChunk=function(e){this.streamInfo.crc32=i(e.data,this.streamInfo.crc32||0),this.push(e);},t.exports=s;},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(e,t,r){var n=e("../utils"),i=e("./GenericWorker");function s(e){i.call(this,"DataLengthProbe for "+e),this.propName=e,this.withStreamInfo(e,0);}n.inherits(s,i),s.prototype.processChunk=function(e){if(e){var t=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=t+e.data.length;}i.prototype.processChunk.call(this,e);},t.exports=s;},{"../utils":32,"./GenericWorker":28}],27:[function(e,t,r){var n=e("../utils"),i=e("./GenericWorker");function s(e){i.call(this,"DataWorker");var t=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,e.then(function(e){t.dataIsReady=!0,t.data=e,t.max=e&&e.length||0,t.type=n.getTypeOf(e),t.isPaused||t._tickAndRepeat();},function(e){t.error(e);});}n.inherits(s,i),s.prototype.cleanUp=function(){i.prototype.cleanUp.call(this),this.data=null;},s.prototype.resume=function(){return !!i.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,n.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(n.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0));},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return !1;var e=null,t=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":e=this.data.substring(this.index,t);break;case"uint8array":e=this.data.subarray(this.index,t);break;case"array":case"nodebuffer":e=this.data.slice(this.index,t);}return this.index=t,this.push({data:e,meta:{percent:this.max?this.index/this.max*100:0}})},t.exports=s;},{"../utils":32,"./GenericWorker":28}],28:[function(e,t,r){function n(e){this.name=e||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null;}n.prototype={push:function(e){this.emit("data",e);},end:function(){if(this.isFinished)return !1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0;}catch(e){this.emit("error",e);}return !0},error:function(e){return !this.isFinished&&(this.isPaused?this.generatedError=e:(this.isFinished=!0,this.emit("error",e),this.previous&&this.previous.error(e),this.cleanUp()),!0)},on:function(e,t){return this._listeners[e].push(t),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[];},emit:function(e,t){if(this._listeners[e])for(var r=0;r<this._listeners[e].length;r++)this._listeners[e][r].call(this,t);},pipe:function(e){return e.registerPrevious(this)},registerPrevious:function(e){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.streamInfo=e.streamInfo,this.mergeStreamInfo(),this.previous=e;var t=this;return e.on("data",function(e){t.processChunk(e);}),e.on("end",function(){t.end();}),e.on("error",function(e){t.error(e);}),this},pause:function(){return !this.isPaused&&!this.isFinished&&(this.isPaused=!0,this.previous&&this.previous.pause(),!0)},resume:function(){if(!this.isPaused||this.isFinished)return !1;var e=this.isPaused=!1;return this.generatedError&&(this.error(this.generatedError),e=!0),this.previous&&this.previous.resume(),!e},flush:function(){},processChunk:function(e){this.push(e);},withStreamInfo:function(e,t){return this.extraStreamInfo[e]=t,this.mergeStreamInfo(),this},mergeStreamInfo:function(){for(var e in this.extraStreamInfo)Object.prototype.hasOwnProperty.call(this.extraStreamInfo,e)&&(this.streamInfo[e]=this.extraStreamInfo[e]);},lock:function(){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.isLocked=!0,this.previous&&this.previous.lock();},toString:function(){var e="Worker "+this.name;return this.previous?this.previous+" -> "+e:e}},t.exports=n;},{}],29:[function(e,t,r){var h=e("../utils"),i=e("./ConvertWorker"),s=e("./GenericWorker"),u=e("../base64"),n=e("../support"),a=e("../external"),o=null;if(n.nodestream)try{o=e("../nodejs/NodejsStreamOutputAdapter");}catch(e){}function l(e,o){return new a.Promise(function(t,r){var n=[],i=e._internalType,s=e._outputType,a=e._mimeType;e.on("data",function(e,t){n.push(e),o&&o(t);}).on("error",function(e){n=[],r(e);}).on("end",function(){try{var e=function(e,t,r){switch(e){case"blob":return h.newBlob(h.transformTo("arraybuffer",t),r);case"base64":return u.encode(t);default:return h.transformTo(e,t)}}(s,function(e,t){var r,n=0,i=null,s=0;for(r=0;r<t.length;r++)s+=t[r].length;switch(e){case"string":return t.join("");case"array":return Array.prototype.concat.apply([],t);case"uint8array":for(i=new Uint8Array(s),r=0;r<t.length;r++)i.set(t[r],n),n+=t[r].length;return i;case"nodebuffer":return Buffer.concat(t);default:throw new Error("concat : unsupported type '"+e+"'")}}(i,n),a);t(e);}catch(e){r(e);}n=[];}).resume();})}function f(e,t,r){var n=t;switch(t){case"blob":case"arraybuffer":n="uint8array";break;case"base64":n="string";}try{this._internalType=n,this._outputType=t,this._mimeType=r,h.checkSupport(n),this._worker=e.pipe(new i(n)),e.lock();}catch(e){this._worker=new s("error"),this._worker.error(e);}}f.prototype={accumulate:function(e){return l(this,e)},on:function(e,t){var r=this;return "data"===e?this._worker.on(e,function(e){t.call(r,e.data,e.meta);}):this._worker.on(e,function(){h.delay(t,arguments,r);}),this},resume:function(){return h.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(e){if(h.checkSupport("nodestream"),"nodebuffer"!==this._outputType)throw new Error(this._outputType+" is not supported by this method");return new o(this,{objectMode:"nodebuffer"!==this._outputType},e)}},t.exports=f;},{"../base64":1,"../external":6,"../nodejs/NodejsStreamOutputAdapter":13,"../support":30,"../utils":32,"./ConvertWorker":24,"./GenericWorker":28}],30:[function(e,t,r){if(r.base64=!0,r.array=!0,r.string=!0,r.arraybuffer="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array,r.nodebuffer="undefined"!=typeof Buffer,r.uint8array="undefined"!=typeof Uint8Array,"undefined"==typeof ArrayBuffer)r.blob=!1;else {var n=new ArrayBuffer(0);try{r.blob=0===new Blob([n],{type:"application/zip"}).size;}catch(e){try{var i=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);i.append(n),r.blob=0===i.getBlob("application/zip").size;}catch(e){r.blob=!1;}}}try{r.nodestream=!!e("readable-stream").Readable;}catch(e){r.nodestream=!1;}},{"readable-stream":16}],31:[function(e,t,s){for(var o=e("./utils"),h=e("./support"),r=e("./nodejsUtils"),n=e("./stream/GenericWorker"),u=new Array(256),i=0;i<256;i++)u[i]=252<=i?6:248<=i?5:240<=i?4:224<=i?3:192<=i?2:1;u[254]=u[254]=1;function a(){n.call(this,"utf-8 decode"),this.leftOver=null;}function l(){n.call(this,"utf-8 encode");}s.utf8encode=function(e){return h.nodebuffer?r.newBufferFrom(e,"utf-8"):function(e){var t,r,n,i,s,a=e.length,o=0;for(i=0;i<a;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),o+=r<128?1:r<2048?2:r<65536?3:4;for(t=h.uint8array?new Uint8Array(o):new Array(o),i=s=0;s<o;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),r<128?t[s++]=r:(r<2048?t[s++]=192|r>>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t}(e)},s.utf8decode=function(e){return h.nodebuffer?o.transformTo("nodebuffer",e).toString("utf-8"):function(e){var t,r,n,i,s=e.length,a=new Array(2*s);for(t=r=0;t<s;)if((n=e[t++])<128)a[r++]=n;else if(4<(i=u[n]))a[r++]=65533,t+=i-1;else {for(n&=2===i?31:3===i?15:7;1<i&&t<s;)n=n<<6|63&e[t++],i--;1<i?a[r++]=65533:n<65536?a[r++]=n:(n-=65536,a[r++]=55296|n>>10&1023,a[r++]=56320|1023&n);}return a.length!==r&&(a.subarray?a=a.subarray(0,r):a.length=r),o.applyFromCharCode(a)}(e=o.transformTo(h.uint8array?"uint8array":"array",e))},o.inherits(a,n),a.prototype.processChunk=function(e){var t=o.transformTo(h.uint8array?"uint8array":"array",e.data);if(this.leftOver&&this.leftOver.length){if(h.uint8array){var r=t;(t=new Uint8Array(r.length+this.leftOver.length)).set(this.leftOver,0),t.set(r,this.leftOver.length);}else t=this.leftOver.concat(t);this.leftOver=null;}var n=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t}(t),i=t;n!==t.length&&(h.uint8array?(i=t.subarray(0,n),this.leftOver=t.subarray(n,t.length)):(i=t.slice(0,n),this.leftOver=t.slice(n,t.length))),this.push({data:s.utf8decode(i),meta:e.meta});},a.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:s.utf8decode(this.leftOver),meta:{}}),this.leftOver=null);},s.Utf8DecodeWorker=a,o.inherits(l,n),l.prototype.processChunk=function(e){this.push({data:s.utf8encode(e.data),meta:e.meta});},s.Utf8EncodeWorker=l;},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(e,t,a){var o=e("./support"),h=e("./base64"),r=e("./nodejsUtils"),u=e("./external");function n(e){return e}function l(e,t){for(var r=0;r<e.length;++r)t[r]=255&e.charCodeAt(r);return t}e("setimmediate"),a.newBlob=function(t,r){a.checkSupport("blob");try{return new Blob([t],{type:r})}catch(e){try{var n=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);return n.append(t),n.getBlob(r)}catch(e){throw new Error("Bug : can't construct the Blob.")}}};var i={stringifyByChunk:function(e,t,r){var n=[],i=0,s=e.length;if(s<=r)return String.fromCharCode.apply(null,e);for(;i<s;)"array"===t||"nodebuffer"===t?n.push(String.fromCharCode.apply(null,e.slice(i,Math.min(i+r,s)))):n.push(String.fromCharCode.apply(null,e.subarray(i,Math.min(i+r,s)))),i+=r;return n.join("")},stringifyByChar:function(e){for(var t="",r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t},applyCanBeUsed:{uint8array:function(){try{return o.uint8array&&1===String.fromCharCode.apply(null,new Uint8Array(1)).length}catch(e){return !1}}(),nodebuffer:function(){try{return o.nodebuffer&&1===String.fromCharCode.apply(null,r.allocBuffer(1)).length}catch(e){return !1}}()}};function s(e){var t=65536,r=a.getTypeOf(e),n=!0;if("uint8array"===r?n=i.applyCanBeUsed.uint8array:"nodebuffer"===r&&(n=i.applyCanBeUsed.nodebuffer),n)for(;1<t;)try{return i.stringifyByChunk(e,r,t)}catch(e){t=Math.floor(t/2);}return i.stringifyByChar(e)}function f(e,t){for(var r=0;r<e.length;r++)t[r]=e[r];return t}a.applyFromCharCode=s;var c={};c.string={string:n,array:function(e){return l(e,new Array(e.length))},arraybuffer:function(e){return c.string.uint8array(e).buffer},uint8array:function(e){return l(e,new Uint8Array(e.length))},nodebuffer:function(e){return l(e,r.allocBuffer(e.length))}},c.array={string:s,array:n,arraybuffer:function(e){return new Uint8Array(e).buffer},uint8array:function(e){return new Uint8Array(e)},nodebuffer:function(e){return r.newBufferFrom(e)}},c.arraybuffer={string:function(e){return s(new Uint8Array(e))},array:function(e){return f(new Uint8Array(e),new Array(e.byteLength))},arraybuffer:n,uint8array:function(e){return new Uint8Array(e)},nodebuffer:function(e){return r.newBufferFrom(new Uint8Array(e))}},c.uint8array={string:s,array:function(e){return f(e,new Array(e.length))},arraybuffer:function(e){return e.buffer},uint8array:n,nodebuffer:function(e){return r.newBufferFrom(e)}},c.nodebuffer={string:s,array:function(e){return f(e,new Array(e.length))},arraybuffer:function(e){return c.nodebuffer.uint8array(e).buffer},uint8array:function(e){return f(e,new Uint8Array(e.length))},nodebuffer:n},a.transformTo=function(e,t){if(t=t||"",!e)return t;a.checkSupport(e);var r=a.getTypeOf(t);return c[r][e](t)},a.resolve=function(e){for(var t=e.split("/"),r=[],n=0;n<t.length;n++){var i=t[n];"."===i||""===i&&0!==n&&n!==t.length-1||(".."===i?r.pop():r.push(i));}return r.join("/")},a.getTypeOf=function(e){return "string"==typeof e?"string":"[object Array]"===Object.prototype.toString.call(e)?"array":o.nodebuffer&&r.isBuffer(e)?"nodebuffer":o.uint8array&&e instanceof Uint8Array?"uint8array":o.arraybuffer&&e instanceof ArrayBuffer?"arraybuffer":void 0},a.checkSupport=function(e){if(!o[e.toLowerCase()])throw new Error(e+" is not supported by this platform")},a.MAX_VALUE_16BITS=65535,a.MAX_VALUE_32BITS=-1,a.pretty=function(e){var t,r,n="";for(r=0;r<(e||"").length;r++)n+="\\x"+((t=e.charCodeAt(r))<16?"0":"")+t.toString(16).toUpperCase();return n},a.delay=function(e,t,r){setImmediate(function(){e.apply(r||null,t||[]);});},a.inherits=function(e,t){function r(){}r.prototype=t.prototype,e.prototype=new r;},a.extend=function(){var e,t,r={};for(e=0;e<arguments.length;e++)for(t in arguments[e])Object.prototype.hasOwnProperty.call(arguments[e],t)&&void 0===r[t]&&(r[t]=arguments[e][t]);return r},a.prepareContent=function(r,e,n,i,s){return u.Promise.resolve(e).then(function(n){return o.blob&&(n instanceof Blob||-1!==["[object File]","[object Blob]"].indexOf(Object.prototype.toString.call(n)))&&"undefined"!=typeof FileReader?new u.Promise(function(t,r){var e=new FileReader;e.onload=function(e){t(e.target.result);},e.onerror=function(e){r(e.target.error);},e.readAsArrayBuffer(n);}):n}).then(function(e){var t=a.getTypeOf(e);return t?("arraybuffer"===t?e=a.transformTo("uint8array",e):"string"===t&&(s?e=h.decode(e):n&&!0!==i&&(e=function(e){return l(e,o.uint8array?new Uint8Array(e.length):new Array(e.length))}(e))),e):u.Promise.reject(new Error("Can't read the data of '"+r+"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?"))})};},{"./base64":1,"./external":6,"./nodejsUtils":14,"./support":30,setimmediate:54}],33:[function(e,t,r){var n=e("./reader/readerFor"),i=e("./utils"),s=e("./signature"),a=e("./zipEntry"),o=e("./support");function h(e){this.files=[],this.loadOptions=e;}h.prototype={checkSignature:function(e){if(!this.reader.readAndCheckSignature(e)){this.reader.index-=4;var t=this.reader.readString(4);throw new Error("Corrupted zip or bug: unexpected signature ("+i.pretty(t)+", expected "+i.pretty(e)+")")}},isSignature:function(e,t){var r=this.reader.index;this.reader.setIndex(e);var n=this.reader.readString(4)===t;return this.reader.setIndex(r),n},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2);var e=this.reader.readData(this.zipCommentLength),t=o.uint8array?"uint8array":"array",r=i.transformTo(t,e);this.zipComment=this.loadOptions.decodeFileName(r);},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.reader.skip(4),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var e,t,r,n=this.zip64EndOfCentralSize-44;0<n;)e=this.reader.readInt(2),t=this.reader.readInt(4),r=this.reader.readData(t),this.zip64ExtensibleData[e]={id:e,length:t,value:r};},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),1<this.disksCount)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var e,t;for(e=0;e<this.files.length;e++)t=this.files[e],this.reader.setIndex(t.localHeaderOffset),this.checkSignature(s.LOCAL_FILE_HEADER),t.readLocalPart(this.reader),t.handleUTF8(),t.processAttributes();},readCentralDir:function(){var e;for(this.reader.setIndex(this.centralDirOffset);this.reader.readAndCheckSignature(s.CENTRAL_FILE_HEADER);)(e=new a({zip64:this.zip64},this.loadOptions)).readCentralPart(this.reader),this.files.push(e);if(this.centralDirRecords!==this.files.length&&0!==this.centralDirRecords&&0===this.files.length)throw new Error("Corrupted zip or bug: expected "+this.centralDirRecords+" records in central dir, got "+this.files.length)},readEndOfCentral:function(){var e=this.reader.lastIndexOfSignature(s.CENTRAL_DIRECTORY_END);if(e<0)throw !this.isSignature(0,s.LOCAL_FILE_HEADER)?new Error("Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html"):new Error("Corrupted zip: can't find end of central directory");this.reader.setIndex(e);var t=e;if(this.checkSignature(s.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===i.MAX_VALUE_16BITS||this.diskWithCentralDirStart===i.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===i.MAX_VALUE_16BITS||this.centralDirRecords===i.MAX_VALUE_16BITS||this.centralDirSize===i.MAX_VALUE_32BITS||this.centralDirOffset===i.MAX_VALUE_32BITS){if(this.zip64=!0,(e=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR))<0)throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator");if(this.reader.setIndex(e),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,s.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error("Corrupted zip: can't find the ZIP64 end of central directory");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral();}var r=this.centralDirOffset+this.centralDirSize;this.zip64&&(r+=20,r+=12+this.zip64EndOfCentralSize);var n=t-r;if(0<n)this.isSignature(t,s.CENTRAL_FILE_HEADER)||(this.reader.zero=n);else if(n<0)throw new Error("Corrupted zip: missing "+Math.abs(n)+" bytes.")},prepareReader:function(e){this.reader=n(e);},load:function(e){this.prepareReader(e),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles();}},t.exports=h;},{"./reader/readerFor":22,"./signature":23,"./support":30,"./utils":32,"./zipEntry":34}],34:[function(e,t,r){var n=e("./reader/readerFor"),s=e("./utils"),i=e("./compressedObject"),a=e("./crc32"),o=e("./utf8"),h=e("./compressions"),u=e("./support");function l(e,t){this.options=e,this.loadOptions=t;}l.prototype={isEncrypted:function(){return 1==(1&this.bitFlag)},useUTF8:function(){return 2048==(2048&this.bitFlag)},readLocalPart:function(e){var t,r;if(e.skip(22),this.fileNameLength=e.readInt(2),r=e.readInt(2),this.fileName=e.readData(this.fileNameLength),e.skip(r),-1===this.compressedSize||-1===this.uncompressedSize)throw new Error("Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)");if(null===(t=function(e){for(var t in h)if(Object.prototype.hasOwnProperty.call(h,t)&&h[t].magic===e)return h[t];return null}(this.compressionMethod)))throw new Error("Corrupted zip : compression "+s.pretty(this.compressionMethod)+" unknown (inner file : "+s.transformTo("string",this.fileName)+")");this.decompressed=new i(this.compressedSize,this.uncompressedSize,this.crc32,t,e.readData(this.compressedSize));},readCentralPart:function(e){this.versionMadeBy=e.readInt(2),e.skip(2),this.bitFlag=e.readInt(2),this.compressionMethod=e.readString(2),this.date=e.readDate(),this.crc32=e.readInt(4),this.compressedSize=e.readInt(4),this.uncompressedSize=e.readInt(4);var t=e.readInt(2);if(this.extraFieldsLength=e.readInt(2),this.fileCommentLength=e.readInt(2),this.diskNumberStart=e.readInt(2),this.internalFileAttributes=e.readInt(2),this.externalFileAttributes=e.readInt(4),this.localHeaderOffset=e.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");e.skip(t),this.readExtraFields(e),this.parseZIP64ExtraField(e),this.fileComment=e.readData(this.fileCommentLength);},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var e=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),0==e&&(this.dosPermissions=63&this.externalFileAttributes),3==e&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0);},parseZIP64ExtraField:function(){if(this.extraFields[1]){var e=n(this.extraFields[1].value);this.uncompressedSize===s.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===s.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===s.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===s.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4));}},readExtraFields:function(e){var t,r,n,i=e.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});e.index+4<i;)t=e.readInt(2),r=e.readInt(2),n=e.readData(r),this.extraFields[t]={id:t,length:r,value:n};e.setIndex(i);},handleUTF8:function(){var e=u.uint8array?"uint8array":"array";if(this.useUTF8())this.fileNameStr=o.utf8decode(this.fileName),this.fileCommentStr=o.utf8decode(this.fileComment);else {var t=this.findExtraFieldUnicodePath();if(null!==t)this.fileNameStr=t;else {var r=s.transformTo(e,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(r);}var n=this.findExtraFieldUnicodeComment();if(null!==n)this.fileCommentStr=n;else {var i=s.transformTo(e,this.fileComment);this.fileCommentStr=this.loadOptions.decodeFileName(i);}}},findExtraFieldUnicodePath:function(){var e=this.extraFields[28789];if(e){var t=n(e.value);return 1!==t.readInt(1)?null:a(this.fileName)!==t.readInt(4)?null:o.utf8decode(t.readData(e.length-5))}return null},findExtraFieldUnicodeComment:function(){var e=this.extraFields[25461];if(e){var t=n(e.value);return 1!==t.readInt(1)?null:a(this.fileComment)!==t.readInt(4)?null:o.utf8decode(t.readData(e.length-5))}return null}},t.exports=l;},{"./compressedObject":2,"./compressions":3,"./crc32":4,"./reader/readerFor":22,"./support":30,"./utf8":31,"./utils":32}],35:[function(e,t,r){function n(e,t,r){this.name=e,this.dir=r.dir,this.date=r.date,this.comment=r.comment,this.unixPermissions=r.unixPermissions,this.dosPermissions=r.dosPermissions,this._data=t,this._dataBinary=r.binary,this.options={compression:r.compression,compressionOptions:r.compressionOptions};}var s=e("./stream/StreamHelper"),i=e("./stream/DataWorker"),a=e("./utf8"),o=e("./compressedObject"),h=e("./stream/GenericWorker");n.prototype={internalStream:function(e){var t=null,r="string";try{if(!e)throw new Error("No output type specified.");var n="string"===(r=e.toLowerCase())||"text"===r;"binarystring"!==r&&"text"!==r||(r="string"),t=this._decompressWorker();var i=!this._dataBinary;i&&!n&&(t=t.pipe(new a.Utf8EncodeWorker)),!i&&n&&(t=t.pipe(new a.Utf8DecodeWorker));}catch(e){(t=new h("error")).error(e);}return new s(t,r,"")},async:function(e,t){return this.internalStream(e).accumulate(t)},nodeStream:function(e,t){return this.internalStream(e||"nodebuffer").toNodejsStream(t)},_compressWorker:function(e,t){if(this._data instanceof o&&this._data.compression.magic===e.magic)return this._data.getCompressedWorker();var r=this._decompressWorker();return this._dataBinary||(r=r.pipe(new a.Utf8EncodeWorker)),o.createWorkerFrom(r,e,t)},_decompressWorker:function(){return this._data instanceof o?this._data.getContentWorker():this._data instanceof h?this._data:new i(this._data)}};for(var u=["asText","asBinary","asNodeBuffer","asUint8Array","asArrayBuffer"],l=function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},f=0;f<u.length;f++)n.prototype[u[f]]=l;t.exports=n;},{"./compressedObject":2,"./stream/DataWorker":27,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31}],36:[function(e,l,t){(function(t){var r,n,e=t.MutationObserver||t.WebKitMutationObserver;if(e){var i=0,s=new e(u),a=t.document.createTextNode("");s.observe(a,{characterData:!0}),r=function(){a.data=i=++i%2;};}else if(t.setImmediate||void 0===t.MessageChannel)r="document"in t&&"onreadystatechange"in t.document.createElement("script")?function(){var e=t.document.createElement("script");e.onreadystatechange=function(){u(),e.onreadystatechange=null,e.parentNode.removeChild(e),e=null;},t.document.documentElement.appendChild(e);}:function(){setTimeout(u,0);};else {var o=new t.MessageChannel;o.port1.onmessage=u,r=function(){o.port2.postMessage(0);};}var h=[];function u(){var e,t;n=!0;for(var r=h.length;r;){for(t=h,h=[],e=-1;++e<r;)t[e]();r=h.length;}n=!1;}l.exports=function(e){1!==h.push(e)||n||r();};}).call(this,"undefined"!=typeof _commonjsHelpers.commonjsGlobal?_commonjsHelpers.commonjsGlobal:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{});},{}],37:[function(e,t,r){var i=e("immediate");function u(){}var l={},s=["REJECTED"],a=["FULFILLED"],n=["PENDING"];function o(e){if("function"!=typeof e)throw new TypeError("resolver must be a function");this.state=n,this.queue=[],this.outcome=void 0,e!==u&&d(this,e);}function h(e,t,r){this.promise=e,"function"==typeof t&&(this.onFulfilled=t,this.callFulfilled=this.otherCallFulfilled),"function"==typeof r&&(this.onRejected=r,this.callRejected=this.otherCallRejected);}function f(t,r,n){i(function(){var e;try{e=r(n);}catch(e){return l.reject(t,e)}e===t?l.reject(t,new TypeError("Cannot resolve promise with itself")):l.resolve(t,e);});}function c(e){var t=e&&e.then;if(e&&("object"==typeof e||"function"==typeof e)&&"function"==typeof t)return function(){t.apply(e,arguments);}}function d(t,e){var r=!1;function n(e){r||(r=!0,l.reject(t,e));}function i(e){r||(r=!0,l.resolve(t,e));}var s=p(function(){e(i,n);});"error"===s.status&&n(s.value);}function p(e,t){var r={};try{r.value=e(t),r.status="success";}catch(e){r.status="error",r.value=e;}return r}(t.exports=o).prototype.finally=function(t){if("function"!=typeof t)return this;var r=this.constructor;return this.then(function(e){return r.resolve(t()).then(function(){return e})},function(e){return r.resolve(t()).then(function(){throw e})})},o.prototype.catch=function(e){return this.then(null,e)},o.prototype.then=function(e,t){if("function"!=typeof e&&this.state===a||"function"!=typeof t&&this.state===s)return this;var r=new this.constructor(u);this.state!==n?f(r,this.state===a?e:t,this.outcome):this.queue.push(new h(r,e,t));return r},h.prototype.callFulfilled=function(e){l.resolve(this.promise,e);},h.prototype.otherCallFulfilled=function(e){f(this.promise,this.onFulfilled,e);},h.prototype.callRejected=function(e){l.reject(this.promise,e);},h.prototype.otherCallRejected=function(e){f(this.promise,this.onRejected,e);},l.resolve=function(e,t){var r=p(c,t);if("error"===r.status)return l.reject(e,r.value);var n=r.value;if(n)d(e,n);else {e.state=a,e.outcome=t;for(var i=-1,s=e.queue.length;++i<s;)e.queue[i].callFulfilled(t);}return e},l.reject=function(e,t){e.state=s,e.outcome=t;for(var r=-1,n=e.queue.length;++r<n;)e.queue[r].callRejected(t);return e},o.resolve=function(e){if(e instanceof this)return e;return l.resolve(new this(u),e)},o.reject=function(e){var t=new this(u);return l.reject(t,e)},o.all=function(e){var r=this;if("[object Array]"!==Object.prototype.toString.call(e))return this.reject(new TypeError("must be an array"));var n=e.length,i=!1;if(!n)return this.resolve([]);var s=new Array(n),a=0,t=-1,o=new this(u);for(;++t<n;)h(e[t],t);return o;function h(e,t){r.resolve(e).then(function(e){s[t]=e,++a!==n||i||(i=!0,l.resolve(o,s));},function(e){i||(i=!0,l.reject(o,e));});}},o.race=function(e){var t=this;if("[object Array]"!==Object.prototype.toString.call(e))return this.reject(new TypeError("must be an array"));var r=e.length,n=!1;if(!r)return this.resolve([]);var i=-1,s=new this(u);for(;++i<r;)a=e[i],t.resolve(a).then(function(e){n||(n=!0,l.resolve(s,e));},function(e){n||(n=!0,l.reject(s,e));});var a;return s};},{immediate:36}],38:[function(e,t,r){var n={};(0, e("./lib/utils/common").assign)(n,e("./lib/deflate"),e("./lib/inflate"),e("./lib/zlib/constants")),t.exports=n;},{"./lib/deflate":39,"./lib/inflate":40,"./lib/utils/common":41,"./lib/zlib/constants":44}],39:[function(e,t,r){var a=e("./zlib/deflate"),o=e("./utils/common"),h=e("./utils/strings"),i=e("./zlib/messages"),s=e("./zlib/zstream"),u=Object.prototype.toString,l=0,f=-1,c=0,d=8;function p(e){if(!(this instanceof p))return new p(e);this.options=o.assign({level:f,method:d,chunkSize:16384,windowBits:15,memLevel:8,strategy:c,to:""},e||{});var t=this.options;t.raw&&0<t.windowBits?t.windowBits=-t.windowBits:t.gzip&&0<t.windowBits&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new s,this.strm.avail_out=0;var r=a.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(r!==l)throw new Error(i[r]);if(t.header&&a.deflateSetHeader(this.strm,t.header),t.dictionary){var n;if(n="string"==typeof t.dictionary?h.string2buf(t.dictionary):"[object ArrayBuffer]"===u.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,(r=a.deflateSetDictionary(this.strm,n))!==l)throw new Error(i[r]);this._dict_set=!0;}}function n(e,t){var r=new p(t);if(r.push(e,!0),r.err)throw r.msg||i[r.err];return r.result}p.prototype.push=function(e,t){var r,n,i=this.strm,s=this.options.chunkSize;if(this.ended)return !1;n=t===~~t?t:!0===t?4:0,"string"==typeof e?i.input=h.string2buf(e):"[object ArrayBuffer]"===u.call(e)?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;do{if(0===i.avail_out&&(i.output=new o.Buf8(s),i.next_out=0,i.avail_out=s),1!==(r=a.deflate(i,n))&&r!==l)return this.onEnd(r),!(this.ended=!0);0!==i.avail_out&&(0!==i.avail_in||4!==n&&2!==n)||("string"===this.options.to?this.onData(h.buf2binstring(o.shrinkBuf(i.output,i.next_out))):this.onData(o.shrinkBuf(i.output,i.next_out)));}while((0<i.avail_in||0===i.avail_out)&&1!==r);return 4===n?(r=a.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===l):2!==n||(this.onEnd(l),!(i.avail_out=0))},p.prototype.onData=function(e){this.chunks.push(e);},p.prototype.onEnd=function(e){e===l&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=o.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg;},r.Deflate=p,r.deflate=n,r.deflateRaw=function(e,t){return (t=t||{}).raw=!0,n(e,t)},r.gzip=function(e,t){return (t=t||{}).gzip=!0,n(e,t)};},{"./utils/common":41,"./utils/strings":42,"./zlib/deflate":46,"./zlib/messages":51,"./zlib/zstream":53}],40:[function(e,t,r){var c=e("./zlib/inflate"),d=e("./utils/common"),p=e("./utils/strings"),m=e("./zlib/constants"),n=e("./zlib/messages"),i=e("./zlib/zstream"),s=e("./zlib/gzheader"),_=Object.prototype.toString;function a(e){if(!(this instanceof a))return new a(e);this.options=d.assign({chunkSize:16384,windowBits:0,to:""},e||{});var t=this.options;t.raw&&0<=t.windowBits&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(0<=t.windowBits&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),15<t.windowBits&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new i,this.strm.avail_out=0;var r=c.inflateInit2(this.strm,t.windowBits);if(r!==m.Z_OK)throw new Error(n[r]);this.header=new s,c.inflateGetHeader(this.strm,this.header);}function o(e,t){var r=new a(t);if(r.push(e,!0),r.err)throw r.msg||n[r.err];return r.result}a.prototype.push=function(e,t){var r,n,i,s,a,o,h=this.strm,u=this.options.chunkSize,l=this.options.dictionary,f=!1;if(this.ended)return !1;n=t===~~t?t:!0===t?m.Z_FINISH:m.Z_NO_FLUSH,"string"==typeof e?h.input=p.binstring2buf(e):"[object ArrayBuffer]"===_.call(e)?h.input=new Uint8Array(e):h.input=e,h.next_in=0,h.avail_in=h.input.length;do{if(0===h.avail_out&&(h.output=new d.Buf8(u),h.next_out=0,h.avail_out=u),(r=c.inflate(h,m.Z_NO_FLUSH))===m.Z_NEED_DICT&&l&&(o="string"==typeof l?p.string2buf(l):"[object ArrayBuffer]"===_.call(l)?new Uint8Array(l):l,r=c.inflateSetDictionary(this.strm,o)),r===m.Z_BUF_ERROR&&!0===f&&(r=m.Z_OK,f=!1),r!==m.Z_STREAM_END&&r!==m.Z_OK)return this.onEnd(r),!(this.ended=!0);h.next_out&&(0!==h.avail_out&&r!==m.Z_STREAM_END&&(0!==h.avail_in||n!==m.Z_FINISH&&n!==m.Z_SYNC_FLUSH)||("string"===this.options.to?(i=p.utf8border(h.output,h.next_out),s=h.next_out-i,a=p.buf2string(h.output,i),h.next_out=s,h.avail_out=u-s,s&&d.arraySet(h.output,h.output,i,s,0),this.onData(a)):this.onData(d.shrinkBuf(h.output,h.next_out)))),0===h.avail_in&&0===h.avail_out&&(f=!0);}while((0<h.avail_in||0===h.avail_out)&&r!==m.Z_STREAM_END);return r===m.Z_STREAM_END&&(n=m.Z_FINISH),n===m.Z_FINISH?(r=c.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===m.Z_OK):n!==m.Z_SYNC_FLUSH||(this.onEnd(m.Z_OK),!(h.avail_out=0))},a.prototype.onData=function(e){this.chunks.push(e);},a.prototype.onEnd=function(e){e===m.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=d.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg;},r.Inflate=a,r.inflate=o,r.inflateRaw=function(e,t){return (t=t||{}).raw=!0,o(e,t)},r.ungzip=o;},{"./utils/common":41,"./utils/strings":42,"./zlib/constants":44,"./zlib/gzheader":47,"./zlib/inflate":49,"./zlib/messages":51,"./zlib/zstream":53}],41:[function(e,t,r){var n="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;r.assign=function(e){for(var t=Array.prototype.slice.call(arguments,1);t.length;){var r=t.shift();if(r){if("object"!=typeof r)throw new TypeError(r+"must be non-object");for(var n in r)r.hasOwnProperty(n)&&(e[n]=r[n]);}}return e},r.shrinkBuf=function(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)};var i={arraySet:function(e,t,r,n,i){if(t.subarray&&e.subarray)e.set(t.subarray(r,r+n),i);else for(var s=0;s<n;s++)e[i+s]=t[r+s];},flattenChunks:function(e){var t,r,n,i,s,a;for(t=n=0,r=e.length;t<r;t++)n+=e[t].length;for(a=new Uint8Array(n),t=i=0,r=e.length;t<r;t++)s=e[t],a.set(s,i),i+=s.length;return a}},s={arraySet:function(e,t,r,n,i){for(var s=0;s<n;s++)e[i+s]=t[r+s];},flattenChunks:function(e){return [].concat.apply([],e)}};r.setTyped=function(e){e?(r.Buf8=Uint8Array,r.Buf16=Uint16Array,r.Buf32=Int32Array,r.assign(r,i)):(r.Buf8=Array,r.Buf16=Array,r.Buf32=Array,r.assign(r,s));},r.setTyped(n);},{}],42:[function(e,t,r){var h=e("./common"),i=!0,s=!0;try{String.fromCharCode.apply(null,[0]);}catch(e){i=!1;}try{String.fromCharCode.apply(null,new Uint8Array(1));}catch(e){s=!1;}for(var u=new h.Buf8(256),n=0;n<256;n++)u[n]=252<=n?6:248<=n?5:240<=n?4:224<=n?3:192<=n?2:1;function l(e,t){if(t<65537&&(e.subarray&&s||!e.subarray&&i))return String.fromCharCode.apply(null,h.shrinkBuf(e,t));for(var r="",n=0;n<t;n++)r+=String.fromCharCode(e[n]);return r}u[254]=u[254]=1,r.string2buf=function(e){var t,r,n,i,s,a=e.length,o=0;for(i=0;i<a;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),o+=r<128?1:r<2048?2:r<65536?3:4;for(t=new h.Buf8(o),i=s=0;s<o;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),r<128?t[s++]=r:(r<2048?t[s++]=192|r>>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t},r.buf2binstring=function(e){return l(e,e.length)},r.binstring2buf=function(e){for(var t=new h.Buf8(e.length),r=0,n=t.length;r<n;r++)t[r]=e.charCodeAt(r);return t},r.buf2string=function(e,t){var r,n,i,s,a=t||e.length,o=new Array(2*a);for(r=n=0;r<a;)if((i=e[r++])<128)o[n++]=i;else if(4<(s=u[i]))o[n++]=65533,r+=s-1;else {for(i&=2===s?31:3===s?15:7;1<s&&r<a;)i=i<<6|63&e[r++],s--;1<s?o[n++]=65533:i<65536?o[n++]=i:(i-=65536,o[n++]=55296|i>>10&1023,o[n++]=56320|1023&i);}return l(o,n)},r.utf8border=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t};},{"./common":41}],43:[function(e,t,r){t.exports=function(e,t,r,n){for(var i=65535&e|0,s=e>>>16&65535|0,a=0;0!==r;){for(r-=a=2e3<r?2e3:r;s=s+(i=i+t[n++]|0)|0,--a;);i%=65521,s%=65521;}return i|s<<16|0};},{}],44:[function(e,t,r){t.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};},{}],45:[function(e,t,r){var o=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e;}return t}();t.exports=function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a<s;a++)e=e>>>8^i[255&(e^t[a])];return -1^e};},{}],46:[function(e,t,r){var h,c=e("../utils/common"),u=e("./trees"),d=e("./adler32"),p=e("./crc32"),n=e("./messages"),l=0,f=4,m=0,_=-2,g=-1,b=4,i=2,v=8,y=9,s=286,a=30,o=19,w=2*s+1,k=15,x=3,S=258,z=S+x+1,C=42,E=113,A=1,I=2,O=3,B=4;function R(e,t){return e.msg=n[t],t}function T(e){return (e<<1)-(4<e?9:0)}function D(e){for(var t=e.length;0<=--t;)e[t]=0;}function F(e){var t=e.state,r=t.pending;r>e.avail_out&&(r=e.avail_out),0!==r&&(c.arraySet(e.output,t.pending_buf,t.pending_out,r,e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,0===t.pending&&(t.pending_out=0));}function N(e,t){u._tr_flush_block(e,0<=e.block_start?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,F(e.strm);}function U(e,t){e.pending_buf[e.pending++]=t;}function P(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t;}function L(e,t){var r,n,i=e.max_chain_length,s=e.strstart,a=e.prev_length,o=e.nice_match,h=e.strstart>e.w_size-z?e.strstart-(e.w_size-z):0,u=e.window,l=e.w_mask,f=e.prev,c=e.strstart+S,d=u[s+a-1],p=u[s+a];e.prev_length>=e.good_match&&(i>>=2),o>e.lookahead&&(o=e.lookahead);do{if(u[(r=t)+a]===p&&u[r+a-1]===d&&u[r]===u[s]&&u[++r]===u[s+1]){s+=2,r++;do{}while(u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&s<c);if(n=S-(c-s),s=c-S,a<n){if(e.match_start=t,o<=(a=n))break;d=u[s+a-1],p=u[s+a];}}}while((t=f[t&l])>h&&0!=--i);return a<=e.lookahead?a:e.lookahead}function j(e){var t,r,n,i,s,a,o,h,u,l,f=e.w_size;do{if(i=e.window_size-e.lookahead-e.strstart,e.strstart>=f+(f-z)){for(c.arraySet(e.window,e.window,f,f,0),e.match_start-=f,e.strstart-=f,e.block_start-=f,t=r=e.hash_size;n=e.head[--t],e.head[t]=f<=n?n-f:0,--r;);for(t=r=f;n=e.prev[--t],e.prev[t]=f<=n?n-f:0,--r;);i+=f;}if(0===e.strm.avail_in)break;if(a=e.strm,o=e.window,h=e.strstart+e.lookahead,u=i,l=void 0,l=a.avail_in,u<l&&(l=u),r=0===l?0:(a.avail_in-=l,c.arraySet(o,a.input,a.next_in,l,h),1===a.state.wrap?a.adler=d(a.adler,o,l,h):2===a.state.wrap&&(a.adler=p(a.adler,o,l,h)),a.next_in+=l,a.total_in+=l,l),e.lookahead+=r,e.lookahead+e.insert>=x)for(s=e.strstart-e.insert,e.ins_h=e.window[s],e.ins_h=(e.ins_h<<e.hash_shift^e.window[s+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[s+x-1])&e.hash_mask,e.prev[s&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=s,s++,e.insert--,!(e.lookahead+e.insert<x)););}while(e.lookahead<z&&0!==e.strm.avail_in)}function Z(e,t){for(var r,n;;){if(e.lookahead<z){if(j(e),e.lookahead<z&&t===l)return A;if(0===e.lookahead)break}if(r=0,e.lookahead>=x&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+x-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==r&&e.strstart-r<=e.w_size-z&&(e.match_length=L(e,r)),e.match_length>=x)if(n=u._tr_tally(e,e.strstart-e.match_start,e.match_length-x),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=x){for(e.match_length--;e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+x-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart,0!=--e.match_length;);e.strstart++;}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else n=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=e.strstart<x-1?e.strstart:x-1,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}function W(e,t){for(var r,n,i;;){if(e.lookahead<z){if(j(e),e.lookahead<z&&t===l)return A;if(0===e.lookahead)break}if(r=0,e.lookahead>=x&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+x-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=x-1,0!==r&&e.prev_length<e.max_lazy_match&&e.strstart-r<=e.w_size-z&&(e.match_length=L(e,r),e.match_length<=5&&(1===e.strategy||e.match_length===x&&4096<e.strstart-e.match_start)&&(e.match_length=x-1)),e.prev_length>=x&&e.match_length<=e.prev_length){for(i=e.strstart+e.lookahead-x,n=u._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-x),e.lookahead-=e.prev_length-1,e.prev_length-=2;++e.strstart<=i&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+x-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!=--e.prev_length;);if(e.match_available=0,e.match_length=x-1,e.strstart++,n&&(N(e,!1),0===e.strm.avail_out))return A}else if(e.match_available){if((n=u._tr_tally(e,0,e.window[e.strstart-1]))&&N(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return A}else e.match_available=1,e.strstart++,e.lookahead--;}return e.match_available&&(n=u._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<x-1?e.strstart:x-1,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}function M(e,t,r,n,i){this.good_length=e,this.max_lazy=t,this.nice_length=r,this.max_chain=n,this.func=i;}function H(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=v,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new c.Buf16(2*w),this.dyn_dtree=new c.Buf16(2*(2*a+1)),this.bl_tree=new c.Buf16(2*(2*o+1)),D(this.dyn_ltree),D(this.dyn_dtree),D(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new c.Buf16(k+1),this.heap=new c.Buf16(2*s+1),D(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new c.Buf16(2*s+1),D(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0;}function G(e){var t;return e&&e.state?(e.total_in=e.total_out=0,e.data_type=i,(t=e.state).pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?C:E,e.adler=2===t.wrap?0:1,t.last_flush=l,u._tr_init(t),m):R(e,_)}function K(e){var t=G(e);return t===m&&function(e){e.window_size=2*e.w_size,D(e.head),e.max_lazy_match=h[e.level].max_lazy,e.good_match=h[e.level].good_length,e.nice_match=h[e.level].nice_length,e.max_chain_length=h[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=x-1,e.match_available=0,e.ins_h=0;}(e.state),t}function Y(e,t,r,n,i,s){if(!e)return _;var a=1;if(t===g&&(t=6),n<0?(a=0,n=-n):15<n&&(a=2,n-=16),i<1||y<i||r!==v||n<8||15<n||t<0||9<t||s<0||b<s)return R(e,_);8===n&&(n=9);var o=new H;return (e.state=o).strm=e,o.wrap=a,o.gzhead=null,o.w_bits=n,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=i+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+x-1)/x),o.window=new c.Buf8(2*o.w_size),o.head=new c.Buf16(o.hash_size),o.prev=new c.Buf16(o.w_size),o.lit_bufsize=1<<i+6,o.pending_buf_size=4*o.lit_bufsize,o.pending_buf=new c.Buf8(o.pending_buf_size),o.d_buf=1*o.lit_bufsize,o.l_buf=3*o.lit_bufsize,o.level=t,o.strategy=s,o.method=r,K(e)}h=[new M(0,0,0,0,function(e,t){var r=65535;for(r>e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(j(e),0===e.lookahead&&t===l)return A;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+r;if((0===e.strstart||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,N(e,!1),0===e.strm.avail_out))return A;if(e.strstart-e.block_start>=e.w_size-z&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):(e.strstart>e.block_start&&(N(e,!1),e.strm.avail_out),A)}),new M(4,4,8,4,Z),new M(4,5,16,8,Z),new M(4,6,32,32,Z),new M(4,4,16,16,W),new M(8,16,32,32,W),new M(8,16,128,128,W),new M(8,32,128,256,W),new M(32,128,258,1024,W),new M(32,258,258,4096,W)],r.deflateInit=function(e,t){return Y(e,t,v,15,8,0)},r.deflateInit2=Y,r.deflateReset=K,r.deflateResetKeep=G,r.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?_:(e.state.gzhead=t,m):_},r.deflate=function(e,t){var r,n,i,s;if(!e||!e.state||5<t||t<0)return e?R(e,_):_;if(n=e.state,!e.output||!e.input&&0!==e.avail_in||666===n.status&&t!==f)return R(e,0===e.avail_out?-5:_);if(n.strm=e,r=n.last_flush,n.last_flush=t,n.status===C)if(2===n.wrap)e.adler=0,U(n,31),U(n,139),U(n,8),n.gzhead?(U(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),U(n,255&n.gzhead.time),U(n,n.gzhead.time>>8&255),U(n,n.gzhead.time>>16&255),U(n,n.gzhead.time>>24&255),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(U(n,255&n.gzhead.extra.length),U(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=p(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69):(U(n,0),U(n,0),U(n,0),U(n,0),U(n,0),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,3),n.status=E);else {var a=v+(n.w_bits-8<<4)<<8;a|=(2<=n.strategy||n.level<2?0:n.level<6?1:6===n.level?2:3)<<6,0!==n.strstart&&(a|=32),a+=31-a%31,n.status=E,P(n,a),0!==n.strstart&&(P(n,e.adler>>>16),P(n,65535&e.adler)),e.adler=1;}if(69===n.status)if(n.gzhead.extra){for(i=n.pending;n.gzindex<(65535&n.gzhead.extra.length)&&(n.pending!==n.pending_buf_size||(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending!==n.pending_buf_size));)U(n,255&n.gzhead.extra[n.gzindex]),n.gzindex++;n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=73);}else n.status=73;if(73===n.status)if(n.gzhead.name){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindex<n.gzhead.name.length?255&n.gzhead.name.charCodeAt(n.gzindex++):0,U(n,s);}while(0!==s);n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.gzindex=0,n.status=91);}else n.status=91;if(91===n.status)if(n.gzhead.comment){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindex<n.gzhead.comment.length?255&n.gzhead.comment.charCodeAt(n.gzindex++):0,U(n,s);}while(0!==s);n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.status=103);}else n.status=103;if(103===n.status&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&F(e),n.pending+2<=n.pending_buf_size&&(U(n,255&e.adler),U(n,e.adler>>8&255),e.adler=0,n.status=E)):n.status=E),0!==n.pending){if(F(e),0===e.avail_out)return n.last_flush=-1,m}else if(0===e.avail_in&&T(t)<=T(r)&&t!==f)return R(e,-5);if(666===n.status&&0!==e.avail_in)return R(e,-5);if(0!==e.avail_in||0!==n.lookahead||t!==l&&666!==n.status){var o=2===n.strategy?function(e,t){for(var r;;){if(0===e.lookahead&&(j(e),0===e.lookahead)){if(t===l)return A;break}if(e.match_length=0,r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):3===n.strategy?function(e,t){for(var r,n,i,s,a=e.window;;){if(e.lookahead<=S){if(j(e),e.lookahead<=S&&t===l)return A;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=x&&0<e.strstart&&(n=a[i=e.strstart-1])===a[++i]&&n===a[++i]&&n===a[++i]){s=e.strstart+S;do{}while(n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&i<s);e.match_length=S-(s-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead);}if(e.match_length>=x?(r=u._tr_tally(e,1,e.match_length-x),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):h[n.level].func(n,t);if(o!==O&&o!==B||(n.status=666),o===A||o===O)return 0===e.avail_out&&(n.last_flush=-1),m;if(o===I&&(1===t?u._tr_align(n):5!==t&&(u._tr_stored_block(n,0,0,!1),3===t&&(D(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),F(e),0===e.avail_out))return n.last_flush=-1,m}return t!==f?m:n.wrap<=0?1:(2===n.wrap?(U(n,255&e.adler),U(n,e.adler>>8&255),U(n,e.adler>>16&255),U(n,e.adler>>24&255),U(n,255&e.total_in),U(n,e.total_in>>8&255),U(n,e.total_in>>16&255),U(n,e.total_in>>24&255)):(P(n,e.adler>>>16),P(n,65535&e.adler)),F(e),0<n.wrap&&(n.wrap=-n.wrap),0!==n.pending?m:1)},r.deflateEnd=function(e){var t;return e&&e.state?(t=e.state.status)!==C&&69!==t&&73!==t&&91!==t&&103!==t&&t!==E&&666!==t?R(e,_):(e.state=null,t===E?R(e,-3):m):_},r.deflateSetDictionary=function(e,t){var r,n,i,s,a,o,h,u,l=t.length;if(!e||!e.state)return _;if(2===(s=(r=e.state).wrap)||1===s&&r.status!==C||r.lookahead)return _;for(1===s&&(e.adler=d(e.adler,t,l,0)),r.wrap=0,l>=r.w_size&&(0===s&&(D(r.head),r.strstart=0,r.block_start=0,r.insert=0),u=new c.Buf8(r.w_size),c.arraySet(u,t,l-r.w_size,r.w_size,0),t=u,l=r.w_size),a=e.avail_in,o=e.next_in,h=e.input,e.avail_in=l,e.next_in=0,e.input=t,j(r);r.lookahead>=x;){for(n=r.strstart,i=r.lookahead-(x-1);r.ins_h=(r.ins_h<<r.hash_shift^r.window[n+x-1])&r.hash_mask,r.prev[n&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=n,n++,--i;);r.strstart=n,r.lookahead=x-1,j(r);}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=x-1,r.match_available=0,e.next_in=o,e.input=h,e.avail_in=a,r.wrap=s,m},r.deflateInfo="pako deflate (from Nodeca project)";},{"../utils/common":41,"./adler32":43,"./crc32":45,"./messages":51,"./trees":52}],47:[function(e,t,r){t.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1;};},{}],48:[function(e,t,r){t.exports=function(e,t){var r,n,i,s,a,o,h,u,l,f,c,d,p,m,_,g,b,v,y,w,k,x,S,z,C;r=e.state,n=e.next_in,z=e.input,i=n+(e.avail_in-5),s=e.next_out,C=e.output,a=s-(t-e.avail_out),o=s+(e.avail_out-257),h=r.dmax,u=r.wsize,l=r.whave,f=r.wnext,c=r.window,d=r.hold,p=r.bits,m=r.lencode,_=r.distcode,g=(1<<r.lenbits)-1,b=(1<<r.distbits)-1;e:do{p<15&&(d+=z[n++]<<p,p+=8,d+=z[n++]<<p,p+=8),v=m[d&g];t:for(;;){if(d>>>=y=v>>>24,p-=y,0===(y=v>>>16&255))C[s++]=65535&v;else {if(!(16&y)){if(0==(64&y)){v=m[(65535&v)+(d&(1<<y)-1)];continue t}if(32&y){r.mode=12;break e}e.msg="invalid literal/length code",r.mode=30;break e}w=65535&v,(y&=15)&&(p<y&&(d+=z[n++]<<p,p+=8),w+=d&(1<<y)-1,d>>>=y,p-=y),p<15&&(d+=z[n++]<<p,p+=8,d+=z[n++]<<p,p+=8),v=_[d&b];r:for(;;){if(d>>>=y=v>>>24,p-=y,!(16&(y=v>>>16&255))){if(0==(64&y)){v=_[(65535&v)+(d&(1<<y)-1)];continue r}e.msg="invalid distance code",r.mode=30;break e}if(k=65535&v,p<(y&=15)&&(d+=z[n++]<<p,(p+=8)<y&&(d+=z[n++]<<p,p+=8)),h<(k+=d&(1<<y)-1)){e.msg="invalid distance too far back",r.mode=30;break e}if(d>>>=y,p-=y,(y=s-a)<k){if(l<(y=k-y)&&r.sane){e.msg="invalid distance too far back",r.mode=30;break e}if(S=c,(x=0)===f){if(x+=u-y,y<w){for(w-=y;C[s++]=c[x++],--y;);x=s-k,S=C;}}else if(f<y){if(x+=u+f-y,(y-=f)<w){for(w-=y;C[s++]=c[x++],--y;);if(x=0,f<w){for(w-=y=f;C[s++]=c[x++],--y;);x=s-k,S=C;}}}else if(x+=f-y,y<w){for(w-=y;C[s++]=c[x++],--y;);x=s-k,S=C;}for(;2<w;)C[s++]=S[x++],C[s++]=S[x++],C[s++]=S[x++],w-=3;w&&(C[s++]=S[x++],1<w&&(C[s++]=S[x++]));}else {for(x=s-k;C[s++]=C[x++],C[s++]=C[x++],C[s++]=C[x++],2<(w-=3););w&&(C[s++]=C[x++],1<w&&(C[s++]=C[x++]));}break}}break}}while(n<i&&s<o);n-=w=p>>3,d&=(1<<(p-=w<<3))-1,e.next_in=n,e.next_out=s,e.avail_in=n<i?i-n+5:5-(n-i),e.avail_out=s<o?o-s+257:257-(s-o),r.hold=d,r.bits=p;};},{}],49:[function(e,t,r){var I=e("../utils/common"),O=e("./adler32"),B=e("./crc32"),R=e("./inffast"),T=e("./inftrees"),D=1,F=2,N=0,U=-2,P=1,n=852,i=592;function L(e){return (e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function s(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new I.Buf16(320),this.work=new I.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0;}function a(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=P,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new I.Buf32(n),t.distcode=t.distdyn=new I.Buf32(i),t.sane=1,t.back=-1,N):U}function o(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,a(e)):U}function h(e,t){var r,n;return e&&e.state?(n=e.state,t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||15<t)?U:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=r,n.wbits=t,o(e))):U}function u(e,t){var r,n;return e?(n=new s,(e.state=n).window=null,(r=h(e,t))!==N&&(e.state=null),r):U}var l,f,c=!0;function j(e){if(c){var t;for(l=new I.Buf32(512),f=new I.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(T(D,e.lens,0,288,l,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;T(F,e.lens,0,32,f,0,e.work,{bits:5}),c=!1;}e.lencode=l,e.lenbits=9,e.distcode=f,e.distbits=5;}function Z(e,t,r,n){var i,s=e.state;return null===s.window&&(s.wsize=1<<s.wbits,s.wnext=0,s.whave=0,s.window=new I.Buf8(s.wsize)),n>=s.wsize?(I.arraySet(s.window,t,r-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(n<(i=s.wsize-s.wnext)&&(i=n),I.arraySet(s.window,t,r-n,i,s.wnext),(n-=i)?(I.arraySet(s.window,t,r-n,n,0),s.wnext=n,s.whave=s.wsize):(s.wnext+=i,s.wnext===s.wsize&&(s.wnext=0),s.whave<s.wsize&&(s.whave+=i))),0}r.inflateReset=o,r.inflateReset2=h,r.inflateResetKeep=a,r.inflateInit=function(e){return u(e,15)},r.inflateInit2=u,r.inflate=function(e,t){var r,n,i,s,a,o,h,u,l,f,c,d,p,m,_,g,b,v,y,w,k,x,S,z,C=0,E=new I.Buf8(4),A=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return U;12===(r=e.state).mode&&(r.mode=13),a=e.next_out,i=e.output,h=e.avail_out,s=e.next_in,n=e.input,o=e.avail_in,u=r.hold,l=r.bits,f=o,c=h,x=N;e:for(;;)switch(r.mode){case P:if(0===r.wrap){r.mode=13;break}for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8;}if(2&r.wrap&&35615===u){E[r.check=0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0),l=u=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&u)<<8)+(u>>8))%31){e.msg="incorrect header check",r.mode=30;break}if(8!=(15&u)){e.msg="unknown compression method",r.mode=30;break}if(l-=4,k=8+(15&(u>>>=4)),0===r.wbits)r.wbits=k;else if(k>r.wbits){e.msg="invalid window size",r.mode=30;break}r.dmax=1<<k,e.adler=r.check=1,r.mode=512&u?10:12,l=u=0;break;case 2:for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8;}if(r.flags=u,8!=(255&r.flags)){e.msg="unknown compression method",r.mode=30;break}if(57344&r.flags){e.msg="unknown header flags set",r.mode=30;break}r.head&&(r.head.text=u>>8&1),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=3;case 3:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8;}r.head&&(r.head.time=u),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,E[2]=u>>>16&255,E[3]=u>>>24&255,r.check=B(r.check,E,4,0)),l=u=0,r.mode=4;case 4:for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8;}r.head&&(r.head.xflags=255&u,r.head.os=u>>8),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=5;case 5:if(1024&r.flags){for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8;}r.length=u,r.head&&(r.head.extra_len=u),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0;}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(o<(d=r.length)&&(d=o),d&&(r.head&&(k=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),I.arraySet(r.head.extra,n,s,d,k)),512&r.flags&&(r.check=B(r.check,n,d,s)),o-=d,s+=d,r.length-=d),r.length))break e;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===o)break e;for(d=0;k=n[s+d++],r.head&&k&&r.length<65536&&(r.head.name+=String.fromCharCode(k)),k&&d<o;);if(512&r.flags&&(r.check=B(r.check,n,d,s)),o-=d,s+=d,k)break e}else r.head&&(r.head.name=null);r.length=0,r.mode=8;case 8:if(4096&r.flags){if(0===o)break e;for(d=0;k=n[s+d++],r.head&&k&&r.length<65536&&(r.head.comment+=String.fromCharCode(k)),k&&d<o;);if(512&r.flags&&(r.check=B(r.check,n,d,s)),o-=d,s+=d,k)break e}else r.head&&(r.head.comment=null);r.mode=9;case 9:if(512&r.flags){for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8;}if(u!==(65535&r.check)){e.msg="header crc mismatch",r.mode=30;break}l=u=0;}r.head&&(r.head.hcrc=r.flags>>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=12;break;case 10:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8;}e.adler=r.check=L(u),l=u=0,r.mode=11;case 11:if(0===r.havedict)return e.next_out=a,e.avail_out=h,e.next_in=s,e.avail_in=o,r.hold=u,r.bits=l,2;e.adler=r.check=1,r.mode=12;case 12:if(5===t||6===t)break e;case 13:if(r.last){u>>>=7&l,l-=7&l,r.mode=27;break}for(;l<3;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8;}switch(r.last=1&u,l-=1,3&(u>>>=1)){case 0:r.mode=14;break;case 1:if(j(r),r.mode=20,6!==t)break;u>>>=2,l-=2;break e;case 2:r.mode=17;break;case 3:e.msg="invalid block type",r.mode=30;}u>>>=2,l-=2;break;case 14:for(u>>>=7&l,l-=7&l;l<32;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8;}if((65535&u)!=(u>>>16^65535)){e.msg="invalid stored block lengths",r.mode=30;break}if(r.length=65535&u,l=u=0,r.mode=15,6===t)break e;case 15:r.mode=16;case 16:if(d=r.length){if(o<d&&(d=o),h<d&&(d=h),0===d)break e;I.arraySet(i,n,s,d,a),o-=d,s+=d,h-=d,a+=d,r.length-=d;break}r.mode=12;break;case 17:for(;l<14;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8;}if(r.nlen=257+(31&u),u>>>=5,l-=5,r.ndist=1+(31&u),u>>>=5,l-=5,r.ncode=4+(15&u),u>>>=4,l-=4,286<r.nlen||30<r.ndist){e.msg="too many length or distance symbols",r.mode=30;break}r.have=0,r.mode=18;case 18:for(;r.have<r.ncode;){for(;l<3;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8;}r.lens[A[r.have++]]=7&u,u>>>=3,l-=3;}for(;r.have<19;)r.lens[A[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,S={bits:r.lenbits},x=T(0,r.lens,0,19,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg="invalid code lengths set",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have<r.nlen+r.ndist;){for(;g=(C=r.lencode[u&(1<<r.lenbits)-1])>>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8;}if(b<16)u>>>=_,l-=_,r.lens[r.have++]=b;else {if(16===b){for(z=_+2;l<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8;}if(u>>>=_,l-=_,0===r.have){e.msg="invalid bit length repeat",r.mode=30;break}k=r.lens[r.have-1],d=3+(3&u),u>>>=2,l-=2;}else if(17===b){for(z=_+3;l<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8;}l-=_,k=0,d=3+(7&(u>>>=_)),u>>>=3,l-=3;}else {for(z=_+7;l<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8;}l-=_,k=0,d=11+(127&(u>>>=_)),u>>>=7,l-=7;}if(r.have+d>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=30;break}for(;d--;)r.lens[r.have++]=k;}}if(30===r.mode)break;if(0===r.lens[256]){e.msg="invalid code -- missing end-of-block",r.mode=30;break}if(r.lenbits=9,S={bits:r.lenbits},x=T(D,r.lens,0,r.nlen,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg="invalid literal/lengths set",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,S={bits:r.distbits},x=T(F,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,S),r.distbits=S.bits,x){e.msg="invalid distances set",r.mode=30;break}if(r.mode=20,6===t)break e;case 20:r.mode=21;case 21:if(6<=o&&258<=h){e.next_out=a,e.avail_out=h,e.next_in=s,e.avail_in=o,r.hold=u,r.bits=l,R(e,c),a=e.next_out,i=e.output,h=e.avail_out,s=e.next_in,n=e.input,o=e.avail_in,u=r.hold,l=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;g=(C=r.lencode[u&(1<<r.lenbits)-1])>>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8;}if(g&&0==(240&g)){for(v=_,y=g,w=b;g=(C=r.lencode[w+((u&(1<<v+y)-1)>>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8;}u>>>=v,l-=v,r.back+=v;}if(u>>>=_,l-=_,r.back+=_,r.length=b,0===g){r.mode=26;break}if(32&g){r.back=-1,r.mode=12;break}if(64&g){e.msg="invalid literal/length code",r.mode=30;break}r.extra=15&g,r.mode=22;case 22:if(r.extra){for(z=r.extra;l<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8;}r.length+=u&(1<<r.extra)-1,u>>>=r.extra,l-=r.extra,r.back+=r.extra;}r.was=r.length,r.mode=23;case 23:for(;g=(C=r.distcode[u&(1<<r.distbits)-1])>>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8;}if(0==(240&g)){for(v=_,y=g,w=b;g=(C=r.distcode[w+((u&(1<<v+y)-1)>>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8;}u>>>=v,l-=v,r.back+=v;}if(u>>>=_,l-=_,r.back+=_,64&g){e.msg="invalid distance code",r.mode=30;break}r.offset=b,r.extra=15&g,r.mode=24;case 24:if(r.extra){for(z=r.extra;l<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8;}r.offset+=u&(1<<r.extra)-1,u>>>=r.extra,l-=r.extra,r.back+=r.extra;}if(r.offset>r.dmax){e.msg="invalid distance too far back",r.mode=30;break}r.mode=25;case 25:if(0===h)break e;if(d=c-h,r.offset>d){if((d=r.offset-d)>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=30;break}p=d>r.wnext?(d-=r.wnext,r.wsize-d):r.wnext-d,d>r.length&&(d=r.length),m=r.window;}else m=i,p=a-r.offset,d=r.length;for(h<d&&(d=h),h-=d,r.length-=d;i[a++]=m[p++],--d;);0===r.length&&(r.mode=21);break;case 26:if(0===h)break e;i[a++]=r.length,h--,r.mode=21;break;case 27:if(r.wrap){for(;l<32;){if(0===o)break e;o--,u|=n[s++]<<l,l+=8;}if(c-=h,e.total_out+=c,r.total+=c,c&&(e.adler=r.check=r.flags?B(r.check,i,c,a-c):O(r.check,i,c,a-c)),c=h,(r.flags?u:L(u))!==r.check){e.msg="incorrect data check",r.mode=30;break}l=u=0;}r.mode=28;case 28:if(r.wrap&&r.flags){for(;l<32;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8;}if(u!==(4294967295&r.total)){e.msg="incorrect length check",r.mode=30;break}l=u=0;}r.mode=29;case 29:x=1;break e;case 30:x=-3;break e;case 31:return -4;case 32:default:return U}return e.next_out=a,e.avail_out=h,e.next_in=s,e.avail_in=o,r.hold=u,r.bits=l,(r.wsize||c!==e.avail_out&&r.mode<30&&(r.mode<27||4!==t))&&Z(e,e.output,e.next_out,c-e.avail_out)?(r.mode=31,-4):(f-=e.avail_in,c-=e.avail_out,e.total_in+=f,e.total_out+=c,r.total+=c,r.wrap&&c&&(e.adler=r.check=r.flags?B(r.check,i,c,e.next_out-c):O(r.check,i,c,e.next_out-c)),e.data_type=r.bits+(r.last?64:0)+(12===r.mode?128:0)+(20===r.mode||15===r.mode?256:0),(0==f&&0===c||4===t)&&x===N&&(x=-5),x)},r.inflateEnd=function(e){if(!e||!e.state)return U;var t=e.state;return t.window&&(t.window=null),e.state=null,N},r.inflateGetHeader=function(e,t){var r;return e&&e.state?0==(2&(r=e.state).wrap)?U:((r.head=t).done=!1,N):U},r.inflateSetDictionary=function(e,t){var r,n=t.length;return e&&e.state?0!==(r=e.state).wrap&&11!==r.mode?U:11===r.mode&&O(1,t,n,0)!==r.check?-3:Z(e,t,n,n)?(r.mode=31,-4):(r.havedict=1,N):U},r.inflateInfo="pako inflate (from Nodeca project)";},{"../utils/common":41,"./adler32":43,"./crc32":45,"./inffast":48,"./inftrees":50}],50:[function(e,t,r){var D=e("../utils/common"),F=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],N=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],U=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],P=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];t.exports=function(e,t,r,n,i,s,a,o){var h,u,l,f,c,d,p,m,_,g=o.bits,b=0,v=0,y=0,w=0,k=0,x=0,S=0,z=0,C=0,E=0,A=null,I=0,O=new D.Buf16(16),B=new D.Buf16(16),R=null,T=0;for(b=0;b<=15;b++)O[b]=0;for(v=0;v<n;v++)O[t[r+v]]++;for(k=g,w=15;1<=w&&0===O[w];w--);if(w<k&&(k=w),0===w)return i[s++]=20971520,i[s++]=20971520,o.bits=1,0;for(y=1;y<w&&0===O[y];y++);for(k<y&&(k=y),b=z=1;b<=15;b++)if(z<<=1,(z-=O[b])<0)return -1;if(0<z&&(0===e||1!==w))return -1;for(B[1]=0,b=1;b<15;b++)B[b+1]=B[b]+O[b];for(v=0;v<n;v++)0!==t[r+v]&&(a[B[t[r+v]]++]=v);if(d=0===e?(A=R=a,19):1===e?(A=F,I-=257,R=N,T-=257,256):(A=U,R=P,-1),b=y,c=s,S=v=E=0,l=-1,f=(C=1<<(x=k))-1,1===e&&852<C||2===e&&592<C)return 1;for(;;){for(p=b-S,_=a[v]<d?(m=0,a[v]):a[v]>d?(m=R[T+a[v]],A[I+a[v]]):(m=96,0),h=1<<b-S,y=u=1<<x;i[c+(E>>S)+(u-=h)]=p<<24|m<<16|_|0,0!==u;);for(h=1<<b-1;E&h;)h>>=1;if(0!==h?(E&=h-1,E+=h):E=0,v++,0==--O[b]){if(b===w)break;b=t[r+a[v]];}if(k<b&&(E&f)!==l){for(0===S&&(S=k),c+=y,z=1<<(x=b-S);x+S<w&&!((z-=O[x+S])<=0);)x++,z<<=1;if(C+=1<<x,1===e&&852<C||2===e&&592<C)return 1;i[l=E&f]=k<<24|x<<16|c-s|0;}}return 0!==E&&(i[c+E]=b-S<<24|64<<16|0),o.bits=k,0};},{"../utils/common":41}],51:[function(e,t,r){t.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"};},{}],52:[function(e,t,r){var i=e("../utils/common"),o=0,h=1;function n(e){for(var t=e.length;0<=--t;)e[t]=0;}var s=0,a=29,u=256,l=u+1+a,f=30,c=19,_=2*l+1,g=15,d=16,p=7,m=256,b=16,v=17,y=18,w=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],k=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],x=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],S=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],z=new Array(2*(l+2));n(z);var C=new Array(2*f);n(C);var E=new Array(512);n(E);var A=new Array(256);n(A);var I=new Array(a);n(I);var O,B,R,T=new Array(f);function D(e,t,r,n,i){this.static_tree=e,this.extra_bits=t,this.extra_base=r,this.elems=n,this.max_length=i,this.has_stree=e&&e.length;}function F(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t;}function N(e){return e<256?E[e]:E[256+(e>>>7)]}function U(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255;}function P(e,t,r){e.bi_valid>d-r?(e.bi_buf|=t<<e.bi_valid&65535,U(e,e.bi_buf),e.bi_buf=t>>d-e.bi_valid,e.bi_valid+=r-d):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=r);}function L(e,t,r){P(e,r[2*t],r[2*t+1]);}function j(e,t){for(var r=0;r|=1&e,e>>>=1,r<<=1,0<--t;);return r>>>1}function Z(e,t,r){var n,i,s=new Array(g+1),a=0;for(n=1;n<=g;n++)s[n]=a=a+r[n-1]<<1;for(i=0;i<=t;i++){var o=e[2*i+1];0!==o&&(e[2*i]=j(s[o]++,o));}}function W(e){var t;for(t=0;t<l;t++)e.dyn_ltree[2*t]=0;for(t=0;t<f;t++)e.dyn_dtree[2*t]=0;for(t=0;t<c;t++)e.bl_tree[2*t]=0;e.dyn_ltree[2*m]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0;}function M(e){8<e.bi_valid?U(e,e.bi_buf):0<e.bi_valid&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0;}function H(e,t,r,n){var i=2*t,s=2*r;return e[i]<e[s]||e[i]===e[s]&&n[t]<=n[r]}function G(e,t,r){for(var n=e.heap[r],i=r<<1;i<=e.heap_len&&(i<e.heap_len&&H(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!H(t,n,e.heap[i],e.depth));)e.heap[r]=e.heap[i],r=i,i<<=1;e.heap[r]=n;}function K(e,t,r){var n,i,s,a,o=0;if(0!==e.last_lit)for(;n=e.pending_buf[e.d_buf+2*o]<<8|e.pending_buf[e.d_buf+2*o+1],i=e.pending_buf[e.l_buf+o],o++,0===n?L(e,i,t):(L(e,(s=A[i])+u+1,t),0!==(a=w[s])&&P(e,i-=I[s],a),L(e,s=N(--n),r),0!==(a=k[s])&&P(e,n-=T[s],a)),o<e.last_lit;);L(e,m,t);}function Y(e,t){var r,n,i,s=t.dyn_tree,a=t.stat_desc.static_tree,o=t.stat_desc.has_stree,h=t.stat_desc.elems,u=-1;for(e.heap_len=0,e.heap_max=_,r=0;r<h;r++)0!==s[2*r]?(e.heap[++e.heap_len]=u=r,e.depth[r]=0):s[2*r+1]=0;for(;e.heap_len<2;)s[2*(i=e.heap[++e.heap_len]=u<2?++u:0)]=1,e.depth[i]=0,e.opt_len--,o&&(e.static_len-=a[2*i+1]);for(t.max_code=u,r=e.heap_len>>1;1<=r;r--)G(e,s,r);for(i=h;r=e.heap[1],e.heap[1]=e.heap[e.heap_len--],G(e,s,1),n=e.heap[1],e.heap[--e.heap_max]=r,e.heap[--e.heap_max]=n,s[2*i]=s[2*r]+s[2*n],e.depth[i]=(e.depth[r]>=e.depth[n]?e.depth[r]:e.depth[n])+1,s[2*r+1]=s[2*n+1]=i,e.heap[1]=i++,G(e,s,1),2<=e.heap_len;);e.heap[--e.heap_max]=e.heap[1],function(e,t){var r,n,i,s,a,o,h=t.dyn_tree,u=t.max_code,l=t.stat_desc.static_tree,f=t.stat_desc.has_stree,c=t.stat_desc.extra_bits,d=t.stat_desc.extra_base,p=t.stat_desc.max_length,m=0;for(s=0;s<=g;s++)e.bl_count[s]=0;for(h[2*e.heap[e.heap_max]+1]=0,r=e.heap_max+1;r<_;r++)p<(s=h[2*h[2*(n=e.heap[r])+1]+1]+1)&&(s=p,m++),h[2*n+1]=s,u<n||(e.bl_count[s]++,a=0,d<=n&&(a=c[n-d]),o=h[2*n],e.opt_len+=o*(s+a),f&&(e.static_len+=o*(l[2*n+1]+a)));if(0!==m){do{for(s=p-1;0===e.bl_count[s];)s--;e.bl_count[s]--,e.bl_count[s+1]+=2,e.bl_count[p]--,m-=2;}while(0<m);for(s=p;0!==s;s--)for(n=e.bl_count[s];0!==n;)u<(i=e.heap[--r])||(h[2*i+1]!==s&&(e.opt_len+=(s-h[2*i+1])*h[2*i],h[2*i+1]=s),n--);}}(e,t),Z(s,u,e.bl_count);}function X(e,t,r){var n,i,s=-1,a=t[1],o=0,h=7,u=4;for(0===a&&(h=138,u=3),t[2*(r+1)+1]=65535,n=0;n<=r;n++)i=a,a=t[2*(n+1)+1],++o<h&&i===a||(o<u?e.bl_tree[2*i]+=o:0!==i?(i!==s&&e.bl_tree[2*i]++,e.bl_tree[2*b]++):o<=10?e.bl_tree[2*v]++:e.bl_tree[2*y]++,s=i,u=(o=0)===a?(h=138,3):i===a?(h=6,3):(h=7,4));}function V(e,t,r){var n,i,s=-1,a=t[1],o=0,h=7,u=4;for(0===a&&(h=138,u=3),n=0;n<=r;n++)if(i=a,a=t[2*(n+1)+1],!(++o<h&&i===a)){if(o<u)for(;L(e,i,e.bl_tree),0!=--o;);else 0!==i?(i!==s&&(L(e,i,e.bl_tree),o--),L(e,b,e.bl_tree),P(e,o-3,2)):o<=10?(L(e,v,e.bl_tree),P(e,o-3,3)):(L(e,y,e.bl_tree),P(e,o-11,7));s=i,u=(o=0)===a?(h=138,3):i===a?(h=6,3):(h=7,4);}}n(T);var q=!1;function J(e,t,r,n){P(e,(s<<1)+(n?1:0),3),function(e,t,r,n){M(e),n&&(U(e,r),U(e,~r)),i.arraySet(e.pending_buf,e.window,t,r,e.pending),e.pending+=r;}(e,t,r,!0);}r._tr_init=function(e){q||(function(){var e,t,r,n,i,s=new Array(g+1);for(n=r=0;n<a-1;n++)for(I[n]=r,e=0;e<1<<w[n];e++)A[r++]=n;for(A[r-1]=n,n=i=0;n<16;n++)for(T[n]=i,e=0;e<1<<k[n];e++)E[i++]=n;for(i>>=7;n<f;n++)for(T[n]=i<<7,e=0;e<1<<k[n]-7;e++)E[256+i++]=n;for(t=0;t<=g;t++)s[t]=0;for(e=0;e<=143;)z[2*e+1]=8,e++,s[8]++;for(;e<=255;)z[2*e+1]=9,e++,s[9]++;for(;e<=279;)z[2*e+1]=7,e++,s[7]++;for(;e<=287;)z[2*e+1]=8,e++,s[8]++;for(Z(z,l+1,s),e=0;e<f;e++)C[2*e+1]=5,C[2*e]=j(e,5);O=new D(z,w,u+1,l,g),B=new D(C,k,0,f,g),R=new D(new Array(0),x,0,c,p);}(),q=!0),e.l_desc=new F(e.dyn_ltree,O),e.d_desc=new F(e.dyn_dtree,B),e.bl_desc=new F(e.bl_tree,R),e.bi_buf=0,e.bi_valid=0,W(e);},r._tr_stored_block=J,r._tr_flush_block=function(e,t,r,n){var i,s,a=0;0<e.level?(2===e.strm.data_type&&(e.strm.data_type=function(e){var t,r=4093624447;for(t=0;t<=31;t++,r>>>=1)if(1&r&&0!==e.dyn_ltree[2*t])return o;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return h;for(t=32;t<u;t++)if(0!==e.dyn_ltree[2*t])return h;return o}(e)),Y(e,e.l_desc),Y(e,e.d_desc),a=function(e){var t;for(X(e,e.dyn_ltree,e.l_desc.max_code),X(e,e.dyn_dtree,e.d_desc.max_code),Y(e,e.bl_desc),t=c-1;3<=t&&0===e.bl_tree[2*S[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t}(e),i=e.opt_len+3+7>>>3,(s=e.static_len+3+7>>>3)<=i&&(i=s)):i=s=r+5,r+4<=i&&-1!==t?J(e,t,r,n):4===e.strategy||s===i?(P(e,2+(n?1:0),3),K(e,z,C)):(P(e,4+(n?1:0),3),function(e,t,r,n){var i;for(P(e,t-257,5),P(e,r-1,5),P(e,n-4,4),i=0;i<n;i++)P(e,e.bl_tree[2*S[i]+1],3);V(e,e.dyn_ltree,t-1),V(e,e.dyn_dtree,r-1);}(e,e.l_desc.max_code+1,e.d_desc.max_code+1,a+1),K(e,e.dyn_ltree,e.dyn_dtree)),W(e),n&&M(e);},r._tr_tally=function(e,t,r){return e.pending_buf[e.d_buf+2*e.last_lit]=t>>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&r,e.last_lit++,0===t?e.dyn_ltree[2*r]++:(e.matches++,t--,e.dyn_ltree[2*(A[r]+u+1)]++,e.dyn_dtree[2*N(t)]++),e.last_lit===e.lit_bufsize-1},r._tr_align=function(e){P(e,2,3),L(e,m,z),function(e){16===e.bi_valid?(U(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):8<=e.bi_valid&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8);}(e);};},{"../utils/common":41}],53:[function(e,t,r){t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0;};},{}],54:[function(e,t,r){(function(e){!function(r,n){if(!r.setImmediate){var i,s,t,a,o=1,h={},u=!1,l=r.document,e=Object.getPrototypeOf&&Object.getPrototypeOf(r);e=e&&e.setTimeout?e:r,i="[object process]"==={}.toString.call(r.process)?function(e){process.nextTick(function(){c(e);});}:function(){if(r.postMessage&&!r.importScripts){var e=!0,t=r.onmessage;return r.onmessage=function(){e=!1;},r.postMessage("","*"),r.onmessage=t,e}}()?(a="setImmediate$"+Math.random()+"$",r.addEventListener?r.addEventListener("message",d,!1):r.attachEvent("onmessage",d),function(e){r.postMessage(a+e,"*");}):r.MessageChannel?((t=new MessageChannel).port1.onmessage=function(e){c(e.data);},function(e){t.port2.postMessage(e);}):l&&"onreadystatechange"in l.createElement("script")?(s=l.documentElement,function(e){var t=l.createElement("script");t.onreadystatechange=function(){c(e),t.onreadystatechange=null,s.removeChild(t),t=null;},s.appendChild(t);}):function(e){setTimeout(c,0,e);},e.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),r=0;r<t.length;r++)t[r]=arguments[r+1];var n={callback:e,args:t};return h[o]=n,i(o),o++},e.clearImmediate=f;}function f(e){delete h[e];}function c(e){if(u)setTimeout(c,0,e);else {var t=h[e];if(t){u=!0;try{!function(e){var t=e.callback,r=e.args;switch(r.length){case 0:t();break;case 1:t(r[0]);break;case 2:t(r[0],r[1]);break;case 3:t(r[0],r[1],r[2]);break;default:t.apply(n,r);}}(t);}finally{f(e),u=!1;}}}}function d(e){e.source===r&&"string"==typeof e.data&&0===e.data.indexOf(a)&&c(+e.data.slice(a.length));}}("undefined"==typeof self?void 0===e?this:e:self);}).call(this,"undefined"!=typeof _commonjsHelpers.commonjsGlobal?_commonjsHelpers.commonjsGlobal:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{});},{}]},{},[10])(10)});
899
- });
900
-
901
- /*!
902
- * @esri/arcgis-html-sanitizer - v3.0.1 - Tue Nov 15 2022 09:46:54 GMT-0800 (Pacific Standard Time)
903
- * Copyright (c) 2022 - Environmental Systems Research Institute, Inc.
904
- * Apache-2.0
905
- *
906
- * js-xss
907
- * Copyright (c) 2012-2018 Zongmin Lei(雷宗民) <leizongmin@gmail.com>
908
- * http://ucdok.com
909
- * MIT License, see https://github.com/leizongmin/js-xss/blob/master/LICENSE for details
910
- */
911
-
912
- var lib$1 = {exports: {}};
913
-
914
- var _default$1 = {};
915
-
916
- var lib = {exports: {}};
917
-
918
- var _default = {};
919
-
920
- /**
921
- * cssfilter
922
- *
923
- * @author 老雷<leizongmin@gmail.com>
924
- */
925
-
926
- function getDefaultWhiteList$1 () {
927
- // 白名单值说明:
928
- // true: 允许该属性
929
- // Function: function (val) { } 返回true表示允许该属性,其他值均表示不允许
930
- // RegExp: regexp.test(val) 返回true表示允许该属性,其他值均表示不允许
931
- // 除上面列出的值外均表示不允许
932
- var whiteList = {};
933
-
934
- whiteList['align-content'] = false; // default: auto
935
- whiteList['align-items'] = false; // default: auto
936
- whiteList['align-self'] = false; // default: auto
937
- whiteList['alignment-adjust'] = false; // default: auto
938
- whiteList['alignment-baseline'] = false; // default: baseline
939
- whiteList['all'] = false; // default: depending on individual properties
940
- whiteList['anchor-point'] = false; // default: none
941
- whiteList['animation'] = false; // default: depending on individual properties
942
- whiteList['animation-delay'] = false; // default: 0
943
- whiteList['animation-direction'] = false; // default: normal
944
- whiteList['animation-duration'] = false; // default: 0
945
- whiteList['animation-fill-mode'] = false; // default: none
946
- whiteList['animation-iteration-count'] = false; // default: 1
947
- whiteList['animation-name'] = false; // default: none
948
- whiteList['animation-play-state'] = false; // default: running
949
- whiteList['animation-timing-function'] = false; // default: ease
950
- whiteList['azimuth'] = false; // default: center
951
- whiteList['backface-visibility'] = false; // default: visible
952
- whiteList['background'] = true; // default: depending on individual properties
953
- whiteList['background-attachment'] = true; // default: scroll
954
- whiteList['background-clip'] = true; // default: border-box
955
- whiteList['background-color'] = true; // default: transparent
956
- whiteList['background-image'] = true; // default: none
957
- whiteList['background-origin'] = true; // default: padding-box
958
- whiteList['background-position'] = true; // default: 0% 0%
959
- whiteList['background-repeat'] = true; // default: repeat
960
- whiteList['background-size'] = true; // default: auto
961
- whiteList['baseline-shift'] = false; // default: baseline
962
- whiteList['binding'] = false; // default: none
963
- whiteList['bleed'] = false; // default: 6pt
964
- whiteList['bookmark-label'] = false; // default: content()
965
- whiteList['bookmark-level'] = false; // default: none
966
- whiteList['bookmark-state'] = false; // default: open
967
- whiteList['border'] = true; // default: depending on individual properties
968
- whiteList['border-bottom'] = true; // default: depending on individual properties
969
- whiteList['border-bottom-color'] = true; // default: current color
970
- whiteList['border-bottom-left-radius'] = true; // default: 0
971
- whiteList['border-bottom-right-radius'] = true; // default: 0
972
- whiteList['border-bottom-style'] = true; // default: none
973
- whiteList['border-bottom-width'] = true; // default: medium
974
- whiteList['border-collapse'] = true; // default: separate
975
- whiteList['border-color'] = true; // default: depending on individual properties
976
- whiteList['border-image'] = true; // default: none
977
- whiteList['border-image-outset'] = true; // default: 0
978
- whiteList['border-image-repeat'] = true; // default: stretch
979
- whiteList['border-image-slice'] = true; // default: 100%
980
- whiteList['border-image-source'] = true; // default: none
981
- whiteList['border-image-width'] = true; // default: 1
982
- whiteList['border-left'] = true; // default: depending on individual properties
983
- whiteList['border-left-color'] = true; // default: current color
984
- whiteList['border-left-style'] = true; // default: none
985
- whiteList['border-left-width'] = true; // default: medium
986
- whiteList['border-radius'] = true; // default: 0
987
- whiteList['border-right'] = true; // default: depending on individual properties
988
- whiteList['border-right-color'] = true; // default: current color
989
- whiteList['border-right-style'] = true; // default: none
990
- whiteList['border-right-width'] = true; // default: medium
991
- whiteList['border-spacing'] = true; // default: 0
992
- whiteList['border-style'] = true; // default: depending on individual properties
993
- whiteList['border-top'] = true; // default: depending on individual properties
994
- whiteList['border-top-color'] = true; // default: current color
995
- whiteList['border-top-left-radius'] = true; // default: 0
996
- whiteList['border-top-right-radius'] = true; // default: 0
997
- whiteList['border-top-style'] = true; // default: none
998
- whiteList['border-top-width'] = true; // default: medium
999
- whiteList['border-width'] = true; // default: depending on individual properties
1000
- whiteList['bottom'] = false; // default: auto
1001
- whiteList['box-decoration-break'] = true; // default: slice
1002
- whiteList['box-shadow'] = true; // default: none
1003
- whiteList['box-sizing'] = true; // default: content-box
1004
- whiteList['box-snap'] = true; // default: none
1005
- whiteList['box-suppress'] = true; // default: show
1006
- whiteList['break-after'] = true; // default: auto
1007
- whiteList['break-before'] = true; // default: auto
1008
- whiteList['break-inside'] = true; // default: auto
1009
- whiteList['caption-side'] = false; // default: top
1010
- whiteList['chains'] = false; // default: none
1011
- whiteList['clear'] = true; // default: none
1012
- whiteList['clip'] = false; // default: auto
1013
- whiteList['clip-path'] = false; // default: none
1014
- whiteList['clip-rule'] = false; // default: nonzero
1015
- whiteList['color'] = true; // default: implementation dependent
1016
- whiteList['color-interpolation-filters'] = true; // default: auto
1017
- whiteList['column-count'] = false; // default: auto
1018
- whiteList['column-fill'] = false; // default: balance
1019
- whiteList['column-gap'] = false; // default: normal
1020
- whiteList['column-rule'] = false; // default: depending on individual properties
1021
- whiteList['column-rule-color'] = false; // default: current color
1022
- whiteList['column-rule-style'] = false; // default: medium
1023
- whiteList['column-rule-width'] = false; // default: medium
1024
- whiteList['column-span'] = false; // default: none
1025
- whiteList['column-width'] = false; // default: auto
1026
- whiteList['columns'] = false; // default: depending on individual properties
1027
- whiteList['contain'] = false; // default: none
1028
- whiteList['content'] = false; // default: normal
1029
- whiteList['counter-increment'] = false; // default: none
1030
- whiteList['counter-reset'] = false; // default: none
1031
- whiteList['counter-set'] = false; // default: none
1032
- whiteList['crop'] = false; // default: auto
1033
- whiteList['cue'] = false; // default: depending on individual properties
1034
- whiteList['cue-after'] = false; // default: none
1035
- whiteList['cue-before'] = false; // default: none
1036
- whiteList['cursor'] = false; // default: auto
1037
- whiteList['direction'] = false; // default: ltr
1038
- whiteList['display'] = true; // default: depending on individual properties
1039
- whiteList['display-inside'] = true; // default: auto
1040
- whiteList['display-list'] = true; // default: none
1041
- whiteList['display-outside'] = true; // default: inline-level
1042
- whiteList['dominant-baseline'] = false; // default: auto
1043
- whiteList['elevation'] = false; // default: level
1044
- whiteList['empty-cells'] = false; // default: show
1045
- whiteList['filter'] = false; // default: none
1046
- whiteList['flex'] = false; // default: depending on individual properties
1047
- whiteList['flex-basis'] = false; // default: auto
1048
- whiteList['flex-direction'] = false; // default: row
1049
- whiteList['flex-flow'] = false; // default: depending on individual properties
1050
- whiteList['flex-grow'] = false; // default: 0
1051
- whiteList['flex-shrink'] = false; // default: 1
1052
- whiteList['flex-wrap'] = false; // default: nowrap
1053
- whiteList['float'] = false; // default: none
1054
- whiteList['float-offset'] = false; // default: 0 0
1055
- whiteList['flood-color'] = false; // default: black
1056
- whiteList['flood-opacity'] = false; // default: 1
1057
- whiteList['flow-from'] = false; // default: none
1058
- whiteList['flow-into'] = false; // default: none
1059
- whiteList['font'] = true; // default: depending on individual properties
1060
- whiteList['font-family'] = true; // default: implementation dependent
1061
- whiteList['font-feature-settings'] = true; // default: normal
1062
- whiteList['font-kerning'] = true; // default: auto
1063
- whiteList['font-language-override'] = true; // default: normal
1064
- whiteList['font-size'] = true; // default: medium
1065
- whiteList['font-size-adjust'] = true; // default: none
1066
- whiteList['font-stretch'] = true; // default: normal
1067
- whiteList['font-style'] = true; // default: normal
1068
- whiteList['font-synthesis'] = true; // default: weight style
1069
- whiteList['font-variant'] = true; // default: normal
1070
- whiteList['font-variant-alternates'] = true; // default: normal
1071
- whiteList['font-variant-caps'] = true; // default: normal
1072
- whiteList['font-variant-east-asian'] = true; // default: normal
1073
- whiteList['font-variant-ligatures'] = true; // default: normal
1074
- whiteList['font-variant-numeric'] = true; // default: normal
1075
- whiteList['font-variant-position'] = true; // default: normal
1076
- whiteList['font-weight'] = true; // default: normal
1077
- whiteList['grid'] = false; // default: depending on individual properties
1078
- whiteList['grid-area'] = false; // default: depending on individual properties
1079
- whiteList['grid-auto-columns'] = false; // default: auto
1080
- whiteList['grid-auto-flow'] = false; // default: none
1081
- whiteList['grid-auto-rows'] = false; // default: auto
1082
- whiteList['grid-column'] = false; // default: depending on individual properties
1083
- whiteList['grid-column-end'] = false; // default: auto
1084
- whiteList['grid-column-start'] = false; // default: auto
1085
- whiteList['grid-row'] = false; // default: depending on individual properties
1086
- whiteList['grid-row-end'] = false; // default: auto
1087
- whiteList['grid-row-start'] = false; // default: auto
1088
- whiteList['grid-template'] = false; // default: depending on individual properties
1089
- whiteList['grid-template-areas'] = false; // default: none
1090
- whiteList['grid-template-columns'] = false; // default: none
1091
- whiteList['grid-template-rows'] = false; // default: none
1092
- whiteList['hanging-punctuation'] = false; // default: none
1093
- whiteList['height'] = true; // default: auto
1094
- whiteList['hyphens'] = false; // default: manual
1095
- whiteList['icon'] = false; // default: auto
1096
- whiteList['image-orientation'] = false; // default: auto
1097
- whiteList['image-resolution'] = false; // default: normal
1098
- whiteList['ime-mode'] = false; // default: auto
1099
- whiteList['initial-letters'] = false; // default: normal
1100
- whiteList['inline-box-align'] = false; // default: last
1101
- whiteList['justify-content'] = false; // default: auto
1102
- whiteList['justify-items'] = false; // default: auto
1103
- whiteList['justify-self'] = false; // default: auto
1104
- whiteList['left'] = false; // default: auto
1105
- whiteList['letter-spacing'] = true; // default: normal
1106
- whiteList['lighting-color'] = true; // default: white
1107
- whiteList['line-box-contain'] = false; // default: block inline replaced
1108
- whiteList['line-break'] = false; // default: auto
1109
- whiteList['line-grid'] = false; // default: match-parent
1110
- whiteList['line-height'] = false; // default: normal
1111
- whiteList['line-snap'] = false; // default: none
1112
- whiteList['line-stacking'] = false; // default: depending on individual properties
1113
- whiteList['line-stacking-ruby'] = false; // default: exclude-ruby
1114
- whiteList['line-stacking-shift'] = false; // default: consider-shifts
1115
- whiteList['line-stacking-strategy'] = false; // default: inline-line-height
1116
- whiteList['list-style'] = true; // default: depending on individual properties
1117
- whiteList['list-style-image'] = true; // default: none
1118
- whiteList['list-style-position'] = true; // default: outside
1119
- whiteList['list-style-type'] = true; // default: disc
1120
- whiteList['margin'] = true; // default: depending on individual properties
1121
- whiteList['margin-bottom'] = true; // default: 0
1122
- whiteList['margin-left'] = true; // default: 0
1123
- whiteList['margin-right'] = true; // default: 0
1124
- whiteList['margin-top'] = true; // default: 0
1125
- whiteList['marker-offset'] = false; // default: auto
1126
- whiteList['marker-side'] = false; // default: list-item
1127
- whiteList['marks'] = false; // default: none
1128
- whiteList['mask'] = false; // default: border-box
1129
- whiteList['mask-box'] = false; // default: see individual properties
1130
- whiteList['mask-box-outset'] = false; // default: 0
1131
- whiteList['mask-box-repeat'] = false; // default: stretch
1132
- whiteList['mask-box-slice'] = false; // default: 0 fill
1133
- whiteList['mask-box-source'] = false; // default: none
1134
- whiteList['mask-box-width'] = false; // default: auto
1135
- whiteList['mask-clip'] = false; // default: border-box
1136
- whiteList['mask-image'] = false; // default: none
1137
- whiteList['mask-origin'] = false; // default: border-box
1138
- whiteList['mask-position'] = false; // default: center
1139
- whiteList['mask-repeat'] = false; // default: no-repeat
1140
- whiteList['mask-size'] = false; // default: border-box
1141
- whiteList['mask-source-type'] = false; // default: auto
1142
- whiteList['mask-type'] = false; // default: luminance
1143
- whiteList['max-height'] = true; // default: none
1144
- whiteList['max-lines'] = false; // default: none
1145
- whiteList['max-width'] = true; // default: none
1146
- whiteList['min-height'] = true; // default: 0
1147
- whiteList['min-width'] = true; // default: 0
1148
- whiteList['move-to'] = false; // default: normal
1149
- whiteList['nav-down'] = false; // default: auto
1150
- whiteList['nav-index'] = false; // default: auto
1151
- whiteList['nav-left'] = false; // default: auto
1152
- whiteList['nav-right'] = false; // default: auto
1153
- whiteList['nav-up'] = false; // default: auto
1154
- whiteList['object-fit'] = false; // default: fill
1155
- whiteList['object-position'] = false; // default: 50% 50%
1156
- whiteList['opacity'] = false; // default: 1
1157
- whiteList['order'] = false; // default: 0
1158
- whiteList['orphans'] = false; // default: 2
1159
- whiteList['outline'] = false; // default: depending on individual properties
1160
- whiteList['outline-color'] = false; // default: invert
1161
- whiteList['outline-offset'] = false; // default: 0
1162
- whiteList['outline-style'] = false; // default: none
1163
- whiteList['outline-width'] = false; // default: medium
1164
- whiteList['overflow'] = false; // default: depending on individual properties
1165
- whiteList['overflow-wrap'] = false; // default: normal
1166
- whiteList['overflow-x'] = false; // default: visible
1167
- whiteList['overflow-y'] = false; // default: visible
1168
- whiteList['padding'] = true; // default: depending on individual properties
1169
- whiteList['padding-bottom'] = true; // default: 0
1170
- whiteList['padding-left'] = true; // default: 0
1171
- whiteList['padding-right'] = true; // default: 0
1172
- whiteList['padding-top'] = true; // default: 0
1173
- whiteList['page'] = false; // default: auto
1174
- whiteList['page-break-after'] = false; // default: auto
1175
- whiteList['page-break-before'] = false; // default: auto
1176
- whiteList['page-break-inside'] = false; // default: auto
1177
- whiteList['page-policy'] = false; // default: start
1178
- whiteList['pause'] = false; // default: implementation dependent
1179
- whiteList['pause-after'] = false; // default: implementation dependent
1180
- whiteList['pause-before'] = false; // default: implementation dependent
1181
- whiteList['perspective'] = false; // default: none
1182
- whiteList['perspective-origin'] = false; // default: 50% 50%
1183
- whiteList['pitch'] = false; // default: medium
1184
- whiteList['pitch-range'] = false; // default: 50
1185
- whiteList['play-during'] = false; // default: auto
1186
- whiteList['position'] = false; // default: static
1187
- whiteList['presentation-level'] = false; // default: 0
1188
- whiteList['quotes'] = false; // default: text
1189
- whiteList['region-fragment'] = false; // default: auto
1190
- whiteList['resize'] = false; // default: none
1191
- whiteList['rest'] = false; // default: depending on individual properties
1192
- whiteList['rest-after'] = false; // default: none
1193
- whiteList['rest-before'] = false; // default: none
1194
- whiteList['richness'] = false; // default: 50
1195
- whiteList['right'] = false; // default: auto
1196
- whiteList['rotation'] = false; // default: 0
1197
- whiteList['rotation-point'] = false; // default: 50% 50%
1198
- whiteList['ruby-align'] = false; // default: auto
1199
- whiteList['ruby-merge'] = false; // default: separate
1200
- whiteList['ruby-position'] = false; // default: before
1201
- whiteList['shape-image-threshold'] = false; // default: 0.0
1202
- whiteList['shape-outside'] = false; // default: none
1203
- whiteList['shape-margin'] = false; // default: 0
1204
- whiteList['size'] = false; // default: auto
1205
- whiteList['speak'] = false; // default: auto
1206
- whiteList['speak-as'] = false; // default: normal
1207
- whiteList['speak-header'] = false; // default: once
1208
- whiteList['speak-numeral'] = false; // default: continuous
1209
- whiteList['speak-punctuation'] = false; // default: none
1210
- whiteList['speech-rate'] = false; // default: medium
1211
- whiteList['stress'] = false; // default: 50
1212
- whiteList['string-set'] = false; // default: none
1213
- whiteList['tab-size'] = false; // default: 8
1214
- whiteList['table-layout'] = false; // default: auto
1215
- whiteList['text-align'] = true; // default: start
1216
- whiteList['text-align-last'] = true; // default: auto
1217
- whiteList['text-combine-upright'] = true; // default: none
1218
- whiteList['text-decoration'] = true; // default: none
1219
- whiteList['text-decoration-color'] = true; // default: currentColor
1220
- whiteList['text-decoration-line'] = true; // default: none
1221
- whiteList['text-decoration-skip'] = true; // default: objects
1222
- whiteList['text-decoration-style'] = true; // default: solid
1223
- whiteList['text-emphasis'] = true; // default: depending on individual properties
1224
- whiteList['text-emphasis-color'] = true; // default: currentColor
1225
- whiteList['text-emphasis-position'] = true; // default: over right
1226
- whiteList['text-emphasis-style'] = true; // default: none
1227
- whiteList['text-height'] = true; // default: auto
1228
- whiteList['text-indent'] = true; // default: 0
1229
- whiteList['text-justify'] = true; // default: auto
1230
- whiteList['text-orientation'] = true; // default: mixed
1231
- whiteList['text-overflow'] = true; // default: clip
1232
- whiteList['text-shadow'] = true; // default: none
1233
- whiteList['text-space-collapse'] = true; // default: collapse
1234
- whiteList['text-transform'] = true; // default: none
1235
- whiteList['text-underline-position'] = true; // default: auto
1236
- whiteList['text-wrap'] = true; // default: normal
1237
- whiteList['top'] = false; // default: auto
1238
- whiteList['transform'] = false; // default: none
1239
- whiteList['transform-origin'] = false; // default: 50% 50% 0
1240
- whiteList['transform-style'] = false; // default: flat
1241
- whiteList['transition'] = false; // default: depending on individual properties
1242
- whiteList['transition-delay'] = false; // default: 0s
1243
- whiteList['transition-duration'] = false; // default: 0s
1244
- whiteList['transition-property'] = false; // default: all
1245
- whiteList['transition-timing-function'] = false; // default: ease
1246
- whiteList['unicode-bidi'] = false; // default: normal
1247
- whiteList['vertical-align'] = false; // default: baseline
1248
- whiteList['visibility'] = false; // default: visible
1249
- whiteList['voice-balance'] = false; // default: center
1250
- whiteList['voice-duration'] = false; // default: auto
1251
- whiteList['voice-family'] = false; // default: implementation dependent
1252
- whiteList['voice-pitch'] = false; // default: medium
1253
- whiteList['voice-range'] = false; // default: medium
1254
- whiteList['voice-rate'] = false; // default: normal
1255
- whiteList['voice-stress'] = false; // default: normal
1256
- whiteList['voice-volume'] = false; // default: medium
1257
- whiteList['volume'] = false; // default: medium
1258
- whiteList['white-space'] = false; // default: normal
1259
- whiteList['widows'] = false; // default: 2
1260
- whiteList['width'] = true; // default: auto
1261
- whiteList['will-change'] = false; // default: auto
1262
- whiteList['word-break'] = true; // default: normal
1263
- whiteList['word-spacing'] = true; // default: normal
1264
- whiteList['word-wrap'] = true; // default: normal
1265
- whiteList['wrap-flow'] = false; // default: auto
1266
- whiteList['wrap-through'] = false; // default: wrap
1267
- whiteList['writing-mode'] = false; // default: horizontal-tb
1268
- whiteList['z-index'] = false; // default: auto
1269
-
1270
- return whiteList;
1271
- }
1272
-
1273
-
1274
- /**
1275
- * 匹配到白名单上的一个属性时
1276
- *
1277
- * @param {String} name
1278
- * @param {String} value
1279
- * @param {Object} options
1280
- * @return {String}
1281
- */
1282
- function onAttr (name, value, options) {
1283
- // do nothing
1284
- }
1285
-
1286
- /**
1287
- * 匹配到不在白名单上的一个属性时
1288
- *
1289
- * @param {String} name
1290
- * @param {String} value
1291
- * @param {Object} options
1292
- * @return {String}
1293
- */
1294
- function onIgnoreAttr (name, value, options) {
1295
- // do nothing
1296
- }
1297
-
1298
- var REGEXP_URL_JAVASCRIPT = /javascript\s*\:/img;
1299
-
1300
- /**
1301
- * 过滤属性值
1302
- *
1303
- * @param {String} name
1304
- * @param {String} value
1305
- * @return {String}
1306
- */
1307
- function safeAttrValue$1(name, value) {
1308
- if (REGEXP_URL_JAVASCRIPT.test(value)) return '';
1309
- return value;
1310
- }
1311
-
1312
-
1313
- _default.whiteList = getDefaultWhiteList$1();
1314
- _default.getDefaultWhiteList = getDefaultWhiteList$1;
1315
- _default.onAttr = onAttr;
1316
- _default.onIgnoreAttr = onIgnoreAttr;
1317
- _default.safeAttrValue = safeAttrValue$1;
1318
-
1319
- var util$1 = {
1320
- indexOf: function (arr, item) {
1321
- var i, j;
1322
- if (Array.prototype.indexOf) {
1323
- return arr.indexOf(item);
1324
- }
1325
- for (i = 0, j = arr.length; i < j; i++) {
1326
- if (arr[i] === item) {
1327
- return i;
1328
- }
1329
- }
1330
- return -1;
1331
- },
1332
- forEach: function (arr, fn, scope) {
1333
- var i, j;
1334
- if (Array.prototype.forEach) {
1335
- return arr.forEach(fn, scope);
1336
- }
1337
- for (i = 0, j = arr.length; i < j; i++) {
1338
- fn.call(scope, arr[i], i, arr);
1339
- }
1340
- },
1341
- trim: function (str) {
1342
- if (String.prototype.trim) {
1343
- return str.trim();
1344
- }
1345
- return str.replace(/(^\s*)|(\s*$)/g, '');
1346
- },
1347
- trimRight: function (str) {
1348
- if (String.prototype.trimRight) {
1349
- return str.trimRight();
1350
- }
1351
- return str.replace(/(\s*$)/g, '');
1352
- }
1353
- };
1354
-
1355
- /**
1356
- * cssfilter
1357
- *
1358
- * @author 老雷<leizongmin@gmail.com>
1359
- */
1360
-
1361
- var _$3 = util$1;
1362
-
1363
-
1364
- /**
1365
- * 解析style
1366
- *
1367
- * @param {String} css
1368
- * @param {Function} onAttr 处理属性的函数
1369
- * 参数格式: function (sourcePosition, position, name, value, source)
1370
- * @return {String}
1371
- */
1372
- function parseStyle$1 (css, onAttr) {
1373
- css = _$3.trimRight(css);
1374
- if (css[css.length - 1] !== ';') css += ';';
1375
- var cssLength = css.length;
1376
- var isParenthesisOpen = false;
1377
- var lastPos = 0;
1378
- var i = 0;
1379
- var retCSS = '';
1380
-
1381
- function addNewAttr () {
1382
- // 如果没有正常的闭合圆括号,则直接忽略当前属性
1383
- if (!isParenthesisOpen) {
1384
- var source = _$3.trim(css.slice(lastPos, i));
1385
- var j = source.indexOf(':');
1386
- if (j !== -1) {
1387
- var name = _$3.trim(source.slice(0, j));
1388
- var value = _$3.trim(source.slice(j + 1));
1389
- // 必须有属性名称
1390
- if (name) {
1391
- var ret = onAttr(lastPos, retCSS.length, name, value, source);
1392
- if (ret) retCSS += ret + '; ';
1393
- }
1394
- }
1395
- }
1396
- lastPos = i + 1;
1397
- }
1398
-
1399
- for (; i < cssLength; i++) {
1400
- var c = css[i];
1401
- if (c === '/' && css[i + 1] === '*') {
1402
- // 备注开始
1403
- var j = css.indexOf('*/', i + 2);
1404
- // 如果没有正常的备注结束,则后面的部分全部跳过
1405
- if (j === -1) break;
1406
- // 直接将当前位置调到备注结尾,并且初始化状态
1407
- i = j + 1;
1408
- lastPos = i + 1;
1409
- isParenthesisOpen = false;
1410
- } else if (c === '(') {
1411
- isParenthesisOpen = true;
1412
- } else if (c === ')') {
1413
- isParenthesisOpen = false;
1414
- } else if (c === ';') {
1415
- if (isParenthesisOpen) ; else {
1416
- addNewAttr();
1417
- }
1418
- } else if (c === '\n') {
1419
- addNewAttr();
1420
- }
1421
- }
1422
-
1423
- return _$3.trim(retCSS);
1424
- }
1425
-
1426
- var parser$2 = parseStyle$1;
1427
-
1428
- /**
1429
- * cssfilter
1430
- *
1431
- * @author 老雷<leizongmin@gmail.com>
1432
- */
1433
-
1434
- var DEFAULT$1 = _default;
1435
- var parseStyle = parser$2;
1436
-
1437
-
1438
- /**
1439
- * 返回值是否为空
1440
- *
1441
- * @param {Object} obj
1442
- * @return {Boolean}
1443
- */
1444
- function isNull$1 (obj) {
1445
- return (obj === undefined || obj === null);
1446
- }
1447
-
1448
- /**
1449
- * 浅拷贝对象
1450
- *
1451
- * @param {Object} obj
1452
- * @return {Object}
1453
- */
1454
- function shallowCopyObject$1 (obj) {
1455
- var ret = {};
1456
- for (var i in obj) {
1457
- ret[i] = obj[i];
1458
- }
1459
- return ret;
1460
- }
1461
-
1462
- /**
1463
- * 创建CSS过滤器
1464
- *
1465
- * @param {Object} options
1466
- * - {Object} whiteList
1467
- * - {Function} onAttr
1468
- * - {Function} onIgnoreAttr
1469
- * - {Function} safeAttrValue
1470
- */
1471
- function FilterCSS$2 (options) {
1472
- options = shallowCopyObject$1(options || {});
1473
- options.whiteList = options.whiteList || DEFAULT$1.whiteList;
1474
- options.onAttr = options.onAttr || DEFAULT$1.onAttr;
1475
- options.onIgnoreAttr = options.onIgnoreAttr || DEFAULT$1.onIgnoreAttr;
1476
- options.safeAttrValue = options.safeAttrValue || DEFAULT$1.safeAttrValue;
1477
- this.options = options;
1478
- }
1479
-
1480
- FilterCSS$2.prototype.process = function (css) {
1481
- // 兼容各种奇葩输入
1482
- css = css || '';
1483
- css = css.toString();
1484
- if (!css) return '';
1485
-
1486
- var me = this;
1487
- var options = me.options;
1488
- var whiteList = options.whiteList;
1489
- var onAttr = options.onAttr;
1490
- var onIgnoreAttr = options.onIgnoreAttr;
1491
- var safeAttrValue = options.safeAttrValue;
1492
-
1493
- var retCSS = parseStyle(css, function (sourcePosition, position, name, value, source) {
1494
-
1495
- var check = whiteList[name];
1496
- var isWhite = false;
1497
- if (check === true) isWhite = check;
1498
- else if (typeof check === 'function') isWhite = check(value);
1499
- else if (check instanceof RegExp) isWhite = check.test(value);
1500
- if (isWhite !== true) isWhite = false;
1501
-
1502
- // 如果过滤后 value 为空则直接忽略
1503
- value = safeAttrValue(name, value);
1504
- if (!value) return;
1505
-
1506
- var opts = {
1507
- position: position,
1508
- sourcePosition: sourcePosition,
1509
- source: source,
1510
- isWhite: isWhite
1511
- };
1512
-
1513
- if (isWhite) {
1514
-
1515
- var ret = onAttr(name, value, opts);
1516
- if (isNull$1(ret)) {
1517
- return name + ':' + value;
1518
- } else {
1519
- return ret;
1520
- }
1521
-
1522
- } else {
1523
-
1524
- var ret = onIgnoreAttr(name, value, opts);
1525
- if (!isNull$1(ret)) {
1526
- return ret;
1527
- }
1528
-
1529
- }
1530
- });
1531
-
1532
- return retCSS;
1533
- };
1534
-
1535
-
1536
- var css = FilterCSS$2;
1537
-
1538
- /**
1539
- * cssfilter
1540
- *
1541
- * @author 老雷<leizongmin@gmail.com>
1542
- */
1543
-
1544
- (function (module, exports) {
1545
- var DEFAULT = _default;
1546
- var FilterCSS = css;
1547
-
1548
-
1549
- /**
1550
- * XSS过滤
1551
- *
1552
- * @param {String} css 要过滤的CSS代码
1553
- * @param {Object} options 选项:whiteList, onAttr, onIgnoreAttr
1554
- * @return {String}
1555
- */
1556
- function filterCSS (html, options) {
1557
- var xss = new FilterCSS(options);
1558
- return xss.process(html);
1559
- }
1560
-
1561
-
1562
- // 输出
1563
- exports = module.exports = filterCSS;
1564
- exports.FilterCSS = FilterCSS;
1565
- for (var i in DEFAULT) exports[i] = DEFAULT[i];
1566
- } (lib, lib.exports));
1567
-
1568
- var util = {
1569
- indexOf: function (arr, item) {
1570
- var i, j;
1571
- if (Array.prototype.indexOf) {
1572
- return arr.indexOf(item);
1573
- }
1574
- for (i = 0, j = arr.length; i < j; i++) {
1575
- if (arr[i] === item) {
1576
- return i;
1577
- }
1578
- }
1579
- return -1;
1580
- },
1581
- forEach: function (arr, fn, scope) {
1582
- var i, j;
1583
- if (Array.prototype.forEach) {
1584
- return arr.forEach(fn, scope);
1585
- }
1586
- for (i = 0, j = arr.length; i < j; i++) {
1587
- fn.call(scope, arr[i], i, arr);
1588
- }
1589
- },
1590
- trim: function (str) {
1591
- if (String.prototype.trim) {
1592
- return str.trim();
1593
- }
1594
- return str.replace(/(^\s*)|(\s*$)/g, "");
1595
- },
1596
- spaceIndex: function (str) {
1597
- var reg = /\s|\n|\t/;
1598
- var match = reg.exec(str);
1599
- return match ? match.index : -1;
1600
- },
1601
- };
1602
-
1603
- /**
1604
- * default settings
1605
- *
1606
- * @author Zongmin Lei<leizongmin@gmail.com>
1607
- */
1608
-
1609
- var FilterCSS$1 = lib.exports.FilterCSS;
1610
- var getDefaultCSSWhiteList = lib.exports.getDefaultWhiteList;
1611
- var _$2 = util;
1612
-
1613
- function getDefaultWhiteList() {
1614
- return {
1615
- a: ["target", "href", "title"],
1616
- abbr: ["title"],
1617
- address: [],
1618
- area: ["shape", "coords", "href", "alt"],
1619
- article: [],
1620
- aside: [],
1621
- audio: [
1622
- "autoplay",
1623
- "controls",
1624
- "crossorigin",
1625
- "loop",
1626
- "muted",
1627
- "preload",
1628
- "src",
1629
- ],
1630
- b: [],
1631
- bdi: ["dir"],
1632
- bdo: ["dir"],
1633
- big: [],
1634
- blockquote: ["cite"],
1635
- br: [],
1636
- caption: [],
1637
- center: [],
1638
- cite: [],
1639
- code: [],
1640
- col: ["align", "valign", "span", "width"],
1641
- colgroup: ["align", "valign", "span", "width"],
1642
- dd: [],
1643
- del: ["datetime"],
1644
- details: ["open"],
1645
- div: [],
1646
- dl: [],
1647
- dt: [],
1648
- em: [],
1649
- figcaption: [],
1650
- figure: [],
1651
- font: ["color", "size", "face"],
1652
- footer: [],
1653
- h1: [],
1654
- h2: [],
1655
- h3: [],
1656
- h4: [],
1657
- h5: [],
1658
- h6: [],
1659
- header: [],
1660
- hr: [],
1661
- i: [],
1662
- img: ["src", "alt", "title", "width", "height"],
1663
- ins: ["datetime"],
1664
- li: [],
1665
- mark: [],
1666
- nav: [],
1667
- ol: [],
1668
- p: [],
1669
- pre: [],
1670
- s: [],
1671
- section: [],
1672
- small: [],
1673
- span: [],
1674
- sub: [],
1675
- summary: [],
1676
- sup: [],
1677
- strong: [],
1678
- strike: [],
1679
- table: ["width", "border", "align", "valign"],
1680
- tbody: ["align", "valign"],
1681
- td: ["width", "rowspan", "colspan", "align", "valign"],
1682
- tfoot: ["align", "valign"],
1683
- th: ["width", "rowspan", "colspan", "align", "valign"],
1684
- thead: ["align", "valign"],
1685
- tr: ["rowspan", "align", "valign"],
1686
- tt: [],
1687
- u: [],
1688
- ul: [],
1689
- video: [
1690
- "autoplay",
1691
- "controls",
1692
- "crossorigin",
1693
- "loop",
1694
- "muted",
1695
- "playsinline",
1696
- "poster",
1697
- "preload",
1698
- "src",
1699
- "height",
1700
- "width",
1701
- ],
1702
- };
1703
- }
1704
-
1705
- var defaultCSSFilter = new FilterCSS$1();
1706
-
1707
- /**
1708
- * default onTag function
1709
- *
1710
- * @param {String} tag
1711
- * @param {String} html
1712
- * @param {Object} options
1713
- * @return {String}
1714
- */
1715
- function onTag(tag, html, options) {
1716
- // do nothing
1717
- }
1718
-
1719
- /**
1720
- * default onIgnoreTag function
1721
- *
1722
- * @param {String} tag
1723
- * @param {String} html
1724
- * @param {Object} options
1725
- * @return {String}
1726
- */
1727
- function onIgnoreTag(tag, html, options) {
1728
- // do nothing
1729
- }
1730
-
1731
- /**
1732
- * default onTagAttr function
1733
- *
1734
- * @param {String} tag
1735
- * @param {String} name
1736
- * @param {String} value
1737
- * @return {String}
1738
- */
1739
- function onTagAttr(tag, name, value) {
1740
- // do nothing
1741
- }
1742
-
1743
- /**
1744
- * default onIgnoreTagAttr function
1745
- *
1746
- * @param {String} tag
1747
- * @param {String} name
1748
- * @param {String} value
1749
- * @return {String}
1750
- */
1751
- function onIgnoreTagAttr(tag, name, value) {
1752
- // do nothing
1753
- }
1754
-
1755
- /**
1756
- * default escapeHtml function
1757
- *
1758
- * @param {String} html
1759
- */
1760
- function escapeHtml(html) {
1761
- return html.replace(REGEXP_LT, "&lt;").replace(REGEXP_GT, "&gt;");
1762
- }
1763
-
1764
- /**
1765
- * default safeAttrValue function
1766
- *
1767
- * @param {String} tag
1768
- * @param {String} name
1769
- * @param {String} value
1770
- * @param {Object} cssFilter
1771
- * @return {String}
1772
- */
1773
- function safeAttrValue(tag, name, value, cssFilter) {
1774
- // unescape attribute value firstly
1775
- value = friendlyAttrValue(value);
1776
-
1777
- if (name === "href" || name === "src") {
1778
- // filter `href` and `src` attribute
1779
- // only allow the value that starts with `http://` | `https://` | `mailto:` | `/` | `#`
1780
- value = _$2.trim(value);
1781
- if (value === "#") return "#";
1782
- if (
1783
- !(
1784
- value.substr(0, 7) === "http://" ||
1785
- value.substr(0, 8) === "https://" ||
1786
- value.substr(0, 7) === "mailto:" ||
1787
- value.substr(0, 4) === "tel:" ||
1788
- value.substr(0, 11) === "data:image/" ||
1789
- value.substr(0, 6) === "ftp://" ||
1790
- value.substr(0, 2) === "./" ||
1791
- value.substr(0, 3) === "../" ||
1792
- value[0] === "#" ||
1793
- value[0] === "/"
1794
- )
1795
- ) {
1796
- return "";
1797
- }
1798
- } else if (name === "background") {
1799
- // filter `background` attribute (maybe no use)
1800
- // `javascript:`
1801
- REGEXP_DEFAULT_ON_TAG_ATTR_4.lastIndex = 0;
1802
- if (REGEXP_DEFAULT_ON_TAG_ATTR_4.test(value)) {
1803
- return "";
1804
- }
1805
- } else if (name === "style") {
1806
- // `expression()`
1807
- REGEXP_DEFAULT_ON_TAG_ATTR_7.lastIndex = 0;
1808
- if (REGEXP_DEFAULT_ON_TAG_ATTR_7.test(value)) {
1809
- return "";
1810
- }
1811
- // `url()`
1812
- REGEXP_DEFAULT_ON_TAG_ATTR_8.lastIndex = 0;
1813
- if (REGEXP_DEFAULT_ON_TAG_ATTR_8.test(value)) {
1814
- REGEXP_DEFAULT_ON_TAG_ATTR_4.lastIndex = 0;
1815
- if (REGEXP_DEFAULT_ON_TAG_ATTR_4.test(value)) {
1816
- return "";
1817
- }
1818
- }
1819
- if (cssFilter !== false) {
1820
- cssFilter = cssFilter || defaultCSSFilter;
1821
- value = cssFilter.process(value);
1822
- }
1823
- }
1824
-
1825
- // escape `<>"` before returns
1826
- value = escapeAttrValue(value);
1827
- return value;
1828
- }
1829
-
1830
- // RegExp list
1831
- var REGEXP_LT = /</g;
1832
- var REGEXP_GT = />/g;
1833
- var REGEXP_QUOTE = /"/g;
1834
- var REGEXP_QUOTE_2 = /&quot;/g;
1835
- var REGEXP_ATTR_VALUE_1 = /&#([a-zA-Z0-9]*);?/gim;
1836
- var REGEXP_ATTR_VALUE_COLON = /&colon;?/gim;
1837
- var REGEXP_ATTR_VALUE_NEWLINE = /&newline;?/gim;
1838
- // var REGEXP_DEFAULT_ON_TAG_ATTR_3 = /\/\*|\*\//gm;
1839
- var REGEXP_DEFAULT_ON_TAG_ATTR_4 =
1840
- /((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;
1841
- // var REGEXP_DEFAULT_ON_TAG_ATTR_5 = /^[\s"'`]*(d\s*a\s*t\s*a\s*)\:/gi;
1842
- // var REGEXP_DEFAULT_ON_TAG_ATTR_6 = /^[\s"'`]*(d\s*a\s*t\s*a\s*)\:\s*image\//gi;
1843
- var REGEXP_DEFAULT_ON_TAG_ATTR_7 =
1844
- /e\s*x\s*p\s*r\s*e\s*s\s*s\s*i\s*o\s*n\s*\(.*/gi;
1845
- var REGEXP_DEFAULT_ON_TAG_ATTR_8 = /u\s*r\s*l\s*\(.*/gi;
1846
-
1847
- /**
1848
- * escape double quote
1849
- *
1850
- * @param {String} str
1851
- * @return {String} str
1852
- */
1853
- function escapeQuote(str) {
1854
- return str.replace(REGEXP_QUOTE, "&quot;");
1855
- }
1856
-
1857
- /**
1858
- * unescape double quote
1859
- *
1860
- * @param {String} str
1861
- * @return {String} str
1862
- */
1863
- function unescapeQuote(str) {
1864
- return str.replace(REGEXP_QUOTE_2, '"');
1865
- }
1866
-
1867
- /**
1868
- * escape html entities
1869
- *
1870
- * @param {String} str
1871
- * @return {String}
1872
- */
1873
- function escapeHtmlEntities(str) {
1874
- return str.replace(REGEXP_ATTR_VALUE_1, function replaceUnicode(str, code) {
1875
- return code[0] === "x" || code[0] === "X"
1876
- ? String.fromCharCode(parseInt(code.substr(1), 16))
1877
- : String.fromCharCode(parseInt(code, 10));
1878
- });
1879
- }
1880
-
1881
- /**
1882
- * escape html5 new danger entities
1883
- *
1884
- * @param {String} str
1885
- * @return {String}
1886
- */
1887
- function escapeDangerHtml5Entities(str) {
1888
- return str
1889
- .replace(REGEXP_ATTR_VALUE_COLON, ":")
1890
- .replace(REGEXP_ATTR_VALUE_NEWLINE, " ");
1891
- }
1892
-
1893
- /**
1894
- * clear nonprintable characters
1895
- *
1896
- * @param {String} str
1897
- * @return {String}
1898
- */
1899
- function clearNonPrintableCharacter(str) {
1900
- var str2 = "";
1901
- for (var i = 0, len = str.length; i < len; i++) {
1902
- str2 += str.charCodeAt(i) < 32 ? " " : str.charAt(i);
1903
- }
1904
- return _$2.trim(str2);
1905
- }
1906
-
1907
- /**
1908
- * get friendly attribute value
1909
- *
1910
- * @param {String} str
1911
- * @return {String}
1912
- */
1913
- function friendlyAttrValue(str) {
1914
- str = unescapeQuote(str);
1915
- str = escapeHtmlEntities(str);
1916
- str = escapeDangerHtml5Entities(str);
1917
- str = clearNonPrintableCharacter(str);
1918
- return str;
1919
- }
1920
-
1921
- /**
1922
- * unescape attribute value
1923
- *
1924
- * @param {String} str
1925
- * @return {String}
1926
- */
1927
- function escapeAttrValue(str) {
1928
- str = escapeQuote(str);
1929
- str = escapeHtml(str);
1930
- return str;
1931
- }
1932
-
1933
- /**
1934
- * `onIgnoreTag` function for removing all the tags that are not in whitelist
1935
- */
1936
- function onIgnoreTagStripAll() {
1937
- return "";
1938
- }
1939
-
1940
- /**
1941
- * remove tag body
1942
- * specify a `tags` list, if the tag is not in the `tags` list then process by the specify function (optional)
1943
- *
1944
- * @param {array} tags
1945
- * @param {function} next
1946
- */
1947
- function StripTagBody(tags, next) {
1948
- if (typeof next !== "function") {
1949
- next = function () {};
1950
- }
1951
-
1952
- var isRemoveAllTag = !Array.isArray(tags);
1953
- function isRemoveTag(tag) {
1954
- if (isRemoveAllTag) return true;
1955
- return _$2.indexOf(tags, tag) !== -1;
1956
- }
1957
-
1958
- var removeList = [];
1959
- var posStart = false;
1960
-
1961
- return {
1962
- onIgnoreTag: function (tag, html, options) {
1963
- if (isRemoveTag(tag)) {
1964
- if (options.isClosing) {
1965
- var ret = "[/removed]";
1966
- var end = options.position + ret.length;
1967
- removeList.push([
1968
- posStart !== false ? posStart : options.position,
1969
- end,
1970
- ]);
1971
- posStart = false;
1972
- return ret;
1973
- } else {
1974
- if (!posStart) {
1975
- posStart = options.position;
1976
- }
1977
- return "[removed]";
1978
- }
1979
- } else {
1980
- return next(tag, html, options);
1981
- }
1982
- },
1983
- remove: function (html) {
1984
- var rethtml = "";
1985
- var lastPos = 0;
1986
- _$2.forEach(removeList, function (pos) {
1987
- rethtml += html.slice(lastPos, pos[0]);
1988
- lastPos = pos[1];
1989
- });
1990
- rethtml += html.slice(lastPos);
1991
- return rethtml;
1992
- },
1993
- };
1994
- }
1995
-
1996
- /**
1997
- * remove html comments
1998
- *
1999
- * @param {String} html
2000
- * @return {String}
2001
- */
2002
- function stripCommentTag(html) {
2003
- var retHtml = "";
2004
- var lastPos = 0;
2005
- while (lastPos < html.length) {
2006
- var i = html.indexOf("<!--", lastPos);
2007
- if (i === -1) {
2008
- retHtml += html.slice(lastPos);
2009
- break;
2010
- }
2011
- retHtml += html.slice(lastPos, i);
2012
- var j = html.indexOf("-->", i);
2013
- if (j === -1) {
2014
- break;
2015
- }
2016
- lastPos = j + 3;
2017
- }
2018
- return retHtml;
2019
- }
2020
-
2021
- /**
2022
- * remove invisible characters
2023
- *
2024
- * @param {String} html
2025
- * @return {String}
2026
- */
2027
- function stripBlankChar(html) {
2028
- var chars = html.split("");
2029
- chars = chars.filter(function (char) {
2030
- var c = char.charCodeAt(0);
2031
- if (c === 127) return false;
2032
- if (c <= 31) {
2033
- if (c === 10 || c === 13) return true;
2034
- return false;
2035
- }
2036
- return true;
2037
- });
2038
- return chars.join("");
2039
- }
2040
-
2041
- _default$1.whiteList = getDefaultWhiteList();
2042
- _default$1.getDefaultWhiteList = getDefaultWhiteList;
2043
- _default$1.onTag = onTag;
2044
- _default$1.onIgnoreTag = onIgnoreTag;
2045
- _default$1.onTagAttr = onTagAttr;
2046
- _default$1.onIgnoreTagAttr = onIgnoreTagAttr;
2047
- _default$1.safeAttrValue = safeAttrValue;
2048
- _default$1.escapeHtml = escapeHtml;
2049
- _default$1.escapeQuote = escapeQuote;
2050
- _default$1.unescapeQuote = unescapeQuote;
2051
- _default$1.escapeHtmlEntities = escapeHtmlEntities;
2052
- _default$1.escapeDangerHtml5Entities = escapeDangerHtml5Entities;
2053
- _default$1.clearNonPrintableCharacter = clearNonPrintableCharacter;
2054
- _default$1.friendlyAttrValue = friendlyAttrValue;
2055
- _default$1.escapeAttrValue = escapeAttrValue;
2056
- _default$1.onIgnoreTagStripAll = onIgnoreTagStripAll;
2057
- _default$1.StripTagBody = StripTagBody;
2058
- _default$1.stripCommentTag = stripCommentTag;
2059
- _default$1.stripBlankChar = stripBlankChar;
2060
- _default$1.cssFilter = defaultCSSFilter;
2061
- _default$1.getDefaultCSSWhiteList = getDefaultCSSWhiteList;
2062
-
2063
- var parser$1 = {};
2064
-
2065
- /**
2066
- * Simple HTML Parser
2067
- *
2068
- * @author Zongmin Lei<leizongmin@gmail.com>
2069
- */
2070
-
2071
- var _$1 = util;
2072
-
2073
- /**
2074
- * get tag name
2075
- *
2076
- * @param {String} html e.g. '<a hef="#">'
2077
- * @return {String}
2078
- */
2079
- function getTagName(html) {
2080
- var i = _$1.spaceIndex(html);
2081
- var tagName;
2082
- if (i === -1) {
2083
- tagName = html.slice(1, -1);
2084
- } else {
2085
- tagName = html.slice(1, i + 1);
2086
- }
2087
- tagName = _$1.trim(tagName).toLowerCase();
2088
- if (tagName.slice(0, 1) === "/") tagName = tagName.slice(1);
2089
- if (tagName.slice(-1) === "/") tagName = tagName.slice(0, -1);
2090
- return tagName;
2091
- }
2092
-
2093
- /**
2094
- * is close tag?
2095
- *
2096
- * @param {String} html 如:'<a hef="#">'
2097
- * @return {Boolean}
2098
- */
2099
- function isClosing(html) {
2100
- return html.slice(0, 2) === "</";
2101
- }
2102
-
2103
- /**
2104
- * parse input html and returns processed html
2105
- *
2106
- * @param {String} html
2107
- * @param {Function} onTag e.g. function (sourcePosition, position, tag, html, isClosing)
2108
- * @param {Function} escapeHtml
2109
- * @return {String}
2110
- */
2111
- function parseTag$1(html, onTag, escapeHtml) {
2112
-
2113
- var rethtml = "";
2114
- var lastPos = 0;
2115
- var tagStart = false;
2116
- var quoteStart = false;
2117
- var currentPos = 0;
2118
- var len = html.length;
2119
- var currentTagName = "";
2120
- var currentHtml = "";
2121
-
2122
- chariterator: for (currentPos = 0; currentPos < len; currentPos++) {
2123
- var c = html.charAt(currentPos);
2124
- if (tagStart === false) {
2125
- if (c === "<") {
2126
- tagStart = currentPos;
2127
- continue;
2128
- }
2129
- } else {
2130
- if (quoteStart === false) {
2131
- if (c === "<") {
2132
- rethtml += escapeHtml(html.slice(lastPos, currentPos));
2133
- tagStart = currentPos;
2134
- lastPos = currentPos;
2135
- continue;
2136
- }
2137
- if (c === ">") {
2138
- rethtml += escapeHtml(html.slice(lastPos, tagStart));
2139
- currentHtml = html.slice(tagStart, currentPos + 1);
2140
- currentTagName = getTagName(currentHtml);
2141
- rethtml += onTag(
2142
- tagStart,
2143
- rethtml.length,
2144
- currentTagName,
2145
- currentHtml,
2146
- isClosing(currentHtml)
2147
- );
2148
- lastPos = currentPos + 1;
2149
- tagStart = false;
2150
- continue;
2151
- }
2152
- if (c === '"' || c === "'") {
2153
- var i = 1;
2154
- var ic = html.charAt(currentPos - i);
2155
-
2156
- while (ic.trim() === "" || ic === "=") {
2157
- if (ic === "=") {
2158
- quoteStart = c;
2159
- continue chariterator;
2160
- }
2161
- ic = html.charAt(currentPos - ++i);
2162
- }
2163
- }
2164
- } else {
2165
- if (c === quoteStart) {
2166
- quoteStart = false;
2167
- continue;
2168
- }
2169
- }
2170
- }
2171
- }
2172
- if (lastPos < html.length) {
2173
- rethtml += escapeHtml(html.substr(lastPos));
2174
- }
2175
-
2176
- return rethtml;
2177
- }
2178
-
2179
- var REGEXP_ILLEGAL_ATTR_NAME = /[^a-zA-Z0-9\\_:.-]/gim;
2180
-
2181
- /**
2182
- * parse input attributes and returns processed attributes
2183
- *
2184
- * @param {String} html e.g. `href="#" target="_blank"`
2185
- * @param {Function} onAttr e.g. `function (name, value)`
2186
- * @return {String}
2187
- */
2188
- function parseAttr$1(html, onAttr) {
2189
-
2190
- var lastPos = 0;
2191
- var lastMarkPos = 0;
2192
- var retAttrs = [];
2193
- var tmpName = false;
2194
- var len = html.length;
2195
-
2196
- function addAttr(name, value) {
2197
- name = _$1.trim(name);
2198
- name = name.replace(REGEXP_ILLEGAL_ATTR_NAME, "").toLowerCase();
2199
- if (name.length < 1) return;
2200
- var ret = onAttr(name, value || "");
2201
- if (ret) retAttrs.push(ret);
2202
- }
2203
-
2204
- // 逐个分析字符
2205
- for (var i = 0; i < len; i++) {
2206
- var c = html.charAt(i);
2207
- var v, j;
2208
- if (tmpName === false && c === "=") {
2209
- tmpName = html.slice(lastPos, i);
2210
- lastPos = i + 1;
2211
- lastMarkPos = html.charAt(lastPos) === '"' || html.charAt(lastPos) === "'" ? lastPos : findNextQuotationMark(html, i + 1);
2212
- continue;
2213
- }
2214
- if (tmpName !== false) {
2215
- if (
2216
- i === lastMarkPos
2217
- ) {
2218
- j = html.indexOf(c, i + 1);
2219
- if (j === -1) {
2220
- break;
2221
- } else {
2222
- v = _$1.trim(html.slice(lastMarkPos + 1, j));
2223
- addAttr(tmpName, v);
2224
- tmpName = false;
2225
- i = j;
2226
- lastPos = i + 1;
2227
- continue;
2228
- }
2229
- }
2230
- }
2231
- if (/\s|\n|\t/.test(c)) {
2232
- html = html.replace(/\s|\n|\t/g, " ");
2233
- if (tmpName === false) {
2234
- j = findNextEqual(html, i);
2235
- if (j === -1) {
2236
- v = _$1.trim(html.slice(lastPos, i));
2237
- addAttr(v);
2238
- tmpName = false;
2239
- lastPos = i + 1;
2240
- continue;
2241
- } else {
2242
- i = j - 1;
2243
- continue;
2244
- }
2245
- } else {
2246
- j = findBeforeEqual(html, i - 1);
2247
- if (j === -1) {
2248
- v = _$1.trim(html.slice(lastPos, i));
2249
- v = stripQuoteWrap(v);
2250
- addAttr(tmpName, v);
2251
- tmpName = false;
2252
- lastPos = i + 1;
2253
- continue;
2254
- } else {
2255
- continue;
2256
- }
2257
- }
2258
- }
2259
- }
2260
-
2261
- if (lastPos < html.length) {
2262
- if (tmpName === false) {
2263
- addAttr(html.slice(lastPos));
2264
- } else {
2265
- addAttr(tmpName, stripQuoteWrap(_$1.trim(html.slice(lastPos))));
2266
- }
2267
- }
2268
-
2269
- return _$1.trim(retAttrs.join(" "));
2270
- }
2271
-
2272
- function findNextEqual(str, i) {
2273
- for (; i < str.length; i++) {
2274
- var c = str[i];
2275
- if (c === " ") continue;
2276
- if (c === "=") return i;
2277
- return -1;
2278
- }
2279
- }
2280
-
2281
- function findNextQuotationMark(str, i) {
2282
- for (; i < str.length; i++) {
2283
- var c = str[i];
2284
- if (c === " ") continue;
2285
- if (c === "'" || c === '"') return i;
2286
- return -1;
2287
- }
2288
- }
2289
-
2290
- function findBeforeEqual(str, i) {
2291
- for (; i > 0; i--) {
2292
- var c = str[i];
2293
- if (c === " ") continue;
2294
- if (c === "=") return i;
2295
- return -1;
2296
- }
2297
- }
2298
-
2299
- function isQuoteWrapString(text) {
2300
- if (
2301
- (text[0] === '"' && text[text.length - 1] === '"') ||
2302
- (text[0] === "'" && text[text.length - 1] === "'")
2303
- ) {
2304
- return true;
2305
- } else {
2306
- return false;
2307
- }
2308
- }
2309
-
2310
- function stripQuoteWrap(text) {
2311
- if (isQuoteWrapString(text)) {
2312
- return text.substr(1, text.length - 2);
2313
- } else {
2314
- return text;
2315
- }
2316
- }
2317
-
2318
- parser$1.parseTag = parseTag$1;
2319
- parser$1.parseAttr = parseAttr$1;
2320
-
2321
- /**
2322
- * filter xss
2323
- *
2324
- * @author Zongmin Lei<leizongmin@gmail.com>
2325
- */
2326
-
2327
- var FilterCSS = lib.exports.FilterCSS;
2328
- var DEFAULT = _default$1;
2329
- var parser = parser$1;
2330
- var parseTag = parser.parseTag;
2331
- var parseAttr = parser.parseAttr;
2332
- var _ = util;
2333
-
2334
- /**
2335
- * returns `true` if the input value is `undefined` or `null`
2336
- *
2337
- * @param {Object} obj
2338
- * @return {Boolean}
2339
- */
2340
- function isNull(obj) {
2341
- return obj === undefined || obj === null;
2342
- }
2343
-
2344
- /**
2345
- * get attributes for a tag
2346
- *
2347
- * @param {String} html
2348
- * @return {Object}
2349
- * - {String} html
2350
- * - {Boolean} closing
2351
- */
2352
- function getAttrs(html) {
2353
- var i = _.spaceIndex(html);
2354
- if (i === -1) {
2355
- return {
2356
- html: "",
2357
- closing: html[html.length - 2] === "/",
2358
- };
2359
- }
2360
- html = _.trim(html.slice(i + 1, -1));
2361
- var isClosing = html[html.length - 1] === "/";
2362
- if (isClosing) html = _.trim(html.slice(0, -1));
2363
- return {
2364
- html: html,
2365
- closing: isClosing,
2366
- };
2367
- }
2368
-
2369
- /**
2370
- * shallow copy
2371
- *
2372
- * @param {Object} obj
2373
- * @return {Object}
2374
- */
2375
- function shallowCopyObject(obj) {
2376
- var ret = {};
2377
- for (var i in obj) {
2378
- ret[i] = obj[i];
2379
- }
2380
- return ret;
2381
- }
2382
-
2383
- function keysToLowerCase(obj) {
2384
- var ret = {};
2385
- for (var i in obj) {
2386
- if (Array.isArray(obj[i])) {
2387
- ret[i.toLowerCase()] = obj[i].map(function (item) {
2388
- return item.toLowerCase();
2389
- });
2390
- } else {
2391
- ret[i.toLowerCase()] = obj[i];
2392
- }
2393
- }
2394
- return ret;
2395
- }
2396
-
2397
- /**
2398
- * FilterXSS class
2399
- *
2400
- * @param {Object} options
2401
- * whiteList (or allowList), onTag, onTagAttr, onIgnoreTag,
2402
- * onIgnoreTagAttr, safeAttrValue, escapeHtml
2403
- * stripIgnoreTagBody, allowCommentTag, stripBlankChar
2404
- * css{whiteList, onAttr, onIgnoreAttr} `css=false` means don't use `cssfilter`
2405
- */
2406
- function FilterXSS(options) {
2407
- options = shallowCopyObject(options || {});
2408
-
2409
- if (options.stripIgnoreTag) {
2410
- if (options.onIgnoreTag) {
2411
- console.error(
2412
- 'Notes: cannot use these two options "stripIgnoreTag" and "onIgnoreTag" at the same time'
2413
- );
2414
- }
2415
- options.onIgnoreTag = DEFAULT.onIgnoreTagStripAll;
2416
- }
2417
- if (options.whiteList || options.allowList) {
2418
- options.whiteList = keysToLowerCase(options.whiteList || options.allowList);
2419
- } else {
2420
- options.whiteList = DEFAULT.whiteList;
2421
- }
2422
-
2423
- options.onTag = options.onTag || DEFAULT.onTag;
2424
- options.onTagAttr = options.onTagAttr || DEFAULT.onTagAttr;
2425
- options.onIgnoreTag = options.onIgnoreTag || DEFAULT.onIgnoreTag;
2426
- options.onIgnoreTagAttr = options.onIgnoreTagAttr || DEFAULT.onIgnoreTagAttr;
2427
- options.safeAttrValue = options.safeAttrValue || DEFAULT.safeAttrValue;
2428
- options.escapeHtml = options.escapeHtml || DEFAULT.escapeHtml;
2429
- this.options = options;
2430
-
2431
- if (options.css === false) {
2432
- this.cssFilter = false;
2433
- } else {
2434
- options.css = options.css || {};
2435
- this.cssFilter = new FilterCSS(options.css);
2436
- }
2437
- }
2438
-
2439
- /**
2440
- * start process and returns result
2441
- *
2442
- * @param {String} html
2443
- * @return {String}
2444
- */
2445
- FilterXSS.prototype.process = function (html) {
2446
- // compatible with the input
2447
- html = html || "";
2448
- html = html.toString();
2449
- if (!html) return "";
2450
-
2451
- var me = this;
2452
- var options = me.options;
2453
- var whiteList = options.whiteList;
2454
- var onTag = options.onTag;
2455
- var onIgnoreTag = options.onIgnoreTag;
2456
- var onTagAttr = options.onTagAttr;
2457
- var onIgnoreTagAttr = options.onIgnoreTagAttr;
2458
- var safeAttrValue = options.safeAttrValue;
2459
- var escapeHtml = options.escapeHtml;
2460
- var cssFilter = me.cssFilter;
2461
-
2462
- // remove invisible characters
2463
- if (options.stripBlankChar) {
2464
- html = DEFAULT.stripBlankChar(html);
2465
- }
2466
-
2467
- // remove html comments
2468
- if (!options.allowCommentTag) {
2469
- html = DEFAULT.stripCommentTag(html);
2470
- }
2471
-
2472
- // if enable stripIgnoreTagBody
2473
- var stripIgnoreTagBody = false;
2474
- if (options.stripIgnoreTagBody) {
2475
- stripIgnoreTagBody = DEFAULT.StripTagBody(
2476
- options.stripIgnoreTagBody,
2477
- onIgnoreTag
2478
- );
2479
- onIgnoreTag = stripIgnoreTagBody.onIgnoreTag;
2480
- }
2481
-
2482
- var retHtml = parseTag(
2483
- html,
2484
- function (sourcePosition, position, tag, html, isClosing) {
2485
- var info = {
2486
- sourcePosition: sourcePosition,
2487
- position: position,
2488
- isClosing: isClosing,
2489
- isWhite: Object.prototype.hasOwnProperty.call(whiteList, tag),
2490
- };
2491
-
2492
- // call `onTag()`
2493
- var ret = onTag(tag, html, info);
2494
- if (!isNull(ret)) return ret;
2495
-
2496
- if (info.isWhite) {
2497
- if (info.isClosing) {
2498
- return "</" + tag + ">";
2499
- }
2500
-
2501
- var attrs = getAttrs(html);
2502
- var whiteAttrList = whiteList[tag];
2503
- var attrsHtml = parseAttr(attrs.html, function (name, value) {
2504
- // call `onTagAttr()`
2505
- var isWhiteAttr = _.indexOf(whiteAttrList, name) !== -1;
2506
- var ret = onTagAttr(tag, name, value, isWhiteAttr);
2507
- if (!isNull(ret)) return ret;
2508
-
2509
- if (isWhiteAttr) {
2510
- // call `safeAttrValue()`
2511
- value = safeAttrValue(tag, name, value, cssFilter);
2512
- if (value) {
2513
- return name + '="' + value + '"';
2514
- } else {
2515
- return name;
2516
- }
2517
- } else {
2518
- // call `onIgnoreTagAttr()`
2519
- ret = onIgnoreTagAttr(tag, name, value, isWhiteAttr);
2520
- if (!isNull(ret)) return ret;
2521
- return;
2522
- }
2523
- });
2524
-
2525
- // build new tag html
2526
- html = "<" + tag;
2527
- if (attrsHtml) html += " " + attrsHtml;
2528
- if (attrs.closing) html += " /";
2529
- html += ">";
2530
- return html;
2531
- } else {
2532
- // call `onIgnoreTag()`
2533
- ret = onIgnoreTag(tag, html, info);
2534
- if (!isNull(ret)) return ret;
2535
- return escapeHtml(html);
2536
- }
2537
- },
2538
- escapeHtml
2539
- );
2540
-
2541
- // if enable stripIgnoreTagBody
2542
- if (stripIgnoreTagBody) {
2543
- retHtml = stripIgnoreTagBody.remove(retHtml);
2544
- }
2545
-
2546
- return retHtml;
2547
- };
2548
-
2549
- var xss = FilterXSS;
2550
-
2551
- /**
2552
- * xss
2553
- *
2554
- * @author Zongmin Lei<leizongmin@gmail.com>
2555
- */
2556
-
2557
- (function (module, exports) {
2558
- var DEFAULT = _default$1;
2559
- var parser = parser$1;
2560
- var FilterXSS = xss;
2561
-
2562
- /**
2563
- * filter xss function
2564
- *
2565
- * @param {String} html
2566
- * @param {Object} options { whiteList, onTag, onTagAttr, onIgnoreTag, onIgnoreTagAttr, safeAttrValue, escapeHtml }
2567
- * @return {String}
2568
- */
2569
- function filterXSS(html, options) {
2570
- var xss = new FilterXSS(options);
2571
- return xss.process(html);
2572
- }
2573
-
2574
- exports = module.exports = filterXSS;
2575
- exports.filterXSS = filterXSS;
2576
- exports.FilterXSS = FilterXSS;
2577
-
2578
- (function () {
2579
- for (var i in DEFAULT) {
2580
- exports[i] = DEFAULT[i];
2581
- }
2582
- for (var j in parser) {
2583
- exports[j] = parser[j];
2584
- }
2585
- })();
2586
-
2587
- // using `xss` on the WebWorker, output `filterXSS` to the globals
2588
- function isWorkerEnv() {
2589
- return (
2590
- typeof self !== "undefined" &&
2591
- typeof DedicatedWorkerGlobalScope !== "undefined" &&
2592
- self instanceof DedicatedWorkerGlobalScope
2593
- );
2594
- }
2595
- if (isWorkerEnv()) {
2596
- self.filterXSS = module.exports;
2597
- }
2598
- } (lib$1, lib$1.exports));
2599
-
2600
- /** @license
2601
- * Copyright 2020 Esri
2602
- *
2603
- * Licensed under the Apache License, Version 2.0 (the "License");
2604
- * you may not use this file except in compliance with the License.
2605
- * You may obtain a copy of the License at
2606
- *
2607
- * http://www.apache.org/licenses/LICENSE-2.0
2608
- *
2609
- * Unless required by applicable law or agreed to in writing, software
2610
- * distributed under the License is distributed on an "AS IS" BASIS,
2611
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2612
- * See the License for the specific language governing permissions and
2613
- * limitations under the License.
2614
- */
2615
- /**
2616
- * Supplies the File constructor for Microsoft Legacy Edge.
2617
- *
2618
- * @param fileBits Contents for file
2619
- * @param fileName Name for file
2620
- * @param options Bucket of options, euch as `type` for the MIME type; defaults to empty string for `type`
2621
- * @returns File or, for Microsoft Legacy Edge, Blob
2622
- * @see https://developer.mozilla.org/en-US/docs/Web/API/File/File
2623
- * @see https://developer.mozilla.org/en-US/docs/Web/API/Blob/Blob
2624
- */
2625
- function new_File(fileBits, fileName, options) {
2626
- let file;
2627
- try {
2628
- // Modern browser
2629
- file = new File(fileBits, fileName, options);
2630
- }
2631
- catch (error) {
2632
- // Microsoft Legacy Edge
2633
- /* istanbul ignore next */
2634
- file = (function () {
2635
- if (typeof options === "undefined") {
2636
- // Microsoft Legacy Edge fails in karma if options is not defined
2637
- options = {
2638
- type: ""
2639
- };
2640
- }
2641
- const blob = new Blob(fileBits, options);
2642
- blob.lastModified = new Date();
2643
- blob.name = fileName;
2644
- return blob;
2645
- })();
2646
- }
2647
- return file;
2648
- }
2649
-
2650
- /** @license
2651
- * Copyright 2018 Esri
2652
- *
2653
- * Licensed under the Apache License, Version 2.0 (the "License");
2654
- * you may not use this file except in compliance with the License.
2655
- * You may obtain a copy of the License at
2656
- *
2657
- * http://www.apache.org/licenses/LICENSE-2.0
2658
- *
2659
- * Unless required by applicable law or agreed to in writing, software
2660
- * distributed under the License is distributed on an "AS IS" BASIS,
2661
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2662
- * See the License for the specific language governing permissions and
2663
- * limitations under the License.
2664
- */
2665
- /**
2666
- * Extracts JSON from a Blob.
2667
- *
2668
- * @param blob Blob to use as source
2669
- * @returns A promise that will resolve with JSON or null
2670
- */
2671
- function blobToJson(blob) {
2672
- return new Promise(resolve => {
2673
- blobToText(blob).then(blobContents => {
2674
- try {
2675
- resolve(JSON.parse(blobContents));
2676
- }
2677
- catch (err) {
2678
- resolve(null);
2679
- }
2680
- }, () => resolve(null));
2681
- });
2682
- }
2683
- /**
2684
- * Converts a Blob to a File.
2685
- *
2686
- * @param blob Blob to use as source
2687
- * @param filename Name to use for file
2688
- * @param mimeType MIME type to override blob's MIME type
2689
- * @returns File created out of Blob and filename
2690
- */
2691
- function blobToFile(blob, filename, mimeType) {
2692
- return blob
2693
- ? new_File([blob], filename ? filename : "", {
2694
- type: mimeType || blob.type
2695
- })
2696
- : null;
2697
- }
2698
- /**
2699
- * Extracts text from a Blob.
2700
- *
2701
- * @param blob Blob to use as source
2702
- * @returns A promise that will resolve with text read from blob
2703
- */
2704
- function blobToText(blob) {
2705
- return new Promise(resolve => {
2706
- const reader = new FileReader();
2707
- reader.onload = function (evt) {
2708
- // Disable needed because Node requires cast
2709
- // tslint:disable-next-line: no-unnecessary-type-assertion
2710
- const blobContents = evt.target.result;
2711
- resolve(blobContents ? blobContents : ""); // not handling ArrayContents variant
2712
- };
2713
- reader.readAsText(blob);
2714
- });
2715
- }
2716
- /**
2717
- * Checks that a URL path ends with a slash.
2718
- *
2719
- * @param url URL to check
2720
- * @returns URL, appended with slash if missing
2721
- */
2722
- function checkUrlPathTermination(url) {
2723
- return url ? (url.endsWith("/") ? url : url + "/") : url;
2724
- }
2725
- /**
2726
- * Gets a property out of a deeply nested object.
2727
- * Does not handle anything but nested object graph
2728
- *
2729
- * @param obj Object to retrieve value from
2730
- * @param path Path into an object, e.g., "data.values.webmap", where "data" is a top-level property
2731
- * in obj
2732
- * @returns Value at end of path
2733
- */
2734
- function getProp(obj, path) {
2735
- return path.split(".").reduce(function (prev, curr) {
2736
- /* istanbul ignore next no need to test undefined scenario */
2737
- return prev ? prev[curr] : undefined;
2738
- }, obj);
2739
- }
2740
- /**
2741
- * Sets a deeply nested property of an object.
2742
- * Creates the full path if it does not exist.
2743
- *
2744
- * @param obj Object to set value of
2745
- * @param path Path into an object, e.g., "data.values.webmap", where "data" is a top-level property in obj
2746
- * @param value The value to set at the end of the path
2747
- */
2748
- function setCreateProp(obj, path, value) {
2749
- const pathParts = path.split(".");
2750
- pathParts.reduce((a, b, c) => {
2751
- if (c === pathParts.length - 1) {
2752
- a[b] = value;
2753
- return value;
2754
- }
2755
- else {
2756
- if (!a[b]) {
2757
- a[b] = {};
2758
- }
2759
- return a[b];
2760
- }
2761
- }, obj);
2762
- }
2763
-
2764
- /**
2765
- * Gets a Blob from a web site.
2766
- *
2767
- * @param url Address of Blob
2768
- * @param authentication Credentials for the request
2769
- * @param requestOptions - Options for the request, including parameters relevant to the endpoint.
2770
- * @returns Promise that will resolve with Blob or an AGO-style JSON failure response
2771
- */
2772
- function getBlob(url, authentication, requestOptions = {}) {
2773
- if (!url) {
2774
- return Promise.reject("Url must be provided");
2775
- }
2776
- const blobRequestOptions = {
2777
- authentication: authentication,
2778
- rawResponse: true,
2779
- ...requestOptions
2780
- };
2781
- return request(url, blobRequestOptions).then(response => {
2782
- return response.blob();
2783
- });
2784
- }
2785
-
2786
- /** @license
2787
- * Copyright 2018 Esri
2788
- *
2789
- * Licensed under the Apache License, Version 2.0 (the "License");
2790
- * you may not use this file except in compliance with the License.
2791
- * You may obtain a copy of the License at
2792
- *
2793
- * http://www.apache.org/licenses/LICENSE-2.0
2794
- *
2795
- * Unless required by applicable law or agreed to in writing, software
2796
- * distributed under the License is distributed on an "AS IS" BASIS,
2797
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2798
- * See the License for the specific language governing permissions and
2799
- * limitations under the License.
2800
- */
2801
- // ------------------------------------------------------------------------------------------------------------------ //
2802
- const ZIP_FILE_HEADER_SIGNATURE = "PK";
2803
- /**
2804
- * Gets a Blob from a web site and casts it as a file using the supplied name.
2805
- *
2806
- * @param url Address of Blob
2807
- * @param filename Name to use for file
2808
- * @param authentication Credentials for the request
2809
- * @returns Promise that will resolve with a File, undefined if the Blob is null, or an AGO-style JSON failure response
2810
- */
2811
- function getBlobAsFile(url, filename, authentication, ignoreErrors = [], mimeType) {
2812
- return new Promise((resolve, reject) => {
2813
- // Get the blob from the URL
2814
- getBlobCheckForError(url, authentication, ignoreErrors).then(blob => !blob ? resolve(null) : resolve(blobToFile(blob, filename, mimeType)), reject);
2815
- });
2816
- }
2817
- /**
2818
- * Gets a Blob from a web site and checks for a JSON error packet in the Blob.
2819
- *
2820
- * @param url Address of Blob
2821
- * @param authentication Credentials for the request
2822
- * @param ignoreErrors List of HTTP error codes that should be ignored
2823
- * @returns Promise that will resolve with Blob or an AGO-REST JSON failure response
2824
- */
2825
- function getBlobCheckForError(url, authentication, ignoreErrors = []) {
2826
- return new Promise((resolve, reject) => {
2827
- // Get the blob from the URL
2828
- getBlob(url, authentication).then(blob => {
2829
- // Reclassify text/plain blobs as needed
2830
- _fixTextBlobType(blob).then(adjustedBlob => {
2831
- if (adjustedBlob.type === "application/json") {
2832
- // Blob may be an error
2833
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
2834
- blobToJson(adjustedBlob).then((json) => {
2835
- // Check for valid JSON with an error
2836
- if (json?.error) {
2837
- const code = json.error.code;
2838
- if (code !== undefined && ignoreErrors.indexOf(code) >= 0) {
2839
- resolve(null); // Error, but ignored
2840
- }
2841
- else {
2842
- reject(json); // Other error; fail with error
2843
- }
2844
- }
2845
- else {
2846
- resolve(adjustedBlob);
2847
- }
2848
- });
2849
- }
2850
- else {
2851
- resolve(adjustedBlob);
2852
- }
2853
- }, reject);
2854
- }, reject);
2855
- });
2856
- }
2857
- /**
2858
- * Gets the data information of an AGO item in its JSON form.
2859
- *
2860
- * @param itemId Id of an item whose data information is sought
2861
- * @param filename Name to use for file
2862
- * @param authentication Credentials for the request to AGO
2863
- * @returns Promise that will resolve with JSON, or an AGO-style JSON failure response
2864
- */
2865
- function getItemDataAsJson(itemId, authentication) {
2866
- return new Promise(resolve => {
2867
- getItemDataBlob(itemId, authentication).then(blob => resolve(blobToJson(blob)), () => resolve(null));
2868
- });
2869
- }
2870
- /**
2871
- * Gets the data information of an AGO item in its raw (Blob) form.
2872
- *
2873
- * @param itemId Id of an item whose data information is sought
2874
- * @param authentication Credentials for the request to AGO
2875
- * @returns A promise that will resolve with the data Blob or null if the item doesn't have a data section
2876
- */
2877
- function getItemDataBlob(itemId, authentication) {
2878
- return new Promise(resolve => {
2879
- const url = getItemDataBlobUrl(itemId, authentication);
2880
- getBlobCheckForError(url, authentication, [400, 500]).then(blob => resolve(_fixTextBlobType(blob)), () => resolve(null));
2881
- });
2882
- }
2883
- /**
2884
- * Gets the URL to the data information of an AGO item in its raw (Blob) form.
2885
- *
2886
- * @param itemId Id of an item whose data information is sought
2887
- * @param authentication Credentials for the request to AGO
2888
- * @returns URL string
2889
- */
2890
- function getItemDataBlobUrl(itemId, authentication) {
2891
- return `${getPortalSharingUrlFromAuth(authentication)}/content/items/${itemId}/data`;
2892
- }
2893
- /**
2894
- * Extracts the portal sharing url from a supplied authentication.
2895
- *
2896
- * @param authentication Credentials for the request to AGO
2897
- * @returns Portal sharing url to be used in API requests, defaulting to `https://www.arcgis.com/sharing/rest`
2898
- */
2899
- function getPortalSharingUrlFromAuth(authentication) {
2900
- // If auth was passed, use that portal
2901
- return getProp(authentication, "portal") || "https://www.arcgis.com/sharing/rest";
2902
- }
2903
- function getThumbnailFile(url, filename, authentication) {
2904
- return new Promise(resolve => {
2905
- getBlobAsFile(url, filename, authentication, [500]).then(resolve, () => resolve(null));
2906
- });
2907
- }
2908
- // ------------------------------------------------------------------------------------------------------------------ //
2909
- /**
2910
- * Fixes the types of Blobs incorrectly typed as text/plain.
2911
- *
2912
- * @param blob Blob to check
2913
- * @returns Promise resolving to original Blob, unless it's originally typed as text/plain but is
2914
- * really JSON, ZIP, or XML
2915
- * @private
2916
- */
2917
- function _fixTextBlobType(blob) {
2918
- return new Promise((resolve, reject) => {
2919
- if (blob &&
2920
- blob.size > 0 &&
2921
- (blob.type.startsWith("text/plain") ||
2922
- blob.type.startsWith("application/json"))) {
2923
- blobToText(blob).then(blobText => {
2924
- // Convertible to JSON?
2925
- try {
2926
- JSON.parse(blobText);
2927
- // Yes; reclassify as JSON
2928
- resolve(new Blob([blob], { type: "application/json" }));
2929
- }
2930
- catch (ignored) {
2931
- // Nope; test for ZIP file
2932
- if (blobText.length > 4 &&
2933
- blobText.substr(0, 4) === ZIP_FILE_HEADER_SIGNATURE) {
2934
- // Yes; reclassify as ZIP
2935
- resolve(new Blob([blob], { type: "application/zip" }));
2936
- }
2937
- else if (blobText.startsWith("<")) {
2938
- // Reclassify as XML; since the blob started out as text/plain, it's more likely that is
2939
- // meant to be human-readable, so we'll use text/xml instead of application/xml
2940
- resolve(new Blob([blob], { type: "text/xml" }));
2941
- }
2942
- else {
2943
- // Leave as text
2944
- resolve(blob);
2945
- }
2946
- }
2947
- },
2948
- // Faulty blob
2949
- reject);
2950
- }
2951
- else {
2952
- // Empty or not typed as plain text, so simply return
2953
- if (blob) {
2954
- resolve(blob);
2955
- }
2956
- else {
2957
- reject();
2958
- }
2959
- }
2960
- });
2961
- }
2962
-
2963
- /** @license
2964
- * Copyright 2018 Esri
2965
- *
2966
- * Licensed under the Apache License, Version 2.0 (the "License");
2967
- * you may not use this file except in compliance with the License.
2968
- * You may obtain a copy of the License at
2969
- *
2970
- * http://www.apache.org/licenses/LICENSE-2.0
2971
- *
2972
- * Unless required by applicable law or agreed to in writing, software
2973
- * distributed under the License is distributed on an "AS IS" BASIS,
2974
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2975
- * See the License for the specific language governing permissions and
2976
- * limitations under the License.
2977
- */
2978
- /**
2979
- * Updates an item.
2980
- *
2981
- * @param itemInfo The base info of an item; note that this content will be serialized, which doesn't work
2982
- * for binary content
2983
- * @param authentication Credentials for request
2984
- * @param folderId Item's folder
2985
- * @param additionalParams Updates that are put under the `params` property, which is not serialized
2986
- * @return
2987
- */
2988
- function updateItem(itemInfo, authentication, folderId, additionalParams) {
2989
- return new Promise((resolve, reject) => {
2990
- const updateOptions = {
2991
- item: itemInfo,
2992
- folderId: folderId,
2993
- authentication: authentication,
2994
- params: {
2995
- ...(additionalParams ?? {})
2996
- }
2997
- };
2998
- updateItem$1(updateOptions).then(response => (response.success ? resolve(response) : reject(response)), err => reject(err));
2999
- });
3000
- }
3001
-
3002
- /** @license
3003
- * Copyright 2018 Esri
3004
- *
3005
- * Licensed under the Apache License, Version 2.0 (the "License");
3006
- * you may not use this file except in compliance with the License.
3007
- * You may obtain a copy of the License at
3008
- *
3009
- * http://www.apache.org/licenses/LICENSE-2.0
3010
- *
3011
- * Unless required by applicable law or agreed to in writing, software
3012
- * distributed under the License is distributed on an "AS IS" BASIS,
3013
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3014
- * See the License for the specific language governing permissions and
3015
- * limitations under the License.
3016
- */
3017
- /**
3018
- * A visit flag used in the topological sort algorithm.
3019
- *
3020
- * @private
3021
- */
3022
- var ESortVisitState;
3023
- (function (ESortVisitState) {
3024
- /** not yet visited */
3025
- ESortVisitState[ESortVisitState["NotYetVisited"] = 0] = "NotYetVisited";
3026
- /** visited, in progress */
3027
- ESortVisitState[ESortVisitState["InProgress"] = 1] = "InProgress";
3028
- /** finished */
3029
- ESortVisitState[ESortVisitState["Finished"] = 2] = "Finished"; // BLACK
3030
- })(ESortVisitState || (ESortVisitState = {}));
3031
-
3032
- /** @license
3033
- * Copyright 2020 Esri
3034
- *
3035
- * Licensed under the Apache License, Version 2.0 (the "License");
3036
- * you may not use this file except in compliance with the License.
3037
- * You may obtain a copy of the License at
3038
- *
3039
- * http://www.apache.org/licenses/LICENSE-2.0
3040
- *
3041
- * Unless required by applicable law or agreed to in writing, software
3042
- * distributed under the License is distributed on an "AS IS" BASIS,
3043
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3044
- * See the License for the specific language governing permissions and
3045
- * limitations under the License.
3046
- */
3047
- /**
3048
- * Denotes type information for a SolutionResource
3049
- */
3050
- var SolutionResourceType;
3051
- (function (SolutionResourceType) {
3052
- SolutionResourceType[SolutionResourceType["thumbnail"] = 0] = "thumbnail";
3053
- SolutionResourceType[SolutionResourceType["metadata"] = 1] = "metadata";
3054
- SolutionResourceType[SolutionResourceType["resource"] = 2] = "resource";
3055
- SolutionResourceType[SolutionResourceType["data"] = 3] = "data";
3056
- SolutionResourceType[SolutionResourceType["fakezip"] = 4] = "fakezip";
3057
- SolutionResourceType[SolutionResourceType["info"] = 5] = "info";
3058
- })(SolutionResourceType || (SolutionResourceType = {}));
3059
-
3060
- /** @license
3061
- * Copyright 2020 Esri
3062
- *
3063
- * Licensed under the Apache License, Version 2.0 (the "License");
3064
- * you may not use this file except in compliance with the License.
3065
- * You may obtain a copy of the License at
3066
- *
3067
- * http://www.apache.org/licenses/LICENSE-2.0
3068
- *
3069
- * Unless required by applicable law or agreed to in writing, software
3070
- * distributed under the License is distributed on an "AS IS" BASIS,
3071
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3072
- * See the License for the specific language governing permissions and
3073
- * limitations under the License.
3074
- */
3075
- /**
3076
- * Extracts an item's resource folder and filename from the filename used to store a copy in a storage item.
3077
- *
3078
- * @param storageResourceFilename Filename used to store the resource, metadata, or thumbnail of an item
3079
- * @param storageVersion Version of the Solution template
3080
- * @returns Folder and filename for storing information in an item, as well as the type (resource, metadata,
3081
- * or thumbnail) of the information; the folder property is only meaningful for the resource type
3082
- * @see generateResourceStorageFilename
3083
- * @see generateMetadataStorageFilename
3084
- * @see generateThumbnailStorageFilename
3085
- * @see convertItemResourceToStorageResource
3086
- */
3087
- function convertStorageResourceToItemResource(storageResourceFilename, storageVersion = 0) {
3088
- const nameParts = storageResourceFilename.split("/");
3089
- let filename = nameParts.pop();
3090
- let folder = "";
3091
- const firstPrefixPart = nameParts.shift(); // undefined if there's no folder
3092
- // Handle special "folders"
3093
- let type = exports.EFileType.Resource;
3094
- if (firstPrefixPart) {
3095
- if (firstPrefixPart.endsWith("_info_thumbnail")) {
3096
- type = exports.EFileType.Thumbnail;
3097
- }
3098
- else if (firstPrefixPart.endsWith("_info_metadata")) {
3099
- type = exports.EFileType.Metadata;
3100
- filename = "metadata.xml";
3101
- }
3102
- else if (firstPrefixPart.endsWith("_info_data")) {
3103
- type = exports.EFileType.Data;
3104
- }
3105
- else if (firstPrefixPart.endsWith("_info_dataz")) {
3106
- filename = filename.replace(/\.zip$/, "");
3107
- type = exports.EFileType.Data;
3108
- // Otherwise, strip off item id
3109
- }
3110
- else if (storageVersion < 1) {
3111
- // Version 0
3112
- const folderStart = firstPrefixPart.indexOf("_");
3113
- if (folderStart > 0) {
3114
- folder = firstPrefixPart.substr(folderStart + 1);
3115
- }
3116
- }
3117
- else {
3118
- // Version ≥ 1
3119
- folder = nameParts.join("/"); // folder is optional, in which case this will be ""
3120
- }
3121
- }
3122
- return { type, folder, filename };
3123
- }
3124
-
3125
- /** @license
3126
- * Copyright 2021 Esri
3127
- *
3128
- * Licensed under the Apache License, Version 2.0 (the "License");
3129
- * you may not use this file except in compliance with the License.
3130
- * You may obtain a copy of the License at
3131
- *
3132
- * http://www.apache.org/licenses/LICENSE-2.0
3133
- *
3134
- * Unless required by applicable law or agreed to in writing, software
3135
- * distributed under the License is distributed on an "AS IS" BASIS,
3136
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3137
- * See the License for the specific language governing permissions and
3138
- * limitations under the License.
3139
- */
3140
- // ------------------------------------------------------------------------------------------------------------------ //
3141
- /**
3142
- * Generates IAssociatedFileCopyResults object.
3143
- *
3144
- * @param fileInfo Info about item that was to be copied
3145
- * @param fetchedFromSource Status of fetching item from source
3146
- * @param copiedToDestination Status of copying item to destination
3147
- * @returns IAssociatedFileCopyResults object
3148
- */
3149
- function createCopyResults(fileInfo, fetchedFromSource, copiedToDestination) {
3150
- return {
3151
- ...fileInfo,
3152
- fetchedFromSource,
3153
- copiedToDestination
3154
- };
3155
- }
3156
-
3157
- /** @license
3158
- * Copyright 2021 Esri
3159
- *
3160
- * Licensed under the Apache License, Version 2.0 (the "License");
3161
- * you may not use this file except in compliance with the License.
3162
- * You may obtain a copy of the License at
3163
- *
3164
- * http://www.apache.org/licenses/LICENSE-2.0
3165
- *
3166
- * Unless required by applicable law or agreed to in writing, software
3167
- * distributed under the License is distributed on an "AS IS" BASIS,
3168
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3169
- * See the License for the specific language governing permissions and
3170
- * limitations under the License.
3171
- */
3172
- // ------------------------------------------------------------------------------------------------------------------ //
3173
- /**
3174
- * Copies a resource into a zipfile.
3175
- *
3176
- * @param file Information about the source and destination of the file such as its URL, folder, filename
3177
- * @param zipInfo Information about a zipfile such as its name and its zip object
3178
- * @returns The result of the copy
3179
- */
3180
- function copyResourceIntoZip(file, zipInfo) {
3181
- // Add it to the zip
3182
- if (file.folder) {
3183
- zipInfo.zip
3184
- .folder(file.folder)
3185
- .file(file.filename, file.file, { binary: true });
3186
- }
3187
- else {
3188
- zipInfo.zip.file(file.filename, file.file, { binary: true });
3189
- }
3190
- zipInfo.filelist.push(file);
3191
- return createCopyResults(file, true);
3192
- }
3193
-
3194
- /** @license
3195
- * Copyright 2021 Esri
3196
- *
3197
- * Licensed under the Apache License, Version 2.0 (the "License");
3198
- * you may not use this file except in compliance with the License.
3199
- * You may obtain a copy of the License at
3200
- *
3201
- * http://www.apache.org/licenses/LICENSE-2.0
3202
- *
3203
- * Unless required by applicable law or agreed to in writing, software
3204
- * distributed under the License is distributed on an "AS IS" BASIS,
3205
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3206
- * See the License for the specific language governing permissions and
3207
- * limitations under the License.
3208
- */
3209
- // ------------------------------------------------------------------------------------------------------------------ //
3210
- /**
3211
- * Copies a zipfile into an AGO item.
3212
- *
3213
- * @param zipInfo Information about a zipfile such as its name and its zip object
3214
- * @param destinationItemId Id of item to receive copy of resource/metadata/thumbnail
3215
- * @param destinationAuthentication Credentials for the request to the storage
3216
- * @returns A promise which resolves to the result of the copy
3217
- */
3218
- function copyZipIntoItem(zipInfo, destinationItemId, destinationAuthentication) {
3219
- return new Promise(resolve => {
3220
- zipInfo.zip
3221
- .generateAsync({ type: "blob" })
3222
- .then((content) => {
3223
- return blobToFile(content, zipInfo.filename, "application/zip");
3224
- })
3225
- .then((zipfile) => {
3226
- const addResourceOptions = {
3227
- id: destinationItemId,
3228
- resource: zipfile,
3229
- authentication: destinationAuthentication,
3230
- params: {
3231
- archive: true
3232
- }
3233
- };
3234
- return addItemResource(addResourceOptions);
3235
- })
3236
- .then(() => resolve(createCopyResults(zipInfo, true, true)), () => resolve(createCopyResults(zipInfo, true, false)) // unable to add resource
3237
- );
3238
- });
3239
- }
3240
-
3241
- /** @license
3242
- * Copyright 2021 Esri
3243
- *
3244
- * Licensed under the Apache License, Version 2.0 (the "License");
3245
- * you may not use this file except in compliance with the License.
3246
- * You may obtain a copy of the License at
3247
- *
3248
- * http://www.apache.org/licenses/LICENSE-2.0
3249
- *
3250
- * Unless required by applicable law or agreed to in writing, software
3251
- * distributed under the License is distributed on an "AS IS" BASIS,
3252
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3253
- * See the License for the specific language governing permissions and
3254
- * limitations under the License.
3255
- */
3256
- // ------------------------------------------------------------------------------------------------------------------ //
3257
- /**
3258
- * Copies the files for storing the resources, metadata, and thumbnail of an item or group to a storage item
3259
- * with a specified path by collecting files into zip files.
3260
- *
3261
- * @param files List of item files' URLs and folder/filenames for storing the files
3262
- * @param destinationItemId Id of item to receive copy of resource/metadata/thumbnail
3263
- * @param destinationAuthentication Credentials for the request to the storage
3264
- * @param filesPerZip Number of files to include per zip file; AGO limits zips to 50 files
3265
- * @returns A promise which resolves to a list of the result of the copies
3266
- */
3267
- function copyFilesAsResources(files, destinationItemId, destinationAuthentication, filesPerZip = 40) {
3268
- return new Promise(resolve => {
3269
- let awaitAllItems = [];
3270
- const zipInfos = [];
3271
- if (files.length > 0) {
3272
- // Bundle the resources into chunked zip updates because AGO tends to have problems with
3273
- // many updates in a row to the same item: it claims success despite randomly failing.
3274
- // Note that AGO imposes a limit of 50 files per zip, so we break the list of resource
3275
- // file info into chunks below this threshold and start a zip for each
3276
- // https://developers.arcgis.com/rest/users-groups-and-items/add-resources.htm
3277
- const chunkedResourceFiles = chunkArray(files, filesPerZip);
3278
- chunkedResourceFiles.forEach((chunk, index) => {
3279
- // Create a zip for this chunk
3280
- const zipInfo = {
3281
- filename: `resources${index}.zip`,
3282
- zip: new jszip_min(),
3283
- filelist: []
3284
- };
3285
- awaitAllItems = awaitAllItems.concat(chunk.map(file => copyResourceIntoZip(file, zipInfo)));
3286
- zipInfos.push(zipInfo);
3287
- });
3288
- }
3289
- if (awaitAllItems.length > 0) {
3290
- // Wait until the Resource zip file(s) are prepared
3291
- void Promise.all(awaitAllItems).then((results) => {
3292
- // We have three types of results:
3293
- // | fetchedFromSource | copiedToDestination | interpretation | |
3294
- // +-------------------+---------------------+------------------------------------------------+
3295
- // | false | * | could not fetch file from source |
3296
- // | true | true | file has been fetched and sent to AGO |
3297
- // | true | undefined | file has been fetched and will be sent via zip |
3298
- // Filter out copiedToDestination===undefined; we'll get their status when we send their zip
3299
- results = results.filter((result) => !(result.fetchedFromSource &&
3300
- typeof result.copiedToDestination === "undefined"));
3301
- // Now send the resources to AGO
3302
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
3303
- _copyAssociatedFileZips(zipInfos, destinationItemId, destinationAuthentication).then((zipResults) => {
3304
- resolve(results.concat(zipResults));
3305
- });
3306
- });
3307
- }
3308
- else {
3309
- // No data, metadata, or resources to send; we're done
3310
- resolve([]);
3311
- }
3312
- });
3313
- }
3314
- /**
3315
- * Copies one or more zipfiles to a storage item.
3316
- *
3317
- * @param zipInfos List of zip files containing files to store
3318
- * @param destinationItemId Id of item to receive copy of resource/metadata/thumbnail
3319
- * @param destinationAuthentication Credentials for the request to the storage
3320
- * @returns A promise which resolves to a list of the result of the copies
3321
- * @private
3322
- */
3323
- function _copyAssociatedFileZips(zipInfos, destinationItemId, destinationAuthentication) {
3324
- return new Promise(resolve => {
3325
- const results = [];
3326
- // Filter out empty zips, which can happen when none of the files in the chunk going into a zip
3327
- // can be fetched; e.g., the only file is metadata.xml, and the source item doesn't have metadata
3328
- const nonEmptyZipInfos = zipInfos.filter((zipInfo) => Object.keys(zipInfo.zip.files).length > 0);
3329
- if (nonEmptyZipInfos.length > 0) {
3330
- // Send the zip(s) to AGO
3331
- void _sendZipsSeriallyToItem(nonEmptyZipInfos, destinationItemId, destinationAuthentication).then((zipResults) => {
3332
- resolve(zipResults);
3333
- });
3334
- }
3335
- else {
3336
- // No resources to send; we're done
3337
- resolve(results);
3338
- }
3339
- });
3340
- }
3341
- /**
3342
- * Copies one or more zipfiles to a storage item in a serial fashion, waiting a bit between sends.
3343
- *
3344
- * @param zipInfos List of zip files containing files to store
3345
- * @param destinationItemId Id of item to receive copy of resource/metadata/thumbnail
3346
- * @param destinationAuthentication Credentials for the request to the storage
3347
- * @returns A promise which resolves to a list of the result of the copies
3348
- */
3349
- function _sendZipsSeriallyToItem(zipInfos, destinationItemId, destinationAuthentication) {
3350
- return new Promise(resolve => {
3351
- let allResults = [];
3352
- // Remove zip from bottom of list
3353
- const zipInfoToSend = zipInfos.pop();
3354
- // Send predecessors in list
3355
- let sendOthersPromise = Promise.resolve([]);
3356
- if (zipInfos.length > 0) {
3357
- sendOthersPromise = _sendZipsSeriallyToItem(zipInfos, destinationItemId, destinationAuthentication);
3358
- }
3359
- void sendOthersPromise
3360
- .then((response) => {
3361
- allResults = response;
3362
- // Stall a little to give AGO time to catch up
3363
- return new Promise(resolveSleep => {
3364
- setTimeout(() => resolveSleep(), 1000);
3365
- });
3366
- })
3367
- .then(() => {
3368
- // Now send the zip removed from bottom of the input list
3369
- return copyZipIntoItem(zipInfoToSend, destinationItemId, destinationAuthentication);
3370
- })
3371
- .then((zipResult) => {
3372
- // Save the result of copying this zip as a status for each of the files that it contains
3373
- zipResult.filelist.forEach((fileInfo) => {
3374
- allResults.push(createCopyResults(fileInfo, true, zipResult.copiedToDestination));
3375
- });
3376
- resolve(allResults);
3377
- });
3378
- });
3379
- }
3380
-
3381
- /** @license
3382
- * Copyright 2018 Esri
3383
- *
3384
- * Licensed under the Apache License, Version 2.0 (the "License");
3385
- * you may not use this file except in compliance with the License.
3386
- * You may obtain a copy of the License at
3387
- *
3388
- * http://www.apache.org/licenses/LICENSE-2.0
3389
- *
3390
- * Unless required by applicable law or agreed to in writing, software
3391
- * distributed under the License is distributed on an "AS IS" BASIS,
3392
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3393
- * See the License for the specific language governing permissions and
3394
- * limitations under the License.
3395
- */
3396
- /**
3397
- * Copies the files for storing the resources, metadata, and thumbnail of an item or group to a storage item
3398
- * with a specified path.
3399
- *
3400
- * @param files List of item files and paths for storing the files
3401
- * @param storageItemId Id of item to receive copy of resource/metadata
3402
- * @param storageAuthentication Credentials for the request to the storage
3403
- * @returns A promise which resolves to a list of the filenames under which the resource/metadata are stored
3404
- */
3405
- function copyFilesToStorageItem(files, storageItemId, storageAuthentication) {
3406
- return new Promise(resolve => {
3407
- // tslint:disable-next-line: no-floating-promises
3408
- void copyFilesAsResources(files, storageItemId, storageAuthentication).then((results) => {
3409
- resolve(results
3410
- // Filter out failures
3411
- .filter((result) => result.fetchedFromSource && result.copiedToDestination)
3412
- // Return folder and filename in storage item's resources
3413
- .map((result) => result.folder + "/" + result.filename));
3414
- });
3415
- });
3416
- }
3417
- /**
3418
- * Generates the URL for reading an item's resource given the filename of the resource.
3419
- *
3420
- * @param sourcePortalSharingUrl Server/sharing
3421
- * @param itemId Id of item
3422
- * @param sourceResourceFilename Either filename or folder/filename to resource
3423
- * @returns URL string
3424
- */
3425
- function generateSourceResourceUrl(sourcePortalSharingUrl, itemId, sourceResourceFilename) {
3426
- return (checkUrlPathTermination(sourcePortalSharingUrl) +
3427
- "content/items/" +
3428
- itemId +
3429
- "/resources/" +
3430
- sourceResourceFilename);
3431
- }
3432
- /**
3433
- * Generates a list of full URLs and folder/filename combinations used to store the resources, metadata,
3434
- * and thumbnail of an item.
3435
- *
3436
- * @param portalSharingUrl Server/sharing
3437
- * @param storageItemId Id of storage item
3438
- * @param resourceFilenames List of resource filenames for an item, e.g., ["file1", "myFolder/file2"]
3439
- * @param storageVersion Version of the Solution template
3440
- * @returns List of item files' URLs and folder/filenames for storing the files
3441
- */
3442
- function generateStorageFilePaths(portalSharingUrl, storageItemId, resourceFilenames = [], storageVersion = 0) {
3443
- return resourceFilenames.map(resourceFilename => {
3444
- return {
3445
- url: generateSourceResourceUrl(portalSharingUrl, storageItemId, resourceFilename),
3446
- ...convertStorageResourceToItemResource(resourceFilename, storageVersion)
3447
- };
3448
- });
3449
- }
3450
- function isSupportedFileType(filename) {
3451
- // Supported file formats are: .json, .xml, .txt, .png, .pbf, .zip, .jpeg, .jpg, .gif, .bmp, .gz, .svg,
3452
- // .svgz, .geodatabase (https://developers.arcgis.com/rest/users-groups-and-items/add-resources.htm)
3453
- const filenameExtension = filename.match(/\.([a-z]+)$/i);
3454
- const supportedExtensions = "|.json|.xml|.txt|.png|.pbf|.zip|.jpeg|.jpg|.gif|.bmp|.gz|.svg|.svgz|.geodatabase|";
3455
- return (!!filenameExtension &&
3456
- supportedExtensions.indexOf("|" + filenameExtension[0] + "|") >= 0);
3457
- }
3458
- /**
3459
- * Gets the thumbnail of an item or group.
3460
- *
3461
- * @param authentication Credentials for the request to the storage
3462
- * @param filePaths List of item files' URLs and folder/filenames for storing the files
3463
- * @returns A promise which resolves to a boolean indicating if the copies were successful
3464
- */
3465
- function getThumbnailFromStorageItem(authentication, filePaths) {
3466
- let thumbnailUrl;
3467
- let thumbnailFilename;
3468
- filePaths.forEach(path => {
3469
- if (path.type === exports.EFileType.Thumbnail) {
3470
- thumbnailUrl = path.url;
3471
- thumbnailFilename = path.filename;
3472
- }
3473
- });
3474
- if (!thumbnailUrl) {
3475
- return Promise.resolve(null);
3476
- }
3477
- return getThumbnailFile(thumbnailUrl, thumbnailFilename, authentication);
3478
- }
3479
- /**
3480
- * Removes the item's resource that matches the filename with new content
3481
- *
3482
- * @param itemId Id of the item to remove
3483
- * @param filename Name of the resource file to remove
3484
- * @param authentication Credentials for the request to the storage
3485
- * @returns A promise which resolves with a success true/false response
3486
- */
3487
- function removeItemResourceFile(itemId, filename, authentication) {
3488
- return removeItemResource({
3489
- id: itemId,
3490
- resource: filename,
3491
- authentication: authentication
3492
- });
3493
- }
3494
- /**
3495
- * Updates the item's resource that matches the filename with new content
3496
- *
3497
- * @param itemId Id of the item to update
3498
- * @param filename Name of the resource file to update; prefix optional (e.g., a/b/file.txt)
3499
- * @param resource The new content to update the resource with
3500
- * @param authentication Credentials for the request to the storage
3501
- * @returns A promise which resolves with a success true/false response
3502
- */
3503
- function updateItemResourceFile(itemId, filename, resource, authentication) {
3504
- // Prefix has to be specified separately
3505
- const prefixedFilenameParts = filename.split("/");
3506
- const prefix = prefixedFilenameParts.length > 1 ? prefixedFilenameParts.slice(0, prefixedFilenameParts.length - 1).join("/") : undefined;
3507
- const suffix = prefixedFilenameParts[prefixedFilenameParts.length - 1];
3508
- return updateItemResource({
3509
- id: itemId,
3510
- prefix: prefix,
3511
- name: suffix,
3512
- resource,
3513
- authentication: authentication
3514
- });
3515
- }
3516
-
3517
- /** @license
3518
- * Copyright 2022 Esri
3519
- *
3520
- * Licensed under the Apache License, Version 2.0 (the "License");
3521
- * you may not use this file except in compliance with the License.
3522
- * You may obtain a copy of the License at
3523
- *
3524
- * http://www.apache.org/licenses/LICENSE-2.0
3525
- *
3526
- * Unless required by applicable law or agreed to in writing, software
3527
- * distributed under the License is distributed on an "AS IS" BASIS,
3528
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3529
- * See the License for the specific language governing permissions and
3530
- * limitations under the License.
3531
- */
3532
- const EmptySolutionStore = {
3533
- solutionItemId: "",
3534
- defaultWkid: undefined,
3535
- solutionData: { metadata: {}, templates: [] },
3536
- templateEdits: {},
3537
- featureServices: [],
3538
- spatialReferenceInfo: {
3539
- enabled: false,
3540
- services: {},
3541
- spatialReference: undefined
3542
- }
3543
- };
3544
- class SolutionStore {
3545
- /**
3546
- * Creates singleton instance when accessed; default export from module.
3547
- *
3548
- * @returns Static instance of the class
3549
- */
3550
- static get Store() {
3551
- return this._instance || (this._instance = new this());
3552
- }
3553
- /**
3554
- * Creates an empty store.
3555
- *
3556
- * @protected
3557
- */
3558
- constructor() {
3559
- this._hasChanges = false;
3560
- this._store = index.createStore(Object.assign({}, EmptySolutionStore));
3561
- }
3562
- /**
3563
- * Returns the stored information of an item.
3564
- *
3565
- * @param itemId Id of item to fetch
3566
- *
3567
- * @returns Item information or `undefined` if not found
3568
- */
3569
- getItemInfo(itemId) {
3570
- const templates = this._store.get("solutionData").templates;
3571
- let template;
3572
- templates.some((t) => {
3573
- if (itemId == t.itemId) {
3574
- template = t;
3575
- return true;
3576
- }
3577
- return false;
3578
- });
3579
- return template;
3580
- }
3581
- /**
3582
- * Returns a top-level store property: solutionItemId, defaultWkid, etc.
3583
- *
3584
- * @param propName Name of property
3585
- *
3586
- * @returns Value of property
3587
- */
3588
- getStoreInfo(propName) {
3589
- return this._store.get(propName);
3590
- }
3591
- /**
3592
- * Loads a Solution into the store from AGO.
3593
- *
3594
- * @param solutionItemId Id of the solution represented in the store
3595
- * @param authentication Credentials for fetching information to be loaded into the store
3596
- *
3597
- * @returns Promise that resolves when task is done
3598
- */
3599
- async loadSolution(solutionItemId, authentication) {
3600
- this._authentication = authentication;
3601
- const solutionData = await getItemDataAsJson(solutionItemId, authentication);
3602
- if (solutionData) {
3603
- const defaultWkid = getProp(solutionData, "params.wkid.default");
3604
- await this._prepareSolutionItemsForEditing(solutionItemId, solutionData.templates, authentication);
3605
- const featureServices = this._getFeatureServices(solutionData.templates);
3606
- const spatialReferenceInfo = this._getSpatialReferenceInfo(featureServices, defaultWkid);
3607
- this._store.set("solutionItemId", solutionItemId);
3608
- this._store.set("defaultWkid", defaultWkid);
3609
- this._store.set("solutionData", solutionData);
3610
- this._store.set("featureServices", featureServices);
3611
- this._store.set("spatialReferenceInfo", spatialReferenceInfo);
3612
- }
3613
- this._flagStoreHasChanges(false);
3614
- }
3615
- /**
3616
- * Queues the replacement of the thumbnail associated with a template item in the store.
3617
- *
3618
- * @param itemEdit Details of the template to modify, containing the new thumbnail in the `thumbnail`
3619
- * property
3620
- */
3621
- replaceItemThumbnail(itemEdit) {
3622
- // Flag the current thumbnail and any replacements for removal
3623
- itemEdit.resourceFilePaths.forEach((path) => {
3624
- if (path.type === exports.EFileType.Thumbnail) {
3625
- if (path.updateType === interfaces.EUpdateType.None) {
3626
- // Existing thumbnail not yet flagged for removal
3627
- path.updateType = interfaces.EUpdateType.Remove;
3628
- }
3629
- else if (path.updateType === interfaces.EUpdateType.Add || path.updateType === interfaces.EUpdateType.Update) {
3630
- // An earlier replacement
3631
- path.updateType = interfaces.EUpdateType.Obsolete;
3632
- }
3633
- }
3634
- });
3635
- // Remove any replacements already queued
3636
- itemEdit.resourceFilePaths =
3637
- itemEdit.resourceFilePaths.filter((path) => path.updateType != interfaces.EUpdateType.Obsolete);
3638
- // Add the new thumbnail to the store item
3639
- itemEdit.resourceFilePaths.push({
3640
- blob: itemEdit.thumbnail,
3641
- filename: itemEdit.thumbnail.name,
3642
- type: exports.EFileType.Thumbnail,
3643
- updateType: interfaces.EUpdateType.Add
3644
- });
3645
- // Update the store
3646
- this.setItemInfo(itemEdit);
3647
- }
3648
- /**
3649
- * Writes a Solution into AGO from the store. Must use `loadSolution` to continue with solution.
3650
- *
3651
- * @returns Promise that resolves when task is done
3652
- */
3653
- async saveSolution() {
3654
- // Update the templates in the original solution item data
3655
- const solutionItemId = this._store.get("solutionItemId");
3656
- const solutionData = this._store.get("solutionData");
3657
- const spatialReferenceInfo = this._store.get("spatialReferenceInfo");
3658
- await this._prepareSolutionItemsForStorage(solutionItemId, solutionData.templates, this._authentication);
3659
- const updatedDefaultWkid = this._setSpatialReferenceInfo(spatialReferenceInfo, solutionData.templates);
3660
- if (updatedDefaultWkid) {
3661
- setCreateProp(solutionData, "params.wkid", {
3662
- "label": "Spatial Reference",
3663
- "default": updatedDefaultWkid,
3664
- "valueType": "spatialReference",
3665
- "attributes": {
3666
- "required": "true"
3667
- }
3668
- });
3669
- }
3670
- else {
3671
- setCreateProp(solutionData, "params.wkid", {});
3672
- }
3673
- const itemInfo = {
3674
- id: solutionItemId,
3675
- text: solutionData
3676
- };
3677
- await updateItem(itemInfo, this._authentication);
3678
- }
3679
- /**
3680
- * Stores information for item.
3681
- *
3682
- * @param itemEdit Item information
3683
- */
3684
- setItemInfo(itemEdit) {
3685
- const solutionData = this._store.get("solutionData");
3686
- const templates = solutionData.templates;
3687
- templates.some((t) => {
3688
- if (itemEdit.itemId == t.itemId) {
3689
- t = itemEdit;
3690
- this._store.set("solutionData", solutionData);
3691
- this._flagStoreHasChanges(true);
3692
- return true;
3693
- }
3694
- return false;
3695
- });
3696
- }
3697
- /**
3698
- * Sets a top-level store property: solutionItemId, defaultWkid, etc.
3699
- *
3700
- * @param propName Name of property
3701
- * @param value Value of property
3702
- */
3703
- setStoreInfo(propName, value) {
3704
- this._store.set(propName, value);
3705
- this._flagStoreHasChanges(true);
3706
- }
3707
- //------------------------------------------------------------------------------------------------------------------//
3708
- /** Provides access to protected methods for unit testing.
3709
- *
3710
- * @param methodName Name of protected method to run
3711
- * @param arg1 First argument to forward to method, e.g., for "_prepareSolutionItemsForEditing", `solutionItemId`
3712
- * @param arg2 Second argument to forward to method, e.g., for "_prepareSolutionItemsForEditing", `templates`
3713
- * @param arg3 Third argument to forward to method, e.g., for "_prepareSolutionItemsForEditing", `authentication`
3714
- *
3715
- * @returns
3716
- */
3717
- _testAccess(methodName, arg1, arg2, arg3) {
3718
- switch (methodName) {
3719
- case "_emptyTheStore":
3720
- this._emptyTheStore();
3721
- break;
3722
- case "_getFeatureServices":
3723
- return this._getFeatureServices(arg1);
3724
- case "_getItemsSharedWithThisGroup":
3725
- return this._getItemsSharedWithThisGroup(arg1, arg2);
3726
- case "_getResourceFilePaths":
3727
- return this._getResourceFilePaths(arg1, arg2, arg3);
3728
- case "_getResourceStorageName":
3729
- return this._getResourceStorageName(arg1, arg2);
3730
- case "_getSpatialReferenceInfo":
3731
- return this._getSpatialReferenceInfo(arg1, arg2);
3732
- case "_prepareSolutionItemsForEditing":
3733
- return this._prepareSolutionItemsForEditing(arg1, arg2, arg3);
3734
- case "_prepareSolutionItemsForStorage":
3735
- return this._prepareSolutionItemsForStorage(arg1, arg2, arg3);
3736
- case "_setSpatialReferenceInfo":
3737
- return this._setSpatialReferenceInfo(arg1, arg2);
3738
- case "_splitFilename":
3739
- return this._splitFilename(arg1);
3740
- }
3741
- return null;
3742
- }
3743
- /**
3744
- * Returns the store to the empty state.
3745
- *
3746
- * @protected
3747
- */
3748
- _emptyTheStore() {
3749
- this._store.set("solutionItemId", EmptySolutionStore.solutionItemId);
3750
- this._store.set("defaultWkid", EmptySolutionStore.defaultWkid);
3751
- this._store.set("solutionData", EmptySolutionStore.solutionData);
3752
- this._store.set("templateEdits", EmptySolutionStore.templateEdits);
3753
- this._store.set("featureServices", EmptySolutionStore.featureServices);
3754
- this._store.set("spatialReferenceInfo", EmptySolutionStore.spatialReferenceInfo);
3755
- }
3756
- /**
3757
- * Sets the store's flag indicating if it has changes and dispatches an event when
3758
- * the flag value changes.
3759
- *
3760
- * @param flagHasChanges Current state of change in the store; if it doesn't match the value saved in this
3761
- * object, an event is dispatched with the new value and the saved value is updated
3762
- *
3763
- * @protected
3764
- */
3765
- _flagStoreHasChanges(flagHasChanges) {
3766
- // Event for notifying if the store has changes or not
3767
- if (this._hasChanges !== flagHasChanges) {
3768
- window.dispatchEvent(new CustomEvent("solutionStoreHasChanges", {
3769
- detail: flagHasChanges,
3770
- bubbles: true,
3771
- cancelable: false,
3772
- composed: true
3773
- }));
3774
- }
3775
- this._hasChanges = flagHasChanges;
3776
- }
3777
- /**
3778
- * Gets a list of Feature Services that are not views.
3779
- *
3780
- * @param templates A list of item templates from the solution
3781
- *
3782
- * @returns a list of feature services
3783
- *
3784
- * @protected
3785
- */
3786
- _getCustomizableFeatureServices(templates) {
3787
- return templates.reduce((prev, cur) => {
3788
- if (cur.type === "Feature Service" && cur.item.typeKeywords.indexOf("View Service") < 0) {
3789
- prev.push(cur);
3790
- }
3791
- return prev;
3792
- }, []);
3793
- }
3794
- /**
3795
- * Gets a list of Feature Services that are not views along with an enabled property that indicates
3796
- * if the service currently uses a spatial reference variable.
3797
- *
3798
- * @param templates A list of item templates from the solution
3799
- *
3800
- * @returns a list of feature service names and an enabled property to indicate
3801
- * if they currently use a spatial reference variable.
3802
- *
3803
- * @protected
3804
- */
3805
- _getFeatureServices(templates) {
3806
- const customizeableFeatureServices = this._getCustomizableFeatureServices(templates);
3807
- return customizeableFeatureServices.map((fs) => {
3808
- const name = fs.item.title || fs.item.name;
3809
- const wkid = getProp(fs, "properties.service.spatialReference.wkid");
3810
- return { name, enabled: wkid.toString().startsWith("{{params.wkid||") };
3811
- });
3812
- }
3813
- /**
3814
- * Capture the key item details for a given group template
3815
- *
3816
- * @param template one of the templates from the current solution
3817
- * @param templates full list of templates
3818
- *
3819
- * @returns a list of IItemShare objects
3820
- *
3821
- * @protected
3822
- */
3823
- _getItemsSharedWithThisGroup(template, templates) {
3824
- return templates.reduce((prev, cur) => {
3825
- if (cur.itemId !== template.itemId && cur.type !== "Group") {
3826
- prev.push({
3827
- id: cur.itemId,
3828
- title: cur.item.name || cur.item.title,
3829
- isShared: (cur.groups || []).indexOf(template.itemId) > -1,
3830
- shareItem: (cur.groups || []).indexOf(template.itemId) > -1,
3831
- type: cur.type,
3832
- typeKeywords: cur.item.typeKeywords
3833
- });
3834
- }
3835
- return prev;
3836
- }, []);
3837
- }
3838
- /**
3839
- * Generate storage file paths from the solution template
3840
- *
3841
- * @param solutionId the id of the current solution
3842
- * @param template the current template from the solution
3843
- * @param portal Portal where file is to be found
3844
- *
3845
- * @returns a list of resource file infos
3846
- *
3847
- * @protected
3848
- */
3849
- _getResourceFilePaths(solutionId, template, portal) {
3850
- const resourceFilePaths = generateStorageFilePaths(portal, solutionId, template.resources, SolutionTemplateFormatVersion);
3851
- return resourceFilePaths.map((fp) => {
3852
- fp.updateType = interfaces.EUpdateType.None;
3853
- return fp;
3854
- });
3855
- }
3856
- /**
3857
- * Generates a resource name from a storage file path.
3858
- *
3859
- * @param templateItemId The id of the template item whose resource this is; used as a prefix in the resource name
3860
- * @param resourcePath Resource file infos
3861
- *
3862
- * @returns The resource name to use when attaching a resource to the item.
3863
- *
3864
- * @protected
3865
- */
3866
- _getResourceStorageName(templateItemId, resourcePath) {
3867
- /* Converts
3868
- {
3869
- "url": "https://myorg.maps.arcgis.com/sharing/rest/content/items/ca924c6db7d247b9a31fa30532fb5913/resources/79036430a6274e17ae915d0278b8569c_info_metadata/metadata.xml",
3870
- "type": 2,
3871
- "folder": "",
3872
- "filename": "metadata.xml",
3873
- "updateType": 3
3874
- }
3875
- to
3876
- ca924c6db7d247b9a31fa30532fb5913_info_metadata/metadata.xml
3877
- */
3878
- let prefix = templateItemId;
3879
- switch (resourcePath.type) {
3880
- case exports.EFileType.Data:
3881
- prefix = `${prefix}_info_data`;
3882
- break;
3883
- case exports.EFileType.Info:
3884
- prefix = `${prefix}_info`;
3885
- break;
3886
- case exports.EFileType.Metadata:
3887
- prefix = `${prefix}_info_metadata`;
3888
- break;
3889
- case exports.EFileType.Resource:
3890
- break;
3891
- case exports.EFileType.Thumbnail:
3892
- prefix = `${prefix}_info_thumbnail`;
3893
- break;
3894
- }
3895
- let filenameToUse = resourcePath.filename;
3896
- if (resourcePath.type == exports.EFileType.Data && filenameToUse && !isSupportedFileType(filenameToUse)) {
3897
- filenameToUse = filenameToUse + ".zip";
3898
- prefix += "z";
3899
- }
3900
- const filename = resourcePath.folder ? resourcePath.folder + "/" + filenameToUse : filenameToUse;
3901
- return prefix + "/" + filename;
3902
- }
3903
- /**
3904
- * Extracts basic spatial reference information that is used to determine if a custom spatial reference parameter will
3905
- * be exposed while deploying this solution and if so what feature services will support it and what will the default wkid be
3906
- *
3907
- * @param services a list of objects with service name and enabled property (indicates if they currently use a spatial reference var)
3908
- * @param data the data object of a solution item
3909
- *
3910
- * @returns an object that stores if a custom spatial reference parameter is enabled/disabled,
3911
- * a list of services and if they are enabled/disabled, and the default wkid
3912
- *
3913
- * @protected
3914
- */
3915
- _getSpatialReferenceInfo(services, defaultWkid) {
3916
- const defaultServices = {};
3917
- services.forEach(service => {
3918
- defaultServices[service.name] = service.enabled;
3919
- });
3920
- return {
3921
- enabled: defaultWkid !== undefined,
3922
- services: defaultServices,
3923
- spatialReference: defaultWkid ? defaultWkid : undefined
3924
- };
3925
- }
3926
- /**
3927
- * Create and store template items for the editor.
3928
- *
3929
- * @param solutionItemId Id of the solution represented in the store
3930
- * @param templates A list of item templates from the solution
3931
- * @param authentication Credentials for fetching information to be loaded into the store
3932
- *
3933
- * @returns a promise that resolves when the templates are ready
3934
- *
3935
- * @protected
3936
- */
3937
- async _prepareSolutionItemsForEditing(solutionItemId, templates, authentication) {
3938
- const thumbnailPromises = [];
3939
- // Augment the template with paths to resources and group information, if relevant
3940
- templates.forEach((t) => {
3941
- t.resourceFilePaths = this._getResourceFilePaths(solutionItemId, t, authentication.portal);
3942
- thumbnailPromises.push(t.resourceFilePaths.length > 0 ?
3943
- getThumbnailFromStorageItem(authentication, t.resourceFilePaths) :
3944
- Promise.resolve());
3945
- t.groupDetails = t.type === "Group" ? this._getItemsSharedWithThisGroup(t, templates) : [];
3946
- });
3947
- // Augment the template with its thumbnail file
3948
- const thumbnails = await Promise.all(thumbnailPromises);
3949
- templates.forEach((t, i) => {
3950
- t.thumbnail = thumbnails[i] ? thumbnails[i] : undefined;
3951
- });
3952
- return Promise.resolve();
3953
- }
3954
- /**
3955
- * Prepares template items for sending to AGO by updating the resources held by the solution item.
3956
- *
3957
- * @param solutionItemId Id of the solution represented in the store
3958
- * @param templates A list of item templates from the solution
3959
- * @param authentication Credentials for fetching information to be loaded into the store
3960
- *
3961
- * @returns a promise that resolves when the templates are ready
3962
- *
3963
- * @protected
3964
- */
3965
- async _prepareSolutionItemsForStorage(solutionItemId, templates, authentication) {
3966
- const resourceAdds = [];
3967
- // Update the resources and remove the augmentation from a template
3968
- const pendingTasks = [];
3969
- templates.forEach((t) => {
3970
- // Run through the resourceFilePaths for the item seeking modifications to be made to the solution item's
3971
- // collection of resources; queue them for batching
3972
- // eslint-disable-next-line @typescript-eslint/no-misused-promises
3973
- t.resourceFilePaths.forEach(async (path) => {
3974
- const storageName = this._getResourceStorageName(t.itemId, path);
3975
- switch (path.updateType) {
3976
- case interfaces.EUpdateType.Add:
3977
- const { prefix, suffix } = this._splitFilename(storageName);
3978
- t.resources.push(storageName);
3979
- resourceAdds.push({
3980
- itemId: t.itemId,
3981
- file: path.blob,
3982
- folder: prefix,
3983
- filename: suffix
3984
- });
3985
- break;
3986
- case interfaces.EUpdateType.Update:
3987
- // eslint-disable-next-line @typescript-eslint/no-misused-promises
3988
- pendingTasks.push(new Promise(async (resolve) => {
3989
- try {
3990
- await updateItemResourceFile(solutionItemId, storageName, path.blob, authentication);
3991
- }
3992
- catch (err) {
3993
- console.log("Unable to update " + storageName + " for item " + t.itemId + ": " + JSON.stringify(err));
3994
- }
3995
- resolve();
3996
- }));
3997
- break;
3998
- case interfaces.EUpdateType.Remove:
3999
- // eslint-disable-next-line @typescript-eslint/no-misused-promises
4000
- pendingTasks.push(new Promise(async (resolve) => {
4001
- try {
4002
- await removeItemResourceFile(solutionItemId, storageName, authentication);
4003
- t.resources = t.resources.filter((path) => path !== storageName);
4004
- }
4005
- catch (err) {
4006
- console.log("Unable to remove " + storageName + " for item " + t.itemId + ": " + JSON.stringify(err));
4007
- }
4008
- resolve();
4009
- }));
4010
- break;
4011
- }
4012
- return Promise.resolve();
4013
- });
4014
- delete t.resourceFilePaths;
4015
- delete t.thumbnail;
4016
- delete t.groupDetails;
4017
- });
4018
- // Update the resources
4019
- return Promise.all(pendingTasks)
4020
- .then(async () => {
4021
- if (resourceAdds.length > 0) {
4022
- await copyFilesToStorageItem(resourceAdds, solutionItemId, authentication);
4023
- }
4024
- return Promise.resolve();
4025
- });
4026
- }
4027
- /**
4028
- * Stores basic spatial reference information that is used to determine if a custom spatial reference parameter will
4029
- * be exposed while deploying this solution and if so what feature services will support it and what will the default wkid be
4030
- *
4031
- * @param spatialReferenceInfo The configuration settings for a custom spatial reference
4032
- * @param templates The templates in the current solution, which will be updated in place if
4033
- * `spatialReferenceInfo.enabled` is true
4034
- *
4035
- * @returns The new default wkid
4036
- *
4037
- * @protected
4038
- */
4039
- _setSpatialReferenceInfo(spatialReferenceInfo, templates) {
4040
- const customizingPrefix = "{{params.wkid||";
4041
- const customizeableFeatureServices = this._getCustomizableFeatureServices(templates);
4042
- if (spatialReferenceInfo.enabled) {
4043
- // Enable or disable this feature in each service
4044
- customizeableFeatureServices.forEach((fs) => {
4045
- const name = fs.item.title || fs.item.name;
4046
- let wkid;
4047
- if (spatialReferenceInfo.services[name]) { // enabled
4048
- wkid = `{{params.wkid||${spatialReferenceInfo.spatialReference}}}`;
4049
- setCreateProp(fs, "properties.service.spatialReference.wkid", wkid);
4050
- }
4051
- else { // disabled
4052
- wkid = getProp(fs, "properties.service.spatialReference.wkid");
4053
- // Remove customizing prefix if present
4054
- if (wkid.toString().startsWith(customizingPrefix)) {
4055
- wkid = wkid.toString().substring(customizingPrefix.length, wkid.length - 2);
4056
- setCreateProp(fs, "properties.service.spatialReference.wkid", wkid);
4057
- }
4058
- }
4059
- });
4060
- return spatialReferenceInfo.spatialReference;
4061
- }
4062
- else {
4063
- // Disable this feature in each service
4064
- customizeableFeatureServices.forEach((fs) => {
4065
- const wkid = getProp(fs, "properties.service.spatialReference.wkid");
4066
- // Remove customizing prefix if present
4067
- if (wkid.toString().startsWith(customizingPrefix)) {
4068
- setCreateProp(fs, "properties.service.spatialReference.wkid", wkid.toString().substring(customizingPrefix.length, wkid.length - 2));
4069
- }
4070
- });
4071
- return undefined;
4072
- }
4073
- }
4074
- /**
4075
- * Splits a pathed filename into a last term and a prefix; e.g., "a/b/c" returns "c" with a prefix of "a/b".
4076
- *
4077
- * @param filename Filename with optional path
4078
- *
4079
- * @returns An object consisting of a `prefix` (undefined if `filename` does not contain a path) and a `suffix`--the
4080
- * filename at the end of a path
4081
- *
4082
- * @protected
4083
- */
4084
- _splitFilename(filename) {
4085
- const filenameParts = filename.split("/");
4086
- return {
4087
- prefix: filenameParts.length > 1 ? filenameParts.slice(0, filenameParts.length - 1).join("/") : undefined,
4088
- suffix: filenameParts[filenameParts.length - 1]
4089
- };
4090
- }
4091
- }
4092
- const state = SolutionStore.Store;
4093
-
4094
- exports.ArcGISAuthError = ArcGISAuthError;
4095
- exports.NODEJS_DEFAULT_REFERER_HEADER = NODEJS_DEFAULT_REFERER_HEADER;
4096
- exports.cleanUrl = cleanUrl;
4097
- exports.encodeQueryString = encodeQueryString;
4098
- exports.getProp = getProp;
4099
- exports.request = request;
4100
- exports.state = state;