@concord-consortium/cloud-file-manager 2.1.0-pre.9 → 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 (276) 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.js +51 -79
  6. package/dist/cjs/client.js.map +1 -1
  7. package/dist/cjs/cloud-file-manager.js +2 -2
  8. package/dist/cjs/cloud-file-manager.js.map +1 -1
  9. package/dist/cjs/create-react-factory.d.ts +1 -0
  10. package/dist/cjs/create-react-factory.js.map +1 -1
  11. package/dist/cjs/providers/document-store-provider.js +7 -10
  12. package/dist/cjs/providers/document-store-provider.js.map +1 -1
  13. package/dist/cjs/providers/document-store-share-provider.js +4 -4
  14. package/dist/cjs/providers/document-store-share-provider.js.map +1 -1
  15. package/dist/cjs/providers/google-drive-provider.js +30 -34
  16. package/dist/cjs/providers/google-drive-provider.js.map +1 -1
  17. package/dist/cjs/providers/interactive-api-provider.d.ts +5 -2
  18. package/dist/cjs/providers/interactive-api-provider.js +27 -21
  19. package/dist/cjs/providers/interactive-api-provider.js.map +1 -1
  20. package/dist/cjs/providers/lara-provider.js +18 -26
  21. package/dist/cjs/providers/lara-provider.js.map +1 -1
  22. package/dist/cjs/providers/legacy-google-drive-provider.js +21 -27
  23. package/dist/cjs/providers/legacy-google-drive-provider.js.map +1 -1
  24. package/dist/cjs/providers/localstorage-provider.js +11 -13
  25. package/dist/cjs/providers/localstorage-provider.js.map +1 -1
  26. package/dist/cjs/providers/patchable-content.js +1 -1
  27. package/dist/cjs/providers/patchable-content.js.map +1 -1
  28. package/dist/cjs/providers/post-message-provider.js +1 -1
  29. package/dist/cjs/providers/post-message-provider.js.map +1 -1
  30. package/dist/cjs/providers/provider-interface.d.ts +1 -2
  31. package/dist/cjs/providers/provider-interface.js +11 -14
  32. package/dist/cjs/providers/provider-interface.js.map +1 -1
  33. package/dist/cjs/providers/readonly-provider.js +6 -6
  34. package/dist/cjs/providers/readonly-provider.js.map +1 -1
  35. package/dist/cjs/providers/s3-provider.js +1 -2
  36. package/dist/cjs/providers/s3-provider.js.map +1 -1
  37. package/dist/cjs/providers/s3-share-provider.js +1 -1
  38. package/dist/cjs/providers/s3-share-provider.js.map +1 -1
  39. package/dist/cjs/providers/test-provider.js +5 -5
  40. package/dist/cjs/providers/test-provider.js.map +1 -1
  41. package/dist/cjs/providers/url-provider.js +1 -1
  42. package/dist/cjs/providers/url-provider.js.map +1 -1
  43. package/dist/cjs/ui.js +2 -3
  44. package/dist/cjs/ui.js.map +1 -1
  45. package/dist/cjs/utils/focus-tracker.d.ts +3 -0
  46. package/dist/cjs/utils/focus-tracker.js +44 -0
  47. package/dist/cjs/utils/focus-tracker.js.map +1 -0
  48. package/dist/cjs/utils/ios-file-saver.d.ts +42 -0
  49. package/dist/cjs/utils/ios-file-saver.js +98 -0
  50. package/dist/cjs/utils/ios-file-saver.js.map +1 -0
  51. package/dist/cjs/utils/lang/en-US.json +9 -0
  52. package/dist/cjs/utils/s3-share-provider-token-service-helper.js +19 -13
  53. package/dist/cjs/utils/s3-share-provider-token-service-helper.js.map +1 -1
  54. package/dist/cjs/utils/url-params.js +1 -2
  55. package/dist/cjs/utils/url-params.js.map +1 -1
  56. package/dist/cjs/views/alert-dialog-view.d.ts +9 -3
  57. package/dist/cjs/views/alert-dialog-view.js +9 -24
  58. package/dist/cjs/views/alert-dialog-view.js.map +1 -1
  59. package/dist/cjs/views/app-view.d.ts +12 -5
  60. package/dist/cjs/views/app-view.js +167 -175
  61. package/dist/cjs/views/app-view.js.map +1 -1
  62. package/dist/cjs/views/blocking-modal-view.d.ts +9 -3
  63. package/dist/cjs/views/blocking-modal-view.js +8 -25
  64. package/dist/cjs/views/blocking-modal-view.js.map +1 -1
  65. package/dist/cjs/views/confirm-dialog-view.d.ts +14 -3
  66. package/dist/cjs/views/confirm-dialog-view.js +14 -31
  67. package/dist/cjs/views/confirm-dialog-view.js.map +1 -1
  68. package/dist/cjs/views/download-dialog-view.d.ts +12 -3
  69. package/dist/cjs/views/download-dialog-view.js +36 -63
  70. package/dist/cjs/views/download-dialog-view.js.map +1 -1
  71. package/dist/cjs/views/dropdown-anchors.d.ts +2 -2
  72. package/dist/cjs/views/dropdown-anchors.js +4 -10
  73. package/dist/cjs/views/dropdown-anchors.js.map +1 -1
  74. package/dist/cjs/views/dropdown-view.d.ts +20 -3
  75. package/dist/cjs/views/dropdown-view.js +40 -157
  76. package/dist/cjs/views/dropdown-view.js.map +1 -1
  77. package/dist/cjs/views/file-dialog-tab-view.d.ts +24 -2
  78. package/dist/cjs/views/file-dialog-tab-view.js +255 -315
  79. package/dist/cjs/views/file-dialog-tab-view.js.map +1 -1
  80. package/dist/cjs/views/icons/spin.d.ts +2 -2
  81. package/dist/cjs/views/icons/spin.js +2 -39
  82. package/dist/cjs/views/icons/spin.js.map +1 -1
  83. package/dist/cjs/views/import-tabbed-dialog-view.d.ts +12 -3
  84. package/dist/cjs/views/import-tabbed-dialog-view.js +33 -65
  85. package/dist/cjs/views/import-tabbed-dialog-view.js.map +1 -1
  86. package/dist/cjs/views/local-file-tab-list-view.d.ts +14 -3
  87. package/dist/cjs/views/local-file-tab-list-view.js +57 -66
  88. package/dist/cjs/views/local-file-tab-list-view.js.map +1 -1
  89. package/dist/cjs/views/local-file-tab-save-view.d.ts +32 -3
  90. package/dist/cjs/views/local-file-tab-save-view.js +125 -138
  91. package/dist/cjs/views/local-file-tab-save-view.js.map +1 -1
  92. package/dist/cjs/views/menu-bar-view.d.ts +58 -3
  93. package/dist/cjs/views/menu-bar-view.js +196 -183
  94. package/dist/cjs/views/menu-bar-view.js.map +1 -1
  95. package/dist/cjs/views/modal-dialog-view.js +7 -8
  96. package/dist/cjs/views/modal-dialog-view.js.map +1 -1
  97. package/dist/cjs/views/modal-tabbed-dialog-view.d.ts +15 -3
  98. package/dist/cjs/views/modal-tabbed-dialog-view.js +5 -17
  99. package/dist/cjs/views/modal-tabbed-dialog-view.js.map +1 -1
  100. package/dist/cjs/views/modal-view.d.ts +5 -32
  101. package/dist/cjs/views/modal-view.js +20 -64
  102. package/dist/cjs/views/modal-view.js.map +1 -1
  103. package/dist/cjs/views/provider-tabbed-dialog-view.d.ts +23 -3
  104. package/dist/cjs/views/provider-tabbed-dialog-view.js +43 -51
  105. package/dist/cjs/views/provider-tabbed-dialog-view.js.map +1 -1
  106. package/dist/cjs/views/rename-dialog-view.d.ts +8 -3
  107. package/dist/cjs/views/rename-dialog-view.js +25 -51
  108. package/dist/cjs/views/rename-dialog-view.js.map +1 -1
  109. package/dist/cjs/views/select-interactive-state-dialog-view.d.ts +1 -1
  110. package/dist/cjs/views/select-interactive-state-dialog-view.js +4 -30
  111. package/dist/cjs/views/select-interactive-state-dialog-view.js.map +1 -1
  112. package/dist/cjs/views/select-provider-dialog-tab-view.d.ts +6 -1
  113. package/dist/cjs/views/select-provider-dialog-tab-view.js +4 -12
  114. package/dist/cjs/views/select-provider-dialog-tab-view.js.map +1 -1
  115. package/dist/cjs/views/share-dialog-status-view.js +6 -13
  116. package/dist/cjs/views/share-dialog-status-view.js.map +1 -1
  117. package/dist/cjs/views/share-dialog-tabs-view.js +22 -61
  118. package/dist/cjs/views/share-dialog-tabs-view.js.map +1 -1
  119. package/dist/cjs/views/share-dialog-view.d.ts +1 -1
  120. package/dist/cjs/views/share-dialog-view.js +15 -21
  121. package/dist/cjs/views/share-dialog-view.js.map +1 -1
  122. package/dist/cjs/views/share-loading-view.d.ts +2 -2
  123. package/dist/cjs/views/share-loading-view.js +2 -4
  124. package/dist/cjs/views/share-loading-view.js.map +1 -1
  125. package/dist/cjs/views/tabbed-panel-view.d.ts +16 -3
  126. package/dist/cjs/views/tabbed-panel-view.js +25 -75
  127. package/dist/cjs/views/tabbed-panel-view.js.map +1 -1
  128. package/dist/cjs/views/url-tab-view.d.ts +12 -3
  129. package/dist/cjs/views/url-tab-view.js +31 -46
  130. package/dist/cjs/views/url-tab-view.js.map +1 -1
  131. package/dist/css/app.css +1 -1
  132. package/dist/css/app.css.map +1 -1
  133. package/dist/esm/app-options.d.ts +2 -0
  134. package/dist/esm/client.js +51 -79
  135. package/dist/esm/client.js.map +1 -1
  136. package/dist/esm/cloud-file-manager.js +2 -2
  137. package/dist/esm/cloud-file-manager.js.map +1 -1
  138. package/dist/esm/create-react-factory.d.ts +1 -0
  139. package/dist/esm/create-react-factory.js.map +1 -1
  140. package/dist/esm/providers/document-store-provider.js +7 -10
  141. package/dist/esm/providers/document-store-provider.js.map +1 -1
  142. package/dist/esm/providers/document-store-share-provider.js +4 -4
  143. package/dist/esm/providers/document-store-share-provider.js.map +1 -1
  144. package/dist/esm/providers/google-drive-provider.js +30 -34
  145. package/dist/esm/providers/google-drive-provider.js.map +1 -1
  146. package/dist/esm/providers/interactive-api-provider.d.ts +5 -2
  147. package/dist/esm/providers/interactive-api-provider.js +25 -20
  148. package/dist/esm/providers/interactive-api-provider.js.map +1 -1
  149. package/dist/esm/providers/lara-provider.js +18 -26
  150. package/dist/esm/providers/lara-provider.js.map +1 -1
  151. package/dist/esm/providers/legacy-google-drive-provider.js +21 -27
  152. package/dist/esm/providers/legacy-google-drive-provider.js.map +1 -1
  153. package/dist/esm/providers/localstorage-provider.js +11 -13
  154. package/dist/esm/providers/localstorage-provider.js.map +1 -1
  155. package/dist/esm/providers/patchable-content.js +1 -1
  156. package/dist/esm/providers/patchable-content.js.map +1 -1
  157. package/dist/esm/providers/post-message-provider.js +1 -1
  158. package/dist/esm/providers/post-message-provider.js.map +1 -1
  159. package/dist/esm/providers/provider-interface.d.ts +1 -2
  160. package/dist/esm/providers/provider-interface.js +11 -14
  161. package/dist/esm/providers/provider-interface.js.map +1 -1
  162. package/dist/esm/providers/readonly-provider.js +6 -6
  163. package/dist/esm/providers/readonly-provider.js.map +1 -1
  164. package/dist/esm/providers/s3-provider.js +1 -2
  165. package/dist/esm/providers/s3-provider.js.map +1 -1
  166. package/dist/esm/providers/s3-share-provider.js +1 -1
  167. package/dist/esm/providers/s3-share-provider.js.map +1 -1
  168. package/dist/esm/providers/test-provider.js +5 -5
  169. package/dist/esm/providers/test-provider.js.map +1 -1
  170. package/dist/esm/providers/url-provider.js +1 -1
  171. package/dist/esm/providers/url-provider.js.map +1 -1
  172. package/dist/esm/ui.js +2 -3
  173. package/dist/esm/ui.js.map +1 -1
  174. package/dist/esm/utils/focus-tracker.d.ts +3 -0
  175. package/dist/esm/utils/focus-tracker.js +38 -0
  176. package/dist/esm/utils/focus-tracker.js.map +1 -0
  177. package/dist/esm/utils/ios-file-saver.d.ts +42 -0
  178. package/dist/esm/utils/ios-file-saver.js +91 -0
  179. package/dist/esm/utils/ios-file-saver.js.map +1 -0
  180. package/dist/esm/utils/lang/en-US.json +9 -0
  181. package/dist/esm/utils/s3-share-provider-token-service-helper.js +19 -10
  182. package/dist/esm/utils/s3-share-provider-token-service-helper.js.map +1 -1
  183. package/dist/esm/utils/url-params.js +1 -2
  184. package/dist/esm/utils/url-params.js.map +1 -1
  185. package/dist/esm/views/alert-dialog-view.d.ts +9 -3
  186. package/dist/esm/views/alert-dialog-view.js +10 -25
  187. package/dist/esm/views/alert-dialog-view.js.map +1 -1
  188. package/dist/esm/views/app-view.d.ts +12 -5
  189. package/dist/esm/views/app-view.js +176 -184
  190. package/dist/esm/views/app-view.js.map +1 -1
  191. package/dist/esm/views/blocking-modal-view.d.ts +9 -3
  192. package/dist/esm/views/blocking-modal-view.js +9 -26
  193. package/dist/esm/views/blocking-modal-view.js.map +1 -1
  194. package/dist/esm/views/confirm-dialog-view.d.ts +14 -3
  195. package/dist/esm/views/confirm-dialog-view.js +15 -32
  196. package/dist/esm/views/confirm-dialog-view.js.map +1 -1
  197. package/dist/esm/views/download-dialog-view.d.ts +12 -3
  198. package/dist/esm/views/download-dialog-view.js +36 -63
  199. package/dist/esm/views/download-dialog-view.js.map +1 -1
  200. package/dist/esm/views/dropdown-anchors.d.ts +2 -2
  201. package/dist/esm/views/dropdown-anchors.js +4 -7
  202. package/dist/esm/views/dropdown-anchors.js.map +1 -1
  203. package/dist/esm/views/dropdown-view.d.ts +20 -3
  204. package/dist/esm/views/dropdown-view.js +40 -154
  205. package/dist/esm/views/dropdown-view.js.map +1 -1
  206. package/dist/esm/views/file-dialog-tab-view.d.ts +24 -2
  207. package/dist/esm/views/file-dialog-tab-view.js +256 -316
  208. package/dist/esm/views/file-dialog-tab-view.js.map +1 -1
  209. package/dist/esm/views/icons/spin.d.ts +2 -2
  210. package/dist/esm/views/icons/spin.js +2 -36
  211. package/dist/esm/views/icons/spin.js.map +1 -1
  212. package/dist/esm/views/import-tabbed-dialog-view.d.ts +12 -3
  213. package/dist/esm/views/import-tabbed-dialog-view.js +36 -68
  214. package/dist/esm/views/import-tabbed-dialog-view.js.map +1 -1
  215. package/dist/esm/views/local-file-tab-list-view.d.ts +14 -3
  216. package/dist/esm/views/local-file-tab-list-view.js +57 -66
  217. package/dist/esm/views/local-file-tab-list-view.js.map +1 -1
  218. package/dist/esm/views/local-file-tab-save-view.d.ts +32 -3
  219. package/dist/esm/views/local-file-tab-save-view.js +125 -138
  220. package/dist/esm/views/local-file-tab-save-view.js.map +1 -1
  221. package/dist/esm/views/menu-bar-view.d.ts +58 -3
  222. package/dist/esm/views/menu-bar-view.js +198 -185
  223. package/dist/esm/views/menu-bar-view.js.map +1 -1
  224. package/dist/esm/views/modal-dialog-view.js +7 -8
  225. package/dist/esm/views/modal-dialog-view.js.map +1 -1
  226. package/dist/esm/views/modal-tabbed-dialog-view.d.ts +15 -3
  227. package/dist/esm/views/modal-tabbed-dialog-view.js +7 -19
  228. package/dist/esm/views/modal-tabbed-dialog-view.js.map +1 -1
  229. package/dist/esm/views/modal-view.d.ts +5 -32
  230. package/dist/esm/views/modal-view.js +21 -61
  231. package/dist/esm/views/modal-view.js.map +1 -1
  232. package/dist/esm/views/provider-tabbed-dialog-view.d.ts +23 -3
  233. package/dist/esm/views/provider-tabbed-dialog-view.js +46 -54
  234. package/dist/esm/views/provider-tabbed-dialog-view.js.map +1 -1
  235. package/dist/esm/views/rename-dialog-view.d.ts +8 -3
  236. package/dist/esm/views/rename-dialog-view.js +25 -51
  237. package/dist/esm/views/rename-dialog-view.js.map +1 -1
  238. package/dist/esm/views/select-interactive-state-dialog-view.d.ts +1 -1
  239. package/dist/esm/views/select-interactive-state-dialog-view.js +4 -30
  240. package/dist/esm/views/select-interactive-state-dialog-view.js.map +1 -1
  241. package/dist/esm/views/select-provider-dialog-tab-view.d.ts +6 -1
  242. package/dist/esm/views/select-provider-dialog-tab-view.js +4 -9
  243. package/dist/esm/views/select-provider-dialog-tab-view.js.map +1 -1
  244. package/dist/esm/views/share-dialog-status-view.js +6 -13
  245. package/dist/esm/views/share-dialog-status-view.js.map +1 -1
  246. package/dist/esm/views/share-dialog-tabs-view.js +22 -61
  247. package/dist/esm/views/share-dialog-tabs-view.js.map +1 -1
  248. package/dist/esm/views/share-dialog-view.d.ts +1 -1
  249. package/dist/esm/views/share-dialog-view.js +15 -21
  250. package/dist/esm/views/share-dialog-view.js.map +1 -1
  251. package/dist/esm/views/share-loading-view.d.ts +2 -2
  252. package/dist/esm/views/share-loading-view.js +2 -4
  253. package/dist/esm/views/share-loading-view.js.map +1 -1
  254. package/dist/esm/views/tabbed-panel-view.d.ts +16 -3
  255. package/dist/esm/views/tabbed-panel-view.js +25 -72
  256. package/dist/esm/views/tabbed-panel-view.js.map +1 -1
  257. package/dist/esm/views/url-tab-view.d.ts +12 -3
  258. package/dist/esm/views/url-tab-view.js +31 -46
  259. package/dist/esm/views/url-tab-view.js.map +1 -1
  260. package/dist/examples/codap3-local-file.html +42 -0
  261. package/dist/examples/index.html +2 -0
  262. package/dist/examples/local-json-save.html +36 -0
  263. package/dist/index.html +1 -1
  264. package/dist/js/app.js +1 -1
  265. package/dist/js/app.js.LICENSE.txt +41 -11
  266. package/dist/js/app.js.map +1 -1
  267. package/dist/js/globals.js +1 -1
  268. package/dist/js/globals.js.map +1 -1
  269. package/package.json +40 -36
  270. package/readme.md +4 -0
  271. package/dist/cjs/lib/file-saver.d.ts +0 -2
  272. package/dist/cjs/lib/file-saver.js +0 -164
  273. package/dist/cjs/lib/file-saver.js.map +0 -1
  274. package/dist/esm/lib/file-saver.d.ts +0 -2
  275. package/dist/esm/lib/file-saver.js +0 -164
  276. package/dist/esm/lib/file-saver.js.map +0 -1
@@ -1,156 +1,194 @@
1
- // TODO: This file was created by bulk-decaffeinate.
2
- // Sanity-check the conversion and remove this comment.
3
- /*
4
- * decaffeinate suggestions:
5
- * DS102: Remove unnecessary code created because of implicit returns
6
- * DS207: Consider shorter variations of null checks
7
- * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
8
- */
9
- import createReactClass from "create-react-class";
10
- import ReactDOM from "react-dom";
11
- import ReactDOMFactories from "react-dom-factories";
12
- import { createReactFactory } from "../create-react-factory";
13
- import tr, { getCurrentLanguage, getSpecialLangFontClassName } from "../utils/translate";
14
- import DropDownView from "./dropdown-view";
15
- const { div, span, input, button, img } = ReactDOMFactories;
16
- const Dropdown = createReactFactory(DropDownView);
17
- export default createReactClass({
18
- displayName: 'MenuBar',
19
- componentDidMount() {
20
- // need to use direct DOM events because the event needs to be captured
21
- if (window.addEventListener) {
22
- window.addEventListener('mousedown', this.checkBlur, true);
23
- window.addEventListener('touchstart', this.checkBlur, true);
24
- }
25
- return this.props.client._ui.listen((event) => {
26
- switch (event.type) {
27
- case 'editInitialFilename':
28
- this.setState({
29
- editingFilename: true,
30
- editingInitialFilename: true
31
- });
32
- return setTimeout((() => this.focusFilename()), 10);
33
- }
34
- });
35
- },
36
- componentWillUnmount() {
37
- if (window.removeEventListener) {
38
- window.removeEventListener('mousedown', this.checkBlur, true);
39
- return window.removeEventListener('touchstart', this.checkBlur, true);
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useState, useEffect, useLayoutEffect, useRef, useCallback } from 'react';
3
+ import tr, { getCurrentLanguage, getSpecialLangFontClassName } from '../utils/translate';
4
+ import DropdownView from './dropdown-view';
5
+ const MenuBar = ({ client, provider, options, items, filename: propFilename, fileStatus }) => {
6
+ const getFilename = (fname) => {
7
+ return fname && fname.length > 0 ? fname : tr("~MENUBAR.UNTITLED_DOCUMENT");
8
+ };
9
+ const [editingFilename, setEditingFilename] = useState(false);
10
+ const [editingInitialFilename, setEditingInitialFilename] = useState(false);
11
+ const [filename, setFilename] = useState(() => getFilename(propFilename));
12
+ const [editableFilename, setEditableFilename] = useState(() => getFilename(propFilename));
13
+ const [initialEditableFilename] = useState(() => getFilename(propFilename));
14
+ const filenameRef = useRef(null);
15
+ // Update filename when prop changes
16
+ useEffect(() => {
17
+ const newFilename = getFilename(propFilename);
18
+ setFilename(newFilename);
19
+ setEditableFilename(newFilename);
20
+ }, [propFilename]);
21
+ const focusFilename = useCallback(() => {
22
+ const el = filenameRef.current;
23
+ if (el) {
24
+ el.focus();
25
+ el.select();
40
26
  }
41
- },
42
- getFilename(props) {
43
- if ((props.filename != null ? props.filename.length : undefined) > 0) {
44
- return props.filename;
27
+ }, []);
28
+ const cancelEdit = useCallback(() => {
29
+ setEditingFilename(false);
30
+ setEditableFilename(filename.length > 0 ? filename : initialEditableFilename);
31
+ }, [filename, initialEditableFilename]);
32
+ const rename = useCallback(() => {
33
+ const trimmedFilename = editableFilename.replace(/^\s+|\s+$/, '');
34
+ if (trimmedFilename.length > 0) {
35
+ if (editingInitialFilename) {
36
+ client.setInitialFilename(trimmedFilename);
37
+ }
38
+ else {
39
+ client.rename(client.state.metadata, trimmedFilename);
40
+ }
41
+ setEditingFilename(false);
42
+ setFilename(trimmedFilename);
43
+ setEditableFilename(trimmedFilename);
45
44
  }
46
45
  else {
47
- return (tr("~MENUBAR.UNTITLED_DOCUMENT"));
46
+ cancelEdit();
48
47
  }
49
- },
50
- getEditableFilename(props) {
51
- if ((props.filename != null ? props.filename.length : undefined) > 0) {
52
- return props.filename;
48
+ }, [editableFilename, editingInitialFilename, client, cancelEdit]);
49
+ const filenameBlurred = useCallback(() => {
50
+ rename();
51
+ }, [rename]);
52
+ // CODAP eats the click events in the main workspace which causes the blur event not to fire
53
+ // so we need to check for a non-bubbling global click event when editing
54
+ const checkBlur = useCallback((e) => {
55
+ if (editingFilename && e.target !== filenameRef.current) {
56
+ filenameBlurred();
53
57
  }
54
- else {
55
- return (tr("~MENUBAR.UNTITLED_DOCUMENT"));
56
- }
57
- },
58
- getInitialState() {
59
- return {
60
- editingFilename: false,
61
- filename: this.getFilename(this.props),
62
- editableFilename: this.getEditableFilename(this.props),
63
- initialEditableFilename: this.getEditableFilename(this.props),
64
- editingInitialFilename: false
58
+ }, [editingFilename, filenameBlurred]);
59
+ useEffect(() => {
60
+ // need to use direct DOM events because the event needs to be captured
61
+ window.addEventListener('mousedown', checkBlur, true);
62
+ window.addEventListener('touchstart', checkBlur, true);
63
+ return () => {
64
+ window.removeEventListener('mousedown', checkBlur, true);
65
+ window.removeEventListener('touchstart', checkBlur, true);
65
66
  };
66
- },
67
- UNSAFE_componentWillReceiveProps(nextProps) {
68
- return this.setState({
69
- filename: this.getFilename(nextProps),
70
- editableFilename: this.getEditableFilename(nextProps),
71
- provider: nextProps.provider
67
+ }, [checkBlur]);
68
+ // Register UI listener once on mount
69
+ useEffect(() => {
70
+ client._ui.listen((event) => {
71
+ if (event.type === 'editInitialFilename') {
72
+ setEditingFilename(true);
73
+ setEditingInitialFilename(true);
74
+ setTimeout(() => focusFilename(), 10);
75
+ }
72
76
  });
73
- },
74
- filenameClicked(e) {
77
+ }, []); // eslint-disable-line react-hooks/exhaustive-deps
78
+ const startEditing = () => {
79
+ setEditingFilename(true);
80
+ setEditingInitialFilename(false);
81
+ setTimeout(() => focusFilename(), 10);
82
+ };
83
+ const filenameClicked = (e) => {
75
84
  e.preventDefault();
76
85
  e.stopPropagation();
77
- this.setState({
78
- editingFilename: true,
79
- editingInitialFilename: false
80
- });
81
- return setTimeout((() => this.focusFilename()), 10);
82
- },
83
- filenameChanged() {
84
- return this.setState({
85
- editableFilename: this.filename().value
86
- });
87
- },
88
- filenameBlurred() {
89
- return this.rename();
90
- },
91
- filename() {
92
- return ReactDOM.findDOMNode(this.filenameRef);
93
- },
94
- focusFilename() {
95
- const el = this.filename();
96
- el.focus();
97
- return el.select();
98
- },
99
- cancelEdit() {
100
- return this.setState({
101
- editingFilename: false,
102
- editableFilename: (this.state.filename != null ? this.state.filename.length : undefined) > 0 ? this.state.filename : this.state.initialEditableFilename
86
+ startEditing();
87
+ };
88
+ const filenameKeyDown = (e) => {
89
+ if (e.key === 'Enter' || e.key === ' ') {
90
+ e.preventDefault();
91
+ startEditing();
92
+ }
93
+ };
94
+ const filenameChanged = () => {
95
+ if (filenameRef.current) {
96
+ setEditableFilename(filenameRef.current.value);
97
+ }
98
+ };
99
+ const watchForEnter = (e) => {
100
+ if (e.key === 'Enter') {
101
+ rename();
102
+ }
103
+ else if (e.key === 'Escape') {
104
+ cancelEdit();
105
+ }
106
+ };
107
+ const infoClicked = () => {
108
+ options.onInfoClick?.();
109
+ };
110
+ const infoKeyDown = (e) => {
111
+ if (e.key === 'Enter' || e.key === ' ') {
112
+ e.preventDefault();
113
+ infoClicked();
114
+ }
115
+ };
116
+ // Roving tabindex for single-tab-stop toolbar navigation
117
+ const menuBarRef = useRef(null);
118
+ const activeIndexRef = useRef(0);
119
+ const getToolbarButtons = useCallback(() => {
120
+ if (!menuBarRef.current)
121
+ return [];
122
+ return Array.from(menuBarRef.current.querySelectorAll('[data-toolbar-item]'));
123
+ }, []);
124
+ const syncTabIndex = useCallback(() => {
125
+ const buttons = getToolbarButtons();
126
+ if (buttons.length === 0)
127
+ return;
128
+ if (activeIndexRef.current >= buttons.length) {
129
+ activeIndexRef.current = Math.max(0, buttons.length - 1);
130
+ }
131
+ buttons.forEach((btn, i) => {
132
+ btn.tabIndex = i === activeIndexRef.current ? 0 : -1;
103
133
  });
104
- },
105
- rename() {
106
- const filename = this.state.editableFilename.replace(/^\s+|\s+$/, '');
107
- if (filename.length > 0) {
108
- if (this.state.editingInitialFilename) {
109
- this.props.client.setInitialFilename(filename);
110
- }
111
- else {
112
- this.props.client.rename(this.props.client.state.metadata, filename);
113
- }
114
- return this.setState({
115
- editingFilename: false,
116
- filename,
117
- editableFilename: filename
118
- });
134
+ }, [getToolbarButtons]);
135
+ // Sync tabIndex when button count or toolbar contents change
136
+ useLayoutEffect(() => {
137
+ syncTabIndex();
138
+ }, [editingFilename, items, options.otherMenus, options.languageMenu, syncTabIndex]);
139
+ const handleToolbarKeyDown = useCallback((e) => {
140
+ if (e.target.tagName === 'INPUT')
141
+ return;
142
+ const buttons = getToolbarButtons();
143
+ if (buttons.length === 0)
144
+ return;
145
+ const currentIndex = buttons.indexOf(e.target);
146
+ if (currentIndex === -1)
147
+ return;
148
+ let nextIndex;
149
+ if (e.key === 'ArrowRight') {
150
+ nextIndex = Math.min(currentIndex + 1, buttons.length - 1);
151
+ }
152
+ else if (e.key === 'ArrowLeft') {
153
+ nextIndex = Math.max(currentIndex - 1, 0);
154
+ }
155
+ else if (e.key === 'Home') {
156
+ nextIndex = 0;
157
+ }
158
+ else if (e.key === 'End') {
159
+ nextIndex = buttons.length - 1;
119
160
  }
120
161
  else {
121
- return this.cancelEdit();
122
- }
123
- },
124
- watchForEnter(e) {
125
- if (e.keyCode === 13) {
126
- return this.rename();
127
- }
128
- else if (e.keyCode === 27) {
129
- return this.cancelEdit();
130
- }
131
- },
132
- infoClicked() {
133
- return (typeof this.props.options.onInfoClick === 'function' ? this.props.options.onInfoClick() : undefined);
134
- },
135
- // CODAP eats the click events in the main workspace which causes the blur event not to fire so we need to check for a non-bubbling global click event when editing
136
- checkBlur(e) {
137
- if (this.state.editingFilename && (e.target !== this.filename())) {
138
- return this.filenameBlurred();
139
- }
140
- },
141
- langChanged(langCode) {
142
- const { client, options } = this.props;
143
- const { onLangChanged } = options.languageMenu;
144
- if (onLangChanged != null) {
145
- return client.changeLanguage(langCode, onLangChanged);
146
- }
147
- },
148
- renderLanguageMenu() {
149
- const { options } = this.props;
162
+ return;
163
+ }
164
+ e.preventDefault();
165
+ activeIndexRef.current = nextIndex;
166
+ syncTabIndex();
167
+ buttons[nextIndex].focus();
168
+ }, [getToolbarButtons, syncTabIndex]);
169
+ const handleToolbarFocus = useCallback((e) => {
170
+ if (!e.target.hasAttribute('data-toolbar-item'))
171
+ return;
172
+ const buttons = getToolbarButtons();
173
+ const index = buttons.indexOf(e.target);
174
+ if (index !== -1) {
175
+ activeIndexRef.current = index;
176
+ syncTabIndex();
177
+ }
178
+ }, [getToolbarButtons, syncTabIndex]);
179
+ const langChanged = (langCode) => {
180
+ const { onLangChanged } = options.languageMenu ?? {};
181
+ if (onLangChanged) {
182
+ client.changeLanguage(langCode, onLangChanged);
183
+ }
184
+ };
185
+ const renderLanguageMenu = () => {
150
186
  const langMenu = options.languageMenu;
187
+ if (!langMenu)
188
+ return null;
151
189
  const currentLang = getCurrentLanguage();
152
190
  const langClass = getSpecialLangFontClassName(currentLang);
153
- const items = langMenu.options
191
+ const menuItems = langMenu.options
154
192
  // Do not show current language in the menu.
155
193
  .filter((option) => currentLang !== option.langCode)
156
194
  .map((option) => {
@@ -160,8 +198,8 @@ export default createReactClass({
160
198
  className = `flag flag-${option.flag}`;
161
199
  }
162
200
  return {
163
- content: (span({ className: 'lang-option' }, (div({ className })), label)),
164
- action: () => this.langChanged(option.langCode)
201
+ content: _jsxs("span", { className: "lang-option", children: [_jsx("div", { className: className }), label] }),
202
+ action: () => langChanged(option.langCode)
165
203
  };
166
204
  });
167
205
  const hasFlags = langMenu.options.filter((option) => option.flag != null).length > 0;
@@ -169,55 +207,30 @@ export default createReactClass({
169
207
  const defaultOption = hasFlags ? { flag: "us" } : { label: "English" };
170
208
  const { flag, label } = currentOption || defaultOption;
171
209
  const withBorder = langMenu.withBorder ? 'with-border' : '';
172
- const menuAnchor = flag ?
173
- (div({ className: `flag flag-${flag}` }))
174
- :
175
- (button({ className: `menu-bar-button lang-menu-button ${withBorder} ${langClass}` }, (img({ className: 'menu-icon lang-icon', src: options.languageAnchorIcon, alt: "Language Icon" })), (span({ className: "lang-label" }, label || defaultOption.label))));
176
- return (Dropdown({
177
- className: "lang-menu",
178
- menuAnchorClassName: "menu-anchor-right",
179
- items,
180
- menuAnchor
181
- }));
182
- },
183
- renderFileMenu() {
184
- const { client } = this.props;
210
+ const menuAnchor = flag ? (_jsx("div", { className: `flag flag-${flag}` })) : (_jsxs(_Fragment, { children: [_jsx("img", { className: "menu-icon lang-icon", src: options.languageAnchorIcon, alt: "Language Icon" }), _jsx("span", { className: "lang-label", children: label || defaultOption.label })] }));
211
+ const triggerClass = flag ? '' : `menu-bar-button lang-menu-button ${withBorder} ${langClass}`;
212
+ return (_jsx(DropdownView, { className: "lang-menu", triggerClassName: triggerClass, items: menuItems, menuAnchor: menuAnchor, triggerProps: { 'data-toolbar-item': true } }));
213
+ };
214
+ const renderFileMenu = () => {
185
215
  const currentLang = getCurrentLanguage();
186
216
  const langClass = getSpecialLangFontClassName(currentLang);
187
217
  const menuBarOptions = client.appOptions.ui.menuBar || {};
188
- const menuOptions = client._ui.menu.options || [];
189
- const fileMenuAnchor = (button({ ref: (el) => { this.fileMenuButtonRef = el; }, className: `menu-bar-button file-menu-button ${langClass}` }, (img({ className: 'menu-icon', src: menuOptions.menuAnchorIcon, alt: "Menu Icon" })), (span({ className: "menu-label" }, menuOptions.menuAnchorName))));
190
- return (Dropdown({ items: this.props.items, menuAnchor: fileMenuAnchor,
191
- subMenuExpandIcon: menuBarOptions.subMenuExpandIcon }));
192
- },
193
- renderOtherMenu(options) {
194
- const { client } = this.props;
218
+ const menuOptions = client._ui.menu.options || {};
219
+ return (_jsx(DropdownView, { items: items, triggerClassName: `menu-bar-button file-menu-button ${langClass}`, triggerProps: { 'data-toolbar-item': true }, menuAnchor: _jsxs(_Fragment, { children: [_jsx("img", { className: "menu-icon", src: menuOptions.menuAnchorIcon, alt: "Menu Icon" }), _jsx("span", { className: "menu-label", children: menuOptions.menuAnchorName })] }), subMenuExpandIcon: menuBarOptions.subMenuExpandIcon }));
220
+ };
221
+ const renderOtherMenu = (menuOptions) => {
195
222
  const currentLang = getCurrentLanguage();
196
223
  const langClass = getSpecialLangFontClassName(currentLang);
197
224
  const menuBarOptions = client.appOptions.ui.menuBar || {};
198
- const menuAnchor = (button({ className: `menu-bar-button other-menu-button ${langClass}` }, (img({ className: 'menu-icon', src: options.menuAnchorIcon, alt: "Menu Icon" })), (span({ className: "menu-label" }, options.menuAnchorName))));
199
- const menuKey = `other-menu-${options.className || ''}-${options.menuAnchorName || ''}`;
200
- return (Dropdown({ key: menuKey, items: options.menu, menuAnchor: menuAnchor, className: options.className,
201
- subMenuExpandIcon: menuBarOptions.subMenuExpandIcon }));
202
- },
203
- render() {
204
- const { provider, client, options, fileStatus } = this.props;
205
- const currentLang = getCurrentLanguage();
206
- console.log(`MenuBar: current language is ${currentLang}`);
207
- const langClass = getSpecialLangFontClassName(currentLang);
208
- const isAuthorized = provider && provider.isAuthorizationRequired() && provider.authorized();
209
- return ((div({ className: `menu-bar ${options.clientToolBarPosition === "left" ? 'toolbar-position-left' : ''} ${langClass}` }, (div({ className: 'menu-bar-left' }, this.renderFileMenu(), (div({ className: `menu-bar-content-filename ${langClass}` }, this.state.editingFilename
210
- ? (input({ ref: ((elt) => { return this.filenameRef = elt; }), value: this.state.editableFilename,
211
- onChange: this.filenameChanged, onKeyDown: this.watchForEnter,
212
- onMouseEnter: (e) => e.stopPropagation(), onMouseMove: (e) => e.stopPropagation()
213
- }))
214
- : (span({ className: 'content-filename', onClick: this.filenameClicked }, this.state.filename)), this.props.fileStatus
215
- ? (span({ className: `menu-bar-file-status ${fileStatus.type} ${langClass}` }, fileStatus.message))
216
- : undefined)))), (div({ className: 'menu-bar-center' }, (img({ className: 'app-logo', src: client.appOptions.appIcon, alt: "CODAP Logo", onClick: this.infoClicked })), this.props.options.info ?
217
- (span({ className: 'menu-bar-info' }, options.info)) : undefined)), (div({ className: 'menu-bar-right' }, isAuthorized ? this.props.provider.renderUser() : undefined, this.props.options.otherMenus && this.props.options.otherMenus.map((menuOptions) => {
218
- return this.renderOtherMenu(menuOptions);
219
- }), this.props.options.languageMenu ?
220
- this.renderLanguageMenu() : undefined)))));
221
- }
222
- });
225
+ const menuKey = `other-menu-${menuOptions.className || ''}-${menuOptions.menuAnchorName || ''}`;
226
+ return (_jsx(DropdownView, { items: (menuOptions.menu ?? []), triggerClassName: `menu-bar-button other-menu-button ${langClass}`, triggerProps: { 'data-toolbar-item': true }, menuAnchor: _jsxs(_Fragment, { children: [_jsx("img", { className: "menu-icon", src: menuOptions.menuAnchorIcon, alt: "Menu Icon" }), _jsx("span", { className: "menu-label", children: menuOptions.menuAnchorName })] }), className: menuOptions.className, subMenuExpandIcon: menuBarOptions.subMenuExpandIcon }, menuKey));
227
+ };
228
+ const currentLang = getCurrentLanguage();
229
+ const langClass = getSpecialLangFontClassName(currentLang);
230
+ // Note: authorized() is typed as void but actually returns a boolean when called without a callback
231
+ const providerAny = provider;
232
+ const isAuthorized = provider && provider.isAuthorizationRequired() && providerAny.authorized();
233
+ return (_jsxs("div", { ref: menuBarRef, className: `menu-bar ${options.clientToolBarPosition === "left" ? 'toolbar-position-left' : ''} ${langClass}`, role: "toolbar", "aria-label": tr("~MENUBAR.TOOLBAR_LABEL"), onKeyDown: handleToolbarKeyDown, onFocus: handleToolbarFocus, children: [_jsxs("div", { className: "menu-bar-left", children: [renderFileMenu(), _jsxs("div", { className: `menu-bar-content-filename ${langClass}`, children: [editingFilename ? (_jsx("input", { ref: filenameRef, "aria-label": tr("~MENUBAR.RENAME_DOCUMENT"), value: editableFilename, onChange: filenameChanged, onKeyDown: watchForEnter, onMouseEnter: (e) => e.stopPropagation(), onMouseMove: (e) => e.stopPropagation() })) : (_jsx("button", { "data-toolbar-item": true, className: "content-filename", "aria-label": tr("~MENUBAR.RENAME_FILENAME", { filename }), onClick: filenameClicked, onKeyDown: filenameKeyDown, children: filename })), fileStatus && (_jsx("span", { className: `menu-bar-file-status ${fileStatus.type} ${langClass}`, children: fileStatus.message }))] })] }), _jsxs("div", { className: "menu-bar-center", children: [_jsxs("button", { className: `app-logo-wrapper ${client.appOptions.appFocusRingIcon ? 'has-focus-ring-icon' : ''}`, "data-toolbar-item": true, "aria-label": client.appOptions.appName ? tr("~MENUBAR.ABOUT_APP", { appName: client.appOptions.appName }) : tr("~MENUBAR.ABOUT"), onClick: infoClicked, onKeyDown: infoKeyDown, children: [_jsx("img", { className: "app-logo", src: client.appOptions.appIcon, alt: "" }), client.appOptions.appFocusRingIcon && (_jsx("img", { className: "logo-focus-ring", src: client.appOptions.appFocusRingIcon, alt: "", "aria-hidden": "true" }))] }), options.info && (_jsx("span", { className: "menu-bar-info", children: options.info }))] }), _jsxs("div", { className: "menu-bar-right", children: [isAuthorized && provider?.renderUser(), options.otherMenus?.map((menuOptions) => renderOtherMenu(menuOptions)), options.languageMenu && renderLanguageMenu()] })] }));
234
+ };
235
+ export default MenuBar;
223
236
  //# sourceMappingURL=menu-bar-view.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"menu-bar-view.js","sourceRoot":"","sources":["../../../src/code/views/menu-bar-view.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"menu-bar-view.js","sourceRoot":"","sources":["../../../src/code/views/menu-bar-view.tsx"],"names":[],"mappings":"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"}
@@ -1,13 +1,12 @@
1
- import React from "react";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useRef } from "react";
2
3
  import ModalView from "./modal-view";
4
+ import tr from "../utils/translate";
5
+ let idCounter = 0;
3
6
  const ModalDialogView = ({ title, zIndex = 10, close, children }) => {
4
- return (React.createElement(ModalView, { zIndex: zIndex, close: close },
5
- React.createElement("div", { className: 'modal-dialog', "data-testid": 'modal-dialog' },
6
- React.createElement("div", { className: 'modal-dialog-wrapper' },
7
- React.createElement("div", { className: 'modal-dialog-title', "data-testid": 'modal-dialog-title' },
8
- close ? React.createElement("i", { className: 'modal-dialog-title-close icon-ex', "data-testid": 'modal-dialog-close', onClick: () => close === null || close === void 0 ? void 0 : close() }) : undefined,
9
- title || 'Untitled Dialog'),
10
- React.createElement("div", { className: 'modal-dialog-workspace', "data-testid": 'modal-dialog-workspace' }, children)))));
7
+ const idRef = useRef(`modal-title-${++idCounter}`);
8
+ const titleId = idRef.current;
9
+ return (_jsx(ModalView, { zIndex: zIndex, close: close, ariaLabelledBy: titleId, children: _jsx("div", { className: 'modal-dialog', "data-testid": 'modal-dialog', children: _jsxs("div", { className: 'modal-dialog-wrapper', children: [_jsxs("div", { className: 'modal-dialog-title', "data-testid": 'modal-dialog-title', children: [_jsx("span", { id: titleId, children: title || 'Untitled Dialog' }), close ? _jsx("button", { className: 'modal-dialog-title-close icon-ex', "data-testid": 'modal-dialog-close', "aria-label": tr("~ALERT_DIALOG.CLOSE"), onClick: () => close?.() }) : undefined] }), _jsx("div", { className: 'modal-dialog-workspace', "data-testid": 'modal-dialog-workspace', children: children })] }) }) }));
11
10
  };
12
11
  export default ModalDialogView;
13
12
  //# sourceMappingURL=modal-dialog-view.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"modal-dialog-view.js","sourceRoot":"","sources":["../../../src/code/views/modal-dialog-view.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,SAAS,MAAM,cAAc,CAAA;AAOpC,MAAM,eAAe,GAAqB,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;IACpF,OAAO,CACL,oBAAC,SAAS,IAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;QACrC,6BAAK,SAAS,EAAC,cAAc,iBAAa,cAAc;YACtD,6BAAK,SAAS,EAAC,sBAAsB;gBACnC,6BAAK,SAAS,EAAC,oBAAoB,iBAAa,oBAAoB;oBACjE,KAAK,CAAC,CAAC,CAAC,2BAAG,SAAS,EAAC,kCAAkC,iBAAa,oBAAoB,EACrF,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,EAAI,GAAG,CAAC,CAAC,CAAC,SAAS;oBAC1C,KAAK,IAAI,iBAAiB,CACvB;gBACN,6BAAK,SAAS,EAAC,wBAAwB,iBAAa,wBAAwB,IACzE,QAAQ,CACL,CACF,CACF,CACI,CACb,CAAA;AACH,CAAC,CAAA;AACD,eAAe,eAAe,CAAA"}
1
+ {"version":3,"file":"modal-dialog-view.js","sourceRoot":"","sources":["../../../src/code/views/modal-dialog-view.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AACrC,OAAO,SAAS,MAAM,cAAc,CAAA;AACpC,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAEnC,IAAI,SAAS,GAAG,CAAC,CAAA;AAOjB,MAAM,eAAe,GAAqB,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;IACpF,MAAM,KAAK,GAAG,MAAM,CAAC,eAAe,EAAE,SAAS,EAAE,CAAC,CAAA;IAClD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAA;IAC7B,OAAO,CACL,KAAC,SAAS,IAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,YAC9D,cAAK,SAAS,EAAC,cAAc,iBAAa,cAAc,YACtD,eAAK,SAAS,EAAC,sBAAsB,aACnC,eAAK,SAAS,EAAC,oBAAoB,iBAAa,oBAAoB,aAClE,eAAM,EAAE,EAAE,OAAO,YAAG,KAAK,IAAI,iBAAiB,GAAQ,EACrD,KAAK,CAAC,CAAC,CAAC,iBACL,SAAS,EAAC,kCAAkC,iBAChC,oBAAoB,gBACpB,EAAE,CAAC,qBAAqB,CAAC,EACrC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,GACxB,CAAC,CAAC,CAAC,SAAS,IACZ,EACN,cAAK,SAAS,EAAC,wBAAwB,iBAAa,wBAAwB,YACzE,QAAQ,GACL,IACF,GACF,GACI,CACb,CAAA;AACH,CAAC,CAAA;AACD,eAAe,eAAe,CAAA"}
@@ -1,3 +1,15 @@
1
- /// <reference types="react" />
2
- declare const _default: import("react").ClassicComponentClass<unknown>;
3
- export default _default;
1
+ import React from 'react';
2
+ interface TabInfo {
3
+ label: string;
4
+ component: React.ReactNode;
5
+ capability?: string;
6
+ onSelected?: (capability?: string) => void;
7
+ }
8
+ interface ModalTabbedDialogViewProps {
9
+ title?: string;
10
+ tabs: TabInfo[];
11
+ selectedTabIndex?: number;
12
+ close?: () => void;
13
+ }
14
+ declare const ModalTabbedDialogView: React.FC<ModalTabbedDialogViewProps>;
15
+ export default ModalTabbedDialogView;
@@ -1,20 +1,8 @@
1
- // TODO: This file was created by bulk-decaffeinate.
2
- // Sanity-check the conversion and remove this comment.
3
- /*
4
- * decaffeinate suggestions:
5
- * DS102: Remove unnecessary code created because of implicit returns
6
- * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
7
- */
8
- import createReactClass from 'create-react-class';
9
- import { createReactFactory } from '../create-react-factory';
10
- import modalDialogView from './modal-dialog-view';
11
- import tabbedPanelView from './tabbed-panel-view';
12
- const ModalDialog = createReactFactory(modalDialogView);
13
- const TabbedPanel = createReactFactory(tabbedPanelView);
14
- export default createReactClass({
15
- displayName: 'ModalTabbedDialogView',
16
- render() {
17
- return (ModalDialog({ title: this.props.title, close: this.props.close }, (TabbedPanel({ tabs: this.props.tabs, selectedTabIndex: this.props.selectedTabIndex }))));
18
- }
19
- });
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import ModalDialogView from './modal-dialog-view';
3
+ import TabbedPanelView from './tabbed-panel-view';
4
+ const ModalTabbedDialogView = ({ title, tabs, selectedTabIndex, close }) => {
5
+ return (_jsx(ModalDialogView, { title: title, close: close, children: _jsx(TabbedPanelView, { tabs: tabs, selectedTabIndex: selectedTabIndex }) }));
6
+ };
7
+ export default ModalTabbedDialogView;
20
8
  //# sourceMappingURL=modal-tabbed-dialog-view.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"modal-tabbed-dialog-view.js","sourceRoot":"","sources":["../../../src/code/views/modal-tabbed-dialog-view.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,uDAAuD;AACvD;;;;GAIG;AACH,OAAO,gBAAgB,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,eAAe,MAAM,qBAAqB,CAAA;AACjD,OAAO,eAAe,MAAM,qBAAqB,CAAA;AAEjD,MAAM,WAAW,GAAG,kBAAkB,CAAC,eAAe,CAAC,CAAA;AACvD,MAAM,WAAW,GAAG,kBAAkB,CAAC,eAAe,CAAC,CAAA;AAEvD,eAAe,gBAAgB,CAAC;IAE9B,WAAW,EAAE,uBAAuB;IAEpC,MAAM;QACJ,OAAO,CAAC,WAAW,CAAC,EAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAC,EACpE,CAAC,WAAW,CAAC,EAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAC,CAAC,CAAC,CACtF,CAAC,CAAA;IACJ,CAAC;CACF,CAAC,CAAA"}
1
+ {"version":3,"file":"modal-tabbed-dialog-view.js","sourceRoot":"","sources":["../../../src/code/views/modal-tabbed-dialog-view.tsx"],"names":[],"mappings":";AACA,OAAO,eAAe,MAAM,qBAAqB,CAAA;AACjD,OAAO,eAAe,MAAM,qBAAqB,CAAA;AAgBjD,MAAM,qBAAqB,GAAyC,CAAC,EACnE,KAAK,EACL,IAAI,EACJ,gBAAgB,EAChB,KAAK,EACN,EAAE,EAAE;IACH,OAAO,CACL,KAAC,eAAe,IAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,YACzC,KAAC,eAAe,IAAC,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE,gBAAgB,GAAI,GACnD,CACnB,CAAA;AACH,CAAC,CAAA;AAED,eAAe,qBAAqB,CAAA"}
@@ -1,36 +1,9 @@
1
1
  import React from 'react';
2
2
  interface IProps {
3
- zIndex: number;
3
+ zIndex?: number;
4
4
  close?: () => void;
5
+ ariaLabel?: string;
6
+ ariaLabelledBy?: string;
5
7
  }
6
- interface IState {
7
- backgroundStyle: React.CSSProperties;
8
- contentStyle: React.CSSProperties;
9
- }
10
- interface IDimensions {
11
- width: string;
12
- height: string;
13
- }
14
- export default class ModalView extends React.Component<IProps, IState> {
15
- constructor(props: IProps);
16
- closeOnEscape: (e: any) => void;
17
- getDimensions(): {
18
- width: string;
19
- height: string;
20
- };
21
- getBackgroundStyle(dimensions: IDimensions): IDimensions | {
22
- zIndex: number;
23
- width: string;
24
- height: string;
25
- };
26
- getContentStyle(dimensions: IDimensions): IDimensions | {
27
- zIndex: number;
28
- width: string;
29
- height: string;
30
- };
31
- updateStyles: () => void;
32
- componentDidMount(): void;
33
- componentWillUnmount(): void;
34
- render(): React.JSX.Element;
35
- }
36
- export {};
8
+ declare const ModalView: React.FC<IProps>;
9
+ export default ModalView;