@finsemble/finsemble-ui 6.4.0 → 6.5.1-beta.2

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 (218) hide show
  1. package/package.json +19 -18
  2. package/react/actions/smartDesktopDesignerActions.d.ts +6 -2
  3. package/react/actions/smartDesktopDesignerActions.js +2 -0
  4. package/react/actions/smartDesktopDesignerActions.js.map +1 -1
  5. package/react/assets/icons/code-block.svg +15 -0
  6. package/react/components/FinsembleProvider.js.map +1 -1
  7. package/react/components/appCatalog/modules/FDC3.d.ts +1 -1
  8. package/react/components/appCatalog/modules/FDC3.js.map +1 -1
  9. package/react/components/appCatalog/stores/appStore.d.ts +2 -2
  10. package/react/components/appCatalog/stores/appStore.js.map +1 -1
  11. package/react/components/common/Checkbox.js +1 -1
  12. package/react/components/common/Checkbox.js.map +1 -1
  13. package/react/components/common/DropZone.js +3 -1
  14. package/react/components/common/DropZone.js.map +1 -1
  15. package/react/components/common/FinsembleIcon.d.ts +1 -1
  16. package/react/components/common/FinsembleIcon.js +2 -0
  17. package/react/components/common/FinsembleIcon.js.map +1 -1
  18. package/react/components/common/FinsembleSelect.js +1 -1
  19. package/react/components/common/FinsembleSelect.js.map +1 -1
  20. package/react/components/common/Tooltip.js +3 -1
  21. package/react/components/common/Tooltip.js.map +1 -1
  22. package/react/components/common/css/application-list.css +4 -0
  23. package/react/components/common/css/preload-edit-page.css +37 -0
  24. package/react/components/favorites/FavoritesShell.stories.js.map +1 -1
  25. package/react/components/fdc3Resolver/ResolverContainer.js.map +1 -1
  26. package/react/components/legacyControls/FinsembleDnDContext.d.ts +2 -1
  27. package/react/components/legacyControls/FinsembleDnDContext.js +8 -6
  28. package/react/components/legacyControls/FinsembleDnDContext.js.map +1 -1
  29. package/react/components/linker/remoteRedux.d.ts +1 -1
  30. package/react/components/linker/remoteRedux.js.map +1 -1
  31. package/react/components/menu/MenuAutoResizer.js.map +1 -1
  32. package/react/components/menu/MenuPortal.js +19 -0
  33. package/react/components/menu/MenuPortal.js.map +1 -1
  34. package/react/components/notifications/components/notificationsCenter/NotificationsCenter.js.map +1 -1
  35. package/react/components/notifications/components/notificationsToasts/NotificationsToasts.js.map +1 -1
  36. package/react/components/notifications/components/shared/CheckButton.d.ts +1 -1
  37. package/react/components/notifications/components/shared/CheckButton.js.map +1 -1
  38. package/react/components/notifications/components/shared/NotificationCardShell.d.ts +1 -1
  39. package/react/components/notifications/components/shared/NotificationCardShell.js.map +1 -1
  40. package/react/components/notifications/components/shared/OverflowMenu.d.ts +1 -1
  41. package/react/components/notifications/components/shared/OverflowMenu.js.map +1 -1
  42. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyActions.d.ts +1 -1
  43. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyActions.js.map +1 -1
  44. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyShell.d.ts +1 -1
  45. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyShell.js.map +1 -1
  46. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderControls.d.ts +1 -1
  47. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderControls.js.map +1 -1
  48. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderShell.d.ts +1 -1
  49. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderShell.js.map +1 -1
  50. package/react/components/notifications/components/views/CardView.js.map +1 -1
  51. package/react/components/notifications/components/views/ListView.d.ts +1 -1
  52. package/react/components/notifications/components/views/ListView.js.map +1 -1
  53. package/react/components/notifications/components/views/NotificationDetailsView.d.ts +1 -1
  54. package/react/components/notifications/components/views/NotificationDetailsView.js.map +1 -1
  55. package/react/components/notifications/types.d.ts +1 -1
  56. package/react/components/notifications/types.js.map +1 -1
  57. package/react/components/notifications/utils.d.ts +1 -1
  58. package/react/components/notifications/utils.js.map +1 -1
  59. package/react/components/processMonitor/ProcessMonitor.js.map +1 -1
  60. package/react/components/processMonitor/components/ChildWindow.js.map +1 -1
  61. package/react/components/processMonitor/components/ListHeader.d.ts +1 -1
  62. package/react/components/processMonitor/components/ListHeader.js.map +1 -1
  63. package/react/components/processMonitor/stores/ProcessMonitorStore.d.ts +3 -3
  64. package/react/components/processMonitor/stores/ProcessMonitorStore.js.map +1 -1
  65. package/react/components/search/SearchResult.js +4 -3
  66. package/react/components/search/SearchResult.js.map +1 -1
  67. package/react/components/smartDesktopDesigner/AppEditAccess.js.map +1 -1
  68. package/react/components/smartDesktopDesigner/AppEditPage.d.ts +2 -1
  69. package/react/components/smartDesktopDesigner/AppEditPage.js +77 -73
  70. package/react/components/smartDesktopDesigner/AppEditPage.js.map +1 -1
  71. package/react/components/smartDesktopDesigner/Appearance.css +8 -0
  72. package/react/components/smartDesktopDesigner/Application.d.ts +10 -3
  73. package/react/components/smartDesktopDesigner/Application.js +35 -42
  74. package/react/components/smartDesktopDesigner/Application.js.map +1 -1
  75. package/react/components/smartDesktopDesigner/Applications.d.ts +2 -0
  76. package/react/components/smartDesktopDesigner/Applications.js +17 -7
  77. package/react/components/smartDesktopDesigner/Applications.js.map +1 -1
  78. package/react/components/smartDesktopDesigner/EditPreload.d.ts +14 -0
  79. package/react/components/smartDesktopDesigner/EditPreload.js +169 -0
  80. package/react/components/smartDesktopDesigner/EditPreload.js.map +1 -0
  81. package/react/components/smartDesktopDesigner/ItemList.d.ts +17 -0
  82. package/react/components/smartDesktopDesigner/ItemList.js +58 -0
  83. package/react/components/smartDesktopDesigner/ItemList.js.map +1 -0
  84. package/react/components/smartDesktopDesigner/OptionalSettingsView.d.ts +11 -0
  85. package/react/components/smartDesktopDesigner/OptionalSettingsView.js +71 -0
  86. package/react/components/smartDesktopDesigner/OptionalSettingsView.js.map +1 -0
  87. package/react/components/smartDesktopDesigner/Preloads.d.ts +8 -0
  88. package/react/components/smartDesktopDesigner/Preloads.js +26 -0
  89. package/react/components/smartDesktopDesigner/Preloads.js.map +1 -0
  90. package/react/components/smartDesktopDesigner/Publish.js.map +1 -1
  91. package/react/components/smartDesktopDesigner/SmartDesktopDesigner.js.map +1 -1
  92. package/react/components/smartDesktopDesigner/Toolbar.js +5 -5
  93. package/react/components/smartDesktopDesigner/Toolbar.js.map +1 -1
  94. package/react/components/smartDesktopDesigner/common/views.js +18 -0
  95. package/react/components/smartDesktopDesigner/common/views.js.map +1 -1
  96. package/react/components/smartDesktopDesigner/css/appearance.css +3 -0
  97. package/react/components/smartDesktopDesigner/fixtures/apps.d.ts +1 -1
  98. package/react/components/smartDesktopDesigner/fixtures/apps.js +23 -1
  99. package/react/components/smartDesktopDesigner/fixtures/apps.js.map +1 -1
  100. package/react/components/smartDesktopDesigner/fixtures/exportProps.js.map +1 -1
  101. package/react/components/smartDesktopDesigner/fixtures/preloads.d.ts +22 -0
  102. package/react/components/smartDesktopDesigner/fixtures/preloads.js +40 -0
  103. package/react/components/smartDesktopDesigner/fixtures/preloads.js.map +1 -0
  104. package/react/components/smartDesktopDesigner/fixtures/publishProgress.d.ts +1 -1
  105. package/react/components/smartDesktopDesigner/fixtures/publishProgress.js.map +1 -1
  106. package/react/components/smartDesktopDesigner/fixtures/views.js +9 -0
  107. package/react/components/smartDesktopDesigner/fixtures/views.js.map +1 -1
  108. package/react/components/smartDesktopDesigner/stories/AppEditPage.stories.d.ts +1 -1
  109. package/react/components/smartDesktopDesigner/stories/AppEditPage.stories.js +1 -0
  110. package/react/components/smartDesktopDesigner/stories/AppEditPage.stories.js.map +1 -1
  111. package/react/components/smartDesktopDesigner/stories/EditPreload.stories.d.ts +11 -0
  112. package/react/components/smartDesktopDesigner/stories/EditPreload.stories.js +35 -0
  113. package/react/components/smartDesktopDesigner/stories/EditPreload.stories.js.map +1 -0
  114. package/react/components/smartDesktopDesigner/stories/ItemList.stories.d.ts +16 -0
  115. package/react/components/smartDesktopDesigner/stories/{ApplicationList.stories.js → ItemList.stories.js} +26 -26
  116. package/react/components/smartDesktopDesigner/stories/ItemList.stories.js.map +1 -0
  117. package/react/components/smartDesktopDesigner/stories/OptionalSettingsView.stories.d.ts +11 -0
  118. package/react/components/smartDesktopDesigner/stories/OptionalSettingsView.stories.js +28 -0
  119. package/react/components/smartDesktopDesigner/stories/OptionalSettingsView.stories.js.map +1 -0
  120. package/react/components/smartDesktopDesigner/stories/Preloads.stories.d.ts +11 -0
  121. package/react/components/smartDesktopDesigner/stories/Preloads.stories.js +31 -0
  122. package/react/components/smartDesktopDesigner/stories/Preloads.stories.js.map +1 -0
  123. package/react/components/smartDesktopDesigner/stories/SmartDesktopDesigner.stories.js.map +1 -1
  124. package/react/components/smartDesktopDesigner/tests/AppEditPage.spec.js +1099 -258
  125. package/react/components/smartDesktopDesigner/tests/AppEditPage.spec.js.map +1 -1
  126. package/react/components/smartDesktopDesigner/tests/{ApplicationList.spec.d.ts → Application.spec.d.ts} +0 -0
  127. package/react/components/smartDesktopDesigner/tests/Application.spec.js +1496 -0
  128. package/react/components/smartDesktopDesigner/tests/Application.spec.js.map +1 -0
  129. package/react/components/smartDesktopDesigner/tests/Applications.spec.js +3 -3
  130. package/react/components/smartDesktopDesigner/tests/Applications.spec.js.map +1 -1
  131. package/react/components/smartDesktopDesigner/tests/EditPreload.spec.d.ts +1 -0
  132. package/react/components/smartDesktopDesigner/tests/EditPreload.spec.js +61 -0
  133. package/react/components/smartDesktopDesigner/tests/EditPreload.spec.js.map +1 -0
  134. package/react/components/smartDesktopDesigner/tests/ItemList.spec.d.ts +1 -0
  135. package/react/components/smartDesktopDesigner/tests/{ApplicationList.spec.js → ItemList.spec.js} +8 -8
  136. package/react/components/smartDesktopDesigner/tests/ItemList.spec.js.map +1 -0
  137. package/react/components/smartDesktopDesigner/tests/Preloads.spec.d.ts +1 -0
  138. package/react/components/smartDesktopDesigner/tests/Preloads.spec.js +47 -0
  139. package/react/components/smartDesktopDesigner/tests/Preloads.spec.js.map +1 -0
  140. package/react/components/smartDesktopDesigner/tests/SmartDesktopDesigner.spec.js +6 -0
  141. package/react/components/smartDesktopDesigner/tests/SmartDesktopDesigner.spec.js.map +1 -1
  142. package/react/components/toolbar/DragHandle.spec.d.ts +1 -0
  143. package/react/components/toolbar/DragHandle.spec.js +31 -0
  144. package/react/components/toolbar/DragHandle.spec.js.map +1 -0
  145. package/react/components/toolbar/DragHandle.stories.d.ts +13 -0
  146. package/react/components/toolbar/DragHandle.stories.js +39 -0
  147. package/react/components/toolbar/DragHandle.stories.js.map +1 -0
  148. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncher.d.ts +1 -1
  149. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncher.js.map +1 -1
  150. package/react/components/toolbar/advancedAppLauncher/components/Content.d.ts +1 -1
  151. package/react/components/toolbar/advancedAppLauncher/components/Content.js.map +1 -1
  152. package/react/components/toolbar/advancedAppLauncher/components/FilterSort.js.map +1 -1
  153. package/react/components/toolbar/advancedAppLauncher/components/FoldersList.d.ts +1 -1
  154. package/react/components/toolbar/advancedAppLauncher/components/FoldersList.js.map +1 -1
  155. package/react/components/toolbar/advancedAppLauncher/components/TagsList.d.ts +1 -1
  156. package/react/components/toolbar/advancedAppLauncher/components/TagsList.js.map +1 -1
  157. package/react/components/toolbar/advancedAppLauncher/stores/LauncherStore.d.ts +2 -2
  158. package/react/components/toolbar/advancedAppLauncher/stores/LauncherStore.js.map +1 -1
  159. package/react/components/toolbar/advancedAppLauncher/stores/StoreActions.js.map +1 -1
  160. package/react/components/toolbar/appLauncher/components/componentList.d.ts +2 -2
  161. package/react/components/toolbar/appLauncher/components/componentList.js.map +1 -1
  162. package/react/components/toolbar/appLauncher/stores/appLauncherStore.d.ts +2 -2
  163. package/react/components/toolbar/appLauncher/stores/appLauncherStore.js.map +1 -1
  164. package/react/components/toolbar/dashbar/Dashbar.js +9 -12
  165. package/react/components/toolbar/dashbar/Dashbar.js.map +1 -1
  166. package/react/components/toolbar/workspaceManagementMenu/WorkspaceManagementMenu.d.ts +2 -2
  167. package/react/components/toolbar/workspaceManagementMenu/WorkspaceManagementMenu.js.map +1 -1
  168. package/react/components/toolbar/workspaceManagementMenu/components/Workspace.d.ts +1 -1
  169. package/react/components/toolbar/workspaceManagementMenu/components/Workspace.js.map +1 -1
  170. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceList.d.ts +1 -1
  171. package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceList.js.map +1 -1
  172. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.d.ts +4 -4
  173. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.js +1 -1
  174. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.js.map +1 -1
  175. package/react/components/userPreferences/components/content/Workspaces.d.ts +1 -1
  176. package/react/components/userPreferences/components/content/Workspaces.js +1 -1
  177. package/react/components/userPreferences/components/content/Workspaces.js.map +1 -1
  178. package/react/components/userPreferences/components/content/notificationViews/NotificationsSourceTypes.js.map +1 -1
  179. package/react/components/userPreferences/components/content/notificationViews/notificationViewsUtils.js.map +1 -1
  180. package/react/components/userPreferences/stores/UserPreferencesStore.d.ts +1 -1
  181. package/react/components/userPreferences/stores/UserPreferencesStore.js.map +1 -1
  182. package/react/components/windowTitleBar/WindowTitleBarShell.d.ts +4 -2
  183. package/react/components/windowTitleBar/WindowTitleBarShell.js +60 -59
  184. package/react/components/windowTitleBar/WindowTitleBarShell.js.map +1 -1
  185. package/react/components/windowTitleBar/components/center/TabList.d.ts +2 -2
  186. package/react/components/windowTitleBar/components/center/TabList.js +3 -0
  187. package/react/components/windowTitleBar/components/center/TabList.js.map +1 -1
  188. package/react/components/windowTitleBar/components/left/LinkerButton.js.map +1 -1
  189. package/react/components/windowTitleBar/components/right/GroupingButton.js.map +1 -1
  190. package/react/components/windowTitleBar/components/right/MaximizeButton.js.map +1 -1
  191. package/react/components/windowTitleBar/components/windowTitle.d.ts +5 -2
  192. package/react/components/windowTitleBar/components/windowTitle.js +93 -89
  193. package/react/components/windowTitleBar/components/windowTitle.js.map +1 -1
  194. package/react/components/windowTitleBar/stores/windowTitleBarStore.d.ts +3 -3
  195. package/react/components/windowTitleBar/stores/windowTitleBarStore.js +213 -217
  196. package/react/components/windowTitleBar/stores/windowTitleBarStore.js.map +1 -1
  197. package/react/hooks/useDashbar.js.map +1 -1
  198. package/react/hooks/useFavoritesShell.js.map +1 -1
  199. package/react/hooks/useNotifications.d.ts +1 -1
  200. package/react/hooks/useNotifications.js.map +1 -1
  201. package/react/reducers/rootReducer.d.ts +11 -3
  202. package/react/reducers/smartDesktopDesignerReducer.js +8 -0
  203. package/react/reducers/smartDesktopDesignerReducer.js.map +1 -1
  204. package/react/store.d.ts +22 -6
  205. package/react/types/fdc3.d.ts +2 -2
  206. package/react/types/fdc3.js.map +1 -1
  207. package/react/types/searchTypes.d.ts +1 -8
  208. package/react/types/searchTypes.js.map +1 -1
  209. package/react/types/smartDesktopDesignerTypes.d.ts +8 -2
  210. package/react/types/smartDesktopDesignerTypes.js.map +1 -1
  211. package/react/types/windowTitleBar.d.ts +1 -1
  212. package/react/types/windowTitleBar.js.map +1 -1
  213. package/react/components/smartDesktopDesigner/ApplicationList.d.ts +0 -16
  214. package/react/components/smartDesktopDesigner/ApplicationList.js +0 -60
  215. package/react/components/smartDesktopDesigner/ApplicationList.js.map +0 -1
  216. package/react/components/smartDesktopDesigner/stories/ApplicationList.stories.d.ts +0 -16
  217. package/react/components/smartDesktopDesigner/stories/ApplicationList.stories.js.map +0 -1
  218. package/react/components/smartDesktopDesigner/tests/ApplicationList.spec.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@finsemble/finsemble-ui",
3
- "version": "6.4.0",
3
+ "version": "6.5.1-beta.2",
4
4
  "description": "Ready-made React components to give you a head-start building your SmartDesktop.",
5
5
  "types": "index.d.ts",
6
6
  "files": [
@@ -8,7 +8,7 @@
8
8
  ],
9
9
  "scripts": {
10
10
  "build": "npm run preprod && tsc",
11
- "do-audit": " improved-yarn-audit --min-severity high --exclude GHSA-whgm-jr23-g3j9",
11
+ "do-audit": " improved-yarn-audit --min-severity high",
12
12
  "clean": "rimraf ./react & rimraf coverage",
13
13
  "copy-css": "copyfiles -u 1 \"src/**/*.css\" \"react/\"",
14
14
  "dev": "concurrently \"npm run watch-css\" \"tsc --watch --preserveWatchOutput\" --prefix [{time}:{command}]: --prefix-length 20 --prefix-colors cyan,green",
@@ -27,25 +27,26 @@
27
27
  "build-storybook": "build-storybook"
28
28
  },
29
29
  "dependencies": {
30
+ "@finsemble/finsemble-api": "6.5.1-beta.2",
30
31
  "@q42/floating-focus-a11y": "^1.3.3",
31
32
  "@reduxjs/toolkit": "^1.5.0",
32
33
  "@svgr/webpack": "^5.5.0",
33
- "@types/async": "3.2.9",
34
- "@types/chai": "4.2.22",
35
- "@types/lodash": "4.14.176",
34
+ "@types/async": "3.2.12",
35
+ "@types/chai": "4.3.0",
36
+ "@types/lodash": "4.14.178",
36
37
  "@types/mime-types": "^2.1.0",
37
38
  "@types/mocha": "9.0.0",
38
- "@types/react": "17.0.34",
39
+ "@types/react": "17.0.38",
39
40
  "@types/react-dom": "17.0.11",
40
41
  "@types/react-input-autosize": "2.2.1",
41
- "@types/react-redux": "7.1.20",
42
+ "@types/react-redux": "7.1.21",
42
43
  "@types/react-relative-portal": "^1.8.1",
43
- "async": "3.2.2",
44
+ "async": "3.2.3",
44
45
  "date-fns": "^2.25.0",
45
46
  "dom-autoscroller": "2.3.4",
46
- "immer": "9.0.6",
47
+ "immer": "9.0.12",
47
48
  "lodash": "4.17.21",
48
- "prop-types": "15.7.2",
49
+ "prop-types": "15.8.1",
49
50
  "react-circular-progressbar": "^2.0.3",
50
51
  "react-input-autosize": "^3.0.0",
51
52
  "react-redux": "7.2.6",
@@ -53,6 +54,7 @@
53
54
  "react-sortable-hoc": "2.0.0",
54
55
  "react-transition-group": "4.4.2",
55
56
  "redux": "4.1.2",
57
+ "redux-loop": "6.2.0",
56
58
  "unionize": "3.1.0"
57
59
  },
58
60
  "peerDependencies": {
@@ -60,15 +62,14 @@
60
62
  "react-dom": "17.0.2"
61
63
  },
62
64
  "devDependencies": {
63
- "@babel/plugin-proposal-private-methods": "7.16.0",
65
+ "@babel/plugin-proposal-private-methods": "7.16.7",
64
66
  "@babel/preset-env": "^7.16.0",
65
67
  "@babel/preset-react": "^7.12.10",
66
68
  "@babel/register": "^7.16.0",
67
- "@finsemble/finsemble-core": "6.2.1",
68
- "@storybook/addon-actions": "6.3.12",
69
- "@storybook/addon-essentials": "6.4.4",
70
- "@storybook/addon-links": "6.4.3",
71
- "@storybook/react": "6.3.12",
69
+ "@storybook/addon-actions": "6.4.13",
70
+ "@storybook/addon-essentials": "6.4.13",
71
+ "@storybook/addon-links": "6.4.13",
72
+ "@storybook/react": "6.4.13",
72
73
  "@types/enzyme": "^3.10.8",
73
74
  "@types/react-transition-group": "4.4.4",
74
75
  "@types/sinon": "^10.0.2",
@@ -78,7 +79,7 @@
78
79
  "canvas": "^2.6.1",
79
80
  "chai": "4.3.4",
80
81
  "chokidar-cli": "3.0.0",
81
- "concurrently": "6.4.0",
82
+ "concurrently": "7.0.0",
82
83
  "copyfiles": "2.4.1",
83
84
  "core-js": "^3.15.2",
84
85
  "enzyme": "^3.11.0",
@@ -93,7 +94,7 @@
93
94
  "rimraf": "3.0.2",
94
95
  "sinon": "^12.0.0",
95
96
  "ts-loader": "^9.2.3",
96
- "ts-mocha": "8.0.0",
97
+ "ts-mocha": "9.0.2",
97
98
  "typescript": "4.4.4"
98
99
  },
99
100
  "resolutions": {
@@ -1,6 +1,6 @@
1
1
  import { UnionOf } from "unionize";
2
- import { AuthenticationProvider, MenuType, ProjectError, ProjectSaveData } from "../types/smartDesktopDesignerTypes";
3
- import { services, FEA } from "@finsemble/finsemble-core";
2
+ import { AuthenticationProvider, MenuType, PreloadType, ProjectError, ProjectSaveData } from "../types/smartDesktopDesignerTypes";
3
+ import { services, FEA } from "@finsemble/finsemble-api";
4
4
  export declare const SmartDesktopDesignerActions: import("unionize").Unionized<{
5
5
  change_view: string;
6
6
  update_apps: services.Interop.types.AppDefinition[];
@@ -9,6 +9,8 @@ export declare const SmartDesktopDesignerActions: import("unionize").Unionized<{
9
9
  update_app: services.Interop.types.AppDefinition;
10
10
  delete_app: string;
11
11
  update_menus: MenuType;
12
+ update_preloads: PreloadType[];
13
+ set_current_preload: PreloadType | null;
12
14
  set_deploy_info: FEA.DeployInfo | null;
13
15
  set_publish_error: string | null;
14
16
  set_is_publishing: boolean;
@@ -27,6 +29,8 @@ export declare const SmartDesktopDesignerActions: import("unionize").Unionized<{
27
29
  update_app: services.Interop.types.AppDefinition;
28
30
  delete_app: string;
29
31
  update_menus: MenuType;
32
+ update_preloads: PreloadType[];
33
+ set_current_preload: PreloadType | null;
30
34
  set_deploy_info: FEA.DeployInfo | null;
31
35
  set_publish_error: string | null;
32
36
  set_is_publishing: boolean;
@@ -7,6 +7,8 @@ export const SmartDesktopDesignerActions = unionize({
7
7
  update_app: ofType(),
8
8
  delete_app: ofType(),
9
9
  update_menus: ofType(),
10
+ update_preloads: ofType(),
11
+ set_current_preload: ofType(),
10
12
  set_deploy_info: ofType(),
11
13
  set_publish_error: ofType(),
12
14
  set_is_publishing: ofType(),
@@ -1 +1 @@
1
- {"version":3,"file":"smartDesktopDesignerActions.js","sourceRoot":"","sources":["../../src/actions/smartDesktopDesignerActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAW,MAAM,UAAU,CAAC;AAQrD,MAAM,CAAC,MAAM,2BAA2B,GAAG,QAAQ,CAClD;IACC,WAAW,EAAE,MAAM,EAAU;IAC7B,WAAW,EAAE,MAAM,EAAmB;IACtC,OAAO,EAAE,MAAM,EAAiB;IAChC,kBAAkB,EAAE,MAAM,EAAiB;IAC3C,UAAU,EAAE,MAAM,EAAiB;IACnC,UAAU,EAAE,MAAM,EAAU;IAC5B,YAAY,EAAE,MAAM,EAAY;IAChC,eAAe,EAAE,MAAM,EAAqB;IAC5C,iBAAiB,EAAE,MAAM,EAAiB;IAC1C,iBAAiB,EAAE,MAAM,EAAW;IACpC,gBAAgB,EAAE,MAAM,EAAmB;IAC3C,sBAAsB,EAAE,MAAM,EAAW;IACzC,oBAAoB,EAAE,MAAM,EAA0B;IACtD,oBAAoB,EAAE,MAAM,EAAU;IACtC,iBAAiB,EAAE,MAAM,EAAgB;IACzC,oBAAoB,EAAE,MAAM,EAAgB;IAC5C,4BAA4B,EAAE,MAAM,EAAW;CAC/C,EACD,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,CACjC,CAAC","sourcesContent":["import { unionize, ofType, UnionOf } from \"unionize\";\nimport { AuthenticationProvider, MenuType, ProjectError, ProjectSaveData } from \"../types/smartDesktopDesignerTypes\";\n\nimport { services, FEA } from \"@finsemble/finsemble-core\";\n\ntype AppDefinition = services.Interop.types.AppDefinition;\ntype DeployInfo = FEA.DeployInfo;\n\nexport const SmartDesktopDesignerActions = unionize(\n\t{\n\t\tchange_view: ofType<string>(),\n\t\tupdate_apps: ofType<AppDefinition[]>(),\n\t\tnew_app: ofType<string | null>(),\n\t\tset_current_app_id: ofType<string | null>(),\n\t\tupdate_app: ofType<AppDefinition>(),\n\t\tdelete_app: ofType<string>(),\n\t\tupdate_menus: ofType<MenuType>(),\n\t\tset_deploy_info: ofType<DeployInfo | null>(),\n\t\tset_publish_error: ofType<string | null>(),\n\t\tset_is_publishing: ofType<boolean>(),\n\t\tset_project_info: ofType<ProjectSaveData>(),\n\t\tset_is_getting_started: ofType<boolean>(),\n\t\tupdate_auth_provider: ofType<AuthenticationProvider>(),\n\t\tenable_auth_provider: ofType<string>(),\n\t\tset_project_error: ofType<ProjectError>(),\n\t\tdelete_project_error: ofType<ProjectError>(),\n\t\tset_reviewing_project_errors: ofType<boolean>(),\n\t},\n\t{ tag: \"type\", value: \"payload\" }\n);\n\nexport type SmartDesktopDesignerActionsTypes = UnionOf<typeof SmartDesktopDesignerActions>;\n"]}
1
+ {"version":3,"file":"smartDesktopDesignerActions.js","sourceRoot":"","sources":["../../src/actions/smartDesktopDesignerActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAW,MAAM,UAAU,CAAC;AAcrD,MAAM,CAAC,MAAM,2BAA2B,GAAG,QAAQ,CAClD;IACC,WAAW,EAAE,MAAM,EAAU;IAC7B,WAAW,EAAE,MAAM,EAAmB;IACtC,OAAO,EAAE,MAAM,EAAiB;IAChC,kBAAkB,EAAE,MAAM,EAAiB;IAC3C,UAAU,EAAE,MAAM,EAAiB;IACnC,UAAU,EAAE,MAAM,EAAU;IAC5B,YAAY,EAAE,MAAM,EAAY;IAChC,eAAe,EAAE,MAAM,EAAiB;IACxC,mBAAmB,EAAE,MAAM,EAAsB;IACjD,eAAe,EAAE,MAAM,EAAqB;IAC5C,iBAAiB,EAAE,MAAM,EAAiB;IAC1C,iBAAiB,EAAE,MAAM,EAAW;IACpC,gBAAgB,EAAE,MAAM,EAAmB;IAC3C,sBAAsB,EAAE,MAAM,EAAW;IACzC,oBAAoB,EAAE,MAAM,EAA0B;IACtD,oBAAoB,EAAE,MAAM,EAAU;IACtC,iBAAiB,EAAE,MAAM,EAAgB;IACzC,oBAAoB,EAAE,MAAM,EAAgB;IAC5C,4BAA4B,EAAE,MAAM,EAAW;CAC/C,EACD,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,CACjC,CAAC","sourcesContent":["import { unionize, ofType, UnionOf } from \"unionize\";\nimport {\n\tAuthenticationProvider,\n\tMenuType,\n\tPreloadType,\n\tProjectError,\n\tProjectSaveData,\n} from \"../types/smartDesktopDesignerTypes\";\n\nimport { services, FEA } from \"@finsemble/finsemble-api\";\n\ntype AppDefinition = services.Interop.types.AppDefinition;\ntype DeployInfo = FEA.DeployInfo;\n\nexport const SmartDesktopDesignerActions = unionize(\n\t{\n\t\tchange_view: ofType<string>(),\n\t\tupdate_apps: ofType<AppDefinition[]>(),\n\t\tnew_app: ofType<string | null>(),\n\t\tset_current_app_id: ofType<string | null>(),\n\t\tupdate_app: ofType<AppDefinition>(),\n\t\tdelete_app: ofType<string>(),\n\t\tupdate_menus: ofType<MenuType>(),\n\t\tupdate_preloads: ofType<PreloadType[]>(),\n\t\tset_current_preload: ofType<PreloadType | null>(),\n\t\tset_deploy_info: ofType<DeployInfo | null>(),\n\t\tset_publish_error: ofType<string | null>(),\n\t\tset_is_publishing: ofType<boolean>(),\n\t\tset_project_info: ofType<ProjectSaveData>(),\n\t\tset_is_getting_started: ofType<boolean>(),\n\t\tupdate_auth_provider: ofType<AuthenticationProvider>(),\n\t\tenable_auth_provider: ofType<string>(),\n\t\tset_project_error: ofType<ProjectError>(),\n\t\tdelete_project_error: ofType<ProjectError>(),\n\t\tset_reviewing_project_errors: ofType<boolean>(),\n\t},\n\t{ tag: \"type\", value: \"payload\" }\n);\n\nexport type SmartDesktopDesignerActionsTypes = UnionOf<typeof SmartDesktopDesignerActions>;\n"]}
@@ -0,0 +1,15 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="16px" height="13px" viewBox="0 0 16 13" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <title>Group 7 Copy</title>
4
+ <g id="Symbols" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
5
+ <g id="main-menu-copy" transform="translate(-32.000000, -199.000000)" fill="#5B606F">
6
+ <g id="Optional" transform="translate(14.000000, 188.000000)">
7
+ <g id="Group-7-Copy" transform="translate(18.000000, 11.000000)">
8
+ <path d="M4.7920808,9.07004831 L1.4321161,6.48309179 L4.7920808,3.91304348 C5.03076681,3.72705314 5.06748774,3.4057971 4.86552265,3.18599034 C4.75535987,3.06763285 4.5901157,3 4.42487154,3 C4.2963483,3 4.16782506,3.03381643 4.05766228,3.11835749 L0.201965091,6.0942029 C0.0734418513,6.19565217 0,6.33091787 0,6.5 C0,6.66908213 0.0734418513,6.80434783 0.201965091,6.9057971 L4.07602275,9.88164251 C4.18618552,9.96618357 4.2963483,10 4.443232,10 C4.60847617,10 4.77372033,9.93236715 4.88388311,9.81384058 C5.06748774,9.57729469 5.03076681,9.25603865 4.7920808,9.07004831" id="Fill-1"></path>
9
+ <path d="M16,6.5 C16,6.34799517 15.927227,6.19565217 15.7993727,6.09437198 L11.9327372,3.11835749 C11.8234865,3.03381643 11.6956322,3 11.5679602,3 C11.4038106,3 11.239661,3.06763285 11.1302279,3.18599034 C10.9296006,3.4057971 10.9660783,3.72722222 11.2031833,3.91304348 L14.5408923,6.5 L11.2214222,9.0871256 C10.9843172,9.27294686 10.9478395,9.59437198 11.1484668,9.81417874 C11.2578999,9.93253623 11.4038106,10 11.5861991,10 C11.713871,10 11.8415429,9.94927536 11.950976,9.88164251 L15.7993727,6.9057971 C15.927227,6.80451691 16,6.65217391 16,6.5" id="Fill-3"></path>
10
+ <path d="M9.6316044,0.0167741935 C9.57864799,0 9.52569158,0 9.47273517,0 C9.24325739,0 9.03143175,0.134193548 8.9608232,0.369032258 L5.02439668,12.3458065 C4.936136,12.6141935 5.09500523,12.8993548 5.37743942,12.9832258 C5.43039583,13 5.48335224,13 5.53630865,13 C5.78343857,13 5.97761207,12.8490323 6.04822062,12.6309677 L9.966995,0.637419355 C10.0729078,0.385806452 9.91403859,0.100645161 9.6316044,0.0167741935" id="Fill-5"></path>
11
+ </g>
12
+ </g>
13
+ </g>
14
+ </g>
15
+ </svg>
@@ -1 +1 @@
1
- {"version":3,"file":"FinsembleProvider.js","sourceRoot":"","sources":["../../src/components/FinsembleProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAK5C,OAAO,EAAE,WAAW,EAAE,CAAC;AAcvB,MAAM,CAAC,MAAM,iBAAiB,GAAoD,CAAC,KAAK,EAAE,EAAE;IAC3F,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE1C,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,KAAK;YAAE,OAAO;QAClB,MAAM,OAAO,GAAG,GAAG,EAAE;YACpB,QAAQ,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC,CAAC;QACF,MAAM,CAAC,IAAI,KAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,gBAAgB,CAAA;YACpC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC;YAC3C,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,OAAO,KAAK,CAAC,CAAC,CAAC,oBAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,KAAK,IAAG,KAAK,CAAC,QAAQ,CAAY,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1F,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\nimport { store, createStore } from \"../store\";\nimport { Provider } from \"react-redux\";\nimport { useState, useEffect } from \"react\";\n//import { common } from \"@finsemble/finsemble-core\";\n\n//let { Globals } = common;\n\nexport { createStore };\n\n/**\n * The <FinsembleProvider> must be an ancestor of any Finsemble React UI components or hooks.\n * It manages FSBL initialization (ensuring that all components and hooks are operating with a properly initialized API.)\n * It also constructs the UI API's redux store and makes it available through a Context Provider for all descendent components and hooks.\n *\n * The <FinsembleProvider> will render its children.\n */\n\nexport type FinsembleProviderProps = {\n\tstore?: typeof store;\n};\n\nexport const FinsembleProvider: React.FunctionComponent<FinsembleProviderProps> = (props) => {\n\tconst [ready, setReady] = useState(false);\n\n\tuseEffect(() => {\n\t\tif (ready) return;\n\t\tconst release = () => {\n\t\t\tsetReady(true);\n\t\t};\n\t\twindow.FSBL && FSBL?.addEventListener\n\t\t\t? FSBL.addEventListener(\"onReady\", release)\n\t\t\t: window.addEventListener(\"FSBLReady\", release);\n\t}, [ready]);\n\n\treturn ready ? <Provider store={props.store || store}>{props.children}</Provider> : null;\n};\n"]}
1
+ {"version":3,"file":"FinsembleProvider.js","sourceRoot":"","sources":["../../src/components/FinsembleProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAK5C,OAAO,EAAE,WAAW,EAAE,CAAC;AAcvB,MAAM,CAAC,MAAM,iBAAiB,GAAoD,CAAC,KAAK,EAAE,EAAE;IAC3F,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE1C,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,KAAK;YAAE,OAAO;QAClB,MAAM,OAAO,GAAG,GAAG,EAAE;YACpB,QAAQ,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC,CAAC;QACF,MAAM,CAAC,IAAI,KAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,gBAAgB,CAAA;YACpC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC;YAC3C,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,OAAO,KAAK,CAAC,CAAC,CAAC,oBAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,KAAK,IAAG,KAAK,CAAC,QAAQ,CAAY,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1F,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\nimport { store, createStore } from \"../store\";\nimport { Provider } from \"react-redux\";\nimport { useState, useEffect } from \"react\";\n//import { common } from \"@finsemble/finsemble-api\";\n\n//let { Globals } = common;\n\nexport { createStore };\n\n/**\n * The <FinsembleProvider> must be an ancestor of any Finsemble React UI components or hooks.\n * It manages FSBL initialization (ensuring that all components and hooks are operating with a properly initialized API.)\n * It also constructs the UI API's redux store and makes it available through a Context Provider for all descendent components and hooks.\n *\n * The <FinsembleProvider> will render its children.\n */\n\nexport type FinsembleProviderProps = {\n\tstore?: typeof store;\n};\n\nexport const FinsembleProvider: React.FunctionComponent<FinsembleProviderProps> = (props) => {\n\tconst [ready, setReady] = useState(false);\n\n\tuseEffect(() => {\n\t\tif (ready) return;\n\t\tconst release = () => {\n\t\t\tsetReady(true);\n\t\t};\n\t\twindow.FSBL && FSBL?.addEventListener\n\t\t\t? FSBL.addEventListener(\"onReady\", release)\n\t\t\t: window.addEventListener(\"FSBLReady\", release);\n\t}, [ready]);\n\n\treturn ready ? <Provider store={props.store || store}>{props.children}</Provider> : null;\n};\n"]}
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
2
  import { FDC3Props, FDC3PostCallback, FDC3SearchCallback, FDC3GetCallback } from "../../../types/fdc3";
3
- import { StandardError } from "@finsemble/finsemble-core/types/types";
3
+ import { StandardError } from "@finsemble/finsemble-api/types/types";
4
4
  export default class FDC3 extends React.Component<FDC3Props> {
5
5
  creds: {};
6
6
  config: FDC3Props["config"];
@@ -1 +1 @@
1
- {"version":3,"file":"FDC3.js","sourceRoot":"","sources":["../../../../src/components/appCatalog/modules/FDC3.ts"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport {\n\tFDC3Props,\n\tFDC3PostCallback,\n\tFDC3SearchCallback,\n\tFDC3GetCallback,\n\tErrorOrMessage,\n\tFDC3PostCallbackData,\n} from \"../../../types/fdc3\";\nimport { StandardError } from \"@finsemble/finsemble-core/types/types\";\n\nconst handleFdc3Response = (\n\tresponse: {\n\t\tjson: () => Promise<any>;\n\t\tstatus: number;\n\t},\n\tdone: (dataOrNull: any, data?: any) => void\n) => {\n\tresponse.json().then((data) => {\n\t\t// We are expecting 200 here for data\n\t\tif (response.status !== 200) {\n\t\t\t// We have a problem, data as error message\n\t\t\tdone(data);\n\t\t} else {\n\t\t\t// All good, no problem\n\t\t\tdone(null, data);\n\t\t}\n\t});\n};\n\nconst handleFdc3Error = (error: Error, done: (msg: { message: string }) => void) => {\n\tdone({\n\t\tmessage: `Request failed ${error.message}`,\n\t});\n};\n\n/**\n * Copyright 2018 by ChartIQ, Inc.\n * All rights reserved.\n *\n * FDC3 App directory client, I will be using fetch()\n * to make calls to the appd web service, even though I'm\n * not sure where did fetch() come from, will investigate later\n */\nexport default class FDC3 extends React.Component<FDC3Props> {\n\tcreds: {};\n\n\tconfig: FDC3Props[\"config\"];\n\n\tconstructor(props: FDC3Props) {\n\t\tsuper(props);\n\t\tif (!this.props.config.url) {\n\t\t\tthrow new Error(\"Please specify the url of the app directory.\");\n\t\t}\n\t\tthis.creds = this.props.creds;\n\t\tthis.config = {\n\t\t\turl: this.props.config.url.replace(/\\/+$/, \"\"),\n\t\t};\n\t}\n\n\t/**\n\t * Http get wrapper\n\t * @param {string} path The restful method path\n\t * @param {function} done The callback function\n\t */\n\t_get(path: string, done: FDC3GetCallback) {\n\t\tfetch(this.config.url + path, {\n\t\t\tmethod: \"GET\",\n\t\t})\n\t\t\t.then((response) => handleFdc3Response(response, done))\n\t\t\t.catch((error) => handleFdc3Error(error, done));\n\t}\n\n\t/**\n\t *\n\t * @param {string} path The restful method path\n\t * @param {object} params The post data\n\t * @param {function} done The callback function\n\t */\n\t_post(path: string, params: Record<string, string>, done: FDC3PostCallback) {\n\t\tfetch(this.config.url + path, {\n\t\t\tmethod: \"POST\",\n\t\t\tbody: JSON.stringify(params),\n\t\t\theaders: {\n\t\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t},\n\t\t})\n\t\t\t.then((response) => handleFdc3Response(response, done))\n\t\t\t.catch((error) => handleFdc3Error(error, done));\n\t}\n\n\t/**\n\t * Returns all applications\n\t * @param {function} callback The optional callback function\n\t */\n\tgetAll(callback: (arg1: Record<string, string> | null, applications: string[]) => void) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis._get(\"/apps/\", (error, data) => {\n\t\t\t\tif (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t} else {\n\t\t\t\t\tresolve(data?.applications);\n\t\t\t\t}\n\t\t\t\tif (callback) {\n\t\t\t\t\tcallback(error, data?.applications || []);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Returns a single application in results\n\t * @param {string} appId The app id\n\t */\n\tget(appId: string, callback: (error: StandardError, application: string) => void) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis._get(`/apps/${appId}`, (error, data) => {\n\t\t\t\tif (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\t\t\t\tif (callback && data?.applications) {\n\t\t\t\t\tcallback(null, data.applications[0]);\n\t\t\t\t}\n\n\t\t\t\tif (data?.applications) {\n\t\t\t\t\tresolve(data.applications[0]);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Returns unique tags\n\t * @param {function} callback The optional callback function\n\t */\n\tgetTags(callback: (error: StandardError, results: string[]) => void) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis._get(\"/tags/\", (error, data) => {\n\t\t\t\tif (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t} else if (data) {\n\t\t\t\t\tresolve(data.tags);\n\t\t\t\t}\n\t\t\t\tif (callback && data) {\n\t\t\t\t\tcallback(null, data.tags);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Returns a list of applications based on text and filter\n\t * @param {object} params The search criteria\n\t * @param {function} callback The callback function\n\t * @example search({text: 'blah', filter: {tag: 'newrelease'}})\n\t */\n\tsearch(params: Record<string, string>, callback: FDC3SearchCallback) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis._post(\"/apps/search\", params, (error: ErrorOrMessage, data: FDC3PostCallbackData) => {\n\t\t\t\tif (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\n\t\t\t\tif (callback) {\n\t\t\t\t\tcallback(null, data?.applications);\n\t\t\t\t} else if (data) {\n\t\t\t\t\tresolve(data.applications);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n}\n"]}
1
+ {"version":3,"file":"FDC3.js","sourceRoot":"","sources":["../../../../src/components/appCatalog/modules/FDC3.ts"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport {\n\tFDC3Props,\n\tFDC3PostCallback,\n\tFDC3SearchCallback,\n\tFDC3GetCallback,\n\tErrorOrMessage,\n\tFDC3PostCallbackData,\n} from \"../../../types/fdc3\";\nimport { StandardError } from \"@finsemble/finsemble-api/types/types\";\n\nconst handleFdc3Response = (\n\tresponse: {\n\t\tjson: () => Promise<any>;\n\t\tstatus: number;\n\t},\n\tdone: (dataOrNull: any, data?: any) => void\n) => {\n\tresponse.json().then((data) => {\n\t\t// We are expecting 200 here for data\n\t\tif (response.status !== 200) {\n\t\t\t// We have a problem, data as error message\n\t\t\tdone(data);\n\t\t} else {\n\t\t\t// All good, no problem\n\t\t\tdone(null, data);\n\t\t}\n\t});\n};\n\nconst handleFdc3Error = (error: Error, done: (msg: { message: string }) => void) => {\n\tdone({\n\t\tmessage: `Request failed ${error.message}`,\n\t});\n};\n\n/**\n * Copyright 2018 by ChartIQ, Inc.\n * All rights reserved.\n *\n * FDC3 App directory client, I will be using fetch()\n * to make calls to the appd web service, even though I'm\n * not sure where did fetch() come from, will investigate later\n */\nexport default class FDC3 extends React.Component<FDC3Props> {\n\tcreds: {};\n\n\tconfig: FDC3Props[\"config\"];\n\n\tconstructor(props: FDC3Props) {\n\t\tsuper(props);\n\t\tif (!this.props.config.url) {\n\t\t\tthrow new Error(\"Please specify the url of the app directory.\");\n\t\t}\n\t\tthis.creds = this.props.creds;\n\t\tthis.config = {\n\t\t\turl: this.props.config.url.replace(/\\/+$/, \"\"),\n\t\t};\n\t}\n\n\t/**\n\t * Http get wrapper\n\t * @param {string} path The restful method path\n\t * @param {function} done The callback function\n\t */\n\t_get(path: string, done: FDC3GetCallback) {\n\t\tfetch(this.config.url + path, {\n\t\t\tmethod: \"GET\",\n\t\t})\n\t\t\t.then((response) => handleFdc3Response(response, done))\n\t\t\t.catch((error) => handleFdc3Error(error, done));\n\t}\n\n\t/**\n\t *\n\t * @param {string} path The restful method path\n\t * @param {object} params The post data\n\t * @param {function} done The callback function\n\t */\n\t_post(path: string, params: Record<string, string>, done: FDC3PostCallback) {\n\t\tfetch(this.config.url + path, {\n\t\t\tmethod: \"POST\",\n\t\t\tbody: JSON.stringify(params),\n\t\t\theaders: {\n\t\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t},\n\t\t})\n\t\t\t.then((response) => handleFdc3Response(response, done))\n\t\t\t.catch((error) => handleFdc3Error(error, done));\n\t}\n\n\t/**\n\t * Returns all applications\n\t * @param {function} callback The optional callback function\n\t */\n\tgetAll(callback: (arg1: Record<string, string> | null, applications: string[]) => void) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis._get(\"/apps/\", (error, data) => {\n\t\t\t\tif (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t} else {\n\t\t\t\t\tresolve(data?.applications);\n\t\t\t\t}\n\t\t\t\tif (callback) {\n\t\t\t\t\tcallback(error, data?.applications || []);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Returns a single application in results\n\t * @param {string} appId The app id\n\t */\n\tget(appId: string, callback: (error: StandardError, application: string) => void) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis._get(`/apps/${appId}`, (error, data) => {\n\t\t\t\tif (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\t\t\t\tif (callback && data?.applications) {\n\t\t\t\t\tcallback(null, data.applications[0]);\n\t\t\t\t}\n\n\t\t\t\tif (data?.applications) {\n\t\t\t\t\tresolve(data.applications[0]);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Returns unique tags\n\t * @param {function} callback The optional callback function\n\t */\n\tgetTags(callback: (error: StandardError, results: string[]) => void) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis._get(\"/tags/\", (error, data) => {\n\t\t\t\tif (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t} else if (data) {\n\t\t\t\t\tresolve(data.tags);\n\t\t\t\t}\n\t\t\t\tif (callback && data) {\n\t\t\t\t\tcallback(null, data.tags);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Returns a list of applications based on text and filter\n\t * @param {object} params The search criteria\n\t * @param {function} callback The callback function\n\t * @example search({text: 'blah', filter: {tag: 'newrelease'}})\n\t */\n\tsearch(params: Record<string, string>, callback: FDC3SearchCallback) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis._post(\"/apps/search\", params, (error: ErrorOrMessage, data: FDC3PostCallbackData) => {\n\t\t\t\tif (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\n\t\t\t\tif (callback) {\n\t\t\t\t\tcallback(null, data?.applications);\n\t\t\t\t} else if (data) {\n\t\t\t\t\tresolve(data.applications);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n}\n"]}
@@ -2,8 +2,8 @@
2
2
  * Copyright 2018 by ChartIQ, Inc.
3
3
  * All rights reserved.
4
4
  */
5
- import StoreModel from "@finsemble/finsemble-core/types/clients/StoreModel";
6
- import { StandardCallback } from "@finsemble/finsemble-core/types/types";
5
+ import StoreModel from "@finsemble/finsemble-api/types/clients/StoreModel";
6
+ import { StandardCallback } from "@finsemble/finsemble-api/types/types";
7
7
  export { createStore, getStore };
8
8
  declare function createStore(cb: StandardCallback): void;
9
9
  declare function getStore(): StoreModel;
@@ -1 +1 @@
1
- {"version":3,"file":"appStore.js","sourceRoot":"","sources":["../../../../src/components/appCatalog/stores/appStore.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;AAEjC,MAAM,aAAa,GAAG;IACrB;QACC,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,EAAE;KACT;IACD;QACC,KAAK,EAAE,cAAc;QACrB,KAAK,EAAE,EAAE;KACT;IACD;QACC,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,EAAE;KACT;IACD;QACC,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,IAAI;KACX;IACD;QACC,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,EAAE;KACT;IACD;QACC,KAAK,EAAE,aAAa;QACpB,KAAK,EAAE,KAAK;KACZ;CACD,CAAC;AAEF,IAAI,eAA2B,CAAC;AAEhC,SAAS,WAAW,CAAC,EAAoB;IACxC,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,QAAQ,CAC3C,EAAE,KAAK,EAAE,6BAA6B,EAAE,MAAM,EAAE,IAAI,EAAE,EACtD,CAAC,GAAkB,EAAE,KAAkB,EAAE,EAAE;QAC1C,IAAI,KAAK,EAAE;YACV,eAAe,GAAG,KAAK,CAAC;YAGxB,eAAe,CAAC,SAAS,CAAC,aAAa,EAAE,GAAG,EAAE;gBAC7C,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;YAC3B,CAAC,CAAC,CAAC;SACH;IACF,CAAC,CACD,CAAC;AACH,CAAC;AAED,SAAS,QAAQ;IAChB,OAAO,eAAe,CAAC;AACxB,CAAC","sourcesContent":["/*!\n * Copyright 2018 by ChartIQ, Inc.\n * All rights reserved.\n */\n\nimport StoreModel from \"@finsemble/finsemble-core/types/clients/StoreModel\";\nimport { StandardCallback, StandardError } from \"@finsemble/finsemble-core/types/types\";\n\nexport { createStore, getStore };\n\nconst defaultValues = [\n\t{\n\t\tfield: \"apps\",\n\t\tvalue: [],\n\t},\n\t{\n\t\tfield: \"filteredApps\",\n\t\tvalue: [],\n\t},\n\t{\n\t\tfield: \"activeTags\",\n\t\tvalue: [],\n\t},\n\t{\n\t\tfield: \"activeApp\",\n\t\tvalue: null,\n\t},\n\t{\n\t\tfield: \"searchText\",\n\t\tvalue: \"\",\n\t},\n\t{\n\t\tfield: \"forceSearch\",\n\t\tvalue: false,\n\t},\n];\n\nlet appCatalogStore: StoreModel;\n\nfunction createStore(cb: StandardCallback) {\n\tFSBL.Clients.DistributedStoreClient.getStore(\n\t\t{ store: \"Finsemble-AppLauncher-Store\", global: true },\n\t\t(err: StandardError, store?: StoreModel) => {\n\t\t\tif (store) {\n\t\t\t\tappCatalogStore = store;\n\n\t\t\t\t// set default values before initializing the store with values from storage.\n\t\t\t\tappCatalogStore.setValues(defaultValues, () => {\n\t\t\t\t\tcb(null, appCatalogStore);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t);\n}\n\nfunction getStore() {\n\treturn appCatalogStore;\n}\n"]}
1
+ {"version":3,"file":"appStore.js","sourceRoot":"","sources":["../../../../src/components/appCatalog/stores/appStore.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;AAEjC,MAAM,aAAa,GAAG;IACrB;QACC,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,EAAE;KACT;IACD;QACC,KAAK,EAAE,cAAc;QACrB,KAAK,EAAE,EAAE;KACT;IACD;QACC,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,EAAE;KACT;IACD;QACC,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,IAAI;KACX;IACD;QACC,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,EAAE;KACT;IACD;QACC,KAAK,EAAE,aAAa;QACpB,KAAK,EAAE,KAAK;KACZ;CACD,CAAC;AAEF,IAAI,eAA2B,CAAC;AAEhC,SAAS,WAAW,CAAC,EAAoB;IACxC,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,QAAQ,CAC3C,EAAE,KAAK,EAAE,6BAA6B,EAAE,MAAM,EAAE,IAAI,EAAE,EACtD,CAAC,GAAkB,EAAE,KAAkB,EAAE,EAAE;QAC1C,IAAI,KAAK,EAAE;YACV,eAAe,GAAG,KAAK,CAAC;YAGxB,eAAe,CAAC,SAAS,CAAC,aAAa,EAAE,GAAG,EAAE;gBAC7C,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;YAC3B,CAAC,CAAC,CAAC;SACH;IACF,CAAC,CACD,CAAC;AACH,CAAC;AAED,SAAS,QAAQ;IAChB,OAAO,eAAe,CAAC;AACxB,CAAC","sourcesContent":["/*!\n * Copyright 2018 by ChartIQ, Inc.\n * All rights reserved.\n */\n\nimport StoreModel from \"@finsemble/finsemble-api/types/clients/StoreModel\";\nimport { StandardCallback, StandardError } from \"@finsemble/finsemble-api/types/types\";\n\nexport { createStore, getStore };\n\nconst defaultValues = [\n\t{\n\t\tfield: \"apps\",\n\t\tvalue: [],\n\t},\n\t{\n\t\tfield: \"filteredApps\",\n\t\tvalue: [],\n\t},\n\t{\n\t\tfield: \"activeTags\",\n\t\tvalue: [],\n\t},\n\t{\n\t\tfield: \"activeApp\",\n\t\tvalue: null,\n\t},\n\t{\n\t\tfield: \"searchText\",\n\t\tvalue: \"\",\n\t},\n\t{\n\t\tfield: \"forceSearch\",\n\t\tvalue: false,\n\t},\n];\n\nlet appCatalogStore: StoreModel;\n\nfunction createStore(cb: StandardCallback) {\n\tFSBL.Clients.DistributedStoreClient.getStore(\n\t\t{ store: \"Finsemble-AppLauncher-Store\", global: true },\n\t\t(err: StandardError, store?: StoreModel) => {\n\t\t\tif (store) {\n\t\t\t\tappCatalogStore = store;\n\n\t\t\t\t// set default values before initializing the store with values from storage.\n\t\t\t\tappCatalogStore.setValues(defaultValues, () => {\n\t\t\t\t\tcb(null, appCatalogStore);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t);\n}\n\nfunction getStore() {\n\treturn appCatalogStore;\n}\n"]}
@@ -13,7 +13,7 @@ export const Checkbox = ({ checked = false, disabled = false, label = "", onClic
13
13
  opacity: ".55",
14
14
  };
15
15
  }
16
- return (React.createElement("div", { style: style, className: "complex-menu-checkbox-wrapper", role: "checkbox", "aria-label": label, tabIndex: 0, onClick: disabled ? () => { } : onClick, onKeyDown: (e) => {
16
+ return (React.createElement("div", { style: style, className: "complex-menu-checkbox-wrapper", role: "checkbox", "aria-checked": checked, "aria-label": label, tabIndex: 0, onClick: disabled ? () => { } : onClick, onKeyDown: (e) => {
17
17
  if (e.key === "Enter" || e.key === " ") {
18
18
  !disabled && onClick(e);
19
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.js","sourceRoot":"","sources":["../../../src/components/common/Checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,oBAAoB,CAAC;AAS5B,MAAM,CAAC,MAAM,QAAQ,GAA4B,CAAC,EACjD,OAAO,GAAG,KAAK,EACf,QAAQ,GAAG,KAAK,EAChB,KAAK,GAAG,EAAE,EACV,OAAO,GAAG,GAAG,EAAE,GAAE,CAAC,GAClB,EAAE,EAAE;IACJ,IAAI,eAAe,GAAG,uBAAuB,CAAC;IAC9C,IAAI,OAAO,EAAE;QACZ,eAAe,GAAG,GAAG,eAAe,UAAU,CAAC;KAC/C;IACD,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,IAAI,QAAQ,EAAE;QACb,KAAK,GAAG;YACP,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,KAAK;SACd,CAAC;KACF;IACD,OAAO,CACN,6BACC,KAAK,EAAE,KAAK,EACZ,SAAS,EAAC,+BAA+B,EACzC,IAAI,EAAC,UAAU,gBACH,KAAK,EACjB,QAAQ,EAAE,CAAC,EACX,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EACtC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;YAChB,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE;gBACvC,CAAC,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;aACxB;QACF,CAAC;QAED,6BAAK,SAAS,EAAE,eAAe,IAAG,OAAO,IAAI,oBAAC,aAAa,IAAC,IAAI,EAAC,OAAO,GAAG,CAAO;QAClF,6BAAK,SAAS,EAAC,6BAA6B,IAAE,KAAK,CAAO,CACrD,CACN,CAAC;AACH,CAAC,CAAC","sourcesContent":["import React from \"react\";\nimport { FinsembleIcon } from \"./FinsembleIcon\";\nimport \"./css/checkbox.css\";\n\nexport interface CheckboxProps {\n\tchecked?: boolean;\n\tdisabled?: boolean;\n\tlabel?: string;\n\tonClick?: (e: React.MouseEvent<HTMLDivElement> | React.KeyboardEvent<HTMLDivElement>) => void;\n}\n\nexport const Checkbox: React.FC<CheckboxProps> = ({\n\tchecked = false,\n\tdisabled = false,\n\tlabel = \"\",\n\tonClick = () => {},\n}) => {\n\tlet checkboxClasses = \"complex-menu-checkbox\";\n\tif (checked) {\n\t\tcheckboxClasses = `${checkboxClasses} checked`;\n\t}\n\tlet style = {};\n\tif (disabled) {\n\t\tstyle = {\n\t\t\tcursor: \"default\",\n\t\t\topacity: \".55\",\n\t\t};\n\t}\n\treturn (\n\t\t<div\n\t\t\tstyle={style}\n\t\t\tclassName=\"complex-menu-checkbox-wrapper\"\n\t\t\trole=\"checkbox\"\n\t\t\taria-label={label}\n\t\t\ttabIndex={0}\n\t\t\tonClick={disabled ? () => {} : onClick}\n\t\t\tonKeyDown={(e) => {\n\t\t\t\tif (e.key === \"Enter\" || e.key === \" \") {\n\t\t\t\t\t!disabled && onClick(e);\n\t\t\t\t}\n\t\t\t}}\n\t\t>\n\t\t\t<div className={checkboxClasses}>{checked && <FinsembleIcon icon=\"check\" />}</div>\n\t\t\t<div className=\"complex-menu-checkbox-label\">{label}</div>\n\t\t</div>\n\t);\n};\n"]}
1
+ {"version":3,"file":"Checkbox.js","sourceRoot":"","sources":["../../../src/components/common/Checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,oBAAoB,CAAC;AAS5B,MAAM,CAAC,MAAM,QAAQ,GAA4B,CAAC,EACjD,OAAO,GAAG,KAAK,EACf,QAAQ,GAAG,KAAK,EAChB,KAAK,GAAG,EAAE,EACV,OAAO,GAAG,GAAG,EAAE,GAAE,CAAC,GAClB,EAAE,EAAE;IACJ,IAAI,eAAe,GAAG,uBAAuB,CAAC;IAC9C,IAAI,OAAO,EAAE;QACZ,eAAe,GAAG,GAAG,eAAe,UAAU,CAAC;KAC/C;IACD,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,IAAI,QAAQ,EAAE;QACb,KAAK,GAAG;YACP,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,KAAK;SACd,CAAC;KACF;IACD,OAAO,CACN,6BACC,KAAK,EAAE,KAAK,EACZ,SAAS,EAAC,+BAA+B,EACzC,IAAI,EAAC,UAAU,kBACD,OAAO,gBACT,KAAK,EACjB,QAAQ,EAAE,CAAC,EACX,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EACtC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;YAChB,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE;gBACvC,CAAC,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;aACxB;QACF,CAAC;QAED,6BAAK,SAAS,EAAE,eAAe,IAAG,OAAO,IAAI,oBAAC,aAAa,IAAC,IAAI,EAAC,OAAO,GAAG,CAAO;QAClF,6BAAK,SAAS,EAAC,6BAA6B,IAAE,KAAK,CAAO,CACrD,CACN,CAAC;AACH,CAAC,CAAC","sourcesContent":["import React from \"react\";\nimport { FinsembleIcon } from \"./FinsembleIcon\";\nimport \"./css/checkbox.css\";\n\nexport interface CheckboxProps {\n\tchecked?: boolean;\n\tdisabled?: boolean;\n\tlabel?: string;\n\tonClick?: (e: React.MouseEvent<HTMLDivElement> | React.KeyboardEvent<HTMLDivElement>) => void;\n}\n\nexport const Checkbox: React.FC<CheckboxProps> = ({\n\tchecked = false,\n\tdisabled = false,\n\tlabel = \"\",\n\tonClick = () => {},\n}) => {\n\tlet checkboxClasses = \"complex-menu-checkbox\";\n\tif (checked) {\n\t\tcheckboxClasses = `${checkboxClasses} checked`;\n\t}\n\tlet style = {};\n\tif (disabled) {\n\t\tstyle = {\n\t\t\tcursor: \"default\",\n\t\t\topacity: \".55\",\n\t\t};\n\t}\n\treturn (\n\t\t<div\n\t\t\tstyle={style}\n\t\t\tclassName=\"complex-menu-checkbox-wrapper\"\n\t\t\trole=\"checkbox\"\n\t\t\taria-checked={checked}\n\t\t\taria-label={label}\n\t\t\ttabIndex={0}\n\t\t\tonClick={disabled ? () => {} : onClick}\n\t\t\tonKeyDown={(e) => {\n\t\t\t\tif (e.key === \"Enter\" || e.key === \" \") {\n\t\t\t\t\t!disabled && onClick(e);\n\t\t\t\t}\n\t\t\t}}\n\t\t>\n\t\t\t<div className={checkboxClasses}>{checked && <FinsembleIcon icon=\"check\" />}</div>\n\t\t\t<div className=\"complex-menu-checkbox-label\">{label}</div>\n\t\t</div>\n\t);\n};\n"]}
@@ -22,7 +22,9 @@ export const DropZone = ({ processFile, children, suppress = false }) => {
22
22
  });
23
23
  setSingleton(false);
24
24
  }
25
- return suppress ? (React.createElement(React.Fragment, null, children)) : (React.createElement("div", { className: `dropZone ${isDragging ? "isDragging" : potential ? "isPotential" : ""}`, onDragEnter: (e) => {
25
+ const isPotentialStr = potential ? "isPotential" : "";
26
+ const isDraggingStr = isDragging ? "isDragging" : isPotentialStr;
27
+ return suppress ? (React.createElement(React.Fragment, null, children)) : (React.createElement("div", { className: `dropZone ${isDraggingStr}`, onDragEnter: (e) => {
26
28
  preventDefaults(e);
27
29
  setIsDragging(true);
28
30
  }, onDragLeave: (e) => {
@@ -1 +1 @@
1
- {"version":3,"file":"DropZone.js","sourceRoot":"","sources":["../../../src/components/common/DropZone.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,qBAAqB,CAAC;AAsB7B,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,GAAG,KAAK,EAAiB,EAAE,EAAE;IACtF,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAEjD,MAAM,eAAe,GAAG,CAAC,CAA0D,EAAE,EAAE;QACtF,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC,eAAe,EAAE,CAAC;IACrB,CAAC,CAAC;IAIF,IAAI,SAAS,EAAE;QAId,IAAI,OAAO,GAA0B,IAAI,CAAC;QAC1C,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE;YAC3C,eAAe,CAAC,CAAC,CAAC,CAAC;YACnB,YAAY,CAAC,IAAI,CAAC,CAAC;YAGnB,IAAI,OAAO,KAAK,IAAI,EAAE;gBACrB,YAAY,CAAC,OAAO,CAAC,CAAC;aACtB;YAGD,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBAEzB,YAAY,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC,EAAE,GAAG,CAAC,CAAC;QAET,CAAC,CAAC,CAAC;QACH,YAAY,CAAC,KAAK,CAAC,CAAC;KACpB;IAED,OAAO,QAAQ,CAAC,CAAC,CAAC,CACjB,0CAAG,QAAQ,CAAI,CACf,CAAC,CAAC,CAAC,CACH,6BACC,SAAS,EAAE,YAAY,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,EACnF,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE;YAClB,eAAe,CAAC,CAAC,CAAC,CAAC;YACnB,aAAa,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC,EACD,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE;YAClB,eAAe,CAAC,CAAC,CAAC,CAAC;YACnB,aAAa,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC,EACD,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;YACb,aAAa,CAAC,KAAK,CAAC,CAAC;YAErB,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,YAAY,CAAC;YACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACtC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;oBACtB,SAAS;iBACT;gBACD,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aACzB;YAED,eAAe,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC,IAEA,QAAQ,CACJ,CACN,CAAC;AACH,CAAC,CAAC","sourcesContent":["import React, { useState } from \"react\";\nimport \"./css/drop-zone.css\";\n\n// Electron adds File.path\nexport type FileWithPath = File & { path?: string };\n\nexport type DropZoneProps = {\n\tchildren: React.ReactNode;\n\tprocessFile: (fileObj: FileWithPath, index: number) => void;\n\tsuppress?: boolean;\n};\n\n/***\n * Component that serves as a drop zone. It also keeps track of visual concerns and event handlers for\n * drag-and-drop.\n *\n * The DropZone component is intended to be a container element for other elements, such as text, lists,\n * images, input elements, etc.\n *\n * @callback processFile - This function will be called for each file that is dropped in the dropzone.\n * @param {ReactNode} children - React will fill this in.\n * @param {boolean} suppress=false - If the dropzone-ness should be suppressed, which would turn this container into just a div\n */\nexport const DropZone = ({ processFile, children, suppress = false }: DropZoneProps) => {\n\tconst [isDragging, setIsDragging] = useState(false);\n\tconst [potential, setPotential] = useState(false);\n\tconst [singleton, setSingleton] = useState(true);\n\n\tconst preventDefaults = (e: { preventDefault: Function; stopPropagation: Function }) => {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t};\n\n\t// Check if something is being dragged somewhere on the page\n\t// If dragging is happening on the page, there will be a visual indication for potential drop zone\n\tif (singleton) {\n\t\t// \"dragenter\" and \"dragleave\" events are fired off of every single child element, and counting them isn't reliable\n\t\t// so, when \"dragover\" events are fired, we know dragging is happening.\n\t\t// we will wait 100ms after the last \"dragover\" event is fired, and then turn off the potential zone.\n\t\tlet timeout: NodeJS.Timeout | null = null;\n\t\tdocument.addEventListener(\"dragover\", (e) => {\n\t\t\tpreventDefaults(e);\n\t\t\tsetPotential(true);\n\n\t\t\t// If timeout was previously set, clear it\n\t\t\tif (timeout !== null) {\n\t\t\t\tclearTimeout(timeout);\n\t\t\t}\n\n\t\t\t// Set a new timeout, now that we've gotten a new dragover event\n\t\t\ttimeout = setTimeout(() => {\n\t\t\t\t// If it's been 100ms and no dragover event has been fired, assume the user isn't dragging anymore.\n\t\t\t\tsetPotential(false);\n\t\t\t}, 100); // 100ms was chosen by trial and error.\n\t\t\t// 10ms was too little time, and caused flicker. 100ms doesn't have a flicker, and turns off potential without a noticeable delay\n\t\t});\n\t\tsetSingleton(false);\n\t}\n\n\treturn suppress ? (\n\t\t<>{children}</>\n\t) : (\n\t\t<div\n\t\t\tclassName={`dropZone ${isDragging ? \"isDragging\" : potential ? \"isPotential\" : \"\"}`}\n\t\t\tonDragEnter={(e) => {\n\t\t\t\tpreventDefaults(e);\n\t\t\t\tsetIsDragging(true);\n\t\t\t}}\n\t\t\tonDragLeave={(e) => {\n\t\t\t\tpreventDefaults(e);\n\t\t\t\tsetIsDragging(false);\n\t\t\t}}\n\t\t\tonDrop={(e) => {\n\t\t\t\tsetIsDragging(false);\n\n\t\t\t\tconst { files } = e.dataTransfer;\n\t\t\t\tfor (let i = 0; i < files.length; i++) {\n\t\t\t\t\tif (files[i] === null) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tprocessFile(files[i], i);\n\t\t\t\t}\n\n\t\t\t\tpreventDefaults(e);\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</div>\n\t);\n};\n"]}
1
+ {"version":3,"file":"DropZone.js","sourceRoot":"","sources":["../../../src/components/common/DropZone.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,qBAAqB,CAAC;AAsB7B,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,GAAG,KAAK,EAAiB,EAAE,EAAE;IACtF,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAEjD,MAAM,eAAe,GAAG,CAAC,CAA0D,EAAE,EAAE;QACtF,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC,eAAe,EAAE,CAAC;IACrB,CAAC,CAAC;IAIF,IAAI,SAAS,EAAE;QAId,IAAI,OAAO,GAA0B,IAAI,CAAC;QAC1C,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE;YAC3C,eAAe,CAAC,CAAC,CAAC,CAAC;YACnB,YAAY,CAAC,IAAI,CAAC,CAAC;YAGnB,IAAI,OAAO,KAAK,IAAI,EAAE;gBACrB,YAAY,CAAC,OAAO,CAAC,CAAC;aACtB;YAGD,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBAEzB,YAAY,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC,EAAE,GAAG,CAAC,CAAC;QAET,CAAC,CAAC,CAAC;QACH,YAAY,CAAC,KAAK,CAAC,CAAC;KACpB;IAED,MAAM,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IACtD,MAAM,aAAa,GAAG,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC;IAEjE,OAAO,QAAQ,CAAC,CAAC,CAAC,CACjB,0CAAG,QAAQ,CAAI,CACf,CAAC,CAAC,CAAC,CACH,6BACC,SAAS,EAAE,YAAY,aAAa,EAAE,EACtC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE;YAClB,eAAe,CAAC,CAAC,CAAC,CAAC;YACnB,aAAa,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC,EACD,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE;YAClB,eAAe,CAAC,CAAC,CAAC,CAAC;YACnB,aAAa,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC,EACD,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;YACb,aAAa,CAAC,KAAK,CAAC,CAAC;YAErB,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,YAAY,CAAC;YACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACtC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;oBACtB,SAAS;iBACT;gBACD,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aACzB;YAED,eAAe,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC,IAEA,QAAQ,CACJ,CACN,CAAC;AACH,CAAC,CAAC","sourcesContent":["import React, { useState } from \"react\";\nimport \"./css/drop-zone.css\";\n\n// Electron adds File.path\nexport type FileWithPath = File & { path?: string };\n\nexport type DropZoneProps = {\n\tchildren: React.ReactNode;\n\tprocessFile: (fileObj: FileWithPath, index: number) => void;\n\tsuppress?: boolean;\n};\n\n/***\n * Component that serves as a drop zone. It also keeps track of visual concerns and event handlers for\n * drag-and-drop.\n *\n * The DropZone component is intended to be a container element for other elements, such as text, lists,\n * images, input elements, etc.\n *\n * @callback processFile - This function will be called for each file that is dropped in the dropzone.\n * @param {ReactNode} children - React will fill this in.\n * @param {boolean} suppress=false - If the dropzone-ness should be suppressed, which would turn this container into just a div\n */\nexport const DropZone = ({ processFile, children, suppress = false }: DropZoneProps) => {\n\tconst [isDragging, setIsDragging] = useState(false);\n\tconst [potential, setPotential] = useState(false);\n\tconst [singleton, setSingleton] = useState(true);\n\n\tconst preventDefaults = (e: { preventDefault: Function; stopPropagation: Function }) => {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t};\n\n\t// Check if something is being dragged somewhere on the page\n\t// If dragging is happening on the page, there will be a visual indication for potential drop zone\n\tif (singleton) {\n\t\t// \"dragenter\" and \"dragleave\" events are fired off of every single child element, and counting them isn't reliable\n\t\t// so, when \"dragover\" events are fired, we know dragging is happening.\n\t\t// we will wait 100ms after the last \"dragover\" event is fired, and then turn off the potential zone.\n\t\tlet timeout: NodeJS.Timeout | null = null;\n\t\tdocument.addEventListener(\"dragover\", (e) => {\n\t\t\tpreventDefaults(e);\n\t\t\tsetPotential(true);\n\n\t\t\t// If timeout was previously set, clear it\n\t\t\tif (timeout !== null) {\n\t\t\t\tclearTimeout(timeout);\n\t\t\t}\n\n\t\t\t// Set a new timeout, now that we've gotten a new dragover event\n\t\t\ttimeout = setTimeout(() => {\n\t\t\t\t// If it's been 100ms and no dragover event has been fired, assume the user isn't dragging anymore.\n\t\t\t\tsetPotential(false);\n\t\t\t}, 100); // 100ms was chosen by trial and error.\n\t\t\t// 10ms was too little time, and caused flicker. 100ms doesn't have a flicker, and turns off potential without a noticeable delay\n\t\t});\n\t\tsetSingleton(false);\n\t}\n\n\tconst isPotentialStr = potential ? \"isPotential\" : \"\";\n\tconst isDraggingStr = isDragging ? \"isDragging\" : isPotentialStr;\n\n\treturn suppress ? (\n\t\t<>{children}</>\n\t) : (\n\t\t<div\n\t\t\tclassName={`dropZone ${isDraggingStr}`}\n\t\t\tonDragEnter={(e) => {\n\t\t\t\tpreventDefaults(e);\n\t\t\t\tsetIsDragging(true);\n\t\t\t}}\n\t\t\tonDragLeave={(e) => {\n\t\t\t\tpreventDefaults(e);\n\t\t\t\tsetIsDragging(false);\n\t\t\t}}\n\t\t\tonDrop={(e) => {\n\t\t\t\tsetIsDragging(false);\n\n\t\t\t\tconst { files } = e.dataTransfer;\n\t\t\t\tfor (let i = 0; i < files.length; i++) {\n\t\t\t\t\tif (files[i] === null) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tprocessFile(files[i], i);\n\t\t\t\t}\n\n\t\t\t\tpreventDefaults(e);\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</div>\n\t);\n};\n"]}
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
2
  import "./css/icon.css";
3
- export declare type FinsembleIconType = "alwaysOnTop" | "caret" | "check-square" | "check" | "chevron-left" | "chevron-right" | "close" | "copy" | "documentation" | "exclamation-circle" | "external-link" | "flag" | "folder" | "font" | "globe" | "hdd" | "key" | "life-ring" | "linker" | "lock" | "magic" | "maximize" | "minimize" | "moon" | "paint-roller" | "pencil" | "plus" | "question-circle" | "search" | "sun" | "times" | "toggle-off" | "toggle-on" | "toolbar" | "tools" | "trash" | "upload" | "window";
3
+ export declare type FinsembleIconType = "alwaysOnTop" | "caret" | "check-square" | "check" | "chevron-left" | "chevron-right" | "close" | "code-block" | "copy" | "documentation" | "exclamation-circle" | "external-link" | "flag" | "folder" | "font" | "globe" | "hdd" | "key" | "life-ring" | "linker" | "lock" | "magic" | "maximize" | "minimize" | "moon" | "paint-roller" | "pencil" | "plus" | "question-circle" | "search" | "sun" | "times" | "toggle-off" | "toggle-on" | "toolbar" | "tools" | "trash" | "upload" | "window";
4
4
  export declare type FinsembleIconProps = {
5
5
  icon: FinsembleIconType;
6
6
  className?: string;
@@ -7,6 +7,7 @@ import { ReactComponent as CheckSquare } from "../../assets/icons/check-square.s
7
7
  import { ReactComponent as ChevronLeftIcon } from "../../assets/icons/chevron-left.svg";
8
8
  import { ReactComponent as ChevronRightIcon } from "../../assets/icons/chevron-right.svg";
9
9
  import { ReactComponent as CloseIcon } from "../../assets/icons/close.svg";
10
+ import { ReactComponent as CodeBlockIcon } from "../../assets/icons/code-block.svg";
10
11
  import { ReactComponent as CopyIcon } from "../../assets/icons/copy.svg";
11
12
  import { ReactComponent as DocumentationIcon } from "../../assets/icons/documentation.svg";
12
13
  import { ReactComponent as ExclaimationCircleIcon } from "../../assets/icons/exclamation-circle.svg";
@@ -46,6 +47,7 @@ const icons = {
46
47
  "chevron-left": ChevronLeftIcon,
47
48
  "chevron-right": ChevronRightIcon,
48
49
  close: CloseIcon,
50
+ "code-block": CodeBlockIcon,
49
51
  copy: CopyIcon,
50
52
  documentation: DocumentationIcon,
51
53
  "exclamation-circle": ExclaimationCircleIcon,
@@ -1 +1 @@
1
- {"version":3,"file":"FinsembleIcon.js","sourceRoot":"","sources":["../../../src/components/common/FinsembleIcon.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport \"./css/icon.css\";\nimport { ReactComponent as AlwaysOnTopIcon } from \"../../assets/icons/always-on-top.svg\";\nimport { ReactComponent as Caret } from \"../../assets/icons/caret.svg\";\nimport { ReactComponent as CheckIcon } from \"../../assets/icons/check.svg\";\nimport { ReactComponent as CheckSquare } from \"../../assets/icons/check-square.svg\";\nimport { ReactComponent as ChevronLeftIcon } from \"../../assets/icons/chevron-left.svg\";\nimport { ReactComponent as ChevronRightIcon } from \"../../assets/icons/chevron-right.svg\";\nimport { ReactComponent as CloseIcon } from \"../../assets/icons/close.svg\";\nimport { ReactComponent as CopyIcon } from \"../../assets/icons/copy.svg\";\nimport { ReactComponent as DocumentationIcon } from \"../../assets/icons/documentation.svg\";\nimport { ReactComponent as ExclaimationCircleIcon } from \"../../assets/icons/exclamation-circle.svg\";\nimport { ReactComponent as ExternalLinkIcon } from \"../../assets/icons/external-link.svg\";\nimport { ReactComponent as FlagIcon } from \"../../assets/icons/flag.svg\";\nimport { ReactComponent as FolderIcon } from \"../../assets/icons/folder.svg\";\nimport { ReactComponent as FontIcon } from \"../../assets/icons/font.svg\";\nimport { ReactComponent as GlobeIcon } from \"../../assets/icons/globe.svg\";\nimport { ReactComponent as HDDIcon } from \"../../assets/icons/hdd.svg\";\nimport { ReactComponent as KeyIcon } from \"../../assets/icons/key.svg\";\nimport { ReactComponent as LifeRingIcon } from \"../../assets/icons/life-ring.svg\";\nimport { ReactComponent as LinkerIcon } from \"../../assets/icons/linker.svg\";\nimport { ReactComponent as LockIcon } from \"../../assets/icons/lock.svg\";\nimport { ReactComponent as MagicIcon } from \"../../assets/icons/magic.svg\";\nimport { ReactComponent as MaximizeIcon } from \"../../assets/icons/maximize.svg\";\nimport { ReactComponent as MinimizeIcon } from \"../../assets/icons/minimize.svg\";\nimport { ReactComponent as MoonIcon } from \"../../assets/icons/moon.svg\";\nimport { ReactComponent as PaintRollerIcon } from \"../../assets/icons/paint-roller.svg\";\nimport { ReactComponent as PencilIcon } from \"../../assets/icons/pencil.svg\";\nimport { ReactComponent as PlusIcon } from \"../../assets/icons/plus.svg\";\nimport { ReactComponent as QuestionCircleIcon } from \"../../assets/icons/question-circle.svg\";\nimport { ReactComponent as SearchIcon } from \"../../assets/icons/search.svg\";\nimport { ReactComponent as SunIcon } from \"../../assets/icons/sun.svg\";\nimport { ReactComponent as TimesIcon } from \"../../assets/icons/times.svg\";\nimport { ReactComponent as ToggleOffIcon } from \"../../assets/icons/toggle-off.svg\";\nimport { ReactComponent as ToggleOnIcon } from \"../../assets/icons/toggle-on.svg\";\nimport { ReactComponent as ToolbarIcon } from \"../../assets/icons/toolbar.svg\";\nimport { ReactComponent as ToolsIcon } from \"../../assets/icons/tools.svg\";\nimport { ReactComponent as TrashIcon } from \"../../assets/icons/trash.svg\";\nimport { ReactComponent as UploadIcon } from \"../../assets/icons/upload.svg\";\nimport { ReactComponent as WindowIcon } from \"../../assets/icons/window.svg\";\n\nexport type FinsembleIconType =\n\t| \"alwaysOnTop\"\n\t| \"caret\"\n\t| \"check-square\"\n\t| \"check\"\n\t| \"chevron-left\"\n\t| \"chevron-right\"\n\t| \"close\"\n\t| \"copy\"\n\t| \"documentation\"\n\t| \"exclamation-circle\"\n\t| \"external-link\"\n\t| \"flag\"\n\t| \"folder\"\n\t| \"font\"\n\t| \"globe\"\n\t| \"hdd\"\n\t| \"key\"\n\t| \"life-ring\"\n\t| \"linker\"\n\t| \"lock\"\n\t| \"magic\"\n\t| \"maximize\"\n\t| \"minimize\"\n\t| \"moon\"\n\t| \"paint-roller\"\n\t| \"pencil\"\n\t| \"plus\"\n\t| \"question-circle\"\n\t| \"search\"\n\t| \"sun\"\n\t| \"times\"\n\t| \"toggle-off\"\n\t| \"toggle-on\"\n\t| \"toolbar\"\n\t| \"tools\"\n\t| \"trash\"\n\t| \"upload\"\n\t| \"window\";\n\ntype IconComponents = {\n\t[key in FinsembleIconType]: React.FunctionComponent<React.SVGProps<SVGSVGElement>>;\n};\n\nconst icons: IconComponents = {\n\talwaysOnTop: AlwaysOnTopIcon,\n\tcaret: Caret,\n\tcheck: CheckIcon,\n\t\"check-square\": CheckSquare,\n\t\"chevron-left\": ChevronLeftIcon,\n\t\"chevron-right\": ChevronRightIcon,\n\tclose: CloseIcon,\n\tcopy: CopyIcon,\n\tdocumentation: DocumentationIcon,\n\t\"exclamation-circle\": ExclaimationCircleIcon,\n\t\"external-link\": ExternalLinkIcon,\n\tflag: FlagIcon,\n\tfolder: FolderIcon,\n\tfont: FontIcon,\n\tglobe: GlobeIcon,\n\thdd: HDDIcon,\n\tkey: KeyIcon,\n\t\"life-ring\": LifeRingIcon,\n\tlinker: LinkerIcon,\n\tlock: LockIcon,\n\tmagic: MagicIcon,\n\tmaximize: MaximizeIcon,\n\tminimize: MinimizeIcon,\n\tmoon: MoonIcon,\n\t\"paint-roller\": PaintRollerIcon,\n\tpencil: PencilIcon,\n\tplus: PlusIcon,\n\t\"question-circle\": QuestionCircleIcon,\n\tsearch: SearchIcon,\n\tsun: SunIcon,\n\ttimes: TimesIcon,\n\t\"toggle-off\": ToggleOffIcon,\n\t\"toggle-on\": ToggleOnIcon,\n\ttoolbar: ToolbarIcon,\n\ttools: ToolsIcon,\n\ttrash: TrashIcon,\n\tupload: UploadIcon,\n\twindow: WindowIcon,\n};\n\nexport type FinsembleIconProps = {\n\ticon: FinsembleIconType;\n\tclassName?: string;\n\tonClick?: (e: React.MouseEvent) => void;\n};\n\nexport const FinsembleIcon = (props: FinsembleIconProps) => {\n\tconst Icon = icons[props.icon];\n\n\treturn (\n\t\t<span\n\t\t\tclassName={[\"finsemble-icon\", `finsemble-icon-${props.icon}`, props.className || \"\"].join(\" \")}\n\t\t\trole=\"img\"\n\t\t\taria-label={`${props.icon} icon`}\n\t\t\tonClick={(e) => props.onClick && props.onClick(e)}\n\t\t>\n\t\t\t{Icon && <Icon></Icon>}\n\t\t</span>\n\t);\n};\n"]}
1
+ {"version":3,"file":"FinsembleIcon.js","sourceRoot":"","sources":["../../../src/components/common/FinsembleIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,gBAAgB,CAAC;AACxB,OAAO,EAAE,cAAc,IAAI,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACzF,OAAO,EAAE,cAAc,IAAI,KAAK,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,cAAc,IAAI,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,cAAc,IAAI,WAAW,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EAAE,cAAc,IAAI,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACxF,OAAO,EAAE,cAAc,IAAI,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAC1F,OAAO,EAAE,cAAc,IAAI,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,cAAc,IAAI,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,EAAE,cAAc,IAAI,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,cAAc,IAAI,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAC3F,OAAO,EAAE,cAAc,IAAI,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AACrG,OAAO,EAAE,cAAc,IAAI,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAC1F,OAAO,EAAE,cAAc,IAAI,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,cAAc,IAAI,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,cAAc,IAAI,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,cAAc,IAAI,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,cAAc,IAAI,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,cAAc,IAAI,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,cAAc,IAAI,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAE,cAAc,IAAI,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,cAAc,IAAI,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,cAAc,IAAI,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,cAAc,IAAI,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACjF,OAAO,EAAE,cAAc,IAAI,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACjF,OAAO,EAAE,cAAc,IAAI,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,cAAc,IAAI,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACxF,OAAO,EAAE,cAAc,IAAI,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,cAAc,IAAI,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,cAAc,IAAI,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC9F,OAAO,EAAE,cAAc,IAAI,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,cAAc,IAAI,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,cAAc,IAAI,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,cAAc,IAAI,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,EAAE,cAAc,IAAI,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAE,cAAc,IAAI,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EAAE,cAAc,IAAI,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,cAAc,IAAI,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,cAAc,IAAI,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,cAAc,IAAI,UAAU,EAAE,MAAM,+BAA+B,CAAC;AA+C7E,MAAM,KAAK,GAAmB;IAC7B,WAAW,EAAE,eAAe;IAC5B,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,SAAS;IAChB,cAAc,EAAE,WAAW;IAC3B,cAAc,EAAE,eAAe;IAC/B,eAAe,EAAE,gBAAgB;IACjC,KAAK,EAAE,SAAS;IAChB,YAAY,EAAE,aAAa;IAC3B,IAAI,EAAE,QAAQ;IACd,aAAa,EAAE,iBAAiB;IAChC,oBAAoB,EAAE,sBAAsB;IAC5C,eAAe,EAAE,gBAAgB;IACjC,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,UAAU;IAClB,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,SAAS;IAChB,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,OAAO;IACZ,WAAW,EAAE,YAAY;IACzB,MAAM,EAAE,UAAU;IAClB,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,YAAY;IACtB,QAAQ,EAAE,YAAY;IACtB,IAAI,EAAE,QAAQ;IACd,cAAc,EAAE,eAAe;IAC/B,MAAM,EAAE,UAAU;IAClB,IAAI,EAAE,QAAQ;IACd,iBAAiB,EAAE,kBAAkB;IACrC,MAAM,EAAE,UAAU;IAClB,GAAG,EAAE,OAAO;IACZ,KAAK,EAAE,SAAS;IAChB,YAAY,EAAE,aAAa;IAC3B,WAAW,EAAE,YAAY;IACzB,OAAO,EAAE,WAAW;IACpB,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,UAAU;IAClB,MAAM,EAAE,UAAU;CAClB,CAAC;AAQF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAyB,EAAE,EAAE;IAC1D,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE/B,OAAO,CACN,8BACC,SAAS,EAAE,CAAC,gBAAgB,EAAE,kBAAkB,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAC9F,IAAI,EAAC,KAAK,gBACE,GAAG,KAAK,CAAC,IAAI,OAAO,EAChC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAEhD,IAAI,IAAI,oBAAC,IAAI,OAAQ,CAChB,CACP,CAAC;AACH,CAAC,CAAC","sourcesContent":["import React from \"react\";\nimport \"./css/icon.css\";\nimport { ReactComponent as AlwaysOnTopIcon } from \"../../assets/icons/always-on-top.svg\";\nimport { ReactComponent as Caret } from \"../../assets/icons/caret.svg\";\nimport { ReactComponent as CheckIcon } from \"../../assets/icons/check.svg\";\nimport { ReactComponent as CheckSquare } from \"../../assets/icons/check-square.svg\";\nimport { ReactComponent as ChevronLeftIcon } from \"../../assets/icons/chevron-left.svg\";\nimport { ReactComponent as ChevronRightIcon } from \"../../assets/icons/chevron-right.svg\";\nimport { ReactComponent as CloseIcon } from \"../../assets/icons/close.svg\";\nimport { ReactComponent as CodeBlockIcon } from \"../../assets/icons/code-block.svg\";\nimport { ReactComponent as CopyIcon } from \"../../assets/icons/copy.svg\";\nimport { ReactComponent as DocumentationIcon } from \"../../assets/icons/documentation.svg\";\nimport { ReactComponent as ExclaimationCircleIcon } from \"../../assets/icons/exclamation-circle.svg\";\nimport { ReactComponent as ExternalLinkIcon } from \"../../assets/icons/external-link.svg\";\nimport { ReactComponent as FlagIcon } from \"../../assets/icons/flag.svg\";\nimport { ReactComponent as FolderIcon } from \"../../assets/icons/folder.svg\";\nimport { ReactComponent as FontIcon } from \"../../assets/icons/font.svg\";\nimport { ReactComponent as GlobeIcon } from \"../../assets/icons/globe.svg\";\nimport { ReactComponent as HDDIcon } from \"../../assets/icons/hdd.svg\";\nimport { ReactComponent as KeyIcon } from \"../../assets/icons/key.svg\";\nimport { ReactComponent as LifeRingIcon } from \"../../assets/icons/life-ring.svg\";\nimport { ReactComponent as LinkerIcon } from \"../../assets/icons/linker.svg\";\nimport { ReactComponent as LockIcon } from \"../../assets/icons/lock.svg\";\nimport { ReactComponent as MagicIcon } from \"../../assets/icons/magic.svg\";\nimport { ReactComponent as MaximizeIcon } from \"../../assets/icons/maximize.svg\";\nimport { ReactComponent as MinimizeIcon } from \"../../assets/icons/minimize.svg\";\nimport { ReactComponent as MoonIcon } from \"../../assets/icons/moon.svg\";\nimport { ReactComponent as PaintRollerIcon } from \"../../assets/icons/paint-roller.svg\";\nimport { ReactComponent as PencilIcon } from \"../../assets/icons/pencil.svg\";\nimport { ReactComponent as PlusIcon } from \"../../assets/icons/plus.svg\";\nimport { ReactComponent as QuestionCircleIcon } from \"../../assets/icons/question-circle.svg\";\nimport { ReactComponent as SearchIcon } from \"../../assets/icons/search.svg\";\nimport { ReactComponent as SunIcon } from \"../../assets/icons/sun.svg\";\nimport { ReactComponent as TimesIcon } from \"../../assets/icons/times.svg\";\nimport { ReactComponent as ToggleOffIcon } from \"../../assets/icons/toggle-off.svg\";\nimport { ReactComponent as ToggleOnIcon } from \"../../assets/icons/toggle-on.svg\";\nimport { ReactComponent as ToolbarIcon } from \"../../assets/icons/toolbar.svg\";\nimport { ReactComponent as ToolsIcon } from \"../../assets/icons/tools.svg\";\nimport { ReactComponent as TrashIcon } from \"../../assets/icons/trash.svg\";\nimport { ReactComponent as UploadIcon } from \"../../assets/icons/upload.svg\";\nimport { ReactComponent as WindowIcon } from \"../../assets/icons/window.svg\";\n\nexport type FinsembleIconType =\n\t| \"alwaysOnTop\"\n\t| \"caret\"\n\t| \"check-square\"\n\t| \"check\"\n\t| \"chevron-left\"\n\t| \"chevron-right\"\n\t| \"close\"\n\t| \"code-block\"\n\t| \"copy\"\n\t| \"documentation\"\n\t| \"exclamation-circle\"\n\t| \"external-link\"\n\t| \"flag\"\n\t| \"folder\"\n\t| \"font\"\n\t| \"globe\"\n\t| \"hdd\"\n\t| \"key\"\n\t| \"life-ring\"\n\t| \"linker\"\n\t| \"lock\"\n\t| \"magic\"\n\t| \"maximize\"\n\t| \"minimize\"\n\t| \"moon\"\n\t| \"paint-roller\"\n\t| \"pencil\"\n\t| \"plus\"\n\t| \"question-circle\"\n\t| \"search\"\n\t| \"sun\"\n\t| \"times\"\n\t| \"toggle-off\"\n\t| \"toggle-on\"\n\t| \"toolbar\"\n\t| \"tools\"\n\t| \"trash\"\n\t| \"upload\"\n\t| \"window\";\n\ntype IconComponents = {\n\t[key in FinsembleIconType]: React.FunctionComponent<React.SVGProps<SVGSVGElement>>;\n};\n\nconst icons: IconComponents = {\n\talwaysOnTop: AlwaysOnTopIcon,\n\tcaret: Caret,\n\tcheck: CheckIcon,\n\t\"check-square\": CheckSquare,\n\t\"chevron-left\": ChevronLeftIcon,\n\t\"chevron-right\": ChevronRightIcon,\n\tclose: CloseIcon,\n\t\"code-block\": CodeBlockIcon,\n\tcopy: CopyIcon,\n\tdocumentation: DocumentationIcon,\n\t\"exclamation-circle\": ExclaimationCircleIcon,\n\t\"external-link\": ExternalLinkIcon,\n\tflag: FlagIcon,\n\tfolder: FolderIcon,\n\tfont: FontIcon,\n\tglobe: GlobeIcon,\n\thdd: HDDIcon,\n\tkey: KeyIcon,\n\t\"life-ring\": LifeRingIcon,\n\tlinker: LinkerIcon,\n\tlock: LockIcon,\n\tmagic: MagicIcon,\n\tmaximize: MaximizeIcon,\n\tminimize: MinimizeIcon,\n\tmoon: MoonIcon,\n\t\"paint-roller\": PaintRollerIcon,\n\tpencil: PencilIcon,\n\tplus: PlusIcon,\n\t\"question-circle\": QuestionCircleIcon,\n\tsearch: SearchIcon,\n\tsun: SunIcon,\n\ttimes: TimesIcon,\n\t\"toggle-off\": ToggleOffIcon,\n\t\"toggle-on\": ToggleOnIcon,\n\ttoolbar: ToolbarIcon,\n\ttools: ToolsIcon,\n\ttrash: TrashIcon,\n\tupload: UploadIcon,\n\twindow: WindowIcon,\n};\n\nexport type FinsembleIconProps = {\n\ticon: FinsembleIconType;\n\tclassName?: string;\n\tonClick?: (e: React.MouseEvent) => void;\n};\n\nexport const FinsembleIcon = (props: FinsembleIconProps) => {\n\tconst Icon = icons[props.icon];\n\n\treturn (\n\t\t<span\n\t\t\tclassName={[\"finsemble-icon\", `finsemble-icon-${props.icon}`, props.className || \"\"].join(\" \")}\n\t\t\trole=\"img\"\n\t\t\taria-label={`${props.icon} icon`}\n\t\t\tonClick={(e) => props.onClick && props.onClick(e)}\n\t\t>\n\t\t\t{Icon && <Icon></Icon>}\n\t\t</span>\n\t);\n};\n"]}
@@ -42,7 +42,7 @@ export const FinsembleSelect = ({ options, optionComponents, updateCallback, sel
42
42
  showSearch && (React.createElement(React.Fragment, null,
43
43
  React.createElement(FinsembleIcon, { className: "searchIcon", icon: "search" }),
44
44
  React.createElement("input", { type: "text", placeholder: "Search", "aria-label": "search", className: "search", onInput: updateSearch }))),
45
- React.createElement("select", { className: "shogunSelect", multiple: true, onChange: changeHandler }, displayOptions.map(({ option, value }, index) => (React.createElement("option", { key: `shogun-option-${index}`, value: value }, option)))),
45
+ React.createElement("select", { "aria-hidden": "true", className: "shogunSelect", multiple: true, onChange: changeHandler }, displayOptions.map(({ option, value }, index) => (React.createElement("option", { key: `shogun-option-${index}`, value: value }, option)))),
46
46
  React.createElement("div", { className: "emperorSelect", style: height === "" ? {} : { height } }, displayOptions.map(({ option, value }, index) => (React.createElement("div", { className: "emperorOption", key: `emperor-option-${index}` },
47
47
  React.createElement("label", null,
48
48
  React.createElement(FinsembleToggle, { checked: selectedOptions.includes(value) || selected.includes(value), onChange: () => {
@@ -1 +1 @@
1
- {"version":3,"file":"FinsembleSelect.js","sourceRoot":"","sources":["../../../src/components/common/FinsembleSelect.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useState, ReactNode } from \"react\";\nimport \"./css/selector.css\";\nimport { FinsembleIcon } from \"./FinsembleIcon\";\nimport { FinsembleToggle } from \"./FinsembleToggle\";\n\nconst heightMultiplier = 40; // It works in storybook, but we will probably want a better way of detecting this soon.\n\nconst removeItem = (startingArray: string[], removableItem: string) => {\n\tconst removableIndex = startingArray.indexOf(removableItem);\n\tif (removableIndex < 0) {\n\t\treturn startingArray;\n\t}\n\treturn startingArray.slice(0, removableIndex).concat(startingArray.slice(removableIndex + 1));\n};\n\nexport interface FinsembleSelectProps {\n\toptions: string[];\n\toptionComponents?: ReactNode[];\n\tvalues?: string[];\n\tselected?: string[];\n\tsize?: number;\n\tupdateCallback: (selectedValues: string[]) => void;\n\tshowSearch?: boolean;\n\tlimit?: number;\n}\n\nexport const FinsembleSelect = ({\n\toptions,\n\toptionComponents,\n\tupdateCallback,\n\tselected = [],\n\tsize,\n\tvalues = options,\n\tshowSearch = false,\n\tlimit = Infinity,\n}: FinsembleSelectProps) => {\n\tconst mappedOptions = options.map((option, index) => {\n\t\treturn { option, value: values[index] };\n\t});\n\tconst [selectedOptions, setSelectedOptions] = useState<string[]>(selected);\n\tconst [displayOptions, setDisplayOptions] = useState(mappedOptions);\n\n\t// Magic numbers\n\tconst height = size ? heightMultiplier * size : \"\";\n\n\t// Updating consumer\n\tconst doSetSelectedOptions = (opts: string[]) => {\n\t\tif (opts.length > limit) {\n\t\t\topts = opts.slice(limit * -1);\n\t\t}\n\n\t\tif (JSON.stringify(opts) !== JSON.stringify(selectedOptions)) {\n\t\t\tupdateCallback(opts);\n\t\t}\n\t\tsetSelectedOptions(opts);\n\t};\n\n\t// Event handlers\n\tconst changeHandler = (e: any) => {\n\t\tdoSetSelectedOptions(Array.from(e.target.selectedOptions).map((option: any) => option.value));\n\t};\n\n\tconst updateSearch = (e: React.KeyboardEvent<HTMLInputElement>) => {\n\t\t// TS doesn't complain if I use .currentTarget, but then I can't use Enzyme to test it, so here we are\n\t\tconst searchString = (e.target as HTMLInputElement).value;\n\t\tsetDisplayOptions(\n\t\t\tmappedOptions\n\t\t\t\t.filter((optionMap) => optionMap.option.toUpperCase().includes(searchString.toUpperCase()))\n\t\t\t\t.map((combination) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...combination,\n\t\t\t\t\t\toption: combination.option.replace(\n\t\t\t\t\t\t\tnew RegExp(`(${searchString})`, \"i\"),\n\t\t\t\t\t\t\t`<span class=\"highlight\">$1</span>`\n\t\t\t\t\t\t),\n\t\t\t\t\t};\n\t\t\t\t})\n\t\t);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<div className=\"emperorSelectContainer\">\n\t\t\t\t{showSearch && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<FinsembleIcon className=\"searchIcon\" icon=\"search\"></FinsembleIcon>\n\t\t\t\t\t\t<input type=\"text\" placeholder=\"Search\" aria-label=\"search\" className=\"search\" onInput={updateSearch} />\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t\t<select className=\"shogunSelect\" multiple onChange={changeHandler}>\n\t\t\t\t\t{displayOptions.map(({ option, value }, index: number) => (\n\t\t\t\t\t\t<option key={`shogun-option-${index}`} value={value}>\n\t\t\t\t\t\t\t{option}\n\t\t\t\t\t\t</option>\n\t\t\t\t\t))}\n\t\t\t\t</select>\n\t\t\t\t<div className=\"emperorSelect\" style={height === \"\" ? {} : { height }}>\n\t\t\t\t\t{displayOptions.map(({ option, value }, index: number) => (\n\t\t\t\t\t\t<div className=\"emperorOption\" key={`emperor-option-${index}`}>\n\t\t\t\t\t\t\t<label>\n\t\t\t\t\t\t\t\t<FinsembleToggle\n\t\t\t\t\t\t\t\t\tchecked={selectedOptions.includes(value) || selected.includes(value)}\n\t\t\t\t\t\t\t\t\tonChange={() => {\n\t\t\t\t\t\t\t\t\t\tif (selectedOptions.includes(value) || selected.includes(value)) {\n\t\t\t\t\t\t\t\t\t\t\tdoSetSelectedOptions(removeItem(selectedOptions, value));\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tdoSetSelectedOptions(selectedOptions.concat([value]));\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t></FinsembleToggle>\n\t\t\t\t\t\t\t\t{optionComponents?.[index] ? (\n\t\t\t\t\t\t\t\t\toptionComponents?.[index]\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<span dangerouslySetInnerHTML={{ __html: option }}></span>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</>\n\t);\n};\n"]}
1
+ {"version":3,"file":"FinsembleSelect.js","sourceRoot":"","sources":["../../../src/components/common/FinsembleSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAa,MAAM,OAAO,CAAC;AACnD,OAAO,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAE5B,MAAM,UAAU,GAAG,CAAC,aAAuB,EAAE,aAAqB,EAAE,EAAE;IACrE,MAAM,cAAc,GAAG,aAAa,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC5D,IAAI,cAAc,GAAG,CAAC,EAAE;QACvB,OAAO,aAAa,CAAC;KACrB;IACD,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC;AAC/F,CAAC,CAAC;AAaF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAC/B,OAAO,EACP,gBAAgB,EAChB,cAAc,EACd,QAAQ,GAAG,EAAE,EACb,IAAI,EACJ,MAAM,GAAG,OAAO,EAChB,UAAU,GAAG,KAAK,EAClB,KAAK,GAAG,QAAQ,GACM,EAAE,EAAE;IAC1B,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QACnD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IACzC,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAW,QAAQ,CAAC,CAAC;IAC3E,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;IAGpE,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAGnD,MAAM,oBAAoB,GAAG,CAAC,IAAc,EAAE,EAAE;QAC/C,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,EAAE;YACxB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;SAC9B;QAED,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE;YAC7D,cAAc,CAAC,IAAI,CAAC,CAAC;SACrB;QACD,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC;IAGF,MAAM,aAAa,GAAG,CAAC,CAAM,EAAE,EAAE;QAChC,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,MAAW,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/F,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,CAAC,CAAwC,EAAE,EAAE;QAEjE,MAAM,YAAY,GAAI,CAAC,CAAC,MAA2B,CAAC,KAAK,CAAC;QAC1D,iBAAiB,CAChB,aAAa;aACX,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;aAC1F,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE;YACpB,uCACI,WAAW,KACd,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,OAAO,CACjC,IAAI,MAAM,CAAC,IAAI,YAAY,GAAG,EAAE,GAAG,CAAC,EACpC,mCAAmC,CACnC,IACA;QACH,CAAC,CAAC,CACH,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACN;QACC,6BAAK,SAAS,EAAC,wBAAwB;YACrC,UAAU,IAAI,CACd;gBACC,oBAAC,aAAa,IAAC,SAAS,EAAC,YAAY,EAAC,IAAI,EAAC,QAAQ,GAAiB;gBACpE,+BAAO,IAAI,EAAC,MAAM,EAAC,WAAW,EAAC,QAAQ,gBAAY,QAAQ,EAAC,SAAS,EAAC,QAAQ,EAAC,OAAO,EAAE,YAAY,GAAI,CACtG,CACH;YACD,+CAAoB,MAAM,EAAC,SAAS,EAAC,cAAc,EAAC,QAAQ,QAAC,QAAQ,EAAE,aAAa,IAClF,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,KAAa,EAAE,EAAE,CAAC,CACzD,gCAAQ,GAAG,EAAE,iBAAiB,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,IACjD,MAAM,CACC,CACT,CAAC,CACM;YACT,6BAAK,SAAS,EAAC,eAAe,EAAC,KAAK,EAAE,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IACnE,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,KAAa,EAAE,EAAE,CAAC,CACzD,6BAAK,SAAS,EAAC,eAAe,EAAC,GAAG,EAAE,kBAAkB,KAAK,EAAE;gBAC5D;oBACC,oBAAC,eAAe,IACf,OAAO,EAAE,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EACpE,QAAQ,EAAE,GAAG,EAAE;4BACd,IAAI,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gCAChE,oBAAoB,CAAC,UAAU,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC;6BACzD;iCAAM;gCACN,oBAAoB,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;6BACtD;wBACF,CAAC,GACiB;oBAClB,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAG,KAAK,CAAC,EAAC,CAAC,CAAC,CAC5B,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAG,KAAK,CAAC,CACzB,CAAC,CAAC,CAAC,CACH,8BAAM,uBAAuB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAS,CAC1D,CACM,CACH,CACN,CAAC,CACG,CACD,CACJ,CACH,CAAC;AACH,CAAC,CAAC","sourcesContent":["import React, { useState, ReactNode } from \"react\";\nimport \"./css/selector.css\";\nimport { FinsembleIcon } from \"./FinsembleIcon\";\nimport { FinsembleToggle } from \"./FinsembleToggle\";\n\nconst heightMultiplier = 40; // It works in storybook, but we will probably want a better way of detecting this soon.\n\nconst removeItem = (startingArray: string[], removableItem: string) => {\n\tconst removableIndex = startingArray.indexOf(removableItem);\n\tif (removableIndex < 0) {\n\t\treturn startingArray;\n\t}\n\treturn startingArray.slice(0, removableIndex).concat(startingArray.slice(removableIndex + 1));\n};\n\nexport interface FinsembleSelectProps {\n\toptions: string[];\n\toptionComponents?: ReactNode[];\n\tvalues?: string[];\n\tselected?: string[];\n\tsize?: number;\n\tupdateCallback: (selectedValues: string[]) => void;\n\tshowSearch?: boolean;\n\tlimit?: number;\n}\n\nexport const FinsembleSelect = ({\n\toptions,\n\toptionComponents,\n\tupdateCallback,\n\tselected = [],\n\tsize,\n\tvalues = options,\n\tshowSearch = false,\n\tlimit = Infinity,\n}: FinsembleSelectProps) => {\n\tconst mappedOptions = options.map((option, index) => {\n\t\treturn { option, value: values[index] };\n\t});\n\tconst [selectedOptions, setSelectedOptions] = useState<string[]>(selected);\n\tconst [displayOptions, setDisplayOptions] = useState(mappedOptions);\n\n\t// Magic numbers\n\tconst height = size ? heightMultiplier * size : \"\";\n\n\t// Updating consumer\n\tconst doSetSelectedOptions = (opts: string[]) => {\n\t\tif (opts.length > limit) {\n\t\t\topts = opts.slice(limit * -1);\n\t\t}\n\n\t\tif (JSON.stringify(opts) !== JSON.stringify(selectedOptions)) {\n\t\t\tupdateCallback(opts);\n\t\t}\n\t\tsetSelectedOptions(opts);\n\t};\n\n\t// Event handlers\n\tconst changeHandler = (e: any) => {\n\t\tdoSetSelectedOptions(Array.from(e.target.selectedOptions).map((option: any) => option.value));\n\t};\n\n\tconst updateSearch = (e: React.KeyboardEvent<HTMLInputElement>) => {\n\t\t// TS doesn't complain if I use .currentTarget, but then I can't use Enzyme to test it, so here we are\n\t\tconst searchString = (e.target as HTMLInputElement).value;\n\t\tsetDisplayOptions(\n\t\t\tmappedOptions\n\t\t\t\t.filter((optionMap) => optionMap.option.toUpperCase().includes(searchString.toUpperCase()))\n\t\t\t\t.map((combination) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...combination,\n\t\t\t\t\t\toption: combination.option.replace(\n\t\t\t\t\t\t\tnew RegExp(`(${searchString})`, \"i\"),\n\t\t\t\t\t\t\t`<span class=\"highlight\">$1</span>`\n\t\t\t\t\t\t),\n\t\t\t\t\t};\n\t\t\t\t})\n\t\t);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<div className=\"emperorSelectContainer\">\n\t\t\t\t{showSearch && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<FinsembleIcon className=\"searchIcon\" icon=\"search\"></FinsembleIcon>\n\t\t\t\t\t\t<input type=\"text\" placeholder=\"Search\" aria-label=\"search\" className=\"search\" onInput={updateSearch} />\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t\t<select aria-hidden=\"true\" className=\"shogunSelect\" multiple onChange={changeHandler}>\n\t\t\t\t\t{displayOptions.map(({ option, value }, index: number) => (\n\t\t\t\t\t\t<option key={`shogun-option-${index}`} value={value}>\n\t\t\t\t\t\t\t{option}\n\t\t\t\t\t\t</option>\n\t\t\t\t\t))}\n\t\t\t\t</select>\n\t\t\t\t<div className=\"emperorSelect\" style={height === \"\" ? {} : { height }}>\n\t\t\t\t\t{displayOptions.map(({ option, value }, index: number) => (\n\t\t\t\t\t\t<div className=\"emperorOption\" key={`emperor-option-${index}`}>\n\t\t\t\t\t\t\t<label>\n\t\t\t\t\t\t\t\t<FinsembleToggle\n\t\t\t\t\t\t\t\t\tchecked={selectedOptions.includes(value) || selected.includes(value)}\n\t\t\t\t\t\t\t\t\tonChange={() => {\n\t\t\t\t\t\t\t\t\t\tif (selectedOptions.includes(value) || selected.includes(value)) {\n\t\t\t\t\t\t\t\t\t\t\tdoSetSelectedOptions(removeItem(selectedOptions, value));\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tdoSetSelectedOptions(selectedOptions.concat([value]));\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t></FinsembleToggle>\n\t\t\t\t\t\t\t\t{optionComponents?.[index] ? (\n\t\t\t\t\t\t\t\t\toptionComponents?.[index]\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<span dangerouslySetInnerHTML={{ __html: option }}></span>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</>\n\t);\n};\n"]}
@@ -11,6 +11,8 @@ export const Tooltip = ({ type = "info", position = "right", children = "", altC
11
11
  const pos = tooltipContentRef.current && tooltipContentRef.current.getBoundingClientRect().right > window.innerWidth
12
12
  ? "left"
13
13
  : position;
14
+ const FinsembleIconLockedOrQuestion = type === "lock" ? (React.createElement(FinsembleIcon, { icon: "lock" })) : (React.createElement(FinsembleIcon, { icon: "question-circle" }));
15
+ const FinsembleIconForType = type === "error" || type === "warn" ? (React.createElement(FinsembleIcon, { icon: "exclamation-circle" })) : (FinsembleIconLockedOrQuestion);
14
16
  return (React.createElement("div", { className: ["tooltip", `tooltip-position-content-${pos}`].join(" "), tabIndex: 0, role: "tooltip", "aria-label": children, onMouseOver: () => {
15
17
  setTooltipOpen(true);
16
18
  }, onFocus: () => {
@@ -20,7 +22,7 @@ export const Tooltip = ({ type = "info", position = "right", children = "", altC
20
22
  }, onBlur: () => {
21
23
  setTooltipOpen(false);
22
24
  }, onClick: onClick },
23
- altClassName ? (React.createElement("div", { className: altClassName })) : (React.createElement("div", { className: ["tooltip-icon", `tooltip-icon-${type}`].join(" ") }, type === "error" || type === "warn" ? (React.createElement(FinsembleIcon, { icon: "exclamation-circle" })) : type === "lock" ? (React.createElement(FinsembleIcon, { icon: "lock" })) : (React.createElement(FinsembleIcon, { icon: "question-circle" })))),
25
+ altClassName ? (React.createElement("div", { className: altClassName })) : (React.createElement("div", { className: ["tooltip-icon", `tooltip-icon-${type}`].join(" ") }, FinsembleIconForType)),
24
26
  React.createElement("div", { ref: tooltipContentRef, className: ["tooltip-content", tooltipOpen ? "visible" : ""].join(" ") }, children)));
25
27
  };
26
28
  //# sourceMappingURL=Tooltip.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.js","sourceRoot":"","sources":["../../../src/components/common/Tooltip.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAUhD,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,EACvB,IAAI,GAAG,MAAM,EACb,QAAQ,GAAG,OAAO,EAClB,QAAQ,GAAG,EAAE,EACb,YAAY,EACZ,OAAO,GAAG,GAAG,EAAE,GAAE,CAAC,GACJ,EAAE,EAAE;IAClB,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAItD,MAAM,iBAAiB,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IACvD,MAAM,GAAG,GACR,iBAAiB,CAAC,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU;QACvG,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,QAAQ,CAAC;IAEb,OAAO,CACN,6BACC,SAAS,EAAE,CAAC,SAAS,EAAE,4BAA4B,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EACnE,QAAQ,EAAE,CAAC,EACX,IAAI,EAAC,SAAS,gBACF,QAAQ,EACpB,WAAW,EAAE,GAAG,EAAE;YACjB,cAAc,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC,EACD,OAAO,EAAE,GAAG,EAAE;YACb,cAAc,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC,EACD,YAAY,EAAE,GAAG,EAAE;YAClB,cAAc,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC,EACD,MAAM,EAAE,GAAG,EAAE;YACZ,cAAc,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC,EACD,OAAO,EAAE,OAAO;QAEf,YAAY,CAAC,CAAC,CAAC,CACf,6BAAK,SAAS,EAAE,YAAY,GAAQ,CACpC,CAAC,CAAC,CAAC,CACH,6BAAK,SAAS,EAAE,CAAC,cAAc,EAAE,gBAAgB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAChE,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CACtC,oBAAC,aAAa,IAAC,IAAI,EAAC,oBAAoB,GAAiB,CACzD,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CACrB,oBAAC,aAAa,IAAC,IAAI,EAAC,MAAM,GAAiB,CAC3C,CAAC,CAAC,CAAC,CACH,oBAAC,aAAa,IAAC,IAAI,EAAC,iBAAiB,GAAiB,CACtD,CACI,CACN;QACD,6BAAK,GAAG,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IACjG,QAAQ,CACJ,CACD,CACN,CAAC;AACH,CAAC,CAAC","sourcesContent":["/*!\n * Copyright 2017 - 2020 by ChartIQ, Inc.\n * All rights reserved.\n */\n\nimport React, { useState, useRef } from \"react\";\nimport \"./css/tooltip.css\";\nimport { FinsembleIcon } from \"./FinsembleIcon\";\n\nexport type TooltipProps = {\n\ttype?: \"info\" | \"error\" | \"warn\" | \"lock\";\n\taltClassName?: string;\n\tposition?: string;\n\tchildren?: string;\n\tonClick?: (e: React.MouseEvent<HTMLDivElement>) => void;\n};\n\nexport const Tooltip = ({\n\ttype = \"info\",\n\tposition = \"right\",\n\tchildren = \"\",\n\taltClassName,\n\tonClick = () => {},\n}: TooltipProps) => {\n\tconst [tooltipOpen, setTooltipOpen] = useState(false);\n\n\t// If the tooltip content is floating so far to the right that it flows offscreen, switch the position to the left.\n\t// This only works for right-sided tooltips. Left-sided tooltips that float offscreen are not addressed.\n\tconst tooltipContentRef = useRef<HTMLDivElement>(null);\n\tconst pos =\n\t\ttooltipContentRef.current && tooltipContentRef.current.getBoundingClientRect().right > window.innerWidth\n\t\t\t? \"left\"\n\t\t\t: position;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={[\"tooltip\", `tooltip-position-content-${pos}`].join(\" \")}\n\t\t\ttabIndex={0}\n\t\t\trole=\"tooltip\"\n\t\t\taria-label={children}\n\t\t\tonMouseOver={() => {\n\t\t\t\tsetTooltipOpen(true);\n\t\t\t}}\n\t\t\tonFocus={() => {\n\t\t\t\tsetTooltipOpen(true);\n\t\t\t}}\n\t\t\tonMouseLeave={() => {\n\t\t\t\tsetTooltipOpen(false);\n\t\t\t}}\n\t\t\tonBlur={() => {\n\t\t\t\tsetTooltipOpen(false);\n\t\t\t}}\n\t\t\tonClick={onClick}\n\t\t>\n\t\t\t{altClassName ? (\n\t\t\t\t<div className={altClassName}></div>\n\t\t\t) : (\n\t\t\t\t<div className={[\"tooltip-icon\", `tooltip-icon-${type}`].join(\" \")}>\n\t\t\t\t\t{type === \"error\" || type === \"warn\" ? (\n\t\t\t\t\t\t<FinsembleIcon icon=\"exclamation-circle\"></FinsembleIcon>\n\t\t\t\t\t) : type === \"lock\" ? (\n\t\t\t\t\t\t<FinsembleIcon icon=\"lock\"></FinsembleIcon>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<FinsembleIcon icon=\"question-circle\"></FinsembleIcon>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t<div ref={tooltipContentRef} className={[\"tooltip-content\", tooltipOpen ? \"visible\" : \"\"].join(\" \")}>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n"]}
1
+ {"version":3,"file":"Tooltip.js","sourceRoot":"","sources":["../../../src/components/common/Tooltip.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAUhD,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,EACvB,IAAI,GAAG,MAAM,EACb,QAAQ,GAAG,OAAO,EAClB,QAAQ,GAAG,EAAE,EACb,YAAY,EACZ,OAAO,GAAG,GAAG,EAAE,GAAE,CAAC,GACJ,EAAE,EAAE;IAClB,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAItD,MAAM,iBAAiB,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IACvD,MAAM,GAAG,GACR,iBAAiB,CAAC,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU;QACvG,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,QAAQ,CAAC;IAEb,MAAM,6BAA6B,GAClC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CACjB,oBAAC,aAAa,IAAC,IAAI,EAAC,MAAM,GAAiB,CAC3C,CAAC,CAAC,CAAC,CACH,oBAAC,aAAa,IAAC,IAAI,EAAC,iBAAiB,GAAiB,CACtD,CAAC;IACH,MAAM,oBAAoB,GACzB,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CACrC,oBAAC,aAAa,IAAC,IAAI,EAAC,oBAAoB,GAAiB,CACzD,CAAC,CAAC,CAAC,CACH,6BAA6B,CAC7B,CAAC;IAEH,OAAO,CACN,6BACC,SAAS,EAAE,CAAC,SAAS,EAAE,4BAA4B,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EACnE,QAAQ,EAAE,CAAC,EACX,IAAI,EAAC,SAAS,gBACF,QAAQ,EACpB,WAAW,EAAE,GAAG,EAAE;YACjB,cAAc,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC,EACD,OAAO,EAAE,GAAG,EAAE;YACb,cAAc,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC,EACD,YAAY,EAAE,GAAG,EAAE;YAClB,cAAc,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC,EACD,MAAM,EAAE,GAAG,EAAE;YACZ,cAAc,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC,EACD,OAAO,EAAE,OAAO;QAEf,YAAY,CAAC,CAAC,CAAC,CACf,6BAAK,SAAS,EAAE,YAAY,GAAQ,CACpC,CAAC,CAAC,CAAC,CACH,6BAAK,SAAS,EAAE,CAAC,cAAc,EAAE,gBAAgB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAG,oBAAoB,CAAO,CAChG;QACD,6BAAK,GAAG,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IACjG,QAAQ,CACJ,CACD,CACN,CAAC;AACH,CAAC,CAAC","sourcesContent":["/*!\n * Copyright 2017 - 2020 by ChartIQ, Inc.\n * All rights reserved.\n */\n\nimport React, { useState, useRef } from \"react\";\nimport \"./css/tooltip.css\";\nimport { FinsembleIcon } from \"./FinsembleIcon\";\n\nexport type TooltipProps = {\n\ttype?: \"info\" | \"error\" | \"warn\" | \"lock\";\n\taltClassName?: string;\n\tposition?: string;\n\tchildren?: string;\n\tonClick?: (e: React.MouseEvent<HTMLDivElement>) => void;\n};\n\nexport const Tooltip = ({\n\ttype = \"info\",\n\tposition = \"right\",\n\tchildren = \"\",\n\taltClassName,\n\tonClick = () => {},\n}: TooltipProps) => {\n\tconst [tooltipOpen, setTooltipOpen] = useState(false);\n\n\t// If the tooltip content is floating so far to the right that it flows offscreen, switch the position to the left.\n\t// This only works for right-sided tooltips. Left-sided tooltips that float offscreen are not addressed.\n\tconst tooltipContentRef = useRef<HTMLDivElement>(null);\n\tconst pos =\n\t\ttooltipContentRef.current && tooltipContentRef.current.getBoundingClientRect().right > window.innerWidth\n\t\t\t? \"left\"\n\t\t\t: position;\n\n\tconst FinsembleIconLockedOrQuestion =\n\t\ttype === \"lock\" ? (\n\t\t\t<FinsembleIcon icon=\"lock\"></FinsembleIcon>\n\t\t) : (\n\t\t\t<FinsembleIcon icon=\"question-circle\"></FinsembleIcon>\n\t\t);\n\tconst FinsembleIconForType =\n\t\ttype === \"error\" || type === \"warn\" ? (\n\t\t\t<FinsembleIcon icon=\"exclamation-circle\"></FinsembleIcon>\n\t\t) : (\n\t\t\tFinsembleIconLockedOrQuestion\n\t\t);\n\n\treturn (\n\t\t<div\n\t\t\tclassName={[\"tooltip\", `tooltip-position-content-${pos}`].join(\" \")}\n\t\t\ttabIndex={0}\n\t\t\trole=\"tooltip\"\n\t\t\taria-label={children}\n\t\t\tonMouseOver={() => {\n\t\t\t\tsetTooltipOpen(true);\n\t\t\t}}\n\t\t\tonFocus={() => {\n\t\t\t\tsetTooltipOpen(true);\n\t\t\t}}\n\t\t\tonMouseLeave={() => {\n\t\t\t\tsetTooltipOpen(false);\n\t\t\t}}\n\t\t\tonBlur={() => {\n\t\t\t\tsetTooltipOpen(false);\n\t\t\t}}\n\t\t\tonClick={onClick}\n\t\t>\n\t\t\t{altClassName ? (\n\t\t\t\t<div className={altClassName}></div>\n\t\t\t) : (\n\t\t\t\t<div className={[\"tooltip-icon\", `tooltip-icon-${type}`].join(\" \")}>{FinsembleIconForType}</div>\n\t\t\t)}\n\t\t\t<div ref={tooltipContentRef} className={[\"tooltip-content\", tooltipOpen ? \"visible\" : \"\"].join(\" \")}>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n"]}
@@ -47,3 +47,7 @@
47
47
  margin-top: 1.2em;
48
48
  text-align: center;
49
49
  }
50
+
51
+ .app-list-empty.no-dropzone {
52
+ border-style: solid;
53
+ }
@@ -0,0 +1,37 @@
1
+ .preload-edit-table {
2
+ width: 515px;
3
+ }
4
+
5
+ .preload-edit-table td,
6
+ .preload-edit-table th {
7
+ padding-bottom: 17px;
8
+ }
9
+
10
+ .preload-edit-table th {
11
+ width: 130px;
12
+ text-align: left;
13
+ font-weight: normal;
14
+ vertical-align: bottom;
15
+ }
16
+
17
+ th.table-header__top-label {
18
+ vertical-align: top;
19
+ }
20
+
21
+ .preload-edit-table .edit-field > input[type="text"] {
22
+ width: 100%;
23
+ }
24
+
25
+ .preload-edit-table .emperorSelectContainer {
26
+ width: 100%;
27
+ }
28
+
29
+ .preload-edit-table .load-option {
30
+ margin-bottom: 10px;
31
+ }
32
+
33
+ .preload-edit-actions {
34
+ display: flex;
35
+ justify-content: space-between;
36
+ margin: 0.65em 3em 0.65em 0;
37
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"FavoritesShell.stories.js","sourceRoot":"","sources":["../../../src/components/favorites/FavoritesShell.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,gCAAgC,CAAC;AAGxC,eAAe;IACd,KAAK,EAAE,qBAAqB;IAC5B,SAAS,EAAE,cAAc;CACzB,CAAC;AAEF,MAAM,QAAQ,GAAe,CAAC,IAAS,EAAE,EAAE;IAC1C,QAAQ,CAAC,MAAM,CAAC,CAAC;IAEjB,IAAI,IAAI,CAAC,SAAS,EAAE;QACnB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC,KAAU,EAAE,QAA0C,EAAgB,EAAE;YAChH,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAC/B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC9B,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACzB,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC;KACF;IAED,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAEtD,OAAO,CACN,oBAAC,iBAAiB;QACjB,oBAAC,cAAc,OAAG,CACC,CACpB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACvC,KAAK,CAAC,IAAI,GAAG;IACZ,SAAS,EAAE;QACV;YACC,EAAE,EAAE,GAAG;YACP,QAAQ,EAAE,aAAa;YACvB,IAAI,EAAE,aAAa;SACnB;QACD;YACC,EAAE,EAAE,GAAG;YACP,QAAQ,EAAE,aAAa;YACvB,IAAI,EAAE,qBAAqB;SAC3B;QACD;YACC,EAAE,EAAE,GAAG;YACP,QAAQ,EAAE,aAAa;YACvB,IAAI,EAAE,sCAAsC;SAC5C;KACD;IACD,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC;CACvB,CAAC","sourcesContent":["import React from \"react\";\nimport { FavoritesShell } from \"./FavoritesShell\";\nimport { Story } from \"@storybook/react/types-6-0\";\nimport { initFSBL } from \"../common/helpers\";\nimport { FinsembleProvider } from \"../FinsembleProvider\";\nimport { action } from \"@storybook/addon-actions\";\nimport \"../../assets/css/favorites.css\";\nimport { StandardCallback, StandardError } from \"@finsemble/finsemble-core/types/types\";\n\nexport default {\n\ttitle: \"Menu/FavoritesShell\",\n\tcomponent: FavoritesShell,\n};\n\nconst Template: Story<any> = (args: any) => {\n\tinitFSBL(window);\n\n\tif (args.favorites) {\n\t\twindow.FSBL.Clients.StorageClient.get = (query: any, callback?: StandardCallback<StandardError>): Promise<any> => {\n\t\t\tcallback?.(\"\", args.favorites);\n\t\t\treturn new Promise((resolve) => {\n\t\t\t\tresolve(args.favorites);\n\t\t\t});\n\t\t};\n\t}\n\n\twindow.FSBL.Clients.LauncherClient.spawn = args.spawn;\n\n\treturn (\n\t\t<FinsembleProvider>\n\t\t\t<FavoritesShell />\n\t\t</FinsembleProvider>\n\t);\n};\n\nexport const Basic = Template.bind({});\nBasic.args = {\n\tfavorites: [\n\t\t{\n\t\t\tid: \"1\",\n\t\t\tcategory: \"Application\",\n\t\t\tname: \"Hello World\",\n\t\t},\n\t\t{\n\t\t\tid: \"2\",\n\t\t\tcategory: \"Application\",\n\t\t\tname: \"Another application\",\n\t\t},\n\t\t{\n\t\t\tid: \"3\",\n\t\t\tcategory: \"Application\",\n\t\t\tname: \"This is a very long, extra long name\",\n\t\t},\n\t],\n\tspawn: action(\"launch\"),\n};\n"]}
1
+ {"version":3,"file":"FavoritesShell.stories.js","sourceRoot":"","sources":["../../../src/components/favorites/FavoritesShell.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,gCAAgC,CAAC;AAGxC,eAAe;IACd,KAAK,EAAE,qBAAqB;IAC5B,SAAS,EAAE,cAAc;CACzB,CAAC;AAEF,MAAM,QAAQ,GAAe,CAAC,IAAS,EAAE,EAAE;IAC1C,QAAQ,CAAC,MAAM,CAAC,CAAC;IAEjB,IAAI,IAAI,CAAC,SAAS,EAAE;QACnB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC,KAAU,EAAE,QAA0C,EAAgB,EAAE;YAChH,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAC/B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC9B,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACzB,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC;KACF;IAED,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAEtD,OAAO,CACN,oBAAC,iBAAiB;QACjB,oBAAC,cAAc,OAAG,CACC,CACpB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACvC,KAAK,CAAC,IAAI,GAAG;IACZ,SAAS,EAAE;QACV;YACC,EAAE,EAAE,GAAG;YACP,QAAQ,EAAE,aAAa;YACvB,IAAI,EAAE,aAAa;SACnB;QACD;YACC,EAAE,EAAE,GAAG;YACP,QAAQ,EAAE,aAAa;YACvB,IAAI,EAAE,qBAAqB;SAC3B;QACD;YACC,EAAE,EAAE,GAAG;YACP,QAAQ,EAAE,aAAa;YACvB,IAAI,EAAE,sCAAsC;SAC5C;KACD;IACD,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC;CACvB,CAAC","sourcesContent":["import React from \"react\";\nimport { FavoritesShell } from \"./FavoritesShell\";\nimport { Story } from \"@storybook/react/types-6-0\";\nimport { initFSBL } from \"../common/helpers\";\nimport { FinsembleProvider } from \"../FinsembleProvider\";\nimport { action } from \"@storybook/addon-actions\";\nimport \"../../assets/css/favorites.css\";\nimport { StandardCallback, StandardError } from \"@finsemble/finsemble-api/types/types\";\n\nexport default {\n\ttitle: \"Menu/FavoritesShell\",\n\tcomponent: FavoritesShell,\n};\n\nconst Template: Story<any> = (args: any) => {\n\tinitFSBL(window);\n\n\tif (args.favorites) {\n\t\twindow.FSBL.Clients.StorageClient.get = (query: any, callback?: StandardCallback<StandardError>): Promise<any> => {\n\t\t\tcallback?.(\"\", args.favorites);\n\t\t\treturn new Promise((resolve) => {\n\t\t\t\tresolve(args.favorites);\n\t\t\t});\n\t\t};\n\t}\n\n\twindow.FSBL.Clients.LauncherClient.spawn = args.spawn;\n\n\treturn (\n\t\t<FinsembleProvider>\n\t\t\t<FavoritesShell />\n\t\t</FinsembleProvider>\n\t);\n};\n\nexport const Basic = Template.bind({});\nBasic.args = {\n\tfavorites: [\n\t\t{\n\t\t\tid: \"1\",\n\t\t\tcategory: \"Application\",\n\t\t\tname: \"Hello World\",\n\t\t},\n\t\t{\n\t\t\tid: \"2\",\n\t\t\tcategory: \"Application\",\n\t\t\tname: \"Another application\",\n\t\t},\n\t\t{\n\t\t\tid: \"3\",\n\t\t\tcategory: \"Application\",\n\t\t\tname: \"This is a very long, extra long name\",\n\t\t},\n\t],\n\tspawn: action(\"launch\"),\n};\n"]}