@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
@@ -0,0 +1,4092 @@
1
+ /*!
2
+ * Copyright 2022 Esri
3
+ * Licensed under the Apache License, Version 2.0
4
+ * http://www.apache.org/licenses/LICENSE-2.0
5
+ */
6
+ import { c as createStore } from './index-b91c174c.js';
7
+ import { d as EUpdateType } from './interfaces-5a2fe8b4.js';
8
+ import { c as createCommonjsModule, a as commonjsGlobal, b as commonjsRequire } from './_commonjsHelpers-d5f9d613.js';
9
+
10
+ /*! *****************************************************************************
11
+ Copyright (c) Microsoft Corporation.
12
+
13
+ Permission to use, copy, modify, and/or distribute this software for any
14
+ purpose with or without fee is hereby granted.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
17
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
18
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
19
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
20
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
21
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
22
+ PERFORMANCE OF THIS SOFTWARE.
23
+ ***************************************************************************** */
24
+ /* global Reflect, Promise */
25
+
26
+ var extendStatics = function(d, b) {
27
+ extendStatics = Object.setPrototypeOf ||
28
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
29
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
30
+ return extendStatics(d, b);
31
+ };
32
+
33
+ function __extends(d, b) {
34
+ extendStatics(d, b);
35
+ function __() { this.constructor = d; }
36
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
37
+ }
38
+
39
+ var __assign$1 = function() {
40
+ __assign$1 = Object.assign || function __assign(t) {
41
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
42
+ s = arguments[i];
43
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
44
+ }
45
+ return t;
46
+ };
47
+ return __assign$1.apply(this, arguments);
48
+ };
49
+
50
+ /* Copyright (c) 2017 Environmental Systems Research Institute, Inc.
51
+ * Apache-2.0 */
52
+ /**
53
+ * Checks parameters to see if we should use FormData to send the request
54
+ * @param params The object whose keys will be encoded.
55
+ * @return A boolean indicating if FormData will be required.
56
+ */
57
+ function requiresFormData(params) {
58
+ return Object.keys(params).some(function (key) {
59
+ var value = params[key];
60
+ if (!value) {
61
+ return false;
62
+ }
63
+ if (value && value.toParam) {
64
+ value = value.toParam();
65
+ }
66
+ var type = value.constructor.name;
67
+ switch (type) {
68
+ case "Array":
69
+ return false;
70
+ case "Object":
71
+ return false;
72
+ case "Date":
73
+ return false;
74
+ case "Function":
75
+ return false;
76
+ case "Boolean":
77
+ return false;
78
+ case "String":
79
+ return false;
80
+ case "Number":
81
+ return false;
82
+ default:
83
+ return true;
84
+ }
85
+ });
86
+ }
87
+ /**
88
+ * Converts parameters to the proper representation to send to the ArcGIS REST API.
89
+ * @param params The object whose keys will be encoded.
90
+ * @return A new object with properly encoded values.
91
+ */
92
+ function processParams(params) {
93
+ var newParams = {};
94
+ Object.keys(params).forEach(function (key) {
95
+ var _a, _b;
96
+ var param = params[key];
97
+ if (param && param.toParam) {
98
+ param = param.toParam();
99
+ }
100
+ if (!param &&
101
+ param !== 0 &&
102
+ typeof param !== "boolean" &&
103
+ typeof param !== "string") {
104
+ return;
105
+ }
106
+ var type = param.constructor.name;
107
+ var value;
108
+ // properly encodes objects, arrays and dates for arcgis.com and other services.
109
+ // ported from https://github.com/Esri/esri-leaflet/blob/master/src/Request.js#L22-L30
110
+ // also see https://github.com/Esri/arcgis-rest-js/issues/18:
111
+ // null, undefined, function are excluded. If you want to send an empty key you need to send an empty string "".
112
+ switch (type) {
113
+ case "Array":
114
+ // Based on the first element of the array, classify array as an array of arrays, an array of objects
115
+ // to be stringified, or an array of non-objects to be comma-separated
116
+ // eslint-disable-next-line no-case-declarations
117
+ var firstElementType = (_b = (_a = param[0]) === null || _a === void 0 ? void 0 : _a.constructor) === null || _b === void 0 ? void 0 : _b.name;
118
+ value =
119
+ firstElementType === "Array" ? param : // pass thru array of arrays
120
+ firstElementType === "Object" ? JSON.stringify(param) : // stringify array of objects
121
+ param.join(","); // join other types of array elements
122
+ break;
123
+ case "Object":
124
+ value = JSON.stringify(param);
125
+ break;
126
+ case "Date":
127
+ value = param.valueOf();
128
+ break;
129
+ case "Function":
130
+ value = null;
131
+ break;
132
+ case "Boolean":
133
+ value = param + "";
134
+ break;
135
+ default:
136
+ value = param;
137
+ break;
138
+ }
139
+ if (value || value === 0 || typeof value === "string" || Array.isArray(value)) {
140
+ newParams[key] = value;
141
+ }
142
+ });
143
+ return newParams;
144
+ }
145
+
146
+ /* Copyright (c) 2017 Environmental Systems Research Institute, Inc.
147
+ * Apache-2.0 */
148
+ /**
149
+ * Encodes keys and parameters for use in a URL's query string.
150
+ *
151
+ * @param key Parameter's key
152
+ * @param value Parameter's value
153
+ * @returns Query string with key and value pairs separated by "&"
154
+ */
155
+ function encodeParam(key, value) {
156
+ // For array of arrays, repeat key=value for each element of containing array
157
+ if (Array.isArray(value) && value[0] && Array.isArray(value[0])) {
158
+ return value.map(function (arrayElem) { return encodeParam(key, arrayElem); }).join("&");
159
+ }
160
+ return encodeURIComponent(key) + "=" + encodeURIComponent(value);
161
+ }
162
+ /**
163
+ * Encodes the passed object as a query string.
164
+ *
165
+ * @param params An object to be encoded.
166
+ * @returns An encoded query string.
167
+ */
168
+ function encodeQueryString(params) {
169
+ var newParams = processParams(params);
170
+ return Object.keys(newParams)
171
+ .map(function (key) {
172
+ return encodeParam(key, newParams[key]);
173
+ })
174
+ .join("&");
175
+ }
176
+
177
+ /* Copyright (c) 2017 Environmental Systems Research Institute, Inc.
178
+ * Apache-2.0 */
179
+ /**
180
+ * 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
181
+ *
182
+ * @param params An object to be encoded.
183
+ * @returns The complete [FormData](https://developer.mozilla.org/en-US/docs/Web/API/FormData) object.
184
+ */
185
+ function encodeFormData(params, forceFormData) {
186
+ // see https://github.com/Esri/arcgis-rest-js/issues/499 for more info.
187
+ var useFormData = requiresFormData(params) || forceFormData;
188
+ var newParams = processParams(params);
189
+ if (useFormData) {
190
+ var formData_1 = new FormData();
191
+ Object.keys(newParams).forEach(function (key) {
192
+ if (typeof Blob !== "undefined" && newParams[key] instanceof Blob) {
193
+ /* To name the Blob:
194
+ 1. look to an alternate request parameter called 'fileName'
195
+ 2. see if 'name' has been tacked onto the Blob manually
196
+ 3. if all else fails, use the request parameter
197
+ */
198
+ var filename = newParams["fileName"] || newParams[key].name || key;
199
+ formData_1.append(key, newParams[key], filename);
200
+ }
201
+ else {
202
+ formData_1.append(key, newParams[key]);
203
+ }
204
+ });
205
+ return formData_1;
206
+ }
207
+ else {
208
+ return encodeQueryString(params);
209
+ }
210
+ }
211
+
212
+ /* Copyright (c) 2017 Environmental Systems Research Institute, Inc.
213
+ * Apache-2.0 */
214
+ // TypeScript 2.1 no longer allows you to extend built in types. See https://github.com/Microsoft/TypeScript/issues/12790#issuecomment-265981442
215
+ // and https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work
216
+ //
217
+ // This code is from MDN https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Custom_Error_Types.
218
+ var ArcGISRequestError = /** @class */ (function () {
219
+ /**
220
+ * Create a new `ArcGISRequestError` object.
221
+ *
222
+ * @param message - The error message from the API
223
+ * @param code - The error code from the API
224
+ * @param response - The original response from the API that caused the error
225
+ * @param url - The original url of the request
226
+ * @param options - The original options and parameters of the request
227
+ */
228
+ function ArcGISRequestError(message, code, response, url, options) {
229
+ message = message || "UNKNOWN_ERROR";
230
+ code = code || "UNKNOWN_ERROR_CODE";
231
+ this.name = "ArcGISRequestError";
232
+ this.message =
233
+ code === "UNKNOWN_ERROR_CODE" ? message : code + ": " + message;
234
+ this.originalMessage = message;
235
+ this.code = code;
236
+ this.response = response;
237
+ this.url = url;
238
+ this.options = options;
239
+ }
240
+ return ArcGISRequestError;
241
+ }());
242
+ ArcGISRequestError.prototype = Object.create(Error.prototype);
243
+ ArcGISRequestError.prototype.constructor = ArcGISRequestError;
244
+
245
+ /* Copyright (c) 2017-2018 Environmental Systems Research Institute, Inc.
246
+ * Apache-2.0 */
247
+ var NODEJS_DEFAULT_REFERER_HEADER = "@esri/arcgis-rest-js";
248
+ var DEFAULT_ARCGIS_REQUEST_OPTIONS = {
249
+ httpMethod: "POST",
250
+ params: {
251
+ f: "json",
252
+ },
253
+ };
254
+ var ArcGISAuthError = /** @class */ (function (_super) {
255
+ __extends(ArcGISAuthError, _super);
256
+ /**
257
+ * Create a new `ArcGISAuthError` object.
258
+ *
259
+ * @param message - The error message from the API
260
+ * @param code - The error code from the API
261
+ * @param response - The original response from the API that caused the error
262
+ * @param url - The original url of the request
263
+ * @param options - The original options of the request
264
+ */
265
+ function ArcGISAuthError(message, code, response, url, options) {
266
+ if (message === void 0) { message = "AUTHENTICATION_ERROR"; }
267
+ if (code === void 0) { code = "AUTHENTICATION_ERROR_CODE"; }
268
+ var _this = _super.call(this, message, code, response, url, options) || this;
269
+ _this.name = "ArcGISAuthError";
270
+ _this.message =
271
+ code === "AUTHENTICATION_ERROR_CODE" ? message : code + ": " + message;
272
+ return _this;
273
+ }
274
+ ArcGISAuthError.prototype.retry = function (getSession, retryLimit) {
275
+ var _this = this;
276
+ if (retryLimit === void 0) { retryLimit = 3; }
277
+ var tries = 0;
278
+ var retryRequest = function (resolve, reject) {
279
+ getSession(_this.url, _this.options)
280
+ .then(function (session) {
281
+ var newOptions = __assign$1(__assign$1({}, _this.options), { authentication: session });
282
+ tries = tries + 1;
283
+ return request(_this.url, newOptions);
284
+ })
285
+ .then(function (response) {
286
+ resolve(response);
287
+ })
288
+ .catch(function (e) {
289
+ if (e.name === "ArcGISAuthError" && tries < retryLimit) {
290
+ retryRequest(resolve, reject);
291
+ }
292
+ else if (e.name === "ArcGISAuthError" && tries >= retryLimit) {
293
+ reject(_this);
294
+ }
295
+ else {
296
+ reject(e);
297
+ }
298
+ });
299
+ };
300
+ return new Promise(function (resolve, reject) {
301
+ retryRequest(resolve, reject);
302
+ });
303
+ };
304
+ return ArcGISAuthError;
305
+ }(ArcGISRequestError));
306
+ /**
307
+ * 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`.
308
+ *
309
+ * @param data The response JSON to check for errors.
310
+ * @param url The url of the original request
311
+ * @param params The parameters of the original request
312
+ * @param options The options of the original request
313
+ * @returns The data that was passed in the `data` parameter
314
+ */
315
+ function checkForErrors(response, url, params, options, originalAuthError) {
316
+ // this is an error message from billing.arcgis.com backend
317
+ if (response.code >= 400) {
318
+ var message = response.message, code = response.code;
319
+ throw new ArcGISRequestError(message, code, response, url, options);
320
+ }
321
+ // error from ArcGIS Online or an ArcGIS Portal or server instance.
322
+ if (response.error) {
323
+ var _a = response.error, message = _a.message, code = _a.code, messageCode = _a.messageCode;
324
+ var errorCode = messageCode || code || "UNKNOWN_ERROR_CODE";
325
+ if (code === 498 ||
326
+ code === 499 ||
327
+ messageCode === "GWM_0003" ||
328
+ (code === 400 && message === "Unable to generate token.")) {
329
+ if (originalAuthError) {
330
+ throw originalAuthError;
331
+ }
332
+ else {
333
+ throw new ArcGISAuthError(message, errorCode, response, url, options);
334
+ }
335
+ }
336
+ throw new ArcGISRequestError(message, errorCode, response, url, options);
337
+ }
338
+ // error from a status check
339
+ if (response.status === "failed" || response.status === "failure") {
340
+ var message = void 0;
341
+ var code = "UNKNOWN_ERROR_CODE";
342
+ try {
343
+ message = JSON.parse(response.statusMessage).message;
344
+ code = JSON.parse(response.statusMessage).code;
345
+ }
346
+ catch (e) {
347
+ message = response.statusMessage || response.message;
348
+ }
349
+ throw new ArcGISRequestError(message, code, response, url, options);
350
+ }
351
+ return response;
352
+ }
353
+ /**
354
+ * ```js
355
+ * import { request } from '@esri/arcgis-rest-request';
356
+ * //
357
+ * request('https://www.arcgis.com/sharing/rest')
358
+ * .then(response) // response.currentVersion === 5.2
359
+ * //
360
+ * request('https://www.arcgis.com/sharing/rest', {
361
+ * httpMethod: "GET"
362
+ * })
363
+ * //
364
+ * request('https://www.arcgis.com/sharing/rest/search', {
365
+ * params: { q: 'parks' }
366
+ * })
367
+ * .then(response) // response.total => 78379
368
+ * ```
369
+ * Generic method for making HTTP requests to ArcGIS REST API endpoints.
370
+ *
371
+ * @param url - The URL of the ArcGIS REST API endpoint.
372
+ * @param requestOptions - Options for the request, including parameters relevant to the endpoint.
373
+ * @returns A Promise that will resolve with the data from the response.
374
+ */
375
+ function request(url, requestOptions) {
376
+ if (requestOptions === void 0) { requestOptions = { params: { f: "json" } }; }
377
+ var options = __assign$1(__assign$1(__assign$1({ httpMethod: "POST" }, DEFAULT_ARCGIS_REQUEST_OPTIONS), requestOptions), {
378
+ params: __assign$1(__assign$1({}, DEFAULT_ARCGIS_REQUEST_OPTIONS.params), requestOptions.params),
379
+ headers: __assign$1(__assign$1({}, DEFAULT_ARCGIS_REQUEST_OPTIONS.headers), requestOptions.headers),
380
+ });
381
+ var missingGlobals = [];
382
+ var recommendedPackages = [];
383
+ // don't check for a global fetch if a custom implementation was passed through
384
+ if (!options.fetch && typeof fetch !== "undefined") {
385
+ options.fetch = fetch.bind(Function("return this")());
386
+ }
387
+ else {
388
+ missingGlobals.push("`fetch`");
389
+ recommendedPackages.push("`node-fetch`");
390
+ }
391
+ if (typeof Promise === "undefined") {
392
+ missingGlobals.push("`Promise`");
393
+ recommendedPackages.push("`es6-promise`");
394
+ }
395
+ if (typeof FormData === "undefined") {
396
+ missingGlobals.push("`FormData`");
397
+ recommendedPackages.push("`isomorphic-form-data`");
398
+ }
399
+ if (!options.fetch ||
400
+ typeof Promise === "undefined" ||
401
+ typeof FormData === "undefined") {
402
+ 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.");
403
+ }
404
+ var httpMethod = options.httpMethod, authentication = options.authentication, rawResponse = options.rawResponse;
405
+ var params = __assign$1({ f: "json" }, options.params);
406
+ var originalAuthError = null;
407
+ var fetchOptions = {
408
+ method: httpMethod,
409
+ /* ensures behavior mimics XMLHttpRequest.
410
+ needed to support sending IWA cookies */
411
+ credentials: options.credentials || "same-origin",
412
+ };
413
+ // the /oauth2/platformSelf route will add X-Esri-Auth-Client-Id header
414
+ // and that request needs to send cookies cross domain
415
+ // so we need to set the credentials to "include"
416
+ if (options.headers &&
417
+ options.headers["X-Esri-Auth-Client-Id"] &&
418
+ url.indexOf("/oauth2/platformSelf") > -1) {
419
+ fetchOptions.credentials = "include";
420
+ }
421
+ return (authentication
422
+ ? authentication.getToken(url, { fetch: options.fetch }).catch(function (err) {
423
+ /**
424
+ * append original request url and requestOptions
425
+ * to the error thrown by getToken()
426
+ * to assist with retrying
427
+ */
428
+ err.url = url;
429
+ err.options = options;
430
+ /**
431
+ * if an attempt is made to talk to an unfederated server
432
+ * first try the request anonymously. if a 'token required'
433
+ * error is thrown, throw the UNFEDERATED error then.
434
+ */
435
+ originalAuthError = err;
436
+ return Promise.resolve("");
437
+ })
438
+ : Promise.resolve(""))
439
+ .then(function (token) {
440
+ if (token.length) {
441
+ params.token = token;
442
+ }
443
+ if (authentication && authentication.getDomainCredentials) {
444
+ fetchOptions.credentials = authentication.getDomainCredentials(url);
445
+ }
446
+ // Custom headers to add to request. IRequestOptions.headers with merge over requestHeaders.
447
+ var requestHeaders = {};
448
+ if (fetchOptions.method === "GET") {
449
+ // Prevents token from being passed in query params when hideToken option is used.
450
+ /* istanbul ignore if - window is always defined in a browser. Test case is covered by Jasmine in node test */
451
+ if (params.token &&
452
+ options.hideToken &&
453
+ // Sharing API does not support preflight check required by modern browsers https://developer.mozilla.org/en-US/docs/Glossary/Preflight_request
454
+ typeof window === "undefined") {
455
+ requestHeaders["X-Esri-Authorization"] = "Bearer " + params.token;
456
+ delete params.token;
457
+ }
458
+ // encode the parameters into the query string
459
+ var queryParams = encodeQueryString(params);
460
+ // dont append a '?' unless parameters are actually present
461
+ var urlWithQueryString = queryParams === "" ? url : url + "?" + encodeQueryString(params);
462
+ if (
463
+ // This would exceed the maximum length for URLs specified by the consumer and requires POST
464
+ (options.maxUrlLength &&
465
+ urlWithQueryString.length > options.maxUrlLength) ||
466
+ // Or if the customer requires the token to be hidden and it has not already been hidden in the header (for browsers)
467
+ (params.token && options.hideToken)) {
468
+ // the consumer specified a maximum length for URLs
469
+ // and this would exceed it, so use post instead
470
+ fetchOptions.method = "POST";
471
+ // If the token was already added as a Auth header, add the token back to body with other params instead of header
472
+ if (token.length && options.hideToken) {
473
+ params.token = token;
474
+ // Remove existing header that was added before url query length was checked
475
+ delete requestHeaders["X-Esri-Authorization"];
476
+ }
477
+ }
478
+ else {
479
+ // just use GET
480
+ url = urlWithQueryString;
481
+ }
482
+ }
483
+ /* updateResources currently requires FormData even when the input parameters dont warrant it.
484
+ https://developers.arcgis.com/rest/users-groups-and-items/update-resources.htm
485
+ see https://github.com/Esri/arcgis-rest-js/pull/500 for more info. */
486
+ var forceFormData = new RegExp("/items/.+/updateResources").test(url);
487
+ if (fetchOptions.method === "POST") {
488
+ fetchOptions.body = encodeFormData(params, forceFormData);
489
+ }
490
+ // Mixin headers from request options
491
+ fetchOptions.headers = __assign$1(__assign$1({}, requestHeaders), options.headers);
492
+ /* istanbul ignore next - karma reports coverage on browser tests only */
493
+ if (typeof window === "undefined" && !fetchOptions.headers.referer) {
494
+ fetchOptions.headers.referer = NODEJS_DEFAULT_REFERER_HEADER;
495
+ }
496
+ /* istanbul ignore else blob responses are difficult to make cross platform we will just have to trust the isomorphic fetch will do its job */
497
+ if (!requiresFormData(params) && !forceFormData) {
498
+ fetchOptions.headers["Content-Type"] =
499
+ "application/x-www-form-urlencoded";
500
+ }
501
+ return options.fetch(url, fetchOptions);
502
+ })
503
+ .then(function (response) {
504
+ if (!response.ok) {
505
+ // server responded w/ an actual error (404, 500, etc)
506
+ var status_1 = response.status, statusText = response.statusText;
507
+ throw new ArcGISRequestError(statusText, "HTTP " + status_1, response, url, options);
508
+ }
509
+ if (rawResponse) {
510
+ return response;
511
+ }
512
+ switch (params.f) {
513
+ case "json":
514
+ return response.json();
515
+ case "geojson":
516
+ return response.json();
517
+ case "html":
518
+ return response.text();
519
+ case "text":
520
+ return response.text();
521
+ /* istanbul ignore next blob responses are difficult to make cross platform we will just have to trust that isomorphic fetch will do its job */
522
+ default:
523
+ return response.blob();
524
+ }
525
+ })
526
+ .then(function (data) {
527
+ if ((params.f === "json" || params.f === "geojson") && !rawResponse) {
528
+ var response = checkForErrors(data, url, params, options, originalAuthError);
529
+ if (originalAuthError) {
530
+ /* If the request was made to an unfederated service that
531
+ didn't require authentication, add the base url and a dummy token
532
+ to the list of trusted servers to avoid another federation check
533
+ in the event of a repeat request */
534
+ var truncatedUrl = url
535
+ .toLowerCase()
536
+ .split(/\/rest(\/admin)?\/services\//)[0];
537
+ options.authentication.federatedServers[truncatedUrl] = {
538
+ token: [],
539
+ // default to 24 hours
540
+ expires: new Date(Date.now() + 86400 * 1000),
541
+ };
542
+ originalAuthError = null;
543
+ }
544
+ return response;
545
+ }
546
+ else {
547
+ return data;
548
+ }
549
+ });
550
+ }
551
+
552
+ /* Copyright (c) 2018 Environmental Systems Research Institute, Inc.
553
+ * Apache-2.0 */
554
+ /**
555
+ * Helper method to ensure that user supplied urls don't include whitespace or a trailing slash.
556
+ */
557
+ function cleanUrl(url) {
558
+ // Guard so we don't try to trim something that's not a string
559
+ if (typeof url !== "string") {
560
+ return url;
561
+ }
562
+ // trim leading and trailing spaces, but not spaces inside the url
563
+ url = url.trim();
564
+ // remove the trailing slash to the url if one was included
565
+ if (url[url.length - 1] === "/") {
566
+ url = url.slice(0, -1);
567
+ }
568
+ return url;
569
+ }
570
+
571
+ /** @license
572
+ * Copyright 2018 Esri
573
+ *
574
+ * Licensed under the Apache License, Version 2.0 (the "License");
575
+ * you may not use this file except in compliance with the License.
576
+ * You may obtain a copy of the License at
577
+ *
578
+ * http://www.apache.org/licenses/LICENSE-2.0
579
+ *
580
+ * Unless required by applicable law or agreed to in writing, software
581
+ * distributed under the License is distributed on an "AS IS" BASIS,
582
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
583
+ * See the License for the specific language governing permissions and
584
+ * limitations under the License.
585
+ */
586
+ //#endregion ---------------------------------------------------------------------------------------------------------//
587
+ const SolutionTemplateFormatVersion = 1;
588
+ //#region Enums ------------------------------------------------------------------------------------------------------//
589
+ /**
590
+ * Flags for storing an item's binary resources.
591
+ */
592
+ var EFileType;
593
+ (function (EFileType) {
594
+ EFileType[EFileType["Data"] = 0] = "Data";
595
+ EFileType[EFileType["Info"] = 1] = "Info";
596
+ EFileType[EFileType["Metadata"] = 2] = "Metadata";
597
+ EFileType[EFileType["Resource"] = 3] = "Resource";
598
+ EFileType[EFileType["Thumbnail"] = 4] = "Thumbnail";
599
+ })(EFileType || (EFileType = {}));
600
+ /**
601
+ * Text versions of flags for storing an item's binary resources.
602
+ */
603
+ var SFileType;
604
+ (function (SFileType) {
605
+ SFileType[SFileType["Data"] = 0] = "Data";
606
+ SFileType[SFileType["Info"] = 1] = "Info";
607
+ SFileType[SFileType["Metadata"] = 2] = "Metadata";
608
+ SFileType[SFileType["Resource"] = 3] = "Resource";
609
+ SFileType[SFileType["Thumbnail"] = 4] = "Thumbnail";
610
+ })(SFileType || (SFileType = {}));
611
+ /**
612
+ * Flags for reporting the status of creating or deploying an item.
613
+ */
614
+ var EItemProgressStatus;
615
+ (function (EItemProgressStatus) {
616
+ EItemProgressStatus[EItemProgressStatus["Started"] = 0] = "Started";
617
+ EItemProgressStatus[EItemProgressStatus["Created"] = 1] = "Created";
618
+ EItemProgressStatus[EItemProgressStatus["Cancelled"] = 2] = "Cancelled";
619
+ EItemProgressStatus[EItemProgressStatus["Finished"] = 3] = "Finished";
620
+ EItemProgressStatus[EItemProgressStatus["Ignored"] = 4] = "Ignored";
621
+ EItemProgressStatus[EItemProgressStatus["Failed"] = 5] = "Failed";
622
+ EItemProgressStatus[EItemProgressStatus["Unknown"] = 6] = "Unknown";
623
+ })(EItemProgressStatus || (EItemProgressStatus = {}));
624
+ //#endregion ---------------------------------------------------------------------------------------------------------//
625
+
626
+ /* Copyright (c) 2018-2019 Environmental Systems Research Institute, Inc.
627
+ * Apache-2.0 */
628
+ /**
629
+ * Returns an array with arrays of the given size.
630
+ *
631
+ * @param arr Array to split
632
+ * @param size Size of every group
633
+ */
634
+ function chunkArray(arr, size) {
635
+ const results = [];
636
+ let index = 0;
637
+ while (index < arr.length) {
638
+ results.push(arr.slice(index, index + size));
639
+ index += size;
640
+ }
641
+ return results;
642
+ }
643
+
644
+ /*! *****************************************************************************
645
+ Copyright (c) Microsoft Corporation.
646
+
647
+ Permission to use, copy, modify, and/or distribute this software for any
648
+ purpose with or without fee is hereby granted.
649
+
650
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
651
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
652
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
653
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
654
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
655
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
656
+ PERFORMANCE OF THIS SOFTWARE.
657
+ ***************************************************************************** */
658
+
659
+ var __assign = function() {
660
+ __assign = Object.assign || function __assign(t) {
661
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
662
+ s = arguments[i];
663
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
664
+ }
665
+ return t;
666
+ };
667
+ return __assign.apply(this, arguments);
668
+ };
669
+
670
+ /* Copyright (c) 2017 Environmental Systems Research Institute, Inc.
671
+ * Apache-2.0 */
672
+ /**
673
+ * Helper that returns the appropriate portal url for a given request. `requestOptions.portal` is given
674
+ * precedence over `authentication.portal`. If neither `portal` nor `authentication` is present,
675
+ * `www.arcgis.com/sharing/rest` is returned.
676
+ *
677
+ * @param requestOptions - Request options that may have authentication manager
678
+ * @returns Portal url to be used in API requests
679
+ */
680
+ function getPortalUrl(requestOptions) {
681
+ if (requestOptions === void 0) { requestOptions = {}; }
682
+ // use portal in options if specified
683
+ if (requestOptions.portal) {
684
+ return cleanUrl(requestOptions.portal);
685
+ }
686
+ // if auth was passed, use that portal
687
+ if (requestOptions.authentication) {
688
+ // the portal url is already scrubbed in the auth package
689
+ return requestOptions.authentication.portal;
690
+ }
691
+ // default to arcgis.com
692
+ return "https://www.arcgis.com/sharing/rest";
693
+ }
694
+
695
+ /* Copyright (c) 2017-2018 Environmental Systems Research Institute, Inc.
696
+ * Apache-2.0 */
697
+ /**
698
+ * Serialize an item and its data into a json format accepted by the Portal API for create and update operations
699
+ *
700
+ * @param item Item to be serialized
701
+ * @returns a formatted json object to be sent to Portal
702
+ */
703
+ function serializeItem(item) {
704
+ // create a clone so we're not messing with the original
705
+ var clone = JSON.parse(JSON.stringify(item));
706
+ // binary data needs POSTed as a `file`
707
+ // JSON object literals should be passed as `text`.
708
+ if (clone.data) {
709
+ (typeof Blob !== "undefined" && item.data instanceof Blob) ||
710
+ // Node.js doesn't implement Blob
711
+ item.data.constructor.name === "ReadStream"
712
+ ? (clone.file = item.data)
713
+ : (clone.text = item.data);
714
+ delete clone.data;
715
+ }
716
+ return clone;
717
+ }
718
+ /**
719
+ * `requestOptions.owner` is given priority, `requestOptions.item.owner` will be checked next. If neither are present, `authentication.getUserName()` will be used instead.
720
+ */
721
+ function determineOwner(requestOptions) {
722
+ if (requestOptions.owner) {
723
+ return Promise.resolve(requestOptions.owner);
724
+ }
725
+ else if (requestOptions.item && requestOptions.item.owner) {
726
+ return Promise.resolve(requestOptions.item.owner);
727
+ }
728
+ else if (requestOptions.authentication &&
729
+ requestOptions.authentication.getUsername) {
730
+ return requestOptions.authentication.getUsername();
731
+ }
732
+ else {
733
+ return Promise.reject(new Error("Could not determine the owner of this item. Pass the `owner`, `item.owner`, or `authentication` option."));
734
+ }
735
+ }
736
+ /**
737
+ * checks if the extent is a valid BBox (2 element array of coordinate pair arrays)
738
+ * @param extent
739
+ * @returns
740
+ */
741
+ function isBBox(extent) {
742
+ return (Array.isArray(extent) &&
743
+ Array.isArray(extent[0]) &&
744
+ Array.isArray(extent[1]));
745
+ }
746
+ /**
747
+ * Given a Bbox, convert it to a string. Some api endpoints expect a string
748
+ *
749
+ * @param {BBox} extent
750
+ * @return {*} {string}
751
+ */
752
+ function bboxToString(extent) {
753
+ return extent.join(",");
754
+ }
755
+
756
+ /* Copyright (c) 2018 Environmental Systems Research Institute, Inc.
757
+ * Apache-2.0 */
758
+ /**
759
+ * ```js
760
+ * import { updateItem } from "@esri/arcgis-rest-portal";
761
+ * //
762
+ * updateItem({
763
+ * item: {
764
+ * id: "3ef",
765
+ * description: "A three hour tour"
766
+ * },
767
+ * authentication
768
+ * })
769
+ * .then(response)
770
+ * ```
771
+ * Update an Item. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/update-item.htm) for more information.
772
+ *
773
+ * @param requestOptions - Options for the request.
774
+ * @returns A Promise that updates an item.
775
+ */
776
+ function updateItem$1(requestOptions) {
777
+ return determineOwner(requestOptions).then(function (owner) {
778
+ var url = requestOptions.folderId
779
+ ? getPortalUrl(requestOptions) + "/content/users/" + owner + "/" + requestOptions.folderId + "/items/" + requestOptions.item.id + "/update"
780
+ : getPortalUrl(requestOptions) + "/content/users/" + owner + "/items/" + requestOptions.item.id + "/update";
781
+ // serialize the item into something Portal will accept
782
+ requestOptions.params = __assign(__assign({}, requestOptions.params), serializeItem(requestOptions.item));
783
+ // convert extent, if present, into a string from bbox
784
+ // processParams was previously doing this sort of work,
785
+ // however now we need to let array of arrays through
786
+ // Thus for extents we need to move this logic here
787
+ if (requestOptions.params.extent && isBBox(requestOptions.params.extent)) {
788
+ requestOptions.params.extent = bboxToString(requestOptions.params.extent);
789
+ }
790
+ return request(url, requestOptions);
791
+ });
792
+ }
793
+ /**
794
+ * ```js
795
+ * import { updateItemResource } from "@esri/arcgis-rest-portal";
796
+ * //
797
+ * updateItemResource({
798
+ * id: '3ef',
799
+ * resource: file,
800
+ * name: 'bigkahuna.jpg',
801
+ * authentication
802
+ * })
803
+ * .then(response)
804
+ * ```
805
+ * 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.
806
+ *
807
+ * @param requestOptions - Options for the request
808
+ * @returns A Promise that updates an item resource.
809
+ */
810
+ function updateItemResource(requestOptions) {
811
+ return determineOwner(requestOptions).then(function (owner) {
812
+ var url = getPortalUrl(requestOptions) + "/content/users/" + owner + "/items/" + requestOptions.id + "/updateResources";
813
+ // mix in user supplied params
814
+ requestOptions.params = __assign({ file: requestOptions.resource, fileName: requestOptions.name, resourcesPrefix: requestOptions.prefix, text: requestOptions.content }, requestOptions.params);
815
+ // only override the access specified previously if 'private' is passed explicitly
816
+ if (typeof requestOptions.private !== "undefined") {
817
+ requestOptions.params.access = requestOptions.private
818
+ ? "private"
819
+ : "inherit";
820
+ }
821
+ return request(url, requestOptions);
822
+ });
823
+ }
824
+
825
+ /* Copyright (c) 2018 Environmental Systems Research Institute, Inc.
826
+ * Apache-2.0 */
827
+ /**
828
+ * ```js
829
+ * import { addItemResource } from "@esri/arcgis-rest-portal";
830
+ * //
831
+ * // Add a file resource
832
+ * addItemResource({
833
+ * id: '3ef',
834
+ * resource: file,
835
+ * name: 'bigkahuna.jpg',
836
+ * authentication
837
+ * })
838
+ * .then(response)
839
+ * //
840
+ * // Add a text resource
841
+ * addItemResource({
842
+ * id: '4fg',
843
+ * content: "Text content",
844
+ * name: 'bigkahuna.txt',
845
+ * authentication
846
+ * })
847
+ * .then(response)
848
+ * ```
849
+ * 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.
850
+ *
851
+ * @param requestOptions - Options for the request
852
+ * @returns A Promise to add item resources.
853
+ */
854
+ function addItemResource(requestOptions) {
855
+ return determineOwner(requestOptions).then(function (owner) {
856
+ var url = getPortalUrl(requestOptions) + "/content/users/" + owner + "/items/" + requestOptions.id + "/addResources";
857
+ requestOptions.params = __assign({ file: requestOptions.resource, fileName: requestOptions.name, resourcesPrefix: requestOptions.prefix, text: requestOptions.content, access: requestOptions.private ? "private" : "inherit" }, requestOptions.params);
858
+ return request(url, requestOptions);
859
+ });
860
+ }
861
+
862
+ /* Copyright (c) 2018 Environmental Systems Research Institute, Inc.
863
+ * Apache-2.0 */
864
+ /**
865
+ * Remove a resource associated with an item
866
+ *
867
+ * @param requestOptions - Options for the request
868
+ * @returns A Promise that deletes an item resource.
869
+ */
870
+ function removeItemResource(requestOptions) {
871
+ return determineOwner(requestOptions).then(function (owner) {
872
+ var url = getPortalUrl(requestOptions) + "/content/users/" + owner + "/items/" + requestOptions.id + "/removeResources";
873
+ // mix in user supplied params
874
+ requestOptions.params = __assign(__assign({}, requestOptions.params), { resource: requestOptions.resource });
875
+ // only override the deleteAll param specified previously if it is passed explicitly
876
+ if (typeof requestOptions.deleteAll !== "undefined") {
877
+ requestOptions.params.deleteAll = requestOptions.deleteAll;
878
+ }
879
+ return request(url, requestOptions);
880
+ });
881
+ }
882
+
883
+ var jszip_min = createCommonjsModule(function (module, exports) {
884
+ /*!
885
+
886
+ JSZip v3.10.1 - A JavaScript class for generating and reading zip files
887
+ <http://stuartk.com/jszip>
888
+
889
+ (c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>
890
+ Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown.
891
+
892
+ JSZip uses the library pako released under the MIT license :
893
+ https://github.com/nodeca/pako/blob/main/LICENSE
894
+ */
895
+
896
+ !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 commonjsRequire&&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 commonjsRequire&&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 commonjsGlobal?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 commonjsGlobal?commonjsGlobal:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{});},{}]},{},[10])(10)});
897
+ });
898
+
899
+ /*!
900
+ * @esri/arcgis-html-sanitizer - v3.0.1 - Tue Nov 15 2022 09:46:54 GMT-0800 (Pacific Standard Time)
901
+ * Copyright (c) 2022 - Environmental Systems Research Institute, Inc.
902
+ * Apache-2.0
903
+ *
904
+ * js-xss
905
+ * Copyright (c) 2012-2018 Zongmin Lei(雷宗民) <leizongmin@gmail.com>
906
+ * http://ucdok.com
907
+ * MIT License, see https://github.com/leizongmin/js-xss/blob/master/LICENSE for details
908
+ */
909
+
910
+ var lib$1 = {exports: {}};
911
+
912
+ var _default$1 = {};
913
+
914
+ var lib = {exports: {}};
915
+
916
+ var _default = {};
917
+
918
+ /**
919
+ * cssfilter
920
+ *
921
+ * @author 老雷<leizongmin@gmail.com>
922
+ */
923
+
924
+ function getDefaultWhiteList$1 () {
925
+ // 白名单值说明:
926
+ // true: 允许该属性
927
+ // Function: function (val) { } 返回true表示允许该属性,其他值均表示不允许
928
+ // RegExp: regexp.test(val) 返回true表示允许该属性,其他值均表示不允许
929
+ // 除上面列出的值外均表示不允许
930
+ var whiteList = {};
931
+
932
+ whiteList['align-content'] = false; // default: auto
933
+ whiteList['align-items'] = false; // default: auto
934
+ whiteList['align-self'] = false; // default: auto
935
+ whiteList['alignment-adjust'] = false; // default: auto
936
+ whiteList['alignment-baseline'] = false; // default: baseline
937
+ whiteList['all'] = false; // default: depending on individual properties
938
+ whiteList['anchor-point'] = false; // default: none
939
+ whiteList['animation'] = false; // default: depending on individual properties
940
+ whiteList['animation-delay'] = false; // default: 0
941
+ whiteList['animation-direction'] = false; // default: normal
942
+ whiteList['animation-duration'] = false; // default: 0
943
+ whiteList['animation-fill-mode'] = false; // default: none
944
+ whiteList['animation-iteration-count'] = false; // default: 1
945
+ whiteList['animation-name'] = false; // default: none
946
+ whiteList['animation-play-state'] = false; // default: running
947
+ whiteList['animation-timing-function'] = false; // default: ease
948
+ whiteList['azimuth'] = false; // default: center
949
+ whiteList['backface-visibility'] = false; // default: visible
950
+ whiteList['background'] = true; // default: depending on individual properties
951
+ whiteList['background-attachment'] = true; // default: scroll
952
+ whiteList['background-clip'] = true; // default: border-box
953
+ whiteList['background-color'] = true; // default: transparent
954
+ whiteList['background-image'] = true; // default: none
955
+ whiteList['background-origin'] = true; // default: padding-box
956
+ whiteList['background-position'] = true; // default: 0% 0%
957
+ whiteList['background-repeat'] = true; // default: repeat
958
+ whiteList['background-size'] = true; // default: auto
959
+ whiteList['baseline-shift'] = false; // default: baseline
960
+ whiteList['binding'] = false; // default: none
961
+ whiteList['bleed'] = false; // default: 6pt
962
+ whiteList['bookmark-label'] = false; // default: content()
963
+ whiteList['bookmark-level'] = false; // default: none
964
+ whiteList['bookmark-state'] = false; // default: open
965
+ whiteList['border'] = true; // default: depending on individual properties
966
+ whiteList['border-bottom'] = true; // default: depending on individual properties
967
+ whiteList['border-bottom-color'] = true; // default: current color
968
+ whiteList['border-bottom-left-radius'] = true; // default: 0
969
+ whiteList['border-bottom-right-radius'] = true; // default: 0
970
+ whiteList['border-bottom-style'] = true; // default: none
971
+ whiteList['border-bottom-width'] = true; // default: medium
972
+ whiteList['border-collapse'] = true; // default: separate
973
+ whiteList['border-color'] = true; // default: depending on individual properties
974
+ whiteList['border-image'] = true; // default: none
975
+ whiteList['border-image-outset'] = true; // default: 0
976
+ whiteList['border-image-repeat'] = true; // default: stretch
977
+ whiteList['border-image-slice'] = true; // default: 100%
978
+ whiteList['border-image-source'] = true; // default: none
979
+ whiteList['border-image-width'] = true; // default: 1
980
+ whiteList['border-left'] = true; // default: depending on individual properties
981
+ whiteList['border-left-color'] = true; // default: current color
982
+ whiteList['border-left-style'] = true; // default: none
983
+ whiteList['border-left-width'] = true; // default: medium
984
+ whiteList['border-radius'] = true; // default: 0
985
+ whiteList['border-right'] = true; // default: depending on individual properties
986
+ whiteList['border-right-color'] = true; // default: current color
987
+ whiteList['border-right-style'] = true; // default: none
988
+ whiteList['border-right-width'] = true; // default: medium
989
+ whiteList['border-spacing'] = true; // default: 0
990
+ whiteList['border-style'] = true; // default: depending on individual properties
991
+ whiteList['border-top'] = true; // default: depending on individual properties
992
+ whiteList['border-top-color'] = true; // default: current color
993
+ whiteList['border-top-left-radius'] = true; // default: 0
994
+ whiteList['border-top-right-radius'] = true; // default: 0
995
+ whiteList['border-top-style'] = true; // default: none
996
+ whiteList['border-top-width'] = true; // default: medium
997
+ whiteList['border-width'] = true; // default: depending on individual properties
998
+ whiteList['bottom'] = false; // default: auto
999
+ whiteList['box-decoration-break'] = true; // default: slice
1000
+ whiteList['box-shadow'] = true; // default: none
1001
+ whiteList['box-sizing'] = true; // default: content-box
1002
+ whiteList['box-snap'] = true; // default: none
1003
+ whiteList['box-suppress'] = true; // default: show
1004
+ whiteList['break-after'] = true; // default: auto
1005
+ whiteList['break-before'] = true; // default: auto
1006
+ whiteList['break-inside'] = true; // default: auto
1007
+ whiteList['caption-side'] = false; // default: top
1008
+ whiteList['chains'] = false; // default: none
1009
+ whiteList['clear'] = true; // default: none
1010
+ whiteList['clip'] = false; // default: auto
1011
+ whiteList['clip-path'] = false; // default: none
1012
+ whiteList['clip-rule'] = false; // default: nonzero
1013
+ whiteList['color'] = true; // default: implementation dependent
1014
+ whiteList['color-interpolation-filters'] = true; // default: auto
1015
+ whiteList['column-count'] = false; // default: auto
1016
+ whiteList['column-fill'] = false; // default: balance
1017
+ whiteList['column-gap'] = false; // default: normal
1018
+ whiteList['column-rule'] = false; // default: depending on individual properties
1019
+ whiteList['column-rule-color'] = false; // default: current color
1020
+ whiteList['column-rule-style'] = false; // default: medium
1021
+ whiteList['column-rule-width'] = false; // default: medium
1022
+ whiteList['column-span'] = false; // default: none
1023
+ whiteList['column-width'] = false; // default: auto
1024
+ whiteList['columns'] = false; // default: depending on individual properties
1025
+ whiteList['contain'] = false; // default: none
1026
+ whiteList['content'] = false; // default: normal
1027
+ whiteList['counter-increment'] = false; // default: none
1028
+ whiteList['counter-reset'] = false; // default: none
1029
+ whiteList['counter-set'] = false; // default: none
1030
+ whiteList['crop'] = false; // default: auto
1031
+ whiteList['cue'] = false; // default: depending on individual properties
1032
+ whiteList['cue-after'] = false; // default: none
1033
+ whiteList['cue-before'] = false; // default: none
1034
+ whiteList['cursor'] = false; // default: auto
1035
+ whiteList['direction'] = false; // default: ltr
1036
+ whiteList['display'] = true; // default: depending on individual properties
1037
+ whiteList['display-inside'] = true; // default: auto
1038
+ whiteList['display-list'] = true; // default: none
1039
+ whiteList['display-outside'] = true; // default: inline-level
1040
+ whiteList['dominant-baseline'] = false; // default: auto
1041
+ whiteList['elevation'] = false; // default: level
1042
+ whiteList['empty-cells'] = false; // default: show
1043
+ whiteList['filter'] = false; // default: none
1044
+ whiteList['flex'] = false; // default: depending on individual properties
1045
+ whiteList['flex-basis'] = false; // default: auto
1046
+ whiteList['flex-direction'] = false; // default: row
1047
+ whiteList['flex-flow'] = false; // default: depending on individual properties
1048
+ whiteList['flex-grow'] = false; // default: 0
1049
+ whiteList['flex-shrink'] = false; // default: 1
1050
+ whiteList['flex-wrap'] = false; // default: nowrap
1051
+ whiteList['float'] = false; // default: none
1052
+ whiteList['float-offset'] = false; // default: 0 0
1053
+ whiteList['flood-color'] = false; // default: black
1054
+ whiteList['flood-opacity'] = false; // default: 1
1055
+ whiteList['flow-from'] = false; // default: none
1056
+ whiteList['flow-into'] = false; // default: none
1057
+ whiteList['font'] = true; // default: depending on individual properties
1058
+ whiteList['font-family'] = true; // default: implementation dependent
1059
+ whiteList['font-feature-settings'] = true; // default: normal
1060
+ whiteList['font-kerning'] = true; // default: auto
1061
+ whiteList['font-language-override'] = true; // default: normal
1062
+ whiteList['font-size'] = true; // default: medium
1063
+ whiteList['font-size-adjust'] = true; // default: none
1064
+ whiteList['font-stretch'] = true; // default: normal
1065
+ whiteList['font-style'] = true; // default: normal
1066
+ whiteList['font-synthesis'] = true; // default: weight style
1067
+ whiteList['font-variant'] = true; // default: normal
1068
+ whiteList['font-variant-alternates'] = true; // default: normal
1069
+ whiteList['font-variant-caps'] = true; // default: normal
1070
+ whiteList['font-variant-east-asian'] = true; // default: normal
1071
+ whiteList['font-variant-ligatures'] = true; // default: normal
1072
+ whiteList['font-variant-numeric'] = true; // default: normal
1073
+ whiteList['font-variant-position'] = true; // default: normal
1074
+ whiteList['font-weight'] = true; // default: normal
1075
+ whiteList['grid'] = false; // default: depending on individual properties
1076
+ whiteList['grid-area'] = false; // default: depending on individual properties
1077
+ whiteList['grid-auto-columns'] = false; // default: auto
1078
+ whiteList['grid-auto-flow'] = false; // default: none
1079
+ whiteList['grid-auto-rows'] = false; // default: auto
1080
+ whiteList['grid-column'] = false; // default: depending on individual properties
1081
+ whiteList['grid-column-end'] = false; // default: auto
1082
+ whiteList['grid-column-start'] = false; // default: auto
1083
+ whiteList['grid-row'] = false; // default: depending on individual properties
1084
+ whiteList['grid-row-end'] = false; // default: auto
1085
+ whiteList['grid-row-start'] = false; // default: auto
1086
+ whiteList['grid-template'] = false; // default: depending on individual properties
1087
+ whiteList['grid-template-areas'] = false; // default: none
1088
+ whiteList['grid-template-columns'] = false; // default: none
1089
+ whiteList['grid-template-rows'] = false; // default: none
1090
+ whiteList['hanging-punctuation'] = false; // default: none
1091
+ whiteList['height'] = true; // default: auto
1092
+ whiteList['hyphens'] = false; // default: manual
1093
+ whiteList['icon'] = false; // default: auto
1094
+ whiteList['image-orientation'] = false; // default: auto
1095
+ whiteList['image-resolution'] = false; // default: normal
1096
+ whiteList['ime-mode'] = false; // default: auto
1097
+ whiteList['initial-letters'] = false; // default: normal
1098
+ whiteList['inline-box-align'] = false; // default: last
1099
+ whiteList['justify-content'] = false; // default: auto
1100
+ whiteList['justify-items'] = false; // default: auto
1101
+ whiteList['justify-self'] = false; // default: auto
1102
+ whiteList['left'] = false; // default: auto
1103
+ whiteList['letter-spacing'] = true; // default: normal
1104
+ whiteList['lighting-color'] = true; // default: white
1105
+ whiteList['line-box-contain'] = false; // default: block inline replaced
1106
+ whiteList['line-break'] = false; // default: auto
1107
+ whiteList['line-grid'] = false; // default: match-parent
1108
+ whiteList['line-height'] = false; // default: normal
1109
+ whiteList['line-snap'] = false; // default: none
1110
+ whiteList['line-stacking'] = false; // default: depending on individual properties
1111
+ whiteList['line-stacking-ruby'] = false; // default: exclude-ruby
1112
+ whiteList['line-stacking-shift'] = false; // default: consider-shifts
1113
+ whiteList['line-stacking-strategy'] = false; // default: inline-line-height
1114
+ whiteList['list-style'] = true; // default: depending on individual properties
1115
+ whiteList['list-style-image'] = true; // default: none
1116
+ whiteList['list-style-position'] = true; // default: outside
1117
+ whiteList['list-style-type'] = true; // default: disc
1118
+ whiteList['margin'] = true; // default: depending on individual properties
1119
+ whiteList['margin-bottom'] = true; // default: 0
1120
+ whiteList['margin-left'] = true; // default: 0
1121
+ whiteList['margin-right'] = true; // default: 0
1122
+ whiteList['margin-top'] = true; // default: 0
1123
+ whiteList['marker-offset'] = false; // default: auto
1124
+ whiteList['marker-side'] = false; // default: list-item
1125
+ whiteList['marks'] = false; // default: none
1126
+ whiteList['mask'] = false; // default: border-box
1127
+ whiteList['mask-box'] = false; // default: see individual properties
1128
+ whiteList['mask-box-outset'] = false; // default: 0
1129
+ whiteList['mask-box-repeat'] = false; // default: stretch
1130
+ whiteList['mask-box-slice'] = false; // default: 0 fill
1131
+ whiteList['mask-box-source'] = false; // default: none
1132
+ whiteList['mask-box-width'] = false; // default: auto
1133
+ whiteList['mask-clip'] = false; // default: border-box
1134
+ whiteList['mask-image'] = false; // default: none
1135
+ whiteList['mask-origin'] = false; // default: border-box
1136
+ whiteList['mask-position'] = false; // default: center
1137
+ whiteList['mask-repeat'] = false; // default: no-repeat
1138
+ whiteList['mask-size'] = false; // default: border-box
1139
+ whiteList['mask-source-type'] = false; // default: auto
1140
+ whiteList['mask-type'] = false; // default: luminance
1141
+ whiteList['max-height'] = true; // default: none
1142
+ whiteList['max-lines'] = false; // default: none
1143
+ whiteList['max-width'] = true; // default: none
1144
+ whiteList['min-height'] = true; // default: 0
1145
+ whiteList['min-width'] = true; // default: 0
1146
+ whiteList['move-to'] = false; // default: normal
1147
+ whiteList['nav-down'] = false; // default: auto
1148
+ whiteList['nav-index'] = false; // default: auto
1149
+ whiteList['nav-left'] = false; // default: auto
1150
+ whiteList['nav-right'] = false; // default: auto
1151
+ whiteList['nav-up'] = false; // default: auto
1152
+ whiteList['object-fit'] = false; // default: fill
1153
+ whiteList['object-position'] = false; // default: 50% 50%
1154
+ whiteList['opacity'] = false; // default: 1
1155
+ whiteList['order'] = false; // default: 0
1156
+ whiteList['orphans'] = false; // default: 2
1157
+ whiteList['outline'] = false; // default: depending on individual properties
1158
+ whiteList['outline-color'] = false; // default: invert
1159
+ whiteList['outline-offset'] = false; // default: 0
1160
+ whiteList['outline-style'] = false; // default: none
1161
+ whiteList['outline-width'] = false; // default: medium
1162
+ whiteList['overflow'] = false; // default: depending on individual properties
1163
+ whiteList['overflow-wrap'] = false; // default: normal
1164
+ whiteList['overflow-x'] = false; // default: visible
1165
+ whiteList['overflow-y'] = false; // default: visible
1166
+ whiteList['padding'] = true; // default: depending on individual properties
1167
+ whiteList['padding-bottom'] = true; // default: 0
1168
+ whiteList['padding-left'] = true; // default: 0
1169
+ whiteList['padding-right'] = true; // default: 0
1170
+ whiteList['padding-top'] = true; // default: 0
1171
+ whiteList['page'] = false; // default: auto
1172
+ whiteList['page-break-after'] = false; // default: auto
1173
+ whiteList['page-break-before'] = false; // default: auto
1174
+ whiteList['page-break-inside'] = false; // default: auto
1175
+ whiteList['page-policy'] = false; // default: start
1176
+ whiteList['pause'] = false; // default: implementation dependent
1177
+ whiteList['pause-after'] = false; // default: implementation dependent
1178
+ whiteList['pause-before'] = false; // default: implementation dependent
1179
+ whiteList['perspective'] = false; // default: none
1180
+ whiteList['perspective-origin'] = false; // default: 50% 50%
1181
+ whiteList['pitch'] = false; // default: medium
1182
+ whiteList['pitch-range'] = false; // default: 50
1183
+ whiteList['play-during'] = false; // default: auto
1184
+ whiteList['position'] = false; // default: static
1185
+ whiteList['presentation-level'] = false; // default: 0
1186
+ whiteList['quotes'] = false; // default: text
1187
+ whiteList['region-fragment'] = false; // default: auto
1188
+ whiteList['resize'] = false; // default: none
1189
+ whiteList['rest'] = false; // default: depending on individual properties
1190
+ whiteList['rest-after'] = false; // default: none
1191
+ whiteList['rest-before'] = false; // default: none
1192
+ whiteList['richness'] = false; // default: 50
1193
+ whiteList['right'] = false; // default: auto
1194
+ whiteList['rotation'] = false; // default: 0
1195
+ whiteList['rotation-point'] = false; // default: 50% 50%
1196
+ whiteList['ruby-align'] = false; // default: auto
1197
+ whiteList['ruby-merge'] = false; // default: separate
1198
+ whiteList['ruby-position'] = false; // default: before
1199
+ whiteList['shape-image-threshold'] = false; // default: 0.0
1200
+ whiteList['shape-outside'] = false; // default: none
1201
+ whiteList['shape-margin'] = false; // default: 0
1202
+ whiteList['size'] = false; // default: auto
1203
+ whiteList['speak'] = false; // default: auto
1204
+ whiteList['speak-as'] = false; // default: normal
1205
+ whiteList['speak-header'] = false; // default: once
1206
+ whiteList['speak-numeral'] = false; // default: continuous
1207
+ whiteList['speak-punctuation'] = false; // default: none
1208
+ whiteList['speech-rate'] = false; // default: medium
1209
+ whiteList['stress'] = false; // default: 50
1210
+ whiteList['string-set'] = false; // default: none
1211
+ whiteList['tab-size'] = false; // default: 8
1212
+ whiteList['table-layout'] = false; // default: auto
1213
+ whiteList['text-align'] = true; // default: start
1214
+ whiteList['text-align-last'] = true; // default: auto
1215
+ whiteList['text-combine-upright'] = true; // default: none
1216
+ whiteList['text-decoration'] = true; // default: none
1217
+ whiteList['text-decoration-color'] = true; // default: currentColor
1218
+ whiteList['text-decoration-line'] = true; // default: none
1219
+ whiteList['text-decoration-skip'] = true; // default: objects
1220
+ whiteList['text-decoration-style'] = true; // default: solid
1221
+ whiteList['text-emphasis'] = true; // default: depending on individual properties
1222
+ whiteList['text-emphasis-color'] = true; // default: currentColor
1223
+ whiteList['text-emphasis-position'] = true; // default: over right
1224
+ whiteList['text-emphasis-style'] = true; // default: none
1225
+ whiteList['text-height'] = true; // default: auto
1226
+ whiteList['text-indent'] = true; // default: 0
1227
+ whiteList['text-justify'] = true; // default: auto
1228
+ whiteList['text-orientation'] = true; // default: mixed
1229
+ whiteList['text-overflow'] = true; // default: clip
1230
+ whiteList['text-shadow'] = true; // default: none
1231
+ whiteList['text-space-collapse'] = true; // default: collapse
1232
+ whiteList['text-transform'] = true; // default: none
1233
+ whiteList['text-underline-position'] = true; // default: auto
1234
+ whiteList['text-wrap'] = true; // default: normal
1235
+ whiteList['top'] = false; // default: auto
1236
+ whiteList['transform'] = false; // default: none
1237
+ whiteList['transform-origin'] = false; // default: 50% 50% 0
1238
+ whiteList['transform-style'] = false; // default: flat
1239
+ whiteList['transition'] = false; // default: depending on individual properties
1240
+ whiteList['transition-delay'] = false; // default: 0s
1241
+ whiteList['transition-duration'] = false; // default: 0s
1242
+ whiteList['transition-property'] = false; // default: all
1243
+ whiteList['transition-timing-function'] = false; // default: ease
1244
+ whiteList['unicode-bidi'] = false; // default: normal
1245
+ whiteList['vertical-align'] = false; // default: baseline
1246
+ whiteList['visibility'] = false; // default: visible
1247
+ whiteList['voice-balance'] = false; // default: center
1248
+ whiteList['voice-duration'] = false; // default: auto
1249
+ whiteList['voice-family'] = false; // default: implementation dependent
1250
+ whiteList['voice-pitch'] = false; // default: medium
1251
+ whiteList['voice-range'] = false; // default: medium
1252
+ whiteList['voice-rate'] = false; // default: normal
1253
+ whiteList['voice-stress'] = false; // default: normal
1254
+ whiteList['voice-volume'] = false; // default: medium
1255
+ whiteList['volume'] = false; // default: medium
1256
+ whiteList['white-space'] = false; // default: normal
1257
+ whiteList['widows'] = false; // default: 2
1258
+ whiteList['width'] = true; // default: auto
1259
+ whiteList['will-change'] = false; // default: auto
1260
+ whiteList['word-break'] = true; // default: normal
1261
+ whiteList['word-spacing'] = true; // default: normal
1262
+ whiteList['word-wrap'] = true; // default: normal
1263
+ whiteList['wrap-flow'] = false; // default: auto
1264
+ whiteList['wrap-through'] = false; // default: wrap
1265
+ whiteList['writing-mode'] = false; // default: horizontal-tb
1266
+ whiteList['z-index'] = false; // default: auto
1267
+
1268
+ return whiteList;
1269
+ }
1270
+
1271
+
1272
+ /**
1273
+ * 匹配到白名单上的一个属性时
1274
+ *
1275
+ * @param {String} name
1276
+ * @param {String} value
1277
+ * @param {Object} options
1278
+ * @return {String}
1279
+ */
1280
+ function onAttr (name, value, options) {
1281
+ // do nothing
1282
+ }
1283
+
1284
+ /**
1285
+ * 匹配到不在白名单上的一个属性时
1286
+ *
1287
+ * @param {String} name
1288
+ * @param {String} value
1289
+ * @param {Object} options
1290
+ * @return {String}
1291
+ */
1292
+ function onIgnoreAttr (name, value, options) {
1293
+ // do nothing
1294
+ }
1295
+
1296
+ var REGEXP_URL_JAVASCRIPT = /javascript\s*\:/img;
1297
+
1298
+ /**
1299
+ * 过滤属性值
1300
+ *
1301
+ * @param {String} name
1302
+ * @param {String} value
1303
+ * @return {String}
1304
+ */
1305
+ function safeAttrValue$1(name, value) {
1306
+ if (REGEXP_URL_JAVASCRIPT.test(value)) return '';
1307
+ return value;
1308
+ }
1309
+
1310
+
1311
+ _default.whiteList = getDefaultWhiteList$1();
1312
+ _default.getDefaultWhiteList = getDefaultWhiteList$1;
1313
+ _default.onAttr = onAttr;
1314
+ _default.onIgnoreAttr = onIgnoreAttr;
1315
+ _default.safeAttrValue = safeAttrValue$1;
1316
+
1317
+ var util$1 = {
1318
+ indexOf: function (arr, item) {
1319
+ var i, j;
1320
+ if (Array.prototype.indexOf) {
1321
+ return arr.indexOf(item);
1322
+ }
1323
+ for (i = 0, j = arr.length; i < j; i++) {
1324
+ if (arr[i] === item) {
1325
+ return i;
1326
+ }
1327
+ }
1328
+ return -1;
1329
+ },
1330
+ forEach: function (arr, fn, scope) {
1331
+ var i, j;
1332
+ if (Array.prototype.forEach) {
1333
+ return arr.forEach(fn, scope);
1334
+ }
1335
+ for (i = 0, j = arr.length; i < j; i++) {
1336
+ fn.call(scope, arr[i], i, arr);
1337
+ }
1338
+ },
1339
+ trim: function (str) {
1340
+ if (String.prototype.trim) {
1341
+ return str.trim();
1342
+ }
1343
+ return str.replace(/(^\s*)|(\s*$)/g, '');
1344
+ },
1345
+ trimRight: function (str) {
1346
+ if (String.prototype.trimRight) {
1347
+ return str.trimRight();
1348
+ }
1349
+ return str.replace(/(\s*$)/g, '');
1350
+ }
1351
+ };
1352
+
1353
+ /**
1354
+ * cssfilter
1355
+ *
1356
+ * @author 老雷<leizongmin@gmail.com>
1357
+ */
1358
+
1359
+ var _$3 = util$1;
1360
+
1361
+
1362
+ /**
1363
+ * 解析style
1364
+ *
1365
+ * @param {String} css
1366
+ * @param {Function} onAttr 处理属性的函数
1367
+ * 参数格式: function (sourcePosition, position, name, value, source)
1368
+ * @return {String}
1369
+ */
1370
+ function parseStyle$1 (css, onAttr) {
1371
+ css = _$3.trimRight(css);
1372
+ if (css[css.length - 1] !== ';') css += ';';
1373
+ var cssLength = css.length;
1374
+ var isParenthesisOpen = false;
1375
+ var lastPos = 0;
1376
+ var i = 0;
1377
+ var retCSS = '';
1378
+
1379
+ function addNewAttr () {
1380
+ // 如果没有正常的闭合圆括号,则直接忽略当前属性
1381
+ if (!isParenthesisOpen) {
1382
+ var source = _$3.trim(css.slice(lastPos, i));
1383
+ var j = source.indexOf(':');
1384
+ if (j !== -1) {
1385
+ var name = _$3.trim(source.slice(0, j));
1386
+ var value = _$3.trim(source.slice(j + 1));
1387
+ // 必须有属性名称
1388
+ if (name) {
1389
+ var ret = onAttr(lastPos, retCSS.length, name, value, source);
1390
+ if (ret) retCSS += ret + '; ';
1391
+ }
1392
+ }
1393
+ }
1394
+ lastPos = i + 1;
1395
+ }
1396
+
1397
+ for (; i < cssLength; i++) {
1398
+ var c = css[i];
1399
+ if (c === '/' && css[i + 1] === '*') {
1400
+ // 备注开始
1401
+ var j = css.indexOf('*/', i + 2);
1402
+ // 如果没有正常的备注结束,则后面的部分全部跳过
1403
+ if (j === -1) break;
1404
+ // 直接将当前位置调到备注结尾,并且初始化状态
1405
+ i = j + 1;
1406
+ lastPos = i + 1;
1407
+ isParenthesisOpen = false;
1408
+ } else if (c === '(') {
1409
+ isParenthesisOpen = true;
1410
+ } else if (c === ')') {
1411
+ isParenthesisOpen = false;
1412
+ } else if (c === ';') {
1413
+ if (isParenthesisOpen) ; else {
1414
+ addNewAttr();
1415
+ }
1416
+ } else if (c === '\n') {
1417
+ addNewAttr();
1418
+ }
1419
+ }
1420
+
1421
+ return _$3.trim(retCSS);
1422
+ }
1423
+
1424
+ var parser$2 = parseStyle$1;
1425
+
1426
+ /**
1427
+ * cssfilter
1428
+ *
1429
+ * @author 老雷<leizongmin@gmail.com>
1430
+ */
1431
+
1432
+ var DEFAULT$1 = _default;
1433
+ var parseStyle = parser$2;
1434
+
1435
+
1436
+ /**
1437
+ * 返回值是否为空
1438
+ *
1439
+ * @param {Object} obj
1440
+ * @return {Boolean}
1441
+ */
1442
+ function isNull$1 (obj) {
1443
+ return (obj === undefined || obj === null);
1444
+ }
1445
+
1446
+ /**
1447
+ * 浅拷贝对象
1448
+ *
1449
+ * @param {Object} obj
1450
+ * @return {Object}
1451
+ */
1452
+ function shallowCopyObject$1 (obj) {
1453
+ var ret = {};
1454
+ for (var i in obj) {
1455
+ ret[i] = obj[i];
1456
+ }
1457
+ return ret;
1458
+ }
1459
+
1460
+ /**
1461
+ * 创建CSS过滤器
1462
+ *
1463
+ * @param {Object} options
1464
+ * - {Object} whiteList
1465
+ * - {Function} onAttr
1466
+ * - {Function} onIgnoreAttr
1467
+ * - {Function} safeAttrValue
1468
+ */
1469
+ function FilterCSS$2 (options) {
1470
+ options = shallowCopyObject$1(options || {});
1471
+ options.whiteList = options.whiteList || DEFAULT$1.whiteList;
1472
+ options.onAttr = options.onAttr || DEFAULT$1.onAttr;
1473
+ options.onIgnoreAttr = options.onIgnoreAttr || DEFAULT$1.onIgnoreAttr;
1474
+ options.safeAttrValue = options.safeAttrValue || DEFAULT$1.safeAttrValue;
1475
+ this.options = options;
1476
+ }
1477
+
1478
+ FilterCSS$2.prototype.process = function (css) {
1479
+ // 兼容各种奇葩输入
1480
+ css = css || '';
1481
+ css = css.toString();
1482
+ if (!css) return '';
1483
+
1484
+ var me = this;
1485
+ var options = me.options;
1486
+ var whiteList = options.whiteList;
1487
+ var onAttr = options.onAttr;
1488
+ var onIgnoreAttr = options.onIgnoreAttr;
1489
+ var safeAttrValue = options.safeAttrValue;
1490
+
1491
+ var retCSS = parseStyle(css, function (sourcePosition, position, name, value, source) {
1492
+
1493
+ var check = whiteList[name];
1494
+ var isWhite = false;
1495
+ if (check === true) isWhite = check;
1496
+ else if (typeof check === 'function') isWhite = check(value);
1497
+ else if (check instanceof RegExp) isWhite = check.test(value);
1498
+ if (isWhite !== true) isWhite = false;
1499
+
1500
+ // 如果过滤后 value 为空则直接忽略
1501
+ value = safeAttrValue(name, value);
1502
+ if (!value) return;
1503
+
1504
+ var opts = {
1505
+ position: position,
1506
+ sourcePosition: sourcePosition,
1507
+ source: source,
1508
+ isWhite: isWhite
1509
+ };
1510
+
1511
+ if (isWhite) {
1512
+
1513
+ var ret = onAttr(name, value, opts);
1514
+ if (isNull$1(ret)) {
1515
+ return name + ':' + value;
1516
+ } else {
1517
+ return ret;
1518
+ }
1519
+
1520
+ } else {
1521
+
1522
+ var ret = onIgnoreAttr(name, value, opts);
1523
+ if (!isNull$1(ret)) {
1524
+ return ret;
1525
+ }
1526
+
1527
+ }
1528
+ });
1529
+
1530
+ return retCSS;
1531
+ };
1532
+
1533
+
1534
+ var css = FilterCSS$2;
1535
+
1536
+ /**
1537
+ * cssfilter
1538
+ *
1539
+ * @author 老雷<leizongmin@gmail.com>
1540
+ */
1541
+
1542
+ (function (module, exports) {
1543
+ var DEFAULT = _default;
1544
+ var FilterCSS = css;
1545
+
1546
+
1547
+ /**
1548
+ * XSS过滤
1549
+ *
1550
+ * @param {String} css 要过滤的CSS代码
1551
+ * @param {Object} options 选项:whiteList, onAttr, onIgnoreAttr
1552
+ * @return {String}
1553
+ */
1554
+ function filterCSS (html, options) {
1555
+ var xss = new FilterCSS(options);
1556
+ return xss.process(html);
1557
+ }
1558
+
1559
+
1560
+ // 输出
1561
+ exports = module.exports = filterCSS;
1562
+ exports.FilterCSS = FilterCSS;
1563
+ for (var i in DEFAULT) exports[i] = DEFAULT[i];
1564
+ } (lib, lib.exports));
1565
+
1566
+ var util = {
1567
+ indexOf: function (arr, item) {
1568
+ var i, j;
1569
+ if (Array.prototype.indexOf) {
1570
+ return arr.indexOf(item);
1571
+ }
1572
+ for (i = 0, j = arr.length; i < j; i++) {
1573
+ if (arr[i] === item) {
1574
+ return i;
1575
+ }
1576
+ }
1577
+ return -1;
1578
+ },
1579
+ forEach: function (arr, fn, scope) {
1580
+ var i, j;
1581
+ if (Array.prototype.forEach) {
1582
+ return arr.forEach(fn, scope);
1583
+ }
1584
+ for (i = 0, j = arr.length; i < j; i++) {
1585
+ fn.call(scope, arr[i], i, arr);
1586
+ }
1587
+ },
1588
+ trim: function (str) {
1589
+ if (String.prototype.trim) {
1590
+ return str.trim();
1591
+ }
1592
+ return str.replace(/(^\s*)|(\s*$)/g, "");
1593
+ },
1594
+ spaceIndex: function (str) {
1595
+ var reg = /\s|\n|\t/;
1596
+ var match = reg.exec(str);
1597
+ return match ? match.index : -1;
1598
+ },
1599
+ };
1600
+
1601
+ /**
1602
+ * default settings
1603
+ *
1604
+ * @author Zongmin Lei<leizongmin@gmail.com>
1605
+ */
1606
+
1607
+ var FilterCSS$1 = lib.exports.FilterCSS;
1608
+ var getDefaultCSSWhiteList = lib.exports.getDefaultWhiteList;
1609
+ var _$2 = util;
1610
+
1611
+ function getDefaultWhiteList() {
1612
+ return {
1613
+ a: ["target", "href", "title"],
1614
+ abbr: ["title"],
1615
+ address: [],
1616
+ area: ["shape", "coords", "href", "alt"],
1617
+ article: [],
1618
+ aside: [],
1619
+ audio: [
1620
+ "autoplay",
1621
+ "controls",
1622
+ "crossorigin",
1623
+ "loop",
1624
+ "muted",
1625
+ "preload",
1626
+ "src",
1627
+ ],
1628
+ b: [],
1629
+ bdi: ["dir"],
1630
+ bdo: ["dir"],
1631
+ big: [],
1632
+ blockquote: ["cite"],
1633
+ br: [],
1634
+ caption: [],
1635
+ center: [],
1636
+ cite: [],
1637
+ code: [],
1638
+ col: ["align", "valign", "span", "width"],
1639
+ colgroup: ["align", "valign", "span", "width"],
1640
+ dd: [],
1641
+ del: ["datetime"],
1642
+ details: ["open"],
1643
+ div: [],
1644
+ dl: [],
1645
+ dt: [],
1646
+ em: [],
1647
+ figcaption: [],
1648
+ figure: [],
1649
+ font: ["color", "size", "face"],
1650
+ footer: [],
1651
+ h1: [],
1652
+ h2: [],
1653
+ h3: [],
1654
+ h4: [],
1655
+ h5: [],
1656
+ h6: [],
1657
+ header: [],
1658
+ hr: [],
1659
+ i: [],
1660
+ img: ["src", "alt", "title", "width", "height"],
1661
+ ins: ["datetime"],
1662
+ li: [],
1663
+ mark: [],
1664
+ nav: [],
1665
+ ol: [],
1666
+ p: [],
1667
+ pre: [],
1668
+ s: [],
1669
+ section: [],
1670
+ small: [],
1671
+ span: [],
1672
+ sub: [],
1673
+ summary: [],
1674
+ sup: [],
1675
+ strong: [],
1676
+ strike: [],
1677
+ table: ["width", "border", "align", "valign"],
1678
+ tbody: ["align", "valign"],
1679
+ td: ["width", "rowspan", "colspan", "align", "valign"],
1680
+ tfoot: ["align", "valign"],
1681
+ th: ["width", "rowspan", "colspan", "align", "valign"],
1682
+ thead: ["align", "valign"],
1683
+ tr: ["rowspan", "align", "valign"],
1684
+ tt: [],
1685
+ u: [],
1686
+ ul: [],
1687
+ video: [
1688
+ "autoplay",
1689
+ "controls",
1690
+ "crossorigin",
1691
+ "loop",
1692
+ "muted",
1693
+ "playsinline",
1694
+ "poster",
1695
+ "preload",
1696
+ "src",
1697
+ "height",
1698
+ "width",
1699
+ ],
1700
+ };
1701
+ }
1702
+
1703
+ var defaultCSSFilter = new FilterCSS$1();
1704
+
1705
+ /**
1706
+ * default onTag function
1707
+ *
1708
+ * @param {String} tag
1709
+ * @param {String} html
1710
+ * @param {Object} options
1711
+ * @return {String}
1712
+ */
1713
+ function onTag(tag, html, options) {
1714
+ // do nothing
1715
+ }
1716
+
1717
+ /**
1718
+ * default onIgnoreTag function
1719
+ *
1720
+ * @param {String} tag
1721
+ * @param {String} html
1722
+ * @param {Object} options
1723
+ * @return {String}
1724
+ */
1725
+ function onIgnoreTag(tag, html, options) {
1726
+ // do nothing
1727
+ }
1728
+
1729
+ /**
1730
+ * default onTagAttr function
1731
+ *
1732
+ * @param {String} tag
1733
+ * @param {String} name
1734
+ * @param {String} value
1735
+ * @return {String}
1736
+ */
1737
+ function onTagAttr(tag, name, value) {
1738
+ // do nothing
1739
+ }
1740
+
1741
+ /**
1742
+ * default onIgnoreTagAttr function
1743
+ *
1744
+ * @param {String} tag
1745
+ * @param {String} name
1746
+ * @param {String} value
1747
+ * @return {String}
1748
+ */
1749
+ function onIgnoreTagAttr(tag, name, value) {
1750
+ // do nothing
1751
+ }
1752
+
1753
+ /**
1754
+ * default escapeHtml function
1755
+ *
1756
+ * @param {String} html
1757
+ */
1758
+ function escapeHtml(html) {
1759
+ return html.replace(REGEXP_LT, "&lt;").replace(REGEXP_GT, "&gt;");
1760
+ }
1761
+
1762
+ /**
1763
+ * default safeAttrValue function
1764
+ *
1765
+ * @param {String} tag
1766
+ * @param {String} name
1767
+ * @param {String} value
1768
+ * @param {Object} cssFilter
1769
+ * @return {String}
1770
+ */
1771
+ function safeAttrValue(tag, name, value, cssFilter) {
1772
+ // unescape attribute value firstly
1773
+ value = friendlyAttrValue(value);
1774
+
1775
+ if (name === "href" || name === "src") {
1776
+ // filter `href` and `src` attribute
1777
+ // only allow the value that starts with `http://` | `https://` | `mailto:` | `/` | `#`
1778
+ value = _$2.trim(value);
1779
+ if (value === "#") return "#";
1780
+ if (
1781
+ !(
1782
+ value.substr(0, 7) === "http://" ||
1783
+ value.substr(0, 8) === "https://" ||
1784
+ value.substr(0, 7) === "mailto:" ||
1785
+ value.substr(0, 4) === "tel:" ||
1786
+ value.substr(0, 11) === "data:image/" ||
1787
+ value.substr(0, 6) === "ftp://" ||
1788
+ value.substr(0, 2) === "./" ||
1789
+ value.substr(0, 3) === "../" ||
1790
+ value[0] === "#" ||
1791
+ value[0] === "/"
1792
+ )
1793
+ ) {
1794
+ return "";
1795
+ }
1796
+ } else if (name === "background") {
1797
+ // filter `background` attribute (maybe no use)
1798
+ // `javascript:`
1799
+ REGEXP_DEFAULT_ON_TAG_ATTR_4.lastIndex = 0;
1800
+ if (REGEXP_DEFAULT_ON_TAG_ATTR_4.test(value)) {
1801
+ return "";
1802
+ }
1803
+ } else if (name === "style") {
1804
+ // `expression()`
1805
+ REGEXP_DEFAULT_ON_TAG_ATTR_7.lastIndex = 0;
1806
+ if (REGEXP_DEFAULT_ON_TAG_ATTR_7.test(value)) {
1807
+ return "";
1808
+ }
1809
+ // `url()`
1810
+ REGEXP_DEFAULT_ON_TAG_ATTR_8.lastIndex = 0;
1811
+ if (REGEXP_DEFAULT_ON_TAG_ATTR_8.test(value)) {
1812
+ REGEXP_DEFAULT_ON_TAG_ATTR_4.lastIndex = 0;
1813
+ if (REGEXP_DEFAULT_ON_TAG_ATTR_4.test(value)) {
1814
+ return "";
1815
+ }
1816
+ }
1817
+ if (cssFilter !== false) {
1818
+ cssFilter = cssFilter || defaultCSSFilter;
1819
+ value = cssFilter.process(value);
1820
+ }
1821
+ }
1822
+
1823
+ // escape `<>"` before returns
1824
+ value = escapeAttrValue(value);
1825
+ return value;
1826
+ }
1827
+
1828
+ // RegExp list
1829
+ var REGEXP_LT = /</g;
1830
+ var REGEXP_GT = />/g;
1831
+ var REGEXP_QUOTE = /"/g;
1832
+ var REGEXP_QUOTE_2 = /&quot;/g;
1833
+ var REGEXP_ATTR_VALUE_1 = /&#([a-zA-Z0-9]*);?/gim;
1834
+ var REGEXP_ATTR_VALUE_COLON = /&colon;?/gim;
1835
+ var REGEXP_ATTR_VALUE_NEWLINE = /&newline;?/gim;
1836
+ // var REGEXP_DEFAULT_ON_TAG_ATTR_3 = /\/\*|\*\//gm;
1837
+ var REGEXP_DEFAULT_ON_TAG_ATTR_4 =
1838
+ /((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;
1839
+ // var REGEXP_DEFAULT_ON_TAG_ATTR_5 = /^[\s"'`]*(d\s*a\s*t\s*a\s*)\:/gi;
1840
+ // var REGEXP_DEFAULT_ON_TAG_ATTR_6 = /^[\s"'`]*(d\s*a\s*t\s*a\s*)\:\s*image\//gi;
1841
+ var REGEXP_DEFAULT_ON_TAG_ATTR_7 =
1842
+ /e\s*x\s*p\s*r\s*e\s*s\s*s\s*i\s*o\s*n\s*\(.*/gi;
1843
+ var REGEXP_DEFAULT_ON_TAG_ATTR_8 = /u\s*r\s*l\s*\(.*/gi;
1844
+
1845
+ /**
1846
+ * escape double quote
1847
+ *
1848
+ * @param {String} str
1849
+ * @return {String} str
1850
+ */
1851
+ function escapeQuote(str) {
1852
+ return str.replace(REGEXP_QUOTE, "&quot;");
1853
+ }
1854
+
1855
+ /**
1856
+ * unescape double quote
1857
+ *
1858
+ * @param {String} str
1859
+ * @return {String} str
1860
+ */
1861
+ function unescapeQuote(str) {
1862
+ return str.replace(REGEXP_QUOTE_2, '"');
1863
+ }
1864
+
1865
+ /**
1866
+ * escape html entities
1867
+ *
1868
+ * @param {String} str
1869
+ * @return {String}
1870
+ */
1871
+ function escapeHtmlEntities(str) {
1872
+ return str.replace(REGEXP_ATTR_VALUE_1, function replaceUnicode(str, code) {
1873
+ return code[0] === "x" || code[0] === "X"
1874
+ ? String.fromCharCode(parseInt(code.substr(1), 16))
1875
+ : String.fromCharCode(parseInt(code, 10));
1876
+ });
1877
+ }
1878
+
1879
+ /**
1880
+ * escape html5 new danger entities
1881
+ *
1882
+ * @param {String} str
1883
+ * @return {String}
1884
+ */
1885
+ function escapeDangerHtml5Entities(str) {
1886
+ return str
1887
+ .replace(REGEXP_ATTR_VALUE_COLON, ":")
1888
+ .replace(REGEXP_ATTR_VALUE_NEWLINE, " ");
1889
+ }
1890
+
1891
+ /**
1892
+ * clear nonprintable characters
1893
+ *
1894
+ * @param {String} str
1895
+ * @return {String}
1896
+ */
1897
+ function clearNonPrintableCharacter(str) {
1898
+ var str2 = "";
1899
+ for (var i = 0, len = str.length; i < len; i++) {
1900
+ str2 += str.charCodeAt(i) < 32 ? " " : str.charAt(i);
1901
+ }
1902
+ return _$2.trim(str2);
1903
+ }
1904
+
1905
+ /**
1906
+ * get friendly attribute value
1907
+ *
1908
+ * @param {String} str
1909
+ * @return {String}
1910
+ */
1911
+ function friendlyAttrValue(str) {
1912
+ str = unescapeQuote(str);
1913
+ str = escapeHtmlEntities(str);
1914
+ str = escapeDangerHtml5Entities(str);
1915
+ str = clearNonPrintableCharacter(str);
1916
+ return str;
1917
+ }
1918
+
1919
+ /**
1920
+ * unescape attribute value
1921
+ *
1922
+ * @param {String} str
1923
+ * @return {String}
1924
+ */
1925
+ function escapeAttrValue(str) {
1926
+ str = escapeQuote(str);
1927
+ str = escapeHtml(str);
1928
+ return str;
1929
+ }
1930
+
1931
+ /**
1932
+ * `onIgnoreTag` function for removing all the tags that are not in whitelist
1933
+ */
1934
+ function onIgnoreTagStripAll() {
1935
+ return "";
1936
+ }
1937
+
1938
+ /**
1939
+ * remove tag body
1940
+ * specify a `tags` list, if the tag is not in the `tags` list then process by the specify function (optional)
1941
+ *
1942
+ * @param {array} tags
1943
+ * @param {function} next
1944
+ */
1945
+ function StripTagBody(tags, next) {
1946
+ if (typeof next !== "function") {
1947
+ next = function () {};
1948
+ }
1949
+
1950
+ var isRemoveAllTag = !Array.isArray(tags);
1951
+ function isRemoveTag(tag) {
1952
+ if (isRemoveAllTag) return true;
1953
+ return _$2.indexOf(tags, tag) !== -1;
1954
+ }
1955
+
1956
+ var removeList = [];
1957
+ var posStart = false;
1958
+
1959
+ return {
1960
+ onIgnoreTag: function (tag, html, options) {
1961
+ if (isRemoveTag(tag)) {
1962
+ if (options.isClosing) {
1963
+ var ret = "[/removed]";
1964
+ var end = options.position + ret.length;
1965
+ removeList.push([
1966
+ posStart !== false ? posStart : options.position,
1967
+ end,
1968
+ ]);
1969
+ posStart = false;
1970
+ return ret;
1971
+ } else {
1972
+ if (!posStart) {
1973
+ posStart = options.position;
1974
+ }
1975
+ return "[removed]";
1976
+ }
1977
+ } else {
1978
+ return next(tag, html, options);
1979
+ }
1980
+ },
1981
+ remove: function (html) {
1982
+ var rethtml = "";
1983
+ var lastPos = 0;
1984
+ _$2.forEach(removeList, function (pos) {
1985
+ rethtml += html.slice(lastPos, pos[0]);
1986
+ lastPos = pos[1];
1987
+ });
1988
+ rethtml += html.slice(lastPos);
1989
+ return rethtml;
1990
+ },
1991
+ };
1992
+ }
1993
+
1994
+ /**
1995
+ * remove html comments
1996
+ *
1997
+ * @param {String} html
1998
+ * @return {String}
1999
+ */
2000
+ function stripCommentTag(html) {
2001
+ var retHtml = "";
2002
+ var lastPos = 0;
2003
+ while (lastPos < html.length) {
2004
+ var i = html.indexOf("<!--", lastPos);
2005
+ if (i === -1) {
2006
+ retHtml += html.slice(lastPos);
2007
+ break;
2008
+ }
2009
+ retHtml += html.slice(lastPos, i);
2010
+ var j = html.indexOf("-->", i);
2011
+ if (j === -1) {
2012
+ break;
2013
+ }
2014
+ lastPos = j + 3;
2015
+ }
2016
+ return retHtml;
2017
+ }
2018
+
2019
+ /**
2020
+ * remove invisible characters
2021
+ *
2022
+ * @param {String} html
2023
+ * @return {String}
2024
+ */
2025
+ function stripBlankChar(html) {
2026
+ var chars = html.split("");
2027
+ chars = chars.filter(function (char) {
2028
+ var c = char.charCodeAt(0);
2029
+ if (c === 127) return false;
2030
+ if (c <= 31) {
2031
+ if (c === 10 || c === 13) return true;
2032
+ return false;
2033
+ }
2034
+ return true;
2035
+ });
2036
+ return chars.join("");
2037
+ }
2038
+
2039
+ _default$1.whiteList = getDefaultWhiteList();
2040
+ _default$1.getDefaultWhiteList = getDefaultWhiteList;
2041
+ _default$1.onTag = onTag;
2042
+ _default$1.onIgnoreTag = onIgnoreTag;
2043
+ _default$1.onTagAttr = onTagAttr;
2044
+ _default$1.onIgnoreTagAttr = onIgnoreTagAttr;
2045
+ _default$1.safeAttrValue = safeAttrValue;
2046
+ _default$1.escapeHtml = escapeHtml;
2047
+ _default$1.escapeQuote = escapeQuote;
2048
+ _default$1.unescapeQuote = unescapeQuote;
2049
+ _default$1.escapeHtmlEntities = escapeHtmlEntities;
2050
+ _default$1.escapeDangerHtml5Entities = escapeDangerHtml5Entities;
2051
+ _default$1.clearNonPrintableCharacter = clearNonPrintableCharacter;
2052
+ _default$1.friendlyAttrValue = friendlyAttrValue;
2053
+ _default$1.escapeAttrValue = escapeAttrValue;
2054
+ _default$1.onIgnoreTagStripAll = onIgnoreTagStripAll;
2055
+ _default$1.StripTagBody = StripTagBody;
2056
+ _default$1.stripCommentTag = stripCommentTag;
2057
+ _default$1.stripBlankChar = stripBlankChar;
2058
+ _default$1.cssFilter = defaultCSSFilter;
2059
+ _default$1.getDefaultCSSWhiteList = getDefaultCSSWhiteList;
2060
+
2061
+ var parser$1 = {};
2062
+
2063
+ /**
2064
+ * Simple HTML Parser
2065
+ *
2066
+ * @author Zongmin Lei<leizongmin@gmail.com>
2067
+ */
2068
+
2069
+ var _$1 = util;
2070
+
2071
+ /**
2072
+ * get tag name
2073
+ *
2074
+ * @param {String} html e.g. '<a hef="#">'
2075
+ * @return {String}
2076
+ */
2077
+ function getTagName(html) {
2078
+ var i = _$1.spaceIndex(html);
2079
+ var tagName;
2080
+ if (i === -1) {
2081
+ tagName = html.slice(1, -1);
2082
+ } else {
2083
+ tagName = html.slice(1, i + 1);
2084
+ }
2085
+ tagName = _$1.trim(tagName).toLowerCase();
2086
+ if (tagName.slice(0, 1) === "/") tagName = tagName.slice(1);
2087
+ if (tagName.slice(-1) === "/") tagName = tagName.slice(0, -1);
2088
+ return tagName;
2089
+ }
2090
+
2091
+ /**
2092
+ * is close tag?
2093
+ *
2094
+ * @param {String} html 如:'<a hef="#">'
2095
+ * @return {Boolean}
2096
+ */
2097
+ function isClosing(html) {
2098
+ return html.slice(0, 2) === "</";
2099
+ }
2100
+
2101
+ /**
2102
+ * parse input html and returns processed html
2103
+ *
2104
+ * @param {String} html
2105
+ * @param {Function} onTag e.g. function (sourcePosition, position, tag, html, isClosing)
2106
+ * @param {Function} escapeHtml
2107
+ * @return {String}
2108
+ */
2109
+ function parseTag$1(html, onTag, escapeHtml) {
2110
+
2111
+ var rethtml = "";
2112
+ var lastPos = 0;
2113
+ var tagStart = false;
2114
+ var quoteStart = false;
2115
+ var currentPos = 0;
2116
+ var len = html.length;
2117
+ var currentTagName = "";
2118
+ var currentHtml = "";
2119
+
2120
+ chariterator: for (currentPos = 0; currentPos < len; currentPos++) {
2121
+ var c = html.charAt(currentPos);
2122
+ if (tagStart === false) {
2123
+ if (c === "<") {
2124
+ tagStart = currentPos;
2125
+ continue;
2126
+ }
2127
+ } else {
2128
+ if (quoteStart === false) {
2129
+ if (c === "<") {
2130
+ rethtml += escapeHtml(html.slice(lastPos, currentPos));
2131
+ tagStart = currentPos;
2132
+ lastPos = currentPos;
2133
+ continue;
2134
+ }
2135
+ if (c === ">") {
2136
+ rethtml += escapeHtml(html.slice(lastPos, tagStart));
2137
+ currentHtml = html.slice(tagStart, currentPos + 1);
2138
+ currentTagName = getTagName(currentHtml);
2139
+ rethtml += onTag(
2140
+ tagStart,
2141
+ rethtml.length,
2142
+ currentTagName,
2143
+ currentHtml,
2144
+ isClosing(currentHtml)
2145
+ );
2146
+ lastPos = currentPos + 1;
2147
+ tagStart = false;
2148
+ continue;
2149
+ }
2150
+ if (c === '"' || c === "'") {
2151
+ var i = 1;
2152
+ var ic = html.charAt(currentPos - i);
2153
+
2154
+ while (ic.trim() === "" || ic === "=") {
2155
+ if (ic === "=") {
2156
+ quoteStart = c;
2157
+ continue chariterator;
2158
+ }
2159
+ ic = html.charAt(currentPos - ++i);
2160
+ }
2161
+ }
2162
+ } else {
2163
+ if (c === quoteStart) {
2164
+ quoteStart = false;
2165
+ continue;
2166
+ }
2167
+ }
2168
+ }
2169
+ }
2170
+ if (lastPos < html.length) {
2171
+ rethtml += escapeHtml(html.substr(lastPos));
2172
+ }
2173
+
2174
+ return rethtml;
2175
+ }
2176
+
2177
+ var REGEXP_ILLEGAL_ATTR_NAME = /[^a-zA-Z0-9\\_:.-]/gim;
2178
+
2179
+ /**
2180
+ * parse input attributes and returns processed attributes
2181
+ *
2182
+ * @param {String} html e.g. `href="#" target="_blank"`
2183
+ * @param {Function} onAttr e.g. `function (name, value)`
2184
+ * @return {String}
2185
+ */
2186
+ function parseAttr$1(html, onAttr) {
2187
+
2188
+ var lastPos = 0;
2189
+ var lastMarkPos = 0;
2190
+ var retAttrs = [];
2191
+ var tmpName = false;
2192
+ var len = html.length;
2193
+
2194
+ function addAttr(name, value) {
2195
+ name = _$1.trim(name);
2196
+ name = name.replace(REGEXP_ILLEGAL_ATTR_NAME, "").toLowerCase();
2197
+ if (name.length < 1) return;
2198
+ var ret = onAttr(name, value || "");
2199
+ if (ret) retAttrs.push(ret);
2200
+ }
2201
+
2202
+ // 逐个分析字符
2203
+ for (var i = 0; i < len; i++) {
2204
+ var c = html.charAt(i);
2205
+ var v, j;
2206
+ if (tmpName === false && c === "=") {
2207
+ tmpName = html.slice(lastPos, i);
2208
+ lastPos = i + 1;
2209
+ lastMarkPos = html.charAt(lastPos) === '"' || html.charAt(lastPos) === "'" ? lastPos : findNextQuotationMark(html, i + 1);
2210
+ continue;
2211
+ }
2212
+ if (tmpName !== false) {
2213
+ if (
2214
+ i === lastMarkPos
2215
+ ) {
2216
+ j = html.indexOf(c, i + 1);
2217
+ if (j === -1) {
2218
+ break;
2219
+ } else {
2220
+ v = _$1.trim(html.slice(lastMarkPos + 1, j));
2221
+ addAttr(tmpName, v);
2222
+ tmpName = false;
2223
+ i = j;
2224
+ lastPos = i + 1;
2225
+ continue;
2226
+ }
2227
+ }
2228
+ }
2229
+ if (/\s|\n|\t/.test(c)) {
2230
+ html = html.replace(/\s|\n|\t/g, " ");
2231
+ if (tmpName === false) {
2232
+ j = findNextEqual(html, i);
2233
+ if (j === -1) {
2234
+ v = _$1.trim(html.slice(lastPos, i));
2235
+ addAttr(v);
2236
+ tmpName = false;
2237
+ lastPos = i + 1;
2238
+ continue;
2239
+ } else {
2240
+ i = j - 1;
2241
+ continue;
2242
+ }
2243
+ } else {
2244
+ j = findBeforeEqual(html, i - 1);
2245
+ if (j === -1) {
2246
+ v = _$1.trim(html.slice(lastPos, i));
2247
+ v = stripQuoteWrap(v);
2248
+ addAttr(tmpName, v);
2249
+ tmpName = false;
2250
+ lastPos = i + 1;
2251
+ continue;
2252
+ } else {
2253
+ continue;
2254
+ }
2255
+ }
2256
+ }
2257
+ }
2258
+
2259
+ if (lastPos < html.length) {
2260
+ if (tmpName === false) {
2261
+ addAttr(html.slice(lastPos));
2262
+ } else {
2263
+ addAttr(tmpName, stripQuoteWrap(_$1.trim(html.slice(lastPos))));
2264
+ }
2265
+ }
2266
+
2267
+ return _$1.trim(retAttrs.join(" "));
2268
+ }
2269
+
2270
+ function findNextEqual(str, i) {
2271
+ for (; i < str.length; i++) {
2272
+ var c = str[i];
2273
+ if (c === " ") continue;
2274
+ if (c === "=") return i;
2275
+ return -1;
2276
+ }
2277
+ }
2278
+
2279
+ function findNextQuotationMark(str, i) {
2280
+ for (; i < str.length; i++) {
2281
+ var c = str[i];
2282
+ if (c === " ") continue;
2283
+ if (c === "'" || c === '"') return i;
2284
+ return -1;
2285
+ }
2286
+ }
2287
+
2288
+ function findBeforeEqual(str, i) {
2289
+ for (; i > 0; i--) {
2290
+ var c = str[i];
2291
+ if (c === " ") continue;
2292
+ if (c === "=") return i;
2293
+ return -1;
2294
+ }
2295
+ }
2296
+
2297
+ function isQuoteWrapString(text) {
2298
+ if (
2299
+ (text[0] === '"' && text[text.length - 1] === '"') ||
2300
+ (text[0] === "'" && text[text.length - 1] === "'")
2301
+ ) {
2302
+ return true;
2303
+ } else {
2304
+ return false;
2305
+ }
2306
+ }
2307
+
2308
+ function stripQuoteWrap(text) {
2309
+ if (isQuoteWrapString(text)) {
2310
+ return text.substr(1, text.length - 2);
2311
+ } else {
2312
+ return text;
2313
+ }
2314
+ }
2315
+
2316
+ parser$1.parseTag = parseTag$1;
2317
+ parser$1.parseAttr = parseAttr$1;
2318
+
2319
+ /**
2320
+ * filter xss
2321
+ *
2322
+ * @author Zongmin Lei<leizongmin@gmail.com>
2323
+ */
2324
+
2325
+ var FilterCSS = lib.exports.FilterCSS;
2326
+ var DEFAULT = _default$1;
2327
+ var parser = parser$1;
2328
+ var parseTag = parser.parseTag;
2329
+ var parseAttr = parser.parseAttr;
2330
+ var _ = util;
2331
+
2332
+ /**
2333
+ * returns `true` if the input value is `undefined` or `null`
2334
+ *
2335
+ * @param {Object} obj
2336
+ * @return {Boolean}
2337
+ */
2338
+ function isNull(obj) {
2339
+ return obj === undefined || obj === null;
2340
+ }
2341
+
2342
+ /**
2343
+ * get attributes for a tag
2344
+ *
2345
+ * @param {String} html
2346
+ * @return {Object}
2347
+ * - {String} html
2348
+ * - {Boolean} closing
2349
+ */
2350
+ function getAttrs(html) {
2351
+ var i = _.spaceIndex(html);
2352
+ if (i === -1) {
2353
+ return {
2354
+ html: "",
2355
+ closing: html[html.length - 2] === "/",
2356
+ };
2357
+ }
2358
+ html = _.trim(html.slice(i + 1, -1));
2359
+ var isClosing = html[html.length - 1] === "/";
2360
+ if (isClosing) html = _.trim(html.slice(0, -1));
2361
+ return {
2362
+ html: html,
2363
+ closing: isClosing,
2364
+ };
2365
+ }
2366
+
2367
+ /**
2368
+ * shallow copy
2369
+ *
2370
+ * @param {Object} obj
2371
+ * @return {Object}
2372
+ */
2373
+ function shallowCopyObject(obj) {
2374
+ var ret = {};
2375
+ for (var i in obj) {
2376
+ ret[i] = obj[i];
2377
+ }
2378
+ return ret;
2379
+ }
2380
+
2381
+ function keysToLowerCase(obj) {
2382
+ var ret = {};
2383
+ for (var i in obj) {
2384
+ if (Array.isArray(obj[i])) {
2385
+ ret[i.toLowerCase()] = obj[i].map(function (item) {
2386
+ return item.toLowerCase();
2387
+ });
2388
+ } else {
2389
+ ret[i.toLowerCase()] = obj[i];
2390
+ }
2391
+ }
2392
+ return ret;
2393
+ }
2394
+
2395
+ /**
2396
+ * FilterXSS class
2397
+ *
2398
+ * @param {Object} options
2399
+ * whiteList (or allowList), onTag, onTagAttr, onIgnoreTag,
2400
+ * onIgnoreTagAttr, safeAttrValue, escapeHtml
2401
+ * stripIgnoreTagBody, allowCommentTag, stripBlankChar
2402
+ * css{whiteList, onAttr, onIgnoreAttr} `css=false` means don't use `cssfilter`
2403
+ */
2404
+ function FilterXSS(options) {
2405
+ options = shallowCopyObject(options || {});
2406
+
2407
+ if (options.stripIgnoreTag) {
2408
+ if (options.onIgnoreTag) {
2409
+ console.error(
2410
+ 'Notes: cannot use these two options "stripIgnoreTag" and "onIgnoreTag" at the same time'
2411
+ );
2412
+ }
2413
+ options.onIgnoreTag = DEFAULT.onIgnoreTagStripAll;
2414
+ }
2415
+ if (options.whiteList || options.allowList) {
2416
+ options.whiteList = keysToLowerCase(options.whiteList || options.allowList);
2417
+ } else {
2418
+ options.whiteList = DEFAULT.whiteList;
2419
+ }
2420
+
2421
+ options.onTag = options.onTag || DEFAULT.onTag;
2422
+ options.onTagAttr = options.onTagAttr || DEFAULT.onTagAttr;
2423
+ options.onIgnoreTag = options.onIgnoreTag || DEFAULT.onIgnoreTag;
2424
+ options.onIgnoreTagAttr = options.onIgnoreTagAttr || DEFAULT.onIgnoreTagAttr;
2425
+ options.safeAttrValue = options.safeAttrValue || DEFAULT.safeAttrValue;
2426
+ options.escapeHtml = options.escapeHtml || DEFAULT.escapeHtml;
2427
+ this.options = options;
2428
+
2429
+ if (options.css === false) {
2430
+ this.cssFilter = false;
2431
+ } else {
2432
+ options.css = options.css || {};
2433
+ this.cssFilter = new FilterCSS(options.css);
2434
+ }
2435
+ }
2436
+
2437
+ /**
2438
+ * start process and returns result
2439
+ *
2440
+ * @param {String} html
2441
+ * @return {String}
2442
+ */
2443
+ FilterXSS.prototype.process = function (html) {
2444
+ // compatible with the input
2445
+ html = html || "";
2446
+ html = html.toString();
2447
+ if (!html) return "";
2448
+
2449
+ var me = this;
2450
+ var options = me.options;
2451
+ var whiteList = options.whiteList;
2452
+ var onTag = options.onTag;
2453
+ var onIgnoreTag = options.onIgnoreTag;
2454
+ var onTagAttr = options.onTagAttr;
2455
+ var onIgnoreTagAttr = options.onIgnoreTagAttr;
2456
+ var safeAttrValue = options.safeAttrValue;
2457
+ var escapeHtml = options.escapeHtml;
2458
+ var cssFilter = me.cssFilter;
2459
+
2460
+ // remove invisible characters
2461
+ if (options.stripBlankChar) {
2462
+ html = DEFAULT.stripBlankChar(html);
2463
+ }
2464
+
2465
+ // remove html comments
2466
+ if (!options.allowCommentTag) {
2467
+ html = DEFAULT.stripCommentTag(html);
2468
+ }
2469
+
2470
+ // if enable stripIgnoreTagBody
2471
+ var stripIgnoreTagBody = false;
2472
+ if (options.stripIgnoreTagBody) {
2473
+ stripIgnoreTagBody = DEFAULT.StripTagBody(
2474
+ options.stripIgnoreTagBody,
2475
+ onIgnoreTag
2476
+ );
2477
+ onIgnoreTag = stripIgnoreTagBody.onIgnoreTag;
2478
+ }
2479
+
2480
+ var retHtml = parseTag(
2481
+ html,
2482
+ function (sourcePosition, position, tag, html, isClosing) {
2483
+ var info = {
2484
+ sourcePosition: sourcePosition,
2485
+ position: position,
2486
+ isClosing: isClosing,
2487
+ isWhite: Object.prototype.hasOwnProperty.call(whiteList, tag),
2488
+ };
2489
+
2490
+ // call `onTag()`
2491
+ var ret = onTag(tag, html, info);
2492
+ if (!isNull(ret)) return ret;
2493
+
2494
+ if (info.isWhite) {
2495
+ if (info.isClosing) {
2496
+ return "</" + tag + ">";
2497
+ }
2498
+
2499
+ var attrs = getAttrs(html);
2500
+ var whiteAttrList = whiteList[tag];
2501
+ var attrsHtml = parseAttr(attrs.html, function (name, value) {
2502
+ // call `onTagAttr()`
2503
+ var isWhiteAttr = _.indexOf(whiteAttrList, name) !== -1;
2504
+ var ret = onTagAttr(tag, name, value, isWhiteAttr);
2505
+ if (!isNull(ret)) return ret;
2506
+
2507
+ if (isWhiteAttr) {
2508
+ // call `safeAttrValue()`
2509
+ value = safeAttrValue(tag, name, value, cssFilter);
2510
+ if (value) {
2511
+ return name + '="' + value + '"';
2512
+ } else {
2513
+ return name;
2514
+ }
2515
+ } else {
2516
+ // call `onIgnoreTagAttr()`
2517
+ ret = onIgnoreTagAttr(tag, name, value, isWhiteAttr);
2518
+ if (!isNull(ret)) return ret;
2519
+ return;
2520
+ }
2521
+ });
2522
+
2523
+ // build new tag html
2524
+ html = "<" + tag;
2525
+ if (attrsHtml) html += " " + attrsHtml;
2526
+ if (attrs.closing) html += " /";
2527
+ html += ">";
2528
+ return html;
2529
+ } else {
2530
+ // call `onIgnoreTag()`
2531
+ ret = onIgnoreTag(tag, html, info);
2532
+ if (!isNull(ret)) return ret;
2533
+ return escapeHtml(html);
2534
+ }
2535
+ },
2536
+ escapeHtml
2537
+ );
2538
+
2539
+ // if enable stripIgnoreTagBody
2540
+ if (stripIgnoreTagBody) {
2541
+ retHtml = stripIgnoreTagBody.remove(retHtml);
2542
+ }
2543
+
2544
+ return retHtml;
2545
+ };
2546
+
2547
+ var xss = FilterXSS;
2548
+
2549
+ /**
2550
+ * xss
2551
+ *
2552
+ * @author Zongmin Lei<leizongmin@gmail.com>
2553
+ */
2554
+
2555
+ (function (module, exports) {
2556
+ var DEFAULT = _default$1;
2557
+ var parser = parser$1;
2558
+ var FilterXSS = xss;
2559
+
2560
+ /**
2561
+ * filter xss function
2562
+ *
2563
+ * @param {String} html
2564
+ * @param {Object} options { whiteList, onTag, onTagAttr, onIgnoreTag, onIgnoreTagAttr, safeAttrValue, escapeHtml }
2565
+ * @return {String}
2566
+ */
2567
+ function filterXSS(html, options) {
2568
+ var xss = new FilterXSS(options);
2569
+ return xss.process(html);
2570
+ }
2571
+
2572
+ exports = module.exports = filterXSS;
2573
+ exports.filterXSS = filterXSS;
2574
+ exports.FilterXSS = FilterXSS;
2575
+
2576
+ (function () {
2577
+ for (var i in DEFAULT) {
2578
+ exports[i] = DEFAULT[i];
2579
+ }
2580
+ for (var j in parser) {
2581
+ exports[j] = parser[j];
2582
+ }
2583
+ })();
2584
+
2585
+ // using `xss` on the WebWorker, output `filterXSS` to the globals
2586
+ function isWorkerEnv() {
2587
+ return (
2588
+ typeof self !== "undefined" &&
2589
+ typeof DedicatedWorkerGlobalScope !== "undefined" &&
2590
+ self instanceof DedicatedWorkerGlobalScope
2591
+ );
2592
+ }
2593
+ if (isWorkerEnv()) {
2594
+ self.filterXSS = module.exports;
2595
+ }
2596
+ } (lib$1, lib$1.exports));
2597
+
2598
+ /** @license
2599
+ * Copyright 2020 Esri
2600
+ *
2601
+ * Licensed under the Apache License, Version 2.0 (the "License");
2602
+ * you may not use this file except in compliance with the License.
2603
+ * You may obtain a copy of the License at
2604
+ *
2605
+ * http://www.apache.org/licenses/LICENSE-2.0
2606
+ *
2607
+ * Unless required by applicable law or agreed to in writing, software
2608
+ * distributed under the License is distributed on an "AS IS" BASIS,
2609
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2610
+ * See the License for the specific language governing permissions and
2611
+ * limitations under the License.
2612
+ */
2613
+ /**
2614
+ * Supplies the File constructor for Microsoft Legacy Edge.
2615
+ *
2616
+ * @param fileBits Contents for file
2617
+ * @param fileName Name for file
2618
+ * @param options Bucket of options, euch as `type` for the MIME type; defaults to empty string for `type`
2619
+ * @returns File or, for Microsoft Legacy Edge, Blob
2620
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/File/File
2621
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/Blob/Blob
2622
+ */
2623
+ function new_File(fileBits, fileName, options) {
2624
+ let file;
2625
+ try {
2626
+ // Modern browser
2627
+ file = new File(fileBits, fileName, options);
2628
+ }
2629
+ catch (error) {
2630
+ // Microsoft Legacy Edge
2631
+ /* istanbul ignore next */
2632
+ file = (function () {
2633
+ if (typeof options === "undefined") {
2634
+ // Microsoft Legacy Edge fails in karma if options is not defined
2635
+ options = {
2636
+ type: ""
2637
+ };
2638
+ }
2639
+ const blob = new Blob(fileBits, options);
2640
+ blob.lastModified = new Date();
2641
+ blob.name = fileName;
2642
+ return blob;
2643
+ })();
2644
+ }
2645
+ return file;
2646
+ }
2647
+
2648
+ /** @license
2649
+ * Copyright 2018 Esri
2650
+ *
2651
+ * Licensed under the Apache License, Version 2.0 (the "License");
2652
+ * you may not use this file except in compliance with the License.
2653
+ * You may obtain a copy of the License at
2654
+ *
2655
+ * http://www.apache.org/licenses/LICENSE-2.0
2656
+ *
2657
+ * Unless required by applicable law or agreed to in writing, software
2658
+ * distributed under the License is distributed on an "AS IS" BASIS,
2659
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2660
+ * See the License for the specific language governing permissions and
2661
+ * limitations under the License.
2662
+ */
2663
+ /**
2664
+ * Extracts JSON from a Blob.
2665
+ *
2666
+ * @param blob Blob to use as source
2667
+ * @returns A promise that will resolve with JSON or null
2668
+ */
2669
+ function blobToJson(blob) {
2670
+ return new Promise(resolve => {
2671
+ blobToText(blob).then(blobContents => {
2672
+ try {
2673
+ resolve(JSON.parse(blobContents));
2674
+ }
2675
+ catch (err) {
2676
+ resolve(null);
2677
+ }
2678
+ }, () => resolve(null));
2679
+ });
2680
+ }
2681
+ /**
2682
+ * Converts a Blob to a File.
2683
+ *
2684
+ * @param blob Blob to use as source
2685
+ * @param filename Name to use for file
2686
+ * @param mimeType MIME type to override blob's MIME type
2687
+ * @returns File created out of Blob and filename
2688
+ */
2689
+ function blobToFile(blob, filename, mimeType) {
2690
+ return blob
2691
+ ? new_File([blob], filename ? filename : "", {
2692
+ type: mimeType || blob.type
2693
+ })
2694
+ : null;
2695
+ }
2696
+ /**
2697
+ * Extracts text from a Blob.
2698
+ *
2699
+ * @param blob Blob to use as source
2700
+ * @returns A promise that will resolve with text read from blob
2701
+ */
2702
+ function blobToText(blob) {
2703
+ return new Promise(resolve => {
2704
+ const reader = new FileReader();
2705
+ reader.onload = function (evt) {
2706
+ // Disable needed because Node requires cast
2707
+ // tslint:disable-next-line: no-unnecessary-type-assertion
2708
+ const blobContents = evt.target.result;
2709
+ resolve(blobContents ? blobContents : ""); // not handling ArrayContents variant
2710
+ };
2711
+ reader.readAsText(blob);
2712
+ });
2713
+ }
2714
+ /**
2715
+ * Checks that a URL path ends with a slash.
2716
+ *
2717
+ * @param url URL to check
2718
+ * @returns URL, appended with slash if missing
2719
+ */
2720
+ function checkUrlPathTermination(url) {
2721
+ return url ? (url.endsWith("/") ? url : url + "/") : url;
2722
+ }
2723
+ /**
2724
+ * Gets a property out of a deeply nested object.
2725
+ * Does not handle anything but nested object graph
2726
+ *
2727
+ * @param obj Object to retrieve value from
2728
+ * @param path Path into an object, e.g., "data.values.webmap", where "data" is a top-level property
2729
+ * in obj
2730
+ * @returns Value at end of path
2731
+ */
2732
+ function getProp(obj, path) {
2733
+ return path.split(".").reduce(function (prev, curr) {
2734
+ /* istanbul ignore next no need to test undefined scenario */
2735
+ return prev ? prev[curr] : undefined;
2736
+ }, obj);
2737
+ }
2738
+ /**
2739
+ * Sets a deeply nested property of an object.
2740
+ * Creates the full path if it does not exist.
2741
+ *
2742
+ * @param obj Object to set value of
2743
+ * @param path Path into an object, e.g., "data.values.webmap", where "data" is a top-level property in obj
2744
+ * @param value The value to set at the end of the path
2745
+ */
2746
+ function setCreateProp(obj, path, value) {
2747
+ const pathParts = path.split(".");
2748
+ pathParts.reduce((a, b, c) => {
2749
+ if (c === pathParts.length - 1) {
2750
+ a[b] = value;
2751
+ return value;
2752
+ }
2753
+ else {
2754
+ if (!a[b]) {
2755
+ a[b] = {};
2756
+ }
2757
+ return a[b];
2758
+ }
2759
+ }, obj);
2760
+ }
2761
+
2762
+ /**
2763
+ * Gets a Blob from a web site.
2764
+ *
2765
+ * @param url Address of Blob
2766
+ * @param authentication Credentials for the request
2767
+ * @param requestOptions - Options for the request, including parameters relevant to the endpoint.
2768
+ * @returns Promise that will resolve with Blob or an AGO-style JSON failure response
2769
+ */
2770
+ function getBlob(url, authentication, requestOptions = {}) {
2771
+ if (!url) {
2772
+ return Promise.reject("Url must be provided");
2773
+ }
2774
+ const blobRequestOptions = {
2775
+ authentication: authentication,
2776
+ rawResponse: true,
2777
+ ...requestOptions
2778
+ };
2779
+ return request(url, blobRequestOptions).then(response => {
2780
+ return response.blob();
2781
+ });
2782
+ }
2783
+
2784
+ /** @license
2785
+ * Copyright 2018 Esri
2786
+ *
2787
+ * Licensed under the Apache License, Version 2.0 (the "License");
2788
+ * you may not use this file except in compliance with the License.
2789
+ * You may obtain a copy of the License at
2790
+ *
2791
+ * http://www.apache.org/licenses/LICENSE-2.0
2792
+ *
2793
+ * Unless required by applicable law or agreed to in writing, software
2794
+ * distributed under the License is distributed on an "AS IS" BASIS,
2795
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2796
+ * See the License for the specific language governing permissions and
2797
+ * limitations under the License.
2798
+ */
2799
+ // ------------------------------------------------------------------------------------------------------------------ //
2800
+ const ZIP_FILE_HEADER_SIGNATURE = "PK";
2801
+ /**
2802
+ * Gets a Blob from a web site and casts it as a file using the supplied name.
2803
+ *
2804
+ * @param url Address of Blob
2805
+ * @param filename Name to use for file
2806
+ * @param authentication Credentials for the request
2807
+ * @returns Promise that will resolve with a File, undefined if the Blob is null, or an AGO-style JSON failure response
2808
+ */
2809
+ function getBlobAsFile(url, filename, authentication, ignoreErrors = [], mimeType) {
2810
+ return new Promise((resolve, reject) => {
2811
+ // Get the blob from the URL
2812
+ getBlobCheckForError(url, authentication, ignoreErrors).then(blob => !blob ? resolve(null) : resolve(blobToFile(blob, filename, mimeType)), reject);
2813
+ });
2814
+ }
2815
+ /**
2816
+ * Gets a Blob from a web site and checks for a JSON error packet in the Blob.
2817
+ *
2818
+ * @param url Address of Blob
2819
+ * @param authentication Credentials for the request
2820
+ * @param ignoreErrors List of HTTP error codes that should be ignored
2821
+ * @returns Promise that will resolve with Blob or an AGO-REST JSON failure response
2822
+ */
2823
+ function getBlobCheckForError(url, authentication, ignoreErrors = []) {
2824
+ return new Promise((resolve, reject) => {
2825
+ // Get the blob from the URL
2826
+ getBlob(url, authentication).then(blob => {
2827
+ // Reclassify text/plain blobs as needed
2828
+ _fixTextBlobType(blob).then(adjustedBlob => {
2829
+ if (adjustedBlob.type === "application/json") {
2830
+ // Blob may be an error
2831
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
2832
+ blobToJson(adjustedBlob).then((json) => {
2833
+ // Check for valid JSON with an error
2834
+ if (json?.error) {
2835
+ const code = json.error.code;
2836
+ if (code !== undefined && ignoreErrors.indexOf(code) >= 0) {
2837
+ resolve(null); // Error, but ignored
2838
+ }
2839
+ else {
2840
+ reject(json); // Other error; fail with error
2841
+ }
2842
+ }
2843
+ else {
2844
+ resolve(adjustedBlob);
2845
+ }
2846
+ });
2847
+ }
2848
+ else {
2849
+ resolve(adjustedBlob);
2850
+ }
2851
+ }, reject);
2852
+ }, reject);
2853
+ });
2854
+ }
2855
+ /**
2856
+ * Gets the data information of an AGO item in its JSON form.
2857
+ *
2858
+ * @param itemId Id of an item whose data information is sought
2859
+ * @param filename Name to use for file
2860
+ * @param authentication Credentials for the request to AGO
2861
+ * @returns Promise that will resolve with JSON, or an AGO-style JSON failure response
2862
+ */
2863
+ function getItemDataAsJson(itemId, authentication) {
2864
+ return new Promise(resolve => {
2865
+ getItemDataBlob(itemId, authentication).then(blob => resolve(blobToJson(blob)), () => resolve(null));
2866
+ });
2867
+ }
2868
+ /**
2869
+ * Gets the data information of an AGO item in its raw (Blob) form.
2870
+ *
2871
+ * @param itemId Id of an item whose data information is sought
2872
+ * @param authentication Credentials for the request to AGO
2873
+ * @returns A promise that will resolve with the data Blob or null if the item doesn't have a data section
2874
+ */
2875
+ function getItemDataBlob(itemId, authentication) {
2876
+ return new Promise(resolve => {
2877
+ const url = getItemDataBlobUrl(itemId, authentication);
2878
+ getBlobCheckForError(url, authentication, [400, 500]).then(blob => resolve(_fixTextBlobType(blob)), () => resolve(null));
2879
+ });
2880
+ }
2881
+ /**
2882
+ * Gets the URL to the data information of an AGO item in its raw (Blob) form.
2883
+ *
2884
+ * @param itemId Id of an item whose data information is sought
2885
+ * @param authentication Credentials for the request to AGO
2886
+ * @returns URL string
2887
+ */
2888
+ function getItemDataBlobUrl(itemId, authentication) {
2889
+ return `${getPortalSharingUrlFromAuth(authentication)}/content/items/${itemId}/data`;
2890
+ }
2891
+ /**
2892
+ * Extracts the portal sharing url from a supplied authentication.
2893
+ *
2894
+ * @param authentication Credentials for the request to AGO
2895
+ * @returns Portal sharing url to be used in API requests, defaulting to `https://www.arcgis.com/sharing/rest`
2896
+ */
2897
+ function getPortalSharingUrlFromAuth(authentication) {
2898
+ // If auth was passed, use that portal
2899
+ return getProp(authentication, "portal") || "https://www.arcgis.com/sharing/rest";
2900
+ }
2901
+ function getThumbnailFile(url, filename, authentication) {
2902
+ return new Promise(resolve => {
2903
+ getBlobAsFile(url, filename, authentication, [500]).then(resolve, () => resolve(null));
2904
+ });
2905
+ }
2906
+ // ------------------------------------------------------------------------------------------------------------------ //
2907
+ /**
2908
+ * Fixes the types of Blobs incorrectly typed as text/plain.
2909
+ *
2910
+ * @param blob Blob to check
2911
+ * @returns Promise resolving to original Blob, unless it's originally typed as text/plain but is
2912
+ * really JSON, ZIP, or XML
2913
+ * @private
2914
+ */
2915
+ function _fixTextBlobType(blob) {
2916
+ return new Promise((resolve, reject) => {
2917
+ if (blob &&
2918
+ blob.size > 0 &&
2919
+ (blob.type.startsWith("text/plain") ||
2920
+ blob.type.startsWith("application/json"))) {
2921
+ blobToText(blob).then(blobText => {
2922
+ // Convertible to JSON?
2923
+ try {
2924
+ JSON.parse(blobText);
2925
+ // Yes; reclassify as JSON
2926
+ resolve(new Blob([blob], { type: "application/json" }));
2927
+ }
2928
+ catch (ignored) {
2929
+ // Nope; test for ZIP file
2930
+ if (blobText.length > 4 &&
2931
+ blobText.substr(0, 4) === ZIP_FILE_HEADER_SIGNATURE) {
2932
+ // Yes; reclassify as ZIP
2933
+ resolve(new Blob([blob], { type: "application/zip" }));
2934
+ }
2935
+ else if (blobText.startsWith("<")) {
2936
+ // Reclassify as XML; since the blob started out as text/plain, it's more likely that is
2937
+ // meant to be human-readable, so we'll use text/xml instead of application/xml
2938
+ resolve(new Blob([blob], { type: "text/xml" }));
2939
+ }
2940
+ else {
2941
+ // Leave as text
2942
+ resolve(blob);
2943
+ }
2944
+ }
2945
+ },
2946
+ // Faulty blob
2947
+ reject);
2948
+ }
2949
+ else {
2950
+ // Empty or not typed as plain text, so simply return
2951
+ if (blob) {
2952
+ resolve(blob);
2953
+ }
2954
+ else {
2955
+ reject();
2956
+ }
2957
+ }
2958
+ });
2959
+ }
2960
+
2961
+ /** @license
2962
+ * Copyright 2018 Esri
2963
+ *
2964
+ * Licensed under the Apache License, Version 2.0 (the "License");
2965
+ * you may not use this file except in compliance with the License.
2966
+ * You may obtain a copy of the License at
2967
+ *
2968
+ * http://www.apache.org/licenses/LICENSE-2.0
2969
+ *
2970
+ * Unless required by applicable law or agreed to in writing, software
2971
+ * distributed under the License is distributed on an "AS IS" BASIS,
2972
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2973
+ * See the License for the specific language governing permissions and
2974
+ * limitations under the License.
2975
+ */
2976
+ /**
2977
+ * Updates an item.
2978
+ *
2979
+ * @param itemInfo The base info of an item; note that this content will be serialized, which doesn't work
2980
+ * for binary content
2981
+ * @param authentication Credentials for request
2982
+ * @param folderId Item's folder
2983
+ * @param additionalParams Updates that are put under the `params` property, which is not serialized
2984
+ * @return
2985
+ */
2986
+ function updateItem(itemInfo, authentication, folderId, additionalParams) {
2987
+ return new Promise((resolve, reject) => {
2988
+ const updateOptions = {
2989
+ item: itemInfo,
2990
+ folderId: folderId,
2991
+ authentication: authentication,
2992
+ params: {
2993
+ ...(additionalParams ?? {})
2994
+ }
2995
+ };
2996
+ updateItem$1(updateOptions).then(response => (response.success ? resolve(response) : reject(response)), err => reject(err));
2997
+ });
2998
+ }
2999
+
3000
+ /** @license
3001
+ * Copyright 2018 Esri
3002
+ *
3003
+ * Licensed under the Apache License, Version 2.0 (the "License");
3004
+ * you may not use this file except in compliance with the License.
3005
+ * You may obtain a copy of the License at
3006
+ *
3007
+ * http://www.apache.org/licenses/LICENSE-2.0
3008
+ *
3009
+ * Unless required by applicable law or agreed to in writing, software
3010
+ * distributed under the License is distributed on an "AS IS" BASIS,
3011
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3012
+ * See the License for the specific language governing permissions and
3013
+ * limitations under the License.
3014
+ */
3015
+ /**
3016
+ * A visit flag used in the topological sort algorithm.
3017
+ *
3018
+ * @private
3019
+ */
3020
+ var ESortVisitState;
3021
+ (function (ESortVisitState) {
3022
+ /** not yet visited */
3023
+ ESortVisitState[ESortVisitState["NotYetVisited"] = 0] = "NotYetVisited";
3024
+ /** visited, in progress */
3025
+ ESortVisitState[ESortVisitState["InProgress"] = 1] = "InProgress";
3026
+ /** finished */
3027
+ ESortVisitState[ESortVisitState["Finished"] = 2] = "Finished"; // BLACK
3028
+ })(ESortVisitState || (ESortVisitState = {}));
3029
+
3030
+ /** @license
3031
+ * Copyright 2020 Esri
3032
+ *
3033
+ * Licensed under the Apache License, Version 2.0 (the "License");
3034
+ * you may not use this file except in compliance with the License.
3035
+ * You may obtain a copy of the License at
3036
+ *
3037
+ * http://www.apache.org/licenses/LICENSE-2.0
3038
+ *
3039
+ * Unless required by applicable law or agreed to in writing, software
3040
+ * distributed under the License is distributed on an "AS IS" BASIS,
3041
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3042
+ * See the License for the specific language governing permissions and
3043
+ * limitations under the License.
3044
+ */
3045
+ /**
3046
+ * Denotes type information for a SolutionResource
3047
+ */
3048
+ var SolutionResourceType;
3049
+ (function (SolutionResourceType) {
3050
+ SolutionResourceType[SolutionResourceType["thumbnail"] = 0] = "thumbnail";
3051
+ SolutionResourceType[SolutionResourceType["metadata"] = 1] = "metadata";
3052
+ SolutionResourceType[SolutionResourceType["resource"] = 2] = "resource";
3053
+ SolutionResourceType[SolutionResourceType["data"] = 3] = "data";
3054
+ SolutionResourceType[SolutionResourceType["fakezip"] = 4] = "fakezip";
3055
+ SolutionResourceType[SolutionResourceType["info"] = 5] = "info";
3056
+ })(SolutionResourceType || (SolutionResourceType = {}));
3057
+
3058
+ /** @license
3059
+ * Copyright 2020 Esri
3060
+ *
3061
+ * Licensed under the Apache License, Version 2.0 (the "License");
3062
+ * you may not use this file except in compliance with the License.
3063
+ * You may obtain a copy of the License at
3064
+ *
3065
+ * http://www.apache.org/licenses/LICENSE-2.0
3066
+ *
3067
+ * Unless required by applicable law or agreed to in writing, software
3068
+ * distributed under the License is distributed on an "AS IS" BASIS,
3069
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3070
+ * See the License for the specific language governing permissions and
3071
+ * limitations under the License.
3072
+ */
3073
+ /**
3074
+ * Extracts an item's resource folder and filename from the filename used to store a copy in a storage item.
3075
+ *
3076
+ * @param storageResourceFilename Filename used to store the resource, metadata, or thumbnail of an item
3077
+ * @param storageVersion Version of the Solution template
3078
+ * @returns Folder and filename for storing information in an item, as well as the type (resource, metadata,
3079
+ * or thumbnail) of the information; the folder property is only meaningful for the resource type
3080
+ * @see generateResourceStorageFilename
3081
+ * @see generateMetadataStorageFilename
3082
+ * @see generateThumbnailStorageFilename
3083
+ * @see convertItemResourceToStorageResource
3084
+ */
3085
+ function convertStorageResourceToItemResource(storageResourceFilename, storageVersion = 0) {
3086
+ const nameParts = storageResourceFilename.split("/");
3087
+ let filename = nameParts.pop();
3088
+ let folder = "";
3089
+ const firstPrefixPart = nameParts.shift(); // undefined if there's no folder
3090
+ // Handle special "folders"
3091
+ let type = EFileType.Resource;
3092
+ if (firstPrefixPart) {
3093
+ if (firstPrefixPart.endsWith("_info_thumbnail")) {
3094
+ type = EFileType.Thumbnail;
3095
+ }
3096
+ else if (firstPrefixPart.endsWith("_info_metadata")) {
3097
+ type = EFileType.Metadata;
3098
+ filename = "metadata.xml";
3099
+ }
3100
+ else if (firstPrefixPart.endsWith("_info_data")) {
3101
+ type = EFileType.Data;
3102
+ }
3103
+ else if (firstPrefixPart.endsWith("_info_dataz")) {
3104
+ filename = filename.replace(/\.zip$/, "");
3105
+ type = EFileType.Data;
3106
+ // Otherwise, strip off item id
3107
+ }
3108
+ else if (storageVersion < 1) {
3109
+ // Version 0
3110
+ const folderStart = firstPrefixPart.indexOf("_");
3111
+ if (folderStart > 0) {
3112
+ folder = firstPrefixPart.substr(folderStart + 1);
3113
+ }
3114
+ }
3115
+ else {
3116
+ // Version ≥ 1
3117
+ folder = nameParts.join("/"); // folder is optional, in which case this will be ""
3118
+ }
3119
+ }
3120
+ return { type, folder, filename };
3121
+ }
3122
+
3123
+ /** @license
3124
+ * Copyright 2021 Esri
3125
+ *
3126
+ * Licensed under the Apache License, Version 2.0 (the "License");
3127
+ * you may not use this file except in compliance with the License.
3128
+ * You may obtain a copy of the License at
3129
+ *
3130
+ * http://www.apache.org/licenses/LICENSE-2.0
3131
+ *
3132
+ * Unless required by applicable law or agreed to in writing, software
3133
+ * distributed under the License is distributed on an "AS IS" BASIS,
3134
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3135
+ * See the License for the specific language governing permissions and
3136
+ * limitations under the License.
3137
+ */
3138
+ // ------------------------------------------------------------------------------------------------------------------ //
3139
+ /**
3140
+ * Generates IAssociatedFileCopyResults object.
3141
+ *
3142
+ * @param fileInfo Info about item that was to be copied
3143
+ * @param fetchedFromSource Status of fetching item from source
3144
+ * @param copiedToDestination Status of copying item to destination
3145
+ * @returns IAssociatedFileCopyResults object
3146
+ */
3147
+ function createCopyResults(fileInfo, fetchedFromSource, copiedToDestination) {
3148
+ return {
3149
+ ...fileInfo,
3150
+ fetchedFromSource,
3151
+ copiedToDestination
3152
+ };
3153
+ }
3154
+
3155
+ /** @license
3156
+ * Copyright 2021 Esri
3157
+ *
3158
+ * Licensed under the Apache License, Version 2.0 (the "License");
3159
+ * you may not use this file except in compliance with the License.
3160
+ * You may obtain a copy of the License at
3161
+ *
3162
+ * http://www.apache.org/licenses/LICENSE-2.0
3163
+ *
3164
+ * Unless required by applicable law or agreed to in writing, software
3165
+ * distributed under the License is distributed on an "AS IS" BASIS,
3166
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3167
+ * See the License for the specific language governing permissions and
3168
+ * limitations under the License.
3169
+ */
3170
+ // ------------------------------------------------------------------------------------------------------------------ //
3171
+ /**
3172
+ * Copies a resource into a zipfile.
3173
+ *
3174
+ * @param file Information about the source and destination of the file such as its URL, folder, filename
3175
+ * @param zipInfo Information about a zipfile such as its name and its zip object
3176
+ * @returns The result of the copy
3177
+ */
3178
+ function copyResourceIntoZip(file, zipInfo) {
3179
+ // Add it to the zip
3180
+ if (file.folder) {
3181
+ zipInfo.zip
3182
+ .folder(file.folder)
3183
+ .file(file.filename, file.file, { binary: true });
3184
+ }
3185
+ else {
3186
+ zipInfo.zip.file(file.filename, file.file, { binary: true });
3187
+ }
3188
+ zipInfo.filelist.push(file);
3189
+ return createCopyResults(file, true);
3190
+ }
3191
+
3192
+ /** @license
3193
+ * Copyright 2021 Esri
3194
+ *
3195
+ * Licensed under the Apache License, Version 2.0 (the "License");
3196
+ * you may not use this file except in compliance with the License.
3197
+ * You may obtain a copy of the License at
3198
+ *
3199
+ * http://www.apache.org/licenses/LICENSE-2.0
3200
+ *
3201
+ * Unless required by applicable law or agreed to in writing, software
3202
+ * distributed under the License is distributed on an "AS IS" BASIS,
3203
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3204
+ * See the License for the specific language governing permissions and
3205
+ * limitations under the License.
3206
+ */
3207
+ // ------------------------------------------------------------------------------------------------------------------ //
3208
+ /**
3209
+ * Copies a zipfile into an AGO item.
3210
+ *
3211
+ * @param zipInfo Information about a zipfile such as its name and its zip object
3212
+ * @param destinationItemId Id of item to receive copy of resource/metadata/thumbnail
3213
+ * @param destinationAuthentication Credentials for the request to the storage
3214
+ * @returns A promise which resolves to the result of the copy
3215
+ */
3216
+ function copyZipIntoItem(zipInfo, destinationItemId, destinationAuthentication) {
3217
+ return new Promise(resolve => {
3218
+ zipInfo.zip
3219
+ .generateAsync({ type: "blob" })
3220
+ .then((content) => {
3221
+ return blobToFile(content, zipInfo.filename, "application/zip");
3222
+ })
3223
+ .then((zipfile) => {
3224
+ const addResourceOptions = {
3225
+ id: destinationItemId,
3226
+ resource: zipfile,
3227
+ authentication: destinationAuthentication,
3228
+ params: {
3229
+ archive: true
3230
+ }
3231
+ };
3232
+ return addItemResource(addResourceOptions);
3233
+ })
3234
+ .then(() => resolve(createCopyResults(zipInfo, true, true)), () => resolve(createCopyResults(zipInfo, true, false)) // unable to add resource
3235
+ );
3236
+ });
3237
+ }
3238
+
3239
+ /** @license
3240
+ * Copyright 2021 Esri
3241
+ *
3242
+ * Licensed under the Apache License, Version 2.0 (the "License");
3243
+ * you may not use this file except in compliance with the License.
3244
+ * You may obtain a copy of the License at
3245
+ *
3246
+ * http://www.apache.org/licenses/LICENSE-2.0
3247
+ *
3248
+ * Unless required by applicable law or agreed to in writing, software
3249
+ * distributed under the License is distributed on an "AS IS" BASIS,
3250
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3251
+ * See the License for the specific language governing permissions and
3252
+ * limitations under the License.
3253
+ */
3254
+ // ------------------------------------------------------------------------------------------------------------------ //
3255
+ /**
3256
+ * Copies the files for storing the resources, metadata, and thumbnail of an item or group to a storage item
3257
+ * with a specified path by collecting files into zip files.
3258
+ *
3259
+ * @param files List of item files' URLs and folder/filenames for storing the files
3260
+ * @param destinationItemId Id of item to receive copy of resource/metadata/thumbnail
3261
+ * @param destinationAuthentication Credentials for the request to the storage
3262
+ * @param filesPerZip Number of files to include per zip file; AGO limits zips to 50 files
3263
+ * @returns A promise which resolves to a list of the result of the copies
3264
+ */
3265
+ function copyFilesAsResources(files, destinationItemId, destinationAuthentication, filesPerZip = 40) {
3266
+ return new Promise(resolve => {
3267
+ let awaitAllItems = [];
3268
+ const zipInfos = [];
3269
+ if (files.length > 0) {
3270
+ // Bundle the resources into chunked zip updates because AGO tends to have problems with
3271
+ // many updates in a row to the same item: it claims success despite randomly failing.
3272
+ // Note that AGO imposes a limit of 50 files per zip, so we break the list of resource
3273
+ // file info into chunks below this threshold and start a zip for each
3274
+ // https://developers.arcgis.com/rest/users-groups-and-items/add-resources.htm
3275
+ const chunkedResourceFiles = chunkArray(files, filesPerZip);
3276
+ chunkedResourceFiles.forEach((chunk, index) => {
3277
+ // Create a zip for this chunk
3278
+ const zipInfo = {
3279
+ filename: `resources${index}.zip`,
3280
+ zip: new jszip_min(),
3281
+ filelist: []
3282
+ };
3283
+ awaitAllItems = awaitAllItems.concat(chunk.map(file => copyResourceIntoZip(file, zipInfo)));
3284
+ zipInfos.push(zipInfo);
3285
+ });
3286
+ }
3287
+ if (awaitAllItems.length > 0) {
3288
+ // Wait until the Resource zip file(s) are prepared
3289
+ void Promise.all(awaitAllItems).then((results) => {
3290
+ // We have three types of results:
3291
+ // | fetchedFromSource | copiedToDestination | interpretation | |
3292
+ // +-------------------+---------------------+------------------------------------------------+
3293
+ // | false | * | could not fetch file from source |
3294
+ // | true | true | file has been fetched and sent to AGO |
3295
+ // | true | undefined | file has been fetched and will be sent via zip |
3296
+ // Filter out copiedToDestination===undefined; we'll get their status when we send their zip
3297
+ results = results.filter((result) => !(result.fetchedFromSource &&
3298
+ typeof result.copiedToDestination === "undefined"));
3299
+ // Now send the resources to AGO
3300
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
3301
+ _copyAssociatedFileZips(zipInfos, destinationItemId, destinationAuthentication).then((zipResults) => {
3302
+ resolve(results.concat(zipResults));
3303
+ });
3304
+ });
3305
+ }
3306
+ else {
3307
+ // No data, metadata, or resources to send; we're done
3308
+ resolve([]);
3309
+ }
3310
+ });
3311
+ }
3312
+ /**
3313
+ * Copies one or more zipfiles to a storage item.
3314
+ *
3315
+ * @param zipInfos List of zip files containing files to store
3316
+ * @param destinationItemId Id of item to receive copy of resource/metadata/thumbnail
3317
+ * @param destinationAuthentication Credentials for the request to the storage
3318
+ * @returns A promise which resolves to a list of the result of the copies
3319
+ * @private
3320
+ */
3321
+ function _copyAssociatedFileZips(zipInfos, destinationItemId, destinationAuthentication) {
3322
+ return new Promise(resolve => {
3323
+ const results = [];
3324
+ // Filter out empty zips, which can happen when none of the files in the chunk going into a zip
3325
+ // can be fetched; e.g., the only file is metadata.xml, and the source item doesn't have metadata
3326
+ const nonEmptyZipInfos = zipInfos.filter((zipInfo) => Object.keys(zipInfo.zip.files).length > 0);
3327
+ if (nonEmptyZipInfos.length > 0) {
3328
+ // Send the zip(s) to AGO
3329
+ void _sendZipsSeriallyToItem(nonEmptyZipInfos, destinationItemId, destinationAuthentication).then((zipResults) => {
3330
+ resolve(zipResults);
3331
+ });
3332
+ }
3333
+ else {
3334
+ // No resources to send; we're done
3335
+ resolve(results);
3336
+ }
3337
+ });
3338
+ }
3339
+ /**
3340
+ * Copies one or more zipfiles to a storage item in a serial fashion, waiting a bit between sends.
3341
+ *
3342
+ * @param zipInfos List of zip files containing files to store
3343
+ * @param destinationItemId Id of item to receive copy of resource/metadata/thumbnail
3344
+ * @param destinationAuthentication Credentials for the request to the storage
3345
+ * @returns A promise which resolves to a list of the result of the copies
3346
+ */
3347
+ function _sendZipsSeriallyToItem(zipInfos, destinationItemId, destinationAuthentication) {
3348
+ return new Promise(resolve => {
3349
+ let allResults = [];
3350
+ // Remove zip from bottom of list
3351
+ const zipInfoToSend = zipInfos.pop();
3352
+ // Send predecessors in list
3353
+ let sendOthersPromise = Promise.resolve([]);
3354
+ if (zipInfos.length > 0) {
3355
+ sendOthersPromise = _sendZipsSeriallyToItem(zipInfos, destinationItemId, destinationAuthentication);
3356
+ }
3357
+ void sendOthersPromise
3358
+ .then((response) => {
3359
+ allResults = response;
3360
+ // Stall a little to give AGO time to catch up
3361
+ return new Promise(resolveSleep => {
3362
+ setTimeout(() => resolveSleep(), 1000);
3363
+ });
3364
+ })
3365
+ .then(() => {
3366
+ // Now send the zip removed from bottom of the input list
3367
+ return copyZipIntoItem(zipInfoToSend, destinationItemId, destinationAuthentication);
3368
+ })
3369
+ .then((zipResult) => {
3370
+ // Save the result of copying this zip as a status for each of the files that it contains
3371
+ zipResult.filelist.forEach((fileInfo) => {
3372
+ allResults.push(createCopyResults(fileInfo, true, zipResult.copiedToDestination));
3373
+ });
3374
+ resolve(allResults);
3375
+ });
3376
+ });
3377
+ }
3378
+
3379
+ /** @license
3380
+ * Copyright 2018 Esri
3381
+ *
3382
+ * Licensed under the Apache License, Version 2.0 (the "License");
3383
+ * you may not use this file except in compliance with the License.
3384
+ * You may obtain a copy of the License at
3385
+ *
3386
+ * http://www.apache.org/licenses/LICENSE-2.0
3387
+ *
3388
+ * Unless required by applicable law or agreed to in writing, software
3389
+ * distributed under the License is distributed on an "AS IS" BASIS,
3390
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3391
+ * See the License for the specific language governing permissions and
3392
+ * limitations under the License.
3393
+ */
3394
+ /**
3395
+ * Copies the files for storing the resources, metadata, and thumbnail of an item or group to a storage item
3396
+ * with a specified path.
3397
+ *
3398
+ * @param files List of item files and paths for storing the files
3399
+ * @param storageItemId Id of item to receive copy of resource/metadata
3400
+ * @param storageAuthentication Credentials for the request to the storage
3401
+ * @returns A promise which resolves to a list of the filenames under which the resource/metadata are stored
3402
+ */
3403
+ function copyFilesToStorageItem(files, storageItemId, storageAuthentication) {
3404
+ return new Promise(resolve => {
3405
+ // tslint:disable-next-line: no-floating-promises
3406
+ void copyFilesAsResources(files, storageItemId, storageAuthentication).then((results) => {
3407
+ resolve(results
3408
+ // Filter out failures
3409
+ .filter((result) => result.fetchedFromSource && result.copiedToDestination)
3410
+ // Return folder and filename in storage item's resources
3411
+ .map((result) => result.folder + "/" + result.filename));
3412
+ });
3413
+ });
3414
+ }
3415
+ /**
3416
+ * Generates the URL for reading an item's resource given the filename of the resource.
3417
+ *
3418
+ * @param sourcePortalSharingUrl Server/sharing
3419
+ * @param itemId Id of item
3420
+ * @param sourceResourceFilename Either filename or folder/filename to resource
3421
+ * @returns URL string
3422
+ */
3423
+ function generateSourceResourceUrl(sourcePortalSharingUrl, itemId, sourceResourceFilename) {
3424
+ return (checkUrlPathTermination(sourcePortalSharingUrl) +
3425
+ "content/items/" +
3426
+ itemId +
3427
+ "/resources/" +
3428
+ sourceResourceFilename);
3429
+ }
3430
+ /**
3431
+ * Generates a list of full URLs and folder/filename combinations used to store the resources, metadata,
3432
+ * and thumbnail of an item.
3433
+ *
3434
+ * @param portalSharingUrl Server/sharing
3435
+ * @param storageItemId Id of storage item
3436
+ * @param resourceFilenames List of resource filenames for an item, e.g., ["file1", "myFolder/file2"]
3437
+ * @param storageVersion Version of the Solution template
3438
+ * @returns List of item files' URLs and folder/filenames for storing the files
3439
+ */
3440
+ function generateStorageFilePaths(portalSharingUrl, storageItemId, resourceFilenames = [], storageVersion = 0) {
3441
+ return resourceFilenames.map(resourceFilename => {
3442
+ return {
3443
+ url: generateSourceResourceUrl(portalSharingUrl, storageItemId, resourceFilename),
3444
+ ...convertStorageResourceToItemResource(resourceFilename, storageVersion)
3445
+ };
3446
+ });
3447
+ }
3448
+ function isSupportedFileType(filename) {
3449
+ // Supported file formats are: .json, .xml, .txt, .png, .pbf, .zip, .jpeg, .jpg, .gif, .bmp, .gz, .svg,
3450
+ // .svgz, .geodatabase (https://developers.arcgis.com/rest/users-groups-and-items/add-resources.htm)
3451
+ const filenameExtension = filename.match(/\.([a-z]+)$/i);
3452
+ const supportedExtensions = "|.json|.xml|.txt|.png|.pbf|.zip|.jpeg|.jpg|.gif|.bmp|.gz|.svg|.svgz|.geodatabase|";
3453
+ return (!!filenameExtension &&
3454
+ supportedExtensions.indexOf("|" + filenameExtension[0] + "|") >= 0);
3455
+ }
3456
+ /**
3457
+ * Gets the thumbnail of an item or group.
3458
+ *
3459
+ * @param authentication Credentials for the request to the storage
3460
+ * @param filePaths List of item files' URLs and folder/filenames for storing the files
3461
+ * @returns A promise which resolves to a boolean indicating if the copies were successful
3462
+ */
3463
+ function getThumbnailFromStorageItem(authentication, filePaths) {
3464
+ let thumbnailUrl;
3465
+ let thumbnailFilename;
3466
+ filePaths.forEach(path => {
3467
+ if (path.type === EFileType.Thumbnail) {
3468
+ thumbnailUrl = path.url;
3469
+ thumbnailFilename = path.filename;
3470
+ }
3471
+ });
3472
+ if (!thumbnailUrl) {
3473
+ return Promise.resolve(null);
3474
+ }
3475
+ return getThumbnailFile(thumbnailUrl, thumbnailFilename, authentication);
3476
+ }
3477
+ /**
3478
+ * Removes the item's resource that matches the filename with new content
3479
+ *
3480
+ * @param itemId Id of the item to remove
3481
+ * @param filename Name of the resource file to remove
3482
+ * @param authentication Credentials for the request to the storage
3483
+ * @returns A promise which resolves with a success true/false response
3484
+ */
3485
+ function removeItemResourceFile(itemId, filename, authentication) {
3486
+ return removeItemResource({
3487
+ id: itemId,
3488
+ resource: filename,
3489
+ authentication: authentication
3490
+ });
3491
+ }
3492
+ /**
3493
+ * Updates the item's resource that matches the filename with new content
3494
+ *
3495
+ * @param itemId Id of the item to update
3496
+ * @param filename Name of the resource file to update; prefix optional (e.g., a/b/file.txt)
3497
+ * @param resource The new content to update the resource with
3498
+ * @param authentication Credentials for the request to the storage
3499
+ * @returns A promise which resolves with a success true/false response
3500
+ */
3501
+ function updateItemResourceFile(itemId, filename, resource, authentication) {
3502
+ // Prefix has to be specified separately
3503
+ const prefixedFilenameParts = filename.split("/");
3504
+ const prefix = prefixedFilenameParts.length > 1 ? prefixedFilenameParts.slice(0, prefixedFilenameParts.length - 1).join("/") : undefined;
3505
+ const suffix = prefixedFilenameParts[prefixedFilenameParts.length - 1];
3506
+ return updateItemResource({
3507
+ id: itemId,
3508
+ prefix: prefix,
3509
+ name: suffix,
3510
+ resource,
3511
+ authentication: authentication
3512
+ });
3513
+ }
3514
+
3515
+ /** @license
3516
+ * Copyright 2022 Esri
3517
+ *
3518
+ * Licensed under the Apache License, Version 2.0 (the "License");
3519
+ * you may not use this file except in compliance with the License.
3520
+ * You may obtain a copy of the License at
3521
+ *
3522
+ * http://www.apache.org/licenses/LICENSE-2.0
3523
+ *
3524
+ * Unless required by applicable law or agreed to in writing, software
3525
+ * distributed under the License is distributed on an "AS IS" BASIS,
3526
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3527
+ * See the License for the specific language governing permissions and
3528
+ * limitations under the License.
3529
+ */
3530
+ const EmptySolutionStore = {
3531
+ solutionItemId: "",
3532
+ defaultWkid: undefined,
3533
+ solutionData: { metadata: {}, templates: [] },
3534
+ templateEdits: {},
3535
+ featureServices: [],
3536
+ spatialReferenceInfo: {
3537
+ enabled: false,
3538
+ services: {},
3539
+ spatialReference: undefined
3540
+ }
3541
+ };
3542
+ class SolutionStore {
3543
+ /**
3544
+ * Creates singleton instance when accessed; default export from module.
3545
+ *
3546
+ * @returns Static instance of the class
3547
+ */
3548
+ static get Store() {
3549
+ return this._instance || (this._instance = new this());
3550
+ }
3551
+ /**
3552
+ * Creates an empty store.
3553
+ *
3554
+ * @protected
3555
+ */
3556
+ constructor() {
3557
+ this._hasChanges = false;
3558
+ this._store = createStore(Object.assign({}, EmptySolutionStore));
3559
+ }
3560
+ /**
3561
+ * Returns the stored information of an item.
3562
+ *
3563
+ * @param itemId Id of item to fetch
3564
+ *
3565
+ * @returns Item information or `undefined` if not found
3566
+ */
3567
+ getItemInfo(itemId) {
3568
+ const templates = this._store.get("solutionData").templates;
3569
+ let template;
3570
+ templates.some((t) => {
3571
+ if (itemId == t.itemId) {
3572
+ template = t;
3573
+ return true;
3574
+ }
3575
+ return false;
3576
+ });
3577
+ return template;
3578
+ }
3579
+ /**
3580
+ * Returns a top-level store property: solutionItemId, defaultWkid, etc.
3581
+ *
3582
+ * @param propName Name of property
3583
+ *
3584
+ * @returns Value of property
3585
+ */
3586
+ getStoreInfo(propName) {
3587
+ return this._store.get(propName);
3588
+ }
3589
+ /**
3590
+ * Loads a Solution into the store from AGO.
3591
+ *
3592
+ * @param solutionItemId Id of the solution represented in the store
3593
+ * @param authentication Credentials for fetching information to be loaded into the store
3594
+ *
3595
+ * @returns Promise that resolves when task is done
3596
+ */
3597
+ async loadSolution(solutionItemId, authentication) {
3598
+ this._authentication = authentication;
3599
+ const solutionData = await getItemDataAsJson(solutionItemId, authentication);
3600
+ if (solutionData) {
3601
+ const defaultWkid = getProp(solutionData, "params.wkid.default");
3602
+ await this._prepareSolutionItemsForEditing(solutionItemId, solutionData.templates, authentication);
3603
+ const featureServices = this._getFeatureServices(solutionData.templates);
3604
+ const spatialReferenceInfo = this._getSpatialReferenceInfo(featureServices, defaultWkid);
3605
+ this._store.set("solutionItemId", solutionItemId);
3606
+ this._store.set("defaultWkid", defaultWkid);
3607
+ this._store.set("solutionData", solutionData);
3608
+ this._store.set("featureServices", featureServices);
3609
+ this._store.set("spatialReferenceInfo", spatialReferenceInfo);
3610
+ }
3611
+ this._flagStoreHasChanges(false);
3612
+ }
3613
+ /**
3614
+ * Queues the replacement of the thumbnail associated with a template item in the store.
3615
+ *
3616
+ * @param itemEdit Details of the template to modify, containing the new thumbnail in the `thumbnail`
3617
+ * property
3618
+ */
3619
+ replaceItemThumbnail(itemEdit) {
3620
+ // Flag the current thumbnail and any replacements for removal
3621
+ itemEdit.resourceFilePaths.forEach((path) => {
3622
+ if (path.type === EFileType.Thumbnail) {
3623
+ if (path.updateType === EUpdateType.None) {
3624
+ // Existing thumbnail not yet flagged for removal
3625
+ path.updateType = EUpdateType.Remove;
3626
+ }
3627
+ else if (path.updateType === EUpdateType.Add || path.updateType === EUpdateType.Update) {
3628
+ // An earlier replacement
3629
+ path.updateType = EUpdateType.Obsolete;
3630
+ }
3631
+ }
3632
+ });
3633
+ // Remove any replacements already queued
3634
+ itemEdit.resourceFilePaths =
3635
+ itemEdit.resourceFilePaths.filter((path) => path.updateType != EUpdateType.Obsolete);
3636
+ // Add the new thumbnail to the store item
3637
+ itemEdit.resourceFilePaths.push({
3638
+ blob: itemEdit.thumbnail,
3639
+ filename: itemEdit.thumbnail.name,
3640
+ type: EFileType.Thumbnail,
3641
+ updateType: EUpdateType.Add
3642
+ });
3643
+ // Update the store
3644
+ this.setItemInfo(itemEdit);
3645
+ }
3646
+ /**
3647
+ * Writes a Solution into AGO from the store. Must use `loadSolution` to continue with solution.
3648
+ *
3649
+ * @returns Promise that resolves when task is done
3650
+ */
3651
+ async saveSolution() {
3652
+ // Update the templates in the original solution item data
3653
+ const solutionItemId = this._store.get("solutionItemId");
3654
+ const solutionData = this._store.get("solutionData");
3655
+ const spatialReferenceInfo = this._store.get("spatialReferenceInfo");
3656
+ await this._prepareSolutionItemsForStorage(solutionItemId, solutionData.templates, this._authentication);
3657
+ const updatedDefaultWkid = this._setSpatialReferenceInfo(spatialReferenceInfo, solutionData.templates);
3658
+ if (updatedDefaultWkid) {
3659
+ setCreateProp(solutionData, "params.wkid", {
3660
+ "label": "Spatial Reference",
3661
+ "default": updatedDefaultWkid,
3662
+ "valueType": "spatialReference",
3663
+ "attributes": {
3664
+ "required": "true"
3665
+ }
3666
+ });
3667
+ }
3668
+ else {
3669
+ setCreateProp(solutionData, "params.wkid", {});
3670
+ }
3671
+ const itemInfo = {
3672
+ id: solutionItemId,
3673
+ text: solutionData
3674
+ };
3675
+ await updateItem(itemInfo, this._authentication);
3676
+ }
3677
+ /**
3678
+ * Stores information for item.
3679
+ *
3680
+ * @param itemEdit Item information
3681
+ */
3682
+ setItemInfo(itemEdit) {
3683
+ const solutionData = this._store.get("solutionData");
3684
+ const templates = solutionData.templates;
3685
+ templates.some((t) => {
3686
+ if (itemEdit.itemId == t.itemId) {
3687
+ t = itemEdit;
3688
+ this._store.set("solutionData", solutionData);
3689
+ this._flagStoreHasChanges(true);
3690
+ return true;
3691
+ }
3692
+ return false;
3693
+ });
3694
+ }
3695
+ /**
3696
+ * Sets a top-level store property: solutionItemId, defaultWkid, etc.
3697
+ *
3698
+ * @param propName Name of property
3699
+ * @param value Value of property
3700
+ */
3701
+ setStoreInfo(propName, value) {
3702
+ this._store.set(propName, value);
3703
+ this._flagStoreHasChanges(true);
3704
+ }
3705
+ //------------------------------------------------------------------------------------------------------------------//
3706
+ /** Provides access to protected methods for unit testing.
3707
+ *
3708
+ * @param methodName Name of protected method to run
3709
+ * @param arg1 First argument to forward to method, e.g., for "_prepareSolutionItemsForEditing", `solutionItemId`
3710
+ * @param arg2 Second argument to forward to method, e.g., for "_prepareSolutionItemsForEditing", `templates`
3711
+ * @param arg3 Third argument to forward to method, e.g., for "_prepareSolutionItemsForEditing", `authentication`
3712
+ *
3713
+ * @returns
3714
+ */
3715
+ _testAccess(methodName, arg1, arg2, arg3) {
3716
+ switch (methodName) {
3717
+ case "_emptyTheStore":
3718
+ this._emptyTheStore();
3719
+ break;
3720
+ case "_getFeatureServices":
3721
+ return this._getFeatureServices(arg1);
3722
+ case "_getItemsSharedWithThisGroup":
3723
+ return this._getItemsSharedWithThisGroup(arg1, arg2);
3724
+ case "_getResourceFilePaths":
3725
+ return this._getResourceFilePaths(arg1, arg2, arg3);
3726
+ case "_getResourceStorageName":
3727
+ return this._getResourceStorageName(arg1, arg2);
3728
+ case "_getSpatialReferenceInfo":
3729
+ return this._getSpatialReferenceInfo(arg1, arg2);
3730
+ case "_prepareSolutionItemsForEditing":
3731
+ return this._prepareSolutionItemsForEditing(arg1, arg2, arg3);
3732
+ case "_prepareSolutionItemsForStorage":
3733
+ return this._prepareSolutionItemsForStorage(arg1, arg2, arg3);
3734
+ case "_setSpatialReferenceInfo":
3735
+ return this._setSpatialReferenceInfo(arg1, arg2);
3736
+ case "_splitFilename":
3737
+ return this._splitFilename(arg1);
3738
+ }
3739
+ return null;
3740
+ }
3741
+ /**
3742
+ * Returns the store to the empty state.
3743
+ *
3744
+ * @protected
3745
+ */
3746
+ _emptyTheStore() {
3747
+ this._store.set("solutionItemId", EmptySolutionStore.solutionItemId);
3748
+ this._store.set("defaultWkid", EmptySolutionStore.defaultWkid);
3749
+ this._store.set("solutionData", EmptySolutionStore.solutionData);
3750
+ this._store.set("templateEdits", EmptySolutionStore.templateEdits);
3751
+ this._store.set("featureServices", EmptySolutionStore.featureServices);
3752
+ this._store.set("spatialReferenceInfo", EmptySolutionStore.spatialReferenceInfo);
3753
+ }
3754
+ /**
3755
+ * Sets the store's flag indicating if it has changes and dispatches an event when
3756
+ * the flag value changes.
3757
+ *
3758
+ * @param flagHasChanges Current state of change in the store; if it doesn't match the value saved in this
3759
+ * object, an event is dispatched with the new value and the saved value is updated
3760
+ *
3761
+ * @protected
3762
+ */
3763
+ _flagStoreHasChanges(flagHasChanges) {
3764
+ // Event for notifying if the store has changes or not
3765
+ if (this._hasChanges !== flagHasChanges) {
3766
+ window.dispatchEvent(new CustomEvent("solutionStoreHasChanges", {
3767
+ detail: flagHasChanges,
3768
+ bubbles: true,
3769
+ cancelable: false,
3770
+ composed: true
3771
+ }));
3772
+ }
3773
+ this._hasChanges = flagHasChanges;
3774
+ }
3775
+ /**
3776
+ * Gets a list of Feature Services that are not views.
3777
+ *
3778
+ * @param templates A list of item templates from the solution
3779
+ *
3780
+ * @returns a list of feature services
3781
+ *
3782
+ * @protected
3783
+ */
3784
+ _getCustomizableFeatureServices(templates) {
3785
+ return templates.reduce((prev, cur) => {
3786
+ if (cur.type === "Feature Service" && cur.item.typeKeywords.indexOf("View Service") < 0) {
3787
+ prev.push(cur);
3788
+ }
3789
+ return prev;
3790
+ }, []);
3791
+ }
3792
+ /**
3793
+ * Gets a list of Feature Services that are not views along with an enabled property that indicates
3794
+ * if the service currently uses a spatial reference variable.
3795
+ *
3796
+ * @param templates A list of item templates from the solution
3797
+ *
3798
+ * @returns a list of feature service names and an enabled property to indicate
3799
+ * if they currently use a spatial reference variable.
3800
+ *
3801
+ * @protected
3802
+ */
3803
+ _getFeatureServices(templates) {
3804
+ const customizeableFeatureServices = this._getCustomizableFeatureServices(templates);
3805
+ return customizeableFeatureServices.map((fs) => {
3806
+ const name = fs.item.title || fs.item.name;
3807
+ const wkid = getProp(fs, "properties.service.spatialReference.wkid");
3808
+ return { name, enabled: wkid.toString().startsWith("{{params.wkid||") };
3809
+ });
3810
+ }
3811
+ /**
3812
+ * Capture the key item details for a given group template
3813
+ *
3814
+ * @param template one of the templates from the current solution
3815
+ * @param templates full list of templates
3816
+ *
3817
+ * @returns a list of IItemShare objects
3818
+ *
3819
+ * @protected
3820
+ */
3821
+ _getItemsSharedWithThisGroup(template, templates) {
3822
+ return templates.reduce((prev, cur) => {
3823
+ if (cur.itemId !== template.itemId && cur.type !== "Group") {
3824
+ prev.push({
3825
+ id: cur.itemId,
3826
+ title: cur.item.name || cur.item.title,
3827
+ isShared: (cur.groups || []).indexOf(template.itemId) > -1,
3828
+ shareItem: (cur.groups || []).indexOf(template.itemId) > -1,
3829
+ type: cur.type,
3830
+ typeKeywords: cur.item.typeKeywords
3831
+ });
3832
+ }
3833
+ return prev;
3834
+ }, []);
3835
+ }
3836
+ /**
3837
+ * Generate storage file paths from the solution template
3838
+ *
3839
+ * @param solutionId the id of the current solution
3840
+ * @param template the current template from the solution
3841
+ * @param portal Portal where file is to be found
3842
+ *
3843
+ * @returns a list of resource file infos
3844
+ *
3845
+ * @protected
3846
+ */
3847
+ _getResourceFilePaths(solutionId, template, portal) {
3848
+ const resourceFilePaths = generateStorageFilePaths(portal, solutionId, template.resources, SolutionTemplateFormatVersion);
3849
+ return resourceFilePaths.map((fp) => {
3850
+ fp.updateType = EUpdateType.None;
3851
+ return fp;
3852
+ });
3853
+ }
3854
+ /**
3855
+ * Generates a resource name from a storage file path.
3856
+ *
3857
+ * @param templateItemId The id of the template item whose resource this is; used as a prefix in the resource name
3858
+ * @param resourcePath Resource file infos
3859
+ *
3860
+ * @returns The resource name to use when attaching a resource to the item.
3861
+ *
3862
+ * @protected
3863
+ */
3864
+ _getResourceStorageName(templateItemId, resourcePath) {
3865
+ /* Converts
3866
+ {
3867
+ "url": "https://myorg.maps.arcgis.com/sharing/rest/content/items/ca924c6db7d247b9a31fa30532fb5913/resources/79036430a6274e17ae915d0278b8569c_info_metadata/metadata.xml",
3868
+ "type": 2,
3869
+ "folder": "",
3870
+ "filename": "metadata.xml",
3871
+ "updateType": 3
3872
+ }
3873
+ to
3874
+ ca924c6db7d247b9a31fa30532fb5913_info_metadata/metadata.xml
3875
+ */
3876
+ let prefix = templateItemId;
3877
+ switch (resourcePath.type) {
3878
+ case EFileType.Data:
3879
+ prefix = `${prefix}_info_data`;
3880
+ break;
3881
+ case EFileType.Info:
3882
+ prefix = `${prefix}_info`;
3883
+ break;
3884
+ case EFileType.Metadata:
3885
+ prefix = `${prefix}_info_metadata`;
3886
+ break;
3887
+ case EFileType.Resource:
3888
+ break;
3889
+ case EFileType.Thumbnail:
3890
+ prefix = `${prefix}_info_thumbnail`;
3891
+ break;
3892
+ }
3893
+ let filenameToUse = resourcePath.filename;
3894
+ if (resourcePath.type == EFileType.Data && filenameToUse && !isSupportedFileType(filenameToUse)) {
3895
+ filenameToUse = filenameToUse + ".zip";
3896
+ prefix += "z";
3897
+ }
3898
+ const filename = resourcePath.folder ? resourcePath.folder + "/" + filenameToUse : filenameToUse;
3899
+ return prefix + "/" + filename;
3900
+ }
3901
+ /**
3902
+ * Extracts basic spatial reference information that is used to determine if a custom spatial reference parameter will
3903
+ * be exposed while deploying this solution and if so what feature services will support it and what will the default wkid be
3904
+ *
3905
+ * @param services a list of objects with service name and enabled property (indicates if they currently use a spatial reference var)
3906
+ * @param data the data object of a solution item
3907
+ *
3908
+ * @returns an object that stores if a custom spatial reference parameter is enabled/disabled,
3909
+ * a list of services and if they are enabled/disabled, and the default wkid
3910
+ *
3911
+ * @protected
3912
+ */
3913
+ _getSpatialReferenceInfo(services, defaultWkid) {
3914
+ const defaultServices = {};
3915
+ services.forEach(service => {
3916
+ defaultServices[service.name] = service.enabled;
3917
+ });
3918
+ return {
3919
+ enabled: defaultWkid !== undefined,
3920
+ services: defaultServices,
3921
+ spatialReference: defaultWkid ? defaultWkid : undefined
3922
+ };
3923
+ }
3924
+ /**
3925
+ * Create and store template items for the editor.
3926
+ *
3927
+ * @param solutionItemId Id of the solution represented in the store
3928
+ * @param templates A list of item templates from the solution
3929
+ * @param authentication Credentials for fetching information to be loaded into the store
3930
+ *
3931
+ * @returns a promise that resolves when the templates are ready
3932
+ *
3933
+ * @protected
3934
+ */
3935
+ async _prepareSolutionItemsForEditing(solutionItemId, templates, authentication) {
3936
+ const thumbnailPromises = [];
3937
+ // Augment the template with paths to resources and group information, if relevant
3938
+ templates.forEach((t) => {
3939
+ t.resourceFilePaths = this._getResourceFilePaths(solutionItemId, t, authentication.portal);
3940
+ thumbnailPromises.push(t.resourceFilePaths.length > 0 ?
3941
+ getThumbnailFromStorageItem(authentication, t.resourceFilePaths) :
3942
+ Promise.resolve());
3943
+ t.groupDetails = t.type === "Group" ? this._getItemsSharedWithThisGroup(t, templates) : [];
3944
+ });
3945
+ // Augment the template with its thumbnail file
3946
+ const thumbnails = await Promise.all(thumbnailPromises);
3947
+ templates.forEach((t, i) => {
3948
+ t.thumbnail = thumbnails[i] ? thumbnails[i] : undefined;
3949
+ });
3950
+ return Promise.resolve();
3951
+ }
3952
+ /**
3953
+ * Prepares template items for sending to AGO by updating the resources held by the solution item.
3954
+ *
3955
+ * @param solutionItemId Id of the solution represented in the store
3956
+ * @param templates A list of item templates from the solution
3957
+ * @param authentication Credentials for fetching information to be loaded into the store
3958
+ *
3959
+ * @returns a promise that resolves when the templates are ready
3960
+ *
3961
+ * @protected
3962
+ */
3963
+ async _prepareSolutionItemsForStorage(solutionItemId, templates, authentication) {
3964
+ const resourceAdds = [];
3965
+ // Update the resources and remove the augmentation from a template
3966
+ const pendingTasks = [];
3967
+ templates.forEach((t) => {
3968
+ // Run through the resourceFilePaths for the item seeking modifications to be made to the solution item's
3969
+ // collection of resources; queue them for batching
3970
+ // eslint-disable-next-line @typescript-eslint/no-misused-promises
3971
+ t.resourceFilePaths.forEach(async (path) => {
3972
+ const storageName = this._getResourceStorageName(t.itemId, path);
3973
+ switch (path.updateType) {
3974
+ case EUpdateType.Add:
3975
+ const { prefix, suffix } = this._splitFilename(storageName);
3976
+ t.resources.push(storageName);
3977
+ resourceAdds.push({
3978
+ itemId: t.itemId,
3979
+ file: path.blob,
3980
+ folder: prefix,
3981
+ filename: suffix
3982
+ });
3983
+ break;
3984
+ case EUpdateType.Update:
3985
+ // eslint-disable-next-line @typescript-eslint/no-misused-promises
3986
+ pendingTasks.push(new Promise(async (resolve) => {
3987
+ try {
3988
+ await updateItemResourceFile(solutionItemId, storageName, path.blob, authentication);
3989
+ }
3990
+ catch (err) {
3991
+ console.log("Unable to update " + storageName + " for item " + t.itemId + ": " + JSON.stringify(err));
3992
+ }
3993
+ resolve();
3994
+ }));
3995
+ break;
3996
+ case EUpdateType.Remove:
3997
+ // eslint-disable-next-line @typescript-eslint/no-misused-promises
3998
+ pendingTasks.push(new Promise(async (resolve) => {
3999
+ try {
4000
+ await removeItemResourceFile(solutionItemId, storageName, authentication);
4001
+ t.resources = t.resources.filter((path) => path !== storageName);
4002
+ }
4003
+ catch (err) {
4004
+ console.log("Unable to remove " + storageName + " for item " + t.itemId + ": " + JSON.stringify(err));
4005
+ }
4006
+ resolve();
4007
+ }));
4008
+ break;
4009
+ }
4010
+ return Promise.resolve();
4011
+ });
4012
+ delete t.resourceFilePaths;
4013
+ delete t.thumbnail;
4014
+ delete t.groupDetails;
4015
+ });
4016
+ // Update the resources
4017
+ return Promise.all(pendingTasks)
4018
+ .then(async () => {
4019
+ if (resourceAdds.length > 0) {
4020
+ await copyFilesToStorageItem(resourceAdds, solutionItemId, authentication);
4021
+ }
4022
+ return Promise.resolve();
4023
+ });
4024
+ }
4025
+ /**
4026
+ * Stores basic spatial reference information that is used to determine if a custom spatial reference parameter will
4027
+ * be exposed while deploying this solution and if so what feature services will support it and what will the default wkid be
4028
+ *
4029
+ * @param spatialReferenceInfo The configuration settings for a custom spatial reference
4030
+ * @param templates The templates in the current solution, which will be updated in place if
4031
+ * `spatialReferenceInfo.enabled` is true
4032
+ *
4033
+ * @returns The new default wkid
4034
+ *
4035
+ * @protected
4036
+ */
4037
+ _setSpatialReferenceInfo(spatialReferenceInfo, templates) {
4038
+ const customizingPrefix = "{{params.wkid||";
4039
+ const customizeableFeatureServices = this._getCustomizableFeatureServices(templates);
4040
+ if (spatialReferenceInfo.enabled) {
4041
+ // Enable or disable this feature in each service
4042
+ customizeableFeatureServices.forEach((fs) => {
4043
+ const name = fs.item.title || fs.item.name;
4044
+ let wkid;
4045
+ if (spatialReferenceInfo.services[name]) { // enabled
4046
+ wkid = `{{params.wkid||${spatialReferenceInfo.spatialReference}}}`;
4047
+ setCreateProp(fs, "properties.service.spatialReference.wkid", wkid);
4048
+ }
4049
+ else { // disabled
4050
+ wkid = getProp(fs, "properties.service.spatialReference.wkid");
4051
+ // Remove customizing prefix if present
4052
+ if (wkid.toString().startsWith(customizingPrefix)) {
4053
+ wkid = wkid.toString().substring(customizingPrefix.length, wkid.length - 2);
4054
+ setCreateProp(fs, "properties.service.spatialReference.wkid", wkid);
4055
+ }
4056
+ }
4057
+ });
4058
+ return spatialReferenceInfo.spatialReference;
4059
+ }
4060
+ else {
4061
+ // Disable this feature in each service
4062
+ customizeableFeatureServices.forEach((fs) => {
4063
+ const wkid = getProp(fs, "properties.service.spatialReference.wkid");
4064
+ // Remove customizing prefix if present
4065
+ if (wkid.toString().startsWith(customizingPrefix)) {
4066
+ setCreateProp(fs, "properties.service.spatialReference.wkid", wkid.toString().substring(customizingPrefix.length, wkid.length - 2));
4067
+ }
4068
+ });
4069
+ return undefined;
4070
+ }
4071
+ }
4072
+ /**
4073
+ * Splits a pathed filename into a last term and a prefix; e.g., "a/b/c" returns "c" with a prefix of "a/b".
4074
+ *
4075
+ * @param filename Filename with optional path
4076
+ *
4077
+ * @returns An object consisting of a `prefix` (undefined if `filename` does not contain a path) and a `suffix`--the
4078
+ * filename at the end of a path
4079
+ *
4080
+ * @protected
4081
+ */
4082
+ _splitFilename(filename) {
4083
+ const filenameParts = filename.split("/");
4084
+ return {
4085
+ prefix: filenameParts.length > 1 ? filenameParts.slice(0, filenameParts.length - 1).join("/") : undefined,
4086
+ suffix: filenameParts[filenameParts.length - 1]
4087
+ };
4088
+ }
4089
+ }
4090
+ const state = SolutionStore.Store;
4091
+
4092
+ export { ArcGISAuthError as A, EFileType as E, NODEJS_DEFAULT_REFERER_HEADER as N, cleanUrl as c, encodeQueryString as e, getProp as g, request as r, state as s };