@deephaven/components 0.22.3-beta.18 → 0.22.3-beta.21

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 (178) hide show
  1. package/dist/AutoCompleteInput.js +12 -85
  2. package/dist/AutoCompleteInput.js.map +1 -1
  3. package/dist/AutoResizeTextarea.d.ts +5 -5
  4. package/dist/AutoResizeTextarea.d.ts.map +1 -1
  5. package/dist/AutoResizeTextarea.js +8 -23
  6. package/dist/AutoResizeTextarea.js.map +1 -1
  7. package/dist/BasicModal.d.ts +28 -1
  8. package/dist/BasicModal.d.ts.map +1 -1
  9. package/dist/BasicModal.js +2 -8
  10. package/dist/BasicModal.js.map +1 -1
  11. package/dist/Button.js +8 -34
  12. package/dist/Button.js.map +1 -1
  13. package/dist/ButtonGroup.d.ts +6 -6
  14. package/dist/ButtonGroup.d.ts.map +1 -1
  15. package/dist/ButtonGroup.js +2 -4
  16. package/dist/ButtonGroup.js.map +1 -1
  17. package/dist/ButtonOld.js.map +1 -1
  18. package/dist/CardFlip.d.ts +1 -1
  19. package/dist/CardFlip.d.ts.map +1 -1
  20. package/dist/CardFlip.js +2 -7
  21. package/dist/CardFlip.js.map +1 -1
  22. package/dist/Checkbox.js +3 -14
  23. package/dist/Checkbox.js.map +1 -1
  24. package/dist/Collapse.js +0 -15
  25. package/dist/Collapse.js.map +1 -1
  26. package/dist/ComboBox.js +4 -83
  27. package/dist/ComboBox.js.map +1 -1
  28. package/dist/CopyButton.d.ts +1 -1
  29. package/dist/CopyButton.d.ts.map +1 -1
  30. package/dist/CopyButton.js +2 -4
  31. package/dist/CopyButton.js.map +1 -1
  32. package/dist/CustomTimeSelect.js +2 -86
  33. package/dist/CustomTimeSelect.js.map +1 -1
  34. package/dist/DateInput.js.map +1 -1
  35. package/dist/DateInputUtils.js +0 -7
  36. package/dist/DateInputUtils.js.map +1 -1
  37. package/dist/DateTimeInput.js +7 -10
  38. package/dist/DateTimeInput.js.map +1 -1
  39. package/dist/DebouncedSearchInput.js +0 -14
  40. package/dist/DebouncedSearchInput.js.map +1 -1
  41. package/dist/DragUtils.js +4 -16
  42. package/dist/DragUtils.js.map +1 -1
  43. package/dist/DraggableItemList.d.ts.map +1 -1
  44. package/dist/DraggableItemList.js +22 -44
  45. package/dist/DraggableItemList.js.map +1 -1
  46. package/dist/EditableItemList.d.ts +1 -1
  47. package/dist/EditableItemList.d.ts.map +1 -1
  48. package/dist/EditableItemList.js +2 -6
  49. package/dist/EditableItemList.js.map +1 -1
  50. package/dist/HierarchicalCheckboxMenu.js +6 -28
  51. package/dist/HierarchicalCheckboxMenu.js.map +1 -1
  52. package/dist/ItemList.d.ts.map +1 -1
  53. package/dist/ItemList.js +22 -115
  54. package/dist/ItemList.js.map +1 -1
  55. package/dist/ItemListItem.d.ts +0 -1
  56. package/dist/ItemListItem.d.ts.map +1 -1
  57. package/dist/ItemListItem.js +26 -50
  58. package/dist/ItemListItem.js.map +1 -1
  59. package/dist/LoadingOverlay.d.ts +1 -1
  60. package/dist/LoadingOverlay.d.ts.map +1 -1
  61. package/dist/LoadingOverlay.js +3 -5
  62. package/dist/LoadingOverlay.js.map +1 -1
  63. package/dist/LoadingSpinner.d.ts +1 -1
  64. package/dist/LoadingSpinner.d.ts.map +1 -1
  65. package/dist/LoadingSpinner.js +2 -4
  66. package/dist/LoadingSpinner.js.map +1 -1
  67. package/dist/MaskedInput.js +26 -85
  68. package/dist/MaskedInput.js.map +1 -1
  69. package/dist/Option.d.ts +1 -1
  70. package/dist/Option.d.ts.map +1 -1
  71. package/dist/Option.js +2 -4
  72. package/dist/Option.js.map +1 -1
  73. package/dist/RadioGroup.d.ts +1 -1
  74. package/dist/RadioGroup.d.ts.map +1 -1
  75. package/dist/RadioGroup.js +4 -6
  76. package/dist/RadioGroup.js.map +1 -1
  77. package/dist/RadioItem.js +0 -1
  78. package/dist/RadioItem.js.map +1 -1
  79. package/dist/SearchInput.js +2 -13
  80. package/dist/SearchInput.js.map +1 -1
  81. package/dist/Select.d.ts +1 -1
  82. package/dist/Select.d.ts.map +1 -1
  83. package/dist/Select.js +2 -4
  84. package/dist/Select.js.map +1 -1
  85. package/dist/SelectValueList.js +0 -28
  86. package/dist/SelectValueList.js.map +1 -1
  87. package/dist/SocketedButton.js.map +1 -1
  88. package/dist/ThemeExport.js +0 -4
  89. package/dist/ThemeExport.js.map +1 -1
  90. package/dist/TimeInput.js +2 -12
  91. package/dist/TimeInput.js.map +1 -1
  92. package/dist/TimeSlider.d.ts +1 -1
  93. package/dist/TimeSlider.d.ts.map +1 -1
  94. package/dist/TimeSlider.js +19 -33
  95. package/dist/TimeSlider.js.map +1 -1
  96. package/dist/ToastNotification.d.ts +4 -4
  97. package/dist/ToastNotification.d.ts.map +1 -1
  98. package/dist/ToastNotification.js +2 -4
  99. package/dist/ToastNotification.js.map +1 -1
  100. package/dist/UISwitch.d.ts +1 -1
  101. package/dist/UISwitch.d.ts.map +1 -1
  102. package/dist/UISwitch.js +2 -4
  103. package/dist/UISwitch.js.map +1 -1
  104. package/dist/ValidateLabelInput.d.ts.map +1 -1
  105. package/dist/ValidateLabelInput.js +3 -3
  106. package/dist/ValidateLabelInput.js.map +1 -1
  107. package/dist/context-actions/ContextActionUtils.js +9 -40
  108. package/dist/context-actions/ContextActionUtils.js.map +1 -1
  109. package/dist/context-actions/ContextActions.js +1 -34
  110. package/dist/context-actions/ContextActions.js.map +1 -1
  111. package/dist/context-actions/ContextMenu.js +29 -110
  112. package/dist/context-actions/ContextMenu.js.map +1 -1
  113. package/dist/context-actions/ContextMenuItem.d.ts.map +1 -1
  114. package/dist/context-actions/ContextMenuItem.js +3 -19
  115. package/dist/context-actions/ContextMenuItem.js.map +1 -1
  116. package/dist/context-actions/ContextMenuRoot.js +7 -26
  117. package/dist/context-actions/ContextMenuRoot.js.map +1 -1
  118. package/dist/context-actions/GlobalContextAction.js +0 -15
  119. package/dist/context-actions/GlobalContextAction.js.map +1 -1
  120. package/dist/context-actions/GlobalContextActions.js +0 -6
  121. package/dist/context-actions/GlobalContextActions.js.map +1 -1
  122. package/dist/context-actions/index.js.map +1 -1
  123. package/dist/index.js.map +1 -1
  124. package/dist/menu-actions/DropdownMenu.js +4 -32
  125. package/dist/menu-actions/DropdownMenu.js.map +1 -1
  126. package/dist/menu-actions/Menu.js +7 -52
  127. package/dist/menu-actions/Menu.js.map +1 -1
  128. package/dist/menu-actions/index.d.ts +2 -1
  129. package/dist/menu-actions/index.d.ts.map +1 -1
  130. package/dist/menu-actions/index.js +2 -2
  131. package/dist/menu-actions/index.js.map +1 -1
  132. package/dist/modal/Modal.d.ts +2 -2
  133. package/dist/modal/Modal.d.ts.map +1 -1
  134. package/dist/modal/Modal.js +3 -9
  135. package/dist/modal/Modal.js.map +1 -1
  136. package/dist/modal/ModalBody.d.ts +1 -1
  137. package/dist/modal/ModalBody.d.ts.map +1 -1
  138. package/dist/modal/ModalBody.js +2 -4
  139. package/dist/modal/ModalBody.js.map +1 -1
  140. package/dist/modal/ModalFooter.d.ts +1 -1
  141. package/dist/modal/ModalFooter.d.ts.map +1 -1
  142. package/dist/modal/ModalFooter.js +2 -4
  143. package/dist/modal/ModalFooter.js.map +1 -1
  144. package/dist/modal/ModalHeader.d.ts +1 -1
  145. package/dist/modal/ModalHeader.d.ts.map +1 -1
  146. package/dist/modal/ModalHeader.js +2 -4
  147. package/dist/modal/ModalHeader.js.map +1 -1
  148. package/dist/modal/index.js.map +1 -1
  149. package/dist/navigation/Menu.d.ts +1 -1
  150. package/dist/navigation/Menu.d.ts.map +1 -1
  151. package/dist/navigation/Menu.js +2 -2
  152. package/dist/navigation/Menu.js.map +1 -1
  153. package/dist/navigation/MenuItem.d.ts +1 -1
  154. package/dist/navigation/MenuItem.d.ts.map +1 -1
  155. package/dist/navigation/MenuItem.js +4 -7
  156. package/dist/navigation/MenuItem.js.map +1 -1
  157. package/dist/navigation/Page.d.ts +1 -1
  158. package/dist/navigation/Page.d.ts.map +1 -1
  159. package/dist/navigation/Page.js +2 -3
  160. package/dist/navigation/Page.js.map +1 -1
  161. package/dist/navigation/Stack.d.ts +1 -1
  162. package/dist/navigation/Stack.d.ts.map +1 -1
  163. package/dist/navigation/Stack.js +3 -6
  164. package/dist/navigation/Stack.js.map +1 -1
  165. package/dist/navigation/index.js.map +1 -1
  166. package/dist/popper/Popper.d.ts.map +1 -1
  167. package/dist/popper/Popper.js +13 -46
  168. package/dist/popper/Popper.js.map +1 -1
  169. package/dist/popper/Tooltip.js +0 -56
  170. package/dist/popper/Tooltip.js.map +1 -1
  171. package/dist/popper/index.js.map +1 -1
  172. package/dist/shortcuts/GlobalShortcuts.js.map +1 -1
  173. package/dist/shortcuts/Shortcut.js +19 -76
  174. package/dist/shortcuts/Shortcut.js.map +1 -1
  175. package/dist/shortcuts/ShortcutRegistry.js +3 -18
  176. package/dist/shortcuts/ShortcutRegistry.js.map +1 -1
  177. package/dist/shortcuts/index.js.map +1 -1
  178. package/package.json +8 -8
@@ -6,6 +6,6 @@ export interface EditableItemListProps {
6
6
  onAdd: (item: string) => void;
7
7
  validate?: (item: string) => Error | null;
8
8
  }
9
- declare const EditableItemList: (props: EditableItemListProps) => React.ReactElement;
9
+ declare function EditableItemList(props: EditableItemListProps): React.ReactElement;
10
10
  export default EditableItemList;
11
11
  //# sourceMappingURL=EditableItemList.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EditableItemList.d.ts","sourceRoot":"","sources":["../src/EditableItemList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAMN,MAAM,OAAO,CAAC;AAOf,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACpC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,GAAG,IAAI,CAAC;CAC3C;AAGD,QAAA,MAAM,gBAAgB,UAAW,qBAAqB,KAAG,MAAM,YAmH9D,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"EditableItemList.d.ts","sourceRoot":"","sources":["../src/EditableItemList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAMN,MAAM,OAAO,CAAC;AAOf,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACpC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,GAAG,IAAI,CAAC;CAC3C;AAGD,iBAAS,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,KAAK,CAAC,YAAY,CAmH1E;AAED,eAAe,gBAAgB,CAAC"}
@@ -4,9 +4,8 @@ import clamp from 'lodash.clamp';
4
4
  import { vsAdd, vsTrash } from '@deephaven/icons';
5
5
  import { RangeUtils } from '@deephaven/utils';
6
6
  import { Button, ItemList } from "./index.js";
7
-
8
7
  // Display a list of items with an input for adding new items, and Add/Delete buttons
9
- var EditableItemList = props => {
8
+ function EditableItemList(props) {
10
9
  var {
11
10
  isInvalid = false,
12
11
  items,
@@ -28,9 +27,7 @@ var EditableItemList = props => {
28
27
  if (value === '') {
29
28
  return;
30
29
  }
31
-
32
30
  var validationError = validate(value);
33
-
34
31
  if (validationError == null) {
35
32
  onAdd(value);
36
33
  setValue('');
@@ -103,7 +100,6 @@ var EditableItemList = props => {
103
100
  tooltip: "Delete selected items",
104
101
  "data-testid": "delete-item-button"
105
102
  }))));
106
- };
107
-
103
+ }
108
104
  export default EditableItemList;
109
105
  //# sourceMappingURL=EditableItemList.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EditableItemList.js","names":["React","useCallback","useMemo","useState","classNames","clamp","vsAdd","vsTrash","RangeUtils","Button","ItemList","EditableItemList","props","isInvalid","items","onAdd","undefined","onDelete","validate","inputError","setInputError","selectedRanges","setSelectedRanges","value","setValue","handleSelectionChange","ranges","handleDelete","getItemsInRanges","handleAdd","validationError","handleInputChange","event","inputValue","target","handleInputFocus","handleInputKeyDown","key","containerHeight","length","DEFAULT_ROW_HEIGHT","height","map","item","index","isSelected"],"sources":["../src/EditableItemList.tsx"],"sourcesContent":["import React, {\n ChangeEvent,\n KeyboardEvent,\n useCallback,\n useMemo,\n useState,\n} from 'react';\nimport classNames from 'classnames';\nimport clamp from 'lodash.clamp';\nimport { vsAdd, vsTrash } from '@deephaven/icons';\nimport { Range, RangeUtils } from '@deephaven/utils';\nimport { Button, ItemList } from '.';\n\nexport interface EditableItemListProps {\n isInvalid?: boolean;\n items: string[];\n onDelete: (items: string[]) => void;\n onAdd: (item: string) => void;\n validate?: (item: string) => Error | null;\n}\n\n// Display a list of items with an input for adding new items, and Add/Delete buttons\nconst EditableItemList = (props: EditableItemListProps): React.ReactElement => {\n const {\n isInvalid = false,\n items,\n onAdd = () => undefined,\n onDelete = () => undefined,\n validate = () => null,\n } = props;\n const [inputError, setInputError] = useState<Error | null>(null);\n const [selectedRanges, setSelectedRanges] = useState<Range[]>([]);\n const [value, setValue] = useState('');\n\n const handleSelectionChange = useCallback((ranges: Range[]) => {\n setSelectedRanges(ranges);\n }, []);\n\n const handleDelete = useCallback(() => {\n onDelete(RangeUtils.getItemsInRanges(items, selectedRanges));\n setSelectedRanges([]);\n }, [items, selectedRanges, onDelete]);\n\n const handleAdd = useCallback(() => {\n if (value === '') {\n return;\n }\n const validationError = validate(value);\n if (validationError == null) {\n onAdd(value);\n setValue('');\n } else {\n setInputError(validationError);\n }\n }, [value, onAdd, validate]);\n\n const handleInputChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const { value: inputValue } = event.target;\n setValue(inputValue);\n setInputError(inputValue === '' ? null : validate(inputValue));\n },\n [validate]\n );\n\n const handleInputFocus = useCallback(() => {\n setSelectedRanges([]);\n }, []);\n\n const handleInputKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if (event.key === 'Enter') {\n handleAdd();\n }\n },\n [handleAdd]\n );\n\n const containerHeight = useMemo(\n (): number => 14 + clamp(items.length, 1, 6) * ItemList.DEFAULT_ROW_HEIGHT,\n [items.length]\n );\n\n return (\n <div\n className={classNames('editable-item-list-container', {\n 'is-invalid': isInvalid,\n })}\n >\n <div style={{ height: containerHeight }}>\n <ItemList\n itemCount={items.length}\n items={items.map((item, index) => ({\n value: item,\n isSelected: RangeUtils.isSelected(selectedRanges, index),\n }))}\n offset={0}\n selectedRanges={selectedRanges}\n onSelectionChange={handleSelectionChange}\n isMultiSelect\n />\n </div>\n <div className=\"d-flex flex-row pt-2\">\n <div className=\"d-flex flex-grow-1\">\n <input\n className={classNames('form-control', {\n 'is-invalid': inputError != null,\n })}\n placeholder=\"Enter value\"\n type=\"text\"\n value={value}\n onChange={handleInputChange}\n onFocus={handleInputFocus}\n onKeyDown={handleInputKeyDown}\n />\n </div>\n <div className=\"d-flex align-items-start mt-1 ml-2\">\n <Button\n kind=\"ghost\"\n onClick={handleAdd}\n disabled={inputError != null || value === ''}\n icon={vsAdd}\n tooltip=\"Add new item\"\n data-testid=\"add-item-button\"\n />\n <Button\n kind=\"ghost\"\n onClick={handleDelete}\n disabled={selectedRanges.length === 0}\n icon={vsTrash}\n tooltip=\"Delete selected items\"\n data-testid=\"delete-item-button\"\n />\n </div>\n </div>\n </div>\n );\n};\n\nexport default EditableItemList;\n"],"mappings":"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"}
1
+ {"version":3,"file":"EditableItemList.js","names":["React","useCallback","useMemo","useState","classNames","clamp","vsAdd","vsTrash","RangeUtils","Button","ItemList","EditableItemList","props","isInvalid","items","onAdd","undefined","onDelete","validate","inputError","setInputError","selectedRanges","setSelectedRanges","value","setValue","handleSelectionChange","ranges","handleDelete","getItemsInRanges","handleAdd","validationError","handleInputChange","event","inputValue","target","handleInputFocus","handleInputKeyDown","key","containerHeight","length","DEFAULT_ROW_HEIGHT","height","map","item","index","isSelected"],"sources":["../src/EditableItemList.tsx"],"sourcesContent":["import React, {\n ChangeEvent,\n KeyboardEvent,\n useCallback,\n useMemo,\n useState,\n} from 'react';\nimport classNames from 'classnames';\nimport clamp from 'lodash.clamp';\nimport { vsAdd, vsTrash } from '@deephaven/icons';\nimport { Range, RangeUtils } from '@deephaven/utils';\nimport { Button, ItemList } from '.';\n\nexport interface EditableItemListProps {\n isInvalid?: boolean;\n items: string[];\n onDelete: (items: string[]) => void;\n onAdd: (item: string) => void;\n validate?: (item: string) => Error | null;\n}\n\n// Display a list of items with an input for adding new items, and Add/Delete buttons\nfunction EditableItemList(props: EditableItemListProps): React.ReactElement {\n const {\n isInvalid = false,\n items,\n onAdd = () => undefined,\n onDelete = () => undefined,\n validate = () => null,\n } = props;\n const [inputError, setInputError] = useState<Error | null>(null);\n const [selectedRanges, setSelectedRanges] = useState<Range[]>([]);\n const [value, setValue] = useState('');\n\n const handleSelectionChange = useCallback((ranges: Range[]) => {\n setSelectedRanges(ranges);\n }, []);\n\n const handleDelete = useCallback(() => {\n onDelete(RangeUtils.getItemsInRanges(items, selectedRanges));\n setSelectedRanges([]);\n }, [items, selectedRanges, onDelete]);\n\n const handleAdd = useCallback(() => {\n if (value === '') {\n return;\n }\n const validationError = validate(value);\n if (validationError == null) {\n onAdd(value);\n setValue('');\n } else {\n setInputError(validationError);\n }\n }, [value, onAdd, validate]);\n\n const handleInputChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const { value: inputValue } = event.target;\n setValue(inputValue);\n setInputError(inputValue === '' ? null : validate(inputValue));\n },\n [validate]\n );\n\n const handleInputFocus = useCallback(() => {\n setSelectedRanges([]);\n }, []);\n\n const handleInputKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if (event.key === 'Enter') {\n handleAdd();\n }\n },\n [handleAdd]\n );\n\n const containerHeight = useMemo(\n (): number => 14 + clamp(items.length, 1, 6) * ItemList.DEFAULT_ROW_HEIGHT,\n [items.length]\n );\n\n return (\n <div\n className={classNames('editable-item-list-container', {\n 'is-invalid': isInvalid,\n })}\n >\n <div style={{ height: containerHeight }}>\n <ItemList\n itemCount={items.length}\n items={items.map((item, index) => ({\n value: item,\n isSelected: RangeUtils.isSelected(selectedRanges, index),\n }))}\n offset={0}\n selectedRanges={selectedRanges}\n onSelectionChange={handleSelectionChange}\n isMultiSelect\n />\n </div>\n <div className=\"d-flex flex-row pt-2\">\n <div className=\"d-flex flex-grow-1\">\n <input\n className={classNames('form-control', {\n 'is-invalid': inputError != null,\n })}\n placeholder=\"Enter value\"\n type=\"text\"\n value={value}\n onChange={handleInputChange}\n onFocus={handleInputFocus}\n onKeyDown={handleInputKeyDown}\n />\n </div>\n <div className=\"d-flex align-items-start mt-1 ml-2\">\n <Button\n kind=\"ghost\"\n onClick={handleAdd}\n disabled={inputError != null || value === ''}\n icon={vsAdd}\n tooltip=\"Add new item\"\n data-testid=\"add-item-button\"\n />\n <Button\n kind=\"ghost\"\n onClick={handleDelete}\n disabled={selectedRanges.length === 0}\n icon={vsTrash}\n tooltip=\"Delete selected items\"\n data-testid=\"delete-item-button\"\n />\n </div>\n </div>\n </div>\n );\n}\n\nexport default EditableItemList;\n"],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
-
3
2
  import React, { Component } from 'react';
4
3
  import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
5
4
  import { dhSort } from '@deephaven/icons';
@@ -8,7 +7,6 @@ import Checkbox from "./Checkbox.js";
8
7
  import Popper from "./popper/Popper.js";
9
8
  import "./HierarchicalCheckboxMenu.css";
10
9
  import Button from "./Button.js";
11
-
12
10
  /**
13
11
  * A pull down menu that displays a hierarchy of checkboxes.
14
12
  *
@@ -38,27 +36,21 @@ import Button from "./Button.js";
38
36
  class HierarchicalCheckboxMenu extends Component {
39
37
  static isParentSelected(parent, valueMap) {
40
38
  var children = valueMap.get(parent);
41
-
42
39
  if (children === undefined) {
43
40
  return false;
44
41
  }
45
-
46
42
  if (typeof children === 'boolean') {
47
43
  // This parent has no children
48
44
  return children;
49
45
  }
50
-
51
46
  var includesTrue = Array.from(children.values()).includes(true);
52
47
  var includesFalse = Array.from(children.values()).includes(false);
53
-
54
48
  if (includesTrue && includesFalse) {
55
49
  // Indeterminate
56
50
  return null;
57
51
  }
58
-
59
52
  return includesTrue;
60
53
  }
61
-
62
54
  constructor(props) {
63
55
  super(props);
64
56
  this.toggleMenu = this.toggleMenu.bind(this);
@@ -69,7 +61,6 @@ class HierarchicalCheckboxMenu extends Component {
69
61
  menuIsOpen: false
70
62
  };
71
63
  }
72
-
73
64
  toggleMenu(event) {
74
65
  event.stopPropagation();
75
66
  event.preventDefault();
@@ -82,19 +73,17 @@ class HierarchicalCheckboxMenu extends Component {
82
73
  };
83
74
  });
84
75
  }
85
-
86
76
  toggleValueFor(parent, child) {
87
77
  var {
88
78
  valueMap,
89
79
  onUpdateValueMap
90
- } = this.props; // Make a deep copy of the Map and toggle the boolean for parent / child
80
+ } = this.props;
91
81
 
82
+ // Make a deep copy of the Map and toggle the boolean for parent / child
92
83
  var map = new Map(valueMap);
93
84
  var children = map.get(parent);
94
-
95
85
  if (children instanceof Map) {
96
86
  var newChildren = new Map(children);
97
-
98
87
  if (child != null) {
99
88
  newChildren.set(child, children.get(child) === undefined);
100
89
  } else {
@@ -102,18 +91,15 @@ class HierarchicalCheckboxMenu extends Component {
102
91
  var newChildValue = parentSelected == null || !parentSelected;
103
92
  children.forEach((_, key) => newChildren.set(key, newChildValue));
104
93
  }
105
-
106
94
  map.set(parent, newChildren);
107
95
  } else {
108
96
  map.set(parent, children == null || !children);
109
- } // The parent was clicked so all children must be toggled
110
-
97
+ }
111
98
 
99
+ // The parent was clicked so all children must be toggled
112
100
  var currentChildren = map.get(parent);
113
-
114
101
  if (child === undefined && currentChildren !== undefined && typeof currentChildren !== 'boolean') {
115
102
  var _parentSelected = HierarchicalCheckboxMenu.isParentSelected(parent, valueMap);
116
-
117
103
  if (_parentSelected != null && _parentSelected) {
118
104
  currentChildren.forEach((_, key) => currentChildren.set(key, false));
119
105
  } else {
@@ -121,16 +107,15 @@ class HierarchicalCheckboxMenu extends Component {
121
107
  currentChildren.forEach((_, key) => currentChildren.set(key, true));
122
108
  }
123
109
  }
124
-
125
110
  onUpdateValueMap(map);
126
111
  }
127
-
128
112
  setAllValues(value) {
129
113
  var {
130
114
  valueMap,
131
115
  onUpdateValueMap
132
- } = this.props; // Make a deep copy of the Map and set everything
116
+ } = this.props;
133
117
 
118
+ // Make a deep copy of the Map and set everything
134
119
  var copy = new Map();
135
120
  valueMap.forEach((child, parent) => {
136
121
  if (typeof child === 'boolean') {
@@ -143,15 +128,12 @@ class HierarchicalCheckboxMenu extends Component {
143
128
  });
144
129
  onUpdateValueMap(copy);
145
130
  }
146
-
147
131
  selectAll() {
148
132
  this.setAllValues(true);
149
133
  }
150
-
151
134
  clear() {
152
135
  this.setAllValues(false);
153
136
  }
154
-
155
137
  renderMenuElement() {
156
138
  var {
157
139
  valueMap,
@@ -186,7 +168,6 @@ class HierarchicalCheckboxMenu extends Component {
186
168
  "data-testid": dataTestId !== undefined ? "".concat(dataTestId, "-btn-clear") : undefined
187
169
  }, "Clear"));
188
170
  }
189
-
190
171
  render() {
191
172
  var {
192
173
  menuText,
@@ -224,15 +205,12 @@ class HierarchicalCheckboxMenu extends Component {
224
205
  interactive: true
225
206
  }, this.renderMenuElement()));
226
207
  }
227
-
228
208
  }
229
-
230
209
  _defineProperty(HierarchicalCheckboxMenu, "defaultProps", {
231
210
  className: '',
232
211
  icon: null,
233
212
  id: '',
234
213
  'data-testid': undefined
235
214
  });
236
-
237
215
  export default HierarchicalCheckboxMenu;
238
216
  //# sourceMappingURL=HierarchicalCheckboxMenu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HierarchicalCheckboxMenu.js","names":["React","Component","FontAwesomeIcon","dhSort","classNames","Checkbox","Popper","Button","HierarchicalCheckboxMenu","isParentSelected","parent","valueMap","children","get","undefined","includesTrue","Array","from","values","includes","includesFalse","constructor","props","toggleMenu","bind","toggleValueFor","selectAll","clear","state","menuIsOpen","event","stopPropagation","preventDefault","setState","child","onUpdateValueMap","map","Map","newChildren","set","parentSelected","newChildValue","forEach","_","key","currentChildren","setAllValues","value","copy","renderMenuElement","dataTestId","entries","render","menuText","className","icon","id","placement"],"sources":["../src/HierarchicalCheckboxMenu.tsx"],"sourcesContent":["import React, { Component } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { dhSort, IconDefinition } from '@deephaven/icons';\nimport classNames from 'classnames';\nimport Checkbox from './Checkbox';\nimport Popper from './popper/Popper';\nimport './HierarchicalCheckboxMenu.scss';\nimport Button from './Button';\n\nexport type HierarchicalCheckboxValueMap = Map<\n string,\n boolean | Map<string, boolean>\n>;\n\ntype HierarchicalCheckboxMenuProps = {\n className: string;\n menuText: string;\n valueMap: HierarchicalCheckboxValueMap;\n onUpdateValueMap(map: HierarchicalCheckboxValueMap): void;\n icon: IconDefinition | null;\n id: string;\n 'data-testid'?: string;\n};\n\ntype HierarchicalCheckboxMenuState = {\n menuIsOpen: boolean;\n};\n\n/**\n * A pull down menu that displays a hierarchy of checkboxes.\n *\n * Currently supports only two levels of check boxes. The input should be a Map\n * where the keys are the parent names. The values can a boolean if the parent\n * has no children or another Map where keys are child names and values are booleans.\n *\n * Here is an example:\n * const INITIAL_TYPE_MAP = new Map([\n * ['Queries', new Map([['Live', true], ['Batch', true]])],\n * [\n * 'DBA Queries',\n * new Map([\n * ['Data Merge', true],\n * ['Data Validation', true],\n * ['Imports', true],\n * ['Data Services', true],\n * ]),\n * ],\n * ['Helper Queries', true],\n * ]);\n *\n * When a checkbox is changed, this component will make a deep copy of the Map\n * with the appropriate booleans changed. It will then call onUpdateValueMap\n * with the new Map.\n */\nclass HierarchicalCheckboxMenu extends Component<\n HierarchicalCheckboxMenuProps,\n HierarchicalCheckboxMenuState\n> {\n static defaultProps: Partial<HierarchicalCheckboxMenuProps> = {\n className: '',\n icon: null,\n id: '',\n 'data-testid': undefined,\n };\n\n static isParentSelected(\n parent: string,\n valueMap: HierarchicalCheckboxValueMap\n ): boolean | null {\n const children = valueMap.get(parent);\n if (children === undefined) {\n return false;\n }\n if (typeof children === 'boolean') {\n // This parent has no children\n return children;\n }\n const includesTrue = Array.from(children.values()).includes(true);\n const includesFalse = Array.from(children.values()).includes(false);\n if (includesTrue && includesFalse) {\n // Indeterminate\n return null;\n }\n return includesTrue;\n }\n\n constructor(props: HierarchicalCheckboxMenuProps) {\n super(props);\n\n this.toggleMenu = this.toggleMenu.bind(this);\n this.toggleValueFor = this.toggleValueFor.bind(this);\n this.selectAll = this.selectAll.bind(this);\n this.clear = this.clear.bind(this);\n\n this.state = {\n menuIsOpen: false,\n };\n }\n\n toggleMenu(event: React.MouseEvent<HTMLButtonElement>): void {\n event.stopPropagation();\n event.preventDefault();\n this.setState(state => {\n const { menuIsOpen } = state;\n return { menuIsOpen: !menuIsOpen };\n });\n }\n\n toggleValueFor(parent: string, child?: string): void {\n const { valueMap, onUpdateValueMap } = this.props;\n\n // Make a deep copy of the Map and toggle the boolean for parent / child\n const map = new Map(valueMap);\n const children = map.get(parent);\n if (children instanceof Map) {\n const newChildren = new Map(children);\n if (child != null) {\n newChildren.set(child, children.get(child) === undefined);\n } else {\n const parentSelected = HierarchicalCheckboxMenu.isParentSelected(\n parent,\n map\n );\n const newChildValue = parentSelected == null || !parentSelected;\n children.forEach((_, key) => newChildren.set(key, newChildValue));\n }\n map.set(parent, newChildren);\n } else {\n map.set(parent, children == null || !children);\n }\n\n // The parent was clicked so all children must be toggled\n const currentChildren = map.get(parent);\n if (\n child === undefined &&\n currentChildren !== undefined &&\n typeof currentChildren !== 'boolean'\n ) {\n const parentSelected = HierarchicalCheckboxMenu.isParentSelected(\n parent,\n valueMap\n );\n if (parentSelected != null && parentSelected) {\n currentChildren.forEach((_, key) => currentChildren.set(key, false));\n } else {\n // for parent selection of false or null (indeterminate), select everything\n currentChildren.forEach((_, key) => currentChildren.set(key, true));\n }\n }\n\n onUpdateValueMap(map);\n }\n\n setAllValues(value: boolean): void {\n const { valueMap, onUpdateValueMap } = this.props;\n\n // Make a deep copy of the Map and set everything\n const copy = new Map();\n valueMap.forEach((child, parent) => {\n if (typeof child === 'boolean') {\n copy.set(parent, value);\n } else {\n const children = new Map();\n child.forEach((_, key) => children.set(key, value));\n copy.set(parent, children);\n }\n });\n\n onUpdateValueMap(copy);\n }\n\n selectAll(): void {\n this.setAllValues(true);\n }\n\n clear(): void {\n this.setAllValues(false);\n }\n\n renderMenuElement(): React.ReactNode {\n const { valueMap, 'data-testid': dataTestId } = this.props;\n return (\n <div className=\"hcm-menu-container\">\n {Array.from(valueMap.entries()).map(([parent, children]) => (\n <div key={parent}>\n <Checkbox\n className=\"hcm-parent\"\n checked={HierarchicalCheckboxMenu.isParentSelected(\n parent,\n valueMap\n )}\n onChange={() => this.toggleValueFor(parent)}\n >\n {parent}\n </Checkbox>\n {children !== undefined &&\n typeof children !== 'boolean' &&\n Array.from(children.entries()).map(([child, value]) => (\n <Checkbox\n className=\"hcm-child\"\n key={child}\n checked={value}\n onChange={() => this.toggleValueFor(parent, child)}\n >\n {child}\n </Checkbox>\n ))}\n </div>\n ))}\n <Button\n kind=\"ghost\"\n onClick={this.selectAll}\n data-testid={\n dataTestId !== undefined\n ? `${dataTestId}-btn-select-all`\n : undefined\n }\n >\n Select All\n </Button>\n <Button\n kind=\"ghost\"\n onClick={this.clear}\n data-testid={\n dataTestId !== undefined ? `${dataTestId}-btn-clear` : undefined\n }\n >\n Clear\n </Button>\n </div>\n );\n }\n\n render(): JSX.Element {\n const {\n menuText,\n className,\n icon,\n id,\n 'data-testid': dataTestId,\n } = this.props;\n const { menuIsOpen } = this.state;\n\n return (\n <button\n type=\"button\"\n className={classNames('btn hcm-btn', className)}\n onClick={this.toggleMenu}\n id={id}\n data-testid={dataTestId}\n >\n <span>\n {icon && <FontAwesomeIcon icon={icon} className=\"hcm-icon mr-1\" />}\n {menuText}\n </span>\n <FontAwesomeIcon icon={dhSort} className=\"hcm-icon ml-1\" />\n <Popper\n options={{ placement: 'bottom' }}\n isShown={menuIsOpen}\n onExited={() => {\n this.setState({ menuIsOpen: false });\n }}\n closeOnBlur\n interactive\n >\n {this.renderMenuElement()}\n </Popper>\n </button>\n );\n }\n}\n\nexport default HierarchicalCheckboxMenu;\n"],"mappings":"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"}
1
+ {"version":3,"file":"HierarchicalCheckboxMenu.js","names":["React","Component","FontAwesomeIcon","dhSort","classNames","Checkbox","Popper","Button","HierarchicalCheckboxMenu","isParentSelected","parent","valueMap","children","get","undefined","includesTrue","Array","from","values","includes","includesFalse","constructor","props","toggleMenu","bind","toggleValueFor","selectAll","clear","state","menuIsOpen","event","stopPropagation","preventDefault","setState","child","onUpdateValueMap","map","Map","newChildren","set","parentSelected","newChildValue","forEach","_","key","currentChildren","setAllValues","value","copy","renderMenuElement","dataTestId","entries","render","menuText","className","icon","id","placement"],"sources":["../src/HierarchicalCheckboxMenu.tsx"],"sourcesContent":["import React, { Component } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { dhSort, IconDefinition } from '@deephaven/icons';\nimport classNames from 'classnames';\nimport Checkbox from './Checkbox';\nimport Popper from './popper/Popper';\nimport './HierarchicalCheckboxMenu.scss';\nimport Button from './Button';\n\nexport type HierarchicalCheckboxValueMap = Map<\n string,\n boolean | Map<string, boolean>\n>;\n\ntype HierarchicalCheckboxMenuProps = {\n className: string;\n menuText: string;\n valueMap: HierarchicalCheckboxValueMap;\n onUpdateValueMap(map: HierarchicalCheckboxValueMap): void;\n icon: IconDefinition | null;\n id: string;\n 'data-testid'?: string;\n};\n\ntype HierarchicalCheckboxMenuState = {\n menuIsOpen: boolean;\n};\n\n/**\n * A pull down menu that displays a hierarchy of checkboxes.\n *\n * Currently supports only two levels of check boxes. The input should be a Map\n * where the keys are the parent names. The values can a boolean if the parent\n * has no children or another Map where keys are child names and values are booleans.\n *\n * Here is an example:\n * const INITIAL_TYPE_MAP = new Map([\n * ['Queries', new Map([['Live', true], ['Batch', true]])],\n * [\n * 'DBA Queries',\n * new Map([\n * ['Data Merge', true],\n * ['Data Validation', true],\n * ['Imports', true],\n * ['Data Services', true],\n * ]),\n * ],\n * ['Helper Queries', true],\n * ]);\n *\n * When a checkbox is changed, this component will make a deep copy of the Map\n * with the appropriate booleans changed. It will then call onUpdateValueMap\n * with the new Map.\n */\nclass HierarchicalCheckboxMenu extends Component<\n HierarchicalCheckboxMenuProps,\n HierarchicalCheckboxMenuState\n> {\n static defaultProps: Partial<HierarchicalCheckboxMenuProps> = {\n className: '',\n icon: null,\n id: '',\n 'data-testid': undefined,\n };\n\n static isParentSelected(\n parent: string,\n valueMap: HierarchicalCheckboxValueMap\n ): boolean | null {\n const children = valueMap.get(parent);\n if (children === undefined) {\n return false;\n }\n if (typeof children === 'boolean') {\n // This parent has no children\n return children;\n }\n const includesTrue = Array.from(children.values()).includes(true);\n const includesFalse = Array.from(children.values()).includes(false);\n if (includesTrue && includesFalse) {\n // Indeterminate\n return null;\n }\n return includesTrue;\n }\n\n constructor(props: HierarchicalCheckboxMenuProps) {\n super(props);\n\n this.toggleMenu = this.toggleMenu.bind(this);\n this.toggleValueFor = this.toggleValueFor.bind(this);\n this.selectAll = this.selectAll.bind(this);\n this.clear = this.clear.bind(this);\n\n this.state = {\n menuIsOpen: false,\n };\n }\n\n toggleMenu(event: React.MouseEvent<HTMLButtonElement>): void {\n event.stopPropagation();\n event.preventDefault();\n this.setState(state => {\n const { menuIsOpen } = state;\n return { menuIsOpen: !menuIsOpen };\n });\n }\n\n toggleValueFor(parent: string, child?: string): void {\n const { valueMap, onUpdateValueMap } = this.props;\n\n // Make a deep copy of the Map and toggle the boolean for parent / child\n const map = new Map(valueMap);\n const children = map.get(parent);\n if (children instanceof Map) {\n const newChildren = new Map(children);\n if (child != null) {\n newChildren.set(child, children.get(child) === undefined);\n } else {\n const parentSelected = HierarchicalCheckboxMenu.isParentSelected(\n parent,\n map\n );\n const newChildValue = parentSelected == null || !parentSelected;\n children.forEach((_, key) => newChildren.set(key, newChildValue));\n }\n map.set(parent, newChildren);\n } else {\n map.set(parent, children == null || !children);\n }\n\n // The parent was clicked so all children must be toggled\n const currentChildren = map.get(parent);\n if (\n child === undefined &&\n currentChildren !== undefined &&\n typeof currentChildren !== 'boolean'\n ) {\n const parentSelected = HierarchicalCheckboxMenu.isParentSelected(\n parent,\n valueMap\n );\n if (parentSelected != null && parentSelected) {\n currentChildren.forEach((_, key) => currentChildren.set(key, false));\n } else {\n // for parent selection of false or null (indeterminate), select everything\n currentChildren.forEach((_, key) => currentChildren.set(key, true));\n }\n }\n\n onUpdateValueMap(map);\n }\n\n setAllValues(value: boolean): void {\n const { valueMap, onUpdateValueMap } = this.props;\n\n // Make a deep copy of the Map and set everything\n const copy = new Map();\n valueMap.forEach((child, parent) => {\n if (typeof child === 'boolean') {\n copy.set(parent, value);\n } else {\n const children = new Map();\n child.forEach((_, key) => children.set(key, value));\n copy.set(parent, children);\n }\n });\n\n onUpdateValueMap(copy);\n }\n\n selectAll(): void {\n this.setAllValues(true);\n }\n\n clear(): void {\n this.setAllValues(false);\n }\n\n renderMenuElement(): React.ReactNode {\n const { valueMap, 'data-testid': dataTestId } = this.props;\n return (\n <div className=\"hcm-menu-container\">\n {Array.from(valueMap.entries()).map(([parent, children]) => (\n <div key={parent}>\n <Checkbox\n className=\"hcm-parent\"\n checked={HierarchicalCheckboxMenu.isParentSelected(\n parent,\n valueMap\n )}\n onChange={() => this.toggleValueFor(parent)}\n >\n {parent}\n </Checkbox>\n {children !== undefined &&\n typeof children !== 'boolean' &&\n Array.from(children.entries()).map(([child, value]) => (\n <Checkbox\n className=\"hcm-child\"\n key={child}\n checked={value}\n onChange={() => this.toggleValueFor(parent, child)}\n >\n {child}\n </Checkbox>\n ))}\n </div>\n ))}\n <Button\n kind=\"ghost\"\n onClick={this.selectAll}\n data-testid={\n dataTestId !== undefined\n ? `${dataTestId}-btn-select-all`\n : undefined\n }\n >\n Select All\n </Button>\n <Button\n kind=\"ghost\"\n onClick={this.clear}\n data-testid={\n dataTestId !== undefined ? `${dataTestId}-btn-clear` : undefined\n }\n >\n Clear\n </Button>\n </div>\n );\n }\n\n render(): JSX.Element {\n const {\n menuText,\n className,\n icon,\n id,\n 'data-testid': dataTestId,\n } = this.props;\n const { menuIsOpen } = this.state;\n\n return (\n <button\n type=\"button\"\n className={classNames('btn hcm-btn', className)}\n onClick={this.toggleMenu}\n id={id}\n data-testid={dataTestId}\n >\n <span>\n {icon && <FontAwesomeIcon icon={icon} className=\"hcm-icon mr-1\" />}\n {menuText}\n </span>\n <FontAwesomeIcon icon={dhSort} className=\"hcm-icon ml-1\" />\n <Popper\n options={{ placement: 'bottom' }}\n isShown={menuIsOpen}\n onExited={() => {\n this.setState({ menuIsOpen: false });\n }}\n closeOnBlur\n interactive\n >\n {this.renderMenuElement()}\n </Popper>\n </button>\n );\n }\n}\n\nexport default HierarchicalCheckboxMenu;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ItemList.d.ts","sourceRoot":"","sources":["../src/ItemList.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ItemList.d.ts","sourceRoot":"","sources":["../src/ItemList.tsx"],"names":[],"mappings":"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"}