@finsemble/finsemble-ui 7.2.0 → 7.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/package.json +14 -14
  2. package/react/assets/css/button.css +34 -6
  3. package/react/assets/css/contextMenu.css +118 -0
  4. package/react/assets/css/notificationsCenter.css +3 -214
  5. package/react/assets/css/userPreferences.css +2 -2
  6. package/react/components/common/Checkbox.d.ts +3 -2
  7. package/react/components/common/Checkbox.js +5 -21
  8. package/react/components/common/Checkbox.js.map +1 -1
  9. package/react/components/common/ContextMenu.d.ts +13 -0
  10. package/react/components/common/ContextMenu.js +69 -0
  11. package/react/components/common/ContextMenu.js.map +1 -0
  12. package/react/components/common/DropdownButton.d.ts +0 -4
  13. package/react/components/common/DropdownButton.js +39 -10
  14. package/react/components/common/DropdownButton.js.map +1 -1
  15. package/react/components/common/css/FinsembleToggle.css +0 -1
  16. package/react/components/common/css/application-edit-page.css +3 -4
  17. package/react/components/common/css/checkbox.css +60 -21
  18. package/react/components/common/css/icon.css +2 -2
  19. package/react/components/common/css/toggle.css +4 -1
  20. package/react/components/common/helpers.js +9 -0
  21. package/react/components/common/helpers.js.map +1 -1
  22. package/react/components/common/stories/ContextMenu.stories.d.ts +38 -0
  23. package/react/components/common/stories/ContextMenu.stories.js +70 -0
  24. package/react/components/common/stories/ContextMenu.stories.js.map +1 -0
  25. package/react/components/common/stories/DropdownButton.stories.d.ts +3 -3
  26. package/react/components/common/stories/DropdownButton.stories.js +11 -10
  27. package/react/components/common/stories/DropdownButton.stories.js.map +1 -1
  28. package/react/components/common/tests/Checkbox.spec.js +10 -12
  29. package/react/components/common/tests/Checkbox.spec.js.map +1 -1
  30. package/react/components/common/tests/ContextMenu.spec.d.ts +1 -0
  31. package/react/components/common/tests/ContextMenu.spec.js +108 -0
  32. package/react/components/common/tests/ContextMenu.spec.js.map +1 -0
  33. package/react/components/common/tests/DropdownButton.spec.d.ts +1 -0
  34. package/react/components/common/tests/DropdownButton.spec.js +32 -0
  35. package/react/components/common/tests/DropdownButton.spec.js.map +1 -0
  36. package/react/components/fdc3Resolver/ResolverDialog.js +5 -1
  37. package/react/components/fdc3Resolver/ResolverDialog.js.map +1 -1
  38. package/react/components/notifications/components/drawer/DrawerHeader.js +3 -3
  39. package/react/components/notifications/components/drawer/DrawerHeader.js.map +1 -1
  40. package/react/components/notifications/components/notificationsCenter/NotificationsCenter.js +1 -0
  41. package/react/components/notifications/components/notificationsCenter/NotificationsCenter.js.map +1 -1
  42. package/react/components/notifications/components/notificationsToasts/NotificationsToasts.js +2 -0
  43. package/react/components/notifications/components/notificationsToasts/NotificationsToasts.js.map +1 -1
  44. package/react/components/notifications/components/shared/IconButton.js +2 -1
  45. package/react/components/notifications/components/shared/IconButton.js.map +1 -1
  46. package/react/components/notifications/components/shared/NotificationCardShell.d.ts +2 -0
  47. package/react/components/notifications/components/shared/NotificationCardShell.js +55 -49
  48. package/react/components/notifications/components/shared/NotificationCardShell.js.map +1 -1
  49. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyShell.js +2 -3
  50. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyShell.js.map +1 -1
  51. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderControls.d.ts +4 -0
  52. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderControls.js +92 -13
  53. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderControls.js.map +1 -1
  54. package/react/components/notifications/components/views/ListView.js +5 -9
  55. package/react/components/notifications/components/views/ListView.js.map +1 -1
  56. package/react/components/notifications/css/notification-card.css +165 -0
  57. package/react/components/notifications/stories/NotificationCardShell.stories.d.ts +14 -0
  58. package/react/components/notifications/stories/NotificationCardShell.stories.js +108 -0
  59. package/react/components/notifications/stories/NotificationCardShell.stories.js.map +1 -0
  60. package/react/components/notifications/tests/NotificationCardShell.spec.d.ts +1 -0
  61. package/react/components/notifications/tests/NotificationCardShell.spec.js +91 -0
  62. package/react/components/notifications/tests/NotificationCardShell.spec.js.map +1 -0
  63. package/react/components/notifications/types.d.ts +4 -2
  64. package/react/components/notifications/types.js.map +1 -1
  65. package/react/components/sdd/AddApp.d.ts +3 -3
  66. package/react/components/sdd/AddApp.js +29 -21
  67. package/react/components/sdd/AddApp.js.map +1 -1
  68. package/react/components/sdd/AppEditPage.js +1 -8
  69. package/react/components/sdd/AppEditPage.js.map +1 -1
  70. package/react/components/sdd/Appearance.css +2 -1
  71. package/react/components/sdd/Applications.js +7 -7
  72. package/react/components/sdd/Applications.js.map +1 -1
  73. package/react/components/sdd/Navigation.js +2 -4
  74. package/react/components/sdd/Navigation.js.map +1 -1
  75. package/react/components/sdd/common/views.js +1 -14
  76. package/react/components/sdd/common/views.js.map +1 -1
  77. package/react/components/sdd/css/addApp.css +64 -1
  78. package/react/components/sdd/css/nav.css +50 -29
  79. package/react/components/sdd/fixtures/views.js +1 -14
  80. package/react/components/sdd/fixtures/views.js.map +1 -1
  81. package/react/components/sdd/tests/AddApp.spec.js +2 -2
  82. package/react/components/sdd/tests/AddApp.spec.js.map +1 -1
  83. package/react/components/sdd/tests/AppEditPage.spec.js +5 -8
  84. package/react/components/sdd/tests/AppEditPage.spec.js.map +1 -1
  85. package/react/components/sdd/tests/Export.spec.js +11 -11
  86. package/react/components/sdd/tests/Export.spec.js.map +1 -1
  87. package/react/components/sdd/tests/ExportZip.spec.js +3 -3
  88. package/react/components/sdd/tests/ExportZip.spec.js.map +1 -1
  89. package/react/components/sdd/tests/Navigation.spec.js +3 -2
  90. package/react/components/sdd/tests/Navigation.spec.js.map +1 -1
  91. package/react/components/sdd/tests/SmartDesktopDesigner.spec.js +1 -2
  92. package/react/components/sdd/tests/SmartDesktopDesigner.spec.js.map +1 -1
  93. package/react/components/toolbar/dashbar/Dashbar.js +18 -14
  94. package/react/components/toolbar/dashbar/Dashbar.js.map +1 -1
  95. package/react/components/toolbar/workspaceManagementMenu/components/Workspace.d.ts +9 -1
  96. package/react/components/toolbar/workspaceManagementMenu/components/Workspace.js +35 -1
  97. package/react/components/toolbar/workspaceManagementMenu/components/Workspace.js.map +1 -1
  98. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.js +1 -1
  99. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.js.map +1 -1
  100. package/react/components/userPreferences/components/content/Workspaces.d.ts +3 -1
  101. package/react/components/userPreferences/components/content/Workspaces.js +20 -3
  102. package/react/components/userPreferences/components/content/Workspaces.js.map +1 -1
  103. package/react/components/userPreferences/components/workspaces/WorkspaceItem.d.ts +1 -0
  104. package/react/components/userPreferences/components/workspaces/WorkspaceItem.js +3 -2
  105. package/react/components/userPreferences/components/workspaces/WorkspaceItem.js.map +1 -1
  106. package/react/components/userPreferences/tests/NotificationsPreferencesHome.spec.js +12 -9
  107. package/react/components/userPreferences/tests/NotificationsPreferencesHome.spec.js.map +1 -1
  108. package/react/components/userPreferences/tests/UserPreferencesBase.spec.js +2 -0
  109. package/react/components/userPreferences/tests/UserPreferencesBase.spec.js.map +1 -1
  110. package/react/components/windowTitleBar/WindowTitleBarShell.d.ts +99 -26
  111. package/react/components/windowTitleBar/WindowTitleBarShell.js +206 -138
  112. package/react/components/windowTitleBar/WindowTitleBarShell.js.map +1 -1
  113. package/react/components/windowTitleBar/components/left/LinkerButton.js +30 -21
  114. package/react/components/windowTitleBar/components/left/LinkerButton.js.map +1 -1
  115. package/react/hooks/useNotifications.js +8 -7
  116. package/react/hooks/useNotifications.js.map +1 -1
  117. package/react/tsconfig.tsbuildinfo +1 -1
  118. package/react/components/notifications/components/shared/OverflowMenu.d.ts +0 -16
  119. package/react/components/notifications/components/shared/OverflowMenu.js +0 -114
  120. package/react/components/notifications/components/shared/OverflowMenu.js.map +0 -1
  121. package/react/components/sdd/GettingStarted.d.ts +0 -8
  122. package/react/components/sdd/GettingStarted.js +0 -25
  123. package/react/components/sdd/GettingStarted.js.map +0 -1
  124. package/react/components/sdd/stories/GettingStarted.stories.d.ts +0 -11
  125. package/react/components/sdd/stories/GettingStarted.stories.js +0 -18
  126. package/react/components/sdd/stories/GettingStarted.stories.js.map +0 -1
@@ -0,0 +1,69 @@
1
+ import React, { useEffect, useRef, useState } from "react";
2
+ import { applyMenuKeyboardNavigation } from "../menu/keyboardNavigation";
3
+ // Hooks
4
+ import { useOutsideClickDetector } from "../../hooks/useOutsideClickDetector";
5
+ // Icons
6
+ import IconButton from "../notifications/components/shared/IconButton";
7
+ // CSS
8
+ import "../../assets/css/contextMenu.css";
9
+ export const renderContextMenuAction = (message, menuAction,
10
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
11
+ isMuted) => {
12
+ if (menuAction.display) {
13
+ return (React.createElement("div", { key: `${message === null || message === void 0 ? void 0 : message.id}_${menuAction.name}`, className: "context-menu__action", tabIndex: 0, title: menuAction === null || menuAction === void 0 ? void 0 : menuAction.label, onClick: () => {
14
+ var _a;
15
+ (_a = menuAction === null || menuAction === void 0 ? void 0 : menuAction.action) === null || _a === void 0 ? void 0 : _a.call(menuAction, message);
16
+ }, onKeyDown: (e) => {
17
+ var _a;
18
+ if (e.key === "Enter") {
19
+ e.stopPropagation();
20
+ (_a = menuAction === null || menuAction === void 0 ? void 0 : menuAction.action) === null || _a === void 0 ? void 0 : _a.call(menuAction, message);
21
+ }
22
+ } }, menuAction === null || menuAction === void 0 ? void 0 :
23
+ menuAction.icon,
24
+ React.createElement("span", { className: "btn-label" }, menuAction === null || menuAction === void 0 ? void 0 : menuAction.label)));
25
+ }
26
+ };
27
+ /**
28
+ * Context menu component for notifications that will provide a set of actions
29
+ * a user can perform on a notification (e.g. dismiss, snooze)
30
+ */
31
+ const ContextMenu = ({ closeSelf, children }) => {
32
+ const wrapperRef = useRef(null);
33
+ const [className, setClassName] = useState("context-menu__container");
34
+ useOutsideClickDetector(wrapperRef, () => closeSelf(false));
35
+ const moveElementIntoView = () => {
36
+ var _a;
37
+ const bottomViewPort = window.innerHeight + window.scrollY;
38
+ const domRect = (_a = wrapperRef === null || wrapperRef === void 0 ? void 0 : wrapperRef.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();
39
+ const elementBottom = domRect ? domRect.y + domRect.height + window.scrollY : null;
40
+ const elementLeft = domRect ? domRect.x : null;
41
+ if (elementBottom && elementBottom > bottomViewPort) {
42
+ setClassName("context-menu__container flow-up");
43
+ }
44
+ if (elementLeft && elementLeft < 0) {
45
+ setClassName(`${className} flow-right`);
46
+ }
47
+ };
48
+ useEffect(() => {
49
+ moveElementIntoView();
50
+ }, [className]);
51
+ useEffect(() => {
52
+ window.addEventListener("blur", () => closeSelf(false));
53
+ return () => {
54
+ window.removeEventListener("blur", () => closeSelf(false));
55
+ };
56
+ }, []);
57
+ applyMenuKeyboardNavigation(window, ".context-menu__action");
58
+ return (React.createElement("div", { ref: wrapperRef, className: className }, children));
59
+ };
60
+ const ContextMenuToggle = ({ menuActions, message = null, isMuteFilterApplied = false, }) => {
61
+ const [contextMenuOpen, setContextMenuOpen] = useState(false);
62
+ const toggleContextMenu = () => {
63
+ setContextMenuOpen(!contextMenuOpen);
64
+ };
65
+ const menuActionsElements = Object.values(menuActions).map((value) => renderContextMenuAction(message, value, isMuteFilterApplied));
66
+ return (React.createElement(IconButton, { iconName: "ff-dots-vert", tooltip: "Options", clickHandler: toggleContextMenu }, contextMenuOpen ? React.createElement(ContextMenu, { closeSelf: setContextMenuOpen }, menuActionsElements) : null));
67
+ };
68
+ export default ContextMenuToggle;
69
+ //# sourceMappingURL=ContextMenu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContextMenu.js","sourceRoot":"","sources":["../../../src/components/common/ContextMenu.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { Dispatch, SetStateAction, useEffect, useRef, useState } from \"react\";\nimport { applyMenuKeyboardNavigation } from \"../menu/keyboardNavigation\";\n\n// Hooks\nimport { useOutsideClickDetector } from \"../../hooks/useOutsideClickDetector\";\n\n// Types\nimport { ContextMenuAction } from \"../notifications/types\";\n\n// Icons\nimport IconButton from \"../notifications/components/shared/IconButton\";\n\n// CSS\nimport \"../../assets/css/contextMenu.css\";\n\nexport interface ContextMenuProps {\n\tmenuActions: {\n\t\t[key: string]: ContextMenuAction;\n\t};\n\tmessage: any;\n\tisMuteFilterApplied: boolean;\n}\n\nexport const renderContextMenuAction = (\n\tmessage: any,\n\tmenuAction: ContextMenuAction,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tisMuted: boolean\n) => {\n\tif (menuAction.display) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tkey={`${message?.id}_${menuAction.name}`}\n\t\t\t\tclassName=\"context-menu__action\"\n\t\t\t\ttabIndex={0}\n\t\t\t\ttitle={menuAction?.label}\n\t\t\t\tonClick={() => {\n\t\t\t\t\tmenuAction?.action?.(message);\n\t\t\t\t}}\n\t\t\t\tonKeyDown={(e) => {\n\t\t\t\t\tif (e.key === \"Enter\") {\n\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\tmenuAction?.action?.(message);\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{menuAction?.icon}\n\t\t\t\t<span className=\"btn-label\">{menuAction?.label}</span>\n\t\t\t</div>\n\t\t);\n\t}\n};\n/**\n * Context menu component for notifications that will provide a set of actions\n * a user can perform on a notification (e.g. dismiss, snooze)\n */\nconst ContextMenu: React.FunctionComponent<{\n\tcloseSelf: Dispatch<SetStateAction<boolean>>;\n}> = ({ closeSelf, children }) => {\n\tconst wrapperRef = useRef<HTMLDivElement>(null);\n\tconst [className, setClassName] = useState(\"context-menu__container\");\n\tuseOutsideClickDetector(wrapperRef, () => closeSelf(false));\n\n\tconst moveElementIntoView = () => {\n\t\tconst bottomViewPort = window.innerHeight + window.scrollY;\n\t\tconst domRect = wrapperRef?.current?.getBoundingClientRect();\n\t\tconst elementBottom = domRect ? domRect.y + domRect.height + window.scrollY : null;\n\t\tconst elementLeft = domRect ? domRect.x : null;\n\n\t\tif (elementBottom && elementBottom > bottomViewPort) {\n\t\t\tsetClassName(\"context-menu__container flow-up\");\n\t\t}\n\n\t\tif (elementLeft && elementLeft < 0) {\n\t\t\tsetClassName(`${className} flow-right`);\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tmoveElementIntoView();\n\t}, [className]);\n\n\tuseEffect(() => {\n\t\twindow.addEventListener(\"blur\", () => closeSelf(false));\n\n\t\treturn () => {\n\t\t\twindow.removeEventListener(\"blur\", () => closeSelf(false));\n\t\t};\n\t}, []);\n\n\tapplyMenuKeyboardNavigation(window, \".context-menu__action\");\n\treturn (\n\t\t<div ref={wrapperRef} className={className}>\n\t\t\t{children}\n\t\t</div>\n\t);\n};\n\nconst ContextMenuToggle: React.FunctionComponent<ContextMenuProps> = ({\n\tmenuActions,\n\tmessage = null,\n\tisMuteFilterApplied = false,\n}) => {\n\tconst [contextMenuOpen, setContextMenuOpen] = useState(false);\n\tconst toggleContextMenu = () => {\n\t\tsetContextMenuOpen(!contextMenuOpen);\n\t};\n\tconst menuActionsElements = Object.values(menuActions).map((value) =>\n\t\trenderContextMenuAction(message, value, isMuteFilterApplied)\n\t);\n\n\treturn (\n\t\t<IconButton iconName=\"ff-dots-vert\" tooltip=\"Options\" clickHandler={toggleContextMenu}>\n\t\t\t{contextMenuOpen ? <ContextMenu closeSelf={setContextMenuOpen}>{menuActionsElements}</ContextMenu> : null}\n\t\t</IconButton>\n\t);\n};\n\nexport default ContextMenuToggle;\n"]}
@@ -6,9 +6,5 @@ export interface IFinsembleDropdownActionButtonProps {
6
6
  buttonOptions: Array<IFinsembleButtonProps>;
7
7
  mainAction: Function;
8
8
  }
9
- /**
10
- * @TODO: Consolidate this and DefaultDropDownButton and change all usages to use DefaultDropDownButton.
11
- * @deprecated Use DefaultDropDownButton instead.
12
- */
13
9
  declare const DropdownButton: React.FunctionComponent<IFinsembleDropdownActionButtonProps>;
14
10
  export default DropdownButton;
@@ -1,18 +1,34 @@
1
- import React, { useState, useRef } from "react";
1
+ import React, { useState, useRef, useEffect } from "react";
2
2
  import "../../assets/css/button.css";
3
3
  import { useOutsideClickDetector } from "../../hooks/useOutsideClickDetector";
4
- /**
5
- * @TODO: Consolidate this and DefaultDropDownButton and change all usages to use DefaultDropDownButton.
6
- * @deprecated Use DefaultDropDownButton instead.
7
- */
8
4
  const DropdownButton = ({ buttonLabel = "Label", buttonOptions = [], mainAction, }) => {
9
5
  const wrapperRef = useRef(null);
10
6
  const [expanded, setExpanded] = useState(false);
7
+ const [className, setClassName] = useState("");
8
+ const moveElementIntoView = () => {
9
+ var _a, _b;
10
+ const bottomViewPort = window.innerHeight + window.scrollY;
11
+ const domRect = (_b = (_a = wrapperRef === null || wrapperRef === void 0 ? void 0 : wrapperRef.current) === null || _a === void 0 ? void 0 : _a.querySelector(".finsemble-dropdown-action__btn-options")) === null || _b === void 0 ? void 0 : _b.getBoundingClientRect();
12
+ const elementBottom = domRect ? domRect.y + domRect.height + window.scrollY : null;
13
+ if (elementBottom && elementBottom > bottomViewPort) {
14
+ setClassName("flow-up");
15
+ }
16
+ };
17
+ useEffect(() => {
18
+ if (expanded) {
19
+ moveElementIntoView();
20
+ }
21
+ }, [expanded]);
11
22
  useOutsideClickDetector(wrapperRef, () => setExpanded(false));
12
- const options = buttonOptions.map((option, index) => (React.createElement("div", { key: index, className: "finsemble-dropdown-action__btn-option", onClick: () => {
23
+ const options = buttonOptions.map((option, index) => (React.createElement("div", Object.assign({ key: index, className: "finsemble-dropdown-action__btn-option", role: "button", tabIndex: 0, onClick: () => {
13
24
  option.clickHandler();
14
25
  setExpanded(false);
15
- } }, option.buttonLabel)));
26
+ }, onKeyDown: (e) => {
27
+ if (e.key === "Enter") {
28
+ option.clickHandler();
29
+ setExpanded(false);
30
+ }
31
+ } }, (option.buttonLabel ? { "aria-label": option.buttonLabel } : "")), option.buttonLabel)));
16
32
  const buttonAction = () => {
17
33
  if (expanded) {
18
34
  setExpanded(false);
@@ -27,11 +43,24 @@ const DropdownButton = ({ buttonLabel = "Label", buttonOptions = [], mainAction,
27
43
  };
28
44
  return (React.createElement("div", { ref: wrapperRef, className: "finsemble-dropdown-action__btn-container" },
29
45
  React.createElement("div", { className: "finsemble-dropdown-action__btn" },
30
- React.createElement("span", { className: "btn-label", onClick: buttonAction }, buttonLabel),
46
+ React.createElement("span", Object.assign({ className: "btn-label", role: "button", tabIndex: 0, onClick: buttonAction, onKeyDown: (e) => {
47
+ if (e.key === "Enter") {
48
+ {
49
+ buttonAction;
50
+ }
51
+ }
52
+ } }, (buttonLabel ? { "aria-label": buttonLabel } : "")), buttonLabel),
31
53
  React.createElement("span", { className: "separator" }),
32
- React.createElement("div", { className: "expand-options", onClick: () => setExpanded(!expanded) },
54
+ React.createElement("div", { className: "expand-options", role: "button", tabIndex: 0, onClick: () => {
55
+ setExpanded(!expanded);
56
+ }, onKeyDown: (e) => {
57
+ if (e.key === "Enter") {
58
+ setExpanded(!expanded);
59
+ moveElementIntoView();
60
+ }
61
+ }, "aria-label": "expand-options" },
33
62
  React.createElement("span", { className: "caret" }))),
34
- expanded ? React.createElement("div", { className: "finsemble-dropdown-action__btn-options" }, options) : null));
63
+ expanded ? React.createElement("div", { className: `finsemble-dropdown-action__btn-options ${className}` }, options) : null));
35
64
  };
36
65
  export default DropdownButton;
37
66
  //# sourceMappingURL=DropdownButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownButton.js","sourceRoot":"","sources":["../../../src/components/common/DropdownButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,6BAA6B,CAAC;AACrC,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAS9E;;;GAGG;AACH,MAAM,cAAc,GAAiE,CAAC,EACrF,WAAW,GAAG,OAAO,EACrB,aAAa,GAAG,EAAE,EAClB,UAAU,GAC2B,EAAE,EAAE;IACzC,MAAM,UAAU,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAChD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEhD,uBAAuB,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;IAE9D,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CACpD,6BACC,GAAG,EAAE,KAAK,EACV,SAAS,EAAC,uCAAuC,EACjD,OAAO,EAAE,GAAG,EAAE;YACb,MAAM,CAAC,YAAY,EAAE,CAAC;YACtB,WAAW,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC,IAEA,MAAM,CAAC,WAAW,CACd,CACN,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,GAAG,EAAE;QACzB,IAAI,QAAQ,EAAE;YACb,WAAW,CAAC,KAAK,CAAC,CAAC;YACnB,OAAO;SACP;QAED,IAAI,UAAU,EAAE;YACf,UAAU,EAAE,CAAC;SACb;aAAM;YACN,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC;SAC7B;IACF,CAAC,CAAC;IAEF,OAAO,CACN,6BAAK,GAAG,EAAE,UAAU,EAAE,SAAS,EAAC,0CAA0C;QACzE,6BAAK,SAAS,EAAC,gCAAgC;YAC9C,8BAAM,SAAS,EAAC,WAAW,EAAC,OAAO,EAAE,YAAY,IAC/C,WAAW,CACN;YACP,8BAAM,SAAS,EAAC,WAAW,GAAQ;YACnC,6BAAK,SAAS,EAAC,gBAAgB,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC;gBACpE,8BAAM,SAAS,EAAC,OAAO,GAAQ,CAC1B,CACD;QACL,QAAQ,CAAC,CAAC,CAAC,6BAAK,SAAS,EAAC,wCAAwC,IAAE,OAAO,CAAO,CAAC,CAAC,CAAC,IAAI,CACrF,CACN,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,cAAc,CAAC","sourcesContent":["import React, { useState, useRef } from \"react\";\nimport \"../../assets/css/button.css\";\nimport { useOutsideClickDetector } from \"../../hooks/useOutsideClickDetector\";\nimport { IFinsembleButtonProps } from \"../shared/Button\";\n\nexport interface IFinsembleDropdownActionButtonProps {\n\tbuttonLabel: string;\n\tbuttonOptions: Array<IFinsembleButtonProps>;\n\tmainAction: Function;\n}\n\n/**\n * @TODO: Consolidate this and DefaultDropDownButton and change all usages to use DefaultDropDownButton.\n * @deprecated Use DefaultDropDownButton instead.\n */\nconst DropdownButton: React.FunctionComponent<IFinsembleDropdownActionButtonProps> = ({\n\tbuttonLabel = \"Label\",\n\tbuttonOptions = [],\n\tmainAction,\n}: IFinsembleDropdownActionButtonProps) => {\n\tconst wrapperRef = useRef<HTMLDivElement>(null);\n\tconst [expanded, setExpanded] = useState(false);\n\n\tuseOutsideClickDetector(wrapperRef, () => setExpanded(false));\n\n\tconst options = buttonOptions.map((option, index) => (\n\t\t<div\n\t\t\tkey={index}\n\t\t\tclassName=\"finsemble-dropdown-action__btn-option\"\n\t\t\tonClick={() => {\n\t\t\t\toption.clickHandler();\n\t\t\t\tsetExpanded(false);\n\t\t\t}}\n\t\t>\n\t\t\t{option.buttonLabel}\n\t\t</div>\n\t));\n\n\tconst buttonAction = () => {\n\t\tif (expanded) {\n\t\t\tsetExpanded(false);\n\t\t\treturn;\n\t\t}\n\n\t\tif (mainAction) {\n\t\t\tmainAction();\n\t\t} else {\n\t\t\t() => setExpanded(!expanded);\n\t\t}\n\t};\n\n\treturn (\n\t\t<div ref={wrapperRef} className=\"finsemble-dropdown-action__btn-container\">\n\t\t\t<div className=\"finsemble-dropdown-action__btn\">\n\t\t\t\t<span className=\"btn-label\" onClick={buttonAction}>\n\t\t\t\t\t{buttonLabel}\n\t\t\t\t</span>\n\t\t\t\t<span className=\"separator\"></span>\n\t\t\t\t<div className=\"expand-options\" onClick={() => setExpanded(!expanded)}>\n\t\t\t\t\t<span className=\"caret\"></span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t{expanded ? <div className=\"finsemble-dropdown-action__btn-options\">{options}</div> : null}\n\t\t</div>\n\t);\n};\n\nexport default DropdownButton;\n"]}
1
+ {"version":3,"file":"DropdownButton.js","sourceRoot":"","sources":["../../../src/components/common/DropdownButton.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useState, useRef, useEffect } from \"react\";\nimport \"../../assets/css/button.css\";\nimport { useOutsideClickDetector } from \"../../hooks/useOutsideClickDetector\";\nimport { IFinsembleButtonProps } from \"../shared/Button\";\n\nexport interface IFinsembleDropdownActionButtonProps {\n\tbuttonLabel: string;\n\tbuttonOptions: Array<IFinsembleButtonProps>;\n\tmainAction: Function;\n}\n\nconst DropdownButton: React.FunctionComponent<IFinsembleDropdownActionButtonProps> = ({\n\tbuttonLabel = \"Label\",\n\tbuttonOptions = [],\n\tmainAction,\n}: IFinsembleDropdownActionButtonProps) => {\n\tconst wrapperRef = useRef<HTMLDivElement>(null);\n\tconst [expanded, setExpanded] = useState(false);\n\tconst [className, setClassName] = useState(\"\");\n\n\tconst moveElementIntoView = () => {\n\t\tconst bottomViewPort = window.innerHeight + window.scrollY;\n\t\tconst domRect = wrapperRef?.current\n\t\t\t?.querySelector(\".finsemble-dropdown-action__btn-options\")\n\t\t\t?.getBoundingClientRect();\n\t\tconst elementBottom = domRect ? domRect.y + domRect.height + window.scrollY : null;\n\n\t\tif (elementBottom && elementBottom > bottomViewPort) {\n\t\t\tsetClassName(\"flow-up\");\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tif (expanded) {\n\t\t\tmoveElementIntoView();\n\t\t}\n\t}, [expanded]);\n\n\tuseOutsideClickDetector(wrapperRef, () => setExpanded(false));\n\n\tconst options = buttonOptions.map((option, index) => (\n\t\t<div\n\t\t\tkey={index}\n\t\t\tclassName=\"finsemble-dropdown-action__btn-option\"\n\t\t\trole=\"button\"\n\t\t\ttabIndex={0}\n\t\t\tonClick={() => {\n\t\t\t\toption.clickHandler();\n\t\t\t\tsetExpanded(false);\n\t\t\t}}\n\t\t\tonKeyDown={(e) => {\n\t\t\t\tif (e.key === \"Enter\") {\n\t\t\t\t\toption.clickHandler();\n\t\t\t\t\tsetExpanded(false);\n\t\t\t\t}\n\t\t\t}}\n\t\t\t{...(option.buttonLabel ? { \"aria-label\": option.buttonLabel } : \"\")}\n\t\t>\n\t\t\t{option.buttonLabel}\n\t\t</div>\n\t));\n\n\tconst buttonAction = () => {\n\t\tif (expanded) {\n\t\t\tsetExpanded(false);\n\t\t\treturn;\n\t\t}\n\n\t\tif (mainAction) {\n\t\t\tmainAction();\n\t\t} else {\n\t\t\t() => setExpanded(!expanded);\n\t\t}\n\t};\n\n\treturn (\n\t\t<div ref={wrapperRef} className=\"finsemble-dropdown-action__btn-container\">\n\t\t\t<div className=\"finsemble-dropdown-action__btn\">\n\t\t\t\t<span\n\t\t\t\t\tclassName=\"btn-label\"\n\t\t\t\t\trole=\"button\"\n\t\t\t\t\ttabIndex={0}\n\t\t\t\t\tonClick={buttonAction}\n\t\t\t\t\tonKeyDown={(e) => {\n\t\t\t\t\t\tif (e.key === \"Enter\") {\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tbuttonAction;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t\t{...(buttonLabel ? { \"aria-label\": buttonLabel } : \"\")}\n\t\t\t\t>\n\t\t\t\t\t{buttonLabel}\n\t\t\t\t</span>\n\t\t\t\t<span className=\"separator\"></span>\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"expand-options\"\n\t\t\t\t\trole=\"button\"\n\t\t\t\t\ttabIndex={0}\n\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\tsetExpanded(!expanded);\n\t\t\t\t\t}}\n\t\t\t\t\tonKeyDown={(e) => {\n\t\t\t\t\t\tif (e.key === \"Enter\") {\n\t\t\t\t\t\t\tsetExpanded(!expanded);\n\t\t\t\t\t\t\tmoveElementIntoView();\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t\taria-label=\"expand-options\"\n\t\t\t\t>\n\t\t\t\t\t<span className=\"caret\"></span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t{expanded ? <div className={`finsemble-dropdown-action__btn-options ${className}`}>{options}</div> : null}\n\t\t</div>\n\t);\n};\n\nexport default DropdownButton;\n"]}
@@ -1,5 +1,4 @@
1
1
  .finsembleToggleButtonBar {
2
- background-color: var(--core-primary);
3
2
  padding: 4px;
4
3
  border-radius: 5px;
5
4
  }
@@ -48,7 +48,6 @@
48
48
 
49
49
  .app-edit-fieldset label {
50
50
  font-size: 1em;
51
- overflow: hidden;
52
51
  text-overflow: ellipsis;
53
52
  user-select: none;
54
53
  font-weight: 600;
@@ -153,7 +152,7 @@ span.unit {
153
152
  margin-right: 8px;
154
153
  }
155
154
 
156
- .accordion-edit-block .complex-menu-checkbox-wrapper {
155
+ .accordion-edit-block .checkbox-wrapper {
157
156
  margin-top: 0;
158
157
  }
159
158
 
@@ -235,8 +234,8 @@ span.unit {
235
234
  color: #f5f6f7;
236
235
  }
237
236
 
238
- .accordion-edit-block .complex-menu-checkbox-wrapper,
239
- .pull-left .complex-menu-checkbox-wrapper {
237
+ .accordion-edit-block .checkbox-wrapper,
238
+ .pull-left .checkbox-wrapper {
240
239
  margin-left: 0;
241
240
  }
242
241
 
@@ -1,30 +1,69 @@
1
- .complex-menu-checkbox-wrapper {
2
- display: flex;
3
- align-items: center;
4
- margin-top: 8px;
5
- margin-left: 12px;
1
+ .checkbox-wrapper label {
2
+ display: grid;
3
+ grid-template-columns: 1em auto;
4
+ gap: 0.5em;
5
+ cursor: pointer;
6
6
  }
7
7
 
8
- .complex-menu-checkbox {
9
- border-radius: 2px;
10
- width: 14px;
11
- height: 14px;
12
- margin-right: 8px;
13
- border: 1px solid var(--core-primary-4);
14
- display: inline-flex;
15
- justify-content: center;
16
- align-items: center;
8
+ .checkbox-wrapper span {
9
+ margin-left: 4px;
17
10
  }
18
11
 
19
- .complex-menu-checkbox-label {
20
- display: inline-block;
12
+ .checkbox-wrapper input[type="checkbox"] {
13
+ cursor: pointer;
14
+
15
+ /* Remove native input styles */
16
+ appearance: none;
17
+ margin: 0;
18
+
19
+ /* Mkae it look like a box */
20
+ font: inherit;
21
+ color: var(--font-color);
22
+ width: 16px;
23
+ height: 16px;
24
+ border: 0.12em solid currentcolor;
25
+ border-radius: 5px;
26
+
27
+ /* Bump it down slightly so that the label looks centered */
28
+ transform: translateY(1px);
29
+
30
+ /* Make the checkmark look nice and centered */
31
+ display: grid;
32
+ place-content: center;
21
33
  }
22
34
 
23
- .complex-menu-checkbox.checked {
24
- border: 1px solid var(--accent-primary);
25
- font-size: 12px;
35
+ .checkbox-wrapper input[type="checkbox"]::before {
36
+ /* Create checkmark (initially invisible) */
37
+ content: "";
38
+ width: 0.65em;
39
+ height: 0.65em;
40
+ clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);
41
+ transform: scale(0);
42
+ transform-origin: bottom left;
43
+ transition: 120ms transform ease-in-out;
44
+ box-shadow: inset 1em 1em var(--accent-primary);
45
+
46
+ /* Windows High Contrast Mode */
47
+ background-color: canvastext;
26
48
  }
27
49
 
28
- .complex-menu-checkbox.checked .finsemble-icon {
29
- color: var(--accent-primary);
50
+ .checkbox-wrapper input[type="checkbox"]:checked {
51
+ border-color: var(--accent-primary);
52
+ }
53
+
54
+ .checkbox-wrapper input[type="checkbox"]:checked::before {
55
+ /* Set checkmark to visible */
56
+ transform: scale(1);
57
+ background-color: var(--accent-primary);
58
+ }
59
+
60
+ .checkbox-wrapper input[type="checkbox"]:disabled,
61
+ .checkbox-wrapper input[type="checkbox"]:disabled + span {
62
+ cursor: default;
63
+ opacity: 0.3;
64
+ }
65
+
66
+ .indent-5px {
67
+ display: flex;
68
+ margin-top: 5px;
30
69
  }
@@ -4,8 +4,8 @@
4
4
 
5
5
  .finsemble-icon svg {
6
6
  font-size: 1em;
7
- width: 1em;
8
- height: 1em;
7
+ width: 0.7em;
8
+ height: 0.7em;
9
9
  fill: currentcolor;
10
10
  display: inline-block;
11
11
  color: inherit;
@@ -22,7 +22,10 @@
22
22
 
23
23
  .toggle-text-label-wrapper {
24
24
  display: flex;
25
- width: 100%;
25
+ max-width: 330px;
26
+ border: #22262f 2px solid;
27
+ border-radius: 7px;
28
+ background: #22262f;
26
29
  }
27
30
 
28
31
  .toggle-text-label {
@@ -46,6 +46,8 @@ export const initFSBL = (windowObject) => {
46
46
  setPreference: () => { },
47
47
  getValues: () => { },
48
48
  getPreferences: () => { },
49
+ addListener: () => { },
50
+ removeListener: () => { },
49
51
  },
50
52
  DialogManager: {
51
53
  spawnDialog: (obj1) => {
@@ -72,6 +74,7 @@ export const initFSBL = (windowObject) => {
72
74
  transmit: () => { },
73
75
  addListener: () => { },
74
76
  subscribe: () => { },
77
+ removeListener: () => { },
75
78
  },
76
79
  SearchClient: {
77
80
  invokeItemAction: () => { },
@@ -95,6 +98,12 @@ export const initFSBL = (windowObject) => {
95
98
  cb(null, null);
96
99
  },
97
100
  },
101
+ NotificationClient: {
102
+ getPreferences: async () => {
103
+ return { newNotificationHaloPeriodSeconds: 3 };
104
+ },
105
+ performAction: async () => { },
106
+ },
98
107
  },
99
108
  onShutdown: () => { },
100
109
  System: {
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/components/common/helpers.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { FileInputUploadCb } from \"./FileInput\";\nimport { Story } from \"@storybook/react/types-6-0\";\n\nimport { SDServerInfo } from \"../../types/smartDesktopDesignerTypes\";\nimport { Provider } from \"react-redux\";\nimport { createStore } from \"../../store\";\n\nexport const uploadFunction: FileInputUploadCb = (fileObject: File) =>\n\tnew Promise((resolve) => {\n\t\tresolve({\n\t\t\terr: \"\",\n\t\t\tpath: fileObject.name,\n\t\t});\n\t});\n\nexport const initFSBL = (windowObject?: any) => {\n\t// Poor man's global that can take any appendage\n\tconst globalAsAny: any = global;\n\n\tif (!windowObject) {\n\t\twindowObject = globalAsAny.window = {} as any;\n\t} else {\n\t\twindowObject = window;\n\n\t\tsetTimeout(() => {\n\t\t\tconst event = window.document.createEvent(\"Event\");\n\n\t\t\tevent?.initEvent(\"FSBLReady\", true, true);\n\n\t\t\twindow.dispatchEvent(event);\n\t\t});\n\t}\n\n\tglobalAsAny.FSBL = windowObject.FSBL = {\n\t\taddEventListener: (name: String, callback: () => void) => {\n\t\t\tcallback();\n\t\t},\n\t\tgetFSBLInfo: () =>\n\t\t\tnew Promise((resolve) => {\n\t\t\t\tresolve({\n\t\t\t\t\tFSBLVersion: \"1.0.0\",\n\t\t\t\t});\n\t\t\t}),\n\t\tClients: {\n\t\t\tTmpSmartDesktopClient: {\n\t\t\t\tcheckValidURL(url: string) {\n\t\t\t\t\tif (url.length === 0) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\treturn /^https?:\\/\\/[^\\s]+$/.test(url);\n\t\t\t\t},\n\t\t\t\tcheckValidProjectName(name: string) {\n\t\t\t\t\treturn /^[a-zA-Z0-9 \\-_.]{1,}$/.test(name) && /[a-zA-Z0-9]{1,}/.test(name);\n\t\t\t\t},\n\t\t\t} as unknown,\n\t\t\tConfigClient: {\n\t\t\t\tsetPreference: () => {},\n\t\t\t\tgetValues: () => {},\n\t\t\t\tgetPreferences: () => {},\n\t\t\t},\n\t\t\tDialogManager: {\n\t\t\t\tspawnDialog: (obj1: any) => {\n\t\t\t\t\tconsole.table(obj1);\n\t\t\t\t},\n\t\t\t\tregisterDialogCallback: () => {},\n\t\t\t\trespondToOpener: () => {},\n\t\t\t},\n\t\t\tLauncherClient: {\n\t\t\t\tshowWindow: () => {},\n\t\t\t},\n\t\t\tLogger: {\n\t\t\t\tlog: () => {},\n\t\t\t\terror: () => {},\n\t\t\t\tsystem: {\n\t\t\t\t\tdebug: () => {},\n\t\t\t\t\tlog: () => {},\n\t\t\t\t\terror: () => {},\n\t\t\t\t\tverbose: () => {},\n\t\t\t\t\tdeprecated: () => {},\n\t\t\t\t},\n\t\t\t},\n\t\t\tRouterClient: {\n\t\t\t\ttransmit: () => {},\n\t\t\t\taddListener: () => {},\n\t\t\t\tsubscribe: () => {},\n\t\t\t},\n\t\t\tSearchClient: {\n\t\t\t\tinvokeItemAction: () => {},\n\t\t\t},\n\t\t\tStorageClient: {\n\t\t\t\tsave: () => {},\n\t\t\t\tclearCache: () => {},\n\t\t\t},\n\t\t\tWindowClient: {\n\t\t\t\tfitToDOM: () => {},\n\t\t\t},\n\t\t\tWorkspaceClient: {\n\t\t\t\taddEventListener: () => {},\n\t\t\t\tbringWindowsToFront: () => {},\n\t\t\t\tautoArrange: () => {},\n\t\t\t\tminimizeAll: () => {},\n\t\t\t\tactiveWorkspace: {\n\t\t\t\t\tname: \" \",\n\t\t\t\t},\n\t\t\t\tgetWorkspaceDefinition: (obj: Object, cb: Function) => {\n\t\t\t\t\tcb(null, null);\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tonShutdown: () => {},\n\t\tSystem: {\n\t\t\tgetSDServerInfo: () =>\n\t\t\t\tnew Promise((resolve) => {\n\t\t\t\t\tresolve({} as SDServerInfo);\n\t\t\t\t}),\n\t\t},\n\t\tSystemManagerClient: {\n\t\t\tpublishCheckpointState: () => {},\n\t\t},\n\t} as any;\n\n\tglobalAsAny.FSBL.Clients = {\n\t\t...globalAsAny.FSBL.Clients,\n\t\tWindowClient: {\n\t\t\tfitToDOM: () => {},\n\t\t} as any,\n\t};\n\n\tglobalAsAny.finsembleWindow = windowObject.finsembleWindow = {\n\t\tsetAlwaysOnTop: () => {},\n\t\taddEventListener: () => {},\n\t\tremoveEventListener: () => {},\n\t};\n};\n\nexport function createStory<T>(Component: Function, args: T) {\n\tconst template: Story<T> = (props: T) => {\n\t\tinitFSBL(window);\n\n\t\treturn (\n\t\t\t<Provider store={createStore()}>\n\t\t\t\t<Component {...{ ...args, ...props }} />\n\t\t\t</Provider>\n\t\t);\n\t};\n\n\ttemplate.args = args;\n\n\treturn template;\n}\n"]}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/components/common/helpers.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { FileInputUploadCb } from \"./FileInput\";\nimport { Story } from \"@storybook/react/types-6-0\";\n\nimport { SDServerInfo } from \"../../types/smartDesktopDesignerTypes\";\nimport { Provider } from \"react-redux\";\nimport { createStore } from \"../../store\";\n\nexport const uploadFunction: FileInputUploadCb = (fileObject: File) =>\n\tnew Promise((resolve) => {\n\t\tresolve({\n\t\t\terr: \"\",\n\t\t\tpath: fileObject.name,\n\t\t});\n\t});\n\nexport const initFSBL = (windowObject?: any) => {\n\t// Poor man's global that can take any appendage\n\tconst globalAsAny: any = global;\n\n\tif (!windowObject) {\n\t\twindowObject = globalAsAny.window = {} as any;\n\t} else {\n\t\twindowObject = window;\n\n\t\tsetTimeout(() => {\n\t\t\tconst event = window.document.createEvent(\"Event\");\n\n\t\t\tevent?.initEvent(\"FSBLReady\", true, true);\n\n\t\t\twindow.dispatchEvent(event);\n\t\t});\n\t}\n\n\tglobalAsAny.FSBL = windowObject.FSBL = {\n\t\taddEventListener: (name: String, callback: () => void) => {\n\t\t\tcallback();\n\t\t},\n\t\tgetFSBLInfo: () =>\n\t\t\tnew Promise((resolve) => {\n\t\t\t\tresolve({\n\t\t\t\t\tFSBLVersion: \"1.0.0\",\n\t\t\t\t});\n\t\t\t}),\n\t\tClients: {\n\t\t\tTmpSmartDesktopClient: {\n\t\t\t\tcheckValidURL(url: string) {\n\t\t\t\t\tif (url.length === 0) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\treturn /^https?:\\/\\/[^\\s]+$/.test(url);\n\t\t\t\t},\n\t\t\t\tcheckValidProjectName(name: string) {\n\t\t\t\t\treturn /^[a-zA-Z0-9 \\-_.]{1,}$/.test(name) && /[a-zA-Z0-9]{1,}/.test(name);\n\t\t\t\t},\n\t\t\t} as unknown,\n\t\t\tConfigClient: {\n\t\t\t\tsetPreference: () => {},\n\t\t\t\tgetValues: () => {},\n\t\t\t\tgetPreferences: () => {},\n\t\t\t\taddListener: () => {},\n\t\t\t\tremoveListener: () => {},\n\t\t\t},\n\t\t\tDialogManager: {\n\t\t\t\tspawnDialog: (obj1: any) => {\n\t\t\t\t\tconsole.table(obj1);\n\t\t\t\t},\n\t\t\t\tregisterDialogCallback: () => {},\n\t\t\t\trespondToOpener: () => {},\n\t\t\t},\n\t\t\tLauncherClient: {\n\t\t\t\tshowWindow: () => {},\n\t\t\t},\n\t\t\tLogger: {\n\t\t\t\tlog: () => {},\n\t\t\t\terror: () => {},\n\t\t\t\tsystem: {\n\t\t\t\t\tdebug: () => {},\n\t\t\t\t\tlog: () => {},\n\t\t\t\t\terror: () => {},\n\t\t\t\t\tverbose: () => {},\n\t\t\t\t\tdeprecated: () => {},\n\t\t\t\t},\n\t\t\t},\n\t\t\tRouterClient: {\n\t\t\t\ttransmit: () => {},\n\t\t\t\taddListener: () => {},\n\t\t\t\tsubscribe: () => {},\n\t\t\t\tremoveListener: () => {},\n\t\t\t},\n\t\t\tSearchClient: {\n\t\t\t\tinvokeItemAction: () => {},\n\t\t\t},\n\t\t\tStorageClient: {\n\t\t\t\tsave: () => {},\n\t\t\t\tclearCache: () => {},\n\t\t\t},\n\t\t\tWindowClient: {\n\t\t\t\tfitToDOM: () => {},\n\t\t\t},\n\t\t\tWorkspaceClient: {\n\t\t\t\taddEventListener: () => {},\n\t\t\t\tbringWindowsToFront: () => {},\n\t\t\t\tautoArrange: () => {},\n\t\t\t\tminimizeAll: () => {},\n\t\t\t\tactiveWorkspace: {\n\t\t\t\t\tname: \" \",\n\t\t\t\t},\n\t\t\t\tgetWorkspaceDefinition: (obj: Object, cb: Function) => {\n\t\t\t\t\tcb(null, null);\n\t\t\t\t},\n\t\t\t},\n\t\t\tNotificationClient: {\n\t\t\t\tgetPreferences: async () => {\n\t\t\t\t\treturn { newNotificationHaloPeriodSeconds: 3 };\n\t\t\t\t},\n\t\t\t\tperformAction: async () => {},\n\t\t\t},\n\t\t},\n\t\tonShutdown: () => {},\n\t\tSystem: {\n\t\t\tgetSDServerInfo: () =>\n\t\t\t\tnew Promise((resolve) => {\n\t\t\t\t\tresolve({} as SDServerInfo);\n\t\t\t\t}),\n\t\t},\n\t\tSystemManagerClient: {\n\t\t\tpublishCheckpointState: () => {},\n\t\t},\n\t} as any;\n\n\tglobalAsAny.FSBL.Clients = {\n\t\t...globalAsAny.FSBL.Clients,\n\t\tWindowClient: {\n\t\t\tfitToDOM: () => {},\n\t\t} as any,\n\t};\n\n\tglobalAsAny.finsembleWindow = windowObject.finsembleWindow = {\n\t\tsetAlwaysOnTop: () => {},\n\t\taddEventListener: () => {},\n\t\tremoveEventListener: () => {},\n\t};\n};\n\nexport function createStory<T>(Component: Function, args: T) {\n\tconst template: Story<T> = (props: T) => {\n\t\tinitFSBL(window);\n\n\t\treturn (\n\t\t\t<Provider store={createStore()}>\n\t\t\t\t<Component {...{ ...args, ...props }} />\n\t\t\t</Provider>\n\t\t);\n\t};\n\n\ttemplate.args = args;\n\n\treturn template;\n}\n"]}
@@ -0,0 +1,38 @@
1
+ import React from "react";
2
+ import { ContextMenuProps } from "../ContextMenu";
3
+ import "../../../assets/css/finsemble.css";
4
+ import "../css/styles.css";
5
+ import { ContextMenuAction } from "../../notifications/types";
6
+ declare const _default: {
7
+ title: string;
8
+ component: React.FunctionComponent<ContextMenuProps>;
9
+ };
10
+ export default _default;
11
+ export declare const BasicContextMenuToggle: import("@storybook/react").Story<{
12
+ menuActions: {
13
+ [key: string]: ContextMenuAction;
14
+ };
15
+ message: null;
16
+ isMuteFilterApplied: boolean;
17
+ }>;
18
+ export declare const ContextMenuToggleBottom: import("@storybook/react").Story<{
19
+ menuActions: {
20
+ [key: string]: ContextMenuAction;
21
+ };
22
+ message: null;
23
+ isMuteFilterApplied: boolean;
24
+ }>;
25
+ export declare const ContextMenuToggleRight: import("@storybook/react").Story<{
26
+ menuActions: {
27
+ [key: string]: ContextMenuAction;
28
+ };
29
+ message: null;
30
+ isMuteFilterApplied: boolean;
31
+ }>;
32
+ export declare const ContextMenuToggleBottomRight: import("@storybook/react").Story<{
33
+ menuActions: {
34
+ [key: string]: ContextMenuAction;
35
+ };
36
+ message: null;
37
+ isMuteFilterApplied: boolean;
38
+ }>;
@@ -0,0 +1,70 @@
1
+ import React from "react";
2
+ import ContextMenuToggle from "../ContextMenu";
3
+ import { createStory } from "../helpers";
4
+ import "../../../assets/css/finsemble.css";
5
+ import "../css/styles.css";
6
+ import SnoozeIcon from "../../notifications/icons/SnoozeIcon";
7
+ import EnvelopeCloseIcon from "../../notifications/icons/EnvelopeClose";
8
+ import EnvelopeOpenIcon from "../../notifications/icons/EnvelopeOpen";
9
+ export default {
10
+ title: "Common/ContextMenu",
11
+ component: ContextMenuToggle,
12
+ };
13
+ const contextMenuActions = {
14
+ MARK_AS_UNREAD: {
15
+ name: "MARK_AS_UNREAD",
16
+ icon: React.createElement(EnvelopeCloseIcon, null),
17
+ label: "Mark Unread",
18
+ action: () => {
19
+ console.log("Marked as unread");
20
+ },
21
+ display: true,
22
+ },
23
+ MARK_AS_READ: {
24
+ name: "MARK_AS_READ",
25
+ icon: React.createElement(EnvelopeOpenIcon, null),
26
+ label: "Mark Read",
27
+ action: () => {
28
+ console.log("Marked as read");
29
+ },
30
+ display: true,
31
+ },
32
+ TEST: {
33
+ name: "TEST",
34
+ icon: React.createElement(SnoozeIcon, null),
35
+ label: "Test",
36
+ action: () => {
37
+ console.log("Hello World");
38
+ },
39
+ display: true,
40
+ },
41
+ };
42
+ const overFlowActions = Object.assign({}, contextMenuActions);
43
+ export const BasicContextMenuToggle = createStory(ContextMenuToggle, {
44
+ menuActions: overFlowActions,
45
+ message: null,
46
+ isMuteFilterApplied: false,
47
+ });
48
+ BasicContextMenuToggle.decorators = [
49
+ (Story) => (React.createElement("div", { style: { position: "absolute", left: "1%" } },
50
+ React.createElement(Story, null))),
51
+ ];
52
+ export const ContextMenuToggleBottom = BasicContextMenuToggle.bind({});
53
+ ContextMenuToggleBottom.args = { menuActions: overFlowActions, message: null, isMuteFilterApplied: false };
54
+ ContextMenuToggleBottom.decorators = [
55
+ (Story) => (React.createElement("div", { style: { position: "absolute", bottom: "10%" } },
56
+ React.createElement(Story, null))),
57
+ ];
58
+ export const ContextMenuToggleRight = BasicContextMenuToggle.bind({});
59
+ ContextMenuToggleRight.args = { menuActions: overFlowActions, message: null, isMuteFilterApplied: false };
60
+ ContextMenuToggleRight.decorators = [
61
+ (Story) => (React.createElement("div", { style: { position: "absolute", right: "5%" } },
62
+ React.createElement(Story, null))),
63
+ ];
64
+ export const ContextMenuToggleBottomRight = BasicContextMenuToggle.bind({});
65
+ ContextMenuToggleBottomRight.args = { menuActions: overFlowActions, message: null, isMuteFilterApplied: false };
66
+ ContextMenuToggleBottomRight.decorators = [
67
+ (Story) => (React.createElement("div", { style: { position: "absolute", right: "5%", bottom: "10%" } },
68
+ React.createElement(Story, null))),
69
+ ];
70
+ //# sourceMappingURL=ContextMenu.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContextMenu.stories.js","sourceRoot":"","sources":["../../../../src/components/common/stories/ContextMenu.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport ContextMenuToggle, { ContextMenuProps } from \"../ContextMenu\";\nimport { createStory } from \"../helpers\";\nimport \"../../../assets/css/finsemble.css\";\nimport \"../css/styles.css\";\nimport SnoozeIcon from \"../../notifications/icons/SnoozeIcon\";\nimport EnvelopeCloseIcon from \"../../notifications/icons/EnvelopeClose\";\nimport EnvelopeOpenIcon from \"../../notifications/icons/EnvelopeOpen\";\nimport { ContextMenuAction } from \"../../notifications/types\";\n\nexport default {\n\ttitle: \"Common/ContextMenu\",\n\tcomponent: ContextMenuToggle,\n};\nconst contextMenuActions: { [key: string]: ContextMenuAction } = {\n\tMARK_AS_UNREAD: {\n\t\tname: \"MARK_AS_UNREAD\",\n\t\ticon: <EnvelopeCloseIcon />,\n\t\tlabel: \"Mark Unread\",\n\t\taction: () => {\n\t\t\tconsole.log(\"Marked as unread\");\n\t\t},\n\t\tdisplay: true,\n\t},\n\tMARK_AS_READ: {\n\t\tname: \"MARK_AS_READ\",\n\t\ticon: <EnvelopeOpenIcon />,\n\t\tlabel: \"Mark Read\",\n\t\taction: () => {\n\t\t\tconsole.log(\"Marked as read\");\n\t\t},\n\t\tdisplay: true,\n\t},\n\tTEST: {\n\t\tname: \"TEST\",\n\t\ticon: <SnoozeIcon />,\n\t\tlabel: \"Test\",\n\t\taction: () => {\n\t\t\tconsole.log(\"Hello World\");\n\t\t},\n\t\tdisplay: true,\n\t},\n};\n\nconst overFlowActions = Object.assign({}, contextMenuActions);\n\nexport const BasicContextMenuToggle = createStory(ContextMenuToggle, {\n\tmenuActions: overFlowActions,\n\tmessage: null,\n\tisMuteFilterApplied: false,\n});\nBasicContextMenuToggle.decorators = [\n\t(Story) => (\n\t\t<div style={{ position: \"absolute\", left: \"1%\" }}>\n\t\t\t<Story />\n\t\t</div>\n\t),\n];\n\nexport const ContextMenuToggleBottom = BasicContextMenuToggle.bind({});\nContextMenuToggleBottom.args = { menuActions: overFlowActions, message: null, isMuteFilterApplied: false };\nContextMenuToggleBottom.decorators = [\n\t(Story) => (\n\t\t<div style={{ position: \"absolute\", bottom: \"10%\" }}>\n\t\t\t<Story />\n\t\t</div>\n\t),\n];\n\nexport const ContextMenuToggleRight = BasicContextMenuToggle.bind({});\nContextMenuToggleRight.args = { menuActions: overFlowActions, message: null, isMuteFilterApplied: false };\nContextMenuToggleRight.decorators = [\n\t(Story) => (\n\t\t<div style={{ position: \"absolute\", right: \"5%\" }}>\n\t\t\t<Story />\n\t\t</div>\n\t),\n];\n\nexport const ContextMenuToggleBottomRight = BasicContextMenuToggle.bind({});\nContextMenuToggleBottomRight.args = { menuActions: overFlowActions, message: null, isMuteFilterApplied: false };\nContextMenuToggleBottomRight.decorators = [\n\t(Story) => (\n\t\t<div style={{ position: \"absolute\", right: \"5%\", bottom: \"10%\" }}>\n\t\t\t<Story />\n\t\t</div>\n\t),\n];\n"]}
@@ -6,13 +6,13 @@ declare const _default: {
6
6
  component: React.FunctionComponent<import("../DropdownButton").IFinsembleDropdownActionButtonProps>;
7
7
  };
8
8
  export default _default;
9
- export declare const dropdownButton: import("@storybook/react").Story<{
9
+ export declare const DropdownButtonElement: import("@storybook/react").Story<{
10
10
  buttonLabel: string;
11
11
  buttonOptions: {
12
12
  buttonLabel: string;
13
13
  }[];
14
14
  }>;
15
- export declare const defaultDropdownButton: import("@storybook/react").Story<{
15
+ export declare const DefaultDropdownButtonElement: import("@storybook/react").Story<{
16
16
  buttonLabel: string;
17
17
  buttonOptions: {
18
18
  optionLabel: string;
@@ -20,7 +20,7 @@ export declare const defaultDropdownButton: import("@storybook/react").Story<{
20
20
  caretLocation: string;
21
21
  classNames: string;
22
22
  }>;
23
- export declare const defaultDropdownButtonWithDefault: import("@storybook/react").Story<{
23
+ export declare const DefaultDropdownButtonWithDefaultElement: import("@storybook/react").Story<{
24
24
  buttonLabel: string;
25
25
  buttonOptions: {
26
26
  optionLabel: string;
@@ -8,33 +8,34 @@ export default {
8
8
  title: "Common/DropdownButton",
9
9
  component: DropdownButton,
10
10
  };
11
- export const dropdownButton = createStory(DropdownButton, {
11
+ const options = [{ optionLabel: "Alpha" }, { optionLabel: "Bravo" }, { optionLabel: "Charlie" }];
12
+ const buttonOptions = [{ buttonLabel: "Alpha" }, { buttonLabel: "Bravo" }, { buttonLabel: "Charlie" }];
13
+ export const DropdownButtonElement = createStory(DropdownButton, {
12
14
  buttonLabel: "Label",
13
- buttonOptions: [{ buttonLabel: "Alpha" }, { buttonLabel: "Bravo" }, { buttonLabel: "Charlie" }],
15
+ buttonOptions: buttonOptions,
14
16
  });
15
- dropdownButton.decorators = [
17
+ DropdownButtonElement.decorators = [
16
18
  (Story) => (React.createElement("div", { style: { width: 80 } },
17
19
  React.createElement(Story, null))),
18
20
  ];
19
- export const defaultDropdownButton = createStory(DefaultDropdownButton, {
21
+ export const DefaultDropdownButtonElement = createStory(DefaultDropdownButton, {
20
22
  buttonLabel: "Label",
21
- buttonOptions: [{ optionLabel: "Alpha" }, { optionLabel: "Bravo" }, { optionLabel: "Charlie" }],
23
+ buttonOptions: options,
22
24
  caretLocation: "right",
23
25
  classNames: "push-right",
24
26
  });
25
- defaultDropdownButton.decorators = [
27
+ DefaultDropdownButtonElement.decorators = [
26
28
  (Story) => (React.createElement("div", { style: { width: 150 } },
27
29
  React.createElement(Story, null))),
28
30
  ];
29
- const options = [{ optionLabel: "Alpha" }, { optionLabel: "Bravo" }, { optionLabel: "Charlie" }];
30
- export const defaultDropdownButtonWithDefault = createStory(DefaultDropdownButton, {
31
+ export const DefaultDropdownButtonWithDefaultElement = createStory(DefaultDropdownButton, {
31
32
  buttonLabel: "Label",
32
- buttonOptions: [{ optionLabel: "Alpha" }, { optionLabel: "Bravo" }, { optionLabel: "Charlie" }],
33
+ buttonOptions: options,
33
34
  caretLocation: "right",
34
35
  classNames: "push-right",
35
36
  defaultSelection: options[1],
36
37
  });
37
- defaultDropdownButton.decorators = [
38
+ DefaultDropdownButtonWithDefaultElement.decorators = [
38
39
  (Story) => (React.createElement("div", { style: { width: 150 } },
39
40
  React.createElement(Story, null))),
40
41
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownButton.stories.js","sourceRoot":"","sources":["../../../../src/components/common/stories/DropdownButton.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAC/C,OAAO,qBAAqB,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,mCAAmC,CAAC;AAC3C,OAAO,mBAAmB,CAAC;AAC3B,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,eAAe;IACd,KAAK,EAAE,uBAAuB;IAC9B,SAAS,EAAE,cAAc;CACzB,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,WAAW,CAAC,cAAc,EAAE;IACzD,WAAW,EAAE,OAAO;IACpB,aAAa,EAAE,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;CAC/F,CAAC,CAAC;AACH,cAAc,CAAC,UAAU,GAAG;IAC3B,CAAC,KAAK,EAAE,EAAE,CAAC,CACV,6BAAK,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QACxB,oBAAC,KAAK,OAAG,CACJ,CACN;CACD,CAAC;AACF,MAAM,CAAC,MAAM,qBAAqB,GAAG,WAAW,CAAC,qBAAqB,EAAE;IACvE,WAAW,EAAE,OAAO;IACpB,aAAa,EAAE,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;IAC/F,aAAa,EAAE,OAAO;IACtB,UAAU,EAAE,YAAY;CACxB,CAAC,CAAC;AACH,qBAAqB,CAAC,UAAU,GAAG;IAClC,CAAC,KAAK,EAAE,EAAE,CAAC,CACV,6BAAK,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;QACzB,oBAAC,KAAK,OAAG,CACJ,CACN;CACD,CAAC;AAEF,MAAM,OAAO,GAAG,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;AAEjG,MAAM,CAAC,MAAM,gCAAgC,GAAG,WAAW,CAAC,qBAAqB,EAAE;IAClF,WAAW,EAAE,OAAO;IACpB,aAAa,EAAE,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;IAC/F,aAAa,EAAE,OAAO;IACtB,UAAU,EAAE,YAAY;IACxB,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAC;CAC5B,CAAC,CAAC;AACH,qBAAqB,CAAC,UAAU,GAAG;IAClC,CAAC,KAAK,EAAE,EAAE,CAAC,CACV,6BAAK,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;QACzB,oBAAC,KAAK,OAAG,CACJ,CACN;CACD,CAAC","sourcesContent":["import DropdownButton from \"../DropdownButton\";\nimport DefaultDropdownButton from \"../../shared/DefaultDropdownButton\";\nimport { createStory } from \"../helpers\";\nimport \"../../../assets/css/finsemble.css\";\nimport \"../css/styles.css\";\nimport React from \"react\";\n\nexport default {\n\ttitle: \"Common/DropdownButton\",\n\tcomponent: DropdownButton,\n};\n\nexport const dropdownButton = createStory(DropdownButton, {\n\tbuttonLabel: \"Label\",\n\tbuttonOptions: [{ buttonLabel: \"Alpha\" }, { buttonLabel: \"Bravo\" }, { buttonLabel: \"Charlie\" }],\n});\ndropdownButton.decorators = [\n\t(Story) => (\n\t\t<div style={{ width: 80 }}>\n\t\t\t<Story />\n\t\t</div>\n\t),\n];\nexport const defaultDropdownButton = createStory(DefaultDropdownButton, {\n\tbuttonLabel: \"Label\",\n\tbuttonOptions: [{ optionLabel: \"Alpha\" }, { optionLabel: \"Bravo\" }, { optionLabel: \"Charlie\" }],\n\tcaretLocation: \"right\",\n\tclassNames: \"push-right\",\n});\ndefaultDropdownButton.decorators = [\n\t(Story) => (\n\t\t<div style={{ width: 150 }}>\n\t\t\t<Story />\n\t\t</div>\n\t),\n];\n\nconst options = [{ optionLabel: \"Alpha\" }, { optionLabel: \"Bravo\" }, { optionLabel: \"Charlie\" }];\n\nexport const defaultDropdownButtonWithDefault = createStory(DefaultDropdownButton, {\n\tbuttonLabel: \"Label\",\n\tbuttonOptions: [{ optionLabel: \"Alpha\" }, { optionLabel: \"Bravo\" }, { optionLabel: \"Charlie\" }],\n\tcaretLocation: \"right\",\n\tclassNames: \"push-right\",\n\tdefaultSelection: options[1],\n});\ndefaultDropdownButton.decorators = [\n\t(Story) => (\n\t\t<div style={{ width: 150 }}>\n\t\t\t<Story />\n\t\t</div>\n\t),\n];\n"]}
1
+ {"version":3,"file":"DropdownButton.stories.js","sourceRoot":"","sources":["../../../../src/components/common/stories/DropdownButton.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAC/C,OAAO,qBAAqB,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,mCAAmC,CAAC;AAC3C,OAAO,mBAAmB,CAAC;AAC3B,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,eAAe;IACd,KAAK,EAAE,uBAAuB;IAC9B,SAAS,EAAE,cAAc;CACzB,CAAC;AACF,MAAM,OAAO,GAAG,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;AACjG,MAAM,aAAa,GAAG,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;AAEvG,MAAM,CAAC,MAAM,qBAAqB,GAAG,WAAW,CAAC,cAAc,EAAE;IAChE,WAAW,EAAE,OAAO;IACpB,aAAa,EAAE,aAAa;CAC5B,CAAC,CAAC;AACH,qBAAqB,CAAC,UAAU,GAAG;IAClC,CAAC,KAAK,EAAE,EAAE,CAAC,CACV,6BAAK,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QACxB,oBAAC,KAAK,OAAG,CACJ,CACN;CACD,CAAC;AACF,MAAM,CAAC,MAAM,4BAA4B,GAAG,WAAW,CAAC,qBAAqB,EAAE;IAC9E,WAAW,EAAE,OAAO;IACpB,aAAa,EAAE,OAAO;IACtB,aAAa,EAAE,OAAO;IACtB,UAAU,EAAE,YAAY;CACxB,CAAC,CAAC;AACH,4BAA4B,CAAC,UAAU,GAAG;IACzC,CAAC,KAAK,EAAE,EAAE,CAAC,CACV,6BAAK,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;QACzB,oBAAC,KAAK,OAAG,CACJ,CACN;CACD,CAAC;AAEF,MAAM,CAAC,MAAM,uCAAuC,GAAG,WAAW,CAAC,qBAAqB,EAAE;IACzF,WAAW,EAAE,OAAO;IACpB,aAAa,EAAE,OAAO;IACtB,aAAa,EAAE,OAAO;IACtB,UAAU,EAAE,YAAY;IACxB,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAC;CAC5B,CAAC,CAAC;AACH,uCAAuC,CAAC,UAAU,GAAG;IACpD,CAAC,KAAK,EAAE,EAAE,CAAC,CACV,6BAAK,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;QACzB,oBAAC,KAAK,OAAG,CACJ,CACN;CACD,CAAC","sourcesContent":["import DropdownButton from \"../DropdownButton\";\nimport DefaultDropdownButton from \"../../shared/DefaultDropdownButton\";\nimport { createStory } from \"../helpers\";\nimport \"../../../assets/css/finsemble.css\";\nimport \"../css/styles.css\";\nimport React from \"react\";\n\nexport default {\n\ttitle: \"Common/DropdownButton\",\n\tcomponent: DropdownButton,\n};\nconst options = [{ optionLabel: \"Alpha\" }, { optionLabel: \"Bravo\" }, { optionLabel: \"Charlie\" }];\nconst buttonOptions = [{ buttonLabel: \"Alpha\" }, { buttonLabel: \"Bravo\" }, { buttonLabel: \"Charlie\" }];\n\nexport const DropdownButtonElement = createStory(DropdownButton, {\n\tbuttonLabel: \"Label\",\n\tbuttonOptions: buttonOptions,\n});\nDropdownButtonElement.decorators = [\n\t(Story) => (\n\t\t<div style={{ width: 80 }}>\n\t\t\t<Story />\n\t\t</div>\n\t),\n];\nexport const DefaultDropdownButtonElement = createStory(DefaultDropdownButton, {\n\tbuttonLabel: \"Label\",\n\tbuttonOptions: options,\n\tcaretLocation: \"right\",\n\tclassNames: \"push-right\",\n});\nDefaultDropdownButtonElement.decorators = [\n\t(Story) => (\n\t\t<div style={{ width: 150 }}>\n\t\t\t<Story />\n\t\t</div>\n\t),\n];\n\nexport const DefaultDropdownButtonWithDefaultElement = createStory(DefaultDropdownButton, {\n\tbuttonLabel: \"Label\",\n\tbuttonOptions: options,\n\tcaretLocation: \"right\",\n\tclassNames: \"push-right\",\n\tdefaultSelection: options[1],\n});\nDefaultDropdownButtonWithDefaultElement.decorators = [\n\t(Story) => (\n\t\t<div style={{ width: 150 }}>\n\t\t\t<Story />\n\t\t</div>\n\t),\n];\n"]}