@hitachivantara/uikit-react-core 3.55.2 → 3.56.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/CHANGELOG.md +57 -0
  2. package/dist/AssetInventory/AssetInventory.d.ts +1 -1
  3. package/dist/AssetInventory/AssetInventory.js +17 -10
  4. package/dist/AssetInventory/AssetInventory.js.map +1 -1
  5. package/dist/AssetInventory/CardView/CardView.js +2 -1
  6. package/dist/AssetInventory/CardView/CardView.js.map +1 -1
  7. package/dist/OverflowTooltip/OverflowTooltip.d.ts +26 -6
  8. package/dist/OverflowTooltip/OverflowTooltip.js +46 -9
  9. package/dist/OverflowTooltip/OverflowTooltip.js.map +1 -1
  10. package/dist/TagsInput/TagsInput.d.ts +17 -1
  11. package/dist/TagsInput/TagsInput.js +34 -5
  12. package/dist/TagsInput/TagsInput.js.map +1 -1
  13. package/dist/TextArea/TextArea.js +4 -4
  14. package/dist/TextArea/TextArea.js.map +1 -1
  15. package/dist/Tooltip/Tooltip.js +1 -1
  16. package/dist/Tooltip/Tooltip.js.map +1 -1
  17. package/dist/legacy/AssetInventory/AssetInventory.d.ts +1 -1
  18. package/dist/legacy/AssetInventory/AssetInventory.js +17 -10
  19. package/dist/legacy/AssetInventory/AssetInventory.js.map +1 -1
  20. package/dist/legacy/AssetInventory/CardView/CardView.js +2 -1
  21. package/dist/legacy/AssetInventory/CardView/CardView.js.map +1 -1
  22. package/dist/legacy/OverflowTooltip/OverflowTooltip.d.ts +26 -6
  23. package/dist/legacy/OverflowTooltip/OverflowTooltip.js +30 -9
  24. package/dist/legacy/OverflowTooltip/OverflowTooltip.js.map +1 -1
  25. package/dist/legacy/TagsInput/TagsInput.d.ts +17 -1
  26. package/dist/legacy/TagsInput/TagsInput.js +34 -5
  27. package/dist/legacy/TagsInput/TagsInput.js.map +1 -1
  28. package/dist/legacy/TextArea/TextArea.js +4 -4
  29. package/dist/legacy/TextArea/TextArea.js.map +1 -1
  30. package/dist/legacy/Tooltip/Tooltip.js +1 -1
  31. package/dist/legacy/Tooltip/Tooltip.js.map +1 -1
  32. package/dist/modern/AssetInventory/AssetInventory.d.ts +1 -1
  33. package/dist/modern/AssetInventory/AssetInventory.js +15 -9
  34. package/dist/modern/AssetInventory/AssetInventory.js.map +1 -1
  35. package/dist/modern/AssetInventory/CardView/CardView.js +1 -1
  36. package/dist/modern/AssetInventory/CardView/CardView.js.map +1 -1
  37. package/dist/modern/OverflowTooltip/OverflowTooltip.d.ts +26 -6
  38. package/dist/modern/OverflowTooltip/OverflowTooltip.js +25 -9
  39. package/dist/modern/OverflowTooltip/OverflowTooltip.js.map +1 -1
  40. package/dist/modern/TagsInput/TagsInput.d.ts +17 -1
  41. package/dist/modern/TagsInput/TagsInput.js +34 -5
  42. package/dist/modern/TagsInput/TagsInput.js.map +1 -1
  43. package/dist/modern/TextArea/TextArea.js +4 -4
  44. package/dist/modern/TextArea/TextArea.js.map +1 -1
  45. package/dist/modern/Tooltip/Tooltip.js +1 -1
  46. package/dist/modern/Tooltip/Tooltip.js.map +1 -1
  47. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -3,6 +3,63 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [3.56.2](https://github.com/lumada-design/hv-uikit-react/compare/@hitachivantara/uikit-react-core@3.56.1...@hitachivantara/uikit-react-core@3.56.2) (2022-02-21)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **overflow-tooltip:** tooltip is appearing when not needed ([9c92d8d](https://github.com/lumada-design/hv-uikit-react/commit/9c92d8d26ddbda7742c531d9977a25b8be91028d))
12
+ * **tooltip:** proptype is node when should be enum of strings ([a7139ea](https://github.com/lumada-design/hv-uikit-react/commit/a7139ea2a35d5d4acd93a787ba237f06eb7b478e))
13
+
14
+
15
+
16
+
17
+
18
+ ## [3.56.1](https://github.com/lumada-design/hv-uikit-react/compare/@hitachivantara/uikit-react-core@3.56.0...@hitachivantara/uikit-react-core@3.56.1) (2022-02-17)
19
+
20
+
21
+ ### Bug Fixes
22
+
23
+ * **TextArea:** fixed TextArea scrolling when it shouldn't ([11d8435](https://github.com/lumada-design/hv-uikit-react/commit/11d843593e47d82f3290f62f5527f01367a8632d))
24
+
25
+
26
+
27
+
28
+
29
+ # [3.56.0](https://github.com/lumada-design/hv-uikit-react/compare/@hitachivantara/uikit-react-core@3.55.3...@hitachivantara/uikit-react-core@3.56.0) (2022-02-16)
30
+
31
+
32
+ ### Bug Fixes
33
+
34
+ * **asset-inventory:** bulk actions triggering onSelection callback. HVUIKIT-6315 ([1f69da8](https://github.com/lumada-design/hv-uikit-react/commit/1f69da8829a38178264d57679db4d3281bbe7ed3))
35
+ * **BarChart:** fix tooltip displaying when hovering outside of the chart bars ([54a279a](https://github.com/lumada-design/hv-uikit-react/commit/54a279ac91c78ce4d55aeef5a9a51a23be337f50))
36
+ * **tags-input:** input should be clean when tags change. ([#2672](https://github.com/lumada-design/hv-uikit-react/issues/2672)) ([2ffbbf2](https://github.com/lumada-design/hv-uikit-react/commit/2ffbbf25893a8b297a2ef89259e8a9fd92da7c13))
37
+ * **TagsInput:** fix reset input on value change ([d4f2df1](https://github.com/lumada-design/hv-uikit-react/commit/d4f2df1f83b6eb7aa2a22556c2a33001a667ab23))
38
+
39
+
40
+ ### Features
41
+
42
+ * **tag-input:** adding on blur callback ([458cbad](https://github.com/lumada-design/hv-uikit-react/commit/458cbadbe9ed19fc98f6d4999389c7c67dc79920))
43
+
44
+
45
+
46
+
47
+
48
+ ## [3.55.3](https://github.com/lumada-design/hv-uikit-react/compare/@hitachivantara/uikit-react-core@3.55.2...@hitachivantara/uikit-react-core@3.55.3) (2022-02-15)
49
+
50
+
51
+ ### Bug Fixes
52
+
53
+ * **asset-inventory:** bulk actions triggering onSelection callback. HVUIKIT-6315 ([1f69da8](https://github.com/lumada-design/hv-uikit-react/commit/1f69da8829a38178264d57679db4d3281bbe7ed3))
54
+ * **AssetInventory:** fixed undefined emptyComponent on the CardView causing app crash ([#2677](https://github.com/lumada-design/hv-uikit-react/issues/2677)) ([253c62f](https://github.com/lumada-design/hv-uikit-react/commit/253c62fadb385b41e7852915d2ccc0c8e8e827bd))
55
+ * **BarChart:** fix tooltip displaying when hovering outside of the chart bars ([54a279a](https://github.com/lumada-design/hv-uikit-react/commit/54a279ac91c78ce4d55aeef5a9a51a23be337f50))
56
+ * **tags-input:** input should be clean when tags change. ([#2672](https://github.com/lumada-design/hv-uikit-react/issues/2672)) ([2ffbbf2](https://github.com/lumada-design/hv-uikit-react/commit/2ffbbf25893a8b297a2ef89259e8a9fd92da7c13))
57
+ * **TagsInput:** fix reset input on value change ([d4f2df1](https://github.com/lumada-design/hv-uikit-react/commit/d4f2df1f83b6eb7aa2a22556c2a33001a667ab23))
58
+
59
+
60
+
61
+
62
+
6
63
  ## [3.55.2](https://github.com/lumada-design/hv-uikit-react/compare/@hitachivantara/uikit-react-core@3.55.0...@hitachivantara/uikit-react-core@3.55.2) (2022-02-13)
7
64
 
8
65
 
@@ -104,7 +104,7 @@ export interface HvAssetInventoryProps
104
104
  /**
105
105
  * Callback evoked in the selection of the card.
106
106
  */
107
- onSelection?: (event: React.FormEvent<HTMLDivElement>, payload: object) => void;
107
+ onSelection?: (event: React.FormEvent<HTMLDivElement>, selection: string[]) => void;
108
108
  /**
109
109
  * Extra filters
110
110
  */
@@ -228,8 +228,11 @@ var HvAssetInventory = function HvAssetInventory(props) {
228
228
  };
229
229
 
230
230
  var changePageValues = (0, _react.useCallback)(function (returnedPageValues) {
231
- setPageValues(getPaginationData(hasPagination, paginationServerSide, returnedPageValues, pageSize, page));
232
- }, [hasPagination, paginationServerSide, pageSize, page]);
231
+ var p = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : page;
232
+ setPageValues(getPaginationData(hasPagination, paginationServerSide, returnedPageValues, pageSize, p));
233
+ }, [hasPagination, paginationServerSide, pageSize, page]); // TODO: we must revisit this section in the future. Right now, sorting the results will
234
+ // reset the array of values which means that we can't sort a filtered result set.
235
+
233
236
  (0, _react.useEffect)(function () {
234
237
  if (!(selectedSort !== null && selectedSort !== void 0 && selectedSort.sortId && selectedSort !== null && selectedSort !== void 0 && selectedSort.sortFunc)) return;
235
238
  var sortedValues = (0, _toConsumableArray2.default)(valuesProp).sort(selectedSort.sortFunc);
@@ -241,7 +244,7 @@ var HvAssetInventory = function HvAssetInventory(props) {
241
244
  setValues(results);
242
245
  setPage(0);
243
246
  setSearchString(value);
244
- changePageValues(results);
247
+ changePageValues(results, 0);
245
248
  };
246
249
  /**
247
250
  * Show the search component.
@@ -325,16 +328,20 @@ var HvAssetInventory = function HvAssetInventory(props) {
325
328
 
326
329
  var handleSelectPage = function handleSelectPage(e) {
327
330
  var checked = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
328
- setSelectedValues(checked ? [] : pageValues.map(function (v) {
331
+ var selection = pageValues.map(function (v) {
329
332
  return v.id;
330
- }));
333
+ });
334
+ setSelectedValues(checked ? selection : []);
335
+ onSelection === null || onSelection === void 0 ? void 0 : onSelection(e, checked ? selection : []);
331
336
  };
332
337
 
333
- var handleSelectAll = function handleSelectAll() {
338
+ var handleSelectAll = function handleSelectAll(e) {
334
339
  var allSelected = selectedValues.length === values.length;
335
- setSelectedValues(allSelected ? [] : values.map(function (v) {
340
+ var selection = values.map(function (v) {
336
341
  return v.id;
337
- }));
342
+ });
343
+ setSelectedValues(allSelected ? [] : selection);
344
+ onSelection === null || onSelection === void 0 ? void 0 : onSelection(e, allSelected ? [] : selection);
338
345
  };
339
346
 
340
347
  var innerOnSelection = function innerOnSelection(onSelectionFn) {
@@ -344,7 +351,7 @@ var HvAssetInventory = function HvAssetInventory(props) {
344
351
  return item !== valueId;
345
352
  }) || [];
346
353
  setSelectedValues(list);
347
- onSelectionFn === null || onSelectionFn === void 0 ? void 0 : onSelectionFn(event);
354
+ onSelectionFn === null || onSelectionFn === void 0 ? void 0 : onSelectionFn(event, list);
348
355
  };
349
356
  };
350
357
 
@@ -590,7 +597,7 @@ process.env.NODE_ENV !== "production" ? HvAssetInventory.propTypes = {
590
597
  }).isRequired,
591
598
 
592
599
  /**
593
- * Callback evoked in the selection of the card.
600
+ * Callback evoked in the selection of the card. Receives the event and the current selection of the asset inventory
594
601
  */
595
602
  onSelection: _propTypes.default.func,
596
603
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/AssetInventory/AssetInventory.js"],"names":["DEFAULT_LABELS","sortBy","inputLabel","placeholder","getPaginationData","hasPagination","paginationServerSide","values","pageSize","page","slice","HvAssetInventory","props","id","classes","className","valuesProp","selectedValues","selectedValuesProp","selectedView","selectedViewProp","children","searchString","searchStringProp","sortOptionId","labelsProp","labels","configuration","onSearch","searchProps","onSortChange","disablePortal","sortProps","pageProp","pages","pageSizeProp","pageSizeOptions","hasBulkActions","paginationProps","onPageChange","onPageSizeChange","onSelection","isSelectable","actions","maxVisibleActions","actionsCallback","FilterPlaceholder","onViewChange","multibuttonProps","emptyComponent","innerPageSize","innerPageValues","setSelectedView","setPageSize","setPage","setValues","pageValues","setPageValues","setSelectedValues","setSearchString","sortId","sortFunc","undefined","selectedSort","setSelectedSort","currentBreakpoint","length","changeView","_event","viewIndex","changePageValues","returnedPageValues","sortedValues","sort","setSearchResults","results","value","renderSearch","searchBoxContainer","metadata","onSort","renderSort","sortContainer","paginationOnPageChange","newPage","pageData","paginationOnPageSizeChange","newPageSize","renderPagination","numPages","Math","ceil","onPageChangeInternal","onPageSizeChangeInternal","root","pagination","handleSelectPage","e","checked","map","v","handleSelectAll","allSelected","innerOnSelection","onSelectionFn","event","valueId","target","list","includes","filter","item","propsFillerManager","source","propObj","Object","keys","forEach","key","fillChildProp","child","childProps","viewConfiguration","renderView","view","Array","isArray","React","cloneElement","showButtons","showSort","element","sortable","showSearch","searchable","showRightControls","sortJustify","justifyControls","align","rightControls","multiButtons","bulkActions","viewContainer","propTypes","PropTypes","string","shape","controlsContainer","search","isRequired","oneOfType","arrayOf","node","title","accessor","cellType","oneOf","bool","sortFunction","func","searchFunction","instanceOf","label","icon","disabled","number","styles","name"],"mappings":"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","sourcesContent":["import React, { useState, useEffect, useCallback } from \"react\";\nimport PropTypes from \"prop-types\";\nimport find from \"lodash/find\";\nimport { withStyles } from \"@material-ui/core\";\nimport clsx from \"clsx\";\nimport MultiButton from \"./Multibutton/Multibutton\";\nimport Search from \"./Search/Search\";\nimport Sort from \"./Sort/Sort\";\nimport HvGrid from \"../Grid\";\nimport HvPagination from \"../Pagination\";\nimport HvBulkActions from \"../BulkActions\";\nimport styles from \"./styles\";\nimport { setId, useLabels, useWidth } from \"../utils\";\n\nconst DEFAULT_LABELS = {\n sortBy: \"Sort by\",\n inputLabel: \"\",\n placeholder: \"Search\",\n};\n\nconst getPaginationData = (hasPagination, paginationServerSide, values, pageSize, page) =>\n hasPagination && !paginationServerSide\n ? values.slice(pageSize * page, pageSize * (page + 1))\n : values;\n\n/**\n * An Asset Inventory allows to switch between views.\n * The Sort and Filter are defined using the metadata configuration, while the remaining configuration can be ser in the AssetInventory or in the individual views.\n */\nconst HvAssetInventory = (props) => {\n const {\n id,\n classes,\n className,\n values: valuesProp,\n selectedValues: selectedValuesProp = [],\n selectedView: selectedViewProp = 0,\n children,\n searchString: searchStringProp = \"\",\n sortOptionId,\n labels: labelsProp,\n configuration,\n onSearch,\n searchProps,\n onSortChange,\n disablePortal = false,\n sortProps,\n page: pageProp = 0,\n pages = 0,\n pageSize: pageSizeProp,\n pageSizeOptions = [5, 10, 20, 25, 50, 100],\n hasBulkActions = false,\n hasPagination = false,\n paginationServerSide = false,\n paginationProps,\n onPageChange,\n onPageSizeChange,\n onSelection,\n isSelectable = false,\n actions,\n maxVisibleActions = 1,\n actionsCallback,\n FilterPlaceholder,\n onViewChange,\n multibuttonProps = [],\n emptyComponent = null,\n } = props;\n\n const labels = useLabels(DEFAULT_LABELS, labelsProp);\n\n const innerPageSize = pageSizeProp || pageSizeOptions[0];\n const innerPageValues = getPaginationData(\n hasPagination,\n paginationServerSide,\n valuesProp,\n innerPageSize,\n pageProp\n );\n\n const [selectedView, setSelectedView] = useState(selectedViewProp || 0);\n const [pageSize, setPageSize] = useState(innerPageSize);\n const [page, setPage] = useState(pageProp);\n const [values, setValues] = useState([...valuesProp]);\n const [pageValues, setPageValues] = useState(innerPageValues);\n\n const [selectedValues, setSelectedValues] = useState([...selectedValuesProp]);\n const [searchString, setSearchString] = useState(searchStringProp);\n const [selectedSort, setSelectedSort] = useState({ sortId: sortOptionId, sortFunc: undefined });\n const currentBreakpoint = useWidth();\n\n useEffect(() => {\n setValues(valuesProp);\n setPageValues(\n getPaginationData(hasPagination, paginationServerSide, valuesProp, innerPageSize, pageProp)\n );\n setPage(pageProp);\n }, [valuesProp, pageProp, innerPageSize, hasPagination, paginationServerSide]);\n\n useEffect(() => {\n if (pageSizeProp === undefined) return;\n setPageSize(pageSizeProp);\n }, [pageSizeProp]);\n\n useEffect(() => {\n if (selectedValuesProp.length > 0) setSelectedValues(selectedValuesProp);\n }, [selectedValuesProp]);\n\n useEffect(() => {\n setSelectedView(selectedViewProp);\n }, [selectedViewProp]);\n\n useEffect(() => {\n setSelectedSort({ sortId: sortOptionId, sortFunc: undefined });\n }, [sortOptionId]);\n\n useEffect(() => {\n setSearchString(searchStringProp);\n }, [searchStringProp]);\n\n const changeView = (_event, viewIndex) => {\n setSelectedView(viewIndex);\n };\n\n const changePageValues = useCallback(\n (returnedPageValues) => {\n setPageValues(\n getPaginationData(hasPagination, paginationServerSide, returnedPageValues, pageSize, page)\n );\n },\n [hasPagination, paginationServerSide, pageSize, page]\n );\n\n useEffect(() => {\n if (!(selectedSort?.sortId && selectedSort?.sortFunc)) return;\n const sortedValues = [...valuesProp].sort(selectedSort.sortFunc);\n setValues(sortedValues);\n changePageValues(sortedValues);\n }, [selectedSort, valuesProp, changePageValues]);\n\n const setSearchResults = (results, value) => {\n setValues(results);\n setPage(0);\n setSearchString(value);\n changePageValues(results);\n };\n\n /**\n * Show the search component.\n *\n * @returns {*}\n */\n const renderSearch = () => {\n const { inputLabel, placeholder } = labels;\n return (\n <div className={classes.searchBoxContainer}>\n <Search\n id={id}\n searchString={searchString}\n values={valuesProp}\n metadata={configuration.metadata}\n onFilter={setSearchResults}\n onSearch={onSearch}\n labels={{ inputLabel, placeholder }}\n {...searchProps}\n />\n </div>\n );\n };\n\n const onSort = (sortFunc, sortId) => {\n setSelectedSort({ sortId, sortFunc });\n };\n\n const renderSort = () => {\n return (\n <div className={classes.sortContainer}>\n <Sort\n id={id}\n aria-label={labels?.sortBy}\n metadata={configuration?.metadata}\n selected={selectedSort?.sortId}\n onSelection={onSort}\n onSortChange={onSortChange}\n disablePortal={disablePortal}\n {...sortProps}\n />\n </div>\n );\n };\n\n const paginationOnPageChange = (newPage) => {\n const pageData = values.slice(pageSize * newPage, pageSize * (newPage + 1));\n\n setPage(newPage);\n setPageValues(pageData);\n };\n\n const paginationOnPageSizeChange = (newPageSize) => {\n const pageData = values.slice(newPageSize * page, newPageSize * (page + 1));\n\n setPageSize(newPageSize);\n setPageValues(pageData);\n };\n\n const renderPagination = () => {\n if (values.length === 0) return null;\n\n const numPages = paginationServerSide ? pages : Math.ceil(values.length / pageSize);\n const onPageChangeInternal = paginationServerSide ? onPageChange : paginationOnPageChange;\n\n const onPageSizeChangeInternal = paginationServerSide\n ? onPageSizeChange\n : paginationOnPageSizeChange;\n\n return (\n <HvPagination\n id={setId(id, \"pagination\")}\n classes={{\n root: classes.pagination,\n }}\n pages={numPages}\n page={page}\n canPrevious={page > 0}\n canNext={page < numPages - 1}\n pageSize={pageSize}\n pageSizeOptions={pageSizeOptions}\n onPageChange={onPageChangeInternal}\n onPageSizeChange={onPageSizeChangeInternal}\n {...paginationProps}\n />\n );\n };\n\n const handleSelectPage = (e, checked = false) => {\n setSelectedValues(checked ? [] : pageValues.map((v) => v.id));\n };\n\n const handleSelectAll = () => {\n const allSelected = selectedValues.length === values.length;\n setSelectedValues(allSelected ? [] : values.map((v) => v.id));\n };\n\n const innerOnSelection = (onSelectionFn) => (event) => {\n const valueId = event.target.value;\n\n const list =\n (event.target.checked && [...selectedValues, valueId]) ||\n (selectedValues.includes(valueId) && selectedValues.filter((item) => item !== valueId)) ||\n [];\n\n setSelectedValues(list);\n onSelectionFn?.(event);\n };\n\n const propsFillerManager = (source, target, propObj) => {\n Object.keys(propObj).forEach((key) => {\n // eslint-disable-next-line no-param-reassign\n if (source.props[key] == null) target[key] = propObj[key];\n });\n };\n\n const fillChildProp = (child) => {\n const childProps = {\n ...(configuration?.viewConfiguration || child?.props?.viewConfiguration),\n };\n\n propsFillerManager(child, childProps, {\n onSelection: innerOnSelection(onSelection),\n isSelectable,\n actions,\n maxVisibleActions,\n actionsCallback,\n });\n\n return childProps;\n };\n\n /**\n * Render the view.\n *\n * @returns {*}\n */\n const renderView = () => {\n const view = Array.isArray(children) ? children[selectedView] : children;\n\n if (values.length === 0) return emptyComponent;\n\n return React.cloneElement(view, {\n values: pageValues,\n selectedValues,\n viewConfiguration: fillChildProp(view),\n });\n };\n\n const showButtons = children.length > 1;\n const showSort = find(configuration.metadata, (element) => element.sortable);\n const showSearch = find(configuration.metadata, (element) => element.searchable);\n const showRightControls = showButtons || showSort;\n\n const sortJustify = currentBreakpoint === \"xs\" ? \"space-between\" : \"flex-start\";\n const justifyControls = showSort ? sortJustify : \"flex-end\";\n const align = !showSearch ? \"flex-end\" : \"space-between\";\n\n return (\n <div id={id} className={clsx(className, classes.root)}>\n {FilterPlaceholder && <FilterPlaceholder onSelection={changePageValues} />}\n <HvGrid container>\n <HvGrid item xs={12}>\n <HvGrid container justifyContent={align}>\n {showSearch && (\n <HvGrid xs={12} sm={6} md={4} lg={3} xl={3} item>\n {renderSearch()}\n </HvGrid>\n )}\n {showRightControls && (\n <HvGrid xs={12} sm={6} md={4} lg={3} xl={3} item>\n <HvGrid\n className={classes.rightControls}\n justifyContent={justifyControls}\n container\n alignItems=\"flex-end\"\n spacing={0}\n >\n {showSort && (\n <HvGrid className={classes.sortContainer} item xs>\n {renderSort()}\n </HvGrid>\n )}\n {showButtons && (\n <HvGrid item>\n <div className={classes.multiButtons}>\n <MultiButton\n id={id}\n views={multibuttonProps}\n selectedView={selectedView}\n changeView={changeView}\n onViewChange={onViewChange}\n />\n </div>\n </HvGrid>\n )}\n </HvGrid>\n </HvGrid>\n )}\n </HvGrid>\n <HvGrid container>\n <HvGrid item xs={12}>\n {hasBulkActions && (\n <HvBulkActions\n classes={{ root: classes.bulkActions }}\n numTotal={values.length}\n numSelected={selectedValues.length}\n onSelectAll={handleSelectPage}\n onSelectAllPages={handleSelectAll}\n showSelectAllPages\n maxVisibleActions={maxVisibleActions}\n />\n )}\n </HvGrid>\n </HvGrid>\n <HvGrid container className={classes.viewContainer}>\n <HvGrid item xs={12}>\n {renderView()}\n </HvGrid>\n </HvGrid>\n {hasPagination && (\n <HvGrid container>\n <HvGrid item xs={12}>\n {renderPagination()}\n </HvGrid>\n </HvGrid>\n )}\n </HvGrid>\n </HvGrid>\n </div>\n );\n};\n\nHvAssetInventory.propTypes = {\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * Id to be applied to the root node.\n */\n id: PropTypes.string,\n /**\n * A Jss Object used to override or extend the component styles applied.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the root component.\n */\n root: PropTypes.string,\n /**\n * Styles applied to the controls container.\n */\n controlsContainer: PropTypes.string,\n /**\n * Styles applied to the search container.\n */\n search: PropTypes.string,\n /**\n * Styles applied to the right controls container.\n */\n rightControls: PropTypes.string,\n /**\n * Styles applied to the multiButtons.\n */\n multiButtons: PropTypes.string,\n /**\n * Styles applied to the bulkActions.\n */\n bulkActions: PropTypes.string,\n /**\n * Styles applied to the view container.\n */\n viewContainer: PropTypes.string,\n /**\n * Styles applied to the search box container.\n */\n searchBoxContainer: PropTypes.string,\n /**\n * Styles applied to the sort container.\n */\n sortContainer: PropTypes.string,\n /**\n * Styles applied to the pagination component.\n */\n pagination: PropTypes.string,\n }).isRequired,\n /**\n * Views components.\n */\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n /**\n * Data passed to the component.\n */\n values: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string,\n })\n ).isRequired,\n /**\n * Labels.\n */\n labels: PropTypes.shape({\n /**\n * Sort label.\n */\n sortBy: PropTypes.string,\n /**\n * the label on top of the search box.\n */\n inputLabel: PropTypes.string,\n /**\n * the placeholder value of the search box.\n */\n placeholder: PropTypes.string,\n }),\n /**\n * Contains the metadata for the values and the necessary configuration for the views,\n * check the views for the specific view configuration.\n */\n configuration: PropTypes.shape({\n metadata: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string,\n title: PropTypes.string,\n accessor: PropTypes.string,\n cellType: PropTypes.oneOf([\"alpha-numeric\", \"numeric\", \"date\", \"node\"]),\n sortable: PropTypes.bool,\n sortFunction: PropTypes.func,\n searchable: PropTypes.bool,\n searchFunction: PropTypes.func,\n })\n ).isRequired,\n viewConfiguration: PropTypes.instanceOf(Object),\n }).isRequired,\n /**\n * Callback evoked in the selection of the card.\n */\n onSelection: PropTypes.func,\n /**\n * List of actions to be passed to the views.\n */\n actions: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n icon: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n disabled: PropTypes.bool,\n })\n ),\n /**\n * The callback function ran when an action is triggered, receiving `action` as param\n */\n actionsCallback: PropTypes.func,\n /**\n * The number of maximum visible actions before they're collapsed into a `DropDownMenu`.\n */\n maxVisibleActions: PropTypes.number,\n /**\n * Extra filters\n */\n FilterPlaceholder: PropTypes.element,\n /**\n * Indicates if the views are selectable.\n */\n isSelectable: PropTypes.bool,\n /**\n * Values selected. The list can be maintain internally or it can be passed (overwriting the internal).\n */\n selectedValues: PropTypes.arrayOf(PropTypes.string),\n /**\n * The selected view index.\n */\n selectedView: PropTypes.number,\n /**\n * Defines whether the Asset Inventory includes the bulk actions component.\n */\n hasBulkActions: PropTypes.bool,\n /**\n * Defines whether the Asset Inventory includes the pagination component.\n */\n hasPagination: PropTypes.bool,\n /**\n * Enable or disable the server side pagination mechanism\n */\n paginationServerSide: PropTypes.bool,\n /**\n * The array of possible page sizes for the dropdown.\n */\n pageSizeOptions: PropTypes.arrayOf(PropTypes.number),\n /**\n * Page size.\n */\n pageSize: PropTypes.number,\n /**\n * The currently selected page (0-indexed).\n */\n page: PropTypes.number,\n /**\n * The number of pages the component has.\n */\n pages: PropTypes.number,\n /**\n * Page change callback.\n */\n onPageChange: PropTypes.func,\n /**\n * Page size change callback.\n */\n onPageSizeChange: PropTypes.func,\n /**\n * Search callback.\n */\n onSearch: PropTypes.func,\n /**\n * Sort callback.\n */\n onSortChange: PropTypes.func,\n /**\n * View change callback.\n */\n onViewChange: PropTypes.func,\n /**\n * Visual indication of the sort applied. The id is given by the metadata.id+Asc or metadata.id+Desc.\n */\n sortOptionId: PropTypes.string,\n /**\n * Visual indicator of the search string used.\n */\n searchString: PropTypes.string,\n /**\n * Disable portal on the Sort dropdown\n */\n disablePortal: PropTypes.bool,\n /**\n * Other props passed to the searchbox.\n */\n searchProps: PropTypes.instanceOf(Object),\n /**\n * Others props passed to the Sort. If you want to control the aria-label\n * use the labels.sortBy, as it is mapped directly to the aria-label.\n */\n sortProps: PropTypes.instanceOf(Object),\n /**\n * Array of others prop passed to the created button. Each element must include the id of the view\n * and other props to pe passed to each button.\n */\n multibuttonProps: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string,\n icon: PropTypes.node,\n })\n ),\n /**\n * Extra properties passed to the pagination.\n */\n paginationProps: PropTypes.instanceOf(Object),\n /**\n * Component to the present when no data is available.\n */\n emptyComponent: PropTypes.node,\n};\n\nexport default withStyles(styles, { name: \"HvAssetInventory\" })(HvAssetInventory);\n"],"file":"AssetInventory.js"}
1
+ {"version":3,"sources":["../../src/AssetInventory/AssetInventory.js"],"names":["DEFAULT_LABELS","sortBy","inputLabel","placeholder","getPaginationData","hasPagination","paginationServerSide","values","pageSize","page","slice","HvAssetInventory","props","id","classes","className","valuesProp","selectedValues","selectedValuesProp","selectedView","selectedViewProp","children","searchString","searchStringProp","sortOptionId","labelsProp","labels","configuration","onSearch","searchProps","onSortChange","disablePortal","sortProps","pageProp","pages","pageSizeProp","pageSizeOptions","hasBulkActions","paginationProps","onPageChange","onPageSizeChange","onSelection","isSelectable","actions","maxVisibleActions","actionsCallback","FilterPlaceholder","onViewChange","multibuttonProps","emptyComponent","innerPageSize","innerPageValues","setSelectedView","setPageSize","setPage","setValues","pageValues","setPageValues","setSelectedValues","setSearchString","sortId","sortFunc","undefined","selectedSort","setSelectedSort","currentBreakpoint","length","changeView","_event","viewIndex","changePageValues","returnedPageValues","p","sortedValues","sort","setSearchResults","results","value","renderSearch","searchBoxContainer","metadata","onSort","renderSort","sortContainer","paginationOnPageChange","newPage","pageData","paginationOnPageSizeChange","newPageSize","renderPagination","numPages","Math","ceil","onPageChangeInternal","onPageSizeChangeInternal","root","pagination","handleSelectPage","e","checked","selection","map","v","handleSelectAll","allSelected","innerOnSelection","onSelectionFn","event","valueId","target","list","includes","filter","item","propsFillerManager","source","propObj","Object","keys","forEach","key","fillChildProp","child","childProps","viewConfiguration","renderView","view","Array","isArray","React","cloneElement","showButtons","showSort","element","sortable","showSearch","searchable","showRightControls","sortJustify","justifyControls","align","rightControls","multiButtons","bulkActions","viewContainer","propTypes","PropTypes","string","shape","controlsContainer","search","isRequired","oneOfType","arrayOf","node","title","accessor","cellType","oneOf","bool","sortFunction","func","searchFunction","instanceOf","label","icon","disabled","number","styles","name"],"mappings":"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","sourcesContent":["import React, { useState, useEffect, useCallback } from \"react\";\nimport PropTypes from \"prop-types\";\nimport find from \"lodash/find\";\nimport { withStyles } from \"@material-ui/core\";\nimport clsx from \"clsx\";\nimport MultiButton from \"./Multibutton/Multibutton\";\nimport Search from \"./Search/Search\";\nimport Sort from \"./Sort/Sort\";\nimport HvGrid from \"../Grid\";\nimport HvPagination from \"../Pagination\";\nimport HvBulkActions from \"../BulkActions\";\nimport styles from \"./styles\";\nimport { setId, useLabels, useWidth } from \"../utils\";\n\nconst DEFAULT_LABELS = {\n sortBy: \"Sort by\",\n inputLabel: \"\",\n placeholder: \"Search\",\n};\n\nconst getPaginationData = (hasPagination, paginationServerSide, values, pageSize, page) =>\n hasPagination && !paginationServerSide\n ? values.slice(pageSize * page, pageSize * (page + 1))\n : values;\n\n/**\n * An Asset Inventory allows to switch between views.\n * The Sort and Filter are defined using the metadata configuration, while the remaining configuration can be ser in the AssetInventory or in the individual views.\n */\nconst HvAssetInventory = (props) => {\n const {\n id,\n classes,\n className,\n values: valuesProp,\n selectedValues: selectedValuesProp = [],\n selectedView: selectedViewProp = 0,\n children,\n searchString: searchStringProp = \"\",\n sortOptionId,\n labels: labelsProp,\n configuration,\n onSearch,\n searchProps,\n onSortChange,\n disablePortal = false,\n sortProps,\n page: pageProp = 0,\n pages = 0,\n pageSize: pageSizeProp,\n pageSizeOptions = [5, 10, 20, 25, 50, 100],\n hasBulkActions = false,\n hasPagination = false,\n paginationServerSide = false,\n paginationProps,\n onPageChange,\n onPageSizeChange,\n onSelection,\n isSelectable = false,\n actions,\n maxVisibleActions = 1,\n actionsCallback,\n FilterPlaceholder,\n onViewChange,\n multibuttonProps = [],\n emptyComponent = null,\n } = props;\n\n const labels = useLabels(DEFAULT_LABELS, labelsProp);\n\n const innerPageSize = pageSizeProp || pageSizeOptions[0];\n const innerPageValues = getPaginationData(\n hasPagination,\n paginationServerSide,\n valuesProp,\n innerPageSize,\n pageProp\n );\n\n const [selectedView, setSelectedView] = useState(selectedViewProp || 0);\n const [pageSize, setPageSize] = useState(innerPageSize);\n const [page, setPage] = useState(pageProp);\n const [values, setValues] = useState([...valuesProp]);\n const [pageValues, setPageValues] = useState(innerPageValues);\n\n const [selectedValues, setSelectedValues] = useState([...selectedValuesProp]);\n const [searchString, setSearchString] = useState(searchStringProp);\n const [selectedSort, setSelectedSort] = useState({ sortId: sortOptionId, sortFunc: undefined });\n const currentBreakpoint = useWidth();\n\n useEffect(() => {\n setValues(valuesProp);\n setPageValues(\n getPaginationData(hasPagination, paginationServerSide, valuesProp, innerPageSize, pageProp)\n );\n setPage(pageProp);\n }, [valuesProp, pageProp, innerPageSize, hasPagination, paginationServerSide]);\n\n useEffect(() => {\n if (pageSizeProp === undefined) return;\n setPageSize(pageSizeProp);\n }, [pageSizeProp]);\n\n useEffect(() => {\n if (selectedValuesProp.length > 0) setSelectedValues(selectedValuesProp);\n }, [selectedValuesProp]);\n\n useEffect(() => {\n setSelectedView(selectedViewProp);\n }, [selectedViewProp]);\n\n useEffect(() => {\n setSelectedSort({ sortId: sortOptionId, sortFunc: undefined });\n }, [sortOptionId]);\n\n useEffect(() => {\n setSearchString(searchStringProp);\n }, [searchStringProp]);\n\n const changeView = (_event, viewIndex) => {\n setSelectedView(viewIndex);\n };\n\n const changePageValues = useCallback(\n (returnedPageValues, p = page) => {\n setPageValues(\n getPaginationData(hasPagination, paginationServerSide, returnedPageValues, pageSize, p)\n );\n },\n [hasPagination, paginationServerSide, pageSize, page]\n );\n\n // TODO: we must revisit this section in the future. Right now, sorting the results will\n // reset the array of values which means that we can't sort a filtered result set.\n useEffect(() => {\n if (!(selectedSort?.sortId && selectedSort?.sortFunc)) return;\n const sortedValues = [...valuesProp].sort(selectedSort.sortFunc);\n setValues(sortedValues);\n changePageValues(sortedValues);\n }, [selectedSort, valuesProp, changePageValues]);\n\n const setSearchResults = (results, value) => {\n setValues(results);\n setPage(0);\n setSearchString(value);\n changePageValues(results, 0);\n };\n\n /**\n * Show the search component.\n *\n * @returns {*}\n */\n const renderSearch = () => {\n const { inputLabel, placeholder } = labels;\n return (\n <div className={classes.searchBoxContainer}>\n <Search\n id={id}\n searchString={searchString}\n values={valuesProp}\n metadata={configuration.metadata}\n onFilter={setSearchResults}\n onSearch={onSearch}\n labels={{ inputLabel, placeholder }}\n {...searchProps}\n />\n </div>\n );\n };\n\n const onSort = (sortFunc, sortId) => {\n setSelectedSort({ sortId, sortFunc });\n };\n\n const renderSort = () => {\n return (\n <div className={classes.sortContainer}>\n <Sort\n id={id}\n aria-label={labels?.sortBy}\n metadata={configuration?.metadata}\n selected={selectedSort?.sortId}\n onSelection={onSort}\n onSortChange={onSortChange}\n disablePortal={disablePortal}\n {...sortProps}\n />\n </div>\n );\n };\n\n const paginationOnPageChange = (newPage) => {\n const pageData = values.slice(pageSize * newPage, pageSize * (newPage + 1));\n\n setPage(newPage);\n setPageValues(pageData);\n };\n\n const paginationOnPageSizeChange = (newPageSize) => {\n const pageData = values.slice(newPageSize * page, newPageSize * (page + 1));\n\n setPageSize(newPageSize);\n setPageValues(pageData);\n };\n\n const renderPagination = () => {\n if (values.length === 0) return null;\n\n const numPages = paginationServerSide ? pages : Math.ceil(values.length / pageSize);\n const onPageChangeInternal = paginationServerSide ? onPageChange : paginationOnPageChange;\n\n const onPageSizeChangeInternal = paginationServerSide\n ? onPageSizeChange\n : paginationOnPageSizeChange;\n\n return (\n <HvPagination\n id={setId(id, \"pagination\")}\n classes={{\n root: classes.pagination,\n }}\n pages={numPages}\n page={page}\n canPrevious={page > 0}\n canNext={page < numPages - 1}\n pageSize={pageSize}\n pageSizeOptions={pageSizeOptions}\n onPageChange={onPageChangeInternal}\n onPageSizeChange={onPageSizeChangeInternal}\n {...paginationProps}\n />\n );\n };\n\n const handleSelectPage = (e, checked = false) => {\n const selection = pageValues.map((v) => v.id);\n\n setSelectedValues(checked ? selection : []);\n onSelection?.(e, checked ? selection : []);\n };\n\n const handleSelectAll = (e) => {\n const allSelected = selectedValues.length === values.length;\n const selection = values.map((v) => v.id);\n\n setSelectedValues(allSelected ? [] : selection);\n onSelection?.(e, allSelected ? [] : selection);\n };\n\n const innerOnSelection = (onSelectionFn) => (event) => {\n const valueId = event.target.value;\n\n const list =\n (event.target.checked && [...selectedValues, valueId]) ||\n (selectedValues.includes(valueId) && selectedValues.filter((item) => item !== valueId)) ||\n [];\n\n setSelectedValues(list);\n onSelectionFn?.(event, list);\n };\n\n const propsFillerManager = (source, target, propObj) => {\n Object.keys(propObj).forEach((key) => {\n // eslint-disable-next-line no-param-reassign\n if (source.props[key] == null) target[key] = propObj[key];\n });\n };\n\n const fillChildProp = (child) => {\n const childProps = {\n ...(configuration?.viewConfiguration || child?.props?.viewConfiguration),\n };\n\n propsFillerManager(child, childProps, {\n onSelection: innerOnSelection(onSelection),\n isSelectable,\n actions,\n maxVisibleActions,\n actionsCallback,\n });\n\n return childProps;\n };\n\n /**\n * Render the view.\n *\n * @returns {*}\n */\n const renderView = () => {\n const view = Array.isArray(children) ? children[selectedView] : children;\n\n if (values.length === 0) return emptyComponent;\n\n return React.cloneElement(view, {\n values: pageValues,\n selectedValues,\n viewConfiguration: fillChildProp(view),\n });\n };\n\n const showButtons = children.length > 1;\n const showSort = find(configuration.metadata, (element) => element.sortable);\n const showSearch = find(configuration.metadata, (element) => element.searchable);\n const showRightControls = showButtons || showSort;\n\n const sortJustify = currentBreakpoint === \"xs\" ? \"space-between\" : \"flex-start\";\n const justifyControls = showSort ? sortJustify : \"flex-end\";\n const align = !showSearch ? \"flex-end\" : \"space-between\";\n\n return (\n <div id={id} className={clsx(className, classes.root)}>\n {FilterPlaceholder && <FilterPlaceholder onSelection={changePageValues} />}\n <HvGrid container>\n <HvGrid item xs={12}>\n <HvGrid container justifyContent={align}>\n {showSearch && (\n <HvGrid xs={12} sm={6} md={4} lg={3} xl={3} item>\n {renderSearch()}\n </HvGrid>\n )}\n {showRightControls && (\n <HvGrid xs={12} sm={6} md={4} lg={3} xl={3} item>\n <HvGrid\n className={classes.rightControls}\n justifyContent={justifyControls}\n container\n alignItems=\"flex-end\"\n spacing={0}\n >\n {showSort && (\n <HvGrid className={classes.sortContainer} item xs>\n {renderSort()}\n </HvGrid>\n )}\n {showButtons && (\n <HvGrid item>\n <div className={classes.multiButtons}>\n <MultiButton\n id={id}\n views={multibuttonProps}\n selectedView={selectedView}\n changeView={changeView}\n onViewChange={onViewChange}\n />\n </div>\n </HvGrid>\n )}\n </HvGrid>\n </HvGrid>\n )}\n </HvGrid>\n <HvGrid container>\n <HvGrid item xs={12}>\n {hasBulkActions && (\n <HvBulkActions\n classes={{ root: classes.bulkActions }}\n numTotal={values.length}\n numSelected={selectedValues.length}\n onSelectAll={handleSelectPage}\n onSelectAllPages={handleSelectAll}\n showSelectAllPages\n maxVisibleActions={maxVisibleActions}\n />\n )}\n </HvGrid>\n </HvGrid>\n <HvGrid container className={classes.viewContainer}>\n <HvGrid item xs={12}>\n {renderView()}\n </HvGrid>\n </HvGrid>\n {hasPagination && (\n <HvGrid container>\n <HvGrid item xs={12}>\n {renderPagination()}\n </HvGrid>\n </HvGrid>\n )}\n </HvGrid>\n </HvGrid>\n </div>\n );\n};\n\nHvAssetInventory.propTypes = {\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * Id to be applied to the root node.\n */\n id: PropTypes.string,\n /**\n * A Jss Object used to override or extend the component styles applied.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the root component.\n */\n root: PropTypes.string,\n /**\n * Styles applied to the controls container.\n */\n controlsContainer: PropTypes.string,\n /**\n * Styles applied to the search container.\n */\n search: PropTypes.string,\n /**\n * Styles applied to the right controls container.\n */\n rightControls: PropTypes.string,\n /**\n * Styles applied to the multiButtons.\n */\n multiButtons: PropTypes.string,\n /**\n * Styles applied to the bulkActions.\n */\n bulkActions: PropTypes.string,\n /**\n * Styles applied to the view container.\n */\n viewContainer: PropTypes.string,\n /**\n * Styles applied to the search box container.\n */\n searchBoxContainer: PropTypes.string,\n /**\n * Styles applied to the sort container.\n */\n sortContainer: PropTypes.string,\n /**\n * Styles applied to the pagination component.\n */\n pagination: PropTypes.string,\n }).isRequired,\n /**\n * Views components.\n */\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n /**\n * Data passed to the component.\n */\n values: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string,\n })\n ).isRequired,\n /**\n * Labels.\n */\n labels: PropTypes.shape({\n /**\n * Sort label.\n */\n sortBy: PropTypes.string,\n /**\n * the label on top of the search box.\n */\n inputLabel: PropTypes.string,\n /**\n * the placeholder value of the search box.\n */\n placeholder: PropTypes.string,\n }),\n /**\n * Contains the metadata for the values and the necessary configuration for the views,\n * check the views for the specific view configuration.\n */\n configuration: PropTypes.shape({\n metadata: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string,\n title: PropTypes.string,\n accessor: PropTypes.string,\n cellType: PropTypes.oneOf([\"alpha-numeric\", \"numeric\", \"date\", \"node\"]),\n sortable: PropTypes.bool,\n sortFunction: PropTypes.func,\n searchable: PropTypes.bool,\n searchFunction: PropTypes.func,\n })\n ).isRequired,\n viewConfiguration: PropTypes.instanceOf(Object),\n }).isRequired,\n /**\n * Callback evoked in the selection of the card. Receives the event and the current selection of the asset inventory\n */\n onSelection: PropTypes.func,\n /**\n * List of actions to be passed to the views.\n */\n actions: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n icon: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n disabled: PropTypes.bool,\n })\n ),\n /**\n * The callback function ran when an action is triggered, receiving `action` as param\n */\n actionsCallback: PropTypes.func,\n /**\n * The number of maximum visible actions before they're collapsed into a `DropDownMenu`.\n */\n maxVisibleActions: PropTypes.number,\n /**\n * Extra filters\n */\n FilterPlaceholder: PropTypes.element,\n /**\n * Indicates if the views are selectable.\n */\n isSelectable: PropTypes.bool,\n /**\n * Values selected. The list can be maintain internally or it can be passed (overwriting the internal).\n */\n selectedValues: PropTypes.arrayOf(PropTypes.string),\n /**\n * The selected view index.\n */\n selectedView: PropTypes.number,\n /**\n * Defines whether the Asset Inventory includes the bulk actions component.\n */\n hasBulkActions: PropTypes.bool,\n /**\n * Defines whether the Asset Inventory includes the pagination component.\n */\n hasPagination: PropTypes.bool,\n /**\n * Enable or disable the server side pagination mechanism\n */\n paginationServerSide: PropTypes.bool,\n /**\n * The array of possible page sizes for the dropdown.\n */\n pageSizeOptions: PropTypes.arrayOf(PropTypes.number),\n /**\n * Page size.\n */\n pageSize: PropTypes.number,\n /**\n * The currently selected page (0-indexed).\n */\n page: PropTypes.number,\n /**\n * The number of pages the component has.\n */\n pages: PropTypes.number,\n /**\n * Page change callback.\n */\n onPageChange: PropTypes.func,\n /**\n * Page size change callback.\n */\n onPageSizeChange: PropTypes.func,\n /**\n * Search callback.\n */\n onSearch: PropTypes.func,\n /**\n * Sort callback.\n */\n onSortChange: PropTypes.func,\n /**\n * View change callback.\n */\n onViewChange: PropTypes.func,\n /**\n * Visual indication of the sort applied. The id is given by the metadata.id+Asc or metadata.id+Desc.\n */\n sortOptionId: PropTypes.string,\n /**\n * Visual indicator of the search string used.\n */\n searchString: PropTypes.string,\n /**\n * Disable portal on the Sort dropdown\n */\n disablePortal: PropTypes.bool,\n /**\n * Other props passed to the searchbox.\n */\n searchProps: PropTypes.instanceOf(Object),\n /**\n * Others props passed to the Sort. If you want to control the aria-label\n * use the labels.sortBy, as it is mapped directly to the aria-label.\n */\n sortProps: PropTypes.instanceOf(Object),\n /**\n * Array of others prop passed to the created button. Each element must include the id of the view\n * and other props to pe passed to each button.\n */\n multibuttonProps: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string,\n icon: PropTypes.node,\n })\n ),\n /**\n * Extra properties passed to the pagination.\n */\n paginationProps: PropTypes.instanceOf(Object),\n /**\n * Component to the present when no data is available.\n */\n emptyComponent: PropTypes.node,\n};\n\nexport default withStyles(styles, { name: \"HvAssetInventory\" })(HvAssetInventory);\n"],"file":"AssetInventory.js"}
@@ -107,7 +107,8 @@ var CardView = function CardView(_ref) {
107
107
  viewConfiguration = _ref$viewConfiguratio === void 0 ? DEFAULT_VIEW_CONFIGURATION : _ref$viewConfiguratio,
108
108
  innerCardContent = _ref.innerCardContent,
109
109
  metadata = _ref.metadata,
110
- emptyComponent = _ref.emptyComponent,
110
+ _ref$emptyComponent = _ref.emptyComponent,
111
+ emptyComponent = _ref$emptyComponent === void 0 ? null : _ref$emptyComponent,
111
112
  others = (0, _objectWithoutProperties2.default)(_ref, _excluded);
112
113
  var containerRef = (0, _react.useRef)(null);
113
114
  var currentBreakpoint = (0, _.useWidth)(); // If no custom render is passed, the render uses the standard card implementation
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/AssetInventory/CardView/CardView.js"],"names":["DEFAULT_VIEW_CONFIGURATION","onSelection","breakpoints","xs","sm","md","lg","xl","actions","CardRenderChooser","viewConfiguration","render","cardContent","metadata","cardProps","data","isSelectable","maxVisibleActions","actionsCallback","id","CardView","className","classes","values","selectedValues","renderer","innerCardContent","emptyComponent","others","containerRef","currentBreakpoint","renderCard","cardJump","renderCards","map","value","index","checked","indexOf","hasValues","length","root","elements","sizeProps","propTypes","PropTypes","string","shape","isRequired","arrayOf","title","accessor","cellType","oneOf","sortable","bool","sortFunction","func","searchable","searchFunction","instanceOf","Array","node","label","icon","oneOfType","disabled","number","styles","name"],"mappings":"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","sourcesContent":["import React, { useRef } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { withStyles } from \"@material-ui/core\";\nimport {\n HvActionBar,\n HvActionsGeneric,\n HvCard,\n HvCardContent,\n HvGrid,\n useWidth,\n setId,\n} from \"../..\";\nimport Focus from \"../../Focus\";\nimport styles from \"./styles\";\nimport setActionsId from \"../setActionsId\";\n\nconst DEFAULT_VIEW_CONFIGURATION = {\n onSelection: null,\n breakpoints: {\n xs: false,\n sm: false,\n md: false,\n lg: false,\n xl: false,\n },\n actions: null,\n};\n\nconst CardRenderChooser =\n (viewConfiguration, render, cardContent, metadata, cardProps) => (data) => {\n const { onSelection, isSelectable, maxVisibleActions, actionsCallback } = viewConfiguration;\n const actions = setActionsId(viewConfiguration.actions, data.id);\n\n return render ? (\n render(data, { ...viewConfiguration, actions }, metadata, cardProps)\n ) : (\n <HvCard onChange={onSelection} selectable={isSelectable} {...data} {...cardProps}>\n <HvCardContent>{cardContent?.(data)}</HvCardContent>\n {actions && (\n <HvActionBar>\n <HvActionsGeneric\n actions={actions}\n actionsCallback={actionsCallback}\n maxVisibleActions={maxVisibleActions}\n />\n </HvActionBar>\n )}\n </HvCard>\n );\n };\n\nconst CardView = ({\n id = \"\",\n className,\n classes,\n values,\n selectedValues,\n renderer,\n viewConfiguration = DEFAULT_VIEW_CONFIGURATION,\n innerCardContent,\n metadata,\n emptyComponent,\n ...others\n}) => {\n const containerRef = useRef(null);\n const currentBreakpoint = useWidth();\n\n // If no custom render is passed, the render uses the standard card implementation\n const renderCard = CardRenderChooser(\n viewConfiguration,\n renderer,\n innerCardContent,\n metadata,\n others\n );\n\n const { breakpoints } = viewConfiguration;\n\n const cardJump = () =>\n breakpoints[currentBreakpoint] === false ? 1 : 12 / breakpoints[currentBreakpoint];\n\n /**\n * Render of the cards for each value.\n */\n const renderCards = () => {\n return values.map((value, index) => {\n // eslint-disable-next-line no-param-reassign\n value.checked = !!(selectedValues && selectedValues.indexOf(value.id) > -1);\n\n return (\n <HvGrid id={setId(value.id, \"grid\")} key={value.id} item {...breakpoints}>\n <Focus\n rootRef={containerRef}\n key={value.id}\n strategy=\"grid\"\n filterClass=\"grid\"\n navigationJump={cardJump()}\n focusDisabled={false}\n >\n <div key={value.id} tabIndex={index === 0 ? 0 : -1}>\n {renderCard(value)}\n </div>\n </Focus>\n </HvGrid>\n );\n });\n };\n\n const hasValues = values.length > 0;\n\n return hasValues ? (\n <div className={classes.root} ref={containerRef}>\n <div className={classes.elements}>\n <HvGrid\n className={className}\n id={id}\n container\n justifyContent=\"flex-start\"\n alignItems=\"flex-start\"\n >\n {renderCards()}\n </HvGrid>\n </div>\n </div>\n ) : (\n emptyComponent\n );\n};\n\nconst sizeProps = [true, false, \"auto\", 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];\n\nCardView.propTypes = {\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * Id to be applied to the root node.\n */\n id: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the root.\n */\n root: PropTypes.string,\n /**\n * Styles applied to the component that contains the elements class.\n */\n elements: PropTypes.string,\n }).isRequired,\n /**\n * Metadata associated with the values.\n */\n metadata: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string,\n title: PropTypes.string,\n accessor: PropTypes.string,\n cellType: PropTypes.oneOf([\"alpha-numeric\", \"numeric\", \"date\", \"node\"]),\n sortable: PropTypes.bool,\n sortFunction: PropTypes.func,\n searchable: PropTypes.bool,\n searchFunction: PropTypes.func,\n })\n ),\n /**\n * Values to be passed to the card render.\n */\n values: PropTypes.instanceOf(Array).isRequired,\n /**\n * Selected values.\n */\n selectedValues: PropTypes.arrayOf(PropTypes.string),\n /**\n * Custom render for the cards.\n */\n renderer: PropTypes.func,\n /**\n * innerCardContent to be passed to the standard render.\n */\n innerCardContent: PropTypes.func,\n /**\n * Component to the present when no data is available.\n */\n emptyComponent: PropTypes.node,\n /**\n * Configuration settings for the view.\n */\n viewConfiguration: PropTypes.shape({\n /**\n * Callback evoked in the selection of the card.\n */\n onSelection: PropTypes.func,\n /**\n * Defines if the view allows selections.\n */\n isSelectable: PropTypes.bool,\n /**\n * List of actions to be passed to the cards.\n */\n actions: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n icon: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n disabled: PropTypes.bool,\n })\n ),\n /**\n * The callback function ran when an action is triggered, receiving `action` as param\n */\n actionsCallback: PropTypes.func,\n /**\n * The number of maximum visible actions before they're collapsed into a `DropDownMenu`.\n */\n maxVisibleActions: PropTypes.number,\n /**\n * Defines the number of columns the component is going to use. Check the\n * Grid component for possible values\n */\n breakpoints: PropTypes.shape({\n xs: PropTypes.oneOf(sizeProps),\n sm: PropTypes.oneOf(sizeProps),\n md: PropTypes.oneOf(sizeProps),\n lg: PropTypes.oneOf(sizeProps),\n xl: PropTypes.oneOf(sizeProps),\n }),\n }),\n};\n\nexport default withStyles(styles, { name: \"HvCardView\" })(CardView);\n"],"file":"CardView.js"}
1
+ {"version":3,"sources":["../../../src/AssetInventory/CardView/CardView.js"],"names":["DEFAULT_VIEW_CONFIGURATION","onSelection","breakpoints","xs","sm","md","lg","xl","actions","CardRenderChooser","viewConfiguration","render","cardContent","metadata","cardProps","data","isSelectable","maxVisibleActions","actionsCallback","id","CardView","className","classes","values","selectedValues","renderer","innerCardContent","emptyComponent","others","containerRef","currentBreakpoint","renderCard","cardJump","renderCards","map","value","index","checked","indexOf","hasValues","length","root","elements","sizeProps","propTypes","PropTypes","string","shape","isRequired","arrayOf","title","accessor","cellType","oneOf","sortable","bool","sortFunction","func","searchable","searchFunction","instanceOf","Array","node","label","icon","oneOfType","disabled","number","styles","name"],"mappings":"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","sourcesContent":["import React, { useRef } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { withStyles } from \"@material-ui/core\";\nimport {\n HvActionBar,\n HvActionsGeneric,\n HvCard,\n HvCardContent,\n HvGrid,\n useWidth,\n setId,\n} from \"../..\";\nimport Focus from \"../../Focus\";\nimport styles from \"./styles\";\nimport setActionsId from \"../setActionsId\";\n\nconst DEFAULT_VIEW_CONFIGURATION = {\n onSelection: null,\n breakpoints: {\n xs: false,\n sm: false,\n md: false,\n lg: false,\n xl: false,\n },\n actions: null,\n};\n\nconst CardRenderChooser =\n (viewConfiguration, render, cardContent, metadata, cardProps) => (data) => {\n const { onSelection, isSelectable, maxVisibleActions, actionsCallback } = viewConfiguration;\n const actions = setActionsId(viewConfiguration.actions, data.id);\n\n return render ? (\n render(data, { ...viewConfiguration, actions }, metadata, cardProps)\n ) : (\n <HvCard onChange={onSelection} selectable={isSelectable} {...data} {...cardProps}>\n <HvCardContent>{cardContent?.(data)}</HvCardContent>\n {actions && (\n <HvActionBar>\n <HvActionsGeneric\n actions={actions}\n actionsCallback={actionsCallback}\n maxVisibleActions={maxVisibleActions}\n />\n </HvActionBar>\n )}\n </HvCard>\n );\n };\n\nconst CardView = ({\n id = \"\",\n className,\n classes,\n values,\n selectedValues,\n renderer,\n viewConfiguration = DEFAULT_VIEW_CONFIGURATION,\n innerCardContent,\n metadata,\n emptyComponent = null,\n ...others\n}) => {\n const containerRef = useRef(null);\n const currentBreakpoint = useWidth();\n\n // If no custom render is passed, the render uses the standard card implementation\n const renderCard = CardRenderChooser(\n viewConfiguration,\n renderer,\n innerCardContent,\n metadata,\n others\n );\n\n const { breakpoints } = viewConfiguration;\n\n const cardJump = () =>\n breakpoints[currentBreakpoint] === false ? 1 : 12 / breakpoints[currentBreakpoint];\n\n /**\n * Render of the cards for each value.\n */\n const renderCards = () => {\n return values.map((value, index) => {\n // eslint-disable-next-line no-param-reassign\n value.checked = !!(selectedValues && selectedValues.indexOf(value.id) > -1);\n\n return (\n <HvGrid id={setId(value.id, \"grid\")} key={value.id} item {...breakpoints}>\n <Focus\n rootRef={containerRef}\n key={value.id}\n strategy=\"grid\"\n filterClass=\"grid\"\n navigationJump={cardJump()}\n focusDisabled={false}\n >\n <div key={value.id} tabIndex={index === 0 ? 0 : -1}>\n {renderCard(value)}\n </div>\n </Focus>\n </HvGrid>\n );\n });\n };\n\n const hasValues = values.length > 0;\n\n return hasValues ? (\n <div className={classes.root} ref={containerRef}>\n <div className={classes.elements}>\n <HvGrid\n className={className}\n id={id}\n container\n justifyContent=\"flex-start\"\n alignItems=\"flex-start\"\n >\n {renderCards()}\n </HvGrid>\n </div>\n </div>\n ) : (\n emptyComponent\n );\n};\n\nconst sizeProps = [true, false, \"auto\", 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];\n\nCardView.propTypes = {\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * Id to be applied to the root node.\n */\n id: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the root.\n */\n root: PropTypes.string,\n /**\n * Styles applied to the component that contains the elements class.\n */\n elements: PropTypes.string,\n }).isRequired,\n /**\n * Metadata associated with the values.\n */\n metadata: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string,\n title: PropTypes.string,\n accessor: PropTypes.string,\n cellType: PropTypes.oneOf([\"alpha-numeric\", \"numeric\", \"date\", \"node\"]),\n sortable: PropTypes.bool,\n sortFunction: PropTypes.func,\n searchable: PropTypes.bool,\n searchFunction: PropTypes.func,\n })\n ),\n /**\n * Values to be passed to the card render.\n */\n values: PropTypes.instanceOf(Array).isRequired,\n /**\n * Selected values.\n */\n selectedValues: PropTypes.arrayOf(PropTypes.string),\n /**\n * Custom render for the cards.\n */\n renderer: PropTypes.func,\n /**\n * innerCardContent to be passed to the standard render.\n */\n innerCardContent: PropTypes.func,\n /**\n * Component to the present when no data is available.\n */\n emptyComponent: PropTypes.node,\n /**\n * Configuration settings for the view.\n */\n viewConfiguration: PropTypes.shape({\n /**\n * Callback evoked in the selection of the card.\n */\n onSelection: PropTypes.func,\n /**\n * Defines if the view allows selections.\n */\n isSelectable: PropTypes.bool,\n /**\n * List of actions to be passed to the cards.\n */\n actions: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n icon: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n disabled: PropTypes.bool,\n })\n ),\n /**\n * The callback function ran when an action is triggered, receiving `action` as param\n */\n actionsCallback: PropTypes.func,\n /**\n * The number of maximum visible actions before they're collapsed into a `DropDownMenu`.\n */\n maxVisibleActions: PropTypes.number,\n /**\n * Defines the number of columns the component is going to use. Check the\n * Grid component for possible values\n */\n breakpoints: PropTypes.shape({\n xs: PropTypes.oneOf(sizeProps),\n sm: PropTypes.oneOf(sizeProps),\n md: PropTypes.oneOf(sizeProps),\n lg: PropTypes.oneOf(sizeProps),\n xl: PropTypes.oneOf(sizeProps),\n }),\n }),\n};\n\nexport default withStyles(styles, { name: \"HvCardView\" })(CardView);\n"],"file":"CardView.js"}
@@ -4,9 +4,9 @@ export type HvOverflowTooltipKey = "tooltipData" | "tooltipAnchor" | "tooltipAnc
4
4
 
5
5
  export interface HvOverflowTooltipProps
6
6
  extends StandardProps<React.HTMLAttributes<HTMLElement>, HvOverflowTooltipKey> {
7
- /**
8
- * Id to be applied to the tooltip.
9
- */
7
+ /**
8
+ * Id to be applied to the tooltip.
9
+ */
10
10
  id?: string;
11
11
  /**
12
12
  * The node that will be rendered inside the tooltip.
@@ -20,9 +20,29 @@ export interface HvOverflowTooltipProps
20
20
  * If `true` the overflow tooltip will always use the paragraph overflow style.
21
21
  */
22
22
  paragraphOverflow?: boolean;
23
- /**
24
- * Extra properties to add to the tooltip.
25
- */
23
+ /**
24
+ * If true, the tooltip is shown.
25
+ */
26
+ open?: boolean;
27
+ /**
28
+ * Tooltip placement.
29
+ */
30
+ placement?:
31
+ | 'bottom-end'
32
+ | 'bottom-start'
33
+ | 'bottom'
34
+ | 'left-end'
35
+ | 'left-start'
36
+ | 'left'
37
+ | 'right-end'
38
+ | 'right-start'
39
+ | 'right'
40
+ | 'top-end'
41
+ | 'top-start'
42
+ | 'top';
43
+ /**
44
+ * Extra properties to add to the tooltip.
45
+ */
26
46
  tooltipsProps?: TooltipProps;
27
47
  }
28
48
 
@@ -1,7 +1,19 @@
1
1
  "use strict";
2
2
 
3
+ require("core-js/modules/es.array.iterator.js");
4
+
5
+ require("core-js/modules/es.string.iterator.js");
6
+
7
+ require("core-js/modules/es.weak-map.js");
8
+
9
+ require("core-js/modules/web.dom-collections.iterator.js");
10
+
11
+ require("core-js/modules/es.object.get-own-property-descriptor.js");
12
+
3
13
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
14
 
15
+ var _typeof = require("@babel/runtime/helpers/typeof");
16
+
5
17
  Object.defineProperty(exports, "__esModule", {
6
18
  value: true
7
19
  });
@@ -15,7 +27,7 @@ require("core-js/modules/es.object.to-string.js");
15
27
 
16
28
  require("core-js/modules/es.regexp.to-string.js");
17
29
 
18
- var _react = _interopRequireDefault(require("react"));
30
+ var _react = _interopRequireWildcard(require("react"));
19
31
 
20
32
  var _clsx = _interopRequireDefault(require("clsx"));
21
33
 
@@ -27,6 +39,10 @@ var _core = require("@material-ui/core");
27
39
 
28
40
  var _ = require("..");
29
41
 
42
+ 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); }
43
+
44
+ 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; }
45
+
30
46
  var styles = (0, _core.createStyles)({
31
47
  tooltipData: {},
32
48
  tooltipAnchor: {
@@ -57,7 +73,10 @@ var HvOverflowTooltip = function HvOverflowTooltip(_ref) {
57
73
  className = _ref.className,
58
74
  classes = _ref.classes,
59
75
  data = _ref.data,
76
+ open = _ref.open,
60
77
  paragraphOverflow = _ref.paragraphOverflow,
78
+ _ref$placement = _ref.placement,
79
+ placement = _ref$placement === void 0 ? "top-start" : _ref$placement,
61
80
  tooltipsProps = _ref.tooltipsProps;
62
81
 
63
82
  var _useResizeDetector = (0, _reactResizeDetector.useResizeDetector)({
@@ -71,20 +90,28 @@ var HvOverflowTooltip = function HvOverflowTooltip(_ref) {
71
90
  width = _useResizeDetector$wi === void 0 ? 0 : _useResizeDetector$wi,
72
91
  ref = _useResizeDetector.ref;
73
92
 
74
- var isOverflowing = ((_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.scrollWidth) > width;
75
- var isParag = paragraphOverflow && isParagraph(data.toString());
76
- return /*#__PURE__*/_react.default.createElement(_.HvTooltip, (0, _extends2.default)({
93
+ var scrollWidth = ((_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.scrollWidth) || 0; // The difference should be higher than a pixel to be considered as overflowing
94
+
95
+ var isOverflowing = scrollWidth - width >= 1;
96
+ var isParag = (0, _react.useMemo)(function () {
97
+ return paragraphOverflow && isParagraph(data.toString());
98
+ }, [data, paragraphOverflow]);
99
+ var content = (0, _react.useMemo)(function () {
100
+ return /*#__PURE__*/_react.default.createElement("div", {
101
+ ref: ref,
102
+ className: (0, _clsx.default)(className, isParag ? classes.tooltipAnchorParagraph : classes.tooltipAnchor)
103
+ }, data);
104
+ }, [className, classes.tooltipAnchor, classes.tooltipAnchorParagraph, data, isParag, ref]);
105
+ return open || isOverflowing ? /*#__PURE__*/_react.default.createElement(_.HvTooltip, (0, _extends2.default)({
77
106
  id: id,
78
107
  disableHoverListener: !isOverflowing,
79
- placement: "top-start",
108
+ open: open,
109
+ placement: placement,
80
110
  title: /*#__PURE__*/_react.default.createElement(_.HvTypography, {
81
111
  className: classes.tooltipData,
82
112
  variant: "normalText"
83
113
  }, data)
84
- }, tooltipsProps), /*#__PURE__*/_react.default.createElement("div", {
85
- ref: ref,
86
- className: (0, _clsx.default)(className, isParag ? classes.tooltipAnchorParagraph : classes.tooltipAnchor)
87
- }, data));
114
+ }, tooltipsProps), content) : content;
88
115
  };
89
116
 
90
117
  exports.RawOverflowTooltip = HvOverflowTooltip;
@@ -134,6 +161,16 @@ process.env.NODE_ENV !== "production" ? HvOverflowTooltip.propTypes = {
134
161
  */
135
162
  paragraphOverflow: _propTypes.default.bool,
136
163
 
164
+ /**
165
+ * Tooltip placement.
166
+ */
167
+ placement: _propTypes.default.oneOf(["bottom-end", "bottom-start", "bottom", "left-end", "left-start", "left", "right-end", "right-start", "right", "top-end", "top-start", "top"]),
168
+
169
+ /**
170
+ * If true, the tooltip is shown.
171
+ */
172
+ open: _propTypes.default.bool,
173
+
137
174
  /**
138
175
  * Extra properties to add to the tooltip.
139
176
  */
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/OverflowTooltip/OverflowTooltip.js"],"names":["styles","tooltipData","tooltipAnchor","whiteSpace","overflow","textOverflow","tooltipAnchorParagraph","display","isParagraph","children","test","HvOverflowTooltip","id","className","classes","data","paragraphOverflow","tooltipsProps","refreshMode","refreshOptions","trailing","handleHeight","width","ref","isOverflowing","current","scrollWidth","isParag","toString","propTypes","PropTypes","string","node","shape","root","isRequired","bool","instanceOf","Object","name","React","memo"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport clsx from \"clsx\";\nimport PropTypes from \"prop-types\";\nimport { useResizeDetector } from \"react-resize-detector\";\n\nimport { createStyles, withStyles } from \"@material-ui/core\";\n\nimport { HvTooltip, HvTypography } from \"..\";\n\nconst styles = createStyles({\n tooltipData: {},\n tooltipAnchor: {\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n },\n tooltipAnchorParagraph: {\n overflow: \"hidden\",\n display: \"-webkit-box\",\n \"-webkit-line-clamp\": 2,\n \"-webkit-box-orient\": \"vertical\",\n },\n});\n\nconst isParagraph = (children) => /\\s/.test(children);\n\n/**\n * This component generates a tooltip whenever the text is overflowed.\n */\nconst HvOverflowTooltip = ({ id, className, classes, data, paragraphOverflow, tooltipsProps }) => {\n const { width = 0, ref } = useResizeDetector({\n refreshMode: \"debounce\",\n refreshOptions: {\n trailing: true,\n },\n handleHeight: false,\n });\n\n const isOverflowing = ref.current?.scrollWidth > width;\n\n const isParag = paragraphOverflow && isParagraph(data.toString());\n return (\n <HvTooltip\n id={id}\n disableHoverListener={!isOverflowing}\n placement=\"top-start\"\n title={\n <HvTypography className={classes.tooltipData} variant=\"normalText\">\n {data}\n </HvTypography>\n }\n {...tooltipsProps}\n >\n <div\n ref={ref}\n className={clsx(className, {\n [classes.tooltipAnchor]: !isParag,\n [classes.tooltipAnchorParagraph]: isParag,\n })}\n >\n {data}\n </div>\n </HvTooltip>\n );\n};\n\nHvOverflowTooltip.propTypes = {\n /**\n * Id to be applied to the tooltip.\n */\n id: PropTypes.string,\n /**\n * The node that will be rendered inside the tooltip.\n */\n data: PropTypes.node,\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the root of the component.\n */\n root: PropTypes.string,\n /**\n * Styles applied to the data container in the tooltip.\n */\n tooltipData: PropTypes.string,\n /**\n * Styles applied to the anchor of the tooltip.\n */\n tooltipAnchor: PropTypes.string,\n /**\n * Styles applied to the anchor of the when it is a paragraph.\n */\n tooltipAnchorParagraph: PropTypes.string,\n }).isRequired,\n /**\n * If `true` the overflow tooltip will always use the paragraph overflow style.\n */\n paragraphOverflow: PropTypes.bool,\n /**\n * Extra properties to add to the tooltip.\n */\n tooltipsProps: PropTypes.instanceOf(Object),\n};\n\nexport default withStyles(styles, {\n name: \"HvOverflowTooltip\",\n})(React.memo(HvOverflowTooltip));\n\nexport { HvOverflowTooltip as RawOverflowTooltip };\n"],"file":"OverflowTooltip.js"}
1
+ {"version":3,"sources":["../../src/OverflowTooltip/OverflowTooltip.js"],"names":["styles","tooltipData","tooltipAnchor","whiteSpace","overflow","textOverflow","tooltipAnchorParagraph","display","isParagraph","children","test","HvOverflowTooltip","id","className","classes","data","open","paragraphOverflow","placement","tooltipsProps","refreshMode","refreshOptions","trailing","handleHeight","width","ref","scrollWidth","current","isOverflowing","isParag","toString","content","propTypes","PropTypes","string","node","shape","root","isRequired","bool","oneOf","instanceOf","Object","name","React","memo"],"mappings":"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","sourcesContent":["import React, { useMemo } from \"react\";\nimport clsx from \"clsx\";\nimport PropTypes from \"prop-types\";\nimport { useResizeDetector } from \"react-resize-detector\";\n\nimport { createStyles, withStyles } from \"@material-ui/core\";\n\nimport { HvTooltip, HvTypography } from \"..\";\n\nconst styles = createStyles({\n tooltipData: {},\n tooltipAnchor: {\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n },\n tooltipAnchorParagraph: {\n overflow: \"hidden\",\n display: \"-webkit-box\",\n \"-webkit-line-clamp\": 2,\n \"-webkit-box-orient\": \"vertical\",\n },\n});\n\nconst isParagraph = (children) => /\\s/.test(children);\n\n/**\n * This component generates a tooltip whenever the text is overflowed.\n */\nconst HvOverflowTooltip = ({\n id,\n className,\n classes,\n data,\n open,\n paragraphOverflow,\n placement = \"top-start\",\n tooltipsProps,\n}) => {\n const { width = 0, ref } = useResizeDetector({\n refreshMode: \"debounce\",\n refreshOptions: {\n trailing: true,\n },\n handleHeight: false,\n });\n const scrollWidth = ref.current?.scrollWidth || 0;\n // The difference should be higher than a pixel to be considered as overflowing\n const isOverflowing = scrollWidth - width >= 1;\n\n const isParag = useMemo(\n () => paragraphOverflow && isParagraph(data.toString()),\n [data, paragraphOverflow]\n );\n\n const content = useMemo(\n () => (\n <div\n ref={ref}\n className={clsx(className, {\n [classes.tooltipAnchor]: !isParag,\n [classes.tooltipAnchorParagraph]: isParag,\n })}\n >\n {data}\n </div>\n ),\n [className, classes.tooltipAnchor, classes.tooltipAnchorParagraph, data, isParag, ref]\n );\n\n return open || isOverflowing ? (\n <HvTooltip\n id={id}\n disableHoverListener={!isOverflowing}\n open={open}\n placement={placement}\n title={\n <HvTypography className={classes.tooltipData} variant=\"normalText\">\n {data}\n </HvTypography>\n }\n {...tooltipsProps}\n >\n {content}\n </HvTooltip>\n ) : (\n content\n );\n};\n\nHvOverflowTooltip.propTypes = {\n /**\n * Id to be applied to the tooltip.\n */\n id: PropTypes.string,\n /**\n * The node that will be rendered inside the tooltip.\n */\n data: PropTypes.node,\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the root of the component.\n */\n root: PropTypes.string,\n /**\n * Styles applied to the data container in the tooltip.\n */\n tooltipData: PropTypes.string,\n /**\n * Styles applied to the anchor of the tooltip.\n */\n tooltipAnchor: PropTypes.string,\n /**\n * Styles applied to the anchor of the when it is a paragraph.\n */\n tooltipAnchorParagraph: PropTypes.string,\n }).isRequired,\n /**\n * If `true` the overflow tooltip will always use the paragraph overflow style.\n */\n paragraphOverflow: PropTypes.bool,\n /**\n * Tooltip placement.\n */\n placement: PropTypes.oneOf([\n \"bottom-end\",\n \"bottom-start\",\n \"bottom\",\n \"left-end\",\n \"left-start\",\n \"left\",\n \"right-end\",\n \"right-start\",\n \"right\",\n \"top-end\",\n \"top-start\",\n \"top\",\n ]),\n /**\n * If true, the tooltip is shown.\n */\n open: PropTypes.bool,\n /**\n * Extra properties to add to the tooltip.\n */\n tooltipsProps: PropTypes.instanceOf(Object),\n};\n\nexport default withStyles(styles, {\n name: \"HvOverflowTooltip\",\n})(React.memo(HvOverflowTooltip));\n\nexport { HvOverflowTooltip as RawOverflowTooltip };\n"],"file":"OverflowTooltip.js"}