@esri/solutions-components 0.6.2 → 0.6.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1219) hide show
  1. package/dist/assets/t9n/card-manager/resources.json +2 -1
  2. package/dist/assets/t9n/card-manager/resources_en.json +2 -1
  3. package/dist/assets/t9n/comment-card/resources.json +2 -1
  4. package/dist/assets/t9n/comment-card/resources_en.json +2 -1
  5. package/dist/assets/t9n/crowdsource-manager/resources.json +2 -1
  6. package/dist/assets/t9n/crowdsource-manager/resources_en.json +2 -1
  7. package/dist/assets/t9n/edit-card/resources.json +3 -0
  8. package/dist/assets/t9n/edit-card/resources_en.json +3 -0
  9. package/dist/assets/t9n/info-card/resources.json +6 -0
  10. package/dist/assets/t9n/info-card/resources_en.json +6 -0
  11. package/dist/assets/t9n/layer-table/resources.json +10 -1
  12. package/dist/assets/t9n/layer-table/resources_en.json +10 -1
  13. package/dist/assets/t9n/map-card/resources.json +1 -7
  14. package/dist/assets/t9n/map-card/resources_en.json +1 -7
  15. package/dist/assets/t9n/map-tools/resources.json +9 -0
  16. package/dist/assets/t9n/map-tools/resources_en.json +9 -0
  17. package/dist/assets/t9n/media-card/resources.json +2 -1
  18. package/dist/assets/t9n/media-card/resources_en.json +2 -1
  19. package/dist/cjs/ExpandToggle-df2e8eee.js +117 -0
  20. package/dist/cjs/FloatingArrow-d1fa2c13.js +48 -0
  21. package/dist/cjs/Heading-9abe4b02.js +25 -0
  22. package/dist/cjs/app-globals-953584e9.js +64 -0
  23. package/dist/cjs/ar-88fbb2bf.js +98 -0
  24. package/dist/cjs/array-38a9541f.js +17 -0
  25. package/dist/cjs/bg-53305961.js +79 -0
  26. package/dist/cjs/browser-e514d838.js +24 -0
  27. package/dist/cjs/bs-8fb0c8a8.js +48 -0
  28. package/dist/cjs/buffer-tools_4.cjs.entry.js +17 -14
  29. package/dist/cjs/ca-33170ec7.js +68 -0
  30. package/dist/cjs/calcite-accordion-item.cjs.entry.js +10 -7
  31. package/dist/cjs/calcite-action-bar_2.cjs.entry.js +655 -0
  32. package/dist/cjs/calcite-action-group_2.cjs.entry.js +384 -0
  33. package/dist/cjs/calcite-action-pad.cjs.entry.js +15 -15
  34. package/dist/cjs/calcite-action_2.cjs.entry.js +407 -69
  35. package/dist/cjs/calcite-alert.cjs.entry.js +23 -12
  36. package/dist/cjs/calcite-avatar.cjs.entry.js +5 -5
  37. package/dist/cjs/calcite-block-section.cjs.entry.js +8 -8
  38. package/dist/cjs/calcite-block.cjs.entry.js +170 -0
  39. package/dist/cjs/calcite-button.cjs.entry.js +15 -12
  40. package/dist/cjs/calcite-card.cjs.entry.js +9 -9
  41. package/dist/cjs/calcite-checkbox.cjs.entry.js +11 -8
  42. package/dist/cjs/calcite-chip-group.cjs.entry.js +9 -6
  43. package/dist/cjs/calcite-chip.cjs.entry.js +14 -11
  44. package/dist/cjs/calcite-color-picker-hex-input_2.cjs.entry.js +8 -8
  45. package/dist/cjs/calcite-color-picker.cjs.entry.js +15 -12
  46. package/dist/cjs/calcite-combobox-item-group.cjs.entry.js +5 -5
  47. package/dist/cjs/calcite-combobox_6.cjs.entry.js +1868 -0
  48. package/dist/cjs/calcite-date-picker-day_3.cjs.entry.js +17 -10
  49. package/dist/cjs/calcite-date-picker.cjs.entry.js +11 -11
  50. package/dist/cjs/calcite-fab.cjs.entry.js +13 -6
  51. package/dist/cjs/calcite-filter_3.cjs.entry.js +778 -0
  52. package/dist/cjs/calcite-flow-item.cjs.entry.js +14 -11
  53. package/dist/cjs/calcite-flow.cjs.entry.js +2 -2
  54. package/dist/cjs/calcite-graph.cjs.entry.js +3 -3
  55. package/dist/cjs/calcite-handle.cjs.entry.js +136 -0
  56. package/dist/cjs/calcite-icon.cjs.entry.js +6 -6
  57. package/dist/cjs/calcite-inline-editable.cjs.entry.js +14 -11
  58. package/dist/cjs/calcite-input-date-picker.cjs.entry.js +23 -19
  59. package/dist/cjs/calcite-input-number.cjs.entry.js +16 -13
  60. package/dist/cjs/calcite-input-text_4.cjs.entry.js +1852 -0
  61. package/dist/cjs/calcite-input-time-picker-a27cc51a.js +1624 -0
  62. package/dist/cjs/calcite-input-time-picker.cjs.entry.js +15 -14
  63. package/dist/cjs/calcite-input_2.cjs.entry.js +16 -13
  64. package/dist/cjs/calcite-label.cjs.entry.js +5 -5
  65. package/dist/cjs/calcite-link.cjs.entry.js +12 -5
  66. package/dist/cjs/calcite-list-item-group.cjs.entry.js +8 -3
  67. package/dist/cjs/calcite-loader.cjs.entry.js +80 -0
  68. package/dist/cjs/calcite-menu-item.cjs.entry.js +10 -10
  69. package/dist/cjs/calcite-menu.cjs.entry.js +9 -9
  70. package/dist/cjs/calcite-modal.cjs.entry.js +14 -14
  71. package/dist/cjs/calcite-navigation-logo.cjs.entry.js +2 -2
  72. package/dist/cjs/calcite-navigation-user.cjs.entry.js +2 -2
  73. package/dist/cjs/calcite-navigation.cjs.entry.js +5 -5
  74. package/dist/cjs/calcite-notice.cjs.entry.js +139 -0
  75. package/dist/cjs/calcite-option_2.cjs.entry.js +12 -9
  76. package/dist/cjs/calcite-pagination.cjs.entry.js +9 -9
  77. package/dist/cjs/calcite-panel_2.cjs.entry.js +17 -14
  78. package/dist/cjs/calcite-pick-list-group.cjs.entry.js +7 -7
  79. package/dist/cjs/calcite-pick-list-item.cjs.entry.js +15 -12
  80. package/dist/cjs/calcite-pick-list.cjs.entry.js +146 -0
  81. package/dist/cjs/calcite-radio-button-group.cjs.entry.js +35 -6
  82. package/dist/cjs/calcite-radio-button.cjs.entry.js +56 -26
  83. package/dist/cjs/calcite-rating.cjs.entry.js +15 -12
  84. package/dist/cjs/calcite-scrim.cjs.entry.js +44 -9
  85. package/dist/cjs/calcite-segmented-control_2.cjs.entry.js +258 -0
  86. package/dist/cjs/calcite-shell-center-row.cjs.entry.js +6 -6
  87. package/dist/cjs/calcite-shell-panel_14.cjs.entry.js +32 -25
  88. package/dist/cjs/calcite-sortable-list.cjs.entry.js +10 -7
  89. package/dist/cjs/calcite-split-button.cjs.entry.js +122 -0
  90. package/dist/cjs/calcite-stack.cjs.entry.js +4 -4
  91. package/dist/cjs/calcite-stepper-item.cjs.entry.js +11 -8
  92. package/dist/cjs/calcite-stepper.cjs.entry.js +3 -3
  93. package/dist/cjs/calcite-switch.cjs.entry.js +11 -8
  94. package/dist/cjs/calcite-text-area.cjs.entry.js +15 -12
  95. package/dist/cjs/calcite-tile-select-group.cjs.entry.js +8 -1
  96. package/dist/cjs/calcite-tile-select.cjs.entry.js +7 -4
  97. package/dist/cjs/calcite-tile.cjs.entry.js +10 -7
  98. package/dist/cjs/calcite-time-picker.cjs.entry.js +10 -10
  99. package/dist/cjs/calcite-tip-manager.cjs.entry.js +9 -9
  100. package/dist/cjs/calcite-tip.cjs.entry.js +10 -10
  101. package/dist/cjs/calcite-tree_3.cjs.entry.js +15 -48
  102. package/dist/cjs/card-manager_3.cjs.entry.js +658 -0
  103. package/dist/cjs/conditionalSlot-981d22ef.js +63 -0
  104. package/dist/cjs/crowdsource-manager.cjs.entry.js +22 -10
  105. package/dist/cjs/cs-00bf51dd.js +144 -0
  106. package/dist/cjs/da-b4fe1bf6.js +63 -0
  107. package/dist/cjs/date-c378755c.js +250 -0
  108. package/dist/cjs/de-9df08c96.js +88 -0
  109. package/dist/cjs/de-at-dac7c3a1.js +87 -0
  110. package/dist/cjs/de-ch-2e005f38.js +87 -0
  111. package/dist/cjs/deduct-calculator.cjs.entry.js +3 -3
  112. package/dist/cjs/dom-af578b3b.js +954 -0
  113. package/dist/cjs/downloadUtils-6d4e269f.js +2729 -0
  114. package/dist/cjs/edit-card_2.cjs.entry.js +339 -0
  115. package/dist/cjs/el-bea67f78.js +63 -0
  116. package/dist/cjs/en-au-1d459a65.js +63 -0
  117. package/dist/cjs/en-ca-edc65793.js +62 -0
  118. package/dist/cjs/en-gb-6346d6a4.js +66 -0
  119. package/dist/cjs/es-aa822160.js +63 -0
  120. package/dist/cjs/es-mx-64988455.js +62 -0
  121. package/dist/cjs/et-e5a47682.js +89 -0
  122. package/dist/cjs/fi-92ac3b85.js +112 -0
  123. package/dist/cjs/filter-56d64d02.js +765 -0
  124. package/dist/cjs/floating-ui-b2a26a9a.js +1874 -0
  125. package/dist/cjs/focusTrapComponent-65d39be9.js +851 -0
  126. package/dist/cjs/form-f62ca3df.js +288 -0
  127. package/dist/cjs/fr-1c9ab5db.js +65 -0
  128. package/dist/cjs/fr-ch-67ccddcd.js +63 -0
  129. package/dist/cjs/guid-100bd1be.js +26 -0
  130. package/dist/cjs/he-2306f19e.js +102 -0
  131. package/dist/cjs/hi-18b2364f.js +62 -0
  132. package/dist/cjs/hr-f47dfd73.js +77 -0
  133. package/dist/cjs/hu-9533083e.js +85 -0
  134. package/dist/cjs/id-b98eb252.js +63 -0
  135. package/dist/cjs/index.es-fc923796.js +10808 -0
  136. package/dist/cjs/interactive-e8f05d26.js +147 -0
  137. package/dist/cjs/interfaces-ad03ec39.js +85 -0
  138. package/dist/cjs/it-43222f60.js +63 -0
  139. package/dist/cjs/it-ch-f9eb4007.js +63 -0
  140. package/dist/cjs/ja-8c6ec082.js +69 -0
  141. package/dist/cjs/key-2522c20b.js +19 -0
  142. package/dist/cjs/ko-d2889748.js +69 -0
  143. package/dist/cjs/label-71d4d3b5.js +136 -0
  144. package/dist/cjs/loadable-6571b6b9.js +69 -0
  145. package/dist/cjs/loader.cjs.js +3 -3
  146. package/dist/cjs/locale-83870af6.js +570 -0
  147. package/dist/cjs/lt-1ebac21f.js +94 -0
  148. package/dist/cjs/lv-cb236d46.js +63 -0
  149. package/dist/cjs/map-tools.cjs.entry.js +111 -0
  150. package/dist/cjs/mapViewUtils-efc49df7.js +369 -0
  151. package/dist/cjs/math-0eb2ec5c.js +28 -0
  152. package/dist/cjs/mk-00e34bda.js +63 -0
  153. package/dist/cjs/nb-6e0d9b4c.js +64 -0
  154. package/dist/cjs/nl-bb4f7d59.js +64 -0
  155. package/dist/cjs/observers-5c9538b2.js +53 -0
  156. package/dist/cjs/openCloseComponent-0b7ace48.js +100 -0
  157. package/dist/cjs/pl-2cf4efab.js +111 -0
  158. package/dist/cjs/pt-4c4a3aa2.js +64 -0
  159. package/dist/cjs/pt-br-6abb7f76.js +62 -0
  160. package/dist/cjs/public-notification.cjs.entry.js +18 -5
  161. package/dist/cjs/resources-11930a56.js +22 -0
  162. package/dist/cjs/resources-31971fd8.js +39 -0
  163. package/dist/cjs/resources-3910592f.js +20 -0
  164. package/dist/cjs/resources-3a47be9f.js +32 -0
  165. package/dist/cjs/resources-6c4c932c.js +2057 -0
  166. package/dist/cjs/resources-c751bdd1.js +50 -0
  167. package/dist/cjs/resources-d4061075.js +27 -0
  168. package/dist/cjs/resources-d8a4240f.js +23 -0
  169. package/dist/cjs/resources-e4e8d49f.js +27 -0
  170. package/dist/cjs/ro-c257efaf.js +63 -0
  171. package/dist/cjs/ru-e31a6ee1.js +123 -0
  172. package/dist/cjs/shared-list-render-d4e4e7b1.js +364 -0
  173. package/dist/cjs/sk-4d6d340c.js +145 -0
  174. package/dist/cjs/sl-01804d73.js +63 -0
  175. package/dist/cjs/solution-configuration.cjs.entry.js +2 -2
  176. package/dist/cjs/solution-contents_3.cjs.entry.js +2 -2
  177. package/dist/cjs/solution-store-bd956f06.js +4100 -0
  178. package/dist/cjs/solutions-components.cjs.js +3 -3
  179. package/dist/cjs/sortableComponent-76967993.js +3087 -0
  180. package/dist/cjs/sr-76730aad.js +98 -0
  181. package/dist/cjs/sv-c1e40108.js +68 -0
  182. package/dist/cjs/t9n-f82f4304.js +100 -0
  183. package/dist/cjs/th-758abef8.js +62 -0
  184. package/dist/cjs/time-a1d60db6.js +208 -0
  185. package/dist/cjs/tr-36efd084.js +63 -0
  186. package/dist/cjs/uk-f5a49848.js +101 -0
  187. package/dist/cjs/utils-300573e5.js +64 -0
  188. package/dist/cjs/utils-369d7746.js +218 -0
  189. package/dist/cjs/utils-46e2a6ec.js +55 -0
  190. package/dist/cjs/utils-cedf26ae.js +87 -0
  191. package/dist/cjs/vi-f87def37.js +67 -0
  192. package/dist/cjs/zh-cn-6d3c38fc.js +91 -0
  193. package/dist/cjs/zh-hk-1bd0e62f.js +68 -0
  194. package/dist/cjs/zh-tw-40912bdf.js +89 -0
  195. package/dist/collection/collection-manifest.json +2 -5
  196. package/dist/collection/components/card-manager/card-manager.css +26 -9
  197. package/dist/collection/components/card-manager/card-manager.js +96 -29
  198. package/dist/collection/components/crowdsource-manager/crowdsource-manager.css +39 -7
  199. package/dist/collection/components/crowdsource-manager/crowdsource-manager.js +22 -10
  200. package/dist/collection/components/crowdsource-reporter/crowdsource-reporter.js +1 -1
  201. package/dist/collection/components/deduct-calculator/deduct-calculator.js +5 -5
  202. package/dist/collection/components/edit-card/edit-card.css +54 -0
  203. package/dist/collection/components/edit-card/edit-card.js +294 -0
  204. package/dist/collection/components/info-card/info-card.css +21 -0
  205. package/dist/collection/components/info-card/info-card.js +199 -36
  206. package/dist/collection/components/layer-table/layer-table.css +19 -2
  207. package/dist/collection/components/layer-table/layer-table.js +222 -75
  208. package/dist/collection/components/map-card/map-card.css +8 -2
  209. package/dist/collection/components/map-card/map-card.js +24 -93
  210. package/dist/collection/components/map-layer-picker/map-layer-picker.css +9 -0
  211. package/dist/collection/components/map-layer-picker/map-layer-picker.js +145 -45
  212. package/dist/collection/components/map-select-tools/map-select-tools.js +3 -4
  213. package/dist/collection/components/map-tools/map-tools.css +31 -0
  214. package/dist/collection/components/map-tools/map-tools.js +196 -0
  215. package/dist/collection/components/pdf-download/pdf-download.js +19 -1
  216. package/dist/collection/components/public-notification/public-notification.js +51 -3
  217. package/dist/collection/components/refine-selection/refine-selection.js +2 -2
  218. package/dist/collection/demos/buffer-tools.html +2 -2
  219. package/dist/collection/demos/card-manager.html +49 -3
  220. package/dist/collection/demos/crowdsource-manager.html +15 -5
  221. package/dist/collection/demos/crowdsource-reporter.html +2 -2
  222. package/dist/collection/demos/demo-map.html +2 -2
  223. package/dist/collection/demos/edit-card.html +34 -0
  224. package/dist/collection/demos/index.html +1 -1
  225. package/dist/collection/demos/layer-table.html +2 -2
  226. package/dist/collection/demos/list-item.html +2 -2
  227. package/dist/collection/demos/map-card.html +2 -2
  228. package/dist/collection/demos/map-draw-tools.html +2 -2
  229. package/dist/collection/demos/map-layer-picker.html +2 -2
  230. package/dist/collection/demos/map-select-tools.html +2 -2
  231. package/dist/collection/utils/downloadUtils.js +1 -1
  232. package/dist/collection/utils/downloadUtils.ts +1 -1
  233. package/dist/collection/utils/interfaces.js +5 -0
  234. package/dist/collection/utils/interfaces.ts +18 -6
  235. package/dist/collection/utils/queryUtils.js +39 -2
  236. package/dist/collection/utils/queryUtils.ts +48 -3
  237. package/dist/components/ExpandToggle.js +5 -7
  238. package/dist/components/FloatingArrow.js +1 -1
  239. package/dist/components/Heading.js +1 -1
  240. package/dist/components/action-bar.js +19 -19
  241. package/dist/components/action-group.js +1 -1
  242. package/dist/components/action-menu.js +2 -2
  243. package/dist/components/action.js +4 -2
  244. package/dist/components/alert.js +328 -0
  245. package/dist/components/array.js +1 -1
  246. package/dist/components/avatar.js +2 -2
  247. package/dist/components/browser.js +21 -0
  248. package/dist/components/button.js +4 -2
  249. package/dist/components/calcite-accordion-item.js +6 -3
  250. package/dist/components/calcite-action-pad.js +3 -3
  251. package/dist/components/calcite-alert.js +1 -310
  252. package/dist/components/calcite-block-section.js +1 -1
  253. package/dist/components/calcite-block.js +227 -1
  254. package/dist/components/calcite-card.js +1 -1
  255. package/dist/components/calcite-chip-group.js +4 -2
  256. package/dist/components/calcite-color-picker.js +3 -1
  257. package/dist/components/calcite-combobox-item-group.js +1 -1
  258. package/dist/components/calcite-fab.js +9 -3
  259. package/dist/components/calcite-flow-item.js +4 -2
  260. package/dist/components/calcite-flow.js +1 -1
  261. package/dist/components/calcite-inline-editable.js +4 -2
  262. package/dist/components/calcite-input-date-picker.js +7 -4
  263. package/dist/components/calcite-input-time-picker.js +5 -3
  264. package/dist/components/calcite-list-item-group.js +6 -2
  265. package/dist/components/calcite-menu-item.js +2 -2
  266. package/dist/components/calcite-modal.js +408 -1
  267. package/dist/components/calcite-navigation-logo.js +1 -1
  268. package/dist/components/calcite-navigation-user.js +1 -1
  269. package/dist/components/calcite-navigation.js +2 -2
  270. package/dist/components/calcite-pagination.js +1 -1
  271. package/dist/components/calcite-pick-list.js +159 -1
  272. package/dist/components/calcite-radio-button-group.js +38 -7
  273. package/dist/components/calcite-radio-button.js +50 -21
  274. package/dist/components/calcite-rating.js +4 -2
  275. package/dist/components/calcite-shell-center-row.js +1 -1
  276. package/dist/components/calcite-sortable-list.js +5 -3
  277. package/dist/components/calcite-split-button.js +167 -1
  278. package/dist/components/calcite-stack.js +2 -2
  279. package/dist/components/calcite-stepper-item.js +3 -1
  280. package/dist/components/calcite-stepper.js +1 -1
  281. package/dist/components/calcite-text-area.js +5 -3
  282. package/dist/components/calcite-tile-select-group.js +7 -1
  283. package/dist/components/calcite-tile-select.js +4 -2
  284. package/dist/components/calcite-tip-manager.js +1 -1
  285. package/dist/components/calcite-tip.js +1 -1
  286. package/dist/components/card-manager.js +1 -133
  287. package/dist/components/card-manager2.js +177 -0
  288. package/dist/components/checkbox.js +3 -1
  289. package/dist/components/chip.js +5 -3
  290. package/dist/components/color-picker-hex-input.js +3 -3
  291. package/dist/components/color-picker-swatch.js +2 -2
  292. package/dist/components/combobox-item.js +4 -2
  293. package/dist/components/combobox.js +5 -3
  294. package/dist/components/conditionalSlot.js +1 -1
  295. package/dist/components/crowdsource-manager.js +93 -69
  296. package/dist/components/date-picker-day.js +8 -2
  297. package/dist/components/date-picker-month-header.js +2 -2
  298. package/dist/components/date-picker.js +2 -2
  299. package/dist/components/date.js +1 -1
  300. package/dist/components/deduct-calculator2.js +3 -3
  301. package/dist/components/dom.js +3 -3
  302. package/dist/components/downloadUtils.js +2 -2
  303. package/dist/components/dropdown-group.js +1 -1
  304. package/dist/components/dropdown-item.js +1 -1
  305. package/dist/components/dropdown.js +6 -4
  306. package/dist/components/edit-card.d.ts +11 -0
  307. package/dist/components/edit-card.js +11 -0
  308. package/dist/components/edit-card2.js +201 -0
  309. package/dist/components/filter.js +4 -2
  310. package/dist/components/filter2.js +1 -1
  311. package/dist/components/floating-ui.js +228 -179
  312. package/dist/components/focusTrapComponent.js +47 -5
  313. package/dist/components/form.js +2 -2
  314. package/dist/components/graph.js +1 -1
  315. package/dist/components/guid.js +1 -1
  316. package/dist/components/handle.js +1 -1
  317. package/dist/components/icon.js +2 -2
  318. package/dist/components/index.d.ts +2 -5
  319. package/dist/components/index.js +3 -6
  320. package/dist/components/info-card2.js +183 -28
  321. package/dist/components/input-message.js +2 -2
  322. package/dist/components/input-number.js +6 -4
  323. package/dist/components/input-text.js +5 -3
  324. package/dist/components/input.js +6 -4
  325. package/dist/components/interactive.js +80 -10
  326. package/dist/components/interfaces.js +6 -1
  327. package/dist/components/key.js +1 -1
  328. package/dist/components/label.js +1 -1
  329. package/dist/components/label2.js +2 -2
  330. package/dist/components/layer-table2.js +221 -117
  331. package/dist/components/link.js +8 -2
  332. package/dist/components/list-item2.js +7 -7
  333. package/dist/components/list.js +8 -8
  334. package/dist/components/loadable.js +1 -1
  335. package/dist/components/locale2.js +7 -4
  336. package/dist/components/map-card2.js +65 -92
  337. package/dist/components/map-draw-tools2.js +1 -1
  338. package/dist/components/map-layer-picker2.js +133 -239
  339. package/dist/components/map-select-tools2.js +38 -14
  340. package/dist/components/map-tools.d.ts +11 -0
  341. package/dist/components/map-tools.js +11 -0
  342. package/dist/components/map-tools2.js +176 -0
  343. package/dist/components/mapViewUtils.js +204 -0
  344. package/dist/components/math.js +1 -1
  345. package/dist/components/menu.js +2 -2
  346. package/dist/components/notice.js +2 -2
  347. package/dist/components/observers.js +1 -1
  348. package/dist/components/openCloseComponent.js +1 -1
  349. package/dist/components/panel.js +5 -3
  350. package/dist/components/pdf-download2.js +3 -1
  351. package/dist/components/pick-list-item.js +4 -2
  352. package/dist/components/popover.js +3 -3
  353. package/dist/components/public-notification.js +57 -23
  354. package/dist/components/queryUtils.js +11 -17
  355. package/dist/components/refine-selection2.js +36 -11
  356. package/dist/components/resources.js +1 -1
  357. package/dist/components/resources2.js +1 -1
  358. package/dist/components/resources3.js +1 -1
  359. package/dist/components/scrim.js +39 -2
  360. package/dist/components/segmented-control-item.js +1 -1
  361. package/dist/components/segmented-control.js +3 -1
  362. package/dist/components/select.js +5 -3
  363. package/dist/components/shared-list-render.js +3 -3
  364. package/dist/components/shell-panel.js +1 -1
  365. package/dist/components/shell.js +2 -2
  366. package/dist/components/slider.js +4 -2
  367. package/dist/components/sortableComponent.js +1 -1
  368. package/dist/components/switch.js +4 -2
  369. package/dist/components/t9n.js +1 -1
  370. package/dist/components/tab-nav.js +1 -1
  371. package/dist/components/tab-title.js +4 -2
  372. package/dist/components/tabs.js +1 -1
  373. package/dist/components/tile.js +4 -2
  374. package/dist/components/time-picker.js +2 -2
  375. package/dist/components/tooltip.js +45 -28
  376. package/dist/components/tree-item.js +9 -43
  377. package/dist/components/tree.js +2 -2
  378. package/dist/components/utils.js +1 -1
  379. package/dist/components/utils2.js +3 -3
  380. package/dist/components/utils3.js +2 -2
  381. package/dist/components/value-list-item.js +4 -2
  382. package/dist/components/value-list.js +6 -4
  383. package/dist/esm/ExpandToggle-4683a6dc.js +109 -0
  384. package/dist/esm/FloatingArrow-fa0da351.js +46 -0
  385. package/dist/esm/Heading-14bfe249.js +22 -0
  386. package/dist/esm/app-globals-b5877644.js +62 -0
  387. package/dist/esm/ar-8e6281b5.js +96 -0
  388. package/dist/esm/array-e32fb269.js +15 -0
  389. package/dist/esm/bg-89c46a11.js +77 -0
  390. package/dist/esm/browser-f8ca09b7.js +21 -0
  391. package/dist/esm/bs-567a72ac.js +46 -0
  392. package/dist/esm/buffer-tools_4.entry.js +17 -14
  393. package/dist/esm/ca-0d08cce0.js +66 -0
  394. package/dist/esm/calcite-accordion-item.entry.js +10 -7
  395. package/dist/esm/calcite-action-bar_2.entry.js +650 -0
  396. package/dist/esm/calcite-action-group_2.entry.js +379 -0
  397. package/dist/esm/calcite-action-pad.entry.js +15 -15
  398. package/dist/esm/calcite-action_2.entry.js +408 -70
  399. package/dist/esm/calcite-alert.entry.js +23 -12
  400. package/dist/esm/calcite-avatar.entry.js +5 -5
  401. package/dist/esm/calcite-block-section.entry.js +8 -8
  402. package/dist/esm/calcite-block.entry.js +166 -0
  403. package/dist/esm/calcite-button.entry.js +15 -12
  404. package/dist/esm/calcite-card.entry.js +9 -9
  405. package/dist/esm/calcite-checkbox.entry.js +11 -8
  406. package/dist/esm/calcite-chip-group.entry.js +9 -6
  407. package/dist/esm/calcite-chip.entry.js +14 -11
  408. package/dist/esm/calcite-color-picker-hex-input_2.entry.js +8 -8
  409. package/dist/esm/calcite-color-picker.entry.js +15 -12
  410. package/dist/esm/calcite-combobox-item-group.entry.js +5 -5
  411. package/dist/esm/calcite-combobox_6.entry.js +1859 -0
  412. package/dist/esm/calcite-date-picker-day_3.entry.js +17 -10
  413. package/dist/esm/calcite-date-picker.entry.js +11 -11
  414. package/dist/esm/calcite-fab.entry.js +13 -6
  415. package/dist/esm/calcite-filter_3.entry.js +772 -0
  416. package/dist/esm/calcite-flow-item.entry.js +14 -11
  417. package/dist/esm/calcite-flow.entry.js +2 -2
  418. package/dist/esm/calcite-graph.entry.js +3 -3
  419. package/dist/esm/calcite-handle.entry.js +132 -0
  420. package/dist/esm/calcite-icon.entry.js +6 -6
  421. package/dist/esm/calcite-inline-editable.entry.js +14 -11
  422. package/dist/esm/calcite-input-date-picker.entry.js +23 -19
  423. package/dist/esm/calcite-input-number.entry.js +16 -13
  424. package/dist/esm/calcite-input-text_4.entry.js +1845 -0
  425. package/dist/esm/calcite-input-time-picker-d5606a45.js +1621 -0
  426. package/dist/esm/calcite-input-time-picker.entry.js +15 -14
  427. package/dist/esm/calcite-input_2.entry.js +16 -13
  428. package/dist/esm/calcite-label.entry.js +5 -5
  429. package/dist/esm/calcite-link.entry.js +12 -5
  430. package/dist/esm/calcite-list-item-group.entry.js +8 -3
  431. package/dist/esm/calcite-loader.entry.js +76 -0
  432. package/dist/esm/calcite-menu-item.entry.js +10 -10
  433. package/dist/esm/calcite-menu.entry.js +9 -9
  434. package/dist/esm/calcite-modal.entry.js +14 -14
  435. package/dist/esm/calcite-navigation-logo.entry.js +2 -2
  436. package/dist/esm/calcite-navigation-user.entry.js +2 -2
  437. package/dist/esm/calcite-navigation.entry.js +5 -5
  438. package/dist/esm/calcite-notice.entry.js +135 -0
  439. package/dist/esm/calcite-option_2.entry.js +12 -9
  440. package/dist/esm/calcite-pagination.entry.js +9 -9
  441. package/dist/esm/calcite-panel_2.entry.js +17 -14
  442. package/dist/esm/calcite-pick-list-group.entry.js +7 -7
  443. package/dist/esm/calcite-pick-list-item.entry.js +15 -12
  444. package/dist/esm/calcite-pick-list.entry.js +142 -0
  445. package/dist/esm/calcite-radio-button-group.entry.js +35 -6
  446. package/dist/esm/calcite-radio-button.entry.js +57 -27
  447. package/dist/esm/calcite-rating.entry.js +15 -12
  448. package/dist/esm/calcite-scrim.entry.js +44 -9
  449. package/dist/esm/calcite-segmented-control_2.entry.js +253 -0
  450. package/dist/esm/calcite-shell-center-row.entry.js +6 -6
  451. package/dist/esm/calcite-shell-panel_14.entry.js +32 -25
  452. package/dist/esm/calcite-sortable-list.entry.js +10 -7
  453. package/dist/esm/calcite-split-button.entry.js +118 -0
  454. package/dist/esm/calcite-stack.entry.js +4 -4
  455. package/dist/esm/calcite-stepper-item.entry.js +11 -8
  456. package/dist/esm/calcite-stepper.entry.js +3 -3
  457. package/dist/esm/calcite-switch.entry.js +11 -8
  458. package/dist/esm/calcite-text-area.entry.js +15 -12
  459. package/dist/esm/calcite-tile-select-group.entry.js +8 -1
  460. package/dist/esm/calcite-tile-select.entry.js +7 -4
  461. package/dist/esm/calcite-tile.entry.js +10 -7
  462. package/dist/esm/calcite-time-picker.entry.js +10 -10
  463. package/dist/esm/calcite-tip-manager.entry.js +9 -9
  464. package/dist/esm/calcite-tip.entry.js +10 -10
  465. package/dist/esm/calcite-tree_3.entry.js +15 -48
  466. package/dist/esm/card-manager_3.entry.js +652 -0
  467. package/dist/esm/conditionalSlot-b651e48a.js +60 -0
  468. package/dist/esm/crowdsource-manager.entry.js +22 -10
  469. package/dist/esm/cs-4ea5bb28.js +142 -0
  470. package/dist/esm/da-8121b2c6.js +61 -0
  471. package/dist/esm/date-3f48db3f.js +235 -0
  472. package/dist/esm/de-4f0e6db4.js +86 -0
  473. package/dist/esm/de-at-6f914992.js +85 -0
  474. package/dist/esm/de-ch-ba51285a.js +85 -0
  475. package/dist/esm/deduct-calculator.entry.js +3 -3
  476. package/dist/esm/dom-03275741.js +927 -0
  477. package/dist/esm/downloadUtils-1092cb0f.js +2723 -0
  478. package/dist/esm/edit-card_2.entry.js +334 -0
  479. package/dist/esm/el-2fb644ad.js +61 -0
  480. package/dist/esm/en-au-469a4963.js +61 -0
  481. package/dist/esm/en-ca-a110f04a.js +60 -0
  482. package/dist/esm/en-gb-04dd59df.js +64 -0
  483. package/dist/esm/es-901bbd11.js +61 -0
  484. package/dist/esm/es-mx-c3cff8d1.js +60 -0
  485. package/dist/esm/et-0ded5035.js +87 -0
  486. package/dist/esm/fi-767e7505.js +110 -0
  487. package/dist/esm/filter-4ba3be5f.js +763 -0
  488. package/dist/esm/floating-ui-1e70279f.js +1866 -0
  489. package/dist/esm/focusTrapComponent-eaa62505.js +846 -0
  490. package/dist/esm/form-8396f037.js +280 -0
  491. package/dist/esm/fr-ch-8c34f192.js +61 -0
  492. package/dist/esm/fr-e6bda0a2.js +63 -0
  493. package/dist/esm/guid-1fbbc894.js +24 -0
  494. package/dist/esm/he-00779397.js +100 -0
  495. package/dist/esm/hi-f3d5ecb7.js +60 -0
  496. package/dist/esm/hr-1d8c2cad.js +75 -0
  497. package/dist/esm/hu-4290c5fe.js +83 -0
  498. package/dist/esm/id-58d1a3cb.js +61 -0
  499. package/dist/esm/index.es-08a48fdd.js +10722 -0
  500. package/dist/esm/interactive-e5b2cca0.js +143 -0
  501. package/dist/esm/interfaces-bf20e69c.js +85 -0
  502. package/dist/esm/it-ch-74c5b6dd.js +61 -0
  503. package/dist/esm/it-ef33898d.js +61 -0
  504. package/dist/esm/ja-7f21d57b.js +67 -0
  505. package/dist/esm/key-d6bc268b.js +16 -0
  506. package/dist/esm/ko-0790a2d9.js +67 -0
  507. package/dist/esm/label-6db1573f.js +130 -0
  508. package/dist/esm/loadable-3cf62971.js +65 -0
  509. package/dist/esm/loader.js +3 -3
  510. package/dist/esm/locale-ead7fa24.js +558 -0
  511. package/dist/esm/lt-6e66fa4a.js +92 -0
  512. package/dist/esm/lv-0c39ca8e.js +61 -0
  513. package/dist/esm/map-tools.entry.js +107 -0
  514. package/dist/esm/mapViewUtils-a787c6a8.js +356 -0
  515. package/dist/esm/math-5e1080da.js +25 -0
  516. package/dist/esm/mk-0e1b5772.js +61 -0
  517. package/dist/esm/nb-8b0c8dcb.js +62 -0
  518. package/dist/esm/nl-89c00bbe.js +62 -0
  519. package/dist/esm/observers-76deadbc.js +51 -0
  520. package/dist/esm/openCloseComponent-7d3ca222.js +96 -0
  521. package/dist/esm/pl-2c7583e1.js +109 -0
  522. package/dist/esm/pt-br-0544aa11.js +60 -0
  523. package/dist/esm/pt-eb653341.js +62 -0
  524. package/dist/esm/public-notification.entry.js +18 -5
  525. package/dist/esm/resources-3600c05b.js +46 -0
  526. package/dist/esm/resources-4d6ec614.js +24 -0
  527. package/dist/esm/resources-684bbbfe.js +23 -0
  528. package/dist/esm/resources-85e89a13.js +19 -0
  529. package/dist/esm/resources-885142d2.js +2048 -0
  530. package/dist/esm/resources-a3b9b875.js +20 -0
  531. package/dist/esm/resources-e7e4115c.js +35 -0
  532. package/dist/esm/resources-ee3b03a3.js +28 -0
  533. package/dist/esm/resources-f5948e92.js +20 -0
  534. package/dist/esm/ro-f5c8d5e2.js +61 -0
  535. package/dist/esm/ru-7725d9a9.js +121 -0
  536. package/dist/esm/shared-list-render-19de1661.js +342 -0
  537. package/dist/esm/sk-606ae6cd.js +143 -0
  538. package/dist/esm/sl-8a06145d.js +61 -0
  539. package/dist/esm/solution-configuration.entry.js +2 -2
  540. package/dist/esm/solution-contents_3.entry.js +2 -2
  541. package/dist/esm/solution-store-c107ca4d.js +4092 -0
  542. package/dist/esm/solutions-components.js +3 -3
  543. package/dist/esm/sortableComponent-dab8ef70.js +3082 -0
  544. package/dist/esm/sr-7eff7ca4.js +96 -0
  545. package/dist/esm/sv-0ab2f707.js +66 -0
  546. package/dist/esm/t9n-ece1047e.js +95 -0
  547. package/dist/esm/th-29a9e340.js +60 -0
  548. package/dist/esm/time-7b08c631.js +195 -0
  549. package/dist/esm/tr-6748b764.js +61 -0
  550. package/dist/esm/uk-de4e1b64.js +99 -0
  551. package/dist/esm/utils-33f2d835.js +200 -0
  552. package/dist/esm/utils-43f27af6.js +61 -0
  553. package/dist/esm/utils-a29ac888.js +45 -0
  554. package/dist/esm/utils-d1d9ff93.js +79 -0
  555. package/dist/esm/vi-6830c744.js +65 -0
  556. package/dist/esm/zh-cn-ad4dc9be.js +89 -0
  557. package/dist/esm/zh-hk-81513d7a.js +66 -0
  558. package/dist/esm/zh-tw-4ff4db52.js +87 -0
  559. package/dist/node_modules/@esri/calcite-components/dist/collection/components/list/list.css +4 -0
  560. package/dist/node_modules/@esri/calcite-components/dist/collection/components/list-item/list-item.css +11 -0
  561. package/dist/node_modules/@esri/calcite-components/dist/collection/components/shell-panel/shell-panel.css +1 -1
  562. package/dist/node_modules/@esri/calcite-components/dist/collection/components/tree-item/tree-item.css +3 -2
  563. package/dist/solutions-components/assets/icon/circlePause16.json +1 -0
  564. package/dist/solutions-components/assets/icon/circlePause16F.json +1 -0
  565. package/dist/solutions-components/assets/icon/circlePause24.json +1 -0
  566. package/dist/solutions-components/assets/icon/circlePause24F.json +1 -0
  567. package/dist/solutions-components/assets/icon/circlePause32.json +1 -0
  568. package/dist/solutions-components/assets/icon/circlePause32F.json +1 -0
  569. package/dist/solutions-components/assets/icon/h3Hexagon16.json +1 -0
  570. package/dist/solutions-components/assets/icon/h3Hexagon24.json +1 -0
  571. package/dist/solutions-components/assets/icon/h3Hexagon32.json +1 -0
  572. package/dist/solutions-components/assets/icon/merge216.json +1 -0
  573. package/dist/solutions-components/assets/icon/merge224.json +1 -0
  574. package/dist/solutions-components/assets/icon/merge232.json +1 -0
  575. package/dist/solutions-components/assets/icon/recycleBin16.json +1 -0
  576. package/dist/solutions-components/assets/icon/recycleBin24.json +1 -0
  577. package/dist/solutions-components/assets/icon/recycleBin32.json +1 -0
  578. package/dist/solutions-components/assets/icon/transverseHexagon16.json +1 -0
  579. package/dist/solutions-components/assets/icon/transverseHexagon24.json +1 -0
  580. package/dist/solutions-components/assets/icon/transverseHexagon32.json +1 -0
  581. package/dist/solutions-components/assets/icon/unmerge16.json +1 -0
  582. package/dist/solutions-components/assets/icon/unmerge24.json +1 -0
  583. package/dist/solutions-components/assets/icon/unmerge32.json +1 -0
  584. package/dist/solutions-components/demos/buffer-tools.html +2 -2
  585. package/dist/solutions-components/demos/card-manager.html +49 -3
  586. package/dist/solutions-components/demos/crowdsource-manager.html +15 -5
  587. package/dist/solutions-components/demos/crowdsource-reporter.html +2 -2
  588. package/dist/solutions-components/demos/demo-map.html +2 -2
  589. package/dist/solutions-components/demos/edit-card.html +34 -0
  590. package/dist/solutions-components/demos/index.html +1 -1
  591. package/dist/solutions-components/demos/layer-table.html +2 -2
  592. package/dist/solutions-components/demos/list-item.html +2 -2
  593. package/dist/solutions-components/demos/map-card.html +2 -2
  594. package/dist/solutions-components/demos/map-draw-tools.html +2 -2
  595. package/dist/solutions-components/demos/map-layer-picker.html +2 -2
  596. package/dist/solutions-components/demos/map-select-tools.html +2 -2
  597. package/dist/solutions-components/p-0036e829.js +11 -0
  598. package/dist/solutions-components/p-004eb0a6.entry.js +6 -0
  599. package/dist/solutions-components/p-04c41e35.js +6 -0
  600. package/dist/solutions-components/p-058f02c9.js +6 -0
  601. package/dist/solutions-components/p-05f6859f.js +11 -0
  602. package/dist/solutions-components/p-0641aa9b.js +36 -0
  603. package/dist/solutions-components/p-0bb57140.js +16 -0
  604. package/dist/solutions-components/p-0d2c9050.js +6 -0
  605. package/dist/solutions-components/p-0e024d20.entry.js +11 -0
  606. package/dist/solutions-components/p-0ef9e367.entry.js +17 -0
  607. package/dist/solutions-components/p-0ff7b311.js +16 -0
  608. package/dist/solutions-components/p-1085b789.js +11 -0
  609. package/dist/solutions-components/p-10dd03be.js +6 -0
  610. package/dist/solutions-components/p-10e93b31.entry.js +11 -0
  611. package/dist/solutions-components/p-132843d2.entry.js +11 -0
  612. package/dist/solutions-components/p-13a8349e.js +6 -0
  613. package/dist/solutions-components/p-16146013.js +6 -0
  614. package/dist/solutions-components/p-161ac069.entry.js +6 -0
  615. package/dist/solutions-components/p-16643fca.entry.js +11 -0
  616. package/dist/solutions-components/p-1aca2237.js +17 -0
  617. package/dist/solutions-components/p-1b69c50d.entry.js +11 -0
  618. package/dist/solutions-components/p-1d81a92e.entry.js +11 -0
  619. package/dist/solutions-components/p-1f1bd18d.js +11 -0
  620. package/dist/solutions-components/p-214657d6.entry.js +6 -0
  621. package/dist/solutions-components/p-2284cd37.js +11 -0
  622. package/dist/solutions-components/p-22c4225f.entry.js +11 -0
  623. package/dist/solutions-components/p-2455a61f.entry.js +11 -0
  624. package/dist/solutions-components/p-293a0267.entry.js +11 -0
  625. package/dist/solutions-components/p-2c049a6d.entry.js +37 -0
  626. package/dist/solutions-components/p-2d651417.js +6 -0
  627. package/dist/solutions-components/p-2f632334.entry.js +11 -0
  628. package/dist/solutions-components/p-309d3096.js +6 -0
  629. package/dist/solutions-components/p-34737573.js +6 -0
  630. package/dist/solutions-components/p-35195436.entry.js +11 -0
  631. package/dist/solutions-components/p-37a78329.js +6 -0
  632. package/dist/solutions-components/p-386dbde1.js +6 -0
  633. package/dist/solutions-components/p-3b57fcc6.js +11 -0
  634. package/dist/solutions-components/p-40bdd836.js +11 -0
  635. package/dist/solutions-components/p-41f5a5fc.js +12 -0
  636. package/dist/solutions-components/p-438560cf.js +6 -0
  637. package/dist/solutions-components/p-474b00d7.entry.js +11 -0
  638. package/dist/solutions-components/p-4766a668.entry.js +6 -0
  639. package/dist/solutions-components/p-4989e987.js +6 -0
  640. package/dist/solutions-components/p-4aab2c0d.entry.js +6 -0
  641. package/dist/solutions-components/p-4b738e52.entry.js +11 -0
  642. package/dist/solutions-components/p-4ea9094a.js +6 -0
  643. package/dist/solutions-components/p-5173b841.js +11 -0
  644. package/dist/solutions-components/p-5652bbda.js +6 -0
  645. package/dist/solutions-components/p-57fa8ff3.entry.js +6 -0
  646. package/dist/solutions-components/p-58448ac4.entry.js +11 -0
  647. package/dist/solutions-components/p-5a6ca63b.entry.js +35 -0
  648. package/dist/solutions-components/p-5a6f8f15.entry.js +17 -0
  649. package/dist/solutions-components/p-5b260e5f.js +61 -0
  650. package/dist/solutions-components/p-5bab0d9d.entry.js +11 -0
  651. package/dist/solutions-components/p-5ca01455.entry.js +11 -0
  652. package/dist/solutions-components/p-5f05045a.entry.js +6 -0
  653. package/dist/solutions-components/p-5fc99541.js +257 -0
  654. package/dist/solutions-components/p-60dba0cb.js +11 -0
  655. package/dist/solutions-components/p-610ff7ca.js +6 -0
  656. package/dist/solutions-components/p-612c38cc.js +6 -0
  657. package/dist/solutions-components/p-628f2a83.entry.js +11 -0
  658. package/dist/solutions-components/p-62a49383.js +6 -0
  659. package/dist/solutions-components/p-6305f474.entry.js +18 -0
  660. package/dist/solutions-components/p-67d0ce8c.entry.js +11 -0
  661. package/dist/solutions-components/p-67d75135.js +6 -0
  662. package/dist/solutions-components/p-693bafa4.js +6 -0
  663. package/dist/solutions-components/p-6960ce47.js +6 -0
  664. package/dist/solutions-components/p-696de9a4.entry.js +6 -0
  665. package/dist/solutions-components/p-69cd4b76.entry.js +17 -0
  666. package/dist/solutions-components/p-6c1d694f.js +6 -0
  667. package/dist/solutions-components/p-743451a5.entry.js +6 -0
  668. package/dist/solutions-components/p-7479f322.entry.js +28 -0
  669. package/dist/solutions-components/p-74a2d025.entry.js +6 -0
  670. package/dist/solutions-components/p-75ed8af0.entry.js +12 -0
  671. package/dist/solutions-components/p-76716055.js +6 -0
  672. package/dist/solutions-components/p-77649e3a.js +11 -0
  673. package/dist/solutions-components/p-7764def7.js +11 -0
  674. package/dist/solutions-components/p-781480c2.entry.js +6 -0
  675. package/dist/solutions-components/p-7a42ffab.js +11 -0
  676. package/dist/solutions-components/p-7ab9d4a8.js +11 -0
  677. package/dist/solutions-components/p-7cbe5354.js +6 -0
  678. package/dist/solutions-components/p-7f3c3a5d.entry.js +11 -0
  679. package/dist/solutions-components/p-7fd8e783.js +18 -0
  680. package/dist/solutions-components/p-800e94cb.entry.js +11 -0
  681. package/dist/solutions-components/p-81c695d6.entry.js +11 -0
  682. package/dist/solutions-components/p-8249c47b.js +11 -0
  683. package/dist/solutions-components/p-82922f3a.entry.js +37 -0
  684. package/dist/solutions-components/p-841a5f97.entry.js +6 -0
  685. package/dist/solutions-components/p-84d9dacf.entry.js +11 -0
  686. package/dist/solutions-components/p-87cc78f1.js +6 -0
  687. package/dist/solutions-components/p-892d0a1d.js +6 -0
  688. package/dist/solutions-components/p-8bf81a2e.js +11 -0
  689. package/dist/solutions-components/p-8e003792.js +6 -0
  690. package/dist/solutions-components/p-8e541da0.js +6 -0
  691. package/dist/solutions-components/p-944c2f33.entry.js +11 -0
  692. package/dist/solutions-components/p-9630e3b7.js +11 -0
  693. package/dist/solutions-components/p-96bd78ec.entry.js +11 -0
  694. package/dist/solutions-components/p-978b9ba3.entry.js +6 -0
  695. package/dist/solutions-components/p-99b55177.js +11 -0
  696. package/dist/solutions-components/p-9a19cfb6.js +6 -0
  697. package/dist/solutions-components/p-9ab03591.js +21 -0
  698. package/dist/solutions-components/p-9bc20eff.entry.js +6 -0
  699. package/dist/solutions-components/p-9c42e5ca.js +6 -0
  700. package/dist/solutions-components/p-9ed9ea6a.js +6 -0
  701. package/dist/solutions-components/p-9f214b82.entry.js +11 -0
  702. package/dist/solutions-components/p-a3b55d2b.js +6 -0
  703. package/dist/solutions-components/p-a5d44d7d.js +11 -0
  704. package/dist/solutions-components/p-a62c1b3c.entry.js +6 -0
  705. package/dist/solutions-components/p-a6730996.js +6 -0
  706. package/dist/solutions-components/p-a738e38f.js +11 -0
  707. package/dist/solutions-components/p-a74094e4.js +17 -0
  708. package/dist/solutions-components/p-a8253173.js +6 -0
  709. package/dist/solutions-components/p-a94f0d7b.entry.js +11 -0
  710. package/dist/solutions-components/p-a9dab418.entry.js +11 -0
  711. package/dist/solutions-components/p-ac36a101.js +6 -0
  712. package/dist/solutions-components/p-ad60a547.js +474 -0
  713. package/dist/solutions-components/p-b018bd03.js +6 -0
  714. package/dist/solutions-components/p-b39e12ab.js +6 -0
  715. package/dist/solutions-components/p-b4c65a27.entry.js +6 -0
  716. package/dist/solutions-components/p-b64401a3.entry.js +6 -0
  717. package/dist/solutions-components/p-b70a3d8d.entry.js +11 -0
  718. package/dist/solutions-components/p-b940aa2f.entry.js +6 -0
  719. package/dist/solutions-components/p-b9a21972.js +6 -0
  720. package/dist/solutions-components/p-ba34ef55.js +6 -0
  721. package/dist/solutions-components/p-ba8ec9b6.entry.js +35 -0
  722. package/dist/solutions-components/p-bb322078.entry.js +11 -0
  723. package/dist/solutions-components/p-bc6ce0ff.js +6 -0
  724. package/dist/solutions-components/p-c0738483.entry.js +11 -0
  725. package/dist/solutions-components/p-c2316631.entry.js +16 -0
  726. package/dist/solutions-components/p-c2a141cc.js +11 -0
  727. package/dist/solutions-components/p-c2d148da.js +11 -0
  728. package/dist/solutions-components/p-c52de940.entry.js +11 -0
  729. package/dist/solutions-components/p-c844e615.js +12 -0
  730. package/dist/solutions-components/p-c8835780.js +11 -0
  731. package/dist/solutions-components/p-ca67597d.js +6 -0
  732. package/dist/solutions-components/p-ca6edad0.js +11 -0
  733. package/dist/solutions-components/p-ccf5c0ff.entry.js +11 -0
  734. package/dist/solutions-components/p-cd9579c6.js +11 -0
  735. package/dist/solutions-components/p-ce57ecf3.entry.js +6 -0
  736. package/dist/solutions-components/p-d042dd6a.entry.js +12 -0
  737. package/dist/solutions-components/p-d088d13a.entry.js +6 -0
  738. package/dist/solutions-components/p-d102a71f.js +6 -0
  739. package/dist/solutions-components/p-d164a8b0.entry.js +12 -0
  740. package/dist/solutions-components/p-d17b0020.entry.js +11 -0
  741. package/dist/solutions-components/p-d4c9dda7.entry.js +11 -0
  742. package/dist/solutions-components/p-d5104492.js +6 -0
  743. package/dist/solutions-components/p-d60a77a4.js +11 -0
  744. package/dist/solutions-components/p-d866ff25.js +11 -0
  745. package/dist/solutions-components/p-dac4f4cb.js +6 -0
  746. package/dist/solutions-components/p-db08ef87.js +11 -0
  747. package/dist/solutions-components/p-db546438.entry.js +11 -0
  748. package/dist/solutions-components/p-de9d2167.entry.js +11 -0
  749. package/dist/solutions-components/p-e0af78a4.js +6 -0
  750. package/dist/solutions-components/p-e13ba5ae.js +6 -0
  751. package/dist/solutions-components/p-e320f0ed.entry.js +11 -0
  752. package/dist/solutions-components/p-e5d839f8.js +6 -0
  753. package/dist/solutions-components/p-e5e20990.js +11 -0
  754. package/dist/solutions-components/p-e617f6e9.js +6 -0
  755. package/dist/solutions-components/p-ea7c74b7.entry.js +11 -0
  756. package/dist/solutions-components/p-eafc4b73.js +11 -0
  757. package/dist/solutions-components/p-ed2eea7f.entry.js +23 -0
  758. package/dist/solutions-components/p-ed65f44c.entry.js +11 -0
  759. package/dist/solutions-components/p-f08e454f.entry.js +11 -0
  760. package/dist/solutions-components/p-f1d4f341.js +6 -0
  761. package/dist/solutions-components/p-f54ca1e4.entry.js +11 -0
  762. package/dist/solutions-components/p-f62c655b.entry.js +11 -0
  763. package/dist/solutions-components/p-f68a8cd4.entry.js +11 -0
  764. package/dist/solutions-components/p-f6ec5e80.js +11 -0
  765. package/dist/solutions-components/p-f9b91640.js +11 -0
  766. package/dist/solutions-components/p-fae853e9.js +16 -0
  767. package/dist/solutions-components/p-fb233add.entry.js +6 -0
  768. package/dist/solutions-components/p-ff27b297.js +11 -0
  769. package/dist/solutions-components/p-ffb12960.entry.js +11 -0
  770. package/dist/solutions-components/solutions-components.esm.js +1 -1
  771. package/dist/solutions-components/utils/downloadUtils.ts +1 -1
  772. package/dist/solutions-components/utils/interfaces.ts +18 -6
  773. package/dist/solutions-components/utils/queryUtils.ts +48 -3
  774. package/dist/types/components/card-manager/card-manager.d.ts +33 -5
  775. package/dist/types/components/crowdsource-manager/crowdsource-manager.d.ts +12 -4
  776. package/dist/types/components/deduct-calculator/deduct-calculator.d.ts +2 -2
  777. package/dist/types/components/edit-card/edit-card.d.ts +136 -0
  778. package/dist/types/components/info-card/info-card.d.ts +89 -9
  779. package/dist/types/components/layer-table/layer-table.d.ts +102 -33
  780. package/dist/types/components/map-card/map-card.d.ts +12 -42
  781. package/dist/types/components/map-layer-picker/map-layer-picker.d.ts +50 -11
  782. package/dist/types/components/map-select-tools/map-select-tools.d.ts +1 -1
  783. package/dist/types/components/map-tools/map-tools.d.ts +87 -0
  784. package/dist/types/components/pdf-download/pdf-download.d.ts +4 -0
  785. package/dist/types/components/public-notification/public-notification.d.ts +18 -2
  786. package/dist/types/components/refine-selection/refine-selection.d.ts +1 -1
  787. package/dist/types/components.d.ts +169 -117
  788. package/dist/types/preact.d.ts +10 -13
  789. package/dist/types/utils/interfaces.d.ts +16 -4
  790. package/dist/types/utils/queryUtils.d.ts +17 -1
  791. package/package.json +2 -2
  792. package/dist/assets/t9n/edit-record-modal/resources.json +0 -8
  793. package/dist/assets/t9n/edit-record-modal/resources_en.json +0 -8
  794. package/dist/cjs/ExpandToggle-8e23a37e.js +0 -119
  795. package/dist/cjs/FloatingArrow-7747dddf.js +0 -48
  796. package/dist/cjs/Heading-52c0152b.js +0 -25
  797. package/dist/cjs/add-record-modal.cjs.entry.js +0 -106
  798. package/dist/cjs/app-globals-cd063150.js +0 -64
  799. package/dist/cjs/ar-06e23092.js +0 -97
  800. package/dist/cjs/array-cb509bfb.js +0 -17
  801. package/dist/cjs/bg-b197c685.js +0 -78
  802. package/dist/cjs/bs-b7279fd9.js +0 -47
  803. package/dist/cjs/ca-c127e2c7.js +0 -67
  804. package/dist/cjs/calcite-action-bar_4.cjs.entry.js +0 -629
  805. package/dist/cjs/calcite-action-group.cjs.entry.js +0 -116
  806. package/dist/cjs/calcite-action-menu_2.cjs.entry.js +0 -691
  807. package/dist/cjs/calcite-combobox_3.cjs.entry.js +0 -1156
  808. package/dist/cjs/calcite-dropdown_5.cjs.entry.js +0 -866
  809. package/dist/cjs/calcite-filter_5.cjs.entry.js +0 -1014
  810. package/dist/cjs/calcite-input-text_5.cjs.entry.js +0 -1969
  811. package/dist/cjs/calcite-input-time-picker-1c90d5aa.js +0 -1622
  812. package/dist/cjs/calcite-tooltip.cjs.entry.js +0 -413
  813. package/dist/cjs/card-manager.cjs.entry.js +0 -91
  814. package/dist/cjs/comment-card.cjs.entry.js +0 -75
  815. package/dist/cjs/conditionalSlot-df3ccf68.js +0 -63
  816. package/dist/cjs/cs-f482fe72.js +0 -143
  817. package/dist/cjs/da-b8ab4c7b.js +0 -62
  818. package/dist/cjs/date-23702871.js +0 -250
  819. package/dist/cjs/de-6bc1f7ac.js +0 -87
  820. package/dist/cjs/de-at-46963b6b.js +0 -86
  821. package/dist/cjs/de-ch-160af810.js +0 -86
  822. package/dist/cjs/dom-5fd13fa0.js +0 -954
  823. package/dist/cjs/downloadUtils-fd585157.js +0 -2729
  824. package/dist/cjs/el-64fa4e5b.js +0 -62
  825. package/dist/cjs/en-au-d6d05b1c.js +0 -62
  826. package/dist/cjs/en-ca-e4c76e21.js +0 -61
  827. package/dist/cjs/en-gb-bbc542f7.js +0 -65
  828. package/dist/cjs/es-13c046da.js +0 -62
  829. package/dist/cjs/es-mx-bc0dcd4b.js +0 -61
  830. package/dist/cjs/et-96792c05.js +0 -88
  831. package/dist/cjs/fi-228557cc.js +0 -111
  832. package/dist/cjs/filter-8be5307a.js +0 -765
  833. package/dist/cjs/floating-ui-72d35286.js +0 -1825
  834. package/dist/cjs/focusTrapComponent-8e851fe9.js +0 -809
  835. package/dist/cjs/form-bbb48e39.js +0 -288
  836. package/dist/cjs/fr-cfe747ac.js +0 -64
  837. package/dist/cjs/fr-ch-ff5aa897.js +0 -62
  838. package/dist/cjs/guid-66679eda.js +0 -26
  839. package/dist/cjs/he-fb6d2d39.js +0 -101
  840. package/dist/cjs/hi-30c7826f.js +0 -61
  841. package/dist/cjs/hr-c1eab940.js +0 -76
  842. package/dist/cjs/hu-fba39a67.js +0 -84
  843. package/dist/cjs/id-b5e6f8ba.js +0 -62
  844. package/dist/cjs/index.es-d125163b.js +0 -10808
  845. package/dist/cjs/info-card_2.cjs.entry.js +0 -203
  846. package/dist/cjs/interactive-39ec70c2.js +0 -75
  847. package/dist/cjs/interfaces-842c84a1.js +0 -80
  848. package/dist/cjs/it-ca0d0aac.js +0 -62
  849. package/dist/cjs/it-ch-65c41132.js +0 -62
  850. package/dist/cjs/ja-a5f9afc7.js +0 -68
  851. package/dist/cjs/key-5b33d77d.js +0 -19
  852. package/dist/cjs/ko-852f5312.js +0 -68
  853. package/dist/cjs/label-345b79b7.js +0 -136
  854. package/dist/cjs/layer-table_2.cjs.entry.js +0 -517
  855. package/dist/cjs/loadable-30ee9cda.js +0 -69
  856. package/dist/cjs/locale-180f4242.js +0 -567
  857. package/dist/cjs/lt-255c3b01.js +0 -93
  858. package/dist/cjs/lv-7ed56721.js +0 -62
  859. package/dist/cjs/map-search.cjs.entry.js +0 -176
  860. package/dist/cjs/mapViewUtils-9c67134b.js +0 -375
  861. package/dist/cjs/math-c948c17d.js +0 -28
  862. package/dist/cjs/mk-f6d33563.js +0 -62
  863. package/dist/cjs/nb-bd0ca554.js +0 -63
  864. package/dist/cjs/nl-eadfdfb4.js +0 -63
  865. package/dist/cjs/observers-f7aad52c.js +0 -53
  866. package/dist/cjs/openCloseComponent-84b60d30.js +0 -100
  867. package/dist/cjs/pl-c9d0eeb6.js +0 -110
  868. package/dist/cjs/pt-abc4d582.js +0 -63
  869. package/dist/cjs/pt-br-217ada13.js +0 -61
  870. package/dist/cjs/resources-1687ac3b.js +0 -27
  871. package/dist/cjs/resources-17e31c94.js +0 -32
  872. package/dist/cjs/resources-2194e840.js +0 -2057
  873. package/dist/cjs/resources-5d9c0817.js +0 -23
  874. package/dist/cjs/resources-840442cb.js +0 -22
  875. package/dist/cjs/resources-8f85e83e.js +0 -27
  876. package/dist/cjs/resources-b2a52eac.js +0 -50
  877. package/dist/cjs/resources-b9022801.js +0 -39
  878. package/dist/cjs/resources-c050c6cd.js +0 -20
  879. package/dist/cjs/ro-1618e102.js +0 -62
  880. package/dist/cjs/ru-a23bea65.js +0 -122
  881. package/dist/cjs/shared-list-render-e49ee33c.js +0 -364
  882. package/dist/cjs/sk-dcacc22d.js +0 -144
  883. package/dist/cjs/sl-313d5585.js +0 -62
  884. package/dist/cjs/solution-store-ca4639d5.js +0 -4100
  885. package/dist/cjs/sortableComponent-e91c4b54.js +0 -3087
  886. package/dist/cjs/sr-c7b2c043.js +0 -97
  887. package/dist/cjs/sv-d8327a96.js +0 -67
  888. package/dist/cjs/t9n-44f8e750.js +0 -100
  889. package/dist/cjs/th-871548cb.js +0 -61
  890. package/dist/cjs/time-0ae619db.js +0 -208
  891. package/dist/cjs/tr-799e3306.js +0 -62
  892. package/dist/cjs/uk-eb7261c3.js +0 -100
  893. package/dist/cjs/utils-3c384fb2.js +0 -55
  894. package/dist/cjs/utils-49d0aa19.js +0 -218
  895. package/dist/cjs/utils-5c1c33cf.js +0 -64
  896. package/dist/cjs/utils-da61890c.js +0 -87
  897. package/dist/cjs/vi-ebbac61c.js +0 -66
  898. package/dist/cjs/zh-cn-dfcfe1fe.js +0 -90
  899. package/dist/cjs/zh-hk-64eeb0f6.js +0 -67
  900. package/dist/cjs/zh-tw-3d6f9661.js +0 -88
  901. package/dist/collection/components/add-record-modal/add-record-modal.css +0 -36
  902. package/dist/collection/components/add-record-modal/add-record-modal.js +0 -149
  903. package/dist/collection/components/comment-card/comment-card.css +0 -19
  904. package/dist/collection/components/comment-card/comment-card.js +0 -89
  905. package/dist/collection/components/edit-record-modal/edit-record-modal.css +0 -35
  906. package/dist/collection/components/edit-record-modal/edit-record-modal.js +0 -141
  907. package/dist/collection/components/map-search/map-search.css +0 -24
  908. package/dist/collection/components/map-search/map-search.js +0 -284
  909. package/dist/collection/components/media-card/media-card.css +0 -58
  910. package/dist/collection/components/media-card/media-card.js +0 -187
  911. package/dist/collection/demos/add-record-modal.html +0 -34
  912. package/dist/collection/demos/comment-card.html +0 -81
  913. package/dist/collection/demos/edit-record-modal.html +0 -34
  914. package/dist/collection/demos/map-search.html +0 -81
  915. package/dist/collection/demos/media-card.html +0 -71
  916. package/dist/components/add-record-modal.d.ts +0 -11
  917. package/dist/components/add-record-modal.js +0 -171
  918. package/dist/components/block.js +0 -232
  919. package/dist/components/comment-card.d.ts +0 -11
  920. package/dist/components/comment-card.js +0 -90
  921. package/dist/components/edit-record-modal.d.ts +0 -11
  922. package/dist/components/edit-record-modal.js +0 -11
  923. package/dist/components/edit-record-modal2.js +0 -161
  924. package/dist/components/map-search.d.ts +0 -11
  925. package/dist/components/map-search.js +0 -195
  926. package/dist/components/media-card.d.ts +0 -11
  927. package/dist/components/media-card.js +0 -11
  928. package/dist/components/media-card2.js +0 -177
  929. package/dist/components/modal.js +0 -415
  930. package/dist/components/pick-list.js +0 -164
  931. package/dist/components/split-button.js +0 -168
  932. package/dist/esm/ExpandToggle-ed0c4899.js +0 -111
  933. package/dist/esm/FloatingArrow-e769cdda.js +0 -46
  934. package/dist/esm/Heading-c36f4400.js +0 -22
  935. package/dist/esm/add-record-modal.entry.js +0 -102
  936. package/dist/esm/app-globals-4c1c4b90.js +0 -62
  937. package/dist/esm/ar-5fce09b4.js +0 -95
  938. package/dist/esm/array-af5e433b.js +0 -15
  939. package/dist/esm/bg-88930ab8.js +0 -76
  940. package/dist/esm/bs-83095544.js +0 -45
  941. package/dist/esm/ca-2452be3f.js +0 -65
  942. package/dist/esm/calcite-action-bar_4.entry.js +0 -622
  943. package/dist/esm/calcite-action-group.entry.js +0 -112
  944. package/dist/esm/calcite-action-menu_2.entry.js +0 -686
  945. package/dist/esm/calcite-combobox_3.entry.js +0 -1150
  946. package/dist/esm/calcite-dropdown_5.entry.js +0 -858
  947. package/dist/esm/calcite-filter_5.entry.js +0 -1006
  948. package/dist/esm/calcite-input-text_5.entry.js +0 -1961
  949. package/dist/esm/calcite-input-time-picker-379ab2c4.js +0 -1619
  950. package/dist/esm/calcite-tooltip.entry.js +0 -409
  951. package/dist/esm/card-manager.entry.js +0 -87
  952. package/dist/esm/comment-card.entry.js +0 -71
  953. package/dist/esm/conditionalSlot-e9ec914f.js +0 -60
  954. package/dist/esm/cs-c4999998.js +0 -141
  955. package/dist/esm/da-6e7eb415.js +0 -60
  956. package/dist/esm/date-85b54b18.js +0 -235
  957. package/dist/esm/de-39db71ff.js +0 -85
  958. package/dist/esm/de-at-0b43fa52.js +0 -84
  959. package/dist/esm/de-ch-345e1007.js +0 -84
  960. package/dist/esm/dom-e14bb980.js +0 -927
  961. package/dist/esm/downloadUtils-c4d8f012.js +0 -2723
  962. package/dist/esm/el-3d3eb2d9.js +0 -60
  963. package/dist/esm/en-au-f85fb0f9.js +0 -60
  964. package/dist/esm/en-ca-ae24e23b.js +0 -59
  965. package/dist/esm/en-gb-9f56a48f.js +0 -63
  966. package/dist/esm/es-00ec702d.js +0 -60
  967. package/dist/esm/es-mx-5fb19224.js +0 -59
  968. package/dist/esm/et-1a294618.js +0 -86
  969. package/dist/esm/fi-1bcfd731.js +0 -109
  970. package/dist/esm/filter-09439c1d.js +0 -763
  971. package/dist/esm/floating-ui-421b8ed2.js +0 -1817
  972. package/dist/esm/focusTrapComponent-45081255.js +0 -804
  973. package/dist/esm/form-58f5ab7c.js +0 -280
  974. package/dist/esm/fr-3a844513.js +0 -62
  975. package/dist/esm/fr-ch-32438415.js +0 -60
  976. package/dist/esm/guid-5c8ddb45.js +0 -24
  977. package/dist/esm/he-4d2d41f5.js +0 -99
  978. package/dist/esm/hi-e5a5cf07.js +0 -59
  979. package/dist/esm/hr-003c79cb.js +0 -74
  980. package/dist/esm/hu-a679b97b.js +0 -82
  981. package/dist/esm/id-8ce09f04.js +0 -60
  982. package/dist/esm/index.es-ba252f56.js +0 -10722
  983. package/dist/esm/info-card_2.entry.js +0 -198
  984. package/dist/esm/interactive-eaa1e00b.js +0 -73
  985. package/dist/esm/interfaces-523c6558.js +0 -80
  986. package/dist/esm/it-8a20f6f9.js +0 -60
  987. package/dist/esm/it-ch-b829ceb9.js +0 -60
  988. package/dist/esm/ja-ab479dce.js +0 -66
  989. package/dist/esm/key-2c25459c.js +0 -16
  990. package/dist/esm/ko-a523df7c.js +0 -66
  991. package/dist/esm/label-10a81bc6.js +0 -130
  992. package/dist/esm/layer-table_2.entry.js +0 -512
  993. package/dist/esm/loadable-fca3f617.js +0 -65
  994. package/dist/esm/locale-b550eae4.js +0 -555
  995. package/dist/esm/lt-6061d0cc.js +0 -91
  996. package/dist/esm/lv-c8234418.js +0 -60
  997. package/dist/esm/map-search.entry.js +0 -172
  998. package/dist/esm/mapViewUtils-06a77be9.js +0 -362
  999. package/dist/esm/math-778f9699.js +0 -25
  1000. package/dist/esm/mk-d08e7df4.js +0 -60
  1001. package/dist/esm/nb-35ca03d9.js +0 -61
  1002. package/dist/esm/nl-e815c488.js +0 -61
  1003. package/dist/esm/observers-b17e5da7.js +0 -51
  1004. package/dist/esm/openCloseComponent-1aef0328.js +0 -96
  1005. package/dist/esm/pl-a1c11e8b.js +0 -108
  1006. package/dist/esm/pt-8874bd08.js +0 -61
  1007. package/dist/esm/pt-br-cb76472e.js +0 -59
  1008. package/dist/esm/resources-09757d0c.js +0 -23
  1009. package/dist/esm/resources-23bce35b.js +0 -20
  1010. package/dist/esm/resources-6c49ff61.js +0 -2048
  1011. package/dist/esm/resources-78b20773.js +0 -20
  1012. package/dist/esm/resources-a9874e81.js +0 -28
  1013. package/dist/esm/resources-ac65ccee.js +0 -35
  1014. package/dist/esm/resources-bf1eeffc.js +0 -24
  1015. package/dist/esm/resources-c59151a8.js +0 -19
  1016. package/dist/esm/resources-f5fec753.js +0 -46
  1017. package/dist/esm/ro-0e8b863a.js +0 -60
  1018. package/dist/esm/ru-f3224893.js +0 -120
  1019. package/dist/esm/shared-list-render-86d8dcb7.js +0 -342
  1020. package/dist/esm/sk-eccf534f.js +0 -142
  1021. package/dist/esm/sl-a8e0c24f.js +0 -60
  1022. package/dist/esm/solution-store-70f874f8.js +0 -4092
  1023. package/dist/esm/sortableComponent-267e5853.js +0 -3082
  1024. package/dist/esm/sr-0e5973cb.js +0 -95
  1025. package/dist/esm/sv-ff8fbe95.js +0 -65
  1026. package/dist/esm/t9n-4c43412c.js +0 -95
  1027. package/dist/esm/th-90f7d79c.js +0 -59
  1028. package/dist/esm/time-18f4bea6.js +0 -195
  1029. package/dist/esm/tr-8a61ecaa.js +0 -60
  1030. package/dist/esm/uk-cb40a88d.js +0 -98
  1031. package/dist/esm/utils-701a66a0.js +0 -45
  1032. package/dist/esm/utils-d5304067.js +0 -200
  1033. package/dist/esm/utils-e59e3392.js +0 -79
  1034. package/dist/esm/utils-fbb44364.js +0 -61
  1035. package/dist/esm/vi-03f26f71.js +0 -64
  1036. package/dist/esm/zh-cn-b40fefb9.js +0 -88
  1037. package/dist/esm/zh-hk-846adb7a.js +0 -65
  1038. package/dist/esm/zh-tw-5e6c0c4c.js +0 -86
  1039. package/dist/solutions-components/demos/add-record-modal.html +0 -34
  1040. package/dist/solutions-components/demos/comment-card.html +0 -81
  1041. package/dist/solutions-components/demos/edit-record-modal.html +0 -34
  1042. package/dist/solutions-components/demos/map-search.html +0 -81
  1043. package/dist/solutions-components/demos/media-card.html +0 -71
  1044. package/dist/solutions-components/p-0004c7cf.js +0 -11
  1045. package/dist/solutions-components/p-028fe399.js +0 -11
  1046. package/dist/solutions-components/p-02934a73.js +0 -6
  1047. package/dist/solutions-components/p-0350a94c.js +0 -6
  1048. package/dist/solutions-components/p-03630cc2.js +0 -11
  1049. package/dist/solutions-components/p-0c0ae47e.entry.js +0 -6
  1050. package/dist/solutions-components/p-100a644d.js +0 -6
  1051. package/dist/solutions-components/p-10ee8954.js +0 -11
  1052. package/dist/solutions-components/p-14b581f0.js +0 -6
  1053. package/dist/solutions-components/p-156616b5.js +0 -6
  1054. package/dist/solutions-components/p-163f9453.entry.js +0 -22
  1055. package/dist/solutions-components/p-16a85289.entry.js +0 -11
  1056. package/dist/solutions-components/p-18c285a2.entry.js +0 -6
  1057. package/dist/solutions-components/p-1c6b3fcc.js +0 -11
  1058. package/dist/solutions-components/p-1ff86baf.js +0 -6
  1059. package/dist/solutions-components/p-21894ee1.entry.js +0 -6
  1060. package/dist/solutions-components/p-21d890eb.js +0 -11
  1061. package/dist/solutions-components/p-22367f3b.entry.js +0 -11
  1062. package/dist/solutions-components/p-224fc498.js +0 -6
  1063. package/dist/solutions-components/p-253c9105.entry.js +0 -11
  1064. package/dist/solutions-components/p-274e2b43.entry.js +0 -16
  1065. package/dist/solutions-components/p-29de380e.entry.js +0 -23
  1066. package/dist/solutions-components/p-2ab62909.entry.js +0 -12
  1067. package/dist/solutions-components/p-2ba08c44.js +0 -11
  1068. package/dist/solutions-components/p-2c91149c.entry.js +0 -17
  1069. package/dist/solutions-components/p-2d79dcaa.entry.js +0 -6
  1070. package/dist/solutions-components/p-2e02d0c6.js +0 -6
  1071. package/dist/solutions-components/p-2fb33412.js +0 -6
  1072. package/dist/solutions-components/p-2ff245e3.entry.js +0 -11
  1073. package/dist/solutions-components/p-309ab62c.entry.js +0 -6
  1074. package/dist/solutions-components/p-30fff23a.js +0 -6
  1075. package/dist/solutions-components/p-31084785.entry.js +0 -11
  1076. package/dist/solutions-components/p-322657e1.js +0 -6
  1077. package/dist/solutions-components/p-333fece7.js +0 -11
  1078. package/dist/solutions-components/p-33f7b5ad.entry.js +0 -12
  1079. package/dist/solutions-components/p-34b5fd3f.js +0 -11
  1080. package/dist/solutions-components/p-354a1a55.js +0 -16
  1081. package/dist/solutions-components/p-360652a6.js +0 -6
  1082. package/dist/solutions-components/p-361a2107.js +0 -6
  1083. package/dist/solutions-components/p-36b68fb9.js +0 -11
  1084. package/dist/solutions-components/p-3918da18.js +0 -6
  1085. package/dist/solutions-components/p-3965e731.js +0 -6
  1086. package/dist/solutions-components/p-3b2f8f0d.entry.js +0 -11
  1087. package/dist/solutions-components/p-3ed956eb.js +0 -36
  1088. package/dist/solutions-components/p-3fba8b91.js +0 -6
  1089. package/dist/solutions-components/p-40494687.js +0 -11
  1090. package/dist/solutions-components/p-441a995d.js +0 -11
  1091. package/dist/solutions-components/p-453cd5e4.entry.js +0 -11
  1092. package/dist/solutions-components/p-460d4659.entry.js +0 -11
  1093. package/dist/solutions-components/p-486ea405.js +0 -11
  1094. package/dist/solutions-components/p-48fd5600.entry.js +0 -11
  1095. package/dist/solutions-components/p-4a0899a1.entry.js +0 -6
  1096. package/dist/solutions-components/p-4a7214b3.js +0 -6
  1097. package/dist/solutions-components/p-4a86a776.js +0 -474
  1098. package/dist/solutions-components/p-4f308c0c.entry.js +0 -11
  1099. package/dist/solutions-components/p-50ebdbe1.entry.js +0 -6
  1100. package/dist/solutions-components/p-55a4d846.entry.js +0 -18
  1101. package/dist/solutions-components/p-563863b1.entry.js +0 -11
  1102. package/dist/solutions-components/p-56ee8fcf.entry.js +0 -6
  1103. package/dist/solutions-components/p-5730082b.entry.js +0 -17
  1104. package/dist/solutions-components/p-5798a8e1.entry.js +0 -11
  1105. package/dist/solutions-components/p-5a9f7d1d.entry.js +0 -11
  1106. package/dist/solutions-components/p-5dc70753.entry.js +0 -6
  1107. package/dist/solutions-components/p-5ed755a2.entry.js +0 -37
  1108. package/dist/solutions-components/p-5f9044e9.entry.js +0 -6
  1109. package/dist/solutions-components/p-67dce98d.js +0 -11
  1110. package/dist/solutions-components/p-681822de.entry.js +0 -11
  1111. package/dist/solutions-components/p-68ae67e2.js +0 -6
  1112. package/dist/solutions-components/p-6aabe903.entry.js +0 -6
  1113. package/dist/solutions-components/p-6aeb2614.entry.js +0 -6
  1114. package/dist/solutions-components/p-6b0437e2.js +0 -11
  1115. package/dist/solutions-components/p-6b16e621.js +0 -17
  1116. package/dist/solutions-components/p-6bca27ae.entry.js +0 -6
  1117. package/dist/solutions-components/p-6e8fc013.js +0 -11
  1118. package/dist/solutions-components/p-6f090d92.entry.js +0 -11
  1119. package/dist/solutions-components/p-71f15882.js +0 -6
  1120. package/dist/solutions-components/p-72bd2198.js +0 -6
  1121. package/dist/solutions-components/p-734fb637.entry.js +0 -11
  1122. package/dist/solutions-components/p-737ebddb.js +0 -6
  1123. package/dist/solutions-components/p-74ab524f.entry.js +0 -17
  1124. package/dist/solutions-components/p-751105bf.entry.js +0 -11
  1125. package/dist/solutions-components/p-758a5902.js +0 -6
  1126. package/dist/solutions-components/p-75d44bac.entry.js +0 -11
  1127. package/dist/solutions-components/p-76fd5733.js +0 -11
  1128. package/dist/solutions-components/p-78315271.entry.js +0 -11
  1129. package/dist/solutions-components/p-78719506.js +0 -257
  1130. package/dist/solutions-components/p-7903b163.js +0 -12
  1131. package/dist/solutions-components/p-7b49e5e3.js +0 -11
  1132. package/dist/solutions-components/p-7b4a714b.js +0 -11
  1133. package/dist/solutions-components/p-7b7091d4.js +0 -16
  1134. package/dist/solutions-components/p-7c96a204.entry.js +0 -11
  1135. package/dist/solutions-components/p-7d1fd0ab.js +0 -11
  1136. package/dist/solutions-components/p-7d3582a2.js +0 -18
  1137. package/dist/solutions-components/p-7d5a1cdb.js +0 -11
  1138. package/dist/solutions-components/p-7dfb2d00.entry.js +0 -17
  1139. package/dist/solutions-components/p-7ed79fea.entry.js +0 -6
  1140. package/dist/solutions-components/p-805d62b8.js +0 -6
  1141. package/dist/solutions-components/p-817b174b.js +0 -6
  1142. package/dist/solutions-components/p-851fd101.entry.js +0 -6
  1143. package/dist/solutions-components/p-85706e85.js +0 -11
  1144. package/dist/solutions-components/p-8b1bac08.entry.js +0 -11
  1145. package/dist/solutions-components/p-90abad32.js +0 -6
  1146. package/dist/solutions-components/p-9151a991.js +0 -17
  1147. package/dist/solutions-components/p-918b08f8.js +0 -6
  1148. package/dist/solutions-components/p-92123a6f.js +0 -6
  1149. package/dist/solutions-components/p-92de1de9.js +0 -21
  1150. package/dist/solutions-components/p-93015b7f.entry.js +0 -29
  1151. package/dist/solutions-components/p-963026b1.js +0 -11
  1152. package/dist/solutions-components/p-96601723.entry.js +0 -11
  1153. package/dist/solutions-components/p-966deb61.js +0 -16
  1154. package/dist/solutions-components/p-987fc85a.js +0 -6
  1155. package/dist/solutions-components/p-9ae83468.js +0 -6
  1156. package/dist/solutions-components/p-9d8ba56e.js +0 -11
  1157. package/dist/solutions-components/p-a3539120.js +0 -11
  1158. package/dist/solutions-components/p-a36a4f4c.entry.js +0 -11
  1159. package/dist/solutions-components/p-a390ad52.js +0 -6
  1160. package/dist/solutions-components/p-a4f6cb03.js +0 -6
  1161. package/dist/solutions-components/p-a58a83f5.entry.js +0 -11
  1162. package/dist/solutions-components/p-a5f966da.js +0 -6
  1163. package/dist/solutions-components/p-a717b838.entry.js +0 -11
  1164. package/dist/solutions-components/p-aa2b508b.js +0 -6
  1165. package/dist/solutions-components/p-ad77361c.entry.js +0 -11
  1166. package/dist/solutions-components/p-b05c0dab.js +0 -6
  1167. package/dist/solutions-components/p-b2175b0f.js +0 -11
  1168. package/dist/solutions-components/p-b32b130a.entry.js +0 -11
  1169. package/dist/solutions-components/p-b34f269f.entry.js +0 -6
  1170. package/dist/solutions-components/p-b4b19fd3.entry.js +0 -37
  1171. package/dist/solutions-components/p-b62c14e9.entry.js +0 -23
  1172. package/dist/solutions-components/p-b85c70ff.js +0 -6
  1173. package/dist/solutions-components/p-b9569aa8.js +0 -6
  1174. package/dist/solutions-components/p-b9df29d5.entry.js +0 -6
  1175. package/dist/solutions-components/p-c68c6cfc.js +0 -6
  1176. package/dist/solutions-components/p-c7f63eae.entry.js +0 -6
  1177. package/dist/solutions-components/p-c80b582f.js +0 -11
  1178. package/dist/solutions-components/p-c9c400b0.js +0 -6
  1179. package/dist/solutions-components/p-cfdcbbc4.entry.js +0 -11
  1180. package/dist/solutions-components/p-d0a0d58e.js +0 -6
  1181. package/dist/solutions-components/p-d0bd5dc8.js +0 -11
  1182. package/dist/solutions-components/p-d13c5d43.js +0 -6
  1183. package/dist/solutions-components/p-d2dfbb78.entry.js +0 -11
  1184. package/dist/solutions-components/p-d4c7b0b0.entry.js +0 -11
  1185. package/dist/solutions-components/p-d54d34a3.entry.js +0 -11
  1186. package/dist/solutions-components/p-d6c1abd1.js +0 -11
  1187. package/dist/solutions-components/p-d7e59435.entry.js +0 -35
  1188. package/dist/solutions-components/p-dadd5bfb.js +0 -11
  1189. package/dist/solutions-components/p-dc9c209f.entry.js +0 -11
  1190. package/dist/solutions-components/p-e12458f7.js +0 -6
  1191. package/dist/solutions-components/p-e1384eb6.entry.js +0 -6
  1192. package/dist/solutions-components/p-e13bc246.entry.js +0 -18
  1193. package/dist/solutions-components/p-e19a5718.entry.js +0 -11
  1194. package/dist/solutions-components/p-e470b2c7.entry.js +0 -6
  1195. package/dist/solutions-components/p-e4e33d1c.js +0 -6
  1196. package/dist/solutions-components/p-e6330f55.entry.js +0 -11
  1197. package/dist/solutions-components/p-e7b96c06.js +0 -11
  1198. package/dist/solutions-components/p-e84ff0f8.entry.js +0 -6
  1199. package/dist/solutions-components/p-e90f8998.entry.js +0 -11
  1200. package/dist/solutions-components/p-e9f43fe1.entry.js +0 -11
  1201. package/dist/solutions-components/p-ebd369cf.js +0 -6
  1202. package/dist/solutions-components/p-eda91258.entry.js +0 -11
  1203. package/dist/solutions-components/p-ee853883.entry.js +0 -11
  1204. package/dist/solutions-components/p-eea493bc.js +0 -6
  1205. package/dist/solutions-components/p-eec28f93.js +0 -6
  1206. package/dist/solutions-components/p-eee3969d.entry.js +0 -11
  1207. package/dist/solutions-components/p-f03a6d9c.js +0 -61
  1208. package/dist/solutions-components/p-f1aaf8d9.entry.js +0 -6
  1209. package/dist/solutions-components/p-f226673c.js +0 -11
  1210. package/dist/solutions-components/p-f546e45d.js +0 -6
  1211. package/dist/solutions-components/p-fa3d2b1f.js +0 -6
  1212. package/dist/solutions-components/p-fb33ea5f.js +0 -6
  1213. package/dist/solutions-components/p-fb553e61.js +0 -6
  1214. package/dist/solutions-components/p-fb8aa15c.entry.js +0 -11
  1215. package/dist/types/components/add-record-modal/add-record-modal.d.ts +0 -68
  1216. package/dist/types/components/comment-card/comment-card.d.ts +0 -26
  1217. package/dist/types/components/edit-record-modal/edit-record-modal.d.ts +0 -49
  1218. package/dist/types/components/map-search/map-search.d.ts +0 -120
  1219. package/dist/types/components/media-card/media-card.d.ts +0 -80
@@ -0,0 +1,4100 @@
1
+ /*!
2
+ * Copyright 2022 Esri
3
+ * Licensed under the Apache License, Version 2.0
4
+ * http://www.apache.org/licenses/LICENSE-2.0
5
+ */
6
+ 'use strict';
7
+
8
+ const index = require('./index-e1b1954f.js');
9
+ const interfaces = require('./interfaces-ad03ec39.js');
10
+ const _commonjsHelpers = require('./_commonjsHelpers-384729db.js');
11
+
12
+ /*! *****************************************************************************
13
+ Copyright (c) Microsoft Corporation.
14
+
15
+ Permission to use, copy, modify, and/or distribute this software for any
16
+ purpose with or without fee is hereby granted.
17
+
18
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
19
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
20
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
21
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
22
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
23
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
24
+ PERFORMANCE OF THIS SOFTWARE.
25
+ ***************************************************************************** */
26
+ /* global Reflect, Promise */
27
+
28
+ var extendStatics = function(d, b) {
29
+ extendStatics = Object.setPrototypeOf ||
30
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
31
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
32
+ return extendStatics(d, b);
33
+ };
34
+
35
+ function __extends(d, b) {
36
+ extendStatics(d, b);
37
+ function __() { this.constructor = d; }
38
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
39
+ }
40
+
41
+ var __assign$1 = function() {
42
+ __assign$1 = Object.assign || function __assign(t) {
43
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
44
+ s = arguments[i];
45
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
46
+ }
47
+ return t;
48
+ };
49
+ return __assign$1.apply(this, arguments);
50
+ };
51
+
52
+ /* Copyright (c) 2017 Environmental Systems Research Institute, Inc.
53
+ * Apache-2.0 */
54
+ /**
55
+ * Checks parameters to see if we should use FormData to send the request
56
+ * @param params The object whose keys will be encoded.
57
+ * @return A boolean indicating if FormData will be required.
58
+ */
59
+ function requiresFormData(params) {
60
+ return Object.keys(params).some(function (key) {
61
+ var value = params[key];
62
+ if (!value) {
63
+ return false;
64
+ }
65
+ if (value && value.toParam) {
66
+ value = value.toParam();
67
+ }
68
+ var type = value.constructor.name;
69
+ switch (type) {
70
+ case "Array":
71
+ return false;
72
+ case "Object":
73
+ return false;
74
+ case "Date":
75
+ return false;
76
+ case "Function":
77
+ return false;
78
+ case "Boolean":
79
+ return false;
80
+ case "String":
81
+ return false;
82
+ case "Number":
83
+ return false;
84
+ default:
85
+ return true;
86
+ }
87
+ });
88
+ }
89
+ /**
90
+ * Converts parameters to the proper representation to send to the ArcGIS REST API.
91
+ * @param params The object whose keys will be encoded.
92
+ * @return A new object with properly encoded values.
93
+ */
94
+ function processParams(params) {
95
+ var newParams = {};
96
+ Object.keys(params).forEach(function (key) {
97
+ var _a, _b;
98
+ var param = params[key];
99
+ if (param && param.toParam) {
100
+ param = param.toParam();
101
+ }
102
+ if (!param &&
103
+ param !== 0 &&
104
+ typeof param !== "boolean" &&
105
+ typeof param !== "string") {
106
+ return;
107
+ }
108
+ var type = param.constructor.name;
109
+ var value;
110
+ // properly encodes objects, arrays and dates for arcgis.com and other services.
111
+ // ported from https://github.com/Esri/esri-leaflet/blob/master/src/Request.js#L22-L30
112
+ // also see https://github.com/Esri/arcgis-rest-js/issues/18:
113
+ // null, undefined, function are excluded. If you want to send an empty key you need to send an empty string "".
114
+ switch (type) {
115
+ case "Array":
116
+ // Based on the first element of the array, classify array as an array of arrays, an array of objects
117
+ // to be stringified, or an array of non-objects to be comma-separated
118
+ // eslint-disable-next-line no-case-declarations
119
+ var firstElementType = (_b = (_a = param[0]) === null || _a === void 0 ? void 0 : _a.constructor) === null || _b === void 0 ? void 0 : _b.name;
120
+ value =
121
+ firstElementType === "Array" ? param : // pass thru array of arrays
122
+ firstElementType === "Object" ? JSON.stringify(param) : // stringify array of objects
123
+ param.join(","); // join other types of array elements
124
+ break;
125
+ case "Object":
126
+ value = JSON.stringify(param);
127
+ break;
128
+ case "Date":
129
+ value = param.valueOf();
130
+ break;
131
+ case "Function":
132
+ value = null;
133
+ break;
134
+ case "Boolean":
135
+ value = param + "";
136
+ break;
137
+ default:
138
+ value = param;
139
+ break;
140
+ }
141
+ if (value || value === 0 || typeof value === "string" || Array.isArray(value)) {
142
+ newParams[key] = value;
143
+ }
144
+ });
145
+ return newParams;
146
+ }
147
+
148
+ /* Copyright (c) 2017 Environmental Systems Research Institute, Inc.
149
+ * Apache-2.0 */
150
+ /**
151
+ * Encodes keys and parameters for use in a URL's query string.
152
+ *
153
+ * @param key Parameter's key
154
+ * @param value Parameter's value
155
+ * @returns Query string with key and value pairs separated by "&"
156
+ */
157
+ function encodeParam(key, value) {
158
+ // For array of arrays, repeat key=value for each element of containing array
159
+ if (Array.isArray(value) && value[0] && Array.isArray(value[0])) {
160
+ return value.map(function (arrayElem) { return encodeParam(key, arrayElem); }).join("&");
161
+ }
162
+ return encodeURIComponent(key) + "=" + encodeURIComponent(value);
163
+ }
164
+ /**
165
+ * Encodes the passed object as a query string.
166
+ *
167
+ * @param params An object to be encoded.
168
+ * @returns An encoded query string.
169
+ */
170
+ function encodeQueryString(params) {
171
+ var newParams = processParams(params);
172
+ return Object.keys(newParams)
173
+ .map(function (key) {
174
+ return encodeParam(key, newParams[key]);
175
+ })
176
+ .join("&");
177
+ }
178
+
179
+ /* Copyright (c) 2017 Environmental Systems Research Institute, Inc.
180
+ * Apache-2.0 */
181
+ /**
182
+ * Encodes parameters in a [FormData](https://developer.mozilla.org/en-US/docs/Web/API/FormData) object in browsers or in a [FormData](https://github.com/form-data/form-data) in Node.js
183
+ *
184
+ * @param params An object to be encoded.
185
+ * @returns The complete [FormData](https://developer.mozilla.org/en-US/docs/Web/API/FormData) object.
186
+ */
187
+ function encodeFormData(params, forceFormData) {
188
+ // see https://github.com/Esri/arcgis-rest-js/issues/499 for more info.
189
+ var useFormData = requiresFormData(params) || forceFormData;
190
+ var newParams = processParams(params);
191
+ if (useFormData) {
192
+ var formData_1 = new FormData();
193
+ Object.keys(newParams).forEach(function (key) {
194
+ if (typeof Blob !== "undefined" && newParams[key] instanceof Blob) {
195
+ /* To name the Blob:
196
+ 1. look to an alternate request parameter called 'fileName'
197
+ 2. see if 'name' has been tacked onto the Blob manually
198
+ 3. if all else fails, use the request parameter
199
+ */
200
+ var filename = newParams["fileName"] || newParams[key].name || key;
201
+ formData_1.append(key, newParams[key], filename);
202
+ }
203
+ else {
204
+ formData_1.append(key, newParams[key]);
205
+ }
206
+ });
207
+ return formData_1;
208
+ }
209
+ else {
210
+ return encodeQueryString(params);
211
+ }
212
+ }
213
+
214
+ /* Copyright (c) 2017 Environmental Systems Research Institute, Inc.
215
+ * Apache-2.0 */
216
+ // TypeScript 2.1 no longer allows you to extend built in types. See https://github.com/Microsoft/TypeScript/issues/12790#issuecomment-265981442
217
+ // and https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work
218
+ //
219
+ // This code is from MDN https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Custom_Error_Types.
220
+ var ArcGISRequestError = /** @class */ (function () {
221
+ /**
222
+ * Create a new `ArcGISRequestError` object.
223
+ *
224
+ * @param message - The error message from the API
225
+ * @param code - The error code from the API
226
+ * @param response - The original response from the API that caused the error
227
+ * @param url - The original url of the request
228
+ * @param options - The original options and parameters of the request
229
+ */
230
+ function ArcGISRequestError(message, code, response, url, options) {
231
+ message = message || "UNKNOWN_ERROR";
232
+ code = code || "UNKNOWN_ERROR_CODE";
233
+ this.name = "ArcGISRequestError";
234
+ this.message =
235
+ code === "UNKNOWN_ERROR_CODE" ? message : code + ": " + message;
236
+ this.originalMessage = message;
237
+ this.code = code;
238
+ this.response = response;
239
+ this.url = url;
240
+ this.options = options;
241
+ }
242
+ return ArcGISRequestError;
243
+ }());
244
+ ArcGISRequestError.prototype = Object.create(Error.prototype);
245
+ ArcGISRequestError.prototype.constructor = ArcGISRequestError;
246
+
247
+ /* Copyright (c) 2017-2018 Environmental Systems Research Institute, Inc.
248
+ * Apache-2.0 */
249
+ var NODEJS_DEFAULT_REFERER_HEADER = "@esri/arcgis-rest-js";
250
+ var DEFAULT_ARCGIS_REQUEST_OPTIONS = {
251
+ httpMethod: "POST",
252
+ params: {
253
+ f: "json",
254
+ },
255
+ };
256
+ var ArcGISAuthError = /** @class */ (function (_super) {
257
+ __extends(ArcGISAuthError, _super);
258
+ /**
259
+ * Create a new `ArcGISAuthError` object.
260
+ *
261
+ * @param message - The error message from the API
262
+ * @param code - The error code from the API
263
+ * @param response - The original response from the API that caused the error
264
+ * @param url - The original url of the request
265
+ * @param options - The original options of the request
266
+ */
267
+ function ArcGISAuthError(message, code, response, url, options) {
268
+ if (message === void 0) { message = "AUTHENTICATION_ERROR"; }
269
+ if (code === void 0) { code = "AUTHENTICATION_ERROR_CODE"; }
270
+ var _this = _super.call(this, message, code, response, url, options) || this;
271
+ _this.name = "ArcGISAuthError";
272
+ _this.message =
273
+ code === "AUTHENTICATION_ERROR_CODE" ? message : code + ": " + message;
274
+ return _this;
275
+ }
276
+ ArcGISAuthError.prototype.retry = function (getSession, retryLimit) {
277
+ var _this = this;
278
+ if (retryLimit === void 0) { retryLimit = 3; }
279
+ var tries = 0;
280
+ var retryRequest = function (resolve, reject) {
281
+ getSession(_this.url, _this.options)
282
+ .then(function (session) {
283
+ var newOptions = __assign$1(__assign$1({}, _this.options), { authentication: session });
284
+ tries = tries + 1;
285
+ return request(_this.url, newOptions);
286
+ })
287
+ .then(function (response) {
288
+ resolve(response);
289
+ })
290
+ .catch(function (e) {
291
+ if (e.name === "ArcGISAuthError" && tries < retryLimit) {
292
+ retryRequest(resolve, reject);
293
+ }
294
+ else if (e.name === "ArcGISAuthError" && tries >= retryLimit) {
295
+ reject(_this);
296
+ }
297
+ else {
298
+ reject(e);
299
+ }
300
+ });
301
+ };
302
+ return new Promise(function (resolve, reject) {
303
+ retryRequest(resolve, reject);
304
+ });
305
+ };
306
+ return ArcGISAuthError;
307
+ }(ArcGISRequestError));
308
+ /**
309
+ * Checks for errors in a JSON response from the ArcGIS REST API. If there are no errors, it will return the `data` passed in. If there is an error, it will throw an `ArcGISRequestError` or `ArcGISAuthError`.
310
+ *
311
+ * @param data The response JSON to check for errors.
312
+ * @param url The url of the original request
313
+ * @param params The parameters of the original request
314
+ * @param options The options of the original request
315
+ * @returns The data that was passed in the `data` parameter
316
+ */
317
+ function checkForErrors(response, url, params, options, originalAuthError) {
318
+ // this is an error message from billing.arcgis.com backend
319
+ if (response.code >= 400) {
320
+ var message = response.message, code = response.code;
321
+ throw new ArcGISRequestError(message, code, response, url, options);
322
+ }
323
+ // error from ArcGIS Online or an ArcGIS Portal or server instance.
324
+ if (response.error) {
325
+ var _a = response.error, message = _a.message, code = _a.code, messageCode = _a.messageCode;
326
+ var errorCode = messageCode || code || "UNKNOWN_ERROR_CODE";
327
+ if (code === 498 ||
328
+ code === 499 ||
329
+ messageCode === "GWM_0003" ||
330
+ (code === 400 && message === "Unable to generate token.")) {
331
+ if (originalAuthError) {
332
+ throw originalAuthError;
333
+ }
334
+ else {
335
+ throw new ArcGISAuthError(message, errorCode, response, url, options);
336
+ }
337
+ }
338
+ throw new ArcGISRequestError(message, errorCode, response, url, options);
339
+ }
340
+ // error from a status check
341
+ if (response.status === "failed" || response.status === "failure") {
342
+ var message = void 0;
343
+ var code = "UNKNOWN_ERROR_CODE";
344
+ try {
345
+ message = JSON.parse(response.statusMessage).message;
346
+ code = JSON.parse(response.statusMessage).code;
347
+ }
348
+ catch (e) {
349
+ message = response.statusMessage || response.message;
350
+ }
351
+ throw new ArcGISRequestError(message, code, response, url, options);
352
+ }
353
+ return response;
354
+ }
355
+ /**
356
+ * ```js
357
+ * import { request } from '@esri/arcgis-rest-request';
358
+ * //
359
+ * request('https://www.arcgis.com/sharing/rest')
360
+ * .then(response) // response.currentVersion === 5.2
361
+ * //
362
+ * request('https://www.arcgis.com/sharing/rest', {
363
+ * httpMethod: "GET"
364
+ * })
365
+ * //
366
+ * request('https://www.arcgis.com/sharing/rest/search', {
367
+ * params: { q: 'parks' }
368
+ * })
369
+ * .then(response) // response.total => 78379
370
+ * ```
371
+ * Generic method for making HTTP requests to ArcGIS REST API endpoints.
372
+ *
373
+ * @param url - The URL of the ArcGIS REST API endpoint.
374
+ * @param requestOptions - Options for the request, including parameters relevant to the endpoint.
375
+ * @returns A Promise that will resolve with the data from the response.
376
+ */
377
+ function request(url, requestOptions) {
378
+ if (requestOptions === void 0) { requestOptions = { params: { f: "json" } }; }
379
+ var options = __assign$1(__assign$1(__assign$1({ httpMethod: "POST" }, DEFAULT_ARCGIS_REQUEST_OPTIONS), requestOptions), {
380
+ params: __assign$1(__assign$1({}, DEFAULT_ARCGIS_REQUEST_OPTIONS.params), requestOptions.params),
381
+ headers: __assign$1(__assign$1({}, DEFAULT_ARCGIS_REQUEST_OPTIONS.headers), requestOptions.headers),
382
+ });
383
+ var missingGlobals = [];
384
+ var recommendedPackages = [];
385
+ // don't check for a global fetch if a custom implementation was passed through
386
+ if (!options.fetch && typeof fetch !== "undefined") {
387
+ options.fetch = fetch.bind(Function("return this")());
388
+ }
389
+ else {
390
+ missingGlobals.push("`fetch`");
391
+ recommendedPackages.push("`node-fetch`");
392
+ }
393
+ if (typeof Promise === "undefined") {
394
+ missingGlobals.push("`Promise`");
395
+ recommendedPackages.push("`es6-promise`");
396
+ }
397
+ if (typeof FormData === "undefined") {
398
+ missingGlobals.push("`FormData`");
399
+ recommendedPackages.push("`isomorphic-form-data`");
400
+ }
401
+ if (!options.fetch ||
402
+ typeof Promise === "undefined" ||
403
+ typeof FormData === "undefined") {
404
+ throw new Error("`arcgis-rest-request` requires a `fetch` implementation and global variables for `Promise` and `FormData` to be present in the global scope. You are missing " + missingGlobals.join(", ") + ". We recommend installing the " + recommendedPackages.join(", ") + " modules at the root of your application to add these to the global scope. See https://bit.ly/2KNwWaJ for more info.");
405
+ }
406
+ var httpMethod = options.httpMethod, authentication = options.authentication, rawResponse = options.rawResponse;
407
+ var params = __assign$1({ f: "json" }, options.params);
408
+ var originalAuthError = null;
409
+ var fetchOptions = {
410
+ method: httpMethod,
411
+ /* ensures behavior mimics XMLHttpRequest.
412
+ needed to support sending IWA cookies */
413
+ credentials: options.credentials || "same-origin",
414
+ };
415
+ // the /oauth2/platformSelf route will add X-Esri-Auth-Client-Id header
416
+ // and that request needs to send cookies cross domain
417
+ // so we need to set the credentials to "include"
418
+ if (options.headers &&
419
+ options.headers["X-Esri-Auth-Client-Id"] &&
420
+ url.indexOf("/oauth2/platformSelf") > -1) {
421
+ fetchOptions.credentials = "include";
422
+ }
423
+ return (authentication
424
+ ? authentication.getToken(url, { fetch: options.fetch }).catch(function (err) {
425
+ /**
426
+ * append original request url and requestOptions
427
+ * to the error thrown by getToken()
428
+ * to assist with retrying
429
+ */
430
+ err.url = url;
431
+ err.options = options;
432
+ /**
433
+ * if an attempt is made to talk to an unfederated server
434
+ * first try the request anonymously. if a 'token required'
435
+ * error is thrown, throw the UNFEDERATED error then.
436
+ */
437
+ originalAuthError = err;
438
+ return Promise.resolve("");
439
+ })
440
+ : Promise.resolve(""))
441
+ .then(function (token) {
442
+ if (token.length) {
443
+ params.token = token;
444
+ }
445
+ if (authentication && authentication.getDomainCredentials) {
446
+ fetchOptions.credentials = authentication.getDomainCredentials(url);
447
+ }
448
+ // Custom headers to add to request. IRequestOptions.headers with merge over requestHeaders.
449
+ var requestHeaders = {};
450
+ if (fetchOptions.method === "GET") {
451
+ // Prevents token from being passed in query params when hideToken option is used.
452
+ /* istanbul ignore if - window is always defined in a browser. Test case is covered by Jasmine in node test */
453
+ if (params.token &&
454
+ options.hideToken &&
455
+ // Sharing API does not support preflight check required by modern browsers https://developer.mozilla.org/en-US/docs/Glossary/Preflight_request
456
+ typeof window === "undefined") {
457
+ requestHeaders["X-Esri-Authorization"] = "Bearer " + params.token;
458
+ delete params.token;
459
+ }
460
+ // encode the parameters into the query string
461
+ var queryParams = encodeQueryString(params);
462
+ // dont append a '?' unless parameters are actually present
463
+ var urlWithQueryString = queryParams === "" ? url : url + "?" + encodeQueryString(params);
464
+ if (
465
+ // This would exceed the maximum length for URLs specified by the consumer and requires POST
466
+ (options.maxUrlLength &&
467
+ urlWithQueryString.length > options.maxUrlLength) ||
468
+ // Or if the customer requires the token to be hidden and it has not already been hidden in the header (for browsers)
469
+ (params.token && options.hideToken)) {
470
+ // the consumer specified a maximum length for URLs
471
+ // and this would exceed it, so use post instead
472
+ fetchOptions.method = "POST";
473
+ // If the token was already added as a Auth header, add the token back to body with other params instead of header
474
+ if (token.length && options.hideToken) {
475
+ params.token = token;
476
+ // Remove existing header that was added before url query length was checked
477
+ delete requestHeaders["X-Esri-Authorization"];
478
+ }
479
+ }
480
+ else {
481
+ // just use GET
482
+ url = urlWithQueryString;
483
+ }
484
+ }
485
+ /* updateResources currently requires FormData even when the input parameters dont warrant it.
486
+ https://developers.arcgis.com/rest/users-groups-and-items/update-resources.htm
487
+ see https://github.com/Esri/arcgis-rest-js/pull/500 for more info. */
488
+ var forceFormData = new RegExp("/items/.+/updateResources").test(url);
489
+ if (fetchOptions.method === "POST") {
490
+ fetchOptions.body = encodeFormData(params, forceFormData);
491
+ }
492
+ // Mixin headers from request options
493
+ fetchOptions.headers = __assign$1(__assign$1({}, requestHeaders), options.headers);
494
+ /* istanbul ignore next - karma reports coverage on browser tests only */
495
+ if (typeof window === "undefined" && !fetchOptions.headers.referer) {
496
+ fetchOptions.headers.referer = NODEJS_DEFAULT_REFERER_HEADER;
497
+ }
498
+ /* istanbul ignore else blob responses are difficult to make cross platform we will just have to trust the isomorphic fetch will do its job */
499
+ if (!requiresFormData(params) && !forceFormData) {
500
+ fetchOptions.headers["Content-Type"] =
501
+ "application/x-www-form-urlencoded";
502
+ }
503
+ return options.fetch(url, fetchOptions);
504
+ })
505
+ .then(function (response) {
506
+ if (!response.ok) {
507
+ // server responded w/ an actual error (404, 500, etc)
508
+ var status_1 = response.status, statusText = response.statusText;
509
+ throw new ArcGISRequestError(statusText, "HTTP " + status_1, response, url, options);
510
+ }
511
+ if (rawResponse) {
512
+ return response;
513
+ }
514
+ switch (params.f) {
515
+ case "json":
516
+ return response.json();
517
+ case "geojson":
518
+ return response.json();
519
+ case "html":
520
+ return response.text();
521
+ case "text":
522
+ return response.text();
523
+ /* istanbul ignore next blob responses are difficult to make cross platform we will just have to trust that isomorphic fetch will do its job */
524
+ default:
525
+ return response.blob();
526
+ }
527
+ })
528
+ .then(function (data) {
529
+ if ((params.f === "json" || params.f === "geojson") && !rawResponse) {
530
+ var response = checkForErrors(data, url, params, options, originalAuthError);
531
+ if (originalAuthError) {
532
+ /* If the request was made to an unfederated service that
533
+ didn't require authentication, add the base url and a dummy token
534
+ to the list of trusted servers to avoid another federation check
535
+ in the event of a repeat request */
536
+ var truncatedUrl = url
537
+ .toLowerCase()
538
+ .split(/\/rest(\/admin)?\/services\//)[0];
539
+ options.authentication.federatedServers[truncatedUrl] = {
540
+ token: [],
541
+ // default to 24 hours
542
+ expires: new Date(Date.now() + 86400 * 1000),
543
+ };
544
+ originalAuthError = null;
545
+ }
546
+ return response;
547
+ }
548
+ else {
549
+ return data;
550
+ }
551
+ });
552
+ }
553
+
554
+ /* Copyright (c) 2018 Environmental Systems Research Institute, Inc.
555
+ * Apache-2.0 */
556
+ /**
557
+ * Helper method to ensure that user supplied urls don't include whitespace or a trailing slash.
558
+ */
559
+ function cleanUrl(url) {
560
+ // Guard so we don't try to trim something that's not a string
561
+ if (typeof url !== "string") {
562
+ return url;
563
+ }
564
+ // trim leading and trailing spaces, but not spaces inside the url
565
+ url = url.trim();
566
+ // remove the trailing slash to the url if one was included
567
+ if (url[url.length - 1] === "/") {
568
+ url = url.slice(0, -1);
569
+ }
570
+ return url;
571
+ }
572
+
573
+ /** @license
574
+ * Copyright 2018 Esri
575
+ *
576
+ * Licensed under the Apache License, Version 2.0 (the "License");
577
+ * you may not use this file except in compliance with the License.
578
+ * You may obtain a copy of the License at
579
+ *
580
+ * http://www.apache.org/licenses/LICENSE-2.0
581
+ *
582
+ * Unless required by applicable law or agreed to in writing, software
583
+ * distributed under the License is distributed on an "AS IS" BASIS,
584
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
585
+ * See the License for the specific language governing permissions and
586
+ * limitations under the License.
587
+ */
588
+ //#endregion ---------------------------------------------------------------------------------------------------------//
589
+ const SolutionTemplateFormatVersion = 1;
590
+ //#region Enums ------------------------------------------------------------------------------------------------------//
591
+ /**
592
+ * Flags for storing an item's binary resources.
593
+ */
594
+ exports.EFileType = void 0;
595
+ (function (EFileType) {
596
+ EFileType[EFileType["Data"] = 0] = "Data";
597
+ EFileType[EFileType["Info"] = 1] = "Info";
598
+ EFileType[EFileType["Metadata"] = 2] = "Metadata";
599
+ EFileType[EFileType["Resource"] = 3] = "Resource";
600
+ EFileType[EFileType["Thumbnail"] = 4] = "Thumbnail";
601
+ })(exports.EFileType || (exports.EFileType = {}));
602
+ /**
603
+ * Text versions of flags for storing an item's binary resources.
604
+ */
605
+ var SFileType;
606
+ (function (SFileType) {
607
+ SFileType[SFileType["Data"] = 0] = "Data";
608
+ SFileType[SFileType["Info"] = 1] = "Info";
609
+ SFileType[SFileType["Metadata"] = 2] = "Metadata";
610
+ SFileType[SFileType["Resource"] = 3] = "Resource";
611
+ SFileType[SFileType["Thumbnail"] = 4] = "Thumbnail";
612
+ })(SFileType || (SFileType = {}));
613
+ /**
614
+ * Flags for reporting the status of creating or deploying an item.
615
+ */
616
+ var EItemProgressStatus;
617
+ (function (EItemProgressStatus) {
618
+ EItemProgressStatus[EItemProgressStatus["Started"] = 0] = "Started";
619
+ EItemProgressStatus[EItemProgressStatus["Created"] = 1] = "Created";
620
+ EItemProgressStatus[EItemProgressStatus["Cancelled"] = 2] = "Cancelled";
621
+ EItemProgressStatus[EItemProgressStatus["Finished"] = 3] = "Finished";
622
+ EItemProgressStatus[EItemProgressStatus["Ignored"] = 4] = "Ignored";
623
+ EItemProgressStatus[EItemProgressStatus["Failed"] = 5] = "Failed";
624
+ EItemProgressStatus[EItemProgressStatus["Unknown"] = 6] = "Unknown";
625
+ })(EItemProgressStatus || (EItemProgressStatus = {}));
626
+ //#endregion ---------------------------------------------------------------------------------------------------------//
627
+
628
+ /* Copyright (c) 2018-2019 Environmental Systems Research Institute, Inc.
629
+ * Apache-2.0 */
630
+ /**
631
+ * Returns an array with arrays of the given size.
632
+ *
633
+ * @param arr Array to split
634
+ * @param size Size of every group
635
+ */
636
+ function chunkArray(arr, size) {
637
+ const results = [];
638
+ let index = 0;
639
+ while (index < arr.length) {
640
+ results.push(arr.slice(index, index + size));
641
+ index += size;
642
+ }
643
+ return results;
644
+ }
645
+
646
+ /*! *****************************************************************************
647
+ Copyright (c) Microsoft Corporation.
648
+
649
+ Permission to use, copy, modify, and/or distribute this software for any
650
+ purpose with or without fee is hereby granted.
651
+
652
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
653
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
654
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
655
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
656
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
657
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
658
+ PERFORMANCE OF THIS SOFTWARE.
659
+ ***************************************************************************** */
660
+
661
+ var __assign = function() {
662
+ __assign = Object.assign || function __assign(t) {
663
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
664
+ s = arguments[i];
665
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
666
+ }
667
+ return t;
668
+ };
669
+ return __assign.apply(this, arguments);
670
+ };
671
+
672
+ /* Copyright (c) 2017 Environmental Systems Research Institute, Inc.
673
+ * Apache-2.0 */
674
+ /**
675
+ * Helper that returns the appropriate portal url for a given request. `requestOptions.portal` is given
676
+ * precedence over `authentication.portal`. If neither `portal` nor `authentication` is present,
677
+ * `www.arcgis.com/sharing/rest` is returned.
678
+ *
679
+ * @param requestOptions - Request options that may have authentication manager
680
+ * @returns Portal url to be used in API requests
681
+ */
682
+ function getPortalUrl(requestOptions) {
683
+ if (requestOptions === void 0) { requestOptions = {}; }
684
+ // use portal in options if specified
685
+ if (requestOptions.portal) {
686
+ return cleanUrl(requestOptions.portal);
687
+ }
688
+ // if auth was passed, use that portal
689
+ if (requestOptions.authentication) {
690
+ // the portal url is already scrubbed in the auth package
691
+ return requestOptions.authentication.portal;
692
+ }
693
+ // default to arcgis.com
694
+ return "https://www.arcgis.com/sharing/rest";
695
+ }
696
+
697
+ /* Copyright (c) 2017-2018 Environmental Systems Research Institute, Inc.
698
+ * Apache-2.0 */
699
+ /**
700
+ * Serialize an item and its data into a json format accepted by the Portal API for create and update operations
701
+ *
702
+ * @param item Item to be serialized
703
+ * @returns a formatted json object to be sent to Portal
704
+ */
705
+ function serializeItem(item) {
706
+ // create a clone so we're not messing with the original
707
+ var clone = JSON.parse(JSON.stringify(item));
708
+ // binary data needs POSTed as a `file`
709
+ // JSON object literals should be passed as `text`.
710
+ if (clone.data) {
711
+ (typeof Blob !== "undefined" && item.data instanceof Blob) ||
712
+ // Node.js doesn't implement Blob
713
+ item.data.constructor.name === "ReadStream"
714
+ ? (clone.file = item.data)
715
+ : (clone.text = item.data);
716
+ delete clone.data;
717
+ }
718
+ return clone;
719
+ }
720
+ /**
721
+ * `requestOptions.owner` is given priority, `requestOptions.item.owner` will be checked next. If neither are present, `authentication.getUserName()` will be used instead.
722
+ */
723
+ function determineOwner(requestOptions) {
724
+ if (requestOptions.owner) {
725
+ return Promise.resolve(requestOptions.owner);
726
+ }
727
+ else if (requestOptions.item && requestOptions.item.owner) {
728
+ return Promise.resolve(requestOptions.item.owner);
729
+ }
730
+ else if (requestOptions.authentication &&
731
+ requestOptions.authentication.getUsername) {
732
+ return requestOptions.authentication.getUsername();
733
+ }
734
+ else {
735
+ return Promise.reject(new Error("Could not determine the owner of this item. Pass the `owner`, `item.owner`, or `authentication` option."));
736
+ }
737
+ }
738
+ /**
739
+ * checks if the extent is a valid BBox (2 element array of coordinate pair arrays)
740
+ * @param extent
741
+ * @returns
742
+ */
743
+ function isBBox(extent) {
744
+ return (Array.isArray(extent) &&
745
+ Array.isArray(extent[0]) &&
746
+ Array.isArray(extent[1]));
747
+ }
748
+ /**
749
+ * Given a Bbox, convert it to a string. Some api endpoints expect a string
750
+ *
751
+ * @param {BBox} extent
752
+ * @return {*} {string}
753
+ */
754
+ function bboxToString(extent) {
755
+ return extent.join(",");
756
+ }
757
+
758
+ /* Copyright (c) 2018 Environmental Systems Research Institute, Inc.
759
+ * Apache-2.0 */
760
+ /**
761
+ * ```js
762
+ * import { updateItem } from "@esri/arcgis-rest-portal";
763
+ * //
764
+ * updateItem({
765
+ * item: {
766
+ * id: "3ef",
767
+ * description: "A three hour tour"
768
+ * },
769
+ * authentication
770
+ * })
771
+ * .then(response)
772
+ * ```
773
+ * Update an Item. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/update-item.htm) for more information.
774
+ *
775
+ * @param requestOptions - Options for the request.
776
+ * @returns A Promise that updates an item.
777
+ */
778
+ function updateItem$1(requestOptions) {
779
+ return determineOwner(requestOptions).then(function (owner) {
780
+ var url = requestOptions.folderId
781
+ ? getPortalUrl(requestOptions) + "/content/users/" + owner + "/" + requestOptions.folderId + "/items/" + requestOptions.item.id + "/update"
782
+ : getPortalUrl(requestOptions) + "/content/users/" + owner + "/items/" + requestOptions.item.id + "/update";
783
+ // serialize the item into something Portal will accept
784
+ requestOptions.params = __assign(__assign({}, requestOptions.params), serializeItem(requestOptions.item));
785
+ // convert extent, if present, into a string from bbox
786
+ // processParams was previously doing this sort of work,
787
+ // however now we need to let array of arrays through
788
+ // Thus for extents we need to move this logic here
789
+ if (requestOptions.params.extent && isBBox(requestOptions.params.extent)) {
790
+ requestOptions.params.extent = bboxToString(requestOptions.params.extent);
791
+ }
792
+ return request(url, requestOptions);
793
+ });
794
+ }
795
+ /**
796
+ * ```js
797
+ * import { updateItemResource } from "@esri/arcgis-rest-portal";
798
+ * //
799
+ * updateItemResource({
800
+ * id: '3ef',
801
+ * resource: file,
802
+ * name: 'bigkahuna.jpg',
803
+ * authentication
804
+ * })
805
+ * .then(response)
806
+ * ```
807
+ * Update a resource associated with an item. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/update-resources.htm) for more information.
808
+ *
809
+ * @param requestOptions - Options for the request
810
+ * @returns A Promise that updates an item resource.
811
+ */
812
+ function updateItemResource(requestOptions) {
813
+ return determineOwner(requestOptions).then(function (owner) {
814
+ var url = getPortalUrl(requestOptions) + "/content/users/" + owner + "/items/" + requestOptions.id + "/updateResources";
815
+ // mix in user supplied params
816
+ requestOptions.params = __assign({ file: requestOptions.resource, fileName: requestOptions.name, resourcesPrefix: requestOptions.prefix, text: requestOptions.content }, requestOptions.params);
817
+ // only override the access specified previously if 'private' is passed explicitly
818
+ if (typeof requestOptions.private !== "undefined") {
819
+ requestOptions.params.access = requestOptions.private
820
+ ? "private"
821
+ : "inherit";
822
+ }
823
+ return request(url, requestOptions);
824
+ });
825
+ }
826
+
827
+ /* Copyright (c) 2018 Environmental Systems Research Institute, Inc.
828
+ * Apache-2.0 */
829
+ /**
830
+ * ```js
831
+ * import { addItemResource } from "@esri/arcgis-rest-portal";
832
+ * //
833
+ * // Add a file resource
834
+ * addItemResource({
835
+ * id: '3ef',
836
+ * resource: file,
837
+ * name: 'bigkahuna.jpg',
838
+ * authentication
839
+ * })
840
+ * .then(response)
841
+ * //
842
+ * // Add a text resource
843
+ * addItemResource({
844
+ * id: '4fg',
845
+ * content: "Text content",
846
+ * name: 'bigkahuna.txt',
847
+ * authentication
848
+ * })
849
+ * .then(response)
850
+ * ```
851
+ * Add a resource associated with an item. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/add-resources.htm) for more information.
852
+ *
853
+ * @param requestOptions - Options for the request
854
+ * @returns A Promise to add item resources.
855
+ */
856
+ function addItemResource(requestOptions) {
857
+ return determineOwner(requestOptions).then(function (owner) {
858
+ var url = getPortalUrl(requestOptions) + "/content/users/" + owner + "/items/" + requestOptions.id + "/addResources";
859
+ requestOptions.params = __assign({ file: requestOptions.resource, fileName: requestOptions.name, resourcesPrefix: requestOptions.prefix, text: requestOptions.content, access: requestOptions.private ? "private" : "inherit" }, requestOptions.params);
860
+ return request(url, requestOptions);
861
+ });
862
+ }
863
+
864
+ /* Copyright (c) 2018 Environmental Systems Research Institute, Inc.
865
+ * Apache-2.0 */
866
+ /**
867
+ * Remove a resource associated with an item
868
+ *
869
+ * @param requestOptions - Options for the request
870
+ * @returns A Promise that deletes an item resource.
871
+ */
872
+ function removeItemResource(requestOptions) {
873
+ return determineOwner(requestOptions).then(function (owner) {
874
+ var url = getPortalUrl(requestOptions) + "/content/users/" + owner + "/items/" + requestOptions.id + "/removeResources";
875
+ // mix in user supplied params
876
+ requestOptions.params = __assign(__assign({}, requestOptions.params), { resource: requestOptions.resource });
877
+ // only override the deleteAll param specified previously if it is passed explicitly
878
+ if (typeof requestOptions.deleteAll !== "undefined") {
879
+ requestOptions.params.deleteAll = requestOptions.deleteAll;
880
+ }
881
+ return request(url, requestOptions);
882
+ });
883
+ }
884
+
885
+ var jszip_min = _commonjsHelpers.createCommonjsModule(function (module, exports) {
886
+ /*!
887
+
888
+ JSZip v3.10.1 - A JavaScript class for generating and reading zip files
889
+ <http://stuartk.com/jszip>
890
+
891
+ (c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>
892
+ Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown.
893
+
894
+ JSZip uses the library pako released under the MIT license :
895
+ https://github.com/nodeca/pako/blob/main/LICENSE
896
+ */
897
+
898
+ !function(e){module.exports=e();}(function(){return function s(a,o,h){function u(r,e){if(!o[r]){if(!a[r]){var t="function"==typeof _commonjsHelpers.commonjsRequire&&_commonjsHelpers.commonjsRequire;if(!e&&t)return t(r,!0);if(l)return l(r,!0);var n=new Error("Cannot find module '"+r+"'");throw n.code="MODULE_NOT_FOUND",n}var i=o[r]={exports:{}};a[r][0].call(i.exports,function(e){var t=a[r][1][e];return u(t||e)},i,i.exports,s,a,o,h);}return o[r].exports}for(var l="function"==typeof _commonjsHelpers.commonjsRequire&&_commonjsHelpers.commonjsRequire,e=0;e<h.length;e++)u(h[e]);return u}({1:[function(e,t,r){var d=e("./utils"),c=e("./support"),p="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";r.encode=function(e){for(var t,r,n,i,s,a,o,h=[],u=0,l=e.length,f=l,c="string"!==d.getTypeOf(e);u<e.length;)f=l-u,n=c?(t=e[u++],r=u<l?e[u++]:0,u<l?e[u++]:0):(t=e.charCodeAt(u++),r=u<l?e.charCodeAt(u++):0,u<l?e.charCodeAt(u++):0),i=t>>2,s=(3&t)<<4|r>>4,a=1<f?(15&r)<<2|n>>6:64,o=2<f?63&n:64,h.push(p.charAt(i)+p.charAt(s)+p.charAt(a)+p.charAt(o));return h.join("")},r.decode=function(e){var t,r,n,i,s,a,o=0,h=0,u="data:";if(e.substr(0,u.length)===u)throw new Error("Invalid base64 input, it looks like a data url.");var l,f=3*(e=e.replace(/[^A-Za-z0-9+/=]/g,"")).length/4;if(e.charAt(e.length-1)===p.charAt(64)&&f--,e.charAt(e.length-2)===p.charAt(64)&&f--,f%1!=0)throw new Error("Invalid base64 input, bad content length.");for(l=c.uint8array?new Uint8Array(0|f):new Array(0|f);o<e.length;)t=p.indexOf(e.charAt(o++))<<2|(i=p.indexOf(e.charAt(o++)))>>4,r=(15&i)<<4|(s=p.indexOf(e.charAt(o++)))>>2,n=(3&s)<<6|(a=p.indexOf(e.charAt(o++))),l[h++]=t,64!==s&&(l[h++]=r),64!==a&&(l[h++]=n);return l};},{"./support":30,"./utils":32}],2:[function(e,t,r){var n=e("./external"),i=e("./stream/DataWorker"),s=e("./stream/Crc32Probe"),a=e("./stream/DataLengthProbe");function o(e,t,r,n,i){this.compressedSize=e,this.uncompressedSize=t,this.crc32=r,this.compression=n,this.compressedContent=i;}o.prototype={getContentWorker:function(){var e=new i(n.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a("data_length")),t=this;return e.on("end",function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),e},getCompressedWorker:function(){return new i(n.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},o.createWorkerFrom=function(e,t,r){return e.pipe(new s).pipe(new a("uncompressedSize")).pipe(t.compressWorker(r)).pipe(new a("compressedSize")).withStreamInfo("compression",t)},t.exports=o;},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(e,t,r){var n=e("./stream/GenericWorker");r.STORE={magic:"\0\0",compressWorker:function(){return new n("STORE compression")},uncompressWorker:function(){return new n("STORE decompression")}},r.DEFLATE=e("./flate");},{"./flate":7,"./stream/GenericWorker":28}],4:[function(e,t,r){var n=e("./utils");var o=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e;}return t}();t.exports=function(e,t){return void 0!==e&&e.length?"string"!==n.getTypeOf(e)?function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a<s;a++)e=e>>>8^i[255&(e^t[a])];return -1^e}(0|t,e,e.length,0):function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a<s;a++)e=e>>>8^i[255&(e^t.charCodeAt(a))];return -1^e}(0|t,e,e.length,0):0};},{"./utils":32}],5:[function(e,t,r){r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null;},{}],6:[function(e,t,r){var n=null;n="undefined"!=typeof Promise?Promise:e("lie"),t.exports={Promise:n};},{lie:37}],7:[function(e,t,r){var n="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,i=e("pako"),s=e("./utils"),a=e("./stream/GenericWorker"),o=n?"uint8array":"array";function h(e,t){a.call(this,"FlateWorker/"+e),this._pako=null,this._pakoAction=e,this._pakoOptions=t,this.meta={};}r.magic="\b\0",s.inherits(h,a),h.prototype.processChunk=function(e){this.meta=e.meta,null===this._pako&&this._createPako(),this._pako.push(s.transformTo(o,e.data),!1);},h.prototype.flush=function(){a.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0);},h.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this._pako=null;},h.prototype._createPako=function(){this._pako=new i[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var t=this;this._pako.onData=function(e){t.push({data:e,meta:t.meta});};},r.compressWorker=function(e){return new h("Deflate",e)},r.uncompressWorker=function(){return new h("Inflate",{})};},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(e,t,r){function A(e,t){var r,n="";for(r=0;r<t;r++)n+=String.fromCharCode(255&e),e>>>=8;return n}function n(e,t,r,n,i,s){var a,o,h=e.file,u=e.compression,l=s!==O.utf8encode,f=I.transformTo("string",s(h.name)),c=I.transformTo("string",O.utf8encode(h.name)),d=h.comment,p=I.transformTo("string",s(d)),m=I.transformTo("string",O.utf8encode(d)),_=c.length!==h.name.length,g=m.length!==d.length,b="",v="",y="",w=h.dir,k=h.date,x={crc32:0,compressedSize:0,uncompressedSize:0};t&&!r||(x.crc32=e.crc32,x.compressedSize=e.compressedSize,x.uncompressedSize=e.uncompressedSize);var S=0;t&&(S|=8),l||!_&&!g||(S|=2048);var z=0,C=0;w&&(z|=16),"UNIX"===i?(C=798,z|=function(e,t){var r=e;return e||(r=t?16893:33204),(65535&r)<<16}(h.unixPermissions,w)):(C=20,z|=function(e){return 63&(e||0)}(h.dosPermissions)),a=k.getUTCHours(),a<<=6,a|=k.getUTCMinutes(),a<<=5,a|=k.getUTCSeconds()/2,o=k.getUTCFullYear()-1980,o<<=4,o|=k.getUTCMonth()+1,o<<=5,o|=k.getUTCDate(),_&&(v=A(1,1)+A(B(f),4)+c,b+="up"+A(v.length,2)+v),g&&(y=A(1,1)+A(B(p),4)+m,b+="uc"+A(y.length,2)+y);var E="";return E+="\n\0",E+=A(S,2),E+=u.magic,E+=A(a,2),E+=A(o,2),E+=A(x.crc32,4),E+=A(x.compressedSize,4),E+=A(x.uncompressedSize,4),E+=A(f.length,2),E+=A(b.length,2),{fileRecord:R.LOCAL_FILE_HEADER+E+f+b,dirRecord:R.CENTRAL_FILE_HEADER+A(C,2)+E+A(p.length,2)+"\0\0\0\0"+A(z,4)+A(n,4)+f+b+p}}var I=e("../utils"),i=e("../stream/GenericWorker"),O=e("../utf8"),B=e("../crc32"),R=e("../signature");function s(e,t,r,n){i.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=t,this.zipPlatform=r,this.encodeFileName=n,this.streamFiles=e,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[];}I.inherits(s,i),s.prototype.push=function(e){var t=e.meta.percent||0,r=this.entriesCount,n=this._sources.length;this.accumulate?this.contentBuffer.push(e):(this.bytesWritten+=e.data.length,i.prototype.push.call(this,{data:e.data,meta:{currentFile:this.currentFile,percent:r?(t+100*(r-n-1))/r:100}}));},s.prototype.openedSource=function(e){this.currentSourceOffset=this.bytesWritten,this.currentFile=e.file.name;var t=this.streamFiles&&!e.file.dir;if(t){var r=n(e,t,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}});}else this.accumulate=!0;},s.prototype.closedSource=function(e){this.accumulate=!1;var t=this.streamFiles&&!e.file.dir,r=n(e,t,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),t)this.push({data:function(e){return R.DATA_DESCRIPTOR+A(e.crc32,4)+A(e.compressedSize,4)+A(e.uncompressedSize,4)}(e),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null;},s.prototype.flush=function(){for(var e=this.bytesWritten,t=0;t<this.dirRecords.length;t++)this.push({data:this.dirRecords[t],meta:{percent:100}});var r=this.bytesWritten-e,n=function(e,t,r,n,i){var s=I.transformTo("string",i(n));return R.CENTRAL_DIRECTORY_END+"\0\0\0\0"+A(e,2)+A(e,2)+A(t,4)+A(r,4)+A(s.length,2)+s}(this.dirRecords.length,r,e,this.zipComment,this.encodeFileName);this.push({data:n,meta:{percent:100}});},s.prototype.prepareNextSource=function(){this.previous=this._sources.shift(),this.openedSource(this.previous.streamInfo),this.isPaused?this.previous.pause():this.previous.resume();},s.prototype.registerPrevious=function(e){this._sources.push(e);var t=this;return e.on("data",function(e){t.processChunk(e);}),e.on("end",function(){t.closedSource(t.previous.streamInfo),t._sources.length?t.prepareNextSource():t.end();}),e.on("error",function(e){t.error(e);}),this},s.prototype.resume=function(){return !!i.prototype.resume.call(this)&&(!this.previous&&this._sources.length?(this.prepareNextSource(),!0):this.previous||this._sources.length||this.generatedError?void 0:(this.end(),!0))},s.prototype.error=function(e){var t=this._sources;if(!i.prototype.error.call(this,e))return !1;for(var r=0;r<t.length;r++)try{t[r].error(e);}catch(e){}return !0},s.prototype.lock=function(){i.prototype.lock.call(this);for(var e=this._sources,t=0;t<e.length;t++)e[t].lock();},t.exports=s;},{"../crc32":4,"../signature":23,"../stream/GenericWorker":28,"../utf8":31,"../utils":32}],9:[function(e,t,r){var u=e("../compressions"),n=e("./ZipFileWorker");r.generateWorker=function(e,a,t){var o=new n(a.streamFiles,t,a.platform,a.encodeFileName),h=0;try{e.forEach(function(e,t){h++;var r=function(e,t){var r=e||t,n=u[r];if(!n)throw new Error(r+" is not a valid compression method !");return n}(t.options.compression,a.compression),n=t.options.compressionOptions||a.compressionOptions||{},i=t.dir,s=t.date;t._compressWorker(r,n).withStreamInfo("file",{name:e,dir:i,date:s,comment:t.comment||"",unixPermissions:t.unixPermissions,dosPermissions:t.dosPermissions}).pipe(o);}),o.entriesCount=h;}catch(e){o.error(e);}return o};},{"../compressions":3,"./ZipFileWorker":8}],10:[function(e,t,r){function n(){if(!(this instanceof n))return new n;if(arguments.length)throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.");this.files=Object.create(null),this.comment=null,this.root="",this.clone=function(){var e=new n;for(var t in this)"function"!=typeof this[t]&&(e[t]=this[t]);return e};}(n.prototype=e("./object")).loadAsync=e("./load"),n.support=e("./support"),n.defaults=e("./defaults"),n.version="3.10.1",n.loadAsync=function(e,t){return (new n).loadAsync(e,t)},n.external=e("./external"),t.exports=n;},{"./defaults":5,"./external":6,"./load":11,"./object":15,"./support":30}],11:[function(e,t,r){var u=e("./utils"),i=e("./external"),n=e("./utf8"),s=e("./zipEntries"),a=e("./stream/Crc32Probe"),l=e("./nodejsUtils");function f(n){return new i.Promise(function(e,t){var r=n.decompressed.getContentWorker().pipe(new a);r.on("error",function(e){t(e);}).on("end",function(){r.streamInfo.crc32!==n.decompressed.crc32?t(new Error("Corrupted zip : CRC32 mismatch")):e();}).resume();})}t.exports=function(e,o){var h=this;return o=u.extend(o||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:n.utf8decode}),l.isNode&&l.isStream(e)?i.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")):u.prepareContent("the loaded zip file",e,!0,o.optimizedBinaryString,o.base64).then(function(e){var t=new s(o);return t.load(e),t}).then(function(e){var t=[i.Promise.resolve(e)],r=e.files;if(o.checkCRC32)for(var n=0;n<r.length;n++)t.push(f(r[n]));return i.Promise.all(t)}).then(function(e){for(var t=e.shift(),r=t.files,n=0;n<r.length;n++){var i=r[n],s=i.fileNameStr,a=u.resolve(i.fileNameStr);h.file(a,i.decompressed,{binary:!0,optimizedBinaryString:!0,date:i.date,dir:i.dir,comment:i.fileCommentStr.length?i.fileCommentStr:null,unixPermissions:i.unixPermissions,dosPermissions:i.dosPermissions,createFolders:o.createFolders}),i.dir||(h.file(a).unsafeOriginalName=s);}return t.zipComment.length&&(h.comment=t.zipComment),h})};},{"./external":6,"./nodejsUtils":14,"./stream/Crc32Probe":25,"./utf8":31,"./utils":32,"./zipEntries":33}],12:[function(e,t,r){var n=e("../utils"),i=e("../stream/GenericWorker");function s(e,t){i.call(this,"Nodejs stream input adapter for "+e),this._upstreamEnded=!1,this._bindStream(t);}n.inherits(s,i),s.prototype._bindStream=function(e){var t=this;(this._stream=e).pause(),e.on("data",function(e){t.push({data:e,meta:{percent:0}});}).on("error",function(e){t.isPaused?this.generatedError=e:t.error(e);}).on("end",function(){t.isPaused?t._upstreamEnded=!0:t.end();});},s.prototype.pause=function(){return !!i.prototype.pause.call(this)&&(this._stream.pause(),!0)},s.prototype.resume=function(){return !!i.prototype.resume.call(this)&&(this._upstreamEnded?this.end():this._stream.resume(),!0)},t.exports=s;},{"../stream/GenericWorker":28,"../utils":32}],13:[function(e,t,r){var i=e("readable-stream").Readable;function n(e,t,r){i.call(this,t),this._helper=e;var n=this;e.on("data",function(e,t){n.push(e)||n._helper.pause(),r&&r(t);}).on("error",function(e){n.emit("error",e);}).on("end",function(){n.push(null);});}e("../utils").inherits(n,i),n.prototype._read=function(){this._helper.resume();},t.exports=n;},{"../utils":32,"readable-stream":16}],14:[function(e,t,r){t.exports={isNode:"undefined"!=typeof Buffer,newBufferFrom:function(e,t){if(Buffer.from&&Buffer.from!==Uint8Array.from)return Buffer.from(e,t);if("number"==typeof e)throw new Error('The "data" argument must not be a number');return new Buffer(e,t)},allocBuffer:function(e){if(Buffer.alloc)return Buffer.alloc(e);var t=new Buffer(e);return t.fill(0),t},isBuffer:function(e){return Buffer.isBuffer(e)},isStream:function(e){return e&&"function"==typeof e.on&&"function"==typeof e.pause&&"function"==typeof e.resume}};},{}],15:[function(e,t,r){function s(e,t,r){var n,i=u.getTypeOf(t),s=u.extend(r||{},f);s.date=s.date||new Date,null!==s.compression&&(s.compression=s.compression.toUpperCase()),"string"==typeof s.unixPermissions&&(s.unixPermissions=parseInt(s.unixPermissions,8)),s.unixPermissions&&16384&s.unixPermissions&&(s.dir=!0),s.dosPermissions&&16&s.dosPermissions&&(s.dir=!0),s.dir&&(e=g(e)),s.createFolders&&(n=_(e))&&b.call(this,n,!0);var a="string"===i&&!1===s.binary&&!1===s.base64;r&&void 0!==r.binary||(s.binary=!a),(t instanceof c&&0===t.uncompressedSize||s.dir||!t||0===t.length)&&(s.base64=!1,s.binary=!0,t="",s.compression="STORE",i="string");var o=null;o=t instanceof c||t instanceof l?t:p.isNode&&p.isStream(t)?new m(e,t):u.prepareContent(e,t,s.binary,s.optimizedBinaryString,s.base64);var h=new d(e,o,s);this.files[e]=h;}var i=e("./utf8"),u=e("./utils"),l=e("./stream/GenericWorker"),a=e("./stream/StreamHelper"),f=e("./defaults"),c=e("./compressedObject"),d=e("./zipObject"),o=e("./generate"),p=e("./nodejsUtils"),m=e("./nodejs/NodejsStreamInputAdapter"),_=function(e){"/"===e.slice(-1)&&(e=e.substring(0,e.length-1));var t=e.lastIndexOf("/");return 0<t?e.substring(0,t):""},g=function(e){return "/"!==e.slice(-1)&&(e+="/"),e},b=function(e,t){return t=void 0!==t?t:f.createFolders,e=g(e),this.files[e]||s.call(this,e,null,{dir:!0,createFolders:t}),this.files[e]};function h(e){return "[object RegExp]"===Object.prototype.toString.call(e)}var n={load:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},forEach:function(e){var t,r,n;for(t in this.files)n=this.files[t],(r=t.slice(this.root.length,t.length))&&t.slice(0,this.root.length)===this.root&&e(r,n);},filter:function(r){var n=[];return this.forEach(function(e,t){r(e,t)&&n.push(t);}),n},file:function(e,t,r){if(1!==arguments.length)return e=this.root+e,s.call(this,e,t,r),this;if(h(e)){var n=e;return this.filter(function(e,t){return !t.dir&&n.test(e)})}var i=this.files[this.root+e];return i&&!i.dir?i:null},folder:function(r){if(!r)return this;if(h(r))return this.filter(function(e,t){return t.dir&&r.test(e)});var e=this.root+r,t=b.call(this,e),n=this.clone();return n.root=t.name,n},remove:function(r){r=this.root+r;var e=this.files[r];if(e||("/"!==r.slice(-1)&&(r+="/"),e=this.files[r]),e&&!e.dir)delete this.files[r];else for(var t=this.filter(function(e,t){return t.name.slice(0,r.length)===r}),n=0;n<t.length;n++)delete this.files[t[n].name];return this},generate:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},generateInternalStream:function(e){var t,r={};try{if((r=u.extend(e||{},{streamFiles:!1,compression:"STORE",compressionOptions:null,type:"",platform:"DOS",comment:null,mimeType:"application/zip",encodeFileName:i.utf8encode})).type=r.type.toLowerCase(),r.compression=r.compression.toUpperCase(),"binarystring"===r.type&&(r.type="string"),!r.type)throw new Error("No output type specified.");u.checkSupport(r.type),"darwin"!==r.platform&&"freebsd"!==r.platform&&"linux"!==r.platform&&"sunos"!==r.platform||(r.platform="UNIX"),"win32"===r.platform&&(r.platform="DOS");var n=r.comment||this.comment||"";t=o.generateWorker(this,r,n);}catch(e){(t=new l("error")).error(e);}return new a(t,r.type||"string",r.mimeType)},generateAsync:function(e,t){return this.generateInternalStream(e).accumulate(t)},generateNodeStream:function(e,t){return (e=e||{}).type||(e.type="nodebuffer"),this.generateInternalStream(e).toNodejsStream(t)}};t.exports=n;},{"./compressedObject":2,"./defaults":5,"./generate":9,"./nodejs/NodejsStreamInputAdapter":12,"./nodejsUtils":14,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31,"./utils":32,"./zipObject":35}],16:[function(e,t,r){t.exports=e("stream");},{stream:void 0}],17:[function(e,t,r){var n=e("./DataReader");function i(e){n.call(this,e);for(var t=0;t<this.data.length;t++)e[t]=255&e[t];}e("../utils").inherits(i,n),i.prototype.byteAt=function(e){return this.data[this.zero+e]},i.prototype.lastIndexOfSignature=function(e){for(var t=e.charCodeAt(0),r=e.charCodeAt(1),n=e.charCodeAt(2),i=e.charCodeAt(3),s=this.length-4;0<=s;--s)if(this.data[s]===t&&this.data[s+1]===r&&this.data[s+2]===n&&this.data[s+3]===i)return s-this.zero;return -1},i.prototype.readAndCheckSignature=function(e){var t=e.charCodeAt(0),r=e.charCodeAt(1),n=e.charCodeAt(2),i=e.charCodeAt(3),s=this.readData(4);return t===s[0]&&r===s[1]&&n===s[2]&&i===s[3]},i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return [];var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i;},{"../utils":32,"./DataReader":18}],18:[function(e,t,r){var n=e("../utils");function i(e){this.data=e,this.length=e.length,this.index=0,this.zero=0;}i.prototype={checkOffset:function(e){this.checkIndex(this.index+e);},checkIndex:function(e){if(this.length<this.zero+e||e<0)throw new Error("End of data reached (data length = "+this.length+", asked index = "+e+"). Corrupted zip ?")},setIndex:function(e){this.checkIndex(e),this.index=e;},skip:function(e){this.setIndex(this.index+e);},byteAt:function(){},readInt:function(e){var t,r=0;for(this.checkOffset(e),t=this.index+e-1;t>=this.index;t--)r=(r<<8)+this.byteAt(t);return this.index+=e,r},readString:function(e){return n.transformTo("string",this.readData(e))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var e=this.readInt(4);return new Date(Date.UTC(1980+(e>>25&127),(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(31&e)<<1))}},t.exports=i;},{"../utils":32}],19:[function(e,t,r){var n=e("./Uint8ArrayReader");function i(e){n.call(this,e);}e("../utils").inherits(i,n),i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i;},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(e,t,r){var n=e("./DataReader");function i(e){n.call(this,e);}e("../utils").inherits(i,n),i.prototype.byteAt=function(e){return this.data.charCodeAt(this.zero+e)},i.prototype.lastIndexOfSignature=function(e){return this.data.lastIndexOf(e)-this.zero},i.prototype.readAndCheckSignature=function(e){return e===this.readData(4)},i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i;},{"../utils":32,"./DataReader":18}],21:[function(e,t,r){var n=e("./ArrayReader");function i(e){n.call(this,e);}e("../utils").inherits(i,n),i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return new Uint8Array(0);var t=this.data.subarray(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i;},{"../utils":32,"./ArrayReader":17}],22:[function(e,t,r){var n=e("../utils"),i=e("../support"),s=e("./ArrayReader"),a=e("./StringReader"),o=e("./NodeBufferReader"),h=e("./Uint8ArrayReader");t.exports=function(e){var t=n.getTypeOf(e);return n.checkSupport(t),"string"!==t||i.uint8array?"nodebuffer"===t?new o(e):i.uint8array?new h(n.transformTo("uint8array",e)):new s(n.transformTo("array",e)):new a(e)};},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(e,t,r){r.LOCAL_FILE_HEADER="PK",r.CENTRAL_FILE_HEADER="PK",r.CENTRAL_DIRECTORY_END="PK",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK",r.ZIP64_CENTRAL_DIRECTORY_END="PK",r.DATA_DESCRIPTOR="PK\b";},{}],24:[function(e,t,r){var n=e("./GenericWorker"),i=e("../utils");function s(e){n.call(this,"ConvertWorker to "+e),this.destType=e;}i.inherits(s,n),s.prototype.processChunk=function(e){this.push({data:i.transformTo(this.destType,e.data),meta:e.meta});},t.exports=s;},{"../utils":32,"./GenericWorker":28}],25:[function(e,t,r){var n=e("./GenericWorker"),i=e("../crc32");function s(){n.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0);}e("../utils").inherits(s,n),s.prototype.processChunk=function(e){this.streamInfo.crc32=i(e.data,this.streamInfo.crc32||0),this.push(e);},t.exports=s;},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(e,t,r){var n=e("../utils"),i=e("./GenericWorker");function s(e){i.call(this,"DataLengthProbe for "+e),this.propName=e,this.withStreamInfo(e,0);}n.inherits(s,i),s.prototype.processChunk=function(e){if(e){var t=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=t+e.data.length;}i.prototype.processChunk.call(this,e);},t.exports=s;},{"../utils":32,"./GenericWorker":28}],27:[function(e,t,r){var n=e("../utils"),i=e("./GenericWorker");function s(e){i.call(this,"DataWorker");var t=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,e.then(function(e){t.dataIsReady=!0,t.data=e,t.max=e&&e.length||0,t.type=n.getTypeOf(e),t.isPaused||t._tickAndRepeat();},function(e){t.error(e);});}n.inherits(s,i),s.prototype.cleanUp=function(){i.prototype.cleanUp.call(this),this.data=null;},s.prototype.resume=function(){return !!i.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,n.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(n.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0));},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return !1;var e=null,t=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":e=this.data.substring(this.index,t);break;case"uint8array":e=this.data.subarray(this.index,t);break;case"array":case"nodebuffer":e=this.data.slice(this.index,t);}return this.index=t,this.push({data:e,meta:{percent:this.max?this.index/this.max*100:0}})},t.exports=s;},{"../utils":32,"./GenericWorker":28}],28:[function(e,t,r){function n(e){this.name=e||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null;}n.prototype={push:function(e){this.emit("data",e);},end:function(){if(this.isFinished)return !1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0;}catch(e){this.emit("error",e);}return !0},error:function(e){return !this.isFinished&&(this.isPaused?this.generatedError=e:(this.isFinished=!0,this.emit("error",e),this.previous&&this.previous.error(e),this.cleanUp()),!0)},on:function(e,t){return this._listeners[e].push(t),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[];},emit:function(e,t){if(this._listeners[e])for(var r=0;r<this._listeners[e].length;r++)this._listeners[e][r].call(this,t);},pipe:function(e){return e.registerPrevious(this)},registerPrevious:function(e){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.streamInfo=e.streamInfo,this.mergeStreamInfo(),this.previous=e;var t=this;return e.on("data",function(e){t.processChunk(e);}),e.on("end",function(){t.end();}),e.on("error",function(e){t.error(e);}),this},pause:function(){return !this.isPaused&&!this.isFinished&&(this.isPaused=!0,this.previous&&this.previous.pause(),!0)},resume:function(){if(!this.isPaused||this.isFinished)return !1;var e=this.isPaused=!1;return this.generatedError&&(this.error(this.generatedError),e=!0),this.previous&&this.previous.resume(),!e},flush:function(){},processChunk:function(e){this.push(e);},withStreamInfo:function(e,t){return this.extraStreamInfo[e]=t,this.mergeStreamInfo(),this},mergeStreamInfo:function(){for(var e in this.extraStreamInfo)Object.prototype.hasOwnProperty.call(this.extraStreamInfo,e)&&(this.streamInfo[e]=this.extraStreamInfo[e]);},lock:function(){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.isLocked=!0,this.previous&&this.previous.lock();},toString:function(){var e="Worker "+this.name;return this.previous?this.previous+" -> "+e:e}},t.exports=n;},{}],29:[function(e,t,r){var h=e("../utils"),i=e("./ConvertWorker"),s=e("./GenericWorker"),u=e("../base64"),n=e("../support"),a=e("../external"),o=null;if(n.nodestream)try{o=e("../nodejs/NodejsStreamOutputAdapter");}catch(e){}function l(e,o){return new a.Promise(function(t,r){var n=[],i=e._internalType,s=e._outputType,a=e._mimeType;e.on("data",function(e,t){n.push(e),o&&o(t);}).on("error",function(e){n=[],r(e);}).on("end",function(){try{var e=function(e,t,r){switch(e){case"blob":return h.newBlob(h.transformTo("arraybuffer",t),r);case"base64":return u.encode(t);default:return h.transformTo(e,t)}}(s,function(e,t){var r,n=0,i=null,s=0;for(r=0;r<t.length;r++)s+=t[r].length;switch(e){case"string":return t.join("");case"array":return Array.prototype.concat.apply([],t);case"uint8array":for(i=new Uint8Array(s),r=0;r<t.length;r++)i.set(t[r],n),n+=t[r].length;return i;case"nodebuffer":return Buffer.concat(t);default:throw new Error("concat : unsupported type '"+e+"'")}}(i,n),a);t(e);}catch(e){r(e);}n=[];}).resume();})}function f(e,t,r){var n=t;switch(t){case"blob":case"arraybuffer":n="uint8array";break;case"base64":n="string";}try{this._internalType=n,this._outputType=t,this._mimeType=r,h.checkSupport(n),this._worker=e.pipe(new i(n)),e.lock();}catch(e){this._worker=new s("error"),this._worker.error(e);}}f.prototype={accumulate:function(e){return l(this,e)},on:function(e,t){var r=this;return "data"===e?this._worker.on(e,function(e){t.call(r,e.data,e.meta);}):this._worker.on(e,function(){h.delay(t,arguments,r);}),this},resume:function(){return h.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(e){if(h.checkSupport("nodestream"),"nodebuffer"!==this._outputType)throw new Error(this._outputType+" is not supported by this method");return new o(this,{objectMode:"nodebuffer"!==this._outputType},e)}},t.exports=f;},{"../base64":1,"../external":6,"../nodejs/NodejsStreamOutputAdapter":13,"../support":30,"../utils":32,"./ConvertWorker":24,"./GenericWorker":28}],30:[function(e,t,r){if(r.base64=!0,r.array=!0,r.string=!0,r.arraybuffer="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array,r.nodebuffer="undefined"!=typeof Buffer,r.uint8array="undefined"!=typeof Uint8Array,"undefined"==typeof ArrayBuffer)r.blob=!1;else {var n=new ArrayBuffer(0);try{r.blob=0===new Blob([n],{type:"application/zip"}).size;}catch(e){try{var i=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);i.append(n),r.blob=0===i.getBlob("application/zip").size;}catch(e){r.blob=!1;}}}try{r.nodestream=!!e("readable-stream").Readable;}catch(e){r.nodestream=!1;}},{"readable-stream":16}],31:[function(e,t,s){for(var o=e("./utils"),h=e("./support"),r=e("./nodejsUtils"),n=e("./stream/GenericWorker"),u=new Array(256),i=0;i<256;i++)u[i]=252<=i?6:248<=i?5:240<=i?4:224<=i?3:192<=i?2:1;u[254]=u[254]=1;function a(){n.call(this,"utf-8 decode"),this.leftOver=null;}function l(){n.call(this,"utf-8 encode");}s.utf8encode=function(e){return h.nodebuffer?r.newBufferFrom(e,"utf-8"):function(e){var t,r,n,i,s,a=e.length,o=0;for(i=0;i<a;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),o+=r<128?1:r<2048?2:r<65536?3:4;for(t=h.uint8array?new Uint8Array(o):new Array(o),i=s=0;s<o;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),r<128?t[s++]=r:(r<2048?t[s++]=192|r>>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t}(e)},s.utf8decode=function(e){return h.nodebuffer?o.transformTo("nodebuffer",e).toString("utf-8"):function(e){var t,r,n,i,s=e.length,a=new Array(2*s);for(t=r=0;t<s;)if((n=e[t++])<128)a[r++]=n;else if(4<(i=u[n]))a[r++]=65533,t+=i-1;else {for(n&=2===i?31:3===i?15:7;1<i&&t<s;)n=n<<6|63&e[t++],i--;1<i?a[r++]=65533:n<65536?a[r++]=n:(n-=65536,a[r++]=55296|n>>10&1023,a[r++]=56320|1023&n);}return a.length!==r&&(a.subarray?a=a.subarray(0,r):a.length=r),o.applyFromCharCode(a)}(e=o.transformTo(h.uint8array?"uint8array":"array",e))},o.inherits(a,n),a.prototype.processChunk=function(e){var t=o.transformTo(h.uint8array?"uint8array":"array",e.data);if(this.leftOver&&this.leftOver.length){if(h.uint8array){var r=t;(t=new Uint8Array(r.length+this.leftOver.length)).set(this.leftOver,0),t.set(r,this.leftOver.length);}else t=this.leftOver.concat(t);this.leftOver=null;}var n=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t}(t),i=t;n!==t.length&&(h.uint8array?(i=t.subarray(0,n),this.leftOver=t.subarray(n,t.length)):(i=t.slice(0,n),this.leftOver=t.slice(n,t.length))),this.push({data:s.utf8decode(i),meta:e.meta});},a.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:s.utf8decode(this.leftOver),meta:{}}),this.leftOver=null);},s.Utf8DecodeWorker=a,o.inherits(l,n),l.prototype.processChunk=function(e){this.push({data:s.utf8encode(e.data),meta:e.meta});},s.Utf8EncodeWorker=l;},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(e,t,a){var o=e("./support"),h=e("./base64"),r=e("./nodejsUtils"),u=e("./external");function n(e){return e}function l(e,t){for(var r=0;r<e.length;++r)t[r]=255&e.charCodeAt(r);return t}e("setimmediate"),a.newBlob=function(t,r){a.checkSupport("blob");try{return new Blob([t],{type:r})}catch(e){try{var n=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);return n.append(t),n.getBlob(r)}catch(e){throw new Error("Bug : can't construct the Blob.")}}};var i={stringifyByChunk:function(e,t,r){var n=[],i=0,s=e.length;if(s<=r)return String.fromCharCode.apply(null,e);for(;i<s;)"array"===t||"nodebuffer"===t?n.push(String.fromCharCode.apply(null,e.slice(i,Math.min(i+r,s)))):n.push(String.fromCharCode.apply(null,e.subarray(i,Math.min(i+r,s)))),i+=r;return n.join("")},stringifyByChar:function(e){for(var t="",r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t},applyCanBeUsed:{uint8array:function(){try{return o.uint8array&&1===String.fromCharCode.apply(null,new Uint8Array(1)).length}catch(e){return !1}}(),nodebuffer:function(){try{return o.nodebuffer&&1===String.fromCharCode.apply(null,r.allocBuffer(1)).length}catch(e){return !1}}()}};function s(e){var t=65536,r=a.getTypeOf(e),n=!0;if("uint8array"===r?n=i.applyCanBeUsed.uint8array:"nodebuffer"===r&&(n=i.applyCanBeUsed.nodebuffer),n)for(;1<t;)try{return i.stringifyByChunk(e,r,t)}catch(e){t=Math.floor(t/2);}return i.stringifyByChar(e)}function f(e,t){for(var r=0;r<e.length;r++)t[r]=e[r];return t}a.applyFromCharCode=s;var c={};c.string={string:n,array:function(e){return l(e,new Array(e.length))},arraybuffer:function(e){return c.string.uint8array(e).buffer},uint8array:function(e){return l(e,new Uint8Array(e.length))},nodebuffer:function(e){return l(e,r.allocBuffer(e.length))}},c.array={string:s,array:n,arraybuffer:function(e){return new Uint8Array(e).buffer},uint8array:function(e){return new Uint8Array(e)},nodebuffer:function(e){return r.newBufferFrom(e)}},c.arraybuffer={string:function(e){return s(new Uint8Array(e))},array:function(e){return f(new Uint8Array(e),new Array(e.byteLength))},arraybuffer:n,uint8array:function(e){return new Uint8Array(e)},nodebuffer:function(e){return r.newBufferFrom(new Uint8Array(e))}},c.uint8array={string:s,array:function(e){return f(e,new Array(e.length))},arraybuffer:function(e){return e.buffer},uint8array:n,nodebuffer:function(e){return r.newBufferFrom(e)}},c.nodebuffer={string:s,array:function(e){return f(e,new Array(e.length))},arraybuffer:function(e){return c.nodebuffer.uint8array(e).buffer},uint8array:function(e){return f(e,new Uint8Array(e.length))},nodebuffer:n},a.transformTo=function(e,t){if(t=t||"",!e)return t;a.checkSupport(e);var r=a.getTypeOf(t);return c[r][e](t)},a.resolve=function(e){for(var t=e.split("/"),r=[],n=0;n<t.length;n++){var i=t[n];"."===i||""===i&&0!==n&&n!==t.length-1||(".."===i?r.pop():r.push(i));}return r.join("/")},a.getTypeOf=function(e){return "string"==typeof e?"string":"[object Array]"===Object.prototype.toString.call(e)?"array":o.nodebuffer&&r.isBuffer(e)?"nodebuffer":o.uint8array&&e instanceof Uint8Array?"uint8array":o.arraybuffer&&e instanceof ArrayBuffer?"arraybuffer":void 0},a.checkSupport=function(e){if(!o[e.toLowerCase()])throw new Error(e+" is not supported by this platform")},a.MAX_VALUE_16BITS=65535,a.MAX_VALUE_32BITS=-1,a.pretty=function(e){var t,r,n="";for(r=0;r<(e||"").length;r++)n+="\\x"+((t=e.charCodeAt(r))<16?"0":"")+t.toString(16).toUpperCase();return n},a.delay=function(e,t,r){setImmediate(function(){e.apply(r||null,t||[]);});},a.inherits=function(e,t){function r(){}r.prototype=t.prototype,e.prototype=new r;},a.extend=function(){var e,t,r={};for(e=0;e<arguments.length;e++)for(t in arguments[e])Object.prototype.hasOwnProperty.call(arguments[e],t)&&void 0===r[t]&&(r[t]=arguments[e][t]);return r},a.prepareContent=function(r,e,n,i,s){return u.Promise.resolve(e).then(function(n){return o.blob&&(n instanceof Blob||-1!==["[object File]","[object Blob]"].indexOf(Object.prototype.toString.call(n)))&&"undefined"!=typeof FileReader?new u.Promise(function(t,r){var e=new FileReader;e.onload=function(e){t(e.target.result);},e.onerror=function(e){r(e.target.error);},e.readAsArrayBuffer(n);}):n}).then(function(e){var t=a.getTypeOf(e);return t?("arraybuffer"===t?e=a.transformTo("uint8array",e):"string"===t&&(s?e=h.decode(e):n&&!0!==i&&(e=function(e){return l(e,o.uint8array?new Uint8Array(e.length):new Array(e.length))}(e))),e):u.Promise.reject(new Error("Can't read the data of '"+r+"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?"))})};},{"./base64":1,"./external":6,"./nodejsUtils":14,"./support":30,setimmediate:54}],33:[function(e,t,r){var n=e("./reader/readerFor"),i=e("./utils"),s=e("./signature"),a=e("./zipEntry"),o=e("./support");function h(e){this.files=[],this.loadOptions=e;}h.prototype={checkSignature:function(e){if(!this.reader.readAndCheckSignature(e)){this.reader.index-=4;var t=this.reader.readString(4);throw new Error("Corrupted zip or bug: unexpected signature ("+i.pretty(t)+", expected "+i.pretty(e)+")")}},isSignature:function(e,t){var r=this.reader.index;this.reader.setIndex(e);var n=this.reader.readString(4)===t;return this.reader.setIndex(r),n},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2);var e=this.reader.readData(this.zipCommentLength),t=o.uint8array?"uint8array":"array",r=i.transformTo(t,e);this.zipComment=this.loadOptions.decodeFileName(r);},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.reader.skip(4),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var e,t,r,n=this.zip64EndOfCentralSize-44;0<n;)e=this.reader.readInt(2),t=this.reader.readInt(4),r=this.reader.readData(t),this.zip64ExtensibleData[e]={id:e,length:t,value:r};},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),1<this.disksCount)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var e,t;for(e=0;e<this.files.length;e++)t=this.files[e],this.reader.setIndex(t.localHeaderOffset),this.checkSignature(s.LOCAL_FILE_HEADER),t.readLocalPart(this.reader),t.handleUTF8(),t.processAttributes();},readCentralDir:function(){var e;for(this.reader.setIndex(this.centralDirOffset);this.reader.readAndCheckSignature(s.CENTRAL_FILE_HEADER);)(e=new a({zip64:this.zip64},this.loadOptions)).readCentralPart(this.reader),this.files.push(e);if(this.centralDirRecords!==this.files.length&&0!==this.centralDirRecords&&0===this.files.length)throw new Error("Corrupted zip or bug: expected "+this.centralDirRecords+" records in central dir, got "+this.files.length)},readEndOfCentral:function(){var e=this.reader.lastIndexOfSignature(s.CENTRAL_DIRECTORY_END);if(e<0)throw !this.isSignature(0,s.LOCAL_FILE_HEADER)?new Error("Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html"):new Error("Corrupted zip: can't find end of central directory");this.reader.setIndex(e);var t=e;if(this.checkSignature(s.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===i.MAX_VALUE_16BITS||this.diskWithCentralDirStart===i.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===i.MAX_VALUE_16BITS||this.centralDirRecords===i.MAX_VALUE_16BITS||this.centralDirSize===i.MAX_VALUE_32BITS||this.centralDirOffset===i.MAX_VALUE_32BITS){if(this.zip64=!0,(e=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR))<0)throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator");if(this.reader.setIndex(e),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,s.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error("Corrupted zip: can't find the ZIP64 end of central directory");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral();}var r=this.centralDirOffset+this.centralDirSize;this.zip64&&(r+=20,r+=12+this.zip64EndOfCentralSize);var n=t-r;if(0<n)this.isSignature(t,s.CENTRAL_FILE_HEADER)||(this.reader.zero=n);else if(n<0)throw new Error("Corrupted zip: missing "+Math.abs(n)+" bytes.")},prepareReader:function(e){this.reader=n(e);},load:function(e){this.prepareReader(e),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles();}},t.exports=h;},{"./reader/readerFor":22,"./signature":23,"./support":30,"./utils":32,"./zipEntry":34}],34:[function(e,t,r){var n=e("./reader/readerFor"),s=e("./utils"),i=e("./compressedObject"),a=e("./crc32"),o=e("./utf8"),h=e("./compressions"),u=e("./support");function l(e,t){this.options=e,this.loadOptions=t;}l.prototype={isEncrypted:function(){return 1==(1&this.bitFlag)},useUTF8:function(){return 2048==(2048&this.bitFlag)},readLocalPart:function(e){var t,r;if(e.skip(22),this.fileNameLength=e.readInt(2),r=e.readInt(2),this.fileName=e.readData(this.fileNameLength),e.skip(r),-1===this.compressedSize||-1===this.uncompressedSize)throw new Error("Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)");if(null===(t=function(e){for(var t in h)if(Object.prototype.hasOwnProperty.call(h,t)&&h[t].magic===e)return h[t];return null}(this.compressionMethod)))throw new Error("Corrupted zip : compression "+s.pretty(this.compressionMethod)+" unknown (inner file : "+s.transformTo("string",this.fileName)+")");this.decompressed=new i(this.compressedSize,this.uncompressedSize,this.crc32,t,e.readData(this.compressedSize));},readCentralPart:function(e){this.versionMadeBy=e.readInt(2),e.skip(2),this.bitFlag=e.readInt(2),this.compressionMethod=e.readString(2),this.date=e.readDate(),this.crc32=e.readInt(4),this.compressedSize=e.readInt(4),this.uncompressedSize=e.readInt(4);var t=e.readInt(2);if(this.extraFieldsLength=e.readInt(2),this.fileCommentLength=e.readInt(2),this.diskNumberStart=e.readInt(2),this.internalFileAttributes=e.readInt(2),this.externalFileAttributes=e.readInt(4),this.localHeaderOffset=e.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");e.skip(t),this.readExtraFields(e),this.parseZIP64ExtraField(e),this.fileComment=e.readData(this.fileCommentLength);},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var e=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),0==e&&(this.dosPermissions=63&this.externalFileAttributes),3==e&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0);},parseZIP64ExtraField:function(){if(this.extraFields[1]){var e=n(this.extraFields[1].value);this.uncompressedSize===s.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===s.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===s.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===s.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4));}},readExtraFields:function(e){var t,r,n,i=e.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});e.index+4<i;)t=e.readInt(2),r=e.readInt(2),n=e.readData(r),this.extraFields[t]={id:t,length:r,value:n};e.setIndex(i);},handleUTF8:function(){var e=u.uint8array?"uint8array":"array";if(this.useUTF8())this.fileNameStr=o.utf8decode(this.fileName),this.fileCommentStr=o.utf8decode(this.fileComment);else {var t=this.findExtraFieldUnicodePath();if(null!==t)this.fileNameStr=t;else {var r=s.transformTo(e,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(r);}var n=this.findExtraFieldUnicodeComment();if(null!==n)this.fileCommentStr=n;else {var i=s.transformTo(e,this.fileComment);this.fileCommentStr=this.loadOptions.decodeFileName(i);}}},findExtraFieldUnicodePath:function(){var e=this.extraFields[28789];if(e){var t=n(e.value);return 1!==t.readInt(1)?null:a(this.fileName)!==t.readInt(4)?null:o.utf8decode(t.readData(e.length-5))}return null},findExtraFieldUnicodeComment:function(){var e=this.extraFields[25461];if(e){var t=n(e.value);return 1!==t.readInt(1)?null:a(this.fileComment)!==t.readInt(4)?null:o.utf8decode(t.readData(e.length-5))}return null}},t.exports=l;},{"./compressedObject":2,"./compressions":3,"./crc32":4,"./reader/readerFor":22,"./support":30,"./utf8":31,"./utils":32}],35:[function(e,t,r){function n(e,t,r){this.name=e,this.dir=r.dir,this.date=r.date,this.comment=r.comment,this.unixPermissions=r.unixPermissions,this.dosPermissions=r.dosPermissions,this._data=t,this._dataBinary=r.binary,this.options={compression:r.compression,compressionOptions:r.compressionOptions};}var s=e("./stream/StreamHelper"),i=e("./stream/DataWorker"),a=e("./utf8"),o=e("./compressedObject"),h=e("./stream/GenericWorker");n.prototype={internalStream:function(e){var t=null,r="string";try{if(!e)throw new Error("No output type specified.");var n="string"===(r=e.toLowerCase())||"text"===r;"binarystring"!==r&&"text"!==r||(r="string"),t=this._decompressWorker();var i=!this._dataBinary;i&&!n&&(t=t.pipe(new a.Utf8EncodeWorker)),!i&&n&&(t=t.pipe(new a.Utf8DecodeWorker));}catch(e){(t=new h("error")).error(e);}return new s(t,r,"")},async:function(e,t){return this.internalStream(e).accumulate(t)},nodeStream:function(e,t){return this.internalStream(e||"nodebuffer").toNodejsStream(t)},_compressWorker:function(e,t){if(this._data instanceof o&&this._data.compression.magic===e.magic)return this._data.getCompressedWorker();var r=this._decompressWorker();return this._dataBinary||(r=r.pipe(new a.Utf8EncodeWorker)),o.createWorkerFrom(r,e,t)},_decompressWorker:function(){return this._data instanceof o?this._data.getContentWorker():this._data instanceof h?this._data:new i(this._data)}};for(var u=["asText","asBinary","asNodeBuffer","asUint8Array","asArrayBuffer"],l=function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},f=0;f<u.length;f++)n.prototype[u[f]]=l;t.exports=n;},{"./compressedObject":2,"./stream/DataWorker":27,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31}],36:[function(e,l,t){(function(t){var r,n,e=t.MutationObserver||t.WebKitMutationObserver;if(e){var i=0,s=new e(u),a=t.document.createTextNode("");s.observe(a,{characterData:!0}),r=function(){a.data=i=++i%2;};}else if(t.setImmediate||void 0===t.MessageChannel)r="document"in t&&"onreadystatechange"in t.document.createElement("script")?function(){var e=t.document.createElement("script");e.onreadystatechange=function(){u(),e.onreadystatechange=null,e.parentNode.removeChild(e),e=null;},t.document.documentElement.appendChild(e);}:function(){setTimeout(u,0);};else {var o=new t.MessageChannel;o.port1.onmessage=u,r=function(){o.port2.postMessage(0);};}var h=[];function u(){var e,t;n=!0;for(var r=h.length;r;){for(t=h,h=[],e=-1;++e<r;)t[e]();r=h.length;}n=!1;}l.exports=function(e){1!==h.push(e)||n||r();};}).call(this,"undefined"!=typeof _commonjsHelpers.commonjsGlobal?_commonjsHelpers.commonjsGlobal:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{});},{}],37:[function(e,t,r){var i=e("immediate");function u(){}var l={},s=["REJECTED"],a=["FULFILLED"],n=["PENDING"];function o(e){if("function"!=typeof e)throw new TypeError("resolver must be a function");this.state=n,this.queue=[],this.outcome=void 0,e!==u&&d(this,e);}function h(e,t,r){this.promise=e,"function"==typeof t&&(this.onFulfilled=t,this.callFulfilled=this.otherCallFulfilled),"function"==typeof r&&(this.onRejected=r,this.callRejected=this.otherCallRejected);}function f(t,r,n){i(function(){var e;try{e=r(n);}catch(e){return l.reject(t,e)}e===t?l.reject(t,new TypeError("Cannot resolve promise with itself")):l.resolve(t,e);});}function c(e){var t=e&&e.then;if(e&&("object"==typeof e||"function"==typeof e)&&"function"==typeof t)return function(){t.apply(e,arguments);}}function d(t,e){var r=!1;function n(e){r||(r=!0,l.reject(t,e));}function i(e){r||(r=!0,l.resolve(t,e));}var s=p(function(){e(i,n);});"error"===s.status&&n(s.value);}function p(e,t){var r={};try{r.value=e(t),r.status="success";}catch(e){r.status="error",r.value=e;}return r}(t.exports=o).prototype.finally=function(t){if("function"!=typeof t)return this;var r=this.constructor;return this.then(function(e){return r.resolve(t()).then(function(){return e})},function(e){return r.resolve(t()).then(function(){throw e})})},o.prototype.catch=function(e){return this.then(null,e)},o.prototype.then=function(e,t){if("function"!=typeof e&&this.state===a||"function"!=typeof t&&this.state===s)return this;var r=new this.constructor(u);this.state!==n?f(r,this.state===a?e:t,this.outcome):this.queue.push(new h(r,e,t));return r},h.prototype.callFulfilled=function(e){l.resolve(this.promise,e);},h.prototype.otherCallFulfilled=function(e){f(this.promise,this.onFulfilled,e);},h.prototype.callRejected=function(e){l.reject(this.promise,e);},h.prototype.otherCallRejected=function(e){f(this.promise,this.onRejected,e);},l.resolve=function(e,t){var r=p(c,t);if("error"===r.status)return l.reject(e,r.value);var n=r.value;if(n)d(e,n);else {e.state=a,e.outcome=t;for(var i=-1,s=e.queue.length;++i<s;)e.queue[i].callFulfilled(t);}return e},l.reject=function(e,t){e.state=s,e.outcome=t;for(var r=-1,n=e.queue.length;++r<n;)e.queue[r].callRejected(t);return e},o.resolve=function(e){if(e instanceof this)return e;return l.resolve(new this(u),e)},o.reject=function(e){var t=new this(u);return l.reject(t,e)},o.all=function(e){var r=this;if("[object Array]"!==Object.prototype.toString.call(e))return this.reject(new TypeError("must be an array"));var n=e.length,i=!1;if(!n)return this.resolve([]);var s=new Array(n),a=0,t=-1,o=new this(u);for(;++t<n;)h(e[t],t);return o;function h(e,t){r.resolve(e).then(function(e){s[t]=e,++a!==n||i||(i=!0,l.resolve(o,s));},function(e){i||(i=!0,l.reject(o,e));});}},o.race=function(e){var t=this;if("[object Array]"!==Object.prototype.toString.call(e))return this.reject(new TypeError("must be an array"));var r=e.length,n=!1;if(!r)return this.resolve([]);var i=-1,s=new this(u);for(;++i<r;)a=e[i],t.resolve(a).then(function(e){n||(n=!0,l.resolve(s,e));},function(e){n||(n=!0,l.reject(s,e));});var a;return s};},{immediate:36}],38:[function(e,t,r){var n={};(0, e("./lib/utils/common").assign)(n,e("./lib/deflate"),e("./lib/inflate"),e("./lib/zlib/constants")),t.exports=n;},{"./lib/deflate":39,"./lib/inflate":40,"./lib/utils/common":41,"./lib/zlib/constants":44}],39:[function(e,t,r){var a=e("./zlib/deflate"),o=e("./utils/common"),h=e("./utils/strings"),i=e("./zlib/messages"),s=e("./zlib/zstream"),u=Object.prototype.toString,l=0,f=-1,c=0,d=8;function p(e){if(!(this instanceof p))return new p(e);this.options=o.assign({level:f,method:d,chunkSize:16384,windowBits:15,memLevel:8,strategy:c,to:""},e||{});var t=this.options;t.raw&&0<t.windowBits?t.windowBits=-t.windowBits:t.gzip&&0<t.windowBits&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new s,this.strm.avail_out=0;var r=a.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(r!==l)throw new Error(i[r]);if(t.header&&a.deflateSetHeader(this.strm,t.header),t.dictionary){var n;if(n="string"==typeof t.dictionary?h.string2buf(t.dictionary):"[object ArrayBuffer]"===u.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,(r=a.deflateSetDictionary(this.strm,n))!==l)throw new Error(i[r]);this._dict_set=!0;}}function n(e,t){var r=new p(t);if(r.push(e,!0),r.err)throw r.msg||i[r.err];return r.result}p.prototype.push=function(e,t){var r,n,i=this.strm,s=this.options.chunkSize;if(this.ended)return !1;n=t===~~t?t:!0===t?4:0,"string"==typeof e?i.input=h.string2buf(e):"[object ArrayBuffer]"===u.call(e)?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;do{if(0===i.avail_out&&(i.output=new o.Buf8(s),i.next_out=0,i.avail_out=s),1!==(r=a.deflate(i,n))&&r!==l)return this.onEnd(r),!(this.ended=!0);0!==i.avail_out&&(0!==i.avail_in||4!==n&&2!==n)||("string"===this.options.to?this.onData(h.buf2binstring(o.shrinkBuf(i.output,i.next_out))):this.onData(o.shrinkBuf(i.output,i.next_out)));}while((0<i.avail_in||0===i.avail_out)&&1!==r);return 4===n?(r=a.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===l):2!==n||(this.onEnd(l),!(i.avail_out=0))},p.prototype.onData=function(e){this.chunks.push(e);},p.prototype.onEnd=function(e){e===l&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=o.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg;},r.Deflate=p,r.deflate=n,r.deflateRaw=function(e,t){return (t=t||{}).raw=!0,n(e,t)},r.gzip=function(e,t){return (t=t||{}).gzip=!0,n(e,t)};},{"./utils/common":41,"./utils/strings":42,"./zlib/deflate":46,"./zlib/messages":51,"./zlib/zstream":53}],40:[function(e,t,r){var c=e("./zlib/inflate"),d=e("./utils/common"),p=e("./utils/strings"),m=e("./zlib/constants"),n=e("./zlib/messages"),i=e("./zlib/zstream"),s=e("./zlib/gzheader"),_=Object.prototype.toString;function a(e){if(!(this instanceof a))return new a(e);this.options=d.assign({chunkSize:16384,windowBits:0,to:""},e||{});var t=this.options;t.raw&&0<=t.windowBits&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(0<=t.windowBits&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),15<t.windowBits&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new i,this.strm.avail_out=0;var r=c.inflateInit2(this.strm,t.windowBits);if(r!==m.Z_OK)throw new Error(n[r]);this.header=new s,c.inflateGetHeader(this.strm,this.header);}function o(e,t){var r=new a(t);if(r.push(e,!0),r.err)throw r.msg||n[r.err];return r.result}a.prototype.push=function(e,t){var r,n,i,s,a,o,h=this.strm,u=this.options.chunkSize,l=this.options.dictionary,f=!1;if(this.ended)return !1;n=t===~~t?t:!0===t?m.Z_FINISH:m.Z_NO_FLUSH,"string"==typeof e?h.input=p.binstring2buf(e):"[object ArrayBuffer]"===_.call(e)?h.input=new Uint8Array(e):h.input=e,h.next_in=0,h.avail_in=h.input.length;do{if(0===h.avail_out&&(h.output=new d.Buf8(u),h.next_out=0,h.avail_out=u),(r=c.inflate(h,m.Z_NO_FLUSH))===m.Z_NEED_DICT&&l&&(o="string"==typeof l?p.string2buf(l):"[object ArrayBuffer]"===_.call(l)?new Uint8Array(l):l,r=c.inflateSetDictionary(this.strm,o)),r===m.Z_BUF_ERROR&&!0===f&&(r=m.Z_OK,f=!1),r!==m.Z_STREAM_END&&r!==m.Z_OK)return this.onEnd(r),!(this.ended=!0);h.next_out&&(0!==h.avail_out&&r!==m.Z_STREAM_END&&(0!==h.avail_in||n!==m.Z_FINISH&&n!==m.Z_SYNC_FLUSH)||("string"===this.options.to?(i=p.utf8border(h.output,h.next_out),s=h.next_out-i,a=p.buf2string(h.output,i),h.next_out=s,h.avail_out=u-s,s&&d.arraySet(h.output,h.output,i,s,0),this.onData(a)):this.onData(d.shrinkBuf(h.output,h.next_out)))),0===h.avail_in&&0===h.avail_out&&(f=!0);}while((0<h.avail_in||0===h.avail_out)&&r!==m.Z_STREAM_END);return r===m.Z_STREAM_END&&(n=m.Z_FINISH),n===m.Z_FINISH?(r=c.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===m.Z_OK):n!==m.Z_SYNC_FLUSH||(this.onEnd(m.Z_OK),!(h.avail_out=0))},a.prototype.onData=function(e){this.chunks.push(e);},a.prototype.onEnd=function(e){e===m.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=d.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg;},r.Inflate=a,r.inflate=o,r.inflateRaw=function(e,t){return (t=t||{}).raw=!0,o(e,t)},r.ungzip=o;},{"./utils/common":41,"./utils/strings":42,"./zlib/constants":44,"./zlib/gzheader":47,"./zlib/inflate":49,"./zlib/messages":51,"./zlib/zstream":53}],41:[function(e,t,r){var n="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;r.assign=function(e){for(var t=Array.prototype.slice.call(arguments,1);t.length;){var r=t.shift();if(r){if("object"!=typeof r)throw new TypeError(r+"must be non-object");for(var n in r)r.hasOwnProperty(n)&&(e[n]=r[n]);}}return e},r.shrinkBuf=function(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)};var i={arraySet:function(e,t,r,n,i){if(t.subarray&&e.subarray)e.set(t.subarray(r,r+n),i);else for(var s=0;s<n;s++)e[i+s]=t[r+s];},flattenChunks:function(e){var t,r,n,i,s,a;for(t=n=0,r=e.length;t<r;t++)n+=e[t].length;for(a=new Uint8Array(n),t=i=0,r=e.length;t<r;t++)s=e[t],a.set(s,i),i+=s.length;return a}},s={arraySet:function(e,t,r,n,i){for(var s=0;s<n;s++)e[i+s]=t[r+s];},flattenChunks:function(e){return [].concat.apply([],e)}};r.setTyped=function(e){e?(r.Buf8=Uint8Array,r.Buf16=Uint16Array,r.Buf32=Int32Array,r.assign(r,i)):(r.Buf8=Array,r.Buf16=Array,r.Buf32=Array,r.assign(r,s));},r.setTyped(n);},{}],42:[function(e,t,r){var h=e("./common"),i=!0,s=!0;try{String.fromCharCode.apply(null,[0]);}catch(e){i=!1;}try{String.fromCharCode.apply(null,new Uint8Array(1));}catch(e){s=!1;}for(var u=new h.Buf8(256),n=0;n<256;n++)u[n]=252<=n?6:248<=n?5:240<=n?4:224<=n?3:192<=n?2:1;function l(e,t){if(t<65537&&(e.subarray&&s||!e.subarray&&i))return String.fromCharCode.apply(null,h.shrinkBuf(e,t));for(var r="",n=0;n<t;n++)r+=String.fromCharCode(e[n]);return r}u[254]=u[254]=1,r.string2buf=function(e){var t,r,n,i,s,a=e.length,o=0;for(i=0;i<a;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),o+=r<128?1:r<2048?2:r<65536?3:4;for(t=new h.Buf8(o),i=s=0;s<o;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),r<128?t[s++]=r:(r<2048?t[s++]=192|r>>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t},r.buf2binstring=function(e){return l(e,e.length)},r.binstring2buf=function(e){for(var t=new h.Buf8(e.length),r=0,n=t.length;r<n;r++)t[r]=e.charCodeAt(r);return t},r.buf2string=function(e,t){var r,n,i,s,a=t||e.length,o=new Array(2*a);for(r=n=0;r<a;)if((i=e[r++])<128)o[n++]=i;else if(4<(s=u[i]))o[n++]=65533,r+=s-1;else {for(i&=2===s?31:3===s?15:7;1<s&&r<a;)i=i<<6|63&e[r++],s--;1<s?o[n++]=65533:i<65536?o[n++]=i:(i-=65536,o[n++]=55296|i>>10&1023,o[n++]=56320|1023&i);}return l(o,n)},r.utf8border=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t};},{"./common":41}],43:[function(e,t,r){t.exports=function(e,t,r,n){for(var i=65535&e|0,s=e>>>16&65535|0,a=0;0!==r;){for(r-=a=2e3<r?2e3:r;s=s+(i=i+t[n++]|0)|0,--a;);i%=65521,s%=65521;}return i|s<<16|0};},{}],44:[function(e,t,r){t.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};},{}],45:[function(e,t,r){var o=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e;}return t}();t.exports=function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a<s;a++)e=e>>>8^i[255&(e^t[a])];return -1^e};},{}],46:[function(e,t,r){var h,c=e("../utils/common"),u=e("./trees"),d=e("./adler32"),p=e("./crc32"),n=e("./messages"),l=0,f=4,m=0,_=-2,g=-1,b=4,i=2,v=8,y=9,s=286,a=30,o=19,w=2*s+1,k=15,x=3,S=258,z=S+x+1,C=42,E=113,A=1,I=2,O=3,B=4;function R(e,t){return e.msg=n[t],t}function T(e){return (e<<1)-(4<e?9:0)}function D(e){for(var t=e.length;0<=--t;)e[t]=0;}function F(e){var t=e.state,r=t.pending;r>e.avail_out&&(r=e.avail_out),0!==r&&(c.arraySet(e.output,t.pending_buf,t.pending_out,r,e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,0===t.pending&&(t.pending_out=0));}function N(e,t){u._tr_flush_block(e,0<=e.block_start?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,F(e.strm);}function U(e,t){e.pending_buf[e.pending++]=t;}function P(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t;}function L(e,t){var r,n,i=e.max_chain_length,s=e.strstart,a=e.prev_length,o=e.nice_match,h=e.strstart>e.w_size-z?e.strstart-(e.w_size-z):0,u=e.window,l=e.w_mask,f=e.prev,c=e.strstart+S,d=u[s+a-1],p=u[s+a];e.prev_length>=e.good_match&&(i>>=2),o>e.lookahead&&(o=e.lookahead);do{if(u[(r=t)+a]===p&&u[r+a-1]===d&&u[r]===u[s]&&u[++r]===u[s+1]){s+=2,r++;do{}while(u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&s<c);if(n=S-(c-s),s=c-S,a<n){if(e.match_start=t,o<=(a=n))break;d=u[s+a-1],p=u[s+a];}}}while((t=f[t&l])>h&&0!=--i);return a<=e.lookahead?a:e.lookahead}function j(e){var t,r,n,i,s,a,o,h,u,l,f=e.w_size;do{if(i=e.window_size-e.lookahead-e.strstart,e.strstart>=f+(f-z)){for(c.arraySet(e.window,e.window,f,f,0),e.match_start-=f,e.strstart-=f,e.block_start-=f,t=r=e.hash_size;n=e.head[--t],e.head[t]=f<=n?n-f:0,--r;);for(t=r=f;n=e.prev[--t],e.prev[t]=f<=n?n-f:0,--r;);i+=f;}if(0===e.strm.avail_in)break;if(a=e.strm,o=e.window,h=e.strstart+e.lookahead,u=i,l=void 0,l=a.avail_in,u<l&&(l=u),r=0===l?0:(a.avail_in-=l,c.arraySet(o,a.input,a.next_in,l,h),1===a.state.wrap?a.adler=d(a.adler,o,l,h):2===a.state.wrap&&(a.adler=p(a.adler,o,l,h)),a.next_in+=l,a.total_in+=l,l),e.lookahead+=r,e.lookahead+e.insert>=x)for(s=e.strstart-e.insert,e.ins_h=e.window[s],e.ins_h=(e.ins_h<<e.hash_shift^e.window[s+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[s+x-1])&e.hash_mask,e.prev[s&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=s,s++,e.insert--,!(e.lookahead+e.insert<x)););}while(e.lookahead<z&&0!==e.strm.avail_in)}function Z(e,t){for(var r,n;;){if(e.lookahead<z){if(j(e),e.lookahead<z&&t===l)return A;if(0===e.lookahead)break}if(r=0,e.lookahead>=x&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+x-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==r&&e.strstart-r<=e.w_size-z&&(e.match_length=L(e,r)),e.match_length>=x)if(n=u._tr_tally(e,e.strstart-e.match_start,e.match_length-x),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=x){for(e.match_length--;e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+x-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart,0!=--e.match_length;);e.strstart++;}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else n=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=e.strstart<x-1?e.strstart:x-1,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}function W(e,t){for(var r,n,i;;){if(e.lookahead<z){if(j(e),e.lookahead<z&&t===l)return A;if(0===e.lookahead)break}if(r=0,e.lookahead>=x&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+x-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=x-1,0!==r&&e.prev_length<e.max_lazy_match&&e.strstart-r<=e.w_size-z&&(e.match_length=L(e,r),e.match_length<=5&&(1===e.strategy||e.match_length===x&&4096<e.strstart-e.match_start)&&(e.match_length=x-1)),e.prev_length>=x&&e.match_length<=e.prev_length){for(i=e.strstart+e.lookahead-x,n=u._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-x),e.lookahead-=e.prev_length-1,e.prev_length-=2;++e.strstart<=i&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+x-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!=--e.prev_length;);if(e.match_available=0,e.match_length=x-1,e.strstart++,n&&(N(e,!1),0===e.strm.avail_out))return A}else if(e.match_available){if((n=u._tr_tally(e,0,e.window[e.strstart-1]))&&N(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return A}else e.match_available=1,e.strstart++,e.lookahead--;}return e.match_available&&(n=u._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<x-1?e.strstart:x-1,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}function M(e,t,r,n,i){this.good_length=e,this.max_lazy=t,this.nice_length=r,this.max_chain=n,this.func=i;}function H(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=v,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new c.Buf16(2*w),this.dyn_dtree=new c.Buf16(2*(2*a+1)),this.bl_tree=new c.Buf16(2*(2*o+1)),D(this.dyn_ltree),D(this.dyn_dtree),D(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new c.Buf16(k+1),this.heap=new c.Buf16(2*s+1),D(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new c.Buf16(2*s+1),D(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0;}function G(e){var t;return e&&e.state?(e.total_in=e.total_out=0,e.data_type=i,(t=e.state).pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?C:E,e.adler=2===t.wrap?0:1,t.last_flush=l,u._tr_init(t),m):R(e,_)}function K(e){var t=G(e);return t===m&&function(e){e.window_size=2*e.w_size,D(e.head),e.max_lazy_match=h[e.level].max_lazy,e.good_match=h[e.level].good_length,e.nice_match=h[e.level].nice_length,e.max_chain_length=h[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=x-1,e.match_available=0,e.ins_h=0;}(e.state),t}function Y(e,t,r,n,i,s){if(!e)return _;var a=1;if(t===g&&(t=6),n<0?(a=0,n=-n):15<n&&(a=2,n-=16),i<1||y<i||r!==v||n<8||15<n||t<0||9<t||s<0||b<s)return R(e,_);8===n&&(n=9);var o=new H;return (e.state=o).strm=e,o.wrap=a,o.gzhead=null,o.w_bits=n,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=i+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+x-1)/x),o.window=new c.Buf8(2*o.w_size),o.head=new c.Buf16(o.hash_size),o.prev=new c.Buf16(o.w_size),o.lit_bufsize=1<<i+6,o.pending_buf_size=4*o.lit_bufsize,o.pending_buf=new c.Buf8(o.pending_buf_size),o.d_buf=1*o.lit_bufsize,o.l_buf=3*o.lit_bufsize,o.level=t,o.strategy=s,o.method=r,K(e)}h=[new M(0,0,0,0,function(e,t){var r=65535;for(r>e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(j(e),0===e.lookahead&&t===l)return A;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+r;if((0===e.strstart||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,N(e,!1),0===e.strm.avail_out))return A;if(e.strstart-e.block_start>=e.w_size-z&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):(e.strstart>e.block_start&&(N(e,!1),e.strm.avail_out),A)}),new M(4,4,8,4,Z),new M(4,5,16,8,Z),new M(4,6,32,32,Z),new M(4,4,16,16,W),new M(8,16,32,32,W),new M(8,16,128,128,W),new M(8,32,128,256,W),new M(32,128,258,1024,W),new M(32,258,258,4096,W)],r.deflateInit=function(e,t){return Y(e,t,v,15,8,0)},r.deflateInit2=Y,r.deflateReset=K,r.deflateResetKeep=G,r.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?_:(e.state.gzhead=t,m):_},r.deflate=function(e,t){var r,n,i,s;if(!e||!e.state||5<t||t<0)return e?R(e,_):_;if(n=e.state,!e.output||!e.input&&0!==e.avail_in||666===n.status&&t!==f)return R(e,0===e.avail_out?-5:_);if(n.strm=e,r=n.last_flush,n.last_flush=t,n.status===C)if(2===n.wrap)e.adler=0,U(n,31),U(n,139),U(n,8),n.gzhead?(U(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),U(n,255&n.gzhead.time),U(n,n.gzhead.time>>8&255),U(n,n.gzhead.time>>16&255),U(n,n.gzhead.time>>24&255),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(U(n,255&n.gzhead.extra.length),U(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=p(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69):(U(n,0),U(n,0),U(n,0),U(n,0),U(n,0),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,3),n.status=E);else {var a=v+(n.w_bits-8<<4)<<8;a|=(2<=n.strategy||n.level<2?0:n.level<6?1:6===n.level?2:3)<<6,0!==n.strstart&&(a|=32),a+=31-a%31,n.status=E,P(n,a),0!==n.strstart&&(P(n,e.adler>>>16),P(n,65535&e.adler)),e.adler=1;}if(69===n.status)if(n.gzhead.extra){for(i=n.pending;n.gzindex<(65535&n.gzhead.extra.length)&&(n.pending!==n.pending_buf_size||(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending!==n.pending_buf_size));)U(n,255&n.gzhead.extra[n.gzindex]),n.gzindex++;n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=73);}else n.status=73;if(73===n.status)if(n.gzhead.name){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindex<n.gzhead.name.length?255&n.gzhead.name.charCodeAt(n.gzindex++):0,U(n,s);}while(0!==s);n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.gzindex=0,n.status=91);}else n.status=91;if(91===n.status)if(n.gzhead.comment){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindex<n.gzhead.comment.length?255&n.gzhead.comment.charCodeAt(n.gzindex++):0,U(n,s);}while(0!==s);n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.status=103);}else n.status=103;if(103===n.status&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&F(e),n.pending+2<=n.pending_buf_size&&(U(n,255&e.adler),U(n,e.adler>>8&255),e.adler=0,n.status=E)):n.status=E),0!==n.pending){if(F(e),0===e.avail_out)return n.last_flush=-1,m}else if(0===e.avail_in&&T(t)<=T(r)&&t!==f)return R(e,-5);if(666===n.status&&0!==e.avail_in)return R(e,-5);if(0!==e.avail_in||0!==n.lookahead||t!==l&&666!==n.status){var o=2===n.strategy?function(e,t){for(var r;;){if(0===e.lookahead&&(j(e),0===e.lookahead)){if(t===l)return A;break}if(e.match_length=0,r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):3===n.strategy?function(e,t){for(var r,n,i,s,a=e.window;;){if(e.lookahead<=S){if(j(e),e.lookahead<=S&&t===l)return A;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=x&&0<e.strstart&&(n=a[i=e.strstart-1])===a[++i]&&n===a[++i]&&n===a[++i]){s=e.strstart+S;do{}while(n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&i<s);e.match_length=S-(s-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead);}if(e.match_length>=x?(r=u._tr_tally(e,1,e.match_length-x),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):h[n.level].func(n,t);if(o!==O&&o!==B||(n.status=666),o===A||o===O)return 0===e.avail_out&&(n.last_flush=-1),m;if(o===I&&(1===t?u._tr_align(n):5!==t&&(u._tr_stored_block(n,0,0,!1),3===t&&(D(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),F(e),0===e.avail_out))return n.last_flush=-1,m}return t!==f?m:n.wrap<=0?1:(2===n.wrap?(U(n,255&e.adler),U(n,e.adler>>8&255),U(n,e.adler>>16&255),U(n,e.adler>>24&255),U(n,255&e.total_in),U(n,e.total_in>>8&255),U(n,e.total_in>>16&255),U(n,e.total_in>>24&255)):(P(n,e.adler>>>16),P(n,65535&e.adler)),F(e),0<n.wrap&&(n.wrap=-n.wrap),0!==n.pending?m:1)},r.deflateEnd=function(e){var t;return e&&e.state?(t=e.state.status)!==C&&69!==t&&73!==t&&91!==t&&103!==t&&t!==E&&666!==t?R(e,_):(e.state=null,t===E?R(e,-3):m):_},r.deflateSetDictionary=function(e,t){var r,n,i,s,a,o,h,u,l=t.length;if(!e||!e.state)return _;if(2===(s=(r=e.state).wrap)||1===s&&r.status!==C||r.lookahead)return _;for(1===s&&(e.adler=d(e.adler,t,l,0)),r.wrap=0,l>=r.w_size&&(0===s&&(D(r.head),r.strstart=0,r.block_start=0,r.insert=0),u=new c.Buf8(r.w_size),c.arraySet(u,t,l-r.w_size,r.w_size,0),t=u,l=r.w_size),a=e.avail_in,o=e.next_in,h=e.input,e.avail_in=l,e.next_in=0,e.input=t,j(r);r.lookahead>=x;){for(n=r.strstart,i=r.lookahead-(x-1);r.ins_h=(r.ins_h<<r.hash_shift^r.window[n+x-1])&r.hash_mask,r.prev[n&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=n,n++,--i;);r.strstart=n,r.lookahead=x-1,j(r);}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=x-1,r.match_available=0,e.next_in=o,e.input=h,e.avail_in=a,r.wrap=s,m},r.deflateInfo="pako deflate (from Nodeca project)";},{"../utils/common":41,"./adler32":43,"./crc32":45,"./messages":51,"./trees":52}],47:[function(e,t,r){t.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1;};},{}],48:[function(e,t,r){t.exports=function(e,t){var r,n,i,s,a,o,h,u,l,f,c,d,p,m,_,g,b,v,y,w,k,x,S,z,C;r=e.state,n=e.next_in,z=e.input,i=n+(e.avail_in-5),s=e.next_out,C=e.output,a=s-(t-e.avail_out),o=s+(e.avail_out-257),h=r.dmax,u=r.wsize,l=r.whave,f=r.wnext,c=r.window,d=r.hold,p=r.bits,m=r.lencode,_=r.distcode,g=(1<<r.lenbits)-1,b=(1<<r.distbits)-1;e:do{p<15&&(d+=z[n++]<<p,p+=8,d+=z[n++]<<p,p+=8),v=m[d&g];t:for(;;){if(d>>>=y=v>>>24,p-=y,0===(y=v>>>16&255))C[s++]=65535&v;else {if(!(16&y)){if(0==(64&y)){v=m[(65535&v)+(d&(1<<y)-1)];continue t}if(32&y){r.mode=12;break e}e.msg="invalid literal/length code",r.mode=30;break e}w=65535&v,(y&=15)&&(p<y&&(d+=z[n++]<<p,p+=8),w+=d&(1<<y)-1,d>>>=y,p-=y),p<15&&(d+=z[n++]<<p,p+=8,d+=z[n++]<<p,p+=8),v=_[d&b];r:for(;;){if(d>>>=y=v>>>24,p-=y,!(16&(y=v>>>16&255))){if(0==(64&y)){v=_[(65535&v)+(d&(1<<y)-1)];continue r}e.msg="invalid distance code",r.mode=30;break e}if(k=65535&v,p<(y&=15)&&(d+=z[n++]<<p,(p+=8)<y&&(d+=z[n++]<<p,p+=8)),h<(k+=d&(1<<y)-1)){e.msg="invalid distance too far back",r.mode=30;break e}if(d>>>=y,p-=y,(y=s-a)<k){if(l<(y=k-y)&&r.sane){e.msg="invalid distance too far back",r.mode=30;break e}if(S=c,(x=0)===f){if(x+=u-y,y<w){for(w-=y;C[s++]=c[x++],--y;);x=s-k,S=C;}}else if(f<y){if(x+=u+f-y,(y-=f)<w){for(w-=y;C[s++]=c[x++],--y;);if(x=0,f<w){for(w-=y=f;C[s++]=c[x++],--y;);x=s-k,S=C;}}}else if(x+=f-y,y<w){for(w-=y;C[s++]=c[x++],--y;);x=s-k,S=C;}for(;2<w;)C[s++]=S[x++],C[s++]=S[x++],C[s++]=S[x++],w-=3;w&&(C[s++]=S[x++],1<w&&(C[s++]=S[x++]));}else {for(x=s-k;C[s++]=C[x++],C[s++]=C[x++],C[s++]=C[x++],2<(w-=3););w&&(C[s++]=C[x++],1<w&&(C[s++]=C[x++]));}break}}break}}while(n<i&&s<o);n-=w=p>>3,d&=(1<<(p-=w<<3))-1,e.next_in=n,e.next_out=s,e.avail_in=n<i?i-n+5:5-(n-i),e.avail_out=s<o?o-s+257:257-(s-o),r.hold=d,r.bits=p;};},{}],49:[function(e,t,r){var I=e("../utils/common"),O=e("./adler32"),B=e("./crc32"),R=e("./inffast"),T=e("./inftrees"),D=1,F=2,N=0,U=-2,P=1,n=852,i=592;function L(e){return (e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function s(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new I.Buf16(320),this.work=new I.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0;}function a(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=P,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new I.Buf32(n),t.distcode=t.distdyn=new I.Buf32(i),t.sane=1,t.back=-1,N):U}function o(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,a(e)):U}function h(e,t){var r,n;return e&&e.state?(n=e.state,t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||15<t)?U:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=r,n.wbits=t,o(e))):U}function u(e,t){var r,n;return e?(n=new s,(e.state=n).window=null,(r=h(e,t))!==N&&(e.state=null),r):U}var l,f,c=!0;function j(e){if(c){var t;for(l=new I.Buf32(512),f=new I.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(T(D,e.lens,0,288,l,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;T(F,e.lens,0,32,f,0,e.work,{bits:5}),c=!1;}e.lencode=l,e.lenbits=9,e.distcode=f,e.distbits=5;}function Z(e,t,r,n){var i,s=e.state;return null===s.window&&(s.wsize=1<<s.wbits,s.wnext=0,s.whave=0,s.window=new I.Buf8(s.wsize)),n>=s.wsize?(I.arraySet(s.window,t,r-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(n<(i=s.wsize-s.wnext)&&(i=n),I.arraySet(s.window,t,r-n,i,s.wnext),(n-=i)?(I.arraySet(s.window,t,r-n,n,0),s.wnext=n,s.whave=s.wsize):(s.wnext+=i,s.wnext===s.wsize&&(s.wnext=0),s.whave<s.wsize&&(s.whave+=i))),0}r.inflateReset=o,r.inflateReset2=h,r.inflateResetKeep=a,r.inflateInit=function(e){return u(e,15)},r.inflateInit2=u,r.inflate=function(e,t){var r,n,i,s,a,o,h,u,l,f,c,d,p,m,_,g,b,v,y,w,k,x,S,z,C=0,E=new I.Buf8(4),A=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return U;12===(r=e.state).mode&&(r.mode=13),a=e.next_out,i=e.output,h=e.avail_out,s=e.next_in,n=e.input,o=e.avail_in,u=r.hold,l=r.bits,f=o,c=h,x=N;e:for(;;)switch(r.mode){case P:if(0===r.wrap){r.mode=13;break}for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8;}if(2&r.wrap&&35615===u){E[r.check=0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0),l=u=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&u)<<8)+(u>>8))%31){e.msg="incorrect header check",r.mode=30;break}if(8!=(15&u)){e.msg="unknown compression method",r.mode=30;break}if(l-=4,k=8+(15&(u>>>=4)),0===r.wbits)r.wbits=k;else if(k>r.wbits){e.msg="invalid window size",r.mode=30;break}r.dmax=1<<k,e.adler=r.check=1,r.mode=512&u?10:12,l=u=0;break;case 2:for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8;}if(r.flags=u,8!=(255&r.flags)){e.msg="unknown compression method",r.mode=30;break}if(57344&r.flags){e.msg="unknown header flags set",r.mode=30;break}r.head&&(r.head.text=u>>8&1),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=3;case 3:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8;}r.head&&(r.head.time=u),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,E[2]=u>>>16&255,E[3]=u>>>24&255,r.check=B(r.check,E,4,0)),l=u=0,r.mode=4;case 4:for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8;}r.head&&(r.head.xflags=255&u,r.head.os=u>>8),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=5;case 5:if(1024&r.flags){for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8;}r.length=u,r.head&&(r.head.extra_len=u),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0;}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(o<(d=r.length)&&(d=o),d&&(r.head&&(k=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),I.arraySet(r.head.extra,n,s,d,k)),512&r.flags&&(r.check=B(r.check,n,d,s)),o-=d,s+=d,r.length-=d),r.length))break e;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===o)break e;for(d=0;k=n[s+d++],r.head&&k&&r.length<65536&&(r.head.name+=String.fromCharCode(k)),k&&d<o;);if(512&r.flags&&(r.check=B(r.check,n,d,s)),o-=d,s+=d,k)break e}else r.head&&(r.head.name=null);r.length=0,r.mode=8;case 8:if(4096&r.flags){if(0===o)break e;for(d=0;k=n[s+d++],r.head&&k&&r.length<65536&&(r.head.comment+=String.fromCharCode(k)),k&&d<o;);if(512&r.flags&&(r.check=B(r.check,n,d,s)),o-=d,s+=d,k)break e}else r.head&&(r.head.comment=null);r.mode=9;case 9:if(512&r.flags){for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8;}if(u!==(65535&r.check)){e.msg="header crc mismatch",r.mode=30;break}l=u=0;}r.head&&(r.head.hcrc=r.flags>>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=12;break;case 10:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8;}e.adler=r.check=L(u),l=u=0,r.mode=11;case 11:if(0===r.havedict)return e.next_out=a,e.avail_out=h,e.next_in=s,e.avail_in=o,r.hold=u,r.bits=l,2;e.adler=r.check=1,r.mode=12;case 12:if(5===t||6===t)break e;case 13:if(r.last){u>>>=7&l,l-=7&l,r.mode=27;break}for(;l<3;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8;}switch(r.last=1&u,l-=1,3&(u>>>=1)){case 0:r.mode=14;break;case 1:if(j(r),r.mode=20,6!==t)break;u>>>=2,l-=2;break e;case 2:r.mode=17;break;case 3:e.msg="invalid block type",r.mode=30;}u>>>=2,l-=2;break;case 14:for(u>>>=7&l,l-=7&l;l<32;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8;}if((65535&u)!=(u>>>16^65535)){e.msg="invalid stored block lengths",r.mode=30;break}if(r.length=65535&u,l=u=0,r.mode=15,6===t)break e;case 15:r.mode=16;case 16:if(d=r.length){if(o<d&&(d=o),h<d&&(d=h),0===d)break e;I.arraySet(i,n,s,d,a),o-=d,s+=d,h-=d,a+=d,r.length-=d;break}r.mode=12;break;case 17:for(;l<14;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8;}if(r.nlen=257+(31&u),u>>>=5,l-=5,r.ndist=1+(31&u),u>>>=5,l-=5,r.ncode=4+(15&u),u>>>=4,l-=4,286<r.nlen||30<r.ndist){e.msg="too many length or distance symbols",r.mode=30;break}r.have=0,r.mode=18;case 18:for(;r.have<r.ncode;){for(;l<3;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8;}r.lens[A[r.have++]]=7&u,u>>>=3,l-=3;}for(;r.have<19;)r.lens[A[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,S={bits:r.lenbits},x=T(0,r.lens,0,19,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg="invalid code lengths set",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have<r.nlen+r.ndist;){for(;g=(C=r.lencode[u&(1<<r.lenbits)-1])>>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8;}if(b<16)u>>>=_,l-=_,r.lens[r.have++]=b;else {if(16===b){for(z=_+2;l<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8;}if(u>>>=_,l-=_,0===r.have){e.msg="invalid bit length repeat",r.mode=30;break}k=r.lens[r.have-1],d=3+(3&u),u>>>=2,l-=2;}else if(17===b){for(z=_+3;l<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8;}l-=_,k=0,d=3+(7&(u>>>=_)),u>>>=3,l-=3;}else {for(z=_+7;l<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8;}l-=_,k=0,d=11+(127&(u>>>=_)),u>>>=7,l-=7;}if(r.have+d>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=30;break}for(;d--;)r.lens[r.have++]=k;}}if(30===r.mode)break;if(0===r.lens[256]){e.msg="invalid code -- missing end-of-block",r.mode=30;break}if(r.lenbits=9,S={bits:r.lenbits},x=T(D,r.lens,0,r.nlen,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg="invalid literal/lengths set",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,S={bits:r.distbits},x=T(F,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,S),r.distbits=S.bits,x){e.msg="invalid distances set",r.mode=30;break}if(r.mode=20,6===t)break e;case 20:r.mode=21;case 21:if(6<=o&&258<=h){e.next_out=a,e.avail_out=h,e.next_in=s,e.avail_in=o,r.hold=u,r.bits=l,R(e,c),a=e.next_out,i=e.output,h=e.avail_out,s=e.next_in,n=e.input,o=e.avail_in,u=r.hold,l=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;g=(C=r.lencode[u&(1<<r.lenbits)-1])>>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8;}if(g&&0==(240&g)){for(v=_,y=g,w=b;g=(C=r.lencode[w+((u&(1<<v+y)-1)>>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8;}u>>>=v,l-=v,r.back+=v;}if(u>>>=_,l-=_,r.back+=_,r.length=b,0===g){r.mode=26;break}if(32&g){r.back=-1,r.mode=12;break}if(64&g){e.msg="invalid literal/length code",r.mode=30;break}r.extra=15&g,r.mode=22;case 22:if(r.extra){for(z=r.extra;l<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8;}r.length+=u&(1<<r.extra)-1,u>>>=r.extra,l-=r.extra,r.back+=r.extra;}r.was=r.length,r.mode=23;case 23:for(;g=(C=r.distcode[u&(1<<r.distbits)-1])>>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8;}if(0==(240&g)){for(v=_,y=g,w=b;g=(C=r.distcode[w+((u&(1<<v+y)-1)>>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8;}u>>>=v,l-=v,r.back+=v;}if(u>>>=_,l-=_,r.back+=_,64&g){e.msg="invalid distance code",r.mode=30;break}r.offset=b,r.extra=15&g,r.mode=24;case 24:if(r.extra){for(z=r.extra;l<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8;}r.offset+=u&(1<<r.extra)-1,u>>>=r.extra,l-=r.extra,r.back+=r.extra;}if(r.offset>r.dmax){e.msg="invalid distance too far back",r.mode=30;break}r.mode=25;case 25:if(0===h)break e;if(d=c-h,r.offset>d){if((d=r.offset-d)>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=30;break}p=d>r.wnext?(d-=r.wnext,r.wsize-d):r.wnext-d,d>r.length&&(d=r.length),m=r.window;}else m=i,p=a-r.offset,d=r.length;for(h<d&&(d=h),h-=d,r.length-=d;i[a++]=m[p++],--d;);0===r.length&&(r.mode=21);break;case 26:if(0===h)break e;i[a++]=r.length,h--,r.mode=21;break;case 27:if(r.wrap){for(;l<32;){if(0===o)break e;o--,u|=n[s++]<<l,l+=8;}if(c-=h,e.total_out+=c,r.total+=c,c&&(e.adler=r.check=r.flags?B(r.check,i,c,a-c):O(r.check,i,c,a-c)),c=h,(r.flags?u:L(u))!==r.check){e.msg="incorrect data check",r.mode=30;break}l=u=0;}r.mode=28;case 28:if(r.wrap&&r.flags){for(;l<32;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8;}if(u!==(4294967295&r.total)){e.msg="incorrect length check",r.mode=30;break}l=u=0;}r.mode=29;case 29:x=1;break e;case 30:x=-3;break e;case 31:return -4;case 32:default:return U}return e.next_out=a,e.avail_out=h,e.next_in=s,e.avail_in=o,r.hold=u,r.bits=l,(r.wsize||c!==e.avail_out&&r.mode<30&&(r.mode<27||4!==t))&&Z(e,e.output,e.next_out,c-e.avail_out)?(r.mode=31,-4):(f-=e.avail_in,c-=e.avail_out,e.total_in+=f,e.total_out+=c,r.total+=c,r.wrap&&c&&(e.adler=r.check=r.flags?B(r.check,i,c,e.next_out-c):O(r.check,i,c,e.next_out-c)),e.data_type=r.bits+(r.last?64:0)+(12===r.mode?128:0)+(20===r.mode||15===r.mode?256:0),(0==f&&0===c||4===t)&&x===N&&(x=-5),x)},r.inflateEnd=function(e){if(!e||!e.state)return U;var t=e.state;return t.window&&(t.window=null),e.state=null,N},r.inflateGetHeader=function(e,t){var r;return e&&e.state?0==(2&(r=e.state).wrap)?U:((r.head=t).done=!1,N):U},r.inflateSetDictionary=function(e,t){var r,n=t.length;return e&&e.state?0!==(r=e.state).wrap&&11!==r.mode?U:11===r.mode&&O(1,t,n,0)!==r.check?-3:Z(e,t,n,n)?(r.mode=31,-4):(r.havedict=1,N):U},r.inflateInfo="pako inflate (from Nodeca project)";},{"../utils/common":41,"./adler32":43,"./crc32":45,"./inffast":48,"./inftrees":50}],50:[function(e,t,r){var D=e("../utils/common"),F=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],N=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],U=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],P=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];t.exports=function(e,t,r,n,i,s,a,o){var h,u,l,f,c,d,p,m,_,g=o.bits,b=0,v=0,y=0,w=0,k=0,x=0,S=0,z=0,C=0,E=0,A=null,I=0,O=new D.Buf16(16),B=new D.Buf16(16),R=null,T=0;for(b=0;b<=15;b++)O[b]=0;for(v=0;v<n;v++)O[t[r+v]]++;for(k=g,w=15;1<=w&&0===O[w];w--);if(w<k&&(k=w),0===w)return i[s++]=20971520,i[s++]=20971520,o.bits=1,0;for(y=1;y<w&&0===O[y];y++);for(k<y&&(k=y),b=z=1;b<=15;b++)if(z<<=1,(z-=O[b])<0)return -1;if(0<z&&(0===e||1!==w))return -1;for(B[1]=0,b=1;b<15;b++)B[b+1]=B[b]+O[b];for(v=0;v<n;v++)0!==t[r+v]&&(a[B[t[r+v]]++]=v);if(d=0===e?(A=R=a,19):1===e?(A=F,I-=257,R=N,T-=257,256):(A=U,R=P,-1),b=y,c=s,S=v=E=0,l=-1,f=(C=1<<(x=k))-1,1===e&&852<C||2===e&&592<C)return 1;for(;;){for(p=b-S,_=a[v]<d?(m=0,a[v]):a[v]>d?(m=R[T+a[v]],A[I+a[v]]):(m=96,0),h=1<<b-S,y=u=1<<x;i[c+(E>>S)+(u-=h)]=p<<24|m<<16|_|0,0!==u;);for(h=1<<b-1;E&h;)h>>=1;if(0!==h?(E&=h-1,E+=h):E=0,v++,0==--O[b]){if(b===w)break;b=t[r+a[v]];}if(k<b&&(E&f)!==l){for(0===S&&(S=k),c+=y,z=1<<(x=b-S);x+S<w&&!((z-=O[x+S])<=0);)x++,z<<=1;if(C+=1<<x,1===e&&852<C||2===e&&592<C)return 1;i[l=E&f]=k<<24|x<<16|c-s|0;}}return 0!==E&&(i[c+E]=b-S<<24|64<<16|0),o.bits=k,0};},{"../utils/common":41}],51:[function(e,t,r){t.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"};},{}],52:[function(e,t,r){var i=e("../utils/common"),o=0,h=1;function n(e){for(var t=e.length;0<=--t;)e[t]=0;}var s=0,a=29,u=256,l=u+1+a,f=30,c=19,_=2*l+1,g=15,d=16,p=7,m=256,b=16,v=17,y=18,w=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],k=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],x=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],S=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],z=new Array(2*(l+2));n(z);var C=new Array(2*f);n(C);var E=new Array(512);n(E);var A=new Array(256);n(A);var I=new Array(a);n(I);var O,B,R,T=new Array(f);function D(e,t,r,n,i){this.static_tree=e,this.extra_bits=t,this.extra_base=r,this.elems=n,this.max_length=i,this.has_stree=e&&e.length;}function F(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t;}function N(e){return e<256?E[e]:E[256+(e>>>7)]}function U(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255;}function P(e,t,r){e.bi_valid>d-r?(e.bi_buf|=t<<e.bi_valid&65535,U(e,e.bi_buf),e.bi_buf=t>>d-e.bi_valid,e.bi_valid+=r-d):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=r);}function L(e,t,r){P(e,r[2*t],r[2*t+1]);}function j(e,t){for(var r=0;r|=1&e,e>>>=1,r<<=1,0<--t;);return r>>>1}function Z(e,t,r){var n,i,s=new Array(g+1),a=0;for(n=1;n<=g;n++)s[n]=a=a+r[n-1]<<1;for(i=0;i<=t;i++){var o=e[2*i+1];0!==o&&(e[2*i]=j(s[o]++,o));}}function W(e){var t;for(t=0;t<l;t++)e.dyn_ltree[2*t]=0;for(t=0;t<f;t++)e.dyn_dtree[2*t]=0;for(t=0;t<c;t++)e.bl_tree[2*t]=0;e.dyn_ltree[2*m]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0;}function M(e){8<e.bi_valid?U(e,e.bi_buf):0<e.bi_valid&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0;}function H(e,t,r,n){var i=2*t,s=2*r;return e[i]<e[s]||e[i]===e[s]&&n[t]<=n[r]}function G(e,t,r){for(var n=e.heap[r],i=r<<1;i<=e.heap_len&&(i<e.heap_len&&H(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!H(t,n,e.heap[i],e.depth));)e.heap[r]=e.heap[i],r=i,i<<=1;e.heap[r]=n;}function K(e,t,r){var n,i,s,a,o=0;if(0!==e.last_lit)for(;n=e.pending_buf[e.d_buf+2*o]<<8|e.pending_buf[e.d_buf+2*o+1],i=e.pending_buf[e.l_buf+o],o++,0===n?L(e,i,t):(L(e,(s=A[i])+u+1,t),0!==(a=w[s])&&P(e,i-=I[s],a),L(e,s=N(--n),r),0!==(a=k[s])&&P(e,n-=T[s],a)),o<e.last_lit;);L(e,m,t);}function Y(e,t){var r,n,i,s=t.dyn_tree,a=t.stat_desc.static_tree,o=t.stat_desc.has_stree,h=t.stat_desc.elems,u=-1;for(e.heap_len=0,e.heap_max=_,r=0;r<h;r++)0!==s[2*r]?(e.heap[++e.heap_len]=u=r,e.depth[r]=0):s[2*r+1]=0;for(;e.heap_len<2;)s[2*(i=e.heap[++e.heap_len]=u<2?++u:0)]=1,e.depth[i]=0,e.opt_len--,o&&(e.static_len-=a[2*i+1]);for(t.max_code=u,r=e.heap_len>>1;1<=r;r--)G(e,s,r);for(i=h;r=e.heap[1],e.heap[1]=e.heap[e.heap_len--],G(e,s,1),n=e.heap[1],e.heap[--e.heap_max]=r,e.heap[--e.heap_max]=n,s[2*i]=s[2*r]+s[2*n],e.depth[i]=(e.depth[r]>=e.depth[n]?e.depth[r]:e.depth[n])+1,s[2*r+1]=s[2*n+1]=i,e.heap[1]=i++,G(e,s,1),2<=e.heap_len;);e.heap[--e.heap_max]=e.heap[1],function(e,t){var r,n,i,s,a,o,h=t.dyn_tree,u=t.max_code,l=t.stat_desc.static_tree,f=t.stat_desc.has_stree,c=t.stat_desc.extra_bits,d=t.stat_desc.extra_base,p=t.stat_desc.max_length,m=0;for(s=0;s<=g;s++)e.bl_count[s]=0;for(h[2*e.heap[e.heap_max]+1]=0,r=e.heap_max+1;r<_;r++)p<(s=h[2*h[2*(n=e.heap[r])+1]+1]+1)&&(s=p,m++),h[2*n+1]=s,u<n||(e.bl_count[s]++,a=0,d<=n&&(a=c[n-d]),o=h[2*n],e.opt_len+=o*(s+a),f&&(e.static_len+=o*(l[2*n+1]+a)));if(0!==m){do{for(s=p-1;0===e.bl_count[s];)s--;e.bl_count[s]--,e.bl_count[s+1]+=2,e.bl_count[p]--,m-=2;}while(0<m);for(s=p;0!==s;s--)for(n=e.bl_count[s];0!==n;)u<(i=e.heap[--r])||(h[2*i+1]!==s&&(e.opt_len+=(s-h[2*i+1])*h[2*i],h[2*i+1]=s),n--);}}(e,t),Z(s,u,e.bl_count);}function X(e,t,r){var n,i,s=-1,a=t[1],o=0,h=7,u=4;for(0===a&&(h=138,u=3),t[2*(r+1)+1]=65535,n=0;n<=r;n++)i=a,a=t[2*(n+1)+1],++o<h&&i===a||(o<u?e.bl_tree[2*i]+=o:0!==i?(i!==s&&e.bl_tree[2*i]++,e.bl_tree[2*b]++):o<=10?e.bl_tree[2*v]++:e.bl_tree[2*y]++,s=i,u=(o=0)===a?(h=138,3):i===a?(h=6,3):(h=7,4));}function V(e,t,r){var n,i,s=-1,a=t[1],o=0,h=7,u=4;for(0===a&&(h=138,u=3),n=0;n<=r;n++)if(i=a,a=t[2*(n+1)+1],!(++o<h&&i===a)){if(o<u)for(;L(e,i,e.bl_tree),0!=--o;);else 0!==i?(i!==s&&(L(e,i,e.bl_tree),o--),L(e,b,e.bl_tree),P(e,o-3,2)):o<=10?(L(e,v,e.bl_tree),P(e,o-3,3)):(L(e,y,e.bl_tree),P(e,o-11,7));s=i,u=(o=0)===a?(h=138,3):i===a?(h=6,3):(h=7,4);}}n(T);var q=!1;function J(e,t,r,n){P(e,(s<<1)+(n?1:0),3),function(e,t,r,n){M(e),n&&(U(e,r),U(e,~r)),i.arraySet(e.pending_buf,e.window,t,r,e.pending),e.pending+=r;}(e,t,r,!0);}r._tr_init=function(e){q||(function(){var e,t,r,n,i,s=new Array(g+1);for(n=r=0;n<a-1;n++)for(I[n]=r,e=0;e<1<<w[n];e++)A[r++]=n;for(A[r-1]=n,n=i=0;n<16;n++)for(T[n]=i,e=0;e<1<<k[n];e++)E[i++]=n;for(i>>=7;n<f;n++)for(T[n]=i<<7,e=0;e<1<<k[n]-7;e++)E[256+i++]=n;for(t=0;t<=g;t++)s[t]=0;for(e=0;e<=143;)z[2*e+1]=8,e++,s[8]++;for(;e<=255;)z[2*e+1]=9,e++,s[9]++;for(;e<=279;)z[2*e+1]=7,e++,s[7]++;for(;e<=287;)z[2*e+1]=8,e++,s[8]++;for(Z(z,l+1,s),e=0;e<f;e++)C[2*e+1]=5,C[2*e]=j(e,5);O=new D(z,w,u+1,l,g),B=new D(C,k,0,f,g),R=new D(new Array(0),x,0,c,p);}(),q=!0),e.l_desc=new F(e.dyn_ltree,O),e.d_desc=new F(e.dyn_dtree,B),e.bl_desc=new F(e.bl_tree,R),e.bi_buf=0,e.bi_valid=0,W(e);},r._tr_stored_block=J,r._tr_flush_block=function(e,t,r,n){var i,s,a=0;0<e.level?(2===e.strm.data_type&&(e.strm.data_type=function(e){var t,r=4093624447;for(t=0;t<=31;t++,r>>>=1)if(1&r&&0!==e.dyn_ltree[2*t])return o;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return h;for(t=32;t<u;t++)if(0!==e.dyn_ltree[2*t])return h;return o}(e)),Y(e,e.l_desc),Y(e,e.d_desc),a=function(e){var t;for(X(e,e.dyn_ltree,e.l_desc.max_code),X(e,e.dyn_dtree,e.d_desc.max_code),Y(e,e.bl_desc),t=c-1;3<=t&&0===e.bl_tree[2*S[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t}(e),i=e.opt_len+3+7>>>3,(s=e.static_len+3+7>>>3)<=i&&(i=s)):i=s=r+5,r+4<=i&&-1!==t?J(e,t,r,n):4===e.strategy||s===i?(P(e,2+(n?1:0),3),K(e,z,C)):(P(e,4+(n?1:0),3),function(e,t,r,n){var i;for(P(e,t-257,5),P(e,r-1,5),P(e,n-4,4),i=0;i<n;i++)P(e,e.bl_tree[2*S[i]+1],3);V(e,e.dyn_ltree,t-1),V(e,e.dyn_dtree,r-1);}(e,e.l_desc.max_code+1,e.d_desc.max_code+1,a+1),K(e,e.dyn_ltree,e.dyn_dtree)),W(e),n&&M(e);},r._tr_tally=function(e,t,r){return e.pending_buf[e.d_buf+2*e.last_lit]=t>>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&r,e.last_lit++,0===t?e.dyn_ltree[2*r]++:(e.matches++,t--,e.dyn_ltree[2*(A[r]+u+1)]++,e.dyn_dtree[2*N(t)]++),e.last_lit===e.lit_bufsize-1},r._tr_align=function(e){P(e,2,3),L(e,m,z),function(e){16===e.bi_valid?(U(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):8<=e.bi_valid&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8);}(e);};},{"../utils/common":41}],53:[function(e,t,r){t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0;};},{}],54:[function(e,t,r){(function(e){!function(r,n){if(!r.setImmediate){var i,s,t,a,o=1,h={},u=!1,l=r.document,e=Object.getPrototypeOf&&Object.getPrototypeOf(r);e=e&&e.setTimeout?e:r,i="[object process]"==={}.toString.call(r.process)?function(e){process.nextTick(function(){c(e);});}:function(){if(r.postMessage&&!r.importScripts){var e=!0,t=r.onmessage;return r.onmessage=function(){e=!1;},r.postMessage("","*"),r.onmessage=t,e}}()?(a="setImmediate$"+Math.random()+"$",r.addEventListener?r.addEventListener("message",d,!1):r.attachEvent("onmessage",d),function(e){r.postMessage(a+e,"*");}):r.MessageChannel?((t=new MessageChannel).port1.onmessage=function(e){c(e.data);},function(e){t.port2.postMessage(e);}):l&&"onreadystatechange"in l.createElement("script")?(s=l.documentElement,function(e){var t=l.createElement("script");t.onreadystatechange=function(){c(e),t.onreadystatechange=null,s.removeChild(t),t=null;},s.appendChild(t);}):function(e){setTimeout(c,0,e);},e.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),r=0;r<t.length;r++)t[r]=arguments[r+1];var n={callback:e,args:t};return h[o]=n,i(o),o++},e.clearImmediate=f;}function f(e){delete h[e];}function c(e){if(u)setTimeout(c,0,e);else {var t=h[e];if(t){u=!0;try{!function(e){var t=e.callback,r=e.args;switch(r.length){case 0:t();break;case 1:t(r[0]);break;case 2:t(r[0],r[1]);break;case 3:t(r[0],r[1],r[2]);break;default:t.apply(n,r);}}(t);}finally{f(e),u=!1;}}}}function d(e){e.source===r&&"string"==typeof e.data&&0===e.data.indexOf(a)&&c(+e.data.slice(a.length));}}("undefined"==typeof self?void 0===e?this:e:self);}).call(this,"undefined"!=typeof _commonjsHelpers.commonjsGlobal?_commonjsHelpers.commonjsGlobal:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{});},{}]},{},[10])(10)});
899
+ });
900
+
901
+ /*!
902
+ * @esri/arcgis-html-sanitizer - v3.0.1 - Tue Nov 15 2022 09:46:54 GMT-0800 (Pacific Standard Time)
903
+ * Copyright (c) 2022 - Environmental Systems Research Institute, Inc.
904
+ * Apache-2.0
905
+ *
906
+ * js-xss
907
+ * Copyright (c) 2012-2018 Zongmin Lei(雷宗民) <leizongmin@gmail.com>
908
+ * http://ucdok.com
909
+ * MIT License, see https://github.com/leizongmin/js-xss/blob/master/LICENSE for details
910
+ */
911
+
912
+ var lib$1 = {exports: {}};
913
+
914
+ var _default$1 = {};
915
+
916
+ var lib = {exports: {}};
917
+
918
+ var _default = {};
919
+
920
+ /**
921
+ * cssfilter
922
+ *
923
+ * @author 老雷<leizongmin@gmail.com>
924
+ */
925
+
926
+ function getDefaultWhiteList$1 () {
927
+ // 白名单值说明:
928
+ // true: 允许该属性
929
+ // Function: function (val) { } 返回true表示允许该属性,其他值均表示不允许
930
+ // RegExp: regexp.test(val) 返回true表示允许该属性,其他值均表示不允许
931
+ // 除上面列出的值外均表示不允许
932
+ var whiteList = {};
933
+
934
+ whiteList['align-content'] = false; // default: auto
935
+ whiteList['align-items'] = false; // default: auto
936
+ whiteList['align-self'] = false; // default: auto
937
+ whiteList['alignment-adjust'] = false; // default: auto
938
+ whiteList['alignment-baseline'] = false; // default: baseline
939
+ whiteList['all'] = false; // default: depending on individual properties
940
+ whiteList['anchor-point'] = false; // default: none
941
+ whiteList['animation'] = false; // default: depending on individual properties
942
+ whiteList['animation-delay'] = false; // default: 0
943
+ whiteList['animation-direction'] = false; // default: normal
944
+ whiteList['animation-duration'] = false; // default: 0
945
+ whiteList['animation-fill-mode'] = false; // default: none
946
+ whiteList['animation-iteration-count'] = false; // default: 1
947
+ whiteList['animation-name'] = false; // default: none
948
+ whiteList['animation-play-state'] = false; // default: running
949
+ whiteList['animation-timing-function'] = false; // default: ease
950
+ whiteList['azimuth'] = false; // default: center
951
+ whiteList['backface-visibility'] = false; // default: visible
952
+ whiteList['background'] = true; // default: depending on individual properties
953
+ whiteList['background-attachment'] = true; // default: scroll
954
+ whiteList['background-clip'] = true; // default: border-box
955
+ whiteList['background-color'] = true; // default: transparent
956
+ whiteList['background-image'] = true; // default: none
957
+ whiteList['background-origin'] = true; // default: padding-box
958
+ whiteList['background-position'] = true; // default: 0% 0%
959
+ whiteList['background-repeat'] = true; // default: repeat
960
+ whiteList['background-size'] = true; // default: auto
961
+ whiteList['baseline-shift'] = false; // default: baseline
962
+ whiteList['binding'] = false; // default: none
963
+ whiteList['bleed'] = false; // default: 6pt
964
+ whiteList['bookmark-label'] = false; // default: content()
965
+ whiteList['bookmark-level'] = false; // default: none
966
+ whiteList['bookmark-state'] = false; // default: open
967
+ whiteList['border'] = true; // default: depending on individual properties
968
+ whiteList['border-bottom'] = true; // default: depending on individual properties
969
+ whiteList['border-bottom-color'] = true; // default: current color
970
+ whiteList['border-bottom-left-radius'] = true; // default: 0
971
+ whiteList['border-bottom-right-radius'] = true; // default: 0
972
+ whiteList['border-bottom-style'] = true; // default: none
973
+ whiteList['border-bottom-width'] = true; // default: medium
974
+ whiteList['border-collapse'] = true; // default: separate
975
+ whiteList['border-color'] = true; // default: depending on individual properties
976
+ whiteList['border-image'] = true; // default: none
977
+ whiteList['border-image-outset'] = true; // default: 0
978
+ whiteList['border-image-repeat'] = true; // default: stretch
979
+ whiteList['border-image-slice'] = true; // default: 100%
980
+ whiteList['border-image-source'] = true; // default: none
981
+ whiteList['border-image-width'] = true; // default: 1
982
+ whiteList['border-left'] = true; // default: depending on individual properties
983
+ whiteList['border-left-color'] = true; // default: current color
984
+ whiteList['border-left-style'] = true; // default: none
985
+ whiteList['border-left-width'] = true; // default: medium
986
+ whiteList['border-radius'] = true; // default: 0
987
+ whiteList['border-right'] = true; // default: depending on individual properties
988
+ whiteList['border-right-color'] = true; // default: current color
989
+ whiteList['border-right-style'] = true; // default: none
990
+ whiteList['border-right-width'] = true; // default: medium
991
+ whiteList['border-spacing'] = true; // default: 0
992
+ whiteList['border-style'] = true; // default: depending on individual properties
993
+ whiteList['border-top'] = true; // default: depending on individual properties
994
+ whiteList['border-top-color'] = true; // default: current color
995
+ whiteList['border-top-left-radius'] = true; // default: 0
996
+ whiteList['border-top-right-radius'] = true; // default: 0
997
+ whiteList['border-top-style'] = true; // default: none
998
+ whiteList['border-top-width'] = true; // default: medium
999
+ whiteList['border-width'] = true; // default: depending on individual properties
1000
+ whiteList['bottom'] = false; // default: auto
1001
+ whiteList['box-decoration-break'] = true; // default: slice
1002
+ whiteList['box-shadow'] = true; // default: none
1003
+ whiteList['box-sizing'] = true; // default: content-box
1004
+ whiteList['box-snap'] = true; // default: none
1005
+ whiteList['box-suppress'] = true; // default: show
1006
+ whiteList['break-after'] = true; // default: auto
1007
+ whiteList['break-before'] = true; // default: auto
1008
+ whiteList['break-inside'] = true; // default: auto
1009
+ whiteList['caption-side'] = false; // default: top
1010
+ whiteList['chains'] = false; // default: none
1011
+ whiteList['clear'] = true; // default: none
1012
+ whiteList['clip'] = false; // default: auto
1013
+ whiteList['clip-path'] = false; // default: none
1014
+ whiteList['clip-rule'] = false; // default: nonzero
1015
+ whiteList['color'] = true; // default: implementation dependent
1016
+ whiteList['color-interpolation-filters'] = true; // default: auto
1017
+ whiteList['column-count'] = false; // default: auto
1018
+ whiteList['column-fill'] = false; // default: balance
1019
+ whiteList['column-gap'] = false; // default: normal
1020
+ whiteList['column-rule'] = false; // default: depending on individual properties
1021
+ whiteList['column-rule-color'] = false; // default: current color
1022
+ whiteList['column-rule-style'] = false; // default: medium
1023
+ whiteList['column-rule-width'] = false; // default: medium
1024
+ whiteList['column-span'] = false; // default: none
1025
+ whiteList['column-width'] = false; // default: auto
1026
+ whiteList['columns'] = false; // default: depending on individual properties
1027
+ whiteList['contain'] = false; // default: none
1028
+ whiteList['content'] = false; // default: normal
1029
+ whiteList['counter-increment'] = false; // default: none
1030
+ whiteList['counter-reset'] = false; // default: none
1031
+ whiteList['counter-set'] = false; // default: none
1032
+ whiteList['crop'] = false; // default: auto
1033
+ whiteList['cue'] = false; // default: depending on individual properties
1034
+ whiteList['cue-after'] = false; // default: none
1035
+ whiteList['cue-before'] = false; // default: none
1036
+ whiteList['cursor'] = false; // default: auto
1037
+ whiteList['direction'] = false; // default: ltr
1038
+ whiteList['display'] = true; // default: depending on individual properties
1039
+ whiteList['display-inside'] = true; // default: auto
1040
+ whiteList['display-list'] = true; // default: none
1041
+ whiteList['display-outside'] = true; // default: inline-level
1042
+ whiteList['dominant-baseline'] = false; // default: auto
1043
+ whiteList['elevation'] = false; // default: level
1044
+ whiteList['empty-cells'] = false; // default: show
1045
+ whiteList['filter'] = false; // default: none
1046
+ whiteList['flex'] = false; // default: depending on individual properties
1047
+ whiteList['flex-basis'] = false; // default: auto
1048
+ whiteList['flex-direction'] = false; // default: row
1049
+ whiteList['flex-flow'] = false; // default: depending on individual properties
1050
+ whiteList['flex-grow'] = false; // default: 0
1051
+ whiteList['flex-shrink'] = false; // default: 1
1052
+ whiteList['flex-wrap'] = false; // default: nowrap
1053
+ whiteList['float'] = false; // default: none
1054
+ whiteList['float-offset'] = false; // default: 0 0
1055
+ whiteList['flood-color'] = false; // default: black
1056
+ whiteList['flood-opacity'] = false; // default: 1
1057
+ whiteList['flow-from'] = false; // default: none
1058
+ whiteList['flow-into'] = false; // default: none
1059
+ whiteList['font'] = true; // default: depending on individual properties
1060
+ whiteList['font-family'] = true; // default: implementation dependent
1061
+ whiteList['font-feature-settings'] = true; // default: normal
1062
+ whiteList['font-kerning'] = true; // default: auto
1063
+ whiteList['font-language-override'] = true; // default: normal
1064
+ whiteList['font-size'] = true; // default: medium
1065
+ whiteList['font-size-adjust'] = true; // default: none
1066
+ whiteList['font-stretch'] = true; // default: normal
1067
+ whiteList['font-style'] = true; // default: normal
1068
+ whiteList['font-synthesis'] = true; // default: weight style
1069
+ whiteList['font-variant'] = true; // default: normal
1070
+ whiteList['font-variant-alternates'] = true; // default: normal
1071
+ whiteList['font-variant-caps'] = true; // default: normal
1072
+ whiteList['font-variant-east-asian'] = true; // default: normal
1073
+ whiteList['font-variant-ligatures'] = true; // default: normal
1074
+ whiteList['font-variant-numeric'] = true; // default: normal
1075
+ whiteList['font-variant-position'] = true; // default: normal
1076
+ whiteList['font-weight'] = true; // default: normal
1077
+ whiteList['grid'] = false; // default: depending on individual properties
1078
+ whiteList['grid-area'] = false; // default: depending on individual properties
1079
+ whiteList['grid-auto-columns'] = false; // default: auto
1080
+ whiteList['grid-auto-flow'] = false; // default: none
1081
+ whiteList['grid-auto-rows'] = false; // default: auto
1082
+ whiteList['grid-column'] = false; // default: depending on individual properties
1083
+ whiteList['grid-column-end'] = false; // default: auto
1084
+ whiteList['grid-column-start'] = false; // default: auto
1085
+ whiteList['grid-row'] = false; // default: depending on individual properties
1086
+ whiteList['grid-row-end'] = false; // default: auto
1087
+ whiteList['grid-row-start'] = false; // default: auto
1088
+ whiteList['grid-template'] = false; // default: depending on individual properties
1089
+ whiteList['grid-template-areas'] = false; // default: none
1090
+ whiteList['grid-template-columns'] = false; // default: none
1091
+ whiteList['grid-template-rows'] = false; // default: none
1092
+ whiteList['hanging-punctuation'] = false; // default: none
1093
+ whiteList['height'] = true; // default: auto
1094
+ whiteList['hyphens'] = false; // default: manual
1095
+ whiteList['icon'] = false; // default: auto
1096
+ whiteList['image-orientation'] = false; // default: auto
1097
+ whiteList['image-resolution'] = false; // default: normal
1098
+ whiteList['ime-mode'] = false; // default: auto
1099
+ whiteList['initial-letters'] = false; // default: normal
1100
+ whiteList['inline-box-align'] = false; // default: last
1101
+ whiteList['justify-content'] = false; // default: auto
1102
+ whiteList['justify-items'] = false; // default: auto
1103
+ whiteList['justify-self'] = false; // default: auto
1104
+ whiteList['left'] = false; // default: auto
1105
+ whiteList['letter-spacing'] = true; // default: normal
1106
+ whiteList['lighting-color'] = true; // default: white
1107
+ whiteList['line-box-contain'] = false; // default: block inline replaced
1108
+ whiteList['line-break'] = false; // default: auto
1109
+ whiteList['line-grid'] = false; // default: match-parent
1110
+ whiteList['line-height'] = false; // default: normal
1111
+ whiteList['line-snap'] = false; // default: none
1112
+ whiteList['line-stacking'] = false; // default: depending on individual properties
1113
+ whiteList['line-stacking-ruby'] = false; // default: exclude-ruby
1114
+ whiteList['line-stacking-shift'] = false; // default: consider-shifts
1115
+ whiteList['line-stacking-strategy'] = false; // default: inline-line-height
1116
+ whiteList['list-style'] = true; // default: depending on individual properties
1117
+ whiteList['list-style-image'] = true; // default: none
1118
+ whiteList['list-style-position'] = true; // default: outside
1119
+ whiteList['list-style-type'] = true; // default: disc
1120
+ whiteList['margin'] = true; // default: depending on individual properties
1121
+ whiteList['margin-bottom'] = true; // default: 0
1122
+ whiteList['margin-left'] = true; // default: 0
1123
+ whiteList['margin-right'] = true; // default: 0
1124
+ whiteList['margin-top'] = true; // default: 0
1125
+ whiteList['marker-offset'] = false; // default: auto
1126
+ whiteList['marker-side'] = false; // default: list-item
1127
+ whiteList['marks'] = false; // default: none
1128
+ whiteList['mask'] = false; // default: border-box
1129
+ whiteList['mask-box'] = false; // default: see individual properties
1130
+ whiteList['mask-box-outset'] = false; // default: 0
1131
+ whiteList['mask-box-repeat'] = false; // default: stretch
1132
+ whiteList['mask-box-slice'] = false; // default: 0 fill
1133
+ whiteList['mask-box-source'] = false; // default: none
1134
+ whiteList['mask-box-width'] = false; // default: auto
1135
+ whiteList['mask-clip'] = false; // default: border-box
1136
+ whiteList['mask-image'] = false; // default: none
1137
+ whiteList['mask-origin'] = false; // default: border-box
1138
+ whiteList['mask-position'] = false; // default: center
1139
+ whiteList['mask-repeat'] = false; // default: no-repeat
1140
+ whiteList['mask-size'] = false; // default: border-box
1141
+ whiteList['mask-source-type'] = false; // default: auto
1142
+ whiteList['mask-type'] = false; // default: luminance
1143
+ whiteList['max-height'] = true; // default: none
1144
+ whiteList['max-lines'] = false; // default: none
1145
+ whiteList['max-width'] = true; // default: none
1146
+ whiteList['min-height'] = true; // default: 0
1147
+ whiteList['min-width'] = true; // default: 0
1148
+ whiteList['move-to'] = false; // default: normal
1149
+ whiteList['nav-down'] = false; // default: auto
1150
+ whiteList['nav-index'] = false; // default: auto
1151
+ whiteList['nav-left'] = false; // default: auto
1152
+ whiteList['nav-right'] = false; // default: auto
1153
+ whiteList['nav-up'] = false; // default: auto
1154
+ whiteList['object-fit'] = false; // default: fill
1155
+ whiteList['object-position'] = false; // default: 50% 50%
1156
+ whiteList['opacity'] = false; // default: 1
1157
+ whiteList['order'] = false; // default: 0
1158
+ whiteList['orphans'] = false; // default: 2
1159
+ whiteList['outline'] = false; // default: depending on individual properties
1160
+ whiteList['outline-color'] = false; // default: invert
1161
+ whiteList['outline-offset'] = false; // default: 0
1162
+ whiteList['outline-style'] = false; // default: none
1163
+ whiteList['outline-width'] = false; // default: medium
1164
+ whiteList['overflow'] = false; // default: depending on individual properties
1165
+ whiteList['overflow-wrap'] = false; // default: normal
1166
+ whiteList['overflow-x'] = false; // default: visible
1167
+ whiteList['overflow-y'] = false; // default: visible
1168
+ whiteList['padding'] = true; // default: depending on individual properties
1169
+ whiteList['padding-bottom'] = true; // default: 0
1170
+ whiteList['padding-left'] = true; // default: 0
1171
+ whiteList['padding-right'] = true; // default: 0
1172
+ whiteList['padding-top'] = true; // default: 0
1173
+ whiteList['page'] = false; // default: auto
1174
+ whiteList['page-break-after'] = false; // default: auto
1175
+ whiteList['page-break-before'] = false; // default: auto
1176
+ whiteList['page-break-inside'] = false; // default: auto
1177
+ whiteList['page-policy'] = false; // default: start
1178
+ whiteList['pause'] = false; // default: implementation dependent
1179
+ whiteList['pause-after'] = false; // default: implementation dependent
1180
+ whiteList['pause-before'] = false; // default: implementation dependent
1181
+ whiteList['perspective'] = false; // default: none
1182
+ whiteList['perspective-origin'] = false; // default: 50% 50%
1183
+ whiteList['pitch'] = false; // default: medium
1184
+ whiteList['pitch-range'] = false; // default: 50
1185
+ whiteList['play-during'] = false; // default: auto
1186
+ whiteList['position'] = false; // default: static
1187
+ whiteList['presentation-level'] = false; // default: 0
1188
+ whiteList['quotes'] = false; // default: text
1189
+ whiteList['region-fragment'] = false; // default: auto
1190
+ whiteList['resize'] = false; // default: none
1191
+ whiteList['rest'] = false; // default: depending on individual properties
1192
+ whiteList['rest-after'] = false; // default: none
1193
+ whiteList['rest-before'] = false; // default: none
1194
+ whiteList['richness'] = false; // default: 50
1195
+ whiteList['right'] = false; // default: auto
1196
+ whiteList['rotation'] = false; // default: 0
1197
+ whiteList['rotation-point'] = false; // default: 50% 50%
1198
+ whiteList['ruby-align'] = false; // default: auto
1199
+ whiteList['ruby-merge'] = false; // default: separate
1200
+ whiteList['ruby-position'] = false; // default: before
1201
+ whiteList['shape-image-threshold'] = false; // default: 0.0
1202
+ whiteList['shape-outside'] = false; // default: none
1203
+ whiteList['shape-margin'] = false; // default: 0
1204
+ whiteList['size'] = false; // default: auto
1205
+ whiteList['speak'] = false; // default: auto
1206
+ whiteList['speak-as'] = false; // default: normal
1207
+ whiteList['speak-header'] = false; // default: once
1208
+ whiteList['speak-numeral'] = false; // default: continuous
1209
+ whiteList['speak-punctuation'] = false; // default: none
1210
+ whiteList['speech-rate'] = false; // default: medium
1211
+ whiteList['stress'] = false; // default: 50
1212
+ whiteList['string-set'] = false; // default: none
1213
+ whiteList['tab-size'] = false; // default: 8
1214
+ whiteList['table-layout'] = false; // default: auto
1215
+ whiteList['text-align'] = true; // default: start
1216
+ whiteList['text-align-last'] = true; // default: auto
1217
+ whiteList['text-combine-upright'] = true; // default: none
1218
+ whiteList['text-decoration'] = true; // default: none
1219
+ whiteList['text-decoration-color'] = true; // default: currentColor
1220
+ whiteList['text-decoration-line'] = true; // default: none
1221
+ whiteList['text-decoration-skip'] = true; // default: objects
1222
+ whiteList['text-decoration-style'] = true; // default: solid
1223
+ whiteList['text-emphasis'] = true; // default: depending on individual properties
1224
+ whiteList['text-emphasis-color'] = true; // default: currentColor
1225
+ whiteList['text-emphasis-position'] = true; // default: over right
1226
+ whiteList['text-emphasis-style'] = true; // default: none
1227
+ whiteList['text-height'] = true; // default: auto
1228
+ whiteList['text-indent'] = true; // default: 0
1229
+ whiteList['text-justify'] = true; // default: auto
1230
+ whiteList['text-orientation'] = true; // default: mixed
1231
+ whiteList['text-overflow'] = true; // default: clip
1232
+ whiteList['text-shadow'] = true; // default: none
1233
+ whiteList['text-space-collapse'] = true; // default: collapse
1234
+ whiteList['text-transform'] = true; // default: none
1235
+ whiteList['text-underline-position'] = true; // default: auto
1236
+ whiteList['text-wrap'] = true; // default: normal
1237
+ whiteList['top'] = false; // default: auto
1238
+ whiteList['transform'] = false; // default: none
1239
+ whiteList['transform-origin'] = false; // default: 50% 50% 0
1240
+ whiteList['transform-style'] = false; // default: flat
1241
+ whiteList['transition'] = false; // default: depending on individual properties
1242
+ whiteList['transition-delay'] = false; // default: 0s
1243
+ whiteList['transition-duration'] = false; // default: 0s
1244
+ whiteList['transition-property'] = false; // default: all
1245
+ whiteList['transition-timing-function'] = false; // default: ease
1246
+ whiteList['unicode-bidi'] = false; // default: normal
1247
+ whiteList['vertical-align'] = false; // default: baseline
1248
+ whiteList['visibility'] = false; // default: visible
1249
+ whiteList['voice-balance'] = false; // default: center
1250
+ whiteList['voice-duration'] = false; // default: auto
1251
+ whiteList['voice-family'] = false; // default: implementation dependent
1252
+ whiteList['voice-pitch'] = false; // default: medium
1253
+ whiteList['voice-range'] = false; // default: medium
1254
+ whiteList['voice-rate'] = false; // default: normal
1255
+ whiteList['voice-stress'] = false; // default: normal
1256
+ whiteList['voice-volume'] = false; // default: medium
1257
+ whiteList['volume'] = false; // default: medium
1258
+ whiteList['white-space'] = false; // default: normal
1259
+ whiteList['widows'] = false; // default: 2
1260
+ whiteList['width'] = true; // default: auto
1261
+ whiteList['will-change'] = false; // default: auto
1262
+ whiteList['word-break'] = true; // default: normal
1263
+ whiteList['word-spacing'] = true; // default: normal
1264
+ whiteList['word-wrap'] = true; // default: normal
1265
+ whiteList['wrap-flow'] = false; // default: auto
1266
+ whiteList['wrap-through'] = false; // default: wrap
1267
+ whiteList['writing-mode'] = false; // default: horizontal-tb
1268
+ whiteList['z-index'] = false; // default: auto
1269
+
1270
+ return whiteList;
1271
+ }
1272
+
1273
+
1274
+ /**
1275
+ * 匹配到白名单上的一个属性时
1276
+ *
1277
+ * @param {String} name
1278
+ * @param {String} value
1279
+ * @param {Object} options
1280
+ * @return {String}
1281
+ */
1282
+ function onAttr (name, value, options) {
1283
+ // do nothing
1284
+ }
1285
+
1286
+ /**
1287
+ * 匹配到不在白名单上的一个属性时
1288
+ *
1289
+ * @param {String} name
1290
+ * @param {String} value
1291
+ * @param {Object} options
1292
+ * @return {String}
1293
+ */
1294
+ function onIgnoreAttr (name, value, options) {
1295
+ // do nothing
1296
+ }
1297
+
1298
+ var REGEXP_URL_JAVASCRIPT = /javascript\s*\:/img;
1299
+
1300
+ /**
1301
+ * 过滤属性值
1302
+ *
1303
+ * @param {String} name
1304
+ * @param {String} value
1305
+ * @return {String}
1306
+ */
1307
+ function safeAttrValue$1(name, value) {
1308
+ if (REGEXP_URL_JAVASCRIPT.test(value)) return '';
1309
+ return value;
1310
+ }
1311
+
1312
+
1313
+ _default.whiteList = getDefaultWhiteList$1();
1314
+ _default.getDefaultWhiteList = getDefaultWhiteList$1;
1315
+ _default.onAttr = onAttr;
1316
+ _default.onIgnoreAttr = onIgnoreAttr;
1317
+ _default.safeAttrValue = safeAttrValue$1;
1318
+
1319
+ var util$1 = {
1320
+ indexOf: function (arr, item) {
1321
+ var i, j;
1322
+ if (Array.prototype.indexOf) {
1323
+ return arr.indexOf(item);
1324
+ }
1325
+ for (i = 0, j = arr.length; i < j; i++) {
1326
+ if (arr[i] === item) {
1327
+ return i;
1328
+ }
1329
+ }
1330
+ return -1;
1331
+ },
1332
+ forEach: function (arr, fn, scope) {
1333
+ var i, j;
1334
+ if (Array.prototype.forEach) {
1335
+ return arr.forEach(fn, scope);
1336
+ }
1337
+ for (i = 0, j = arr.length; i < j; i++) {
1338
+ fn.call(scope, arr[i], i, arr);
1339
+ }
1340
+ },
1341
+ trim: function (str) {
1342
+ if (String.prototype.trim) {
1343
+ return str.trim();
1344
+ }
1345
+ return str.replace(/(^\s*)|(\s*$)/g, '');
1346
+ },
1347
+ trimRight: function (str) {
1348
+ if (String.prototype.trimRight) {
1349
+ return str.trimRight();
1350
+ }
1351
+ return str.replace(/(\s*$)/g, '');
1352
+ }
1353
+ };
1354
+
1355
+ /**
1356
+ * cssfilter
1357
+ *
1358
+ * @author 老雷<leizongmin@gmail.com>
1359
+ */
1360
+
1361
+ var _$3 = util$1;
1362
+
1363
+
1364
+ /**
1365
+ * 解析style
1366
+ *
1367
+ * @param {String} css
1368
+ * @param {Function} onAttr 处理属性的函数
1369
+ * 参数格式: function (sourcePosition, position, name, value, source)
1370
+ * @return {String}
1371
+ */
1372
+ function parseStyle$1 (css, onAttr) {
1373
+ css = _$3.trimRight(css);
1374
+ if (css[css.length - 1] !== ';') css += ';';
1375
+ var cssLength = css.length;
1376
+ var isParenthesisOpen = false;
1377
+ var lastPos = 0;
1378
+ var i = 0;
1379
+ var retCSS = '';
1380
+
1381
+ function addNewAttr () {
1382
+ // 如果没有正常的闭合圆括号,则直接忽略当前属性
1383
+ if (!isParenthesisOpen) {
1384
+ var source = _$3.trim(css.slice(lastPos, i));
1385
+ var j = source.indexOf(':');
1386
+ if (j !== -1) {
1387
+ var name = _$3.trim(source.slice(0, j));
1388
+ var value = _$3.trim(source.slice(j + 1));
1389
+ // 必须有属性名称
1390
+ if (name) {
1391
+ var ret = onAttr(lastPos, retCSS.length, name, value, source);
1392
+ if (ret) retCSS += ret + '; ';
1393
+ }
1394
+ }
1395
+ }
1396
+ lastPos = i + 1;
1397
+ }
1398
+
1399
+ for (; i < cssLength; i++) {
1400
+ var c = css[i];
1401
+ if (c === '/' && css[i + 1] === '*') {
1402
+ // 备注开始
1403
+ var j = css.indexOf('*/', i + 2);
1404
+ // 如果没有正常的备注结束,则后面的部分全部跳过
1405
+ if (j === -1) break;
1406
+ // 直接将当前位置调到备注结尾,并且初始化状态
1407
+ i = j + 1;
1408
+ lastPos = i + 1;
1409
+ isParenthesisOpen = false;
1410
+ } else if (c === '(') {
1411
+ isParenthesisOpen = true;
1412
+ } else if (c === ')') {
1413
+ isParenthesisOpen = false;
1414
+ } else if (c === ';') {
1415
+ if (isParenthesisOpen) ; else {
1416
+ addNewAttr();
1417
+ }
1418
+ } else if (c === '\n') {
1419
+ addNewAttr();
1420
+ }
1421
+ }
1422
+
1423
+ return _$3.trim(retCSS);
1424
+ }
1425
+
1426
+ var parser$2 = parseStyle$1;
1427
+
1428
+ /**
1429
+ * cssfilter
1430
+ *
1431
+ * @author 老雷<leizongmin@gmail.com>
1432
+ */
1433
+
1434
+ var DEFAULT$1 = _default;
1435
+ var parseStyle = parser$2;
1436
+
1437
+
1438
+ /**
1439
+ * 返回值是否为空
1440
+ *
1441
+ * @param {Object} obj
1442
+ * @return {Boolean}
1443
+ */
1444
+ function isNull$1 (obj) {
1445
+ return (obj === undefined || obj === null);
1446
+ }
1447
+
1448
+ /**
1449
+ * 浅拷贝对象
1450
+ *
1451
+ * @param {Object} obj
1452
+ * @return {Object}
1453
+ */
1454
+ function shallowCopyObject$1 (obj) {
1455
+ var ret = {};
1456
+ for (var i in obj) {
1457
+ ret[i] = obj[i];
1458
+ }
1459
+ return ret;
1460
+ }
1461
+
1462
+ /**
1463
+ * 创建CSS过滤器
1464
+ *
1465
+ * @param {Object} options
1466
+ * - {Object} whiteList
1467
+ * - {Function} onAttr
1468
+ * - {Function} onIgnoreAttr
1469
+ * - {Function} safeAttrValue
1470
+ */
1471
+ function FilterCSS$2 (options) {
1472
+ options = shallowCopyObject$1(options || {});
1473
+ options.whiteList = options.whiteList || DEFAULT$1.whiteList;
1474
+ options.onAttr = options.onAttr || DEFAULT$1.onAttr;
1475
+ options.onIgnoreAttr = options.onIgnoreAttr || DEFAULT$1.onIgnoreAttr;
1476
+ options.safeAttrValue = options.safeAttrValue || DEFAULT$1.safeAttrValue;
1477
+ this.options = options;
1478
+ }
1479
+
1480
+ FilterCSS$2.prototype.process = function (css) {
1481
+ // 兼容各种奇葩输入
1482
+ css = css || '';
1483
+ css = css.toString();
1484
+ if (!css) return '';
1485
+
1486
+ var me = this;
1487
+ var options = me.options;
1488
+ var whiteList = options.whiteList;
1489
+ var onAttr = options.onAttr;
1490
+ var onIgnoreAttr = options.onIgnoreAttr;
1491
+ var safeAttrValue = options.safeAttrValue;
1492
+
1493
+ var retCSS = parseStyle(css, function (sourcePosition, position, name, value, source) {
1494
+
1495
+ var check = whiteList[name];
1496
+ var isWhite = false;
1497
+ if (check === true) isWhite = check;
1498
+ else if (typeof check === 'function') isWhite = check(value);
1499
+ else if (check instanceof RegExp) isWhite = check.test(value);
1500
+ if (isWhite !== true) isWhite = false;
1501
+
1502
+ // 如果过滤后 value 为空则直接忽略
1503
+ value = safeAttrValue(name, value);
1504
+ if (!value) return;
1505
+
1506
+ var opts = {
1507
+ position: position,
1508
+ sourcePosition: sourcePosition,
1509
+ source: source,
1510
+ isWhite: isWhite
1511
+ };
1512
+
1513
+ if (isWhite) {
1514
+
1515
+ var ret = onAttr(name, value, opts);
1516
+ if (isNull$1(ret)) {
1517
+ return name + ':' + value;
1518
+ } else {
1519
+ return ret;
1520
+ }
1521
+
1522
+ } else {
1523
+
1524
+ var ret = onIgnoreAttr(name, value, opts);
1525
+ if (!isNull$1(ret)) {
1526
+ return ret;
1527
+ }
1528
+
1529
+ }
1530
+ });
1531
+
1532
+ return retCSS;
1533
+ };
1534
+
1535
+
1536
+ var css = FilterCSS$2;
1537
+
1538
+ /**
1539
+ * cssfilter
1540
+ *
1541
+ * @author 老雷<leizongmin@gmail.com>
1542
+ */
1543
+
1544
+ (function (module, exports) {
1545
+ var DEFAULT = _default;
1546
+ var FilterCSS = css;
1547
+
1548
+
1549
+ /**
1550
+ * XSS过滤
1551
+ *
1552
+ * @param {String} css 要过滤的CSS代码
1553
+ * @param {Object} options 选项:whiteList, onAttr, onIgnoreAttr
1554
+ * @return {String}
1555
+ */
1556
+ function filterCSS (html, options) {
1557
+ var xss = new FilterCSS(options);
1558
+ return xss.process(html);
1559
+ }
1560
+
1561
+
1562
+ // 输出
1563
+ exports = module.exports = filterCSS;
1564
+ exports.FilterCSS = FilterCSS;
1565
+ for (var i in DEFAULT) exports[i] = DEFAULT[i];
1566
+ } (lib, lib.exports));
1567
+
1568
+ var util = {
1569
+ indexOf: function (arr, item) {
1570
+ var i, j;
1571
+ if (Array.prototype.indexOf) {
1572
+ return arr.indexOf(item);
1573
+ }
1574
+ for (i = 0, j = arr.length; i < j; i++) {
1575
+ if (arr[i] === item) {
1576
+ return i;
1577
+ }
1578
+ }
1579
+ return -1;
1580
+ },
1581
+ forEach: function (arr, fn, scope) {
1582
+ var i, j;
1583
+ if (Array.prototype.forEach) {
1584
+ return arr.forEach(fn, scope);
1585
+ }
1586
+ for (i = 0, j = arr.length; i < j; i++) {
1587
+ fn.call(scope, arr[i], i, arr);
1588
+ }
1589
+ },
1590
+ trim: function (str) {
1591
+ if (String.prototype.trim) {
1592
+ return str.trim();
1593
+ }
1594
+ return str.replace(/(^\s*)|(\s*$)/g, "");
1595
+ },
1596
+ spaceIndex: function (str) {
1597
+ var reg = /\s|\n|\t/;
1598
+ var match = reg.exec(str);
1599
+ return match ? match.index : -1;
1600
+ },
1601
+ };
1602
+
1603
+ /**
1604
+ * default settings
1605
+ *
1606
+ * @author Zongmin Lei<leizongmin@gmail.com>
1607
+ */
1608
+
1609
+ var FilterCSS$1 = lib.exports.FilterCSS;
1610
+ var getDefaultCSSWhiteList = lib.exports.getDefaultWhiteList;
1611
+ var _$2 = util;
1612
+
1613
+ function getDefaultWhiteList() {
1614
+ return {
1615
+ a: ["target", "href", "title"],
1616
+ abbr: ["title"],
1617
+ address: [],
1618
+ area: ["shape", "coords", "href", "alt"],
1619
+ article: [],
1620
+ aside: [],
1621
+ audio: [
1622
+ "autoplay",
1623
+ "controls",
1624
+ "crossorigin",
1625
+ "loop",
1626
+ "muted",
1627
+ "preload",
1628
+ "src",
1629
+ ],
1630
+ b: [],
1631
+ bdi: ["dir"],
1632
+ bdo: ["dir"],
1633
+ big: [],
1634
+ blockquote: ["cite"],
1635
+ br: [],
1636
+ caption: [],
1637
+ center: [],
1638
+ cite: [],
1639
+ code: [],
1640
+ col: ["align", "valign", "span", "width"],
1641
+ colgroup: ["align", "valign", "span", "width"],
1642
+ dd: [],
1643
+ del: ["datetime"],
1644
+ details: ["open"],
1645
+ div: [],
1646
+ dl: [],
1647
+ dt: [],
1648
+ em: [],
1649
+ figcaption: [],
1650
+ figure: [],
1651
+ font: ["color", "size", "face"],
1652
+ footer: [],
1653
+ h1: [],
1654
+ h2: [],
1655
+ h3: [],
1656
+ h4: [],
1657
+ h5: [],
1658
+ h6: [],
1659
+ header: [],
1660
+ hr: [],
1661
+ i: [],
1662
+ img: ["src", "alt", "title", "width", "height"],
1663
+ ins: ["datetime"],
1664
+ li: [],
1665
+ mark: [],
1666
+ nav: [],
1667
+ ol: [],
1668
+ p: [],
1669
+ pre: [],
1670
+ s: [],
1671
+ section: [],
1672
+ small: [],
1673
+ span: [],
1674
+ sub: [],
1675
+ summary: [],
1676
+ sup: [],
1677
+ strong: [],
1678
+ strike: [],
1679
+ table: ["width", "border", "align", "valign"],
1680
+ tbody: ["align", "valign"],
1681
+ td: ["width", "rowspan", "colspan", "align", "valign"],
1682
+ tfoot: ["align", "valign"],
1683
+ th: ["width", "rowspan", "colspan", "align", "valign"],
1684
+ thead: ["align", "valign"],
1685
+ tr: ["rowspan", "align", "valign"],
1686
+ tt: [],
1687
+ u: [],
1688
+ ul: [],
1689
+ video: [
1690
+ "autoplay",
1691
+ "controls",
1692
+ "crossorigin",
1693
+ "loop",
1694
+ "muted",
1695
+ "playsinline",
1696
+ "poster",
1697
+ "preload",
1698
+ "src",
1699
+ "height",
1700
+ "width",
1701
+ ],
1702
+ };
1703
+ }
1704
+
1705
+ var defaultCSSFilter = new FilterCSS$1();
1706
+
1707
+ /**
1708
+ * default onTag function
1709
+ *
1710
+ * @param {String} tag
1711
+ * @param {String} html
1712
+ * @param {Object} options
1713
+ * @return {String}
1714
+ */
1715
+ function onTag(tag, html, options) {
1716
+ // do nothing
1717
+ }
1718
+
1719
+ /**
1720
+ * default onIgnoreTag function
1721
+ *
1722
+ * @param {String} tag
1723
+ * @param {String} html
1724
+ * @param {Object} options
1725
+ * @return {String}
1726
+ */
1727
+ function onIgnoreTag(tag, html, options) {
1728
+ // do nothing
1729
+ }
1730
+
1731
+ /**
1732
+ * default onTagAttr function
1733
+ *
1734
+ * @param {String} tag
1735
+ * @param {String} name
1736
+ * @param {String} value
1737
+ * @return {String}
1738
+ */
1739
+ function onTagAttr(tag, name, value) {
1740
+ // do nothing
1741
+ }
1742
+
1743
+ /**
1744
+ * default onIgnoreTagAttr function
1745
+ *
1746
+ * @param {String} tag
1747
+ * @param {String} name
1748
+ * @param {String} value
1749
+ * @return {String}
1750
+ */
1751
+ function onIgnoreTagAttr(tag, name, value) {
1752
+ // do nothing
1753
+ }
1754
+
1755
+ /**
1756
+ * default escapeHtml function
1757
+ *
1758
+ * @param {String} html
1759
+ */
1760
+ function escapeHtml(html) {
1761
+ return html.replace(REGEXP_LT, "&lt;").replace(REGEXP_GT, "&gt;");
1762
+ }
1763
+
1764
+ /**
1765
+ * default safeAttrValue function
1766
+ *
1767
+ * @param {String} tag
1768
+ * @param {String} name
1769
+ * @param {String} value
1770
+ * @param {Object} cssFilter
1771
+ * @return {String}
1772
+ */
1773
+ function safeAttrValue(tag, name, value, cssFilter) {
1774
+ // unescape attribute value firstly
1775
+ value = friendlyAttrValue(value);
1776
+
1777
+ if (name === "href" || name === "src") {
1778
+ // filter `href` and `src` attribute
1779
+ // only allow the value that starts with `http://` | `https://` | `mailto:` | `/` | `#`
1780
+ value = _$2.trim(value);
1781
+ if (value === "#") return "#";
1782
+ if (
1783
+ !(
1784
+ value.substr(0, 7) === "http://" ||
1785
+ value.substr(0, 8) === "https://" ||
1786
+ value.substr(0, 7) === "mailto:" ||
1787
+ value.substr(0, 4) === "tel:" ||
1788
+ value.substr(0, 11) === "data:image/" ||
1789
+ value.substr(0, 6) === "ftp://" ||
1790
+ value.substr(0, 2) === "./" ||
1791
+ value.substr(0, 3) === "../" ||
1792
+ value[0] === "#" ||
1793
+ value[0] === "/"
1794
+ )
1795
+ ) {
1796
+ return "";
1797
+ }
1798
+ } else if (name === "background") {
1799
+ // filter `background` attribute (maybe no use)
1800
+ // `javascript:`
1801
+ REGEXP_DEFAULT_ON_TAG_ATTR_4.lastIndex = 0;
1802
+ if (REGEXP_DEFAULT_ON_TAG_ATTR_4.test(value)) {
1803
+ return "";
1804
+ }
1805
+ } else if (name === "style") {
1806
+ // `expression()`
1807
+ REGEXP_DEFAULT_ON_TAG_ATTR_7.lastIndex = 0;
1808
+ if (REGEXP_DEFAULT_ON_TAG_ATTR_7.test(value)) {
1809
+ return "";
1810
+ }
1811
+ // `url()`
1812
+ REGEXP_DEFAULT_ON_TAG_ATTR_8.lastIndex = 0;
1813
+ if (REGEXP_DEFAULT_ON_TAG_ATTR_8.test(value)) {
1814
+ REGEXP_DEFAULT_ON_TAG_ATTR_4.lastIndex = 0;
1815
+ if (REGEXP_DEFAULT_ON_TAG_ATTR_4.test(value)) {
1816
+ return "";
1817
+ }
1818
+ }
1819
+ if (cssFilter !== false) {
1820
+ cssFilter = cssFilter || defaultCSSFilter;
1821
+ value = cssFilter.process(value);
1822
+ }
1823
+ }
1824
+
1825
+ // escape `<>"` before returns
1826
+ value = escapeAttrValue(value);
1827
+ return value;
1828
+ }
1829
+
1830
+ // RegExp list
1831
+ var REGEXP_LT = /</g;
1832
+ var REGEXP_GT = />/g;
1833
+ var REGEXP_QUOTE = /"/g;
1834
+ var REGEXP_QUOTE_2 = /&quot;/g;
1835
+ var REGEXP_ATTR_VALUE_1 = /&#([a-zA-Z0-9]*);?/gim;
1836
+ var REGEXP_ATTR_VALUE_COLON = /&colon;?/gim;
1837
+ var REGEXP_ATTR_VALUE_NEWLINE = /&newline;?/gim;
1838
+ // var REGEXP_DEFAULT_ON_TAG_ATTR_3 = /\/\*|\*\//gm;
1839
+ var REGEXP_DEFAULT_ON_TAG_ATTR_4 =
1840
+ /((j\s*a\s*v\s*a|v\s*b|l\s*i\s*v\s*e)\s*s\s*c\s*r\s*i\s*p\s*t\s*|m\s*o\s*c\s*h\s*a):/gi;
1841
+ // var REGEXP_DEFAULT_ON_TAG_ATTR_5 = /^[\s"'`]*(d\s*a\s*t\s*a\s*)\:/gi;
1842
+ // var REGEXP_DEFAULT_ON_TAG_ATTR_6 = /^[\s"'`]*(d\s*a\s*t\s*a\s*)\:\s*image\//gi;
1843
+ var REGEXP_DEFAULT_ON_TAG_ATTR_7 =
1844
+ /e\s*x\s*p\s*r\s*e\s*s\s*s\s*i\s*o\s*n\s*\(.*/gi;
1845
+ var REGEXP_DEFAULT_ON_TAG_ATTR_8 = /u\s*r\s*l\s*\(.*/gi;
1846
+
1847
+ /**
1848
+ * escape double quote
1849
+ *
1850
+ * @param {String} str
1851
+ * @return {String} str
1852
+ */
1853
+ function escapeQuote(str) {
1854
+ return str.replace(REGEXP_QUOTE, "&quot;");
1855
+ }
1856
+
1857
+ /**
1858
+ * unescape double quote
1859
+ *
1860
+ * @param {String} str
1861
+ * @return {String} str
1862
+ */
1863
+ function unescapeQuote(str) {
1864
+ return str.replace(REGEXP_QUOTE_2, '"');
1865
+ }
1866
+
1867
+ /**
1868
+ * escape html entities
1869
+ *
1870
+ * @param {String} str
1871
+ * @return {String}
1872
+ */
1873
+ function escapeHtmlEntities(str) {
1874
+ return str.replace(REGEXP_ATTR_VALUE_1, function replaceUnicode(str, code) {
1875
+ return code[0] === "x" || code[0] === "X"
1876
+ ? String.fromCharCode(parseInt(code.substr(1), 16))
1877
+ : String.fromCharCode(parseInt(code, 10));
1878
+ });
1879
+ }
1880
+
1881
+ /**
1882
+ * escape html5 new danger entities
1883
+ *
1884
+ * @param {String} str
1885
+ * @return {String}
1886
+ */
1887
+ function escapeDangerHtml5Entities(str) {
1888
+ return str
1889
+ .replace(REGEXP_ATTR_VALUE_COLON, ":")
1890
+ .replace(REGEXP_ATTR_VALUE_NEWLINE, " ");
1891
+ }
1892
+
1893
+ /**
1894
+ * clear nonprintable characters
1895
+ *
1896
+ * @param {String} str
1897
+ * @return {String}
1898
+ */
1899
+ function clearNonPrintableCharacter(str) {
1900
+ var str2 = "";
1901
+ for (var i = 0, len = str.length; i < len; i++) {
1902
+ str2 += str.charCodeAt(i) < 32 ? " " : str.charAt(i);
1903
+ }
1904
+ return _$2.trim(str2);
1905
+ }
1906
+
1907
+ /**
1908
+ * get friendly attribute value
1909
+ *
1910
+ * @param {String} str
1911
+ * @return {String}
1912
+ */
1913
+ function friendlyAttrValue(str) {
1914
+ str = unescapeQuote(str);
1915
+ str = escapeHtmlEntities(str);
1916
+ str = escapeDangerHtml5Entities(str);
1917
+ str = clearNonPrintableCharacter(str);
1918
+ return str;
1919
+ }
1920
+
1921
+ /**
1922
+ * unescape attribute value
1923
+ *
1924
+ * @param {String} str
1925
+ * @return {String}
1926
+ */
1927
+ function escapeAttrValue(str) {
1928
+ str = escapeQuote(str);
1929
+ str = escapeHtml(str);
1930
+ return str;
1931
+ }
1932
+
1933
+ /**
1934
+ * `onIgnoreTag` function for removing all the tags that are not in whitelist
1935
+ */
1936
+ function onIgnoreTagStripAll() {
1937
+ return "";
1938
+ }
1939
+
1940
+ /**
1941
+ * remove tag body
1942
+ * specify a `tags` list, if the tag is not in the `tags` list then process by the specify function (optional)
1943
+ *
1944
+ * @param {array} tags
1945
+ * @param {function} next
1946
+ */
1947
+ function StripTagBody(tags, next) {
1948
+ if (typeof next !== "function") {
1949
+ next = function () {};
1950
+ }
1951
+
1952
+ var isRemoveAllTag = !Array.isArray(tags);
1953
+ function isRemoveTag(tag) {
1954
+ if (isRemoveAllTag) return true;
1955
+ return _$2.indexOf(tags, tag) !== -1;
1956
+ }
1957
+
1958
+ var removeList = [];
1959
+ var posStart = false;
1960
+
1961
+ return {
1962
+ onIgnoreTag: function (tag, html, options) {
1963
+ if (isRemoveTag(tag)) {
1964
+ if (options.isClosing) {
1965
+ var ret = "[/removed]";
1966
+ var end = options.position + ret.length;
1967
+ removeList.push([
1968
+ posStart !== false ? posStart : options.position,
1969
+ end,
1970
+ ]);
1971
+ posStart = false;
1972
+ return ret;
1973
+ } else {
1974
+ if (!posStart) {
1975
+ posStart = options.position;
1976
+ }
1977
+ return "[removed]";
1978
+ }
1979
+ } else {
1980
+ return next(tag, html, options);
1981
+ }
1982
+ },
1983
+ remove: function (html) {
1984
+ var rethtml = "";
1985
+ var lastPos = 0;
1986
+ _$2.forEach(removeList, function (pos) {
1987
+ rethtml += html.slice(lastPos, pos[0]);
1988
+ lastPos = pos[1];
1989
+ });
1990
+ rethtml += html.slice(lastPos);
1991
+ return rethtml;
1992
+ },
1993
+ };
1994
+ }
1995
+
1996
+ /**
1997
+ * remove html comments
1998
+ *
1999
+ * @param {String} html
2000
+ * @return {String}
2001
+ */
2002
+ function stripCommentTag(html) {
2003
+ var retHtml = "";
2004
+ var lastPos = 0;
2005
+ while (lastPos < html.length) {
2006
+ var i = html.indexOf("<!--", lastPos);
2007
+ if (i === -1) {
2008
+ retHtml += html.slice(lastPos);
2009
+ break;
2010
+ }
2011
+ retHtml += html.slice(lastPos, i);
2012
+ var j = html.indexOf("-->", i);
2013
+ if (j === -1) {
2014
+ break;
2015
+ }
2016
+ lastPos = j + 3;
2017
+ }
2018
+ return retHtml;
2019
+ }
2020
+
2021
+ /**
2022
+ * remove invisible characters
2023
+ *
2024
+ * @param {String} html
2025
+ * @return {String}
2026
+ */
2027
+ function stripBlankChar(html) {
2028
+ var chars = html.split("");
2029
+ chars = chars.filter(function (char) {
2030
+ var c = char.charCodeAt(0);
2031
+ if (c === 127) return false;
2032
+ if (c <= 31) {
2033
+ if (c === 10 || c === 13) return true;
2034
+ return false;
2035
+ }
2036
+ return true;
2037
+ });
2038
+ return chars.join("");
2039
+ }
2040
+
2041
+ _default$1.whiteList = getDefaultWhiteList();
2042
+ _default$1.getDefaultWhiteList = getDefaultWhiteList;
2043
+ _default$1.onTag = onTag;
2044
+ _default$1.onIgnoreTag = onIgnoreTag;
2045
+ _default$1.onTagAttr = onTagAttr;
2046
+ _default$1.onIgnoreTagAttr = onIgnoreTagAttr;
2047
+ _default$1.safeAttrValue = safeAttrValue;
2048
+ _default$1.escapeHtml = escapeHtml;
2049
+ _default$1.escapeQuote = escapeQuote;
2050
+ _default$1.unescapeQuote = unescapeQuote;
2051
+ _default$1.escapeHtmlEntities = escapeHtmlEntities;
2052
+ _default$1.escapeDangerHtml5Entities = escapeDangerHtml5Entities;
2053
+ _default$1.clearNonPrintableCharacter = clearNonPrintableCharacter;
2054
+ _default$1.friendlyAttrValue = friendlyAttrValue;
2055
+ _default$1.escapeAttrValue = escapeAttrValue;
2056
+ _default$1.onIgnoreTagStripAll = onIgnoreTagStripAll;
2057
+ _default$1.StripTagBody = StripTagBody;
2058
+ _default$1.stripCommentTag = stripCommentTag;
2059
+ _default$1.stripBlankChar = stripBlankChar;
2060
+ _default$1.cssFilter = defaultCSSFilter;
2061
+ _default$1.getDefaultCSSWhiteList = getDefaultCSSWhiteList;
2062
+
2063
+ var parser$1 = {};
2064
+
2065
+ /**
2066
+ * Simple HTML Parser
2067
+ *
2068
+ * @author Zongmin Lei<leizongmin@gmail.com>
2069
+ */
2070
+
2071
+ var _$1 = util;
2072
+
2073
+ /**
2074
+ * get tag name
2075
+ *
2076
+ * @param {String} html e.g. '<a hef="#">'
2077
+ * @return {String}
2078
+ */
2079
+ function getTagName(html) {
2080
+ var i = _$1.spaceIndex(html);
2081
+ var tagName;
2082
+ if (i === -1) {
2083
+ tagName = html.slice(1, -1);
2084
+ } else {
2085
+ tagName = html.slice(1, i + 1);
2086
+ }
2087
+ tagName = _$1.trim(tagName).toLowerCase();
2088
+ if (tagName.slice(0, 1) === "/") tagName = tagName.slice(1);
2089
+ if (tagName.slice(-1) === "/") tagName = tagName.slice(0, -1);
2090
+ return tagName;
2091
+ }
2092
+
2093
+ /**
2094
+ * is close tag?
2095
+ *
2096
+ * @param {String} html 如:'<a hef="#">'
2097
+ * @return {Boolean}
2098
+ */
2099
+ function isClosing(html) {
2100
+ return html.slice(0, 2) === "</";
2101
+ }
2102
+
2103
+ /**
2104
+ * parse input html and returns processed html
2105
+ *
2106
+ * @param {String} html
2107
+ * @param {Function} onTag e.g. function (sourcePosition, position, tag, html, isClosing)
2108
+ * @param {Function} escapeHtml
2109
+ * @return {String}
2110
+ */
2111
+ function parseTag$1(html, onTag, escapeHtml) {
2112
+
2113
+ var rethtml = "";
2114
+ var lastPos = 0;
2115
+ var tagStart = false;
2116
+ var quoteStart = false;
2117
+ var currentPos = 0;
2118
+ var len = html.length;
2119
+ var currentTagName = "";
2120
+ var currentHtml = "";
2121
+
2122
+ chariterator: for (currentPos = 0; currentPos < len; currentPos++) {
2123
+ var c = html.charAt(currentPos);
2124
+ if (tagStart === false) {
2125
+ if (c === "<") {
2126
+ tagStart = currentPos;
2127
+ continue;
2128
+ }
2129
+ } else {
2130
+ if (quoteStart === false) {
2131
+ if (c === "<") {
2132
+ rethtml += escapeHtml(html.slice(lastPos, currentPos));
2133
+ tagStart = currentPos;
2134
+ lastPos = currentPos;
2135
+ continue;
2136
+ }
2137
+ if (c === ">") {
2138
+ rethtml += escapeHtml(html.slice(lastPos, tagStart));
2139
+ currentHtml = html.slice(tagStart, currentPos + 1);
2140
+ currentTagName = getTagName(currentHtml);
2141
+ rethtml += onTag(
2142
+ tagStart,
2143
+ rethtml.length,
2144
+ currentTagName,
2145
+ currentHtml,
2146
+ isClosing(currentHtml)
2147
+ );
2148
+ lastPos = currentPos + 1;
2149
+ tagStart = false;
2150
+ continue;
2151
+ }
2152
+ if (c === '"' || c === "'") {
2153
+ var i = 1;
2154
+ var ic = html.charAt(currentPos - i);
2155
+
2156
+ while (ic.trim() === "" || ic === "=") {
2157
+ if (ic === "=") {
2158
+ quoteStart = c;
2159
+ continue chariterator;
2160
+ }
2161
+ ic = html.charAt(currentPos - ++i);
2162
+ }
2163
+ }
2164
+ } else {
2165
+ if (c === quoteStart) {
2166
+ quoteStart = false;
2167
+ continue;
2168
+ }
2169
+ }
2170
+ }
2171
+ }
2172
+ if (lastPos < html.length) {
2173
+ rethtml += escapeHtml(html.substr(lastPos));
2174
+ }
2175
+
2176
+ return rethtml;
2177
+ }
2178
+
2179
+ var REGEXP_ILLEGAL_ATTR_NAME = /[^a-zA-Z0-9\\_:.-]/gim;
2180
+
2181
+ /**
2182
+ * parse input attributes and returns processed attributes
2183
+ *
2184
+ * @param {String} html e.g. `href="#" target="_blank"`
2185
+ * @param {Function} onAttr e.g. `function (name, value)`
2186
+ * @return {String}
2187
+ */
2188
+ function parseAttr$1(html, onAttr) {
2189
+
2190
+ var lastPos = 0;
2191
+ var lastMarkPos = 0;
2192
+ var retAttrs = [];
2193
+ var tmpName = false;
2194
+ var len = html.length;
2195
+
2196
+ function addAttr(name, value) {
2197
+ name = _$1.trim(name);
2198
+ name = name.replace(REGEXP_ILLEGAL_ATTR_NAME, "").toLowerCase();
2199
+ if (name.length < 1) return;
2200
+ var ret = onAttr(name, value || "");
2201
+ if (ret) retAttrs.push(ret);
2202
+ }
2203
+
2204
+ // 逐个分析字符
2205
+ for (var i = 0; i < len; i++) {
2206
+ var c = html.charAt(i);
2207
+ var v, j;
2208
+ if (tmpName === false && c === "=") {
2209
+ tmpName = html.slice(lastPos, i);
2210
+ lastPos = i + 1;
2211
+ lastMarkPos = html.charAt(lastPos) === '"' || html.charAt(lastPos) === "'" ? lastPos : findNextQuotationMark(html, i + 1);
2212
+ continue;
2213
+ }
2214
+ if (tmpName !== false) {
2215
+ if (
2216
+ i === lastMarkPos
2217
+ ) {
2218
+ j = html.indexOf(c, i + 1);
2219
+ if (j === -1) {
2220
+ break;
2221
+ } else {
2222
+ v = _$1.trim(html.slice(lastMarkPos + 1, j));
2223
+ addAttr(tmpName, v);
2224
+ tmpName = false;
2225
+ i = j;
2226
+ lastPos = i + 1;
2227
+ continue;
2228
+ }
2229
+ }
2230
+ }
2231
+ if (/\s|\n|\t/.test(c)) {
2232
+ html = html.replace(/\s|\n|\t/g, " ");
2233
+ if (tmpName === false) {
2234
+ j = findNextEqual(html, i);
2235
+ if (j === -1) {
2236
+ v = _$1.trim(html.slice(lastPos, i));
2237
+ addAttr(v);
2238
+ tmpName = false;
2239
+ lastPos = i + 1;
2240
+ continue;
2241
+ } else {
2242
+ i = j - 1;
2243
+ continue;
2244
+ }
2245
+ } else {
2246
+ j = findBeforeEqual(html, i - 1);
2247
+ if (j === -1) {
2248
+ v = _$1.trim(html.slice(lastPos, i));
2249
+ v = stripQuoteWrap(v);
2250
+ addAttr(tmpName, v);
2251
+ tmpName = false;
2252
+ lastPos = i + 1;
2253
+ continue;
2254
+ } else {
2255
+ continue;
2256
+ }
2257
+ }
2258
+ }
2259
+ }
2260
+
2261
+ if (lastPos < html.length) {
2262
+ if (tmpName === false) {
2263
+ addAttr(html.slice(lastPos));
2264
+ } else {
2265
+ addAttr(tmpName, stripQuoteWrap(_$1.trim(html.slice(lastPos))));
2266
+ }
2267
+ }
2268
+
2269
+ return _$1.trim(retAttrs.join(" "));
2270
+ }
2271
+
2272
+ function findNextEqual(str, i) {
2273
+ for (; i < str.length; i++) {
2274
+ var c = str[i];
2275
+ if (c === " ") continue;
2276
+ if (c === "=") return i;
2277
+ return -1;
2278
+ }
2279
+ }
2280
+
2281
+ function findNextQuotationMark(str, i) {
2282
+ for (; i < str.length; i++) {
2283
+ var c = str[i];
2284
+ if (c === " ") continue;
2285
+ if (c === "'" || c === '"') return i;
2286
+ return -1;
2287
+ }
2288
+ }
2289
+
2290
+ function findBeforeEqual(str, i) {
2291
+ for (; i > 0; i--) {
2292
+ var c = str[i];
2293
+ if (c === " ") continue;
2294
+ if (c === "=") return i;
2295
+ return -1;
2296
+ }
2297
+ }
2298
+
2299
+ function isQuoteWrapString(text) {
2300
+ if (
2301
+ (text[0] === '"' && text[text.length - 1] === '"') ||
2302
+ (text[0] === "'" && text[text.length - 1] === "'")
2303
+ ) {
2304
+ return true;
2305
+ } else {
2306
+ return false;
2307
+ }
2308
+ }
2309
+
2310
+ function stripQuoteWrap(text) {
2311
+ if (isQuoteWrapString(text)) {
2312
+ return text.substr(1, text.length - 2);
2313
+ } else {
2314
+ return text;
2315
+ }
2316
+ }
2317
+
2318
+ parser$1.parseTag = parseTag$1;
2319
+ parser$1.parseAttr = parseAttr$1;
2320
+
2321
+ /**
2322
+ * filter xss
2323
+ *
2324
+ * @author Zongmin Lei<leizongmin@gmail.com>
2325
+ */
2326
+
2327
+ var FilterCSS = lib.exports.FilterCSS;
2328
+ var DEFAULT = _default$1;
2329
+ var parser = parser$1;
2330
+ var parseTag = parser.parseTag;
2331
+ var parseAttr = parser.parseAttr;
2332
+ var _ = util;
2333
+
2334
+ /**
2335
+ * returns `true` if the input value is `undefined` or `null`
2336
+ *
2337
+ * @param {Object} obj
2338
+ * @return {Boolean}
2339
+ */
2340
+ function isNull(obj) {
2341
+ return obj === undefined || obj === null;
2342
+ }
2343
+
2344
+ /**
2345
+ * get attributes for a tag
2346
+ *
2347
+ * @param {String} html
2348
+ * @return {Object}
2349
+ * - {String} html
2350
+ * - {Boolean} closing
2351
+ */
2352
+ function getAttrs(html) {
2353
+ var i = _.spaceIndex(html);
2354
+ if (i === -1) {
2355
+ return {
2356
+ html: "",
2357
+ closing: html[html.length - 2] === "/",
2358
+ };
2359
+ }
2360
+ html = _.trim(html.slice(i + 1, -1));
2361
+ var isClosing = html[html.length - 1] === "/";
2362
+ if (isClosing) html = _.trim(html.slice(0, -1));
2363
+ return {
2364
+ html: html,
2365
+ closing: isClosing,
2366
+ };
2367
+ }
2368
+
2369
+ /**
2370
+ * shallow copy
2371
+ *
2372
+ * @param {Object} obj
2373
+ * @return {Object}
2374
+ */
2375
+ function shallowCopyObject(obj) {
2376
+ var ret = {};
2377
+ for (var i in obj) {
2378
+ ret[i] = obj[i];
2379
+ }
2380
+ return ret;
2381
+ }
2382
+
2383
+ function keysToLowerCase(obj) {
2384
+ var ret = {};
2385
+ for (var i in obj) {
2386
+ if (Array.isArray(obj[i])) {
2387
+ ret[i.toLowerCase()] = obj[i].map(function (item) {
2388
+ return item.toLowerCase();
2389
+ });
2390
+ } else {
2391
+ ret[i.toLowerCase()] = obj[i];
2392
+ }
2393
+ }
2394
+ return ret;
2395
+ }
2396
+
2397
+ /**
2398
+ * FilterXSS class
2399
+ *
2400
+ * @param {Object} options
2401
+ * whiteList (or allowList), onTag, onTagAttr, onIgnoreTag,
2402
+ * onIgnoreTagAttr, safeAttrValue, escapeHtml
2403
+ * stripIgnoreTagBody, allowCommentTag, stripBlankChar
2404
+ * css{whiteList, onAttr, onIgnoreAttr} `css=false` means don't use `cssfilter`
2405
+ */
2406
+ function FilterXSS(options) {
2407
+ options = shallowCopyObject(options || {});
2408
+
2409
+ if (options.stripIgnoreTag) {
2410
+ if (options.onIgnoreTag) {
2411
+ console.error(
2412
+ 'Notes: cannot use these two options "stripIgnoreTag" and "onIgnoreTag" at the same time'
2413
+ );
2414
+ }
2415
+ options.onIgnoreTag = DEFAULT.onIgnoreTagStripAll;
2416
+ }
2417
+ if (options.whiteList || options.allowList) {
2418
+ options.whiteList = keysToLowerCase(options.whiteList || options.allowList);
2419
+ } else {
2420
+ options.whiteList = DEFAULT.whiteList;
2421
+ }
2422
+
2423
+ options.onTag = options.onTag || DEFAULT.onTag;
2424
+ options.onTagAttr = options.onTagAttr || DEFAULT.onTagAttr;
2425
+ options.onIgnoreTag = options.onIgnoreTag || DEFAULT.onIgnoreTag;
2426
+ options.onIgnoreTagAttr = options.onIgnoreTagAttr || DEFAULT.onIgnoreTagAttr;
2427
+ options.safeAttrValue = options.safeAttrValue || DEFAULT.safeAttrValue;
2428
+ options.escapeHtml = options.escapeHtml || DEFAULT.escapeHtml;
2429
+ this.options = options;
2430
+
2431
+ if (options.css === false) {
2432
+ this.cssFilter = false;
2433
+ } else {
2434
+ options.css = options.css || {};
2435
+ this.cssFilter = new FilterCSS(options.css);
2436
+ }
2437
+ }
2438
+
2439
+ /**
2440
+ * start process and returns result
2441
+ *
2442
+ * @param {String} html
2443
+ * @return {String}
2444
+ */
2445
+ FilterXSS.prototype.process = function (html) {
2446
+ // compatible with the input
2447
+ html = html || "";
2448
+ html = html.toString();
2449
+ if (!html) return "";
2450
+
2451
+ var me = this;
2452
+ var options = me.options;
2453
+ var whiteList = options.whiteList;
2454
+ var onTag = options.onTag;
2455
+ var onIgnoreTag = options.onIgnoreTag;
2456
+ var onTagAttr = options.onTagAttr;
2457
+ var onIgnoreTagAttr = options.onIgnoreTagAttr;
2458
+ var safeAttrValue = options.safeAttrValue;
2459
+ var escapeHtml = options.escapeHtml;
2460
+ var cssFilter = me.cssFilter;
2461
+
2462
+ // remove invisible characters
2463
+ if (options.stripBlankChar) {
2464
+ html = DEFAULT.stripBlankChar(html);
2465
+ }
2466
+
2467
+ // remove html comments
2468
+ if (!options.allowCommentTag) {
2469
+ html = DEFAULT.stripCommentTag(html);
2470
+ }
2471
+
2472
+ // if enable stripIgnoreTagBody
2473
+ var stripIgnoreTagBody = false;
2474
+ if (options.stripIgnoreTagBody) {
2475
+ stripIgnoreTagBody = DEFAULT.StripTagBody(
2476
+ options.stripIgnoreTagBody,
2477
+ onIgnoreTag
2478
+ );
2479
+ onIgnoreTag = stripIgnoreTagBody.onIgnoreTag;
2480
+ }
2481
+
2482
+ var retHtml = parseTag(
2483
+ html,
2484
+ function (sourcePosition, position, tag, html, isClosing) {
2485
+ var info = {
2486
+ sourcePosition: sourcePosition,
2487
+ position: position,
2488
+ isClosing: isClosing,
2489
+ isWhite: Object.prototype.hasOwnProperty.call(whiteList, tag),
2490
+ };
2491
+
2492
+ // call `onTag()`
2493
+ var ret = onTag(tag, html, info);
2494
+ if (!isNull(ret)) return ret;
2495
+
2496
+ if (info.isWhite) {
2497
+ if (info.isClosing) {
2498
+ return "</" + tag + ">";
2499
+ }
2500
+
2501
+ var attrs = getAttrs(html);
2502
+ var whiteAttrList = whiteList[tag];
2503
+ var attrsHtml = parseAttr(attrs.html, function (name, value) {
2504
+ // call `onTagAttr()`
2505
+ var isWhiteAttr = _.indexOf(whiteAttrList, name) !== -1;
2506
+ var ret = onTagAttr(tag, name, value, isWhiteAttr);
2507
+ if (!isNull(ret)) return ret;
2508
+
2509
+ if (isWhiteAttr) {
2510
+ // call `safeAttrValue()`
2511
+ value = safeAttrValue(tag, name, value, cssFilter);
2512
+ if (value) {
2513
+ return name + '="' + value + '"';
2514
+ } else {
2515
+ return name;
2516
+ }
2517
+ } else {
2518
+ // call `onIgnoreTagAttr()`
2519
+ ret = onIgnoreTagAttr(tag, name, value, isWhiteAttr);
2520
+ if (!isNull(ret)) return ret;
2521
+ return;
2522
+ }
2523
+ });
2524
+
2525
+ // build new tag html
2526
+ html = "<" + tag;
2527
+ if (attrsHtml) html += " " + attrsHtml;
2528
+ if (attrs.closing) html += " /";
2529
+ html += ">";
2530
+ return html;
2531
+ } else {
2532
+ // call `onIgnoreTag()`
2533
+ ret = onIgnoreTag(tag, html, info);
2534
+ if (!isNull(ret)) return ret;
2535
+ return escapeHtml(html);
2536
+ }
2537
+ },
2538
+ escapeHtml
2539
+ );
2540
+
2541
+ // if enable stripIgnoreTagBody
2542
+ if (stripIgnoreTagBody) {
2543
+ retHtml = stripIgnoreTagBody.remove(retHtml);
2544
+ }
2545
+
2546
+ return retHtml;
2547
+ };
2548
+
2549
+ var xss = FilterXSS;
2550
+
2551
+ /**
2552
+ * xss
2553
+ *
2554
+ * @author Zongmin Lei<leizongmin@gmail.com>
2555
+ */
2556
+
2557
+ (function (module, exports) {
2558
+ var DEFAULT = _default$1;
2559
+ var parser = parser$1;
2560
+ var FilterXSS = xss;
2561
+
2562
+ /**
2563
+ * filter xss function
2564
+ *
2565
+ * @param {String} html
2566
+ * @param {Object} options { whiteList, onTag, onTagAttr, onIgnoreTag, onIgnoreTagAttr, safeAttrValue, escapeHtml }
2567
+ * @return {String}
2568
+ */
2569
+ function filterXSS(html, options) {
2570
+ var xss = new FilterXSS(options);
2571
+ return xss.process(html);
2572
+ }
2573
+
2574
+ exports = module.exports = filterXSS;
2575
+ exports.filterXSS = filterXSS;
2576
+ exports.FilterXSS = FilterXSS;
2577
+
2578
+ (function () {
2579
+ for (var i in DEFAULT) {
2580
+ exports[i] = DEFAULT[i];
2581
+ }
2582
+ for (var j in parser) {
2583
+ exports[j] = parser[j];
2584
+ }
2585
+ })();
2586
+
2587
+ // using `xss` on the WebWorker, output `filterXSS` to the globals
2588
+ function isWorkerEnv() {
2589
+ return (
2590
+ typeof self !== "undefined" &&
2591
+ typeof DedicatedWorkerGlobalScope !== "undefined" &&
2592
+ self instanceof DedicatedWorkerGlobalScope
2593
+ );
2594
+ }
2595
+ if (isWorkerEnv()) {
2596
+ self.filterXSS = module.exports;
2597
+ }
2598
+ } (lib$1, lib$1.exports));
2599
+
2600
+ /** @license
2601
+ * Copyright 2020 Esri
2602
+ *
2603
+ * Licensed under the Apache License, Version 2.0 (the "License");
2604
+ * you may not use this file except in compliance with the License.
2605
+ * You may obtain a copy of the License at
2606
+ *
2607
+ * http://www.apache.org/licenses/LICENSE-2.0
2608
+ *
2609
+ * Unless required by applicable law or agreed to in writing, software
2610
+ * distributed under the License is distributed on an "AS IS" BASIS,
2611
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2612
+ * See the License for the specific language governing permissions and
2613
+ * limitations under the License.
2614
+ */
2615
+ /**
2616
+ * Supplies the File constructor for Microsoft Legacy Edge.
2617
+ *
2618
+ * @param fileBits Contents for file
2619
+ * @param fileName Name for file
2620
+ * @param options Bucket of options, euch as `type` for the MIME type; defaults to empty string for `type`
2621
+ * @returns File or, for Microsoft Legacy Edge, Blob
2622
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/File/File
2623
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/Blob/Blob
2624
+ */
2625
+ function new_File(fileBits, fileName, options) {
2626
+ let file;
2627
+ try {
2628
+ // Modern browser
2629
+ file = new File(fileBits, fileName, options);
2630
+ }
2631
+ catch (error) {
2632
+ // Microsoft Legacy Edge
2633
+ /* istanbul ignore next */
2634
+ file = (function () {
2635
+ if (typeof options === "undefined") {
2636
+ // Microsoft Legacy Edge fails in karma if options is not defined
2637
+ options = {
2638
+ type: ""
2639
+ };
2640
+ }
2641
+ const blob = new Blob(fileBits, options);
2642
+ blob.lastModified = new Date();
2643
+ blob.name = fileName;
2644
+ return blob;
2645
+ })();
2646
+ }
2647
+ return file;
2648
+ }
2649
+
2650
+ /** @license
2651
+ * Copyright 2018 Esri
2652
+ *
2653
+ * Licensed under the Apache License, Version 2.0 (the "License");
2654
+ * you may not use this file except in compliance with the License.
2655
+ * You may obtain a copy of the License at
2656
+ *
2657
+ * http://www.apache.org/licenses/LICENSE-2.0
2658
+ *
2659
+ * Unless required by applicable law or agreed to in writing, software
2660
+ * distributed under the License is distributed on an "AS IS" BASIS,
2661
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2662
+ * See the License for the specific language governing permissions and
2663
+ * limitations under the License.
2664
+ */
2665
+ /**
2666
+ * Extracts JSON from a Blob.
2667
+ *
2668
+ * @param blob Blob to use as source
2669
+ * @returns A promise that will resolve with JSON or null
2670
+ */
2671
+ function blobToJson(blob) {
2672
+ return new Promise(resolve => {
2673
+ blobToText(blob).then(blobContents => {
2674
+ try {
2675
+ resolve(JSON.parse(blobContents));
2676
+ }
2677
+ catch (err) {
2678
+ resolve(null);
2679
+ }
2680
+ }, () => resolve(null));
2681
+ });
2682
+ }
2683
+ /**
2684
+ * Converts a Blob to a File.
2685
+ *
2686
+ * @param blob Blob to use as source
2687
+ * @param filename Name to use for file
2688
+ * @param mimeType MIME type to override blob's MIME type
2689
+ * @returns File created out of Blob and filename
2690
+ */
2691
+ function blobToFile(blob, filename, mimeType) {
2692
+ return blob
2693
+ ? new_File([blob], filename ? filename : "", {
2694
+ type: mimeType || blob.type
2695
+ })
2696
+ : null;
2697
+ }
2698
+ /**
2699
+ * Extracts text from a Blob.
2700
+ *
2701
+ * @param blob Blob to use as source
2702
+ * @returns A promise that will resolve with text read from blob
2703
+ */
2704
+ function blobToText(blob) {
2705
+ return new Promise(resolve => {
2706
+ const reader = new FileReader();
2707
+ reader.onload = function (evt) {
2708
+ // Disable needed because Node requires cast
2709
+ // tslint:disable-next-line: no-unnecessary-type-assertion
2710
+ const blobContents = evt.target.result;
2711
+ resolve(blobContents ? blobContents : ""); // not handling ArrayContents variant
2712
+ };
2713
+ reader.readAsText(blob);
2714
+ });
2715
+ }
2716
+ /**
2717
+ * Checks that a URL path ends with a slash.
2718
+ *
2719
+ * @param url URL to check
2720
+ * @returns URL, appended with slash if missing
2721
+ */
2722
+ function checkUrlPathTermination(url) {
2723
+ return url ? (url.endsWith("/") ? url : url + "/") : url;
2724
+ }
2725
+ /**
2726
+ * Gets a property out of a deeply nested object.
2727
+ * Does not handle anything but nested object graph
2728
+ *
2729
+ * @param obj Object to retrieve value from
2730
+ * @param path Path into an object, e.g., "data.values.webmap", where "data" is a top-level property
2731
+ * in obj
2732
+ * @returns Value at end of path
2733
+ */
2734
+ function getProp(obj, path) {
2735
+ return path.split(".").reduce(function (prev, curr) {
2736
+ /* istanbul ignore next no need to test undefined scenario */
2737
+ return prev ? prev[curr] : undefined;
2738
+ }, obj);
2739
+ }
2740
+ /**
2741
+ * Sets a deeply nested property of an object.
2742
+ * Creates the full path if it does not exist.
2743
+ *
2744
+ * @param obj Object to set value of
2745
+ * @param path Path into an object, e.g., "data.values.webmap", where "data" is a top-level property in obj
2746
+ * @param value The value to set at the end of the path
2747
+ */
2748
+ function setCreateProp(obj, path, value) {
2749
+ const pathParts = path.split(".");
2750
+ pathParts.reduce((a, b, c) => {
2751
+ if (c === pathParts.length - 1) {
2752
+ a[b] = value;
2753
+ return value;
2754
+ }
2755
+ else {
2756
+ if (!a[b]) {
2757
+ a[b] = {};
2758
+ }
2759
+ return a[b];
2760
+ }
2761
+ }, obj);
2762
+ }
2763
+
2764
+ /**
2765
+ * Gets a Blob from a web site.
2766
+ *
2767
+ * @param url Address of Blob
2768
+ * @param authentication Credentials for the request
2769
+ * @param requestOptions - Options for the request, including parameters relevant to the endpoint.
2770
+ * @returns Promise that will resolve with Blob or an AGO-style JSON failure response
2771
+ */
2772
+ function getBlob(url, authentication, requestOptions = {}) {
2773
+ if (!url) {
2774
+ return Promise.reject("Url must be provided");
2775
+ }
2776
+ const blobRequestOptions = {
2777
+ authentication: authentication,
2778
+ rawResponse: true,
2779
+ ...requestOptions
2780
+ };
2781
+ return request(url, blobRequestOptions).then(response => {
2782
+ return response.blob();
2783
+ });
2784
+ }
2785
+
2786
+ /** @license
2787
+ * Copyright 2018 Esri
2788
+ *
2789
+ * Licensed under the Apache License, Version 2.0 (the "License");
2790
+ * you may not use this file except in compliance with the License.
2791
+ * You may obtain a copy of the License at
2792
+ *
2793
+ * http://www.apache.org/licenses/LICENSE-2.0
2794
+ *
2795
+ * Unless required by applicable law or agreed to in writing, software
2796
+ * distributed under the License is distributed on an "AS IS" BASIS,
2797
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2798
+ * See the License for the specific language governing permissions and
2799
+ * limitations under the License.
2800
+ */
2801
+ // ------------------------------------------------------------------------------------------------------------------ //
2802
+ const ZIP_FILE_HEADER_SIGNATURE = "PK";
2803
+ /**
2804
+ * Gets a Blob from a web site and casts it as a file using the supplied name.
2805
+ *
2806
+ * @param url Address of Blob
2807
+ * @param filename Name to use for file
2808
+ * @param authentication Credentials for the request
2809
+ * @returns Promise that will resolve with a File, undefined if the Blob is null, or an AGO-style JSON failure response
2810
+ */
2811
+ function getBlobAsFile(url, filename, authentication, ignoreErrors = [], mimeType) {
2812
+ return new Promise((resolve, reject) => {
2813
+ // Get the blob from the URL
2814
+ getBlobCheckForError(url, authentication, ignoreErrors).then(blob => !blob ? resolve(null) : resolve(blobToFile(blob, filename, mimeType)), reject);
2815
+ });
2816
+ }
2817
+ /**
2818
+ * Gets a Blob from a web site and checks for a JSON error packet in the Blob.
2819
+ *
2820
+ * @param url Address of Blob
2821
+ * @param authentication Credentials for the request
2822
+ * @param ignoreErrors List of HTTP error codes that should be ignored
2823
+ * @returns Promise that will resolve with Blob or an AGO-REST JSON failure response
2824
+ */
2825
+ function getBlobCheckForError(url, authentication, ignoreErrors = []) {
2826
+ return new Promise((resolve, reject) => {
2827
+ // Get the blob from the URL
2828
+ getBlob(url, authentication).then(blob => {
2829
+ // Reclassify text/plain blobs as needed
2830
+ _fixTextBlobType(blob).then(adjustedBlob => {
2831
+ if (adjustedBlob.type === "application/json") {
2832
+ // Blob may be an error
2833
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
2834
+ blobToJson(adjustedBlob).then((json) => {
2835
+ // Check for valid JSON with an error
2836
+ if (json?.error) {
2837
+ const code = json.error.code;
2838
+ if (code !== undefined && ignoreErrors.indexOf(code) >= 0) {
2839
+ resolve(null); // Error, but ignored
2840
+ }
2841
+ else {
2842
+ reject(json); // Other error; fail with error
2843
+ }
2844
+ }
2845
+ else {
2846
+ resolve(adjustedBlob);
2847
+ }
2848
+ });
2849
+ }
2850
+ else {
2851
+ resolve(adjustedBlob);
2852
+ }
2853
+ }, reject);
2854
+ }, reject);
2855
+ });
2856
+ }
2857
+ /**
2858
+ * Gets the data information of an AGO item in its JSON form.
2859
+ *
2860
+ * @param itemId Id of an item whose data information is sought
2861
+ * @param filename Name to use for file
2862
+ * @param authentication Credentials for the request to AGO
2863
+ * @returns Promise that will resolve with JSON, or an AGO-style JSON failure response
2864
+ */
2865
+ function getItemDataAsJson(itemId, authentication) {
2866
+ return new Promise(resolve => {
2867
+ getItemDataBlob(itemId, authentication).then(blob => resolve(blobToJson(blob)), () => resolve(null));
2868
+ });
2869
+ }
2870
+ /**
2871
+ * Gets the data information of an AGO item in its raw (Blob) form.
2872
+ *
2873
+ * @param itemId Id of an item whose data information is sought
2874
+ * @param authentication Credentials for the request to AGO
2875
+ * @returns A promise that will resolve with the data Blob or null if the item doesn't have a data section
2876
+ */
2877
+ function getItemDataBlob(itemId, authentication) {
2878
+ return new Promise(resolve => {
2879
+ const url = getItemDataBlobUrl(itemId, authentication);
2880
+ getBlobCheckForError(url, authentication, [400, 500]).then(blob => resolve(_fixTextBlobType(blob)), () => resolve(null));
2881
+ });
2882
+ }
2883
+ /**
2884
+ * Gets the URL to the data information of an AGO item in its raw (Blob) form.
2885
+ *
2886
+ * @param itemId Id of an item whose data information is sought
2887
+ * @param authentication Credentials for the request to AGO
2888
+ * @returns URL string
2889
+ */
2890
+ function getItemDataBlobUrl(itemId, authentication) {
2891
+ return `${getPortalSharingUrlFromAuth(authentication)}/content/items/${itemId}/data`;
2892
+ }
2893
+ /**
2894
+ * Extracts the portal sharing url from a supplied authentication.
2895
+ *
2896
+ * @param authentication Credentials for the request to AGO
2897
+ * @returns Portal sharing url to be used in API requests, defaulting to `https://www.arcgis.com/sharing/rest`
2898
+ */
2899
+ function getPortalSharingUrlFromAuth(authentication) {
2900
+ // If auth was passed, use that portal
2901
+ return getProp(authentication, "portal") || "https://www.arcgis.com/sharing/rest";
2902
+ }
2903
+ function getThumbnailFile(url, filename, authentication) {
2904
+ return new Promise(resolve => {
2905
+ getBlobAsFile(url, filename, authentication, [500]).then(resolve, () => resolve(null));
2906
+ });
2907
+ }
2908
+ // ------------------------------------------------------------------------------------------------------------------ //
2909
+ /**
2910
+ * Fixes the types of Blobs incorrectly typed as text/plain.
2911
+ *
2912
+ * @param blob Blob to check
2913
+ * @returns Promise resolving to original Blob, unless it's originally typed as text/plain but is
2914
+ * really JSON, ZIP, or XML
2915
+ * @private
2916
+ */
2917
+ function _fixTextBlobType(blob) {
2918
+ return new Promise((resolve, reject) => {
2919
+ if (blob &&
2920
+ blob.size > 0 &&
2921
+ (blob.type.startsWith("text/plain") ||
2922
+ blob.type.startsWith("application/json"))) {
2923
+ blobToText(blob).then(blobText => {
2924
+ // Convertible to JSON?
2925
+ try {
2926
+ JSON.parse(blobText);
2927
+ // Yes; reclassify as JSON
2928
+ resolve(new Blob([blob], { type: "application/json" }));
2929
+ }
2930
+ catch (ignored) {
2931
+ // Nope; test for ZIP file
2932
+ if (blobText.length > 4 &&
2933
+ blobText.substr(0, 4) === ZIP_FILE_HEADER_SIGNATURE) {
2934
+ // Yes; reclassify as ZIP
2935
+ resolve(new Blob([blob], { type: "application/zip" }));
2936
+ }
2937
+ else if (blobText.startsWith("<")) {
2938
+ // Reclassify as XML; since the blob started out as text/plain, it's more likely that is
2939
+ // meant to be human-readable, so we'll use text/xml instead of application/xml
2940
+ resolve(new Blob([blob], { type: "text/xml" }));
2941
+ }
2942
+ else {
2943
+ // Leave as text
2944
+ resolve(blob);
2945
+ }
2946
+ }
2947
+ },
2948
+ // Faulty blob
2949
+ reject);
2950
+ }
2951
+ else {
2952
+ // Empty or not typed as plain text, so simply return
2953
+ if (blob) {
2954
+ resolve(blob);
2955
+ }
2956
+ else {
2957
+ reject();
2958
+ }
2959
+ }
2960
+ });
2961
+ }
2962
+
2963
+ /** @license
2964
+ * Copyright 2018 Esri
2965
+ *
2966
+ * Licensed under the Apache License, Version 2.0 (the "License");
2967
+ * you may not use this file except in compliance with the License.
2968
+ * You may obtain a copy of the License at
2969
+ *
2970
+ * http://www.apache.org/licenses/LICENSE-2.0
2971
+ *
2972
+ * Unless required by applicable law or agreed to in writing, software
2973
+ * distributed under the License is distributed on an "AS IS" BASIS,
2974
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2975
+ * See the License for the specific language governing permissions and
2976
+ * limitations under the License.
2977
+ */
2978
+ /**
2979
+ * Updates an item.
2980
+ *
2981
+ * @param itemInfo The base info of an item; note that this content will be serialized, which doesn't work
2982
+ * for binary content
2983
+ * @param authentication Credentials for request
2984
+ * @param folderId Item's folder
2985
+ * @param additionalParams Updates that are put under the `params` property, which is not serialized
2986
+ * @return
2987
+ */
2988
+ function updateItem(itemInfo, authentication, folderId, additionalParams) {
2989
+ return new Promise((resolve, reject) => {
2990
+ const updateOptions = {
2991
+ item: itemInfo,
2992
+ folderId: folderId,
2993
+ authentication: authentication,
2994
+ params: {
2995
+ ...(additionalParams ?? {})
2996
+ }
2997
+ };
2998
+ updateItem$1(updateOptions).then(response => (response.success ? resolve(response) : reject(response)), err => reject(err));
2999
+ });
3000
+ }
3001
+
3002
+ /** @license
3003
+ * Copyright 2018 Esri
3004
+ *
3005
+ * Licensed under the Apache License, Version 2.0 (the "License");
3006
+ * you may not use this file except in compliance with the License.
3007
+ * You may obtain a copy of the License at
3008
+ *
3009
+ * http://www.apache.org/licenses/LICENSE-2.0
3010
+ *
3011
+ * Unless required by applicable law or agreed to in writing, software
3012
+ * distributed under the License is distributed on an "AS IS" BASIS,
3013
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3014
+ * See the License for the specific language governing permissions and
3015
+ * limitations under the License.
3016
+ */
3017
+ /**
3018
+ * A visit flag used in the topological sort algorithm.
3019
+ *
3020
+ * @private
3021
+ */
3022
+ var ESortVisitState;
3023
+ (function (ESortVisitState) {
3024
+ /** not yet visited */
3025
+ ESortVisitState[ESortVisitState["NotYetVisited"] = 0] = "NotYetVisited";
3026
+ /** visited, in progress */
3027
+ ESortVisitState[ESortVisitState["InProgress"] = 1] = "InProgress";
3028
+ /** finished */
3029
+ ESortVisitState[ESortVisitState["Finished"] = 2] = "Finished"; // BLACK
3030
+ })(ESortVisitState || (ESortVisitState = {}));
3031
+
3032
+ /** @license
3033
+ * Copyright 2020 Esri
3034
+ *
3035
+ * Licensed under the Apache License, Version 2.0 (the "License");
3036
+ * you may not use this file except in compliance with the License.
3037
+ * You may obtain a copy of the License at
3038
+ *
3039
+ * http://www.apache.org/licenses/LICENSE-2.0
3040
+ *
3041
+ * Unless required by applicable law or agreed to in writing, software
3042
+ * distributed under the License is distributed on an "AS IS" BASIS,
3043
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3044
+ * See the License for the specific language governing permissions and
3045
+ * limitations under the License.
3046
+ */
3047
+ /**
3048
+ * Denotes type information for a SolutionResource
3049
+ */
3050
+ var SolutionResourceType;
3051
+ (function (SolutionResourceType) {
3052
+ SolutionResourceType[SolutionResourceType["thumbnail"] = 0] = "thumbnail";
3053
+ SolutionResourceType[SolutionResourceType["metadata"] = 1] = "metadata";
3054
+ SolutionResourceType[SolutionResourceType["resource"] = 2] = "resource";
3055
+ SolutionResourceType[SolutionResourceType["data"] = 3] = "data";
3056
+ SolutionResourceType[SolutionResourceType["fakezip"] = 4] = "fakezip";
3057
+ SolutionResourceType[SolutionResourceType["info"] = 5] = "info";
3058
+ })(SolutionResourceType || (SolutionResourceType = {}));
3059
+
3060
+ /** @license
3061
+ * Copyright 2020 Esri
3062
+ *
3063
+ * Licensed under the Apache License, Version 2.0 (the "License");
3064
+ * you may not use this file except in compliance with the License.
3065
+ * You may obtain a copy of the License at
3066
+ *
3067
+ * http://www.apache.org/licenses/LICENSE-2.0
3068
+ *
3069
+ * Unless required by applicable law or agreed to in writing, software
3070
+ * distributed under the License is distributed on an "AS IS" BASIS,
3071
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3072
+ * See the License for the specific language governing permissions and
3073
+ * limitations under the License.
3074
+ */
3075
+ /**
3076
+ * Extracts an item's resource folder and filename from the filename used to store a copy in a storage item.
3077
+ *
3078
+ * @param storageResourceFilename Filename used to store the resource, metadata, or thumbnail of an item
3079
+ * @param storageVersion Version of the Solution template
3080
+ * @returns Folder and filename for storing information in an item, as well as the type (resource, metadata,
3081
+ * or thumbnail) of the information; the folder property is only meaningful for the resource type
3082
+ * @see generateResourceStorageFilename
3083
+ * @see generateMetadataStorageFilename
3084
+ * @see generateThumbnailStorageFilename
3085
+ * @see convertItemResourceToStorageResource
3086
+ */
3087
+ function convertStorageResourceToItemResource(storageResourceFilename, storageVersion = 0) {
3088
+ const nameParts = storageResourceFilename.split("/");
3089
+ let filename = nameParts.pop();
3090
+ let folder = "";
3091
+ const firstPrefixPart = nameParts.shift(); // undefined if there's no folder
3092
+ // Handle special "folders"
3093
+ let type = exports.EFileType.Resource;
3094
+ if (firstPrefixPart) {
3095
+ if (firstPrefixPart.endsWith("_info_thumbnail")) {
3096
+ type = exports.EFileType.Thumbnail;
3097
+ }
3098
+ else if (firstPrefixPart.endsWith("_info_metadata")) {
3099
+ type = exports.EFileType.Metadata;
3100
+ filename = "metadata.xml";
3101
+ }
3102
+ else if (firstPrefixPart.endsWith("_info_data")) {
3103
+ type = exports.EFileType.Data;
3104
+ }
3105
+ else if (firstPrefixPart.endsWith("_info_dataz")) {
3106
+ filename = filename.replace(/\.zip$/, "");
3107
+ type = exports.EFileType.Data;
3108
+ // Otherwise, strip off item id
3109
+ }
3110
+ else if (storageVersion < 1) {
3111
+ // Version 0
3112
+ const folderStart = firstPrefixPart.indexOf("_");
3113
+ if (folderStart > 0) {
3114
+ folder = firstPrefixPart.substr(folderStart + 1);
3115
+ }
3116
+ }
3117
+ else {
3118
+ // Version ≥ 1
3119
+ folder = nameParts.join("/"); // folder is optional, in which case this will be ""
3120
+ }
3121
+ }
3122
+ return { type, folder, filename };
3123
+ }
3124
+
3125
+ /** @license
3126
+ * Copyright 2021 Esri
3127
+ *
3128
+ * Licensed under the Apache License, Version 2.0 (the "License");
3129
+ * you may not use this file except in compliance with the License.
3130
+ * You may obtain a copy of the License at
3131
+ *
3132
+ * http://www.apache.org/licenses/LICENSE-2.0
3133
+ *
3134
+ * Unless required by applicable law or agreed to in writing, software
3135
+ * distributed under the License is distributed on an "AS IS" BASIS,
3136
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3137
+ * See the License for the specific language governing permissions and
3138
+ * limitations under the License.
3139
+ */
3140
+ // ------------------------------------------------------------------------------------------------------------------ //
3141
+ /**
3142
+ * Generates IAssociatedFileCopyResults object.
3143
+ *
3144
+ * @param fileInfo Info about item that was to be copied
3145
+ * @param fetchedFromSource Status of fetching item from source
3146
+ * @param copiedToDestination Status of copying item to destination
3147
+ * @returns IAssociatedFileCopyResults object
3148
+ */
3149
+ function createCopyResults(fileInfo, fetchedFromSource, copiedToDestination) {
3150
+ return {
3151
+ ...fileInfo,
3152
+ fetchedFromSource,
3153
+ copiedToDestination
3154
+ };
3155
+ }
3156
+
3157
+ /** @license
3158
+ * Copyright 2021 Esri
3159
+ *
3160
+ * Licensed under the Apache License, Version 2.0 (the "License");
3161
+ * you may not use this file except in compliance with the License.
3162
+ * You may obtain a copy of the License at
3163
+ *
3164
+ * http://www.apache.org/licenses/LICENSE-2.0
3165
+ *
3166
+ * Unless required by applicable law or agreed to in writing, software
3167
+ * distributed under the License is distributed on an "AS IS" BASIS,
3168
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3169
+ * See the License for the specific language governing permissions and
3170
+ * limitations under the License.
3171
+ */
3172
+ // ------------------------------------------------------------------------------------------------------------------ //
3173
+ /**
3174
+ * Copies a resource into a zipfile.
3175
+ *
3176
+ * @param file Information about the source and destination of the file such as its URL, folder, filename
3177
+ * @param zipInfo Information about a zipfile such as its name and its zip object
3178
+ * @returns The result of the copy
3179
+ */
3180
+ function copyResourceIntoZip(file, zipInfo) {
3181
+ // Add it to the zip
3182
+ if (file.folder) {
3183
+ zipInfo.zip
3184
+ .folder(file.folder)
3185
+ .file(file.filename, file.file, { binary: true });
3186
+ }
3187
+ else {
3188
+ zipInfo.zip.file(file.filename, file.file, { binary: true });
3189
+ }
3190
+ zipInfo.filelist.push(file);
3191
+ return createCopyResults(file, true);
3192
+ }
3193
+
3194
+ /** @license
3195
+ * Copyright 2021 Esri
3196
+ *
3197
+ * Licensed under the Apache License, Version 2.0 (the "License");
3198
+ * you may not use this file except in compliance with the License.
3199
+ * You may obtain a copy of the License at
3200
+ *
3201
+ * http://www.apache.org/licenses/LICENSE-2.0
3202
+ *
3203
+ * Unless required by applicable law or agreed to in writing, software
3204
+ * distributed under the License is distributed on an "AS IS" BASIS,
3205
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3206
+ * See the License for the specific language governing permissions and
3207
+ * limitations under the License.
3208
+ */
3209
+ // ------------------------------------------------------------------------------------------------------------------ //
3210
+ /**
3211
+ * Copies a zipfile into an AGO item.
3212
+ *
3213
+ * @param zipInfo Information about a zipfile such as its name and its zip object
3214
+ * @param destinationItemId Id of item to receive copy of resource/metadata/thumbnail
3215
+ * @param destinationAuthentication Credentials for the request to the storage
3216
+ * @returns A promise which resolves to the result of the copy
3217
+ */
3218
+ function copyZipIntoItem(zipInfo, destinationItemId, destinationAuthentication) {
3219
+ return new Promise(resolve => {
3220
+ zipInfo.zip
3221
+ .generateAsync({ type: "blob" })
3222
+ .then((content) => {
3223
+ return blobToFile(content, zipInfo.filename, "application/zip");
3224
+ })
3225
+ .then((zipfile) => {
3226
+ const addResourceOptions = {
3227
+ id: destinationItemId,
3228
+ resource: zipfile,
3229
+ authentication: destinationAuthentication,
3230
+ params: {
3231
+ archive: true
3232
+ }
3233
+ };
3234
+ return addItemResource(addResourceOptions);
3235
+ })
3236
+ .then(() => resolve(createCopyResults(zipInfo, true, true)), () => resolve(createCopyResults(zipInfo, true, false)) // unable to add resource
3237
+ );
3238
+ });
3239
+ }
3240
+
3241
+ /** @license
3242
+ * Copyright 2021 Esri
3243
+ *
3244
+ * Licensed under the Apache License, Version 2.0 (the "License");
3245
+ * you may not use this file except in compliance with the License.
3246
+ * You may obtain a copy of the License at
3247
+ *
3248
+ * http://www.apache.org/licenses/LICENSE-2.0
3249
+ *
3250
+ * Unless required by applicable law or agreed to in writing, software
3251
+ * distributed under the License is distributed on an "AS IS" BASIS,
3252
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3253
+ * See the License for the specific language governing permissions and
3254
+ * limitations under the License.
3255
+ */
3256
+ // ------------------------------------------------------------------------------------------------------------------ //
3257
+ /**
3258
+ * Copies the files for storing the resources, metadata, and thumbnail of an item or group to a storage item
3259
+ * with a specified path by collecting files into zip files.
3260
+ *
3261
+ * @param files List of item files' URLs and folder/filenames for storing the files
3262
+ * @param destinationItemId Id of item to receive copy of resource/metadata/thumbnail
3263
+ * @param destinationAuthentication Credentials for the request to the storage
3264
+ * @param filesPerZip Number of files to include per zip file; AGO limits zips to 50 files
3265
+ * @returns A promise which resolves to a list of the result of the copies
3266
+ */
3267
+ function copyFilesAsResources(files, destinationItemId, destinationAuthentication, filesPerZip = 40) {
3268
+ return new Promise(resolve => {
3269
+ let awaitAllItems = [];
3270
+ const zipInfos = [];
3271
+ if (files.length > 0) {
3272
+ // Bundle the resources into chunked zip updates because AGO tends to have problems with
3273
+ // many updates in a row to the same item: it claims success despite randomly failing.
3274
+ // Note that AGO imposes a limit of 50 files per zip, so we break the list of resource
3275
+ // file info into chunks below this threshold and start a zip for each
3276
+ // https://developers.arcgis.com/rest/users-groups-and-items/add-resources.htm
3277
+ const chunkedResourceFiles = chunkArray(files, filesPerZip);
3278
+ chunkedResourceFiles.forEach((chunk, index) => {
3279
+ // Create a zip for this chunk
3280
+ const zipInfo = {
3281
+ filename: `resources${index}.zip`,
3282
+ zip: new jszip_min(),
3283
+ filelist: []
3284
+ };
3285
+ awaitAllItems = awaitAllItems.concat(chunk.map(file => copyResourceIntoZip(file, zipInfo)));
3286
+ zipInfos.push(zipInfo);
3287
+ });
3288
+ }
3289
+ if (awaitAllItems.length > 0) {
3290
+ // Wait until the Resource zip file(s) are prepared
3291
+ void Promise.all(awaitAllItems).then((results) => {
3292
+ // We have three types of results:
3293
+ // | fetchedFromSource | copiedToDestination | interpretation | |
3294
+ // +-------------------+---------------------+------------------------------------------------+
3295
+ // | false | * | could not fetch file from source |
3296
+ // | true | true | file has been fetched and sent to AGO |
3297
+ // | true | undefined | file has been fetched and will be sent via zip |
3298
+ // Filter out copiedToDestination===undefined; we'll get their status when we send their zip
3299
+ results = results.filter((result) => !(result.fetchedFromSource &&
3300
+ typeof result.copiedToDestination === "undefined"));
3301
+ // Now send the resources to AGO
3302
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
3303
+ _copyAssociatedFileZips(zipInfos, destinationItemId, destinationAuthentication).then((zipResults) => {
3304
+ resolve(results.concat(zipResults));
3305
+ });
3306
+ });
3307
+ }
3308
+ else {
3309
+ // No data, metadata, or resources to send; we're done
3310
+ resolve([]);
3311
+ }
3312
+ });
3313
+ }
3314
+ /**
3315
+ * Copies one or more zipfiles to a storage item.
3316
+ *
3317
+ * @param zipInfos List of zip files containing files to store
3318
+ * @param destinationItemId Id of item to receive copy of resource/metadata/thumbnail
3319
+ * @param destinationAuthentication Credentials for the request to the storage
3320
+ * @returns A promise which resolves to a list of the result of the copies
3321
+ * @private
3322
+ */
3323
+ function _copyAssociatedFileZips(zipInfos, destinationItemId, destinationAuthentication) {
3324
+ return new Promise(resolve => {
3325
+ const results = [];
3326
+ // Filter out empty zips, which can happen when none of the files in the chunk going into a zip
3327
+ // can be fetched; e.g., the only file is metadata.xml, and the source item doesn't have metadata
3328
+ const nonEmptyZipInfos = zipInfos.filter((zipInfo) => Object.keys(zipInfo.zip.files).length > 0);
3329
+ if (nonEmptyZipInfos.length > 0) {
3330
+ // Send the zip(s) to AGO
3331
+ void _sendZipsSeriallyToItem(nonEmptyZipInfos, destinationItemId, destinationAuthentication).then((zipResults) => {
3332
+ resolve(zipResults);
3333
+ });
3334
+ }
3335
+ else {
3336
+ // No resources to send; we're done
3337
+ resolve(results);
3338
+ }
3339
+ });
3340
+ }
3341
+ /**
3342
+ * Copies one or more zipfiles to a storage item in a serial fashion, waiting a bit between sends.
3343
+ *
3344
+ * @param zipInfos List of zip files containing files to store
3345
+ * @param destinationItemId Id of item to receive copy of resource/metadata/thumbnail
3346
+ * @param destinationAuthentication Credentials for the request to the storage
3347
+ * @returns A promise which resolves to a list of the result of the copies
3348
+ */
3349
+ function _sendZipsSeriallyToItem(zipInfos, destinationItemId, destinationAuthentication) {
3350
+ return new Promise(resolve => {
3351
+ let allResults = [];
3352
+ // Remove zip from bottom of list
3353
+ const zipInfoToSend = zipInfos.pop();
3354
+ // Send predecessors in list
3355
+ let sendOthersPromise = Promise.resolve([]);
3356
+ if (zipInfos.length > 0) {
3357
+ sendOthersPromise = _sendZipsSeriallyToItem(zipInfos, destinationItemId, destinationAuthentication);
3358
+ }
3359
+ void sendOthersPromise
3360
+ .then((response) => {
3361
+ allResults = response;
3362
+ // Stall a little to give AGO time to catch up
3363
+ return new Promise(resolveSleep => {
3364
+ setTimeout(() => resolveSleep(), 1000);
3365
+ });
3366
+ })
3367
+ .then(() => {
3368
+ // Now send the zip removed from bottom of the input list
3369
+ return copyZipIntoItem(zipInfoToSend, destinationItemId, destinationAuthentication);
3370
+ })
3371
+ .then((zipResult) => {
3372
+ // Save the result of copying this zip as a status for each of the files that it contains
3373
+ zipResult.filelist.forEach((fileInfo) => {
3374
+ allResults.push(createCopyResults(fileInfo, true, zipResult.copiedToDestination));
3375
+ });
3376
+ resolve(allResults);
3377
+ });
3378
+ });
3379
+ }
3380
+
3381
+ /** @license
3382
+ * Copyright 2018 Esri
3383
+ *
3384
+ * Licensed under the Apache License, Version 2.0 (the "License");
3385
+ * you may not use this file except in compliance with the License.
3386
+ * You may obtain a copy of the License at
3387
+ *
3388
+ * http://www.apache.org/licenses/LICENSE-2.0
3389
+ *
3390
+ * Unless required by applicable law or agreed to in writing, software
3391
+ * distributed under the License is distributed on an "AS IS" BASIS,
3392
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3393
+ * See the License for the specific language governing permissions and
3394
+ * limitations under the License.
3395
+ */
3396
+ /**
3397
+ * Copies the files for storing the resources, metadata, and thumbnail of an item or group to a storage item
3398
+ * with a specified path.
3399
+ *
3400
+ * @param files List of item files and paths for storing the files
3401
+ * @param storageItemId Id of item to receive copy of resource/metadata
3402
+ * @param storageAuthentication Credentials for the request to the storage
3403
+ * @returns A promise which resolves to a list of the filenames under which the resource/metadata are stored
3404
+ */
3405
+ function copyFilesToStorageItem(files, storageItemId, storageAuthentication) {
3406
+ return new Promise(resolve => {
3407
+ // tslint:disable-next-line: no-floating-promises
3408
+ void copyFilesAsResources(files, storageItemId, storageAuthentication).then((results) => {
3409
+ resolve(results
3410
+ // Filter out failures
3411
+ .filter((result) => result.fetchedFromSource && result.copiedToDestination)
3412
+ // Return folder and filename in storage item's resources
3413
+ .map((result) => result.folder + "/" + result.filename));
3414
+ });
3415
+ });
3416
+ }
3417
+ /**
3418
+ * Generates the URL for reading an item's resource given the filename of the resource.
3419
+ *
3420
+ * @param sourcePortalSharingUrl Server/sharing
3421
+ * @param itemId Id of item
3422
+ * @param sourceResourceFilename Either filename or folder/filename to resource
3423
+ * @returns URL string
3424
+ */
3425
+ function generateSourceResourceUrl(sourcePortalSharingUrl, itemId, sourceResourceFilename) {
3426
+ return (checkUrlPathTermination(sourcePortalSharingUrl) +
3427
+ "content/items/" +
3428
+ itemId +
3429
+ "/resources/" +
3430
+ sourceResourceFilename);
3431
+ }
3432
+ /**
3433
+ * Generates a list of full URLs and folder/filename combinations used to store the resources, metadata,
3434
+ * and thumbnail of an item.
3435
+ *
3436
+ * @param portalSharingUrl Server/sharing
3437
+ * @param storageItemId Id of storage item
3438
+ * @param resourceFilenames List of resource filenames for an item, e.g., ["file1", "myFolder/file2"]
3439
+ * @param storageVersion Version of the Solution template
3440
+ * @returns List of item files' URLs and folder/filenames for storing the files
3441
+ */
3442
+ function generateStorageFilePaths(portalSharingUrl, storageItemId, resourceFilenames = [], storageVersion = 0) {
3443
+ return resourceFilenames.map(resourceFilename => {
3444
+ return {
3445
+ url: generateSourceResourceUrl(portalSharingUrl, storageItemId, resourceFilename),
3446
+ ...convertStorageResourceToItemResource(resourceFilename, storageVersion)
3447
+ };
3448
+ });
3449
+ }
3450
+ function isSupportedFileType(filename) {
3451
+ // Supported file formats are: .json, .xml, .txt, .png, .pbf, .zip, .jpeg, .jpg, .gif, .bmp, .gz, .svg,
3452
+ // .svgz, .geodatabase (https://developers.arcgis.com/rest/users-groups-and-items/add-resources.htm)
3453
+ const filenameExtension = filename.match(/\.([a-z]+)$/i);
3454
+ const supportedExtensions = "|.json|.xml|.txt|.png|.pbf|.zip|.jpeg|.jpg|.gif|.bmp|.gz|.svg|.svgz|.geodatabase|";
3455
+ return (!!filenameExtension &&
3456
+ supportedExtensions.indexOf("|" + filenameExtension[0] + "|") >= 0);
3457
+ }
3458
+ /**
3459
+ * Gets the thumbnail of an item or group.
3460
+ *
3461
+ * @param authentication Credentials for the request to the storage
3462
+ * @param filePaths List of item files' URLs and folder/filenames for storing the files
3463
+ * @returns A promise which resolves to a boolean indicating if the copies were successful
3464
+ */
3465
+ function getThumbnailFromStorageItem(authentication, filePaths) {
3466
+ let thumbnailUrl;
3467
+ let thumbnailFilename;
3468
+ filePaths.forEach(path => {
3469
+ if (path.type === exports.EFileType.Thumbnail) {
3470
+ thumbnailUrl = path.url;
3471
+ thumbnailFilename = path.filename;
3472
+ }
3473
+ });
3474
+ if (!thumbnailUrl) {
3475
+ return Promise.resolve(null);
3476
+ }
3477
+ return getThumbnailFile(thumbnailUrl, thumbnailFilename, authentication);
3478
+ }
3479
+ /**
3480
+ * Removes the item's resource that matches the filename with new content
3481
+ *
3482
+ * @param itemId Id of the item to remove
3483
+ * @param filename Name of the resource file to remove
3484
+ * @param authentication Credentials for the request to the storage
3485
+ * @returns A promise which resolves with a success true/false response
3486
+ */
3487
+ function removeItemResourceFile(itemId, filename, authentication) {
3488
+ return removeItemResource({
3489
+ id: itemId,
3490
+ resource: filename,
3491
+ authentication: authentication
3492
+ });
3493
+ }
3494
+ /**
3495
+ * Updates the item's resource that matches the filename with new content
3496
+ *
3497
+ * @param itemId Id of the item to update
3498
+ * @param filename Name of the resource file to update; prefix optional (e.g., a/b/file.txt)
3499
+ * @param resource The new content to update the resource with
3500
+ * @param authentication Credentials for the request to the storage
3501
+ * @returns A promise which resolves with a success true/false response
3502
+ */
3503
+ function updateItemResourceFile(itemId, filename, resource, authentication) {
3504
+ // Prefix has to be specified separately
3505
+ const prefixedFilenameParts = filename.split("/");
3506
+ const prefix = prefixedFilenameParts.length > 1 ? prefixedFilenameParts.slice(0, prefixedFilenameParts.length - 1).join("/") : undefined;
3507
+ const suffix = prefixedFilenameParts[prefixedFilenameParts.length - 1];
3508
+ return updateItemResource({
3509
+ id: itemId,
3510
+ prefix: prefix,
3511
+ name: suffix,
3512
+ resource,
3513
+ authentication: authentication
3514
+ });
3515
+ }
3516
+
3517
+ /** @license
3518
+ * Copyright 2022 Esri
3519
+ *
3520
+ * Licensed under the Apache License, Version 2.0 (the "License");
3521
+ * you may not use this file except in compliance with the License.
3522
+ * You may obtain a copy of the License at
3523
+ *
3524
+ * http://www.apache.org/licenses/LICENSE-2.0
3525
+ *
3526
+ * Unless required by applicable law or agreed to in writing, software
3527
+ * distributed under the License is distributed on an "AS IS" BASIS,
3528
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3529
+ * See the License for the specific language governing permissions and
3530
+ * limitations under the License.
3531
+ */
3532
+ const EmptySolutionStore = {
3533
+ solutionItemId: "",
3534
+ defaultWkid: undefined,
3535
+ solutionData: { metadata: {}, templates: [] },
3536
+ templateEdits: {},
3537
+ featureServices: [],
3538
+ spatialReferenceInfo: {
3539
+ enabled: false,
3540
+ services: {},
3541
+ spatialReference: undefined
3542
+ }
3543
+ };
3544
+ class SolutionStore {
3545
+ /**
3546
+ * Creates singleton instance when accessed; default export from module.
3547
+ *
3548
+ * @returns Static instance of the class
3549
+ */
3550
+ static get Store() {
3551
+ return this._instance || (this._instance = new this());
3552
+ }
3553
+ /**
3554
+ * Creates an empty store.
3555
+ *
3556
+ * @protected
3557
+ */
3558
+ constructor() {
3559
+ this._hasChanges = false;
3560
+ this._store = index.createStore(Object.assign({}, EmptySolutionStore));
3561
+ }
3562
+ /**
3563
+ * Returns the stored information of an item.
3564
+ *
3565
+ * @param itemId Id of item to fetch
3566
+ *
3567
+ * @returns Item information or `undefined` if not found
3568
+ */
3569
+ getItemInfo(itemId) {
3570
+ const templates = this._store.get("solutionData").templates;
3571
+ let template;
3572
+ templates.some((t) => {
3573
+ if (itemId == t.itemId) {
3574
+ template = t;
3575
+ return true;
3576
+ }
3577
+ return false;
3578
+ });
3579
+ return template;
3580
+ }
3581
+ /**
3582
+ * Returns a top-level store property: solutionItemId, defaultWkid, etc.
3583
+ *
3584
+ * @param propName Name of property
3585
+ *
3586
+ * @returns Value of property
3587
+ */
3588
+ getStoreInfo(propName) {
3589
+ return this._store.get(propName);
3590
+ }
3591
+ /**
3592
+ * Loads a Solution into the store from AGO.
3593
+ *
3594
+ * @param solutionItemId Id of the solution represented in the store
3595
+ * @param authentication Credentials for fetching information to be loaded into the store
3596
+ *
3597
+ * @returns Promise that resolves when task is done
3598
+ */
3599
+ async loadSolution(solutionItemId, authentication) {
3600
+ this._authentication = authentication;
3601
+ const solutionData = await getItemDataAsJson(solutionItemId, authentication);
3602
+ if (solutionData) {
3603
+ const defaultWkid = getProp(solutionData, "params.wkid.default");
3604
+ await this._prepareSolutionItemsForEditing(solutionItemId, solutionData.templates, authentication);
3605
+ const featureServices = this._getFeatureServices(solutionData.templates);
3606
+ const spatialReferenceInfo = this._getSpatialReferenceInfo(featureServices, defaultWkid);
3607
+ this._store.set("solutionItemId", solutionItemId);
3608
+ this._store.set("defaultWkid", defaultWkid);
3609
+ this._store.set("solutionData", solutionData);
3610
+ this._store.set("featureServices", featureServices);
3611
+ this._store.set("spatialReferenceInfo", spatialReferenceInfo);
3612
+ }
3613
+ this._flagStoreHasChanges(false);
3614
+ }
3615
+ /**
3616
+ * Queues the replacement of the thumbnail associated with a template item in the store.
3617
+ *
3618
+ * @param itemEdit Details of the template to modify, containing the new thumbnail in the `thumbnail`
3619
+ * property
3620
+ */
3621
+ replaceItemThumbnail(itemEdit) {
3622
+ // Flag the current thumbnail and any replacements for removal
3623
+ itemEdit.resourceFilePaths.forEach((path) => {
3624
+ if (path.type === exports.EFileType.Thumbnail) {
3625
+ if (path.updateType === interfaces.EUpdateType.None) {
3626
+ // Existing thumbnail not yet flagged for removal
3627
+ path.updateType = interfaces.EUpdateType.Remove;
3628
+ }
3629
+ else if (path.updateType === interfaces.EUpdateType.Add || path.updateType === interfaces.EUpdateType.Update) {
3630
+ // An earlier replacement
3631
+ path.updateType = interfaces.EUpdateType.Obsolete;
3632
+ }
3633
+ }
3634
+ });
3635
+ // Remove any replacements already queued
3636
+ itemEdit.resourceFilePaths =
3637
+ itemEdit.resourceFilePaths.filter((path) => path.updateType != interfaces.EUpdateType.Obsolete);
3638
+ // Add the new thumbnail to the store item
3639
+ itemEdit.resourceFilePaths.push({
3640
+ blob: itemEdit.thumbnail,
3641
+ filename: itemEdit.thumbnail.name,
3642
+ type: exports.EFileType.Thumbnail,
3643
+ updateType: interfaces.EUpdateType.Add
3644
+ });
3645
+ // Update the store
3646
+ this.setItemInfo(itemEdit);
3647
+ }
3648
+ /**
3649
+ * Writes a Solution into AGO from the store. Must use `loadSolution` to continue with solution.
3650
+ *
3651
+ * @returns Promise that resolves when task is done
3652
+ */
3653
+ async saveSolution() {
3654
+ // Update the templates in the original solution item data
3655
+ const solutionItemId = this._store.get("solutionItemId");
3656
+ const solutionData = this._store.get("solutionData");
3657
+ const spatialReferenceInfo = this._store.get("spatialReferenceInfo");
3658
+ await this._prepareSolutionItemsForStorage(solutionItemId, solutionData.templates, this._authentication);
3659
+ const updatedDefaultWkid = this._setSpatialReferenceInfo(spatialReferenceInfo, solutionData.templates);
3660
+ if (updatedDefaultWkid) {
3661
+ setCreateProp(solutionData, "params.wkid", {
3662
+ "label": "Spatial Reference",
3663
+ "default": updatedDefaultWkid,
3664
+ "valueType": "spatialReference",
3665
+ "attributes": {
3666
+ "required": "true"
3667
+ }
3668
+ });
3669
+ }
3670
+ else {
3671
+ setCreateProp(solutionData, "params.wkid", {});
3672
+ }
3673
+ const itemInfo = {
3674
+ id: solutionItemId,
3675
+ text: solutionData
3676
+ };
3677
+ await updateItem(itemInfo, this._authentication);
3678
+ }
3679
+ /**
3680
+ * Stores information for item.
3681
+ *
3682
+ * @param itemEdit Item information
3683
+ */
3684
+ setItemInfo(itemEdit) {
3685
+ const solutionData = this._store.get("solutionData");
3686
+ const templates = solutionData.templates;
3687
+ templates.some((t) => {
3688
+ if (itemEdit.itemId == t.itemId) {
3689
+ t = itemEdit;
3690
+ this._store.set("solutionData", solutionData);
3691
+ this._flagStoreHasChanges(true);
3692
+ return true;
3693
+ }
3694
+ return false;
3695
+ });
3696
+ }
3697
+ /**
3698
+ * Sets a top-level store property: solutionItemId, defaultWkid, etc.
3699
+ *
3700
+ * @param propName Name of property
3701
+ * @param value Value of property
3702
+ */
3703
+ setStoreInfo(propName, value) {
3704
+ this._store.set(propName, value);
3705
+ this._flagStoreHasChanges(true);
3706
+ }
3707
+ //------------------------------------------------------------------------------------------------------------------//
3708
+ /** Provides access to protected methods for unit testing.
3709
+ *
3710
+ * @param methodName Name of protected method to run
3711
+ * @param arg1 First argument to forward to method, e.g., for "_prepareSolutionItemsForEditing", `solutionItemId`
3712
+ * @param arg2 Second argument to forward to method, e.g., for "_prepareSolutionItemsForEditing", `templates`
3713
+ * @param arg3 Third argument to forward to method, e.g., for "_prepareSolutionItemsForEditing", `authentication`
3714
+ *
3715
+ * @returns
3716
+ */
3717
+ _testAccess(methodName, arg1, arg2, arg3) {
3718
+ switch (methodName) {
3719
+ case "_emptyTheStore":
3720
+ this._emptyTheStore();
3721
+ break;
3722
+ case "_getFeatureServices":
3723
+ return this._getFeatureServices(arg1);
3724
+ case "_getItemsSharedWithThisGroup":
3725
+ return this._getItemsSharedWithThisGroup(arg1, arg2);
3726
+ case "_getResourceFilePaths":
3727
+ return this._getResourceFilePaths(arg1, arg2, arg3);
3728
+ case "_getResourceStorageName":
3729
+ return this._getResourceStorageName(arg1, arg2);
3730
+ case "_getSpatialReferenceInfo":
3731
+ return this._getSpatialReferenceInfo(arg1, arg2);
3732
+ case "_prepareSolutionItemsForEditing":
3733
+ return this._prepareSolutionItemsForEditing(arg1, arg2, arg3);
3734
+ case "_prepareSolutionItemsForStorage":
3735
+ return this._prepareSolutionItemsForStorage(arg1, arg2, arg3);
3736
+ case "_setSpatialReferenceInfo":
3737
+ return this._setSpatialReferenceInfo(arg1, arg2);
3738
+ case "_splitFilename":
3739
+ return this._splitFilename(arg1);
3740
+ }
3741
+ return null;
3742
+ }
3743
+ /**
3744
+ * Returns the store to the empty state.
3745
+ *
3746
+ * @protected
3747
+ */
3748
+ _emptyTheStore() {
3749
+ this._store.set("solutionItemId", EmptySolutionStore.solutionItemId);
3750
+ this._store.set("defaultWkid", EmptySolutionStore.defaultWkid);
3751
+ this._store.set("solutionData", EmptySolutionStore.solutionData);
3752
+ this._store.set("templateEdits", EmptySolutionStore.templateEdits);
3753
+ this._store.set("featureServices", EmptySolutionStore.featureServices);
3754
+ this._store.set("spatialReferenceInfo", EmptySolutionStore.spatialReferenceInfo);
3755
+ }
3756
+ /**
3757
+ * Sets the store's flag indicating if it has changes and dispatches an event when
3758
+ * the flag value changes.
3759
+ *
3760
+ * @param flagHasChanges Current state of change in the store; if it doesn't match the value saved in this
3761
+ * object, an event is dispatched with the new value and the saved value is updated
3762
+ *
3763
+ * @protected
3764
+ */
3765
+ _flagStoreHasChanges(flagHasChanges) {
3766
+ // Event for notifying if the store has changes or not
3767
+ if (this._hasChanges !== flagHasChanges) {
3768
+ window.dispatchEvent(new CustomEvent("solutionStoreHasChanges", {
3769
+ detail: flagHasChanges,
3770
+ bubbles: true,
3771
+ cancelable: false,
3772
+ composed: true
3773
+ }));
3774
+ }
3775
+ this._hasChanges = flagHasChanges;
3776
+ }
3777
+ /**
3778
+ * Gets a list of Feature Services that are not views.
3779
+ *
3780
+ * @param templates A list of item templates from the solution
3781
+ *
3782
+ * @returns a list of feature services
3783
+ *
3784
+ * @protected
3785
+ */
3786
+ _getCustomizableFeatureServices(templates) {
3787
+ return templates.reduce((prev, cur) => {
3788
+ if (cur.type === "Feature Service" && cur.item.typeKeywords.indexOf("View Service") < 0) {
3789
+ prev.push(cur);
3790
+ }
3791
+ return prev;
3792
+ }, []);
3793
+ }
3794
+ /**
3795
+ * Gets a list of Feature Services that are not views along with an enabled property that indicates
3796
+ * if the service currently uses a spatial reference variable.
3797
+ *
3798
+ * @param templates A list of item templates from the solution
3799
+ *
3800
+ * @returns a list of feature service names and an enabled property to indicate
3801
+ * if they currently use a spatial reference variable.
3802
+ *
3803
+ * @protected
3804
+ */
3805
+ _getFeatureServices(templates) {
3806
+ const customizeableFeatureServices = this._getCustomizableFeatureServices(templates);
3807
+ return customizeableFeatureServices.map((fs) => {
3808
+ const name = fs.item.title || fs.item.name;
3809
+ const wkid = getProp(fs, "properties.service.spatialReference.wkid");
3810
+ return { name, enabled: wkid.toString().startsWith("{{params.wkid||") };
3811
+ });
3812
+ }
3813
+ /**
3814
+ * Capture the key item details for a given group template
3815
+ *
3816
+ * @param template one of the templates from the current solution
3817
+ * @param templates full list of templates
3818
+ *
3819
+ * @returns a list of IItemShare objects
3820
+ *
3821
+ * @protected
3822
+ */
3823
+ _getItemsSharedWithThisGroup(template, templates) {
3824
+ return templates.reduce((prev, cur) => {
3825
+ if (cur.itemId !== template.itemId && cur.type !== "Group") {
3826
+ prev.push({
3827
+ id: cur.itemId,
3828
+ title: cur.item.name || cur.item.title,
3829
+ isShared: (cur.groups || []).indexOf(template.itemId) > -1,
3830
+ shareItem: (cur.groups || []).indexOf(template.itemId) > -1,
3831
+ type: cur.type,
3832
+ typeKeywords: cur.item.typeKeywords
3833
+ });
3834
+ }
3835
+ return prev;
3836
+ }, []);
3837
+ }
3838
+ /**
3839
+ * Generate storage file paths from the solution template
3840
+ *
3841
+ * @param solutionId the id of the current solution
3842
+ * @param template the current template from the solution
3843
+ * @param portal Portal where file is to be found
3844
+ *
3845
+ * @returns a list of resource file infos
3846
+ *
3847
+ * @protected
3848
+ */
3849
+ _getResourceFilePaths(solutionId, template, portal) {
3850
+ const resourceFilePaths = generateStorageFilePaths(portal, solutionId, template.resources, SolutionTemplateFormatVersion);
3851
+ return resourceFilePaths.map((fp) => {
3852
+ fp.updateType = interfaces.EUpdateType.None;
3853
+ return fp;
3854
+ });
3855
+ }
3856
+ /**
3857
+ * Generates a resource name from a storage file path.
3858
+ *
3859
+ * @param templateItemId The id of the template item whose resource this is; used as a prefix in the resource name
3860
+ * @param resourcePath Resource file infos
3861
+ *
3862
+ * @returns The resource name to use when attaching a resource to the item.
3863
+ *
3864
+ * @protected
3865
+ */
3866
+ _getResourceStorageName(templateItemId, resourcePath) {
3867
+ /* Converts
3868
+ {
3869
+ "url": "https://myorg.maps.arcgis.com/sharing/rest/content/items/ca924c6db7d247b9a31fa30532fb5913/resources/79036430a6274e17ae915d0278b8569c_info_metadata/metadata.xml",
3870
+ "type": 2,
3871
+ "folder": "",
3872
+ "filename": "metadata.xml",
3873
+ "updateType": 3
3874
+ }
3875
+ to
3876
+ ca924c6db7d247b9a31fa30532fb5913_info_metadata/metadata.xml
3877
+ */
3878
+ let prefix = templateItemId;
3879
+ switch (resourcePath.type) {
3880
+ case exports.EFileType.Data:
3881
+ prefix = `${prefix}_info_data`;
3882
+ break;
3883
+ case exports.EFileType.Info:
3884
+ prefix = `${prefix}_info`;
3885
+ break;
3886
+ case exports.EFileType.Metadata:
3887
+ prefix = `${prefix}_info_metadata`;
3888
+ break;
3889
+ case exports.EFileType.Resource:
3890
+ break;
3891
+ case exports.EFileType.Thumbnail:
3892
+ prefix = `${prefix}_info_thumbnail`;
3893
+ break;
3894
+ }
3895
+ let filenameToUse = resourcePath.filename;
3896
+ if (resourcePath.type == exports.EFileType.Data && filenameToUse && !isSupportedFileType(filenameToUse)) {
3897
+ filenameToUse = filenameToUse + ".zip";
3898
+ prefix += "z";
3899
+ }
3900
+ const filename = resourcePath.folder ? resourcePath.folder + "/" + filenameToUse : filenameToUse;
3901
+ return prefix + "/" + filename;
3902
+ }
3903
+ /**
3904
+ * Extracts basic spatial reference information that is used to determine if a custom spatial reference parameter will
3905
+ * be exposed while deploying this solution and if so what feature services will support it and what will the default wkid be
3906
+ *
3907
+ * @param services a list of objects with service name and enabled property (indicates if they currently use a spatial reference var)
3908
+ * @param data the data object of a solution item
3909
+ *
3910
+ * @returns an object that stores if a custom spatial reference parameter is enabled/disabled,
3911
+ * a list of services and if they are enabled/disabled, and the default wkid
3912
+ *
3913
+ * @protected
3914
+ */
3915
+ _getSpatialReferenceInfo(services, defaultWkid) {
3916
+ const defaultServices = {};
3917
+ services.forEach(service => {
3918
+ defaultServices[service.name] = service.enabled;
3919
+ });
3920
+ return {
3921
+ enabled: defaultWkid !== undefined,
3922
+ services: defaultServices,
3923
+ spatialReference: defaultWkid ? defaultWkid : undefined
3924
+ };
3925
+ }
3926
+ /**
3927
+ * Create and store template items for the editor.
3928
+ *
3929
+ * @param solutionItemId Id of the solution represented in the store
3930
+ * @param templates A list of item templates from the solution
3931
+ * @param authentication Credentials for fetching information to be loaded into the store
3932
+ *
3933
+ * @returns a promise that resolves when the templates are ready
3934
+ *
3935
+ * @protected
3936
+ */
3937
+ async _prepareSolutionItemsForEditing(solutionItemId, templates, authentication) {
3938
+ const thumbnailPromises = [];
3939
+ // Augment the template with paths to resources and group information, if relevant
3940
+ templates.forEach((t) => {
3941
+ t.resourceFilePaths = this._getResourceFilePaths(solutionItemId, t, authentication.portal);
3942
+ thumbnailPromises.push(t.resourceFilePaths.length > 0 ?
3943
+ getThumbnailFromStorageItem(authentication, t.resourceFilePaths) :
3944
+ Promise.resolve());
3945
+ t.groupDetails = t.type === "Group" ? this._getItemsSharedWithThisGroup(t, templates) : [];
3946
+ });
3947
+ // Augment the template with its thumbnail file
3948
+ const thumbnails = await Promise.all(thumbnailPromises);
3949
+ templates.forEach((t, i) => {
3950
+ t.thumbnail = thumbnails[i] ? thumbnails[i] : undefined;
3951
+ });
3952
+ return Promise.resolve();
3953
+ }
3954
+ /**
3955
+ * Prepares template items for sending to AGO by updating the resources held by the solution item.
3956
+ *
3957
+ * @param solutionItemId Id of the solution represented in the store
3958
+ * @param templates A list of item templates from the solution
3959
+ * @param authentication Credentials for fetching information to be loaded into the store
3960
+ *
3961
+ * @returns a promise that resolves when the templates are ready
3962
+ *
3963
+ * @protected
3964
+ */
3965
+ async _prepareSolutionItemsForStorage(solutionItemId, templates, authentication) {
3966
+ const resourceAdds = [];
3967
+ // Update the resources and remove the augmentation from a template
3968
+ const pendingTasks = [];
3969
+ templates.forEach((t) => {
3970
+ // Run through the resourceFilePaths for the item seeking modifications to be made to the solution item's
3971
+ // collection of resources; queue them for batching
3972
+ // eslint-disable-next-line @typescript-eslint/no-misused-promises
3973
+ t.resourceFilePaths.forEach(async (path) => {
3974
+ const storageName = this._getResourceStorageName(t.itemId, path);
3975
+ switch (path.updateType) {
3976
+ case interfaces.EUpdateType.Add:
3977
+ const { prefix, suffix } = this._splitFilename(storageName);
3978
+ t.resources.push(storageName);
3979
+ resourceAdds.push({
3980
+ itemId: t.itemId,
3981
+ file: path.blob,
3982
+ folder: prefix,
3983
+ filename: suffix
3984
+ });
3985
+ break;
3986
+ case interfaces.EUpdateType.Update:
3987
+ // eslint-disable-next-line @typescript-eslint/no-misused-promises
3988
+ pendingTasks.push(new Promise(async (resolve) => {
3989
+ try {
3990
+ await updateItemResourceFile(solutionItemId, storageName, path.blob, authentication);
3991
+ }
3992
+ catch (err) {
3993
+ console.log("Unable to update " + storageName + " for item " + t.itemId + ": " + JSON.stringify(err));
3994
+ }
3995
+ resolve();
3996
+ }));
3997
+ break;
3998
+ case interfaces.EUpdateType.Remove:
3999
+ // eslint-disable-next-line @typescript-eslint/no-misused-promises
4000
+ pendingTasks.push(new Promise(async (resolve) => {
4001
+ try {
4002
+ await removeItemResourceFile(solutionItemId, storageName, authentication);
4003
+ t.resources = t.resources.filter((path) => path !== storageName);
4004
+ }
4005
+ catch (err) {
4006
+ console.log("Unable to remove " + storageName + " for item " + t.itemId + ": " + JSON.stringify(err));
4007
+ }
4008
+ resolve();
4009
+ }));
4010
+ break;
4011
+ }
4012
+ return Promise.resolve();
4013
+ });
4014
+ delete t.resourceFilePaths;
4015
+ delete t.thumbnail;
4016
+ delete t.groupDetails;
4017
+ });
4018
+ // Update the resources
4019
+ return Promise.all(pendingTasks)
4020
+ .then(async () => {
4021
+ if (resourceAdds.length > 0) {
4022
+ await copyFilesToStorageItem(resourceAdds, solutionItemId, authentication);
4023
+ }
4024
+ return Promise.resolve();
4025
+ });
4026
+ }
4027
+ /**
4028
+ * Stores basic spatial reference information that is used to determine if a custom spatial reference parameter will
4029
+ * be exposed while deploying this solution and if so what feature services will support it and what will the default wkid be
4030
+ *
4031
+ * @param spatialReferenceInfo The configuration settings for a custom spatial reference
4032
+ * @param templates The templates in the current solution, which will be updated in place if
4033
+ * `spatialReferenceInfo.enabled` is true
4034
+ *
4035
+ * @returns The new default wkid
4036
+ *
4037
+ * @protected
4038
+ */
4039
+ _setSpatialReferenceInfo(spatialReferenceInfo, templates) {
4040
+ const customizingPrefix = "{{params.wkid||";
4041
+ const customizeableFeatureServices = this._getCustomizableFeatureServices(templates);
4042
+ if (spatialReferenceInfo.enabled) {
4043
+ // Enable or disable this feature in each service
4044
+ customizeableFeatureServices.forEach((fs) => {
4045
+ const name = fs.item.title || fs.item.name;
4046
+ let wkid;
4047
+ if (spatialReferenceInfo.services[name]) { // enabled
4048
+ wkid = `{{params.wkid||${spatialReferenceInfo.spatialReference}}}`;
4049
+ setCreateProp(fs, "properties.service.spatialReference.wkid", wkid);
4050
+ }
4051
+ else { // disabled
4052
+ wkid = getProp(fs, "properties.service.spatialReference.wkid");
4053
+ // Remove customizing prefix if present
4054
+ if (wkid.toString().startsWith(customizingPrefix)) {
4055
+ wkid = wkid.toString().substring(customizingPrefix.length, wkid.length - 2);
4056
+ setCreateProp(fs, "properties.service.spatialReference.wkid", wkid);
4057
+ }
4058
+ }
4059
+ });
4060
+ return spatialReferenceInfo.spatialReference;
4061
+ }
4062
+ else {
4063
+ // Disable this feature in each service
4064
+ customizeableFeatureServices.forEach((fs) => {
4065
+ const wkid = getProp(fs, "properties.service.spatialReference.wkid");
4066
+ // Remove customizing prefix if present
4067
+ if (wkid.toString().startsWith(customizingPrefix)) {
4068
+ setCreateProp(fs, "properties.service.spatialReference.wkid", wkid.toString().substring(customizingPrefix.length, wkid.length - 2));
4069
+ }
4070
+ });
4071
+ return undefined;
4072
+ }
4073
+ }
4074
+ /**
4075
+ * Splits a pathed filename into a last term and a prefix; e.g., "a/b/c" returns "c" with a prefix of "a/b".
4076
+ *
4077
+ * @param filename Filename with optional path
4078
+ *
4079
+ * @returns An object consisting of a `prefix` (undefined if `filename` does not contain a path) and a `suffix`--the
4080
+ * filename at the end of a path
4081
+ *
4082
+ * @protected
4083
+ */
4084
+ _splitFilename(filename) {
4085
+ const filenameParts = filename.split("/");
4086
+ return {
4087
+ prefix: filenameParts.length > 1 ? filenameParts.slice(0, filenameParts.length - 1).join("/") : undefined,
4088
+ suffix: filenameParts[filenameParts.length - 1]
4089
+ };
4090
+ }
4091
+ }
4092
+ const state = SolutionStore.Store;
4093
+
4094
+ exports.ArcGISAuthError = ArcGISAuthError;
4095
+ exports.NODEJS_DEFAULT_REFERER_HEADER = NODEJS_DEFAULT_REFERER_HEADER;
4096
+ exports.cleanUrl = cleanUrl;
4097
+ exports.encodeQueryString = encodeQueryString;
4098
+ exports.getProp = getProp;
4099
+ exports.request = request;
4100
+ exports.state = state;