carbon-addons-iot-react 5.2.3 → 5.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -22,7 +22,7 @@ import 'core-js/modules/es.string.replace.js';
22
22
  import 'core-js/modules/web.dom-collections.for-each.js';
23
23
  import { Search, SideNavItems, SideNav as SideNav$2, SideNavLink, SideNavMenu, SideNavMenuItem } from '@carbon/react';
24
24
  import PropTypes from 'prop-types';
25
- import React__default, { useState } from 'react';
25
+ import React__default, { useState, useEffect } from 'react';
26
26
  import classnames from 'classnames';
27
27
  import { settings } from '../../constants/Settings.js';
28
28
  import { CarbonIconPropType } from '../../constants/SharedPropTypes.js';
@@ -30,7 +30,7 @@ import { handleSpecificKeyDown } from '../../utils/componentUtilityFunctions.js'
30
30
  import { SideNavMetaDataPropType } from './sideNavPropTypes.js';
31
31
  import FilterableSideNavMenu from './FilterableSideNavMenu.js';
32
32
 
33
- var _excluded = ["links", "defaultExpanded", "hasSearch", "isSideNavExpanded", "i18n", "testId", "recentLinks"];
33
+ var _excluded = ["links", "defaultExpanded", "hasSearch", "isSideNavExpanded", "i18n", "testId", "recentLinks", "onFilterItems"];
34
34
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
35
35
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
36
36
  var iotPrefix = settings.iotPrefix,
@@ -161,7 +161,8 @@ var SideNavPropTypes = {
161
161
  searchPlaceholder: PropTypes.string,
162
162
  searchLabelText: PropTypes.string
163
163
  }),
164
- testId: PropTypes.string
164
+ testId: PropTypes.string,
165
+ onFilterItems: PropTypes.func
165
166
  };
166
167
  var defaultProps = {
167
168
  defaultExpanded: false,
@@ -178,7 +179,8 @@ var defaultProps = {
178
179
  searchLabelText: 'Find navigation item'
179
180
  },
180
181
  testId: 'side-nav',
181
- recentLinks: []
182
+ recentLinks: [],
183
+ onFilterItems: function onFilterItems() {}
182
184
  };
183
185
 
184
186
  /**
@@ -210,6 +212,7 @@ var SideNav = function SideNav(_ref) {
210
212
  i18n = _ref.i18n,
211
213
  testId = _ref.testId,
212
214
  recentLinks = _ref.recentLinks,
215
+ onFilterItems = _ref.onFilterItems,
213
216
  props = _objectWithoutProperties(_ref, _excluded);
214
217
  /**
215
218
  * Recursive function for rendering all the nested children nav items
@@ -220,11 +223,12 @@ var SideNav = function SideNav(_ref) {
220
223
  * @returns ReactElement
221
224
  */
222
225
  var renderLinkMenu = function renderLinkMenu(link, index) {
223
- var _link$metaData;
226
+ var _link$metaData, _link$metaData2;
224
227
  var level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
225
228
  var searchValue = arguments.length > 3 ? arguments[3] : undefined;
226
229
  var isFiltering = searchValue !== undefined;
227
230
  var parentActive = false;
231
+ var tabIndex = searchValue && (_link$metaData = link.metaData) !== null && _link$metaData !== void 0 && _link$metaData.getTabIndexBasedOnSearch ? link.metaData.getTabIndexBasedOnSearch(link, index) : (_link$metaData2 = link.metaData) === null || _link$metaData2 === void 0 ? void 0 : _link$metaData2.tabIndex;
228
232
  var children = link.childContent.map(function (childLink, childIndex) {
229
233
  if (isAnyChildActive(childLink)) {
230
234
  parentActive = true;
@@ -253,10 +257,13 @@ var SideNav = function SideNav(_ref) {
253
257
  title: link.linkContent,
254
258
  testId: "".concat(testId, "-menu-").concat(index),
255
259
  className: "".concat(iotPrefix, "--side-nav__item--depth-").concat(level)
256
- }, (_link$metaData = link.metaData) !== null && _link$metaData !== void 0 ? _link$metaData : {}), children);
260
+ }, link.metaData ? _objectSpread(_objectSpread({}, link.metaData), {}, {
261
+ tabIndex: tabIndex
262
+ }) : {}), children);
257
263
  };
258
264
  var renderLinks = function renderLinks(linkConfigurations, searchValue) {
259
265
  return linkConfigurations.map(function (link, index) {
266
+ var _link$metaData3, _link$metaData4;
260
267
  if (!link.isEnabled) {
261
268
  return null;
262
269
  }
@@ -265,6 +272,7 @@ var SideNav = function SideNav(_ref) {
265
272
  }
266
273
  var isFiltering = searchValue !== undefined;
267
274
  var content = searchValue ? markText(link.linkContent, searchValue) : link.linkContent;
275
+ var tabIndex = searchValue && (_link$metaData3 = link.metaData) !== null && _link$metaData3 !== void 0 && _link$metaData3.getTabIndexBasedOnSearch ? link.metaData.getTabIndexBasedOnSearch(link, index) : (_link$metaData4 = link.metaData) === null || _link$metaData4 === void 0 ? void 0 : _link$metaData4.tabIndex;
268
276
  return /*#__PURE__*/React__default.createElement(SideNavLink, _extends({
269
277
  key: "menu-link-".concat(link.metaData.label.replace(/\s/g, ''), "-global"),
270
278
  "aria-label": link.metaData.label,
@@ -274,7 +282,9 @@ var SideNav = function SideNav(_ref) {
274
282
  isActive: link.isActive,
275
283
  "data-testid": "".concat(testId, "-link-").concat(index),
276
284
  className: classnames(link.metaData.className, _defineProperty({}, "".concat(iotPrefix, "--side-nav__item--is-filtering"), isFiltering))
277
- }, link.metaData), content);
285
+ }, link.metaData ? _objectSpread(_objectSpread({}, link.metaData), {}, {
286
+ tabIndex: tabIndex
287
+ }) : {}), content);
278
288
  }).filter(function (i) {
279
289
  return i;
280
290
  });
@@ -302,6 +312,9 @@ var SideNav = function SideNav(_ref) {
302
312
  var linksToRender = isSearching ? filterLinks(filterableLinks, newSearchValue) : filterableLinks;
303
313
  setRenderedFilterableLinks(renderLinks(linksToRender, newSearchValue));
304
314
  };
315
+ useEffect(function () {
316
+ onFilterItems(renderedFilterableLinks);
317
+ }, [onFilterItems, renderedFilterableLinks]);
305
318
  var search = hasSearch ? [/*#__PURE__*/React__default.createElement(Search, {
306
319
  key: "sidenav-search",
307
320
  id: "sidenav-search",
@@ -531,6 +544,17 @@ SideNav.__docgenInfo = {
531
544
  },
532
545
  "required": false
533
546
  },
547
+ "onFilterItems": {
548
+ "defaultValue": {
549
+ "value": "() => {}",
550
+ "computed": false
551
+ },
552
+ "description": "",
553
+ "type": {
554
+ "name": "func"
555
+ },
556
+ "required": false
557
+ },
534
558
  "links": {
535
559
  "description": "array of link item objects",
536
560
  "type": {
@@ -45,7 +45,7 @@ var PropTypes__default = /*#__PURE__*/_interopDefault(PropTypes);
45
45
  var React__default = /*#__PURE__*/_interopDefault(React);
46
46
  var classnames__default = /*#__PURE__*/_interopDefault(classnames);
47
47
 
48
- var _excluded = ["links", "defaultExpanded", "hasSearch", "isSideNavExpanded", "i18n", "testId", "recentLinks"];
48
+ var _excluded = ["links", "defaultExpanded", "hasSearch", "isSideNavExpanded", "i18n", "testId", "recentLinks", "onFilterItems"];
49
49
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
50
50
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty__default.default(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
51
51
  var iotPrefix = Settings.settings.iotPrefix,
@@ -176,7 +176,8 @@ var SideNavPropTypes = {
176
176
  searchPlaceholder: PropTypes__default.default.string,
177
177
  searchLabelText: PropTypes__default.default.string
178
178
  }),
179
- testId: PropTypes__default.default.string
179
+ testId: PropTypes__default.default.string,
180
+ onFilterItems: PropTypes__default.default.func
180
181
  };
181
182
  var defaultProps = {
182
183
  defaultExpanded: false,
@@ -193,7 +194,8 @@ var defaultProps = {
193
194
  searchLabelText: 'Find navigation item'
194
195
  },
195
196
  testId: 'side-nav',
196
- recentLinks: []
197
+ recentLinks: [],
198
+ onFilterItems: function onFilterItems() {}
197
199
  };
198
200
 
199
201
  /**
@@ -225,6 +227,7 @@ var SideNav = function SideNav(_ref) {
225
227
  i18n = _ref.i18n,
226
228
  testId = _ref.testId,
227
229
  recentLinks = _ref.recentLinks,
230
+ onFilterItems = _ref.onFilterItems,
228
231
  props = _objectWithoutProperties__default.default(_ref, _excluded);
229
232
  /**
230
233
  * Recursive function for rendering all the nested children nav items
@@ -235,11 +238,12 @@ var SideNav = function SideNav(_ref) {
235
238
  * @returns ReactElement
236
239
  */
237
240
  var renderLinkMenu = function renderLinkMenu(link, index) {
238
- var _link$metaData;
241
+ var _link$metaData, _link$metaData2;
239
242
  var level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
240
243
  var searchValue = arguments.length > 3 ? arguments[3] : undefined;
241
244
  var isFiltering = searchValue !== undefined;
242
245
  var parentActive = false;
246
+ var tabIndex = searchValue && (_link$metaData = link.metaData) !== null && _link$metaData !== void 0 && _link$metaData.getTabIndexBasedOnSearch ? link.metaData.getTabIndexBasedOnSearch(link, index) : (_link$metaData2 = link.metaData) === null || _link$metaData2 === void 0 ? void 0 : _link$metaData2.tabIndex;
243
247
  var children = link.childContent.map(function (childLink, childIndex) {
244
248
  if (isAnyChildActive(childLink)) {
245
249
  parentActive = true;
@@ -268,10 +272,13 @@ var SideNav = function SideNav(_ref) {
268
272
  title: link.linkContent,
269
273
  testId: "".concat(testId, "-menu-").concat(index),
270
274
  className: "".concat(iotPrefix, "--side-nav__item--depth-").concat(level)
271
- }, (_link$metaData = link.metaData) !== null && _link$metaData !== void 0 ? _link$metaData : {}), children);
275
+ }, link.metaData ? _objectSpread(_objectSpread({}, link.metaData), {}, {
276
+ tabIndex: tabIndex
277
+ }) : {}), children);
272
278
  };
273
279
  var renderLinks = function renderLinks(linkConfigurations, searchValue) {
274
280
  return linkConfigurations.map(function (link, index) {
281
+ var _link$metaData3, _link$metaData4;
275
282
  if (!link.isEnabled) {
276
283
  return null;
277
284
  }
@@ -280,6 +287,7 @@ var SideNav = function SideNav(_ref) {
280
287
  }
281
288
  var isFiltering = searchValue !== undefined;
282
289
  var content = searchValue ? markText(link.linkContent, searchValue) : link.linkContent;
290
+ var tabIndex = searchValue && (_link$metaData3 = link.metaData) !== null && _link$metaData3 !== void 0 && _link$metaData3.getTabIndexBasedOnSearch ? link.metaData.getTabIndexBasedOnSearch(link, index) : (_link$metaData4 = link.metaData) === null || _link$metaData4 === void 0 ? void 0 : _link$metaData4.tabIndex;
283
291
  return /*#__PURE__*/React__default.default.createElement(react.SideNavLink, _extends__default.default({
284
292
  key: "menu-link-".concat(link.metaData.label.replace(/\s/g, ''), "-global"),
285
293
  "aria-label": link.metaData.label,
@@ -289,7 +297,9 @@ var SideNav = function SideNav(_ref) {
289
297
  isActive: link.isActive,
290
298
  "data-testid": "".concat(testId, "-link-").concat(index),
291
299
  className: classnames__default.default(link.metaData.className, _defineProperty__default.default({}, "".concat(iotPrefix, "--side-nav__item--is-filtering"), isFiltering))
292
- }, link.metaData), content);
300
+ }, link.metaData ? _objectSpread(_objectSpread({}, link.metaData), {}, {
301
+ tabIndex: tabIndex
302
+ }) : {}), content);
293
303
  }).filter(function (i) {
294
304
  return i;
295
305
  });
@@ -317,6 +327,9 @@ var SideNav = function SideNav(_ref) {
317
327
  var linksToRender = isSearching ? filterLinks(filterableLinks, newSearchValue) : filterableLinks;
318
328
  setRenderedFilterableLinks(renderLinks(linksToRender, newSearchValue));
319
329
  };
330
+ React.useEffect(function () {
331
+ onFilterItems(renderedFilterableLinks);
332
+ }, [onFilterItems, renderedFilterableLinks]);
320
333
  var search = hasSearch ? [/*#__PURE__*/React__default.default.createElement(react.Search, {
321
334
  key: "sidenav-search",
322
335
  id: "sidenav-search",
@@ -546,6 +559,17 @@ SideNav.__docgenInfo = {
546
559
  },
547
560
  "required": false
548
561
  },
562
+ "onFilterItems": {
563
+ "defaultValue": {
564
+ "value": "() => {}",
565
+ "computed": false
566
+ },
567
+ "description": "",
568
+ "type": {
569
+ "name": "func"
570
+ },
571
+ "required": false
572
+ },
549
573
  "links": {
550
574
  "description": "array of link item objects",
551
575
  "type": {
package/package.json CHANGED
@@ -353,11 +353,11 @@
353
353
  "whatwg-fetch": "^3.0.0"
354
354
  },
355
355
  "sideEffects": false,
356
- "version": "5.2.3",
356
+ "version": "5.3.0",
357
357
  "resolutions": {
358
358
  "chokidar": "3.3.1",
359
359
  "react-grid-layout": "1.2.2",
360
360
  "got": "11.8.5"
361
361
  },
362
- "gitHead": "88b39b71a6b7785ea33a6cac05b081d23a4c8e1f"
362
+ "gitHead": "618cd9183f7cf300a87976a4dfb375de3e82a493"
363
363
  }
@@ -259111,7 +259111,7 @@ ${formatRule(Codicon.menuSubmenu)}
259111
259111
  };
259112
259112
  var FilterableSideNavMenu$1 = FilterableSideNavMenu;
259113
259113
 
259114
- var _excluded$u = ["links", "defaultExpanded", "hasSearch", "isSideNavExpanded", "i18n", "testId", "recentLinks"];
259114
+ var _excluded$u = ["links", "defaultExpanded", "hasSearch", "isSideNavExpanded", "i18n", "testId", "recentLinks", "onFilterItems"];
259115
259115
  function ownKeys$1b(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
259116
259116
  function _objectSpread$19(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1b(Object(t), !0).forEach(function (r) { _defineProperty$c(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1b(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
259117
259117
  var iotPrefix$14 = settings.iotPrefix,
@@ -259242,7 +259242,8 @@ ${formatRule(Codicon.menuSubmenu)}
259242
259242
  searchPlaceholder: PropTypes.string,
259243
259243
  searchLabelText: PropTypes.string
259244
259244
  }),
259245
- testId: PropTypes.string
259245
+ testId: PropTypes.string,
259246
+ onFilterItems: PropTypes.func
259246
259247
  };
259247
259248
  var defaultProps$1n = {
259248
259249
  defaultExpanded: false,
@@ -259259,7 +259260,8 @@ ${formatRule(Codicon.menuSubmenu)}
259259
259260
  searchLabelText: 'Find navigation item'
259260
259261
  },
259261
259262
  testId: 'side-nav',
259262
- recentLinks: []
259263
+ recentLinks: [],
259264
+ onFilterItems: function onFilterItems() {}
259263
259265
  };
259264
259266
 
259265
259267
  /**
@@ -259291,6 +259293,7 @@ ${formatRule(Codicon.menuSubmenu)}
259291
259293
  i18n = _ref.i18n,
259292
259294
  testId = _ref.testId,
259293
259295
  recentLinks = _ref.recentLinks,
259296
+ onFilterItems = _ref.onFilterItems,
259294
259297
  props = _objectWithoutProperties$3(_ref, _excluded$u);
259295
259298
  /**
259296
259299
  * Recursive function for rendering all the nested children nav items
@@ -259301,11 +259304,12 @@ ${formatRule(Codicon.menuSubmenu)}
259301
259304
  * @returns ReactElement
259302
259305
  */
259303
259306
  var renderLinkMenu = function renderLinkMenu(link, index) {
259304
- var _link$metaData;
259307
+ var _link$metaData, _link$metaData2;
259305
259308
  var level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
259306
259309
  var searchValue = arguments.length > 3 ? arguments[3] : undefined;
259307
259310
  var isFiltering = searchValue !== undefined;
259308
259311
  var parentActive = false;
259312
+ var tabIndex = searchValue && (_link$metaData = link.metaData) !== null && _link$metaData !== void 0 && _link$metaData.getTabIndexBasedOnSearch ? link.metaData.getTabIndexBasedOnSearch(link, index) : (_link$metaData2 = link.metaData) === null || _link$metaData2 === void 0 ? void 0 : _link$metaData2.tabIndex;
259309
259313
  var children = link.childContent.map(function (childLink, childIndex) {
259310
259314
  if (isAnyChildActive(childLink)) {
259311
259315
  parentActive = true;
@@ -259334,10 +259338,13 @@ ${formatRule(Codicon.menuSubmenu)}
259334
259338
  title: link.linkContent,
259335
259339
  testId: "".concat(testId, "-menu-").concat(index),
259336
259340
  className: "".concat(iotPrefix$14, "--side-nav__item--depth-").concat(level)
259337
- }, (_link$metaData = link.metaData) !== null && _link$metaData !== void 0 ? _link$metaData : {}), children);
259341
+ }, link.metaData ? _objectSpread$19(_objectSpread$19({}, link.metaData), {}, {
259342
+ tabIndex: tabIndex
259343
+ }) : {}), children);
259338
259344
  };
259339
259345
  var renderLinks = function renderLinks(linkConfigurations, searchValue) {
259340
259346
  return linkConfigurations.map(function (link, index) {
259347
+ var _link$metaData3, _link$metaData4;
259341
259348
  if (!link.isEnabled) {
259342
259349
  return null;
259343
259350
  }
@@ -259346,6 +259353,7 @@ ${formatRule(Codicon.menuSubmenu)}
259346
259353
  }
259347
259354
  var isFiltering = searchValue !== undefined;
259348
259355
  var content = searchValue ? markText(link.linkContent, searchValue) : link.linkContent;
259356
+ var tabIndex = searchValue && (_link$metaData3 = link.metaData) !== null && _link$metaData3 !== void 0 && _link$metaData3.getTabIndexBasedOnSearch ? link.metaData.getTabIndexBasedOnSearch(link, index) : (_link$metaData4 = link.metaData) === null || _link$metaData4 === void 0 ? void 0 : _link$metaData4.tabIndex;
259349
259357
  return /*#__PURE__*/React$1.createElement(react.SideNavLink, _extends$3({
259350
259358
  key: "menu-link-".concat(link.metaData.label.replace(/\s/g, ''), "-global"),
259351
259359
  "aria-label": link.metaData.label,
@@ -259355,7 +259363,9 @@ ${formatRule(Codicon.menuSubmenu)}
259355
259363
  isActive: link.isActive,
259356
259364
  "data-testid": "".concat(testId, "-link-").concat(index),
259357
259365
  className: classnames(link.metaData.className, _defineProperty$c({}, "".concat(iotPrefix$14, "--side-nav__item--is-filtering"), isFiltering))
259358
- }, link.metaData), content);
259366
+ }, link.metaData ? _objectSpread$19(_objectSpread$19({}, link.metaData), {}, {
259367
+ tabIndex: tabIndex
259368
+ }) : {}), content);
259359
259369
  }).filter(function (i) {
259360
259370
  return i;
259361
259371
  });
@@ -259383,6 +259393,9 @@ ${formatRule(Codicon.menuSubmenu)}
259383
259393
  var linksToRender = isSearching ? filterLinks(filterableLinks, newSearchValue) : filterableLinks;
259384
259394
  setRenderedFilterableLinks(renderLinks(linksToRender, newSearchValue));
259385
259395
  };
259396
+ React$1.useEffect(function () {
259397
+ onFilterItems(renderedFilterableLinks);
259398
+ }, [onFilterItems, renderedFilterableLinks]);
259386
259399
  var search = hasSearch ? [/*#__PURE__*/React$1.createElement(react.Search, {
259387
259400
  key: "sidenav-search",
259388
259401
  id: "sidenav-search",
@@ -259612,6 +259625,17 @@ ${formatRule(Codicon.menuSubmenu)}
259612
259625
  },
259613
259626
  "required": false
259614
259627
  },
259628
+ "onFilterItems": {
259629
+ "defaultValue": {
259630
+ "value": "() => {}",
259631
+ "computed": false
259632
+ },
259633
+ "description": "",
259634
+ "type": {
259635
+ "name": "func"
259636
+ },
259637
+ "required": false
259638
+ },
259615
259639
  "links": {
259616
259640
  "description": "array of link item objects",
259617
259641
  "type": {