@idea-fragments/react-components-zendesk 0.1.0 → 0.1.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/.node-version +1 -0
- package/.storybook/ThemeProvider.tsx +15 -0
- package/.storybook/main.js +13 -0
- package/.storybook/preview.js +20 -0
- package/dist/alert.js +34148 -0
- package/dist/alert.js.map +1 -0
- package/dist/forms.js +101816 -0
- package/dist/forms.js.map +1 -0
- package/dist/types/components/Alert.d.ts +24 -0
- package/dist/types/components/Alert.d.ts.map +1 -0
- package/dist/types/components/Drawer.d.ts +18 -0
- package/dist/types/components/Drawer.d.ts.map +1 -0
- package/dist/types/components/Icon.d.ts +15 -0
- package/dist/types/components/Icon.d.ts.map +1 -0
- package/dist/types/components/Modal.d.ts +31 -0
- package/dist/types/components/Modal.d.ts.map +1 -0
- package/dist/types/components/StyledComponentProps.type.d.ts +4 -0
- package/dist/types/components/StyledComponentProps.type.d.ts.map +1 -0
- package/dist/types/components/StyledProps.type.d.ts +4 -0
- package/dist/types/components/StyledProps.type.d.ts.map +1 -0
- package/dist/types/components/calendars/Legendable.type.d.ts +5 -0
- package/dist/types/components/calendars/Legendable.type.d.ts.map +1 -0
- package/dist/types/components/calendars/TinyCalendar.d.ts +25 -0
- package/dist/types/components/calendars/TinyCalendar.d.ts.map +1 -0
- package/dist/types/components/calendars/TinyMonthYearCalendar.d.ts +11 -0
- package/dist/types/components/calendars/TinyMonthYearCalendar.d.ts.map +1 -0
- package/dist/types/components/calendars/blocks/Legend.d.ts +12 -0
- package/dist/types/components/calendars/blocks/Legend.d.ts.map +1 -0
- package/dist/types/components/calendars/blocks/MonthPicker.d.ts +8 -0
- package/dist/types/components/calendars/blocks/MonthPicker.d.ts.map +1 -0
- package/dist/types/components/calendars/blocks/MonthYearPicker.d.ts +16 -0
- package/dist/types/components/calendars/blocks/MonthYearPicker.d.ts.map +1 -0
- package/dist/types/components/calendars/blocks/YearPicker.d.ts +10 -0
- package/dist/types/components/calendars/blocks/YearPicker.d.ts.map +1 -0
- package/dist/types/components/forms/Button.d.ts +41 -0
- package/dist/types/components/forms/Button.d.ts.map +1 -0
- package/dist/types/components/forms/Checkbox.d.ts +10 -0
- package/dist/types/components/forms/Checkbox.d.ts.map +1 -0
- package/dist/types/components/forms/CycleButton.d.ts +14 -0
- package/dist/types/components/forms/CycleButton.d.ts.map +1 -0
- package/dist/types/components/forms/CycleButton.stories.d.ts +16 -0
- package/dist/types/components/forms/CycleButton.stories.d.ts.map +1 -0
- package/dist/types/components/forms/Form.d.ts +9 -0
- package/dist/types/components/forms/Form.d.ts.map +1 -0
- package/dist/types/components/forms/Hint.d.ts +2 -0
- package/dist/types/components/forms/Hint.d.ts.map +1 -0
- package/dist/types/components/forms/IconButton.d.ts +6 -0
- package/dist/types/components/forms/IconButton.d.ts.map +1 -0
- package/dist/types/components/forms/Label.d.ts +2 -0
- package/dist/types/components/forms/Label.d.ts.map +1 -0
- package/dist/types/components/forms/TaggedToggle.d.ts +8 -0
- package/dist/types/components/forms/TaggedToggle.d.ts.map +1 -0
- package/dist/types/components/forms/TaggedToggle.stories.d.ts +12 -0
- package/dist/types/components/forms/TaggedToggle.stories.d.ts.map +1 -0
- package/dist/types/components/forms/Toggle.d.ts +12 -0
- package/dist/types/components/forms/Toggle.d.ts.map +1 -0
- package/dist/types/components/forms/Toggle.stories.d.ts +18 -0
- package/dist/types/components/forms/Toggle.stories.d.ts.map +1 -0
- package/dist/types/components/forms/ValidatedFormProps.type.d.ts +6 -0
- package/dist/types/components/forms/ValidatedFormProps.type.d.ts.map +1 -0
- package/dist/types/components/forms/Validation.type.d.ts +9 -0
- package/dist/types/components/forms/Validation.type.d.ts.map +1 -0
- package/dist/types/components/forms/buttonMixins.d.ts +23 -0
- package/dist/types/components/forms/buttonMixins.d.ts.map +1 -0
- package/dist/types/components/forms/formField.types.d.ts +23 -0
- package/dist/types/components/forms/formField.types.d.ts.map +1 -0
- package/dist/types/components/forms/selectors/BooleanSelector.d.ts +11 -0
- package/dist/types/components/forms/selectors/BooleanSelector.d.ts.map +1 -0
- package/dist/types/components/forms/selectors/DatePickerSelector.d.ts +19 -0
- package/dist/types/components/forms/selectors/DatePickerSelector.d.ts.map +1 -0
- package/dist/types/components/forms/selectors/Dropdown/Item.d.ts +19 -0
- package/dist/types/components/forms/selectors/Dropdown/Item.d.ts.map +1 -0
- package/dist/types/components/forms/selectors/Dropdown.d.ts +28 -0
- package/dist/types/components/forms/selectors/Dropdown.d.ts.map +1 -0
- package/dist/types/components/forms/selectors/MonthYearSelector.d.ts +9 -0
- package/dist/types/components/forms/selectors/MonthYearSelector.d.ts.map +1 -0
- package/dist/types/components/forms/selectors/MultiSelector.d.ts +9 -0
- package/dist/types/components/forms/selectors/MultiSelector.d.ts.map +1 -0
- package/dist/types/components/forms/selectors/SearchableSelector.d.ts +8 -0
- package/dist/types/components/forms/selectors/SearchableSelector.d.ts.map +1 -0
- package/dist/types/components/forms/selectors/Selector.d.ts +4 -0
- package/dist/types/components/forms/selectors/Selector.d.ts.map +1 -0
- package/dist/types/components/forms/selectors/SelectorEmptyState.d.ts +2 -0
- package/dist/types/components/forms/selectors/SelectorEmptyState.d.ts.map +1 -0
- package/dist/types/components/forms/selectors/types.d.ts +41 -0
- package/dist/types/components/forms/selectors/types.d.ts.map +1 -0
- package/dist/types/components/forms/textfields/EmailTextField.d.ts +4 -0
- package/dist/types/components/forms/textfields/EmailTextField.d.ts.map +1 -0
- package/dist/types/components/forms/textfields/NumberTextField.d.ts +4 -0
- package/dist/types/components/forms/textfields/NumberTextField.d.ts.map +1 -0
- package/dist/types/components/forms/textfields/PasswordTextField.d.ts +8 -0
- package/dist/types/components/forms/textfields/PasswordTextField.d.ts.map +1 -0
- package/dist/types/components/forms/textfields/TextArea.d.ts +9 -0
- package/dist/types/components/forms/textfields/TextArea.d.ts.map +1 -0
- package/dist/types/components/forms/textfields/TextField.d.ts +14 -0
- package/dist/types/components/forms/textfields/TextField.d.ts.map +1 -0
- package/dist/types/components/forms/textfields/TextFieldWrapper.d.ts +13 -0
- package/dist/types/components/forms/textfields/TextFieldWrapper.d.ts.map +1 -0
- package/dist/types/components/forms/validationStates.d.ts +7 -0
- package/dist/types/components/forms/validationStates.d.ts.map +1 -0
- package/dist/types/components/layout/AppBar.d.ts +14 -0
- package/dist/types/components/layout/AppBar.d.ts.map +1 -0
- package/dist/types/components/layout/AppBarLayout.d.ts +15 -0
- package/dist/types/components/layout/AppBarLayout.d.ts.map +1 -0
- package/dist/types/components/layout/Carousel.d.ts +13 -0
- package/dist/types/components/layout/Carousel.d.ts.map +1 -0
- package/dist/types/components/layout/Container.d.ts +4 -0
- package/dist/types/components/layout/Container.d.ts.map +1 -0
- package/dist/types/components/layout/FlexBlock.d.ts +19 -0
- package/dist/types/components/layout/FlexBlock.d.ts.map +1 -0
- package/dist/types/components/layout/FlexBox.d.ts +18 -0
- package/dist/types/components/layout/FlexBox.d.ts.map +1 -0
- package/dist/types/components/layout/Grid.d.ts +4 -0
- package/dist/types/components/layout/Grid.d.ts.map +1 -0
- package/dist/types/components/layout/Line.d.ts +6 -0
- package/dist/types/components/layout/Line.d.ts.map +1 -0
- package/dist/types/components/layout/OpacityTransition.d.ts +4 -0
- package/dist/types/components/layout/OpacityTransition.d.ts.map +1 -0
- package/dist/types/components/layout/OverflowMenu.d.ts +13 -0
- package/dist/types/components/layout/OverflowMenu.d.ts.map +1 -0
- package/dist/types/components/layout/Section.d.ts +6 -0
- package/dist/types/components/layout/Section.d.ts.map +1 -0
- package/dist/types/components/layout/Sidebar.d.ts +12 -0
- package/dist/types/components/layout/Sidebar.d.ts.map +1 -0
- package/dist/types/components/layout/SidebarLayout.d.ts +5 -0
- package/dist/types/components/layout/SidebarLayout.d.ts.map +1 -0
- package/dist/types/components/layout/Tabs.d.ts +3 -0
- package/dist/types/components/layout/Tabs.d.ts.map +1 -0
- package/dist/types/components/loaders/AsyncLoadable.d.ts +13 -0
- package/dist/types/components/loaders/AsyncLoadable.d.ts.map +1 -0
- package/dist/types/components/loaders/Dots.d.ts +9 -0
- package/dist/types/components/loaders/Dots.d.ts.map +1 -0
- package/dist/types/components/loaders/Loadable.d.ts +10 -0
- package/dist/types/components/loaders/Loadable.d.ts.map +1 -0
- package/dist/types/components/loaders/Loader.d.ts +15 -0
- package/dist/types/components/loaders/Loader.d.ts.map +1 -0
- package/dist/types/components/loaders/TranslucentLoader.d.ts +9 -0
- package/dist/types/components/loaders/TranslucentLoader.d.ts.map +1 -0
- package/dist/types/components/mobx/Alert.d.ts +4 -0
- package/dist/types/components/mobx/Alert.d.ts.map +1 -0
- package/dist/types/components/mobx/Drawer.d.ts +5 -0
- package/dist/types/components/mobx/Drawer.d.ts.map +1 -0
- package/dist/types/components/mobx/ErrorBoundary.d.ts +24 -0
- package/dist/types/components/mobx/ErrorBoundary.d.ts.map +1 -0
- package/dist/types/components/mobx/Modal.d.ts +4 -0
- package/dist/types/components/mobx/Modal.d.ts.map +1 -0
- package/dist/types/components/navigation/Breadcrumbs.d.ts +3 -0
- package/dist/types/components/navigation/Breadcrumbs.d.ts.map +1 -0
- package/dist/types/components/navigation/ButtonLink.d.ts +25 -0
- package/dist/types/components/navigation/ButtonLink.d.ts.map +1 -0
- package/dist/types/components/navigation/InlineButtonLink.d.ts +3 -0
- package/dist/types/components/navigation/InlineButtonLink.d.ts.map +1 -0
- package/dist/types/components/notification/InfoPanel.d.ts +18 -0
- package/dist/types/components/notification/InfoPanel.d.ts.map +1 -0
- package/dist/types/components/notification/Notification.d.ts +14 -0
- package/dist/types/components/notification/Notification.d.ts.map +1 -0
- package/dist/types/components/tables/MobileTable/Row.d.ts +14 -0
- package/dist/types/components/tables/MobileTable/Row.d.ts.map +1 -0
- package/dist/types/components/tables/MobileTable.d.ts +9 -0
- package/dist/types/components/tables/MobileTable.d.ts.map +1 -0
- package/dist/types/components/tables/NiceTable.d.ts +12 -0
- package/dist/types/components/tables/NiceTable.d.ts.map +1 -0
- package/dist/types/components/tables/Row.d.ts +19 -0
- package/dist/types/components/tables/Row.d.ts.map +1 -0
- package/dist/types/components/tables/SimpleTable.d.ts +9 -0
- package/dist/types/components/tables/SimpleTable.d.ts.map +1 -0
- package/dist/types/components/tables/Table.d.ts +73 -0
- package/dist/types/components/tables/Table.d.ts.map +1 -0
- package/dist/types/components/tables/blocks/Header.d.ts +17 -0
- package/dist/types/components/tables/blocks/Header.d.ts.map +1 -0
- package/dist/types/components/tables/blocks/HelpText.d.ts +5 -0
- package/dist/types/components/tables/blocks/HelpText.d.ts.map +1 -0
- package/dist/types/components/tables/blocks/Pagination.d.ts +8 -0
- package/dist/types/components/tables/blocks/Pagination.d.ts.map +1 -0
- package/dist/types/components/tables/blocks/TableFilter.d.ts +9 -0
- package/dist/types/components/tables/blocks/TableFilter.d.ts.map +1 -0
- package/dist/types/components/tables/blocks/Title.d.ts +7 -0
- package/dist/types/components/tables/blocks/Title.d.ts.map +1 -0
- package/dist/types/components/tables/index.d.ts +9 -0
- package/dist/types/components/tables/index.d.ts.map +1 -0
- package/dist/types/components/tables/utils.d.ts +2 -0
- package/dist/types/components/tables/utils.d.ts.map +1 -0
- package/dist/types/components/tags/Chip.d.ts +18 -0
- package/dist/types/components/tags/Chip.d.ts.map +1 -0
- package/dist/types/components/tags/Tag.d.ts +8 -0
- package/dist/types/components/tags/Tag.d.ts.map +1 -0
- package/dist/types/components/text/Text.d.ts +7 -0
- package/dist/types/components/text/Text.d.ts.map +1 -0
- package/dist/types/components/tooltips/IconTooltip.d.ts +10 -0
- package/dist/types/components/tooltips/IconTooltip.d.ts.map +1 -0
- package/dist/types/components/tooltips/IconTooltip.stories.d.ts +18 -0
- package/dist/types/components/tooltips/IconTooltip.stories.d.ts.map +1 -0
- package/dist/types/components/tooltips/Tooltip.d.ts +14 -0
- package/dist/types/components/tooltips/Tooltip.d.ts.map +1 -0
- package/dist/types/hooks/useIsMounted.d.ts +2 -0
- package/dist/types/hooks/useIsMounted.d.ts.map +1 -0
- package/dist/types/hooks/useLoader.d.ts +10 -0
- package/dist/types/hooks/useLoader.d.ts.map +1 -0
- package/dist/types/hooks/useLoaderV2.d.ts +15 -0
- package/dist/types/hooks/useLoaderV2.d.ts.map +1 -0
- package/dist/types/stores/useStores.d.ts +5 -0
- package/dist/types/stores/useStores.d.ts.map +1 -0
- package/dist/types/styles/DeviceSizeWatcher.d.ts +27 -0
- package/dist/types/styles/DeviceSizeWatcher.d.ts.map +1 -0
- package/dist/types/styles/alignments.d.ts +8 -0
- package/dist/types/styles/alignments.d.ts.map +1 -0
- package/dist/types/styles/colors.d.ts +35 -0
- package/dist/types/styles/colors.d.ts.map +1 -0
- package/dist/types/styles/deviceSizes.d.ts +9 -0
- package/dist/types/styles/deviceSizes.d.ts.map +1 -0
- package/dist/types/styles/mediaQueries.d.ts +21 -0
- package/dist/types/styles/mediaQueries.d.ts.map +1 -0
- package/dist/types/styles/mixins.d.ts +8 -0
- package/dist/types/styles/mixins.d.ts.map +1 -0
- package/dist/types/styles/spacings.d.ts +15 -0
- package/dist/types/styles/spacings.d.ts.map +1 -0
- package/dist/types/styles/theme/Theme.type.d.ts +79 -0
- package/dist/types/styles/theme/Theme.type.d.ts.map +1 -0
- package/dist/types/styles/theme/base.d.ts +3 -0
- package/dist/types/styles/theme/base.d.ts.map +1 -0
- package/dist/types/styles/theme/dark.d.ts +3 -0
- package/dist/types/styles/theme/dark.d.ts.map +1 -0
- package/dist/types/styles/theme/light.d.ts +3 -0
- package/dist/types/styles/theme/light.d.ts.map +1 -0
- package/dist/types/styles/theme/light2.d.ts +3 -0
- package/dist/types/styles/theme/light2.d.ts.map +1 -0
- package/dist/types/styles/theme/useTheme.d.ts +3 -0
- package/dist/types/styles/theme/useTheme.d.ts.map +1 -0
- package/dist/types/styles/types.d.ts +17 -0
- package/dist/types/styles/types.d.ts.map +1 -0
- package/dist/types/styles/typography.d.ts +56 -0
- package/dist/types/styles/typography.d.ts.map +1 -0
- package/dist/types/utils/NavBarScrollWatcher.d.ts +7 -0
- package/dist/types/utils/NavBarScrollWatcher.d.ts.map +1 -0
- package/dist/types/utils/arrayHelpers.d.ts +23 -0
- package/dist/types/utils/arrayHelpers.d.ts.map +1 -0
- package/dist/types/utils/dateTime/DateRange.type.d.ts +6 -0
- package/dist/types/utils/dateTime/DateRange.type.d.ts.map +1 -0
- package/dist/types/utils/dateTime/calendar.d.ts +18 -0
- package/dist/types/utils/dateTime/calendar.d.ts.map +1 -0
- package/dist/types/utils/dateTimeHelpers.d.ts +23 -0
- package/dist/types/utils/dateTimeHelpers.d.ts.map +1 -0
- package/dist/types/utils/function.types.d.ts +2 -0
- package/dist/types/utils/function.types.d.ts.map +1 -0
- package/dist/types/utils/functionHelpers.d.ts +7 -0
- package/dist/types/utils/functionHelpers.d.ts.map +1 -0
- package/dist/types/utils/idGenerator.d.ts +3 -0
- package/dist/types/utils/idGenerator.d.ts.map +1 -0
- package/dist/types/utils/logging/Logger.d.ts +16 -0
- package/dist/types/utils/logging/Logger.d.ts.map +1 -0
- package/dist/types/utils/logging/Logger.type.d.ts +7 -0
- package/dist/types/utils/logging/Logger.type.d.ts.map +1 -0
- package/dist/types/utils/logging/loggable.d.ts +7 -0
- package/dist/types/utils/logging/loggable.d.ts.map +1 -0
- package/dist/types/utils/logging/with_module_logging.d.ts +3 -0
- package/dist/types/utils/logging/with_module_logging.d.ts.map +1 -0
- package/dist/types/utils/numberHelpers.d.ts +3 -0
- package/dist/types/utils/numberHelpers.d.ts.map +1 -0
- package/dist/types/utils/typeCheckers.d.ts +5 -0
- package/dist/types/utils/typeCheckers.d.ts.map +1 -0
- package/dist/types/utils/validateFields.d.ts +13 -0
- package/dist/types/utils/validateFields.d.ts.map +1 -0
- package/{dist → entries}/alert.ts +0 -0
- package/{dist → entries}/forms.ts +0 -0
- package/{dist → entries}/hooks.ts +0 -0
- package/{dist → entries}/icon.ts +0 -0
- package/{dist → entries}/layouts.ts +0 -0
- package/{dist → entries}/loaders.ts +0 -0
- package/{dist → entries}/mobx.ts +0 -0
- package/{dist → entries}/modal.ts +0 -0
- package/{dist → entries}/navigation.ts +0 -0
- package/{dist → entries}/notifications.ts +0 -0
- package/{dist → entries}/styles.ts +0 -0
- package/{dist → entries}/tables.ts +0 -0
- package/{dist → entries}/tags.ts +0 -0
- package/{dist → entries}/text.ts +0 -0
- package/{dist → entries}/tooltips.ts +0 -0
- package/{dist → entries}/types.ts +0 -0
- package/{dist → entries}/utils.ts +0 -0
- package/package.json +7 -5
- package/react_components_zendesk.iml +9 -0
- package/rollup.config.js +40 -0
- package/src/GlobalStyle.js +43 -0
- package/src/calendarCss.js +2 -0
- package/src/components/Alert.tsx +175 -0
- package/src/components/Drawer.tsx +244 -0
- package/src/components/Icon.tsx +43 -0
- package/src/components/Modal.tsx +206 -0
- package/src/components/StyledComponentProps.type.ts +3 -0
- package/src/components/StyledProps.type.ts +4 -0
- package/src/components/calendars/Legendable.type.tsx +4 -0
- package/src/components/calendars/TinyCalendar.tsx +185 -0
- package/src/components/calendars/TinyMonthYearCalendar.tsx +57 -0
- package/src/components/calendars/blocks/Legend.tsx +44 -0
- package/src/components/calendars/blocks/MonthPicker.tsx +54 -0
- package/src/components/calendars/blocks/MonthYearPicker.tsx +101 -0
- package/src/components/calendars/blocks/YearPicker.tsx +44 -0
- package/src/components/forms/Button.tsx +214 -0
- package/src/components/forms/Checkbox.tsx +99 -0
- package/src/components/forms/CycleButton.stories.tsx +23 -0
- package/src/components/forms/CycleButton.tsx +52 -0
- package/src/components/forms/Form.tsx +43 -0
- package/src/components/forms/Hint.tsx +12 -0
- package/src/components/forms/IconButton.tsx +29 -0
- package/src/components/forms/Label.tsx +9 -0
- package/src/components/forms/TaggedToggle.stories.tsx +18 -0
- package/src/components/forms/TaggedToggle.tsx +19 -0
- package/src/components/forms/Toggle.stories.tsx +30 -0
- package/src/components/forms/Toggle.tsx +62 -0
- package/src/components/forms/ValidatedFormProps.type.ts +3 -0
- package/src/components/forms/Validation.type.ts +10 -0
- package/src/components/forms/buttonMixins.ts +74 -0
- package/src/components/forms/formField.types.ts +26 -0
- package/src/components/forms/selectors/BooleanSelector.tsx +71 -0
- package/src/components/forms/selectors/DatePickerSelector.tsx +88 -0
- package/src/components/forms/selectors/Dropdown/Item.tsx +34 -0
- package/src/components/forms/selectors/Dropdown.tsx +410 -0
- package/src/components/forms/selectors/MonthYearSelector.tsx +54 -0
- package/src/components/forms/selectors/MultiSelector.tsx +58 -0
- package/src/components/forms/selectors/SearchableSelector.tsx +120 -0
- package/src/components/forms/selectors/Selector.tsx +55 -0
- package/src/components/forms/selectors/SelectorEmptyState.tsx +5 -0
- package/src/components/forms/selectors/types.ts +43 -0
- package/src/components/forms/textfields/EmailTextField.tsx +7 -0
- package/src/components/forms/textfields/NumberTextField.tsx +17 -0
- package/src/components/forms/textfields/PasswordTextField.tsx +12 -0
- package/src/components/forms/textfields/TextArea.tsx +25 -0
- package/src/components/forms/textfields/TextField.tsx +45 -0
- package/src/components/forms/textfields/TextFieldWrapper.tsx +120 -0
- package/src/components/forms/validationStates.ts +6 -0
- package/src/components/layout/AppBar.tsx +137 -0
- package/src/components/layout/AppBarLayout.tsx +55 -0
- package/src/components/layout/Carousel.tsx +44 -0
- package/src/components/layout/Container.tsx +43 -0
- package/src/components/layout/FlexBlock.tsx +122 -0
- package/src/components/layout/FlexBox.tsx +69 -0
- package/src/components/layout/Grid.tsx +23 -0
- package/src/components/layout/Line.tsx +13 -0
- package/src/components/layout/OpacityTransition.tsx +6 -0
- package/src/components/layout/OverflowMenu.tsx +45 -0
- package/src/components/layout/Section.tsx +41 -0
- package/src/components/layout/Sidebar.tsx +107 -0
- package/src/components/layout/SidebarLayout.tsx +32 -0
- package/src/components/layout/Tabs.tsx +39 -0
- package/src/components/loaders/AsyncLoadable.tsx +57 -0
- package/src/components/loaders/Dots.tsx +16 -0
- package/src/components/loaders/Loadable.tsx +99 -0
- package/src/components/loaders/Loader.tsx +52 -0
- package/src/components/loaders/TranslucentLoader.tsx +49 -0
- package/src/components/mobx/Alert.tsx +33 -0
- package/src/components/mobx/Drawer.tsx +13 -0
- package/src/components/mobx/ErrorBoundary.tsx +56 -0
- package/src/components/mobx/Modal.tsx +44 -0
- package/src/components/navigation/Breadcrumbs.tsx +49 -0
- package/src/components/navigation/ButtonLink.tsx +55 -0
- package/src/components/navigation/InlineButtonLink.tsx +9 -0
- package/src/components/notification/InfoPanel.tsx +70 -0
- package/src/components/notification/Notification.tsx +51 -0
- package/src/components/tables/MobileTable/Row.tsx +147 -0
- package/src/components/tables/MobileTable.tsx +67 -0
- package/src/components/tables/NiceTable.tsx +81 -0
- package/src/components/tables/Row.tsx +84 -0
- package/src/components/tables/SimpleTable.tsx +99 -0
- package/src/components/tables/Table.tsx +153 -0
- package/src/components/tables/blocks/Header.tsx +119 -0
- package/src/components/tables/blocks/HelpText.tsx +9 -0
- package/src/components/tables/blocks/Pagination.tsx +85 -0
- package/src/components/tables/blocks/TableFilter.tsx +56 -0
- package/src/components/tables/blocks/Title.tsx +6 -0
- package/src/components/tables/index.tsx +106 -0
- package/src/components/tables/utils.ts +1 -0
- package/src/components/tags/Chip.tsx +44 -0
- package/src/components/tags/Tag.tsx +23 -0
- package/src/components/text/Header.js +55 -0
- package/src/components/text/Hint.js +25 -0
- package/src/components/text/Label.js +18 -0
- package/src/components/text/Paragraph.js +35 -0
- package/src/components/text/Text.tsx +33 -0
- package/src/components/tooltips/IconTooltip.stories.tsx +20 -0
- package/src/components/tooltips/IconTooltip.tsx +25 -0
- package/src/components/tooltips/Tooltip.tsx +30 -0
- package/src/global.d.ts +29 -0
- package/src/hooks/useIsMounted.ts +11 -0
- package/src/hooks/useLoader.tsx +73 -0
- package/src/hooks/useLoaderV2.tsx +51 -0
- package/src/index.css +34 -0
- package/src/stores/useStores.tsx +11 -0
- package/src/stories/Introduction.stories.mdx +211 -0
- package/src/stories/assets/code-brackets.svg +1 -0
- package/src/stories/assets/colors.svg +1 -0
- package/src/stories/assets/comments.svg +1 -0
- package/src/stories/assets/direction.svg +1 -0
- package/src/stories/assets/flow.svg +1 -0
- package/src/stories/assets/plugin.svg +1 -0
- package/src/stories/assets/repo.svg +1 -0
- package/src/stories/assets/stackalt.svg +1 -0
- package/src/styles/DeviceSizeWatcher.ts +113 -0
- package/src/styles/alignments.ts +9 -0
- package/src/styles/colors.ts +51 -0
- package/src/styles/deviceSizes.ts +28 -0
- package/src/styles/mediaQueries.ts +83 -0
- package/src/styles/mixins.ts +23 -0
- package/src/styles/spacings.ts +16 -0
- package/src/styles/theme/Theme.type.ts +76 -0
- package/src/styles/theme/base.ts +47 -0
- package/src/styles/theme/dark.ts +36 -0
- package/src/styles/theme/light.ts +44 -0
- package/src/styles/theme/light2.ts +22 -0
- package/src/styles/theme/useTheme.ts +5 -0
- package/src/styles/types.ts +18 -0
- package/src/styles/typography.ts +67 -0
- package/src/utils/NavBarScrollWatcher.ts +59 -0
- package/src/utils/arrayHelpers.ts +56 -0
- package/src/utils/dateTime/DateRange.type.ts +6 -0
- package/src/utils/dateTime/calendar.ts +23 -0
- package/src/utils/dateTimeHelpers.ts +105 -0
- package/src/utils/function.types.ts +1 -0
- package/src/utils/functionHelpers.ts +23 -0
- package/src/utils/idGenerator.ts +8 -0
- package/src/utils/logging/Logger.ts +34 -0
- package/src/utils/logging/Logger.type.ts +7 -0
- package/src/utils/logging/loggable.tsx +17 -0
- package/src/utils/logging/with_module_logging.ts +8 -0
- package/src/utils/numberHelpers.ts +4 -0
- package/src/utils/typeCheckers.ts +6 -0
- package/src/utils/types.d.ts +1 -0
- package/src/utils/validateFields.ts +14 -0
- package/src/zendeskGardenCss.js +15 -0
- package/tsconfig.json +30 -0
- package/type_defs/GlobalStyle.d.ts +2 -0
- package/type_defs/GlobalStyle.d.ts.map +1 -0
- package/type_defs/calendarCss.d.ts +2 -0
- package/type_defs/calendarCss.d.ts.map +1 -0
- package/type_defs/components/Alert.d.ts +24 -0
- package/type_defs/components/Alert.d.ts.map +1 -0
- package/type_defs/components/Drawer.d.ts +18 -0
- package/type_defs/components/Drawer.d.ts.map +1 -0
- package/type_defs/components/Icon.d.ts +15 -0
- package/type_defs/components/Icon.d.ts.map +1 -0
- package/type_defs/components/Modal.d.ts +31 -0
- package/type_defs/components/Modal.d.ts.map +1 -0
- package/type_defs/components/StyledComponentProps.type.d.ts +4 -0
- package/type_defs/components/StyledComponentProps.type.d.ts.map +1 -0
- package/type_defs/components/StyledProps.type.d.ts +4 -0
- package/type_defs/components/StyledProps.type.d.ts.map +1 -0
- package/type_defs/components/calendars/Legendable.type.d.ts +5 -0
- package/type_defs/components/calendars/Legendable.type.d.ts.map +1 -0
- package/type_defs/components/calendars/TinyCalendar.d.ts +25 -0
- package/type_defs/components/calendars/TinyCalendar.d.ts.map +1 -0
- package/type_defs/components/calendars/TinyMonthYearCalendar.d.ts +11 -0
- package/type_defs/components/calendars/TinyMonthYearCalendar.d.ts.map +1 -0
- package/type_defs/components/calendars/blocks/Legend.d.ts +12 -0
- package/type_defs/components/calendars/blocks/Legend.d.ts.map +1 -0
- package/type_defs/components/calendars/blocks/MonthPicker.d.ts +8 -0
- package/type_defs/components/calendars/blocks/MonthPicker.d.ts.map +1 -0
- package/type_defs/components/calendars/blocks/MonthYearPicker.d.ts +16 -0
- package/type_defs/components/calendars/blocks/MonthYearPicker.d.ts.map +1 -0
- package/type_defs/components/calendars/blocks/YearPicker.d.ts +10 -0
- package/type_defs/components/calendars/blocks/YearPicker.d.ts.map +1 -0
- package/type_defs/components/forms/Button.d.ts +41 -0
- package/type_defs/components/forms/Button.d.ts.map +1 -0
- package/type_defs/components/forms/Checkbox.d.ts +10 -0
- package/type_defs/components/forms/Checkbox.d.ts.map +1 -0
- package/type_defs/components/forms/CycleButton.d.ts +14 -0
- package/type_defs/components/forms/CycleButton.d.ts.map +1 -0
- package/type_defs/components/forms/CycleButton.stories.d.ts +16 -0
- package/type_defs/components/forms/CycleButton.stories.d.ts.map +1 -0
- package/type_defs/components/forms/Form.d.ts +9 -0
- package/type_defs/components/forms/Form.d.ts.map +1 -0
- package/type_defs/components/forms/Hint.d.ts +2 -0
- package/type_defs/components/forms/Hint.d.ts.map +1 -0
- package/type_defs/components/forms/IconButton.d.ts +6 -0
- package/type_defs/components/forms/IconButton.d.ts.map +1 -0
- package/type_defs/components/forms/Label.d.ts +2 -0
- package/type_defs/components/forms/Label.d.ts.map +1 -0
- package/type_defs/components/forms/TaggedToggle.d.ts +8 -0
- package/type_defs/components/forms/TaggedToggle.d.ts.map +1 -0
- package/type_defs/components/forms/TaggedToggle.stories.d.ts +12 -0
- package/type_defs/components/forms/TaggedToggle.stories.d.ts.map +1 -0
- package/type_defs/components/forms/Toggle.d.ts +12 -0
- package/type_defs/components/forms/Toggle.d.ts.map +1 -0
- package/type_defs/components/forms/Toggle.stories.d.ts +18 -0
- package/type_defs/components/forms/Toggle.stories.d.ts.map +1 -0
- package/type_defs/components/forms/ValidatedFormProps.type.d.ts +6 -0
- package/type_defs/components/forms/ValidatedFormProps.type.d.ts.map +1 -0
- package/type_defs/components/forms/Validation.type.d.ts +9 -0
- package/type_defs/components/forms/Validation.type.d.ts.map +1 -0
- package/type_defs/components/forms/buttonMixins.d.ts +23 -0
- package/type_defs/components/forms/buttonMixins.d.ts.map +1 -0
- package/type_defs/components/forms/formField.types.d.ts +23 -0
- package/type_defs/components/forms/formField.types.d.ts.map +1 -0
- package/type_defs/components/forms/selectors/BooleanSelector.d.ts +11 -0
- package/type_defs/components/forms/selectors/BooleanSelector.d.ts.map +1 -0
- package/type_defs/components/forms/selectors/DatePickerSelector.d.ts +19 -0
- package/type_defs/components/forms/selectors/DatePickerSelector.d.ts.map +1 -0
- package/type_defs/components/forms/selectors/Dropdown/Item.d.ts +19 -0
- package/type_defs/components/forms/selectors/Dropdown/Item.d.ts.map +1 -0
- package/type_defs/components/forms/selectors/Dropdown.d.ts +28 -0
- package/type_defs/components/forms/selectors/Dropdown.d.ts.map +1 -0
- package/type_defs/components/forms/selectors/MonthYearSelector.d.ts +9 -0
- package/type_defs/components/forms/selectors/MonthYearSelector.d.ts.map +1 -0
- package/type_defs/components/forms/selectors/MultiSelector.d.ts +9 -0
- package/type_defs/components/forms/selectors/MultiSelector.d.ts.map +1 -0
- package/type_defs/components/forms/selectors/SearchableSelector.d.ts +8 -0
- package/type_defs/components/forms/selectors/SearchableSelector.d.ts.map +1 -0
- package/type_defs/components/forms/selectors/Selector.d.ts +4 -0
- package/type_defs/components/forms/selectors/Selector.d.ts.map +1 -0
- package/type_defs/components/forms/selectors/SelectorEmptyState.d.ts +2 -0
- package/type_defs/components/forms/selectors/SelectorEmptyState.d.ts.map +1 -0
- package/type_defs/components/forms/selectors/types.d.ts +41 -0
- package/type_defs/components/forms/selectors/types.d.ts.map +1 -0
- package/type_defs/components/forms/textfields/EmailTextField.d.ts +4 -0
- package/type_defs/components/forms/textfields/EmailTextField.d.ts.map +1 -0
- package/type_defs/components/forms/textfields/NumberTextField.d.ts +4 -0
- package/type_defs/components/forms/textfields/NumberTextField.d.ts.map +1 -0
- package/type_defs/components/forms/textfields/PasswordTextField.d.ts +8 -0
- package/type_defs/components/forms/textfields/PasswordTextField.d.ts.map +1 -0
- package/type_defs/components/forms/textfields/TextArea.d.ts +9 -0
- package/type_defs/components/forms/textfields/TextArea.d.ts.map +1 -0
- package/type_defs/components/forms/textfields/TextField.d.ts +14 -0
- package/type_defs/components/forms/textfields/TextField.d.ts.map +1 -0
- package/type_defs/components/forms/textfields/TextFieldWrapper.d.ts +13 -0
- package/type_defs/components/forms/textfields/TextFieldWrapper.d.ts.map +1 -0
- package/type_defs/components/forms/validationStates.d.ts +7 -0
- package/type_defs/components/forms/validationStates.d.ts.map +1 -0
- package/type_defs/components/layout/AppBar.d.ts +14 -0
- package/type_defs/components/layout/AppBar.d.ts.map +1 -0
- package/type_defs/components/layout/AppBarLayout.d.ts +15 -0
- package/type_defs/components/layout/AppBarLayout.d.ts.map +1 -0
- package/type_defs/components/layout/Carousel.d.ts +13 -0
- package/type_defs/components/layout/Carousel.d.ts.map +1 -0
- package/type_defs/components/layout/Container.d.ts +4 -0
- package/type_defs/components/layout/Container.d.ts.map +1 -0
- package/type_defs/components/layout/FlexBlock.d.ts +19 -0
- package/type_defs/components/layout/FlexBlock.d.ts.map +1 -0
- package/type_defs/components/layout/FlexBox.d.ts +18 -0
- package/type_defs/components/layout/FlexBox.d.ts.map +1 -0
- package/type_defs/components/layout/Grid.d.ts +4 -0
- package/type_defs/components/layout/Grid.d.ts.map +1 -0
- package/type_defs/components/layout/Line.d.ts +6 -0
- package/type_defs/components/layout/Line.d.ts.map +1 -0
- package/type_defs/components/layout/OpacityTransition.d.ts +4 -0
- package/type_defs/components/layout/OpacityTransition.d.ts.map +1 -0
- package/type_defs/components/layout/OverflowMenu.d.ts +13 -0
- package/type_defs/components/layout/OverflowMenu.d.ts.map +1 -0
- package/type_defs/components/layout/Section.d.ts +6 -0
- package/type_defs/components/layout/Section.d.ts.map +1 -0
- package/type_defs/components/layout/Sidebar.d.ts +12 -0
- package/type_defs/components/layout/Sidebar.d.ts.map +1 -0
- package/type_defs/components/layout/SidebarLayout.d.ts +5 -0
- package/type_defs/components/layout/SidebarLayout.d.ts.map +1 -0
- package/type_defs/components/layout/Tabs.d.ts +3 -0
- package/type_defs/components/layout/Tabs.d.ts.map +1 -0
- package/type_defs/components/loaders/AsyncLoadable.d.ts +13 -0
- package/type_defs/components/loaders/AsyncLoadable.d.ts.map +1 -0
- package/type_defs/components/loaders/Dots.d.ts +9 -0
- package/type_defs/components/loaders/Dots.d.ts.map +1 -0
- package/type_defs/components/loaders/Loadable.d.ts +10 -0
- package/type_defs/components/loaders/Loadable.d.ts.map +1 -0
- package/type_defs/components/loaders/Loader.d.ts +15 -0
- package/type_defs/components/loaders/Loader.d.ts.map +1 -0
- package/type_defs/components/loaders/TranslucentLoader.d.ts +9 -0
- package/type_defs/components/loaders/TranslucentLoader.d.ts.map +1 -0
- package/type_defs/components/mobx/Alert.d.ts +4 -0
- package/type_defs/components/mobx/Alert.d.ts.map +1 -0
- package/type_defs/components/mobx/Drawer.d.ts +5 -0
- package/type_defs/components/mobx/Drawer.d.ts.map +1 -0
- package/type_defs/components/mobx/ErrorBoundary.d.ts +24 -0
- package/type_defs/components/mobx/ErrorBoundary.d.ts.map +1 -0
- package/type_defs/components/mobx/Modal.d.ts +4 -0
- package/type_defs/components/mobx/Modal.d.ts.map +1 -0
- package/type_defs/components/navigation/Breadcrumbs.d.ts +3 -0
- package/type_defs/components/navigation/Breadcrumbs.d.ts.map +1 -0
- package/type_defs/components/navigation/ButtonLink.d.ts +25 -0
- package/type_defs/components/navigation/ButtonLink.d.ts.map +1 -0
- package/type_defs/components/navigation/InlineButtonLink.d.ts +3 -0
- package/type_defs/components/navigation/InlineButtonLink.d.ts.map +1 -0
- package/type_defs/components/notification/InfoPanel.d.ts +18 -0
- package/type_defs/components/notification/InfoPanel.d.ts.map +1 -0
- package/type_defs/components/notification/Notification.d.ts +14 -0
- package/type_defs/components/notification/Notification.d.ts.map +1 -0
- package/type_defs/components/tables/MobileTable/Row.d.ts +14 -0
- package/type_defs/components/tables/MobileTable/Row.d.ts.map +1 -0
- package/type_defs/components/tables/MobileTable.d.ts +9 -0
- package/type_defs/components/tables/MobileTable.d.ts.map +1 -0
- package/type_defs/components/tables/NiceTable.d.ts +12 -0
- package/type_defs/components/tables/NiceTable.d.ts.map +1 -0
- package/type_defs/components/tables/Row.d.ts +19 -0
- package/type_defs/components/tables/Row.d.ts.map +1 -0
- package/type_defs/components/tables/SimpleTable.d.ts +9 -0
- package/type_defs/components/tables/SimpleTable.d.ts.map +1 -0
- package/type_defs/components/tables/Table.d.ts +73 -0
- package/type_defs/components/tables/Table.d.ts.map +1 -0
- package/type_defs/components/tables/blocks/Header.d.ts +17 -0
- package/type_defs/components/tables/blocks/Header.d.ts.map +1 -0
- package/type_defs/components/tables/blocks/HelpText.d.ts +5 -0
- package/type_defs/components/tables/blocks/HelpText.d.ts.map +1 -0
- package/type_defs/components/tables/blocks/Pagination.d.ts +8 -0
- package/type_defs/components/tables/blocks/Pagination.d.ts.map +1 -0
- package/type_defs/components/tables/blocks/TableFilter.d.ts +9 -0
- package/type_defs/components/tables/blocks/TableFilter.d.ts.map +1 -0
- package/type_defs/components/tables/blocks/Title.d.ts +7 -0
- package/type_defs/components/tables/blocks/Title.d.ts.map +1 -0
- package/type_defs/components/tables/index.d.ts +9 -0
- package/type_defs/components/tables/index.d.ts.map +1 -0
- package/type_defs/components/tables/utils.d.ts +2 -0
- package/type_defs/components/tables/utils.d.ts.map +1 -0
- package/type_defs/components/tags/Chip.d.ts +18 -0
- package/type_defs/components/tags/Chip.d.ts.map +1 -0
- package/type_defs/components/tags/Tag.d.ts +8 -0
- package/type_defs/components/tags/Tag.d.ts.map +1 -0
- package/type_defs/components/text/Header.d.ts +31 -0
- package/type_defs/components/text/Header.d.ts.map +1 -0
- package/type_defs/components/text/Hint.d.ts +10 -0
- package/type_defs/components/text/Hint.d.ts.map +1 -0
- package/type_defs/components/text/Label.d.ts +7 -0
- package/type_defs/components/text/Label.d.ts.map +1 -0
- package/type_defs/components/text/Paragraph.d.ts +37 -0
- package/type_defs/components/text/Paragraph.d.ts.map +1 -0
- package/type_defs/components/text/Text.d.ts +7 -0
- package/type_defs/components/text/Text.d.ts.map +1 -0
- package/type_defs/components/tooltips/IconTooltip.d.ts +10 -0
- package/type_defs/components/tooltips/IconTooltip.d.ts.map +1 -0
- package/type_defs/components/tooltips/IconTooltip.stories.d.ts +18 -0
- package/type_defs/components/tooltips/IconTooltip.stories.d.ts.map +1 -0
- package/type_defs/components/tooltips/Tooltip.d.ts +14 -0
- package/type_defs/components/tooltips/Tooltip.d.ts.map +1 -0
- package/type_defs/hooks/useIsMounted.d.ts +2 -0
- package/type_defs/hooks/useIsMounted.d.ts.map +1 -0
- package/type_defs/hooks/useLoader.d.ts +10 -0
- package/type_defs/hooks/useLoader.d.ts.map +1 -0
- package/type_defs/hooks/useLoaderV2.d.ts +15 -0
- package/type_defs/hooks/useLoaderV2.d.ts.map +1 -0
- package/type_defs/index.d.ts +2 -0
- package/type_defs/index.d.ts.map +1 -0
- package/type_defs/stores/useStores.d.ts +5 -0
- package/type_defs/stores/useStores.d.ts.map +1 -0
- package/type_defs/styles/DeviceSizeWatcher.d.ts +21 -0
- package/type_defs/styles/DeviceSizeWatcher.d.ts.map +1 -0
- package/type_defs/styles/alignments.d.ts +8 -0
- package/type_defs/styles/alignments.d.ts.map +1 -0
- package/type_defs/styles/colors.d.ts +35 -0
- package/type_defs/styles/colors.d.ts.map +1 -0
- package/type_defs/styles/deviceSizes.d.ts +9 -0
- package/type_defs/styles/deviceSizes.d.ts.map +1 -0
- package/type_defs/styles/mediaQueries.d.ts +21 -0
- package/type_defs/styles/mediaQueries.d.ts.map +1 -0
- package/type_defs/styles/mixins.d.ts +8 -0
- package/type_defs/styles/mixins.d.ts.map +1 -0
- package/type_defs/styles/spacings.d.ts +15 -0
- package/type_defs/styles/spacings.d.ts.map +1 -0
- package/type_defs/styles/theme/Theme.type.d.ts +79 -0
- package/type_defs/styles/theme/Theme.type.d.ts.map +1 -0
- package/type_defs/styles/theme/base.d.ts +3 -0
- package/type_defs/styles/theme/base.d.ts.map +1 -0
- package/type_defs/styles/theme/dark.d.ts +3 -0
- package/type_defs/styles/theme/dark.d.ts.map +1 -0
- package/type_defs/styles/theme/light.d.ts +3 -0
- package/type_defs/styles/theme/light.d.ts.map +1 -0
- package/type_defs/styles/theme/light2.d.ts +3 -0
- package/type_defs/styles/theme/light2.d.ts.map +1 -0
- package/type_defs/styles/theme/useTheme.d.ts +3 -0
- package/type_defs/styles/theme/useTheme.d.ts.map +1 -0
- package/type_defs/styles/types.d.ts +17 -0
- package/type_defs/styles/types.d.ts.map +1 -0
- package/type_defs/styles/typography.d.ts +56 -0
- package/type_defs/styles/typography.d.ts.map +1 -0
- package/type_defs/utils/NavBarScrollWatcher.d.ts +7 -0
- package/type_defs/utils/NavBarScrollWatcher.d.ts.map +1 -0
- package/type_defs/utils/arrayHelpers.d.ts +23 -0
- package/type_defs/utils/arrayHelpers.d.ts.map +1 -0
- package/type_defs/utils/dateTime/DateRange.type.d.ts +6 -0
- package/type_defs/utils/dateTime/DateRange.type.d.ts.map +1 -0
- package/type_defs/utils/dateTime/calendar.d.ts +18 -0
- package/type_defs/utils/dateTime/calendar.d.ts.map +1 -0
- package/type_defs/utils/dateTimeHelpers.d.ts +23 -0
- package/type_defs/utils/dateTimeHelpers.d.ts.map +1 -0
- package/type_defs/utils/function.types.d.ts +2 -0
- package/type_defs/utils/function.types.d.ts.map +1 -0
- package/type_defs/utils/functionHelpers.d.ts +7 -0
- package/type_defs/utils/functionHelpers.d.ts.map +1 -0
- package/type_defs/utils/idGenerator.d.ts +3 -0
- package/type_defs/utils/idGenerator.d.ts.map +1 -0
- package/type_defs/utils/logging/Logger.d.ts +10 -0
- package/type_defs/utils/logging/Logger.d.ts.map +1 -0
- package/type_defs/utils/logging/Logger.type.d.ts +7 -0
- package/type_defs/utils/logging/Logger.type.d.ts.map +1 -0
- package/type_defs/utils/logging/loggable.d.ts +7 -0
- package/type_defs/utils/logging/loggable.d.ts.map +1 -0
- package/type_defs/utils/logging/with_module_logging.d.ts +3 -0
- package/type_defs/utils/logging/with_module_logging.d.ts.map +1 -0
- package/type_defs/utils/numberHelpers.d.ts +3 -0
- package/type_defs/utils/numberHelpers.d.ts.map +1 -0
- package/type_defs/utils/typeCheckers.d.ts +5 -0
- package/type_defs/utils/typeCheckers.d.ts.map +1 -0
- package/type_defs/utils/validateFields.d.ts +13 -0
- package/type_defs/utils/validateFields.d.ts.map +1 -0
- package/type_defs/zendeskGardenCss.d.ts +2 -0
- package/type_defs/zendeskGardenCss.d.ts.map +1 -0
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Body,
|
|
3
|
+
Close,
|
|
4
|
+
Footer,
|
|
5
|
+
FooterItem,
|
|
6
|
+
Header as ZenHeader,
|
|
7
|
+
Modal as ZenModal,
|
|
8
|
+
/* @ts-ignore */
|
|
9
|
+
} from "@zendeskgarden/react-modals"
|
|
10
|
+
import {
|
|
11
|
+
Button,
|
|
12
|
+
Props as ButtonProps
|
|
13
|
+
} from "components/forms/Button"
|
|
14
|
+
import { StyledComponentProps } from "components/StyledComponentProps.type"
|
|
15
|
+
import React, { MouseEvent, ReactElement, useState } from "react"
|
|
16
|
+
import styled, { css } from "styled-components"
|
|
17
|
+
import { textWithColor } from "styles/mixins"
|
|
18
|
+
|
|
19
|
+
type ButtonType =
|
|
20
|
+
ReactElement
|
|
21
|
+
& { props: { disableable: boolean } & ButtonProps }
|
|
22
|
+
|
|
23
|
+
export type ModalContent = {
|
|
24
|
+
autoClose?: boolean,
|
|
25
|
+
blocking?: boolean,
|
|
26
|
+
body: any,
|
|
27
|
+
buttons?: ButtonType[],
|
|
28
|
+
isDanger?: boolean,
|
|
29
|
+
isNotDismissible?: boolean,
|
|
30
|
+
isSuccess?: boolean,
|
|
31
|
+
isWarning?: boolean,
|
|
32
|
+
title?: string,
|
|
33
|
+
withCancelButton?: boolean,
|
|
34
|
+
withNoActions?: boolean,
|
|
35
|
+
onClose?: () => void,
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
const Header = styled(ZenHeader).attrs(({
|
|
39
|
+
danger,
|
|
40
|
+
success,
|
|
41
|
+
warning,
|
|
42
|
+
theme,
|
|
43
|
+
}) => {
|
|
44
|
+
// Color is overwritten by a class style from zendesk :(
|
|
45
|
+
let color = theme.styles.textColorPrimary
|
|
46
|
+
if (danger) color = theme.styles.colorDanger
|
|
47
|
+
if (success) color = theme.styles.colorSuccess
|
|
48
|
+
if (warning) color = theme.styles.colorWarning
|
|
49
|
+
|
|
50
|
+
return { color }
|
|
51
|
+
})`
|
|
52
|
+
${textWithColor}
|
|
53
|
+
`
|
|
54
|
+
|
|
55
|
+
const createButtons = (
|
|
56
|
+
buttons: ButtonType[],
|
|
57
|
+
closeModal: () => void,
|
|
58
|
+
shouldDisable: boolean,
|
|
59
|
+
autoClose: boolean,
|
|
60
|
+
adjustModalState: () => void,
|
|
61
|
+
) => (
|
|
62
|
+
buttons.map((b: ButtonType) => {
|
|
63
|
+
const { onClick, disabled, disableable } = b.props
|
|
64
|
+
return (
|
|
65
|
+
<FooterItem key={b.key}>
|
|
66
|
+
{React.cloneElement(
|
|
67
|
+
b,
|
|
68
|
+
{
|
|
69
|
+
onClick: async () => {
|
|
70
|
+
adjustModalState()
|
|
71
|
+
await onClick()
|
|
72
|
+
if (autoClose) closeModal()
|
|
73
|
+
},
|
|
74
|
+
disabled: disableable ? shouldDisable : disabled,
|
|
75
|
+
},
|
|
76
|
+
)}
|
|
77
|
+
</FooterItem>
|
|
78
|
+
)
|
|
79
|
+
})
|
|
80
|
+
)
|
|
81
|
+
|
|
82
|
+
type Props = {
|
|
83
|
+
isVisible: boolean,
|
|
84
|
+
closeModal: () => void,
|
|
85
|
+
disableActions: boolean,
|
|
86
|
+
modalContent: ModalContent | null | undefined,
|
|
87
|
+
} & StyledComponentProps
|
|
88
|
+
|
|
89
|
+
export let Modal = ({
|
|
90
|
+
isVisible,
|
|
91
|
+
closeModal,
|
|
92
|
+
disableActions,
|
|
93
|
+
modalContent,
|
|
94
|
+
className,
|
|
95
|
+
}: Props) => {
|
|
96
|
+
|
|
97
|
+
const [isProcessing, setIsProcessingTo] = useState(false)
|
|
98
|
+
if (!isVisible) return null
|
|
99
|
+
if (!modalContent) throw new Error("Modal found null modal content")
|
|
100
|
+
|
|
101
|
+
const {
|
|
102
|
+
autoClose = true,
|
|
103
|
+
body,
|
|
104
|
+
buttons,
|
|
105
|
+
isDanger,
|
|
106
|
+
isSuccess,
|
|
107
|
+
isWarning,
|
|
108
|
+
title,
|
|
109
|
+
withCancelButton,
|
|
110
|
+
withNoActions,
|
|
111
|
+
onClose,
|
|
112
|
+
}: ModalContent = modalContent
|
|
113
|
+
|
|
114
|
+
const handleClose = () => {
|
|
115
|
+
closeModal()
|
|
116
|
+
setIsProcessingTo(false)
|
|
117
|
+
if (onClose) onClose()
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
const setProcessingState = () => setIsProcessingTo(true)
|
|
121
|
+
|
|
122
|
+
const footerItems = () => (
|
|
123
|
+
buttons
|
|
124
|
+
? createButtons(
|
|
125
|
+
buttons,
|
|
126
|
+
handleClose,
|
|
127
|
+
disableActions,
|
|
128
|
+
autoClose,
|
|
129
|
+
setProcessingState
|
|
130
|
+
)
|
|
131
|
+
: <FooterItem>
|
|
132
|
+
<Button onClick={handleClose}
|
|
133
|
+
primary
|
|
134
|
+
disabled={disableActions}
|
|
135
|
+
success={isSuccess}
|
|
136
|
+
danger={isDanger}
|
|
137
|
+
warning={isWarning}>
|
|
138
|
+
OK
|
|
139
|
+
</Button>
|
|
140
|
+
</FooterItem>
|
|
141
|
+
)
|
|
142
|
+
|
|
143
|
+
return (
|
|
144
|
+
<ZenModal onClose={handleClose}
|
|
145
|
+
className={className}
|
|
146
|
+
animate
|
|
147
|
+
backdropProps={{
|
|
148
|
+
onClick: (e: MouseEvent<HTMLElement>) => {
|
|
149
|
+
e.preventDefault()
|
|
150
|
+
},
|
|
151
|
+
}}>
|
|
152
|
+
{
|
|
153
|
+
title
|
|
154
|
+
? <Header danger={isDanger} success={isSuccess} warning={isWarning}>
|
|
155
|
+
{title}
|
|
156
|
+
</Header>
|
|
157
|
+
: null
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
<Body>{body}</Body>
|
|
161
|
+
{
|
|
162
|
+
withNoActions
|
|
163
|
+
? null
|
|
164
|
+
: <Footer>
|
|
165
|
+
{withCancelButton
|
|
166
|
+
? <FooterItem>
|
|
167
|
+
<Button onClick={handleClose}
|
|
168
|
+
flat
|
|
169
|
+
loading={isProcessing}
|
|
170
|
+
success={isSuccess}
|
|
171
|
+
danger={isDanger}
|
|
172
|
+
warning={isWarning}>
|
|
173
|
+
Cancel
|
|
174
|
+
</Button>
|
|
175
|
+
</FooterItem>
|
|
176
|
+
: null}
|
|
177
|
+
|
|
178
|
+
{footerItems()}
|
|
179
|
+
</Footer>
|
|
180
|
+
}
|
|
181
|
+
<Close aria-label="Close modal" />
|
|
182
|
+
</ZenModal>
|
|
183
|
+
)
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
const hideCloseButton = css`
|
|
187
|
+
button[data-garden-id="modals.close"] {
|
|
188
|
+
display: none;
|
|
189
|
+
}
|
|
190
|
+
`
|
|
191
|
+
|
|
192
|
+
Modal = styled(Modal)<Props>`
|
|
193
|
+
&&&& {
|
|
194
|
+
color: ${({ theme }) => theme.styles.textColorPrimary};
|
|
195
|
+
|
|
196
|
+
${({ modalContent }) => modalContent?.isNotDismissible
|
|
197
|
+
? hideCloseButton
|
|
198
|
+
: ""}
|
|
199
|
+
${Body} {
|
|
200
|
+
font-size: inherit;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
`
|
|
204
|
+
|
|
205
|
+
// @ts-ignore
|
|
206
|
+
Modal.COMPONENT_NAME = "Modal"
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import { Legend } from "components/calendars/blocks/Legend"
|
|
2
|
+
import { MonthYearPickerChange } from "components/calendars/blocks/MonthYearPicker"
|
|
3
|
+
import { MonthYearPicker } from "components/calendars/blocks/MonthYearPicker"
|
|
4
|
+
import { Legendable } from "components/calendars/Legendable.type"
|
|
5
|
+
import { PaddedFlexBlock } from "components/layout/FlexBlock"
|
|
6
|
+
import moment, { Moment } from "moment"
|
|
7
|
+
import React, { useEffect, useRef, useState } from "react"
|
|
8
|
+
import { Calendar, Range } from "react-date-range"
|
|
9
|
+
import styled from "styled-components"
|
|
10
|
+
import { COLORS, fade } from "styles/colors"
|
|
11
|
+
import { SPACINGS } from "styles/spacings"
|
|
12
|
+
import { useTheme } from "styles/theme/useTheme"
|
|
13
|
+
import { FONT_WEIGHTS } from "styles/typography"
|
|
14
|
+
import { flatten } from "utils/arrayHelpers"
|
|
15
|
+
import { DateRange } from "utils/dateTime/DateRange.type"
|
|
16
|
+
import { maxDateBetween, momentListToDateList, } from "utils/dateTimeHelpers"
|
|
17
|
+
import { DO_NOTHING } from "utils/functionHelpers"
|
|
18
|
+
|
|
19
|
+
export type LabeledRangeList = {
|
|
20
|
+
color?: string,
|
|
21
|
+
label: string,
|
|
22
|
+
ranges: Array<DateRange>,
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
type ColoredDateRange = DateRange & { color?: string }
|
|
26
|
+
|
|
27
|
+
type Props = {
|
|
28
|
+
disabledDates: Array<Moment>,
|
|
29
|
+
displayMode?: "dateRange" | "date",
|
|
30
|
+
fluid?: boolean,
|
|
31
|
+
initialDate?: Moment,
|
|
32
|
+
labeledRanges?: Array<LabeledRangeList>,
|
|
33
|
+
minDate?: Moment,
|
|
34
|
+
ranges?: Array<ColoredDateRange>,
|
|
35
|
+
showLegend?: boolean,
|
|
36
|
+
onChange: (d: Date) => void,
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export let TinyCalendar = ({
|
|
40
|
+
disabledDates = [],
|
|
41
|
+
displayMode,
|
|
42
|
+
fluid = false,
|
|
43
|
+
initialDate = moment(),
|
|
44
|
+
labeledRanges,
|
|
45
|
+
minDate,
|
|
46
|
+
ranges,
|
|
47
|
+
showLegend = false,
|
|
48
|
+
onChange = DO_NOTHING,
|
|
49
|
+
}: Props) => {
|
|
50
|
+
const [date, setDate] = useState<Moment>(minDate || initialDate)
|
|
51
|
+
const theme = useTheme()
|
|
52
|
+
const outOfMinRange = minDate && date.isBefore(minDate)
|
|
53
|
+
const usableDate: Moment = outOfMinRange ? minDate : date
|
|
54
|
+
const changeShownDate = useRef<(d: Date) => void>()
|
|
55
|
+
|
|
56
|
+
useEffect(() => {
|
|
57
|
+
if (changeShownDate.current != null) {
|
|
58
|
+
changeShownDate.current(usableDate.toDate())
|
|
59
|
+
}
|
|
60
|
+
}, [usableDate])
|
|
61
|
+
|
|
62
|
+
const changeDateState = ({ month, year }: MonthYearPickerChange) => {
|
|
63
|
+
const newDate = moment(usableDate).month(month).year(year)
|
|
64
|
+
const newUsableDate = maxDateBetween(
|
|
65
|
+
newDate, (minDate || moment().year(Number.MIN_VALUE)),
|
|
66
|
+
)
|
|
67
|
+
setDate(newUsableDate)
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
const rangeColors = [
|
|
71
|
+
COLORS.PURPLE,
|
|
72
|
+
COLORS.GREEN,
|
|
73
|
+
COLORS.YELLOW,
|
|
74
|
+
].map((color: string) => fade(color))
|
|
75
|
+
|
|
76
|
+
let numUsedColors = 0
|
|
77
|
+
const labelColors: { [key: string]: Legendable } = {}
|
|
78
|
+
if (labeledRanges) {
|
|
79
|
+
labeledRanges.forEach((l: LabeledRangeList) => {
|
|
80
|
+
labelColors[l.label] = {
|
|
81
|
+
label: l.label,
|
|
82
|
+
color: l.color || rangeColors[numUsedColors++],
|
|
83
|
+
}
|
|
84
|
+
})
|
|
85
|
+
|
|
86
|
+
ranges = flatten<ColoredDateRange>(labeledRanges.map(
|
|
87
|
+
(l: LabeledRangeList) => (
|
|
88
|
+
l.ranges.map((r: DateRange) => ({
|
|
89
|
+
...r,
|
|
90
|
+
color: labelColors[l.label].color,
|
|
91
|
+
}))
|
|
92
|
+
),
|
|
93
|
+
))
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
displayMode = displayMode || (ranges ? "dateRange" : "date")
|
|
97
|
+
|
|
98
|
+
return <Container fluid={fluid}
|
|
99
|
+
withRows
|
|
100
|
+
spacing={SPACINGS.SM}>
|
|
101
|
+
<Calendar
|
|
102
|
+
color={theme.styles.colorPrimary}
|
|
103
|
+
// date={usableDate.toDate()}
|
|
104
|
+
displayMode={displayMode}
|
|
105
|
+
disabledDates={momentListToDateList(disabledDates)}
|
|
106
|
+
dragSelectionEnabled={false}
|
|
107
|
+
minDate={minDate ? minDate.toDate() : undefined}
|
|
108
|
+
/*
|
|
109
|
+
navigatorRenderer causes library's month and year pickers to be hidden.
|
|
110
|
+
showMonthAndYearPickers prop doesnt need to be set to false at the moment
|
|
111
|
+
but will be done anyway just in case.
|
|
112
|
+
*/
|
|
113
|
+
navigatorRenderer={(_, changeShownDateFunc) => {
|
|
114
|
+
changeShownDate.current = changeShownDateFunc
|
|
115
|
+
return <MonthYearPicker
|
|
116
|
+
month={usableDate.month()}
|
|
117
|
+
year={usableDate.year()}
|
|
118
|
+
minDate={minDate}
|
|
119
|
+
pastFutureYearRangeSize={3}
|
|
120
|
+
onChange={({ month, year }: MonthYearPickerChange) => {
|
|
121
|
+
// changeShownDate(
|
|
122
|
+
// moment(usableDate).month(month).year(year).toDate(),
|
|
123
|
+
// )
|
|
124
|
+
changeDateState({ month, year })
|
|
125
|
+
}}
|
|
126
|
+
/>
|
|
127
|
+
}}
|
|
128
|
+
ranges={ranges as any as Range[]}
|
|
129
|
+
rangeColors={rangeColors}
|
|
130
|
+
shownDate={usableDate.toDate()}
|
|
131
|
+
showMonthAndYearPickers={false}
|
|
132
|
+
showMonthArrow={false}
|
|
133
|
+
showPreview={true}
|
|
134
|
+
showDateDisplay={false}
|
|
135
|
+
onChange={onChange}
|
|
136
|
+
onShownDateChange={DO_NOTHING}
|
|
137
|
+
onPreviewChange={DO_NOTHING}
|
|
138
|
+
/>
|
|
139
|
+
{
|
|
140
|
+
showLegend && labeledRanges
|
|
141
|
+
?
|
|
142
|
+
<Legend legendables={Object.values(labelColors)}
|
|
143
|
+
defaultColor={theme.styles.colorPrimary} />
|
|
144
|
+
:
|
|
145
|
+
null
|
|
146
|
+
}
|
|
147
|
+
</Container>
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
const Container = styled(PaddedFlexBlock)`
|
|
151
|
+
width: ${({ fluid }) => fluid ? "100%" : "24.5rem"};
|
|
152
|
+
|
|
153
|
+
.rdrMonth {
|
|
154
|
+
width: 100%;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
.rdrDay.rdrDayToday .rdrDayNumber span:after {
|
|
158
|
+
background: ${({ theme }) => theme.styles.colorPrimary};
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
.rdrDay.rdrDayHovered {
|
|
162
|
+
.rdrDayNumber {
|
|
163
|
+
background: ${({ theme }) => theme.styles.colorPrimary};
|
|
164
|
+
border-radius: 2em;
|
|
165
|
+
|
|
166
|
+
span {
|
|
167
|
+
color: ${({ theme }) => theme.styles.textColorOverPrimaryBg};
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
::after {
|
|
171
|
+
display: none;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
.rdrDayNumber {
|
|
177
|
+
font-weight: ${FONT_WEIGHTS.REGULAR};
|
|
178
|
+
top: 2px;
|
|
179
|
+
bottom: 2px;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
.rdrMonthAndYearWrapper {
|
|
183
|
+
display: none;
|
|
184
|
+
}
|
|
185
|
+
`
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { YearPicker } from "components/calendars/blocks/YearPicker"
|
|
2
|
+
import { FlexBlock, PaddedFlexBlock } from "components/layout/FlexBlock"
|
|
3
|
+
import moment, { Moment } from "moment"
|
|
4
|
+
import * as React from "react"
|
|
5
|
+
import { useState } from "react"
|
|
6
|
+
import styled from "styled-components"
|
|
7
|
+
import { SPACINGS } from "styles/spacings"
|
|
8
|
+
import { useTheme } from "styles/theme/useTheme"
|
|
9
|
+
import { maxDateBetween, } from "utils/dateTimeHelpers"
|
|
10
|
+
import { DO_NOTHING } from "utils/functionHelpers"
|
|
11
|
+
import { maxNumberBetween } from "utils/numberHelpers"
|
|
12
|
+
|
|
13
|
+
type Props = {
|
|
14
|
+
fluid: boolean,
|
|
15
|
+
initialDate: Moment,
|
|
16
|
+
minDate?: Moment,
|
|
17
|
+
onChange: () => void,
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export let TinyMonthYearCalendar = ({
|
|
21
|
+
fluid = false,
|
|
22
|
+
initialDate = moment(),
|
|
23
|
+
minDate = moment().year(Number.MIN_VALUE),
|
|
24
|
+
onChange = DO_NOTHING,
|
|
25
|
+
}: Props) => {
|
|
26
|
+
const [date, setDate] = useState<Moment>(initialDate)
|
|
27
|
+
const theme = useTheme()
|
|
28
|
+
|
|
29
|
+
const currentYear = moment().year()
|
|
30
|
+
const maxYear = currentYear + 10
|
|
31
|
+
const minYear = maxNumberBetween(
|
|
32
|
+
currentYear - 5,
|
|
33
|
+
minDate ? minDate.year() : Number.NEGATIVE_INFINITY,
|
|
34
|
+
)
|
|
35
|
+
|
|
36
|
+
const changeDateState = (year: string) => {
|
|
37
|
+
const newDate = moment(date).year(Number(year))
|
|
38
|
+
setDate(maxDateBetween(newDate, minDate))
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
return <Container fluid={fluid}
|
|
42
|
+
withRows
|
|
43
|
+
spacing={SPACINGS.SM}>
|
|
44
|
+
<YearPicker minYear={minYear}
|
|
45
|
+
maxYear={maxYear}
|
|
46
|
+
year={date.year()}
|
|
47
|
+
onYearSelected={changeDateState}
|
|
48
|
+
/>
|
|
49
|
+
<FlexBlock>
|
|
50
|
+
|
|
51
|
+
</FlexBlock>
|
|
52
|
+
</Container>
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
const Container = styled(PaddedFlexBlock)`
|
|
56
|
+
width: ${({ fluid }) => fluid ? "100%" : "24.5rem"};
|
|
57
|
+
`
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
import { Legendable } from "components/calendars/Legendable.type"
|
|
4
|
+
import { FlexBlock } from "components/layout/FlexBlock"
|
|
5
|
+
import { Text } from "components/text/Text"
|
|
6
|
+
import * as React from "react"
|
|
7
|
+
import styled from "styled-components"
|
|
8
|
+
import { SPACINGS } from "styles/spacings"
|
|
9
|
+
import { FONT_SIZES } from "styles/typography"
|
|
10
|
+
|
|
11
|
+
type Props = {
|
|
12
|
+
legendables :Array<Legendable>,
|
|
13
|
+
defaultColor :string,
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export const Legend = ({ legendables, defaultColor } :Props) => {
|
|
17
|
+
const foundLabels = new Set()
|
|
18
|
+
|
|
19
|
+
return <LegendContainer withRows spacing={SPACINGS.XS}>
|
|
20
|
+
{legendables.map(({ color, label } :Legendable) => {
|
|
21
|
+
if (foundLabels.has(label)) return null
|
|
22
|
+
foundLabels.add(label)
|
|
23
|
+
|
|
24
|
+
return <FlexBlock key={label}
|
|
25
|
+
alignItems={"center"}
|
|
26
|
+
spacing={SPACINGS.SM}>
|
|
27
|
+
<ColorBlock color={color || defaultColor} />
|
|
28
|
+
<Text>{label}</Text>
|
|
29
|
+
</FlexBlock>
|
|
30
|
+
})}
|
|
31
|
+
</LegendContainer>
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
Legend.COMPONENT_NAME = "Legend"
|
|
35
|
+
|
|
36
|
+
const LegendContainer = styled(FlexBlock)`
|
|
37
|
+
font-size: ${FONT_SIZES.XS};
|
|
38
|
+
`
|
|
39
|
+
|
|
40
|
+
const ColorBlock = styled.div`
|
|
41
|
+
background: ${({ color }) => color};
|
|
42
|
+
height: .75rem;
|
|
43
|
+
width: .75rem;
|
|
44
|
+
`
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { SearchableSelector } from "components/forms/selectors/SearchableSelector"
|
|
2
|
+
import React from "react"
|
|
3
|
+
import { Month, MONTH_MAP } from "utils/dateTime/calendar"
|
|
4
|
+
|
|
5
|
+
const parseNumberAndCall = (action: (n: number) => void) => (s: string) => {
|
|
6
|
+
action(Number(s))
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
const toTitleCase = (s: string) => (
|
|
10
|
+
s.toLowerCase()
|
|
11
|
+
.split(" ")
|
|
12
|
+
.map((str: string) => str.charAt(0).toUpperCase() + str.substring(1))
|
|
13
|
+
.join(" ")
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
const keyField = "monthNum"
|
|
17
|
+
const valueField = "monthName"
|
|
18
|
+
const [MONTH_OPTIONS, OPTIONS_KEY_MAP] = Object.keys(MONTH_MAP).reduce(
|
|
19
|
+
([monthOptions, optionsKeyMap], m: string) => {
|
|
20
|
+
const op = {
|
|
21
|
+
[keyField]: MONTH_MAP[m as Month],
|
|
22
|
+
[valueField]: toTitleCase(m),
|
|
23
|
+
}
|
|
24
|
+
// @ts-ignore
|
|
25
|
+
monthOptions.push(op)
|
|
26
|
+
// @ts-ignore
|
|
27
|
+
optionsKeyMap[MONTH_MAP[m as Month]] = op
|
|
28
|
+
|
|
29
|
+
return [monthOptions, optionsKeyMap]
|
|
30
|
+
},
|
|
31
|
+
[[], {}],
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
type Props = {
|
|
35
|
+
month: number,
|
|
36
|
+
onMonthSelected: (n: number) => void
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export const MonthPicker = ({ month, onMonthSelected }: Props) => {
|
|
40
|
+
return (
|
|
41
|
+
<SearchableSelector compact
|
|
42
|
+
flat
|
|
43
|
+
maxMenuHeight={"10rem"}
|
|
44
|
+
options={MONTH_OPTIONS}
|
|
45
|
+
optionsKeyMap={OPTIONS_KEY_MAP}
|
|
46
|
+
keyField={keyField}
|
|
47
|
+
valueField={valueField}
|
|
48
|
+
selectedKey={month.toString()}
|
|
49
|
+
emptyState={"Type or Select Month"}
|
|
50
|
+
// @ts-ignore
|
|
51
|
+
onChange={parseNumberAndCall(onMonthSelected)}
|
|
52
|
+
/>
|
|
53
|
+
)
|
|
54
|
+
}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { mdiArrowLeft, mdiArrowRight } from "@mdi/js"
|
|
2
|
+
import { MonthPicker } from "components/calendars/blocks/MonthPicker"
|
|
3
|
+
import { YearPicker } from "components/calendars/blocks/YearPicker"
|
|
4
|
+
import { IconButton } from "components/forms/IconButton"
|
|
5
|
+
import { FlexBlock } from "components/layout/FlexBlock"
|
|
6
|
+
import moment, { Moment } from "moment"
|
|
7
|
+
import React from "react"
|
|
8
|
+
import styled from "styled-components"
|
|
9
|
+
import { SPACINGS } from "styles/spacings"
|
|
10
|
+
import { getNextMonth, getPrevMonth, MONTH_MAP } from "utils/dateTime/calendar"
|
|
11
|
+
import { maxNumberBetween } from "utils/numberHelpers"
|
|
12
|
+
|
|
13
|
+
export type MonthYearPickerChange = { month: number, year: number }
|
|
14
|
+
|
|
15
|
+
type Props = {
|
|
16
|
+
month: number,
|
|
17
|
+
year: number,
|
|
18
|
+
minDate?: Moment,
|
|
19
|
+
pastFutureYearRangeSize: number,
|
|
20
|
+
onChange: (c: MonthYearPickerChange) => void,
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export const MonthYearPicker = ({
|
|
24
|
+
month,
|
|
25
|
+
year,
|
|
26
|
+
minDate,
|
|
27
|
+
pastFutureYearRangeSize,
|
|
28
|
+
onChange,
|
|
29
|
+
}: Props) => {
|
|
30
|
+
|
|
31
|
+
const currentYear = moment().year()
|
|
32
|
+
const maxYear = currentYear + pastFutureYearRangeSize
|
|
33
|
+
const minYear = maxNumberBetween(
|
|
34
|
+
currentYear - pastFutureYearRangeSize,
|
|
35
|
+
minDate ? minDate.year() : Number.NEGATIVE_INFINITY,
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
const sendPreviousMonth = () => {
|
|
39
|
+
const changes = {
|
|
40
|
+
month: getPrevMonth(month),
|
|
41
|
+
year: month === MONTH_MAP.JANUARY ? year - 1 : year,
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
if (changes.year < minYear) return
|
|
45
|
+
|
|
46
|
+
// @ts-ignore
|
|
47
|
+
onChange(changes)
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const sendNextMonth = () => {
|
|
51
|
+
const changes = {
|
|
52
|
+
month: getNextMonth(month),
|
|
53
|
+
year: month === MONTH_MAP.DECEMBER ? year + 1 : year,
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
if (changes.year > maxYear) return
|
|
57
|
+
|
|
58
|
+
// @ts-ignore
|
|
59
|
+
onChange(changes)
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
const sendSelectedMonth = (m: string) => {
|
|
63
|
+
onChange({ month: Number(m), year })
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
const sendSelectedYear = (y: string) => {
|
|
67
|
+
onChange({ month, year: Number(y) })
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
return <Container alignItems={"center"}>
|
|
71
|
+
<NavButton icon={mdiArrowLeft}
|
|
72
|
+
onClick={sendPreviousMonth} />
|
|
73
|
+
<PickersContainer>
|
|
74
|
+
{/*@ts-ignore*/}
|
|
75
|
+
<MonthPicker month={month} onMonthSelected={sendSelectedMonth} />
|
|
76
|
+
<YearPicker year={year}
|
|
77
|
+
minYear={minYear}
|
|
78
|
+
maxYear={maxYear}
|
|
79
|
+
onYearSelected={sendSelectedYear} />
|
|
80
|
+
</PickersContainer>
|
|
81
|
+
<NavButton icon={mdiArrowRight}
|
|
82
|
+
onClick={sendNextMonth} />
|
|
83
|
+
</Container>
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
const NavButton = styled(IconButton).attrs({
|
|
87
|
+
flat: true,
|
|
88
|
+
})``
|
|
89
|
+
|
|
90
|
+
const Container = styled(FlexBlock)`
|
|
91
|
+
margin-bottom: ${SPACINGS.XS};
|
|
92
|
+
align-items: center;
|
|
93
|
+
`
|
|
94
|
+
|
|
95
|
+
const PickersContainer = styled(FlexBlock).attrs({
|
|
96
|
+
spacing: SPACINGS.XS,
|
|
97
|
+
})`
|
|
98
|
+
margin-left: ${SPACINGS.XS};
|
|
99
|
+
flex: 1;
|
|
100
|
+
justify-content: center;
|
|
101
|
+
`
|