@activecollab/components 1.0.166 → 1.0.169

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 (70) hide show
  1. package/dist/cjs/components/Dialog/Dialog.js.map +1 -1
  2. package/dist/cjs/components/Entity/EntityCard.js +15 -28
  3. package/dist/cjs/components/Entity/EntityCard.js.map +1 -1
  4. package/dist/cjs/components/Entity/EntityGroup.js +13 -13
  5. package/dist/cjs/components/Entity/EntityGroup.js.map +1 -1
  6. package/dist/cjs/components/Entity/EntityProperty.js +14 -2
  7. package/dist/cjs/components/Entity/EntityProperty.js.map +1 -1
  8. package/dist/cjs/components/Entity/Styles.js +2 -6
  9. package/dist/cjs/components/Entity/Styles.js.map +1 -1
  10. package/dist/cjs/components/Entity/index.js.map +1 -1
  11. package/dist/cjs/components/Menu/Menu.js +5 -12
  12. package/dist/cjs/components/Menu/Menu.js.map +1 -1
  13. package/dist/cjs/components/Modal/Modal.js +2 -5
  14. package/dist/cjs/components/Modal/Modal.js.map +1 -1
  15. package/dist/cjs/components/Sheet/Sheet.js +2 -5
  16. package/dist/cjs/components/Sheet/Sheet.js.map +1 -1
  17. package/dist/cjs/components/Tables/DataTable.js +28 -3
  18. package/dist/cjs/components/Tables/DataTable.js.map +1 -1
  19. package/dist/cjs/components/Tables/Table.js.map +1 -1
  20. package/dist/cjs/components/Window/Window.js +3 -8
  21. package/dist/cjs/components/Window/Window.js.map +1 -1
  22. package/dist/esm/components/Dialog/Dialog.d.ts +1 -2
  23. package/dist/esm/components/Dialog/Dialog.d.ts.map +1 -1
  24. package/dist/esm/components/Dialog/Dialog.js.map +1 -1
  25. package/dist/esm/components/Entity/EntityCard.d.ts +8 -9
  26. package/dist/esm/components/Entity/EntityCard.d.ts.map +1 -1
  27. package/dist/esm/components/Entity/EntityCard.js +17 -29
  28. package/dist/esm/components/Entity/EntityCard.js.map +1 -1
  29. package/dist/esm/components/Entity/EntityGroup.d.ts +5 -0
  30. package/dist/esm/components/Entity/EntityGroup.d.ts.map +1 -1
  31. package/dist/esm/components/Entity/EntityGroup.js +9 -11
  32. package/dist/esm/components/Entity/EntityGroup.js.map +1 -1
  33. package/dist/esm/components/Entity/EntityProperty.d.ts +0 -1
  34. package/dist/esm/components/Entity/EntityProperty.d.ts.map +1 -1
  35. package/dist/esm/components/Entity/EntityProperty.js +7 -2
  36. package/dist/esm/components/Entity/EntityProperty.js.map +1 -1
  37. package/dist/esm/components/Entity/Styles.d.ts.map +1 -1
  38. package/dist/esm/components/Entity/Styles.js +2 -6
  39. package/dist/esm/components/Entity/Styles.js.map +1 -1
  40. package/dist/esm/components/Entity/index.d.ts +6 -7
  41. package/dist/esm/components/Entity/index.d.ts.map +1 -1
  42. package/dist/esm/components/Entity/index.js.map +1 -1
  43. package/dist/esm/components/Menu/Menu.d.ts +0 -1
  44. package/dist/esm/components/Menu/Menu.d.ts.map +1 -1
  45. package/dist/esm/components/Menu/Menu.js +5 -12
  46. package/dist/esm/components/Menu/Menu.js.map +1 -1
  47. package/dist/esm/components/Modal/Modal.d.ts +1 -3
  48. package/dist/esm/components/Modal/Modal.d.ts.map +1 -1
  49. package/dist/esm/components/Modal/Modal.js +2 -5
  50. package/dist/esm/components/Modal/Modal.js.map +1 -1
  51. package/dist/esm/components/Sheet/Sheet.d.ts +0 -1
  52. package/dist/esm/components/Sheet/Sheet.d.ts.map +1 -1
  53. package/dist/esm/components/Sheet/Sheet.js +2 -5
  54. package/dist/esm/components/Sheet/Sheet.js.map +1 -1
  55. package/dist/esm/components/Tables/DataTable.d.ts +4 -2
  56. package/dist/esm/components/Tables/DataTable.d.ts.map +1 -1
  57. package/dist/esm/components/Tables/DataTable.js +27 -3
  58. package/dist/esm/components/Tables/DataTable.js.map +1 -1
  59. package/dist/esm/components/Tables/Table.d.ts +1 -2
  60. package/dist/esm/components/Tables/Table.d.ts.map +1 -1
  61. package/dist/esm/components/Tables/Table.js.map +1 -1
  62. package/dist/esm/components/Window/Window.d.ts +0 -1
  63. package/dist/esm/components/Window/Window.d.ts.map +1 -1
  64. package/dist/esm/components/Window/Window.js +3 -8
  65. package/dist/esm/components/Window/Window.js.map +1 -1
  66. package/dist/index.js +195 -210
  67. package/dist/index.js.map +1 -1
  68. package/dist/index.min.js +1 -1
  69. package/dist/index.min.js.map +1 -1
  70. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Tables/DataTable.tsx"],"names":["React","useCallback","useState","useEffect","useRef","useMemo","Fragment","classNames","Table","Tbody","Thead","CollapseExpandSingleIcon","ExpandAllIcon","CollapseAllIcon","SortIcon","StyledDataTable","SortDirection","groupByKey","items","key","Array","reduce","result","item","initialCollapsed","rows","groupBy","groupedData","keys","Object","collapsedKeys","forEach","DataTable","header","className","sortBy","sortDirection","None","onSortCallback","theadClass","noResultsCallback","groupHead","isCollapsible","emptyValue","args","columnDirection","setColumnDirection","active","setActive","hovered","setHovered","collapsed","setCollapsed","sort","sortByKey","direction","rowsData","a","b","Asc","first","toString","second","localeCompare","initialData","data","setData","getNextSortDirection","previousDirection","sameColumn","Desc","sortColumn","event","index","currentTarget","dataset","sortable","grouped","map","cellMouseOver","e","target","HTMLElement","cellMouseOut","renderNoResults","length","tableRef","overlayStyles","current","clientHeight","renderCell","h","row","colIndex","renderCallback","renderRow","rowIndex","style","toggleCollapse","collapseKey","groupkey","prevState","newState","renderRows","i","last","trim","hidden","allGroupsCollapsed","every","hasCollapsed","some","toggleAllCollapsed","slice","hideCollapsed","height","label","displayName"],"mappings":"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","sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n ReactNode,\n useEffect,\n useRef,\n useMemo,\n Fragment,\n} from \"react\";\nimport classNames from \"classnames\";\nimport { ITableProps, Table, Tbody, Thead } from \"./Table\";\nimport { ISyntheticEvent } from \"../../types\";\nimport CollapseExpandSingleIcon from \"../Icons/collection/CollapseExpandSingle\";\nimport ExpandAllIcon from \"../Icons/collection/ExpandAll\";\nimport CollapseAllIcon from \"../Icons/collection/CollapseAll\";\nimport SortIcon from \"../Icons/collection/SortIcon\";\nimport { StyledDataTable } from \"./Styles\";\n\nexport enum SortDirection {\n None = \"none\",\n Asc = \"asc\",\n Desc = \"desc\",\n}\n\ninterface IHeaderDefinition {\n key: string;\n label?: string;\n sortable?: boolean;\n renderCallback?: (row: object, key?: string, index?: number) => ReactNode;\n style?: object;\n hideCollapsed?: boolean;\n}\n\ninterface IDataTableProps extends ITableProps {\n /** Object of header name, sort and style. */\n header: IHeaderDefinition[];\n /** Object of rows. */\n rows: object[];\n /** CSS classes. */\n className?: string;\n /** Name of row by which we are sorting. */\n sortBy?: string;\n /** Direction by which we are sorting. */\n sortDirection?: SortDirection;\n /** Callback for sorting. */\n onSortCallback?: (sortKey: string, sortDirection: SortDirection) => void;\n /** Switch for column highlighting. */\n columnHighlight?: boolean;\n /** CSS classes for thead. */\n theadClass?: string;\n /** Column by which is data-table grouped. */\n groupBy?: string;\n /** No results Callback. */\n noResultsCallback?: () => ReactNode;\n /** Header of grouped list in data-table. */\n groupHead?: (row: object, index: string | null) => ReactNode;\n /** Grouped rows can be collapsed */\n isCollapsible?: boolean;\n /** Value to replace when column is empty */\n emptyValue?: object;\n}\n\nconst groupByKey = (items: object[], key: string): object => {\n if (items[0] instanceof Array) {\n items = items[0];\n }\n return items.reduce((result: object, item: object) => {\n return {\n ...result,\n [item[key] !== null ? \" \" + item[key] : item[key]]: [\n ...(result[item[key] !== null ? \" \" + item[key] : item[key]] || []),\n item,\n ],\n };\n }, {});\n};\n\nconst initialCollapsed = (rows: object[], groupBy?: string): object => {\n if (groupBy) {\n const groupedData = groupByKey(rows, groupBy);\n const keys = Object.keys(groupedData);\n const collapsedKeys = {};\n keys.forEach((key) => {\n collapsedKeys[key] = true;\n });\n return collapsedKeys;\n }\n return {};\n};\n\nexport const DataTable: FC<IDataTableProps> = ({\n header,\n rows,\n className,\n sortBy,\n sortDirection = SortDirection.None,\n onSortCallback,\n theadClass,\n noResultsCallback,\n groupBy,\n groupHead = (): null => null,\n isCollapsible,\n emptyValue,\n ...args\n}) => {\n const [columnDirection, setColumnDirection] = useState(sortDirection);\n const [active, setActive] = useState(sortBy);\n const [hovered, setHovered] = useState<string | null>();\n const [collapsed, setCollapsed] = useState(() => {\n return initialCollapsed(rows, groupBy);\n });\n const sort = (\n sortByKey: string,\n direction: SortDirection,\n rowsData: Record<string, string>[] | object\n ): object => {\n if (direction === SortDirection.None) {\n return rowsData;\n }\n\n if (rowsData instanceof Array)\n return rowsData.sort((a: object, b: object) => {\n if (direction === SortDirection.Asc) {\n if (a[sortByKey] === null) {\n return 1;\n }\n if (b[sortByKey] === null) {\n return -1;\n }\n }\n if (a[sortByKey] === null) {\n return -1;\n }\n if (b[sortByKey] === null) {\n return 1;\n }\n if (typeof a[sortByKey] === \"number\") {\n if (direction === SortDirection.Asc) {\n return a[sortByKey] - b[sortByKey];\n }\n return b[sortByKey] - a[sortByKey];\n }\n\n const first = a[sortByKey].toString();\n const second = b[sortByKey].toString();\n\n if (direction === SortDirection.Asc) {\n return first.localeCompare(second);\n }\n\n return second.localeCompare(first);\n });\n return {};\n };\n\n const initialData = useCallback(() => {\n if (sortBy && !groupBy) {\n return sort(sortBy, sortDirection, rows);\n }\n if (sortBy && groupBy) {\n sort(sortBy, sortDirection, rows);\n return groupByKey(rows, groupBy);\n }\n if (!sortBy && groupBy) {\n return groupByKey(rows, groupBy);\n }\n return rows;\n }, [groupBy, rows, sortBy, sortDirection]);\n\n const [data, setData] = useState<Record<string, string> | object>(\n initialData\n );\n\n const getNextSortDirection = (\n previousDirection: SortDirection,\n sameColumn: boolean\n ): SortDirection => {\n if (!sameColumn) {\n return SortDirection.Asc;\n }\n if (previousDirection === SortDirection.Asc) {\n return SortDirection.Desc;\n }\n return SortDirection.Asc;\n };\n\n const sortColumn = useCallback(\n (event: ISyntheticEvent) => {\n const index = event.currentTarget.dataset.index;\n if (index && header[index] && header[index].sortable) {\n const direction = getNextSortDirection(\n columnDirection,\n header[index].key === active\n );\n setActive(header[index].key);\n setColumnDirection(direction);\n if (groupBy) {\n let grouped: object = {\n ...data,\n };\n\n if (groupBy !== header[index].key) {\n Object.keys(grouped).map((key: string) => {\n grouped[key] = sort(header[index].key, direction, grouped[key]);\n });\n } else {\n if (rows instanceof Object) {\n grouped = sort(header[index].key, direction, rows);\n grouped = groupByKey([grouped], groupBy);\n }\n }\n setData(grouped);\n } else {\n setData(sort(header[index].key, direction, data));\n }\n if (onSortCallback) {\n onSortCallback(header[index].key, direction);\n }\n }\n\n return null;\n },\n [\n setData,\n data,\n columnDirection,\n setColumnDirection,\n header,\n active,\n setActive,\n onSortCallback,\n groupBy,\n rows,\n ]\n );\n\n const cellMouseOver = useCallback((e: ISyntheticEvent) => {\n if (e.target instanceof HTMLElement) {\n if (e.target.dataset.key) {\n setHovered(e.target.dataset.key);\n }\n }\n }, []);\n\n const cellMouseOut = useCallback(() => {\n setHovered(null);\n }, []);\n\n useEffect(() => {\n setData(initialData());\n setCollapsed(initialCollapsed(rows, groupBy));\n }, [rows, groupBy, initialData]);\n\n const renderNoResults = useCallback(() => {\n return (\n <tr>\n <td\n colSpan={header.length}\n className={classNames({ \"text-center\": !noResultsCallback })}\n >\n {noResultsCallback ? noResultsCallback() : \"There is no data.\"}\n </td>\n </tr>\n );\n }, [header, noResultsCallback]);\n\n const tableRef = useRef<HTMLTableElement>(null);\n\n const overlayStyles = (): number | undefined => {\n if (tableRef.current) {\n return tableRef.current.clientHeight + 5;\n }\n };\n\n const renderCell = useCallback(\n (h: IHeaderDefinition, row: object, colIndex: number) => {\n if (h.renderCallback) {\n return h.renderCallback(row, h.key, colIndex);\n }\n if (row[h.key] === null && emptyValue) {\n return <i className=\"opacity-75\">{emptyValue[h.key]}</i>;\n }\n return row[h.key];\n },\n [emptyValue]\n );\n\n const renderRow = useCallback(\n (row: object, rowIndex: number) => {\n return (\n <tr\n key={rowIndex}\n data-index={rowIndex}\n data-direction=\"asc\"\n className=\"c-table__row\"\n onMouseOver={cellMouseOver}\n onMouseLeave={cellMouseOut}\n >\n {header.map((h: IHeaderDefinition, colIndex: number) => {\n return (\n <td\n key={colIndex}\n className={classNames(`c-table__cell c-data-table__item`, {\n hovered: hovered === h.key,\n })}\n data-key={h.key}\n style={header[colIndex].style ? header[colIndex].style : {}}\n >\n {renderCell(h, row, colIndex)}\n </td>\n );\n })}\n </tr>\n );\n },\n [cellMouseOut, cellMouseOver, header, hovered, renderCell]\n );\n\n const toggleCollapse = useCallback((event) => {\n const collapseKey = event.currentTarget.dataset.groupkey;\n setCollapsed((prevState) => {\n const newState = { ...prevState };\n newState[collapseKey] = !prevState[collapseKey];\n return newState;\n });\n }, []);\n\n const renderRows = useMemo(() => {\n if (\n (data && data instanceof Array && data.length > 0) ||\n (typeof data === \"object\" && Object.keys(data).length > 0)\n ) {\n if (groupBy) {\n const keys = Object.keys(data);\n return keys.map((key: string, i: number) => {\n return (\n <Fragment key={key}>\n {isCollapsible && (\n <Tbody className=\"c-table__collapse_body\">\n <tr>\n <td\n data-groupkey={key}\n onClick={toggleCollapse}\n className=\"c-table__body__icon c-table--toggle-collapsed\"\n >\n <CollapseExpandSingleIcon\n className={classNames({\n \"c-table__collapse_icon--expanded\": !collapsed[key],\n \"c-table__collapse_icon--collapsed\": collapsed[key],\n })}\n />\n </td>\n </tr>\n </Tbody>\n )}\n <Tbody\n className={classNames(\"c-table__grouped__head\", `head_${i}`, {\n \"c-table__grouped__head--expanded\":\n isCollapsible && !collapsed[key],\n \"c-table__grouped__head--collapsed\":\n isCollapsible && collapsed[key],\n last: i === keys.length - 1,\n first: i === 0,\n })}\n >\n {groupHead(\n data[key],\n keys[i] !== \"null\" ? keys[i].trim() : null\n )}\n </Tbody>\n <Tbody\n className={classNames(`c-table__group c-table_group_${i}`, {\n hidden: collapsed[key],\n })}\n >\n {data[key].map((row: object, index: number) => {\n return renderRow(row, index);\n })}\n </Tbody>\n </Fragment>\n );\n });\n }\n return (\n <Tbody>\n {data instanceof Array &&\n data.map((row: object, rowIndex: number) => {\n return renderRow(row, rowIndex);\n })}\n </Tbody>\n );\n }\n return renderNoResults();\n }, [\n data,\n groupBy,\n renderRow,\n groupHead,\n collapsed,\n isCollapsible,\n renderNoResults,\n toggleCollapse,\n ]);\n\n const allGroupsCollapsed = useMemo(() => {\n return Object.keys(collapsed).every((key) => {\n return collapsed[key];\n });\n }, [collapsed]);\n\n const hasCollapsed = useMemo(() => {\n return Object.keys(collapsed).some((key) => {\n return collapsed[key];\n });\n }, [collapsed]);\n\n const toggleAllCollapsed = useCallback(() => {\n if (hasCollapsed) {\n setCollapsed((prevState) => {\n const newState = { ...prevState };\n Object.keys(newState).forEach((key) => {\n newState[key] = false;\n });\n return newState;\n });\n } else {\n setCollapsed((prevState) => {\n const newState = { ...prevState };\n Object.keys(newState).forEach((key) => {\n newState[key] = true;\n });\n return newState;\n });\n }\n }, [hasCollapsed]);\n\n return (\n <StyledDataTable\n as={Table}\n innerRef={tableRef}\n className={classNames(\"c-data-table\", className, {\n \"c-table__grouped\": groupBy,\n \"c-table__collapsible\": isCollapsible,\n \"padding-b-0\": groupBy && collapsed[Object.keys(data).slice(-1)[0]],\n })}\n {...args}\n >\n <Thead className={theadClass}>\n {header.length > 0 && (\n <tr className=\"c-table__row\">\n {header.map((h: IHeaderDefinition, index: number) => {\n return (\n <th\n key={h.key}\n className={classNames(`c-table__cell`, {\n \"c-table__cell--hovered\": hovered === h.key,\n \"c-table__head--hidden\":\n groupBy && allGroupsCollapsed && h.hideCollapsed,\n })}\n onMouseOver={cellMouseOver}\n onMouseLeave={cellMouseOut}\n data-key={h.key}\n style={h.style}\n >\n {isCollapsible && groupBy && index === 0 && (\n <span\n className=\"c-table__head__icon-wrapper\"\n onClick={toggleAllCollapsed}\n data-test=\"toggle-collapse\"\n >\n {hasCollapsed ? (\n <ExpandAllIcon className=\"c-table__head__icon-wrapper__icon\" />\n ) : (\n <CollapseAllIcon className=\"c-table__head__icon-wrapper__icon\" />\n )}\n </span>\n )}\n {hovered === h.key && (\n <div\n className=\"c-table__overlay\"\n style={{ height: overlayStyles() + `px` }}\n />\n )}\n <div\n onClick={sortColumn}\n data-index={index}\n className={classNames(\"c-table__icon-wrapper\", {\n \"cursor-pointer\": h.sortable === true,\n })}\n >\n <span className=\"c-table__label\">{h.label}</span>\n {h.sortable && (\n <SortIcon\n width=\"10px\"\n height=\"10px\"\n className={classNames(\"c-table__icon\", {\n \"c-table__icon--inactive\": h.key !== active,\n \"c-table__icon--active\": h.key === active,\n \"c-table__icon--asc\":\n columnDirection === SortDirection.Asc &&\n h.key === active,\n \"c-table__icon--desc\":\n columnDirection === SortDirection.Desc &&\n h.key === active,\n })}\n />\n )}\n </div>\n </th>\n );\n })}\n </tr>\n )}\n </Thead>\n\n {renderRows}\n </StyledDataTable>\n );\n};\n\nDataTable.displayName = \"DataTable\";\n"],"file":"DataTable.js"}
1
+ {"version":3,"sources":["../../../../src/components/Tables/DataTable.tsx"],"names":["React","useCallback","useState","useEffect","useRef","useMemo","Fragment","classNames","Table","Tbody","Thead","CollapseExpandSingleIcon","ExpandAllIcon","CollapseAllIcon","SortIcon","StyledDataTable","LinearLoader","SortDirection","groupByKey","items","key","Array","reduce","result","item","initialCollapsed","rows","groupBy","groupedData","keys","Object","collapsedKeys","forEach","DataTable","header","className","sortBy","sortDirection","None","onSortCallback","theadClass","noResultsCallback","groupHead","isCollapsible","emptyValue","loading","loadingRows","args","columnDirection","setColumnDirection","active","setActive","hovered","setHovered","collapsed","setCollapsed","sort","sortByKey","direction","rowsData","a","b","Asc","first","toString","second","localeCompare","initialData","data","setData","getNextSortDirection","previousDirection","sameColumn","Desc","sortColumn","event","index","currentTarget","dataset","sortable","grouped","map","cellMouseOver","e","target","HTMLElement","cellMouseOut","renderNoResults","length","tableRef","overlayStyles","current","clientHeight","renderCell","h","row","colIndex","renderCallback","renderRow","rowIndex","style","toggleCollapse","collapseKey","groupkey","prevState","newState","renderPlaceholders","placeholders","fill","_","col","renderRows","i","last","trim","hidden","allGroupsCollapsed","every","hasCollapsed","some","toggleAllCollapsed","slice","hideCollapsed","height","label","displayName"],"mappings":"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","sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n ReactNode,\n useEffect,\n useRef,\n useMemo,\n Fragment,\n} from \"react\";\nimport classNames from \"classnames\";\nimport { ITableProps, Table, Tbody, Thead } from \"./Table\";\nimport { ISyntheticEvent } from \"../../types\";\nimport CollapseExpandSingleIcon from \"../Icons/collection/CollapseExpandSingle\";\nimport ExpandAllIcon from \"../Icons/collection/ExpandAll\";\nimport CollapseAllIcon from \"../Icons/collection/CollapseAll\";\nimport SortIcon from \"../Icons/collection/SortIcon\";\nimport { StyledDataTable } from \"./Styles\";\nimport { LinearLoader } from \"../Loaders\";\n\nexport enum SortDirection {\n None = \"none\",\n Asc = \"asc\",\n Desc = \"desc\",\n}\n\ninterface IHeaderDefinition {\n key: string;\n label?: string;\n sortable?: boolean;\n renderCallback?: (row: object, key?: string, index?: number) => ReactNode;\n style?: object;\n hideCollapsed?: boolean;\n}\n\nexport interface IDataTableProps extends ITableProps {\n /** Object of header name, sort and style. */\n header: IHeaderDefinition[];\n /** Object of rows. */\n rows?: object[];\n /** CSS classes. */\n className?: string;\n /** Name of row by which we are sorting. */\n sortBy?: string;\n /** Direction by which we are sorting. */\n sortDirection?: SortDirection;\n /** Callback for sorting. */\n onSortCallback?: (sortKey: string, sortDirection: SortDirection) => void;\n /** Switch for column highlighting. */\n columnHighlight?: boolean;\n /** CSS classes for thead. */\n theadClass?: string;\n /** Column by which is data-table grouped. */\n groupBy?: string;\n /** No results Callback. */\n noResultsCallback?: () => ReactNode;\n /** Header of grouped list in data-table. */\n groupHead?: (row: object, index: string | null) => ReactNode;\n /** Grouped rows can be collapsed */\n isCollapsible?: boolean;\n /** Value to replace when column is empty */\n emptyValue?: object;\n /** loading indicator */\n loading?: boolean;\n /** loading rows */\n loadingRows?: number;\n}\n\nconst groupByKey = (items: object[], key: string): object => {\n if (items[0] instanceof Array) {\n items = items[0];\n }\n return items.reduce((result: object, item: object) => {\n return {\n ...result,\n [item[key] !== null ? \" \" + item[key] : item[key]]: [\n ...(result[item[key] !== null ? \" \" + item[key] : item[key]] || []),\n item,\n ],\n };\n }, {});\n};\n\nconst initialCollapsed = (rows: object[], groupBy?: string): object => {\n if (groupBy) {\n const groupedData = groupByKey(rows, groupBy);\n const keys = Object.keys(groupedData);\n const collapsedKeys = {};\n keys.forEach((key) => {\n collapsedKeys[key] = true;\n });\n return collapsedKeys;\n }\n return {};\n};\n\nexport const DataTable: FC<IDataTableProps> = ({\n header,\n rows = [],\n className,\n sortBy,\n sortDirection = SortDirection.None,\n onSortCallback,\n theadClass,\n noResultsCallback,\n groupBy,\n groupHead = (): null => null,\n isCollapsible,\n emptyValue,\n loading,\n loadingRows = 7,\n ...args\n}) => {\n const [columnDirection, setColumnDirection] = useState(sortDirection);\n const [active, setActive] = useState(sortBy);\n const [hovered, setHovered] = useState<string | null>();\n const [collapsed, setCollapsed] = useState(() => {\n return initialCollapsed(rows, groupBy);\n });\n const sort = (\n sortByKey: string,\n direction: SortDirection,\n rowsData: Record<string, string>[] | object\n ): object => {\n if (direction === SortDirection.None) {\n return rowsData;\n }\n\n if (rowsData instanceof Array)\n return rowsData.sort((a: object, b: object) => {\n if (direction === SortDirection.Asc) {\n if (a[sortByKey] === null) {\n return 1;\n }\n if (b[sortByKey] === null) {\n return -1;\n }\n }\n if (a[sortByKey] === null) {\n return -1;\n }\n if (b[sortByKey] === null) {\n return 1;\n }\n if (typeof a[sortByKey] === \"number\") {\n if (direction === SortDirection.Asc) {\n return a[sortByKey] - b[sortByKey];\n }\n return b[sortByKey] - a[sortByKey];\n }\n\n const first = a[sortByKey].toString();\n const second = b[sortByKey].toString();\n\n if (direction === SortDirection.Asc) {\n return first.localeCompare(second);\n }\n\n return second.localeCompare(first);\n });\n return {};\n };\n\n const initialData = useCallback(() => {\n if (sortBy && !groupBy) {\n return sort(sortBy, sortDirection, rows);\n }\n if (sortBy && groupBy) {\n sort(sortBy, sortDirection, rows);\n return groupByKey(rows, groupBy);\n }\n if (!sortBy && groupBy) {\n return groupByKey(rows, groupBy);\n }\n return rows;\n }, [groupBy, rows, sortBy, sortDirection]);\n\n const [data, setData] = useState<Record<string, string> | object>(\n initialData\n );\n\n const getNextSortDirection = (\n previousDirection: SortDirection,\n sameColumn: boolean\n ): SortDirection => {\n if (!sameColumn) {\n return SortDirection.Asc;\n }\n if (previousDirection === SortDirection.Asc) {\n return SortDirection.Desc;\n }\n return SortDirection.Asc;\n };\n\n const sortColumn = useCallback(\n (event: ISyntheticEvent) => {\n const index = event.currentTarget.dataset.index;\n if (index && header[index] && header[index].sortable) {\n const direction = getNextSortDirection(\n columnDirection,\n header[index].key === active\n );\n setActive(header[index].key);\n setColumnDirection(direction);\n if (groupBy) {\n let grouped: object = {\n ...data,\n };\n\n if (groupBy !== header[index].key) {\n Object.keys(grouped).map((key: string) => {\n grouped[key] = sort(header[index].key, direction, grouped[key]);\n });\n } else {\n if (rows instanceof Object) {\n grouped = sort(header[index].key, direction, rows);\n grouped = groupByKey([grouped], groupBy);\n }\n }\n setData(grouped);\n } else {\n setData(sort(header[index].key, direction, data));\n }\n if (onSortCallback) {\n onSortCallback(header[index].key, direction);\n }\n }\n\n return null;\n },\n [\n setData,\n data,\n columnDirection,\n setColumnDirection,\n header,\n active,\n setActive,\n onSortCallback,\n groupBy,\n rows,\n ]\n );\n\n const cellMouseOver = useCallback((e: ISyntheticEvent) => {\n if (e.target instanceof HTMLElement) {\n if (e.target.dataset.key) {\n setHovered(e.target.dataset.key);\n }\n }\n }, []);\n\n const cellMouseOut = useCallback(() => {\n setHovered(null);\n }, []);\n\n useEffect(() => {\n setData(initialData());\n setCollapsed(initialCollapsed(rows, groupBy));\n }, [rows, groupBy, initialData]);\n\n const renderNoResults = useCallback(() => {\n return (\n <tr>\n <td\n colSpan={header.length}\n className={classNames({ \"text-center\": !noResultsCallback })}\n >\n {noResultsCallback ? noResultsCallback() : \"There is no data.\"}\n </td>\n </tr>\n );\n }, [header, noResultsCallback]);\n\n const tableRef = useRef<HTMLTableElement>(null);\n\n const overlayStyles = (): number | undefined => {\n if (tableRef.current) {\n return tableRef.current.clientHeight + 5;\n }\n };\n\n const renderCell = useCallback(\n (h: IHeaderDefinition, row: object, colIndex: number) => {\n if (h.renderCallback) {\n return h.renderCallback(row, h.key, colIndex);\n }\n if (row[h.key] === null && emptyValue) {\n return <i className=\"opacity-75\">{emptyValue[h.key]}</i>;\n }\n return row[h.key];\n },\n [emptyValue]\n );\n\n const renderRow = useCallback(\n (row: object, rowIndex: number) => {\n return (\n <tr\n key={rowIndex}\n data-index={rowIndex}\n data-direction=\"asc\"\n className=\"c-table__row\"\n onMouseOver={cellMouseOver}\n onMouseLeave={cellMouseOut}\n >\n {header.map((h: IHeaderDefinition, colIndex: number) => {\n return (\n <td\n key={colIndex}\n className={classNames(`c-table__cell c-data-table__item`, {\n hovered: hovered === h.key,\n })}\n data-key={h.key}\n style={header[colIndex].style ? header[colIndex].style : {}}\n >\n {renderCell(h, row, colIndex)}\n </td>\n );\n })}\n </tr>\n );\n },\n [cellMouseOut, cellMouseOver, header, hovered, renderCell]\n );\n\n const toggleCollapse = useCallback((event) => {\n const collapseKey = event.currentTarget.dataset.groupkey;\n setCollapsed((prevState) => {\n const newState = { ...prevState };\n newState[collapseKey] = !prevState[collapseKey];\n return newState;\n });\n }, []);\n\n const renderPlaceholders = useMemo(() => {\n const placeholders = Array(loadingRows)\n .fill({})\n .map((_, index) => {\n return (\n <tr\n key={index}\n className=\"c-table__row\"\n onMouseOver={cellMouseOver}\n onMouseLeave={cellMouseOut}\n >\n {header.map((col, colIndex) => {\n return (\n <td\n key={colIndex}\n className={classNames(`c-table__cell c-data-table__item`, {\n hovered: hovered === col.key,\n })}\n data-key={col.key}\n >\n <LinearLoader />\n </td>\n );\n })}\n </tr>\n );\n });\n\n return <Tbody>{placeholders}</Tbody>;\n }, [cellMouseOut, cellMouseOver, header, hovered, loadingRows]);\n\n const renderRows = useMemo(() => {\n if (\n (data && data instanceof Array && data.length > 0) ||\n (typeof data === \"object\" && Object.keys(data).length > 0)\n ) {\n if (groupBy) {\n const keys = Object.keys(data);\n return keys.map((key: string, i: number) => {\n return (\n <Fragment key={key}>\n {isCollapsible && (\n <Tbody className=\"c-table__collapse_body\">\n <tr>\n <td\n data-groupkey={key}\n onClick={toggleCollapse}\n className=\"c-table__body__icon c-table--toggle-collapsed\"\n >\n <CollapseExpandSingleIcon\n className={classNames({\n \"c-table__collapse_icon--expanded\": !collapsed[key],\n \"c-table__collapse_icon--collapsed\": collapsed[key],\n })}\n />\n </td>\n </tr>\n </Tbody>\n )}\n <Tbody\n className={classNames(\"c-table__grouped__head\", `head_${i}`, {\n \"c-table__grouped__head--expanded\":\n isCollapsible && !collapsed[key],\n \"c-table__grouped__head--collapsed\":\n isCollapsible && collapsed[key],\n last: i === keys.length - 1,\n first: i === 0,\n })}\n >\n {groupHead(\n data[key],\n keys[i] !== \"null\" ? keys[i].trim() : null\n )}\n </Tbody>\n <Tbody\n className={classNames(`c-table__group c-table_group_${i}`, {\n hidden: collapsed[key],\n })}\n >\n {data[key].map((row: object, index: number) => {\n return renderRow(row, index);\n })}\n </Tbody>\n </Fragment>\n );\n });\n }\n return (\n <Tbody>\n {data instanceof Array &&\n data.map((row: object, rowIndex: number) => {\n return renderRow(row, rowIndex);\n })}\n </Tbody>\n );\n }\n return renderNoResults();\n }, [\n data,\n groupBy,\n renderRow,\n groupHead,\n collapsed,\n isCollapsible,\n renderNoResults,\n toggleCollapse,\n ]);\n\n const allGroupsCollapsed = useMemo(() => {\n return Object.keys(collapsed).every((key) => {\n return collapsed[key];\n });\n }, [collapsed]);\n\n const hasCollapsed = useMemo(() => {\n return Object.keys(collapsed).some((key) => {\n return collapsed[key];\n });\n }, [collapsed]);\n\n const toggleAllCollapsed = useCallback(() => {\n if (hasCollapsed) {\n setCollapsed((prevState) => {\n const newState = { ...prevState };\n Object.keys(newState).forEach((key) => {\n newState[key] = false;\n });\n return newState;\n });\n } else {\n setCollapsed((prevState) => {\n const newState = { ...prevState };\n Object.keys(newState).forEach((key) => {\n newState[key] = true;\n });\n return newState;\n });\n }\n }, [hasCollapsed]);\n\n return (\n <StyledDataTable\n as={Table}\n innerRef={tableRef}\n className={classNames(\"c-data-table\", className, {\n \"c-table__grouped\": groupBy,\n \"c-table__collapsible\": isCollapsible,\n \"padding-b-0\": groupBy && collapsed[Object.keys(data).slice(-1)[0]],\n })}\n {...args}\n >\n <Thead className={theadClass}>\n {header.length > 0 && (\n <tr className=\"c-table__row\">\n {header.map((h: IHeaderDefinition, index: number) => {\n return (\n <th\n key={h.key}\n className={classNames(`c-table__cell`, {\n \"c-table__cell--hovered\": hovered === h.key,\n \"c-table__head--hidden\":\n groupBy && allGroupsCollapsed && h.hideCollapsed,\n })}\n onMouseOver={cellMouseOver}\n onMouseLeave={cellMouseOut}\n data-key={h.key}\n style={h.style}\n >\n {isCollapsible && groupBy && index === 0 && (\n <span\n className=\"c-table__head__icon-wrapper\"\n onClick={toggleAllCollapsed}\n data-test=\"toggle-collapse\"\n >\n {hasCollapsed ? (\n <ExpandAllIcon className=\"c-table__head__icon-wrapper__icon\" />\n ) : (\n <CollapseAllIcon className=\"c-table__head__icon-wrapper__icon\" />\n )}\n </span>\n )}\n {hovered === h.key && (\n <div\n className=\"c-table__overlay\"\n style={{ height: overlayStyles() + `px` }}\n />\n )}\n <div\n onClick={sortColumn}\n data-index={index}\n className={classNames(\"c-table__icon-wrapper\", {\n \"cursor-pointer\": h.sortable === true,\n })}\n >\n <span className=\"c-table__label\">{h.label}</span>\n {h.sortable && (\n <SortIcon\n width=\"10px\"\n height=\"10px\"\n className={classNames(\"c-table__icon\", {\n \"c-table__icon--inactive\": h.key !== active,\n \"c-table__icon--active\": h.key === active,\n \"c-table__icon--asc\":\n columnDirection === SortDirection.Asc &&\n h.key === active,\n \"c-table__icon--desc\":\n columnDirection === SortDirection.Desc &&\n h.key === active,\n })}\n />\n )}\n </div>\n </th>\n );\n })}\n </tr>\n )}\n </Thead>\n\n {loading ? renderPlaceholders : renderRows}\n </StyledDataTable>\n );\n};\n\nDataTable.displayName = \"DataTable\";\n"],"file":"DataTable.js"}
@@ -1,5 +1,5 @@
1
1
  import { ReactNode, FC, RefObject } from "react";
2
- interface ITableWithChildren {
2
+ export interface ITableWithChildren {
3
3
  children: ReactNode;
4
4
  className?: string;
5
5
  }
@@ -11,5 +11,4 @@ export interface ITableProps {
11
11
  export declare const Table: FC<ITableProps & ITableWithChildren>;
12
12
  export declare const Thead: FC<ITableWithChildren>;
13
13
  export declare const Tbody: FC<ITableWithChildren>;
14
- export {};
15
14
  //# sourceMappingURL=Table.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../../src/components/Tables/Table.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AASxD,UAAU,kBAAkB;IAE1B,QAAQ,EAAE,SAAS,CAAC;IAEpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAE1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,QAAQ,CAAC,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAC;CACxC;AAED,eAAO,MAAM,KAAK,EAAE,EAAE,CAAC,WAAW,GAAG,kBAAkB,CAiBtD,CAAC;AAIF,eAAO,MAAM,KAAK,EAAE,EAAE,CAAC,kBAAkB,CAIxC,CAAC;AAIF,eAAO,MAAM,KAAK,EAAE,EAAE,CAAC,kBAAkB,CAIxC,CAAC"}
1
+ {"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../../src/components/Tables/Table.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AASxD,MAAM,WAAW,kBAAkB;IAEjC,QAAQ,EAAE,SAAS,CAAC;IAEpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAE1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,QAAQ,CAAC,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAC;CACxC;AAED,eAAO,MAAM,KAAK,EAAE,EAAE,CAAC,WAAW,GAAG,kBAAkB,CAiBtD,CAAC;AAIF,eAAO,MAAM,KAAK,EAAE,EAAE,CAAC,kBAAkB,CAIxC,CAAC;AAIF,eAAO,MAAM,KAAK,EAAE,EAAE,CAAC,kBAAkB,CAIxC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Tables/Table.tsx"],"names":["React","classNames","StyledTableWrapper","StyledTable","StyledTableBody","StyledTableHead","Table","children","className","striped","innerRef","displayName","Thead","Tbody"],"mappings":"AAAA,OAAOA,KAAP,MAAgD,OAAhD;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,SACEC,kBADF,EAEEC,WAFF,EAGEC,eAHF,EAIEC,eAJF,QAKO,UALP;AAuBA,OAAO,IAAMC,KAA2C,GAAG,SAA9CA,KAA8C,OAKrD;AAAA,MAJJC,QAII,QAJJA,QAII;AAAA,MAHJC,SAGI,QAHJA,SAGI;AAAA,0BAFJC,OAEI;AAAA,MAFJA,OAEI,6BAFM,KAEN;AAAA,MADJC,QACI,QADJA,QACI;AACJ,sBACE,oBAAC,kBAAD;AAAoB,IAAA,SAAS,EAAC;AAA9B,kBACE,oBAAC,WAAD;AACE,IAAA,GAAG,EAAEA,QADP;AAEE,IAAA,SAAS,EAAET,UAAU,CAAC,SAAD,EAAYO,SAAZ,CAFvB;AAGE,IAAA,QAAQ,EAAEC;AAHZ,KAKGF,QALH,CADF,CADF;AAWD,CAjBM;AAmBPD,KAAK,CAACK,WAAN,GAAoB,OAApB;AAEA,OAAO,IAAMC,KAA6B,GAAG,SAAhCA,KAAgC;AAAA,MAAGL,QAAH,SAAGA,QAAH;AAAA,MAAaC,SAAb,SAAaA,SAAb;AAAA,sBAC3C,oBAAC,eAAD;AAAiB,IAAA,SAAS,EAAEP,UAAU,CAAC,eAAD,EAAkBO,SAAlB;AAAtC,KACGD,QADH,CAD2C;AAAA,CAAtC;AAMPK,KAAK,CAACD,WAAN,GAAoB,OAApB;AAEA,OAAO,IAAME,KAA6B,GAAG,SAAhCA,KAAgC;AAAA,MAAGN,QAAH,SAAGA,QAAH;AAAA,MAAaC,SAAb,SAAaA,SAAb;AAAA,sBAC3C,oBAAC,eAAD;AAAiB,IAAA,SAAS,EAAEP,UAAU,CAAC,eAAD,EAAkBO,SAAlB;AAAtC,KACGD,QADH,CAD2C;AAAA,CAAtC;AAMPM,KAAK,CAACF,WAAN,GAAoB,OAApB","sourcesContent":["import React, { ReactNode, FC, RefObject } from \"react\";\nimport classNames from \"classnames\";\nimport {\n StyledTableWrapper,\n StyledTable,\n StyledTableBody,\n StyledTableHead,\n} from \"./Styles\";\n\ninterface ITableWithChildren {\n /** Children prop can be ReactNode. */\n children: ReactNode;\n /** Classname prop for custom styling. */\n className?: string;\n}\n\nexport interface ITableProps {\n /** Darker color on odd column. */\n striped?: boolean;\n /** CSS classes. */\n className?: string;\n /** Ref object for table. */\n innerRef?: RefObject<HTMLTableElement>;\n}\n\nexport const Table: FC<ITableProps & ITableWithChildren> = ({\n children,\n className,\n striped = false,\n innerRef,\n}) => {\n return (\n <StyledTableWrapper className=\"c-table__wrap\">\n <StyledTable\n ref={innerRef}\n className={classNames(\"c-table\", className)}\n $striped={striped}\n >\n {children}\n </StyledTable>\n </StyledTableWrapper>\n );\n};\n\nTable.displayName = \"Table\";\n\nexport const Thead: FC<ITableWithChildren> = ({ children, className }) => (\n <StyledTableHead className={classNames(\"c-table__head\", className)}>\n {children}\n </StyledTableHead>\n);\n\nThead.displayName = \"Thead\";\n\nexport const Tbody: FC<ITableWithChildren> = ({ children, className }) => (\n <StyledTableBody className={classNames(\"c-table__body\", className)}>\n {children}\n </StyledTableBody>\n);\n\nTbody.displayName = \"Tbody\";\n"],"file":"Table.js"}
1
+ {"version":3,"sources":["../../../../src/components/Tables/Table.tsx"],"names":["React","classNames","StyledTableWrapper","StyledTable","StyledTableBody","StyledTableHead","Table","children","className","striped","innerRef","displayName","Thead","Tbody"],"mappings":"AAAA,OAAOA,KAAP,MAAgD,OAAhD;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,SACEC,kBADF,EAEEC,WAFF,EAGEC,eAHF,EAIEC,eAJF,QAKO,UALP;AAuBA,OAAO,IAAMC,KAA2C,GAAG,SAA9CA,KAA8C,OAKrD;AAAA,MAJJC,QAII,QAJJA,QAII;AAAA,MAHJC,SAGI,QAHJA,SAGI;AAAA,0BAFJC,OAEI;AAAA,MAFJA,OAEI,6BAFM,KAEN;AAAA,MADJC,QACI,QADJA,QACI;AACJ,sBACE,oBAAC,kBAAD;AAAoB,IAAA,SAAS,EAAC;AAA9B,kBACE,oBAAC,WAAD;AACE,IAAA,GAAG,EAAEA,QADP;AAEE,IAAA,SAAS,EAAET,UAAU,CAAC,SAAD,EAAYO,SAAZ,CAFvB;AAGE,IAAA,QAAQ,EAAEC;AAHZ,KAKGF,QALH,CADF,CADF;AAWD,CAjBM;AAmBPD,KAAK,CAACK,WAAN,GAAoB,OAApB;AAEA,OAAO,IAAMC,KAA6B,GAAG,SAAhCA,KAAgC;AAAA,MAAGL,QAAH,SAAGA,QAAH;AAAA,MAAaC,SAAb,SAAaA,SAAb;AAAA,sBAC3C,oBAAC,eAAD;AAAiB,IAAA,SAAS,EAAEP,UAAU,CAAC,eAAD,EAAkBO,SAAlB;AAAtC,KACGD,QADH,CAD2C;AAAA,CAAtC;AAMPK,KAAK,CAACD,WAAN,GAAoB,OAApB;AAEA,OAAO,IAAME,KAA6B,GAAG,SAAhCA,KAAgC;AAAA,MAAGN,QAAH,SAAGA,QAAH;AAAA,MAAaC,SAAb,SAAaA,SAAb;AAAA,sBAC3C,oBAAC,eAAD;AAAiB,IAAA,SAAS,EAAEP,UAAU,CAAC,eAAD,EAAkBO,SAAlB;AAAtC,KACGD,QADH,CAD2C;AAAA,CAAtC;AAMPM,KAAK,CAACF,WAAN,GAAoB,OAApB","sourcesContent":["import React, { ReactNode, FC, RefObject } from \"react\";\nimport classNames from \"classnames\";\nimport {\n StyledTableWrapper,\n StyledTable,\n StyledTableBody,\n StyledTableHead,\n} from \"./Styles\";\n\nexport interface ITableWithChildren {\n /** Children prop can be ReactNode. */\n children: ReactNode;\n /** Classname prop for custom styling. */\n className?: string;\n}\n\nexport interface ITableProps {\n /** Darker color on odd column. */\n striped?: boolean;\n /** CSS classes. */\n className?: string;\n /** Ref object for table. */\n innerRef?: RefObject<HTMLTableElement>;\n}\n\nexport const Table: FC<ITableProps & ITableWithChildren> = ({\n children,\n className,\n striped = false,\n innerRef,\n}) => {\n return (\n <StyledTableWrapper className=\"c-table__wrap\">\n <StyledTable\n ref={innerRef}\n className={classNames(\"c-table\", className)}\n $striped={striped}\n >\n {children}\n </StyledTable>\n </StyledTableWrapper>\n );\n};\n\nTable.displayName = \"Table\";\n\nexport const Thead: FC<ITableWithChildren> = ({ children, className }) => (\n <StyledTableHead className={classNames(\"c-table__head\", className)}>\n {children}\n </StyledTableHead>\n);\n\nThead.displayName = \"Thead\";\n\nexport const Tbody: FC<ITableWithChildren> = ({ children, className }) => (\n <StyledTableBody className={classNames(\"c-table__body\", className)}>\n {children}\n </StyledTableBody>\n);\n\nTbody.displayName = \"Tbody\";\n"],"file":"Table.js"}
@@ -3,7 +3,6 @@ export interface IWindow {
3
3
  onClose?: () => void;
4
4
  disableFocusLock?: boolean;
5
5
  disableScrollLock?: boolean;
6
- preventClickEventBubbling?: boolean;
7
6
  }
8
7
  export declare const Window: React.ForwardRefExoticComponent<IWindow & Omit<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "slot" | "style" | "title" | "key" | "css" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "id" | "lang" | "placeholder" | "spellCheck" | "tabIndex" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "color" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "cs" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "tw">, keyof IWindow> & React.RefAttributes<HTMLDivElement>>;
9
8
  //# sourceMappingURL=Window.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Window.d.ts","sourceRoot":"","sources":["../../../../src/components/Window/Window.tsx"],"names":[],"mappings":"AAAA,OAAO,KAMN,MAAM,OAAO,CAAC;AASf,MAAM,WAAW,OAAO;IACtB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACrC;AAID,eAAO,MAAM,MAAM,usJAmFlB,CAAC"}
1
+ {"version":3,"file":"Window.d.ts","sourceRoot":"","sources":["../../../../src/components/Window/Window.tsx"],"names":[],"mappings":"AAAA,OAAO,KAMN,MAAM,OAAO,CAAC;AASf,MAAM,WAAW,OAAO;IACtB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAID,eAAO,MAAM,MAAM,usJAgFlB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- var _excluded = ["children", "onClose", "className", "style", "onKeyDown", "disableFocusLock", "disableScrollLock", "preventClickEventBubbling", "onClick"];
3
+ var _excluded = ["children", "onClose", "className", "style", "onKeyDown", "disableFocusLock", "disableScrollLock", "onClick"];
4
4
  import React, { useCallback, useRef, useEffect, forwardRef } from "react";
5
5
  import classnames from "classnames";
6
6
  import FocusLock from "react-focus-lock";
@@ -22,8 +22,6 @@ export var Window = /*#__PURE__*/forwardRef(function (_ref, ref) {
22
22
  disableFocusLock = _ref$disableFocusLock === void 0 ? false : _ref$disableFocusLock,
23
23
  _ref$disableScrollLoc = _ref.disableScrollLock,
24
24
  disableScrollLock = _ref$disableScrollLoc === void 0 ? false : _ref$disableScrollLoc,
25
- _ref$preventClickEven = _ref.preventClickEventBubbling,
26
- preventClickEventBubbling = _ref$preventClickEven === void 0 ? false : _ref$preventClickEven,
27
25
  onClick = _ref.onClick,
28
26
  rest = _objectWithoutPropertiesLoose(_ref, _excluded);
29
27
 
@@ -54,12 +52,9 @@ export var Window = /*#__PURE__*/forwardRef(function (_ref, ref) {
54
52
  // eslint-disable-next-line react-hooks/exhaustive-deps
55
53
  }, []);
56
54
  var handleClick = useCallback(function (event) {
57
- if (preventClickEventBubbling) {
58
- event == null ? void 0 : event.stopPropagation();
59
- }
60
-
55
+ event == null ? void 0 : event.stopPropagation();
61
56
  typeof onClick === "function" && onClick(event);
62
- }, [onClick, preventClickEventBubbling]);
57
+ }, [onClick]);
63
58
  return /*#__PURE__*/React.createElement(Portal, null, /*#__PURE__*/React.createElement(FocusLock, {
64
59
  returnFocus: returnFocus,
65
60
  disabled: disableFocusLock
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Window/Window.tsx"],"names":["React","useCallback","useRef","useEffect","forwardRef","classnames","FocusLock","Portal","useLayerContext","useForkRef","RemoveScroll","StyledWindow","layers","returnFocus","preventScroll","Window","ref","children","onClose","className","style","onKeyDown","disableFocusLock","disableScrollLock","preventClickEventBubbling","onClick","rest","innerRef","handleRef","zIndex","skyscraper","handleKeyDown","event","defaultPrevented","key","preventDefault","handleClick","stopPropagation","displayName"],"mappings":"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","sourcesContent":["import React, {\n useCallback,\n useRef,\n useEffect,\n forwardRef,\n KeyboardEvent,\n} from \"react\";\nimport classnames from \"classnames\";\nimport FocusLock from \"react-focus-lock\";\nimport { Portal, useLayerContext } from \"../../helpers\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { StyledWindow } from \"./Style\";\nimport { layers } from \"../../utils\";\n\nexport interface IWindow {\n onClose?: () => void;\n disableFocusLock?: boolean;\n disableScrollLock?: boolean;\n preventClickEventBubbling?: boolean;\n}\n\nconst returnFocus = { preventScroll: true };\n\nexport const Window = forwardRef<\n HTMLDivElement,\n IWindow & Omit<React.ComponentPropsWithoutRef<\"div\">, keyof IWindow>\n>(\n (\n {\n children,\n onClose,\n className,\n style,\n onKeyDown,\n disableFocusLock = false,\n disableScrollLock = false,\n preventClickEventBubbling = false,\n onClick,\n ...rest\n },\n ref\n ) => {\n const innerRef = useRef<HTMLDivElement>(null);\n const handleRef = useForkRef(innerRef, ref);\n const { zIndex = layers.skyscraper } = useLayerContext();\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (\n !event.defaultPrevented &&\n (event.key === \"Esc\" || event.key === \"Escape\")\n ) {\n event.preventDefault();\n if (onClose) {\n onClose();\n }\n }\n if (typeof onKeyDown === \"function\") {\n onKeyDown(event);\n }\n },\n [onClose, onKeyDown]\n );\n\n useEffect(() => {\n return (): void => {\n typeof onClose === \"function\" && onClose();\n };\n // Dependency is empty because we only want to call onClose when component is unmounted\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleClick = useCallback(\n (event) => {\n if (preventClickEventBubbling) {\n event?.stopPropagation();\n }\n typeof onClick === \"function\" && onClick(event);\n },\n [onClick, preventClickEventBubbling]\n );\n\n return (\n <Portal>\n <FocusLock returnFocus={returnFocus} disabled={disableFocusLock}>\n <RemoveScroll\n forwardProps\n ref={handleRef}\n enabled={!disableScrollLock}\n noIsolation\n >\n <StyledWindow\n {...rest}\n style={{ zIndex, ...style }}\n onKeyDown={handleKeyDown}\n tabIndex={0}\n className={classnames(\"c-window\", className)}\n onClick={handleClick}\n >\n {children}\n </StyledWindow>\n </RemoveScroll>\n </FocusLock>\n </Portal>\n );\n }\n);\n\nWindow.displayName = \"Window\";\n"],"file":"Window.js"}
1
+ {"version":3,"sources":["../../../../src/components/Window/Window.tsx"],"names":["React","useCallback","useRef","useEffect","forwardRef","classnames","FocusLock","Portal","useLayerContext","useForkRef","RemoveScroll","StyledWindow","layers","returnFocus","preventScroll","Window","ref","children","onClose","className","style","onKeyDown","disableFocusLock","disableScrollLock","onClick","rest","innerRef","handleRef","zIndex","skyscraper","handleKeyDown","event","defaultPrevented","key","preventDefault","handleClick","stopPropagation","displayName"],"mappings":"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","sourcesContent":["import React, {\n useCallback,\n useRef,\n useEffect,\n forwardRef,\n KeyboardEvent,\n} from \"react\";\nimport classnames from \"classnames\";\nimport FocusLock from \"react-focus-lock\";\nimport { Portal, useLayerContext } from \"../../helpers\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { StyledWindow } from \"./Style\";\nimport { layers } from \"../../utils\";\n\nexport interface IWindow {\n onClose?: () => void;\n disableFocusLock?: boolean;\n disableScrollLock?: boolean;\n}\n\nconst returnFocus = { preventScroll: true };\n\nexport const Window = forwardRef<\n HTMLDivElement,\n IWindow & Omit<React.ComponentPropsWithoutRef<\"div\">, keyof IWindow>\n>(\n (\n {\n children,\n onClose,\n className,\n style,\n onKeyDown,\n disableFocusLock = false,\n disableScrollLock = false,\n onClick,\n ...rest\n },\n ref\n ) => {\n const innerRef = useRef<HTMLDivElement>(null);\n const handleRef = useForkRef(innerRef, ref);\n const { zIndex = layers.skyscraper } = useLayerContext();\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (\n !event.defaultPrevented &&\n (event.key === \"Esc\" || event.key === \"Escape\")\n ) {\n event.preventDefault();\n if (onClose) {\n onClose();\n }\n }\n if (typeof onKeyDown === \"function\") {\n onKeyDown(event);\n }\n },\n [onClose, onKeyDown]\n );\n\n useEffect(() => {\n return (): void => {\n typeof onClose === \"function\" && onClose();\n };\n // Dependency is empty because we only want to call onClose when component is unmounted\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleClick = useCallback(\n (event) => {\n event?.stopPropagation();\n typeof onClick === \"function\" && onClick(event);\n },\n [onClick]\n );\n\n return (\n <Portal>\n <FocusLock returnFocus={returnFocus} disabled={disableFocusLock}>\n <RemoveScroll\n forwardProps\n ref={handleRef}\n enabled={!disableScrollLock}\n noIsolation\n >\n <StyledWindow\n {...rest}\n style={{ zIndex, ...style }}\n onKeyDown={handleKeyDown}\n tabIndex={0}\n className={classnames(\"c-window\", className)}\n onClick={handleClick}\n >\n {children}\n </StyledWindow>\n </RemoveScroll>\n </FocusLock>\n </Portal>\n );\n }\n);\n\nWindow.displayName = \"Window\";\n"],"file":"Window.js"}