@carbon/ibm-products 2.41.1-canary.0 → 2.41.1-canary.13

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. package/css/index-full-carbon.css +6 -0
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +1 -1
  4. package/css/index-full-carbon.min.css.map +1 -1
  5. package/css/index-without-carbon-released-only.css +6 -0
  6. package/css/index-without-carbon-released-only.css.map +1 -1
  7. package/css/index-without-carbon-released-only.min.css +1 -1
  8. package/css/index-without-carbon-released-only.min.css.map +1 -1
  9. package/css/index-without-carbon.css +6 -0
  10. package/css/index-without-carbon.css.map +1 -1
  11. package/css/index-without-carbon.min.css +1 -1
  12. package/css/index-without-carbon.min.css.map +1 -1
  13. package/css/index.css +6 -0
  14. package/css/index.css.map +1 -1
  15. package/css/index.min.css +1 -1
  16. package/css/index.min.css.map +1 -1
  17. package/es/components/Coachmark/Coachmark.js +2 -1
  18. package/es/components/Datagrid/Datagrid/DatagridContent.js +21 -1
  19. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/TearsheetWrapper.js +12 -2
  20. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/InlineEditButton.d.ts +3 -3
  21. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/InlineEditButton.js +5 -5
  22. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.d.ts +3 -1
  23. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +12 -3
  24. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/InlineEditContext.js +7 -0
  25. package/es/components/Datagrid/useCustomizeColumns.js +0 -4
  26. package/es/components/Datagrid/useEditableCell.js +1 -1
  27. package/es/components/Datagrid/useFocusRowExpander.js +1 -1
  28. package/es/components/Datagrid/useInlineEdit.d.ts +1 -1
  29. package/es/components/Datagrid/useInlineEdit.js +9 -16
  30. package/es/components/EditUpdateCards/EditUpdateCards.d.ts +4 -3
  31. package/es/components/FeatureFlags/index.d.ts +37 -0
  32. package/es/components/FeatureFlags/index.js +151 -0
  33. package/es/components/Guidebanner/Guidebanner.js +7 -2
  34. package/es/components/ProductiveCard/ProductiveCard.d.ts +115 -2
  35. package/es/components/ProductiveCard/ProductiveCard.js +9 -9
  36. package/es/components/TagOverflow/TagOverflowModal.d.ts +34 -28
  37. package/es/components/TagOverflow/TagOverflowModal.js +4 -4
  38. package/es/components/index.d.ts +1 -0
  39. package/es/feature-flags.d.ts +1 -0
  40. package/es/global/js/hooks/usePortalTarget.js +4 -2
  41. package/es/index.js +1 -0
  42. package/lib/components/Coachmark/Coachmark.js +2 -1
  43. package/lib/components/Datagrid/Datagrid/DatagridContent.js +49 -29
  44. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/TearsheetWrapper.js +13 -19
  45. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/InlineEditButton.d.ts +3 -3
  46. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/InlineEditButton.js +5 -5
  47. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.d.ts +3 -1
  48. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +12 -3
  49. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/InlineEditContext.js +7 -0
  50. package/lib/components/Datagrid/useCustomizeColumns.js +0 -4
  51. package/lib/components/Datagrid/useEditableCell.js +1 -1
  52. package/lib/components/Datagrid/useFocusRowExpander.js +1 -1
  53. package/lib/components/Datagrid/useInlineEdit.d.ts +1 -1
  54. package/lib/components/Datagrid/useInlineEdit.js +8 -15
  55. package/lib/components/EditUpdateCards/EditUpdateCards.d.ts +4 -3
  56. package/lib/components/FeatureFlags/index.d.ts +37 -0
  57. package/lib/components/FeatureFlags/index.js +162 -0
  58. package/lib/components/Guidebanner/Guidebanner.js +7 -2
  59. package/lib/components/ProductiveCard/ProductiveCard.d.ts +115 -2
  60. package/lib/components/ProductiveCard/ProductiveCard.js +9 -9
  61. package/lib/components/TagOverflow/TagOverflowModal.d.ts +34 -28
  62. package/lib/components/TagOverflow/TagOverflowModal.js +2 -2
  63. package/lib/components/index.d.ts +1 -0
  64. package/lib/feature-flags.d.ts +1 -0
  65. package/lib/global/js/hooks/usePortalTarget.js +4 -2
  66. package/lib/index.js +4 -0
  67. package/package.json +7 -3
  68. package/scss/components/Datagrid/styles/_useInlineEdit.scss +6 -0
@@ -15,22 +15,16 @@ import { Card } from '../Card/Card.js';
15
15
 
16
16
  var _excluded = ["actionsPlacement"];
17
17
  var componentName = 'ProductiveCard';
18
-
19
- // Default values for props
20
- var defaults = {
21
- actionsPlacement: 'top'
22
- };
23
18
  var ProductiveCard = /*#__PURE__*/forwardRef(function (_ref, ref) {
24
19
  var _ref$actionsPlacement = _ref.actionsPlacement,
25
- actionsPlacement = _ref$actionsPlacement === void 0 ? defaults.actionsPlacement : _ref$actionsPlacement,
20
+ actionsPlacement = _ref$actionsPlacement === void 0 ? 'top' : _ref$actionsPlacement,
26
21
  rest = _objectWithoutProperties(_ref, _excluded);
27
22
  var validProps = prepareProps(rest, ['media', 'mediaPosition', 'pictogram', 'primaryButtonClick', 'productive', 'secondaryButtonKind']);
28
23
  return /*#__PURE__*/React__default.createElement(Card, _extends({}, _objectSpread2(_objectSpread2({}, validProps), {}, {
29
24
  actionsPlacement: actionsPlacement,
30
- ref: ref
31
- }), {
25
+ ref: ref,
32
26
  productive: true
33
- }, getDevtoolsProps(componentName)));
27
+ }), getDevtoolsProps(componentName)));
34
28
  });
35
29
 
36
30
  // Return a placeholder if not released and not enabled by feature flag
@@ -39,6 +33,7 @@ ProductiveCard.propTypes = {
39
33
  /**
40
34
  * Icons that are displayed on card. Refer to design documentation for implementation guidelines
41
35
  */
36
+ /**@ts-ignore */
42
37
  actionIcons: PropTypes.arrayOf(PropTypes.shape({
43
38
  id: PropTypes.string,
44
39
  icon: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
@@ -86,6 +81,7 @@ ProductiveCard.propTypes = {
86
81
  /**
87
82
  * Use an overflow menu instead of action icons. Refer to design documentation for implementation guidelines
88
83
  */
84
+ /**@ts-ignore */
89
85
  overflowActions: PropTypes.arrayOf(PropTypes.shape({
90
86
  id: PropTypes.string,
91
87
  itemText: PropTypes.string,
@@ -103,6 +99,7 @@ ProductiveCard.propTypes = {
103
99
  /**
104
100
  * Optional prop to allow overriding the icon rendering. Can be a React component class
105
101
  */
102
+ /**@ts-ignore */
106
103
  primaryButtonIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
107
104
  /**
108
105
  * Determines if the primary button is on the top or bottom of the card
@@ -111,6 +108,7 @@ ProductiveCard.propTypes = {
111
108
  /**
112
109
  * The text that's displayed in the primary button
113
110
  */
111
+ /**@ts-ignore */
114
112
  primaryButtonText: PropTypes.node,
115
113
  /**
116
114
  * Optionally specify an href for your Button to become an <a> element
@@ -119,6 +117,7 @@ ProductiveCard.propTypes = {
119
117
  /**
120
118
  * Optional prop to allow overriding the icon rendering. Can be a React component class
121
119
  */
120
+ /**@ts-ignore */
122
121
  secondaryButtonIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
123
122
  /**
124
123
  * Determines if the secondary button is on the top or bottom of the card
@@ -127,6 +126,7 @@ ProductiveCard.propTypes = {
127
126
  /**
128
127
  * The text that's displayed in the secondary button
129
128
  */
129
+ /**@ts-ignore */
130
130
  secondaryButtonText: PropTypes.node,
131
131
  /**
132
132
  * **Experimental:** For all cases a `Slug` component can be provided.
@@ -1,31 +1,37 @@
1
- export function TagOverflowModal({ allTags, className, title, onClose, open, overflowType, portalTarget: portalTargetIn, searchLabel, searchPlaceholder, ...rest }: {
2
- [x: string]: any;
3
- allTags: any;
4
- className: any;
5
- title: any;
6
- onClose: any;
7
- open: any;
8
- overflowType: any;
9
- portalTarget: any;
10
- searchLabel?: string | undefined;
11
- searchPlaceholder: any;
12
- }): any;
13
- export namespace TagOverflowModal {
14
- export namespace propTypes {
15
- let allTags: PropTypes.Requireable<(PropTypes.InferProps<{
1
+ /// <reference path="../../../src/custom-typings/index.d.ts" />
2
+ import React, { ReactNode } from 'react';
3
+ import PropTypes from 'prop-types';
4
+ import { Tag } from '@carbon/react';
5
+ interface TagType {
6
+ label: string;
7
+ }
8
+ type AllTags = (TagType & Omit<React.ComponentProps<Tag>, 'filter'>)[];
9
+ interface TagOverflowModalProps {
10
+ allTags?: AllTags;
11
+ className?: string;
12
+ onClose?: () => void;
13
+ open?: boolean;
14
+ overflowType?: 'default' | 'tag';
15
+ portalTarget?: ReactNode;
16
+ searchLabel?: string;
17
+ searchPlaceholder?: string;
18
+ title?: string;
19
+ }
20
+ export declare const TagOverflowModal: {
21
+ ({ allTags, className, title, onClose, open, overflowType, portalTarget: portalTargetIn, searchLabel, searchPlaceholder, ...rest }: TagOverflowModalProps): any;
22
+ propTypes: {
23
+ allTags: PropTypes.Requireable<(PropTypes.InferProps<{
16
24
  label: PropTypes.Validator<string>;
17
25
  }> | null | undefined)[]>;
18
- let className: PropTypes.Requireable<string>;
19
- let onClose: PropTypes.Requireable<(...args: any[]) => any>;
20
- let open: PropTypes.Requireable<boolean>;
21
- let overflowType: PropTypes.Requireable<string>;
22
- let portalTarget: PropTypes.Requireable<PropTypes.ReactNodeLike>;
23
- let searchLabel: PropTypes.Requireable<string>;
24
- let searchPlaceholder: PropTypes.Requireable<string>;
25
- let title: PropTypes.Requireable<string>;
26
- }
27
- export { componentName as displayName };
28
- }
29
- import PropTypes from 'prop-types';
30
- declare const componentName: "TagOverflowModal";
26
+ className: PropTypes.Requireable<string>;
27
+ onClose: PropTypes.Requireable<(...args: any[]) => any>;
28
+ open: PropTypes.Requireable<boolean>;
29
+ overflowType: PropTypes.Requireable<string>;
30
+ portalTarget: PropTypes.Requireable<PropTypes.ReactNodeLike>;
31
+ searchLabel: PropTypes.Requireable<string>;
32
+ searchPlaceholder: PropTypes.Requireable<string>;
33
+ title: PropTypes.Requireable<string>;
34
+ };
35
+ displayName: string;
36
+ };
31
37
  export {};
@@ -5,11 +5,11 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- import { objectWithoutProperties as _objectWithoutProperties, slicedToArray as _slicedToArray, extends as _extends, objectSpread2 as _objectSpread2 } from '../../_virtual/_rollupPluginBabelHelpers.js';
8
+ import { objectSpread2 as _objectSpread2, objectWithoutProperties as _objectWithoutProperties, slicedToArray as _slicedToArray, extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
9
9
  import React__default, { useState } from 'react';
10
10
  import PropTypes from '../../node_modules/prop-types/index.js';
11
11
  import cx from 'classnames';
12
- import { ComposedModal, ModalHeader, Search, ModalBody, Tag } from '@carbon/react';
12
+ import { Tag, ComposedModal, ModalHeader, Search, ModalBody } from '@carbon/react';
13
13
  import { pkg } from '../../settings.js';
14
14
  import { prepareProps } from '../../global/js/utils/props-helper.js';
15
15
  import { usePortalTarget } from '../../global/js/hooks/usePortalTarget.js';
@@ -42,13 +42,13 @@ var TagOverflowModal = function TagOverflowModal(_ref) {
42
42
  setSearch = _useState2[1];
43
43
  var renderPortalUse = usePortalTarget(portalTargetIn);
44
44
  var getFilteredItems = function getFilteredItems() {
45
- if (open && search) {
45
+ if (open && search && allTags) {
46
46
  return allTags.filter(function (tag) {
47
47
  var _tag$label;
48
48
  return (_tag$label = tag.label) === null || _tag$label === void 0 || (_tag$label = _tag$label.toLocaleLowerCase()) === null || _tag$label === void 0 ? void 0 : _tag$label.includes(search.toLocaleLowerCase());
49
49
  });
50
50
  }
51
- return allTags;
51
+ return allTags || [];
52
52
  };
53
53
  var handleSearch = function handleSearch(evt) {
54
54
  setSearch(evt.target.value || '');
@@ -69,3 +69,4 @@ export { Guidebanner, GuidebannerElement, GuidebannerElementButton, GuidebannerE
69
69
  export { InlineTip, InlineTipButton, InlineTipLink } from "./InlineTip";
70
70
  export { DescriptionList, DescriptionListBody, DescriptionListCell, DescriptionListRow } from "./DescriptionList";
71
71
  export { FilterPanel, FilterPanelAccordion, FilterPanelAccordionItem, FilterPanelCheckbox, FilterPanelCheckboxWithOverflow, FilterPanelGroup, FilterPanelLabel, FilterPanelSearch } from "./FilterPanel";
72
+ export { FeatureFlags as unstable_FeatureFlags, useFeatureFlag as unstable_useFeatureFlag, useFeatureFlags as unstable_useFeatureFlags } from "./FeatureFlags";
@@ -0,0 +1 @@
1
+ export {};
@@ -9,8 +9,10 @@ import { slicedToArray as _slicedToArray } from '../../../_virtual/_rollupPlugin
9
9
  import { useState, useEffect, useCallback } from 'react';
10
10
  import { pkg } from '../../../settings.js';
11
11
  import { createPortal } from 'react-dom';
12
+ import { useFeatureFlag } from '../../../components/FeatureFlags/index.js';
12
13
 
13
14
  var usePortalTarget = function usePortalTarget(portalTargetIn) {
15
+ var enablePortalTarget = useFeatureFlag('default-portal-target-body');
14
16
  var _useState = useState(null),
15
17
  _useState2 = _slicedToArray(_useState, 2),
16
18
  portalTarget = _useState2[0],
@@ -19,11 +21,11 @@ var usePortalTarget = function usePortalTarget(portalTargetIn) {
19
21
  if (portalTargetIn) {
20
22
  setPortalTarget(portalTargetIn);
21
23
  } else {
22
- if (pkg.isFeatureEnabled('default-portal-target-body')) {
24
+ if (pkg.isFeatureEnabled('default-portal-target-body') || enablePortalTarget) {
23
25
  setPortalTarget(document.body);
24
26
  }
25
27
  }
26
- }, [portalTargetIn]);
28
+ }, [portalTargetIn, enablePortalTarget]);
27
29
  var renderPortalUse = useCallback(function (children) {
28
30
  return portalTarget ? /*#__PURE__*/createPortal(children, portalTarget) : children;
29
31
  }, [portalTarget]);
package/es/index.js CHANGED
@@ -133,3 +133,4 @@ export { FilterPanelLabel } from './components/FilterPanel/FilterPanelLabel/Filt
133
133
  export { FilterPanelSearch } from './components/FilterPanel/FilterPanelSearch/FilterPanelSearch.js';
134
134
  export { ConditionBuilder } from './components/ConditionBuilder/ConditionBuilder.js';
135
135
  export { GetStartedCard } from './components/GetStartedCard/GetStartedCard.js';
136
+ export { FeatureFlags as unstable_FeatureFlags, useFeatureFlag as unstable_useFeatureFlag, useFeatureFlags as unstable_useFeatureFlags } from './components/FeatureFlags/index.js';
@@ -189,6 +189,7 @@ exports.Coachmark = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
189
189
  // Default to `document.body` when `portalNode` is `null`
190
190
  portalNode || document.body)));
191
191
  });
192
+ var overlayRefType = typeof HTMLElement === 'undefined' ? index["default"].object : index["default"].instanceOf(HTMLElement);
192
193
 
193
194
  // Return a placeholder if not released and not enabled by feature flag
194
195
  exports.Coachmark = settings.pkg.checkComponentEnabled(exports.Coachmark, componentName);
@@ -229,7 +230,7 @@ exports.Coachmark.propTypes = {
229
230
  */
230
231
  overlayKind: index["default"].oneOf(['tooltip', 'floating', 'stacked']),
231
232
  overlayRef: index["default"].shape({
232
- current: index["default"].instanceOf(HTMLElement)
233
+ current: overlayRefType
233
234
  }),
234
235
  /**
235
236
  * By default, the Coachmark will be appended to the end of `document.body`.
@@ -17,12 +17,13 @@ var constants = require('./addons/Filtering/constants.js');
17
17
  var DatagridBody = require('./DatagridBody.js');
18
18
  var DatagridHead = require('./DatagridHead.js');
19
19
  var DatagridToolbar = require('./DatagridToolbar.js');
20
- var index = require('../../../node_modules/prop-types/index.js');
20
+ var index$1 = require('../../../node_modules/prop-types/index.js');
21
21
  var cx = require('classnames');
22
22
  var handleGridFocus = require('./addons/InlineEdit/handleGridFocus.js');
23
23
  var handleGridKeyPress = require('./addons/InlineEdit/handleGridKeyPress.js');
24
24
  var layout = require('@carbon/layout');
25
25
  var FilterProvider = require('./addons/Filtering/FilterProvider.js');
26
+ var index = require('../../FeatureFlags/index.js');
26
27
  var InlineEditContext = require('./addons/InlineEdit/InlineEditContext/InlineEditContext.js');
27
28
  var useClickOutside = require('../../../global/js/hooks/useClickOutside.js');
28
29
  var useMultipleKeyTracking = require('../../DataSpreadsheet/hooks/useMultipleKeyTracking.js');
@@ -50,7 +51,8 @@ var DatagridContent = function DatagridContent(_ref) {
50
51
  panelOpen = _useContext2.panelOpen;
51
52
  var activeCellId = inlineEditState.activeCellId,
52
53
  gridActive = inlineEditState.gridActive,
53
- editId = inlineEditState.editId;
54
+ editId = inlineEditState.editId,
55
+ featureFlags = inlineEditState.featureFlags;
54
56
  var getTableProps = datagridState.getTableProps,
55
57
  getFilterFlyoutProps = datagridState.getFilterFlyoutProps,
56
58
  withVirtualScroll = datagridState.withVirtualScroll,
@@ -78,6 +80,24 @@ var DatagridContent = function DatagridContent(_ref) {
78
80
  var contentRows = DatagridPagination && page || rows;
79
81
  var gridAreaRef = React.useRef();
80
82
  var multiKeyTrackingRef = React.useRef();
83
+ var enableEditableCell = index.useFeatureFlag('enable-datagrid-useEditableCell');
84
+ var enableInlineEdit = index.useFeatureFlag('enable-datagrid-useInlineEdit');
85
+ var enableCustomizeCols = index.useFeatureFlag('enable-datagrid-useCustomizeColumns');
86
+ React.useEffect(function () {
87
+ dispatch({
88
+ type: 'SET_FEATURE_FLAGS',
89
+ payload: {
90
+ 'enable-datagrid-useEditableCell': enableEditableCell,
91
+ 'enable-datagrid-useInlineEdit': enableInlineEdit,
92
+ 'enable-datagrid-useCustomizeColumns': enableCustomizeCols
93
+ }
94
+ });
95
+ }, [dispatch, enableEditableCell, enableCustomizeCols, enableInlineEdit]);
96
+ React.useEffect(function () {
97
+ if (featureFlags && (featureFlags !== null && featureFlags !== void 0 && featureFlags['enable-datagrid-useEditableCell'] || featureFlags !== null && featureFlags !== void 0 && featureFlags['enable-datagrid-useInlineEdit'])) {
98
+ console.error("Datagrid useEditableCell/useInlineEdit extension has not been enabled via feature flag.");
99
+ }
100
+ }, [featureFlags]);
81
101
  useClickOutside.useClickOutside(gridAreaRef, function (target) {
82
102
  if (!withInlineEdit) {
83
103
  return;
@@ -184,34 +204,34 @@ var DatagridContent = function DatagridContent(_ref) {
184
204
  }));
185
205
  };
186
206
  DatagridContent.propTypes = {
187
- ariaToolbarLabel: index["default"].string,
188
- datagridState: index["default"].shape({
189
- getTableProps: index["default"].func,
190
- getFilterFlyoutProps: index["default"].func,
191
- withVirtualScroll: index["default"].bool,
192
- DatagridActions: index["default"].oneOfType([index["default"].element, index["default"].func]),
193
- DatagridPagination: index["default"].oneOfType([index["default"].element, index["default"].func]),
194
- CustomizeColumnsTearsheet: index["default"].oneOfType([index["default"].element, index["default"].func]),
195
- isFetching: index["default"].bool,
196
- skeletonRowCount: index["default"].number,
197
- fullHeightDatagrid: index["default"].bool,
198
- filterProps: index["default"].object,
199
- variableRowHeight: index["default"].bool,
200
- useDenseHeader: index["default"].bool,
201
- withInlineEdit: index["default"].bool,
202
- verticalAlign: index["default"].string,
203
- gridTitle: index["default"].node,
204
- gridDescription: index["default"].node,
205
- page: index["default"].arrayOf(index["default"].object),
206
- rows: index["default"].arrayOf(index["default"].object),
207
- tableId: index["default"].string,
208
- totalColumnsWidth: index["default"].number,
209
- gridRef: index["default"].object,
210
- setAllFilters: index["default"].func,
211
- getFilterProps: index["default"].func,
212
- state: index["default"].object
207
+ ariaToolbarLabel: index$1["default"].string,
208
+ datagridState: index$1["default"].shape({
209
+ getTableProps: index$1["default"].func,
210
+ getFilterFlyoutProps: index$1["default"].func,
211
+ withVirtualScroll: index$1["default"].bool,
212
+ DatagridActions: index$1["default"].oneOfType([index$1["default"].element, index$1["default"].func]),
213
+ DatagridPagination: index$1["default"].oneOfType([index$1["default"].element, index$1["default"].func]),
214
+ CustomizeColumnsTearsheet: index$1["default"].oneOfType([index$1["default"].element, index$1["default"].func]),
215
+ isFetching: index$1["default"].bool,
216
+ skeletonRowCount: index$1["default"].number,
217
+ fullHeightDatagrid: index$1["default"].bool,
218
+ filterProps: index$1["default"].object,
219
+ variableRowHeight: index$1["default"].bool,
220
+ useDenseHeader: index$1["default"].bool,
221
+ withInlineEdit: index$1["default"].bool,
222
+ verticalAlign: index$1["default"].string,
223
+ gridTitle: index$1["default"].node,
224
+ gridDescription: index$1["default"].node,
225
+ page: index$1["default"].arrayOf(index$1["default"].object),
226
+ rows: index$1["default"].arrayOf(index$1["default"].object),
227
+ tableId: index$1["default"].string,
228
+ totalColumnsWidth: index$1["default"].number,
229
+ gridRef: index$1["default"].object,
230
+ setAllFilters: index$1["default"].func,
231
+ getFilterProps: index$1["default"].func,
232
+ state: index$1["default"].object
213
233
  }),
214
- title: index["default"].string
234
+ title: index$1["default"].string
215
235
  };
216
236
 
217
237
  exports.DatagridContent = DatagridContent;
@@ -13,26 +13,11 @@ var _rollupPluginBabelHelpers = require('../../../../../_virtual/_rollupPluginBa
13
13
  var React = require('react');
14
14
  var index = require('../../../../../node_modules/prop-types/index.js');
15
15
  var CustomizeColumnsTearsheet = require('./CustomizeColumnsTearsheet.js');
16
+ var InlineEditContext = require('../InlineEdit/InlineEditContext/InlineEditContext.js');
16
17
 
17
- function _interopNamespace(e) {
18
- if (e && e.__esModule) return e;
19
- var n = Object.create(null);
20
- if (e) {
21
- Object.keys(e).forEach(function (k) {
22
- if (k !== 'default') {
23
- var d = Object.getOwnPropertyDescriptor(e, k);
24
- Object.defineProperty(n, k, d.get ? d : {
25
- enumerable: true,
26
- get: function () { return e[k]; }
27
- });
28
- }
29
- });
30
- }
31
- n["default"] = e;
32
- return Object.freeze(n);
33
- }
18
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
34
19
 
35
- var React__namespace = /*#__PURE__*/_interopNamespace(React);
20
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
36
21
 
37
22
  var _excluded = ["onSaveColumnPrefs", "isTearsheetOpen", "setIsTearsheetOpen", "labels"];
38
23
  var TearsheetWrapper = function TearsheetWrapper(_ref) {
@@ -43,7 +28,16 @@ var TearsheetWrapper = function TearsheetWrapper(_ref) {
43
28
  setIsTearsheetOpen = _instance$customizeCo.setIsTearsheetOpen,
44
29
  labels = _instance$customizeCo.labels,
45
30
  rest = _rollupPluginBabelHelpers.objectWithoutProperties(_instance$customizeCo, _excluded);
46
- return /*#__PURE__*/React__namespace.createElement(CustomizeColumnsTearsheet["default"], _rollupPluginBabelHelpers["extends"]({}, rest, labels, {
31
+ var _useContext = React.useContext(InlineEditContext.InlineEditContext),
32
+ state = _useContext.state;
33
+ var _ref2 = state || {},
34
+ featureFlags = _ref2.featureFlags;
35
+ React.useEffect(function () {
36
+ if (featureFlags && !(featureFlags !== null && featureFlags !== void 0 && featureFlags['enable-datagrid-useCustomizeColumns'])) {
37
+ console.error("Datagrid useCustomizeColumns extension has not been enabled via feature flag.");
38
+ }
39
+ }, [featureFlags]);
40
+ return /*#__PURE__*/React__default["default"].createElement(CustomizeColumnsTearsheet["default"], _rollupPluginBabelHelpers["extends"]({}, rest, labels, {
47
41
  isOpen: isTearsheetOpen,
48
42
  setIsTearsheetOpen: setIsTearsheetOpen,
49
43
  columnDefinitions: instance.allColumns,
@@ -1,9 +1,9 @@
1
- export function InlineEditButton({ label, renderIcon: Icon, disabled, labelIcon: LabelIcon, placeholder, nonEditCell, isActiveCell, columnConfig, type, }: {
1
+ export function InlineEditButton({ label, renderIcon: Icon, labelIcon: LabelIcon, placeholder, disabledCell, nonEditCell, isActiveCell, columnConfig, type, }: {
2
2
  label: any;
3
3
  renderIcon: any;
4
- disabled: any;
5
4
  labelIcon: any;
6
5
  placeholder: any;
6
+ disabledCell: any;
7
7
  nonEditCell: any;
8
8
  isActiveCell: any;
9
9
  columnConfig: any;
@@ -12,7 +12,7 @@ export function InlineEditButton({ label, renderIcon: Icon, disabled, labelIcon:
12
12
  export namespace InlineEditButton {
13
13
  namespace propTypes {
14
14
  let columnConfig: PropTypes.Requireable<object>;
15
- let disabled: PropTypes.Requireable<boolean>;
15
+ let disabledCell: PropTypes.Requireable<boolean>;
16
16
  let isActiveCell: PropTypes.Requireable<boolean>;
17
17
  let label: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
18
18
  let labelIcon: PropTypes.Requireable<object>;
@@ -24,18 +24,18 @@ var blockClass = "".concat(settings.pkg.prefix, "--datagrid");
24
24
  var InlineEditButton = function InlineEditButton(_ref) {
25
25
  var label = _ref.label,
26
26
  Icon = _ref.renderIcon,
27
- disabled = _ref.disabled,
28
27
  LabelIcon = _ref.labelIcon,
29
28
  placeholder = _ref.placeholder,
29
+ disabledCell = _ref.disabledCell,
30
30
  nonEditCell = _ref.nonEditCell,
31
31
  isActiveCell = _ref.isActiveCell,
32
32
  columnConfig = _ref.columnConfig,
33
33
  type = _ref.type;
34
34
  return /*#__PURE__*/React__default["default"].createElement("div", {
35
- className: cx__default["default"]("".concat(blockClass, "__inline-edit-button"), _rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.defineProperty({}, "".concat(blockClass, "__inline-edit-button--disabled"), disabled || nonEditCell), "".concat(blockClass, "__inline-edit-button--with-label-icon"), LabelIcon), "".concat(blockClass, "__inline-edit-button--non-edit"), nonEditCell), "".concat(blockClass, "__inline-edit-button--active"), isActiveCell), "".concat(blockClass, "__inline-edit-button--").concat(type), type === 'date' || type === 'selection')),
35
+ className: cx__default["default"]("".concat(blockClass, "__inline-edit-button"), _rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.defineProperty({}, "".concat(blockClass, "__inline-edit-button--disabled"), disabledCell), "".concat(blockClass, "__inline-edit-button--with-label-icon"), LabelIcon), "".concat(blockClass, "__inline-edit-button--non-edit"), nonEditCell), "".concat(blockClass, "__inline-edit-button--active"), isActiveCell), "".concat(blockClass, "__inline-edit-button--").concat(type), type === 'date' || type === 'selection')),
36
36
  tabIndex: isActiveCell ? 0 : -1,
37
- "data-disabled": disabled || nonEditCell,
38
- "aria-disabled": disabled || nonEditCell,
37
+ "data-disabled": disabledCell,
38
+ "aria-disabled": disabledCell,
39
39
  role: "button",
40
40
  title: label
41
41
  }, LabelIcon && /*#__PURE__*/React__default["default"].createElement("div", {
@@ -50,7 +50,7 @@ var InlineEditButton = function InlineEditButton(_ref) {
50
50
  };
51
51
  InlineEditButton.propTypes = {
52
52
  columnConfig: index["default"].object,
53
- disabled: index["default"].bool,
53
+ disabledCell: index["default"].bool,
54
54
  isActiveCell: index["default"].bool,
55
55
  label: index["default"].oneOfType([index["default"].string, index["default"].number]),
56
56
  labelIcon: index["default"].oneOfType([index["default"].func, index["default"].object]),
@@ -1,6 +1,7 @@
1
- export function InlineEditCell({ cell, config, instance, placeholder, tabIndex, value, nonEditCell, type, }: {
1
+ export function InlineEditCell({ cell, config, disabledCell, instance, placeholder, tabIndex, value, nonEditCell, type, }: {
2
2
  cell: any;
3
3
  config: any;
4
+ disabledCell?: boolean | undefined;
4
5
  instance: any;
5
6
  placeholder?: string | undefined;
6
7
  tabIndex: any;
@@ -12,6 +13,7 @@ export namespace InlineEditCell {
12
13
  namespace propTypes {
13
14
  let cell: PropTypes.Requireable<object>;
14
15
  let config: PropTypes.Requireable<object>;
16
+ let disabledCell: PropTypes.Requireable<boolean>;
15
17
  let instance: PropTypes.Requireable<PropTypes.InferProps<{
16
18
  columns: PropTypes.Requireable<(object | null | undefined)[]>;
17
19
  onDataUpdate: PropTypes.Requireable<(...args: any[]) => any>;
@@ -31,6 +31,8 @@ var InlineEditCell = function InlineEditCell(_ref) {
31
31
  var _config$validator, _value$text;
32
32
  var cell = _ref.cell,
33
33
  config = _ref.config,
34
+ _ref$disabledCell = _ref.disabledCell,
35
+ disabledCell = _ref$disabledCell === void 0 ? false : _ref$disabledCell,
34
36
  instance = _ref.instance,
35
37
  _ref$placeholder = _ref.placeholder,
36
38
  placeholder = _ref$placeholder === void 0 ? '' : _ref$placeholder,
@@ -328,6 +330,11 @@ var InlineEditCell = function InlineEditCell(_ref) {
328
330
  return icons.Calendar;
329
331
  }
330
332
  };
333
+ var renderRegularCell = function renderRegularCell() {
334
+ return /*#__PURE__*/React__default["default"].createElement("span", _rollupPluginBabelHelpers["extends"]({}, inputProps, {
335
+ id: cellId
336
+ }));
337
+ };
331
338
  var renderDateCell = function renderDateCell() {
332
339
  var _config$inputProps, _outerButtonElement$c;
333
340
  var datePickerPreparedProps = propsHelper.prepareProps(config.inputProps, ['datePickerInputProps']);
@@ -443,15 +450,16 @@ var InlineEditCell = function InlineEditCell(_ref) {
443
450
  "data-cell-id": cellId,
444
451
  "data-column-index": columnIndex,
445
452
  "data-row-index": cell.row.index,
446
- "data-disabled": nonEditCell,
453
+ "data-disabled": disabledCell,
447
454
  "data-inline-type": type,
448
455
  onClick: !nonEditCell ? handleInlineCellClick : addActiveState,
449
456
  onKeyDown: !nonEditCell ? handleKeyDown : null,
450
- className: cx__default["default"]("".concat(blockClass, "__inline-edit--outer-cell-button"), _rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.defineProperty({}, "".concat(blockClass, "__inline-edit--outer-cell-button--").concat(rowSize), rowSize), "".concat(blockClass, "__inline-edit--outer-cell-button--lg"), !rowSize), "".concat(blockClass, "__inline-edit--outer-cell-button--invalid"), config === null || config === void 0 || (_config$validator = config.validator) === null || _config$validator === void 0 ? void 0 : _config$validator.call(config, cellValue)))
451
- }, !inEditMode && /*#__PURE__*/React__default["default"].createElement(InlineEditButton.InlineEditButton, {
457
+ className: cx__default["default"]("".concat(blockClass, "__inline-edit--outer-cell-button"), _rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.defineProperty({}, "".concat(blockClass, "__inline-edit--outer-cell-button--").concat(rowSize), rowSize), "".concat(blockClass, "__inline-edit--outer-cell-button--lg"), !rowSize), "".concat(blockClass, "__inline-edit--outer-cell-button--invalid"), config === null || config === void 0 || (_config$validator = config.validator) === null || _config$validator === void 0 ? void 0 : _config$validator.call(config, cellValue)), "".concat(blockClass, "__static--outer-cell"), !disabledCell))
458
+ }, !nonEditCell && !disabledCell && renderRegularCell(), (!inEditMode || disabledCell) && /*#__PURE__*/React__default["default"].createElement(InlineEditButton.InlineEditButton, {
452
459
  isActiveCell: cellId === activeCellId,
453
460
  renderIcon: setRenderIcon(),
454
461
  label: type === 'selection' ? (_value$text = value === null || value === void 0 ? void 0 : value.text) !== null && _value$text !== void 0 ? _value$text : value : type === 'date' ? buildDate(value) : value,
462
+ disabledCell: disabledCell,
455
463
  labelIcon: (value === null || value === void 0 ? void 0 : value.icon) || null,
456
464
  placeholder: placeholder,
457
465
  tabIndex: tabIndex,
@@ -464,6 +472,7 @@ var InlineEditCell = function InlineEditCell(_ref) {
464
472
  InlineEditCell.propTypes = {
465
473
  cell: index["default"].object,
466
474
  config: index["default"].object,
475
+ disabledCell: index["default"].bool,
467
476
  instance: index["default"].shape({
468
477
  columns: index["default"].arrayOf(index["default"].object),
469
478
  onDataUpdate: index["default"].func,
@@ -81,6 +81,13 @@ var inlineEditReducer = function inlineEditReducer(state, action) {
81
81
  }
82
82
  break;
83
83
  }
84
+ case 'SET_FEATURE_FLAGS':
85
+ {
86
+ var _action$payload2;
87
+ return _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, state), {}, {
88
+ featureFlags: (_action$payload2 = action.payload) !== null && _action$payload2 !== void 0 ? _action$payload2 : {}
89
+ });
90
+ }
84
91
  default:
85
92
  return state;
86
93
  }
@@ -11,7 +11,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
11
11
 
12
12
  var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
13
13
  var React = require('react');
14
- var settings = require('../../settings.js');
15
14
  var ButtonWrapper = require('./Datagrid/addons/CustomizeColumns/ButtonWrapper.js');
16
15
  var TearsheetWrapper = require('./Datagrid/addons/CustomizeColumns/TearsheetWrapper.js');
17
16
 
@@ -36,9 +35,6 @@ function _interopNamespace(e) {
36
35
  var React__namespace = /*#__PURE__*/_interopNamespace(React);
37
36
 
38
37
  var useCustomizeColumns = function useCustomizeColumns(hooks) {
39
- React__namespace.useEffect(function () {
40
- settings.pkg.checkReportFeatureEnabled('Datagrid.useCustomizeColumns');
41
- }, []);
42
38
  var _React$useState = React__namespace.useState(false),
43
39
  _React$useState2 = _rollupPluginBabelHelpers.slicedToArray(_React$useState, 2),
44
40
  isTearsheetOpen = _React$useState2[0],
@@ -12,7 +12,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
12
12
  var useInlineEdit = require('./useInlineEdit.js');
13
13
 
14
14
  var useEditableCell = function useEditableCell(hooks) {
15
- useInlineEdit["default"](hooks, 'usingEditableCell');
15
+ useInlineEdit["default"](hooks);
16
16
  };
17
17
  var useEditableCell$1 = useEditableCell;
18
18
 
@@ -38,7 +38,7 @@ var useFocusRowExpander = function useFocusRowExpander(_ref) {
38
38
  });
39
39
  if (activeRow.length) {
40
40
  var rowExpander = activeRow[0].querySelector(".".concat(blockClass, "__row-expander"));
41
- rowExpander.focus();
41
+ rowExpander === null || rowExpander === void 0 || rowExpander.focus();
42
42
  }
43
43
  }, [instance === null || instance === void 0 ? void 0 : instance.tableId, instance === null || instance === void 0 ? void 0 : instance.expandedRows, lastExpandedRowIndex, blockClass, activeElement]);
44
44
  };
@@ -1,2 +1,2 @@
1
1
  export default useInlineEdit;
2
- declare function useInlineEdit(hooks: any, usingEditableCell: any): void;
2
+ declare function useInlineEdit(hooks: any): void;