@carbon/ibm-products 1.12.0 → 1.15.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (246) hide show
  1. package/css/components/Datagrid/styles/addons/CustomizeColumnsModal.css +47 -0
  2. package/css/components/Datagrid/styles/addons/CustomizeColumnsModal.css.map +1 -0
  3. package/css/components/Datagrid/styles/addons/RowSizeDropdown.css +20 -0
  4. package/css/components/Datagrid/styles/addons/RowSizeDropdown.css.map +1 -0
  5. package/css/components/Datagrid/styles/datagrid.css +264 -0
  6. package/css/components/Datagrid/styles/datagrid.css.map +1 -0
  7. package/css/components/Datagrid/styles/index.css +509 -0
  8. package/css/components/Datagrid/styles/index.css.map +1 -0
  9. package/css/components/Datagrid/styles/useActionsColumn.css +23 -0
  10. package/css/components/Datagrid/styles/useActionsColumn.css.map +1 -0
  11. package/css/components/Datagrid/styles/useColumnRightAlign.css +28 -0
  12. package/css/components/Datagrid/styles/useColumnRightAlign.css.map +1 -0
  13. package/css/components/Datagrid/styles/useNestedRows.css +15 -0
  14. package/css/components/Datagrid/styles/useNestedRows.css.map +1 -0
  15. package/css/components/Datagrid/styles/useNestedTable.css +25 -0
  16. package/css/components/Datagrid/styles/useNestedTable.css.map +1 -0
  17. package/css/components/Datagrid/styles/useSelectAllToggle.css +28 -0
  18. package/css/components/Datagrid/styles/useSelectAllToggle.css.map +1 -0
  19. package/css/components/Datagrid/styles/useSortableColumns.css +50 -0
  20. package/css/components/Datagrid/styles/useSortableColumns.css.map +1 -0
  21. package/css/components/Datagrid/styles/useStickyColumn.css +35 -0
  22. package/css/components/Datagrid/styles/useStickyColumn.css.map +1 -0
  23. package/css/index-full-carbon.css +653 -21
  24. package/css/index-full-carbon.css.map +1 -1
  25. package/css/index-full-carbon.min.css +6 -6
  26. package/css/index-full-carbon.min.css.map +1 -1
  27. package/css/index-without-carbon-released-only.css +21 -10
  28. package/css/index-without-carbon-released-only.css.map +1 -1
  29. package/css/index-without-carbon-released-only.min.css +2 -2
  30. package/css/index-without-carbon-released-only.min.css.map +1 -1
  31. package/css/index-without-carbon.css +653 -21
  32. package/css/index-without-carbon.css.map +1 -1
  33. package/css/index-without-carbon.min.css +5 -5
  34. package/css/index-without-carbon.min.css.map +1 -1
  35. package/css/index.css +653 -21
  36. package/css/index.css.map +1 -1
  37. package/css/index.min.css +6 -6
  38. package/css/index.min.css.map +1 -1
  39. package/es/components/ActionBar/ActionBar.js +3 -1
  40. package/es/components/ActionBar/ActionBarOverflowItems.js +5 -3
  41. package/es/components/AddSelect/AddSelect.js +98 -40
  42. package/es/components/AddSelect/AddSelectFilter.js +129 -0
  43. package/es/components/AddSelect/AddSelectList.js +27 -1
  44. package/es/components/AddSelect/AddSelectSidebar.js +15 -5
  45. package/es/components/AddSelect/add-select-utils.js +30 -0
  46. package/es/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +2 -0
  47. package/es/components/DataSpreadsheet/DataSpreadsheet.js +269 -142
  48. package/es/components/DataSpreadsheet/DataSpreadsheetBody.js +122 -39
  49. package/es/components/DataSpreadsheet/DataSpreadsheetHeader.js +46 -17
  50. package/es/components/DataSpreadsheet/hooks/index.js +11 -0
  51. package/es/components/DataSpreadsheet/hooks/useMultipleKeyTracking.js +139 -0
  52. package/es/components/DataSpreadsheet/hooks/useResetSpreadsheetFocus.js +2 -4
  53. package/es/components/DataSpreadsheet/hooks/useSpreadsheetEdit.js +68 -0
  54. package/es/components/DataSpreadsheet/hooks/useSpreadsheetOutsideClick.js +6 -6
  55. package/es/components/DataSpreadsheet/utils/createCellSelectionArea.js +20 -8
  56. package/es/components/DataSpreadsheet/utils/getSelectionAreaPoints.js +18 -0
  57. package/es/components/DataSpreadsheet/utils/handleActiveCellInSelectionEnter.js +121 -0
  58. package/es/components/DataSpreadsheet/utils/handleActiveCellInSelectionTab.js +108 -0
  59. package/es/components/DataSpreadsheet/utils/handleEditSubmit.js +87 -0
  60. package/es/components/DataSpreadsheet/utils/handleHeaderCellSelection.js +42 -8
  61. package/es/components/DataSpreadsheet/utils/handleMultipleKeys.js +225 -13
  62. package/es/components/DataSpreadsheet/utils/selectAllCells.js +53 -0
  63. package/es/components/Datagrid/Datagrid/Datagrid.js +70 -0
  64. package/es/components/Datagrid/Datagrid/DatagridBody.js +36 -0
  65. package/es/components/Datagrid/Datagrid/DatagridEmptyBody.js +19 -0
  66. package/es/components/Datagrid/Datagrid/DatagridExpandedRow.js +26 -0
  67. package/es/components/Datagrid/Datagrid/DatagridHead.js +31 -0
  68. package/es/components/Datagrid/Datagrid/DatagridHeaderRow.js +57 -0
  69. package/es/components/Datagrid/Datagrid/DatagridRefBody.js +37 -0
  70. package/es/components/Datagrid/Datagrid/DatagridRow.js +50 -0
  71. package/es/components/Datagrid/Datagrid/DatagridSelectAll.js +50 -0
  72. package/es/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +122 -0
  73. package/es/components/Datagrid/Datagrid/DatagridSimpleBody.js +36 -0
  74. package/es/components/Datagrid/Datagrid/DatagridToolbar.js +22 -0
  75. package/es/components/Datagrid/Datagrid/DatagridVirtualBody.js +87 -0
  76. package/es/components/Datagrid/Datagrid/DraggableElement.js +188 -0
  77. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Actions.js +78 -0
  78. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/ButtonWrapper.js +51 -0
  79. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +140 -0
  80. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsModal.js +157 -0
  81. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/ModalWrapper.js +62 -0
  82. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/common.js +13 -0
  83. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/index.js +9 -0
  84. package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +62 -0
  85. package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +139 -0
  86. package/es/components/Datagrid/Datagrid/addons/RowSize/index.js +8 -0
  87. package/es/components/Datagrid/Datagrid/index.js +8 -0
  88. package/es/components/Datagrid/Datagrid.stories/CustomizeColumnStory.js +6 -0
  89. package/es/components/Datagrid/Datagrid.stories/LeftPanelStory.js +6 -0
  90. package/es/components/Datagrid/Datagrid.stories/RowSizeDropdownStory.js +6 -0
  91. package/es/components/Datagrid/Datagrid.stories/SelectAllWithToggleStory.js +6 -0
  92. package/es/components/Datagrid/Datagrid.stories/StickyActionsColumnStory.js +92 -0
  93. package/es/components/Datagrid/Datagrid.stories/common.js +199 -0
  94. package/es/components/Datagrid/Datagrid.stories/index.js +5 -0
  95. package/es/components/Datagrid/common-column-ids.js +8 -0
  96. package/es/components/Datagrid/index.js +22 -0
  97. package/es/components/Datagrid/useActionsColumn.js +86 -0
  98. package/es/components/Datagrid/useColumnRightAlign.js +52 -0
  99. package/es/components/Datagrid/useCustomizeColumns.js +45 -0
  100. package/es/components/Datagrid/useDatagrid.js +44 -0
  101. package/es/components/Datagrid/useDefaultStringRenderer.js +48 -0
  102. package/es/components/Datagrid/useDisableSelectRows.js +84 -0
  103. package/es/components/Datagrid/useExpandedRow.js +52 -0
  104. package/es/components/Datagrid/useFlexResize.js +51 -0
  105. package/es/components/Datagrid/useFloatingScroll.js +88 -0
  106. package/es/components/Datagrid/useInfiniteScroll.js +54 -0
  107. package/es/components/Datagrid/useNestedRows.js +53 -0
  108. package/es/components/Datagrid/useOnRowClick.js +37 -0
  109. package/es/components/Datagrid/useParentDimensions.js +65 -0
  110. package/es/components/Datagrid/useResizeTable.js +40 -0
  111. package/es/components/Datagrid/useRowExpander.js +34 -0
  112. package/es/components/Datagrid/useRowIsMouseOver.js +61 -0
  113. package/es/components/Datagrid/useRowRenderer.js +30 -0
  114. package/es/components/Datagrid/useRowSize.js +56 -0
  115. package/es/components/Datagrid/useSelectAllToggle.js +74 -0
  116. package/es/components/Datagrid/useSelectRows.js +107 -0
  117. package/es/components/Datagrid/useSkeletonRows.js +32 -0
  118. package/es/components/Datagrid/useSortableColumns.js +110 -0
  119. package/es/components/Datagrid/useStickyColumn.js +183 -0
  120. package/es/components/HTTPErrors/assets/HTTPErrorSvg403.js +2 -3
  121. package/es/components/HTTPErrors/assets/HTTPErrorSvg404.js +2 -3
  122. package/es/components/HTTPErrors/assets/HTTPErrorSvgOther.js +2 -3
  123. package/es/components/MultiAddSelect/MultiAddSelect.js +150 -3
  124. package/es/components/PageHeader/PageHeader.js +3 -1
  125. package/es/components/SingleAddSelect/SingleAddSelect.js +90 -4
  126. package/es/components/TagSet/TagSet.js +22 -6
  127. package/es/components/Tearsheet/TearsheetShell.js +34 -10
  128. package/es/components/UserProfileImage/UserProfileImage.js +37 -9
  129. package/es/components/index.js +2 -1
  130. package/es/global/js/package-settings.js +4 -2
  131. package/lib/components/ActionBar/ActionBar.js +3 -1
  132. package/lib/components/ActionBar/ActionBarOverflowItems.js +5 -3
  133. package/lib/components/AddSelect/AddSelect.js +97 -38
  134. package/lib/components/AddSelect/AddSelectFilter.js +147 -0
  135. package/lib/components/AddSelect/AddSelectList.js +28 -1
  136. package/lib/components/AddSelect/AddSelectSidebar.js +15 -11
  137. package/lib/components/AddSelect/add-select-utils.js +35 -2
  138. package/lib/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +2 -0
  139. package/lib/components/DataSpreadsheet/DataSpreadsheet.js +279 -145
  140. package/lib/components/DataSpreadsheet/DataSpreadsheetBody.js +121 -45
  141. package/lib/components/DataSpreadsheet/DataSpreadsheetHeader.js +47 -17
  142. package/lib/components/DataSpreadsheet/hooks/index.js +45 -0
  143. package/lib/components/DataSpreadsheet/hooks/useMultipleKeyTracking.js +151 -0
  144. package/lib/components/DataSpreadsheet/hooks/useResetSpreadsheetFocus.js +2 -4
  145. package/lib/components/DataSpreadsheet/hooks/useSpreadsheetEdit.js +79 -0
  146. package/lib/components/DataSpreadsheet/hooks/useSpreadsheetOutsideClick.js +6 -5
  147. package/lib/components/DataSpreadsheet/utils/createCellSelectionArea.js +21 -8
  148. package/lib/components/DataSpreadsheet/utils/getSelectionAreaPoints.js +27 -0
  149. package/lib/components/DataSpreadsheet/utils/handleActiveCellInSelectionEnter.js +127 -0
  150. package/lib/components/DataSpreadsheet/utils/handleActiveCellInSelectionTab.js +118 -0
  151. package/lib/components/DataSpreadsheet/utils/handleEditSubmit.js +94 -0
  152. package/lib/components/DataSpreadsheet/utils/handleHeaderCellSelection.js +44 -8
  153. package/lib/components/DataSpreadsheet/utils/handleMultipleKeys.js +235 -20
  154. package/lib/components/DataSpreadsheet/utils/selectAllCells.js +60 -0
  155. package/lib/components/Datagrid/Datagrid/Datagrid.js +86 -0
  156. package/lib/components/Datagrid/Datagrid/DatagridBody.js +50 -0
  157. package/lib/components/Datagrid/Datagrid/DatagridEmptyBody.js +31 -0
  158. package/lib/components/Datagrid/Datagrid/DatagridExpandedRow.js +38 -0
  159. package/lib/components/Datagrid/Datagrid/DatagridHead.js +43 -0
  160. package/lib/components/Datagrid/Datagrid/DatagridHeaderRow.js +73 -0
  161. package/lib/components/Datagrid/Datagrid/DatagridRefBody.js +44 -0
  162. package/lib/components/Datagrid/Datagrid/DatagridRow.js +56 -0
  163. package/lib/components/Datagrid/Datagrid/DatagridSelectAll.js +55 -0
  164. package/lib/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +139 -0
  165. package/lib/components/Datagrid/Datagrid/DatagridSimpleBody.js +44 -0
  166. package/lib/components/Datagrid/Datagrid/DatagridToolbar.js +35 -0
  167. package/lib/components/Datagrid/Datagrid/DatagridVirtualBody.js +101 -0
  168. package/lib/components/Datagrid/Datagrid/DraggableElement.js +210 -0
  169. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Actions.js +92 -0
  170. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/ButtonWrapper.js +65 -0
  171. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +166 -0
  172. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsModal.js +173 -0
  173. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/ModalWrapper.js +73 -0
  174. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/common.js +25 -0
  175. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/index.js +23 -0
  176. package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +80 -0
  177. package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +160 -0
  178. package/lib/components/Datagrid/Datagrid/addons/RowSize/index.js +15 -0
  179. package/lib/components/Datagrid/Datagrid/index.js +15 -0
  180. package/lib/components/Datagrid/Datagrid.stories/CustomizeColumnStory.js +13 -0
  181. package/lib/components/Datagrid/Datagrid.stories/LeftPanelStory.js +13 -0
  182. package/lib/components/Datagrid/Datagrid.stories/RowSizeDropdownStory.js +13 -0
  183. package/lib/components/Datagrid/Datagrid.stories/SelectAllWithToggleStory.js +13 -0
  184. package/lib/components/Datagrid/Datagrid.stories/StickyActionsColumnStory.js +112 -0
  185. package/lib/components/Datagrid/Datagrid.stories/common.js +215 -0
  186. package/lib/components/Datagrid/Datagrid.stories/index.js +47 -0
  187. package/lib/components/Datagrid/common-column-ids.js +16 -0
  188. package/lib/components/Datagrid/index.js +127 -0
  189. package/lib/components/Datagrid/useActionsColumn.js +94 -0
  190. package/lib/components/Datagrid/useColumnRightAlign.js +59 -0
  191. package/lib/components/Datagrid/useCustomizeColumns.js +55 -0
  192. package/lib/components/Datagrid/useDatagrid.js +58 -0
  193. package/lib/components/Datagrid/useDefaultStringRenderer.js +54 -0
  194. package/lib/components/Datagrid/useDisableSelectRows.js +92 -0
  195. package/lib/components/Datagrid/useExpandedRow.js +58 -0
  196. package/lib/components/Datagrid/useFlexResize.js +61 -0
  197. package/lib/components/Datagrid/useFloatingScroll.js +101 -0
  198. package/lib/components/Datagrid/useInfiniteScroll.js +67 -0
  199. package/lib/components/Datagrid/useNestedRows.js +65 -0
  200. package/lib/components/Datagrid/useOnRowClick.js +45 -0
  201. package/lib/components/Datagrid/useParentDimensions.js +75 -0
  202. package/lib/components/Datagrid/useResizeTable.js +48 -0
  203. package/lib/components/Datagrid/useRowExpander.js +45 -0
  204. package/lib/components/Datagrid/useRowIsMouseOver.js +66 -0
  205. package/lib/components/Datagrid/useRowRenderer.js +40 -0
  206. package/lib/components/Datagrid/useRowSize.js +67 -0
  207. package/lib/components/Datagrid/useSelectAllToggle.js +88 -0
  208. package/lib/components/Datagrid/useSelectRows.js +119 -0
  209. package/lib/components/Datagrid/useSkeletonRows.js +42 -0
  210. package/lib/components/Datagrid/useSortableColumns.js +117 -0
  211. package/lib/components/Datagrid/useStickyColumn.js +190 -0
  212. package/lib/components/HTTPErrors/assets/HTTPErrorSvg403.js +2 -3
  213. package/lib/components/HTTPErrors/assets/HTTPErrorSvg404.js +2 -3
  214. package/lib/components/HTTPErrors/assets/HTTPErrorSvgOther.js +2 -3
  215. package/lib/components/MultiAddSelect/MultiAddSelect.js +150 -2
  216. package/lib/components/PageHeader/PageHeader.js +3 -1
  217. package/lib/components/SingleAddSelect/SingleAddSelect.js +91 -3
  218. package/lib/components/TagSet/TagSet.js +22 -6
  219. package/lib/components/Tearsheet/TearsheetShell.js +36 -10
  220. package/lib/components/UserProfileImage/UserProfileImage.js +37 -9
  221. package/lib/components/index.js +9 -1
  222. package/lib/global/js/package-settings.js +4 -2
  223. package/package.json +20 -16
  224. package/scss/components/AboutModal/_about-modal.scss +4 -0
  225. package/scss/components/AddSelect/_add-select.scss +51 -2
  226. package/scss/components/DataSpreadsheet/_data-spreadsheet.scss +72 -9
  227. package/scss/components/Datagrid/_datagrid.scss +66 -0
  228. package/scss/components/Datagrid/_index.scss +8 -0
  229. package/scss/components/Datagrid/_storybook-styles.scss +26 -0
  230. package/scss/components/Datagrid/styles/_variables.scss +9 -0
  231. package/scss/components/Datagrid/styles/addons/CustomizeColumnsModal.scss +48 -0
  232. package/scss/components/Datagrid/styles/addons/RowSizeDropdown.scss +23 -0
  233. package/scss/components/Datagrid/styles/datagrid.scss +318 -0
  234. package/scss/components/Datagrid/styles/index.scss +17 -0
  235. package/scss/components/Datagrid/styles/useActionsColumn.scss +24 -0
  236. package/scss/components/Datagrid/styles/useColumnRightAlign.scss +29 -0
  237. package/scss/components/Datagrid/styles/useNestedRows.scss +17 -0
  238. package/scss/components/Datagrid/styles/useNestedTable.scss +28 -0
  239. package/scss/components/Datagrid/styles/useSelectAllToggle.scss +28 -0
  240. package/scss/components/Datagrid/styles/useSortableColumns.scss +55 -0
  241. package/scss/components/Datagrid/styles/useStickyColumn.scss +38 -0
  242. package/scss/components/ExportModal/_export-modal.scss +0 -4
  243. package/scss/components/HTTPErrors/_http-errors.scss +16 -16
  244. package/scss/components/PageHeader/_page-header.scss +4 -0
  245. package/scss/components/Tearsheet/_tearsheet.scss +4 -0
  246. package/scss/components/_index.scss +1 -0
@@ -0,0 +1,173 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = void 0;
11
+
12
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
+
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
+
16
+ var _react = _interopRequireWildcard(require("react"));
17
+
18
+ var _propTypes = _interopRequireDefault(require("prop-types"));
19
+
20
+ var _carbonComponentsReact = require("carbon-components-react");
21
+
22
+ var _common = require("./common");
23
+
24
+ var _Columns = _interopRequireDefault(require("./Columns"));
25
+
26
+ var _Actions = _interopRequireDefault(require("./Actions"));
27
+
28
+ var _settings = require("../../../../../settings");
29
+
30
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
31
+
32
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
33
+
34
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
35
+
36
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
37
+
38
+ var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
39
+
40
+ var CustomizeColumnsModal = function CustomizeColumnsModal(_ref) {
41
+ var isOpen = _ref.isOpen,
42
+ setIsModalOpen = _ref.setIsModalOpen,
43
+ onSaveColumnPrefs = _ref.onSaveColumnPrefs,
44
+ columnDefinitions = _ref.columnDefinitions,
45
+ originalColumnDefinitions = _ref.originalColumnDefinitions,
46
+ _ref$customizeModalHe = _ref.customizeModalHeadingLabel,
47
+ customizeModalHeadingLabel = _ref$customizeModalHe === void 0 ? 'Customize display' : _ref$customizeModalHe,
48
+ _ref$primaryButtonTex = _ref.primaryButtonTextLabel,
49
+ primaryButtonTextLabel = _ref$primaryButtonTex === void 0 ? 'Save' : _ref$primaryButtonTex,
50
+ _ref$secondaryButtonT = _ref.secondaryButtonTextLabel,
51
+ secondaryButtonTextLabel = _ref$secondaryButtonT === void 0 ? 'Cancel' : _ref$secondaryButtonT,
52
+ _ref$instructionsLabe = _ref.instructionsLabel,
53
+ instructionsLabel = _ref$instructionsLabe === void 0 ? 'Deselect columns to hide them. Click and drag the white box to reorder the columns. These specifications will be saved and persist if you leave and return to the data table.' : _ref$instructionsLabe;
54
+
55
+ var _useState = (0, _react.useState)(''),
56
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
57
+ searchText = _useState2[0],
58
+ setSearchText = _useState2[1];
59
+
60
+ var _useState3 = (0, _react.useState)(columnDefinitions // hide the columns without Header, e.g the sticky actions, spacer
61
+ .filter(function (colDef) {
62
+ return !!colDef.Header.props;
63
+ }) // only sort the hidden column to the end when modal reopen
64
+ .sort(function (defA, defB) {
65
+ var isVisibleA = (0, _common.isColumnVisible)(defA);
66
+ var isVisibleB = (0, _common.isColumnVisible)(defB);
67
+
68
+ if (isVisibleA && !isVisibleB) {
69
+ return -1;
70
+ }
71
+
72
+ if (!isVisibleA && isVisibleB) {
73
+ return 1;
74
+ }
75
+
76
+ return 0;
77
+ })),
78
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
79
+ columnObjects = _useState4[0],
80
+ _setColumnsObject = _useState4[1];
81
+
82
+ var _useState5 = (0, _react.useState)(false),
83
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
84
+ isDirty = _useState6[0],
85
+ setIsDirty = _useState6[1];
86
+
87
+ var onRequestClose = function onRequestClose() {
88
+ setIsModalOpen(false);
89
+ };
90
+
91
+ var onRequestSubmit = function onRequestSubmit() {
92
+ setIsModalOpen(false);
93
+ var updatedColumns = columnObjects.map(function (colDef) {
94
+ return {
95
+ id: colDef.id,
96
+ isVisible: colDef.isVisible
97
+ };
98
+ });
99
+ onSaveColumnPrefs(updatedColumns);
100
+ };
101
+
102
+ var onCheckboxCheck = function onCheckboxCheck(col, value) {
103
+ var changedDefinitions = columnObjects.map(function (definition) {
104
+ if (definition.id === col.id) {
105
+ return _objectSpread(_objectSpread({}, definition), {}, {
106
+ isVisible: value
107
+ });
108
+ }
109
+
110
+ return definition;
111
+ });
112
+
113
+ _setColumnsObject(changedDefinitions);
114
+
115
+ setDirty();
116
+ };
117
+
118
+ var setDirty = function setDirty() {
119
+ if (!isDirty) {
120
+ setIsDirty(true);
121
+ }
122
+ };
123
+
124
+ var string = searchText.trim().toLowerCase();
125
+ return /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Modal, {
126
+ className: "".concat(blockClass, "__customize-columns-modal"),
127
+ open: isOpen,
128
+ modalHeading: customizeModalHeadingLabel,
129
+ primaryButtonText: primaryButtonTextLabel,
130
+ secondaryButtonText: secondaryButtonTextLabel,
131
+ selectorPrimaryFocus: ".".concat(blockClass, "__customize-columns-column-list--focus"),
132
+ primaryButtonDisabled: !isDirty,
133
+ onRequestClose: onRequestClose,
134
+ onRequestSubmit: onRequestSubmit,
135
+ size: "sm",
136
+ hasForm: true
137
+ }, /*#__PURE__*/_react.default.createElement("div", {
138
+ className: "".concat(blockClass, "__customize-columns-instructions")
139
+ }, instructionsLabel), /*#__PURE__*/_react.default.createElement(_Actions.default, {
140
+ columns: columnObjects,
141
+ originalColumnDefinitions: originalColumnDefinitions,
142
+ searchText: searchText,
143
+ setColumnsObject: function setColumnsObject(cols) {
144
+ _setColumnsObject(cols);
145
+
146
+ setDirty();
147
+ },
148
+ setSearchText: setSearchText
149
+ }), isOpen && /*#__PURE__*/_react.default.createElement(_Columns.default, {
150
+ columns: columnObjects,
151
+ filterString: string,
152
+ onSelectColumn: onCheckboxCheck,
153
+ setColumnsObject: function setColumnsObject(cols) {
154
+ _setColumnsObject(cols);
155
+
156
+ setDirty();
157
+ }
158
+ }));
159
+ };
160
+
161
+ CustomizeColumnsModal.propTypes = {
162
+ columnDefinitions: _propTypes.default.array.isRequired,
163
+ customizeModalHeadingLabel: _propTypes.default.string,
164
+ instructionsLabel: _propTypes.default.string,
165
+ isOpen: _propTypes.default.bool.isRequired,
166
+ onSaveColumnPrefs: _propTypes.default.func.isRequired,
167
+ originalColumnDefinitions: _propTypes.default.array.isRequired,
168
+ primaryButtonTextLabel: _propTypes.default.string,
169
+ secondaryButtonTextLabel: _propTypes.default.string,
170
+ setIsModalOpen: _propTypes.default.func.isRequired
171
+ };
172
+ var _default = CustomizeColumnsModal;
173
+ exports.default = _default;
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = void 0;
11
+
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
15
+
16
+ var React = _interopRequireWildcard(require("react"));
17
+
18
+ var _propTypes = _interopRequireDefault(require("prop-types"));
19
+
20
+ var _CustomizeColumnsModal = _interopRequireDefault(require("./CustomizeColumnsModal"));
21
+
22
+ var _excluded = ["onSaveColumnPrefs", "isModalOpen", "setIsModalOpen"];
23
+
24
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
25
+
26
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
+
28
+ var ModalWrapper = function ModalWrapper(_ref) {
29
+ var instance = _ref.instance;
30
+ var _instance$customizeCo = instance.customizeColumnsProps,
31
+ _onSaveColumnPrefs = _instance$customizeCo.onSaveColumnPrefs,
32
+ isModalOpen = _instance$customizeCo.isModalOpen,
33
+ setIsModalOpen = _instance$customizeCo.setIsModalOpen,
34
+ rest = (0, _objectWithoutProperties2.default)(_instance$customizeCo, _excluded);
35
+
36
+ if (isModalOpen) {
37
+ return /*#__PURE__*/React.createElement(_CustomizeColumnsModal.default, (0, _extends2.default)({}, rest, {
38
+ isOpen: isModalOpen,
39
+ setIsModalOpen: setIsModalOpen,
40
+ columnDefinitions: instance.allColumns,
41
+ originalColumnDefinitions: instance.columns,
42
+ onSaveColumnPrefs: function onSaveColumnPrefs(updatedColDefs) {
43
+ var hiddenIds = updatedColDefs.filter(function (colDef) {
44
+ return !colDef.isVisible;
45
+ }).map(function (colDef) {
46
+ return colDef.id;
47
+ });
48
+ instance.setHiddenColumns(hiddenIds);
49
+
50
+ if (typeof instance.setColumnOrder === 'function') {
51
+ instance.setColumnOrder(updatedColDefs.map(function (colDef) {
52
+ return colDef.id;
53
+ }));
54
+ } else {
55
+ // eslint-disable-next-line no-console
56
+ console.warn("Column order can not be updated. Did you forget to add 'useColumnOrder' in 'useDatagrid'");
57
+ }
58
+
59
+ if (typeof _onSaveColumnPrefs === 'function') {
60
+ _onSaveColumnPrefs(updatedColDefs);
61
+ }
62
+ }
63
+ }));
64
+ }
65
+
66
+ return null;
67
+ };
68
+
69
+ ModalWrapper.propTypes = {
70
+ instance: _propTypes.default.object.isRequired
71
+ };
72
+ var _default = ModalWrapper;
73
+ exports.default = _default;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.isColumnVisible = void 0;
9
+
10
+ var _isBoolean = _interopRequireDefault(require("lodash/isBoolean"));
11
+
12
+ // @flow
13
+
14
+ /*
15
+ * Licensed Materials - Property of IBM
16
+ * 5724-Q36
17
+ * (c) Copyright IBM Corp. 2021
18
+ * US Government Users Restricted Rights - Use, duplication or disclosure
19
+ * restricted by GSA ADP Schedule Contract with IBM Corp.
20
+ */
21
+ var isColumnVisible = function isColumnVisible(colDef) {
22
+ return (0, _isBoolean.default)(colDef.isVisible) ? colDef.isVisible : true;
23
+ };
24
+
25
+ exports.isColumnVisible = isColumnVisible;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ Object.defineProperty(exports, "CustomizeColumnsModalWrapper", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _ModalWrapper.default;
12
+ }
13
+ });
14
+ Object.defineProperty(exports, "ToggleButtonWrapper", {
15
+ enumerable: true,
16
+ get: function get() {
17
+ return _ButtonWrapper.default;
18
+ }
19
+ });
20
+
21
+ var _ModalWrapper = _interopRequireDefault(require("./ModalWrapper"));
22
+
23
+ var _ButtonWrapper = _interopRequireDefault(require("./ButtonWrapper"));
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = void 0;
11
+
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+
16
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
+
18
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
19
+
20
+ var React = _interopRequireWildcard(require("react"));
21
+
22
+ var _propTypes = _interopRequireDefault(require("prop-types"));
23
+
24
+ var _iconsReact = require("@carbon/icons-react");
25
+
26
+ var _carbonComponentsReact = require("carbon-components-react");
27
+
28
+ var _classnames = _interopRequireDefault(require("classnames"));
29
+
30
+ var _RowSizeRadioGroup = _interopRequireDefault(require("./RowSizeRadioGroup"));
31
+
32
+ var _settings = require("../../../../../settings");
33
+
34
+ var _excluded = ["buttonLabel"];
35
+
36
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
37
+
38
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
39
+
40
+ var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
41
+
42
+ var RowSizeDropdown = function RowSizeDropdown(_ref) {
43
+ var _ref$buttonLabel = _ref.buttonLabel,
44
+ buttonLabel = _ref$buttonLabel === void 0 ? 'Row height' : _ref$buttonLabel,
45
+ props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
46
+ var buttonRef = React.useRef({});
47
+
48
+ var _React$useState = React.useState(false),
49
+ _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
50
+ isOpen = _React$useState2[0],
51
+ setIsOpen = _React$useState2[1];
52
+
53
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_carbonComponentsReact.Button, {
54
+ hasIconOnly: true,
55
+ ref: buttonRef,
56
+ kind: "ghost",
57
+ tooltipPosition: "left",
58
+ renderIcon: _iconsReact.Settings16,
59
+ onClick: function onClick() {
60
+ return setIsOpen(!isOpen);
61
+ },
62
+ iconDescription: buttonLabel,
63
+ className: (0, _classnames.default)((0, _defineProperty2.default)({}, "".concat(blockClass, "__row-size-button--open"), isOpen))
64
+ }), isOpen && /*#__PURE__*/React.createElement(_RowSizeRadioGroup.default, (0, _extends2.default)({}, props, {
65
+ buttonRef: buttonRef,
66
+ hideRadioGroup: function hideRadioGroup() {
67
+ setIsOpen(false);
68
+ }
69
+ })));
70
+ };
71
+
72
+ RowSizeDropdown.propTypes = {
73
+ buttonLabel: _propTypes.default.string,
74
+ datagridName: _propTypes.default.string.isRequired,
75
+ light: _propTypes.default.bool.isRequired,
76
+ onChange: _propTypes.default.func.isRequired,
77
+ selectedOption: _propTypes.default.string.isRequired
78
+ };
79
+ var _default = RowSizeDropdown;
80
+ exports.default = _default;
@@ -0,0 +1,160 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = void 0;
11
+
12
+ var _react = _interopRequireWildcard(require("react"));
13
+
14
+ var _propTypes = _interopRequireDefault(require("prop-types"));
15
+
16
+ var _carbonComponentsReact = require("carbon-components-react");
17
+
18
+ var _isArray = _interopRequireDefault(require("lodash/isArray"));
19
+
20
+ var _settings = require("../../../../../settings");
21
+
22
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
+
24
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
+
26
+ /* eslint-disable react/default-props-match-prop-types */
27
+ // @flow
28
+
29
+ /*
30
+ * Licensed Materials - Property of IBM
31
+ * 5724-Q36
32
+ * (c) Copyright IBM Corp. 2021
33
+ * US Government Users Restricted Rights - Use, duplication or disclosure
34
+ * restricted by GSA ADP Schedule Contract with IBM Corp.
35
+ */
36
+ var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
37
+
38
+ var RowSizeRadioGroup = function RowSizeRadioGroup(_ref) {
39
+ var rowSizes = _ref.rowSizes,
40
+ selectedOption = _ref.selectedOption,
41
+ datagridName = _ref.datagridName,
42
+ buttonRef = _ref.buttonRef,
43
+ onChange = _ref.onChange,
44
+ hideRadioGroup = _ref.hideRadioGroup,
45
+ _ref$legendText = _ref.legendText,
46
+ legendText = _ref$legendText === void 0 ? 'Row height' : _ref$legendText,
47
+ _ref$rowSizeLabels = _ref.rowSizeLabels,
48
+ rowSizeLabels = _ref$rowSizeLabels === void 0 ? {
49
+ xl: 'Extra large',
50
+ lg: 'Large (default)',
51
+ md: 'Medium',
52
+ sm: 'Small',
53
+ xs: 'Extra small'
54
+ } : _ref$rowSizeLabels;
55
+
56
+ var _getDropdownPosition = getDropdownPosition(buttonRef.current),
57
+ top = _getDropdownPosition.top,
58
+ right = _getDropdownPosition.right;
59
+
60
+ (0, _react.useEffect)(function () {
61
+ window.addEventListener('click', hideRadioGroup);
62
+ return function () {
63
+ window.removeEventListener('click', hideRadioGroup);
64
+ };
65
+ }, [hideRadioGroup]);
66
+ return /*#__PURE__*/_react.default.createElement("div", {
67
+ className: "".concat(blockClass, "__row-size-dropdown"),
68
+ style: {
69
+ top: top,
70
+ right: right
71
+ },
72
+ role: "presentation",
73
+ onClick: function onClick(e) {
74
+ e.stopPropagation();
75
+ }
76
+ }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.RadioButtonGroup, {
77
+ legendText: legendText,
78
+ name: "row-height-group",
79
+ orientation: "vertical",
80
+ defaultSelected: getBackwardCompatibleRowSize(selectedOption),
81
+ onChange: onChange
82
+ }, rowSizes && (0, _isArray.default)(rowSizes) && rowSizes.map(function (option) {
83
+ var labelText;
84
+
85
+ try {
86
+ labelText = option.labelText || rowSizeLabels[option.value];
87
+ } catch (e) {
88
+ labelText = option.value;
89
+ }
90
+
91
+ return /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.RadioButton, {
92
+ key: option.value,
93
+ labelText: labelText,
94
+ value: option.value,
95
+ id: "".concat(datagridName || 'datagrid', "--row-density--").concat(option.value)
96
+ });
97
+ })));
98
+ };
99
+
100
+ var getBackwardCompatibleRowSize = function getBackwardCompatibleRowSize(rowSize) {
101
+ // TODO: deprecate this function in next major release (v8) on carbon-components-react
102
+ var rowSizeMap = {
103
+ tall: 'xl',
104
+ normal: 'lg',
105
+ short: 'sm',
106
+ compact: 'xs' // md is a new value
107
+
108
+ };
109
+ return rowSizeMap[rowSize] || rowSize;
110
+ };
111
+
112
+ var getDropdownPosition = function getDropdownPosition(buttonEle) {
113
+ var parent = buttonEle.parentElement;
114
+
115
+ if (parent instanceof HTMLElement) {
116
+ var top = buttonEle.offsetTop + buttonEle.offsetHeight;
117
+ var right = parent.offsetWidth - parent.offsetLeft - (buttonEle.offsetLeft + buttonEle.offsetWidth);
118
+ return {
119
+ top: top,
120
+ right: right
121
+ };
122
+ }
123
+
124
+ return {
125
+ top: 0,
126
+ right: 0
127
+ };
128
+ };
129
+
130
+ RowSizeRadioGroup.defaultProps = {
131
+ rowSizes: [{
132
+ value: 'xl' // 64
133
+
134
+ }, {
135
+ value: 'lg' // 48
136
+
137
+ }, {
138
+ value: 'md' // 40
139
+
140
+ }, {
141
+ value: 'sm' // 32
142
+
143
+ }, {
144
+ value: 'xs' // 24
145
+
146
+ }],
147
+ selectedOption: 'lg'
148
+ };
149
+ RowSizeRadioGroup.propTypes = {
150
+ buttonRef: _propTypes.default.any.isRequired,
151
+ datagridName: _propTypes.default.string.isRequired,
152
+ hideRadioGroup: _propTypes.default.func.isRequired,
153
+ legendText: _propTypes.default.string,
154
+ onChange: _propTypes.default.func.isRequired,
155
+ rowSizeLabels: _propTypes.default.object,
156
+ rowSizes: _propTypes.default.array.isRequired,
157
+ selectedOption: _propTypes.default.string.isRequired
158
+ };
159
+ var _default = RowSizeRadioGroup;
160
+ exports.default = _default;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ Object.defineProperty(exports, "RowSizeDropdown", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _RowSizeDropdown.default;
12
+ }
13
+ });
14
+
15
+ var _RowSizeDropdown = _interopRequireDefault(require("./RowSizeDropdown"));
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ Object.defineProperty(exports, "default", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _Datagrid.default;
12
+ }
13
+ });
14
+
15
+ var _Datagrid = _interopRequireDefault(require("./Datagrid"));
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.story = void 0;
7
+ var notes = "\n # Customizing columns\n Customizing columns allows user to reorder and hide certain columns of the datagrid. Consuming component can use the provided callback to save/update according to their persistent strategy.\n\n ## Documentation:\n\n - (required) Add following plugins to `useDatagrid` hook\n - `useCustomizeColumns`\n - `useColumnOrder`\n - (required) Implement `options.DatagridActions` component\n - this component will have props: `datagridState`\n - render `datagridState.CustomizeColumnsButton` component wherever makes sense.\n - `CustomizeColumnsButton` props can be overridden. Available props: [carbon-components-react doc](https://react.carbondesignsystem.com/?path=/docs/components-button--default)\n - (optional) Preserve and apply the user preference\n - `options.initialState.hiddenColumns: Array<ColumnId: String>`\n - Array of column ids that will be hidden after initial render\n - [react-table doc](https://react-table.tanstack.com/docs/api/useTable#table-options)\n - `options.initialState.columnOrder: Array<ColumnId: String>`\n - Order of the columns. Any column ids not in this array will be ordered by their position in the `options.columns`\n - [react-table doc](https://react-table.tanstack.com/docs/api/useColumnOrder#table-options)\n - `options.customizeColumnsProps.onSaveColumnPrefs`\n - type: `Function(Columns: Array<{ColumnId: String, isVisible: Boolean}>) => void`\n - It's a callback function when 'Save' button clicked on the modal. It allows consumer to preserve the updated column preference. This output can also be used to compute the `hiddenColumns` and `columnOrder`\n - (optional) Reset to default\n - There is a reset to default button on the modal. It will use the `options.columns` as the default. If there are columns should be hidden by default, denote them with property: `isVisible: false` (undefined will be treated as `true`)\n\n code snippet:\n\n ```js\n const columns = React.useMemo(() => defaultHeader, []);\n const [data] = useState(makeData(10));\n const DatagridActions = (datagridState) => (\n <TableToolbarContent>\n <TableToolbarSearch ... />\n <Button ... />\n <datagridState.CustomizeColumnsButton />\n </TableToolbarContent>\n )\n const datagridState = useDatagrid(\n {\n columns,\n data,\n initialState: {\n hiddenColumns: ['age'],\n columnOrder: [],\n },\n customizeColumnsProps: {\n onSaveColumnPrefs: (newColDefs) => {\n console.log(newColDefs);\n },\n },\n DatagridActions,\n },\n useCustomizeColumns,\n useColumnOrder,\n );\n\n return (\n <Wrapper>\n <IntlProvider locale=\"en\">\n <Datagrid {...datagridState} />\n <div>\n Hidden column ids: \n <pre>{JSON.stringify(datagridState.state.hiddenColumns, null, 2)}</pre>\n </div>\n </IntlProvider>\n </Wrapper>\n );\n ```\n";
8
+ var story = {
9
+ parameters: {
10
+ notes: notes
11
+ }
12
+ };
13
+ exports.story = story;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.story = void 0;
7
+ var notes = "\n# Access left side panel in data grid\nAllow users to access left panel in datagrid.\n\n## Documentation:\n\n- (required) Implement `options.leftPanel` which has the following props\n - `options.leftPanel.isOpen` value is toggled by the Button onClick from DatagridActions\n - render `options.leftPanel.panelContent` inside the panel container of data grid when isOpen is true\n\ncode snippet:\n\n```js\nconst columns = React.useMemo(() => defaultHeader, []);\n const [data] = useState(makeData(10));\n const [isPanelOpen, setIsPanelOpen] = useState(false);\n const DatagridActions = (datagridState) => (\n <TableToolbarContent>\n <Button onClick={() => { setIsPanelOpen(!isPanelOpen); }}>Click to toggle left panel</Button>\n <TableToolbarSearch ... />\n <Button ... />\n <datagridState.CustomizeColumnsButton />\n </TableToolbarContent>\n )\n const datagridState = useDatagrid(\n {\n columns,\n data,\n leftPanel: {\n isOpen: isPanelOpen,\n panelContent: <div>Panel content will go here along with any button interactions</div>,\n },\n initialState: {\n hiddenColumns: ['age'],\n columnOrder: [],\n },\n customizeColumnsProps: {\n onSaveColumnPrefs: (newColDefs) => {\n console.log(newColDefs);\n },\n },\n DatagridActions,\n },\n );\n\nreturn (\n <Wrapper>\n <IntlProvider locale=\"en\">\n <Datagrid {...datagridState} />\n </IntlProvider>\n </Wrapper>\n);\n```\n";
8
+ var story = {
9
+ parameters: {
10
+ notes: notes
11
+ }
12
+ };
13
+ exports.story = story;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.story = void 0;
7
+ var notes = "\n# Changing row size (height/density)\nAllow users to adjust the data density on datagrid.\n\n## Documentation:\n\n- (optional) Define initial row size by `datagridOptions.rowSize`.\n - Default value is `md`.\n - Supported values are `xl`, `lg`, `md`, `sm`, `xs` same as size prop on carbon component react `DataTable`.\n- (optional) Provide list of allowed sizes use `datagridOptions.rowSizes`\n - Default list is\n ```\n [{ value: 'lg'}, { value: 'md'}, {value: 'sm'}, {value: 'xs'}]\n ```\n - Provide `labelText` in each option if not satisfied with the default labels.\n- (optional) Use `RowSizeDropdown` component to change row size:\n - (required) Implement `datagridOptions.DatagridActions` component\n - The component will have props: `datagridState`\n - Render `datagridState.RowSizeDropdown` component in `datagridOptions.DatagridActions`.\n - Pass `datagridState.rowSizeDropdownProps` as props\n - No extra logic is needed.\n - (optional) Preserve row size, use `datagridOptions.onRowSizeChange`\n - type: `Function(rowSize: String) => void`\n - It's a callback function when different row size option is selected on the dropdown.\n- (optional) Use other component to change row size:\n - Wire the variable controlled by the component with `datagridOptions.rowSize = variable`\n- (optional) Render different content in the cell on different `rowSize`\n - `Cell` renderer of each column will receive `datagridState` which will contain `rowSize`. Render different content based on this value.\n\ncode snippet:\n\n```js\nconst columns = React.useMemo(() => [ ...defaultHeader.slice(0, 3),\n {\n Header: 'Different cell content',\n id: 'rowSizeDemo-cell',\n disableSortBy: true,\n Cell: ({ rowSize }) => rowSize,\n }\n], []);\nconst [data] = useState(makeData(10));\nconst DatagridActions = (datagridState) => (\n <TableToolbarContent>\n <TableToolbarSearch ... />\n <Button ... />\n <datagridState.RowSizeDropdown {...datagridState.rowSizeDropdownProps} />\n </TableToolbarContent>\n)\nconst datagridState = useDatagrid(\n {\n columns,\n data,\n rowSize: 'xs',\n rowSizes: [\n {\n value: 'lg',\n labelText: 'Super tall row',\n },\n {\n value: 'md',\n },\n {\n value: 'xs',\n labelText: 'Teeny tiny row',\n },\n ],\n onRowSizeChange: (rowSize) => {\n console.log(rowSize);\n },\n DatagridActions,\n },\n);\n\nreturn (\n <Wrapper>\n <IntlProvider locale=\"en\">\n <Datagrid {...datagridState} />\n </IntlProvider>\n </Wrapper>\n);\n```\n";
8
+ var story = {
9
+ parameters: {
10
+ notes: notes
11
+ }
12
+ };
13
+ exports.story = story;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.story = void 0;
7
+ var notes = "\n# Select all toggle\nUse this feature will allow user to toggle the select all checkbox behavior between selecting all rows **on current page** vs **across all pages**\n<br/>\nIt's using [react-table API](https://react-table.tanstack.com/docs/api/useRowSelect#instance-properties) to select all rows.\n\n## Terminology\n- Pagination\n - **UI side pagination**: all rows are loaded to browser, but only display subset of them.\n - **Server side pagination**: subset of rows are loaded to browser, going to another page requires another network call\n- Selection mode\n - **all rows**: selects all rows across pages.\n - **all page rows**: selects all rows on the current page.\n\n## Compatibility with other plugin hooks and options\n- It has to be used with `useSelectRows` hook.\n- Select all toggle will not be enabled if `options.DatagridPagination` is not defined (select all is the same without pagination)\n- Compatible with `options.DatagridBatchActions`\n- Obviously it will not work when select-all is hidden by `options.hideSelectAll`.\n- Not compatible with `useInfiniteScroll`. Pull request welcome!\n\n## Sample usage:\n- (required) `useSelectRows` - enable row selections with select all on header\n- (required) `useSelectAllToggle` - enable select all toggle.\n- (optional) config the label on toggle menu:\n - (optional) `options.selectAllToggle.labels.allRows` for label that selects all rows across all pages\n - (optional) `options.selectAllToggle.labels.allPageRows` for label that selects all rows on current page\n- (optional) `options.selectAllToggle.onSelectAllRows`\n - type: `Function(areAllRowsSelected: Boolean) => void`\n - callback when `instance.isAllRowsSelected` value changes. Check out doc: [instance property](https://react-table.tanstack.com/docs/api/useRowSelect#instance-properties)\n - `true`: when selection mode is **all rows** and user selects all via toggle dropdown 'Select all' or toggle 'on' on the select all checkbox.\n - useful when grid is server side paginated (only a subset of rows are loaded in UI)\n\n```js\nconst columns = React.useMemo(() => defaultHeader, []);\n const [data] = useState(makeData(100));\n const datagridState = useDatagrid(\n {\n columns,\n data,\n initialState: {\n pageSize: 10,\n pageSizes: [5,10,25,50]\n },\n selectAllToggle: {\n labels: {\n allRows: \"Select all randomly generated rows\",\n },\n onSelectAllRows: (areAllSelected) => console.log('are all selected: ', areAllSelected),\n },\n DatagridPagination,\n DatagridActions,\n DatagridBatchActions,\n },\n useSelectRows,\n useSelectAllToggle,\n );\n\n return (\n <Wrapper>\n <Datagrid {...datagridState} />\n </Wrapper>\n);\n```\n\n";
8
+ var story = {
9
+ parameters: {
10
+ notes: notes
11
+ }
12
+ };
13
+ exports.story = story;