@deviceinsight/ng-ui-components 6.18.0-SNAPSHOT
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/LICENSE +1 -0
- package/README.md +99 -0
- package/lib/cjs/__mocks__/i18n.d.ts +5 -0
- package/lib/cjs/__mocks__/i18n.d.ts.map +1 -0
- package/lib/cjs/__mocks__/i18n.js +9 -0
- package/lib/cjs/assets/img/icon-arrow-back.png +0 -0
- package/lib/cjs/assets/img/icon_folder_closed.png +0 -0
- package/lib/cjs/assets/img/icon_folder_closed_light.png +0 -0
- package/lib/cjs/assets/img/icon_folder_open.png +0 -0
- package/lib/cjs/assets/img/icon_folder_open_light.png +0 -0
- package/lib/cjs/assets/img/icon_help_light_24.png +0 -0
- package/lib/cjs/assets/img/icon_variablenode.png +0 -0
- package/lib/cjs/assets/img/icon_variablenode_light.png +0 -0
- package/lib/cjs/assets/img/toastify_msg_error_24.png +0 -0
- package/lib/cjs/assets/img/toastify_msg_success_24.png +0 -0
- package/lib/cjs/assets/react-datepicker-custom.css +43 -0
- package/lib/cjs/assets/react-select-custom.css +13 -0
- package/lib/cjs/assets/react-select.css +428 -0
- package/lib/cjs/assets/react-toastify-custom.css +16 -0
- package/lib/cjs/assets/search-box.css +29 -0
- package/lib/cjs/assets/style.css +255 -0
- package/lib/cjs/assets/svg/icon_add.svg +3 -0
- package/lib/cjs/assets/svg/icon_calendar.svg +50 -0
- package/lib/cjs/assets/svg/icon_chevron_left.svg +6 -0
- package/lib/cjs/assets/svg/icon_chevron_right.svg +6 -0
- package/lib/cjs/assets/svg/icon_cross.svg +3 -0
- package/lib/cjs/assets/svg/icon_download.svg +5 -0
- package/lib/cjs/assets/svg/icon_duplicate.svg +10 -0
- package/lib/cjs/assets/svg/icon_edit.svg +6 -0
- package/lib/cjs/assets/svg/icon_folder_loading.svg +21 -0
- package/lib/cjs/assets/svg/icon_fullscreen.svg +6 -0
- package/lib/cjs/assets/svg/icon_gear.svg +5 -0
- package/lib/cjs/assets/svg/icon_help_light.svg +3 -0
- package/lib/cjs/assets/svg/icon_key.svg +3 -0
- package/lib/cjs/assets/svg/icon_lupe.svg +14 -0
- package/lib/cjs/assets/svg/icon_menu_horizontal.svg +5 -0
- package/lib/cjs/assets/svg/icon_menu_vertical.svg +5 -0
- package/lib/cjs/assets/svg/icon_reload.svg +6 -0
- package/lib/cjs/assets/svg/icon_upload.svg +7 -0
- package/lib/cjs/assets/svg/icon_warning_triangle.svg +12 -0
- package/lib/cjs/assets/svg/triangle_down.svg +3 -0
- package/lib/cjs/assets/svg/triangle_left.svg +3 -0
- package/lib/cjs/assets/svg/triangle_right.svg +3 -0
- package/lib/cjs/assets/svg/triangle_up.svg +3 -0
- package/lib/cjs/assets/svg/triangle_up_and_down.svg +4 -0
- package/lib/cjs/components/chart/Chart.d.ts +38 -0
- package/lib/cjs/components/chart/Chart.d.ts.map +1 -0
- package/lib/cjs/components/chart/Chart.js +231 -0
- package/lib/cjs/components/colorpicker/ColorPickerPopper.d.ts +24 -0
- package/lib/cjs/components/colorpicker/ColorPickerPopper.d.ts.map +1 -0
- package/lib/cjs/components/colorpicker/ColorPickerPopper.js +72 -0
- package/lib/cjs/components/colorpicker/GradientColorPicker.d.ts +63 -0
- package/lib/cjs/components/colorpicker/GradientColorPicker.d.ts.map +1 -0
- package/lib/cjs/components/colorpicker/GradientColorPicker.js +154 -0
- package/lib/cjs/components/colorpicker/GridColorPicker.d.ts +41 -0
- package/lib/cjs/components/colorpicker/GridColorPicker.d.ts.map +1 -0
- package/lib/cjs/components/colorpicker/GridColorPicker.js +36 -0
- package/lib/cjs/components/contentHeader/ContentHeader.d.ts +25 -0
- package/lib/cjs/components/contentHeader/ContentHeader.d.ts.map +1 -0
- package/lib/cjs/components/contentHeader/ContentHeader.js +58 -0
- package/lib/cjs/components/infobox/InfoBox.d.ts +22 -0
- package/lib/cjs/components/infobox/InfoBox.d.ts.map +1 -0
- package/lib/cjs/components/infobox/InfoBox.js +61 -0
- package/lib/cjs/components/input/DateInput.d.ts +28 -0
- package/lib/cjs/components/input/DateInput.d.ts.map +1 -0
- package/lib/cjs/components/input/DateInput.js +186 -0
- package/lib/cjs/components/input/DateTimeInput.d.ts +27 -0
- package/lib/cjs/components/input/DateTimeInput.d.ts.map +1 -0
- package/lib/cjs/components/input/DateTimeInput.js +79 -0
- package/lib/cjs/components/input/SelectWithSearch.d.ts +62 -0
- package/lib/cjs/components/input/SelectWithSearch.d.ts.map +1 -0
- package/lib/cjs/components/input/SelectWithSearch.js +119 -0
- package/lib/cjs/components/input/SelectWithSearchAsync.d.ts +58 -0
- package/lib/cjs/components/input/SelectWithSearchAsync.d.ts.map +1 -0
- package/lib/cjs/components/input/SelectWithSearchAsync.js +126 -0
- package/lib/cjs/components/input/UrnInput.d.ts +22 -0
- package/lib/cjs/components/input/UrnInput.d.ts.map +1 -0
- package/lib/cjs/components/input/UrnInput.js +59 -0
- package/lib/cjs/components/input/ValidatedTextInput.d.ts +35 -0
- package/lib/cjs/components/input/ValidatedTextInput.d.ts.map +1 -0
- package/lib/cjs/components/input/ValidatedTextInput.js +36 -0
- package/lib/cjs/components/input/__tests__/DateInput.spec.d.ts +2 -0
- package/lib/cjs/components/input/__tests__/DateInput.spec.d.ts.map +1 -0
- package/lib/cjs/components/input/__tests__/DateInput.spec.js +113 -0
- package/lib/cjs/components/input/__tests__/DateTimeInput.spec.d.ts +2 -0
- package/lib/cjs/components/input/__tests__/DateTimeInput.spec.d.ts.map +1 -0
- package/lib/cjs/components/input/__tests__/DateTimeInput.spec.js +17 -0
- package/lib/cjs/components/input/__tests__/SelectWithSearchAsync.spec.d.ts +2 -0
- package/lib/cjs/components/input/__tests__/SelectWithSearchAsync.spec.d.ts.map +1 -0
- package/lib/cjs/components/input/__tests__/SelectWithSearchAsync.spec.js +48 -0
- package/lib/cjs/components/link/RouteLink.d.ts +31 -0
- package/lib/cjs/components/link/RouteLink.d.ts.map +1 -0
- package/lib/cjs/components/link/RouteLink.js +81 -0
- package/lib/cjs/components/multiMenu/MultiMenu.d.ts +27 -0
- package/lib/cjs/components/multiMenu/MultiMenu.d.ts.map +1 -0
- package/lib/cjs/components/multiMenu/MultiMenu.js +59 -0
- package/lib/cjs/components/multiMenu/components/MultiMenuContext.d.ts +7 -0
- package/lib/cjs/components/multiMenu/components/MultiMenuContext.d.ts.map +1 -0
- package/lib/cjs/components/multiMenu/components/MultiMenuContext.js +10 -0
- package/lib/cjs/components/multiMenu/components/MultiMenuItem.d.ts +14 -0
- package/lib/cjs/components/multiMenu/components/MultiMenuItem.d.ts.map +1 -0
- package/lib/cjs/components/multiMenu/components/MultiMenuItem.js +53 -0
- package/lib/cjs/components/pagination/Pagination.d.ts +37 -0
- package/lib/cjs/components/pagination/Pagination.d.ts.map +1 -0
- package/lib/cjs/components/pagination/Pagination.js +143 -0
- package/lib/cjs/components/pagination/__tests__/Pagination.spec.d.ts +2 -0
- package/lib/cjs/components/pagination/__tests__/Pagination.spec.d.ts.map +1 -0
- package/lib/cjs/components/pagination/__tests__/Pagination.spec.js +115 -0
- package/lib/cjs/components/periodpicker/PeriodPicker.d.ts +23 -0
- package/lib/cjs/components/periodpicker/PeriodPicker.d.ts.map +1 -0
- package/lib/cjs/components/periodpicker/PeriodPicker.js +40 -0
- package/lib/cjs/components/periodpicker/components/Inputs.d.ts +12 -0
- package/lib/cjs/components/periodpicker/components/Inputs.d.ts.map +1 -0
- package/lib/cjs/components/periodpicker/components/Inputs.js +88 -0
- package/lib/cjs/components/periodpicker/components/Menu.d.ts +11 -0
- package/lib/cjs/components/periodpicker/components/Menu.d.ts.map +1 -0
- package/lib/cjs/components/periodpicker/components/Menu.js +125 -0
- package/lib/cjs/components/periodpicker/components/MonthPicker.d.ts +19 -0
- package/lib/cjs/components/periodpicker/components/MonthPicker.d.ts.map +1 -0
- package/lib/cjs/components/periodpicker/components/MonthPicker.js +91 -0
- package/lib/cjs/components/periodpicker/periods.d.ts +33 -0
- package/lib/cjs/components/periodpicker/periods.d.ts.map +1 -0
- package/lib/cjs/components/periodpicker/periods.js +71 -0
- package/lib/cjs/components/periodpicker/types.d.ts +5 -0
- package/lib/cjs/components/periodpicker/types.d.ts.map +1 -0
- package/lib/cjs/components/periodpicker/types.js +2 -0
- package/lib/cjs/components/periodpicker/usePeriodName.d.ts +7 -0
- package/lib/cjs/components/periodpicker/usePeriodName.d.ts.map +1 -0
- package/lib/cjs/components/periodpicker/usePeriodName.js +41 -0
- package/lib/cjs/components/prompt/Prompt.d.ts +23 -0
- package/lib/cjs/components/prompt/Prompt.d.ts.map +1 -0
- package/lib/cjs/components/prompt/Prompt.js +57 -0
- package/lib/cjs/components/prompt/withPrompt.d.ts +7 -0
- package/lib/cjs/components/prompt/withPrompt.d.ts.map +1 -0
- package/lib/cjs/components/prompt/withPrompt.js +62 -0
- package/lib/cjs/components/reactable/Reactable.d.ts +38 -0
- package/lib/cjs/components/reactable/Reactable.d.ts.map +1 -0
- package/lib/cjs/components/reactable/Reactable.js +47 -0
- package/lib/cjs/components/reactable/helpers/ReactableTable.d.ts +21 -0
- package/lib/cjs/components/reactable/helpers/ReactableTable.d.ts.map +1 -0
- package/lib/cjs/components/reactable/helpers/ReactableTable.js +62 -0
- package/lib/cjs/components/reactable/helpers/ReactableTableFilterRow.d.ts +9 -0
- package/lib/cjs/components/reactable/helpers/ReactableTableFilterRow.d.ts.map +1 -0
- package/lib/cjs/components/reactable/helpers/ReactableTableFilterRow.js +85 -0
- package/lib/cjs/components/reactable/helpers/ReactableTableHeader.d.ts +16 -0
- package/lib/cjs/components/reactable/helpers/ReactableTableHeader.d.ts.map +1 -0
- package/lib/cjs/components/reactable/helpers/ReactableTableHeader.js +78 -0
- package/lib/cjs/components/reactable/helpers/ReactableTableRow.d.ts +16 -0
- package/lib/cjs/components/reactable/helpers/ReactableTableRow.d.ts.map +1 -0
- package/lib/cjs/components/reactable/helpers/ReactableTableRow.js +82 -0
- package/lib/cjs/components/reactable/helpers/ReactableTextFilter.d.ts +9 -0
- package/lib/cjs/components/reactable/helpers/ReactableTextFilter.d.ts.map +1 -0
- package/lib/cjs/components/reactable/helpers/ReactableTextFilter.js +43 -0
- package/lib/cjs/components/reactable/helpers/helper.d.ts +7 -0
- package/lib/cjs/components/reactable/helpers/helper.d.ts.map +1 -0
- package/lib/cjs/components/reactable/helpers/helper.js +120 -0
- package/lib/cjs/components/reactable/types.d.ts +38 -0
- package/lib/cjs/components/reactable/types.d.ts.map +1 -0
- package/lib/cjs/components/reactable/types.js +2 -0
- package/lib/cjs/components/reactableWithClientSidePagination/ReactableWithClientSidePagination.d.ts +69 -0
- package/lib/cjs/components/reactableWithClientSidePagination/ReactableWithClientSidePagination.d.ts.map +1 -0
- package/lib/cjs/components/reactableWithClientSidePagination/ReactableWithClientSidePagination.js +184 -0
- package/lib/cjs/components/reactableWithClientSidePagination/__tests__/ReactableWithClientSidePagination.spec.d.ts +2 -0
- package/lib/cjs/components/reactableWithClientSidePagination/__tests__/ReactableWithClientSidePagination.spec.d.ts.map +1 -0
- package/lib/cjs/components/reactableWithClientSidePagination/__tests__/ReactableWithClientSidePagination.spec.js +166 -0
- package/lib/cjs/components/slider/Slider.d.ts +30 -0
- package/lib/cjs/components/slider/Slider.d.ts.map +1 -0
- package/lib/cjs/components/slider/Slider.js +63 -0
- package/lib/cjs/components/slider/useLimitStyling.d.ts +3 -0
- package/lib/cjs/components/slider/useLimitStyling.d.ts.map +1 -0
- package/lib/cjs/components/slider/useLimitStyling.js +52 -0
- package/lib/cjs/components/svg/SvgImage.d.ts +12 -0
- package/lib/cjs/components/svg/SvgImage.d.ts.map +1 -0
- package/lib/cjs/components/svg/SvgImage.js +66 -0
- package/lib/cjs/components/svg/storybookHelper.d.ts +7 -0
- package/lib/cjs/components/svg/storybookHelper.d.ts.map +1 -0
- package/lib/cjs/components/svg/storybookHelper.js +56 -0
- package/lib/cjs/components/svg/types.d.ts +58 -0
- package/lib/cjs/components/svg/types.d.ts.map +1 -0
- package/lib/cjs/components/svg/types.js +2 -0
- package/lib/cjs/components/svg/utils/__tests__/getMutableNodeList.spec.d.ts +2 -0
- package/lib/cjs/components/svg/utils/__tests__/getMutableNodeList.spec.d.ts.map +1 -0
- package/lib/cjs/components/svg/utils/__tests__/getMutableNodeList.spec.js +48 -0
- package/lib/cjs/components/svg/utils/createHyperlinkModification.d.ts +4 -0
- package/lib/cjs/components/svg/utils/createHyperlinkModification.d.ts.map +1 -0
- package/lib/cjs/components/svg/utils/createHyperlinkModification.js +39 -0
- package/lib/cjs/components/svg/utils/createPositionModification.d.ts +3 -0
- package/lib/cjs/components/svg/utils/createPositionModification.d.ts.map +1 -0
- package/lib/cjs/components/svg/utils/createPositionModification.js +22 -0
- package/lib/cjs/components/svg/utils/findConflicts.d.ts +2 -0
- package/lib/cjs/components/svg/utils/findConflicts.d.ts.map +1 -0
- package/lib/cjs/components/svg/utils/findConflicts.js +26 -0
- package/lib/cjs/components/svg/utils/getMutableNodeList.d.ts +3 -0
- package/lib/cjs/components/svg/utils/getMutableNodeList.d.ts.map +1 -0
- package/lib/cjs/components/svg/utils/getMutableNodeList.js +17 -0
- package/lib/cjs/components/svg/utils/getSvgElement.d.ts +3 -0
- package/lib/cjs/components/svg/utils/getSvgElement.d.ts.map +1 -0
- package/lib/cjs/components/svg/utils/getSvgElement.js +12 -0
- package/lib/cjs/components/svg/utils/renderSvg.d.ts +3 -0
- package/lib/cjs/components/svg/utils/renderSvg.d.ts.map +1 -0
- package/lib/cjs/components/svg/utils/renderSvg.js +94 -0
- package/lib/cjs/components/svg/utils/transformPositionModifications.d.ts +4 -0
- package/lib/cjs/components/svg/utils/transformPositionModifications.d.ts.map +1 -0
- package/lib/cjs/components/svg/utils/transformPositionModifications.js +44 -0
- package/lib/cjs/components/svg/utils/validateSvg.d.ts +3 -0
- package/lib/cjs/components/svg/utils/validateSvg.d.ts.map +1 -0
- package/lib/cjs/components/svg/utils/validateSvg.js +10 -0
- package/lib/cjs/components/tabs/RouteTabs.d.ts +24 -0
- package/lib/cjs/components/tabs/RouteTabs.d.ts.map +1 -0
- package/lib/cjs/components/tabs/RouteTabs.js +96 -0
- package/lib/cjs/components/treeview/TreeView.d.ts +50 -0
- package/lib/cjs/components/treeview/TreeView.d.ts.map +1 -0
- package/lib/cjs/components/treeview/TreeView.js +133 -0
- package/lib/cjs/components/treeview/components/Node.d.ts +37 -0
- package/lib/cjs/components/treeview/components/Node.d.ts.map +1 -0
- package/lib/cjs/components/treeview/components/Node.js +140 -0
- package/lib/cjs/components/treeview/components/NodeInfo.d.ts +25 -0
- package/lib/cjs/components/treeview/components/NodeInfo.d.ts.map +1 -0
- package/lib/cjs/components/treeview/components/NodeInfo.js +93 -0
- package/lib/cjs/components/treeview/constants.d.ts +6 -0
- package/lib/cjs/components/treeview/constants.d.ts.map +1 -0
- package/lib/cjs/components/treeview/constants.js +9 -0
- package/lib/cjs/components/treeview/treeutils.d.ts +59 -0
- package/lib/cjs/components/treeview/treeutils.d.ts.map +1 -0
- package/lib/cjs/components/treeview/treeutils.js +171 -0
- package/lib/cjs/components/treeview/types.d.ts +37 -0
- package/lib/cjs/components/treeview/types.d.ts.map +1 -0
- package/lib/cjs/components/treeview/types.js +2 -0
- package/lib/cjs/components/upload/FileUpload.d.ts +67 -0
- package/lib/cjs/components/upload/FileUpload.d.ts.map +1 -0
- package/lib/cjs/components/upload/FileUpload.js +124 -0
- package/lib/cjs/components/upload/ImageUpload.d.ts +21 -0
- package/lib/cjs/components/upload/ImageUpload.d.ts.map +1 -0
- package/lib/cjs/components/upload/ImageUpload.js +74 -0
- package/lib/cjs/hoc/outsideClick.d.ts +4 -0
- package/lib/cjs/hoc/outsideClick.d.ts.map +1 -0
- package/lib/cjs/hoc/outsideClick.js +101 -0
- package/lib/cjs/i18n/index.d.ts +16 -0
- package/lib/cjs/i18n/index.d.ts.map +1 -0
- package/lib/cjs/i18n/index.js +8 -0
- package/lib/cjs/index.d.ts +52 -0
- package/lib/cjs/index.d.ts.map +1 -0
- package/lib/cjs/index.js +88 -0
- package/lib/cjs/modules/messageBox/messageBox.d.ts +14 -0
- package/lib/cjs/modules/messageBox/messageBox.d.ts.map +1 -0
- package/lib/cjs/modules/messageBox/messageBox.js +71 -0
- package/lib/cjs/modules/utils/nanoidGen.d.ts +2 -0
- package/lib/cjs/modules/utils/nanoidGen.d.ts.map +1 -0
- package/lib/cjs/modules/utils/nanoidGen.js +6 -0
- package/lib/cjs/modules/utils/uuidGen.d.ts +2 -0
- package/lib/cjs/modules/utils/uuidGen.d.ts.map +1 -0
- package/lib/cjs/modules/utils/uuidGen.js +17 -0
- package/lib/cjs/types/i18n.d.ts +5 -0
- package/lib/cjs/types/i18n.d.ts.map +1 -0
- package/lib/cjs/types/i18n.js +2 -0
- package/lib/cjs/types/pagination.d.ts +19 -0
- package/lib/cjs/types/pagination.d.ts.map +1 -0
- package/lib/cjs/types/pagination.js +2 -0
- package/lib/cjs/utils/dayjsLocales.d.ts +10 -0
- package/lib/cjs/utils/dayjsLocales.d.ts.map +1 -0
- package/lib/cjs/utils/dayjsLocales.js +16 -0
- package/lib/cjs/utils/resolvePath.d.ts +2 -0
- package/lib/cjs/utils/resolvePath.d.ts.map +1 -0
- package/lib/cjs/utils/resolvePath.js +7 -0
- package/lib/esm/__mocks__/i18n.d.ts +5 -0
- package/lib/esm/__mocks__/i18n.d.ts.map +1 -0
- package/lib/esm/__mocks__/i18n.js +5 -0
- package/lib/esm/assets/img/icon-arrow-back.png +0 -0
- package/lib/esm/assets/img/icon_folder_closed.png +0 -0
- package/lib/esm/assets/img/icon_folder_closed_light.png +0 -0
- package/lib/esm/assets/img/icon_folder_open.png +0 -0
- package/lib/esm/assets/img/icon_folder_open_light.png +0 -0
- package/lib/esm/assets/img/icon_help_light_24.png +0 -0
- package/lib/esm/assets/img/icon_variablenode.png +0 -0
- package/lib/esm/assets/img/icon_variablenode_light.png +0 -0
- package/lib/esm/assets/img/toastify_msg_error_24.png +0 -0
- package/lib/esm/assets/img/toastify_msg_success_24.png +0 -0
- package/lib/esm/assets/react-datepicker-custom.css +43 -0
- package/lib/esm/assets/react-select-custom.css +13 -0
- package/lib/esm/assets/react-select.css +428 -0
- package/lib/esm/assets/react-toastify-custom.css +16 -0
- package/lib/esm/assets/search-box.css +29 -0
- package/lib/esm/assets/style.css +255 -0
- package/lib/esm/assets/svg/icon_add.svg +3 -0
- package/lib/esm/assets/svg/icon_calendar.svg +50 -0
- package/lib/esm/assets/svg/icon_chevron_left.svg +6 -0
- package/lib/esm/assets/svg/icon_chevron_right.svg +6 -0
- package/lib/esm/assets/svg/icon_cross.svg +3 -0
- package/lib/esm/assets/svg/icon_download.svg +5 -0
- package/lib/esm/assets/svg/icon_duplicate.svg +10 -0
- package/lib/esm/assets/svg/icon_edit.svg +6 -0
- package/lib/esm/assets/svg/icon_folder_loading.svg +21 -0
- package/lib/esm/assets/svg/icon_fullscreen.svg +6 -0
- package/lib/esm/assets/svg/icon_gear.svg +5 -0
- package/lib/esm/assets/svg/icon_help_light.svg +3 -0
- package/lib/esm/assets/svg/icon_key.svg +3 -0
- package/lib/esm/assets/svg/icon_lupe.svg +14 -0
- package/lib/esm/assets/svg/icon_menu_horizontal.svg +5 -0
- package/lib/esm/assets/svg/icon_menu_vertical.svg +5 -0
- package/lib/esm/assets/svg/icon_reload.svg +6 -0
- package/lib/esm/assets/svg/icon_upload.svg +7 -0
- package/lib/esm/assets/svg/icon_warning_triangle.svg +12 -0
- package/lib/esm/assets/svg/triangle_down.svg +3 -0
- package/lib/esm/assets/svg/triangle_left.svg +3 -0
- package/lib/esm/assets/svg/triangle_right.svg +3 -0
- package/lib/esm/assets/svg/triangle_up.svg +3 -0
- package/lib/esm/assets/svg/triangle_up_and_down.svg +4 -0
- package/lib/esm/components/chart/Chart.d.ts +38 -0
- package/lib/esm/components/chart/Chart.d.ts.map +1 -0
- package/lib/esm/components/chart/Chart.js +202 -0
- package/lib/esm/components/colorpicker/ColorPickerPopper.d.ts +24 -0
- package/lib/esm/components/colorpicker/ColorPickerPopper.d.ts.map +1 -0
- package/lib/esm/components/colorpicker/ColorPickerPopper.js +46 -0
- package/lib/esm/components/colorpicker/GradientColorPicker.d.ts +63 -0
- package/lib/esm/components/colorpicker/GradientColorPicker.d.ts.map +1 -0
- package/lib/esm/components/colorpicker/GradientColorPicker.js +125 -0
- package/lib/esm/components/colorpicker/GridColorPicker.d.ts +41 -0
- package/lib/esm/components/colorpicker/GridColorPicker.d.ts.map +1 -0
- package/lib/esm/components/colorpicker/GridColorPicker.js +30 -0
- package/lib/esm/components/contentHeader/ContentHeader.d.ts +25 -0
- package/lib/esm/components/contentHeader/ContentHeader.d.ts.map +1 -0
- package/lib/esm/components/contentHeader/ContentHeader.js +53 -0
- package/lib/esm/components/infobox/InfoBox.d.ts +22 -0
- package/lib/esm/components/infobox/InfoBox.d.ts.map +1 -0
- package/lib/esm/components/infobox/InfoBox.js +36 -0
- package/lib/esm/components/input/DateInput.d.ts +28 -0
- package/lib/esm/components/input/DateInput.d.ts.map +1 -0
- package/lib/esm/components/input/DateInput.js +157 -0
- package/lib/esm/components/input/DateTimeInput.d.ts +27 -0
- package/lib/esm/components/input/DateTimeInput.d.ts.map +1 -0
- package/lib/esm/components/input/DateTimeInput.js +50 -0
- package/lib/esm/components/input/SelectWithSearch.d.ts +62 -0
- package/lib/esm/components/input/SelectWithSearch.d.ts.map +1 -0
- package/lib/esm/components/input/SelectWithSearch.js +90 -0
- package/lib/esm/components/input/SelectWithSearchAsync.d.ts +58 -0
- package/lib/esm/components/input/SelectWithSearchAsync.d.ts.map +1 -0
- package/lib/esm/components/input/SelectWithSearchAsync.js +100 -0
- package/lib/esm/components/input/UrnInput.d.ts +22 -0
- package/lib/esm/components/input/UrnInput.d.ts.map +1 -0
- package/lib/esm/components/input/UrnInput.js +33 -0
- package/lib/esm/components/input/ValidatedTextInput.d.ts +35 -0
- package/lib/esm/components/input/ValidatedTextInput.d.ts.map +1 -0
- package/lib/esm/components/input/ValidatedTextInput.js +30 -0
- package/lib/esm/components/input/__tests__/DateInput.spec.d.ts +2 -0
- package/lib/esm/components/input/__tests__/DateInput.spec.d.ts.map +1 -0
- package/lib/esm/components/input/__tests__/DateInput.spec.js +85 -0
- package/lib/esm/components/input/__tests__/DateTimeInput.spec.d.ts +2 -0
- package/lib/esm/components/input/__tests__/DateTimeInput.spec.d.ts.map +1 -0
- package/lib/esm/components/input/__tests__/DateTimeInput.spec.js +12 -0
- package/lib/esm/components/input/__tests__/SelectWithSearchAsync.spec.d.ts +2 -0
- package/lib/esm/components/input/__tests__/SelectWithSearchAsync.spec.d.ts.map +1 -0
- package/lib/esm/components/input/__tests__/SelectWithSearchAsync.spec.js +43 -0
- package/lib/esm/components/link/RouteLink.d.ts +31 -0
- package/lib/esm/components/link/RouteLink.d.ts.map +1 -0
- package/lib/esm/components/link/RouteLink.js +55 -0
- package/lib/esm/components/multiMenu/MultiMenu.d.ts +27 -0
- package/lib/esm/components/multiMenu/MultiMenu.d.ts.map +1 -0
- package/lib/esm/components/multiMenu/MultiMenu.js +30 -0
- package/lib/esm/components/multiMenu/components/MultiMenuContext.d.ts +7 -0
- package/lib/esm/components/multiMenu/components/MultiMenuContext.d.ts.map +1 -0
- package/lib/esm/components/multiMenu/components/MultiMenuContext.js +5 -0
- package/lib/esm/components/multiMenu/components/MultiMenuItem.d.ts +14 -0
- package/lib/esm/components/multiMenu/components/MultiMenuItem.d.ts.map +1 -0
- package/lib/esm/components/multiMenu/components/MultiMenuItem.js +24 -0
- package/lib/esm/components/pagination/Pagination.d.ts +37 -0
- package/lib/esm/components/pagination/Pagination.d.ts.map +1 -0
- package/lib/esm/components/pagination/Pagination.js +114 -0
- package/lib/esm/components/pagination/__tests__/Pagination.spec.d.ts +2 -0
- package/lib/esm/components/pagination/__tests__/Pagination.spec.d.ts.map +1 -0
- package/lib/esm/components/pagination/__tests__/Pagination.spec.js +87 -0
- package/lib/esm/components/periodpicker/PeriodPicker.d.ts +23 -0
- package/lib/esm/components/periodpicker/PeriodPicker.d.ts.map +1 -0
- package/lib/esm/components/periodpicker/PeriodPicker.js +11 -0
- package/lib/esm/components/periodpicker/components/Inputs.d.ts +12 -0
- package/lib/esm/components/periodpicker/components/Inputs.d.ts.map +1 -0
- package/lib/esm/components/periodpicker/components/Inputs.js +59 -0
- package/lib/esm/components/periodpicker/components/Menu.d.ts +11 -0
- package/lib/esm/components/periodpicker/components/Menu.d.ts.map +1 -0
- package/lib/esm/components/periodpicker/components/Menu.js +96 -0
- package/lib/esm/components/periodpicker/components/MonthPicker.d.ts +19 -0
- package/lib/esm/components/periodpicker/components/MonthPicker.d.ts.map +1 -0
- package/lib/esm/components/periodpicker/components/MonthPicker.js +62 -0
- package/lib/esm/components/periodpicker/periods.d.ts +33 -0
- package/lib/esm/components/periodpicker/periods.d.ts.map +1 -0
- package/lib/esm/components/periodpicker/periods.js +56 -0
- package/lib/esm/components/periodpicker/types.d.ts +5 -0
- package/lib/esm/components/periodpicker/types.d.ts.map +1 -0
- package/lib/esm/components/periodpicker/types.js +1 -0
- package/lib/esm/components/periodpicker/usePeriodName.d.ts +7 -0
- package/lib/esm/components/periodpicker/usePeriodName.d.ts.map +1 -0
- package/lib/esm/components/periodpicker/usePeriodName.js +38 -0
- package/lib/esm/components/prompt/Prompt.d.ts +23 -0
- package/lib/esm/components/prompt/Prompt.d.ts.map +1 -0
- package/lib/esm/components/prompt/Prompt.js +31 -0
- package/lib/esm/components/prompt/withPrompt.d.ts +7 -0
- package/lib/esm/components/prompt/withPrompt.d.ts.map +1 -0
- package/lib/esm/components/prompt/withPrompt.js +33 -0
- package/lib/esm/components/reactable/Reactable.d.ts +38 -0
- package/lib/esm/components/reactable/Reactable.d.ts.map +1 -0
- package/lib/esm/components/reactable/Reactable.js +18 -0
- package/lib/esm/components/reactable/helpers/ReactableTable.d.ts +21 -0
- package/lib/esm/components/reactable/helpers/ReactableTable.d.ts.map +1 -0
- package/lib/esm/components/reactable/helpers/ReactableTable.js +33 -0
- package/lib/esm/components/reactable/helpers/ReactableTableFilterRow.d.ts +9 -0
- package/lib/esm/components/reactable/helpers/ReactableTableFilterRow.d.ts.map +1 -0
- package/lib/esm/components/reactable/helpers/ReactableTableFilterRow.js +57 -0
- package/lib/esm/components/reactable/helpers/ReactableTableHeader.d.ts +16 -0
- package/lib/esm/components/reactable/helpers/ReactableTableHeader.d.ts.map +1 -0
- package/lib/esm/components/reactable/helpers/ReactableTableHeader.js +52 -0
- package/lib/esm/components/reactable/helpers/ReactableTableRow.d.ts +16 -0
- package/lib/esm/components/reactable/helpers/ReactableTableRow.d.ts.map +1 -0
- package/lib/esm/components/reactable/helpers/ReactableTableRow.js +56 -0
- package/lib/esm/components/reactable/helpers/ReactableTextFilter.d.ts +9 -0
- package/lib/esm/components/reactable/helpers/ReactableTextFilter.d.ts.map +1 -0
- package/lib/esm/components/reactable/helpers/ReactableTextFilter.js +18 -0
- package/lib/esm/components/reactable/helpers/helper.d.ts +7 -0
- package/lib/esm/components/reactable/helpers/helper.d.ts.map +1 -0
- package/lib/esm/components/reactable/helpers/helper.js +90 -0
- package/lib/esm/components/reactable/types.d.ts +38 -0
- package/lib/esm/components/reactable/types.d.ts.map +1 -0
- package/lib/esm/components/reactable/types.js +1 -0
- package/lib/esm/components/reactableWithClientSidePagination/ReactableWithClientSidePagination.d.ts +69 -0
- package/lib/esm/components/reactableWithClientSidePagination/ReactableWithClientSidePagination.d.ts.map +1 -0
- package/lib/esm/components/reactableWithClientSidePagination/ReactableWithClientSidePagination.js +155 -0
- package/lib/esm/components/reactableWithClientSidePagination/__tests__/ReactableWithClientSidePagination.spec.d.ts +2 -0
- package/lib/esm/components/reactableWithClientSidePagination/__tests__/ReactableWithClientSidePagination.spec.d.ts.map +1 -0
- package/lib/esm/components/reactableWithClientSidePagination/__tests__/ReactableWithClientSidePagination.spec.js +138 -0
- package/lib/esm/components/slider/Slider.d.ts +30 -0
- package/lib/esm/components/slider/Slider.d.ts.map +1 -0
- package/lib/esm/components/slider/Slider.js +35 -0
- package/lib/esm/components/slider/useLimitStyling.d.ts +3 -0
- package/lib/esm/components/slider/useLimitStyling.d.ts.map +1 -0
- package/lib/esm/components/slider/useLimitStyling.js +49 -0
- package/lib/esm/components/svg/SvgImage.d.ts +12 -0
- package/lib/esm/components/svg/SvgImage.d.ts.map +1 -0
- package/lib/esm/components/svg/SvgImage.js +37 -0
- package/lib/esm/components/svg/storybookHelper.d.ts +7 -0
- package/lib/esm/components/svg/storybookHelper.d.ts.map +1 -0
- package/lib/esm/components/svg/storybookHelper.js +53 -0
- package/lib/esm/components/svg/types.d.ts +58 -0
- package/lib/esm/components/svg/types.d.ts.map +1 -0
- package/lib/esm/components/svg/types.js +1 -0
- package/lib/esm/components/svg/utils/__tests__/getMutableNodeList.spec.d.ts +2 -0
- package/lib/esm/components/svg/utils/__tests__/getMutableNodeList.spec.d.ts.map +1 -0
- package/lib/esm/components/svg/utils/__tests__/getMutableNodeList.spec.js +23 -0
- package/lib/esm/components/svg/utils/createHyperlinkModification.d.ts +4 -0
- package/lib/esm/components/svg/utils/createHyperlinkModification.d.ts.map +1 -0
- package/lib/esm/components/svg/utils/createHyperlinkModification.js +35 -0
- package/lib/esm/components/svg/utils/createPositionModification.d.ts +3 -0
- package/lib/esm/components/svg/utils/createPositionModification.d.ts.map +1 -0
- package/lib/esm/components/svg/utils/createPositionModification.js +19 -0
- package/lib/esm/components/svg/utils/findConflicts.d.ts +2 -0
- package/lib/esm/components/svg/utils/findConflicts.d.ts.map +1 -0
- package/lib/esm/components/svg/utils/findConflicts.js +23 -0
- package/lib/esm/components/svg/utils/getMutableNodeList.d.ts +3 -0
- package/lib/esm/components/svg/utils/getMutableNodeList.d.ts.map +1 -0
- package/lib/esm/components/svg/utils/getMutableNodeList.js +12 -0
- package/lib/esm/components/svg/utils/getSvgElement.d.ts +3 -0
- package/lib/esm/components/svg/utils/getSvgElement.d.ts.map +1 -0
- package/lib/esm/components/svg/utils/getSvgElement.js +10 -0
- package/lib/esm/components/svg/utils/renderSvg.d.ts +3 -0
- package/lib/esm/components/svg/utils/renderSvg.d.ts.map +1 -0
- package/lib/esm/components/svg/utils/renderSvg.js +88 -0
- package/lib/esm/components/svg/utils/transformPositionModifications.d.ts +4 -0
- package/lib/esm/components/svg/utils/transformPositionModifications.d.ts.map +1 -0
- package/lib/esm/components/svg/utils/transformPositionModifications.js +42 -0
- package/lib/esm/components/svg/utils/validateSvg.d.ts +3 -0
- package/lib/esm/components/svg/utils/validateSvg.d.ts.map +1 -0
- package/lib/esm/components/svg/utils/validateSvg.js +5 -0
- package/lib/esm/components/tabs/RouteTabs.d.ts +24 -0
- package/lib/esm/components/tabs/RouteTabs.d.ts.map +1 -0
- package/lib/esm/components/tabs/RouteTabs.js +67 -0
- package/lib/esm/components/treeview/TreeView.d.ts +50 -0
- package/lib/esm/components/treeview/TreeView.d.ts.map +1 -0
- package/lib/esm/components/treeview/TreeView.js +104 -0
- package/lib/esm/components/treeview/components/Node.d.ts +37 -0
- package/lib/esm/components/treeview/components/Node.d.ts.map +1 -0
- package/lib/esm/components/treeview/components/Node.js +111 -0
- package/lib/esm/components/treeview/components/NodeInfo.d.ts +25 -0
- package/lib/esm/components/treeview/components/NodeInfo.d.ts.map +1 -0
- package/lib/esm/components/treeview/components/NodeInfo.js +64 -0
- package/lib/esm/components/treeview/constants.d.ts +6 -0
- package/lib/esm/components/treeview/constants.d.ts.map +1 -0
- package/lib/esm/components/treeview/constants.js +6 -0
- package/lib/esm/components/treeview/treeutils.d.ts +59 -0
- package/lib/esm/components/treeview/treeutils.d.ts.map +1 -0
- package/lib/esm/components/treeview/treeutils.js +158 -0
- package/lib/esm/components/treeview/types.d.ts +37 -0
- package/lib/esm/components/treeview/types.d.ts.map +1 -0
- package/lib/esm/components/treeview/types.js +1 -0
- package/lib/esm/components/upload/FileUpload.d.ts +67 -0
- package/lib/esm/components/upload/FileUpload.d.ts.map +1 -0
- package/lib/esm/components/upload/FileUpload.js +95 -0
- package/lib/esm/components/upload/ImageUpload.d.ts +21 -0
- package/lib/esm/components/upload/ImageUpload.d.ts.map +1 -0
- package/lib/esm/components/upload/ImageUpload.js +45 -0
- package/lib/esm/hoc/outsideClick.d.ts +4 -0
- package/lib/esm/hoc/outsideClick.d.ts.map +1 -0
- package/lib/esm/hoc/outsideClick.js +73 -0
- package/lib/esm/i18n/index.d.ts +16 -0
- package/lib/esm/i18n/index.d.ts.map +1 -0
- package/lib/esm/i18n/index.js +6 -0
- package/lib/esm/index.d.ts +52 -0
- package/lib/esm/index.d.ts.map +1 -0
- package/lib/esm/index.js +39 -0
- package/lib/esm/modules/messageBox/messageBox.d.ts +14 -0
- package/lib/esm/modules/messageBox/messageBox.d.ts.map +1 -0
- package/lib/esm/modules/messageBox/messageBox.js +56 -0
- package/lib/esm/modules/utils/nanoidGen.d.ts +2 -0
- package/lib/esm/modules/utils/nanoidGen.d.ts.map +1 -0
- package/lib/esm/modules/utils/nanoidGen.js +3 -0
- package/lib/esm/modules/utils/uuidGen.d.ts +2 -0
- package/lib/esm/modules/utils/uuidGen.d.ts.map +1 -0
- package/lib/esm/modules/utils/uuidGen.js +13 -0
- package/lib/esm/types/i18n.d.ts +5 -0
- package/lib/esm/types/i18n.d.ts.map +1 -0
- package/lib/esm/types/i18n.js +1 -0
- package/lib/esm/types/pagination.d.ts +19 -0
- package/lib/esm/types/pagination.d.ts.map +1 -0
- package/lib/esm/types/pagination.js +1 -0
- package/lib/esm/utils/dayjsLocales.d.ts +10 -0
- package/lib/esm/utils/dayjsLocales.d.ts.map +1 -0
- package/lib/esm/utils/dayjsLocales.js +12 -0
- package/lib/esm/utils/resolvePath.d.ts +2 -0
- package/lib/esm/utils/resolvePath.d.ts.map +1 -0
- package/lib/esm/utils/resolvePath.js +4 -0
- package/package.json +164 -0
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Trans } from '../../i18n';
|
|
3
|
+
import { debounce } from 'lodash';
|
|
4
|
+
import { Button } from '@deviceinsight/ng-ui-basic-components';
|
|
5
|
+
import iconSettings from '../../assets/svg/icon_menu_vertical.svg';
|
|
6
|
+
import MultiMenu from '../multiMenu/MultiMenu';
|
|
7
|
+
const sizeOptions = [5, 10, 15, 20, 50];
|
|
8
|
+
/**
|
|
9
|
+
* Pagination enables a convenient way to display and navigate through a paginated search result
|
|
10
|
+
*/
|
|
11
|
+
export default class Pagination extends React.Component {
|
|
12
|
+
constructor() {
|
|
13
|
+
super(...arguments);
|
|
14
|
+
this.state = {
|
|
15
|
+
page: 0
|
|
16
|
+
};
|
|
17
|
+
this.multiMenuRef = React.createRef();
|
|
18
|
+
this.goToFirstPage = () => {
|
|
19
|
+
this.props.onChangePage(0);
|
|
20
|
+
};
|
|
21
|
+
this.goToPrevPage = () => {
|
|
22
|
+
const { page } = this.props;
|
|
23
|
+
if (page > 0) {
|
|
24
|
+
this.props.onChangePage(page - 1);
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
this.goToNextPage = () => {
|
|
28
|
+
const { page } = this.props;
|
|
29
|
+
if (page < this.props.totalPages - 1) {
|
|
30
|
+
this.props.onChangePage(page + 1);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
this.goToLastPage = () => {
|
|
34
|
+
this.props.onChangePage(this.props.totalPages - 1);
|
|
35
|
+
};
|
|
36
|
+
this.onChangeSize = (event) => {
|
|
37
|
+
const { onChangeSize } = this.props;
|
|
38
|
+
if (onChangeSize) {
|
|
39
|
+
onChangeSize(Number(event.target.value));
|
|
40
|
+
}
|
|
41
|
+
if (this.multiMenuRef && this.multiMenuRef.current) {
|
|
42
|
+
this.multiMenuRef.current.toggleMenu();
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
this.notifyPageChange = debounce((page) => {
|
|
46
|
+
this.props.onChangePage(page);
|
|
47
|
+
}, 500);
|
|
48
|
+
this.handlePageInputChange = (event) => {
|
|
49
|
+
const { totalPages } = this.props;
|
|
50
|
+
const page = Number(event.target.value);
|
|
51
|
+
if (page === 0) {
|
|
52
|
+
this.setState({
|
|
53
|
+
page: ''
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
else if (!isNaN(page) && page <= totalPages) {
|
|
57
|
+
this.setState({
|
|
58
|
+
page: page - 1
|
|
59
|
+
});
|
|
60
|
+
this.notifyPageChange(page - 1);
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
componentDidMount() {
|
|
65
|
+
const { page } = this.props;
|
|
66
|
+
this.setState({
|
|
67
|
+
page
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
componentDidUpdate(prevProps) {
|
|
71
|
+
const { page } = this.props;
|
|
72
|
+
if (prevProps.page !== page && page !== this.state.page) {
|
|
73
|
+
this.setState({
|
|
74
|
+
page
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
render() {
|
|
79
|
+
const { totalPages, size, onChangeSize } = this.props;
|
|
80
|
+
const { page } = this.state;
|
|
81
|
+
const isLastPage = page === totalPages - 1;
|
|
82
|
+
const showPage = page !== '' ? Number(page) + 1 : '';
|
|
83
|
+
return (React.createElement("div", { className: "di pagination-holder" },
|
|
84
|
+
React.createElement("div", { className: "di pagination" },
|
|
85
|
+
React.createElement("span", { className: `prev ${page === 0 ? 'disabled' : ''}`, onClick: this.goToFirstPage }, "\u00AB"),
|
|
86
|
+
React.createElement("span", { className: `prev ${page === 0 ? 'disabled' : ''}`, onClick: this.goToPrevPage }, "\u2039"),
|
|
87
|
+
React.createElement("span", { className: "info" },
|
|
88
|
+
React.createElement(Trans, { i18nKey: "reactable.pagination.page" }, "Page"),
|
|
89
|
+
React.createElement("input", { value: showPage, onChange: this.handlePageInputChange }),
|
|
90
|
+
typeof process !== 'undefined' && process?.env?.STORYBOOK_MODE ? (React.createElement(React.Fragment, null,
|
|
91
|
+
"of \u00A0 ",
|
|
92
|
+
totalPages)) : (React.createElement(Trans, { i18nKey: "reactable.pagination.ofTotal" },
|
|
93
|
+
" of \u00A0 ",
|
|
94
|
+
{ totalPages }))),
|
|
95
|
+
React.createElement("span", { className: `next ${isLastPage ? 'disabled' : ''}`, onClick: this.goToNextPage }, "\u203A"),
|
|
96
|
+
React.createElement("span", { className: `next ${isLastPage ? 'disabled' : ''}`, onClick: this.goToLastPage }, "\u00BB"),
|
|
97
|
+
onChangeSize && (React.createElement("div", { className: "options" },
|
|
98
|
+
React.createElement(MultiMenu, { ref: this.multiMenuRef, direction: "left", menuButton: React.createElement(Button, { naked: true, title: {
|
|
99
|
+
id: 'trend.settings.buttonTitle',
|
|
100
|
+
defaultValue: 'Settings'
|
|
101
|
+
} },
|
|
102
|
+
React.createElement("img", { src: iconSettings, alt: "settings icon", style: { width: 16, height: 16 } })) },
|
|
103
|
+
React.createElement("div", { className: "di form", style: {
|
|
104
|
+
width: 200,
|
|
105
|
+
padding: 10
|
|
106
|
+
} },
|
|
107
|
+
React.createElement("div", { className: "field" },
|
|
108
|
+
React.createElement("label", null,
|
|
109
|
+
React.createElement(Trans, { i18nKey: "reactable.pagination.entriesPerPage" }, "Entries per page")),
|
|
110
|
+
React.createElement("select", { onChange: this.onChangeSize, value: size }, sizeOptions.map((sizeOption) => (React.createElement("option", { key: sizeOption, value: sizeOption }, sizeOption))))),
|
|
111
|
+
React.createElement("p", null,
|
|
112
|
+
React.createElement(Trans, { i18nKey: "reactable.pagination.changePageWillBeStored" }, "Your changes will be stored for this view.")))))))));
|
|
113
|
+
}
|
|
114
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Pagination.spec.d.ts","sourceRoot":"","sources":["../../../../../src/components/pagination/__tests__/Pagination.spec.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { shallow } from 'enzyme';
|
|
3
|
+
import Pagination from '../Pagination';
|
|
4
|
+
describe('Pagination.js', () => {
|
|
5
|
+
it('should disable all buttons when there is only one page', () => {
|
|
6
|
+
const PaginationWrapper = shallow(React.createElement(Pagination, { page: 0, totalPages: 1, onChangePage: () => { } }));
|
|
7
|
+
expect(PaginationWrapper.find('span.disabled')).toHaveLength(4);
|
|
8
|
+
});
|
|
9
|
+
it('should disable "prev" and "first" when the first page is selected', () => {
|
|
10
|
+
const PaginationWrapper = shallow(React.createElement(Pagination, { page: 0, totalPages: 10, onChangePage: () => { } }));
|
|
11
|
+
expect(PaginationWrapper.find('span.prev.disabled')).toHaveLength(2);
|
|
12
|
+
});
|
|
13
|
+
it('should disable "next" and "last" when the last page is selected', () => {
|
|
14
|
+
const PaginationWrapper = shallow(React.createElement(Pagination, { page: 9, totalPages: 10, onChangePage: () => { } }));
|
|
15
|
+
expect(PaginationWrapper.find('span.next.disabled')).toHaveLength(2);
|
|
16
|
+
});
|
|
17
|
+
it('should not disable buttons when on a page > 0 and < max pages', () => {
|
|
18
|
+
const PaginationWrapper = shallow(React.createElement(Pagination, { page: 5, totalPages: 10, onChangePage: () => { } }));
|
|
19
|
+
expect(PaginationWrapper.find('span.disabled')).toHaveLength(0);
|
|
20
|
+
});
|
|
21
|
+
it('should go to the first page when the user clicks "first"', () => {
|
|
22
|
+
const handleChangePage = jest.fn();
|
|
23
|
+
const PaginationWrapper = shallow(React.createElement(Pagination, { page: 5, totalPages: 10, onChangePage: handleChangePage }));
|
|
24
|
+
PaginationWrapper.find('span.prev').first().simulate('click');
|
|
25
|
+
expect(handleChangePage).toHaveBeenCalledWith(0);
|
|
26
|
+
});
|
|
27
|
+
it('should go to the previous page when the user clicks "prev"', () => {
|
|
28
|
+
const page = 2;
|
|
29
|
+
const handleChangePage = jest.fn();
|
|
30
|
+
const PaginationWrapper = shallow(React.createElement(Pagination, { page: page, totalPages: 10, onChangePage: handleChangePage }));
|
|
31
|
+
PaginationWrapper.find('span.prev').last().simulate('click');
|
|
32
|
+
expect(handleChangePage).toHaveBeenCalledWith(page - 1);
|
|
33
|
+
});
|
|
34
|
+
it('should go to the next page when the user clicks "next"', () => {
|
|
35
|
+
const handleChangePage = jest.fn();
|
|
36
|
+
const PaginationWrapper = shallow(React.createElement(Pagination, { page: 2, totalPages: 10, onChangePage: handleChangePage }));
|
|
37
|
+
PaginationWrapper.find('span.next').first().simulate('click');
|
|
38
|
+
expect(handleChangePage).toHaveBeenCalledWith(3);
|
|
39
|
+
});
|
|
40
|
+
it('should go to the last page when the user clicks "last"', () => {
|
|
41
|
+
const handleChangePage = jest.fn();
|
|
42
|
+
const PaginationWrapper = shallow(React.createElement(Pagination, { page: 5, totalPages: 10, onChangePage: handleChangePage }));
|
|
43
|
+
PaginationWrapper.find('span.next').last().simulate('click');
|
|
44
|
+
expect(handleChangePage).toHaveBeenCalledWith(9);
|
|
45
|
+
});
|
|
46
|
+
it('should match snapshot', () => {
|
|
47
|
+
const PaginationWrapper1 = shallow(React.createElement(Pagination, { page: 0, totalPages: 10, onChangePage: () => { } }));
|
|
48
|
+
const PaginationWrapper2 = shallow(React.createElement(Pagination, { page: 5, totalPages: 10, onChangePage: () => { } }));
|
|
49
|
+
const PaginationWrapper3 = shallow(React.createElement(Pagination, { page: 9, totalPages: 10, onChangePage: () => { } }));
|
|
50
|
+
expect(PaginationWrapper1).toMatchSnapshot();
|
|
51
|
+
expect(PaginationWrapper2).toMatchSnapshot();
|
|
52
|
+
expect(PaginationWrapper3).toMatchSnapshot();
|
|
53
|
+
});
|
|
54
|
+
describe('handlePageInputChange', () => {
|
|
55
|
+
it('should set page number if input is a correct number', () => {
|
|
56
|
+
const PaginationWrapper = shallow(React.createElement(Pagination, { page: 0, totalPages: 10, onChangePage: () => { } }));
|
|
57
|
+
const instance = PaginationWrapper.instance();
|
|
58
|
+
// @ts-ignore
|
|
59
|
+
const spy = jest.spyOn(instance, 'notifyPageChange');
|
|
60
|
+
// @ts-ignore
|
|
61
|
+
instance.handlePageInputChange({ target: { value: '4' } });
|
|
62
|
+
expect(spy).toHaveBeenCalledWith(4 - 1); // counting from 0
|
|
63
|
+
});
|
|
64
|
+
it('should not set page number if input is bigger than totalPages', () => {
|
|
65
|
+
const PaginationWrapper = shallow(React.createElement(Pagination, { page: 0, totalPages: 10, onChangePage: () => { } }));
|
|
66
|
+
const instance = PaginationWrapper.instance();
|
|
67
|
+
// @ts-ignore
|
|
68
|
+
const spy = jest.spyOn(instance, 'notifyPageChange');
|
|
69
|
+
// @ts-ignore
|
|
70
|
+
instance.handlePageInputChange({ target: { value: '12' } });
|
|
71
|
+
expect(PaginationWrapper.state('page')).toBe(0);
|
|
72
|
+
expect(spy).not.toHaveBeenCalled();
|
|
73
|
+
});
|
|
74
|
+
it('should not set empty string as state and not call notifyPageChange', () => {
|
|
75
|
+
const PaginationWrapper = shallow(React.createElement(Pagination, { page: 0, totalPages: 10, onChangePage: () => { } }));
|
|
76
|
+
const instance = PaginationWrapper.instance();
|
|
77
|
+
// @ts-ignore
|
|
78
|
+
instance.handlePageInputChange({ target: { value: '2' } });
|
|
79
|
+
// @ts-ignore
|
|
80
|
+
const spy = jest.spyOn(instance, 'notifyPageChange');
|
|
81
|
+
// @ts-ignore
|
|
82
|
+
instance.handlePageInputChange({ target: { value: '0' } });
|
|
83
|
+
expect(PaginationWrapper.state('page')).toBe('');
|
|
84
|
+
expect(spy).not.toHaveBeenCalled();
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
});
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { Period } from './types';
|
|
3
|
+
export declare type Props = {
|
|
4
|
+
/** Period from start- to endpoint */
|
|
5
|
+
period: Period;
|
|
6
|
+
/** Function, executed on change */
|
|
7
|
+
onChange: (period: Period) => void;
|
|
8
|
+
/** Predefined period name */
|
|
9
|
+
defaultPeriodName?: string;
|
|
10
|
+
/** Show only dropdown with calendar part without inputs? */
|
|
11
|
+
inputsHiddenByDefault?: boolean;
|
|
12
|
+
/** Should the menu be hidden? */
|
|
13
|
+
menuHidden?: boolean;
|
|
14
|
+
/** Should the PeriodPicker be readOnly? */
|
|
15
|
+
readOnly?: boolean;
|
|
16
|
+
/** (optional) locale, if not set, the i18next.language is taken */
|
|
17
|
+
locale?: string;
|
|
18
|
+
/** (optional) timezone */
|
|
19
|
+
timezone?: string;
|
|
20
|
+
'data-testid'?: string;
|
|
21
|
+
};
|
|
22
|
+
export default function PeriodPicker({ period, onChange, inputsHiddenByDefault, menuHidden, readOnly, locale, defaultPeriodName, timezone, ...props }: Props): JSX.Element;
|
|
23
|
+
//# sourceMappingURL=PeriodPicker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PeriodPicker.d.ts","sourceRoot":"","sources":["../../../../src/components/periodpicker/PeriodPicker.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAC,MAAM,EAAC,MAAM,SAAS,CAAC;AAK/B,oBAAY,KAAK,GAAG;IACnB,qCAAqC;IACrC,MAAM,EAAE,MAAM,CAAC;IAEf,mCAAmC;IACnC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAEnC,6BAA6B;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,4DAA4D;IAC5D,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC,iCAAiC;IACjC,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACpC,MAAM,EACN,QAAQ,EACR,qBAAqB,EACrB,UAAU,EACV,QAAQ,EACR,MAAM,EACN,iBAAiB,EACjB,QAAQ,EACR,GAAG,KAAK,EACR,EAAE,KAAK,eAmBP"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
import Inputs from './components/Inputs';
|
|
3
|
+
import Menu from './components/Menu';
|
|
4
|
+
import usePeriodName from './usePeriodName';
|
|
5
|
+
export default function PeriodPicker({ period, onChange, inputsHiddenByDefault, menuHidden, readOnly, locale, defaultPeriodName, timezone, ...props }) {
|
|
6
|
+
const [showInputs, setShowInputs] = useState(!inputsHiddenByDefault);
|
|
7
|
+
const periodName = usePeriodName(period, timezone) ?? defaultPeriodName;
|
|
8
|
+
return (React.createElement("div", { className: "di period-picker", "data-testid": props['data-testid'] },
|
|
9
|
+
(!inputsHiddenByDefault || showInputs) && (React.createElement(Inputs, { period: period, onChange: onChange, locale: locale, readOnly: readOnly, timezone: timezone })),
|
|
10
|
+
menuHidden || readOnly || (React.createElement(Menu, { periodName: periodName, onShowCustomPeriod: inputsHiddenByDefault ? setShowInputs : undefined, onChange: onChange, timezone: timezone }))));
|
|
11
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { Period } from '../types';
|
|
3
|
+
declare type Props = {
|
|
4
|
+
period: Period;
|
|
5
|
+
onChange: (period: Period) => void;
|
|
6
|
+
readOnly?: boolean;
|
|
7
|
+
locale?: string;
|
|
8
|
+
timezone?: string;
|
|
9
|
+
};
|
|
10
|
+
export default function Inputs({ period, onChange, readOnly, locale, timezone }: Props): JSX.Element;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=Inputs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Inputs.d.ts","sourceRoot":"","sources":["../../../../../src/components/periodpicker/components/Inputs.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAMhC,aAAK,KAAK,GAAG;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAC,EAAE,KAAK,eA2FnF"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import React, { useRef, useState } from 'react';
|
|
2
|
+
import DateTimeInput from '../../input/DateTimeInput';
|
|
3
|
+
const ONE_HOUR = 60 * 60 * 1000;
|
|
4
|
+
const TOGGLE_TIMEOUT = 300;
|
|
5
|
+
export default function Inputs({ period, onChange, readOnly, locale, timezone }) {
|
|
6
|
+
const [showWarningTarget, setShowWarningTarget] = useState('');
|
|
7
|
+
const [forceOpenEndDate, setForceOpenEndDate] = useState(false);
|
|
8
|
+
const warningTimeoutRef = useRef();
|
|
9
|
+
const startDate = new Date(period.tsStart);
|
|
10
|
+
const endDate = new Date(period.tsEnd);
|
|
11
|
+
function openEndDate() {
|
|
12
|
+
setForceOpenEndDate(true);
|
|
13
|
+
setTimeout(() => {
|
|
14
|
+
setForceOpenEndDate(false);
|
|
15
|
+
}, TOGGLE_TIMEOUT);
|
|
16
|
+
}
|
|
17
|
+
function showWarning(target) {
|
|
18
|
+
if (warningTimeoutRef.current) {
|
|
19
|
+
clearTimeout(warningTimeoutRef.current);
|
|
20
|
+
}
|
|
21
|
+
setShowWarningTarget(target);
|
|
22
|
+
warningTimeoutRef.current = setTimeout(() => setShowWarningTarget(''), 1000);
|
|
23
|
+
}
|
|
24
|
+
function handleChangeStartDate(timestamp, fromTextField) {
|
|
25
|
+
if (timestamp) {
|
|
26
|
+
const incorrect = period.tsEnd && timestamp > period.tsEnd;
|
|
27
|
+
const tsEnd = incorrect ? timestamp + ONE_HOUR : period.tsEnd;
|
|
28
|
+
onChange({
|
|
29
|
+
tsStart: timestamp,
|
|
30
|
+
tsEnd
|
|
31
|
+
});
|
|
32
|
+
if (!fromTextField) {
|
|
33
|
+
openEndDate();
|
|
34
|
+
}
|
|
35
|
+
if (incorrect) {
|
|
36
|
+
showWarning('date-to');
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
function handleChangeEndDate(timestamp) {
|
|
41
|
+
if (timestamp) {
|
|
42
|
+
const incorrect = period.tsStart && timestamp < period.tsStart;
|
|
43
|
+
const tsStart = incorrect ? timestamp - ONE_HOUR : period.tsStart;
|
|
44
|
+
onChange({
|
|
45
|
+
tsStart,
|
|
46
|
+
tsEnd: timestamp
|
|
47
|
+
});
|
|
48
|
+
if (incorrect) {
|
|
49
|
+
showWarning('date-from');
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return (React.createElement("span", { className: "inputs" },
|
|
54
|
+
React.createElement("span", { "data-testid": "from-wrapper" },
|
|
55
|
+
React.createElement(DateTimeInput, { timestamp: period.tsStart, onChange: handleChangeStartDate, warning: showWarningTarget === 'date-from', selectsStart: true, startDate: startDate, endDate: endDate, readOnly: readOnly, locale: locale, timezone: timezone })),
|
|
56
|
+
"\u00A0 - \u00A0",
|
|
57
|
+
React.createElement("span", { "data-testid": "to-wrapper" },
|
|
58
|
+
React.createElement(DateTimeInput, { forceOpen: forceOpenEndDate, timestamp: period.tsEnd, onChange: handleChangeEndDate, warning: showWarningTarget === 'date-to', selectsEnd: true, startDate: startDate, endDate: endDate, readOnly: readOnly, locale: locale, timezone: timezone }))));
|
|
59
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { Period } from '../types';
|
|
3
|
+
declare type Props = {
|
|
4
|
+
periodName: string | undefined;
|
|
5
|
+
timezone?: string;
|
|
6
|
+
onChange: (period: Period) => void;
|
|
7
|
+
onShowCustomPeriod: ((show: boolean) => void) | undefined;
|
|
8
|
+
};
|
|
9
|
+
export default function Menu({ onChange, onShowCustomPeriod, periodName, timezone }: Props): JSX.Element;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=Menu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Menu.d.ts","sourceRoot":"","sources":["../../../../../src/components/periodpicker/components/Menu.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAgBhC,aAAK,KAAK,GAAG;IACZ,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,kBAAkB,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CAC1D,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,EAAC,QAAQ,EAAE,kBAAkB,EAAE,UAAU,EAAE,QAAQ,EAAC,EAAE,KAAK,eA2KvF"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
import { Trans } from '../../../i18n';
|
|
3
|
+
import dayjs from 'dayjs';
|
|
4
|
+
import { Button, Popup } from '@deviceinsight/ng-ui-basic-components';
|
|
5
|
+
import DateInput from '../../input/DateInput';
|
|
6
|
+
import MonthPicker from './MonthPicker';
|
|
7
|
+
import imgIconCalendar from '../../../assets/svg/icon_calendar.svg';
|
|
8
|
+
import imgTriangleDown from '../../../assets/svg/triangle_down.svg';
|
|
9
|
+
import { createCurrentMonth, createCurrentWeek, createLastXDays, createToday, createWholeDay, createWholeMonth, createYesterday } from '../periods';
|
|
10
|
+
export default function Menu({ onChange, onShowCustomPeriod, periodName, timezone }) {
|
|
11
|
+
const [visible, setVisible] = useState(false);
|
|
12
|
+
const [showDatePicker, setShowDatePicker] = useState(false);
|
|
13
|
+
const [showMonthPicker, setShowMonthPicker] = useState(false);
|
|
14
|
+
const [datePickerDate, setDatePickerDate] = useState(Date.now());
|
|
15
|
+
function setPeriod(period) {
|
|
16
|
+
onChange(period);
|
|
17
|
+
setVisible(false);
|
|
18
|
+
if (onShowCustomPeriod) {
|
|
19
|
+
onShowCustomPeriod(false);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
function setPeriodSpecificDate(date) {
|
|
23
|
+
setPeriod(createWholeDay(date ?? Date.now(), timezone));
|
|
24
|
+
setShowDatePicker(false);
|
|
25
|
+
setDatePickerDate(date ?? undefined);
|
|
26
|
+
}
|
|
27
|
+
function setPeriodSpecificMonth(month, year) {
|
|
28
|
+
setPeriod(createWholeMonth(dayjs()
|
|
29
|
+
.year(year)
|
|
30
|
+
.month(month - 1)
|
|
31
|
+
.valueOf(), timezone));
|
|
32
|
+
setShowMonthPicker(false);
|
|
33
|
+
}
|
|
34
|
+
function toggleDatePicker() {
|
|
35
|
+
setShowDatePicker(!showDatePicker);
|
|
36
|
+
setShowMonthPicker(false);
|
|
37
|
+
}
|
|
38
|
+
function toggleMonthPicker() {
|
|
39
|
+
setShowMonthPicker(!showMonthPicker);
|
|
40
|
+
setShowDatePicker(false);
|
|
41
|
+
}
|
|
42
|
+
function handleCustomPeriodSelect() {
|
|
43
|
+
setVisible(false);
|
|
44
|
+
if (onShowCustomPeriod) {
|
|
45
|
+
onShowCustomPeriod(true);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return (React.createElement("div", null,
|
|
49
|
+
React.createElement(Popup, { active: visible, onHide: () => setVisible(false), handler: React.createElement(Button, { "data-testid": "time-period-menu-button", title: {
|
|
50
|
+
id: 'trend.calendarMenu.calendar.timePeriod',
|
|
51
|
+
defaultValue: 'Time Period'
|
|
52
|
+
}, onClick: () => setVisible((visible) => !visible) },
|
|
53
|
+
React.createElement(React.Fragment, null,
|
|
54
|
+
React.createElement("img", { src: imgIconCalendar, alt: "calendar icon", style: { width: 16, height: 16 } }),
|
|
55
|
+
"\u00A0",
|
|
56
|
+
!!periodName && (React.createElement("span", null,
|
|
57
|
+
"\u00A0",
|
|
58
|
+
periodName,
|
|
59
|
+
"\u00A0")),
|
|
60
|
+
React.createElement("img", { src: imgTriangleDown, alt: "triangle down", style: { width: 16, height: 16 } }))) },
|
|
61
|
+
React.createElement("div", { className: "di multimenu period-picker-multimenu" },
|
|
62
|
+
React.createElement("div", { className: `drop bottom ${visible ? 'show' : ''}` },
|
|
63
|
+
React.createElement("div", { className: `left-box ${showDatePicker ? 'show' : ''}` },
|
|
64
|
+
React.createElement(DateInput, { inline: true, value: datePickerDate, onChange: setPeriodSpecificDate })),
|
|
65
|
+
React.createElement("div", { className: `left-box ${showMonthPicker ? 'show' : ''}` },
|
|
66
|
+
React.createElement(MonthPicker, { onChange: setPeriodSpecificMonth })),
|
|
67
|
+
React.createElement("div", { className: "right-box" },
|
|
68
|
+
React.createElement("div", { className: "item", "data-testid": "today-button", onClick: () => setPeriod(createToday(timezone)) },
|
|
69
|
+
React.createElement("div", { className: "item-text" },
|
|
70
|
+
React.createElement(Trans, { i18nKey: "trend.calendarMenu.timePeriod.today" }, "Today"))),
|
|
71
|
+
React.createElement("div", { className: "item", "data-testid": "yesterday-button", onClick: () => setPeriod(createYesterday(timezone)) },
|
|
72
|
+
React.createElement("div", { className: "item-text" },
|
|
73
|
+
React.createElement(Trans, { i18nKey: "trend.calendarMenu.timePeriod.yesterday" }, "Yesterday"))),
|
|
74
|
+
React.createElement("div", { className: "item" },
|
|
75
|
+
React.createElement("div", { "data-testid": "last-7-days-button", className: "item-text", onClick: () => setPeriod(createLastXDays(7, timezone)) },
|
|
76
|
+
React.createElement(Trans, { i18nKey: "trend.calendarMenu.timePeriod.lastSevenDays" }, "Last 7 days")),
|
|
77
|
+
React.createElement("div", { className: "item-more icon triangle" },
|
|
78
|
+
React.createElement("div", { className: "item-more-submenu" }, [2, 3, 5, 10, 14, 30].map((days) => (React.createElement("div", { className: "subitem", key: days, onClick: () => setPeriod(createLastXDays(days, timezone)) }, days)))))),
|
|
79
|
+
React.createElement("div", { className: "item", "data-testid": "current-week-button", onClick: () => setPeriod(createCurrentWeek(timezone)) },
|
|
80
|
+
React.createElement("div", { className: "item-text" },
|
|
81
|
+
React.createElement(Trans, { i18nKey: "trend.calendarMenu.timePeriod.currentWeek" }, "Curr. Week"))),
|
|
82
|
+
React.createElement("div", { className: "item", "data-testid": "current-month-button", onClick: () => setPeriod(createCurrentMonth(timezone)) },
|
|
83
|
+
React.createElement("div", { className: "item-text" },
|
|
84
|
+
React.createElement(Trans, { i18nKey: "trend.calendarMenu.timePeriod.currentMonth" }, "Curr. Month"))),
|
|
85
|
+
React.createElement("div", { className: "item", "data-testid": "day-button", onClick: toggleDatePicker },
|
|
86
|
+
React.createElement("div", { className: "item-text" },
|
|
87
|
+
React.createElement(Trans, { i18nKey: "trend.calendarMenu.timePeriod.day" }, "Day"),
|
|
88
|
+
React.createElement("div", { className: "item-more icon dots" }))),
|
|
89
|
+
React.createElement("div", { className: "item", "data-testid": "month-button", onClick: toggleMonthPicker },
|
|
90
|
+
React.createElement("div", { className: "item-text" },
|
|
91
|
+
React.createElement(Trans, { i18nKey: "trend.calendarMenu.timePeriod.month" }, "Month"),
|
|
92
|
+
React.createElement("div", { className: "item-more icon dots" }))),
|
|
93
|
+
onShowCustomPeriod !== undefined && (React.createElement("div", { className: "item", "data-testid": "from-to-button", onClick: handleCustomPeriodSelect },
|
|
94
|
+
React.createElement("div", { className: "item-text" },
|
|
95
|
+
React.createElement(Trans, { i18nKey: "trend.calendarMenu.timePeriod.fromto" }, "From/to"))))))))));
|
|
96
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
declare type OwnProps = {
|
|
3
|
+
month?: number;
|
|
4
|
+
year?: number;
|
|
5
|
+
onChange: (month: number, year: number) => void;
|
|
6
|
+
};
|
|
7
|
+
declare type Props = OwnProps;
|
|
8
|
+
declare type State = {
|
|
9
|
+
selectedMonth: number;
|
|
10
|
+
selectedYear: number;
|
|
11
|
+
displayedYear: number;
|
|
12
|
+
};
|
|
13
|
+
export default class MonthPicker extends React.Component<Props, State> {
|
|
14
|
+
constructor(props: Props);
|
|
15
|
+
tdMonth: (month: number) => JSX.Element;
|
|
16
|
+
render(): JSX.Element;
|
|
17
|
+
}
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=MonthPicker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MonthPicker.d.ts","sourceRoot":"","sources":["../../../../../src/components/periodpicker/components/MonthPicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,aAAK,QAAQ,GAAG;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAChD,CAAC;AAEF,aAAK,KAAK,GAAG,QAAQ,CAAC;AAEtB,aAAK,KAAK,GAAG;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC;gBACzD,KAAK,EAAE,KAAK;IAWxB,OAAO,UAAW,MAAM,iBAiBtB;IAEF,MAAM;CAwDN"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import dayjs from 'dayjs';
|
|
3
|
+
import cx from 'classnames';
|
|
4
|
+
export default class MonthPicker extends React.Component {
|
|
5
|
+
constructor(props) {
|
|
6
|
+
super(props);
|
|
7
|
+
this.tdMonth = (month) => {
|
|
8
|
+
const { selectedMonth, selectedYear, displayedYear } = this.state;
|
|
9
|
+
return (React.createElement("td", { "data-testid": `month-${month}-button`, onClick: () => {
|
|
10
|
+
this.props.onChange(month, displayedYear);
|
|
11
|
+
this.setState({
|
|
12
|
+
selectedMonth: month,
|
|
13
|
+
selectedYear: displayedYear
|
|
14
|
+
});
|
|
15
|
+
}, className: cx({ selected: month === selectedMonth && displayedYear === selectedYear }) }, dayjs(`${selectedYear}/${month.toString().padStart(2, '0')}/01`, 'YYYY/MM/DD').format('MMM')));
|
|
16
|
+
};
|
|
17
|
+
const month = props.month !== null && props.month !== undefined ? props.month : dayjs().month() + 1;
|
|
18
|
+
const year = props.year !== null && props.year !== undefined ? props.year : dayjs().year();
|
|
19
|
+
this.state = {
|
|
20
|
+
selectedMonth: month,
|
|
21
|
+
selectedYear: year,
|
|
22
|
+
displayedYear: year
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
render() {
|
|
26
|
+
const { displayedYear } = this.state;
|
|
27
|
+
return (React.createElement("div", { className: "di monthpicker" },
|
|
28
|
+
React.createElement("div", { className: "pager" },
|
|
29
|
+
React.createElement("span", { className: "page-nav prev", onClick: () => {
|
|
30
|
+
this.setState({
|
|
31
|
+
displayedYear: displayedYear - 1
|
|
32
|
+
});
|
|
33
|
+
} }),
|
|
34
|
+
React.createElement("span", { className: "page-nav info" }, displayedYear),
|
|
35
|
+
React.createElement("span", { className: "page-nav next", onClick: () => {
|
|
36
|
+
this.setState({
|
|
37
|
+
displayedYear: displayedYear + 1
|
|
38
|
+
});
|
|
39
|
+
} })),
|
|
40
|
+
React.createElement("div", { className: "months" },
|
|
41
|
+
React.createElement("table", { style: {
|
|
42
|
+
margin: 'auto'
|
|
43
|
+
} },
|
|
44
|
+
React.createElement("tbody", null,
|
|
45
|
+
React.createElement("tr", null,
|
|
46
|
+
this.tdMonth(1),
|
|
47
|
+
this.tdMonth(2),
|
|
48
|
+
this.tdMonth(3)),
|
|
49
|
+
React.createElement("tr", null,
|
|
50
|
+
this.tdMonth(4),
|
|
51
|
+
this.tdMonth(5),
|
|
52
|
+
this.tdMonth(6)),
|
|
53
|
+
React.createElement("tr", null,
|
|
54
|
+
this.tdMonth(7),
|
|
55
|
+
this.tdMonth(8),
|
|
56
|
+
this.tdMonth(9)),
|
|
57
|
+
React.createElement("tr", null,
|
|
58
|
+
this.tdMonth(10),
|
|
59
|
+
this.tdMonth(11),
|
|
60
|
+
this.tdMonth(12)))))));
|
|
61
|
+
}
|
|
62
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import dayjs from 'dayjs';
|
|
2
|
+
import { Period } from './types';
|
|
3
|
+
export declare function dayjsTz(timezone: string | undefined, ts?: number | null | undefined): dayjs.Dayjs;
|
|
4
|
+
export declare function createToday(timezone: string | undefined): {
|
|
5
|
+
tsStart: number;
|
|
6
|
+
tsEnd: number;
|
|
7
|
+
};
|
|
8
|
+
export declare function createYesterday(timezone: string | undefined): {
|
|
9
|
+
tsStart: number;
|
|
10
|
+
tsEnd: number;
|
|
11
|
+
};
|
|
12
|
+
export declare function createCurrentWeek(timezone: string | undefined): {
|
|
13
|
+
tsStart: number;
|
|
14
|
+
tsEnd: number;
|
|
15
|
+
};
|
|
16
|
+
export declare function createCurrentMonth(timezone: string | undefined): {
|
|
17
|
+
tsStart: number;
|
|
18
|
+
tsEnd: number;
|
|
19
|
+
};
|
|
20
|
+
export declare function createWholeDay(tsMiddle: number, timezone: string | undefined): {
|
|
21
|
+
tsStart: number;
|
|
22
|
+
tsEnd: number;
|
|
23
|
+
};
|
|
24
|
+
export declare function createWholeMonth(tsMiddle: number, timezone: string | undefined): {
|
|
25
|
+
tsStart: number;
|
|
26
|
+
tsEnd: number;
|
|
27
|
+
};
|
|
28
|
+
export declare function createLastXDays(days: number, timezone: string | undefined): {
|
|
29
|
+
tsStart: number;
|
|
30
|
+
tsEnd: number;
|
|
31
|
+
};
|
|
32
|
+
export declare function periodToDays({ tsStart, tsEnd }: Period): number;
|
|
33
|
+
//# sourceMappingURL=periods.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"periods.d.ts","sourceRoot":"","sources":["../../../../src/components/periodpicker/periods.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAC,MAAM,EAAC,MAAM,SAAS,CAAC;AAK/B,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,eAEnF;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS;;;EAKvD;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS;;;EAK3D;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS;;;EAK7D;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS;;;EAK9D;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS;;;EAK5E;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS;;;EAK9E;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS;;;EAQzE;AAID,wBAAgB,YAAY,CAAC,EAAC,OAAO,EAAE,KAAK,EAAC,EAAE,MAAM,GAAG,MAAM,CAE7D"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import dayjs from 'dayjs';
|
|
2
|
+
import timezone from 'dayjs/plugin/timezone';
|
|
3
|
+
import utc from 'dayjs/plugin/utc';
|
|
4
|
+
dayjs.extend(timezone);
|
|
5
|
+
dayjs.extend(utc);
|
|
6
|
+
export function dayjsTz(timezone, ts) {
|
|
7
|
+
return timezone ? dayjs.tz(ts, timezone) : dayjs(ts);
|
|
8
|
+
}
|
|
9
|
+
export function createToday(timezone) {
|
|
10
|
+
return {
|
|
11
|
+
tsStart: dayjsTz(timezone).startOf('day').valueOf(),
|
|
12
|
+
tsEnd: dayjsTz(timezone).endOf('day').valueOf()
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
export function createYesterday(timezone) {
|
|
16
|
+
return {
|
|
17
|
+
tsStart: dayjsTz(timezone).subtract(1, 'day').startOf('day').valueOf(),
|
|
18
|
+
tsEnd: dayjsTz(timezone).subtract(1, 'day').endOf('day').valueOf()
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export function createCurrentWeek(timezone) {
|
|
22
|
+
return {
|
|
23
|
+
tsStart: dayjsTz(timezone).startOf('week').valueOf(),
|
|
24
|
+
tsEnd: dayjsTz(timezone).endOf('week').valueOf()
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
export function createCurrentMonth(timezone) {
|
|
28
|
+
return {
|
|
29
|
+
tsStart: dayjsTz(timezone).startOf('month').valueOf(),
|
|
30
|
+
tsEnd: dayjsTz(timezone).endOf('month').valueOf()
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export function createWholeDay(tsMiddle, timezone) {
|
|
34
|
+
return {
|
|
35
|
+
tsStart: dayjsTz(timezone, tsMiddle).startOf('day').valueOf(),
|
|
36
|
+
tsEnd: dayjsTz(timezone, tsMiddle).endOf('day').valueOf()
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
export function createWholeMonth(tsMiddle, timezone) {
|
|
40
|
+
return {
|
|
41
|
+
tsStart: dayjsTz(timezone, tsMiddle).startOf('month').valueOf(),
|
|
42
|
+
tsEnd: dayjsTz(timezone, tsMiddle).endOf('month').valueOf()
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
export function createLastXDays(days, timezone) {
|
|
46
|
+
const tsStart = dayjsTz(timezone)
|
|
47
|
+
.subtract(days - 1, 'days')
|
|
48
|
+
.startOf('day')
|
|
49
|
+
.valueOf();
|
|
50
|
+
const tsEnd = dayjs().endOf('day').valueOf();
|
|
51
|
+
return { tsStart, tsEnd };
|
|
52
|
+
}
|
|
53
|
+
const DAY_TO_MILLIS = 1000 * 60 * 60 * 24;
|
|
54
|
+
export function periodToDays({ tsStart, tsEnd }) {
|
|
55
|
+
return Math.round((tsEnd - tsStart + 1) / DAY_TO_MILLIS);
|
|
56
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/periodpicker/types.ts"],"names":[],"mappings":"AAAA,oBAAY,MAAM,GAAG;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACd,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|