@laerdal/life-react-components 1.3.2-dev.7 → 1.4.1-dev.1
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.
- package/dist/esm/Button/DualFunctionButton.js +4 -0
- package/dist/esm/Button/DualFunctionButton.js.map +1 -1
- package/dist/esm/Dropdown/DropdownContent.js +6 -6
- package/dist/esm/Dropdown/DropdownContent.js.map +1 -1
- package/dist/esm/Modals/ModalContainer.js +0 -5
- package/dist/esm/Modals/ModalContainer.js.map +1 -1
- package/dist/esm/Modals/ModalDialog.js +23 -4
- package/dist/esm/Modals/ModalDialog.js.map +1 -1
- package/dist/esm/Modals/ModalNote.js +1 -1
- package/dist/esm/Modals/ModalNote.js.map +1 -1
- package/dist/esm/Table/Table.js +22 -6
- package/dist/esm/Table/Table.js.map +1 -1
- package/dist/esm/Table/TableBody.js +14 -24
- package/dist/esm/Table/TableBody.js.map +1 -1
- package/dist/esm/Table/TableFooter.js +13 -12
- package/dist/esm/Table/TableFooter.js.map +1 -1
- package/dist/esm/Table/TableHeaders.js +8 -19
- package/dist/esm/Table/TableHeaders.js.map +1 -1
- package/dist/esm/Table/TableStyles.js +226 -180
- package/dist/esm/Table/TableStyles.js.map +1 -1
- package/dist/esm/Table/__tests__/Table.test.js +162 -0
- package/dist/esm/Table/__tests__/Table.test.js.map +1 -1
- package/dist/js/Button/DualFunctionButton.js +4 -0
- package/dist/js/Button/DualFunctionButton.js.map +1 -1
- package/dist/js/Dropdown/DropdownContent.js +8 -8
- package/dist/js/Dropdown/DropdownContent.js.map +1 -1
- package/dist/js/Modals/ModalContainer.js +1 -1
- package/dist/js/Modals/ModalContainer.js.map +1 -1
- package/dist/js/Modals/ModalDialog.d.ts +3 -1
- package/dist/js/Modals/ModalDialog.js +21 -4
- package/dist/js/Modals/ModalDialog.js.map +1 -1
- package/dist/js/Modals/ModalNote.d.ts +1 -1
- package/dist/js/Modals/ModalNote.js +1 -1
- package/dist/js/Modals/ModalNote.js.map +1 -1
- package/dist/js/Table/Table.js +32 -11
- package/dist/js/Table/Table.js.map +1 -1
- package/dist/js/Table/TableBody.js +16 -25
- package/dist/js/Table/TableBody.js.map +1 -1
- package/dist/js/Table/TableFooter.d.ts +2 -0
- package/dist/js/Table/TableFooter.js +19 -12
- package/dist/js/Table/TableFooter.js.map +1 -1
- package/dist/js/Table/TableHeaders.js +9 -19
- package/dist/js/Table/TableHeaders.js.map +1 -1
- package/dist/js/Table/TableStyles.d.ts +19 -0
- package/dist/js/Table/TableStyles.js +79 -3
- package/dist/js/Table/TableStyles.js.map +1 -1
- package/dist/js/Table/TableTypes.d.ts +4 -1
- package/dist/js/Table/__tests__/Table.test.js +164 -0
- package/dist/js/Table/__tests__/Table.test.js.map +1 -1
- package/dist/umd/Button/DualFunctionButton.js +4 -0
- package/dist/umd/Button/DualFunctionButton.js.map +1 -1
- package/dist/umd/Dropdown/DropdownContent.js +6 -6
- package/dist/umd/Dropdown/DropdownContent.js.map +1 -1
- package/dist/umd/Modals/ModalContainer.js +0 -5
- package/dist/umd/Modals/ModalContainer.js.map +1 -1
- package/dist/umd/Modals/ModalDialog.js +23 -4
- package/dist/umd/Modals/ModalDialog.js.map +1 -1
- package/dist/umd/Modals/ModalNote.js +1 -1
- package/dist/umd/Modals/ModalNote.js.map +1 -1
- package/dist/umd/Table/Table.js +21 -5
- package/dist/umd/Table/Table.js.map +1 -1
- package/dist/umd/Table/TableBody.js +17 -28
- package/dist/umd/Table/TableBody.js.map +1 -1
- package/dist/umd/Table/TableFooter.js +15 -16
- package/dist/umd/Table/TableFooter.js.map +1 -1
- package/dist/umd/Table/TableHeaders.js +11 -23
- package/dist/umd/Table/TableHeaders.js.map +1 -1
- package/dist/umd/Table/TableStyles.js +226 -180
- package/dist/umd/Table/TableStyles.js.map +1 -1
- package/dist/umd/Table/__tests__/Table.test.js +164 -4
- package/dist/umd/Table/__tests__/Table.test.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/Table/__tests__/Table.test.tsx"],"names":["React","render","Table","describe","it","columns","key","name","rows","column1","column2","getByTestId","expect","toBeDefined","queryByTestId","not","toBeNull","tableHeaderRow","children","textContent","toContain","getElementsByTagName","length","toEqual","classList","contains","toBe"],"mappings":"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","sourcesContent":["import React from 'react';\n/**\n * Import React libraries.\n */\nimport { render } from '@testing-library/react';\n\n/**\n * Import custom components.\n */\nimport { Table } from '../index';\n\n/**\n * Import third-party libraries.\n */\nimport 'jest-styled-components';\n\n/**\n * Import custom types.\n */\nimport { TableColumn } from '../TableTypes';\n\ndescribe('<Table />', () => {\n it('Renders the Table', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { getByTestId } = render(<Table rows={rows} columns={columns} title=\"Test title\" />);\n expect(getByTestId('TestTable')).toBeDefined();\n });\n\n describe('Table Header Row Tests', () => {\n it('Should render table header row in case title is passed', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { queryByTestId } = render(<Table rows={rows} columns={columns} title=\"Test title\" />);\n expect(queryByTestId('TestTableHeaderRow')).not.toBeNull();\n });\n\n it('Should not render table header row in case title is passed', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { queryByTestId } = render(<Table rows={rows} columns={columns} />);\n expect(queryByTestId('TestTableHeaderRow')).toBeNull();\n });\n\n describe('Table Header Row functional tests', () => {\n it('Should have title', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { queryByTestId } = render(<Table rows={rows} columns={columns} title=\"Test Title\" />);\n const tableHeaderRow = queryByTestId('TestTableHeaderRow');\n expect(tableHeaderRow?.children[0].children[0].textContent).toContain('Test Title');\n });\n\n it('Should have options menu', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { queryByTestId } = render(<Table rows={rows} columns={columns} title=\"Test Title\" />);\n expect(queryByTestId('TestTableHeaderRow')?.getElementsByTagName('svg')).not.toBeNull();\n });\n });\n });\n\n describe('Table Column Header Row Tests', () => {\n it('Should render column header row', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { getByTestId } = render(<Table rows={rows} columns={columns} />);\n expect(getByTestId('TestTableColumnHeaderRow')).not.toBeNull();\n });\n\n it('Should render two columns in the column header row', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { getByTestId } = render(<Table rows={rows} columns={columns} />);\n expect(getByTestId('TestTableColumnHeaderRow').children.length).toEqual(2);\n });\n\n it('Should render correct column names in the column header row', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { getByTestId } = render(<Table rows={rows} columns={columns} />);\n expect(getByTestId('TestTableColumnHeaderRow').children[0].textContent).toEqual('Column 1');\n expect(getByTestId('TestTableColumnHeaderRow').children[1].textContent).toEqual('Column 2');\n });\n\n it('Should render columns without no-border class in the column header row, in case title is passed', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { getByTestId } = render(<Table rows={rows} columns={columns} title=\"test title\" />);\n expect(getByTestId('TestTableColumnHeaderRow').children[0].classList.contains('no-border')).toBe(false);\n expect(getByTestId('TestTableColumnHeaderRow').children[1].classList.contains('no-border')).toBe(false);\n });\n\n });\n\n describe('Table Body Row tests', () => {\n it('Should not render \"No Data\" row in case there are rows', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { queryByTestId } = render(<Table rows={rows} columns={columns} />);\n expect(queryByTestId('TestTableNoDataRow')).toBeNull();\n });\n\n it('Should render \"No Data\" row in case there are no rows', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [];\n const { queryByTestId } = render(<Table rows={rows} columns={columns} />);\n expect(queryByTestId('TestTableNoDataRow')).not.toBeNull();\n expect(queryByTestId('TestTableNoDataRow')?.textContent).toEqual('There are no rows to display');\n });\n\n it('Should render a data row with correct content for each row that is passed', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { getByTestId } = render(<Table rows={rows} columns={columns} />);\n expect(getByTestId('TestTableDataRow')).toBeDefined();\n expect(getByTestId('TestTableDataRow').children.length).toEqual(2);\n expect(getByTestId('TestTableDataRow').children[0].textContent).toEqual('Test content');\n expect(getByTestId('TestTableDataRow').children[1].textContent).toEqual('Test content 2');\n });\n });\n\n it('Should render footer row', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { getByTestId } = render(<Table rows={rows} columns={columns} />);\n expect(getByTestId('TestTableFooterRow')).toBeDefined();\n });\n});\n"],"file":"Table.test.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/Table/__tests__/Table.test.tsx"],"names":["React","render","Table","StyledTableBodyRow","StyledTableFooterCollapseButton","act","describe","it","columns","key","name","rows","column1","column2","getByTestId","expect","toBeDefined","queryByTestId","not","toBeNull","tableHeaderRow","children","textContent","toContain","getElementsByTagName","length","toEqual","classList","contains","toBe","wrapper","container","querySelectorAll","toHaveLength","button","click"],"mappings":"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","sourcesContent":["import React from 'react';\n/**\n * Import React libraries.\n */\nimport { render } from '@testing-library/react';\n\n/**\n * Import custom components.\n */\nimport { Table } from '../index';\n\n/**\n * Import third-party libraries.\n */\nimport 'jest-styled-components';\n\n/**\n * Import custom types.\n */\nimport { TableColumn } from '../TableTypes';\nimport {StyledTableBodyRow, StyledTableFooterCollapseButton} from '../TableStyles';\nimport {act} from 'react-dom/test-utils';\n\ndescribe('<Table />', () => {\n it('Renders the Table', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { getByTestId } = render(<Table rows={rows} columns={columns} title=\"Test title\" />);\n expect(getByTestId('TestTable')).toBeDefined();\n });\n\n describe('Table Header Row Tests', () => {\n it('Should render table header row in case title is passed', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { queryByTestId } = render(<Table rows={rows} columns={columns} title=\"Test title\" />);\n expect(queryByTestId('TestTableHeaderRow')).not.toBeNull();\n });\n\n it('Should not render table header row in case title is passed', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { queryByTestId } = render(<Table rows={rows} columns={columns} />);\n expect(queryByTestId('TestTableHeaderRow')).toBeNull();\n });\n\n describe('Table Header Row functional tests', () => {\n it('Should have title', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { queryByTestId } = render(<Table rows={rows} columns={columns} title=\"Test Title\" />);\n const tableHeaderRow = queryByTestId('TestTableHeaderRow');\n expect(tableHeaderRow?.children[0].children[0].textContent).toContain('Test Title');\n });\n\n it('Should have options menu', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { queryByTestId } = render(<Table rows={rows} columns={columns} title=\"Test Title\" />);\n expect(queryByTestId('TestTableHeaderRow')?.getElementsByTagName('svg')).not.toBeNull();\n });\n });\n });\n\n describe('Table Column Header Row Tests', () => {\n it('Should render column header row', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { getByTestId } = render(<Table rows={rows} columns={columns} />);\n expect(getByTestId('TestTableColumnHeaderRow')).not.toBeNull();\n });\n\n it('Should render two columns in the column header row', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { getByTestId } = render(<Table rows={rows} columns={columns} />);\n expect(getByTestId('TestTableColumnHeaderRow').children.length).toEqual(2);\n });\n\n it('Should render correct column names in the column header row', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { getByTestId } = render(<Table rows={rows} columns={columns} />);\n expect(getByTestId('TestTableColumnHeaderRow').children[0].textContent).toEqual('Column 1');\n expect(getByTestId('TestTableColumnHeaderRow').children[1].textContent).toEqual('Column 2');\n });\n\n it('Should render columns without no-border class in the column header row, in case title is passed', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { getByTestId } = render(<Table rows={rows} columns={columns} title=\"test title\" />);\n expect(getByTestId('TestTableColumnHeaderRow').children[0].classList.contains('no-border')).toBe(false);\n expect(getByTestId('TestTableColumnHeaderRow').children[1].classList.contains('no-border')).toBe(false);\n });\n\n });\n\n describe('Table Body Row tests', () => {\n it('Should not render \"No Data\" row in case there are rows', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { queryByTestId } = render(<Table rows={rows} columns={columns} />);\n expect(queryByTestId('TestTableNoDataRow')).toBeNull();\n });\n\n it('Should render \"No Data\" row in case there are no rows', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [];\n const { queryByTestId } = render(<Table rows={rows} columns={columns} />);\n expect(queryByTestId('TestTableNoDataRow')).not.toBeNull();\n expect(queryByTestId('TestTableNoDataRow')?.textContent).toEqual('There are no rows to display');\n });\n\n it('Should render a data row with correct content for each row that is passed', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { getByTestId } = render(<Table rows={rows} columns={columns} />);\n expect(getByTestId('TestTableDataRow')).toBeDefined();\n expect(getByTestId('TestTableDataRow').children.length).toEqual(2);\n expect(getByTestId('TestTableDataRow').children[0].textContent).toEqual('Test content');\n expect(getByTestId('TestTableDataRow').children[1].textContent).toEqual('Test content 2');\n });\n });\n\n it('Should render footer row', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { getByTestId } = render(<Table rows={rows} columns={columns} />);\n expect(getByTestId('TestTableFooterRow')).toBeDefined();\n });\n\n describe('Table Accordion tests', () => {\n it('Should render collapse button when configured as accordion', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const wrapper = render(<Table rows={rows} columns={columns} accordion={true} collapsedRows={3}/>);\n\n expect(wrapper.container.querySelectorAll(`${StyledTableFooterCollapseButton}`)).toHaveLength(1);\n });\n\n it('Should not render all items when collapsed', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const wrapper = render(<Table rows={rows} columns={columns} accordion={true} collapsedRows={3}/>);\n\n expect(wrapper.container.querySelectorAll(`${StyledTableBodyRow}`)).toHaveLength(3);\n });\n\n it('Should render all items when not collapsed', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const wrapper = render(<Table rows={rows} columns={columns} accordion={true} collapsedRows={3}\n collapsed={false}/>);\n\n expect(wrapper.container.querySelectorAll(`${StyledTableBodyRow}`)).toHaveLength(4);\n });\n\n it('Should expand when show more button is clicked', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const wrapper = render(<Table rows={rows} columns={columns} accordion={true} collapsedRows={3}\n collapsed={true}/>);\n\n expect(wrapper.container.querySelectorAll(`${StyledTableBodyRow}`)).toHaveLength(3);\n\n act(() => {\n let button = wrapper.container.querySelectorAll(`${StyledTableFooterCollapseButton}`)[0] as HTMLButtonElement;\n button.click();\n })\n\n expect(wrapper.container.querySelectorAll(`${StyledTableBodyRow}`)).toHaveLength(4);\n });\n\n it('Should collapse when show less button is clicked', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const wrapper = render(<Table rows={rows} columns={columns} accordion={true} collapsedRows={3}\n collapsed={false}/>);\n\n expect(wrapper.container.querySelectorAll(`${StyledTableBodyRow}`)).toHaveLength(4);\n\n act(() => {\n let button = wrapper.container.querySelectorAll(`${StyledTableFooterCollapseButton}`)[0] as HTMLButtonElement;\n button.click();\n })\n\n expect(wrapper.container.querySelectorAll(`${StyledTableBodyRow}`)).toHaveLength(3);\n });\n });\n});\n"],"file":"Table.test.js"}
|
|
@@ -136,6 +136,10 @@ var DualFunctionButton = function DualFunctionButton(_ref) {
|
|
|
136
136
|
})), /*#__PURE__*/React.createElement(_Button.default, _extends({
|
|
137
137
|
variant: variant
|
|
138
138
|
}, renderProps, {
|
|
139
|
+
onKeyPress: function onKeyPress(e) {
|
|
140
|
+
if (isOpen) return;
|
|
141
|
+
if (e.key == 'Enter' || e.key == ' ') setFocused(0);
|
|
142
|
+
},
|
|
139
143
|
disabled: disabled,
|
|
140
144
|
type: type,
|
|
141
145
|
size: size,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/Button/DualFunctionButton.tsx"],"names":["ButtonsContainer","styled","div","props","size","Size","Large","Medium","DualFunctionButton","children","variant","type","width","testId","disabled","id","dropdownMenuValues","setDropdownMenuValues","dropdownCustomizationProps","loading","icon","onClick","renderProps","React","useState","isOpen","setIsOpen","focused","setFocused","dropdownContainerRef","useRef","selectedValues","setSelectedValues","itemsType"],"mappings":";;;;;;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAMA,gBAAgB,GAAGC,0BAAOC,GAAV,2OAUN,UAAAC,KAAK;AAAA,SAAIA,KAAK,CAACC,IAAN,IAAcC,YAAKC,KAAnB,GAA2B,UAA3B,GAAwCH,KAAK,CAACC,IAAN,IAAcC,YAAKE,MAAnB,GAA4B,UAA5B,GAAyC,UAArF;AAAA,CAVC,CAAtB;;AAwBA,IAAMC,kBAA4D,GAAG,SAA/DA,kBAA+D,OAa/D;AAAA,2BAZJC,QAYI;AAAA,MAZJA,QAYI,8BAZO,gBAYP;AAAA,0BAXJC,OAWI;AAAA,MAXJA,OAWI,6BAXM,SAWN;AAAA,uBAVJC,IAUI;AAAA,MAVJA,IAUI,0BAVG,QAUH;AAAA,uBATJP,IASI;AAAA,MATJA,IASI,0BATGC,YAAKE,MASR;AAAA,wBARJK,KAQI;AAAA,MARJA,KAQI,2BARI,MAQJ;AAAA,MAPJC,MAOI,QAPJA,MAOI;AAAA,MANJC,QAMI,QANJA,QAMI;AAAA,MALJC,EAKI,QALJA,EAKI;AAAA,MAJJC,kBAII,QAJJA,kBAII;AAAA,MAHJC,qBAGI,QAHJA,qBAGI;AAAA,MAFJC,0BAEI,QAFJA,0BAEI;AAAA,MADDf,KACC;;AACJ;AACA,MAAQgB,OAAR,GAAmDhB,KAAnD,CAAQgB,OAAR;AAAA,MAAiBC,IAAjB,GAAmDjB,KAAnD,CAAiBiB,IAAjB;AAAA,MAAuBC,OAAvB,GAAmDlB,KAAnD,CAAuBkB,OAAvB;AAAA,MAAmCC,WAAnC,4BAAmDnB,KAAnD;;AACA,wBAA4BoB,KAAK,CAACC,QAAN,CAAwB,KAAxB,CAA5B;AAAA;AAAA,MAAOC,MAAP;AAAA,MAAeC,SAAf;;AACA,yBAA8BH,KAAK,CAACC,QAAN,CAA8B,IAA9B,CAA9B;AAAA;AAAA,MAAOG,OAAP;AAAA,MAAgBC,UAAhB;;AACA,MAAMC,oBAAoB,GAAGN,KAAK,CAACO,MAAN,CAA6B,IAA7B,CAA7B;;AACA,yBAA4CP,KAAK,CAACC,QAAN,CAAyB,EAAzB,CAA5C;AAAA;AAAA,MAAOO,cAAP;AAAA,MAAuBC,iBAAvB;;
|
|
1
|
+
{"version":3,"sources":["../../../src/Button/DualFunctionButton.tsx"],"names":["ButtonsContainer","styled","div","props","size","Size","Large","Medium","DualFunctionButton","children","variant","type","width","testId","disabled","id","dropdownMenuValues","setDropdownMenuValues","dropdownCustomizationProps","loading","icon","onClick","renderProps","React","useState","isOpen","setIsOpen","focused","setFocused","dropdownContainerRef","useRef","selectedValues","setSelectedValues","itemsType","e","key"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { LoadingIndicator } from '../LoadingIndicator';\nimport Button, { ButtonProps } from './Button'\nimport { ArrowDropDown, ArrowDropUp } from '../icons/systemicons/SystemIcons';\nimport { Dropdown } from '../Dropdown/CommonStyling';\nimport { Size } from '../types';\nimport DropdownContent, { DropdownCustomizationProps } from '../Dropdown/DropdownContent';\nimport styled from 'styled-components';\n\nconst ButtonsContainer = styled.div<{ size?: Size }>`\n display: flex;\n align-items: center;\n\n button:first-child {\n margin-right: 2px;\n }\n\n div.button-content {\n gap: 0px;\n padding: ${ props => props.size == Size.Large ? '4px 18px' : props.size == Size.Medium ? '4px 14px' : '4px 10px' };\n }\n`;\n\nexport interface ButtonOption {\n label: string;\n}\n\nexport interface DualButtonProps extends ButtonProps {\n dropdownCustomizationProps: DropdownCustomizationProps;\n dropdownMenuValues?: string[];\n setDropdownMenuValues?: (values: string[]) => void | boolean | undefined;\n}\n\nconst DualFunctionButton: React.FunctionComponent<DualButtonProps> = ({\n children = 'Primary Button',\n variant = 'primary',\n type = 'button',\n size = Size.Medium,\n width = 'auto',\n testId,\n disabled,\n id,\n dropdownMenuValues,\n setDropdownMenuValues,\n dropdownCustomizationProps,\n ...props\n}) => {\n // Let's filter out properties that we don't need to render.\n const { loading, icon, onClick, ...renderProps } = props;\n const [isOpen, setIsOpen] = React.useState<boolean>(false);\n const [focused, setFocused] = React.useState<number | null>(null);\n const dropdownContainerRef = React.useRef<HTMLDivElement>(null);\n const [selectedValues, setSelectedValues] = React.useState<string[]>([]);\n\n return <ButtonsContainer ref={dropdownContainerRef} size={size}>\n <Dropdown isButton={true} locked={false} disabled={false} margin=''>\n <Button\n {...renderProps}\n onClick={onClick}\n disabled={disabled}\n type={type}\n loading={loading}\n icon={icon}\n size={size}\n width={width}\n variant={variant}\n flatEdge=\"right\">\n {children}\n </Button>\n <DropdownContent\n customizationProps={dropdownCustomizationProps}\n filter=''\n selectedValues={dropdownCustomizationProps.itemsType == 'normal' ? [] : (dropdownMenuValues ?? selectedValues)}\n setSelectedValues={setDropdownMenuValues ? setDropdownMenuValues : setSelectedValues}\n isButton={true}\n setIsOpen={setIsOpen}\n focused={focused}\n setFocused={setFocused}\n hideOnClickOutside={true}\n size={size}\n isOpen={isOpen}\n id={id ?? 'dropdownId'}\n messageOnNoResults=''\n alignLeft={true} />\n </Dropdown>\n <Button variant={variant}\n {...renderProps}\n onKeyPress={(e:any) => {\n if(isOpen)\n return;\n\n if (e.key == 'Enter' || e.key == ' ')\n setFocused(0); \n }}\n\n disabled={disabled}\n type={type}\n size={size}\n minWidth={'unset'}\n onClick={() => setIsOpen(!isOpen)}\n icon={isOpen ? <ArrowDropUp size=\"16px\" /> : <ArrowDropDown size=\"16px\"/>}\n flatEdge=\"left\" />\n </ButtonsContainer>;\n };\n\n\nexport default DualFunctionButton;\n"],"file":"DualFunctionButton.js"}
|
|
@@ -191,16 +191,16 @@ var DropdownContent = function DropdownContent(_ref) {
|
|
|
191
191
|
|
|
192
192
|
if (focusedNow !== undefined && focusedNow !== null && focusedNow > 0) {
|
|
193
193
|
var filtered = getFilteredItems();
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
194
|
+
if (focusedNow == 1 && haveTopItem()) focusedNow = 0;else {
|
|
195
|
+
for (var i = focusedNow - 1; i > 0; i--) {
|
|
196
|
+
var _filtered;
|
|
197
|
+
|
|
198
|
+
if (!((_filtered = filtered[i - 1]) !== null && _filtered !== void 0 && _filtered.disabled)) {
|
|
199
|
+
focusedNow = i;
|
|
200
|
+
break;
|
|
201
|
+
}
|
|
201
202
|
}
|
|
202
203
|
}
|
|
203
|
-
|
|
204
204
|
setNewFocusedElement(focusedNow);
|
|
205
205
|
}
|
|
206
206
|
} else if (e.keyCode === 40) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/Dropdown/DropdownContent.tsx"],"names":["DDContainer","styled","div","COLORS","white","props","width","Z_INDEXES","dropdown","isButton","alignLeft","ButtonDropdownContentStyling","neutral_100","size","Size","Large","Medium","scrollable","maxHeight","ItemsContainer","hover","active","focus","ListContainer","itemsType","neutral_600","neutral_500","MenuContentContainer","ComponentTextStyle","Bold","Small","Regular","DividerContainer","TopItemContainer","neutral_200","ActionButtonContainer","MAX_MENU_HEIGHT","AVG_OPTION_HEIGHT","DropdownContent","id","customizationProps","isOpen","hideOnClickOutside","setIsOpen","filter","focused","setFocused","selectedValues","setSelectedValues","messageOnNoResults","React","useState","isUp","setIsUp","dropdownContentRef","useRef","itemsListRef","determineDropUp","options","items","node","current","windowHeight","window","innerHeight","menuHeight","Math","min","length","instOffsetWithMenu","getBoundingClientRect","top","setNewFocusedElement","index","newFocusedElement","elRefs","getFilteredItems","filtrationString","toUpperCase","x","value","includes","displayLabel","handleKeyDown","e","keyCode","preventDefault","focusedNow","undefined","filtered","i","disabled","haveTopItem","document","getElementById","handleClickOutside","contains","target","some","useEffect","addEventListener","removeEventListener","scrollPosition","handleScroll","scrollTop","getCorrectRef","ref","arrLength","setElRefs","Array","fill","map","_","multiSelect","getSuggestions","suggestion","useLayoutEffect","focusThis","handleItemClick","selected","item","newValue","onValueUpdate","getTopItem","pinTopItem","visibleItems","allSelected","y","showTopItem","suggestions","find","c","selectedFirst","newValues","icon","noteLabel","fontSize","getElements","number","customContent","showDividerAbove","join","menuContent","action","actionLabel","actionIcon","actionLoading","actionDisabled","actionVariant"],"mappings":"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","sourcesContent":["import React, { useLayoutEffect, useMemo, createRef } from 'react';\nimport styled, { css } from 'styled-components';\nimport { CommonInteractionStyling } from '../common';\nimport Button from '../Button/Button';\nimport { Size } from '../types';\nimport { ButtonDropdownContentStyling, DropdownButtonCSS } from './CommonStyling';\nimport { ComponentLStyling, ComponentXLStyling, ComponentMStyling, ComponentSStyling, ComponentTextStyle } from '../styles/typography';\nimport { COLORS } from '../styles';\nimport { Checkbox, RadioButton } from '../InputFields';\nimport {Z_INDEXES} from '../styles/z-indexes';\n\nexport const DDContainer = styled.div<{ isButton: boolean; width?: string; alignLeft?: boolean; size?: Size; scrollable?: boolean; maxHeight?: string }>`\n display: none;\n position: absolute;\n background-color: ${COLORS.white};\n\n width: ${(props) => (props.width ? props.width : '100%')};\n z-index: ${Z_INDEXES.dropdown};\n margin: ${(props) => (props.isButton ? '-4px' : '4px 0px')};\n\n &.show {\n display: flex;\n flex-direction: column;\n justify-content: center;\n }\n\n &.up {\n top: auto;\n bottom: 100%;\n }\n\n ${(props) => (props.alignLeft ? 'left: 0px;' : '')}\n\n ${(props) => (props.isButton ? ButtonDropdownContentStyling : '')};\n\n border: 1px solid ${COLORS.neutral_100};\n box-sizing: border-box;\n box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15);\n padding-top: 4px;\n padding-right: 0px;\n padding-bottom: 4px;\n padding-left: 0px;\n\n min-width: ${(props) => (props.size == Size.Large ? '320px' : props.size == Size.Medium ? '280px' : '240px')};\n border-radius: ${(props) => (props.size == Size.Large ? '10px' : props.size == Size.Medium ? '8px' : '6px')};\n\n max-height: ${(props) => (!props.scrollable ? 'auto' : props.maxHeight ? props.maxHeight : props.size == Size.Large ? '320px' : props.size == Size.Medium ? '280px' : '240px')};\n`;\n\nconst ItemsContainer = styled.div<{size? : Size}>`\n > *:hover {\n z-index: ${Z_INDEXES.hover};\n }\n > *:active,\n > *.active{\n z-index: ${Z_INDEXES.active};\n }\n > *:focus {\n z-index: ${Z_INDEXES.focus};\n }\n \n button.dropdownButton {\n ${props => DropdownButtonCSS(props.size)}\n }`;\n \nconst ListContainer = styled.div<{ scrollable?: boolean; size?: Size; itemsType?: string }>`\n ${(props) => (props.scrollable ? 'overflow-y: scroll;' : '')}\n ${(props) => (props.itemsType != 'normal' ? 'margin-left: 4px;' : '')}\n\n\n div.divider {\n display: block;\n width: calc(100% - 40px);\n margin-left: 16px;\n border-top: 1px solid #e5e5e5;\n position: absolute;\n top: 0px;\n }\n\n ${ItemsContainer} {\n padding-top: ${props => props.size == Size.Large ? '8px' : props.size == Size.Medium ? '4px' : '0px' };\n padding-bottom: ${props => props.size == Size.Large ? '8px' : props.size == Size.Medium ? '4px' : '0px' };\n }\n\n /* width */\n ::-webkit-scrollbar {\n width: 4px;\n margin: 0 6px;\n cursor: pointer;\n }\n\n /* Track */\n ::-webkit-scrollbar-track {\n background: ${COLORS.neutral_100};\n border-radius: 8px;\n }\n\n /* Handle */\n ::-webkit-scrollbar-thumb {\n background: ${COLORS.neutral_600};\n border-radius: 8px;\n }\n\n /* Handle on hover */\n ::-webkit-scrollbar-thumb:hover {\n background: ${COLORS.neutral_500};\n }\n`;\n\n\nconst MenuContentContainer = styled.div<{size? : Size}>`\n h1, h2, h3 {\n margin-block-start: 0px;\n margin-block-end: 0px;\n ${props => props.size == Size.Large && ComponentXLStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n ${props => props.size == Size.Medium && ComponentLStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n ${props => (props.size == Size.Small || !props.size) && ComponentMStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n padding: ${props => props.size == Size.Small || !props.size ? '10px 16px 6px' :\n props.size == Size.Medium ? '16px 24px 8px' : '16px 32px 8px'};\n }\n\n p {\n margin-block-start: 0px;\n margin-block-end: 0px;\n ${props => props.size == Size.Large && ComponentLStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n ${props => props.size == Size.Medium && ComponentMStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n ${props => (props.size == Size.Small || !props.size) && ComponentSStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n padding: ${props => props.size == Size.Small || !props.size ? '8px 16px' :\n props.size == Size.Medium ? '12px 24px' : '16px 32px'};\n }\n`;\n\nconst DividerContainer = styled.div<{size? : Size}>`\n position: relative;\n\n margin-top: ${props => props.size == Size.Large ? '16px' : \n props.size == Size.Medium ? '12px' : \n (props.size == Size.Small || !props.size) ? '8px' : '6px'};\n\n div.divider {\n width: 100%;\n margin: 0px;\n }\n`;\n\nconst TopItemContainer = styled.div<{size?:Size}>`\n border-bottom-style: solid;\n border-bottom-color: ${COLORS.neutral_200};\n border-bottom-width: 1px;\n margin-right: 22px;\n\n button {\n ${props => DropdownButtonCSS(props.size)}\n }\n`;\n\nconst ActionButtonContainer = styled.div<{size?:Size}>`\n border-top-style: solid;\n border-top-color: ${COLORS.neutral_200};\n border-top-width: 1px;\n \n padding: ${props => props.size == Size.Small || !props.size ? '0px 16px' : '8px 16px'};\n\n button {\n width: 100%;\n }\n`;\n\nconst MAX_MENU_HEIGHT = 240;\nconst AVG_OPTION_HEIGHT = 48;\n\nexport interface DropdownItem {\n value: string;\n displayLabel?: string;\n noteLabel?: string;\n suggestion?: boolean;\n showDividerAbove?: boolean;\n disabled?: boolean;\n icon?: React.ReactNode;\n customContent?: React.ReactNode;\n}\n\nexport interface DropdownCustomizationProps {\n itemsType?: 'radio' | 'checkbox' | 'normal';\n menuContent?: React.ReactNode;\n scrollable?: boolean;\n multiSelect?: boolean;\n maxHeight?: string;\n actionLabel?: string;\n actionVariant?: 'primary' | 'secondary' | 'tertiary' | undefined;\n actionIcon?: React.ReactNode;\n actionLoading?: boolean;\n actionDisabled?: boolean;\n action: () => boolean | void | undefined;\n pinTopItem?: boolean;\n onValueUpdate: (values: string[]) => boolean | void | undefined;\n items: DropdownItem[];\n}\n\nexport interface DropdownProps {\n isButton: boolean;\n customizationProps: DropdownCustomizationProps;\n alignLeft?: boolean;\n isOpen: boolean;\n setIsOpen: (open: boolean) => void;\n size?: Size;\n id: string;\n filter: string;\n width?: string;\n hideOnClickOutside: boolean;\n selectedValues: string[];\n setSelectedValues: (val: string[]) => void;\n messageOnNoResults: string;\n focused: number | null;\n setFocused: (focused: number | null) => void;\n}\n\nconst DropdownContent: React.FunctionComponent<DropdownProps> = ({\n id,\n customizationProps,\n alignLeft,\n isButton,\n size,\n isOpen,\n hideOnClickOutside,\n width,\n setIsOpen,\n filter,\n focused,\n setFocused,\n selectedValues,\n setSelectedValues,\n messageOnNoResults,\n}) => {\n const [isUp, setIsUp] = React.useState<boolean>(false);\n const dropdownContentRef = React.useRef<HTMLDivElement>(null);\n\n if (!customizationProps.itemsType) customizationProps.itemsType = 'normal';\n if (!size) size = Size.Small;\n\n const itemsListRef = React.useRef<HTMLDivElement>(null);\n\n const determineDropUp = () => {\n const options = customizationProps.items;\n const node = dropdownContentRef.current;\n\n if (!node) return;\n\n const windowHeight = window.innerHeight;\n const menuHeight = Math.min(MAX_MENU_HEIGHT, options.length * AVG_OPTION_HEIGHT);\n const instOffsetWithMenu = node.getBoundingClientRect().top + menuHeight;\n setIsUp(instOffsetWithMenu >= windowHeight);\n };\n\n const setNewFocusedElement = (index: number) => {\n const newFocusedElement = elRefs[index];\n if (newFocusedElement) {\n setFocused(index);\n newFocusedElement?.current?.focus();\n }\n };\n\n const getFilteredItems = () => {\n const filtrationString = (filter ?? '').toUpperCase();\n return customizationProps.items.filter((x) => x?.value?.toUpperCase().includes(filtrationString) || x?.displayLabel?.toUpperCase().includes(filtrationString));\n };\n\n const handleKeyDown = (e: any) => {\n if (isOpen) {\n if (e.keyCode === 38) {\n e.preventDefault();\n var focusedNow = focused;\n if (focusedNow !== undefined && focusedNow !== null && focusedNow > 0) {\n const filtered = getFilteredItems();\n for (let i = focusedNow - 1; i > 0; i--) {\n if (!filtered[i - 1]?.disabled) {\n focusedNow = i;\n break;\n }\n }\n setNewFocusedElement(focusedNow);\n }\n } else if (e.keyCode === 40) {\n e.preventDefault();\n var focusedNow = focused;\n if (focusedNow !== undefined && focusedNow !== null) {\n const filtered = getFilteredItems();\n for (let i = focusedNow + 1; i <= filtered.length; i++) {\n if (!filtered[i - 1]?.disabled) {\n focusedNow = i;\n break;\n }\n }\n } else {\n focusedNow = haveTopItem() ? 0 : 1;\n }\n setNewFocusedElement(focusedNow);\n } else if (e.keyCode === 9) {\n e.preventDefault();\n var focusedNow = focused;\n if (focusedNow !== undefined && focusedNow !== null) {\n focusedNow++;\n const newFocusedElement = document.getElementById(`${id}_${focusedNow}`);\n if (!newFocusedElement) {\n setNewFocusedElement(0);\n } else {\n setNewFocusedElement(focusedNow);\n }\n } else {\n setFocused(null);\n }\n } else if (e.keyCode === 27) {\n setIsOpen(false);\n setFocused(null);\n\n //TODO: add onEscapehandler\n /*\n if (!list.includes(input)) {\n setInput('');\n setPlaceholderSearch(placeholder || '');\n }\n styledFieldRef.current?.focus(); */\n }\n }\n };\n\n const handleClickOutside = (e: any) => {\n if (hideOnClickOutside && dropdownContentRef?.current && !dropdownContentRef.current.contains(e.target) && !elRefs.some((x) => x?.current?.contains(e.target))) {\n if (isOpen) {\n setIsOpen(false);\n setFocused(null);\n }\n }\n };\n\n React.useEffect(() => {\n document.addEventListener('keydown', handleKeyDown);\n document.addEventListener('click', handleClickOutside);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n document.removeEventListener('click', handleClickOutside);\n };\n });\n\n const scrollPosition = React.useRef<number | undefined>(0);\n const handleScroll = () => {\n scrollPosition.current = itemsListRef.current?.scrollTop;\n };\n useLayoutEffect(() => {\n if (itemsListRef.current) itemsListRef.current.scrollTop = scrollPosition.current ?? 0;\n }, [selectedValues]);\n\n const getCorrectRef = (ref: React.RefObject<HTMLElement>): React.RefObject<HTMLElement> => {\n switch (customizationProps.itemsType) {\n case 'normal':\n return (ref as React.RefObject<HTMLButtonElement>) || createRef<HTMLButtonElement>();\n default:\n return (ref as React.RefObject<HTMLDivElement>) || createRef<HTMLDivElement>();\n }\n };\n\n const arrLength = getFilteredItems().length;\n const [elRefs, setElRefs] = React.useState<React.RefObject<HTMLElement>[]>([]);\n\n React.useEffect(() => {\n setElRefs((elRefs) =>\n Array(arrLength + 1)\n .fill(null)\n .map((_, i) => getCorrectRef(elRefs[i])),\n );\n }, [isOpen, arrLength, selectedValues]);\n\n React.useEffect(() => {\n determineDropUp();\n }, [isOpen]);\n\n const haveTopItem = () => {\n if (customizationProps.itemsType == 'radio' && selectedValues && selectedValues?.length > 0) return true;\n else if (customizationProps.itemsType == 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) return true;\n else if (customizationProps.itemsType == 'normal' && getSuggestions()?.length > 0) return true;\n return false;\n };\n\n const getSuggestions = () => {\n return getFilteredItems().filter((x) => x.suggestion);\n };\n\n React.useLayoutEffect(() => {\n if (isOpen && (focused || focused == 0)) {\n const focusThis = focused == 0 && !haveTopItem() ? 1 : focused;\n if (focusThis != focused) setFocused(focusThis);\n const newFocusedElement = elRefs[focusThis];\n newFocusedElement?.current?.focus();\n } else setFocused(null); //if the dropdown is closed, we don't to keep saved the focused item\n }, [isOpen]);\n\n const handleItemClick = (selected: boolean, item: DropdownItem) => {\n let newValue: string[] = [];\n if (customizationProps.multiSelect) {\n if (selected) newValue = [...selectedValues, item.value];\n else newValue = selectedValues.filter((x) => x != item.value);\n } else newValue = selected ? [item.value] : [];\n\n setSelectedValues(newValue);\n if(customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValue))\n setIsOpen(false);\n };\n\n const getTopItem = () => {\n if (!customizationProps.pinTopItem) return;\n const visibleItems = getFilteredItems();\n const allSelected = selectedValues?.filter((x) => visibleItems.some((y) => y.value == x)).length == visibleItems.length;\n let showTopItem = false;\n const suggestions = getSuggestions();\n const displayLabel = selectedValues[0] ? customizationProps.items?.find((c) => c.value === selectedValues[0])?.displayLabel : undefined;\n if (customizationProps.itemsType == 'radio' && selectedValues && selectedValues?.length > 0) showTopItem = true;\n else if (customizationProps.itemsType == 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) showTopItem = true;\n else if (customizationProps.itemsType == 'normal' && suggestions.length > 0) showTopItem = true;\n\n if (!showTopItem) return;\n\n const selectedFirst = selectedValues.length > 0 ? visibleItems.find(x => x.value == selectedValues[0]) : null;\n \n return (\n <TopItemContainer size={size}>\n {customizationProps.itemsType == 'radio' && (\n <RadioButton\n ref={elRefs[0] as React.RefObject<HTMLDivElement>}\n iconPointerEventsTransparent={true}\n select={() => {}} label={selectedFirst?.displayLabel ?? selectedFirst?.value} \n size={size}\n id={`${id}_topitem`}\n selected={true}\n />\n )}\n {customizationProps.itemsType == 'checkbox' && (\n <Checkbox\n ref={elRefs[0] as React.RefObject<HTMLDivElement>}\n select={(selected: boolean) => {\n if (!customizationProps.multiSelect) return;\n\n const newValues = selected ? visibleItems.map((x) => x.value) : [];\n setSelectedValues(newValues);\n if(customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValues))\n setIsOpen(false);\n }}\n iconPointerEventsTransparent={true}\n semiSelected={customizationProps.multiSelect && !allSelected && selectedValues?.length > 0}\n size={size}\n id={`${id}_checkbox_selectall`}\n label={customizationProps.multiSelect ? 'Select all' : (selectedFirst?.displayLabel ?? selectedFirst?.value)}\n selected={!customizationProps.multiSelect || allSelected}\n />\n )}\n {customizationProps.itemsType == 'normal' && (\n <>\n {suggestions.map((x) => (\n <button\n ref={elRefs[0] as React.RefObject<HTMLButtonElement>}\n type=\"button\"\n id={`${id}_topitem`}\n key={`${id}_topitem_${x.value}`}\n onClick={(e: any) => {\n customizationProps.onValueUpdate([x.value]);\n setSelectedValues([x.value]);\n setIsOpen(false);\n setFocused(null);\n }}>\n <div className=\"item-content\">\n {x?.icon && <div className=\"item-icon\">{x?.icon}</div>}\n <div className=\"item-label\">\n {x?.displayLabel ?? x?.value}\n {x?.noteLabel && <div style={{ fontSize: '12px' }}>{x.noteLabel}</div>}\n </div>\n </div>\n </button>))}\n </>\n )}\n </TopItemContainer>\n );\n };\n\n const getElements = () => {\n if (getFilteredItems().length === 0) {\n return (\n <ItemsContainer size={size}>\n <button className=\"dropdownButton\" disabled>\n <span>{messageOnNoResults}</span>\n </button>\n </ItemsContainer>\n );\n }\n let number = 0;\n return (\n <ItemsContainer size={size}>\n {getFilteredItems()\n .filter((x) => x && (customizationProps.itemsType != 'normal' || !x.suggestion))\n .map((item) => {\n return (\n <React.Fragment key={`key_${id}_${item.value}`}>\n {item.customContent}\n {!item.customContent && customizationProps.itemsType == 'radio' && (\n <RadioButton\n select={(selected:boolean) => handleItemClick(selected, item)}\n ref={elRefs[number + 1] as React.RefObject<HTMLDivElement>}\n size={size}\n iconPointerEventsTransparent={true}\n disabled={item?.disabled}\n key={`key_${id}_${number++}`}\n id={`${id}_${number + 1}`}\n label={item.displayLabel ?? item.value}\n selected={selectedValues?.includes(item.value)}\n />\n )}\n {!item.customContent && customizationProps.itemsType == 'checkbox' && (\n <Checkbox\n select={(selected:boolean) => handleItemClick(selected, item)}\n iconPointerEventsTransparent={true}\n disabled={item?.disabled}\n ref={elRefs[number + 1] as React.RefObject<HTMLDivElement>}\n size={size}\n key={`key_${id}_${number++}`}\n id={`${id}_${number + 1}`}\n label={item.displayLabel ?? item.value}\n selected={selectedValues?.includes(item.value)}\n />\n )}\n {!item.customContent && (customizationProps.itemsType == 'normal' || !customizationProps.itemsType) && (\n <button\n type=\"button\"\n disabled={item?.disabled}\n ref={elRefs[number + 1] as React.RefObject<HTMLButtonElement>}\n onClick={(e: any) => {\n customizationProps.onValueUpdate([item.value]);\n setSelectedValues([item.value]);\n setIsOpen(false);\n setFocused(null);\n }}\n className={ 'dropdownButton ' + (item.showDividerAbove ? 'show-divider-above' : '') + ' ' + (selectedValues?.includes(item.value) ? 'active' : '')}\n key={`key_${id}_${number++}`}\n id={`${id}_${number + 1}`}>\n {item.showDividerAbove && <div className=\"divider\" />}\n <div className=\"item-content\">\n {item.icon && <div className=\"item-icon\">{item.icon}</div>}\n <div className=\"item-label\">\n {item.displayLabel ?? item.value}\n {item.noteLabel && <div style={{ fontSize: '12px' }}>{item.noteLabel}</div>}\n </div>\n </div>\n </button>\n )}\n </React.Fragment>\n );\n })}\n </ItemsContainer>\n );\n };\n\n return (\n <DDContainer\n ref={dropdownContentRef}\n size={size}\n width={width}\n isButton={isButton}\n alignLeft={alignLeft}\n scrollable={customizationProps.scrollable}\n maxHeight={customizationProps.maxHeight}\n className={[isOpen && 'show', isUp && 'up'].filter((e) => !!e).join(' ')}>\n <ListContainer size={size} itemsType={customizationProps.itemsType} onScroll={handleScroll} ref={itemsListRef} scrollable={customizationProps.scrollable}>\n {customizationProps.menuContent &&\n <MenuContentContainer size={size}>\n {customizationProps.menuContent}\n <DividerContainer size={size}>\n <div className=\"divider\" />\n </DividerContainer>\n </MenuContentContainer>}\n {customizationProps.pinTopItem && getTopItem()}\n {getElements()}\n </ListContainer>\n {customizationProps.action && customizationProps.actionLabel && (\n <ActionButtonContainer size={size}>\n <Button width=\"100%\" icon={customizationProps.actionIcon}\n loading={customizationProps.actionLoading}\n disabled={customizationProps.actionDisabled}\n variant={customizationProps.actionVariant ?? 'primary'}\n size={size} onClick={() => \n {\n if(customizationProps.action()) //closing the dropdown if action returns 'true'\n setIsOpen(false);\n }}>\n {customizationProps.actionLabel}\n </Button>\n </ActionButtonContainer>\n )}\n </DDContainer>\n );\n /* ),\n {\n handleClickOutside: () => () => {\n if (isOpen) {\n setIsOpen(false);\n setFocused(null);\n }\n },\n },\n );\n\n return <Wrapped />; */\n};\n\nexport default DropdownContent;\n"],"file":"DropdownContent.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/Dropdown/DropdownContent.tsx"],"names":["DDContainer","styled","div","COLORS","white","props","width","Z_INDEXES","dropdown","isButton","alignLeft","ButtonDropdownContentStyling","neutral_100","size","Size","Large","Medium","scrollable","maxHeight","ItemsContainer","hover","active","focus","ListContainer","itemsType","neutral_600","neutral_500","MenuContentContainer","ComponentTextStyle","Bold","Small","Regular","DividerContainer","TopItemContainer","neutral_200","ActionButtonContainer","MAX_MENU_HEIGHT","AVG_OPTION_HEIGHT","DropdownContent","id","customizationProps","isOpen","hideOnClickOutside","setIsOpen","filter","focused","setFocused","selectedValues","setSelectedValues","messageOnNoResults","React","useState","isUp","setIsUp","dropdownContentRef","useRef","itemsListRef","determineDropUp","options","items","node","current","windowHeight","window","innerHeight","menuHeight","Math","min","length","instOffsetWithMenu","getBoundingClientRect","top","setNewFocusedElement","index","newFocusedElement","elRefs","getFilteredItems","filtrationString","toUpperCase","x","value","includes","displayLabel","handleKeyDown","e","keyCode","preventDefault","focusedNow","undefined","filtered","haveTopItem","i","disabled","document","getElementById","handleClickOutside","contains","target","some","useEffect","addEventListener","removeEventListener","scrollPosition","handleScroll","scrollTop","getCorrectRef","ref","arrLength","setElRefs","Array","fill","map","_","multiSelect","getSuggestions","suggestion","useLayoutEffect","focusThis","handleItemClick","selected","item","newValue","onValueUpdate","getTopItem","pinTopItem","visibleItems","allSelected","y","showTopItem","suggestions","find","c","selectedFirst","newValues","icon","noteLabel","fontSize","getElements","number","customContent","showDividerAbove","join","menuContent","action","actionLabel","actionIcon","actionLoading","actionDisabled","actionVariant"],"mappings":"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","sourcesContent":["import React, { useLayoutEffect, useMemo, createRef } from 'react';\nimport styled, { css } from 'styled-components';\nimport { CommonInteractionStyling } from '../common';\nimport Button from '../Button/Button';\nimport { Size } from '../types';\nimport { ButtonDropdownContentStyling, DropdownButtonCSS } from './CommonStyling';\nimport { ComponentLStyling, ComponentXLStyling, ComponentMStyling, ComponentSStyling, ComponentTextStyle } from '../styles/typography';\nimport { COLORS } from '../styles';\nimport { Checkbox, RadioButton } from '../InputFields';\nimport {Z_INDEXES} from '../styles/z-indexes';\n\nexport const DDContainer = styled.div<{ isButton: boolean; width?: string; alignLeft?: boolean; size?: Size; scrollable?: boolean; maxHeight?: string }>`\n display: none;\n position: absolute;\n background-color: ${COLORS.white};\n\n width: ${(props) => (props.width ? props.width : '100%')};\n z-index: ${Z_INDEXES.dropdown};\n margin: ${(props) => (props.isButton ? '-4px' : '4px 0px')};\n\n &.show {\n display: flex;\n flex-direction: column;\n justify-content: center;\n }\n\n &.up {\n top: auto;\n bottom: 100%;\n }\n\n ${(props) => (props.alignLeft ? 'left: 0px;' : '')}\n\n ${(props) => (props.isButton ? ButtonDropdownContentStyling : '')};\n\n border: 1px solid ${COLORS.neutral_100};\n box-sizing: border-box;\n box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15);\n padding-top: 4px;\n padding-right: 0px;\n padding-bottom: 4px;\n padding-left: 0px;\n\n min-width: ${(props) => (props.size == Size.Large ? '320px' : props.size == Size.Medium ? '280px' : '240px')};\n border-radius: ${(props) => (props.size == Size.Large ? '10px' : props.size == Size.Medium ? '8px' : '6px')};\n\n max-height: ${(props) => (!props.scrollable ? 'auto' : props.maxHeight ? props.maxHeight : props.size == Size.Large ? '320px' : props.size == Size.Medium ? '280px' : '240px')};\n`;\n\nconst ItemsContainer = styled.div<{size? : Size}>`\n > *:hover {\n z-index: ${Z_INDEXES.hover};\n }\n > *:active,\n > *.active{\n z-index: ${Z_INDEXES.active};\n }\n > *:focus {\n z-index: ${Z_INDEXES.focus};\n }\n \n button.dropdownButton {\n ${props => DropdownButtonCSS(props.size)}\n }`;\n \nconst ListContainer = styled.div<{ scrollable?: boolean; size?: Size; itemsType?: string }>`\n ${(props) => (props.scrollable ? 'overflow-y: scroll;' : '')}\n ${(props) => (props.itemsType != 'normal' ? 'margin-left: 4px;' : '')}\n\n\n div.divider {\n display: block;\n width: calc(100% - 40px);\n margin-left: 16px;\n border-top: 1px solid #e5e5e5;\n position: absolute;\n top: 0px;\n }\n\n ${ItemsContainer} {\n padding-top: ${props => props.size == Size.Large ? '8px' : props.size == Size.Medium ? '4px' : '0px' };\n padding-bottom: ${props => props.size == Size.Large ? '8px' : props.size == Size.Medium ? '4px' : '0px' };\n }\n\n /* width */\n ::-webkit-scrollbar {\n width: 4px;\n margin: 0 6px;\n cursor: pointer;\n }\n\n /* Track */\n ::-webkit-scrollbar-track {\n background: ${COLORS.neutral_100};\n border-radius: 8px;\n }\n\n /* Handle */\n ::-webkit-scrollbar-thumb {\n background: ${COLORS.neutral_600};\n border-radius: 8px;\n }\n\n /* Handle on hover */\n ::-webkit-scrollbar-thumb:hover {\n background: ${COLORS.neutral_500};\n }\n`;\n\n\nconst MenuContentContainer = styled.div<{size? : Size}>`\n h1, h2, h3 {\n margin-block-start: 0px;\n margin-block-end: 0px;\n ${props => props.size == Size.Large && ComponentXLStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n ${props => props.size == Size.Medium && ComponentLStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n ${props => (props.size == Size.Small || !props.size) && ComponentMStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n padding: ${props => props.size == Size.Small || !props.size ? '10px 16px 6px' :\n props.size == Size.Medium ? '16px 24px 8px' : '16px 32px 8px'};\n }\n\n p {\n margin-block-start: 0px;\n margin-block-end: 0px;\n ${props => props.size == Size.Large && ComponentLStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n ${props => props.size == Size.Medium && ComponentMStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n ${props => (props.size == Size.Small || !props.size) && ComponentSStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n padding: ${props => props.size == Size.Small || !props.size ? '8px 16px' :\n props.size == Size.Medium ? '12px 24px' : '16px 32px'};\n }\n`;\n\nconst DividerContainer = styled.div<{size? : Size}>`\n position: relative;\n\n margin-top: ${props => props.size == Size.Large ? '16px' : \n props.size == Size.Medium ? '12px' : \n (props.size == Size.Small || !props.size) ? '8px' : '6px'};\n\n div.divider {\n width: 100%;\n margin: 0px;\n }\n`;\n\nconst TopItemContainer = styled.div<{size?:Size}>`\n border-bottom-style: solid;\n border-bottom-color: ${COLORS.neutral_200};\n border-bottom-width: 1px;\n margin-right: 22px;\n\n button {\n ${props => DropdownButtonCSS(props.size)}\n }\n`;\n\nconst ActionButtonContainer = styled.div<{size?:Size}>`\n border-top-style: solid;\n border-top-color: ${COLORS.neutral_200};\n border-top-width: 1px;\n \n padding: ${props => props.size == Size.Small || !props.size ? '0px 16px' : '8px 16px'};\n\n button {\n width: 100%;\n }\n`;\n\nconst MAX_MENU_HEIGHT = 240;\nconst AVG_OPTION_HEIGHT = 48;\n\nexport interface DropdownItem {\n value: string;\n displayLabel?: string;\n noteLabel?: string;\n suggestion?: boolean;\n showDividerAbove?: boolean;\n disabled?: boolean;\n icon?: React.ReactNode;\n customContent?: React.ReactNode;\n}\n\nexport interface DropdownCustomizationProps {\n itemsType?: 'radio' | 'checkbox' | 'normal';\n menuContent?: React.ReactNode;\n scrollable?: boolean;\n multiSelect?: boolean;\n maxHeight?: string;\n actionLabel?: string;\n actionVariant?: 'primary' | 'secondary' | 'tertiary' | undefined;\n actionIcon?: React.ReactNode;\n actionLoading?: boolean;\n actionDisabled?: boolean;\n action: () => boolean | void | undefined;\n pinTopItem?: boolean;\n onValueUpdate: (values: string[]) => boolean | void | undefined;\n items: DropdownItem[];\n}\n\nexport interface DropdownProps {\n isButton: boolean;\n customizationProps: DropdownCustomizationProps;\n alignLeft?: boolean;\n isOpen: boolean;\n setIsOpen: (open: boolean) => void;\n size?: Size;\n id: string;\n filter: string;\n width?: string;\n hideOnClickOutside: boolean;\n selectedValues: string[];\n setSelectedValues: (val: string[]) => void;\n messageOnNoResults: string;\n focused: number | null;\n setFocused: (focused: number | null) => void;\n}\n\nconst DropdownContent: React.FunctionComponent<DropdownProps> = ({\n id,\n customizationProps,\n alignLeft,\n isButton,\n size,\n isOpen,\n hideOnClickOutside,\n width,\n setIsOpen,\n filter,\n focused,\n setFocused,\n selectedValues,\n setSelectedValues,\n messageOnNoResults,\n}) => {\n const [isUp, setIsUp] = React.useState<boolean>(false);\n const dropdownContentRef = React.useRef<HTMLDivElement>(null);\n\n if (!customizationProps.itemsType) customizationProps.itemsType = 'normal';\n if (!size) size = Size.Small;\n\n const itemsListRef = React.useRef<HTMLDivElement>(null);\n\n const determineDropUp = () => {\n const options = customizationProps.items;\n const node = dropdownContentRef.current;\n\n if (!node) return;\n\n const windowHeight = window.innerHeight;\n const menuHeight = Math.min(MAX_MENU_HEIGHT, options.length * AVG_OPTION_HEIGHT);\n const instOffsetWithMenu = node.getBoundingClientRect().top + menuHeight;\n setIsUp(instOffsetWithMenu >= windowHeight);\n };\n\n const setNewFocusedElement = (index: number) => {\n const newFocusedElement = elRefs[index];\n if (newFocusedElement) {\n setFocused(index);\n newFocusedElement?.current?.focus();\n }\n };\n\n const getFilteredItems = () => {\n const filtrationString = (filter ?? '').toUpperCase();\n return customizationProps.items.filter((x) => x?.value?.toUpperCase().includes(filtrationString) || x?.displayLabel?.toUpperCase().includes(filtrationString));\n };\n\n const handleKeyDown = (e: any) => {\n if (isOpen) {\n if (e.keyCode === 38) {\n e.preventDefault();\n var focusedNow = focused;\n if (focusedNow !== undefined && focusedNow !== null && focusedNow > 0) {\n const filtered = getFilteredItems();\n if(focusedNow == 1 && haveTopItem())\n focusedNow = 0;\n else {\n for (let i = focusedNow - 1; i > 0; i--) {\n if (!filtered[i - 1]?.disabled) {\n focusedNow = i;\n break;\n }\n }\n }\n setNewFocusedElement(focusedNow);\n }\n } else if (e.keyCode === 40) {\n e.preventDefault();\n var focusedNow = focused;\n if (focusedNow !== undefined && focusedNow !== null) {\n const filtered = getFilteredItems();\n for (let i = focusedNow + 1; i <= filtered.length; i++) {\n if (!filtered[i - 1]?.disabled) {\n focusedNow = i;\n break;\n }\n }\n } else {\n focusedNow = haveTopItem() ? 0 : 1;\n }\n setNewFocusedElement(focusedNow);\n } else if (e.keyCode === 9) {\n e.preventDefault();\n var focusedNow = focused;\n if (focusedNow !== undefined && focusedNow !== null) {\n focusedNow++;\n const newFocusedElement = document.getElementById(`${id}_${focusedNow}`);\n if (!newFocusedElement) {\n setNewFocusedElement(0);\n } else {\n setNewFocusedElement(focusedNow);\n }\n } else {\n setFocused(null);\n }\n } else if (e.keyCode === 27) {\n setIsOpen(false);\n setFocused(null);\n\n //TODO: add onEscapehandler\n /*\n if (!list.includes(input)) {\n setInput('');\n setPlaceholderSearch(placeholder || '');\n }\n styledFieldRef.current?.focus(); */\n }\n }\n };\n\n const handleClickOutside = (e: any) => {\n if (hideOnClickOutside && dropdownContentRef?.current && !dropdownContentRef.current.contains(e.target) && !elRefs.some((x) => x?.current?.contains(e.target))) {\n if (isOpen) {\n setIsOpen(false);\n setFocused(null);\n }\n }\n };\n\n React.useEffect(() => {\n document.addEventListener('keydown', handleKeyDown);\n document.addEventListener('click', handleClickOutside);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n document.removeEventListener('click', handleClickOutside);\n };\n });\n\n const scrollPosition = React.useRef<number | undefined>(0);\n const handleScroll = () => {\n scrollPosition.current = itemsListRef.current?.scrollTop;\n };\n useLayoutEffect(() => {\n if (itemsListRef.current) itemsListRef.current.scrollTop = scrollPosition.current ?? 0;\n }, [selectedValues]);\n\n const getCorrectRef = (ref: React.RefObject<HTMLElement>): React.RefObject<HTMLElement> => {\n switch (customizationProps.itemsType) {\n case 'normal':\n return (ref as React.RefObject<HTMLButtonElement>) || createRef<HTMLButtonElement>();\n default:\n return (ref as React.RefObject<HTMLDivElement>) || createRef<HTMLDivElement>();\n }\n };\n\n const arrLength = getFilteredItems().length;\n const [elRefs, setElRefs] = React.useState<React.RefObject<HTMLElement>[]>([]);\n\n React.useEffect(() => {\n setElRefs((elRefs) =>\n Array(arrLength + 1)\n .fill(null)\n .map((_, i) => getCorrectRef(elRefs[i])),\n );\n }, [isOpen, arrLength, selectedValues]);\n\n React.useEffect(() => {\n determineDropUp();\n }, [isOpen]);\n\n const haveTopItem = () => {\n if (customizationProps.itemsType == 'radio' && selectedValues && selectedValues?.length > 0) return true;\n else if (customizationProps.itemsType == 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) return true;\n else if (customizationProps.itemsType == 'normal' && getSuggestions()?.length > 0) return true;\n return false;\n };\n\n const getSuggestions = () => {\n return getFilteredItems().filter((x) => x.suggestion);\n };\n\n React.useLayoutEffect(() => {\n if (isOpen && (focused || focused == 0)) {\n const focusThis = focused == 0 && !haveTopItem() ? 1 : focused;\n if (focusThis != focused) setFocused(focusThis);\n const newFocusedElement = elRefs[focusThis];\n newFocusedElement?.current?.focus();\n } else setFocused(null); //if the dropdown is closed, we don't to keep saved the focused item\n }, [isOpen]);\n\n const handleItemClick = (selected: boolean, item: DropdownItem) => {\n let newValue: string[] = [];\n if (customizationProps.multiSelect) {\n if (selected) newValue = [...selectedValues, item.value];\n else newValue = selectedValues.filter((x) => x != item.value);\n } else newValue = selected ? [item.value] : [];\n\n setSelectedValues(newValue);\n if(customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValue))\n setIsOpen(false);\n };\n\n const getTopItem = () => {\n if (!customizationProps.pinTopItem) return;\n const visibleItems = getFilteredItems();\n const allSelected = selectedValues?.filter((x) => visibleItems.some((y) => y.value == x)).length == visibleItems.length;\n let showTopItem = false;\n const suggestions = getSuggestions();\n const displayLabel = selectedValues[0] ? customizationProps.items?.find((c) => c.value === selectedValues[0])?.displayLabel : undefined;\n if (customizationProps.itemsType == 'radio' && selectedValues && selectedValues?.length > 0) showTopItem = true;\n else if (customizationProps.itemsType == 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) showTopItem = true;\n else if (customizationProps.itemsType == 'normal' && suggestions.length > 0) showTopItem = true;\n\n if (!showTopItem) return;\n\n const selectedFirst = selectedValues.length > 0 ? visibleItems.find(x => x.value == selectedValues[0]) : null;\n \n return (\n <TopItemContainer size={size}>\n {customizationProps.itemsType == 'radio' && (\n <RadioButton\n ref={elRefs[0] as React.RefObject<HTMLDivElement>}\n iconPointerEventsTransparent={true}\n select={() => {}} label={selectedFirst?.displayLabel ?? selectedFirst?.value} \n size={size}\n id={`${id}_topitem`}\n selected={true}\n />\n )}\n {customizationProps.itemsType == 'checkbox' && (\n <Checkbox\n ref={elRefs[0] as React.RefObject<HTMLDivElement>}\n select={(selected: boolean) => {\n if (!customizationProps.multiSelect) return;\n\n const newValues = selected ? visibleItems.map((x) => x.value) : [];\n setSelectedValues(newValues);\n if(customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValues))\n setIsOpen(false);\n }}\n iconPointerEventsTransparent={true}\n semiSelected={customizationProps.multiSelect && !allSelected && selectedValues?.length > 0}\n size={size}\n id={`${id}_checkbox_selectall`}\n label={customizationProps.multiSelect ? 'Select all' : (selectedFirst?.displayLabel ?? selectedFirst?.value)}\n selected={!customizationProps.multiSelect || allSelected}\n />\n )}\n {customizationProps.itemsType == 'normal' && (\n <>\n {suggestions.map((x) => (\n <button\n ref={elRefs[0] as React.RefObject<HTMLButtonElement>}\n type=\"button\"\n id={`${id}_topitem`}\n key={`${id}_topitem_${x.value}`}\n onClick={(e: any) => {\n customizationProps.onValueUpdate([x.value]);\n setSelectedValues([x.value]);\n setIsOpen(false);\n setFocused(null);\n }}>\n <div className=\"item-content\">\n {x?.icon && <div className=\"item-icon\">{x?.icon}</div>}\n <div className=\"item-label\">\n {x?.displayLabel ?? x?.value}\n {x?.noteLabel && <div style={{ fontSize: '12px' }}>{x.noteLabel}</div>}\n </div>\n </div>\n </button>))}\n </>\n )}\n </TopItemContainer>\n );\n };\n\n const getElements = () => {\n if (getFilteredItems().length === 0) {\n return (\n <ItemsContainer size={size}>\n <button className=\"dropdownButton\" disabled>\n <span>{messageOnNoResults}</span>\n </button>\n </ItemsContainer>\n );\n }\n let number = 0;\n return (\n <ItemsContainer size={size}>\n {getFilteredItems()\n .filter((x) => x && (customizationProps.itemsType != 'normal' || !x.suggestion))\n .map((item) => {\n return (\n <React.Fragment key={`key_${id}_${item.value}`}>\n {item.customContent}\n {!item.customContent && customizationProps.itemsType == 'radio' && (\n <RadioButton\n select={(selected:boolean) => handleItemClick(selected, item)}\n ref={elRefs[number + 1] as React.RefObject<HTMLDivElement>}\n size={size}\n iconPointerEventsTransparent={true}\n disabled={item?.disabled}\n key={`key_${id}_${number++}`}\n id={`${id}_${number + 1}`}\n label={item.displayLabel ?? item.value}\n selected={selectedValues?.includes(item.value)}\n />\n )}\n {!item.customContent && customizationProps.itemsType == 'checkbox' && (\n <Checkbox\n select={(selected:boolean) => handleItemClick(selected, item)}\n iconPointerEventsTransparent={true}\n disabled={item?.disabled}\n ref={elRefs[number + 1] as React.RefObject<HTMLDivElement>}\n size={size}\n key={`key_${id}_${number++}`}\n id={`${id}_${number + 1}`}\n label={item.displayLabel ?? item.value}\n selected={selectedValues?.includes(item.value)}\n />\n )}\n {!item.customContent && (customizationProps.itemsType == 'normal' || !customizationProps.itemsType) && (\n <button\n type=\"button\"\n disabled={item?.disabled}\n ref={elRefs[number + 1] as React.RefObject<HTMLButtonElement>}\n onClick={(e: any) => {\n customizationProps.onValueUpdate([item.value]);\n setSelectedValues([item.value]);\n setIsOpen(false);\n setFocused(null);\n }}\n className={ 'dropdownButton ' + (item.showDividerAbove ? 'show-divider-above' : '') + ' ' + (selectedValues?.includes(item.value) ? 'active' : '')}\n key={`key_${id}_${number++}`}\n id={`${id}_${number + 1}`}>\n {item.showDividerAbove && <div className=\"divider\" />}\n <div className=\"item-content\">\n {item.icon && <div className=\"item-icon\">{item.icon}</div>}\n <div className=\"item-label\">\n {item.displayLabel ?? item.value}\n {item.noteLabel && <div style={{ fontSize: '12px' }}>{item.noteLabel}</div>}\n </div>\n </div>\n </button>\n )}\n </React.Fragment>\n );\n })}\n </ItemsContainer>\n );\n };\n\n return (\n <DDContainer\n ref={dropdownContentRef}\n size={size}\n width={width}\n isButton={isButton}\n alignLeft={alignLeft}\n scrollable={customizationProps.scrollable}\n maxHeight={customizationProps.maxHeight}\n className={[isOpen && 'show', isUp && 'up'].filter((e) => !!e).join(' ')}>\n <ListContainer size={size} itemsType={customizationProps.itemsType} onScroll={handleScroll} ref={itemsListRef} scrollable={customizationProps.scrollable}>\n {customizationProps.menuContent &&\n <MenuContentContainer size={size}>\n {customizationProps.menuContent}\n <DividerContainer size={size}>\n <div className=\"divider\" />\n </DividerContainer>\n </MenuContentContainer>}\n {customizationProps.pinTopItem && getTopItem()}\n {getElements()}\n </ListContainer>\n {customizationProps.action && customizationProps.actionLabel && (\n <ActionButtonContainer size={size}>\n <Button width=\"100%\" icon={customizationProps.actionIcon}\n loading={customizationProps.actionLoading}\n disabled={customizationProps.actionDisabled}\n variant={customizationProps.actionVariant ?? 'primary'}\n size={size} onClick={() => \n {\n if(customizationProps.action()) //closing the dropdown if action returns 'true'\n setIsOpen(false);\n }}>\n {customizationProps.actionLabel}\n </Button>\n </ActionButtonContainer>\n )}\n </DDContainer>\n );\n /* ),\n {\n handleClickOutside: () => () => {\n if (isOpen) {\n setIsOpen(false);\n setFocused(null);\n }\n },\n },\n );\n\n return <Wrapped />; */\n};\n\nexport default DropdownContent;\n"],"file":"DropdownContent.js"}
|
|
@@ -66,7 +66,7 @@ var ModalContainerStyles = {
|
|
|
66
66
|
}
|
|
67
67
|
}; //override modal classes to define the animations
|
|
68
68
|
|
|
69
|
-
var modalTransitions = "\n.ReactModal__Overlay {\n opacity: 0;\n z-index: ".concat(_zIndexes.Z_INDEXES.backdrop, ";\n}\n\n.ReactModal__Overlay--after-open {\n opacity: 1;\n transition: opacity 150ms cubic-bezier(0.22, 0.61, 0.35, 1);\n}\n\n.ReactModal__Content{\n z-index: ").concat(_zIndexes.Z_INDEXES.modal, ";\n opacity:0;\n transform: translate(-50%, -50%) scale(1.1, 1.1);\n}\n\n.ReactModal__Content--after-open{\n opacity: 1;\n transform: translate(-50%, -50%) scale(1.0, 1.0);\n transition: transform 150ms ease-in-out, opacity 150ms cubic-bezier(0.22, 0.61, 0.35, 1);\n}\n\n.ReactModal__Overlay--before-close {\n opacity: 0;\n transition: opacity 120ms linear;\n}\n\n.ReactModal__Content--before-close{\n opacity: 0;\n transform: translate(-50%, -50%) scale(1.1, 1.1);\n transition: transform 120ms ease-in-out, opacity 120ms cubic-bezier(0.55, 0.05, 0.67, 0.19);\n}\n
|
|
69
|
+
var modalTransitions = "\n.ReactModal__Overlay {\n opacity: 0;\n z-index: ".concat(_zIndexes.Z_INDEXES.backdrop, ";\n}\n\n.ReactModal__Overlay--after-open {\n opacity: 1;\n transition: opacity 150ms cubic-bezier(0.22, 0.61, 0.35, 1);\n}\n\n.ReactModal__Content{\n z-index: ").concat(_zIndexes.Z_INDEXES.modal, ";\n opacity:0;\n transform: translate(-50%, -50%) scale(1.1, 1.1);\n}\n\n.ReactModal__Content--after-open{\n opacity: 1;\n transform: translate(-50%, -50%) scale(1.0, 1.0);\n transition: transform 150ms ease-in-out, opacity 150ms cubic-bezier(0.22, 0.61, 0.35, 1);\n}\n\n.ReactModal__Overlay--before-close {\n opacity: 0;\n transition: opacity 120ms linear;\n}\n\n.ReactModal__Content--before-close{\n opacity: 0;\n transform: translate(-50%, -50%) scale(1.1, 1.1);\n transition: transform 120ms ease-in-out, opacity 120ms cubic-bezier(0.55, 0.05, 0.67, 0.19);\n}\n");
|
|
70
70
|
|
|
71
71
|
var ModalContainer = /*#__PURE__*/function (_React$Component) {
|
|
72
72
|
_inherits(ModalContainer, _React$Component);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/Modals/ModalContainer.tsx"],"names":["ModalContainerStyles","content","top","left","right","bottom","marginRight","width","height","borderRadius","boxSizing","margin","overflow","boxShadow","BOXSHADOWS","BOXSHADOW_L3","modalTransitions","Z_INDEXES","backdrop","modal","ModalContainer","modalHeight","modalWidth","modalOverflow","ReactModal","defaultStyles","overlay","backgroundColor","document","querySelector","head","getElementsByTagName","style","createElement","setAttribute","appendChild","createTextNode","props","id","showModal","closeModal","children","padding","minWidth","maxWidth","sizes","GetSize","GetOverflow","stylesConfiguration","Object","assign","styles","getElementById","React","Component"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAMA,oBAAoB,GAAG;AAC3BC,EAAAA,OAAO,EAAE;AACPC,IAAAA,GAAG,EAAE,KADE;AAEPC,IAAAA,IAAI,EAAE,KAFC;AAGPC,IAAAA,KAAK,EAAE,MAHA;AAIPC,IAAAA,MAAM,EAAE,MAJD;AAKPC,IAAAA,WAAW,EAAE,MALN;AAMPC,IAAAA,KAAK,EAAE,OANA;AAOPC,IAAAA,MAAM,EAAE,OAPD;AAQPC,IAAAA,YAAY,EAAE,KARP;AASPC,IAAAA,SAAS,EAAE,YATJ;AAUPC,IAAAA,MAAM,EAAE,CAVD;AAWPC,IAAAA,QAAQ,EAAE,MAXH;AAYPC,IAAAA,SAAS,EAAEC,mBAAWC;AAZf;AADkB,CAA7B,C,CAiBA;;AACA,IAAMC,gBAAgB,iEAGTC,oBAAUC,QAHD,+KAYTD,oBAAUE,KAZD,
|
|
1
|
+
{"version":3,"sources":["../../../src/Modals/ModalContainer.tsx"],"names":["ModalContainerStyles","content","top","left","right","bottom","marginRight","width","height","borderRadius","boxSizing","margin","overflow","boxShadow","BOXSHADOWS","BOXSHADOW_L3","modalTransitions","Z_INDEXES","backdrop","modal","ModalContainer","modalHeight","modalWidth","modalOverflow","ReactModal","defaultStyles","overlay","backgroundColor","document","querySelector","head","getElementsByTagName","style","createElement","setAttribute","appendChild","createTextNode","props","id","showModal","closeModal","children","padding","minWidth","maxWidth","sizes","GetSize","GetOverflow","stylesConfiguration","Object","assign","styles","getElementById","React","Component"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAMA,oBAAoB,GAAG;AAC3BC,EAAAA,OAAO,EAAE;AACPC,IAAAA,GAAG,EAAE,KADE;AAEPC,IAAAA,IAAI,EAAE,KAFC;AAGPC,IAAAA,KAAK,EAAE,MAHA;AAIPC,IAAAA,MAAM,EAAE,MAJD;AAKPC,IAAAA,WAAW,EAAE,MALN;AAMPC,IAAAA,KAAK,EAAE,OANA;AAOPC,IAAAA,MAAM,EAAE,OAPD;AAQPC,IAAAA,YAAY,EAAE,KARP;AASPC,IAAAA,SAAS,EAAE,YATJ;AAUPC,IAAAA,MAAM,EAAE,CAVD;AAWPC,IAAAA,QAAQ,EAAE,MAXH;AAYPC,IAAAA,SAAS,EAAEC,mBAAWC;AAZf;AADkB,CAA7B,C,CAiBA;;AACA,IAAMC,gBAAgB,iEAGTC,oBAAUC,QAHD,+KAYTD,oBAAUE,KAZD,okBAAtB;;IAkDMC,c;;;;;;;;;;;;;;;;8DAgBM;AAAA,UAACC,WAAD,uEAAuB,MAAvB;AAAA,UAA+BC,UAA/B,uEAAoD,MAApD;AAAA,aAAgE;AAAEd,QAAAA,MAAM,EAAEa,WAAV;AAAuBd,QAAAA,KAAK,EAAEe;AAA9B,OAAhE;AAAA,K;;kEACI;AAAA,UAACC,aAAD,uEAAyB,SAAzB;AAAA,aAAuCA,aAAvC;AAAA,K;;;;;;;WAhBd,6BAAoB;AAClB,UAAIC,oBAAWC,aAAX,CAAyBC,OAA7B,EAAsC;AACpCF,4BAAWC,aAAX,CAAyBC,OAAzB,CAAiCC,eAAjC,GAAmD,iBAAnD;AACD,OAHiB,CAKlB;;;AACA,UAAI,CAACC,QAAQ,CAACC,aAAT,CAAuB,iCAAvB,CAAL,EAAgE;AAC9D,YAAMC,IAAI,GAAGF,QAAQ,CAACE,IAAT,IAAiBF,QAAQ,CAACG,oBAAT,CAA8B,MAA9B,EAAsC,CAAtC,CAA9B;AACA,YAAMC,KAAK,GAAGJ,QAAQ,CAACK,aAAT,CAAuB,OAAvB,CAAd;AACAD,QAAAA,KAAK,CAACE,YAAN,CAAmB,sBAAnB,EAA2C,QAA3C;AACAJ,QAAAA,IAAI,CAACK,WAAL,CAAiBH,KAAjB;AACAA,QAAAA,KAAK,CAACG,WAAN,CAAkBP,QAAQ,CAACQ,cAAT,CAAwBpB,gBAAxB,CAAlB;AACD;AACF;;;WAID,kBAAS;AACP,wBAA+H,KAAKqB,KAApI;AAAA,UAAQC,EAAR,eAAQA,EAAR;AAAA,UAAYC,SAAZ,eAAYA,SAAZ;AAAA,UAAuBC,UAAvB,eAAuBA,UAAvB;AAAA,UAAmCC,QAAnC,eAAmCA,QAAnC;AAAA,UAA6CpB,WAA7C,eAA6CA,WAA7C;AAAA,UAA0DC,UAA1D,eAA0DA,UAA1D;AAAA,UAAsEC,aAAtE,eAAsEA,aAAtE;AAAA,UAAqFmB,OAArF,eAAqFA,OAArF;AAAA,6CAA8FC,QAA9F;AAAA,UAA8FA,QAA9F,qCAAyG,EAAzG;AAAA,6CAA6GC,QAA7G;AAAA,UAA6GA,QAA7G,qCAAwH,EAAxH;AACA,UAAMC,KAAK,GAAG,KAAKC,OAAL,CAAazB,WAAb,EAA0BC,UAA1B,CAAd;AACA,UAAQd,MAAR,GAA0BqC,KAA1B,CAAQrC,MAAR;AAAA,UAAgBD,KAAhB,GAA0BsC,KAA1B,CAAgBtC,KAAhB;AACA,UAAMK,QAAQ,GAAG,KAAKmC,WAAL,CAAiBxB,aAAjB,CAAjB;AACA,UAAMyB,mBAAmB,GAAGC,MAAM,CAACC,MAAP,mBAAmBlD,oBAAoB,CAACC,OAAxC,GAAmD;AAAEO,QAAAA,MAAM,EAANA,MAAF;AAAUD,QAAAA,KAAK,EAALA,KAAV;AAAiBmC,QAAAA,OAAO,EAAPA,OAAjB;AAA0B9B,QAAAA,QAAQ,EAARA,QAA1B;AAAoC+B,QAAAA,QAAQ,EAARA,QAApC;AAA8CC,QAAAA,QAAQ,EAARA;AAA9C,OAAnD,CAA5B;AACA,UAAMO,MAAM,GAAG;AAAElD,QAAAA,OAAO,EAAE+C;AAAX,OAAf;AAEA,0BACE,oBAAC,mBAAD;AAAY,QAAA,EAAE,EAAEV,EAAhB;AAAoB,QAAA,MAAM,EAAEC,SAA5B;AAAuC,QAAA,cAAc,EAAE,GAAvD;AAA4D,QAAA,cAAc,EAAE;AAAA,iBAAMC,UAAU,EAAhB;AAAA,SAA5E;AAAgG,QAAA,KAAK,EAAEW,MAAvG;AAA+G,QAAA,UAAU,EAAEvB,QAAQ,CAACwB,cAAT,CAAwB,MAAxB,KAAmC;AAA9J,SACGX,QADH,CADF;AAKD;;;;EA/B0BY,KAAK,CAACC,S;;gBAA7BlC,c;AAdJkB,EAAAA,E;AACAC,EAAAA,S;AACAC,EAAAA,U;AACAC,EAAAA,Q;AACApB,EAAAA,W;AACAC,EAAAA,U;AACAC,EAAAA,a;AACAmB,EAAAA,O;AACAC,EAAAA,Q;AACAC,EAAAA,Q;;;eAuCaxB,c","sourcesContent":["import * as React from 'react';\nimport ReactModal from 'react-modal';\nimport { BOXSHADOWS } from '../styles';\nimport {Z_INDEXES} from '../styles/z-indexes';\n\nconst ModalContainerStyles = {\n content: {\n top: '50%',\n left: '50%',\n right: 'auto',\n bottom: 'auto',\n marginRight: '-50%',\n width: '640px',\n height: '320px',\n borderRadius: '8px',\n boxSizing: 'border-box' as any,\n margin: 0,\n overflow: 'auto',\n boxShadow: BOXSHADOWS.BOXSHADOW_L3,\n },\n};\n\n//override modal classes to define the animations\nconst modalTransitions = `\n.ReactModal__Overlay {\n opacity: 0;\n z-index: ${Z_INDEXES.backdrop};\n}\n\n.ReactModal__Overlay--after-open {\n opacity: 1;\n transition: opacity 150ms cubic-bezier(0.22, 0.61, 0.35, 1);\n}\n\n.ReactModal__Content{\n z-index: ${Z_INDEXES.modal};\n opacity:0;\n transform: translate(-50%, -50%) scale(1.1, 1.1);\n}\n\n.ReactModal__Content--after-open{\n opacity: 1;\n transform: translate(-50%, -50%) scale(1.0, 1.0);\n transition: transform 150ms ease-in-out, opacity 150ms cubic-bezier(0.22, 0.61, 0.35, 1);\n}\n\n.ReactModal__Overlay--before-close {\n opacity: 0;\n transition: opacity 120ms linear;\n}\n\n.ReactModal__Content--before-close{\n opacity: 0;\n transform: translate(-50%, -50%) scale(1.1, 1.1);\n transition: transform 120ms ease-in-out, opacity 120ms cubic-bezier(0.55, 0.05, 0.67, 0.19);\n}\n`;\n\ntype ModalContainerProps = {\n id?: string;\n showModal: boolean;\n closeModal: () => void;\n children: any;\n modalHeight?: any;\n modalWidth?: any;\n modalOverflow?: string;\n padding?: string;\n minWidth?: string;\n maxWidth?: string;\n};\n\ntype ModalContainerState = {};\n\nclass ModalContainer extends React.Component<ModalContainerProps, ModalContainerState> {\n componentDidMount() {\n if (ReactModal.defaultStyles.overlay) {\n ReactModal.defaultStyles.overlay.backgroundColor = 'rgba(0,0,0,0.5)';\n }\n\n //append style node to override modal transition classes\n if (!document.querySelector('[modal-custom-styling=\"active\"]')) {\n const head = document.head || document.getElementsByTagName('head')[0];\n const style = document.createElement('style');\n style.setAttribute('modal-custom-styling', 'active');\n head.appendChild(style);\n style.appendChild(document.createTextNode(modalTransitions));\n }\n }\n\n GetSize = (modalHeight: string = 'auto', modalWidth: string = 'auto') => ({ height: modalHeight, width: modalWidth });\n GetOverflow = (modalOverflow: string = 'visible') => modalOverflow;\n render() {\n const { id, showModal, closeModal, children, modalHeight, modalWidth, modalOverflow, padding, minWidth = '', maxWidth = '' } = this.props;\n const sizes = this.GetSize(modalHeight, modalWidth);\n const { height, width } = sizes;\n const overflow = this.GetOverflow(modalOverflow);\n const stylesConfiguration = Object.assign({ ...ModalContainerStyles.content }, { height, width, padding, overflow, minWidth, maxWidth });\n const styles = { content: stylesConfiguration };\n\n return (\n <ReactModal id={id} isOpen={showModal} closeTimeoutMS={120} onRequestClose={() => closeModal()} style={styles} appElement={document.getElementById('root') || ''}>\n {children}\n </ReactModal>\n );\n }\n}\n\nexport default ModalContainer;\n"],"file":"ModalContainer.js"}
|
|
@@ -13,8 +13,10 @@ interface NewModalProps {
|
|
|
13
13
|
backButton?: () => void;
|
|
14
14
|
closeAction: () => void;
|
|
15
15
|
submitAction: (event?: React.FormEvent<HTMLFormElement> | undefined) => void;
|
|
16
|
-
note?: string;
|
|
16
|
+
note?: string | React.ReactNode;
|
|
17
17
|
state?: string;
|
|
18
|
+
icon?: React.ReactNode;
|
|
19
|
+
yOffset?: number;
|
|
18
20
|
}
|
|
19
21
|
export declare const ModalDialog: React.FunctionComponent<NewModalProps>;
|
|
20
22
|
export default ModalDialog;
|
|
@@ -49,7 +49,9 @@ var ModalDialog = function ModalDialog(_ref) {
|
|
|
49
49
|
tooltip = _ref.tooltip,
|
|
50
50
|
children = _ref.children,
|
|
51
51
|
note = _ref.note,
|
|
52
|
-
state = _ref.state
|
|
52
|
+
state = _ref.state,
|
|
53
|
+
icon = _ref.icon,
|
|
54
|
+
yOffset = _ref.yOffset;
|
|
53
55
|
|
|
54
56
|
var getMinWidth = function getMinWidth() {
|
|
55
57
|
switch (size) {
|
|
@@ -253,6 +255,18 @@ var ModalDialog = function ModalDialog(_ref) {
|
|
|
253
255
|
}
|
|
254
256
|
};
|
|
255
257
|
|
|
258
|
+
React.useEffect(function () {
|
|
259
|
+
var yPos = yOffset ? yOffset : 0;
|
|
260
|
+
|
|
261
|
+
if (isModalOpen) {
|
|
262
|
+
document.body.setAttribute('style', "position: fixed;\n left: 0; right: 0;\n top: -".concat(yPos, "px"));
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
return function () {
|
|
266
|
+
document.body.setAttribute('style', '');
|
|
267
|
+
window.scrollTo(0, yPos);
|
|
268
|
+
};
|
|
269
|
+
}, [isModalOpen]);
|
|
256
270
|
return /*#__PURE__*/React.createElement(_ModalContainer.default, {
|
|
257
271
|
showModal: isModalOpen,
|
|
258
272
|
closeModal: closeModalAndClearInput,
|
|
@@ -276,7 +290,8 @@ var ModalDialog = function ModalDialog(_ref) {
|
|
|
276
290
|
}, children), note && /*#__PURE__*/React.createElement(_ModalNote.ModalNote, {
|
|
277
291
|
note: note,
|
|
278
292
|
state: state,
|
|
279
|
-
size: size
|
|
293
|
+
size: size,
|
|
294
|
+
icon: icon
|
|
280
295
|
}), /*#__PURE__*/React.createElement(_ModalStyles.ModalFooter, {
|
|
281
296
|
size: size
|
|
282
297
|
}, leftFooterAction && LeftFooterAction(leftFooterAction), buttons === null || buttons === void 0 ? void 0 : buttons.map(function (b, i) {
|
|
@@ -304,8 +319,10 @@ ModalDialog.propTypes = {
|
|
|
304
319
|
backButton: _propTypes.default.func,
|
|
305
320
|
closeAction: _propTypes.default.func.isRequired,
|
|
306
321
|
submitAction: _propTypes.default.func.isRequired,
|
|
307
|
-
note: _propTypes.default.string,
|
|
308
|
-
state: _propTypes.default.string
|
|
322
|
+
note: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.node]),
|
|
323
|
+
state: _propTypes.default.string,
|
|
324
|
+
icon: _propTypes.default.node,
|
|
325
|
+
yOffset: _propTypes.default.number
|
|
309
326
|
};
|
|
310
327
|
var _default = ModalDialog;
|
|
311
328
|
exports.default = _default;
|