@concord-consortium/cloud-file-manager 2.1.0-pre.8 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (280) hide show
  1. package/dist/347 +276 -0
  2. package/dist/autolaunch/autolaunch.js +1 -1
  3. package/dist/autolaunch/autolaunch.js.map +1 -1
  4. package/dist/cjs/app-options.d.ts +2 -0
  5. package/dist/cjs/client.d.ts +2 -1
  6. package/dist/cjs/client.js +54 -79
  7. package/dist/cjs/client.js.map +1 -1
  8. package/dist/cjs/cloud-file-manager.js +2 -2
  9. package/dist/cjs/cloud-file-manager.js.map +1 -1
  10. package/dist/cjs/create-react-factory.d.ts +1 -0
  11. package/dist/cjs/create-react-factory.js.map +1 -1
  12. package/dist/cjs/providers/document-store-provider.js +7 -10
  13. package/dist/cjs/providers/document-store-provider.js.map +1 -1
  14. package/dist/cjs/providers/document-store-share-provider.js +4 -4
  15. package/dist/cjs/providers/document-store-share-provider.js.map +1 -1
  16. package/dist/cjs/providers/google-drive-provider.js +30 -34
  17. package/dist/cjs/providers/google-drive-provider.js.map +1 -1
  18. package/dist/cjs/providers/interactive-api-provider.d.ts +5 -2
  19. package/dist/cjs/providers/interactive-api-provider.js +27 -21
  20. package/dist/cjs/providers/interactive-api-provider.js.map +1 -1
  21. package/dist/cjs/providers/lara-provider.js +18 -26
  22. package/dist/cjs/providers/lara-provider.js.map +1 -1
  23. package/dist/cjs/providers/legacy-google-drive-provider.js +21 -27
  24. package/dist/cjs/providers/legacy-google-drive-provider.js.map +1 -1
  25. package/dist/cjs/providers/localstorage-provider.js +11 -13
  26. package/dist/cjs/providers/localstorage-provider.js.map +1 -1
  27. package/dist/cjs/providers/patchable-content.js +1 -1
  28. package/dist/cjs/providers/patchable-content.js.map +1 -1
  29. package/dist/cjs/providers/post-message-provider.js +1 -1
  30. package/dist/cjs/providers/post-message-provider.js.map +1 -1
  31. package/dist/cjs/providers/provider-interface.d.ts +1 -2
  32. package/dist/cjs/providers/provider-interface.js +11 -14
  33. package/dist/cjs/providers/provider-interface.js.map +1 -1
  34. package/dist/cjs/providers/readonly-provider.js +6 -6
  35. package/dist/cjs/providers/readonly-provider.js.map +1 -1
  36. package/dist/cjs/providers/s3-provider.js +1 -2
  37. package/dist/cjs/providers/s3-provider.js.map +1 -1
  38. package/dist/cjs/providers/s3-share-provider.js +1 -1
  39. package/dist/cjs/providers/s3-share-provider.js.map +1 -1
  40. package/dist/cjs/providers/test-provider.js +5 -5
  41. package/dist/cjs/providers/test-provider.js.map +1 -1
  42. package/dist/cjs/providers/url-provider.js +1 -1
  43. package/dist/cjs/providers/url-provider.js.map +1 -1
  44. package/dist/cjs/ui.d.ts +2 -1
  45. package/dist/cjs/ui.js +5 -3
  46. package/dist/cjs/ui.js.map +1 -1
  47. package/dist/cjs/utils/focus-tracker.d.ts +3 -0
  48. package/dist/cjs/utils/focus-tracker.js +44 -0
  49. package/dist/cjs/utils/focus-tracker.js.map +1 -0
  50. package/dist/cjs/utils/ios-file-saver.d.ts +42 -0
  51. package/dist/cjs/utils/ios-file-saver.js +98 -0
  52. package/dist/cjs/utils/ios-file-saver.js.map +1 -0
  53. package/dist/cjs/utils/lang/en-US.json +9 -0
  54. package/dist/cjs/utils/s3-share-provider-token-service-helper.js +19 -13
  55. package/dist/cjs/utils/s3-share-provider-token-service-helper.js.map +1 -1
  56. package/dist/cjs/utils/url-params.js +1 -2
  57. package/dist/cjs/utils/url-params.js.map +1 -1
  58. package/dist/cjs/views/alert-dialog-view.d.ts +9 -3
  59. package/dist/cjs/views/alert-dialog-view.js +9 -24
  60. package/dist/cjs/views/alert-dialog-view.js.map +1 -1
  61. package/dist/cjs/views/app-view.d.ts +12 -5
  62. package/dist/cjs/views/app-view.js +167 -173
  63. package/dist/cjs/views/app-view.js.map +1 -1
  64. package/dist/cjs/views/blocking-modal-view.d.ts +9 -3
  65. package/dist/cjs/views/blocking-modal-view.js +8 -25
  66. package/dist/cjs/views/blocking-modal-view.js.map +1 -1
  67. package/dist/cjs/views/confirm-dialog-view.d.ts +14 -3
  68. package/dist/cjs/views/confirm-dialog-view.js +14 -31
  69. package/dist/cjs/views/confirm-dialog-view.js.map +1 -1
  70. package/dist/cjs/views/download-dialog-view.d.ts +12 -3
  71. package/dist/cjs/views/download-dialog-view.js +36 -63
  72. package/dist/cjs/views/download-dialog-view.js.map +1 -1
  73. package/dist/cjs/views/dropdown-anchors.d.ts +2 -2
  74. package/dist/cjs/views/dropdown-anchors.js +4 -10
  75. package/dist/cjs/views/dropdown-anchors.js.map +1 -1
  76. package/dist/cjs/views/dropdown-view.d.ts +20 -3
  77. package/dist/cjs/views/dropdown-view.js +40 -157
  78. package/dist/cjs/views/dropdown-view.js.map +1 -1
  79. package/dist/cjs/views/file-dialog-tab-view.d.ts +24 -2
  80. package/dist/cjs/views/file-dialog-tab-view.js +255 -315
  81. package/dist/cjs/views/file-dialog-tab-view.js.map +1 -1
  82. package/dist/cjs/views/icons/spin.d.ts +2 -2
  83. package/dist/cjs/views/icons/spin.js +2 -39
  84. package/dist/cjs/views/icons/spin.js.map +1 -1
  85. package/dist/cjs/views/import-tabbed-dialog-view.d.ts +12 -3
  86. package/dist/cjs/views/import-tabbed-dialog-view.js +33 -65
  87. package/dist/cjs/views/import-tabbed-dialog-view.js.map +1 -1
  88. package/dist/cjs/views/local-file-tab-list-view.d.ts +14 -3
  89. package/dist/cjs/views/local-file-tab-list-view.js +57 -66
  90. package/dist/cjs/views/local-file-tab-list-view.js.map +1 -1
  91. package/dist/cjs/views/local-file-tab-save-view.d.ts +32 -3
  92. package/dist/cjs/views/local-file-tab-save-view.js +125 -138
  93. package/dist/cjs/views/local-file-tab-save-view.js.map +1 -1
  94. package/dist/cjs/views/menu-bar-view.d.ts +58 -3
  95. package/dist/cjs/views/menu-bar-view.js +196 -183
  96. package/dist/cjs/views/menu-bar-view.js.map +1 -1
  97. package/dist/cjs/views/modal-dialog-view.js +7 -8
  98. package/dist/cjs/views/modal-dialog-view.js.map +1 -1
  99. package/dist/cjs/views/modal-tabbed-dialog-view.d.ts +15 -3
  100. package/dist/cjs/views/modal-tabbed-dialog-view.js +5 -17
  101. package/dist/cjs/views/modal-tabbed-dialog-view.js.map +1 -1
  102. package/dist/cjs/views/modal-view.d.ts +5 -32
  103. package/dist/cjs/views/modal-view.js +20 -64
  104. package/dist/cjs/views/modal-view.js.map +1 -1
  105. package/dist/cjs/views/provider-tabbed-dialog-view.d.ts +23 -3
  106. package/dist/cjs/views/provider-tabbed-dialog-view.js +43 -51
  107. package/dist/cjs/views/provider-tabbed-dialog-view.js.map +1 -1
  108. package/dist/cjs/views/rename-dialog-view.d.ts +8 -3
  109. package/dist/cjs/views/rename-dialog-view.js +25 -51
  110. package/dist/cjs/views/rename-dialog-view.js.map +1 -1
  111. package/dist/cjs/views/select-interactive-state-dialog-view.d.ts +1 -1
  112. package/dist/cjs/views/select-interactive-state-dialog-view.js +4 -30
  113. package/dist/cjs/views/select-interactive-state-dialog-view.js.map +1 -1
  114. package/dist/cjs/views/select-provider-dialog-tab-view.d.ts +6 -1
  115. package/dist/cjs/views/select-provider-dialog-tab-view.js +4 -12
  116. package/dist/cjs/views/select-provider-dialog-tab-view.js.map +1 -1
  117. package/dist/cjs/views/share-dialog-status-view.js +6 -13
  118. package/dist/cjs/views/share-dialog-status-view.js.map +1 -1
  119. package/dist/cjs/views/share-dialog-tabs-view.js +22 -61
  120. package/dist/cjs/views/share-dialog-tabs-view.js.map +1 -1
  121. package/dist/cjs/views/share-dialog-view.d.ts +1 -1
  122. package/dist/cjs/views/share-dialog-view.js +15 -21
  123. package/dist/cjs/views/share-dialog-view.js.map +1 -1
  124. package/dist/cjs/views/share-loading-view.d.ts +2 -2
  125. package/dist/cjs/views/share-loading-view.js +2 -4
  126. package/dist/cjs/views/share-loading-view.js.map +1 -1
  127. package/dist/cjs/views/tabbed-panel-view.d.ts +16 -3
  128. package/dist/cjs/views/tabbed-panel-view.js +25 -75
  129. package/dist/cjs/views/tabbed-panel-view.js.map +1 -1
  130. package/dist/cjs/views/url-tab-view.d.ts +12 -3
  131. package/dist/cjs/views/url-tab-view.js +31 -46
  132. package/dist/cjs/views/url-tab-view.js.map +1 -1
  133. package/dist/css/app.css +1 -1
  134. package/dist/css/app.css.map +1 -1
  135. package/dist/esm/app-options.d.ts +2 -0
  136. package/dist/esm/client.d.ts +2 -1
  137. package/dist/esm/client.js +54 -79
  138. package/dist/esm/client.js.map +1 -1
  139. package/dist/esm/cloud-file-manager.js +2 -2
  140. package/dist/esm/cloud-file-manager.js.map +1 -1
  141. package/dist/esm/create-react-factory.d.ts +1 -0
  142. package/dist/esm/create-react-factory.js.map +1 -1
  143. package/dist/esm/providers/document-store-provider.js +7 -10
  144. package/dist/esm/providers/document-store-provider.js.map +1 -1
  145. package/dist/esm/providers/document-store-share-provider.js +4 -4
  146. package/dist/esm/providers/document-store-share-provider.js.map +1 -1
  147. package/dist/esm/providers/google-drive-provider.js +30 -34
  148. package/dist/esm/providers/google-drive-provider.js.map +1 -1
  149. package/dist/esm/providers/interactive-api-provider.d.ts +5 -2
  150. package/dist/esm/providers/interactive-api-provider.js +25 -20
  151. package/dist/esm/providers/interactive-api-provider.js.map +1 -1
  152. package/dist/esm/providers/lara-provider.js +18 -26
  153. package/dist/esm/providers/lara-provider.js.map +1 -1
  154. package/dist/esm/providers/legacy-google-drive-provider.js +21 -27
  155. package/dist/esm/providers/legacy-google-drive-provider.js.map +1 -1
  156. package/dist/esm/providers/localstorage-provider.js +11 -13
  157. package/dist/esm/providers/localstorage-provider.js.map +1 -1
  158. package/dist/esm/providers/patchable-content.js +1 -1
  159. package/dist/esm/providers/patchable-content.js.map +1 -1
  160. package/dist/esm/providers/post-message-provider.js +1 -1
  161. package/dist/esm/providers/post-message-provider.js.map +1 -1
  162. package/dist/esm/providers/provider-interface.d.ts +1 -2
  163. package/dist/esm/providers/provider-interface.js +11 -14
  164. package/dist/esm/providers/provider-interface.js.map +1 -1
  165. package/dist/esm/providers/readonly-provider.js +6 -6
  166. package/dist/esm/providers/readonly-provider.js.map +1 -1
  167. package/dist/esm/providers/s3-provider.js +1 -2
  168. package/dist/esm/providers/s3-provider.js.map +1 -1
  169. package/dist/esm/providers/s3-share-provider.js +1 -1
  170. package/dist/esm/providers/s3-share-provider.js.map +1 -1
  171. package/dist/esm/providers/test-provider.js +5 -5
  172. package/dist/esm/providers/test-provider.js.map +1 -1
  173. package/dist/esm/providers/url-provider.js +1 -1
  174. package/dist/esm/providers/url-provider.js.map +1 -1
  175. package/dist/esm/ui.d.ts +2 -1
  176. package/dist/esm/ui.js +5 -3
  177. package/dist/esm/ui.js.map +1 -1
  178. package/dist/esm/utils/focus-tracker.d.ts +3 -0
  179. package/dist/esm/utils/focus-tracker.js +38 -0
  180. package/dist/esm/utils/focus-tracker.js.map +1 -0
  181. package/dist/esm/utils/ios-file-saver.d.ts +42 -0
  182. package/dist/esm/utils/ios-file-saver.js +91 -0
  183. package/dist/esm/utils/ios-file-saver.js.map +1 -0
  184. package/dist/esm/utils/lang/en-US.json +9 -0
  185. package/dist/esm/utils/s3-share-provider-token-service-helper.js +19 -10
  186. package/dist/esm/utils/s3-share-provider-token-service-helper.js.map +1 -1
  187. package/dist/esm/utils/url-params.js +1 -2
  188. package/dist/esm/utils/url-params.js.map +1 -1
  189. package/dist/esm/views/alert-dialog-view.d.ts +9 -3
  190. package/dist/esm/views/alert-dialog-view.js +10 -25
  191. package/dist/esm/views/alert-dialog-view.js.map +1 -1
  192. package/dist/esm/views/app-view.d.ts +12 -5
  193. package/dist/esm/views/app-view.js +176 -182
  194. package/dist/esm/views/app-view.js.map +1 -1
  195. package/dist/esm/views/blocking-modal-view.d.ts +9 -3
  196. package/dist/esm/views/blocking-modal-view.js +9 -26
  197. package/dist/esm/views/blocking-modal-view.js.map +1 -1
  198. package/dist/esm/views/confirm-dialog-view.d.ts +14 -3
  199. package/dist/esm/views/confirm-dialog-view.js +15 -32
  200. package/dist/esm/views/confirm-dialog-view.js.map +1 -1
  201. package/dist/esm/views/download-dialog-view.d.ts +12 -3
  202. package/dist/esm/views/download-dialog-view.js +36 -63
  203. package/dist/esm/views/download-dialog-view.js.map +1 -1
  204. package/dist/esm/views/dropdown-anchors.d.ts +2 -2
  205. package/dist/esm/views/dropdown-anchors.js +4 -7
  206. package/dist/esm/views/dropdown-anchors.js.map +1 -1
  207. package/dist/esm/views/dropdown-view.d.ts +20 -3
  208. package/dist/esm/views/dropdown-view.js +40 -154
  209. package/dist/esm/views/dropdown-view.js.map +1 -1
  210. package/dist/esm/views/file-dialog-tab-view.d.ts +24 -2
  211. package/dist/esm/views/file-dialog-tab-view.js +256 -316
  212. package/dist/esm/views/file-dialog-tab-view.js.map +1 -1
  213. package/dist/esm/views/icons/spin.d.ts +2 -2
  214. package/dist/esm/views/icons/spin.js +2 -36
  215. package/dist/esm/views/icons/spin.js.map +1 -1
  216. package/dist/esm/views/import-tabbed-dialog-view.d.ts +12 -3
  217. package/dist/esm/views/import-tabbed-dialog-view.js +36 -68
  218. package/dist/esm/views/import-tabbed-dialog-view.js.map +1 -1
  219. package/dist/esm/views/local-file-tab-list-view.d.ts +14 -3
  220. package/dist/esm/views/local-file-tab-list-view.js +57 -66
  221. package/dist/esm/views/local-file-tab-list-view.js.map +1 -1
  222. package/dist/esm/views/local-file-tab-save-view.d.ts +32 -3
  223. package/dist/esm/views/local-file-tab-save-view.js +125 -138
  224. package/dist/esm/views/local-file-tab-save-view.js.map +1 -1
  225. package/dist/esm/views/menu-bar-view.d.ts +58 -3
  226. package/dist/esm/views/menu-bar-view.js +198 -185
  227. package/dist/esm/views/menu-bar-view.js.map +1 -1
  228. package/dist/esm/views/modal-dialog-view.js +7 -8
  229. package/dist/esm/views/modal-dialog-view.js.map +1 -1
  230. package/dist/esm/views/modal-tabbed-dialog-view.d.ts +15 -3
  231. package/dist/esm/views/modal-tabbed-dialog-view.js +7 -19
  232. package/dist/esm/views/modal-tabbed-dialog-view.js.map +1 -1
  233. package/dist/esm/views/modal-view.d.ts +5 -32
  234. package/dist/esm/views/modal-view.js +21 -61
  235. package/dist/esm/views/modal-view.js.map +1 -1
  236. package/dist/esm/views/provider-tabbed-dialog-view.d.ts +23 -3
  237. package/dist/esm/views/provider-tabbed-dialog-view.js +46 -54
  238. package/dist/esm/views/provider-tabbed-dialog-view.js.map +1 -1
  239. package/dist/esm/views/rename-dialog-view.d.ts +8 -3
  240. package/dist/esm/views/rename-dialog-view.js +25 -51
  241. package/dist/esm/views/rename-dialog-view.js.map +1 -1
  242. package/dist/esm/views/select-interactive-state-dialog-view.d.ts +1 -1
  243. package/dist/esm/views/select-interactive-state-dialog-view.js +4 -30
  244. package/dist/esm/views/select-interactive-state-dialog-view.js.map +1 -1
  245. package/dist/esm/views/select-provider-dialog-tab-view.d.ts +6 -1
  246. package/dist/esm/views/select-provider-dialog-tab-view.js +4 -9
  247. package/dist/esm/views/select-provider-dialog-tab-view.js.map +1 -1
  248. package/dist/esm/views/share-dialog-status-view.js +6 -13
  249. package/dist/esm/views/share-dialog-status-view.js.map +1 -1
  250. package/dist/esm/views/share-dialog-tabs-view.js +22 -61
  251. package/dist/esm/views/share-dialog-tabs-view.js.map +1 -1
  252. package/dist/esm/views/share-dialog-view.d.ts +1 -1
  253. package/dist/esm/views/share-dialog-view.js +15 -21
  254. package/dist/esm/views/share-dialog-view.js.map +1 -1
  255. package/dist/esm/views/share-loading-view.d.ts +2 -2
  256. package/dist/esm/views/share-loading-view.js +2 -4
  257. package/dist/esm/views/share-loading-view.js.map +1 -1
  258. package/dist/esm/views/tabbed-panel-view.d.ts +16 -3
  259. package/dist/esm/views/tabbed-panel-view.js +25 -72
  260. package/dist/esm/views/tabbed-panel-view.js.map +1 -1
  261. package/dist/esm/views/url-tab-view.d.ts +12 -3
  262. package/dist/esm/views/url-tab-view.js +31 -46
  263. package/dist/esm/views/url-tab-view.js.map +1 -1
  264. package/dist/examples/codap3-local-file.html +42 -0
  265. package/dist/examples/index.html +2 -0
  266. package/dist/examples/local-json-save.html +36 -0
  267. package/dist/index.html +1 -1
  268. package/dist/js/app.js +1 -1
  269. package/dist/js/app.js.LICENSE.txt +41 -11
  270. package/dist/js/app.js.map +1 -1
  271. package/dist/js/globals.js +1 -1
  272. package/dist/js/globals.js.map +1 -1
  273. package/package.json +40 -36
  274. package/readme.md +4 -0
  275. package/dist/cjs/lib/file-saver.d.ts +0 -2
  276. package/dist/cjs/lib/file-saver.js +0 -164
  277. package/dist/cjs/lib/file-saver.js.map +0 -1
  278. package/dist/esm/lib/file-saver.d.ts +0 -2
  279. package/dist/esm/lib/file-saver.js +0 -164
  280. package/dist/esm/lib/file-saver.js.map +0 -1
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@concord-consortium/cloud-file-manager",
3
3
  "description": "Wrapper for providing file management for web applications",
4
4
  "author": "The Concord Consortium",
5
- "version": "2.1.0-pre.8",
5
+ "version": "2.2.0",
6
6
  "repository": {
7
7
  "type": "git",
8
8
  "url": "git+https://github.com/concord-consortium/cloud-file-manager.git"
@@ -20,73 +20,77 @@
20
20
  "dist/"
21
21
  ],
22
22
  "dependencies": {
23
- "@concord-consortium/lara-interactive-api": "^1.9.4",
23
+ "@aws-sdk/client-s3": "^3.980.0",
24
+ "@concord-consortium/lara-interactive-api": "^1.12.0",
24
25
  "@concord-consortium/token-service": "^2.1.0",
25
- "aws-sdk": "^2.1526.0",
26
26
  "base64-js": "^1.5.1",
27
- "classnames": "^2.4.0",
27
+ "classnames": "^2.5.1",
28
28
  "create-react-class": "^15.7.0",
29
- "diff": "^5.1.0",
30
- "iframe-phone": "^1.3.1",
29
+ "diff": "^5.2.2",
30
+ "file-saver": "^2.0.5",
31
+ "iframe-phone": "^1.4.0",
31
32
  "jiff": "^0.7.3",
32
33
  "jquery": "^3.7.1",
33
- "js-base64": "^3.7.5",
34
+ "js-base64": "^3.7.8",
34
35
  "js-sha256": "^0.10.1",
35
36
  "lodash": "^4.17.21",
36
- "mime": "^4.0.1",
37
+ "mime": "^4.1.0",
37
38
  "pako": "^2.1.0",
38
39
  "query-string": "^7.1.3",
40
+ "react-aria-components": "^1.16.0",
39
41
  "react-dom-factories": "^1.0.2",
40
42
  "screenfull": "^5.2.0",
41
43
  "svg-social-icons": "^1.1.0"
42
44
  },
43
45
  "devDependencies": {
44
- "@testing-library/jest-dom": "^6.1.6",
46
+ "@testing-library/jest-dom": "^6.9.1",
45
47
  "@testing-library/react": "^12.1.5",
46
- "@testing-library/user-event": "^14.5.1",
47
- "@types/create-react-class": "^15.6.6",
48
- "@types/jest": "^29.5.11",
49
- "@types/jiff": "^0.7.5",
50
- "@types/jquery": "^3.5.29",
51
- "@types/lodash": "^4.14.202",
48
+ "@testing-library/user-event": "^14.6.1",
49
+ "@types/create-react-class": "^15.6.9",
50
+ "@types/file-saver": "^2.0.7",
51
+ "@types/jest": "^29.5.14",
52
+ "@types/jiff": "^0.7.7",
53
+ "@types/jquery": "^3.5.33",
54
+ "@types/lodash": "^4.17.23",
52
55
  "@types/mime": "^3.0.4",
53
- "@types/node": "^16.18.68",
54
- "@types/pako": "^2.0.3",
55
- "@types/react": "^16.14.51",
56
- "@types/react-dom": "^16.9.22",
57
- "@types/react-dom-factories": "^1.0.4",
58
- "@typescript-eslint/eslint-plugin": "^6.16.0",
59
- "@typescript-eslint/parser": "^6.16.0",
56
+ "@types/node": "^16.18.126",
57
+ "@types/pako": "^2.0.4",
58
+ "@types/react": "^16.14.68",
59
+ "@types/react-dom": "^16.9.25",
60
+ "@types/react-dom-factories": "^1.0.5",
61
+ "@typescript-eslint/eslint-plugin": "^6.21.0",
62
+ "@typescript-eslint/parser": "^6.21.0",
60
63
  "copy-webpack-plugin": "^11.0.0",
61
64
  "cross-env": "^7.0.3",
62
- "css-loader": "^6.8.1",
65
+ "css-loader": "^6.11.0",
63
66
  "cypress": "^7.7.0",
64
67
  "cypress-commands": "^1.1.0",
65
- "cypress-xpath": "^1.6.2",
68
+ "cypress-xpath": "^1.8.0",
66
69
  "dotenv-webpack": "^8.1.0",
67
- "eslint": "^8.56.0",
70
+ "eslint": "^8.57.1",
68
71
  "eslint-plugin-babel": "^5.3.1",
69
- "eslint-plugin-jest": "^27.6.0",
70
- "eslint-plugin-react": "^7.33.2",
72
+ "eslint-plugin-jest": "^27.9.0",
73
+ "eslint-plugin-react": "^7.37.5",
74
+ "eslint-plugin-react-hooks": "^4.6.2",
71
75
  "file-loader": "^6.2.0",
72
76
  "jest": "^29.7.0",
73
77
  "jest-environment-jsdom": "^29.7.0",
74
78
  "live-server": "^1.2.2",
75
- "mini-css-extract-plugin": "^2.7.6",
79
+ "mini-css-extract-plugin": "^2.10.0",
76
80
  "npm-run-all": "^4.1.5",
77
81
  "react": "^16.14.0",
78
82
  "react-dom": "^16.14.0",
79
83
  "replace-in-file-webpack-plugin": "^1.0.6",
80
- "rimraf": "^5.0.5",
84
+ "rimraf": "^5.0.10",
81
85
  "strip-json-comments-cli": "^3.0.0",
82
- "style-loader": "^3.3.3",
86
+ "style-loader": "^3.3.4",
83
87
  "stylus": "^0.62.0",
84
88
  "stylus-loader": "^7.1.3",
85
89
  "sync-exec": "^0.6.2",
86
- "ts-jest": "^29.1.1",
87
- "ts-loader": "^9.5.1",
88
- "typescript": "^5.3.3",
89
- "webpack": "^5.89.0",
90
+ "ts-jest": "^29.1.2",
91
+ "ts-loader": "^9.5.4",
92
+ "typescript": "~5.3.3",
93
+ "webpack": "^5.104.1",
90
94
  "webpack-cli": "^5.1.4"
91
95
  },
92
96
  "peerDependencies": {
@@ -102,8 +106,8 @@
102
106
  "build:codap": "npm run clean && cross-env-shell NODE_ENV=production dest=../codap/apps/dg/resources/cloud-file-manager codap=1 noGlobals=1 noMap=1 'webpack && mv $dest/js/app.js $dest/js/app.js.ignore'",
103
107
  "build:codap:development": "npm run clean && cross-env-shell NODE_ENV=development dest=../codap/apps/dg/resources/cloud-file-manager codap=1 noGlobals=1 noMap=1 'webpack && mv $dest/js/app.js $dest/js/app.js.ignore'",
104
108
  "prepublishOnly": "npm run build:all",
105
- "publish:npm:latest": "npm publish --access public",
106
- "publish:npm:latest:preview": "npm publish --access public --dry-run",
109
+ "publish:npm:latest": "npm publish --access public --tag latest",
110
+ "publish:npm:latest:preview": "npm publish --access public --tag latest --dry-run",
107
111
  "publish:npm:next": "npm publish --access public --tag next",
108
112
  "publish:npm:next:preview": "npm publish --access public --tag next --dry-run",
109
113
  "yalc:publish": "npx yalc publish --push",
package/readme.md CHANGED
@@ -218,6 +218,10 @@ export interface CFMAppOptions {
218
218
  // false if the content should be unwrapped before storing to file/disk
219
219
  wrapFileContent?: boolean
220
220
  mimeType?: string
221
+ // if present, used when saving to local file system
222
+ // if set to "application/octet-stream " this prevents iOS from appending a file extension
223
+ // based on MIME type
224
+ localFileMimeType?: string
221
225
  // note different capitalization from CFMBaseProviderOptions
222
226
  readableMimeTypes?: string[]
223
227
  extension?: string
@@ -1,2 +0,0 @@
1
- /*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */
2
- export var saveAs: any;
@@ -1,164 +0,0 @@
1
- /* FileSaver.js
2
- * A saveAs() FileSaver implementation.
3
- * 1.3.2
4
- * 2016-06-16 18:25:19
5
- *
6
- * By Eli Grey, http://eligrey.com
7
- * License: MIT
8
- * See https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md
9
- */
10
- /*jslint bitwise: true, indent: 4, laxbreak: true, laxcomma: true, smarttabs: true, plusplus: true */
11
- /*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */
12
- var saveAs = saveAs || (function (view) {
13
- "use strict";
14
- // IE <10 is explicitly unsupported
15
- if (typeof view === "undefined" || typeof navigator !== "undefined" && /MSIE [1-9]\./.test(navigator.userAgent)) {
16
- return;
17
- }
18
- var doc = view.document
19
- // only get URL when necessary in case Blob.js hasn't overridden it yet
20
- , get_URL = function () {
21
- return view.URL || view.webkitURL || view;
22
- }, save_link = doc.createElementNS("http://www.w3.org/1999/xhtml", "a"), can_use_save_link = "download" in save_link, click = function (node) {
23
- var event = new MouseEvent("click");
24
- node.dispatchEvent(event);
25
- }, is_safari = /constructor/i.test(view.HTMLElement) || view.safari, is_chrome_ios = /CriOS\/[\d]+/.test(navigator.userAgent), throw_outside = function (ex) {
26
- (view.setImmediate || view.setTimeout)(function () {
27
- throw ex;
28
- }, 0);
29
- }
30
- // the Blob API is fundamentally broken as there is no "downloadfinished" event to subscribe to
31
- , arbitrary_revoke_timeout = 1000 * 40 // in ms
32
- , revoke = function (file) {
33
- var revoker = function () {
34
- if (typeof file === "string") { // file is an object URL
35
- get_URL().revokeObjectURL(file);
36
- }
37
- else { // file is a File
38
- file.remove();
39
- }
40
- };
41
- setTimeout(revoker, arbitrary_revoke_timeout);
42
- }, dispatch = function (filesaver, event_types, event) {
43
- event_types = [].concat(event_types);
44
- var i = event_types.length;
45
- while (i--) {
46
- var listener = filesaver["on" + event_types[i]];
47
- if (typeof listener === "function") {
48
- try {
49
- listener.call(filesaver, event || filesaver);
50
- }
51
- catch (ex) {
52
- throw_outside(ex);
53
- }
54
- }
55
- }
56
- }, auto_bom = function (blob) {
57
- // prepend BOM for UTF-8 XML and text/* types (including HTML)
58
- // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF
59
- if (/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(blob.type)) {
60
- return new Blob([String.fromCharCode(0xFEFF), blob], { type: blob.type });
61
- }
62
- return blob;
63
- }, FileSaver = function (blob, name, no_auto_bom) {
64
- if (!no_auto_bom) {
65
- blob = auto_bom(blob);
66
- }
67
- // First try a.download, then web filesystem, then object URLs
68
- var filesaver = this, force = true // [CC 2016-12-05] type === force_saveable_type
69
- , object_url, dispatch_all = function () {
70
- dispatch(filesaver, "writestart progress write writeend".split(" "));
71
- }
72
- // on any filesys errors revert to saving with object URLs
73
- , fs_error = function () {
74
- if ((is_chrome_ios || (force && is_safari)) && view.FileReader) {
75
- // Safari doesn't allow downloading of blob urls
76
- var reader = new FileReader();
77
- reader.onloadend = function () {
78
- var url = is_chrome_ios ? reader.result : reader.result.replace(/^data:[^;]*;/, 'data:attachment/file;');
79
- var popup = view.open(url, '_blank');
80
- if (!popup)
81
- view.location.href = url;
82
- url = undefined; // release reference before dispatching
83
- filesaver.readyState = filesaver.DONE;
84
- dispatch_all();
85
- };
86
- reader.readAsDataURL(blob);
87
- filesaver.readyState = filesaver.INIT;
88
- return;
89
- }
90
- // don't create more object URLs than needed
91
- if (!object_url) {
92
- object_url = get_URL().createObjectURL(blob);
93
- }
94
- if (force) {
95
- view.location.href = object_url;
96
- }
97
- else {
98
- var opened = view.open(object_url, "_blank");
99
- if (!opened) {
100
- // Apple does not allow window.open, see https://developer.apple.com/library/safari/documentation/Tools/Conceptual/SafariExtensionGuide/WorkingwithWindowsandTabs/WorkingwithWindowsandTabs.html
101
- view.location.href = object_url;
102
- }
103
- }
104
- filesaver.readyState = filesaver.DONE;
105
- dispatch_all();
106
- revoke(object_url);
107
- };
108
- filesaver.readyState = filesaver.INIT;
109
- if (can_use_save_link) {
110
- object_url = get_URL().createObjectURL(blob);
111
- setTimeout(function () {
112
- save_link.href = object_url;
113
- save_link.download = name;
114
- click(save_link);
115
- dispatch_all();
116
- revoke(object_url);
117
- filesaver.readyState = filesaver.DONE;
118
- });
119
- return;
120
- }
121
- fs_error();
122
- }, FS_proto = FileSaver.prototype, saveAs = function (blob, name, no_auto_bom) {
123
- return new FileSaver(blob, name || blob.name || "download", no_auto_bom);
124
- };
125
- // IE 10+ (native saveAs)
126
- if (typeof navigator !== "undefined" && navigator.msSaveOrOpenBlob) {
127
- return function (blob, name, no_auto_bom) {
128
- name = name || blob.name || "download";
129
- if (!no_auto_bom) {
130
- blob = auto_bom(blob);
131
- }
132
- return navigator.msSaveOrOpenBlob(blob, name);
133
- };
134
- }
135
- FS_proto.abort = function () { };
136
- FS_proto.readyState = FS_proto.INIT = 0;
137
- FS_proto.WRITING = 1;
138
- FS_proto.DONE = 2;
139
- FS_proto.error =
140
- FS_proto.onwritestart =
141
- FS_proto.onprogress =
142
- FS_proto.onwrite =
143
- FS_proto.onabort =
144
- FS_proto.onerror =
145
- FS_proto.onwriteend =
146
- null;
147
- return saveAs;
148
- }(typeof self !== "undefined" && self
149
- || typeof window !== "undefined" && window
150
- // eslint-disable-next-line babel/no-invalid-this
151
- || this.content // TODO: What do we think `this` is here? ¯\_(ツ)_/¯
152
- ));
153
- // `self` is undefined in Firefox for Android content script context
154
- // while `this` is nsIContentFrameMessageManager
155
- // with an attribute `content` that corresponds to the window
156
- if (typeof module !== "undefined" && module.exports) {
157
- module.exports.saveAs = saveAs;
158
- }
159
- else if ((typeof define !== "undefined" && define !== null) && (define.amd !== null)) {
160
- define("FileSaver.js", function () {
161
- return saveAs;
162
- });
163
- }
164
- //# sourceMappingURL=file-saver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-saver.js","sourceRoot":"","sources":["../../../src/code/lib/file-saver.js"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- /*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */
2
- export var saveAs: any;
@@ -1,164 +0,0 @@
1
- /* FileSaver.js
2
- * A saveAs() FileSaver implementation.
3
- * 1.3.2
4
- * 2016-06-16 18:25:19
5
- *
6
- * By Eli Grey, http://eligrey.com
7
- * License: MIT
8
- * See https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md
9
- */
10
- /*jslint bitwise: true, indent: 4, laxbreak: true, laxcomma: true, smarttabs: true, plusplus: true */
11
- /*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */
12
- var saveAs = saveAs || (function (view) {
13
- "use strict";
14
- // IE <10 is explicitly unsupported
15
- if (typeof view === "undefined" || typeof navigator !== "undefined" && /MSIE [1-9]\./.test(navigator.userAgent)) {
16
- return;
17
- }
18
- var doc = view.document
19
- // only get URL when necessary in case Blob.js hasn't overridden it yet
20
- , get_URL = function () {
21
- return view.URL || view.webkitURL || view;
22
- }, save_link = doc.createElementNS("http://www.w3.org/1999/xhtml", "a"), can_use_save_link = "download" in save_link, click = function (node) {
23
- var event = new MouseEvent("click");
24
- node.dispatchEvent(event);
25
- }, is_safari = /constructor/i.test(view.HTMLElement) || view.safari, is_chrome_ios = /CriOS\/[\d]+/.test(navigator.userAgent), throw_outside = function (ex) {
26
- (view.setImmediate || view.setTimeout)(function () {
27
- throw ex;
28
- }, 0);
29
- }
30
- // the Blob API is fundamentally broken as there is no "downloadfinished" event to subscribe to
31
- , arbitrary_revoke_timeout = 1000 * 40 // in ms
32
- , revoke = function (file) {
33
- var revoker = function () {
34
- if (typeof file === "string") { // file is an object URL
35
- get_URL().revokeObjectURL(file);
36
- }
37
- else { // file is a File
38
- file.remove();
39
- }
40
- };
41
- setTimeout(revoker, arbitrary_revoke_timeout);
42
- }, dispatch = function (filesaver, event_types, event) {
43
- event_types = [].concat(event_types);
44
- var i = event_types.length;
45
- while (i--) {
46
- var listener = filesaver["on" + event_types[i]];
47
- if (typeof listener === "function") {
48
- try {
49
- listener.call(filesaver, event || filesaver);
50
- }
51
- catch (ex) {
52
- throw_outside(ex);
53
- }
54
- }
55
- }
56
- }, auto_bom = function (blob) {
57
- // prepend BOM for UTF-8 XML and text/* types (including HTML)
58
- // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF
59
- if (/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(blob.type)) {
60
- return new Blob([String.fromCharCode(0xFEFF), blob], { type: blob.type });
61
- }
62
- return blob;
63
- }, FileSaver = function (blob, name, no_auto_bom) {
64
- if (!no_auto_bom) {
65
- blob = auto_bom(blob);
66
- }
67
- // First try a.download, then web filesystem, then object URLs
68
- var filesaver = this, force = true // [CC 2016-12-05] type === force_saveable_type
69
- , object_url, dispatch_all = function () {
70
- dispatch(filesaver, "writestart progress write writeend".split(" "));
71
- }
72
- // on any filesys errors revert to saving with object URLs
73
- , fs_error = function () {
74
- if ((is_chrome_ios || (force && is_safari)) && view.FileReader) {
75
- // Safari doesn't allow downloading of blob urls
76
- var reader = new FileReader();
77
- reader.onloadend = function () {
78
- var url = is_chrome_ios ? reader.result : reader.result.replace(/^data:[^;]*;/, 'data:attachment/file;');
79
- var popup = view.open(url, '_blank');
80
- if (!popup)
81
- view.location.href = url;
82
- url = undefined; // release reference before dispatching
83
- filesaver.readyState = filesaver.DONE;
84
- dispatch_all();
85
- };
86
- reader.readAsDataURL(blob);
87
- filesaver.readyState = filesaver.INIT;
88
- return;
89
- }
90
- // don't create more object URLs than needed
91
- if (!object_url) {
92
- object_url = get_URL().createObjectURL(blob);
93
- }
94
- if (force) {
95
- view.location.href = object_url;
96
- }
97
- else {
98
- var opened = view.open(object_url, "_blank");
99
- if (!opened) {
100
- // Apple does not allow window.open, see https://developer.apple.com/library/safari/documentation/Tools/Conceptual/SafariExtensionGuide/WorkingwithWindowsandTabs/WorkingwithWindowsandTabs.html
101
- view.location.href = object_url;
102
- }
103
- }
104
- filesaver.readyState = filesaver.DONE;
105
- dispatch_all();
106
- revoke(object_url);
107
- };
108
- filesaver.readyState = filesaver.INIT;
109
- if (can_use_save_link) {
110
- object_url = get_URL().createObjectURL(blob);
111
- setTimeout(function () {
112
- save_link.href = object_url;
113
- save_link.download = name;
114
- click(save_link);
115
- dispatch_all();
116
- revoke(object_url);
117
- filesaver.readyState = filesaver.DONE;
118
- });
119
- return;
120
- }
121
- fs_error();
122
- }, FS_proto = FileSaver.prototype, saveAs = function (blob, name, no_auto_bom) {
123
- return new FileSaver(blob, name || blob.name || "download", no_auto_bom);
124
- };
125
- // IE 10+ (native saveAs)
126
- if (typeof navigator !== "undefined" && navigator.msSaveOrOpenBlob) {
127
- return function (blob, name, no_auto_bom) {
128
- name = name || blob.name || "download";
129
- if (!no_auto_bom) {
130
- blob = auto_bom(blob);
131
- }
132
- return navigator.msSaveOrOpenBlob(blob, name);
133
- };
134
- }
135
- FS_proto.abort = function () { };
136
- FS_proto.readyState = FS_proto.INIT = 0;
137
- FS_proto.WRITING = 1;
138
- FS_proto.DONE = 2;
139
- FS_proto.error =
140
- FS_proto.onwritestart =
141
- FS_proto.onprogress =
142
- FS_proto.onwrite =
143
- FS_proto.onabort =
144
- FS_proto.onerror =
145
- FS_proto.onwriteend =
146
- null;
147
- return saveAs;
148
- }(typeof self !== "undefined" && self
149
- || typeof window !== "undefined" && window
150
- // eslint-disable-next-line babel/no-invalid-this
151
- || this.content // TODO: What do we think `this` is here? ¯\_(ツ)_/¯
152
- ));
153
- // `self` is undefined in Firefox for Android content script context
154
- // while `this` is nsIContentFrameMessageManager
155
- // with an attribute `content` that corresponds to the window
156
- if (typeof module !== "undefined" && module.exports) {
157
- module.exports.saveAs = saveAs;
158
- }
159
- else if ((typeof define !== "undefined" && define !== null) && (define.amd !== null)) {
160
- define("FileSaver.js", function () {
161
- return saveAs;
162
- });
163
- }
164
- //# sourceMappingURL=file-saver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-saver.js","sourceRoot":"","sources":["../../../src/code/lib/file-saver.js"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,qGAAqG;AAErG,mFAAmF;AAEnF,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,IAAI;IACrC,YAAY,CAAA;IACZ,mCAAmC;IACnC,IAAI,OAAO,IAAI,KAAK,WAAW,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;QACjH,OAAM;IACP,CAAC;IACD,IACC,GAAG,GAAG,IAAI,CAAC,QAAQ;IACnB,uEAAuE;MACrE,OAAO,GAAG;QACX,OAAO,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAA;IAC1C,CAAC,EACC,SAAS,GAAG,GAAG,CAAC,eAAe,CAAC,8BAA8B,EAAE,GAAG,CAAC,EACpE,iBAAiB,GAAG,UAAU,IAAI,SAAS,EAC3C,KAAK,GAAG,UAAU,IAAI;QACvB,IAAI,KAAK,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,CAAA;QACnC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;IAC1B,CAAC,EACC,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,MAAM,EAChE,aAAa,GAAG,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EACxD,aAAa,GAAG,UAAU,EAAE;QAC7B,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;YACtC,MAAM,EAAE,CAAA;QACT,CAAC,EAAE,CAAC,CAAC,CAAA;IACN,CAAC;IACD,+FAA+F;MAC7F,wBAAwB,GAAG,IAAI,GAAG,EAAE,CAAC,QAAQ;MAC7C,MAAM,GAAG,UAAU,IAAI;QACxB,IAAI,OAAO,GAAG;YACb,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC,CAAC,wBAAwB;gBACvD,OAAO,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;YAChC,CAAC;iBAAM,CAAC,CAAC,iBAAiB;gBACzB,IAAI,CAAC,MAAM,EAAE,CAAA;YACd,CAAC;QACF,CAAC,CAAA;QACD,UAAU,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAA;IAC9C,CAAC,EACC,QAAQ,GAAG,UAAU,SAAS,EAAE,WAAW,EAAE,KAAK;QACnD,WAAW,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;QACpC,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,CAAA;QAC1B,OAAO,CAAC,EAAE,EAAE,CAAC;YACZ,IAAI,QAAQ,GAAG,SAAS,CAAC,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;YAC/C,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;gBACpC,IAAI,CAAC;oBACJ,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,IAAI,SAAS,CAAC,CAAA;gBAC7C,CAAC;gBAAC,OAAO,EAAE,EAAE,CAAC;oBACb,aAAa,CAAC,EAAE,CAAC,CAAA;gBAClB,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC,EACC,QAAQ,GAAG,UAAU,IAAI;QAC1B,8DAA8D;QAC9D,0EAA0E;QAC1E,IAAI,4EAA4E,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAClG,OAAO,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QAC1E,CAAC;QACD,OAAO,IAAI,CAAA;IACZ,CAAC,EACC,SAAS,GAAG,UAAU,IAAI,EAAE,IAAI,EAAE,WAAW;QAC9C,IAAI,CAAC,WAAW,EAAE,CAAC;YAClB,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;QACtB,CAAC;QACD,8DAA8D;QAC9D,IACC,SAAS,GAAG,IAAI,EACd,KAAK,GAAG,IAAI,CAAE,+CAA+C;UAC7D,UAAU,EACV,YAAY,GAAG;YAChB,QAAQ,CAAC,SAAS,EAAE,oCAAoC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;QACrE,CAAC;QACD,0DAA0D;UACxD,QAAQ,GAAG;YACZ,IAAI,CAAC,aAAa,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChE,gDAAgD;gBAChD,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAA;gBAC7B,MAAM,CAAC,SAAS,GAAG;oBAClB,IAAI,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,uBAAuB,CAAC,CAAA;oBACxG,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;oBACpC,IAAI,CAAC,KAAK;wBAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,CAAA;oBACpC,GAAG,GAAG,SAAS,CAAA,CAAC,uCAAuC;oBACvD,SAAS,CAAC,UAAU,GAAG,SAAS,CAAC,IAAI,CAAA;oBACrC,YAAY,EAAE,CAAA;gBACf,CAAC,CAAA;gBACD,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;gBAC1B,SAAS,CAAC,UAAU,GAAG,SAAS,CAAC,IAAI,CAAA;gBACrC,OAAM;YACP,CAAC;YACD,4CAA4C;YAC5C,IAAI,CAAC,UAAU,EAAE,CAAC;gBACjB,UAAU,GAAG,OAAO,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;YAC7C,CAAC;YACD,IAAI,KAAK,EAAE,CAAC;gBACX,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,UAAU,CAAA;YAChC,CAAC;iBAAM,CAAC;gBACP,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;gBAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;oBACb,gMAAgM;oBAChM,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,UAAU,CAAA;gBAChC,CAAC;YACF,CAAC;YACD,SAAS,CAAC,UAAU,GAAG,SAAS,CAAC,IAAI,CAAA;YACrC,YAAY,EAAE,CAAA;YACd,MAAM,CAAC,UAAU,CAAC,CAAA;QACnB,CAAC,CAAA;QAEF,SAAS,CAAC,UAAU,GAAG,SAAS,CAAC,IAAI,CAAA;QAErC,IAAI,iBAAiB,EAAE,CAAC;YACvB,UAAU,GAAG,OAAO,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;YAC5C,UAAU,CAAC;gBACV,SAAS,CAAC,IAAI,GAAG,UAAU,CAAA;gBAC3B,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAA;gBACzB,KAAK,CAAC,SAAS,CAAC,CAAA;gBAChB,YAAY,EAAE,CAAA;gBACd,MAAM,CAAC,UAAU,CAAC,CAAA;gBAClB,SAAS,CAAC,UAAU,GAAG,SAAS,CAAC,IAAI,CAAA;YACtC,CAAC,CAAC,CAAA;YACF,OAAM;QACP,CAAC;QAED,QAAQ,EAAE,CAAA;IACX,CAAC,EACC,QAAQ,GAAG,SAAS,CAAC,SAAS,EAC9B,MAAM,GAAG,UAAU,IAAI,EAAE,IAAI,EAAE,WAAW;QAC3C,OAAO,IAAI,SAAS,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,UAAU,EAAE,WAAW,CAAC,CAAA;IACzE,CAAC,CAAA;IAEF,yBAAyB;IACzB,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,gBAAgB,EAAE,CAAC;QACpE,OAAO,UAAU,IAAI,EAAE,IAAI,EAAE,WAAW;YACvC,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,UAAU,CAAA;YAEtC,IAAI,CAAC,WAAW,EAAE,CAAC;gBAClB,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;YACtB,CAAC;YACD,OAAO,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAC9C,CAAC,CAAA;IACF,CAAC;IAED,QAAQ,CAAC,KAAK,GAAG,cAAc,CAAC,CAAA;IAChC,QAAQ,CAAC,UAAU,GAAG,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAA;IACvC,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAA;IACpB,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAA;IAEjB,QAAQ,CAAC,KAAK;QACb,QAAQ,CAAC,YAAY;YACrB,QAAQ,CAAC,UAAU;gBACnB,QAAQ,CAAC,OAAO;oBAChB,QAAQ,CAAC,OAAO;wBAChB,QAAQ,CAAC,OAAO;4BAChB,QAAQ,CAAC,UAAU;gCACnB,IAAI,CAAA;IAEL,OAAO,MAAM,CAAA;AACd,CAAC,CACA,OAAO,IAAI,KAAK,WAAW,IAAI,IAAI;OAChC,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM;IAC1C,iDAAiD;OAC9C,IAAI,CAAC,OAAO,CAAC,oDAAoD;CACnE,CAAC,CAAA;AACH,oEAAoE;AACpE,gDAAgD;AAChD,6DAA6D;AAE7D,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;IACrD,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAA;AAC/B,CAAC;KAAM,IAAI,CAAC,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC;IACxF,MAAM,CAAC,cAAc,EAAE;QACtB,OAAO,MAAM,CAAA;IACd,CAAC,CAAC,CAAA;AACH,CAAC"}