scorer-ui-kit 2.0.2 → 2.0.3
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/package.json +1 -1
- package/dist/Alerts/atom/AlertBar.d.ts +0 -16
- package/dist/Alerts/atom/Notification.d.ts +0 -22
- package/dist/Alerts/index.d.ts +0 -5
- package/dist/CameraPanels/atoms/MediaStream.d.ts +0 -14
- package/dist/CameraPanels/atoms/PanelMetaData.d.ts +0 -11
- package/dist/CameraPanels/index.d.ts +0 -6
- package/dist/CameraPanels/molecules/CameraPanel.d.ts +0 -14
- package/dist/CameraPanels/organisms/CameraPanels.d.ts +0 -7
- package/dist/Filters/FilterTypes.d.ts +0 -51
- package/dist/Filters/atoms/DateTimeBlock.d.ts +0 -12
- package/dist/Filters/atoms/FilterButton.d.ts +0 -10
- package/dist/Filters/atoms/FilterDropHandler.d.ts +0 -13
- package/dist/Filters/atoms/FilterDropdownContainer.d.ts +0 -7
- package/dist/Filters/atoms/LoadingBox.d.ts +0 -6
- package/dist/Filters/index.d.ts +0 -11
- package/dist/Filters/molecules/DatePicker.d.ts +0 -22
- package/dist/Filters/molecules/DropdownDatePicker.d.ts +0 -13
- package/dist/Filters/molecules/FilterDropdown.d.ts +0 -21
- package/dist/Filters/molecules/FilterInputs.d.ts +0 -12
- package/dist/Filters/molecules/FiltersResults.d.ts +0 -21
- package/dist/Filters/molecules/SortDropdown.d.ts +0 -16
- package/dist/Filters/organisms/FilterBar.d.ts +0 -21
- package/dist/Form/Form.d.ts +0 -7
- package/dist/Form/atoms/Button.d.ts +0 -9
- package/dist/Form/atoms/ButtonWithIcon.d.ts +0 -8
- package/dist/Form/atoms/ButtonWithLoading.d.ts +0 -8
- package/dist/Form/atoms/Checkbox.d.ts +0 -15
- package/dist/Form/atoms/CropArea.d.ts +0 -7
- package/dist/Form/atoms/DropArea.d.ts +0 -8
- package/dist/Form/atoms/FilterOption.d.ts +0 -12
- package/dist/Form/atoms/IconButton.d.ts +0 -8
- package/dist/Form/atoms/Input.d.ts +0 -12
- package/dist/Form/atoms/InputFileButton.d.ts +0 -11
- package/dist/Form/atoms/Label.d.ts +0 -12
- package/dist/Form/atoms/RadioButton.d.ts +0 -8
- package/dist/Form/atoms/SelectField.d.ts +0 -16
- package/dist/Form/atoms/SliderInput.d.ts +0 -22
- package/dist/Form/atoms/SmallInput.d.ts +0 -10
- package/dist/Form/atoms/Switch.d.ts +0 -19
- package/dist/Form/atoms/TextArea.d.ts +0 -9
- package/dist/Form/index.d.ts +0 -38
- package/dist/Form/molecules/ActionButtons.d.ts +0 -9
- package/dist/Form/molecules/CropTool.d.ts +0 -18
- package/dist/Form/molecules/DurationSlider.d.ts +0 -11
- package/dist/Form/molecules/PasswordField.d.ts +0 -11
- package/dist/Form/molecules/PercentageSlider.d.ts +0 -15
- package/dist/Form/molecules/TextAreaField.d.ts +0 -11
- package/dist/Form/molecules/TextField.d.ts +0 -12
- package/dist/Form/organisms/AreaUploadManager.d.ts +0 -13
- package/dist/Form/organisms/AvatarUploader.d.ts +0 -19
- package/dist/Global/atoms/CloseButton.d.ts +0 -8
- package/dist/Global/atoms/ContextItem.d.ts +0 -16
- package/dist/Global/atoms/DrawerBottomMenu.d.ts +0 -9
- package/dist/Global/atoms/Layout.d.ts +0 -13
- package/dist/Global/atoms/MobileLogoLink.d.ts +0 -8
- package/dist/Global/atoms/MobileNavbarContent.d.ts +0 -6
- package/dist/Global/atoms/NavigationItem.d.ts +0 -15
- package/dist/Global/atoms/NotificationItem.d.ts +0 -4
- package/dist/Global/index.d.ts +0 -80
- package/dist/Global/molecules/MobileUserMenu.d.ts +0 -7
- package/dist/Global/molecules/NotificationsHistory.d.ts +0 -4
- package/dist/Global/molecules/Sidebar.d.ts +0 -17
- package/dist/Global/molecules/TopBar.d.ts +0 -4
- package/dist/Global/molecules/UserMenu.d.ts +0 -7
- package/dist/Global/organisms/MainMenu.d.ts +0 -4
- package/dist/Global/organisms/MobileMenu.d.ts +0 -7
- package/dist/Global/organisms/MobileNavbar.d.ts +0 -9
- package/dist/Global/templates/GlobalUI.d.ts +0 -9
- package/dist/Icons/Icon.d.ts +0 -14
- package/dist/Icons/StatusIcon.d.ts +0 -9
- package/dist/Indicators/Spinner.d.ts +0 -8
- package/dist/LineUI/Contexts.d.ts +0 -8
- package/dist/LineUI/Control.d.ts +0 -5
- package/dist/LineUI/HandleUnit.d.ts +0 -23
- package/dist/LineUI/LineReducer.d.ts +0 -41
- package/dist/LineUI/LineSet.d.ts +0 -14
- package/dist/LineUI/LineUI.d.ts +0 -14
- package/dist/LineUI/LineUIRTC.d.ts +0 -18
- package/dist/LineUI/LineUIVideo.d.ts +0 -18
- package/dist/LineUI/LineUnit.d.ts +0 -20
- package/dist/LineUI/index.d.ts +0 -61
- package/dist/Misc/atoms/ActionsBar.d.ts +0 -16
- package/dist/Misc/atoms/BasicSearchInput.d.ts +0 -13
- package/dist/Misc/atoms/BigIconsSummary.d.ts +0 -9
- package/dist/Misc/atoms/MediaBox.d.ts +0 -21
- package/dist/Misc/atoms/Tag.d.ts +0 -14
- package/dist/Misc/index.d.ts +0 -9
- package/dist/Misc/molecules/DebouncedSearcher.d.ts +0 -8
- package/dist/Misc/molecules/TagList.d.ts +0 -8
- package/dist/Modals/ConfirmationModal.d.ts +0 -14
- package/dist/Modals/Modal.d.ts +0 -13
- package/dist/Modals/index.d.ts +0 -3
- package/dist/PTZControl/atoms/Down.d.ts +0 -5
- package/dist/PTZControl/atoms/Left.d.ts +0 -5
- package/dist/PTZControl/atoms/Right.d.ts +0 -5
- package/dist/PTZControl/atoms/Up.d.ts +0 -5
- package/dist/PTZControl/atoms/ZoomIn.d.ts +0 -5
- package/dist/PTZControl/atoms/ZoomOut.d.ts +0 -5
- package/dist/PTZControl/index.d.ts +0 -5
- package/dist/PTZControl/molecules/Base.d.ts +0 -5
- package/dist/PTZControl/molecules/ZoomBase.d.ts +0 -5
- package/dist/PTZControl/organisms/Controls.d.ts +0 -6
- package/dist/PTZControl/state/PTZProvider.d.ts +0 -30
- package/dist/PTZControl/state/PTZReducer.d.ts +0 -56
- package/dist/PTZControl/state/usePTZ.d.ts +0 -26
- package/dist/Pages/atoms/IntroductionText.d.ts +0 -5
- package/dist/Pages/atoms/PageTitle.d.ts +0 -11
- package/dist/Pages/index.d.ts +0 -5
- package/dist/Pages/molecules/MultilineContent.d.ts +0 -9
- package/dist/Pages/molecules/PageHeader.d.ts +0 -12
- package/dist/Tables/atoms/TableHeaderTitle.d.ts +0 -12
- package/dist/Tables/atoms/TableRowThumbnail.d.ts +0 -14
- package/dist/Tables/atoms/TypeTableCell.d.ts +0 -16
- package/dist/Tables/atoms/TypeTableDeviceStatus.d.ts +0 -8
- package/dist/Tables/atoms/TypeTableRow.d.ts +0 -14
- package/dist/Tables/index.d.ts +0 -55
- package/dist/Tables/molecules/EditCell.d.ts +0 -12
- package/dist/Tables/molecules/TypeTableHeader.d.ts +0 -18
- package/dist/Tables/organisms/TypeTable.d.ts +0 -21
- package/dist/Tabs/TabContent.d.ts +0 -7
- package/dist/Tabs/TabList.d.ts +0 -8
- package/dist/Tabs/Tabs.d.ts +0 -9
- package/dist/Tabs/atoms/MobileTab.d.ts +0 -11
- package/dist/Tabs/atoms/Tab.d.ts +0 -7
- package/dist/Tabs/atoms/TabWithIcon.d.ts +0 -9
- package/dist/Tabs/index.d.ts +0 -8
- package/dist/Tabs/molecules/TabsWithIconBar.d.ts +0 -12
- package/dist/WebRTCClient.d.ts +0 -13
- package/dist/common/index.d.ts +0 -5
- package/dist/context/ModalContext.d.ts +0 -10
- package/dist/context/NotificationContext.d.ts +0 -11
- package/dist/context/index.d.ts +0 -3
- package/dist/fonts/index.d.ts +0 -2
- package/dist/helpers/cropToolHelpers.d.ts +0 -50
- package/dist/helpers/index.d.ts +0 -19
- package/dist/hooks/index.d.ts +0 -13
- package/dist/hooks/useBreakpoints.d.ts +0 -15
- package/dist/hooks/useClickOutside.d.ts +0 -2
- package/dist/hooks/useCopyToClipboard.d.ts +0 -3
- package/dist/hooks/useInterval.d.ts +0 -1
- package/dist/hooks/useMediaModal.d.ts +0 -10
- package/dist/hooks/useMediaQuery.d.ts +0 -4
- package/dist/hooks/useMenu.d.ts +0 -14
- package/dist/hooks/useModal.d.ts +0 -19
- package/dist/hooks/useNotification.d.ts +0 -1
- package/dist/hooks/usePoll.d.ts +0 -1
- package/dist/hooks/useTitle.d.ts +0 -1
- package/dist/hooks/useTo.d.ts +0 -1
- package/dist/index.d.ts +0 -31
- package/dist/index.js +0 -14548
- package/dist/index.js.map +0 -1
- package/dist/index.modern.js +0 -14433
- package/dist/index.modern.js.map +0 -1
- package/dist/index.test.d.ts +0 -1
- package/dist/svg/AvatarPlaceholder.d.ts +0 -3
- package/dist/svg/Invalid.d.ts +0 -3
- package/dist/svg/LogoMark.d.ts +0 -3
- package/dist/svg/LogoText.d.ts +0 -3
- package/dist/svg/PasswordHide.d.ts +0 -3
- package/dist/svg/PasswordShow.d.ts +0 -3
- package/dist/svg/Required.d.ts +0 -3
- package/dist/svg/Success.d.ts +0 -3
- package/dist/svg/checkmark.d.ts +0 -3
- package/dist/svg/index.d.ts +0 -9
- package/dist/svg/input.d.ts +0 -2
- package/dist/themes/common.d.ts +0 -99
- package/dist/themes/dark/colors.d.ts +0 -24
- package/dist/themes/dark/custom.d.ts +0 -139
- package/dist/themes/dark/dark.d.ts +0 -1051
- package/dist/themes/dark/styles.d.ts +0 -301
- package/dist/themes/dark/typography.d.ts +0 -485
- package/dist/themes/light/colors.d.ts +0 -41
- package/dist/themes/light/custom.d.ts +0 -139
- package/dist/themes/light/light.d.ts +0 -1612
- package/dist/themes/light/styles.d.ts +0 -536
- package/dist/themes/light/typography.d.ts +0 -794
- package/dist/themes/themeFallbackHelper.d.ts +0 -5
package/dist/index.modern.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.modern.js","sources":["../src/themes/common.tsx","../src/themes/light/typography.ts","../src/themes/light/colors.ts","../src/themes/light/styles.ts","../src/themes/light/custom.ts","../src/themes/light/light.ts","../src/themes/dark/typography.ts","../src/themes/dark/colors.ts","../src/themes/dark/styles.ts","../src/themes/dark/custom.ts","../src/themes/dark/dark.ts","../src/themes/themeFallbackHelper.tsx","../src/Icons/Icon.tsx","../src/common/index.ts","../src/Alerts/atom/AlertBar.tsx","../src/Alerts/atom/Notification.tsx","../src/Form/atoms/Button.tsx","../src/Form/atoms/ButtonWithIcon.tsx","../src/Indicators/Spinner.tsx","../src/Form/atoms/ButtonWithLoading.tsx","../src/Form/atoms/IconButton.tsx","../src/Form/molecules/ActionButtons.tsx","../src/Form/atoms/Input.tsx","../src/Form/atoms/Label.tsx","../src/Form/atoms/SmallInput.tsx","../src/Form/atoms/Switch.tsx","../src/svg/LogoMark.tsx","../src/svg/LogoText.tsx","../src/svg/AvatarPlaceholder.tsx","../src/svg/checkmark.tsx","../src/Form/atoms/Checkbox.tsx","../src/Form/atoms/RadioButton.tsx","../src/Form/atoms/TextArea.tsx","../src/Form/atoms/SelectField.tsx","../src/helpers/index.tsx","../src/Form/atoms/SliderInput.tsx","../src/Form/atoms/InputFileButton.tsx","../src/Form/molecules/DurationSlider.tsx","../src/Form/molecules/PercentageSlider.tsx","../src/Form/molecules/PasswordField.tsx","../src/Form/molecules/TextField.tsx","../src/Form/molecules/TextAreaField.tsx","../src/Form/atoms/DropArea.tsx","../src/helpers/cropToolHelpers.ts","../src/Form/atoms/CropArea.tsx","../src/Form/molecules/CropTool.tsx","../src/Form/organisms/AvatarUploader.tsx","../src/Misc/atoms/BigIconsSummary.tsx","../src/Form/organisms/AreaUploadManager.tsx","../src/Form/Form.tsx","../src/Filters/atoms/DateTimeBlock.tsx","../src/Filters/molecules/DatePicker.tsx","../src/Filters/atoms/FilterDropdownContainer.tsx","../src/Filters/atoms/FilterButton.tsx","../src/Form/atoms/FilterOption.tsx","../src/Misc/atoms/BasicSearchInput.tsx","../src/Filters/FilterTypes.ts","../src/hooks/useClickOutside.tsx","../src/Filters/atoms/FilterDropHandler.tsx","../src/Filters/atoms/LoadingBox.tsx","../src/Filters/molecules/FilterDropdown.tsx","../src/Filters/molecules/SortDropdown.tsx","../src/Filters/molecules/DropdownDatePicker.tsx","../src/Filters/molecules/FilterInputs.tsx","../src/Filters/molecules/FiltersResults.tsx","../src/Filters/organisms/FilterBar.tsx","../src/Icons/StatusIcon.tsx","../src/LineUI/HandleUnit.tsx","../src/LineUI/LineUnit.tsx","../src/LineUI/Contexts.tsx","../src/LineUI/LineSet.tsx","../src/LineUI/LineUI.tsx","../src/LineUI/LineUIVideo.tsx","../../../node_modules/babel-plugin-transform-async-to-promises/helpers.mjs","../src/WebRTCClient.tsx","../src/LineUI/LineUIRTC.tsx","../src/LineUI/LineReducer.ts","../src/hooks/useTitle.tsx","../src/Pages/atoms/PageTitle.tsx","../src/Pages/atoms/IntroductionText.tsx","../src/Pages/molecules/PageHeader.tsx","../src/Pages/molecules/MultilineContent.tsx","../src/Misc/atoms/MediaBox.tsx","../src/Modals/Modal.tsx","../src/context/ModalContext.tsx","../src/hooks/useModal.tsx","../src/hooks/useMediaModal.tsx","../src/Tables/atoms/TableRowThumbnail.tsx","../src/Tables/atoms/TypeTableDeviceStatus.tsx","../src/hooks/useCopyToClipboard.tsx","../src/Tables/atoms/TypeTableCell.tsx","../src/Tables/atoms/TypeTableRow.tsx","../src/Tables/atoms/TableHeaderTitle.tsx","../src/Tables/molecules/TypeTableHeader.tsx","../src/Tables/organisms/TypeTable.tsx","../src/Tables/molecules/EditCell.tsx","../src/PTZControl/state/PTZReducer.ts","../src/PTZControl/state/usePTZ.tsx","../src/PTZControl/state/PTZProvider.tsx","../src/PTZControl/atoms/Up.tsx","../src/PTZControl/atoms/Down.tsx","../src/PTZControl/atoms/Left.tsx","../src/PTZControl/atoms/Right.tsx","../src/PTZControl/molecules/Base.tsx","../src/PTZControl/molecules/ZoomBase.tsx","../src/PTZControl/atoms/ZoomIn.tsx","../src/PTZControl/atoms/ZoomOut.tsx","../src/PTZControl/organisms/Controls.tsx","../src/CameraPanels/atoms/MediaStream.tsx","../src/CameraPanels/atoms/PanelMetaData.tsx","../src/CameraPanels/molecules/CameraPanel.tsx","../src/CameraPanels/organisms/CameraPanels.tsx","../src/Misc/atoms/Tag.tsx","../src/Misc/molecules/TagList.tsx","../src/Misc/molecules/DebouncedSearcher.tsx","../src/Misc/atoms/ActionsBar.tsx","../src/hooks/useInterval.ts","../src/hooks/useTo.tsx","../src/context/NotificationContext.tsx","../src/hooks/useNotification.tsx","../src/hooks/usePoll.ts","../src/hooks/useMediaQuery.ts","../src/hooks/useBreakpoints.ts","../src/Modals/ConfirmationModal.tsx","../src/Global/atoms/Layout.tsx","../src/Global/atoms/ContextItem.tsx","../src/hooks/useMenu.ts","../src/Global/atoms/NavigationItem.tsx","../src/Global/organisms/MainMenu.tsx","../src/Global/atoms/DrawerBottomMenu.tsx","../src/Global/molecules/UserMenu.tsx","../src/Global/atoms/NotificationItem.tsx","../src/Global/molecules/NotificationsHistory.tsx","../src/Global/molecules/TopBar.tsx","../src/Tabs/Tabs.tsx","../src/Tabs/TabList.tsx","../src/Tabs/atoms/Tab.tsx","../src/Tabs/TabContent.tsx","../src/Tabs/atoms/MobileTab.tsx","../src/Tabs/atoms/TabWithIcon.tsx","../src/Tabs/molecules/TabsWithIconBar.tsx","../src/Global/atoms/CloseButton.tsx","../src/Global/atoms/MobileNavbarContent.tsx","../src/Global/organisms/MobileMenu.tsx","../src/Global/atoms/MobileLogoLink.tsx","../src/Global/molecules/MobileUserMenu.tsx","../src/Global/organisms/MobileNavbar.tsx","../src/Global/templates/GlobalUI.tsx","../src/Global/molecules/Sidebar.tsx"],"sourcesContent":["export const fontFamily = {\n ui: 'Monorale, Hiragino Sans, \"ヒラギノ角ゴシック\", Hiragino Kaku Gothic ProN, \"ヒラギノ角ゴ ProN W3\", Roboto, YuGothic, \"游ゴシック\", Meiryo, \"メイリオ\", sans-serif;',\n data: 'Lato, Hiragino Sans, \"ヒラギノ角ゴシック\", Hiragino Kaku Gothic ProN, \"ヒラギノ角ゴ ProN W3\", Roboto, YuGothic, \"游ゴシック\", Meiryo, \"メイリオ\", sans-serif;'\n};\n\nexport const dimensions = {\n icons: {\n weights: {\n light: 1,\n regular: 1.5,\n heavy: 3,\n strong: 5\n }\n },\n form: {\n button: {\n xsmall: {\n height: '20px',\n padding: '0 10px',\n iconSize: 12,\n },\n small: {\n height: '30px',\n padding: '0 20px',\n iconSize: 14,\n },\n normal: {\n height: '40px',\n padding: '0 20px',\n iconSize: 16,\n },\n large: {\n height: '60px',\n padding: '0 20px',\n iconSize: 20,\n },\n },\n input: {\n height: '40px'\n },\n switch: {\n outer: {\n width: '38px',\n height: '22px',\n borderRadius: '11px'\n },\n inner: {\n width: '16px',\n height: '16px',\n borderRadius: '8px'\n },\n positions: {\n top: '2px',\n off: '2px',\n neutral: '10px',\n locked: '2px',\n on: '18px',\n }\n }\n },\n global: {\n mainMenu: {\n width: {\n open: '280px',\n closed: '80px'\n }\n }\n }\n};\n\nexport const animation = {\n easing: {\n primary: {\n inOut: 'cubic-bezier(0.87, 0, 0.13, 1)',\n out: 'cubic-bezier(0.16, 1, 0.3, 1)',\n in: 'cubic-bezier(0.7, 0, 0.84, 0)',\n }\n },\n speed: {\n faster: '0.085s',\n fast: '0.175s',\n normal: '0.35s',\n slow: '0.7s',\n slower: '1.4s',\n slowest: '2.8s'\n }\n};\n\nexport const deviceSize = {\n small: 0,\n medium: 768,\n large: 1024,\n xlarge: 1280,\n xxlarge: 1400,\n};\n\n\nexport const deviceMediaQuery = {\n small: `(min-width: ${deviceSize.small}px)`,\n medium: `(min-width: ${deviceSize.medium}px)`,\n large: `(min-width: ${deviceSize.large}px)`,\n xlarge: `(min-width: ${deviceSize.xlarge}px)`,\n xxlarge: `(min-width: ${deviceSize.xxlarge}px)`\n};","export const typography = {\n \"pageHeader\": {\n \"introduction\": {\n \"textAlign\": \"left\",\n \"fontStyle\": \"italic\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 300,\n \"lineHeight\": \"25px\",\n \"textDecoration\": \"none\",\n \"color\": \"hsla(207, 5%, 56.7%, 1.000)\"\n },\n \"areaTitle\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"12px\",\n \"fontWeight\": 400,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 46.3%, 1.000)\"\n },\n \"mainTitle\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"26px\",\n \"fontWeight\": 600,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(208, 7.7%, 38.2%, 1.000)\"\n }\n },\n \"form\": {\n \"label\": {\n \"meta\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 300,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 56.1%, 1.000)\"\n },\n \"default\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 400,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(207, 5%, 56.7%, 1.000)\"\n },\n \"disabled\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"16px\",\n \"fontWeight\": 300,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 46.3%, 0.651)\"\n },\n \"failure\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"16px\",\n \"fontWeight\": 400,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 67.9%, 67.1%, 1.000)\"\n },\n \"meta(Selected)\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 600,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(207, 94.2%, 66.1%, 1.000)\"\n }\n },\n \"tip\": {\n \"textAlign\": \"left\",\n \"fontStyle\": \"italic\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 500,\n \"lineHeight\": \"25px\",\n \"textDecoration\": \"none\",\n \"color\": \"hsla(205, 59.7%, 71.8%, 1.000)\"\n },\n \"button\": {\n \"secondary\": {\n \"normal\": {\n \"textAlign\": \"center\",\n \"fontSize\": \"16px\",\n \"fontWeight\": 600,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 55.3%, 1.000)\"\n },\n \"large\": {\n \"textAlign\": \"center\",\n \"fontSize\": \"20px\",\n \"fontWeight\": 600,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 55.3%, 1.000)\"\n },\n \"small\": {\n \"textAlign\": \"center\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 600,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 55.3%, 1.000)\"\n },\n \"xsmall\": {\n \"textAlign\": \"center\",\n \"fontSize\": \"12px\",\n \"fontWeight\": 600,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 55.3%, 1.000)\"\n }\n },\n \"primary\": {\n \"large\": {\n \"textAlign\": \"center\",\n \"fontSize\": \"20px\",\n \"fontWeight\": 600,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 100%, 1.000)\"\n },\n \"normal\": {\n \"textAlign\": \"center\",\n \"fontSize\": \"16px\",\n \"fontWeight\": 600,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 100%, 1.000)\"\n },\n \"small\": {\n \"textAlign\": \"center\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 600,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 100%, 1.000)\"\n },\n \"xsmall\": {\n \"textAlign\": \"center\",\n \"fontSize\": \"12px\",\n \"fontWeight\": 600,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 100%, 1.000)\"\n }\n },\n \"danger\": {\n \"large\": {\n \"textAlign\": \"center\",\n \"fontSize\": \"20px\",\n \"fontWeight\": 600,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 100%, 1.000)\"\n },\n \"normal\": {\n \"textAlign\": \"center\",\n \"fontSize\": \"16px\",\n \"fontWeight\": 600,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 100%, 1.000)\"\n },\n \"small\": {\n \"textAlign\": \"center\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 600,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 100%, 1.000)\"\n },\n \"xsmall\": {\n \"textAlign\": \"center\",\n \"fontSize\": \"12px\",\n \"fontWeight\": 600,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 100%, 1.000)\"\n }\n }\n },\n \"input\": {\n \"label\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 400,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(207, 5%, 56.7%, 1.000)\"\n },\n \"placeholder\": {\n \"normal\": {\n \"textAlign\": \"left\",\n \"fontStyle\": \"italic\",\n \"fontSize\": \"16px\",\n \"fontWeight\": 500,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 46.3%, 0.502)\"\n },\n \"compact\": {\n \"textAlign\": \"left\",\n \"fontStyle\": \"italic\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 500,\n \"lineHeight\": \"15px\",\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 46.3%, 0.502)\"\n }\n },\n \"value\": {\n \"normal\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"16px\",\n \"fontWeight\": 500,\n \"lineHeight\": \"25px\",\n \"textDecoration\": \"none\",\n \"color\": \"hsla(207, 5%, 56.7%, 1.000)\"\n },\n \"compact\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 500,\n \"lineHeight\": \"15px\",\n \"textDecoration\": \"none\",\n \"color\": \"hsla(207, 5%, 56.7%, 1.000)\"\n }\n }\n },\n \"labelInformation\": {\n \"textAlign\": \"left\",\n \"fontStyle\": \"italic\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 300,\n \"lineHeight\": \"25px\",\n \"textDecoration\": \"none\",\n \"color\": \"hsla(207, 5%, 56.7%, 1.000)\"\n },\n \"select\": {\n \"option\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"16px\",\n \"fontWeight\": 500,\n \"lineHeight\": \"15px\",\n \"textDecoration\": \"none\",\n \"color\": \"hsla(207, 5%, 56.7%, 1.000)\"\n },\n \"selectedValue\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"16px\",\n \"fontWeight\": 500,\n \"lineHeight\": \"15px\",\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 17.6%, 1.000)\"\n },\n \"option(Hover)\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"16px\",\n \"fontWeight\": 500,\n \"lineHeight\": \"15px\",\n \"textDecoration\": \"none\",\n \"color\": \"hsla(207, 41.2%, 53.3%, 1.000)\"\n }\n },\n \"feedback\": {\n \"message\": {\n \"textAlign\": \"left\",\n \"fontStyle\": \"italic\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 500,\n \"lineHeight\": \"20px\",\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 100%, 1.000)\"\n }\n }\n },\n \"global\": {\n \"mainMenu\": {\n \"menuItem\": {\n \"default\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"16px\",\n \"fontWeight\": 300,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 34.5%, 0.847)\"\n },\n \"active\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"16px\",\n \"fontWeight\": 300,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 34.5%, 0.851)\"\n },\n \"hover\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"16px\",\n \"fontWeight\": 300,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 34.5%, 0.851)\"\n }\n },\n \"subheader\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 600,\n \"textTransform\": \"uppercase\",\n \"letterSpacing\": \"0.35px\",\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 34.5%, 0.902)\"\n },\n \"hidePrompt\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 300,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 34.5%, 1.000)\"\n },\n \"subItem\": {\n \"default\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 300,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 34.5%, 0.647)\"\n },\n \"active\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 600,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(214, 14.4%, 46.3%, 1.000)\"\n },\n \"hover\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 300,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(214, 14.4%, 46.3%, 1.000)\"\n }\n },\n \"identity\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"12px\",\n \"fontWeight\": 400,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 34.1%, 0.749)\"\n }\n },\n \"topBar\": {\n \"search\": {\n \"value\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 300,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 34.9%, 1.000)\"\n },\n \"placeholder\": {\n \"textAlign\": \"left\",\n \"fontStyle\": \"italic\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 300,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 65.5%, 1.000)\"\n }\n }\n }\n },\n \"content\": {\n \"section-H2\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"20px\",\n \"fontWeight\": 400,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(208, 7.7%, 38.2%, 1.000)\"\n },\n \"sectionH3\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"16px\",\n \"fontWeight\": 400,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(208, 7.7%, 38.2%, 1.000)\"\n },\n \"actionParagraph\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 300,\n \"lineHeight\": \"25px\",\n \"textDecoration\": \"none\",\n \"color\": \"hsla(207, 5%, 56.7%, 1.000)\"\n },\n \"hyperlink\": {\n \"hover\": {\n \"textAlign\": \"left\",\n \"fontStyle\": \"italic\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 500,\n \"lineHeight\": \"25px\",\n \"textDecoration\": \"none\",\n \"color\": \"hsla(195, 98.3%, 45.1%, 1.000)\"\n },\n \"base\": {\n \"textAlign\": \"left\",\n \"fontStyle\": \"italic\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 500,\n \"lineHeight\": \"25px\",\n \"textDecoration\": \"none\",\n \"color\": \"hsla(205, 62.3%, 55.3%, 1.000)\"\n }\n }\n },\n \"feedbackBar\": {\n \"message\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 400,\n \"lineHeight\": \"15px\",\n \"letterSpacing\": \"-0.2px\",\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 100%, 1.000)\"\n }\n },\n \"searchBar\": {\n \"placeholder\": {\n \"textAlign\": \"left\",\n \"fontStyle\": \"italic\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 700,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 46.3%, 0.647)\"\n },\n \"value\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 600,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(207, 5%, 56.7%, 1.000)\"\n }\n },\n \"meta\": {\n \"tagList\": {\n \"emptyStates\": {\n \"normal\": {\n \"textAlign\": \"left\",\n \"fontStyle\": \"italic\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 500,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 46.3%, 1.000)\"\n },\n \"small\": {\n \"textAlign\": \"left\",\n \"fontStyle\": \"italic\",\n \"fontSize\": \"12px\",\n \"fontWeight\": 500,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 46.3%, 1.000)\"\n }\n },\n \"item\": {\n \"normal\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 600,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(200, 3%, 38.8%, 1.000)\"\n },\n \"small\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"12px\",\n \"fontWeight\": 600,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(200, 3%, 38.8%, 1.000)\"\n }\n }\n }\n },\n \"table\": {\n \"columnData\": {\n \"normalImportance\": {\n \"right\": {\n \"textAlign\": \"right\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 500,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(195, 9.8%, 51.8%, 0.722)\"\n },\n \"left\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 500,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(195, 9.8%, 51.8%, 0.722)\"\n },\n \"center\": {\n \"textAlign\": \"center\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 500,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(195, 9.8%, 51.8%, 0.722)\"\n }\n },\n \"highImportance\": {\n \"right\": {\n \"textAlign\": \"right\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 900,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(196, 9.7%, 55.7%, 1.000)\"\n },\n \"center\": {\n \"textAlign\": \"center\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 900,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(196, 9.7%, 55.7%, 1.000)\"\n },\n \"left\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 900,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(196, 9.7%, 55.7%, 1.000)\"\n }\n },\n \"firstColumn\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 500,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(194, 10.2%, 52%, 1.000)\"\n },\n \"lowImportance\": {\n \"right\": {\n \"textAlign\": \"right\",\n \"fontStyle\": \"italic\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 500,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(195, 9.8%, 51.8%, 0.722)\"\n },\n \"center\": {\n \"textAlign\": \"center\",\n \"fontStyle\": \"italic\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 500,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(195, 9.8%, 51.8%, 0.722)\"\n },\n \"left\": {\n \"textAlign\": \"left\",\n \"fontStyle\": \"italic\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 500,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(195, 9.8%, 51.8%, 0.722)\"\n }\n },\n \"unit\": {\n \"textAlign\": \"right\",\n \"fontStyle\": \"italic\",\n \"fontSize\": \"12px\",\n \"fontWeight\": 500,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(195, 9.8%, 51.8%, 0.722)\"\n }\n },\n \"header\": {\n \"center\": {\n \"textAlign\": \"center\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 700,\n \"letterSpacing\": \"0.4px\",\n \"textDecoration\": \"none\",\n \"color\": \"hsla(204, 2.4%, 59%, 1.000)\"\n },\n \"left\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 700,\n \"letterSpacing\": \"0.4px\",\n \"textDecoration\": \"none\",\n \"color\": \"hsla(204, 2.4%, 59%, 1.000)\"\n },\n \"right\": {\n \"textAlign\": \"right\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 700,\n \"letterSpacing\": \"0.4px\",\n \"textDecoration\": \"none\",\n \"color\": \"hsla(204, 2.4%, 59%, 1.000)\"\n }\n },\n \"subHeader\": {\n \"center\": {\n \"textAlign\": \"center\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 700,\n \"letterSpacing\": \"0.4px\",\n \"textDecoration\": \"none\",\n \"color\": \"hsla(204, 2.4%, 59%, 1.000)\"\n },\n \"left\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 700,\n \"letterSpacing\": \"0.4px\",\n \"textDecoration\": \"none\",\n \"color\": \"hsla(204, 2.4%, 59%, 1.000)\"\n },\n \"right\": {\n \"textAlign\": \"right\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 700,\n \"letterSpacing\": \"0.4px\",\n \"textDecoration\": \"none\",\n \"color\": \"hsla(204, 2.4%, 59%, 1.000)\"\n }\n }\n },\n \"filters\": {\n \"datepicker\": {\n \"metaHeader\": {\n \"default\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 300,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 56.1%, 1.000)\"\n },\n \"active\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 600,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(207, 94.2%, 66.1%, 1.000)\"\n }\n },\n \"calendar\": {\n \"active\": {\n \"textAlign\": \"center\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 400,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 100%, 1.000)\"\n },\n \"otherMonth\": {\n \"textAlign\": \"center\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 400,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(206, 6.3%, 49.4%, 0.502)\"\n },\n \"default\": {\n \"textAlign\": \"center\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 400,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 46.3%, 1.000)\"\n },\n \"header\": {\n \"textAlign\": \"center\",\n \"fontSize\": \"12px\",\n \"fontWeight\": 700,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 82%, 1.000)\"\n }\n },\n \"monthLink\": {\n \"default\": {\n \"textAlign\": \"center\",\n \"fontSize\": \"12px\",\n \"fontWeight\": 700,\n \"lineHeight\": \"20px\",\n \"textTransform\": \"uppercase\",\n \"letterSpacing\": \"0.4px\",\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 75.7%, 1.000)\"\n },\n \"hover\": {\n \"textAlign\": \"center\",\n \"fontSize\": \"12px\",\n \"fontWeight\": 700,\n \"lineHeight\": \"20px\",\n \"textTransform\": \"uppercase\",\n \"letterSpacing\": \"0.4px\",\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 100%, 1.000)\"\n }\n },\n \"focusedMonth\": {\n \"textAlign\": \"center\",\n \"fontSize\": \"20px\",\n \"fontWeight\": 400,\n \"lineHeight\": \"20px\",\n \"letterSpacing\": \"0.5px\",\n \"textDecoration\": \"none\",\n \"color\": \"hsla(215, 23.5%, 64.1%, 1.000)\"\n },\n \"focusedYear\": {\n \"textAlign\": \"center\",\n \"fontSize\": \"10px\",\n \"fontWeight\": 700,\n \"lineHeight\": \"20px\",\n \"textTransform\": \"uppercase\",\n \"letterSpacing\": \"0.3333333px\",\n \"textDecoration\": \"none\",\n \"color\": \"hsla(215, 23.5%, 64.1%, 1.000)\"\n }\n },\n \"value\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 500,\n \"letterSpacing\": \"0.2px\",\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 56.1%, 1.000)\"\n },\n \"subOption\": {\n \"label\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"12px\",\n \"fontWeight\": 300,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 46.3%, 1.000)\"\n },\n \"value\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"13px\",\n \"fontWeight\": 500,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(202, 6.2%, 74.5%, 1.000)\"\n }\n },\n \"presetAction\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"13px\",\n \"fontWeight\": 500,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(202, 6.2%, 74.5%, 1.000)\"\n },\n \"filterButton\": {\n \"default\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"12px\",\n \"fontWeight\": 400,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 50.2%, 1.000)\"\n },\n \"active\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"12px\",\n \"fontWeight\": 400,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 100%, 1.000)\"\n },\n \"hover\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"12px\",\n \"fontWeight\": 400,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 100%, 1.000)\"\n }\n },\n \"searchInput\": {\n \"placeholder\": {\n \"textAlign\": \"left\",\n \"fontStyle\": \"italic\",\n \"fontSize\": \"12px\",\n \"fontWeight\": 500,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 46.3%, 0.647)\"\n },\n \"value\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"12px\",\n \"fontWeight\": 400,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 50.2%, 1.000)\"\n }\n }\n },\n \"tables\": {\n \"groupName\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"12px\",\n \"fontWeight\": 400,\n \"letterSpacing\": \"0.3px\",\n \"textDecoration\": \"none\",\n \"color\": \"hsla(210, 2.4%, 51%, 0.651)\"\n }\n },\n \"modal\": {\n \"title\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"20px\",\n \"fontWeight\": 400,\n \"textShadow\": \"0px 0px 10px #ffffffcc\",\n \"textDecoration\": \"none\",\n \"color\": \"hsla(210, 5.8%, 47.5%, 1.000)\"\n },\n \"basicContent\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 400,\n \"lineHeight\": \"25px\",\n \"textDecoration\": \"none\",\n \"color\": \"hsla(200, 1.2%, 49.2%, 1.000)\"\n }\n }\n};","export const colors = {\n \"pureBase\": \"hsla(0, 0%, 100%, 1.000)\",\n \"pureTop\": \"hsla(0, 0%, 0%, 1.000)\",\n \"divider\": \"hsla(0, 0%, 93.3%, 1.000)\",\n \"icons\": {\n \"inverse\": \"hsla(0, 0%, 100%, 1.000)\",\n \"mono\": \"hsla(0, 0%, 25.1%, 1.000)\",\n \"dimmed\": \"hsla(0, 0%, 65.1%, 1.000)\",\n \"subtle\": \"hsla(0, 0%, 85.1%, 1.000)\",\n \"primary\": \"hsla(205, 100%, 65.1%, 1.000)\",\n \"danger\": \"hsla(0, 100%, 70%, 1.000)\"\n },\n \"menu\": {\n \"active\": \"hsla(215, 100%, 75.1%, 1.000)\",\n \"hover\": \"hsla(200, 77.8%, 77.1%, 1.000)\",\n \"default\": \"hsla(200, 77.8%, 77.1%, 0.000)\",\n \"indicator\": \"hsla(240, 1.2%, 84.1%, 0.502)\",\n \"passive\": \"hsla(215, 100%, 75.1%, 0.149)\"\n },\n \"feedback\": {\n \"error\": \"hsla(0, 78.8%, 70.4%, 1.000)\",\n \"info\": \"hsla(205, 77.4%, 63.5%, 1.000)\",\n \"neutral\": \"hsla(205, 22.1%, 66.3%, 1.000)\",\n \"success\": \"hsla(136, 49.5%, 57.3%, 1.000)\",\n \"warning\": \"hsla(30, 91%, 61%, 1.000)\"\n },\n \"status\": {\n \"caution\": \"hsla(57, 57.7%, 62.9%, 1.000)\",\n \"danger\": \"hsla(0, 63.5%, 64.5%, 1.000)\",\n \"folder\": \"hsla(207, 95.3%, 66.5%, 1.000)\",\n \"highlight\": \"hsla(207, 95.3%, 66.5%, 1.000)\",\n \"good\": \"hsla(126, 48.1%, 68.2%, 1.000)\",\n \"neutral\": \"hsla(0, 0%, 91.8%, 1.000)\"\n },\n \"transparent\": \"hsla(0, 0%, 0%, 0.000)\",\n \"input\": {\n \"border\": {\n \"default\": \"hsla(120, 1.3%, 85.3%, 1.000)\"\n }\n }\n};","import { colors } from './colors';\n\nexport const styles = {\n \"generic\": {\n \"transparent\": {}\n },\n \"form\": {\n \"input\": {\n \"default\": {\n \"normal\": {\n \"backgroundColor\": \"hsla(0, 0%, 100%, 1.000)\",\n \"borderColor\": colors.input.border.default,\n \"border\": colors.input.border.default + \" 1px solid\"\n },\n \"focused\": {\n \"boxShadow\": \"0px 3px 7px 0px hsla(207, 65.8%, 31%, 0.078)\",\n \"backgroundColor\": \"hsla(0, 0%, 100%, 1.000)\",\n \"borderColor\": \"hsla(205, 58.9%, 71.4%, 1.000)\",\n \"border\": \"hsla(205, 58.9%, 71.4%, 1.000) 1px solid\"\n }\n },\n \"disabled\": {\n \"normal\": {\n \"backgroundColor\": \"hsla(206, 36.8%, 96.3%, 1.000)\",\n \"borderColor\": \"hsla(120, 1.3%, 85.3%, 1.000)\",\n \"border\": \"hsla(120, 1.3%, 85.3%, 1.000) 1px solid\"\n }\n },\n \"subdivision\": {\n \"backgroundColor\": \"hsla(120, 1.3%, 85.3%, 1.000)\"\n },\n \"required\": {\n \"focused\": {\n \"boxShadow\": \"0px 3px 7px 0px hsla(207, 67.8%, 35.3%, 0.071)\",\n \"backgroundColor\": \"hsla(0, 0%, 100%, 1.000)\",\n \"borderColor\": \"hsla(205, 58.9%, 71.4%, 1.000)\",\n \"border\": \"hsla(205, 58.9%, 71.4%, 1.000) 2px solid\"\n },\n \"normal\": {\n \"borderColor\": \"hsla(205, 58.9%, 71.4%, 1.000)\",\n \"border\": \"hsla(205, 58.9%, 71.4%, 1.000) 1px solid\"\n }\n },\n \"valid\": {\n \"focused\": {\n \"boxShadow\": \"0px 3px 5px 0px hsla(120, 76.6%, 15.1%, 0.071)\",\n \"backgroundColor\": \"hsla(0, 0%, 100%, 1.000)\",\n \"borderColor\": \"hsla(120, 35.2%, 71.6%, 1.000)\",\n \"border\": \"hsla(120, 35.2%, 71.6%, 1.000) 2px solid\"\n },\n \"normal\": {\n \"borderColor\": \"hsla(120, 35.2%, 71.6%, 1.000)\",\n \"border\": \"hsla(120, 35.2%, 71.6%, 1.000) 1px solid\"\n }\n },\n \"invalid\": {\n \"focused\": {\n \"boxShadow\": \"0px 3px 7px 0px hsla(0, 100%, 50%, 0.102)\",\n \"backgroundColor\": \"hsla(0, 0%, 100%, 1.000)\",\n \"borderColor\": \"hsla(0, 78.8%, 70.4%, 1.000)\",\n \"border\": \"hsla(0, 78.8%, 70.4%, 1.000) 2px solid\"\n },\n \"normal\": {\n \"borderColor\": \"hsla(0, 78.8%, 70.4%, 1.000)\",\n \"border\": \"hsla(0, 78.8%, 70.4%, 1.000) 1px solid\"\n }\n },\n \"processing\": {\n \"focused\": {\n \"boxShadow\": \"0px 3px 7px 0px hsla(195, 67.8%, 35.3%, 0.071)\",\n \"backgroundColor\": \"hsla(0, 0%, 100%, 1.000)\",\n \"borderColor\": \"hsla(195, 79.5%, 71.4%, 1.000)\",\n \"border\": \"hsla(195, 79.5%, 71.4%, 1.000) 2px solid\"\n },\n \"normal\": {\n \"backgroundColor\": \"hsla(0, 0%, 100%, 1.000)\",\n \"borderColor\": \"hsla(195, 79.5%, 71.4%, 1.000)\",\n \"border\": \"hsla(195, 79.5%, 71.4%, 1.000) 1px solid\"\n }\n },\n \"seperatedValues\": {\n \"background\": {\n \"backgroundColor\": \"hsla(205, 82.4%, 64.3%, 1.000)\",\n \"backgroundImage\": \"linear-gradient(315.00deg, hsla(205, 82.4%, 64.3%, 1.000) 0%, hsla(195, 83.5%, 54.7%, 1.000) 100%)\"\n },\n \"hoverHighlight\": {\n \"backgroundColor\": \"hsla(195, 84.3%, 67.5%, 1.000)\"\n }\n }\n },\n \"button\": {\n \"primary\": {\n \"default\": {\n \"backgroundColor\": \"hsla(200, 77.5%, 68.6%, 1.000)\",\n \"backgroundImage\": \"linear-gradient(135.00deg, hsla(200, 77.5%, 68.6%, 1.000) 0%, hsla(207, 80.2%, 64.3%, 1.000) 100%)\"\n },\n \"hover\": {\n \"backgroundColor\": \"hsla(207, 88.2%, 60%, 1.000)\"\n },\n \"active\": {\n \"backgroundColor\": \"hsla(195, 79.5%, 71.4%, 1.000)\"\n },\n \"divider\": {\n \"backgroundColor\": \"hsla(202, 70.4%, 62.9%, 1.000)\"\n },\n \"disabled\": {\n \"backgroundColor\": \"hsla(200, 77.5%, 68.6%, 1.000)\",\n \"backgroundImage\": \"linear-gradient(135.00deg, hsla(200, 77.5%, 68.6%, 1.000) 0%, hsla(207, 80.2%, 64.3%, 1.000) 100%)\"\n },\n \"actionArea\": {\n \"backgroundColor\": \"hsla(200, 77.5%, 68.6%, 1.000)\",\n \"backgroundImage\": \"linear-gradient(135.00deg, hsla(200, 77.5%, 68.6%, 1.000) 0%, hsla(207, 80.2%, 64.3%, 1.000) 100%)\"\n }\n },\n \"secondary\": {\n \"default\": {\n \"backgroundColor\": \"hsla(206, 42.1%, 92.5%, 1.000)\"\n },\n \"hover\": {\n \"backgroundColor\": \"hsla(207, 42.9%, 91.8%, 1.000)\"\n },\n \"active\": {\n \"backgroundColor\": \"hsla(207, 29.7%, 82.2%, 1.000)\"\n },\n \"disabled\": {\n \"backgroundColor\": \"hsla(0, 0%, 97.3%, 1.000)\"\n },\n \"divider\": {\n \"backgroundColor\": \"hsla(204, 18.2%, 78.4%, 0.302)\"\n },\n \"actionArea\": {\n \"backgroundColor\": \"hsla(0, 0%, 94.9%, 0.302)\"\n }\n },\n \"danger\": {\n \"default\": {\n \"backgroundColor\": \"hsla(0, 54%, 60.8%, 1.000)\",\n \"backgroundImage\": \"linear-gradient(317.51deg, hsla(0, 54%, 60.8%, 1.000) 0%, hsla(0, 71.4%, 67.1%, 1.000) 100%)\"\n },\n \"hover\": {\n \"backgroundColor\": \"hsla(0, 88.4%, 66.3%, 1.000)\"\n },\n \"active\": {\n \"backgroundColor\": \"hsla(0, 78.8%, 70.4%, 1.000)\"\n },\n \"disabled\": {\n \"backgroundColor\": \"hsla(0, 78.7%, 85.3%, 1.000)\"\n },\n \"divider\": {\n \"backgroundColor\": \"hsla(0, 62.1%, 61.8%, 1.000)\"\n },\n \"actionArea\": {\n \"backgroundColor\": \"hsla(0, 54%, 60.8%, 1.000)\",\n \"backgroundImage\": \"linear-gradient(317.51deg, hsla(0, 54%, 60.8%, 1.000) 0%, hsla(0, 71.4%, 67.1%, 1.000) 100%)\"\n }\n }\n },\n \"switch\": {\n \"off\": {\n \"default\": {\n \"outer\": {\n \"backgroundColor\": \"hsla(210, 30%, 96.1%, 1.000)\",\n \"backgroundImage\": \"linear-gradient(180.00deg, hsla(210, 30%, 96.1%, 1.000) 0%, hsla(203, 41.9%, 93.9%, 1.000) 100%)\",\n \"borderColor\": \"hsla(208, 24.6%, 77.6%, 0.651)\",\n \"border\": \"hsla(208, 24.6%, 77.6%, 0.651) 1px solid\"\n },\n \"inner\": {\n \"backgroundColor\": \"hsla(205, 82.4%, 64.3%, 1.000)\",\n \"backgroundImage\": \"linear-gradient(315.00deg, hsla(205, 82.4%, 64.3%, 1.000) 0%, hsla(195, 83.5%, 54.7%, 1.000) 100%)\"\n }\n },\n \"disabled\": {\n \"outer\": {\n \"backgroundColor\": \"hsla(0, 0%, 100%, 1.000)\",\n \"backgroundImage\": \"linear-gradient(180.00deg, hsla(0, 0%, 100%, 1.000) 0%, hsla(0, 0%, 98.8%, 1.000) 100%)\",\n \"borderColor\": \"hsla(208, 22.7%, 85.3%, 0.651)\",\n \"border\": \"hsla(208, 22.7%, 85.3%, 0.651) 1px solid\"\n },\n \"inner\": {\n \"backgroundColor\": \"hsla(120, 1.3%, 85.3%, 1.000)\"\n }\n },\n \"loading\": {\n \"outer\": {\n \"backgroundColor\": \"hsla(210, 30%, 96.1%, 1.000)\",\n \"backgroundImage\": \"linear-gradient(180.00deg, hsla(210, 30%, 96.1%, 1.000) 0%, hsla(203, 41.9%, 93.9%, 1.000) 100%)\",\n \"borderColor\": \"hsla(208, 24.6%, 77.6%, 0.651)\",\n \"border\": \"hsla(208, 24.6%, 77.6%, 0.651) 1px solid\"\n }\n }\n },\n \"on\": {\n \"default\": {\n \"outer\": {\n \"backgroundColor\": \"hsla(204, 78.4%, 72.7%, 1.000)\",\n \"backgroundImage\": \"linear-gradient(317.51deg, hsla(204, 78.4%, 72.7%, 1.000) 0%, hsla(195, 83.2%, 67.3%, 1.000) 100%)\",\n \"borderColor\": \"hsla(205, 66.5%, 61.4%, 1.000)\",\n \"border\": \"hsla(205, 66.5%, 61.4%, 1.000) 1px solid\"\n },\n \"inner\": {\n \"backgroundColor\": \"hsla(0, 0%, 100%, 1.000)\"\n }\n },\n \"disabled\": {\n \"outer\": {\n \"backgroundColor\": \"hsla(205, 61.9%, 87.6%, 1.000)\",\n \"backgroundImage\": \"linear-gradient(180.00deg, hsla(205, 61.9%, 87.6%, 1.000) 0%, hsla(204, 45.5%, 84.9%, 1.000) 100%)\",\n \"borderColor\": \"hsla(205, 89.5%, 85.1%, 1.000)\",\n \"border\": \"hsla(205, 89.5%, 85.1%, 1.000) 1px solid\"\n },\n \"inner\": {\n \"backgroundColor\": \"hsla(0, 0%, 100%, 1.000)\"\n }\n },\n \"loading\": {\n \"outer\": {\n \"backgroundColor\": \"hsla(204, 68.3%, 72.7%, 0.647)\",\n \"backgroundImage\": \"linear-gradient(315.00deg, hsla(204, 68.3%, 72.7%, 0.647) 0%, hsla(195, 83.2%, 67.3%, 0.655) 100%)\",\n \"borderColor\": \"hsla(205, 66.5%, 61.4%, 0.651)\",\n \"border\": \"hsla(205, 66.5%, 61.4%, 0.651) 1px solid\"\n }\n }\n },\n \"failure\": {\n \"default\": {\n \"outer\": {\n \"backgroundColor\": \"hsla(0, 68.5%, 67.6%, 1.000)\",\n \"backgroundImage\": \"linear-gradient(317.51deg, hsla(0, 68.5%, 67.6%, 1.000) 0%, hsla(0, 69.1%, 65.7%, 1.000) 100%)\",\n \"borderColor\": \"hsla(0, 66.5%, 61.4%, 1.000)\",\n \"border\": \"hsla(0, 66.5%, 61.4%, 1.000) 1px solid\"\n },\n \"inner\": {\n \"backgroundColor\": \"hsla(0, 0%, 100%, 1.000)\"\n }\n },\n \"loading\": {\n \"outer\": {\n \"backgroundColor\": \"hsla(0, 60.6%, 73.1%, 1.000)\",\n \"backgroundImage\": \"linear-gradient(317.51deg, hsla(0, 60.6%, 73.1%, 1.000) 0.4%, hsla(0, 57.9%, 73.9%, 1.000) 100%)\",\n \"borderColor\": \"hsla(0, 54.2%, 67.5%, 1.000)\",\n \"border\": \"hsla(0, 54.2%, 67.5%, 1.000) 1px solid\"\n },\n \"inner\": {\n \"backgroundColor\": \"hsla(0, 0%, 100%, 1.000)\"\n }\n }\n },\n \"danger\": {\n \"default\": {\n \"outer\": {\n \"backgroundColor\": \"hsla(0, 68%, 66.9%, 1.000)\",\n \"backgroundImage\": \"linear-gradient(317.51deg, hsla(0, 68%, 66.9%, 1.000) 0%, hsla(20, 81.2%, 64.5%, 1.000) 100%)\",\n \"borderColor\": \"hsla(0, 51.2%, 60.6%, 1.000)\",\n \"border\": \"hsla(0, 51.2%, 60.6%, 1.000) 1px solid\"\n },\n \"inner\": {\n \"backgroundColor\": \"hsla(0, 0%, 100%, 1.000)\"\n }\n },\n \"loading\": {\n \"outer\": {\n \"backgroundColor\": \"hsla(0, 79.5%, 77.1%, 1.000)\",\n \"backgroundImage\": \"linear-gradient(317.51deg, hsla(0, 79.5%, 77.1%, 1.000) 0%, hsla(20, 96%, 80.4%, 1.000) 100%)\",\n \"borderColor\": \"hsla(0, 62%, 73.1%, 1.000)\",\n \"border\": \"hsla(0, 62%, 73.1%, 1.000) 1px solid\"\n }\n },\n \"disabled\": {\n \"outer\": {\n \"backgroundColor\": \"hsla(0, 57%, 81.8%, 1.000)\",\n \"backgroundImage\": \"linear-gradient(317.51deg, hsla(0, 57%, 81.8%, 1.000) 0%, hsla(19, 100%, 84.9%, 1.000) 100%)\",\n \"borderColor\": \"hsla(0, 78.7%, 85.3%, 1.000)\",\n \"border\": \"hsla(0, 78.7%, 85.3%, 1.000) 1px solid\"\n },\n \"inner\": {\n \"backgroundColor\": \"hsla(0, 0%, 100%, 1.000)\"\n }\n }\n },\n \"locked\": {\n \"default\": {\n \"outer\": {\n \"backgroundColor\": \"hsla(0, 0%, 100%, 1.000)\",\n \"backgroundImage\": \"linear-gradient(180.00deg, hsla(0, 0%, 100%, 1.000) 0%, hsla(0, 0%, 98.8%, 1.000) 100%)\",\n \"borderColor\": \"hsla(208, 22.7%, 85.3%, 0.651)\",\n \"border\": \"hsla(208, 22.7%, 85.3%, 0.651) 1px solid\"\n },\n \"inner\": {\n \"backgroundColor\": \"hsla(0, 0%, 89.4%, 1.000)\"\n }\n }\n }\n },\n \"checkbox\": {\n \"unchecked\": {\n \"disabled\": {\n \"backgroundColor\": \"hsla(0, 0%, 98.8%, 1.000)\",\n \"borderColor\": \"hsla(210, 20%, 90.2%, 1.000)\",\n \"border\": \"hsla(210, 20%, 90.2%, 1.000) 2px solid\"\n },\n \"default\": {\n \"borderColor\": \"hsla(208, 24.6%, 77.6%, 1.000)\",\n \"border\": \"hsla(208, 24.6%, 77.6%, 1.000) 2px solid\"\n },\n \"hover\": {\n \"borderColor\": \"hsla(195, 94.2%, 66.1%, 1.000)\",\n \"border\": \"hsla(195, 94.2%, 66.1%, 1.000) 2px solid\"\n }\n },\n \"checked\": {\n \"disabled\": {\n \"boxShadow\": \"inset 0px 1px 5px 0px hsla(205, 50.3%, 30%, 0.051)\",\n \"backgroundColor\": \"hsla(210, 20%, 90.2%, 1.000)\"\n },\n \"default\": {\n \"boxShadow\": \"inset 0px 1px 5px 0px hsla(205, 50.3%, 30%, 0.051)\",\n \"backgroundColor\": \"hsla(207, 95.3%, 66.5%, 1.000)\"\n },\n \"hover\": {\n \"boxShadow\": \"inset 0px 1px 5px 0px hsla(205, 50.3%, 30%, 0.051)\",\n \"backgroundColor\": \"hsla(195, 95.3%, 66.5%, 1.000)\"\n }\n },\n \"indeterminate\": {\n \"hover\": {\n \"boxShadow\": \"inset 0px 1px 5px 0px hsla(205, 50.3%, 30%, 0.051)\",\n \"backgroundColor\": \"hsla(195, 85.4%, 73.1%, 1.000)\"\n },\n \"default\": {\n \"boxShadow\": \"inset 0px 1px 5px 0px hsla(205, 50.3%, 30%, 0.051)\",\n \"backgroundColor\": \"hsla(205, 89.5%, 77.6%, 1.000)\"\n }\n }\n }\n },\n \"global\": {\n \"mainMenu\": {\n \"iconBackground\": {\n \"active\": {\n \"backgroundColor\": colors.menu.active\n },\n \"hover\": {\n \"backgroundColor\": colors.menu.hover\n },\n \"default\": {\n \"backgroundColor\": colors.menu.default\n }\n },\n \"background\": {\n \"boxShadow\": \"5px 0px 10px 0px hsla(205, 16%, 76.7%, 0.102)\",\n \"backgroundColor\": \"hsla(0, 0%, 99.6%, 1.000)\"\n },\n \"lines\": {\n \"backgroundColor\": \"hsla(0, 0%, 93.3%, 1.000)\"\n },\n \"footerBackground\": {\n \"backgroundColor\": \"hsla(0, 0%, 99.6%, 0.851)\"\n }\n },\n \"background\": {\n \"backgroundColor\": \"hsla(210, 20%, 98%, 1.000)\",\n \"backgroundImage\": \"linear-gradient(180.00deg, hsla(210, 20%, 98%, 1.000) 0%, hsla(210, 20%, 96.1%, 1.000) 100%)\"\n },\n \"drawer\": {\n \"background\": {\n \"boxShadow\": \"-5px 0px 10px 0px hsla(205, 16%, 76.7%, 0.102)\",\n \"backgroundColor\": \"hsla(0, 0%, 100%, 1.000)\"\n }\n },\n \"topBar\": {\n \"lines\": {\n \"backgroundColor\": \"hsla(0, 0%, 89.4%, 1.000)\"\n }\n }\n },\n \"indicators\": {\n \"spinner\": {\n \"danger\": {\n \"base\": {\n \"borderColor\": \"hsla(0, 78.8%, 70.4%, 1.000)\",\n \"border\": \"hsla(0, 78.8%, 70.4%, 1.000) 3px solid\"\n },\n \"top\": {\n \"borderColor\": \"hsla(0, 0%, 100%, 1.000)\",\n \"border\": \"hsla(0, 0%, 100%, 1.000) 3px solid\"\n }\n },\n \"secondary\": {\n \"top\": {\n \"borderColor\": \"hsla(0, 0%, 100%, 1.000)\",\n \"border\": \"hsla(0, 0%, 100%, 1.000) 3px solid\"\n },\n \"base\": {\n \"borderColor\": \"hsla(0, 0%, 75.7%, 1.000)\",\n \"border\": \"hsla(0, 0%, 75.7%, 1.000) 3px solid\"\n }\n },\n \"primary\": {\n \"top\": {\n \"borderColor\": \"hsla(0, 0%, 100%, 1.000)\",\n \"border\": \"hsla(0, 0%, 100%, 1.000) 3px solid\"\n },\n \"base\": {\n \"borderColor\": \"hsla(195, 89.4%, 81.6%, 1.000)\",\n \"border\": \"hsla(195, 89.4%, 81.6%, 1.000) 3px solid\"\n }\n },\n \"simple\": {\n \"top\": {\n \"borderColor\": \"hsla(0, 0%, 100%, 1.000)\",\n \"border\": \"hsla(0, 0%, 100%, 1.000) 3px solid\"\n },\n \"base\": {\n \"borderColor\": \"hsla(0, 0%, 76.9%, 0.329)\",\n \"border\": \"hsla(0, 0%, 76.9%, 0.329) 3px solid\"\n }\n }\n }\n },\n \"filters\": {\n \"dropdownContainer\": {\n \"background\": {\n \"boxShadow\": \"0px 5px 25px 0px hsla(210, 66.9%, 46.3%, 0.122)\",\n \"backgroundColor\": \"hsla(0, 0%, 100%, 1.000)\",\n \"borderColor\": \"hsla(0, 0%, 90.6%, 1.000)\",\n \"border\": \"hsla(0, 0%, 90.6%, 1.000) 1px solid\"\n },\n \"topBorder\": {\n \"backgroundColor\": \"hsla(205, 100%, 72%, 1.000)\"\n }\n },\n \"filterButton\": {\n \"default\": {\n \"boxShadow\": \"0px 4px 9px 0px hsla(204, 21.9%, 66.9%, 0.071)\",\n \"backgroundColor\": \"hsla(200, 23.1%, 97.5%, 1.000)\",\n \"borderColor\": \"hsla(207, 15.9%, 86.5%, 1.000)\",\n \"border\": \"hsla(207, 15.9%, 86.5%, 1.000) 1px solid\",\n \"textColor\": \"hsla(0, 0%, 50.2%, 1.000)\"\n },\n \"active\": {\n \"boxShadow\": \"0px 4px 9px 0px hsla(204, 21.9%, 66.9%, 0.071)\",\n \"backgroundColor\": \"hsla(205, 100%, 72%, 1.000)\",\n \"borderColor\": \"hsla(205, 100%, 72%, 1.000)\",\n \"border\": \"hsla(205, 100%, 72%, 1.000) 1px solid\",\n \"textColor\": \"hsla(0, 0%, 100%, 1.000)\"\n },\n \"hover\": {\n \"boxShadow\": \"0px 4px 9px 0px hsla(204, 21.9%, 66.9%, 0.071)\",\n \"backgroundColor\": \"hsla(205, 100%, 78.6%, 1.000)\",\n \"borderColor\": \"hsla(205, 100%, 72%, 1.000)\",\n \"border\": \"hsla(205, 100%, 72%, 1.000) 1px solid\",\n \"textColor\": \"hsla(0, 0%, 100%, 1.000)\"\n }\n },\n \"searchInput\": {\n \"default\": {\n \"boxShadow\": \"0px 4px 9px 0px hsla(205, 34.6%, 68.2%, 0.071)\",\n \"backgroundColor\": \"hsla(0, 0%, 100%, 1.000)\",\n \"borderColor\": \"hsla(207, 15.9%, 86.5%, 1.000)\",\n \"border\": \"hsla(207, 15.9%, 86.5%, 1.000) 1px solid\"\n },\n \"focused\": {\n \"boxShadow\": \"0px 4px 9px 0px hsla(205, 34.6%, 68.2%, 0.071)\",\n \"backgroundColor\": \"hsla(0, 0%, 100%, 1.000)\",\n \"borderColor\": \"hsla(208, 50%, 81.2%, 1.000)\",\n \"border\": \"hsla(208, 50%, 81.2%, 1.000) 1px solid\"\n }\n }\n },\n \"tables\": {\n \"loadingOverlay\": {\n \"backgroundColor\": \"hsla(210, 20%, 98%, 0.851)\",\n \"backgroundImage\": \"linear-gradient(180.00deg, hsla(210, 20%, 98%, 0.851) 0%, hsla(210, 20%, 96.1%, 1.000) 100%)\"\n },\n \"rows\": {\n \"divider\": {\n \"backgroundColor\": colors.divider\n }\n },\n \"header\": {\n \"groupLine\": {\n \"backgroundColor\": colors.divider\n },\n \"divider\": {\n \"backgroundColor\": colors.divider\n },\n \"sortable\": {\n \"hover\": {\n \"backgroundColor\": \"hsla(220, 33.3%, 94.7%, 1.000)\"\n },\n \"default\": {\n \"backgroundColor\": \"hsla(220, 33.3%, 94.7%, 0.000)\"\n }\n }\n }\n },\n \"general\": {\n \"divider\": {\n \"backgroundColor\": colors.divider\n }\n },\n \"feedbackBar\": {\n \"neutral\": {\n \"backgroundColor\": colors.feedback.neutral\n },\n \"error\": {\n \"backgroundColor\": colors.feedback.error\n },\n \"info\": {\n \"backgroundColor\": colors.feedback.info\n },\n \"success\": {\n \"backgroundColor\": colors.feedback.success\n },\n \"warning\": {\n \"backgroundColor\": colors.feedback.warning\n }\n },\n \"filterButton\": {\n \"active\": {\n \"boxShadow\": \"0px 4px 9px 0px hsla(204, 21.9%, 66.9%, 0.071)\",\n \"backgroundColor\": \"hsla(200, 23.1%, 97.5%, 1.000)\",\n \"borderColor\": \"hsla(205, 100%, 72%, 1.000)\",\n \"border\": \"hsla(205, 100%, 72%, 1.000) 1px solid\"\n }\n },\n \"modal\": {\n \"overlay\": {\n \"backgroundColor\": \"hsla(202, 33.3%, 95.3%, 0.510)\"\n },\n \"container\": {\n \"boxShadow\": \"0px 10px 15px 0px hsla(205, 42.2%, 60%, 0.149)\",\n \"backgroundColor\": \"hsla(0, 0%, 100%, 1.000)\",\n \"borderColor\": \"hsla(0, 14.3%, 90.4%, 1.000)\",\n \"border\": \"hsla(0, 14.3%, 90.4%, 1.000) 1px solid\"\n }\n }\n};","export const custom = {\n \"lines\":{\n \"primary\": {\n label: {\n fill: \"#fff\"//\"hsla(205deg, 80%, 25%, 100%)\"\n },\n contrastLine: {\n stroke: 'hsla(205deg, 80%, 45%, 100%);'\n },\n highlightLine: {\n stroke: 'hsla(205deg, 45%, 90%, 90%);'\n },\n grabHandle: {\n fill: 'hsla(205deg, 45%, 90%, 100%)',\n stroke: 'hsla(205deg, 45%, 100%, 100%)'\n },\n point:{\n fill: 'hsla(205deg, 45%, 90%, 100%)',\n },\n grabHandleContrast:{\n stroke: 'hsla(205deg, 80%, 45%, 100%)'\n },\n grabHandleText:{\n fill: 'hsla(205deg, 80%, 25%, 100%);'\n },\n handleBase: {\n fill: 'hsla(235deg, 100%, 80%, 100%);'\n },\n handleRingLayer: {\n stroke: 'hsla(205deg, 100%, 89%, 100%);'\n },\n handleReactiveFill:{\n fill: 'hsla(192deg, 100%, 45%, 100%);'\n },\n handleReactiveRing:{\n stroke: 'hsla(205deg, 100%, 36%, 27%);'\n },\n handleContrastLayer:{\n stroke: 'hsla(205deg, 100%, 36%, 15%);'\n },\n stopStart:{\n stopColor:' hsla(205deg, 100%, 15%, 35%);'\n },\n stopEnd:{\n stopColor: 'hsla(205deg, 100%, 15%, 0%)'\n\n }\n\n },\n \"secondary\": {\n label: {\n fill: \"#fff\"//\"hsla(205deg, 80%, 25%, 100%)\"\n },\n contrastLine: {\n stroke: 'hsla(120deg, 80%, 45%, 100%);'\n },\n highlightLine: {\n stroke: 'hsla(120deg, 45%, 90%, 90%);'\n },\n grabHandle: {\n fill: 'hsla(120deg, 45%, 90%, 100%)',\n stroke: 'hsla(120deg, 45%, 100%, 100%)'\n },\n point:{\n fill: 'hsla(120deg, 45%, 90%, 100%)',\n },\n grabHandleContrast:{\n stroke: 'hsla(120deg, 80%, 45%, 100%)'\n },\n grabHandleText:{\n fill: 'hsla(120deg, 80%, 25%, 100%);'\n },\n handleBase: {\n fill: 'hsla(150deg, 100%, 80%, 100%);'\n },\n handleRingLayer: {\n stroke: 'hsla(120deg, 100%, 89%, 100%);'\n },\n handleReactiveFill:{\n fill: 'hsla(108deg, 100%, 45%, 100%);'\n },\n handleReactiveRing:{\n stroke: 'hsla(120deg, 100%, 36%, 27%);'\n },\n handleContrastLayer:{\n stroke: 'hsla(120deg, 100%, 36%, 15%);'\n },\n stopStart:{\n stopColor:' hsla(120deg, 100%, 15%, 35%);'\n },\n stopEnd:{\n stopColor: 'hsla(120deg, 100%, 15%, 0%)'\n\n }\n },\n \"danger\": {\n label: {\n fill: \"#fff\"//\"hsla(205deg, 80%, 25%, 100%)\"\n },\n contrastLine: {\n stroke: 'hsla(0, 80%, 45%, 100%);'\n },\n highlightLine: {\n stroke: 'hsla(0, 45%, 90%, 90%);'\n },\n grabHandle: {\n fill: 'hsla(0, 45%, 90%, 100%)',\n stroke: 'hsla(0, 45%, 100%, 100%)'\n },\n point:{\n fill: 'hsla(0, 45%, 90%, 100%)',\n },\n grabHandleText:{\n fill: 'hsla(0, 80%, 25%, 100%);'\n },\n grabHandleContrast:{\n stroke: 'hsla(0, 80%, 45%, 100%)'\n },\n handleBase: {\n fill: 'hsla(30deg, 100%, 80%, 100%);'\n },\n handleRingLayer: {\n stroke: 'hsla(0, 100%, 89%, 100%);'\n },\n handleReactiveFill:{\n fill: 'hsla(348deg, 100%, 45%, 100%);'\n },\n handleReactiveRing:{\n stroke: 'hsla(0deg, 100%, 36%, 27%);'\n },\n handleContrastLayer:{\n stroke: 'hsla(0deg, 100%, 36%, 15%);'\n },\n stopStart:{\n stopColor:' hsla(0, 100%, 15%, 35%);'\n },\n stopEnd:{\n stopColor: 'hsla(0, 100%, 15%, 0%);'\n }\n }\n }\n};","import { fontFamily, dimensions, animation, deviceSize, deviceMediaQuery } from '../common';\nimport { typography } from './typography';\nimport { colors } from './colors';\nimport { styles } from './styles';\nimport { custom } from './custom';\nexport default { fontFamily, dimensions, typography, colors, styles, animation, custom, deviceSize, deviceMediaQuery };","export const typography = {\n \"form\": {\n \"label\": {\n \"default\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 400,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(207, 5%, 56.7%, 1.000)\"\n }\n },\n \"input\": {\n \"label\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 400,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(207, 5%, 56.7%, 1.000)\"\n },\n \"placeholder\": {\n \"normal\": {\n \"textAlign\": \"left\",\n \"fontStyle\": \"italic\",\n \"fontSize\": \"16px\",\n \"fontWeight\": 500,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 46.3%, 1.000)\"\n }\n },\n \"value\": {\n \"normal\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"16px\",\n \"fontWeight\": 500,\n \"lineHeight\": \"25px\",\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 96.9%, 1.000)\"\n }\n }\n },\n \"button\": {\n \"secondary\": {\n \"normal\": {\n \"textAlign\": \"center\",\n \"fontSize\": \"16px\",\n \"fontWeight\": 600,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 91.4%, 1.000)\"\n },\n \"large\": {\n \"textAlign\": \"center\",\n \"fontSize\": \"20px\",\n \"fontWeight\": 600,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 91.4%, 1.000)\"\n },\n \"small\": {\n \"textAlign\": \"center\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 600,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 91.4%, 1.000)\"\n },\n \"xsmall\": {\n \"textAlign\": \"center\",\n \"fontSize\": \"12px\",\n \"fontWeight\": 600,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 91.4%, 1.000)\"\n }\n }\n }\n },\n \"global\": {\n \"mainMenu\": {\n \"subItem\": {\n \"default\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 300,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 100%, 0.549)\"\n },\n \"hover\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 300,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 100%, 0.800)\"\n }\n },\n \"subheader\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 600,\n \"textTransform\": \"uppercase\",\n \"letterSpacing\": \"0.35px\",\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 100%, 0.545)\"\n },\n \"identity\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"12px\",\n \"fontWeight\": 400,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 88.6%, 0.651)\"\n },\n \"menuItem\": {\n \"active\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"16px\",\n \"fontWeight\": 300,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 100%, 1.000)\"\n },\n \"default\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"16px\",\n \"fontWeight\": 300,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 100%, 1.000)\"\n },\n \"hover\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"16px\",\n \"fontWeight\": 300,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 100%, 1.000)\"\n }\n },\n \"hidePrompt\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 300,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(203, 13.2%, 73.3%, 1.000)\"\n },\n \"sub-MenuItem\": {\n \"default\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 300,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(203, 6.6%, 76.1%, 1.000)\"\n },\n \"active\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 300,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(203, 6.6%, 76.1%, 1.000)\"\n },\n \"hover\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 300,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(203, 6.6%, 76.1%, 1.000)\"\n }\n }\n },\n \"topBar\": {\n \"search\": {\n \"value\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 300,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 34.9%, 1.000)\"\n }\n }\n }\n },\n \"pageHeader\": {\n \"introduction\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 300,\n \"lineHeight\": \"20px\",\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 85.9%, 1.000)\"\n },\n \"mainTitle\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"26px\",\n \"fontWeight\": 600,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(208, 17.8%, 85.7%, 1.000)\"\n },\n \"areaTitle\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"12px\",\n \"fontWeight\": 400,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(205, 7.6%, 69%, 1.000)\"\n }\n },\n \"styleGuide\": {\n \"guideTitle\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"24px\",\n \"fontWeight\": 300,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 48.2%, 1.000)\",\n \"textTransform\": \"uppercase\",\n \"letterSpacing\": \"0.4px\"\n },\n \"guideNotes\": {\n \"textAlign\": \"left\",\n \"fontStyle\": \"italic\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 300,\n \"lineHeight\": \"30px\",\n \"paragraphSpacing\": \"15px\",\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 48.2%, 1.000)\"\n },\n \"itemName\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"12px\",\n \"fontWeight\": 300,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 22.7%, 1.000)\"\n },\n \"guideAreaSubtitle\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"16px\",\n \"fontWeight\": 300,\n \"textTransform\": \"uppercase\",\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 48.2%, 1.000)\"\n },\n \"guideAreaTitle\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"20px\",\n \"fontWeight\": 300,\n \"textTransform\": \"uppercase\",\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 48.2%, 1.000)\"\n }\n },\n \"active\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 600,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 100%, 0.800)\"\n },\n \"filters\": {\n \"filterButton\": {\n \"default\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"12px\",\n \"fontWeight\": 400,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 86.3%, 1.000)\"\n },\n \"active\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"12px\",\n \"fontWeight\": 400,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 100%, 1.000)\"\n },\n \"hover\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"12px\",\n \"fontWeight\": 400,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 100%, 1.000)\"\n }\n },\n \"searchInput\": {\n \"placeholder\": {\n \"textAlign\": \"left\",\n \"fontStyle\": \"italic\",\n \"fontSize\": \"12px\",\n \"fontWeight\": 500,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 46.3%, 1.000)\"\n },\n \"value\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"12px\",\n \"fontWeight\": 400,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 96.9%, 1.000)\"\n }\n }\n },\n \"table\": {\n \"columnData\": {\n \"firstColumn\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 500,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(196, 25.3%, 82.2%, 1.000)\"\n },\n \"lowImportance\": {\n \"left\": {\n \"textAlign\": \"left\",\n \"fontStyle\": \"italic\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 500,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(197, 7.4%, 52.2%, 1.000)\"\n },\n \"center\": {\n \"textAlign\": \"center\",\n \"fontStyle\": \"italic\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 500,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(197, 7.4%, 52.2%, 1.000)\"\n },\n \"right\": {\n \"textAlign\": \"right\",\n \"fontStyle\": \"italic\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 500,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(197, 7.4%, 52.2%, 1.000)\"\n }\n },\n \"highImportance\": {\n \"left\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 900,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(196, 25.3%, 82.2%, 1.000)\"\n },\n \"right\": {\n \"textAlign\": \"right\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 900,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(196, 25.3%, 82.2%, 1.000)\"\n },\n \"center\": {\n \"textAlign\": \"center\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 900,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(196, 25.3%, 82.2%, 1.000)\"\n }\n },\n \"normalImportance\": {\n \"right\": {\n \"textAlign\": \"right\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 500,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(196, 10.9%, 73.1%, 1.000)\"\n },\n \"center\": {\n \"textAlign\": \"center\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 500,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(196, 10.9%, 73.1%, 1.000)\"\n },\n \"left\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 500,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(196, 10.9%, 73.1%, 1.000)\"\n }\n },\n \"unit\": {\n \"textAlign\": \"right\",\n \"fontStyle\": \"italic\",\n \"fontSize\": \"12px\",\n \"fontWeight\": 500,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(193, 9.7%, 63.5%, 1.000)\"\n }\n },\n \"header\": {\n \"right\": {\n \"textAlign\": \"right\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 700,\n \"letterSpacing\": \"0.4px\",\n \"textDecoration\": \"none\",\n \"color\": \"hsla(204, 10.6%, 81.6%, 1.000)\"\n },\n \"left\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 700,\n \"letterSpacing\": \"0.4px\",\n \"textDecoration\": \"none\",\n \"color\": \"hsla(204, 10.6%, 81.6%, 1.000)\"\n },\n \"center\": {\n \"textAlign\": \"center\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 700,\n \"letterSpacing\": \"0.4px\",\n \"textDecoration\": \"none\",\n \"color\": \"hsla(204, 10.6%, 81.6%, 1.000)\"\n }\n },\n \"subHeader\": {\n \"right\": {\n \"textAlign\": \"right\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 700,\n \"letterSpacing\": \"0.4px\",\n \"textDecoration\": \"none\",\n \"color\": \"hsla(204, 10.6%, 81.6%, 1.000)\"\n },\n \"left\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 700,\n \"letterSpacing\": \"0.4px\",\n \"textDecoration\": \"none\",\n \"color\": \"hsla(204, 10.6%, 81.6%, 1.000)\"\n },\n \"center\": {\n \"textAlign\": \"center\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 700,\n \"letterSpacing\": \"0.4px\",\n \"textDecoration\": \"none\",\n \"color\": \"hsla(204, 10.6%, 81.6%, 1.000)\"\n }\n }\n },\n \"tables\": {\n \"groupName\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"12px\",\n \"fontWeight\": 400,\n \"letterSpacing\": \"0.3px\",\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 56.5%, 1.000)\"\n }\n },\n \"meta\": {\n \"tagList\": {\n \"item\": {\n \"normal\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 600,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(200, 3%, 38.8%, 1.000)\"\n }\n }\n }\n },\n \"searchBar\": {\n \"placeholder\": {\n \"textAlign\": \"left\",\n \"fontStyle\": \"italic\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 700,\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 46.3%, 0.647)\"\n }\n },\n \"modal\": {\n \"basicContent\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"14px\",\n \"fontWeight\": 400,\n \"lineHeight\": \"25px\",\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 86.3%, 1.000)\"\n },\n \"title\": {\n \"textAlign\": \"left\",\n \"fontSize\": \"20px\",\n \"fontWeight\": 400,\n \"textShadow\": \"0px 0px 10px #1a97e959\",\n \"textDecoration\": \"none\",\n \"color\": \"hsla(0, 0%, 86.3%, 1.000)\"\n }\n }\n};","export const colors = {\n \"divider\": \"hsla(240, 4.7%, 25.1%, 1.000)\",\n \"menu\": {\n \"active\": \"hsla(215, 66.3%, 59.2%, 1.000)\",\n \"hover\": \"hsla(215, 19.1%, 36.9%, 1.000)\",\n \"default\": \"hsla(215, 19.1%, 36.9%, 0.000)\"\n },\n \"icons\": {\n \"subtle\": \"hsla(207, 4.8%, 37.1%, 1.000)\",\n \"dimmed\": \"hsla(0, 0%, 65.1%, 1.000)\",\n \"inverse\": \"hsla(0, 0%, 25.1%, 1.000)\",\n \"mono\": \"hsla(0, 0%, 100%, 1.000)\",\n \"danger\": \"hsla(0, 100%, 70%, 1.000)\",\n \"primary\": \"hsla(205, 100%, 65.1%, 1.000)\"\n },\n \"status\": {\n \"good\": \"hsla(126, 48.1%, 68.2%, 1.000)\"\n },\n \"input\": {\n \"border\": {\n \"default\": \"hsla(120, 1.3%, 85.3%, 1.000)\"\n }\n }\n};","import { colors } from './colors';\n\nexport const styles = {\n \"global\": {\n \"mainMenu\": {\n \"background\": {\n \"boxShadow\": \"5px 0px 10px 0px hsla(205, 14%, 16.9%, 0.251)\",\n \"backgroundColor\": \"hsla(210, 7.9%, 14.9%, 1.000)\"\n },\n \"footerBackground\": {\n \"backgroundColor\": \"hsla(210, 7.9%, 14.9%, 0.800)\"\n },\n \"lines\": {\n \"backgroundColor\": \"hsla(225, 3.5%, 22.4%, 1.000)\"\n },\n \"iconBackground\": {\n \"default\": {\n \"backgroundColor\": colors.menu.default\n },\n \"hover\": {\n \"backgroundColor\": colors.menu.hover\n },\n \"active\": {\n \"backgroundColor\": colors.menu.active\n }\n },\n \"desktop\": {\n \"open\": {}\n }\n },\n \"drawer\": {\n \"background\": {\n \"boxShadow\": \"5px 0px 10px 0px hsla(205, 14%, 16.9%, 0.251)\",\n \"backgroundColor\": \"hsla(210, 7.9%, 14.9%, 1.000)\"\n }\n },\n \"topBar\": {\n \"lines\": {\n \"backgroundColor\": \"hsla(225, 3.5%, 22.4%, 1.000)\"\n }\n },\n \"background\": {\n \"backgroundColor\": \"hsla(220, 4.2%, 13.9%, 1.000)\",\n \"backgroundImage\": \"linear-gradient(180.00deg, hsla(220, 4.2%, 13.9%, 1.000) 0%, hsla(220, 4.9%, 12%, 1.000) 100%)\"\n }\n },\n \"general\": {\n \"divider\": {\n \"backgroundColor\": \"hsla(213, 11.6%, 18.6%, 1.000)\"\n }\n },\n \"tables\": {\n \"loadingOverlay\": {\n \"backgroundColor\": \"hsla(220, 4.2%, 13.9%, 0.851)\",\n \"backgroundImage\": \"linear-gradient(180.00deg, hsla(220, 4.2%, 13.9%, 0.851) 0%, hsla(220, 4.2%, 13.9%, 1.000) 100%)\"\n },\n \"rows\": {\n \"divider\": {\n \"backgroundColor\": colors.divider\n }\n },\n \"header\": {\n \"groupLine\": {\n \"backgroundColor\": \"hsla(240, 4.7%, 25.1%, 1.000)\"\n },\n \"divider\": {\n \"backgroundColor\": colors.divider\n },\n \"sortable\": {\n \"default\": {\n \"backgroundColor\": \"hsla(221, 15.9%, 38.2%, 0.000)\"\n },\n \"hover\": {\n \"backgroundColor\": \"hsla(221, 15.9%, 38.2%, 1.000)\"\n }\n }\n }\n },\n \"filters\": {\n \"filterButton\": {\n \"hover\": {\n \"boxShadow\": \"0px 4px 9px 0px hsla(205, 68.4%, 7.5%, 0.071)\",\n \"backgroundColor\": \"hsla(205, 86.8%, 70.4%, 1.000)\",\n \"borderColor\": \"hsla(205, 100%, 72%, 1.000)\",\n \"border\": \"hsla(205, 100%, 72%, 1.000) 1px solid\",\n \"textColor\": \"hsla(0, 0%, 100%, 1.000)\"\n },\n \"default\": {\n \"boxShadow\": \"0px 4px 9px 0px hsla(205, 68.4%, 7.5%, 0.071)\",\n \"backgroundColor\": \"hsla(210, 4.3%, 18%, 1.000)\",\n \"borderColor\": \"hsla(210, 3.5%, 22.4%, 1.000)\",\n \"border\": \"hsla(210, 3.5%, 22.4%, 1.000) 1px solid\",\n \"textColor\": \"hsla(0, 0%, 86.3%, 1.000)\"\n },\n \"active\": {\n \"boxShadow\": \"0px 4px 9px 0px hsla(205, 68.4%, 7.5%, 0.071)\",\n \"backgroundColor\": \"hsla(205, 81.2%, 64.5%, 1.000)\",\n \"borderColor\": \"hsla(205, 100%, 72%, 1.000)\",\n \"border\": \"hsla(205, 100%, 72%, 1.000) 1px solid\",\n \"textColor\": \"hsla(0, 0%, 100%, 1.000)\"\n }\n },\n \"searchInput\": {\n \"default\": {\n \"boxShadow\": \"0px 4px 9px 0px hsla(205, 68.4%, 7.5%, 0.071)\",\n \"backgroundColor\": \"hsla(210, 4.3%, 18%, 1.000)\",\n \"borderColor\": \"hsla(210, 3.5%, 22.4%, 1.000)\",\n \"border\": \"hsla(210, 3.5%, 22.4%, 1.000) 1px solid\"\n },\n \"focused\": {\n \"boxShadow\": \"0px 4px 9px 0px hsla(205, 68.4%, 7.5%, 0.071)\",\n \"backgroundColor\": \"hsla(210, 14.3%, 19.2%, 1.000)\",\n \"borderColor\": \"hsla(207, 19.8%, 34.7%, 1.000)\",\n \"border\": \"hsla(207, 19.8%, 34.7%, 1.000) 1px solid\"\n }\n },\n \"dropdownContainer\": {\n \"topBorder\": {\n \"backgroundColor\": \"hsla(205, 100%, 72%, 1.000)\"\n },\n \"background\": {\n \"boxShadow\": \"0px 4px 9px 0px hsla(205, 68.4%, 7.5%, 0.071)\",\n \"backgroundColor\": \"hsla(210, 4.3%, 18%, 1.000)\",\n \"borderColor\": colors.divider,\n \"border\": colors.divider + \" 1px solid\"\n }\n }\n },\n \"form\": {\n \"checkbox\": {\n \"unchecked\": {\n \"disabled\": {\n \"backgroundColor\": \"hsla(210, 4.3%, 18%, 1.000)\",\n \"borderColor\": \"hsla(208, 24.6%, 77.6%, 1.000)\",\n \"border\": \"hsla(208, 24.6%, 77.6%, 1.000) 2px solid\"\n },\n \"default\": {\n \"borderColor\": \"hsla(208, 24.6%, 77.6%, 1.000)\",\n \"border\": \"hsla(208, 24.6%, 77.6%, 1.000) 2px solid\"\n }\n },\n \"checked\": {\n \"default\": {\n \"boxShadow\": \"inset 0px 1px 5px 0px hsla(205, 50.3%, 30%, 0.051)\",\n \"backgroundColor\": \"hsla(207, 95.3%, 66.5%, 1.000)\"\n },\n \"disabled\": {\n \"boxShadow\": \"inset 0px 1px 5px 0px hsla(205, 50.3%, 30%, 0.051)\",\n \"backgroundColor\": \"hsla(207, 4.8%, 37.1%, 1.000)\",\n },\n }\n },\n \"button\": {\n \"secondary\": {\n \"hover\": {\n \"backgroundColor\": \"hsla(205, 33.3%, 32.9%, 1.000)\"\n },\n \"disabled\": {\n \"backgroundColor\": \"hsla(205, 12.8%, 18.4%, 1.000)\"\n },\n \"actionArea\": {\n \"backgroundColor\": \"hsla(0, 0%, 94.9%, 0.302)\"\n },\n \"default\": {\n \"backgroundColor\": \"hsla(205, 15.1%, 28.6%, 1.000)\"\n },\n \"divider\": {\n \"backgroundColor\": \"hsla(204, 18.2%, 78.4%, 0.302)\"\n },\n \"active\": {\n \"backgroundColor\": \"hsla(205, 56.9%, 28.2%, 1.000)\"\n }\n },\n \"danger\": {\n \"disabled\": {\n \"backgroundColor\": \"hsla(0,54%,38%, 1.000)\"\n },\n \"divider\": {\n \"backgroundColor\": \"hsla(204, 18.2%, 78.4%, 0.302)\"\n }\n },\n },\n \"input\": {\n \"default\": {\n \"normal\": {\n \"backgroundColor\": \"hsla(210, 4.3%, 18%, 1.000)\",\n \"borderColor\": \"hsla(216, 3.4%, 28.8%, 1.000)\",\n \"border\": \"hsla(216, 3.4%, 28.8%, 1.000) 1px solid\"\n },\n \"focused\": {\n \"backgroundColor\": \"hsla(210, 14.3%, 19.2%, 1.000)\",\n \"borderColor\": \"hsla(207, 19.8%, 34.7%, 1.000)\",\n \"border\": \"hsla(207, 19.8%, 34.7%, 1.000) 1px solid\",\n \"boxShadow\": \"0px 3px 7px 0px hsla(205, 68.4%, 7.5%, 0.071)\"\n }\n },\n \"required\": {\n \"normal\": {\n \"backgroundColor\": \"hsla(210, 4.3%, 18%, 1.000)\",\n \"borderColor\": \"hsla(205, 58.9%, 71.4%, 1.000)\",\n \"border\": \"hsla(205, 58.9%, 71.4%, 1.000) 1px solid\"\n },\n \"focused\": {\n \"boxShadow\": \"0px 3px 7px 0px hsla(207, 67.8%, 35.3%, 0.071)\",\n \"backgroundColor\": \"hsla(210, 4.3%, 18%, 1.000)\",\n \"borderColor\": \"hsla(205, 58.9%, 71.4%, 1.000)\",\n \"border\": \"hsla(205, 58.9%, 71.4%, 1.000) 2px solid\"\n }\n },\n \"processing\": {\n \"focused\": {\n \"boxShadow\": \"0px 3px 7px 0px hsla(195, 67.8%, 35.3%, 0.071)\",\n \"backgroundColor\": \"hsla(210, 4.3%, 18%, 1.000)\",\n \"borderColor\": \"hsla(195, 79.5%, 71.4%, 1.000)\",\n \"border\": \"hsla(195, 79.5%, 71.4%, 1.000) 2px solid\"\n },\n \"normal\": {\n \"backgroundColor\": \"hsla(210, 4.3%, 18%, 1.000)\",\n \"borderColor\": \"hsla(195, 79.5%, 71.4%, 1.000)\",\n \"border\": \"hsla(195, 79.5%, 71.4%, 1.000) 1px solid\"\n }\n },\n \"disabled\": {\n \"normal\": {\n \"backgroundColor\": \"hsla(220, 3.6%, 16.3%, 1.000)\",\n \"borderColor\": \"hsla(220, 2.9%, 20.6%, 1.000)\",\n \"border\": \"hsla(220, 2.9%, 20.6%, 1.000) 1px solid\"\n }\n },\n \"valid\": {\n \"normal\": {\n \"backgroundColor\": \"hsla(210, 4.3%, 18%, 1.000)\",\n \"borderColor\": \"hsla(120, 35.2%, 71.6%, 1.000)\",\n \"border\": \"hsla(120, 35.2%, 71.6%, 1.000) 1px solid\"\n },\n \"focused\": {\n \"boxShadow\": \"0px 3px 5px 0px hsla(120, 76.6%, 15.1%, 0.071)\",\n \"backgroundColor\": \"hsla(210, 4.3%, 18%, 1.000)\",\n \"borderColor\": \"hsla(120, 35.2%, 71.6%, 1.000)\",\n \"border\": \"hsla(120, 35.2%, 71.6%, 1.000) 2px solid\"\n }\n },\n \"invalid\": {\n \"normal\": {\n \"backgroundColor\": \"hsla(210, 4.3%, 18%, 1.000)\",\n \"borderColor\": \"hsla(0, 78.8%, 70.4%, 1.000)\",\n \"border\": \"hsla(0, 78.8%, 70.4%, 1.000) 1px solid\"\n },\n \"focused\": {\n \"boxShadow\": \"0px 3px 7px 0px hsla(0, 100%, 50%, 0.102)\",\n \"backgroundColor\": \"hsla(210, 4.3%, 18%, 1.000)\",\n \"borderColor\": \"hsla(0, 78.8%, 70.4%, 1.000)\",\n \"border\": \"hsla(0, 78.8%, 70.4%, 1.000) 2px solid\"\n }\n }\n }\n },\n \"indicators\": {\n \"spinner\": {\n \"secondary\": {\n \"top\": {\n \"borderColor\": \"hsla(195, 59.4%, 72%, 1.000)\",\n \"border\": \"hsla(195, 59.4%, 72%, 1.000) 3px solid\"\n },\n \"base\": {\n \"borderColor\": \"hsla(0, 2%, 29.6%, 1.000)\",\n \"border\": \"hsla(0, 2%, 29.6%, 1.000) 3px solid\"\n }\n },\n \"simple\": {\n \"base\": {\n \"borderColor\": \"hsla(0, 0%, 76.9%, 0.329)\",\n \"border\": \"hsla(0, 0%, 76.9%, 0.329) 3px solid\"\n },\n \"top\": {\n \"borderColor\": \"hsla(0, 0%, 100%, 1.000)\",\n \"border\": \"hsla(0, 0%, 100%, 1.000) 3px solid\"\n }\n },\n \"primary\": {\n \"base\": {\n \"borderColor\": \"hsla(195, 54.1%, 30.8%, 1.000)\",\n \"border\": \"hsla(195, 54.1%, 30.8%, 1.000) 3px solid\"\n },\n \"top\": {\n \"borderColor\": \"hsla(210, 100%, 65.9%, 1.000)\",\n \"border\": \"hsla(210, 100%, 65.9%, 1.000) 3px solid\"\n }\n }\n }\n },\n \"modal\": {\n \"container\": {\n \"boxShadow\": \"0px 10px 15px 0px hsla(205, 38.7%, 12.2%, 0.149)\",\n \"backgroundColor\": \"hsla(210, 17.1%, 13.7%, 1.000)\",\n \"borderColor\": \"hsla(206, 7.1%, 19.4%, 1.000)\",\n \"border\": \"hsla(206, 7.1%, 19.4%, 1.000) 1px solid\"\n },\n \"overlay\": {\n \"backgroundColor\": \"hsla(203, 100%, 4.7%, 0.647)\"\n }\n }\n};","export const custom = {\n \"lines\":{\n \"primary\": {\n label: {\n fill: \"#fff\"//\"hsla(205deg, 80%, 25%, 100%)\"\n },\n contrastLine: {\n stroke: 'hsla(205deg, 80%, 45%, 100%);'\n },\n highlightLine: {\n stroke: 'hsla(205deg, 45%, 90%, 90%);'\n },\n grabHandle: {\n fill: 'hsla(205deg, 45%, 90%, 100%)',\n stroke: 'hsla(205deg, 45%, 100%, 100%)'\n },\n point:{\n fill: 'hsla(205deg, 45%, 90%, 100%)',\n },\n grabHandleContrast:{\n stroke: 'hsla(205deg, 80%, 45%, 100%)'\n },\n grabHandleText:{\n fill: 'hsla(205deg, 80%, 25%, 100%);'\n },\n handleBase: {\n fill: 'hsla(235deg, 100%, 80%, 100%);'\n },\n handleRingLayer: {\n stroke: 'hsla(205deg, 100%, 89%, 100%);'\n },\n handleReactiveFill:{\n fill: 'hsla(192deg, 100%, 45%, 100%);'\n },\n handleReactiveRing:{\n stroke: 'hsla(205deg, 100%, 36%, 27%);'\n },\n handleContrastLayer:{\n stroke: 'hsla(205deg, 100%, 36%, 15%);'\n },\n stopStart:{\n stopColor:' hsla(205deg, 100%, 15%, 35%);'\n },\n stopEnd:{\n stopColor: 'hsla(205deg, 100%, 15%, 0%)'\n\n }\n\n },\n \"secondary\": {\n label: {\n fill: \"#fff\"//\"hsla(205deg, 80%, 25%, 100%)\"\n },\n contrastLine: {\n stroke: 'hsla(120deg, 80%, 45%, 100%);'\n },\n highlightLine: {\n stroke: 'hsla(120deg, 45%, 90%, 90%);'\n },\n grabHandle: {\n fill: 'hsla(120deg, 45%, 90%, 100%)',\n stroke: 'hsla(120deg, 45%, 100%, 100%)'\n },\n point:{\n fill: 'hsla(120deg, 45%, 90%, 100%)',\n },\n grabHandleContrast:{\n stroke: 'hsla(120deg, 80%, 45%, 100%)'\n },\n grabHandleText:{\n fill: 'hsla(120deg, 80%, 25%, 100%);'\n },\n handleBase: {\n fill: 'hsla(150deg, 100%, 80%, 100%);'\n },\n handleRingLayer: {\n stroke: 'hsla(120deg, 100%, 89%, 100%);'\n },\n handleReactiveFill:{\n fill: 'hsla(108deg, 100%, 45%, 100%);'\n },\n handleReactiveRing:{\n stroke: 'hsla(120deg, 100%, 36%, 27%);'\n },\n handleContrastLayer:{\n stroke: 'hsla(120deg, 100%, 36%, 15%);'\n },\n stopStart:{\n stopColor:' hsla(120deg, 100%, 15%, 35%);'\n },\n stopEnd:{\n stopColor: 'hsla(120deg, 100%, 15%, 0%)'\n\n }\n },\n \"danger\": {\n label: {\n fill: \"#fff\"//\"hsla(205deg, 80%, 25%, 100%)\"\n },\n contrastLine: {\n stroke: 'hsla(0, 80%, 45%, 100%);'\n },\n highlightLine: {\n stroke: 'hsla(0, 45%, 90%, 90%);'\n },\n grabHandle: {\n fill: 'hsla(0, 45%, 90%, 100%)',\n stroke: 'hsla(0, 45%, 100%, 100%)'\n },\n point:{\n fill: 'hsla(0, 45%, 90%, 100%)',\n },\n grabHandleText:{\n fill: 'hsla(0, 80%, 25%, 100%);'\n },\n grabHandleContrast:{\n stroke: 'hsla(0, 80%, 45%, 100%)'\n },\n handleBase: {\n fill: 'hsla(30deg, 100%, 80%, 100%);'\n },\n handleRingLayer: {\n stroke: 'hsla(0, 100%, 89%, 100%);'\n },\n handleReactiveFill:{\n fill: 'hsla(348deg, 100%, 45%, 100%);'\n },\n handleReactiveRing:{\n stroke: 'hsla(0deg, 100%, 36%, 27%);'\n },\n handleContrastLayer:{\n stroke: 'hsla(0deg, 100%, 36%, 15%);'\n },\n stopStart:{\n stopColor:' hsla(0, 100%, 15%, 35%);'\n },\n stopEnd:{\n stopColor: 'hsla(0, 100%, 15%, 0%);'\n }\n }\n }\n};","import { fontFamily, dimensions, animation, deviceSize, deviceMediaQuery } from '../common';\nimport { typography } from './typography';\nimport { colors } from './colors';\nimport { styles } from './styles';\nimport { custom } from './custom';\nexport default { fontFamily, dimensions, typography, colors, styles, animation, custom, deviceSize, deviceMediaQuery };","import defaultsDeep from 'lodash.defaultsdeep';\n\ninterface ThemeLike {\n [key: string]: string|number|ThemeLike;\n}\nexport default function themeFallbackHelper(theme: ThemeLike, themeFallback: ThemeLike){\n return defaultsDeep({}, theme, themeFallback);\n}","import React from 'react';\nimport styled, { css, useTheme } from 'styled-components';\nimport { IconSVGs } from '@future-standard/icons';\n\nimport { dimensions } from '../themes/common';\n\n\nconst wrapperCss = css`\n svg {\n overflow: visible;\n vector-effect: non-scaling-stroke;\n\n line, path, circle, ellipse, foreignObject, polygon, polyline, rect, text, textPath, tspan {\n vector-effect: non-scaling-stroke;\n }\n }\n`;\nconst IconWrapper = styled.div`\n ${wrapperCss};\n`;\n\nconst IconWrapperForSVG = styled.g`\n ${wrapperCss};\n`;\n\nexport { IconWrapper, IconWrapperForSVG, IconSVGs };\n\nexport interface IconProps {\n icon: string;\n size?: number;\n weight?: 'light' | 'regular' | 'heavy' | 'strong'\n color?: ISvgIcons['color']\n forSvgUsage?: boolean\n}\n\nconst Icon: React.FC<IconProps> = ({ icon, size = 24, weight = 'regular', color = 'mono', forSvgUsage = false }) => {\n\n const theme : any = useTheme();\n const iconWeight: number = dimensions.icons.weights[weight];\n //@ts-ignore\n const IconSVG = IconSVGs[icon];\n\n return (\n IconSVG != null ?\n forSvgUsage ?\n <IconWrapperForSVG>\n {IconSVG({ size: size, weight: iconWeight, color: theme.colors.icons[color] })}\n </IconWrapperForSVG>\n :\n <IconWrapper>\n {IconSVG({ size: size, weight: iconWeight, color: theme.colors.icons[color] })}\n </IconWrapper>\n :\n null\n );\n\n};\n\nexport default Icon;","import {css} from 'styled-components';\n\nexport const RowCss = css`\n position:relative;\n display: flex;\n flex-direction: row;\n align-items:center;\n`;\n\nexport const ColumnCss = css`\n display: flex;\n flex-direction: column;\n`;\n\nexport const resetButtonStyles = css`\n -webkit-tap-highlight-color: transparent;\n background-color: transparent;\n background: transparent;\n border: none;\n cursor: pointer;\n outline: none;\n padding: 0;\n appearance: none;\n user-select: none;\n`;\n\n// https://stackoverflow.com/questions/2781549/removing-input-background-colour-for-chrome-autocomplete\nexport const removeAutoFillStyle = css`\n &:-webkit-autofill,\n &:-webkit-autofill:hover,\n &:-webkit-autofill:focus,\n &:-webkit-autofill:active{\n transition: background-color 600000s 0s, color 600000s 0s;\n }\n`;\nexport const EllipsisStyles = css`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n","import React, { useState, useEffect } from 'react';\nimport styled, { css } from 'styled-components';\nimport Icon, {IconWrapper} from '../../Icons/Icon';\nimport { AlertType } from '..';\nimport { resetButtonStyles } from '../../common/index';\n\nconst IconButton = styled.button<{selected?: boolean}>`\n ${resetButtonStyles};\n ${({selected=false}) => selected && css`\n border-bottom: 5px solid hsl(207, 80%, 64%);\n `}\n &:focus {\n outline: none;\n }\n\n &:hover:enabled {\n opacity: .8;\n }\n &:active:enabled {\n opacity: .9;\n }\n &:disabled {\n opacity: 0.1;\n }\n`;\n\nexport const AlertWrapper = styled.div<{type: AlertType}>`\n min-height: 50px;\n border-radius: 3px;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n\n padding: 0 14px;\n\n font-family: ${({ theme }) => theme.fontFamily.ui };\n ${({type, theme}) => theme.styles.feedbackBar[type] };\n ${({theme}) => theme.typography.feedbackBar.message };\n\n ${IconWrapper} {\n [stroke]{\n stroke: ${({theme}) => theme.colors.pureBase};\n }\n }\n`;\n\nconst IconNames = {\n error: 'Critical',\n warning: 'BigWarning',\n success: 'Success',\n info: 'Information',\n neutral: 'Information'\n};\n\nconst MessageBox = styled.div`\n margin: 5px 0px 5px 15px;\n flex: 1;\n`;\nexport interface IAlert {\n alertMessage?: string;\n alertType: AlertType;\n}\n\ninterface Props {\n type?: AlertType\n message?: string\n hideCloseButton?: boolean\n}\nconst AlertBar: React.FC<Props> = ({type='info', message, hideCloseButton= false}) => {\n const [dismiss, setDismiss] = useState(false);\n\n useEffect(()=>{\n setDismiss(false);\n },[message]);\n\n\n return ( (message && !dismiss)?\n <AlertWrapper type={type}>\n <Icon icon={IconNames[type]} color='inverse' />\n <MessageBox>{message}</MessageBox>\n\n {!hideCloseButton && <IconButton onClick={() => setDismiss(true)}><Icon icon='CloseCompact' color='inverse' /></IconButton>}\n </AlertWrapper>\n :\n null\n );\n};\n\nexport default AlertBar;\n","import React, { useState, useEffect, useCallback } from 'react';\nimport ReactDom from 'react-dom';\nimport styled, { css, keyframes } from 'styled-components';\nimport Icon, { IconWrapper } from '../../Icons/Icon';\nimport { AlertType } from '..';\nimport { resetButtonStyles } from '../../common/index';\n\nconst initAnimation = keyframes`\n 0% {\n transform: translate(-50%, -100%);\n }\n 100% {\n transform: translate(-50%, 0%);\n }\n`;\n\nconst closeAnimation = keyframes`\n 0% {\n transform: translate(-50%, 0);\n }\n 100% {\n transform: translate(-50%, -100%);\n }\n`;\n\nconst Container = styled.div<{type: AlertType, isClosing: Boolean}>`\n min-height: 50px;\n border-bottom-left-radius: 3px;\n border-bottom-right-radius: 3px;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n padding: 0 14px;\n width: 900px;\n position: fixed;\n top: 0;\n left: 50%;\n transform: translateX(-50%);\n z-index: 999;\n\n font-family: ${({ theme }) => theme.fontFamily.ui };\n ${({type, theme}) => theme.styles.feedbackBar[type] };\n ${({theme}) => theme.typography.feedbackBar.message };\n\n ${({theme}) => css`\n animation: ${initAnimation} ${theme.animation.speed.slow} ${theme.animation.easing.primary.easeInOut};\n `\n };\n\n ${({theme, isClosing}) => isClosing && css`\n animation: ${closeAnimation} ${theme.animation.speed.normal} ${theme.animation.easing.primary.easeInOut};\n `\n };\n\n ${IconWrapper} {\n [stroke]{\n stroke: ${({theme}) => theme.colors.pureBase};\n }\n }\n`;\n\nexport const IconNames = {\n error: 'Critical',\n warning: 'BigWarning',\n success: 'Success',\n info: 'Information',\n neutral: 'Information'\n};\n\nconst IconButton = styled.div<{selected?: boolean}>`\n ${resetButtonStyles};\n ${({selected=false}) => selected && css`\n border-bottom: 5px solid hsl(207, 80%, 64%);\n `}\n &:focus {\n outline: none;\n }\n\n &:hover {\n opacity: .8;\n }\n &:active:enabled {\n opacity: .9;\n }\n &:disabled {\n opacity: 0.1;\n }\n`;\n\nconst TextButton = styled.button`\n ${resetButtonStyles};\n font-family: ${({ theme }) => theme.fontFamily.ui };\n ${({theme}) => theme.typography.feedbackBar.message };\n font-weight: 700;\n\n &:focus {\n outline: none;\n }\n\n &:hover:enabled {\n ${({theme}) => theme && css`\n opacity: .8;\n transition: transform ${theme.animation.speed.normal} ${theme.animation.easing.primary.inOut};\n `}\n }\n &:active:enabled {\n opacity: .9;\n }\n &:disabled {\n opacity: 0.1;\n }\n`;\n\nconst MainMessage = styled.div`\n padding: 12px 6px 12px 12px;\n line-height: 20px;\n text-align: left;\n flex-grow: 2;\n`;\n\nexport type INotificationProps = {\n id?: string\n type: AlertType\n message: string\n actionTextButton?: string\n isPinned?: boolean\n closeNow?: boolean\n icon?: string\n onTextButtonClick?: () => void\n closeCallback?: () => void\n}\n\nconst Notification : React.FC<INotificationProps> = ({id, type ='info', message, icon = '', isPinned = false, actionTextButton, closeNow = false, closeCallback, onTextButtonClick}) => {\n const [dismiss, setDismiss] = useState(false);\n const [slideUp, setSlideUp] = useState(false);\n const [textClicked, setTextClicked] = useState(false);\n\n useEffect(()=>{\n setDismiss(false);\n setSlideUp(false);\n setTextClicked(false);\n },[id]);\n\n const handleDismiss = useCallback(() => {\n setSlideUp(true);\n },[]);\n\n const handleTextClick = useCallback(async () => {\n setTextClicked(true);\n handleDismiss();\n },[handleDismiss]);\n\n const animationEnded = useCallback(() => {\n // Will only trigger if the animation triggered was closing one\n if(slideUp){\n setDismiss(true);\n\n if(onTextButtonClick && textClicked) {\n onTextButtonClick();\n }\n\n if(closeCallback) {\n closeCallback();\n }\n }\n }, [slideUp, closeCallback, onTextButtonClick, textClicked]);\n\n useEffect(() => {\n let mounted = true;\n if(!isPinned) {\n setTimeout( () => {\n if(mounted) {\n handleDismiss();\n }\n }, 7000);\n }\n\n return () => {\n mounted = false;\n };\n },[isPinned, message, handleDismiss, id]);\n\n useEffect(() => {\n if(closeNow) {\n handleDismiss();\n }\n },[closeNow, handleDismiss]);\n\n return( (message && !dismiss)\n ? ReactDom.createPortal(\n <Container type={type} isClosing={slideUp} onAnimationEnd={animationEnded}>\n <Icon icon={!icon ? IconNames[type] : icon} color='inverse' />\n <MainMessage>{message}</MainMessage>\n {actionTextButton\n ? <TextButton onClick={() => handleTextClick()}>{actionTextButton} </TextButton>\n :\n <IconButton onClick={() => handleDismiss()}>\n <Icon icon='CloseCompact' color='inverse' />\n </IconButton>}\n </Container>\n , document.body)\n : null\n );\n};\n\nexport default Notification;","import React, { ButtonHTMLAttributes } from 'react';\nimport styled, { css } from 'styled-components';\nimport { TypeButtonSizes, TypeButtonDesigns } from '..';\n\n\ninterface IStyledComponentProps {\n size: TypeButtonSizes\n design: TypeButtonDesigns\n}\n\n\n\nconst StyledButton = styled.button<IStyledComponentProps>`\n ${({theme, design, size}) => css`\n\n ${theme.styles.form.button[design].default};\n height: ${theme.dimensions.form.button[ size ].height};\n padding: ${theme.dimensions.form.button[ size ].padding};\n\n ${theme.typography.form.button[ design ][ size ]};\n font-family: ${theme.fontFamily.ui};\n\n transition:\n background ${theme.animation.speed.fast} ${theme.animation.easing.primary.easeOut},\n opacity ${theme.animation.speed.normal} ${theme.animation.easing.primary.easeOut};\n\n &:hover:enabled {\n background: ${theme.styles.form.button[design].hover.backgroundColor};\n }\n\n &:active:enabled {\n background: ${theme.styles.form.button[design].active.backgroundColor};\n }\n\n &:disabled {\n cursor: not-allowed;\n opacity: 50%;\n background: ${theme.styles.form.button[design].disabled.backgroundColor};\n }\n\n `};\n\n overflow: hidden;\n border: none;\n cursor: pointer;\n border-radius: 3px;\n outline: none;\n\n button + button {\n margin-left: 20px;\n }\n\n`;\n\n\ninterface OwnProps {\n size?: TypeButtonSizes\n design?: TypeButtonDesigns\n}\n\ntype Props = OwnProps & ButtonHTMLAttributes<HTMLButtonElement>\n\nconst Button : React.FC<Props> = ({ design='primary', size='normal', children, ...props }) => {\n return <StyledButton type='button' {...{design, size}} {...props}>{children}</StyledButton>;\n};\n\nexport default Button;","import React from 'react';\nimport styled, { css } from 'styled-components';\nimport Button from './Button';\nimport Icon from '../../Icons/Icon';\nimport { IButtonProps, TypeButtonSizes } from '..';\nimport {dimensions} from '../../themes/common';\n\nconst TextContainer = styled.div<{size: TypeButtonSizes, position?: string}>`\n height: inherit;\n flex: 1;\n order: 1;\n display: flex;\n justify-content: center;\n align-items: center;\n white-space: nowrap;\n\n ${({ position, size }) => position && position === 'left' ? css`\n padding-left: ${( size === 'xsmall' ) ? `10px` : `20px`};\n ` : css`\n padding-right: ${( size === 'xsmall' ) ? `10px` : `20px`};\n `}\n\n ${({theme}) => theme && css`\n transition: padding ${theme.animation.speed.slow} ${theme.animation.easing.primary.easeInOut};\n `}\n`;\n\nconst IconContainer = styled.div<{ position?: string }>`\n height: inherit;\n display: flex;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n flex-shrink: 0;\n\n ${({ position }) => css`\n order: ${ position && position === 'left' ? 0 : 2 };\n `}\n\n svg {\n display:block;\n path, rect, circle, d {\n stroke: hsla(0, 0%, 100%, 1.000);\n }\n }\n`;\n\nconst InnerContainer = styled.div`\n display: flex;\n height: inherit;\n`;\n\nexport interface IButtonWithIcon extends IButtonProps {\n icon: string\n position?: 'left' | 'right'\n}\n\nconst ButtonWithIcon : React.FC<IButtonWithIcon> = ({design, size='normal', onClick, disabled, position, icon, children, ...props}) => {\n\n const iconSize = dimensions.form.button[size].iconSize;\n const iconColor = design === 'secondary' ? 'dimmed' : 'inverse';\n\n return (\n <Button {...{ design, size, onClick, disabled }} {...props}>\n <InnerContainer>\n <TextContainer {...{size, position}}>{children}</TextContainer>\n <IconContainer {...{ position }}>\n <Icon icon={icon} size={iconSize} color={iconColor} weight='regular' />\n </IconContainer>\n </InnerContainer>\n </Button>\n );};\n\nexport default ButtonWithIcon;","import React from \"react\";\nimport styled, { keyframes } from 'styled-components';\n\nconst circumference = (radius : number) => {\n return 2 * 3.1416 * radius;\n};\n\nconst animation = (radius : number) => {\n const c = circumference(radius);\n\n return keyframes`\n 0% {\n stroke-dashoffset: -${c * 0.85};\n }\n 50% {\n stroke-dashoffset: -${c * 0.5};\n }\n 100% {\n stroke-dashoffset: -${c * 0.85};\n }\n `;\n};\n\nconst rotate = keyframes`\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n`;\n\nconst BaseCircle = styled.circle<{ styling: string }>`\n stroke: ${({theme, styling}) => theme.styles.indicators.spinner[styling].base.borderColor};\n fill: none;\n`;\n\nconst RotatingCircle = styled.circle<{ r: number, styling: string }>`\n stroke: ${({theme, styling}) => theme.styles.indicators.spinner[styling].top.borderColor};\n fill: none;\n stroke-dasharray: ${({r}) => circumference(r)};\n stroke-dashoffset: ${({r}) => 2 * 3.1416 * r / 2};\n animation:\n ${({r}) => animation(r) } 4s linear infinite,\n ${rotate} 1s linear infinite;\n stroke-linecap: round;\n`;\n\ntype SpinnerSize = 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge';\n\nconst sizeGuide = {\n xsmall: 12,\n small: 16,\n medium: 24,\n large: 36,\n xlarge: 48\n};\n\ninterface IProps {\n size: SpinnerSize\n styling: string\n}\n\nconst Spinner : React.FC<IProps> = ({ size = 'medium', styling = 'primary' }) => {\n const sizeVal = sizeGuide[size];\n const strokeWidth = sizeVal / 5.333;\n const circleRadius = (sizeVal / 2) - (strokeWidth / 2);\n\n return (\n <svg viewBox={`-${sizeVal/2} -${sizeVal/2} ${sizeVal} ${sizeVal}`} width={sizeVal} height={sizeVal} xmlns='http://www.w3.org/2000/svg'>\n <BaseCircle cx='0' cy='0' r={circleRadius} strokeWidth={strokeWidth} styling={styling} />\n <RotatingCircle cx='0' cy='0' r={circleRadius} strokeWidth={strokeWidth} styling={styling} />\n </svg>\n );\n\n};\n\nexport default Spinner;","import React from 'react';\nimport styled, { css } from 'styled-components';\n\nimport Button from './Button';\nimport Spinner from '../../Indicators/Spinner';\nimport { TypeButtonDesigns, IButtonProps, TypeButtonSizes } from '..';\n\n\nconst LoadingButton = styled(Button)<{ $loading: boolean }>`\n ${({$loading, theme}) => $loading && css`\n cursor: wait;\n background: ${ theme.styles.form.button['primary'].active };\n padding: 0 20px;\n &:disabled {\n opacity: 1;\n }\n `};\n`;\n\nconst TextContainer = styled.div`\n height: inherit;\n flex: 1;\n order: 1;\n display: flex;\n justify-content: center;\n align-items: center;\n white-space: nowrap;\n ${({theme}) => theme && css`\n transition: padding ${theme.animation.speed.slow} ${theme.animation.easing.primary.easeInOut};\n `}\n\n`;\n\nconst LoadingContainer = styled.div<{ design: TypeButtonDesigns, show?: boolean, position?: string }>`\n height: inherit;\n flex: 0 0 35px;\n display: flex;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n opacity: 0;\n\n ${({ theme, position }) => css`\n transition:\n flex ${theme.animation.speed.slow} ${theme.animation.easing.primary.easeInOut} ${theme.animation.speed.slow},\n opacity ${theme.animation.speed.slow} ${theme.animation.easing.primary.easeInOut};\n\n order: ${ position && position === 'left' ? 0 : 2 };\n `}\n\n svg {\n display:block;\n }\n`;\n\nconst InnerContainer = styled.div<{position?: string, $loading: boolean, design: TypeButtonDesigns, size: TypeButtonSizes}>`\n display: flex;\n height: inherit;\n\n\n ${({ position, $loading }) => position && position === 'left' ? css`\n margin-right: ${ $loading ? '-20px' : '0' };\n ` : css`\n margin-left: ${ $loading ? '-20px' : '0' };\n `}\n\n ${({ $loading, theme, design, size }) => $loading ? css`\n\n // TODO: Fix transition animation so the below line doesn't look awful when transitioning - L\n // ${ theme.styles.form.button[design].active };\n\n transition: margin ${theme.animation.speed.slow} ${theme.animation.easing.primary.easeInOut};\n\n ${TextContainer}{\n padding: ${theme.dimensions.form.button[ size ].padding};\n }\n ${LoadingContainer}{\n opacity: 1;\n transition: flex ${theme.animation.speed.slow} ${theme.animation.easing.primary.easeInOut}, opacity ${theme.animation.speed.slow} ${theme.animation.easing.primary.easeInOut} ${theme.animation.speed.slow};\n ${ theme.styles.form.button[design].actionArea };\n }\n ` : css`\n ${LoadingContainer}{\n flex: 0 0 0px;\n }\n `}\n`;\n\ninterface IProps extends IButtonProps {\n position?: 'left' | 'right'\n loading: boolean\n}\n\nconst ButtonWithLoading : React.FC<IProps> = ({design='primary', size='normal', onClick, disabled, position, loading, children,...rest}) => {\n return (\n <LoadingButton disabled={disabled || loading} $loading={loading} {...{ design, size, onClick}} {...rest}>\n <InnerContainer $loading={loading} {...{ design, size}}>\n <TextContainer>{children}</TextContainer>\n <LoadingContainer {...{ design, position }}>\n <Spinner size={size ==='xsmall' ? 'xsmall' : 'small'} styling={design} />\n </LoadingContainer>\n </InnerContainer>\n </LoadingButton>\n );\n};\n\nexport default ButtonWithLoading;","import React, { ButtonHTMLAttributes } from 'react';\nimport styled from 'styled-components';\nimport { resetButtonStyles } from '../../common';\nimport Icon, { IconProps, IconWrapper } from '../../Icons/Icon';\n\nconst StyledButton = styled.button<{color:ISvgIcons['color']; hoverColor:ISvgIcons['color']}>`\n ${resetButtonStyles};\n [stroke]{\n stroke: ${({theme, color}) => theme.colors.icons[color]};\n }\n &:hover {\n ${IconWrapper} {\n [stroke]{\n stroke: ${({theme, hoverColor}) => theme.colors.icons[hoverColor]};\n }\n }\n }\n`;\n\ninterface OwnProps {\n hoverColor?: ISvgIcons['color']\n}\n\nexport type IconButtonData = OwnProps & IconProps & ButtonHTMLAttributes<HTMLButtonElement>\n\nconst IconButton : React.FC<IconButtonData> = ({\n icon,\n size = 20,\n weight = 'regular',\n color = 'dimmed',\n hoverColor = 'mono',\n ...props }) => {\n return(\n <StyledButton\n type='button'\n color={color}\n hoverColor={hoverColor}\n {...props}\n >\n <Icon icon={icon} size={size} weight={weight} />\n </StyledButton>\n );\n};\n\nexport default IconButton;","import React from 'react';\nimport styled, {css} from 'styled-components';\nimport IconButton, { IconButtonData } from '../atoms/IconButton';\n\nconst StyledIconButton = styled(IconButton)``;\n\nconst Container = styled.div<{alignment?: IAlignmentOptions}>`\n display: flex;\n ${StyledIconButton} {\n margin-left: 15px;\n }\n ${StyledIconButton}:first-child {\n margin-left: 0px;\n }\n\n ${({alignment}) => alignment === 'left' && css`\n justify-content: flex-start;\n `};\n\n ${({alignment}) => alignment === 'center' && css`\n justify-content: center;\n `};\n\n ${({alignment}) => alignment === 'right' && css`\n justify-content: flex-end;\n `};\n`;\n\ntype IAlignmentOptions = 'left' | 'center' | 'right'\n\ntype IGroupButtonsData = {\n buttonsConfig: IconButtonData []\n alignment?: IAlignmentOptions\n}\n\nconst ActionButtons : React.FC<IGroupButtonsData> = ({buttonsConfig, alignment = 'right' }) => {\n\n return(\n <Container {...{alignment}}>\n {\n buttonsConfig.map((btn) => {\n const {icon, size, weight, color, hoverColor, onClick} = btn;\n return (\n <StyledIconButton\n key={`${icon}-${size}`}\n icon={icon}\n size={size}\n weight={weight}\n color={color}\n hoverColor={hoverColor}\n onClick={onClick}\n />\n );\n })\n }\n </Container>\n );\n};\n\nexport default ActionButtons;","import React, { InputHTMLAttributes } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport Icon, { IconWrapper } from '../../Icons/Icon';\nimport Spinner from '../../Indicators/Spinner';\nimport { TypeFieldState } from '..';\nimport { removeAutoFillStyle } from '../../common';\n\nconst ActionContainer = styled.div`\n position: absolute;\n right: 0;\n top: 0;\n`;\n\nconst InputActionButton = styled.button.attrs({ type: \"button\" })`\n width: 40px;\n height: 40px;\n background: transparent;\n border: none;\n cursor: pointer;\n outline: none;\n`;\n\nconst FeedbackContainer = styled.div`\n flex-shrink: 0;\n\n background-color: transparent;\n ${({theme}) => css`\n border: 1px solid ${theme.styles.form.input.default.normal.borderColor};\n `};\n\n border-left: none;\n border-radius: 0 3px 3px 0;\n overflow: hidden;\n\n display:flex;\n justify-content:left;\n align-items:center;\n`;\n\nconst FeedbackMessage = styled.div`\n flex: 0 1 400px;\n padding: 0 10px 0 0;\n\n ${({theme}) => theme.typography.form.feedback.message};\n`;\n\nconst FeedbackIcon = styled.div`\n flex: 0 0 40px;\n width: 40px;\n display: flex;\n justify-content:center;\n align-items:center;\n\n ${IconWrapper} {\n [stroke]{\n stroke: ${({theme}) => theme.colors.pureBase};\n }\n }\n`;\n\nconst StyledInput = styled.input<{ fieldState : TypeFieldState }>`\n ${removeAutoFillStyle};\n\n ${({theme, fieldState}) => css`\n min-height: ${theme.dimensions.form.input.height};\n font-family: ${theme.fontFamily.data};\n border: 1px solid ${theme.styles.form.input[fieldState].normal.borderColor};\n `};\n\n height: 100%;\n width: 100%;\n border-radius: 3px;\n\n padding: 0 15px 0 15px;\n box-sizing: border-box;\n outline: none;\n\n ${({theme: {typography}}) => css`\n ${typography.form.input.value.normal};\n &::placeholder {\n ${typography.form.input.placeholder.normal};\n }\n `};\n`;\n\nconst InputContainer = styled.div<{hasAction?: boolean}>`\n\n flex: 1;\n position: relative;\n\n ${({ hasAction }) => hasAction && css`\n ${StyledInput}{\n padding-right: 60px;\n\n // Used to control password manager injection.\n background-position: calc(100% - 50px) 50% !important;\n }\n `}\n\n`;\n\nconst Container = styled.div<{ fieldState: string }>`\n display: flex;\n position: relative;\n\n ${StyledInput}{\n ${({theme, fieldState}) => theme.styles.form.input[fieldState].normal};\n\n &:focus {}\n\n ${({ fieldState }) => ['default', 'disabled'].indexOf(fieldState) === -1 && css`\n border-top-right-radius: 0px;\n border-bottom-right-radius: 0px;\n `}\n }\n\n ${FeedbackContainer} {\n background: ${({theme, fieldState}) => theme.styles.form.input[fieldState].normal.borderColor};\n border-color: ${({theme, fieldState}) => theme.styles.form.input[fieldState].normal.borderColor};\n\n ${({ fieldState }) => ['default', 'disabled'].indexOf(fieldState) !== -1 && css`\n display:none;\n `}\n }\n\n &:focus-within ${StyledInput} {\n ${({theme, fieldState}) => theme.styles.form.input[fieldState].focused};\n }\n\n`;\n\ninterface OwnProps {\n fieldState?: TypeFieldState;\n feedbackMessage?: string;\n actionCallback?: ()=>void;\n actionIcon?: string\n postfix?: string;\n}\n\nexport type InputProps = OwnProps & InputHTMLAttributes<HTMLInputElement>\n\nconst Input : React.FC<InputProps> = ({\n type = 'text',\n placeholder = '',\n defaultValue,\n fieldState = 'default',\n feedbackMessage,\n actionCallback,\n actionIcon,\n postfix,\n ...props\n}) => {\n\n const isActionButton = actionCallback !== undefined;\n\n const feedbackIcon = (fieldState: TypeFieldState) => {\n switch(fieldState){\n case 'default':\n break;\n case 'disabled':\n break;\n case 'required':\n return <Icon icon='Required' size={20} />;\n case 'valid':\n return <Icon icon='Success' size={20} />;\n case 'invalid':\n return <Icon icon='Invalid' size={20} />;\n case 'processing':\n return <Spinner size='medium' styling='primary' />;\n }\n };\n\n return (\n <Container fieldState={fieldState || 'default'}>\n\n <InputContainer hasAction={isActionButton}>\n <StyledInput fieldState={fieldState || 'default'} disabled={fieldState === 'disabled' || fieldState === 'processing'} type={type} placeholder={placeholder} defaultValue={defaultValue} {...props} />\n {(isActionButton) ? (\n <ActionContainer>\n <InputActionButton onClick={actionCallback}>\n <Icon icon={actionIcon || 'NoIcon'} color='primary' />\n </InputActionButton>\n </ActionContainer>\n ) : null}\n </InputContainer>\n\n {fieldState ? (\n <FeedbackContainer>\n <FeedbackIcon>{feedbackIcon(fieldState)}</FeedbackIcon>\n {feedbackMessage ? (\n <FeedbackMessage>{feedbackMessage}</FeedbackMessage>\n ) : null}\n </FeedbackContainer>\n ) : null}\n\n </Container>\n );\n};\n\n\nexport default Input;\n","import React, { LabelHTMLAttributes } from 'react';\nimport styled from 'styled-components';\n\nexport const StyledLabel = styled.label<{ rightAlign: boolean }>`\n font-family: ${({ theme }) => theme.fontFamily.ui};\n color: hsl(207, 5%, 57%);\n font-size: 14px;\n font-weight: 500;\n ${({ rightAlign }) => rightAlign\n ? `\n display: flex;\n align-items: center;\n flex-direction: row-reverse;\n justify-content: left;\n `\n :\n `\n display: block;\n margin-bottom: 20px;\n `\n };\n`;\n\nconst LabelText = styled.span<{ rightAlign: boolean }>`\n display: block;\n ${({ rightAlign }) => rightAlign\n ? `\n margin-left: 12px;\n `\n : `\n margin-bottom: 10px;\n `\n }\n`;\n\ninterface OwnProps {\n htmlFor: string\n labelText: string\n rightAlign?: boolean\n}\ntype Props = OwnProps & LabelHTMLAttributes<HTMLLabelElement>\n\nconst Label: React.FC<Props> = ({\n htmlFor,\n labelText,\n rightAlign = false,\n children,\n ...props }) => {\n\n return (\n <StyledLabel {...{ htmlFor, rightAlign }} {...props}>\n <LabelText {...{ rightAlign }}>{labelText}</LabelText>\n {children}\n </StyledLabel>\n );\n};\n\nexport default Label;","import React, { InputHTMLAttributes, useRef, useEffect, useState } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport Label from '../atoms/Label';\nimport { TypeFieldState } from '..';\nimport { removeAutoFillStyle } from '../../common';\n\nconst StyledInput = styled.input<{ fieldState : TypeFieldState, padRight?: number }>`\n ${removeAutoFillStyle};\n\n ${({theme, fieldState}) => css`\n min-height: 30px;\n font-family: ${theme.fontFamily.data};\n border: 1px solid ${theme.styles.form.input[fieldState].normal.borderColor};\n `};\n\n height: 100%;\n width: 100%;\n border-radius: 3px;\n\n padding: 0 22px 0 10px;\n box-sizing: border-box;\n outline: none;\n\n ${({theme: {typography}}) => css`\n ${typography.form.input.value.compact};\n &::placeholder {\n ${typography.form.input.placeholder.compact};\n }\n `};\n\n ${p => p.padRight && css`\n padding-right: ${p.padRight + 17}px;\n `}\n\n &:disabled {\n cursor: not-allowed;\n }\n`;\n\nconst InputContainer = styled.div<{hasAction?: boolean}>`\n\n flex: 1;\n position: relative;\n\n ${({ hasAction }) => hasAction && css`\n ${StyledInput}{\n padding-right: 200px;\n\n // Used to control password manager injection.\n background-position: calc(100% - 50px) 50% !important;\n }\n `}\n\n`;\n\nconst UnitKey = styled.div`\n position: absolute;\n right: 10px;\n bottom: 0;\n top:0;\n font-family: ${({ theme }) => theme.fontFamily.ui };\n font-size: 12px;\n color: #99a1a3;\n line-height:30px;\n`;\n\nconst Container = styled.div<{ fieldState: string }>`\n\n display: flex;\n position: relative;\n\n ${StyledInput}{\n ${({theme, fieldState}) => theme.styles.form.input[fieldState].normal};\n\n &:focus {}\n\n ${({ fieldState }) => ['default', 'disabled'].indexOf(fieldState) === -1 && css`\n border-top-right-radius: 0px;\n border-bottom-right-radius: 0px;\n `}\n }\n\n &:focus-within ${InputContainer} {\n ${({theme, fieldState}) => fieldState !== 'disabled' && css`\n border-color:${theme.styles.form.input[fieldState].focused.borderColor};\n `\n }\n\n`;\n\ninterface OwnProps {\n fieldState?: TypeFieldState;\n label: string\n unit?: string\n}\n\ntype Props = OwnProps & InputHTMLAttributes<HTMLInputElement>\n\nconst SmallInput : React.FC<Props> = ({\n unit,\n label,\n name,\n type = 'text',\n placeholder = '',\n defaultValue,\n fieldState = 'default',\n className,\n ...props\n}) => {\n\n const unitElement = useRef<HTMLDivElement>(null);\n const [unitElementWidth, setUnitElementWidth] = useState<number>(0);\n\n useEffect(() => {\n if(unitElement && unitElement.current){\n setUnitElementWidth(unitElement.current.clientWidth || 0);\n }\n }, [unitElement, setUnitElementWidth, unit]);\n\n return (\n <Container className={className} fieldState={fieldState || 'default'}>\n <Label labelText={label} htmlFor={name || ''}>\n <InputContainer>\n <StyledInput padRight={unitElementWidth} fieldState={fieldState || 'default'} type={type} placeholder={placeholder} defaultValue={defaultValue} {...props} />\n {unit ? <UnitKey ref={unitElement}>{unit}</UnitKey> : null}\n </InputContainer>\n </Label>\n\n </Container>\n );\n\n};\n\n\nexport default SmallInput;","import React, { useRef, useEffect, useState, useCallback } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport Icon from '../../Icons/Icon';\nimport Spinner from '../../Indicators/Spinner';\n\nenum SwitchPosition {\n Off = 0,\n On = 1,\n Neutral = 2,\n Locked = 3\n}\n\nconst intentPosition = (left: string, checked?: boolean) : string => {\n const offset = checked ? -2 : 2;\n const intentLeft = (parseInt(left) + offset).toString();\n\n return `${intentLeft}px`;\n};\n\nconst RealInput = styled.input`\n display: none;\n`;\nconst SwitchOuter = styled.div`\n border: 1px solid transparent;\n box-sizing: border-box;\n cursor: pointer;\n position: relative;\n`;\nconst getPositionKey = (switchPos : SwitchPosition) => {\n switch (switchPos) {\n case SwitchPosition.Off:\n return 'off';\n case SwitchPosition.On:\n return 'on';\n case SwitchPosition.Neutral:\n return 'neutral';\n case SwitchPosition.Locked:\n return 'locked';\n default:\n return 'off';\n }\n\n};\n\nconst SwitchInner = styled.div`\n position: absolute;\n box-sizing: border-box;\n`;\n\nconst LabelText = styled.span`\n font-family: ${({theme}) => theme.fontFamily.ui };\n\n flex: 1;\n margin-left: 10px;\n display: block;\n\n line-height: ${ p => p.theme.dimensions.form.switch.outer.height };\n\n ${ p => p.theme.typography.form.input.label };\n`;\n\nconst IconWrapper = styled.div`\n position: absolute;\n width: inherit;\n height: inherit;\n display: flex;\n justify-content: center;\n align-items: center;\n svg {\n display: block;\n }\n`;\nconst SpinnerWrapper = styled.div`\n margin-top: 1px;\n`;\n\nconst Container = styled.label<{activeTheming: string, $loading: boolean, useIntent: boolean, themeState: string, position: SwitchPosition, checked?: boolean}>`\n user-select: none;\n display: flex;\n\n ${SwitchInner}{\n ${({theme, position, themeState, activeTheming}) => theme && css`\n ${theme.dimensions.form.switch.inner};\n left: ${theme.dimensions.form.switch.positions[getPositionKey(position)]};\n top: ${theme.dimensions.form.switch.positions.top};\n transition:\n left ${theme.animation.speed.normal} ${theme.animation.easing.primary.out},\n border ${theme.animation.speed.normal} ${theme.animation.easing.primary.out},\n width ${theme.animation.speed.normal} ${theme.animation.easing.primary.out};\n\n ${theme.styles.form.switch[activeTheming][themeState].inner}\n `}\n\n ${p => p.activeTheming === 'locked' && css`\n width: calc(100% - ${parseInt(p.theme.dimensions.form.switch.positions.locked) * 2}px);\n `}\n\n ${p => p.$loading && css`\n background: transparent;\n top: 1px;\n `}\n }\n\n ${SwitchOuter}{\n ${({theme, activeTheming, themeState}) => theme && css`\n ${theme.styles.form.switch[activeTheming][themeState].outer};\n ${theme.dimensions.form.switch.outer}};\n flex: 0 0 ${theme.dimensions.form.switch.outer.width}};\n `}\n }\n\n &:hover {\n ${SwitchInner}{\n left: ${p => p.useIntent && intentPosition(p.theme.dimensions.form.switch.positions[getPositionKey(p.position)], p.checked)};\n }\n }\n`;\n\ntype TypeSwitchState = 'default' | 'loading' | 'locked' | 'disabled' | 'failure';\n\ninterface IProps {\n labelText?: string\n leftTheme?: string\n rightTheme?: string\n state?: TypeSwitchState\n checked?: boolean\n onChangeCallback?: (checked: boolean, indeterminate?: boolean) => void;\n}\n\nconst Switch : React.FC<IProps> = ({ state = 'default', leftTheme = 'off', rightTheme = 'on', labelText, onChangeCallback, checked = false}) => {\n\n const inputRef = useRef<HTMLInputElement>(null);\n const [ position, setPosition ] = useState<SwitchPosition>(checked ? SwitchPosition.On : SwitchPosition.Off);\n const [ activeTheming, setActiveTheming ] = useState<string>( leftTheme );\n const [ switchState, setSwitchState ] = useState<TypeSwitchState>('default');\n\n useEffect(() => {\n setPosition(checked ? SwitchPosition.On : SwitchPosition.Off);\n if (inputRef.current) {\n inputRef.current.checked = checked;\n }\n }, [checked]);\n\n const positionSwitch = useCallback(() => {\n if(inputRef.current?.checked){\n setPosition(SwitchPosition.On);\n setActiveTheming(rightTheme);\n } else if(!inputRef.current?.checked){\n setPosition(SwitchPosition.Off);\n setActiveTheming(leftTheme);\n }\n }, [setPosition, setActiveTheming, leftTheme, rightTheme, inputRef]);\n\n const customOnChange = () => {\n positionSwitch();\n if(onChangeCallback){ onChangeCallback(inputRef.current?.checked || false); }\n };\n\n /**\n * updateThemeChoice()\n * If for some reason we need to change the left or right theme in context, this makes sure\n * things get updated. (i.e. in StoryBook)\n */\n const updateThemeChoice = useCallback(() => {\n if(position === SwitchPosition.On){\n setActiveTheming(rightTheme);\n } else if(position === SwitchPosition.Off){\n setActiveTheming(leftTheme);\n }\n }, [position, rightTheme, leftTheme]);\n\n /** Watch for that theme change. */\n useEffect(() => {\n updateThemeChoice();\n }, [leftTheme, rightTheme, updateThemeChoice]);\n\n useEffect(() => {\n setSwitchState( stateCheck(state) );\n }, [state, setSwitchState]);\n\n /** Watch for locking prop. */\n useEffect(() => {\n if(state === 'locked'){\n setPosition(SwitchPosition.Locked);\n setActiveTheming('locked');\n } else if(state === 'failure'){\n setPosition(SwitchPosition.Neutral);\n setActiveTheming('failure');\n } else {\n positionSwitch();\n }\n }, [state, setPosition, positionSwitch]);\n\n return (\n <Container onChange={customOnChange} activeTheming={activeTheming} $loading={state === 'loading'} useIntent={state === 'default' || state === 'failure'} themeState={switchState} position={position} checked={inputRef.current?.checked}>\n <SwitchOuter>\n <SwitchInner>\n {state === 'failure' ? <IconWrapper><Icon icon='Exclamation' color='danger' size={18} weight='regular' /></IconWrapper> : null}\n {state === 'locked' ? <IconWrapper><Icon icon='Locked' color='dimmed' size={10} weight='light' /></IconWrapper> : null}\n {state === 'loading' ? <SpinnerWrapper><Spinner size='small' styling='simple' /></SpinnerWrapper> : null}\n </SwitchInner>\n </SwitchOuter>\n {labelText ? <LabelText>{labelText}</LabelText> : null}\n <RealInput ref={inputRef} type='checkbox' disabled={state !== 'default' && state !== 'failure'} defaultChecked={checked} />\n </Container>\n );\n\n};\n\nconst stateCheck = (state: TypeSwitchState) : TypeSwitchState => {\n switch(state){\n case 'locked':\n return 'default';\n case 'failure':\n return 'default';\n default:\n return state;\n }\n};\n\n\nexport default Switch;\nexport { SwitchPosition };","import * as React from \"react\";\n\nfunction SvgLogoMark(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg width={35} height={35} {...props}>\n <defs>\n <linearGradient\n id='LogoMark_svg__a'\n x1='36.708%'\n x2='69.959%'\n y1='2.579%'\n y2='98.009%'\n >\n <stop offset='0%' stopColor='#7DB8DB' />\n <stop offset='100%' stopColor='#5CA0D1' />\n </linearGradient>\n </defs>\n <g fill='none' fillRule='evenodd'>\n <rect width={35} height={35} fill='url(#LogoMark_svg__a)' rx={5} />\n <path\n fill='#FFF'\n fillRule='nonzero'\n d='M14.42 25.12c4.4 0 6.42-3.06 6.42-7.02v-7.3h-3.9v7.3c0 1.84-.68 3.56-2.52 3.56-1.8 0-2.5-1.68-2.5-3.56v-7.3h-3.9v7.3c0 3.76 1.86 7.02 6.4 7.02zM26.98 25V10.8h-3.9V25h3.9z'\n />\n </g>\n </svg>\n );\n}\n\nexport default SvgLogoMark;\n","import * as React from \"react\";\n\nfunction SvgLogoText(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg width={71} height={30} {...props}>\n <path\n d='M6.088 12.112c2.336 0 4.128-.976 4.128-3.168 0-2.048-1.472-2.72-3.84-3.248-2.048-.464-2.992-.784-2.992-2 0-1.152.8-1.856 2.56-1.856 1.36 0 2.56.592 3.088 1.184l.672-1.168C8.744 1.072 7.496.56 5.976.56c-2.352 0-4.08 1.184-4.08 3.36 0 1.808 1.2 2.432 3.504 2.992 2.112.512 3.28.896 3.28 2.176 0 1.136-.944 1.728-2.56 1.728-1.728 0-3.28-.8-3.968-1.52l-.688 1.216c1.28 1.04 2.88 1.6 4.624 1.6zm11.941-.016c1.76 0 3.792-.944 4.512-2.64l-1.2-.656c-.656 1.408-2.064 2-3.248 2-2.256 0-3.936-2.128-3.936-4.496 0-2.144 1.36-4.432 3.888-4.432 1.152 0 2.48.48 3.152 1.92l1.136-.736C21.63 1.6 20.125.576 18.11.576c-3.424 0-5.408 2.912-5.408 5.664 0 2.88 2.208 5.856 5.328 5.856zm12.134-.016c3.072 0 5.36-2.72 5.36-5.744 0-2.848-2.144-5.776-5.328-5.776-3.072 0-5.376 2.736-5.376 5.76 0 2.912 2.16 5.76 5.344 5.76zm.016-1.296c-2.352 0-3.904-2.144-3.904-4.464 0-2.208 1.488-4.448 3.904-4.448 2.304 0 3.888 2.128 3.888 4.448 0 2.192-1.472 4.464-3.888 4.464zM40.296 12V7.92h3.008L45.896 12h1.632l-2.752-4.352c1.44-.368 2.384-1.792 2.384-3.376C47.16 2.48 45.72.64 43.72.64h-4.864V12h1.44zm3.44-5.36h-3.44V1.92h3.344c1.104 0 2.064 1.072 2.064 2.352 0 1.248-.784 2.368-1.968 2.368zM58.413 12v-1.28h-6.272V6.8h5.328V5.6h-5.328V1.92h6.128V.64h-7.568V12h7.712zm4.742 0V7.92h3.008L68.755 12h1.632l-2.752-4.352c1.44-.368 2.384-1.792 2.384-3.376 0-1.792-1.44-3.632-3.44-3.632h-4.864V12h1.44zm3.44-5.36h-3.44V1.92h3.344c1.104 0 2.064 1.072 2.064 2.352 0 1.248-.784 2.368-1.968 2.368zM4.78 27.05c2.18 0 2.99-1.66 2.99-3.57V19.9h-.7v3.58c0 1.45-.5 2.94-2.3 2.94-1.76 0-2.29-1.45-2.29-2.94V19.9h-.69v3.58c0 1.81.74 3.57 2.99 3.57zm6.193-.05v-7.1h-.7V27h.7zm6.697 0v-2.18L19 23.44 21.71 27h.79l-3.05-3.98 2.9-3.12h-.77l-3.91 4.13v-4.12h-.7V27h.7zm7.263 0v-7.1h-.7V27h.7zm5.124 0v-6.48h2.53v-.62h-5.76v.62h2.53V27h.7z'\n fill='#93A5B2'\n />\n </svg>\n );\n}\n\nexport default SvgLogoText;\n","import * as React from 'react';\n\nfunction SvgAvatarPlaceholder(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg width={48} height={48} {...props} viewBox='0 0 48 48'>\n <g fill='none' fillRule='evenodd' strokeLinecap='round' strokeLinejoin='round'>\n <g stroke='#C1C1C1' strokeWidth='1.5'>\n <g>\n <g>\n <g transform='translate(-789 -294) translate(772 277) translate(10.25 10.25) translate(7.688 7.688)'>\n <rect width='37.477' height='43.242' x='4.324' y='1.441' rx='1.5' />\n <circle cx='23.063' cy='17.456' r='7.899' />\n <path d='M36.035 36.568c-2.537-4.814-7.53-7.828-12.972-7.828-5.442 0-10.436 3.014-12.973 7.828' />\n </g>\n </g>\n </g>\n </g>\n </g>\n </svg>\n );\n}\n\nexport default SvgAvatarPlaceholder;","import * as React from \"react\";\n\nfunction CheckMark(props: ISvgIcons) {\n return (\n <svg width={props.size} height={props.size} viewBox='0 0 24 24' {...props}>\n <path\n d='M23.848 5.132l-2.967-2.976a.531.531 0 0 0-.753 0L7.595 14.697a.531.531 0 0 1-.752 0l-2.968-2.975a.531.531 0 0 0-.752 0L.156 14.697a.531.531 0 0 0 0 .752l6.687 6.688a.531.531 0 0 0 .752 0L23.848 5.876a.531.531 0 0 0 0-.744z'\n fill='none'\n fillRule='evenodd'\n stroke='#000'\n strokeLinecap='round'\n strokeLinejoin='round'\n strokeWidth={1.5}\n />\n </svg>\n );\n}\n\nexport default CheckMark;\n","import React, { useEffect, useState } from 'react';\nimport styled, { css } from 'styled-components';\nimport { CheckMark } from '../../svg';\nimport { dimensions } from '../../themes/common';\n\nenum CheckboxState {\n Off = \"off\",\n On = \"on\",\n Indeterminate = \"indeterminate\"\n}\n\nconst RealInput = styled.input`\n display: none;\n`;\nconst CheckboxOuter = styled.div`\n cursor: pointer;\n\n box-sizing: border-box;\n position: relative;\n width: 18px;\n height: 18px;\n border-radius: 5px;\n border-width: 2px;\n border-style: solid;\n`;\n\nconst CheckboxInner = styled.div<{}>`\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n left: 0;\n box-sizing: border-box;\n`;\n\nconst IconWrapper = styled.div<{color: ISvgIcons['color']}>`\n position: absolute;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n svg {\n display: block;\n [stroke]{\n stroke: transparent;\n }\n [fill] {\n fill: ${({theme, color}) => theme.colors.icons[color]};\n }\n }\n`;\n\nconst Container = styled.label<{visualState?: CheckboxState, disabled?: boolean}>`\n user-select: none;\n\n\n ${({visualState, disabled, theme: { styles }}) => visualState === CheckboxState.Off && css`\n ${CheckboxOuter}{\n ${styles.form.checkbox.unchecked.default};\n }\n\n ${!disabled && css`\n &:hover ${CheckboxOuter} {\n ${styles.form.checkbox.unchecked.hover};\n }`\n };\n\n ${disabled && css`\n ${CheckboxOuter}{\n ${styles.form.checkbox.unchecked.disabled};\n cursor: not-allowed;\n }\n `}\n `}\n\n ${({visualState, disabled, theme: { styles }}) => visualState === CheckboxState.On && css`\n ${CheckboxOuter}{\n ${styles.form.checkbox.checked.default};\n border: none;\n }\n ${!disabled && css`\n &:hover ${CheckboxOuter}{\n ${styles.form.checkbox.checked.hover};\n border: none;\n }`\n };\n\n ${disabled && css`\n ${CheckboxOuter}{\n ${styles.form.checkbox.checked.disabled};\n cursor: not-allowed;\n }\n `}\n `}\n\n ${({visualState, disabled, theme: { styles }}) => visualState === CheckboxState.Indeterminate && css`\n ${CheckboxOuter}{\n ${styles.form.checkbox.indeterminate.default};\n }\n ${!disabled && css`\n &:hover ${CheckboxOuter}{\n ${styles.form.checkbox.indeterminate.hover};\n }\n `};\n\n `}\n\n`;\n\ninterface IProps {\n checked?: boolean\n disabled?: boolean\n indeterminate?: boolean\n onChangeCallback?: (checked: boolean, indeterminate?: boolean) => void;\n}\n\nconst Checkbox : React.FC<IProps> = ({ indeterminate = false, disabled, checked = false, onChangeCallback }) => {\n\n const [ isChecked, setIsChecked ] = useState<boolean>(checked);\n const [ visualState, setVisualState ] = useState<CheckboxState>(checked ? CheckboxState.On : CheckboxState.Off);\n\n const customOnChange = (e: any) => {\n const checked = e.target.checked;\n\n setIsChecked(checked);\n if(onChangeCallback){ onChangeCallback(checked); }\n };\n\n useEffect(() => {\n\n const state = checked ? CheckboxState.On : CheckboxState.Off;\n // state = indeterminate ? CheckboxState.Indeterminate : state;\n\n setVisualState( state );\n\n }, [checked, isChecked, setVisualState]);\n\n useEffect(() => {\n setIsChecked(checked);\n }, [checked, setIsChecked]);\n\n const iconWeight : number = dimensions.icons.weights['regular'];\n\n return (\n <Container onChange={customOnChange} {...{indeterminate, disabled, visualState}}>\n <CheckboxOuter>\n <CheckboxInner>\n {visualState === CheckboxState.On ? <IconWrapper color='inverse'><CheckMark color='inverse' stroke='inverse' size={12} weight={iconWeight} /></IconWrapper> : null}\n </CheckboxInner>\n </CheckboxOuter>\n <RealInput type='checkbox' checked={isChecked} readOnly {...{disabled}} /> {/* disabled={state !== 'default' && state !== 'failure'} */}\n </Container>\n );\n\n};\n\nexport default Checkbox;\nexport { CheckboxState };","import React, { useCallback, InputHTMLAttributes } from 'react';\nimport styled, { css } from 'styled-components';\n\nconst InnerRadio = styled.div`\n width: 10px;\n height: 10px;\n border-radius: 50%;\n user-select: none;\n`;\n\nconst OuterRadio = styled.div<{ isChecked: boolean, disabled: boolean }>`\n position: absolute;\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n width: 100%;\n border-radius: 50%;\n border-width: 2px;\n border-style: solid;\n user-select: none;\n\n ${({ theme: { styles }, isChecked, disabled }) => styles && css`\n border-color: ${styles.form.checkbox.unchecked.default.borderColor};\n\n ${!disabled && css`\n &:hover {\n cursor: pointer;\n border-color: ${styles.form.checkbox.unchecked.hover.borderColor};\n }\n `};\n\n ${isChecked && !disabled && css`\n border-color: ${styles.form.checkbox.checked.default.backgroundColor};\n ${InnerRadio} {\n background-color: ${styles.form.checkbox.checked.default.backgroundColor};\n }\n `};\n\n ${isChecked && !disabled && css`\n &:hover {\n border-color: ${styles.form.checkbox.checked.hover.backgroundColor};\n ${InnerRadio} {\n background-color: ${styles.form.checkbox.checked.hover.backgroundColor};\n }\n }\n `};\n\n ${isChecked && disabled && css`\n cursor: not-allowed;\n border-color: ${styles.form.checkbox.checked.disabled.backgroundColor};\n ${InnerRadio} {\n background-color: ${styles.form.checkbox.checked.disabled.backgroundColor};\n }\n `};\n\n ${!isChecked && disabled && css`\n cursor: not-allowed;\n border-color: ${styles.form.checkbox.unchecked.disabled.borderColor};\n ${InnerRadio} {\n background-color: ${styles.form.checkbox.unchecked.disabled.backgroundColor};\n }\n `}\n `};\n`;\n\nconst HiddenInput = styled.input`\n position: absolute;\n height: 100%;\n width: 100%;\n margin: 0;\n padding:0;\n opacity: 0;\n`;\n\nconst Container = styled.div`\n position: relative;\n display: inline-block;\n width: 18px;\n height: 18px;\n user-select: none;\n border-radius: 50%;\n`;\n\ninterface OwnProps {\n currentChecked?: number | string\n onChangeCallback?: (value: number | string) => void\n}\n\ntype IRadioButton = OwnProps & InputHTMLAttributes<HTMLInputElement>\n\nconst RadioButton: React.FC<IRadioButton> = ({\n id,\n value,\n name,\n currentChecked,\n disabled = false,\n required,\n onChangeCallback = () => { },\n}) => {\n\n const handleChange = useCallback((e) => {\n const checkedValue = e.target.value;\n onChangeCallback(checkedValue);\n }, [onChangeCallback]);\n\n const isChecked = (currentChecked !== undefined) ? (currentChecked === value) : false;\n\n return (\n <Container>\n <HiddenInput\n type='radio'\n {...{ id, name, disabled, required, value }}\n checked={isChecked}\n onChange={handleChange}\n />\n <OuterRadio {...{ isChecked, disabled }}>\n <InnerRadio />\n </OuterRadio>\n </Container>\n );\n};\n\nexport default RadioButton;","import React, { TextareaHTMLAttributes } from 'react';\nimport styled, { css } from 'styled-components';\nimport Spinner from '../../Indicators/Spinner';\nimport Icon from '../../Icons/Icon';\nimport { TypeFieldState } from '..';\n\nconst FeedbackIcon = styled.div`\n flex: 0 0 40px;\n width: 40px;\n display: flex;\n justify-content:center;\n align-items:center;\n padding-top: 2px;\n`;\n\nconst StyledTextArea = styled.textarea<{ fieldState : TypeFieldState}>`\n\n${({theme, fieldState}) => css`\n font-family: ${theme.fontFamily.data};\n border: 1px solid ${theme.styles.form.input[fieldState].normal.borderColor};\n`};\n\n padding: 8px 15px;\n box-sizing: border-box;\n outline: none;\n height: 100%;\n width: 100%;\n border-radius: 3px;\n\n ${({theme: {typography}}) => css`\n ${typography.form.input.value.normal};\n &::placeholder {\n ${typography.form.input.placeholder.normal};\n }\n`};\n`;\n\nconst FeedbackContainer = styled.div`\n flex-shrink: 0;\n padding: 8px 0;\n background-color: transparent;\n ${({theme}) => css`\n border: 1px solid ${theme.styles.form.input.default.normal.borderColor};\n `};\n\n border-left: none;\n border-radius: 0 0 3px 3px;\n overflow: hidden;\n\n display:flex;\n justify-content:left;\n align-items:center;\n`;\n\nconst FeedbackMessage = styled.div`\n flex: 0 1 400px;\n padding: 0 10px 0 0;\n ${({theme}) => theme.typography.form.feedback.message};\n`;\n\nconst Container = styled.div<{ fieldState: string }>`\n display: flex;\n position: relative;\n flex-direction: column;\n ${StyledTextArea}{\n ${({theme, fieldState}) => theme.styles.form.input[fieldState].normal};\n\n &:focus {\n box-shadow: 0px 3px 7px 0px hsla(207, 65.8%, 31%, 0.078);\n }\n\n ${({ fieldState }) => ['default', 'disabled'].indexOf(fieldState) === -1 && css`\n border-bottom-left-radius: 0px;\n border-bottom-right-radius: 0px;\n `}\n }\n\n ${FeedbackContainer} {\n background: ${({theme, fieldState}) => theme.styles.form.input[fieldState].normal.borderColor};\n border-color: ${({theme, fieldState}) => theme.styles.form.input[fieldState].normal.borderColor};\n\n ${({ fieldState }) => ['default', 'disabled'].indexOf(fieldState) !== -1 && css`\n display:none;\n `}\n }\n\n &:focus-within ${FeedbackContainer} {\n ${({ fieldState }) =>\n\n fieldState === 'required' ? `\n box-shadow: 0px 3px 7px 0px hsla(207, 67.8%, 35.3%, 0.071);\n ` : null};\n\n ${({ fieldState }) => fieldState === 'valid' ? `\n box-shadow: 0px 3px 5px 0px hsla(120, 76.6%, 15.1%, 0.071);\n ` : null};\n\n ${({ fieldState }) => fieldState === 'invalid' ? `\n box-shadow: 0px 3px 7px 0px hsla(0, 100%, 50%, 0.102);\n ` : null};\n }\n\n`;\n\ninterface OwnProps {\n fieldState: TypeFieldState\n feedbackMessage?: string\n}\n\ntype Props = OwnProps & TextareaHTMLAttributes<HTMLTextAreaElement>\n\nconst TextArea : React.FC<Props> = ({\n placeholder = '',\n fieldState = 'default',\n feedbackMessage,\n children,\n ...props\n}) => {\n\n const feedbackIcon = (fieldState: TypeFieldState) => {\n switch(fieldState){\n case 'default':\n break;\n case 'disabled':\n break;\n case 'required':\n return <Icon icon='Required' size={20} color='inverse' />;\n case 'valid':\n return <Icon icon='Success' size={20} color='inverse' />;\n case 'invalid':\n return <Icon icon='Invalid' size={20} color='inverse' />;\n case 'processing':\n return <Spinner size='medium' styling='primary' />;\n }\n };\n\n return (\n <Container fieldState={fieldState || 'default'}>\n <StyledTextArea\n fieldState={fieldState || 'default'} \n placeholder={placeholder}\n disabled={fieldState === 'disabled' || fieldState === 'processing'}\n {...props}\n >{children}\n </StyledTextArea>\n {fieldState && (\n <FeedbackContainer>\n <FeedbackIcon>{feedbackIcon(fieldState)}</FeedbackIcon>\n <FeedbackMessage>{feedbackMessage}</FeedbackMessage>\n </FeedbackContainer>\n )}\n </Container>\n );\n};\n\nexport default TextArea;","import React, { useCallback, useState, SelectHTMLAttributes } from 'react';\nimport styled, { css } from 'styled-components';\nimport Label, { StyledLabel } from './Label';\nimport Icon, { IconWrapper } from '../../Icons/Icon';\n\n\nexport const SelectWrapper = styled.div`\n position: relative;\n display: flex;\n width: 100%;\n\n ${IconWrapper} {\n position: absolute;\n top: calc(50% - 7px);\n right: 10px;\n pointer-events: none;\n }\n`;\n\nconst StyledSelect = styled.select`\n box-sizing: border-box;\n outline: none;\n border-radius: 3px;\n height: 40px;\n padding: 0 25px 0 15px;\n appearance: none;\n line-height: 1.56;\n width: 100%;\n cursor: pointer;\n ${({theme: {styles}}) => css`\n ${styles.form.input.default.normal};\n `}\n\n &:disabled {\n ${({theme: {styles}}) => css`\n ${styles.form.input.disabled.normal};\n `}\n cursor: not-allowed;\n }\n\n &::-ms-expand {\n display: none;\n }\n`;\n\nconst Container = styled.div<{ isCompact?: boolean, activePlaceholder: boolean, isLabelSameRow?: boolean }>`\n\n${({ isCompact }) => isCompact && css`\n ${StyledLabel} {\n span {\n margin-bottom: 6px;\n }\n }\n `}\n\n${({ isLabelSameRow }) => isLabelSameRow && css`\n ${StyledLabel} {\n display: flex;\n align-items: center;\n span {\n margin: 0 10px 0 0;\n }\n }\n`};\n\n ${StyledSelect} {\n ${({ theme }) => css`\n border: 1px solid ${theme.styles.form.input.default.normal.borderColor};\n font-family: ${theme.fontFamily.data};\n ${theme.typography.form.input.value.normal};\n `};\n\n ${({ theme: { typography }, isCompact }) => isCompact && css`\n height: 30px;\n padding: 0 25px 0 10px;\n ${typography.form.input.value.compact};\n `};\n\n ${({ theme, activePlaceholder }) => activePlaceholder && css`\n ${theme.typography.form.input.placeholder.normal};\n `};\n\n ${({ theme, isCompact, activePlaceholder }) => isCompact && activePlaceholder && css`\n ${theme.typography.form.input.placeholder.compact};\n `};\n\n option {\n font-style: normal;\n ${({ theme }) => css`\n ${theme.typography.form.input.value.normal};\n `};\n\n ${({ theme: { typography }, isCompact }) => isCompact && css`\n ${typography.form.input.value.compact};\n `};\n }\n font-weight: 400;\n }\n`;\n\ninterface ILabel {\n htmlFor: string\n text: string\n isSameRow?: boolean\n}\n\ninterface OwnProps {\n label?: ILabel\n isCompact?: boolean\n placeholder?: string\n changeCallback?: (value: string) => void\n}\n\ntype ISelect = OwnProps & SelectHTMLAttributes<HTMLSelectElement>\n\nconst SelectField: React.FC<ISelect> = ({\n placeholder,\n label,\n isCompact,\n defaultValue,\n changeCallback = () => { },\n children,\n ...props\n}) => {\n\n const [activePlaceholder, setPlaceholderStatus] = useState<boolean>(!defaultValue ? true : false);\n\n const handleOnChange = useCallback((e) => {\n\n const { value } = e.target;\n\n setPlaceholderStatus(prev => {\n if (prev) { return false; }\n return prev;\n });\n changeCallback(value);\n }, [changeCallback]);\n\n const renderSelect = useCallback((htmlFor?: string) => (\n <SelectWrapper>\n <StyledSelect\n id={htmlFor}\n {...props}\n defaultValue={defaultValue ? defaultValue : ''}\n onChange={handleOnChange}\n >\n {!defaultValue && <option value='' disabled hidden>{placeholder}</option>}\n {children}\n </StyledSelect>\n <Icon icon='Down' color='dimmed' size={11} />\n </SelectWrapper>\n ), [children, defaultValue, handleOnChange, placeholder, props]);\n\n return (\n <Container {...{ isCompact, activePlaceholder }} isLabelSameRow={label?.isSameRow}>\n {label\n ? (\n <Label htmlFor={label.htmlFor} labelText={label.text}>\n {renderSelect(label.htmlFor)}\n </Label>\n )\n : renderSelect()}\n </Container>\n );\n};\n\nexport default SelectField;","import {ITimeUnit} from '../index';\n\nconst isInsideRange = (value: number, min: number, max: number) : boolean => {\n if( value < min) {return false;}\n if(value > max) { return false;}\n return true;\n};\n\n// verifies if a number is inside a boundary if not updates it's value to the max or min boundary value.\nconst clamp = (value: number, minValue: number, maxValue: number) => {\n return Math.min( Math.max(value, minValue), maxValue);\n};\n\n/**\n * Helper for adding appropriate text to a time number\n * Default is hours\n */\nconst getTextTimeUnit = (value: number, unit : ITimeUnit) => {\n switch (unit) {\n case 'seconds':\n return value < 2 ? `Second` : `Seconds`;\n\n case 'minutes':\n return value < 2 ? `Minute` : `Minutes`;\n\n default:\n return value < 2 ? `Hour` : `Hours`;\n }\n};\n\n/**\n * Helper for adding appropriate text to a time number\n * Default is hours\n */\nconst getShortTextTimeUnit = (value: number, unit : string) => {\n switch (unit) {\n case 'seconds':\n return value < 2 ? `sec` : `secs`;\n\n case 'minutes':\n return value < 2 ? `min` : `mins`;\n\n default:\n return value < 2 ? `hr` : `hrs`;\n }\n};\n\nexport const isTimeUnit = (value: any) => {\n switch(value) {\n case 'seconds':\n case 'minutes':\n case 'hours':\n return true;\n default:\n return false;\n }\n};\n\nconst getTopLevelPath = (pathname: string) => {\n const parts = pathname.split('/').filter(String);\n return parts.length > 0 ? \"/\" + parts[0] : \"/\";\n};\n\nconst getImageType = (img: HTMLImageElement) => {\n const dataType = img.src.substr(0, 20);\n if (dataType.includes('data')) {\n return dataType.split('/')[1].split(';')[0];\n }\n return 'image/jpeg';\n};\n\nconst isValidImage = (file: File) => {\n const acceptedImageTypes = ['image/jpeg', 'image/png'];\n\n return file && acceptedImageTypes.includes(file['type']);\n};\n\nconst uniqueID = () =>\n String(\n Date.now().toString(32) +\n Math.random().toString(16)\n ).replace(/\\./g, '');\n\nexport {\n clamp,\n isValidImage,\n getImageType,\n getTextTimeUnit,\n isInsideRange,\n getShortTextTimeUnit,\n getTopLevelPath,\n uniqueID\n};","import React, {\n InputHTMLAttributes,\n useState,\n useCallback,\n ChangeEvent,\n Fragment,\n useRef,\n useEffect,\n} from 'react';\nimport styled, {css} from 'styled-components';\nimport {IFeedbackColor} from '../../index';\nimport {\n isInsideRange,\n} from '../../helpers';\n\n/**\n * TODO to support all input range features\n * Currently you can pass this values but to be visually correct the needs to work around the current implementation.\n * Step\n * Vertical usage\n */\n\nconst ThumbDiameter = 16;\n\nconst SliderWrapper = styled.div<{disabled: boolean}>`\n font-family: ${({ theme }) => theme.fontFamily.data};\n position: relative;\n height: 30px;\n margin-top: 20px;\n ${({disabled}) => disabled && css`\n opacity: .5;\n `};\n`;\n\nconst HiddenInput = styled.input<{disabled:boolean}>`\n width: 100%;\n margin: 0;\n padding:0;\n opacity: .001;\n z-index: 99;\n cursor: ${({disabled}) => disabled ? `not-allowed` : `pointer`};\n`;\n\nconst Rail = styled.div`\n position: absolute;\n left: ${ThumbDiameter/2}px;\n top: 10px;\n width: calc(100% - ${ThumbDiameter}px);\n height: 2px;\n border-radius: 11px;\n background-image: linear-gradient(to bottom, hsl(210, 30%, 96%), hsl(203, 42%, 94%) 98%);\n`;\n\nconst Mark = styled.span<{leftValue: number}>`\n position: absolute;\n top: -3px;\n left: ${({leftValue}) => `calc(${leftValue}% + 7px)`};\n width: 1px;\n height: 9px;\n opacity: 0.25;\n background-color: hsl(205, 77%, 64%);\n`;\n\nconst MarkLabel = styled.span<{leftValue: number, alignment?: IMartAlignment,}>`\n position: absolute;\n top: -24px;\n left: ${({leftValue}) => `calc(${leftValue}% + 7px)`};\n\n font-size: 10px;\n font-style: italic;\n line-height: normal;\n text-align: center;\n color: hsla(195, 10%, 52%, 0.72);\n\n ${({alignment}) => (alignment === 'center') && css`transform: translateX(-50%);;`}\n ${({alignment}) => (alignment === 'right') && css`transform: translateX(5%);`}\n ${({alignment}) => (alignment === 'left') && css`transform: translateX(-95%);`}\n`;\n\nconst ThumbWrapper = styled.div`\n position: relative;\n margin-right: 16px;\n left: 0;\n top: 10px;\n width: calc(100% - ${ThumbDiameter}px);\n height: 2px;\n`;\n\nconst Thumb = styled.span<{leftValue: number, bgColor: IFeedbackColor }>`\n width: ${ThumbDiameter}px;\n height: ${ThumbDiameter}px;\n border-radius: 8px;\n background-color: ${({theme, bgColor}) => theme.colors.feedback[bgColor]};\n position: absolute;\n top: -7.5px;\n left: ${({leftValue}) => `${leftValue}%`};\n`;\n\nconst GhostThumb = styled(Thumb)`\n opacity: .5;\n`;\n\nconst thumbLeftPosition = (value: number, min: number, max: number ) => {\n return valueToPercent(value, min, max);\n};\n\nconst nearMark = (value: number, marks: ISliderMark[]) : number => {\n\n const closest = marks.reduce((prev, curr) => {\n return (Math.abs(curr.value - value) < Math.abs(prev.value - value) ? curr : prev);\n });\n\n return closest.value;\n};\n\n/**\n * Rules for a getValidMin\n * Max needs to be bigger than Min\n * if Min is not available and Max is positive default is 0\n * if Min is not available Max is negative min will be reduce by 1\n */\nconst getValidMin = (max: number, min?: number) : number => {\n\n if((!max) && (!min)) {\n return 0;\n }\n\n if(!min) {\n if(max > 0) {\n return 0;\n }else {\n return max - 1 ;\n }\n }\n return min;\n};\n\n/**\n *\n * Max is required but null because it cans o.O\n * if Max is less value than min fix to one more than min\n */\nconst getValidMax = (max: number, min?: number) : number => {\n if((max === null) && (!min)) {\n return 100;\n }\n\n if(min && (min > max) ) {\n return min + 1;\n }\n\n return max;\n};\n\nconst valueToPercent = (value: number, min: number, max: number) : number => {\n return Math.round(((value - min) * 100) / (max - min));\n};\n\n// const percentToValue = (percent: number, min: number, max: number) : number => {\n// return (max - min) * percent + min;\n// };\n\n\nconst getMarkAlignment = (value: number, min: number, max: number) : IMartAlignment => {\n if(value === min) {\n return 'right';\n }\n\n if(value === max) {\n return 'left';\n }\n\n return 'center';\n};\n\nconst renderMarks = (markList: ISliderMark[], min: number, max: number, listTag: string) => {\n\n const listOptions : JSX.Element[] = [];\n const marksElements = markList.map(({value, label}, index) => {\n // * first and last should be 0% and 100%\n const left = index === (markList.length - 1) ? 100 : valueToPercent(value, min, max);\n listOptions.push(<option key={`option-${value}`}>{value}</option>);\n\n return (\n <Fragment key={`mark-${index}`}>\n <Mark\n data-leftvalue={`${left}%`}\n leftValue={left}\n />\n <MarkLabel\n leftValue={left}\n alignment={getMarkAlignment(value, min, max)}\n >\n {label}\n </MarkLabel>\n </Fragment>\n );\n });\n\n return (\n <Fragment>\n {marksElements}\n <datalist id={listTag}>\n {listOptions}\n </datalist>\n </Fragment>\n );\n\n};\n\nexport type IMartAlignment = 'left' | 'center' | 'right';\n\nexport interface ISliderMark {\n value: number\n label?: string\n}\n\ninterface ISliderOwnProps {\n min?: number\n max: number\n step?: number\n marks?: ISliderMark[]\n defaultValue?: number\n value?: number\n thumbColor?: IFeedbackColor\n onlyMarkSelect?: boolean\n inputCallback?: (value: number) => void\n onChangeCallback?: (value: number) => void\n}\n\nexport type ISlider = ISliderOwnProps & InputHTMLAttributes<HTMLInputElement>;\n\nlet ghostThumbValue = 0;\n\nconst SliderInput : React.FC<ISlider> = ({\n min,\n max,\n marks,\n defaultValue,\n thumbColor = 'info',\n disabled = false,\n onlyMarkSelect = false,\n inputCallback = () => {},\n onChangeCallback = () => {},\n ...props\n}) => {\n\n const maxValid = getValidMax(max, min);\n const minValid = getValidMin(max, min);\n const initValue = (defaultValue && isInsideRange(defaultValue, minValid, maxValid)) ? defaultValue : minValid;\n\n const [selectedValue, setSelectedValue] = useState(initValue);\n const [isGhostActive, setIsGhostActive ] = useState(false);\n\n const thumbValueRef = useRef(thumbLeftPosition(selectedValue, minValid, maxValid));\n\n if(marks && onlyMarkSelect) {\n const mark = nearMark(selectedValue, marks);\n const ghostVal = thumbLeftPosition(mark, minValid, maxValid);\n ghostThumbValue = ghostVal;\n }\n\n\n const handleInputChange = useCallback((e: ChangeEvent<HTMLInputElement>, lastValue: number) => {\n const val = e.target.value;\n if(val === null) { return; }\n const numericVal = parseInt(val,10);\n\n thumbValueRef.current = thumbLeftPosition(numericVal, minValid, maxValid);\n const mark = marks ? nearMark(numericVal, marks) : numericVal;\n const prevMark = marks ? nearMark(lastValue, marks) : numericVal;\n\n if(onlyMarkSelect && (prevMark !== mark)) {\n onChangeCallback(mark);\n }\n\n if(!onlyMarkSelect) {\n onChangeCallback(numericVal);\n }\n\n setSelectedValue(prev => {\n if(numericVal === prev) { return prev; }\n return numericVal;\n });\n\n },[marks, maxValid, minValid, onChangeCallback, onlyMarkSelect]);\n\n\n const handleSelectStart = useCallback(() => {\n setIsGhostActive(true);\n }, []);\n\n const handleSelectEnd = useCallback((currentValue: number) => {\n if(onlyMarkSelect) {\n inputCallback(ghostThumbValue);\n } else {\n inputCallback(currentValue);\n }\n\n if(onlyMarkSelect) {\n thumbValueRef.current = ghostThumbValue;\n }\n\n setIsGhostActive(false);\n },[inputCallback, onlyMarkSelect]);\n\n useEffect(() => {\n const initValue = (defaultValue && isInsideRange(defaultValue, minValid, maxValid)) ? defaultValue : minValid;\n thumbValueRef.current = thumbLeftPosition(initValue, minValid, maxValid);\n setSelectedValue(initValue);\n\n }, [defaultValue, maxValid, minValid]);\n\n return(\n <SliderWrapper disabled={disabled}>\n <Rail />\n <ThumbWrapper>\n {marks && renderMarks(marks, minValid, maxValid, `sliderList-${minValid}-${maxValid}`)}\n {isGhostActive && onlyMarkSelect\n ? (\n <GhostThumb\n data-value={selectedValue}\n leftValue={ghostThumbValue}\n data-percentage={ghostThumbValue}\n bgColor={thumbColor}\n />\n )\n : null}\n <Thumb\n data-value={selectedValue}\n leftValue={thumbValueRef.current}\n data-percentage={thumbValueRef.current}\n bgColor={thumbColor}\n />\n </ThumbWrapper>\n <HiddenInput\n {...props}\n type='range'\n disabled={disabled}\n list={`sliderList-${minValid}-${maxValid}`}\n min={minValid}\n max={maxValid}\n value={selectedValue}\n onMouseUp={() => handleSelectEnd(selectedValue)}\n onMouseDown={handleSelectStart}\n onTouchStart={() => handleSelectEnd(selectedValue)}\n onTouchEnd={handleSelectStart}\n onChange={(e) => handleInputChange(e, selectedValue)}\n />\n </SliderWrapper>\n );\n};\n\nexport default SliderInput;","import React, {useRef, useCallback, ChangeEvent, InputHTMLAttributes} from 'react';\nimport styled from 'styled-components';\nimport Button from './Button';\nimport { TypeButtonSizes, TypeButtonDesigns } from '..';\n\nconst Container = styled.div``;\nconst HiddenInput = styled.input`\n display: none;\n`;\nconst StyledButton = styled(Button)`\n text-align: center;\n`;\n\ninterface OwnProps {\n text: string\n buttonSize?: TypeButtonSizes\n buttonDesign?: TypeButtonDesigns\n inputCallback: (newFiles: FileList) => void\n}\n\ntype IFileInput = OwnProps & InputHTMLAttributes<HTMLInputElement>\nconst InputFileButton : React.FC<IFileInput> = ({text, buttonDesign, buttonSize, inputCallback, ...props}) => {\n\n const fileInputRef = useRef<HTMLInputElement>(null);\n\n const handleFile = useCallback(async(e: ChangeEvent<HTMLInputElement>) => {\n if (!(e.target.files && e.target.files.length > 0)) { return;}\n const newFiles : FileList = e.target.files;\n if(inputCallback) {\n inputCallback(newFiles);\n }\n e.target.value = '';\n },[inputCallback]);\n\n const forwardClick = useCallback(() => {\n if(fileInputRef.current) {\n fileInputRef.current.click();\n }\n },[]);\n\n return(\n <Container>\n <HiddenInput\n {...props}\n ref={fileInputRef}\n type='file'\n onChange={handleFile}\n />\n <StyledButton\n onClick={forwardClick}\n design={buttonDesign}\n size={buttonSize}\n >{text}\n </StyledButton>\n </Container>\n );\n};\n\nexport default InputFileButton;","import React, {useState, useCallback} from 'react';\nimport styled from 'styled-components';\nimport {ITimeUnit} from '../../index';\nimport SliderInput, {ISlider} from '../atoms/SliderInput';\nimport {getShortTextTimeUnit, isTimeUnit} from '../../helpers';\nimport Label from '../atoms/Label';\n\n\n/**\n * This component relies in the slider for validations\n * Since the theme of this component is time unit values\n * Marks could also be handle by it.\n * Providing quantity of marks and generating the marks array based with unit\n */\n\nconst Container = styled.div``;\nconst Headers = styled.div`\n font-size: 14px;\n color: hsl(207, 5%, 57%);\n display: flex;\n justify-content: space-between;\n margin-bottom: 30px;\n padding: 0 6px;\n`;\n\nconst ValueLabel = styled(Label)`\n font-family: ${({ theme }) => theme.fontFamily.ui};\n margin-bottom: 0;\n`;\n\nconst Unit = styled.div`\n font-family: ${({ theme }) => theme.fontFamily.data};\n color: hsla(195, 10%, 52%, 0.72);\n font-style: italic;\n font-size: 12px;\n line-height: 1.5;\n`;\n\nconst ValueTitle = styled.div`\n display: flex;\n`;\n\ninterface IDurationSliderProps {\n title: string\n timeUnit: ITimeUnit | string\n controlledValue?: number\n}\n\ntype IDurationSlider = IDurationSliderProps & ISlider;\n\nconst DurationSlider: React.FC<IDurationSlider> = (\n {\n max,\n min,\n defaultValue=0,\n title='',\n timeUnit,\n controlledValue,\n inputCallback,\n ...props\n }\n ) => {\n\n const [selectedValue, setSelectedValue] = useState(defaultValue);\n\n const handleSelectedValue = useCallback((value: number) => {\n if(inputCallback) {\n inputCallback(value);\n }\n setSelectedValue(value);\n },[inputCallback]);\n\n const labelValue = controlledValue ? controlledValue : selectedValue;\n const unit = isTimeUnit(timeUnit) ? getShortTextTimeUnit(labelValue, timeUnit) : timeUnit;\n\n return(\n <Container>\n <Headers>\n <Label htmlFor='duration-slider' labelText={title} />\n <ValueTitle>\n <ValueLabel htmlFor='duration-slider' labelText={`${labelValue}`} />\n <Unit>{unit}</Unit>\n </ValueTitle>\n </Headers>\n <SliderInput\n {\n ...props}\n id='duration-slider'\n max={max}\n min={min}\n defaultValue={defaultValue}\n onChangeCallback={handleSelectedValue}\n />\n </Container>\n );\n};\n\nexport default DurationSlider;","import React, {InputHTMLAttributes, useState, useCallback} from 'react';\nimport styled from 'styled-components';\nimport SliderInput, {ISliderMark} from '../atoms/SliderInput';\nimport {IFeedbackColor} from '../../index';\nimport Label from '../atoms/Label';\n\n\nconst Container = styled.div``;\nconst Headers = styled.div`\n font-size: 14px;\n color: hsl(207, 5%, 57%);\n display: flex;\n justify-content: space-between;\n margin-bottom: 20px;\n padding: 0 6px;\n`;\n\nconst ValueTitle = styled(Label)`\n font-family: ${({ theme }) => theme.fontFamily.data};\n`;\n\nconst getThumbColor = (value: number) : IFeedbackColor => {\n if(value <= 10) {\n return 'error';\n }\n\n if((value > 10) && (value <= 30)) {\n return 'warning';\n }\n\n return 'success';\n};\n\nconst getTitleLevel = (value: number) : string => {\n if(value <= 10) {\n return 'Critical Level';\n }\n\n if((value > 10) && (value <= 30)) {\n return 'Warning Level';\n }\n\n return 'Safe Level';\n};\n\n\ninterface IPercentageSliderProps {\n step?: number\n marks?: ISliderMark[]\n defaultValue?: number\n value?: number\n inputCallback?: (value: number) => void\n updateThumbColor?: (value: number) => IFeedbackColor\n updateTitle?: (value: number) => string\n}\n\ntype IPercentageSlider = IPercentageSliderProps & InputHTMLAttributes<HTMLInputElement>;\n\nconst PercentageSlider: React.FC<IPercentageSlider> = (\n {\n defaultValue=0,\n // title='',\n inputCallback,\n updateThumbColor,\n updateTitle,\n ...props\n }\n ) => {\n const [selectedValue, setSelectedValue] = useState(defaultValue);\n\n const handleSelectedValue = useCallback((value: number) => {\n if(inputCallback) {\n inputCallback(value);\n }\n setSelectedValue(value);\n },[inputCallback]);\n\n return(\n <Container>\n <Headers>\n <Label\n htmlFor='percentage-slider'\n labelText={updateTitle ? updateTitle(selectedValue) : getTitleLevel(selectedValue)}\n />\n <ValueTitle htmlFor='percentage-slider' labelText={`${selectedValue}%`} />\n </Headers>\n <SliderInput\n {...props}\n id='percentage-slider'\n max={100}\n min={0}\n defaultValue={defaultValue}\n onChangeCallback={handleSelectedValue}\n thumbColor={\n updateThumbColor\n ? updateThumbColor(selectedValue)\n : getThumbColor(selectedValue)\n }\n />\n </Container>\n );\n};\n\nexport default PercentageSlider;","import React, { useState, InputHTMLAttributes } from 'react';\nimport Input from '../atoms/Input';\nimport Label from '../atoms/Label';\nimport { TypeFieldState } from '..';\n\ninterface OwnProps {\n name: string;\n label: string\n fieldState: TypeFieldState\n feedbackMessage?: string\n}\ntype Props = OwnProps & InputHTMLAttributes<HTMLInputElement>\n\n\nconst PasswordField : React.FC<Props> = ({ name, label, fieldState, feedbackMessage, ...props}) => {\n\n const [ showValue, setShowValue ] = useState<boolean>(false);\n const [ actionIcon, setActionIcon ] = useState<string>('PasswordHide');\n\n const actionCallback = () => {\n // Toggle show / hide and replace icon.\n const newValue : boolean = !showValue;\n\n setShowValue(newValue);\n setActionIcon(newValue ? 'PasswordShow' : 'PasswordHide');\n };\n\n return (\n <Label htmlFor={name} labelText={label}>\n <Input type={showValue ? 'text' : 'password'} actionCallback={actionCallback} actionIcon={actionIcon} {...{ name, fieldState, feedbackMessage, ...props}} />\n </Label>)\n ;\n\n};\n\nexport default PasswordField;\n","import React from 'react';\nimport Input, { InputProps } from '../atoms/Input';\nimport Label from '../atoms/Label';\nimport { TypeFieldState } from '..';\n\ninterface OwnProps {\n name: string\n label: string\n fieldState: TypeFieldState\n feedbackMessage?: string\n}\n\ntype Props = OwnProps & InputProps\n\n\nconst TextField : React.FC<Props> = ({ name, label, fieldState='default', feedbackMessage, type:_type , ...props }) => {\n return (\n <Label htmlFor={name} labelText={label}>\n <Input type='text' {...{fieldState, feedbackMessage, name, ...props }} />\n </Label>\n );\n};\n\n\nexport default TextField;","import React, { TextareaHTMLAttributes } from 'react';\nimport { TypeFieldState } from '..';\nimport Label from '../atoms/Label';\nimport TextArea from '../atoms/TextArea';\n\ninterface OwnProps {\n name: string\n label: string\n fieldState: TypeFieldState\n feedbackMessage?: string\n}\n\ntype Props = OwnProps & TextareaHTMLAttributes<HTMLTextAreaElement>\n\nconst TextAreaField : React.FC<Props> = ({\n name,\n label,\n fieldState='default',\n feedbackMessage,\n children,\n ...props\n}) => {\n return(\n <Label htmlFor={name} labelText={label}>\n <TextArea {...{ fieldState, feedbackMessage, name, ...props }} />\n </Label>\n );\n};\n\nexport default TextAreaField;","import React, { useState, useCallback} from 'react';\nimport styled from 'styled-components';\n\nconst Container = styled.div<{height?: string}>`\n ${({height}) => height ? `height: ${height}` : null};\n position: relative;\n`;\n\nconst DragAndDrop = styled.div<{inDropZone: boolean}>`\n border-radius: 5px;\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n border: ${({inDropZone}) => inDropZone ? `dashed #afa9a9 2px` : null};\n`;\n\ninterface IDropArea {\n height?: string\n text?: string\n dropCallback?: (newFiles: FileList) => void\n}\n\nconst DropArea : React.FC<IDropArea> = ({height, text, dropCallback, ...props}) => {\n const [inDropZone, setInDropZone] = useState(false);\n\nconst onDragEnter = useCallback((e) => {\n e.preventDefault();\n e.stopPropagation();\n\n setInDropZone(true);\n},[]);\n\nconst onDragLeave = useCallback((e) => {\n e.preventDefault();\n e.stopPropagation();\n\n setInDropZone(false);\n},[]);\n\nconst onDragOver = useCallback((e) => {\n e.preventDefault();\n e.stopPropagation();\n\n},[]);\n\nconst onDrop = useCallback((e ) => {\n e.preventDefault();\n e.stopPropagation();\n if(e.dataTransfer?.files && dropCallback) {\n dropCallback(e.dataTransfer.files);\n }\n setInDropZone(false);\n},[dropCallback]);\n\n return(\n <Container {...{height}} {...props}>\n <DragAndDrop\n {...{\n inDropZone,\n onDragEnter,\n onDragLeave,\n onDrop,\n onDragOver\n }}\n >\n {text}\n </DragAndDrop>\n </Container>\n );\n};\n\nexport default DropArea;","import { clamp } from './index';\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/cursor //\ntype ICursorStyles = (\n 'ne-resize'\n | 'nw-resize'\n | 'n-resize'\n | 'se-resize'\n | 'sw-resize'\n | 's-resize'\n | 'e-resize'\n | 'w-resize'\n | 'move'\n | 'default'\n);\n\nconst updateCursorStyle = (\n left: number,\n top: number,\n width: number,\n height: number,\n clientX: number,\n clientY: number\n): ICursorStyles => {\n let cursorStyle: ICursorStyles = 'default';\n\n if (clientY - top < 5) {\n if (width - (clientX - left) < 5) {\n cursorStyle = 'ne-resize';\n } else if (clientX - left < 5) {\n cursorStyle = 'nw-resize';\n } else {\n cursorStyle = 'n-resize';\n }\n } else if (height - (clientY - top) < 5) {\n if (width - (clientX - left) < 5) {\n cursorStyle = 'se-resize';\n } else if (clientX - left < 5) {\n cursorStyle = 'sw-resize';\n } else {\n cursorStyle = 's-resize';\n }\n } else if (width - (clientX - left) < 5) {\n cursorStyle = 'e-resize';\n } else if (clientX - left < 5) {\n cursorStyle = 'w-resize';\n } else {\n cursorStyle = 'move';\n }\n\n return cursorStyle;\n};\n\nconst drawImgValues = (img: HTMLImageElement, canvasHeight: number, canvasWidth: number): IDrawArea => {\n\n const scale = Math.min(\n canvasWidth / img.naturalWidth,\n canvasHeight / img.naturalHeight\n );\n\n const width = Math.floor(img.naturalWidth * scale);\n const height = Math.floor(img.naturalHeight * scale);\n const top = 0 + Math.floor((canvasHeight - height) / 2);\n const left = 0 + Math.floor((canvasWidth - width) / 2);\n\n const imageDraw: IDrawArea = {\n left,\n top,\n width,\n height,\n };\n\n return imageDraw;\n};\n\n\nconst calculateAspectSizes = (baseHeight: number, baseWidth: number, aspectRatio: number) => {\n const aspect = aspectRatio ? aspectRatio : 1;\n let height, width;\n\n if (baseWidth > (baseHeight * aspect)) {\n width = Math.floor(baseHeight * aspect);\n height = baseHeight;\n } else {\n width = baseWidth;\n height = Math.floor(baseWidth / aspect);\n }\n\n return {\n height,\n width\n };\n};\n\nconst initialCropValues = (\n cropWidth: number,\n cropHeight: number,\n canvasWidth: number,\n canvasHeight: number,\n imgWidth: number,\n imgHeight: number,\n aspectRatio?: number,\n) => {\n\n let height, width;\n const aspect = aspectRatio ? aspectRatio : 1;\n const minWidth = Math.min(cropWidth, canvasWidth, imgWidth);\n const minHeight = Math.min(cropHeight, canvasHeight, imgHeight);\n\n if (minWidth > (minHeight * aspect)) {\n width = Math.floor(minHeight * aspect);\n height = minHeight;\n } else {\n width = minWidth;\n height = Math.floor(minWidth / aspect);\n }\n\n const top = 0 + Math.floor((canvasHeight / 2) - (height / 2));\n const left = 0 + Math.floor((canvasWidth / 2) - (width / 2));\n\n return {\n left,\n top,\n width,\n height,\n };\n};\n\nconst isLeftMouseButton = (e: MouseEvent) => {\n\n let mouseButton;\n if (typeof (e.buttons) !== undefined) {\n mouseButton = e.buttons;\n } else if (typeof (e.button) !== undefined) {\n mouseButton = e.button;\n } else {\n mouseButton = e.which;\n }\n\n if (mouseButton === 1) {\n return true;\n }\n\n return false;\n};\n\ninterface ISelectedArea {\n cropLeft: number\n cropTop: number\n cropWidth: number\n cropHeight: number\n mouseStartX: number\n mouseStartY: number\n imgLeft: number\n imgTop: number\n imgWidth: number\n imgHeight: number\n cursorStart: ICursorStyles\n isResizing: boolean\n}\n\nconst updateCropValues = (\n oldSelection: ISelectedArea,\n newX: number,\n newY: number,\n) => {\n\n let [updatedLeft, updatedTop, updatedWidth, updatedHeight] =\n [oldSelection.cropLeft, oldSelection.cropTop, oldSelection.cropWidth, oldSelection.cropHeight];\n\n const diffX = newX - oldSelection.mouseStartX;\n const diffY = newY - oldSelection.mouseStartY;\n\n switch (oldSelection.cursorStart) {\n case 'ne-resize':\n updatedTop = oldSelection.cropTop + diffY;\n updatedHeight = oldSelection.cropHeight - diffY;\n updatedWidth = oldSelection.cropWidth + diffX;\n\n break;\n\n case 'nw-resize':\n updatedTop = oldSelection.cropTop + diffY;\n updatedLeft = oldSelection.cropLeft + diffX;\n updatedHeight = oldSelection.cropHeight - diffY;\n updatedWidth = oldSelection.cropWidth - diffX;\n break;\n\n case 'n-resize':\n updatedTop = oldSelection.cropTop + diffY;\n updatedHeight = oldSelection.cropHeight - diffY;\n break;\n\n case 'se-resize':\n updatedHeight = oldSelection.cropHeight + diffY;\n updatedWidth = oldSelection.cropWidth + diffX;\n break;\n\n case 'sw-resize':\n updatedLeft = oldSelection.cropLeft + diffX;\n updatedHeight = oldSelection.cropHeight + diffY;\n updatedWidth = oldSelection.cropWidth - diffX;\n break;\n\n case 's-resize':\n updatedHeight = oldSelection.cropHeight + diffY;\n break;\n\n case 'e-resize':\n updatedWidth = oldSelection.cropWidth + diffX;\n break;\n\n case 'w-resize':\n updatedLeft = oldSelection.cropLeft + diffX;\n updatedWidth = oldSelection.cropWidth - diffX;\n break;\n\n case 'move':\n updatedTop = oldSelection.cropTop + diffY;\n updatedLeft = oldSelection.cropLeft + diffX;\n break;\n\n default:\n break;\n }\n\n const width = clamp(updatedWidth, 0, oldSelection.imgWidth);\n const height = clamp(updatedHeight, 0, oldSelection.imgHeight);\n const left = clamp(updatedLeft, oldSelection.imgLeft, (oldSelection.imgWidth - oldSelection.cropWidth + oldSelection.imgLeft));\n const top = clamp(updatedTop, oldSelection.imgTop, (oldSelection.imgHeight - oldSelection.cropHeight + oldSelection.imgTop));\n\n const isUpdateRequired = areDimensionsDiff(oldSelection, {left, top, height, width});\n\n return {\n left,\n top,\n width,\n height,\n isUpdateRequired,\n };\n};\n\nconst updateCropWithAspect = (\n oldSelection: ISelectedArea,\n newX: number,\n newY: number,\n aspectRatio?: number,\n) => {\n\n const aspect = aspectRatio ? aspectRatio : 1;\n let [updatedLeft, updatedTop, updatedWidth, updatedHeight] =\n [oldSelection.cropLeft, oldSelection.cropTop, oldSelection.cropWidth, oldSelection.cropHeight];\n\n const diffX = newX - oldSelection.mouseStartX;\n const diffY = newY - oldSelection.mouseStartY;\n\n switch (oldSelection.cursorStart) {\n case 'ne-resize':\n updatedTop = oldSelection.cropTop + diffY;\n updatedHeight = oldSelection.cropHeight - diffY;\n updatedWidth = Math.floor(updatedHeight * aspect);\n\n break;\n\n case 'nw-resize':\n updatedTop = oldSelection.cropTop + diffY;\n updatedLeft = oldSelection.cropLeft + (diffY * aspect);\n updatedHeight = oldSelection.cropHeight - diffY;\n updatedWidth = Math.floor(updatedHeight * aspect);\n break;\n\n case 'se-resize':\n updatedHeight = oldSelection.cropHeight + diffY;\n updatedWidth = Math.floor(updatedHeight * aspect);\n break;\n\n case 'sw-resize':\n updatedLeft = oldSelection.cropLeft + diffX;\n updatedWidth = oldSelection.cropWidth - diffX;\n updatedHeight = Math.floor(updatedWidth / aspect);\n break;\n\n case 'move':\n updatedTop = oldSelection.cropTop + diffY;\n updatedLeft = oldSelection.cropLeft + diffX;\n break;\n\n default:\n break;\n }\n\n /**img values only change if the image is updated */\n\n const imgBoundLeft = clamp(updatedLeft, oldSelection.imgLeft, (oldSelection.imgWidth - oldSelection.cropWidth + oldSelection.imgLeft));\n const imgBoundTop = clamp(updatedTop, oldSelection.imgTop, (oldSelection.imgHeight - oldSelection.cropHeight + oldSelection.imgTop));\n const imgBoundWidth = clamp(updatedWidth, 0, oldSelection.imgWidth);\n const imgBoundHeight = clamp(updatedHeight, 0, oldSelection.imgHeight);\n\n\n let left = imgBoundLeft;\n let top = imgBoundTop;\n let width = imgBoundWidth;\n let height = imgBoundHeight;\n\n if ((oldSelection.cursorStart !== 'move') && (imgBoundWidth === oldSelection.imgWidth)) {\n height = oldSelection.cropHeight;\n top = oldSelection.cropTop;\n }\n\n if ((oldSelection.cursorStart !== 'move') && (imgBoundHeight === oldSelection.imgHeight)) {\n width = oldSelection.cropWidth;\n left = oldSelection.cropLeft;\n }\n\n const isUpdateRequired = areDimensionsDiff(oldSelection, {left, top, height, width});\n\n return {\n left,\n top,\n width,\n height,\n isUpdateRequired,\n };\n};\n\ninterface IDrawArea {\n left: number\n top: number\n width: number\n height: number\n}\n\nconst areDimensionsDiff = (oldDimensions: ISelectedArea, newValues: IDrawArea) => {\n let isDifferent = false;\n\n if(oldDimensions.cropLeft !== newValues.left) {\n isDifferent = true;\n }\n\n if(oldDimensions.cropTop !== newValues.top) {\n isDifferent = true;\n }\n\n if(oldDimensions.cropHeight !== newValues.height) {\n isDifferent = true;\n }\n\n if(oldDimensions.cropWidth !== newValues.width) {\n isDifferent = true;\n }\n\n return isDifferent;\n};\n\nexport type {\n ICursorStyles,\n IDrawArea,\n ISelectedArea,\n};\n\nexport {\n initialCropValues,\n drawImgValues,\n updateCursorStyle,\n isLeftMouseButton,\n updateCropValues,\n updateCropWithAspect,\n calculateAspectSizes,\n};","import React, { Fragment } from 'react';\nimport styled, { css } from 'styled-components';\n\nconst CropLineStyle = css`\n position: absolute;\n display: block;\n opacity: 0.1;\n`;\nconst TopLine = styled.div`\n ${CropLineStyle};\n cursor: n-resize;\n width: 100%;\n height: 5px;\n left: 0;\n top: -3px;\n`;\n\nconst RightLine = styled.div`\n ${CropLineStyle};\n cursor: e-resize;\n right: -3px;\n top: 0;\n width: 5px;\n height: 100%;\n`;\n\nconst BottomLine = styled.div`\n ${CropLineStyle}\n cursor: s-resize;\n bottom: -3px;\n height: 5px;\n width: 100%;\n left: 0;\n`;\n\nconst LeftLine = styled.div`\n ${CropLineStyle};\n cursor: w-resize;\n left: -3px;\n top: 0;\n width: 5px;\n height: 100%;\n`;\n\nconst resizeSquaresCss = css`\n position: absolute;\n width: 10px;\n height: 10px;\n border: solid 1px hsl(0, 1%, 28%);\n background-color: hsl(0, 0%, 100%);\n`;\n\nconst PointN = styled.div<{ isResizable: boolean }>`\n ${resizeSquaresCss};\n top: -5px;\n margin-left: -5px;\n left: 50%;\n ${({ isResizable }) => isResizable && css`\n cursor: n-resize;\n `};\n`;\nconst PointNW = styled.div<{ isResizable: boolean }>`\n ${resizeSquaresCss};\n top: -5px;\n left: -5px;\n ${({ isResizable }) => isResizable && css`\n cursor: nw-resize;\n `};\n`;\n\nconst PointNE = styled.div<{ isResizable: boolean }>`\n ${resizeSquaresCss};\n top: -5px;\n right: -5px;\n ${({ isResizable }) => isResizable && css`\n cursor: ne-resize;\n `};\n`;\nconst PointE = styled.div<{ isResizable: boolean }>`\n ${resizeSquaresCss};\n margin-top: -5px;\n top: 50%;\n right: -5px;\n ${({ isResizable }) => isResizable && css`\n cursor: e-resize;\n `};\n`;\nconst PointSE = styled.div<{ isResizable: boolean }>`\n ${resizeSquaresCss};\n bottom: -5px;\n right: -5px;\n ${({ isResizable }) => isResizable && css`\n cursor: se-resize;\n `};\n`;\nconst PointS = styled.div<{ isResizable: boolean }>`\n ${resizeSquaresCss};\n bottom: -5px;\n left: 50%;\n margin-left: -5px;\n ${({ isResizable }) => isResizable && css`\n cursor: s-resize;\n `};\n`;\nconst PointSW = styled.div<{ isResizable: boolean }>`\n ${resizeSquaresCss};\n bottom: -5px;\n left: -5px;\n ${({ isResizable }) => isResizable && css`\n cursor: sw-resize;\n `};\n`;\nconst PointW = styled.div<{ isResizable: boolean }>`\n ${resizeSquaresCss};\n margin-top: -5px;\n top: 50%;\n left: -5px;\n ${({ isResizable }) => isResizable && css`\n cursor: w-resize;\n `};\n`;\n\ninterface ICropArea {\n isResizable: boolean\n hasAspectRatio: boolean\n}\n\nconst CropArea: React.FC<ICropArea> = ({\n isResizable,\n hasAspectRatio\n}) => {\n\n return (\n <Fragment>\n {(isResizable && (!hasAspectRatio)) ? (\n <Fragment>\n {/* This lines are just for cursor css */}\n <TopLine />\n <RightLine />\n <BottomLine />\n <LeftLine />\n </Fragment>)\n : null}\n\n {hasAspectRatio ? null\n : (\n <Fragment>\n <PointN data-point='cursor-n' {...{ isResizable }} />\n <PointE data-point='cursor-e' {...{ isResizable }} />\n <PointS data-point='cursor-s' {...{ isResizable }} />\n <PointW data-point='cursor-w' {...{ isResizable }} />\n </Fragment>\n )}\n\n\n <PointNW data-point='cursor-nw' {...{ isResizable }} />\n <PointNE data-point='cursor-ne' {...{ isResizable }} />\n <PointSE data-point='cursor-se' {...{ isResizable }} />\n <PointSW data-point='cursor-sw' {...{ isResizable }} />\n </Fragment>\n );\n};\n\nexport default CropArea;","import React, { useState, useCallback, useRef } from 'react';\nimport styled, { css } from 'styled-components';\nimport ReactDom from 'react-dom';\nimport Icon, { IconWrapper } from '../../Icons/Icon';\nimport Button from '../atoms/Button';\nimport ButtonWithLoading from '../atoms/ButtonWithLoading';\nimport {\n ICursorStyles,\n IDrawArea,\n ISelectedArea,\n updateCursorStyle,\n isLeftMouseButton,\n updateCropValues,\n drawImgValues,\n initialCropValues,\n updateCropWithAspect,\n} from '../../helpers/cropToolHelpers';\nimport { getImageType } from '../../helpers';\nimport CropArea from '../atoms/CropArea';\n\n// TODO: Add throttle or window.requestAnimationFrame()//\nconst Container = styled.div`\n position: fixed;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: hsla(202, 33%, 95%, 0.51);\n -webkit-backdrop-filter: blur(5px);\n backdrop-filter: blur(5px);\n font-family: ${({ theme }) => theme.fontFamily.ui};\n z-index: 999;\n`;\n\nconst InnerContainer = styled.div`\n position: relative;\n z-index: 99;\n`;\n\nconst ToolHeader = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 17px;\n`;\n\nconst TextGroup = styled.div`\n display: flex;\n align-items: center;\n font-size: 20px;\n font-weight: 500;\n color: ${({theme}) => theme.colors.icons.mono};\n\n ${IconWrapper} {\n display: flex;\n align-items: center;\n margin-right: 14px;\n }\n`;\n\nconst ButtonsGroup = styled.div`\n button + button {\n margin-left: 10px;\n }\n`;\n\nconst PreviewArea = styled.div<{ canvasHeight?: number, canvasWidth?: number }>`\n position: relative;\n overflow: hidden;\n height: ${({ canvasHeight }) => canvasHeight ? `${canvasHeight}px` : `462px`};\n width: ${({ canvasWidth }) => canvasWidth ? `${canvasWidth}px` : `485px`};\n border-radius: 5px;\n background-color: hsla(202, 33%, 95%, 0.8);\n background-image: repeating-linear-gradient(45deg, transparent, transparent 35px, rgba(255,255,255,.8) 35px, rgba(255,255,255,.8) 70px);\n`;\n\nconst HiddenImage = styled.img`\n display: none;\n`;\n\nconst SelectedArea = styled.div<{ cropLeft: number, cropTop: number, cropWidth: number, cropHeight: number }>`\n position: absolute;\n border: dashed 1px hsl(0, 0%, 24%);\n box-shadow: 0 0 0 9999em hsla(0, 0%, 32%, 0.75);\n ${({ cropLeft, cropTop, cropWidth, cropHeight }) => css`\n top: ${cropTop}px;\n left: ${cropLeft}px;\n width: ${cropWidth}px;\n height: ${cropHeight}px;\n `};\n cursor: move;\n`;\n\nconst viewDimensions: ISelectedArea = {\n cropLeft: 0,\n cropTop: 0,\n cropWidth: 350,\n cropHeight: 300,\n mouseStartX: 0,\n mouseStartY: 0,\n imgLeft: 0,\n imgTop: 0,\n imgWidth: 400,\n imgHeight: 400,\n cursorStart: 'default',\n isResizing: false,\n};\n\ninterface ICrop {\n title?: string\n cancelBtnTxt?: string\n cropBtnTxt?: string\n imgUrl: string\n isResizable?: boolean\n cropHeight?: number\n cropWidth?: number\n canvasHeight: number\n canvasWidth: number\n aspectRatio?: number\n onCrop?: (newFileUrl: string, fileType: string) => void\n onClose?: () => void\n onError?: (msg: string) => void\n}\n\nconst CropTool: React.FC<ICrop> = ({\n title = 'Crop Image',\n cancelBtnTxt = 'Cancel',\n cropBtnTxt = 'Crop & Save',\n isResizable = true,\n cropHeight = 300,\n cropWidth = 350,\n canvasHeight = 400,\n canvasWidth = 450,\n aspectRatio,\n imgUrl,\n onCrop,\n onClose = () => { },\n onError = () => { }\n}) => {\n\n const [isLoading, setIsLoading] = useState(false);\n const [_loadDimensions, setLoadDimensions] = useState(viewDimensions);\n const canvasRef = useRef<HTMLCanvasElement>(null);\n const imgRef = useRef<HTMLImageElement>(null);\n const cropRef = useRef<HTMLDivElement | null>(null);\n\n const drawImgOnCanvas = useCallback(() => {\n if (!canvasRef || !imgRef) { return; }\n const newImage = imgRef.current;\n if (!newImage) {\n onError('error loading image');\n return;\n }\n const canvas = canvasRef.current;\n if (!canvas) {\n onError('error loading canvas');\n return;\n }\n\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n onError('error drawing image');\n return;\n }\n\n const newImgDraw = drawImgValues(newImage, canvasHeight, canvasWidth);\n ctx?.drawImage(newImage, newImgDraw.left, newImgDraw.top, newImgDraw.width, newImgDraw.height);\n const newCrop: IDrawArea = initialCropValues(\n cropWidth,\n cropHeight,\n canvasWidth,\n canvasHeight,\n newImgDraw.width,\n newImgDraw.height,\n aspectRatio\n );\n // triggers a render to repaint canvas\n setLoadDimensions((prevState) =>\n ({\n ...prevState,\n cropLeft: newCrop.left,\n cropTop: newCrop.top,\n cropWidth: newCrop.width,\n cropHeight: newCrop.height,\n imgLeft: newImgDraw.left,\n imgTop: newImgDraw.top,\n imgWidth: newImgDraw.width,\n imgHeight: newImgDraw.height,\n })\n );\n\n viewDimensions.cropLeft = newCrop.left;\n viewDimensions.cropTop = newCrop.top;\n viewDimensions.cropWidth = newCrop.width;\n viewDimensions.cropHeight = newCrop.height;\n viewDimensions.imgLeft = newImgDraw.left;\n viewDimensions.imgTop = newImgDraw.top;\n viewDimensions.imgWidth = newImgDraw.width;\n viewDimensions.imgHeight = newImgDraw.height;\n viewDimensions.cursorStart = 'default';\n viewDimensions.isResizing = false;\n setIsLoading(false);\n }, [aspectRatio, canvasHeight, canvasWidth, cropHeight, cropWidth, onError]);\n\n // Mouse handlers //\n const handleCrop = useCallback(async (cropArea: IDrawArea) => {\n setIsLoading(true);\n if (!canvasRef || !canvasRef.current || !imgRef) { return; }\n\n const newImage = imgRef.current;\n if (!newImage) { return; }\n\n const canvas = canvasRef.current;\n if (!canvas) { return; }\n\n const ctx = canvas.getContext(\"2d\");\n // ctx.imageSmoothingEnabled = false; </// not sure required\n const cropImageData = ctx?.getImageData(cropArea.left, cropArea.top, cropArea.width, cropArea.height);\n if (!cropImageData) { return; }\n\n const canvasCropped = document.createElement('canvas');\n const cropContext = canvasCropped.getContext('2d');\n canvasCropped.width = cropArea.width;\n canvasCropped.height = cropArea.height;\n\n cropContext?.putImageData(cropImageData, 0, 0);\n const imgType = getImageType(newImage);\n const newImgUrl = canvasCropped.toDataURL(imgType);\n if (onCrop) {\n onCrop(newImgUrl, imgType);\n }\n }, [onCrop]);\n\n const handleMouseDown = useCallback((e) => {\n e.preventDefault();\n e.stopPropagation();\n if (!cropRef) { return; }\n if (!isLeftMouseButton(e)) { return; }\n\n const rect = cropRef.current?.getBoundingClientRect();\n if (!rect) { return; }\n const { left, top, width, height } = rect;\n const [posX, posY] = [e.clientX, e.clientY];\n let newCursorStyle: ICursorStyles;\n if (!isResizable) {\n newCursorStyle = 'move';\n } else {\n newCursorStyle = updateCursorStyle(left, top, width, height, posX, posY);\n }\n\n viewDimensions.mouseStartX = posX;\n viewDimensions.mouseStartY = posY;\n viewDimensions.cursorStart = newCursorStyle;\n viewDimensions.isResizing = true;\n }, [isResizable]);\n\n const handleMouseUp = useCallback((e) => {\n e.preventDefault();\n e.stopPropagation();\n if (!viewDimensions.isResizing) { return; }\n viewDimensions.isResizing = false;\n }, []);\n\n const updateSelect = useCallback((left, top, width, height) => {\n if (!cropRef.current) { return; }\n cropRef.current.style.left = `${left}px`;\n cropRef.current.style.top = `${top}px`;\n cropRef.current.style.width = `${width}px`;\n cropRef.current.style.height = `${height}px`;\n\n }, []);\n\n const handleMouseMove = useCallback((e) => {\n e.preventDefault();\n e.stopPropagation();\n if (!cropRef) { return; }\n if (!viewDimensions.isResizing) { return; }\n\n const rect = cropRef.current?.getBoundingClientRect();\n if (!rect) { return; }\n\n const [posX, posY] = [e.clientX, e.clientY];\n const newDimensions = aspectRatio\n ? updateCropWithAspect(viewDimensions, posX, posY, aspectRatio)\n : updateCropValues(viewDimensions, posX, posY);\n\n if (!newDimensions.isUpdateRequired) { return; }\n\n viewDimensions.cropTop = newDimensions.top;\n viewDimensions.cropLeft = newDimensions.left;\n viewDimensions.cropWidth = newDimensions.width;\n viewDimensions.cropHeight = newDimensions.height;\n viewDimensions.mouseStartX = posX;\n viewDimensions.mouseStartY = posY;\n\n updateSelect(viewDimensions.cropLeft,\n viewDimensions.cropTop,\n viewDimensions.cropWidth,\n viewDimensions.cropHeight);\n\n }, [aspectRatio, updateSelect]);\n\n const handleOnMouseLeave = useCallback((e) => {\n e.preventDefault();\n e.stopPropagation();\n if (!viewDimensions.isResizing) { return; }\n viewDimensions.isResizing = false;\n }, []);\n //End of Mouse handlers//\n\n return (\n ReactDom.createPortal(\n <Container>\n <InnerContainer>\n <ToolHeader>\n <TextGroup>\n <Icon icon='Crop' size={20} color='mono' />\n {title}\n </TextGroup>\n <ButtonsGroup>\n <Button\n design='secondary'\n size='small'\n onClick={onClose}\n >\n {cancelBtnTxt}\n </Button>\n <ButtonWithLoading\n loading={isLoading}\n size='small'\n onClick={() => handleCrop({\n left: viewDimensions.cropLeft,\n top: viewDimensions.cropTop,\n width: viewDimensions.cropWidth,\n height: viewDimensions.cropHeight\n })}\n > {cropBtnTxt}\n </ButtonWithLoading>\n </ButtonsGroup>\n </ToolHeader>\n <PreviewArea\n canvasHeight={canvasHeight}\n canvasWidth={canvasWidth}\n onMouseUp={handleMouseUp}\n onMouseMove={handleMouseMove}\n onMouseLeave={handleOnMouseLeave}\n >\n <HiddenImage ref={imgRef} src={imgUrl} onLoad={drawImgOnCanvas} crossOrigin='anonymous' />\n <canvas\n ref={canvasRef}\n width={`${canvasWidth}px`}\n height={`${canvasHeight}px`}\n />\n <SelectedArea\n ref={cropRef}\n onMouseDown={handleMouseDown}\n {...{\n cropLeft: viewDimensions.cropLeft,\n cropTop: viewDimensions.cropTop,\n cropWidth: viewDimensions.cropWidth,\n cropHeight: viewDimensions.cropHeight,\n isResizing: viewDimensions.isResizing,\n }}\n >\n <CropArea\n {...{ isResizable }}\n hasAspectRatio={aspectRatio ? true : false}\n />\n </SelectedArea>\n </PreviewArea>\n </InnerContainer>\n </Container>, document.body)\n );\n};\n\nexport default CropTool;","import React, { useState, useCallback, useEffect } from 'react';\nimport styled, { css } from 'styled-components';\nimport InputFileButton from '../atoms/InputFileButton';\nimport ButtonWithIcon from '../atoms/ButtonWithIcon';\nimport DropArea from '../atoms/DropArea';\nimport CropTool from '../molecules/CropTool';\nimport { AvatarPlaceholder } from '../../svg';\nimport Label from '../atoms/Label';\nimport { isValidImage } from '../../helpers';\n\n/** TODO update to useReduce for better state management*/\n\nconst CROP_HEIGHT_AREA = 500;\nconst CROP_WIDTH_AREA = 475;\nconst CANVAS_HEIGHT = 490;\nconst CANVAS_WIDTH = 460;\n\n// 0.95\nconst ratio = Math.round((CROP_WIDTH_AREA / CROP_HEIGHT_AREA) * 100) / 100;\n\nconst PHOTO_HEIGHT = `150px`;\nconst PHOTO_WIDTH = `142px`;\n\nconst Container = styled.div`\n position: relative;\n width: ${PHOTO_WIDTH};\n ${({ theme }) => css`\n font-family: ${theme.fontFamily.ui};\n `}\n button {\n width: 100%;\n }\n`;\n\nconst PreviewImageGroup = styled.div`\n position: relative;\n margin-bottom: 17px;\n height: ${PHOTO_HEIGHT};\n width: ${PHOTO_WIDTH};\n`;\n\nconst PhotoContainerStyle = css`\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n border-radius: 5px;\n background-color: hsl(0, 0%, 90%);\n`;\nconst PreviewImage = styled.img`\n ${PhotoContainerStyle}\n object-fit: cover;\n`;\n\nconst PlaceholderText = styled.div`\n color: hsl(207, 5%, 57%);\n font-size: 14px;\n`;\n\nconst NoPhoto = styled.div`\n ${PhotoContainerStyle}\n padding-top: 15px;\n ${PlaceholderText} {\n margin-top: 18px;\n }\n`;\n\nconst StyledInputFileButton = styled(InputFileButton)`\n width: 100%;\n`;\n\nconst ButtonsWrapper = styled.div`\n display: flex;\n flex-direction: column;\n\n button {\n margin-bottom: 10px;\n }\n\n`;\n\ninterface IAvatar {\n title?: string\n photoText?: string\n buttonText?: string\n buttonTextReplace?: string\n cropToolTitle?: string\n cropToolCancelTxt?: string\n cropToolConfirmTxt?: string\n uploaderCropText?: string\n deletePhotoText?: string\n currentImg?: string\n hasCrop?: boolean\n onAvatarUpdate?: (imgFile: File) => void\n onError?: (msg: string) => void\n onRemove?: () => void\n}\n\nconst AvatarUploader: React.FC<IAvatar> = ({\n title = 'Photograph',\n photoText = 'Drop Photo',\n buttonText = 'Select File',\n buttonTextReplace = 'Replace Photo',\n uploaderCropText = 'Crop Image',\n deletePhotoText = 'Remove',\n cropToolTitle,\n cropToolCancelTxt,\n cropToolConfirmTxt,\n currentImg,\n hasCrop = true,\n onAvatarUpdate = () => { },\n onError = () => { },\n onRemove = () => { }\n}) => {\n\n const [avatarImg, setAvatarImg] = useState(currentImg);\n const [cropImg, setCropImg] = useState('');\n const [isCropOpen, setIsCropOpen] = useState(false);\n\n const handleCrop = useCallback(async (newFileUrl: string, fileType: string) => {\n setAvatarImg(newFileUrl);\n const newFile = await fetch(\n newFileUrl).then(r => r.blob()).then(blobFile => new File([blobFile], \"newAvatar\", { type: fileType })\n );\n\n onAvatarUpdate(newFile);\n\n setIsCropOpen(false);\n }, [onAvatarUpdate]);\n\n const handleCropClose = useCallback(() => {\n setIsCropOpen(false);\n setCropImg('');\n URL.revokeObjectURL(cropImg);\n }, [cropImg]);\n\n const handleFileUpload = useCallback((newFiles: FileList) => {\n if (newFiles.length === 1) {\n if (!isValidImage(newFiles[0])) {\n onError('Please upload only jpeg and png file');\n return;\n }\n const prevImg = URL.createObjectURL(newFiles[0]);\n\n if (hasCrop) {\n setCropImg(prevImg);\n setIsCropOpen(true);\n } else {\n onAvatarUpdate(newFiles[0]);\n setAvatarImg(prevImg);\n }\n\n } else {\n onError('Drop only one file');\n }\n }, [hasCrop, onError, onAvatarUpdate]);\n\n const handleEdit = useCallback((fileUrl: string) => {\n setCropImg(fileUrl);\n setIsCropOpen(true);\n }, []);\n\n useEffect(() => {\n setAvatarImg(currentImg);\n return () => {\n setAvatarImg('');\n };\n }, [currentImg]);\n\n const handleRemove = useCallback(() => {\n setAvatarImg('');\n onRemove();\n }, [onRemove]);\n\n return (\n <Container>\n <Label labelText={title} htmlFor='avatar-upload' />\n <PreviewImageGroup>\n {avatarImg\n ? <PreviewImage src={avatarImg} alt='avatar image' crossOrigin='anonymous' />\n : (\n <NoPhoto>\n <AvatarPlaceholder />\n <PlaceholderText>{photoText}</PlaceholderText>\n </NoPhoto>\n )}\n {((currentImg && (!hasCrop)) || !currentImg) && <DropArea height={PHOTO_HEIGHT} dropCallback={handleFileUpload} />}\n </PreviewImageGroup>\n {avatarImg\n ? (\n <ButtonsWrapper>\n {hasCrop\n ? <ButtonWithIcon icon='Crop' design='secondary' position='left' size='small' onClick={() => handleEdit(avatarImg)}>{uploaderCropText}</ButtonWithIcon>\n : <StyledInputFileButton\n id='avatar-upload'\n text={buttonTextReplace}\n buttonSize='small'\n buttonDesign='secondary'\n accept='image/*'\n inputCallback={handleFileUpload}\n />}\n <ButtonWithIcon icon='Delete' design='secondary' position='left' size='small' onClick={handleRemove}>{deletePhotoText}</ButtonWithIcon>\n </ButtonsWrapper>\n )\n : <StyledInputFileButton\n id='avatar-upload'\n text={buttonText}\n buttonSize='small'\n accept='image/*'\n inputCallback={handleFileUpload}\n />}\n {isCropOpen && hasCrop\n ? <CropTool\n imgUrl={cropImg}\n onCrop={handleCrop}\n onClose={handleCropClose}\n onError={onError}\n canvasHeight={CANVAS_HEIGHT}\n canvasWidth={CANVAS_WIDTH}\n cropHeight={CROP_WIDTH_AREA}\n cropWidth={CROP_HEIGHT_AREA}\n aspectRatio={ratio}\n title={cropToolTitle}\n cancelBtnTxt={cropToolCancelTxt}\n cropBtnTxt={cropToolConfirmTxt}\n isResizable\n />\n : null}\n </Container>\n );\n};\n\nexport default AvatarUploader;","import React, {Fragment} from 'react';\nimport styled from 'styled-components';\nimport Icon, { IconWrapper } from '../../Icons/Icon';\n\nconst Container = styled.div`\n display: flex;\n align-items: center;\n margin-bottom: 27px;\n ${IconWrapper} {\n display: flex;\n align-items: center;\n }\n`;\n\nconst PlusIcon = styled(Icon)``;\n\nconst PlusIconWrapper = styled.div`\n margin: 0 30px;\n ${IconWrapper}{\n transform: rotate(45deg);\n [stroke]{\n stroke: hsl(205, 22%, 66%);\n }\n }\n`;\n\ninterface IBigIconsSummary {\n icons: string[]\n color?: ISvgIcons['color']\n size?: number,\n weight?: 'light' | 'regular' | 'heavy' | 'strong'\n}\n\nconst BigIconsSummary: React.FC<IBigIconsSummary> = ({\n icons,\n color = 'dimmed',\n size = 72,\n weight='light',\n ...props\n}) => {\n return (\n <Container {...props}>\n {icons.map((icon, index) => {\n return (\n <Fragment key={`type-upload-${icon}}`}>\n {(index !== 0) && <PlusIconWrapper><PlusIcon icon='CloseCompact' size={22} /></PlusIconWrapper>}\n <Icon icon={icon} {...{color, size, weight}} />\n </Fragment>\n );\n })}\n </Container>\n );\n};\n\nexport default BigIconsSummary;","import React, { Fragment, ReactElement, useCallback, useState } from 'react';\nimport styled from 'styled-components';\nimport BigIconsSummary from '../../Misc/atoms/BigIconsSummary';\nimport DropArea from '../atoms/DropArea';\nimport InputFileButton from '../atoms/InputFileButton';\n\nconst Container = styled.div`\n font-family: ${({ theme }) => theme.fontFamily.ui};\n`;\n\nconst StyledDropArea = styled(DropArea)`\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n`;\n\nconst InputButtonWrapper = styled.div`\n z-index: 99;\n margin-top: 20px;\n`;\n\nconst FilesUploadGroup = styled.div<{ height?: string, hasFiles: boolean }>`\n padding: ${({ hasFiles }) => hasFiles ? '26px 0 20px 0' : '65px 0 42px 0'};\n display: flex;\n flex-direction: column;\n align-items: center;\n border-radius: 5px;\n position: relative;\n ${({theme}) => theme.styles.filters.dropdownContainer.background};\n`;\n\nconst Title = styled.div`\n color: hsl(208, 8%, 38%);\n font-size: 20px;\n`;\n\nconst Description = styled.div`\n font-size: 14px;\n line-height: 2.14;\n text-align: center;\n color: hsl(207, 5%, 57%);\n margin-top: 10px;\n max-width: 386px;\n`;\n\nconst getUpdateFiles = (newFiles: FileList, files: FileList | null, allowedFileTypes?: string[]): IUploadedFiles => {\n\n // creates a newFiles variable to prevent errors with input\n const newFilesTransfer = new DataTransfer();\n const rejectedFilesTransfer = new DataTransfer();\n\n for (let index = 0; index < newFiles.length; index++) {\n\n const isCorrectType = (allowedFileTypes === undefined) || (allowedFileTypes.length === 0) ? true : allowedFileTypes.includes(newFiles[index].type);\n if (isCorrectType) {\n newFilesTransfer.items.add(newFiles[index]);\n } else {\n rejectedFilesTransfer.items.add(newFiles[index]);\n }\n }\n\n if (files === null) {\n const result: IUploadedFiles = { goodFiles: newFilesTransfer.files, rejectedFiles: rejectedFilesTransfer.files };\n return result;\n }\n\n const updatedFilesTransfer = new DataTransfer();\n const fileNamesSet = new Set();\n\n for (let index = 0; index < files.length; index++) {\n updatedFilesTransfer.items.add(files[index]);\n const name = files[index].name;\n fileNamesSet.add(name);\n }\n\n for (let index = 0; index < newFilesTransfer.files.length; index++) {\n\n const isAlready = fileNamesSet.has(newFilesTransfer.files[index].name);\n const isCorrectType = (allowedFileTypes === undefined) || (allowedFileTypes.length === 0) ? true : allowedFileTypes.includes(newFiles[index].type);\n\n if (isAlready || !isCorrectType) {\n rejectedFilesTransfer.items.add(newFiles[index]);\n } else {\n updatedFilesTransfer.items.add(newFilesTransfer.files[index]);\n }\n }\n const result: IUploadedFiles = { goodFiles: updatedFilesTransfer.files, rejectedFiles: rejectedFilesTransfer.files };\n\n return result;\n};\n\ninterface IUploadedFiles {\n goodFiles: FileList\n rejectedFiles: FileList\n}\n\ninterface IAreaUploaderManager {\n title?: string\n description?: string\n fileIcons?: string[]\n selectFilesText?: string\n addMoreFilesText?: string\n allowedFileTypes?: string[]\n customComponent?: ReactElement\n onChangeCallback?: (goodFiles: FileList, rejectedFiles: FileList) => void\n}\n\nconst AreaUploadManager: React.FC<IAreaUploaderManager> = ({\n title = 'Select Files',\n description,\n fileIcons,\n selectFilesText = 'Select Files',\n addMoreFilesText = 'Add More Files',\n allowedFileTypes,\n customComponent,\n onChangeCallback = () => { },\n}) => {\n\n const [files, setFiles] = useState<FileList | null>(null);\n\n const handleFiles = useCallback((newFiles: FileList) => {\n console.log('files received', newFiles);\n\n if (newFiles === null) {\n return;\n }\n const { goodFiles, rejectedFiles } = getUpdateFiles(newFiles, files, allowedFileTypes);\n setFiles(goodFiles);\n onChangeCallback(goodFiles, rejectedFiles);\n\n }, [files, allowedFileTypes, onChangeCallback]);\n\n return (\n <Container>\n <FilesUploadGroup hasFiles={files !== null}>\n <StyledDropArea dropCallback={handleFiles} />\n {\n customComponent\n ? customComponent\n : (\n <Fragment>\n {fileIcons && <BigIconsSummary icons={fileIcons} />}\n <Title>{title}</Title>\n {files === null && <Description>{description}</Description>}\n </Fragment>\n )\n }\n\n <InputButtonWrapper>\n <InputFileButton\n buttonSize='small'\n text={files !== null ? addMoreFilesText : selectFilesText}\n inputCallback={handleFiles}\n multiple\n buttonDesign={files !== null ? 'secondary' : 'primary'}\n />\n </InputButtonWrapper>\n </FilesUploadGroup>\n </Container>\n );\n};\n\nexport default AreaUploadManager;","import React, { FormHTMLAttributes } from 'react';\nimport styled, { css } from 'styled-components';\nimport { StyledLabel } from './atoms/Label';\n\nconst FormContainer = styled.form<{spacing: string}>`\n ${({spacing})=> spacing && css`\n & > ${StyledLabel} {\n margin-bottom: ${spacing};\n }\n `}\n`;\n\ninterface OwnProps {\n spacing?: string;\n}\n\ntype Props = OwnProps & FormHTMLAttributes<HTMLFormElement>\n\nconst Form : React.FC<Props> = ({ children, spacing = '45px;' ,...props }) => {\n return (\n <FormContainer spacing={spacing} {...props}>\n {children}\n </FormContainer>\n );\n};\n\nexport default Form;","import React, { useCallback, useEffect, useState } from 'react';\nimport styled, { css } from 'styled-components';\nimport {endOfDay, format,isEqual,min,set } from 'date-fns';\n\nimport Icon from '../../Icons/Icon';\n\nconst Container = styled.div<{hide:boolean}>`\n display: flex;\n flex-direction: column;\n\n ${({hide}) => hide && css`\n display: none;\n `}\n`;\n\nconst Label = styled.label`\n ${({theme}) => css`\n font-family: ${theme.fontFamily.ui};\n ${({theme})=> theme.typography.filters.datepicker.metaHeader.default};\n `}\n padding: 12px;\n border-bottom: ${({theme}) => theme.colors.divider} 1px solid;\n\n // ${({theme})=> theme.typography.filters.datepicker.metaHeader.active};\n\n`;\n\nconst Item = styled.div`\n padding: 12px;\n display: flex;\n justify-content: left;\n`;\n\nconst IconWrap = styled.div`\n flex: 0 0 40px;\n padding-top: 2px;\n`;\n\nconst Input = styled.input<{ readOnly? : boolean }>`\n ${({theme}) => css`\n font-family: ${theme.fontFamily.data};\n background-color: ${theme.styles.form.input.default.normal.backgroundColor};\n `}\n\n ${({theme})=> theme.typography.filters.value};\n\n width: 100%;\n border: none;\n border: transparent 1px solid;\n outline: none;\n flex: 1;\n justify-content: space-between;\n border-radius: 3px;\n\n &:focus, &:hover {\n border-color: blue;\n }\n\n ${({readOnly}) => readOnly && css`\n border-color: transparent;\n `}\n`;\n\nconst TimeColon = styled.div`\n flex: 0 0 20px;\n`;\n\nconst InputWrap = styled.div`\n display: flex;\n flex: 1;\n box-sizing: border-box;\n border-radius: 3px;\n\n &:focus-within {\n\n background: ${({theme}) => theme.colors.menu.passive};\n box-shadow: 0px 0px 0px 5px ${({theme}) => theme.colors.menu.passive};\n\n ${Input} {\n border-color: ${({theme}) => theme.colors.divider};\n }\n\n ${TimeColon}{\n color: ${({theme}) => theme.colors.pureTop};\n text-align: center;\n }\n }\n`;\n\n\n\ninterface IProps {\n title: string\n hasDate: boolean\n hasTime: boolean\n date?: Date\n setDateCallback?: (date: Date) => void\n setTimeCallback?: (date: Date) => void\n allowAfterMidnight?: boolean,\n}\n\nconst DateTimeBlock : React.FC<IProps> = ({\n allowAfterMidnight = false,\n title,\n hasDate,\n hasTime,\n date = new Date(),\n setDateCallback = ()=>{},\n}) => {\n\n\n const [displayHours, setDisplayHours] = useState<string>(format(date, \"mm\"));\n const [displayMinutes, setDisplayMinutes] = useState<string>(format(date,'HH'));\n\n const setDateHours = useCallback(({target: {value}}: React.ChangeEvent<HTMLInputElement>) => {\n setDateCallback(\n min([\n endOfDay(date),\n set(date, {\n hours: Number(value),\n minutes: Number(displayMinutes),\n seconds: 0,\n milliseconds: 0\n })\n ])\n );\n }, [date, displayMinutes, setDateCallback]);\n\n const setDateMinutes = useCallback(({target: {value}}: React.ChangeEvent<HTMLInputElement>) => {\n setDateCallback(\n min([\n endOfDay(date),\n set(date, {\n hours: displayHours === '24' ? 23 : Number(displayHours),\n minutes: Number(value) % 60,\n seconds: 0,\n milliseconds: 0\n })\n ])\n );\n }, [date, displayHours, setDateCallback]);\n\n useEffect(()=>{\n if(allowAfterMidnight && isEqual(date, endOfDay(date))){\n setDisplayHours('24');\n setDisplayMinutes('00');\n } else {\n setDisplayMinutes(format(date, 'mm'));\n setDisplayHours(format(date,'HH'));\n }\n },[date, allowAfterMidnight]);\n\n return (\n <Container hide={!hasDate && !hasTime}>\n <Label>{title}</Label>\n\n {hasDate && (\n <Item>\n <IconWrap>\n <Icon icon='Date' color='dimmed' size={14} weight='light' />\n </IconWrap>\n <InputWrap>\n <Input type='text' readOnly value={format(date, \"yyyy/MM/dd\")} />\n </InputWrap>\n </Item>\n )}\n\n {hasTime && (\n <Item>\n <IconWrap>\n <Icon icon='Time' color='dimmed' size={14} weight='light' />\n </IconWrap>\n <InputWrap>\n <Input name='hours' type='number' min='0' max={allowAfterMidnight ? 24: 23} value={displayHours} onChange={setDateHours} />\n <TimeColon>:</TimeColon>\n <Input name='minutes' type='number' min='0' max='59' value={displayMinutes} onChange={setDateMinutes} />\n </InputWrap>\n </Item>\n )}\n\n </Container>\n );\n};\n\n\n\nexport default DateTimeBlock;\n\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport styled, { css } from 'styled-components';\nimport Icon from '../../Icons/Icon';\nimport DateTimeBlock from '../atoms/DateTimeBlock';\n\nimport { format, startOfMonth, endOfMonth, eachDayOfInterval, isAfter, eachWeekOfInterval, addMonths, endOfWeek, intervalToDuration, isSameMonth, isSameDay, isToday, startOfDay, endOfDay, isWithinInterval, add, set } from 'date-fns';\nimport { ja, enUS } from 'date-fns/locale';\n\n/**\n * Convert a single days duration to an interval.\n * @param day The day to convert to an interval\n */\n\nconst initializeInterval = (day: Date): DateInterval => {\n return {\n start: set(day, { seconds: 0, milliseconds: 0 }),\n end: endOfDay(day)\n };\n};\n\nconst TODAY = new Date();\nconst TODAY_INTERVAL: DateInterval = initializeInterval(startOfDay(new Date()));\n\ntype CellStates = \"off\" | \"single\" | \"start\" | \"end\" | \"inside\" | \"hover\" | \"insideHover\";\ntype DateMode = \"single\" | \"interval\";\ntype TimeMode = \"off\" | \"single\" | \"interval\";\n\n// interface TimeProperties {\n// hours: number\n// minutes: number\n// seconds: number\n// milliseconds: number\n// }\n\n// interface TimeRange {\n// start: TimeProperties\n// end: TimeProperties\n// }\n\nconst Container = styled.div`\n display: flex;\n`;\n\nconst DateTimeArea = styled.div`\n border-right: ${({ theme }) => theme.colors.divider} 1px solid;\n width: 170px;\n display: flex;\n flex-direction: column;\n`;\n\nconst TimeZoneOption = styled.div`\n border-top: ${({ theme }) => theme.colors.divider} 1px solid;\n margin-top: auto;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 10px;\n box-sizing: border-box;\n`;\n\nconst TimeZoneLabel = styled.div`\n ${({ theme }) => css`\n font-family: ${theme.fontFamily.ui};\n ${theme.typography.filters.subOption.label};\n `}\n\n`;\nconst TimeZoneValue = styled.div`\n ${({ theme }) => css`\n font-family: ${theme.fontFamily.data};\n ${theme.typography.filters.subOption.value};\n `}\n`;\n\nconst CalendarArea = styled.div`\n user-select: none;\n`;\n\nconst CalendarHeader = styled.div`\n display: flex;\n height: 70px;\n border-bottom: ${({ theme }) => theme.colors.divider} 1px solid;\n text-align: center;\n`;\n\nconst CurrentMonth = styled.div`\n flex: 1;\n flex-direction: column;\n display: flex;\n align-items: center;\n justify-content: center;\n\n ${({ theme }) => theme.typography.filters.datepicker.focusedMonth};\n span {\n display: block;\n flex: 0;\n ${({ theme }) => theme.typography.filters.datepicker.focusedYear};\n }\n`;\n\nconst IconWrap = styled.div``;\n\nconst PaginateMonth = styled.button`\n cursor: pointer;\n flex: 0 0 90px;\n\n border: none;\n background: transparent;\n outline: none;\n\n ${({ theme }) => theme.typography.filters.datepicker.monthLink.default};\n\n display: flex;\n justify-content: space-around;\n align-items: center;\n\n &:hover {\n background: transparent;\n ${({ theme }) => css`\n background: ${theme.colors.menu.active};\n ${theme.typography.filters.datepicker.monthLink.hover}\n `};\n\n ${IconWrap}{\n [stroke]{\n stroke: ${({ theme }) => theme.colors.pureBase};\n }\n }\n }\n\n`;\n\nconst CalBody = styled.div`\n padding: 5px 0;\n`;\n\nconst CalRow = styled.div`\n display: grid;\n grid-template-columns: repeat(7, 40px);\n height: 40px;\n box-sizing: border-box;\n\n padding: 0 10px;\n`;\n\nconst CalHRow = styled(CalRow)`\n border-bottom: ${({ theme }) => theme.colors.divider} 1px solid;\n`;\n\nconst CalCell = styled.div`\n\n display: flex;\n text-align: center;\n justify-content: center;\n align-items: center;\n\n border-radius: 5px;\n ${({ theme }) => theme.typography.filters.datepicker.calendar.default};\n\n ${({ theme }) => css`\n font-family: ${theme.fontFamily.data};\n `}\n\n`;\n\nconst CalHCell = styled(CalCell)`\n ${({ theme }) => theme.typography.filters.datepicker.calendar.header};\n`;\n\nconst CalCellB = styled(CalCell) <{ thisMonth?: boolean, isToday?: boolean, state?: CellStates }>`\n cursor: pointer;\n position: relative;\n\n ${({ thisMonth }) => !thisMonth && css`\n ${({ theme }) => theme.typography.filters.datepicker.calendar.otherMonth};\n `}\n\n ${({ isToday }) => isToday && css`\n border: 2px solid ${({ theme }) => theme.colors.menu.passive};\n `}\n\n ${({ state, theme }) => (state === 'single' || state === 'start' || state === 'end') && css`\n background: ${theme.colors.menu.active};\n ${theme.typography.filters.datepicker.calendar.active};\n `}\n\n ${({ state }) => (state === 'start') && css`\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n `}\n\n ${({ state }) => (state === 'end') && css`\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n `}\n\n ${({ state }) => (state === 'insideHover') && css`\n background: ${({ theme }) => theme.colors.divider} !important;\n `}\n\n ${({ state }) => (state === 'inside') && css`\n background: ${({ theme }) => theme.colors.menu.passive};\n border-radius: 0;\n opacity: 1;\n\n &:nth-child(7n+1), &:nth-child(7n){\n &::after {\n background: ${({ theme }) => theme.colors.menu.passive};\n display: block;\n content: '';\n position: absolute;\n left: -10px;\n width: 10px;\n top: 0;\n height: 40px;\n }\n }\n\n &:nth-child(7n)::after {\n left: auto;\n right: -10px;\n }\n `}\n\n`;\n\nconst enDayGuide: string[] = [\n \"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"\n];\n\nconst jpDayGuide: string[] = ['日', '月', '火', '水', '木', '金', '土'];\n\nexport const isDateInterval = (value: any): value is DateInterval => {\n if (value === null || value === undefined) {\n return false;\n }\n\n if (value.start === null || value.start === undefined) {\n return false;\n }\n\n if (value.end === null || value.end === undefined) {\n return false;\n }\n\n return (value.start instanceof Date) && (value.end instanceof Date);\n};\n\nexport interface DateInterval {\n start: Date;\n end: Date;\n}\nexport interface IDatePicker {\n initialValue?: Date | DateInterval\n dateMode?: DateMode\n timeMode?: TimeMode\n hasEmptyValue?: boolean\n dateTimeTextUpper?: string\n dateTimeTextLower?: string\n timeZoneTitle?: string\n timeZoneValueTitle?: string\n updateCallback?: (data: DateInterval | Date) => void\n lang?: 'en' | 'ja'\n}\n\nconst DatePicker: React.FC<IDatePicker> = ({\n dateMode = 'interval',\n timeMode = 'interval',\n dateTimeTextUpper = 'From',\n dateTimeTextLower = 'To',\n timeZoneTitle = 'Timezone',\n timeZoneValueTitle = 'JST',\n hasEmptyValue = false,\n updateCallback = () => { },\n initialValue,\n lang = 'en'\n}) => {\n\n // TODO: Have a function to output tidied up data for the configuration.\n\n const [selectedRange, setSelectedRange] = useState<DateInterval | null>(getInitialValue(hasEmptyValue, initialValue));\n const [focusedMonth, setFocusedMonth] = useState(selectedRange === null ? TODAY : selectedRange.start);\n const [targetedDate, setTargetedDate] = useState<'start' | 'end' | 'done'>('start');\n const [weeksOfMonth, setWeeksOfMonth] = useState<Date[]>([]);\n const isInitialMount = useRef(true);\n\n const dayGuide = lang === 'ja' ? jpDayGuide : enDayGuide;\n\n useEffect(() => {\n if (isInitialMount.current) {\n isInitialMount.current = false;\n } else {\n const now = new Date();\n setSelectedRange(initializeInterval(startOfDay(now)));\n setFocusedMonth(now);\n }\n\n }, [dateMode, timeMode]);\n\n useEffect(() => {\n setWeeksOfMonth(eachWeekOfInterval({\n start: startOfMonth(focusedMonth),\n end: endOfMonth(focusedMonth)\n }));\n }, [focusedMonth]);\n\n useEffect(() => {\n if (selectedRange !== null) {\n updateCallback((dateMode === 'interval' || timeMode === 'interval') ? selectedRange : selectedRange.start);\n }\n }, [dateMode, selectedRange, timeMode, updateCallback]);\n\n /**\n * Handler for updating picked dates when a calendar day has been selected.\n * @param day The day of the cell that has been clicked / actioned.\n */\n const onCellClick = useCallback((day: Date) => {\n\n // The first click will initialize the range when empty is valid\n const validRange = selectedRange ? selectedRange : TODAY_INTERVAL;\n\n if (dateMode === 'single') {\n\n // === Single Mode ===\n const start = updateDay(validRange.start, day);\n const end = updateDay(validRange.end, day);\n setSelectedRange({\n start,\n end\n });\n } else {\n\n // === Interval Mode ===\n // Setting the interval end (assuming it's later than the start).\n if (targetedDate === 'end' && isAfter(day, validRange.start)) {\n const end = updateDay(validRange.end, day);\n setSelectedRange({\n ...validRange,\n end\n });\n\n setTargetedDate('done');\n\n // For first interaction || setting the end date correctly || if completed and restarting.\n } else if (targetedDate === 'start' || targetedDate === 'end' || targetedDate === 'done') {\n\n const start = updateDay(validRange.start, day);\n const end = updateDay(validRange.end, day);\n setSelectedRange({\n start,\n end\n });\n setTargetedDate('end');\n\n }\n }\n }, [dateMode, selectedRange, targetedDate]);\n\n\n const updateStartDate = useCallback((start: Date) => {\n const { end } = selectedRange ? selectedRange : TODAY_INTERVAL;\n if (isAfter(add(start, { minutes: 1 }), end)) return;\n setSelectedRange({ start, end });\n }, [selectedRange]);\n\n const updateEndDate = useCallback((end: Date) => {\n const { start } = selectedRange ? selectedRange : TODAY_INTERVAL;\n if (isAfter(add(start, { minutes: 1 }), end)) return;\n setSelectedRange({ start, end });\n }, [selectedRange]);\n\n return (\n <Container>\n\n <DateTimeArea>\n <DateTimeBlock title={dateTimeTextUpper} hasDate hasTime={timeMode !== 'off'} date={selectedRange ? selectedRange.start : TODAY_INTERVAL.start} setDateCallback={updateStartDate} />\n <DateTimeBlock title={dateTimeTextLower} hasDate={dateMode === 'interval'} hasTime={timeMode === 'interval'} date={selectedRange ? selectedRange.end : TODAY_INTERVAL.end} allowAfterMidnight setDateCallback={updateEndDate} />\n\n <TimeZoneOption>\n <TimeZoneLabel>{timeZoneTitle}</TimeZoneLabel>\n <TimeZoneValue>{timeZoneValueTitle}</TimeZoneValue>\n </TimeZoneOption>\n\n </DateTimeArea>\n\n <CalendarArea>\n <CalendarHeader>\n\n <PaginateMonth type='button' onClick={() => setFocusedMonth(addMonths(focusedMonth, -1))}>\n <IconWrap><Icon icon='Left' color='dimmed' size={10} /></IconWrap>\n {format(addMonths(focusedMonth, -1), \"MMM\", { locale: lang === 'ja' ? ja : enUS })}\n </PaginateMonth>\n\n <CurrentMonth>\n <span>{format(focusedMonth, \"yyyy\")}</span>\n {format(focusedMonth, \"MMMM\", { locale: lang === 'ja' ? ja : enUS })}\n </CurrentMonth>\n\n <PaginateMonth type='button' onClick={() => setFocusedMonth(addMonths(focusedMonth, 1))}>\n {format(addMonths(focusedMonth, 1), \"MMM\", { locale: lang === 'ja' ? ja : enUS })}\n <IconWrap><Icon icon='Right' color='dimmed' size={10} /></IconWrap>\n </PaginateMonth>\n\n </CalendarHeader>\n\n <CalHRow>\n {dayGuide.map((day, index) => {\n return <CalHCell key={index}>{day}</CalHCell>;\n })}\n </CalHRow>\n\n <CalBody>\n {weeksOfMonth.map((week, index) => {\n const days = eachDayOfInterval({\n start: week,\n end: endOfWeek(week)\n });\n\n return (\n <CalRow key={index}>\n {days.map((day, index) => {\n return <CalCellB key={index} onClick={() => onCellClick(day)} state={cellState(day, selectedRange)} thisMonth={isSameMonth(day, focusedMonth)} isToday={isToday(day)}>{format(day, \"d\")}</CalCellB>;\n })}\n </CalRow>\n );\n })}\n </CalBody>\n\n </CalendarArea>\n\n\n </Container>\n );\n\n};\n\nexport default DatePicker;\n\n/**\n * Used to work out the state of the calendar cell in regards to selection or position in\n * the date range.\n * @param day Date - The date of the cell in the calendar.\n * @param interval Interval - The date range that is active in the calendar.\n */\nconst cellState = (day: Date, interval: Interval | null, _hoverDate?: Date): CellStates => {\n\n let state: CellStates = \"off\";\n let isInsideInterval = false;\n\n if (interval === null) {\n return state;\n }\n\n const singleDayRange: boolean = intervalToDuration(interval).days === 0;\n\n try {\n isInsideInterval = isWithinInterval(day, interval);\n } catch (error) {\n isInsideInterval = false;\n console.log('wrong interval in datepicker', error);\n }\n\n if (isInsideInterval || isSameDay(interval.start, day)) {\n\n if (singleDayRange) {\n state = \"single\";\n } else if (isSameDay(interval.start, day)) {\n state = \"start\";\n } else if (isSameDay(interval.end, day)) {\n state = \"end\";\n } else {\n state = \"inside\";\n }\n }\n\n return state;\n};\n\nconst updateDay = (date: Date, target: Date) => {\n\n const newDate = set(target, {\n hours: date.getHours(),\n minutes: date.getMinutes(),\n seconds: date.getSeconds(),\n milliseconds: date.getMilliseconds(),\n });\n\n return newDate;\n};\n\nconst getInitialValue = (hasEmptyValue: boolean, initialValue?: Date | DateInterval): DateInterval | null => {\n if (hasEmptyValue && initialValue === undefined) {\n return null;\n }\n\n const validInitial = initialValue ? initialValue : initializeInterval(startOfDay(new Date()));\n\n return (validInitial instanceof Date) ? initializeInterval(validInitial) : validInitial;\n};","import React, { HTMLAttributes } from 'react';\nimport styled from 'styled-components';\n\nconst Container = styled.div<{ height?: string }>`\n\n ${({theme}) => theme.styles.filters.dropdownContainer.background};\n\n border-radius: 3px;\n position: relative;\n display: inline-flex;\n overflow: hidden;\n padding-top: 5px;\n\n &::before {\n ${({theme}) => theme.styles.filters.dropdownContainer.topBorder};\n content: '';\n\n display: block;\n height: 5px;\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n }\n\n`;\n\nconst Inner = styled.div`\n display: inline-flex;\n flex-direction: row;\n`;\n\ninterface IProps {\n height?: string\n}\n\ntype Props = IProps & HTMLAttributes<HTMLDivElement>\n\nconst FilterDropdownContainer : React.FC<Props> = ({children,...props}) => {\n return (\n <Container {...props}>\n <Inner>\n {children}\n </Inner>\n </Container>\n );\n};\n\nexport default FilterDropdownContainer;","import React, { ButtonHTMLAttributes } from 'react';\nimport styled, { css } from 'styled-components';\nimport { resetButtonStyles } from '../../common';\nimport Icon, { IconWrapper } from '../../Icons/Icon';\n\nconst FlipWrapper = styled.div<{ isSortAscending: boolean }>`\n ${({ isSortAscending }) => isSortAscending && css`\n transform: scaleY(-1);\n `};\n`;\n\nconst StyledButton = styled.button<{ isOpen?: boolean, hasFlipArrow?: boolean }>`\n ${resetButtonStyles};\n border-radius: 3px;\n height: 30px;\n\n ${({ theme: {styles, typography, animation}, theme }) => theme && css`\n\n ${styles.filters.filterButton.default};\n ${typography.filters.filterButton.default};\n\n font-family: ${theme.fontFamily.ui};\n transition: opacity ${theme.animation.speed.normal} ${theme.animation.easing.primary.inOut};\n\n ${IconWrapper} {\n padding: 0 9px;\n display: flex;\n align-items: center;\n [stroke]{\n stroke: ${theme.colors.icons.dimmed};\n }\n }\n\n &:hover:enabled {\n ${styles.filters.filterButton.hover};\n ${typography.filters.filterButton.hover};\n transition:\n background ${animation.speed.fast} ${animation.easing.primary.inOut},\n border ${animation.speed.fast} ${animation.easing.primary.inOut};\n }\n\n &:active:enabled {\n ${styles.filters.filterButton.active};\n ${typography.filters.filterButton.active};\n }\n\n &:hover:enabled, &:active:enabled {\n ${IconWrapper} {\n [stroke]{\n transition: stroke ${animation.speed.faster} ${animation.easing.primary.inOut};\n stroke: ${theme.colors.pureBase};\n }\n }\n }\n\n &:disabled {\n cursor: not-allowed;\n opacity: 50%;\n }\n`};\n\n ${({ theme, isOpen, hasFlipArrow }) => isOpen && hasFlipArrow && css`\n background-color: hsl(205, 100%, 72%);\n border: solid 1px hsl(205, 100%, 72%);\n color: ${theme.colors.icons.inverse};\n\n ${IconWrapper} {\n [stroke]{\n stroke: ${theme.colors.icons.inverse};\n }\n }\n `};\n`;\n\nconst InnerContainer = styled.div`\n display: flex;\n align-items: center;\n`;\n\nconst ButtonText = styled.div<{ hasFlipArrow: boolean }>`\n padding-right: ${({ hasFlipArrow }) => hasFlipArrow ? '3px' : '20px'};\n`;\n\ninterface OwnProps {\n icon: string\n hasFlipArrow?: boolean\n isSortAscending?: boolean\n isOpen?: boolean\n}\n\ntype IFilterButton = OwnProps & ButtonHTMLAttributes<HTMLButtonElement>;\n\nconst FilterButton: React.FC<IFilterButton> = ({\n icon,\n hasFlipArrow = false,\n isSortAscending = false,\n isOpen,\n children,\n ...props\n}) => {\n\n return (\n <StyledButton type='button' {...props} {...{ isOpen, hasFlipArrow }}>\n <InnerContainer>\n <FlipWrapper {...{ isSortAscending }}>\n <Icon\n icon={icon}\n size={12}\n weight='light'\n />\n </FlipWrapper>\n <ButtonText {...{ hasFlipArrow }}>{children}</ButtonText>\n {hasFlipArrow && <Icon icon={isOpen ? 'Up' : 'Down'} size={8} />}\n </InnerContainer>\n </StyledButton>\n );\n};\n\nexport default FilterButton;","import React from 'react';\nimport styled, { css } from 'styled-components';\nimport { CheckMark } from '../../svg';\nimport { IInputOptionsType } from '..';\nimport { dimensions } from '../../themes/common';\n\nconst Title = styled.div`\n font-family: ${({ theme }) => theme.fontFamily.data};\n display: block;\n color: hsl(0, 0%, 56%);\n font-size: 14px;\n font-weight: 500;\n margin-left: 12px;\n user-select: none;\n pointer-events: none;\n`;\n\nconst FakeCheckbox = styled.div`\n box-sizing: border-box;\n position: relative;\n width: 18px;\n height: 18px;\n border-radius: 5px;\n border-width: 2px;\n border-style: solid;\n`;\n\nconst FakeCheckboxInner = styled.div`\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n left: 0;\n box-sizing: border-box;\n`;\n\nconst CheckMarkWrapper = styled.div`\n position: absolute;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n svg {\n display: block;\n [stroke]{\n stroke: transparent;\n }\n [fill] {\n fill: ${({ theme }) => theme.colors.icons.inverse};\n }\n }\n`;\n\nconst FakeRadioButton = styled.div`\n position: relative;\n display: inline-block;\n width: 18px;\n height: 18px;\n user-select: none;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n border-width: 2px;\n border-style: solid;\n`;\n\nconst FakeInnerRadio = styled.div`\n width: 10px;\n height: 10px;\n border-radius: 50%;\n user-select: none;\n`;\n\nconst Container = styled.div<{ disabled: boolean, selected: boolean }>`\n display: flex;\n align-items: center;\n height: 100%;\n width: 100%;\n\n ${({ theme: { styles }, selected, disabled }) => styles && css`\n ${FakeCheckbox}, ${FakeRadioButton} {\n ${styles.form.checkbox.unchecked.default};\n }\n\n &:hover {\n cursor: pointer;\n ${Title} {\n color: ${styles.form.checkbox.checked.hover.backgroundColor};\n }\n\n ${FakeCheckbox} {\n ${styles.form.checkbox.unchecked.hover};\n }\n\n ${FakeRadioButton} {\n border-color: ${styles.form.checkbox.unchecked.hover.borderColor};\n }\n }\n\n ${selected && css`\n ${Title} {\n color: ${styles.form.checkbox.checked.default.backgroundColor};\n }\n ${FakeCheckbox} {\n ${styles.form.checkbox.checked.default};\n border: none;\n }\n\n ${FakeRadioButton} {\n border-color: ${styles.form.checkbox.checked.default.backgroundColor};\n ${FakeInnerRadio} {\n background-color: ${styles.form.checkbox.checked.default.backgroundColor};\n }\n }\n\n &:hover {\n ${FakeCheckbox}{\n ${styles.form.checkbox.checked.hover};\n }\n\n ${FakeRadioButton} {\n border-color: ${styles.form.checkbox.checked.hover.backgroundColor};\n ${FakeInnerRadio} {\n background-color: ${styles.form.checkbox.checked.hover.backgroundColor};\n }\n }\n }\n `};\n\n ${disabled && css`\n cursor: not-allowed;\n `};\n `};\n`;\n\ninterface IFilterOption {\n title: string\n value?: string | number\n optionType?: IInputOptionsType\n selected?: boolean\n disabled?: boolean\n onClick?: () => void\n}\n\nconst FilterOption: React.FC<IFilterOption> = ({\n title,\n value,\n optionType = \"text\",\n selected = false,\n disabled = false,\n onClick = () => { },\n ...props\n}) => {\n\n const iconWeight: number = dimensions.icons.weights['regular'];\n\n return (\n\n <Container\n {...{ onClick, disabled, selected}}\n {...props}\n >\n {(optionType === 'checkbox') && (\n <FakeCheckbox>\n <FakeCheckboxInner>\n {selected && <CheckMarkWrapper><CheckMark color='inverse' stroke='inverse' size={12} weight={iconWeight} /></CheckMarkWrapper>}\n </FakeCheckboxInner>\n </FakeCheckbox>\n )}\n {(optionType === 'radio') && <FakeRadioButton><FakeInnerRadio /></FakeRadioButton>}\n <Title>{title}</Title>\n </Container>\n );\n};\n\nexport default FilterOption;","import React, { InputHTMLAttributes } from 'react';\nimport styled, { css } from 'styled-components';\nimport { removeAutoFillStyle, resetButtonStyles } from '../../common';\nimport Icon, { IconWrapper } from '../../Icons/Icon';\n\nconst Container = styled.div<{ hasBorder: boolean, disabled: boolean, noBackground: boolean, width?: string }>`\n ${({ theme: { styles }, theme, hasBorder, disabled, noBackground, width }) => css`\n ${hasBorder && css`\n border: ${styles.filters.searchInput.default.border};\n box-shadow: ${styles.filters.searchInput.default.boxShadow};\n `};\n\n ${disabled && css`\n opacity: 50%;\n cursor: not-allowed;\n `\n };\n\n ${width && css`\n width: ${width};\n `};\n\n background-color: ${noBackground ? 'transparent' : theme.styles.filters.searchInput.default.backgroundColor};\n\n &:focus-within {\n background-color: ${noBackground ? 'transparent' : styles.filters.searchInput.focused.backgroundColor};\n border: ${noBackground ? 'transparent' : styles.filters.searchInput.focused.border};\n }\n\n `};\n\n ${IconWrapper} {\n flex-shrink: 0;\n display: flex;\n }\n\n height: 30px;\n padding: 0 0 0 8px;\n align-items: center;\n display: flex;\n border-radius: 3px;\n`;\n\nconst CrossButton = styled.button`\n ${resetButtonStyles};\n flex-shrink: 0;\n flex-grow: 0;\n flex-basis: auto;\n width: 26px;\n\n ${IconWrapper} {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n`;\n\nconst StyledInput = styled.input<{ color: string }>`\n ${removeAutoFillStyle};\n\n ${({ theme: {typography, colors}, theme, color }) => css`\n font-family: ${theme.fontFamily.ui};\n ${typography.filters.searchInput.value};\n\n &::placeholder {\n ${typography.filters.searchInput.placeholder};\n color: ${colors.icons[color]};\n font-size: 12px;\n }\n `};\n\n &:disabled {\n cursor: not-allowed;\n }\n\n font-size: 12px;\n border: none;\n height: 100%;\n width: 100%;\n background-color: transparent;\n box-sizing: border-box;\n border-radius: 3px;\n outline: none;\n margin-left: 7px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n`;\n\ninterface OwnProps {\n color?: 'mono' | 'dimmed' | 'subtle';\n hasBorder?: boolean\n iconSize?: number\n noBackground?: boolean\n width?: string\n hasCrossButton?: boolean\n onCrossClick?: () => void\n}\n\nexport type IBasicSearchInput = OwnProps & InputHTMLAttributes<HTMLInputElement>\n\nconst BasicSearchInput: React.FC<IBasicSearchInput> = ({\n color = 'subtle',\n hasBorder = true,\n iconSize = 12,\n disabled = false,\n noBackground = false,\n hasCrossButton = false,\n onCrossClick = () => {},\n width,\n ...props\n}) => {\n return (\n <Container {...{ hasBorder, disabled, noBackground, width }}>\n <Icon {...{ color }} icon='Search' weight='regular' size={iconSize} />\n <StyledInput\n {...{ color, disabled }}\n {...props}\n />\n {hasCrossButton && <CrossButton onClick={onCrossClick}> <Icon icon='CloseCompact' color='dimmed' size={12} /></CrossButton>}\n </Container>\n );\n};\n\nexport default BasicSearchInput;","import { IInputOptionsType } from '../Form';\nimport { IBasicSearchInput } from '../Misc/atoms/BasicSearchInput';\nimport { DateInterval } from './molecules/DatePicker';\nimport { IDropdownDatePicker } from './molecules/DropdownDatePicker';\nimport { IFilterDropdown } from './molecules/FilterDropdown';\n\ntype IFilterItem = { text: string; value: string | number; }\ntype IFilterValue = IFilterItem | IFilterItem[] | null;\ntype IFilterType = 'search' | 'dropdown' | 'datepicker';\n\n// Type checking for IFilterItem\n// https://stackoverflow.com/questions/14425568/interface-type-check-with-typescript\nconst isFilterItem = (item: any): item is IFilterItem => {\n if (item === null || item === undefined) { return false; }\n\n if (item.value === undefined || item.value === null) {\n return false;\n }\n\n if (item.text === null) {\n return false;\n }\n\n return ((typeof item.value === 'number') || (typeof item.value === 'string')) && (typeof item.text === 'string');\n};\n\ninterface IFilterResult {\n id: string\n type: IFilterType\n selected: IFilterItem | IFilterItem[] | DateInterval | Date | null;\n}\n\ninterface ISearchFilter extends IBasicSearchInput {\n id: string\n canHide?: boolean\n showFieldText?: string\n selected?: IFilterItem\n}\n\ninterface IFilterDropdownExt extends IFilterDropdown {\n id: string\n canHide?: boolean\n}\n\ninterface IFilterDatePicker extends IDropdownDatePicker {\n id: string\n canHide?: boolean\n name?: string\n}\n\ninterface IFilterDropdownConfig {\n id: string\n canHide?: boolean\n buttonIcon: string\n buttonText: string\n list: IFilterItem[];\n selected?: IFilterValue;\n disabled?: boolean\n optionType?: IInputOptionsType\n isLoading?: boolean\n loadingText?: string\n hasOptionsFilter?: boolean\n searchPlaceholder?: string\n maxDisplayedItems?: number\n searchResultText?: string\n name?: string\n}\n\nexport {\n isFilterItem\n};\n\nexport type {\n IFilterType,\n IFilterItem,\n IFilterResult,\n IFilterValue,\n ISearchFilter,\n IFilterDropdownExt,\n IFilterDatePicker,\n IFilterDropdownConfig\n};","import { useEffect, useRef } from 'react';\n\nexport type outClickType = (eve: MouseEvent) => void;\nexport function useClickOutside(elRef: any, elCallback: outClickType) {\n\n const callbackRef = useRef<outClickType>(elCallback);\n callbackRef.current = elCallback;\n\n useEffect(() => {\n const handleClickOutside = (eve: MouseEvent) => {\n if (!(elRef?.current?.contains(eve.target))) {\n callbackRef.current(eve);\n }\n };\n\n document.addEventListener('click', handleClickOutside, true);\n return () => {\n document.removeEventListener('click', handleClickOutside, true);\n };\n }, [elCallback, elRef]);\n}","import React, { useState, useRef, useCallback } from 'react';\nimport styled, { css } from 'styled-components';\nimport FilterButton from '../atoms/FilterButton';\nimport { useClickOutside } from '../../hooks/useClickOutside';\n\nconst Container = styled.div`\n position: relative;\n`;\n\nconst ButtonWrapper = styled.div`\n display: inline-block;\n`;\n\nconst ContentBox = styled.div<{ openState: IDropOpen, disabled: boolean, minWidth: number }>`\n z-index: 100;\n min-width: ${({ minWidth }) => minWidth}px;\n position: absolute;\n\n ${({ openState, disabled }) => openState && css`\n display: ${openState.isOpen ? 'inline-block' : 'none'};\n display: ${disabled && 'none'};\n\n ${openState.position === 'bottom-right' && `\n bottom: 0;\n left: 0;\n transform: translateY(calc(100% + 5px ));\n `};\n\n ${openState.position === 'bottom-left' && `\n bottom: 0;\n right: 0;\n transform: translateY(calc(100% + 5px ));\n `};\n\n ${openState.position === 'top-left' && `\n top: 0;\n right: 0;\n transform: translateY(calc( -100% - 5px ));\n `};\n\n ${openState.position === 'top-right' && `\n top: 0;\n left: 0;\n transform: translateY(calc( -100% - 5px ));\n `};\n\n `};\n`;\n\nconst getDropPosition = (buttonRect: DOMRect, minWidth: number, minHeight: number): IOpenPos => {\n let position: IOpenPos = 'bottom-right';\n const openLeft = (buttonRect.left + minWidth) > window.innerWidth;\n const openTop = (buttonRect.bottom + minHeight) > window.innerHeight;\n const spaceTop = buttonRect.bottom > minHeight;\n\n if (openLeft && openTop && spaceTop) {\n position = 'top-left';\n }\n\n if (openTop && !openLeft && spaceTop) {\n position = 'top-right';\n }\n\n if (!openTop && openLeft) {\n position = 'bottom-left';\n }\n\n return position;\n};\n\ntype IOpenPos = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'\n\ninterface IDropOpen {\n isOpen: boolean,\n position: IOpenPos,\n}\n\ninterface IFilterDropHandler {\n buttonIcon: string\n buttonText: string\n disabled?: boolean\n minWidth?: number\n minHeight?: number\n isSortAscending?: boolean\n onToggleOpenCallback?: (isOpen: boolean) => void\n onCloseCallback?: () => void\n}\n\nconst FilterDropHandler: React.FC<IFilterDropHandler> = ({\n buttonIcon,\n buttonText,\n disabled = false,\n minWidth = 270,\n minHeight = 190,\n isSortAscending,\n children,\n onToggleOpenCallback = () => { },\n onCloseCallback = () => { },\n ...props\n}) => {\n\n const [openState, setOpenState] = useState<IDropOpen>({\n isOpen: false,\n position: 'bottom-right',\n });\n\n const buttonWrapperRef = useRef<HTMLDivElement>(null);\n const mainRef = useRef<HTMLDivElement>(null);\n\n const handleClose = useCallback(() => {\n if (openState.isOpen) {\n onCloseCallback();\n }\n\n setOpenState((prev) => {\n const isOpen = false;\n return { ...prev, isOpen };\n });\n\n }, [onCloseCallback, openState.isOpen]);\n\n useClickOutside(mainRef, handleClose);\n\n const handleToggleOpen = useCallback((minWidth: number, minHeight: number) => {\n if (!buttonWrapperRef.current) { return; }\n\n const buttonRect = buttonWrapperRef.current.getBoundingClientRect();\n if (!buttonRect) { return; }\n const position: IOpenPos = getDropPosition(buttonRect, minWidth, minHeight);\n\n onToggleOpenCallback(openState.isOpen);\n setOpenState((prev) => {\n const isOpen = !prev.isOpen;\n return { ...prev, isOpen, position };\n });\n }, [onToggleOpenCallback, openState.isOpen]);\n\n return (\n <Container ref={mainRef} {...props}>\n <ButtonWrapper ref={buttonWrapperRef}>\n <FilterButton\n icon={buttonIcon}\n isOpen={openState.isOpen}\n onClick={() => handleToggleOpen(minWidth, minHeight)}\n {...{ disabled, isSortAscending }}\n hasFlipArrow\n >{buttonText}\n </FilterButton>\n </ButtonWrapper>\n <ContentBox {...{ openState, disabled, minWidth }}>\n {children}\n </ContentBox>\n </Container>\n );\n};\n\nexport default FilterDropHandler;","import React from 'react';\nimport styled, { css } from 'styled-components';\nimport Spinner from '../../Indicators/Spinner';\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n min-height: 146px;\n border-top: 1px solid hsl(0, 0%, 91%);\n`;\n\nconst LoadingText = styled.div`\n ${({ theme }) => theme && css`\n font-family: ${theme.fontFamily.data};\n `}\n color: hsl(0, 0%, 55%);\n font-size: 12px;\n font-style: italic;\n padding: 15px 0;\n`;\n\ninterface ILoadingBox {\n loadingText?: string\n}\n\nconst LoadingBox: React.FC<ILoadingBox> = ({ loadingText }) => {\n return (\n <Container>\n <Spinner size='large' styling='primary' />\n <LoadingText>{loadingText}</LoadingText>\n </Container>\n );\n};\n\nexport default LoadingBox;","import React, { useState, useCallback, useEffect } from 'react';\nimport styled from 'styled-components';\nimport { IInputOptionsType } from '../../Form';\nimport FilterOption from '../../Form/atoms/FilterOption';\nimport BasicSearchInput from '../../Misc/atoms/BasicSearchInput';\n\nimport { IFilterItem, IFilterValue, isFilterItem } from '../FilterTypes';\nimport FilterDropHandler from '../atoms/FilterDropHandler';\nimport LoadingBox from '../atoms/LoadingBox';\n\nconst Container = styled.div`\n display: inline-block;\n position: relative;\n`;\n\nconst TopLine = styled.div`\n ${({ theme }) => theme.styles.filters.dropdownContainer.topBorder};\n height: 4px;\n border-radius: 3px 3px 0 0;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n`;\n\nconst InnerBox = styled.div`\n border-bottom-left-radius: 3px;\n border-bottom-right-radius: 3px;\n padding-top: 5px;\n ${({theme}) => theme.styles.filters.dropdownContainer.background};\n`;\n\nconst StyledFilterOption = styled(FilterOption)`\n letter-spacing: 0.2px;\n`;\n\nconst OptionList = styled.div`\n max-height: 162px;\n min-height: 40px;\n overflow-y: scroll;\n ::-webkit-scrollbar { /* Hide scrollbar for Chrome, Safari and Opera */\n display: none;\n }\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n\n ${StyledFilterOption} {\n height: 35px;\n padding-left: 10px;\n }\n`;\n\nconst ResultsContainer = styled.div`\n border-top: ${({theme}) => theme.colors.divider} 1px solid;\n padding-bottom: 8px;\n`;\n\nconst ResultCounter = styled.div`\n opacity: 0.75;\n font-family: ${({ theme }) => theme.fontFamily.data};\n color: hsl(0, 0%, 55%);\n font-size: 12px;\n font-style: italic;\n font-weight: 300;\n display: flex;\n align-items: center;\n justify-content: left;\n padding-left: 9px;\n height: 30px;\n margin-bottom: 6px;\n border-bottom: ${({theme}) => theme.colors.divider} 1px solid;\n`;\n\nconst SearchWrapper = styled.div`\n height: 41px;\n display: flex;\n align-items: center;\n`;\n\nconst EmptyResultText = styled.div`\n display: block;\n color: hsl(0, 0%, 56%);\n margin-left: 12px;\n user-select: none;\n pointer-events: none;\n height: 35px;\n display: flex;\n align-items: center;\n font-size: 12px;\n`;\n\nconst isValueSelected = (item: IFilterItem, selected: IFilterValue) => {\n let isItemSelected = false;\n\n if (Array.isArray(selected)) {\n selected.forEach((element: IFilterItem) => {\n if (element.value === item.value) {\n isItemSelected = true;\n }\n });\n\n } else {\n if (isFilterItem(selected)) {\n isItemSelected = item.value === selected.value;\n }\n }\n\n return isItemSelected;\n};\n\nconst getNewSelected = (item: IFilterItem, selected: IFilterValue, optionType: IInputOptionsType): IFilterValue => {\n let isItemSelected = false;\n\n if (optionType === 'checkbox') {\n const validSelected = Array.isArray(selected)\n ? selected\n : isFilterItem(selected) ? [selected] : [];\n\n const newSelected: IFilterItem[] = [];\n validSelected.forEach((element: IFilterItem) => {\n if (item.value === element.value) {\n isItemSelected = true;\n } else {\n newSelected.push(element);\n }\n });\n if (!isItemSelected) {\n newSelected.push(item);\n }\n\n if (newSelected.length === 0) {\n return null;\n }\n\n return newSelected;\n }\n\n return item;\n};\n\nconst selectedOrderList = (list: IFilterItem[], maxItems: number, selected: IFilterValue): IFilterItem[] => {\n\n if (list.length <= maxItems) {\n return list;\n }\n\n if(selected === null) {\n return list;\n }\n\n if (isFilterItem(selected)) {\n const index = list.findIndex(item => item.value === selected.value);\n\n // if it doesn't exists return the list based in maxItems\n if ((index === -1)) {\n return list;\n }\n\n // if exists and is inside the visibleRange just return slice\n if ((index !== -1) && (index < maxItems)) {\n return list;\n }\n\n const newList = list.filter(item => item.value !== selected.value);\n newList.unshift(list[index]);\n\n return newList;\n\n }\n\n if (Array.isArray(selected)) {\n const selectedIndexList: number[] = [];\n const newList: IFilterItem[] = [];\n\n selected.forEach((element: IFilterItem) => {\n const index = list.findIndex(item => item.value === element.value);\n const foundItem = list.find(item => item.value === element.value);\n\n\n if (index !== -1) {\n selectedIndexList.push(index);\n }\n if(foundItem) {\n newList.push(foundItem);\n }\n\n });\n\n selectedIndexList.sort(function (a, b) {\n return a - b;\n });\n\n let selectedIndex = 0;\n\n list.forEach((item, index) => {\n if(index === selectedIndexList[selectedIndex]){\n selectedIndex++;\n return;\n }\n newList.push(item);\n });\n\n return newList;\n }\n\n return list;\n};\n\nconst getFilteredList = (list: IFilterItem[], newValue: string): IFilterItem[] => {\n return list.filter(element => {\n const valueString = element.text.toLowerCase();\n return valueString.includes(newValue.toLowerCase());\n });\n};\n\nconst getResultText = (template: string, visible: number, total: number) => {\n const newMessage = template.replace('[TOTAL]', `${total}`);\n return newMessage.replace('[VISIBLE]', `${visible}`);\n};\n\nexport interface IFilterDropdown {\n buttonIcon: string\n buttonText: string\n list: IFilterItem[];\n selected: IFilterValue;\n disabled?: boolean\n optionType?: IInputOptionsType\n isLoading?: boolean\n loadingText?: string\n hasOptionsFilter?: boolean\n searchPlaceholder?: string\n maxDisplayedItems?: number\n searchResultText?: string\n emptyResultText?: string\n onSelect: (newSelection: IFilterValue) => void;\n}\n\nconst FilterDropdown: React.FC<IFilterDropdown> = ({\n buttonIcon,\n buttonText,\n list,\n selected = null,\n disabled = false,\n isLoading = false,\n loadingText,\n optionType = 'text',\n hasOptionsFilter,\n searchPlaceholder,\n maxDisplayedItems = 5,\n searchResultText = 'Showing [VISIBLE] of [TOTAL]',\n emptyResultText,\n onSelect = () => { },\n ...props\n}) => {\n\n const [visibleList, setVisibleList] = useState(selectedOrderList(list, maxDisplayedItems, selected));\n const [searchText, setSearchText] = useState<string>('');\n\n const handleClose = useCallback(() => {\n setSearchText('');\n setVisibleList(selectedOrderList(list, maxDisplayedItems, selected));\n }, [list, maxDisplayedItems, selected]);\n\n const handleToggleOpen = useCallback(() => {\n setSearchText('');\n setVisibleList(selectedOrderList(list, maxDisplayedItems, selected));\n }, [list, maxDisplayedItems, selected]);\n\n const handleSelection = useCallback((item: IFilterItem) => {\n const newSelected = getNewSelected(item, selected, optionType);\n onSelect(newSelected);\n }, [selected, optionType, onSelect]);\n\n const handleInputFilter = useCallback((e) => {\n const { value } = e.target;\n setSearchText(value);\n\n if (value === '') {\n setVisibleList(selectedOrderList(list, maxDisplayedItems, selected));\n return;\n }\n\n const newValue = typeof value === 'number' ? value.toString(10) : value;\n const newList = getFilteredList(list, newValue);\n\n // sending null so the filtered list doesn't force the selected values to appear.\n setVisibleList(selectedOrderList(newList, maxDisplayedItems, null));\n }, [list, maxDisplayedItems, selected]);\n\n useEffect(() => {\n let isActive = true;\n if (isActive) {\n setSearchText(''); // clears searchText if something was selected and the dropdown is still open\n setVisibleList(selectedOrderList(list, maxDisplayedItems, selected));\n }\n\n return () => {\n isActive = false;\n };\n\n }, [list, maxDisplayedItems, selected]);\n\n return (\n <Container {...props}>\n <FilterDropHandler\n {...{ buttonIcon, buttonText, disabled }}\n onCloseCallback={handleClose}\n onToggleOpenCallback={handleToggleOpen}\n >\n <TopLine />\n <InnerBox>\n {hasOptionsFilter && (\n <SearchWrapper>\n <BasicSearchInput\n type='text'\n hasBorder={false}\n placeholder={searchPlaceholder}\n color='dimmed'\n iconSize={12}\n value={searchText}\n onChange={handleInputFilter}\n noBackground\n />\n </SearchWrapper>\n )}\n {isLoading || !list\n ? (\n <LoadingBox {...{ loadingText }} />)\n : (\n <ResultsContainer>\n {hasOptionsFilter && <ResultCounter>{getResultText(searchResultText, visibleList.length, list.length)}</ResultCounter>}\n <OptionList>\n {(visibleList.length > 0)\n\n ? visibleList.map((item: IFilterItem, index) => {\n const value = item.value;\n const text = item.text;\n return (\n <StyledFilterOption\n key={index}\n title={text}\n onClick={() => handleSelection(item)}\n selected={isValueSelected(item, selected)}\n {...{ optionType, value }}\n />\n );\n })\n\n : <EmptyResultText>{emptyResultText}</EmptyResultText>}\n </OptionList>\n </ResultsContainer>)}\n </InnerBox>\n </FilterDropHandler>\n </Container>\n );\n};\n\nexport default FilterDropdown;","import React, { useCallback } from 'react';\nimport styled, { css } from 'styled-components';\nimport Icon, { IconWrapper } from '../../Icons/Icon';\nimport FilterOption from '../../Form/atoms/FilterOption';\nimport FilterDropHandler from '../atoms/FilterDropHandler';\nimport LoadingBox from '../atoms/LoadingBox';\nimport { IFilterItem } from '../FilterTypes';\nimport { resetButtonStyles } from '../../common';\n\nconst Container = styled.div`\n display: inline-block;\n position: relative;\n`;\n\nconst TopLine = styled.div`\n ${({ theme }) => theme.styles.filters.dropdownContainer.topBorder};\n height: 3px;\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n`;\n\nconst InnerBox = styled.div`\n border-bottom-left-radius: 3px;\n border-bottom-right-radius: 3px;\n box-shadow: 0 4px 9px 0 hsla(204, 22%, 67%, 0.07);\n border: solid 1px hsl(207, 16%, 86%);\n border-top: unset;\n ${({theme}) => theme.styles.filters.dropdownContainer.background};\n`;\n\nconst StyledFilterOption = styled(FilterOption)`\n letter-spacing: 0.2px;\n`;\n\nconst OptionList = styled.div`\n ${StyledFilterOption} {\n height: 35px;\n padding-left: 10px;\n }\n`;\n\nconst OrderGroup = styled.div`\n display: flex;\n border-top: ${({ theme: { colors } }) => colors.divider} 1px solid;\n margin-top: 5px;\n button:first-child {\n border-right: ${({ theme: { colors } }) => colors.divider} 1px solid;\n }\n`;\n\nconst OrderButton = styled.button<{ isSelected: boolean }>`\n ${resetButtonStyles};\n width: 100%;\n display: flex;\n align-items: center;\n font-family: ${({ theme }) => theme.fontFamily.data};\n color: hsl(0, 0%, 56%);\n font-size: 14px;\n height: 35px;\n ${({ theme, isSelected }) => theme && css`\n\n ${IconWrapper} {\n margin-left: 10px;\n display: flex;\n align-items: center;\n [stroke]{\n stroke: ${theme.colors.icons.dimmed};\n }\n }\n\n &:hover {\n ${IconWrapper} {\n [stroke]{\n stroke: ${theme.styles.form.checkbox.checked.hover.backgroundColor};\n }\n }\n }\n\n ${isSelected && css`\n ${IconWrapper} {\n [stroke]{\n stroke: ${theme.styles.form.checkbox.checked.default.backgroundColor};\n }\n }\n `}\n `}\n`;\n\nexport interface ISortDropdown {\n buttonText: string\n list: IFilterItem[]\n disabled?: boolean\n isLoading?: boolean\n loadingText?: string\n ascendingText?: string\n descendingText?: string\n isSortAscending?: boolean\n selected: IFilterItem\n onSelect: (newSort: IFilterItem, isSortAscending: boolean) => void\n}\n\nconst SortDropdown: React.FC<ISortDropdown> = ({\n buttonText,\n disabled,\n list,\n isLoading,\n loadingText,\n isSortAscending = true,\n selected,\n descendingText = 'Descending',\n ascendingText = 'Ascending',\n onSelect,\n ...props }) => {\n\n\n const handleSortSelect = useCallback((newValue: IFilterItem) => {\n if (newValue.value === selected.value) {\n return;\n }\n\n onSelect(newValue, isSortAscending);\n\n }, [isSortAscending, onSelect, selected.value]);\n\n const handleOrderSelect = useCallback((isAscending: boolean) => {\n if (isSortAscending === isAscending) {\n return;\n }\n\n onSelect(selected, isAscending);\n\n }, [isSortAscending, onSelect, selected]);\n\n return (\n <Container {...props}>\n <FilterDropHandler\n {...{ buttonText, disabled, isSortAscending }}\n buttonIcon='FilterSorting'\n >\n <TopLine />\n <InnerBox>\n {(isLoading || list.length === 0)\n ? (\n <LoadingBox {...{ loadingText }} />\n )\n : (\n <OptionList>\n {list.map((item, index) => {\n return (\n <StyledFilterOption\n key={index}\n title={item.text}\n optionType='radio'\n selected={selected.value === item.value}\n onClick={() => handleSortSelect(item)}\n />\n );\n })}\n </OptionList>\n )}\n <OrderGroup>\n <OrderButton isSelected={isSortAscending} onClick={() => handleOrderSelect(true)}>\n <Icon\n icon='FilterAscending'\n size={16}\n weight='light'\n />\n <FilterOption selected={isSortAscending} title={ascendingText} />\n </OrderButton>\n <OrderButton isSelected={!isSortAscending} onClick={() => handleOrderSelect(false)}>\n <Icon\n icon='FilterDescending'\n size={16}\n weight='light'\n />\n <FilterOption selected={!isSortAscending} title={descendingText} />\n </OrderButton>\n </OrderGroup>\n </InnerBox>\n </FilterDropHandler>\n\n </Container>\n );\n};\n\nexport default SortDropdown;","import React, { useRef, useCallback, useEffect, useState } from 'react';\nimport styled from 'styled-components';\nimport FilterDropdownContainer from '../atoms/FilterDropdownContainer';\nimport DatePicker, { DateInterval, IDatePicker } from './DatePicker';\nimport FilterDropHandler from '../atoms/FilterDropHandler';\n\nconst MIN_WIDTH = 470;\nconst MIN_HEIGHT = 360;\n\nconst Container = styled.div``;\n\ninterface IMountPicker {\n initialValue: DateInterval | Date | undefined\n isMount: boolean\n}\n\nexport interface IDropdownDatePicker extends IDatePicker {\n buttonIcon: string\n buttonText: string\n disabled?: boolean\n selected?: DateInterval | Date | null;\n onCloseCallback?: (value: DateInterval | Date | null) => void\n onUpdateCallback?: (value: DateInterval | Date | null) => void\n onToggleCallback?: (value: DateInterval | Date | null, isOpen: boolean) => void\n}\n\nconst DropdownDatePicker: React.FC<IDropdownDatePicker> = ({\n buttonIcon,\n buttonText,\n disabled,\n initialValue,\n dateMode,\n timeMode,\n selected,\n dateTimeTextUpper,\n dateTimeTextLower,\n timeZoneTitle,\n timeZoneValueTitle,\n lang,\n onCloseCallback = () => { },\n onUpdateCallback = () => { },\n onToggleCallback = () => { },\n ...props }) => {\n\n /**\n * This will keep the value of the picker when it updates so on close will send the most fresh value\n * without re-renders.\n */\n const pickerValue = useRef<DateInterval | Date | null>(null);\n const [mountedPicker, setMountedPicker] = useState<IMountPicker>({ initialValue: initialValue, isMount: true });\n\n const handleUpdateCallback = useCallback((data: DateInterval | Date) => {\n pickerValue.current = data;\n onUpdateCallback(data);\n }, [onUpdateCallback]);\n\n const handleOnClose = useCallback(() => {\n if (pickerValue.current && (pickerValue.current !== selected)) {\n onCloseCallback(pickerValue.current);\n }\n }, [onCloseCallback, selected]);\n\n const handleOnToggle = useCallback((isOpen: boolean) => {\n\n if (pickerValue.current && (pickerValue.current !== selected)) {\n onToggleCallback(pickerValue.current, isOpen);\n }\n\n /** mounting again and clearing the last value sent from picker */\n if (!isOpen && (pickerValue.current !== null) && (!mountedPicker.isMount)) {\n pickerValue.current = null;\n setMountedPicker({ initialValue: undefined, isMount: true });\n }\n }, [mountedPicker, onToggleCallback, selected]);\n\n /**\n * Caching the selected null /clear flag for this picker from parent component\n */\n useEffect(() => {\n let canReset = true;\n\n if (canReset && selected === null && pickerValue.current !== null) {\n setMountedPicker({ initialValue: undefined, isMount: false });\n }\n return () => {\n canReset = false;\n };\n }, [selected]);\n\n return (\n <Container {...props}>\n <FilterDropHandler\n {...{ buttonIcon, buttonText, disabled }}\n minWidth={MIN_WIDTH}\n minHeight={MIN_HEIGHT}\n onCloseCallback={handleOnClose}\n onToggleOpenCallback={handleOnToggle}\n >\n <FilterDropdownContainer>\n {mountedPicker.isMount && (\n <DatePicker\n {...{\n dateMode,\n timeMode,\n dateTimeTextUpper,\n dateTimeTextLower,\n timeZoneTitle,\n timeZoneValueTitle,\n lang\n }}\n updateCallback={handleUpdateCallback}\n hasEmptyValue\n initialValue={mountedPicker.initialValue}\n />)}\n </FilterDropdownContainer>\n </FilterDropHandler>\n </Container>\n );\n};\n\nexport default DropdownDatePicker;","import React, { useState, useCallback } from 'react';\nimport styled, { css, keyframes } from 'styled-components';\nimport BasicSearchInput from '../../Misc/atoms/BasicSearchInput';\nimport FilterDropdown from '../../Filters/molecules/FilterDropdown';\nimport FilterButton from '../../Filters/atoms/FilterButton';\nimport DropdownDatePicker from './DropdownDatePicker';\nimport { IFilterDatePicker, IFilterDropdownExt, ISearchFilter } from '../FilterTypes';\n\nconst fadeInAnimation = keyframes`\n 0% {\n width: 50%;\n opacity: .5;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n width: 100%;\n }\n`;\n\nconst SearchInputWrapper = styled.div`\n flex: 1 1 200px;\n max-width: 320px;\n`;\n\nconst CloseSearchInputWrapper = styled.div`\n ${({ theme }) => theme && css`\n animation: ${fadeInAnimation} ${theme.animation.speed.slow} ${theme.animation.easing.primary.inOut};\n `};\n`;\n\nconst StyledFilterButton = styled(FilterButton)``;\nconst StyledDropdown = styled(FilterDropdown)``;\nconst StyledDropdownDatePicker = styled(DropdownDatePicker)``;\n\nconst Container = styled.div`\n display: flex;\n flex-wrap: wrap;\n ${SearchInputWrapper}, ${StyledDropdown}, ${StyledFilterButton}, ${StyledDropdownDatePicker} {\n margin: 0 3px 10px 3px;\n }\n`;\n\nconst renderDropdowns = (dropdownFilters: IFilterDropdownExt[], showMoreDropdowns: boolean, hasShowMore: boolean) => {\n return dropdownFilters.map((dropdown: IFilterDropdownExt) => {\n if (!dropdown.canHide || !showMoreDropdowns || (dropdown.canHide && !hasShowMore)) {\n return <StyledDropdown key={`dropdownFilter-id-${dropdown.id}`} {...dropdown} />;\n }\n return null;\n });\n};\n\nconst renderSearchInputs = (\n searchFilters: ISearchFilter[],\n visibleSearchInputs: String[],\n handleVisibleSearch: (searchId: string) => void\n) => {\n return searchFilters.map((searchInput: ISearchFilter) => {\n\n if (visibleSearchInputs.includes(searchInput.id)) {\n return (\n <SearchInputWrapper key={`searchFilter-id-${searchInput.id}`}>\n {searchInput.canHide\n ? (\n <CloseSearchInputWrapper>\n <BasicSearchInput {...searchInput} hasCrossButton onCrossClick={() => handleVisibleSearch(searchInput.id)} />\n </CloseSearchInputWrapper>\n )\n : <BasicSearchInput {...searchInput} />}\n </SearchInputWrapper>\n );\n }\n return null;\n });\n};\n\nconst renderDatePickers = (datePickerFilters: IFilterDatePicker[]) => {\n return datePickerFilters.map((datePicker: IFilterDatePicker) => {\n return (\n <StyledDropdownDatePicker\n key={`datePicker-filter-${datePicker.id}`}\n {...{ ...datePicker }}\n />\n );\n });\n};\n\nconst renderAddSearchButtons = (\n searchFilters: ISearchFilter[],\n visibleSearchInputs: String[],\n handleVisibleSearch: (searchId: string) => void\n) => {\n return searchFilters.map((element) => {\n if (element.canHide && !visibleSearchInputs.includes(element.id)) {\n const searchId = element.id;\n return (\n <StyledFilterButton\n key={`search-button-id-${element.id}`}\n icon='Add'\n onClick={() => handleVisibleSearch(searchId)}\n >\n {element.showFieldText}\n </StyledFilterButton>\n );\n }\n return null;\n });\n};\n\n// initially visible are only the ones that can't hide\nconst initialSearchFilters = (searchFilters: ISearchFilter[]): String[] => {\n const currentVisible: String[] = [];\n\n searchFilters.forEach(element => {\n if (!element.canHide) {\n currentVisible.push(element.id);\n }\n });\n\n return currentVisible;\n};\n\nexport interface IFilterInputs {\n searchFilters?: ISearchFilter[]\n dropdownFilters?: IFilterDropdownExt[]\n datePickerFilters?: IFilterDatePicker[]\n hasShowMore?: boolean\n showMoreText?: string\n showLessText?: string\n}\n\nconst FilterInputs: React.FC<IFilterInputs> = ({\n hasShowMore = false,\n searchFilters = [],\n datePickerFilters = [],\n dropdownFilters = [],\n showMoreText = 'Show More',\n showLessText = 'Show Less',\n ...props\n}) => {\n\n const [visibleSearchInputs, setVisibleSearchInputs] = useState<String[]>(initialSearchFilters(searchFilters));\n const [showMoreDropdowns, setShowMoreDropdowns] = useState(hasShowMore ? true : false);\n\n const toggleShowMore = useCallback(() => {\n setShowMoreDropdowns((prev) => !prev);\n }, []);\n\n const handleVisibleSearch = useCallback((searchId: string) => {\n\n if (visibleSearchInputs.includes(searchId)) {\n const newVisible = visibleSearchInputs.filter((id) => searchId !== id);\n setVisibleSearchInputs(newVisible);\n } else {\n const newVisible = [...visibleSearchInputs, searchId];\n setVisibleSearchInputs(newVisible);\n }\n\n }, [visibleSearchInputs]);\n\n return (\n <Container {...{ props }}>\n {renderSearchInputs(searchFilters, visibleSearchInputs, handleVisibleSearch)}\n {renderDatePickers(datePickerFilters)}\n {renderDropdowns(dropdownFilters, showMoreDropdowns, hasShowMore)}\n\n {/* {When the Dev does not initialize hasShowMore as true but has hidden inputs, it will show the add Searcher of the canHide} */}\n {(!hasShowMore || !showMoreDropdowns) && renderAddSearchButtons(searchFilters, visibleSearchInputs, handleVisibleSearch)}\n {hasShowMore && (\n <FilterButton\n icon='FilterEllipsis'\n onClick={toggleShowMore}\n >\n {showMoreDropdowns ? showMoreText : showLessText}\n </FilterButton>)}\n </Container>\n );\n};\n\nexport default FilterInputs;","import React from 'react';\nimport styled, { css } from 'styled-components';\nimport { IFilterItem, IFilterType } from '../FilterTypes';\nimport { resetButtonStyles } from '../../common/index';\nimport Icon, { IconWrapper } from '../../Icons/Icon';\nimport { isFilterItem } from '../FilterTypes';\nimport { DateInterval, isDateInterval } from './DatePicker';\nimport { format } from 'date-fns';\n\nconst Container = styled.div`\n display: flex;\n align-items: center;\n font-size: 12px;\n min-height: 22px;\n`;\n\nconst ResultsTextWrapper = styled.div`\n font-family: ${({ theme }) => theme.fontFamily.ui};\n color: hsl(207, 5%, 57%);\n`;\n\nconst FilterLabel = styled.div`\n height: 18px;\n flex-shrink: 0;\n display: flex;\n align-items: center;\n padding: 0 11px 0 8px;\n margin-left: 3px;\n color: hsl(207, 5%, 57%);\n\n ${({ theme }) => theme && css`\n font-family: ${theme.fontFamily.data};\n `};\n\n ${IconWrapper} {\n display: flex;\n align-items: center;\n }\n border-right: 1px solid hsla(0, 0%, 13%, 0.16);\n`;\nconst FilterLabelText = styled.div<{ hasIcon?: boolean }>`\n padding: ${({ hasIcon }) => hasIcon ? '0 15px 0 9px' : '0 15px 0 0'};\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n max-width: 300px;\n`;\n\nconst ClearTextButton = styled.button`\n ${resetButtonStyles};\n font-family: ${({ theme }) => theme.fontFamily.data};\n color: hsl(216, 4%, 77%);\n margin-left: 11px;\n font-size: 12px;\n`;\n\nconst RemoveButton = styled.button`\n ${resetButtonStyles};\n`;\n\nconst FilterLabelsGroup = styled.div`\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n margin-left: 10px;\n`;\n\nconst validateDateFormat = (resultsDateFormat: string): boolean => {\n let isFormatValid = false;\n\n if (resultsDateFormat !== '') {\n try {\n const tryDate = new Date();\n format(tryDate, resultsDateFormat);\n isFormatValid = true;\n } catch (error) {\n isFormatValid = false;\n }\n }\n\n return isFormatValid;\n};\n\nconst renderResults = (template: string, total: number) => {\n return template.replace('[TOTAL_RESULTS]', `${total}`);\n};\n\n\nconst renderLabel = (item: IFilterItem | DateInterval | Date, resultsDateFormat: string, icon?: string, filterName?: string) => {\n\n let textLabel: string = \"\";\n const isDateFormatValid = validateDateFormat(resultsDateFormat);\n\n if (filterName && isFilterItem(item)) {\n textLabel = `${filterName}: ${item.text}`;\n } else if (filterName && item instanceof Date) {\n textLabel = isDateFormatValid\n ? `${filterName}: ${format(item, resultsDateFormat)}`\n : `${filterName}: ${item.toDateString()}`;\n } else if (filterName && isDateInterval(item)) {\n textLabel = isDateFormatValid\n ? `${filterName}: ${format(item.start, resultsDateFormat)} - ${format(item.end, resultsDateFormat)}`\n : `${filterName}: ${item.start.toDateString()} - ${item.end.toDateString()}`;\n } else if (!filterName && isFilterItem(item)) {\n textLabel = item.text;\n } else if (!filterName && item instanceof Date) {\n textLabel = isDateFormatValid\n ? format(item, resultsDateFormat)\n : item.toDateString();\n } else if (!filterName && isDateInterval(item)) {\n textLabel = isDateFormatValid\n ? `${format(item.start, resultsDateFormat)} - ${format(item.end, resultsDateFormat)}`\n : `${item.start.toDateString()} - ${item.end.toDateString()}`;\n }\n\n return <FilterLabelText hasIcon={!!icon}>{textLabel}</FilterLabelText>;\n};\n\nexport interface IFilterLabel {\n filterId: string\n item: IFilterItem | Date | DateInterval\n type: IFilterType\n icon?: string\n filterName?: string\n}\n\ninterface IFilterResults {\n labelLists: IFilterLabel[]\n totalResults: number\n resultTextTemplate?: string\n clearText?: string\n resultsDateFormat?: string\n onRemoveFilter?: (filterId: string, type: IFilterType, item: IFilterItem | Date | DateInterval) => void\n onClearAll?: () => void\n}\n\nconst FiltersResults: React.FC<IFilterResults> = ({\n labelLists,\n totalResults,\n resultTextTemplate = 'Showing Results ([TOTAL_RESULTS]):',\n clearText = 'CLEAR ALL',\n resultsDateFormat = '',\n onRemoveFilter = () => { },\n onClearAll = () => { },\n ...props\n}) => {\n return (\n <Container {...props}>\n <ResultsTextWrapper>{renderResults(resultTextTemplate, totalResults)}</ResultsTextWrapper>\n <FilterLabelsGroup>\n {labelLists.map(({ icon, item, filterName, filterId, type }, index) => {\n return (\n <FilterLabel key={`Filter-Label-id-${index}`}>\n {icon && <Icon icon={icon} color='dimmed' size={10} weight='light' />}\n {renderLabel(item, resultsDateFormat, icon, filterName)}\n <RemoveButton\n onClick={() => onRemoveFilter(filterId, type, item)}\n >\n <Icon icon='CloseCompact' color='dimmed' size={10} weight='light' />\n </RemoveButton>\n </FilterLabel>\n );\n })}\n {(labelLists.length > 0) && <ClearTextButton onClick={onClearAll}>{clearText}</ClearTextButton>}\n </FilterLabelsGroup>\n\n </Container>\n );\n};\n\nexport default FiltersResults;","import React, { useCallback, useState, useEffect, useRef } from 'react';\nimport styled from 'styled-components';\nimport {\n IFilterItem,\n IFilterResult,\n IFilterType,\n IFilterValue,\n isFilterItem,\n IFilterDropdownConfig\n} from '../FilterTypes';\nimport FilterInputs from '../molecules/FilterInputs';\nimport { IFilterDropdownExt, ISearchFilter, IFilterDatePicker } from '../FilterTypes';\nimport FiltersResults, { IFilterLabel } from '../../Filters/molecules/FiltersResults';\nimport { DateInterval, isDateInterval } from '../molecules/DatePicker';\nimport isequal from 'lodash.isequal';\nimport debounce from 'lodash.debounce';\n\nconst Title = styled.div`\n font-family: ${({ theme }) => theme.fontFamily.ui};\n color: hsl(207, 5%, 57%);\n font-size: 12px;\n font-weight: 700;\n margin-bottom: 17px;\n`;\n\nconst StyledFilterResults = styled(FiltersResults)``;\n\nconst Container = styled.div`\n ${StyledFilterResults} {\n margin-top: 29px;\n min-height: 19px;\n }\n`;\n\nconst getDisableValue = (\n filtersValues: IFilterResult[],\n singleFilter: boolean,\n filter: ISearchFilter | IFilterDropdownConfig | IFilterDatePicker,\n) => {\n let disabled = false;\n\n if (filter.disabled) {\n disabled = filter.disabled;\n } else if (singleFilter) {\n const notNullValues = filtersValues.filter((filter) => filter.selected !== null);\n if (notNullValues) {\n disabled = (notNullValues.length > 1 || (notNullValues[0] && notNullValues[0].id !== filter.id));\n }\n }\n return disabled;\n};\n\nconst createDropdownFilters = (\n dropdownsConfig: IFilterDropdownConfig[],\n filtersValues: IFilterResult[],\n singleFilter: boolean,\n handleDropdownsSelected: (newValue: IFilterValue, filterId: string) => void\n): IFilterDropdownExt[] => {\n\n const dropdownFilters: IFilterDropdownExt[] = [];\n dropdownsConfig.forEach(dropdown => {\n const filter = filtersValues.find(filter => filter.id === dropdown.id);\n if (filter) {\n const selected = (Array.isArray(filter.selected) || isFilterItem(filter.selected))\n ? filter.selected\n : null;\n const onSelect = (newSelection: IFilterValue) => { handleDropdownsSelected(newSelection, filter.id); };\n const disabled = getDisableValue(filtersValues, singleFilter, dropdown);\n const newDropdown: IFilterDropdownExt = { ...dropdown, selected, disabled, onSelect };\n dropdownFilters.push(newDropdown);\n }\n });\n return dropdownFilters;\n};\n\nconst createSearchers = (\n searchersConfig: ISearchFilter[],\n filtersValues: IFilterResult[],\n singleFilter: boolean,\n handleSearchers: (newValue: string, filterId: string) => void,\n): ISearchFilter[] => {\n const searchersFilters: ISearchFilter[] = [];\n\n searchersConfig.forEach(searcher => {\n const filter = filtersValues.find(filter => filter.id === searcher.id);\n if (filter && !Array.isArray(filter.selected)) {\n const value: string = (filter.selected === null) || (!isFilterItem(filter.selected)) ? '' : filter.selected.text;\n\n const onChange = (e: React.FormEvent<HTMLInputElement>) => {\n const newValue = e.currentTarget.value;\n handleSearchers(newValue, filter.id);\n };\n\n const disabled = getDisableValue(filtersValues, singleFilter, searcher);\n\n const newSearcher: ISearchFilter = { ...searcher, value, disabled, onChange };\n searchersFilters.push(newSearcher);\n }\n });\n\n return searchersFilters;\n};\n\nconst createDatePickers = (\n datePickersConfig: IFilterDatePicker[],\n filtersValues: IFilterResult[],\n singleFilter: boolean,\n handleDatePickers: (selection: DateInterval | Date | null, filterId: string) => void,\n): IFilterDatePicker[] => {\n const datePickersFilters: IFilterDatePicker[] = [];\n\n datePickersConfig.forEach((datePicker) => {\n const onCloseCallback = (value: DateInterval | Date | null) => {\n handleDatePickers(value, datePicker.id);\n };\n\n const onToggleCallback = (value: DateInterval | Date | null, isOpen: boolean) => {\n // if it was open before toggle means the user closed it and value should be updated.\n if (isOpen) {\n handleDatePickers(value, datePicker.id);\n }\n };\n const disabled = getDisableValue(filtersValues, singleFilter, datePicker);\n const foundPicker = filtersValues.find(filter => filter.id === datePicker.id);\n let validInitialValue: Date | DateInterval | undefined = undefined;\n\n if (datePicker.selected) {\n validInitialValue = datePicker.selected;\n } else if (datePicker.initialValue) {\n validInitialValue = datePicker.initialValue;\n }\n\n const newPicker: IFilterDatePicker = {\n ...datePicker,\n onCloseCallback,\n onToggleCallback,\n disabled,\n selected: foundPicker && (foundPicker.selected instanceof Date || isDateInterval(foundPicker.selected)) ? foundPicker.selected : null,\n initialValue: validInitialValue,\n };\n datePickersFilters.push(newPicker);\n });\n\n return datePickersFilters;\n};\n\nconst createLabelResults = (\n searchersConfig: ISearchFilter[],\n dropdownsConfig: IFilterDropdownConfig[],\n datePickersConfig: IFilterDatePicker[],\n filtersValues: IFilterResult[],\n): IFilterLabel[] => {\n\n const labelLists: IFilterLabel[] = [];\n\n searchersConfig.forEach((searcher) => {\n const foundSearcher = filtersValues.find(element => element.id === searcher.id);\n if (!foundSearcher) {\n return;\n\n // searchers are never arrays or date but Typescript requires this type check\n } else if (isFilterItem(foundSearcher.selected)) {\n const newLabel: IFilterLabel = {\n filterId: foundSearcher.id,\n item: foundSearcher.selected,\n filterName: searcher.name,\n type: foundSearcher.type,\n };\n labelLists.push(newLabel);\n }\n });\n\n dropdownsConfig.forEach((dropdown) => {\n\n const foundDropdown = filtersValues.find(element => element.id === dropdown.id);\n if (!foundDropdown || foundDropdown.selected === null) {\n return;\n } else if (Array.isArray(foundDropdown.selected)) {\n foundDropdown.selected.forEach((dropdownLabelVal) => {\n const newLabel: IFilterLabel = {\n filterId: foundDropdown.id,\n item: dropdownLabelVal,\n icon: dropdown.buttonIcon,\n filterName: dropdown.name,\n type: foundDropdown.type\n };\n labelLists.push(newLabel);\n });\n } else if (isFilterItem(foundDropdown.selected)) {\n const newLabel: IFilterLabel = {\n filterId: foundDropdown.id,\n item: foundDropdown.selected,\n icon: dropdown.buttonIcon,\n filterName: dropdown.name,\n type: foundDropdown.type\n };\n\n labelLists.push(newLabel);\n }\n });\n\n datePickersConfig.forEach((datePicker) => {\n const foundPicker = filtersValues.find(element => element.id === datePicker.id);\n if (!foundPicker || foundPicker.selected === null || Array.isArray(foundPicker.selected) || isFilterItem(foundPicker.selected)) {\n return;\n } else {\n const newLabel: IFilterLabel = {\n filterId: foundPicker.id,\n item: foundPicker.selected,\n icon: 'Date',\n filterName: datePicker.name,\n type: foundPicker.type\n };\n labelLists.push(newLabel);\n }\n });\n\n return labelLists;\n};\n\nconst initFilters = (\n searchersConfig: ISearchFilter[],\n dropdownsConfig: IFilterDropdownConfig[],\n datePickersConfig: IFilterDatePicker[],\n): IFilterResult[] => {\n\n const newFilters: IFilterResult[] = [];\n\n searchersConfig.forEach(({ id, value, selected }) => {\n\n let validatedSelected: IFilterItem | null = null;\n if (typeof value === 'number') {\n validatedSelected = { text: value.toString(), value: value };\n } else if (value === 'string') {\n validatedSelected = { text: value, value: value };\n } else if (isFilterItem(selected)) {\n validatedSelected = selected;\n }\n\n const initialSearch: IFilterResult = { id, type: 'search', selected: validatedSelected };\n\n newFilters.push(initialSearch);\n });\n\n dropdownsConfig.forEach(({ id, selected }) => {\n\n const initialDropdown: IFilterResult = {\n id,\n type: 'dropdown',\n selected: (isFilterItem(selected) || Array.isArray(selected)) ? selected : null,\n };\n\n newFilters.push(initialDropdown);\n });\n\n datePickersConfig.forEach(({ id, initialValue, selected }) => {\n\n let validSelected: Date | DateInterval | null = null;\n\n if (initialValue) {\n validSelected = initialValue;\n } else if (selected) {\n validSelected = selected;\n }\n\n newFilters.push({ id, type: 'datepicker', selected: validSelected });\n });\n\n return newFilters;\n};\n\ninterface IFilterBar {\n filtersTitle?: string\n searchersConfig?: ISearchFilter[]\n dropdownsConfig?: IFilterDropdownConfig[]\n datePickersConfig?: IFilterDatePicker[]\n hasShowMore?: boolean\n showMoreText?: string\n showLessText?: string\n resultTextTemplate?: string\n totalResults: number\n clearText?: string\n isLoading?: boolean\n singleFilter?: boolean\n resultsDateFormat?: string\n onChangeCallback?: (currentSelected: IFilterResult[]) => void\n}\n\nconst FilterBar: React.FC<IFilterBar> = ({\n filtersTitle = 'Filters:',\n hasShowMore,\n searchersConfig = [],\n dropdownsConfig = [],\n datePickersConfig = [],\n showMoreText,\n showLessText,\n resultTextTemplate,\n clearText,\n totalResults,\n singleFilter = false,\n resultsDateFormat,\n onChangeCallback = () => { },\n ...props\n}) => {\n\n const [filtersValues, setFiltersValues] = useState<IFilterResult[]>(initFilters(searchersConfig, dropdownsConfig, datePickersConfig));\n const dropdownsConfigRef = useRef<IFilterDropdownConfig[]>(dropdownsConfig);\n\n // Prevents extra-renders only updating if the dropdowns config actually changed\n if (dropdownsConfigRef.current && !isequal(dropdownsConfigRef.current, dropdownsConfig)) {\n dropdownsConfigRef.current = dropdownsConfig;\n }\n\n // saves a reference of the debounce for searchers\n const debounceSearcher = useRef(debounce(updatedFilters => handleChange(updatedFilters), 600)).current;\n\n const handleChange = useCallback((newValues: IFilterResult[]) => {\n const notNullValues = newValues.filter((filter) => filter.selected !== null);\n\n onChangeCallback(notNullValues);\n\n }, [onChangeCallback]);\n\n const handleDropdownsSelected = useCallback((newValue: IFilterValue, filterId: string) => {\n setFiltersValues((prev) => {\n const updatedFilters = [...prev];\n const foundFilter = updatedFilters.find((filter) => filter.id === filterId);\n if (foundFilter && foundFilter.selected !== newValue) {\n foundFilter.selected = newValue;\n handleChange(updatedFilters);\n return updatedFilters;\n }\n return prev;\n });\n }, [handleChange]);\n\n const handleSearchers = useCallback((newValue: string, filterId: string) => {\n\n const updatedFilters = [...filtersValues];\n const foundFilter = updatedFilters.find((filter) => filter.id === filterId);\n if (foundFilter) {\n foundFilter.selected = newValue === '' ? null : { text: newValue, value: newValue };\n }\n\n debounceSearcher(updatedFilters);\n setFiltersValues(updatedFilters);\n\n }, [debounceSearcher, filtersValues]);\n\n const handleOnClear = useCallback(() => {\n\n const updatedFilters = [...filtersValues];\n updatedFilters.forEach((filterElement) => {\n if (filterElement.selected === null) {\n return;\n }\n filterElement.selected = null;\n });\n\n handleChange(updatedFilters);\n setFiltersValues(updatedFilters);\n }, [filtersValues, handleChange]);\n\n const handleOnRemoveFilter = useCallback((filterId: string, type: IFilterType, item: IFilterItem | Date | DateInterval) => {\n\n setFiltersValues((prev) => {\n const updatedFilters = [...prev];\n\n const foundFilter = updatedFilters.find((filterElement) => filterElement.id === filterId);\n\n if (!foundFilter) {\n return prev;\n } else if (Array.isArray(foundFilter.selected) && type === 'dropdown') {\n const selectedFiltered = foundFilter.selected.filter((oldItem) => {\n if (isFilterItem(oldItem) && isFilterItem(item)) {\n return oldItem.value !== item.value;\n }\n // it's required to have return a value usually will always receive filterItems and all will enter the if\n // but just in case if it's not a Filter item it will filter the value.\n return true;\n });\n foundFilter.selected = selectedFiltered.length === 0 ? null : selectedFiltered;\n } else {\n foundFilter.selected = null;\n }\n\n handleChange(updatedFilters);\n return updatedFilters;\n });\n\n }, [handleChange]);\n\n const handleDatePickers = useCallback((selection: DateInterval | Date | null, filterId: string) => {\n\n const updatedDatePickers = [...filtersValues];\n const foundFilter = updatedDatePickers.find((datePicker) => datePicker.id === filterId);\n\n if (foundFilter) {\n foundFilter.selected = selection;\n handleChange(filtersValues);\n setFiltersValues(updatedDatePickers);\n }\n\n }, [filtersValues, handleChange]);\n\n /**\n * This use Effect will update filters text selections in case the language is changed.\n * Dropdowns are the only ones that required this because Inputs text are the user type data.\n * DatePickers do not change text for now\n */\n useEffect(() => {\n let mountConfig = true;\n\n if (mountConfig && dropdownsConfigRef.current) {\n setFiltersValues((prev) => {\n const updatedFilters = [...prev];\n updatedFilters.forEach((filter: IFilterResult) => {\n\n const foundDropdown = dropdownsConfigRef.current.find((dropdown) => dropdown.id === filter.id);\n\n if (foundDropdown) {\n\n if (Array.isArray(filter.selected)) {\n filter.selected.forEach(item => {\n const foundItem = foundDropdown.list.find((dropdownItem) => dropdownItem.value === item.value);\n\n if (foundItem) {\n item.text = foundItem.text;\n }\n });\n } else if (isFilterItem(filter.selected)) {\n const foundItem = foundDropdown.list.find((item: IFilterItem) => {\n return filter.selected === null\n ? false\n : isFilterItem(filter.selected) ? item.value === filter.selected.value : false;\n });\n\n if (foundItem) {\n filter.selected.text = foundItem.text;\n }\n }\n }\n });\n\n return updatedFilters;\n });\n }\n\n return () => {\n mountConfig = false;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dropdownsConfigRef.current]);\n\n return (\n <Container {...props}>\n <Title>{filtersTitle}</Title>\n <FilterInputs\n {...{\n hasShowMore,\n showMoreText,\n showLessText,\n }}\n searchFilters={createSearchers(searchersConfig, filtersValues, singleFilter, handleSearchers)}\n dropdownFilters={createDropdownFilters(dropdownsConfigRef.current, filtersValues, singleFilter, handleDropdownsSelected)}\n datePickerFilters={datePickersConfig ? createDatePickers(datePickersConfig, filtersValues, singleFilter, handleDatePickers) : undefined}\n />\n <StyledFilterResults\n {...{ resultTextTemplate, clearText, totalResults, resultsDateFormat }}\n labelLists={createLabelResults(searchersConfig, dropdownsConfigRef.current, datePickersConfig, filtersValues)}\n onClearAll={handleOnClear}\n onRemoveFilter={handleOnRemoveFilter}\n />\n </Container>\n );\n};\n\nexport default FilterBar;","import React from 'react';\nimport styled, {css} from 'styled-components';\nimport Icon from './Icon';\nimport { IStatusDot } from '..';\n\nconst Container = styled.div`\n position: relative;\n display: inline-block;\n`;\n\nconst StatusCounter = styled.div<{ color?: IStatusDot }>`\n position: absolute;\n left: 14px;;\n top: -12px;\n border-radius: 50%;\n height: 14px;\n min-width: 14px;\n padding: 2px;\n font-size: 10px;\n color: white;\n display: flex;\n align-items: center;\n justify-content: center;\n ${({theme:{animation}}) => css`\n transition: background-color ${animation.speed.slow} ${animation.easing.primary.easeInOut};\n `}\n background-color: ${({ theme, color }) => color ? theme.colors.status[color] : 'hsla(0, 0%, 91.8%, 0)'};\n`;\n\nconst StatusDot = styled.div<{ color?: IStatusDot }>`\n width: 6px;\n height: 6px;\n border-radius: 50%;\n position: absolute;\n top: -4px;\n right: -7px;\n ${({theme:{animation}}) => css`\n transition: background-color ${animation.speed.slow} ${animation.easing.primary.easeInOut};\n `}\n background-color: ${({ theme, color }) => color ? theme.colors.status[color] : 'hsla(0, 0%, 91.8%, 0)'};\n`;\n\ninterface IStatusIcon {\n icon: string\n status?: IStatusDot\n counter?: number\n}\n\nconst StatusIcon: React.FC<IStatusIcon> = ({icon, status, counter}) => {\n return (\n <Container>\n {status && (counter === undefined)\n ? <StatusDot color={status} />\n : (counter === undefined) ? null : <StatusCounter color={status}>{counter}</StatusCounter>}\n <Icon icon={icon} size={18} color='dimmed' />\n </Container>\n );\n};\n\nexport default StatusIcon;","import React, { useState, useCallback } from 'react';\nimport styled, { css, keyframes } from 'styled-components';\nimport { IDragLineUISharedOptions } from '.';\n\n\nconst HandleTouchReactionKeyframes = keyframes`\n 0% {\n transform: scale(1);\n }\n\n 75% {\n transform: scale(3);\n }\n\n 100% {\n transform: scale(1.75);\n }\n`;\n\nconst HandleMouseReactionKeyframes = keyframes`\n 0% {\n transform: scale(1);\n }\n\n 75% {\n transform: scale(0);\n }\n\n 100% {\n transform: scale(0.5);\n }\n`;\n\n\nconst HandleBase = styled.svg<{ mouseDragging: boolean, styling: string}>`\n touch-action: none;\n user-select: none;\n overflow: visible;\n cursor: pointer;\n fill: ${({theme, styling}) => theme.custom.lines[styling].handleBase.fill};\n appearance: none;\n`;\n\nconst HandleRingLayer = styled.circle<{maskID: string, styling: string}>`\n fill: none;\n stroke: ${({theme, styling}) => theme.custom.lines[styling].handleRingLayer.stroke};\n mask: url(#${props => (props.maskID)});\n`;\nconst HandleReactiveGroup = styled.g<{touchDragging: boolean, mouseDragging: boolean}>`\n opacity: 0.65;\n cursor: pointer;\n transform: scale(1);\n\n ${props => props.touchDragging && css`\n animation: ${HandleTouchReactionKeyframes} 0.5s forwards cubic-bezier(0.175, 0.885, 0.32, 1.275) 1;\n `}\n\n ${props => props.mouseDragging && css`\n animation: ${HandleMouseReactionKeyframes} 0.25s forwards cubic-bezier(0.175, 0.885, 0.32, 1.275) 1;\n `}\n\n`;\nconst HandleReactiveFill = styled.circle<{styling: string}>`\n mix-blend-mode: multiply;\n fill: ${({theme, styling}) => theme.custom.lines[styling].handleReactiveFill.fill};\n stroke: none;\n`;\nconst HandleReactiveRing = styled.circle<{styling: string}>`\n fill: none;\n stroke: ${({theme, styling}) => theme.custom.lines[styling].handleReactiveRing.stroke};\n`;\n\nconst HandleContrastLayer = styled.circle<{styling: string}>`\n overflow: visible;\n mix-blend-mode: multiply;\n fill: none;\n stroke: ${({theme, styling}) => theme.custom.lines[styling].handleContrastLayer.stroke};\n`;\nconst HandleShadowLayer = styled.circle<{fillID: string}>`\n mix-blend-mode: multiply;\n fill: url(#${props => (props.fillID)});\n`;\n\nconst GrabHandleIndexGroup = styled.g<{showIndex: boolean}>`\n opacity: 0;\n pointer-events: none;\n ${props => props.showIndex && css`\n opacity: 1;\n `};\n\n`;\n\nconst StopStart = styled.stop<{styling: string}>`\n stop-color: ${({theme, styling}) => theme.custom.lines[styling].stopStart.stopColor };\n`;\nconst StopEnd = styled.stop<{styling: string}>`\n stop-color: ${({theme, styling}) => theme.custom.lines[styling].stopEnd.stopColor };\n`;\n\n\nconst GrabHandleIndexText = styled.text<{showIndex: boolean, styling: string}>`\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n stroke: ${({theme, styling}) => theme.custom.lines[styling].grabHandleText.stroke};\n text-align: center;\n\n font-weight: bold;\n transition: opacity 250ms ease;\n pointer-events: none;\n\n\n`;\n\nconst IconGroup = styled.g`\n\n`;\n\ninterface IHandleUnitProps {\n lineSetId: number\n index: number\n angle: number | null\n useAngles: boolean\n unit: number\n size: number\n x: number;\n y: number;\n Icon?: React.FunctionComponent<React.SVGProps<SVGSVGElement>> & {rotate?: number};\n rotate?: number;\n moveCallback: any;\n moveEndCB?: ()=>void;\n options: IDragLineUISharedOptions;\n readOnlyHandle?: boolean;\n styling?: string;\n}\n\nconst HandleUnit : React.FC<IHandleUnitProps> = (props) => {\n // console.log(props.lineSetId, typeof props.lineSetId)\n const { index, useAngles, angle, unit, size, lineSetId, x, y, moveCallback, moveEndCB=()=>{}, Icon, rotate=0, options, readOnlyHandle = false, styling='primary'} = props;\n // console.log(\"Handle \"+ index +\" from set \"+ lineSetId + \" :: \" + x, \", \" + y)\n const handleInstance = React.createRef<SVGSVGElement>();\n\n const [ touchDragging, setTouchDragging ] = useState(false);\n const [ mouseDragging, setMouseDragging ] = useState(false);\n const [ touchIndex, setTouchIndex ] = useState<number | null>(null);\n\n\n /** --- Toucher Events Section --- */\n const handleTouchStart = useCallback((e: any) => {\n e.preventDefault();\n if (readOnlyHandle) { return; }\n // Remember what touch event index is for this handle.\n for (let i = 0; i < e.touches.length; i++) {\n const touch = e.touches[i];\n if(touch.target.parentNode.parentElement === handleInstance || touch.target.parentNode.parentElement.parentElement){\n setTouchDragging(true);\n setTouchIndex(i);\n }\n }\n },[handleInstance, readOnlyHandle]);\n\n\n const handleTouchEnd = useCallback(() => {\n if (readOnlyHandle) { return; }\n setTouchDragging(false);\n setTouchIndex(null);\n moveEndCB();\n },[moveEndCB, readOnlyHandle]);\n\n const handleTouchMove = useCallback((e: React.TouchEvent<SVGSVGElement>) => {\n if (readOnlyHandle) { return; }\n for (let i = 0; i < e.touches.length; i++) {\n if(i === touchIndex){\n moveCallback({ x: e.touches[i].pageX, y: e.touches[i].pageY}, index);\n }\n }\n },[index, moveCallback, readOnlyHandle, touchIndex]);\n\n /** --- Mouse Events Section --- */\n\n const handleMouseMove = useCallback((e: MouseEvent) => {\n e.preventDefault();\n if (readOnlyHandle) { return; }\n moveCallback({ x: e.pageX, y: e.pageY}, index);\n },[index, moveCallback, readOnlyHandle]);\n\n const handleMouseUp = useCallback((e: MouseEvent) => {\n e.preventDefault();\n if (readOnlyHandle) { return; }\n setMouseDragging(false);\n window.removeEventListener('mousemove', handleMouseMove);\n window.removeEventListener('mouseup', handleMouseUp);\n moveCallback({ x: e.pageX, y: e.pageY}, index);\n setTimeout(moveEndCB);\n },[handleMouseMove, index, moveCallback, moveEndCB, readOnlyHandle]);\n\n const handleMouseDown = useCallback((e: React.MouseEvent<SVGSVGElement, MouseEvent>) => {\n e.preventDefault();\n if (readOnlyHandle) { return; }\n setMouseDragging(true);\n window.addEventListener('mousemove', handleMouseMove);\n window.addEventListener('mouseup', handleMouseUp);\n\n },[handleMouseMove, handleMouseUp, readOnlyHandle]);\n\n const maskID = useAngles ? \"mask-\" + lineSetId + '-' + index : '';\n const shadowGradientID = \"shadowGradient-\" + lineSetId + '-' + index;\n const {showPointHandle = true, showPointLabel= false, pointIndexOffset} = options as IDragLineUISharedOptions;\n\n return (\n\n <HandleBase ref={handleInstance} styling={styling} x={x} y={y} mouseDragging={mouseDragging} onTouchStart={handleTouchStart} onTouchEnd={handleTouchEnd} onTouchMove={handleTouchMove} onMouseDown={handleMouseDown}>\n <defs>\n <mask id={maskID}>\n <rect width='100%' height='100%' x='-50%' y='-50%' fill='white' />\n <rect width={size / 3} height={size / 0.9} x={-((size / 3) /2)} y={-((size / 0.9) + 5)} fill='black' transform={`rotate(${angle || 0} 0 0)`} />\n </mask>\n <radialGradient id={shadowGradientID}>\n <StopStart styling={styling} offset='0%' />\n <StopEnd styling={styling} offset='80%' />\n </radialGradient>\n </defs>\n\n {\n Icon ?\n <IconGroup transform={`scale(${unit * 1.5 }) translate(-21 -21) rotate(${rotate}, 21, 21 )`}>\n <Icon height='42' width='42' />\n </IconGroup>\n :\n showPointHandle &&\n <g transform={`scale(${ unit })`}>\n\n <HandleShadowLayer r={size * 1} fillID={shadowGradientID} />\n <HandleContrastLayer styling={styling} r={size / 2.4} strokeWidth={size / 3} />\n\n <HandleReactiveGroup touchDragging={touchDragging} mouseDragging={mouseDragging}>\n <HandleReactiveFill styling={styling} r={size / 1.8} />\n <HandleReactiveRing styling={styling} r={size / 2.25} strokeWidth={size / 3} />\n </HandleReactiveGroup>\n\n <HandleRingLayer styling={styling} r={size / 2} strokeWidth={size / 6} maskID={maskID} />\n\n {showPointLabel &&\n <GrabHandleIndexGroup showIndex>\n <GrabHandleIndexText styling={styling} transform='translate(-5,6)' fontSize='20px' showIndex>\n {index + pointIndexOffset}\n </GrabHandleIndexText>\n </GrabHandleIndexGroup>}\n\n </g>\n }\n\n\n\n </HandleBase>\n );\n};\n\nexport default HandleUnit;\n","import React from 'react';\nimport styled, { css } from 'styled-components';\nimport { IDragLineUISharedOptions } from '.';\nimport Icon from '../Icons/Icon';\n\n\nconst ContrastLine = styled.line<{styling: string}>`\n pointer-events: none;\n stroke: ${({theme, styling}) => theme.custom.lines[styling].contrastLine.stroke};\n mix-blend-mode: multiply;\n`;\n\nconst HighlightLine = styled.line<{styling: string}>`\n pointer-events: none;\n stroke: ${({theme, styling}) => theme.custom.lines[styling].highlightLine.stroke};\n`;\n\n\n\nconst GrabHandle = styled.circle<{hide: boolean, styling: string}>`\n fill: ${({theme, styling}) => theme.custom.lines[styling].grabHandle.fill};\n stroke: ${({theme, styling}) => theme.custom.lines[styling].grabHandle.stroke};\n opacity: 1;\n transition: opacity 250ms ease;\n cursor: grab;\n\n ${props => props.hide && css`\n pointer-events: none;\n opacity: 0;\n `};\n`;\n\n\nconst GrabHandleIndexGroup = styled.g<{showIndex: boolean}>`\n opacity: 0;\n pointer-events: none;\n ${props => props.showIndex && css`\n opacity: 1;\n `};\n\n`;\n\nconst GrabHandleIndexText = styled.text<{showIndex: boolean, styling: string}>`\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n text-align: center;\n fill: ${({theme, styling}) => theme.custom.lines[styling].grabHandleText.stroke};\n font-weight: bold;\n transition: opacity 250ms ease;\n pointer-events: none;\n`;\n\nconst LabelText = styled.text<{showIndex: boolean, styling: string}>`\n text-align: center;\n fill: ${({theme, styling}) => theme.custom.lines[styling].label.fill};\n font-weight: bold;\n transition: opacity 250ms ease;\n pointer-events: none;\n`;\n\nconst GrabHandleContrast = styled(GrabHandle)`\n fill: none;\n stroke: ${({theme, styling}) => theme.custom.lines[styling].grabHandleContrast.stroke};\n`;\n\nconst GrabHandleGroup = styled.g<{ showIndex: boolean, originalRadius: number, styling: string}>`\n\n ${GrabHandle}, ${GrabHandleContrast} {\n transition: r 250ms ease;\n }\n\n ${props => props.showIndex && css`\n ${GrabHandle}, ${GrabHandleContrast} {\n pointer-events: none;\n r: ${props.originalRadius * 1.75};\n }\n `};\n`;\n\nconst DMCircle = styled.circle`\n fill: hsla(203, 100%, 35%, 0.49);\n`;\n\ninterface ILineUnitProps {\n lineSetId: number,\n options: IDragLineUISharedOptions,\n x1: number,\n y1: number,\n x2: number,\n y2: number,\n unit: number,\n lineMoveCallback: any,\n lineMoveStartCallback: any,\n moveEndCB?: () => void;\n label?: string;\n styling?: string;\n showSmallDirectionMark?: boolean;\n overrideShowMoveHandle?: boolean;\n}\n\n\n\nconst LineUnit : React.FC<ILineUnitProps> = (props) => {\n const { x1, y1, x2, y2, unit, lineMoveCallback, lineMoveStartCallback, options, lineSetId, label, styling = 'primary', moveEndCB = () => { }, showSmallDirectionMark = false, overrideShowMoveHandle = true } = props;\n const { handleFinderActive, revealSetIndex, showMoveHandle, setIndexOffset, showDirectionMark} = options;\n\n // const a = x1 - x2;\n // const b = y1 - y2;\n // const distance = Math.sqrt( a*a + b*b );\n //this distance 60 doesn't work now...\n // const hideGrabHandle = showMoveHandle === false || (showMoveHandle !== true && distance < 60);\n\n const hideGrabHandle = !showMoveHandle || !overrideShowMoveHandle;\n\n\n /** --- Toucher Events Section --- */\n const grabTouchMove = (e: any) => {\n for (let i = 0; i < e.touches.length; i++) {\n // if(i === touchIndex){\n lineMoveCallback({ x: e.touches[i].pageX, y: e.touches[i].pageY});\n // }\n }\n moveEndCB();\n };\n\n const grabTouchStart = (e: any) => {\n for (let i = 0; i < e.touches.length; i++) {\n // if(i === touchIndex){\n lineMoveStartCallback({ x: e.touches[i].pageX, y: e.touches[i].pageY});\n // }\n }\n };\n\n\n /** --- Mouse Events Section --- */\n const handleMouseDown = (e: any) => {\n lineMoveStartCallback({ x: e.pageX, y: e.pageY });\n window.addEventListener(\"mousemove\", handleMouseMove);\n window.addEventListener(\"mouseup\", handleMouseUp);\n e.preventDefault();\n };\n\n const handleMouseUp = (e: any) => {\n window.removeEventListener(\"mousemove\", handleMouseMove);\n window.removeEventListener(\"mouseup\", handleMouseUp);\n lineMoveCallback({ x: e.pageX, y: e.pageY });\n moveEndCB();\n e.preventDefault();\n };\n\n const handleMouseMove = (e: any) => {\n lineMoveCallback({ x: e.pageX, y: e.pageY });\n e.preventDefault();\n };\n const midpoint = {\n x: (x2 + x1) / 2,\n y: (y2 + y1) / 2\n };\n\n const directionMarkCoordinate = () => {\n const angle = Math.atan2((y2 - y1), (x2 - x1));\n const angleMode = (Math.PI / 2) - angle;\n const x = midpoint.x + Math.sin(angleMode) -5;\n const y = midpoint.y + Math.cos(angleMode);\n const rotate = (180 / Math.PI) * Math.atan2(y2 - y1, x2 - x1);\n const labelRotate = -rotate;\n return {x, y, rotate, labelRotate};\n };\n\n const getDirectionMarkLine = () => {\n const dmCoordinate = directionMarkCoordinate();\n return (\n <g transform={`translate(${dmCoordinate.x},${dmCoordinate.y}) rotate(${dmCoordinate.rotate}) scale(${unit * 1})`}>\n <g transform='translate(-3,-30) scale(0.8)'>\n <DMCircle r={12} cx={6} cy={7} />\n <Icon color='inverse' icon='Up' size={12} weight='heavy' forSvgUsage />\n </g>\n {showSmallDirectionMark &&\n <g transform='translate(5,25) rotate(-180) scale(0.8)'>\n <DMCircle r={8} cx={3.5} cy={4.5} />\n <Icon color='inverse' icon='Up' size={7} weight='heavy' forSvgUsage />\n </g>}\n {label &&\n <g transform={`translate(0,${showSmallDirectionMark ? 45 : 30}) rotate(${dmCoordinate.labelRotate})`}>\n <LabelText textAnchor='middle' dominantBaseline='middle' styling={styling} fontSize={`${14}px`} x={0} y={0} showIndex={revealSetIndex || handleFinderActive}>\n {label}\n </LabelText>\n </g>}\n </g>\n );\n };\n\n return (\n <g>\n <ContrastLine styling={styling} strokeLinecap='round' x1={x1} y1={y1} x2={x2} y2={y2} strokeWidth={4 * unit} />\n <HighlightLine styling={styling} x1={x1} y1={y1} x2={x2} y2={y2} strokeWidth={2 * unit} />\n\n <GrabHandleGroup styling={styling} showIndex={handleFinderActive && revealSetIndex} originalRadius={8 * unit}>\n <GrabHandleContrast styling={styling} r={8 * unit} strokeWidth={4 * unit} cx={midpoint.x} cy={midpoint.y} hide={hideGrabHandle} />\n <GrabHandle styling={styling} textAnchor='middle' r={8 * unit} strokeWidth={1 * unit} cx={midpoint.x} cy={midpoint.y} hide={hideGrabHandle} onTouchMove={grabTouchMove} onTouchStart={grabTouchStart} onMouseDown={handleMouseDown} />\n </GrabHandleGroup>\n\n <GrabHandleIndexGroup showIndex={!hideGrabHandle && (handleFinderActive || revealSetIndex)}>\n <GrabHandleIndexText styling={styling} fontSize={`${unit * 10}px`} x={midpoint.x - (3 * unit)} y={midpoint.y + (4 * unit)} showIndex={revealSetIndex || handleFinderActive}>\n {lineSetId + setIndexOffset}\n </GrabHandleIndexText>\n </GrabHandleIndexGroup>\n\n {/* <circle r={1* unit} cx={x1} cy={y1} fill='white' /> */}\n {/* <circle r={1* unit} cx={x2} cy={y2} fill='white' /> */}\n\n {showDirectionMark ?\n getDirectionMarkLine()\n :\n label &&\n <LabelText styling={styling} fontSize={`${unit * 14}px`} x={midpoint.x - (16 * unit)} y={midpoint.y - (15 * unit)} showIndex={revealSetIndex || handleFinderActive}>\n {label}\n </LabelText>}\n </g>\n );\n\n};\n\nexport default LineUnit;\n","import { createContext } from 'react';\nimport { IPointSet } from '.';\n\ninterface IContextProps {\n state: IPointSet[]// IState;\n dispatch: any// ({type}:{type:any}) => void;\n }\n\nexport const LineSetContext = createContext({} as IContextProps);\n","import React, { useState, useEffect, useCallback, useContext, useRef } from 'react';\nimport HandleUnit from './HandleUnit';\nimport LineUnit from './LineUnit';\nimport update from 'immutability-helper';\nimport { LineSetContext } from './Contexts';\nimport { IPointSet, IDragLineUISharedOptions, IVector2 } from '.';\nimport styled from 'styled-components';\n\nconst Point = styled.circle<{styling: string}>`\n fill: ${({theme, styling}) => theme.custom.lines[styling].point.fill};\n`;\n\nconst AreaLabelText = styled.text<{styling: string}>`\n text-align: center;\n fill: ${({theme, styling}) => theme.custom.lines[styling].label.fill};\n font-weight: bold;\n transition: opacity 250ms ease;\n pointer-events: none;\n`;\n\ninterface ILineSetProps {\n lineSetId: number,\n boundaries: any,\n size: number,\n unit: number,\n lineData: IPointSet,\n options: IDragLineUISharedOptions,\n onLineMoveEnd: () => void;\n getCTM: () => DOMMatrix | null;\n}\n\ninterface AreaLabelProps {\n lineSetData: IPointSet,\n unit: number\n}\n\nconst AreaLabel : React.FC<AreaLabelProps> = ( { lineSetData, unit } ) => {\n const pointsLength = lineSetData.points.length;\n if (pointsLength < 3) return null;\n let midpoint = { x: 0, y: 0 };\n\n lineSetData.points.map(({ x, y }) => {\n midpoint.x += x;\n midpoint.y += y;\n return null;\n });\n\n midpoint = { x: midpoint.x / pointsLength, y: midpoint.y / pointsLength };\n const Textlen = lineSetData.areaName?.length || 1;\n return <AreaLabelText fontSize={`${unit * 14}px`} styling={lineSetData.styling || 'primary'} x={midpoint.x - (4 * Textlen * unit)} y={midpoint.y + (6 * unit)}>{lineSetData.areaName}</AreaLabelText>;\n};\n\nconst LineSet : React.FC<ILineSetProps> = ({ getCTM, boundaries, unit, size, lineSetId, options , onLineMoveEnd}) => {\n // console.log(\"Unit \" + lineSetId + \", reporting in...\")\n\n const {state, dispatch} = useContext(LineSetContext);\n const lineSetData = state[lineSetId];\n\n const [handleAngles, setHandleAngles] = useState<number[]>([]);\n\n const handleRelation = useRef<{offsetX: number, offsetY: number}[]>([]);\n const handleRadius : number = size / 2;\n const handleUsesAngles : boolean = lineSetData.points.length === 2;\n\n /**\n * Ensure provided position vector is within the boundaries (of the container)\n * @param {IVector2} position Vector to be enforced.\n * @returns {IVector2} The position updated clamped to range.\n */\n const enforceBoundaries = useCallback((position: IVector2) => {\n\n if(position.x < boundaries.x.min){\n position.x = boundaries.x.min;\n } else if (position.x > boundaries.x.max){\n position.x = boundaries.x.max;\n }\n\n if(position.y < boundaries.y.min){\n position.y = boundaries.y.min;\n } else if (position.y > boundaries.y.max){\n position.y = boundaries.y.max;\n }\n\n return position;\n\n }, [boundaries]);\n\n\n const handleMoveCallback = useCallback((pointerPosition: IVector2, index: number) => {\n const screenCTM = getCTM();\n if(!screenCTM){ return; }\n\n const pointer = enforceBoundaries({\n x: ((pointerPosition.x - screenCTM.e ) / screenCTM.a),\n y: ((pointerPosition.y - screenCTM.f ) / screenCTM.d)\n });\n const point ={\n x: Math.round(pointer.x),\n y: Math.round(pointer.y)\n };\n const newLineSetData = update(lineSetData, {points:{[index]: {$merge: point}}});\n\n dispatch({type: \"UPDATE\", index: lineSetId, data: newLineSetData });\n\n }, [getCTM, enforceBoundaries, lineSetData, dispatch, lineSetId]);\n\n const lineDragStart = useCallback((pointerPosition: IVector2) => {\n const screenCTM = getCTM();\n if(!screenCTM){ return; }\n\n const pointer = {\n x: ((pointerPosition.x - screenCTM.e ) / screenCTM.a) - handleRadius,\n y: ((pointerPosition.y - screenCTM.f ) / screenCTM.d) - handleRadius\n };\n\n handleRelation.current = lineSetData.points.map((handle) => {\n const xDiff = pointer.x - handle.x;\n const yDiff = pointer.y - handle.y;\n return {\n offsetX: xDiff,\n offsetY: yDiff\n };\n });\n\n },[handleRadius, lineSetData.points, getCTM]);\n\n const lineDragUpdate = useCallback((pointerPosition: IVector2) => {\n const screenCTM = getCTM();\n if(!screenCTM){ return; }\n\n const { points } = lineSetData;\n\n const pointer = {\n x: ((pointerPosition.x - screenCTM.e ) / screenCTM.a) - handleRadius,\n y: ((pointerPosition.y - screenCTM.f ) / screenCTM.d) - handleRadius\n };\n\n const newPoints = points.map((_handle, index) => {\n const {offsetX=0, offsetY=0} = handleRelation.current[index]||{};\n\n return enforceBoundaries({\n x: Math.round(pointer.x - offsetX),\n y: Math.round(pointer.y - offsetY)\n });\n\n });\n\n dispatch({type: \"UPDATE\", index: lineSetId, data: { ...lineSetData, points: [...newPoints] } });\n\n }, [getCTM, lineSetData, handleRadius, dispatch, lineSetId, enforceBoundaries]);\n\n\n\n const calcAngle = (originX: number, originY: number, towardsX: number, towardsY: number) => {\n const angle = Math.atan2(towardsY-originY,towardsX-originX);\n const degrees = angle*180/Math.PI + 90;\n return degrees;\n };\n\n // useCallback maybe to reduce unchanged deals?\n const updateHandleAngles = useCallback((inputHandleData: IPointSet) => {\n const { points } = inputHandleData;\n const outputData : number[] = [];\n\n // Update all handle angles in data set.\n inputHandleData.points.forEach((handle, index) => {\n const nextIndex = ( index + 2 > points.length ) ? 0 : index + 1 ;\n const nextHandle = points[nextIndex];\n const angle = calcAngle(handle.x, handle.y, nextHandle.x, nextHandle.y);\n outputData.push(angle);\n });\n\n setHandleAngles(outputData);\n }, []);\n\n\n useEffect(() => {\n // Update angles when the line's data set has changed.\n if(handleUsesAngles){\n updateHandleAngles(lineSetData);\n }\n }, [lineSetData, updateHandleAngles, handleUsesAngles]);\n\n const handles = (lineSetData?.showPointHandle === undefined || lineSetData?.showPointHandle) &&\n lineSetData.points.map(({ x, y }, index) =>\n <HandleUnit\n key={index+lineSetId}\n lineSetId={lineSetId}\n rotate={lineSetData.rotate}\n Icon={lineSetData.icon}\n index={index}\n unit={unit}\n size={size}\n useAngles={handleUsesAngles}\n angle={handleAngles[index]}\n x={x}\n y={y}\n moveEndCB={onLineMoveEnd}\n moveCallback={handleMoveCallback}\n options={options}\n styling={lineSetData.styling}\n readOnlyHandle={lineSetData.readOnly}\n />\n );\n\n const points = options.showPoint && (lineSetData.points.map(({x,y}, index) => <Point styling={lineSetData.styling||'primary'} key={index} r={unit} cx={x} cy={y} />));\n\n const lines = lineSetData.points.map(({x:x1,y:y1}, index) => {\n const {points, name, styling = 'primary'} = lineSetData;\n //nextIndex index is next Point's index\n const nextIndex = ( index + 1 >= points.length ) ? 0 : index + 1 ;\n //in the case of a line don't draw line back from second point\n if(index === 1 && nextIndex === 0){\n return null;\n }\n const {x:x2,y:y2} = points[nextIndex];\n\n return (\n <LineUnit\n key={index}\n moveEndCB={onLineMoveEnd}\n lineSetId={lineSetId}\n options={options}\n x1={x1}\n y1={y1}\n x2={x2}\n y2={y2}\n unit={unit}\n label={name}\n styling={styling}\n lineMoveCallback={lineDragUpdate}\n lineMoveStartCallback={lineDragStart}\n showSmallDirectionMark={lineSetData.showSmallDirectionMark}\n overrideShowMoveHandle={lineSetData.showMoveHandle}\n />\n );});\n\n return (\n <g>\n {lines}\n {handles}\n {points}\n <AreaLabel lineSetData={lineSetData} unit={unit} />\n </g>\n );\n};\n\nexport default LineSet;","import React, { useState, useEffect, useCallback, useRef, useContext } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport LineSet from './LineSet';\nimport { LineSetContext } from './Contexts';\nimport { LineUIOptions, IBoundary } from '.';\nimport Spinner from '../Indicators/Spinner';\n\n\nconst Container = styled.div`\n position: relative;\n line-height: 0;\n user-select: none;\n touch-action: none;\n /* box-shadow: 0 10px 20px hsla(195deg, 65%, 5%, 35%); */\n /* border: 10px solid hsla(195deg, 45%, 35%, 45%); */\n /* border-radius:3px; */\n\n width: auto;\n /* transform: translateY(-70%); */\n\n`;\n\nconst LoadingOverlay =styled.div`\n position: absolute;\n top:0;\n bottom: 0;\n left: 0;\n right: 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n`;\n\nconst Frame = styled.svg<{ transculent?: boolean }>`\n touch-action: none;\n user-select: none;\n margin: 0;\n\n overflow: visible;\n\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n bottom: 0;\n height: 100%;\n width: 100%;\n transition: background 250ms ease;\n background: hsla(0deg, 0%, 0%, 0%);\n\n ${props => props.transculent && css`\n background: hsla(0deg, 0%, 0%, 35%);\n `}\n\n`;\nconst Image = styled.img`\n object-fit: contain;\n width: 100%;\n height: 100%;\n`;\n\n\ninterface LineUIProps {\n src: string;\n onSizeChange?: (size: { h: number; w: number }) => void;\n onLineMoveEnd?: () => void;\n options?: LineUIOptions;\n showDirectionMark?: boolean;\n}\nconst LineUI: React.FC<LineUIProps> = ({\n src,\n onSizeChange = () => { },\n onLineMoveEnd = () => { },\n options: {\n showHandleFinder,\n showSetIndex,\n showPointLabel = false,\n showPointHandle,\n showMoveHandle,\n showGrabHandle,\n setIndexOffset = 0,\n pointIndexOffset = 0,\n showPoint = false,\n fixedImgDimensions,\n boundaryOffset = 0,\n showDirectionMark = false\n } = {}\n}) => {\n\n\n const [boundaries, setBoundaries] = useState<IBoundary>({ x: { min: 0, max: 0 }, y: { min: 0, max: 0 } });\n const { state } = useContext(LineSetContext);\n\n const [handleFinder, setHandleFinder] = useState<boolean>(false);\n\n const [loaded, setLoaded] = useState(false);\n\n\n // Scale Code\n const [imgSize, setImgSize] = useState({ h: 1, w: 1 });\n const [unit, setUnit] = useState(1);\n const imgRef = useRef<HTMLImageElement>(null);\n const frame = useRef<SVGSVGElement>(null);\n\n\n\n // Initialization functions.\n const initScaleAndBounds = useCallback(() => {\n if (!imgRef.current) {\n return;\n }\n\n const { naturalHeight, naturalWidth, clientHeight } = imgRef.current;\n const h = (fixedImgDimensions && fixedImgDimensions.y) || naturalHeight;\n const w = (fixedImgDimensions && fixedImgDimensions.x) || naturalWidth;\n if (h !== imgSize.h || w !== imgSize.w) {\n setImgSize({ h, w });\n onSizeChange({ h, w });\n console.debug('image size:', { naturalHeight, naturalWidth, clientHeight, unit: naturalHeight / clientHeight });\n }\n\n if (h / clientHeight !== unit) {\n setUnit(h / clientHeight);\n }\n setLoaded(true);\n }, [fixedImgDimensions, imgSize.h, imgSize.w, onSizeChange, unit]);\n\n const calculateCTM = useCallback(() => {\n if (!frame.current) { return null; }\n //On size change make sure to refresh CTM\n const ctm = frame.current.getScreenCTM();\n console.debug('calculateCTM', ctm);\n return ctm;\n }, []);\n\n const handlePositionTipShow = (e: any) => {\n if (e.target === frame.current) {\n setHandleFinder((!handleFinder === false) && true);\n }\n };\n\n const handlePositionTipHide = () => {\n setHandleFinder(showHandleFinder || false);\n };\n\n useEffect(() => {\n if (!frame.current) { return; }\n\n // Redefine boundaries loaded image changes our svg viewbox.\n const { viewBox } = frame.current;\n const bounds = {\n x: {\n min: viewBox.baseVal.x + boundaryOffset,\n max: viewBox.baseVal.x + viewBox.baseVal.width - boundaryOffset\n },\n y: {\n min: viewBox.baseVal.y + boundaryOffset,\n max: viewBox.baseVal.y + viewBox.baseVal.height - boundaryOffset\n },\n };\n console.debug('setBoundaries', bounds);\n setBoundaries(bounds);\n }, [imgSize, boundaryOffset]);\n\n useEffect(() => {\n\n // Make sure we always keep scale up to date on resize.\n window.addEventListener('resize', initScaleAndBounds);\n return () => {\n window.removeEventListener('resize', initScaleAndBounds);\n };\n }, [initScaleAndBounds]);\n\n\n const options = {\n handleFinderActive: handleFinder,\n revealSetIndex: showSetIndex !== false && (showSetIndex || state.length > 1),\n showPointLabel,\n showPointHandle: showPointHandle || (showPointHandle !== false && showGrabHandle !== false),\n showMoveHandle: showMoveHandle || (showMoveHandle !== false && showGrabHandle !== false),\n setIndexOffset,\n pointIndexOffset,\n showPoint,\n showDirectionMark\n };\n\n return (\n <Container>\n <Image ref={imgRef} onLoad={initScaleAndBounds} src={src} alt='' />\n {\n (loaded && boundaries) ?\n <Frame ref={frame} viewBox={`0 0 ${imgSize.w} ${imgSize.h} `} version='1.1' xmlns='http://www.w3.org/2000/svg' onPointerDown={handlePositionTipShow} onPointerUp={handlePositionTipHide} onPointerLeave={handlePositionTipHide} transculent={handleFinder}>\n {state.map((lineSet, index) => (\n <LineSet key={index} onLineMoveEnd={onLineMoveEnd} lineSetId={index} lineData={lineSet} getCTM={calculateCTM} boundaries={boundaries} unit={unit} size={30} options={options} />\n ))}\n </Frame>\n :\n <LoadingOverlay><Spinner size='large' styling='primary' /></LoadingOverlay>\n }\n </Container>\n );\n\n};\n\nexport default LineUI;\n","import React, { useState, useEffect, useCallback, useRef, useContext } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport LineSet from './LineSet';\nimport { LineSetContext } from './Contexts';\nimport Spinner from '../Indicators/Spinner';\nimport { LineUIOptions, IBoundary, LineUIVideoOptions } from '.';\n\n\nconst Container = styled.div`\n position: relative;\n line-height: 0;\n user-select: none;\n touch-action: none;\n /* box-shadow: 0 10px 20px hsla(195deg, 65%, 5%, 35%); */\n /* border: 10px solid hsla(195deg, 45%, 35%, 45%); */\n /* border-radius:3px; */\n\n width: auto;\n /* transform: translateY(-70%); */\n`;\nconst Video = styled.video`\n width: 100%;\n height: 100%;\n border-radius: 3px;\n background-color: hsla(0deg, 0%, 0%, 35%);\n`;\nconst LoadingOverlay =styled.div`\n position: absolute;\n top:0;\n bottom: 0;\n left: 0;\n right: 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n`;\n\nconst Frame = styled.svg<{transcalent?: boolean}>`\n touch-action: none;\n user-select: none;\n margin: 0;\n\n overflow: visible;\n\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n bottom: 0;\n height: 100%;\n width: 100%;\n transition: background 250ms ease;\n background: hsla(0deg, 0%, 0%, 0%);\n\n ${props => props.transcalent && css`\n background: hsla(0deg, 0%, 0%, 35%);\n `}\n\n`;\n\n\n\ninterface LineUIProps {\n src: string;\n onSizeChange?: (size: {h: number; w: number}) => void;\n onLineMoveEnd?: ()=> void;\n onLoaded?: (metadata: {height: number; width: number; }) => void;\n options?: LineUIOptions;\n videoOptions: LineUIVideoOptions;\n}\nconst LineUIVideo : React.FC<LineUIProps> = ({\n src,\n onSizeChange = ()=>{},\n onLineMoveEnd = ()=>{},\n onLoaded = ()=>{},\n videoOptions: {\n loop = false,\n autoPlay = false,\n controls = false,\n muted = true,\n ...videoOptions\n },\n options: {\n showHandleFinder,\n showSetIndex,\n showPointLabel = false,\n showPointHandle,\n showMoveHandle,\n showGrabHandle,\n setIndexOffset = 0,\n pointIndexOffset = 0,\n showPoint = false,\n boundaryOffset = 0,\n showDirectionMark = false\n }={}\n}) => {\n\n const frame = useRef<SVGSVGElement>(null);\n const videoRef = useRef<HTMLVideoElement>(null);\n\n const [boundaries, setBoundaries] = useState<IBoundary>({ x: { min: 0, max: 0 }, y: { min: 0, max: 0 } });\n const {state} = useContext(LineSetContext);\n\n const [handleFinder, setHandleFinder] = useState<boolean>(false);\n\n\n // Scale Code\n const [videoSize, setVideoSize] = useState({ h: 768, w: 1024 });\n const [unit, setUnit] = useState(1);\n const [loaded, setLoaded] = useState(false);\n\n // Initialization functions.\n const initScaleAndBounds = useCallback(() => {\n if(!videoRef.current) {return;}\n const { videoHeight, videoWidth, clientHeight } = videoRef.current;\n\n if(videoHeight !== videoSize.h || videoWidth !== videoSize.w) {\n setVideoSize({ h: videoHeight, w: videoWidth });\n onSizeChange({ h: videoHeight, w: videoWidth });\n }\n\n if(videoHeight / clientHeight !== unit) {\n setUnit(videoHeight / clientHeight);\n }\n }, [videoSize.h, videoSize.w, unit, onSizeChange]);\n\n const handlePositionTipShow = (e: any) => {\n if(e.target === frame.current){\n setHandleFinder((!handleFinder === false) && true);\n }\n };\n\n const handlePositionTipHide = () => {\n setHandleFinder(showHandleFinder ||false);\n };\n\n const calculateCTM = useCallback(()=>{\n if(!frame.current) {return null;}\n //On size change make sure to refresh CTM\n return frame.current.getScreenCTM();\n },[]);\n\n useEffect(() => {\n // Redefine boundaries and screen matrix when the loaded video changes our svg viewbox.\n if(!frame.current || !loaded) {return;}\n const { viewBox } = frame.current;\n const bounds = {\n x: {\n min: viewBox.baseVal.x + boundaryOffset,\n max: viewBox.baseVal.x + viewBox.baseVal.width - boundaryOffset\n },\n y: {\n min: viewBox.baseVal.y + boundaryOffset,\n max: viewBox.baseVal.y + viewBox.baseVal.height - boundaryOffset\n },\n };\n setBoundaries(bounds);\n }, [videoSize, loaded, boundaryOffset]);\n\n const onLoadedMetadata = useCallback(({target}) =>{\n if(target){\n setLoaded(true);\n initScaleAndBounds();\n const {videoHeight=1, videoWidth=1} = target;\n onLoaded({height: videoHeight, width: videoWidth});\n }\n },[initScaleAndBounds, onLoaded]);\n\n useEffect(() => {\n // Make sure we always keep scale up to date on resize.\n window.addEventListener('resize', initScaleAndBounds);\n return () => {\n window.removeEventListener('resize', initScaleAndBounds);\n };\n }, [initScaleAndBounds]);\n\n const options = {\n handleFinderActive: handleFinder,\n revealSetIndex: showSetIndex !== false && (showSetIndex || state.length > 1),\n showPointLabel,\n showPointHandle: showPointHandle || (showPointHandle !== false && showGrabHandle !== false),\n showMoveHandle: showMoveHandle || (showMoveHandle !== false && showGrabHandle !== false),\n setIndexOffset,\n pointIndexOffset,\n showPoint,\n showDirectionMark\n };\n\n return (\n <Container>\n <Video ref={videoRef} controls={controls} muted={muted} autoPlay={autoPlay} loop={loop} {...videoOptions} onLoadedMetadata={onLoadedMetadata} src={src} id='1'> </Video>\n {!loaded && <LoadingOverlay><Spinner size='large' styling='primary' /></LoadingOverlay>}\n {\n loaded &&\n <Frame ref={frame} viewBox={`0 0 ${videoSize.w} ${videoSize.h} `} version='1.1' xmlns='http://www.w3.org/2000/svg' onPointerDown={handlePositionTipShow} onPointerUp={handlePositionTipHide} onPointerLeave={handlePositionTipHide} transcalent={handleFinder}>\n {state.map((lineSet, index) => (\n <LineSet key={index} onLineMoveEnd={onLineMoveEnd} lineSetId={index} lineData={lineSet} getCTM={calculateCTM} boundaries={boundaries} unit={unit} size={30} options={options} />\n ))}\n </Frame>\n }\n </Container>\n );\n\n};\n\nexport default LineUIVideo;\n","// A type of promise-like that resolves synchronously and supports only one observer\nexport const _Pact = /*#__PURE__*/(function() {\n\tfunction _Pact() {}\n\t_Pact.prototype.then = function(onFulfilled, onRejected) {\n\t\tconst result = new _Pact();\n\t\tconst state = this.s;\n\t\tif (state) {\n\t\t\tconst callback = state & 1 ? onFulfilled : onRejected;\n\t\t\tif (callback) {\n\t\t\t\ttry {\n\t\t\t\t\t_settle(result, 1, callback(this.v));\n\t\t\t\t} catch (e) {\n\t\t\t\t\t_settle(result, 2, e);\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t} else {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}\n\t\tthis.o = function(_this) {\n\t\t\ttry {\n\t\t\t\tconst value = _this.v;\n\t\t\t\tif (_this.s & 1) {\n\t\t\t\t\t_settle(result, 1, onFulfilled ? onFulfilled(value) : value);\n\t\t\t\t} else if (onRejected) {\n\t\t\t\t\t_settle(result, 1, onRejected(value));\n\t\t\t\t} else {\n\t\t\t\t\t_settle(result, 2, value);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(result, 2, e);\n\t\t\t}\n\t\t};\n\t\treturn result;\n\t}\n\treturn _Pact;\n})();\n\n// Settles a pact synchronously\nexport function _settle(pact, state, value) {\n\tif (!pact.s) {\n\t\tif (value instanceof _Pact) {\n\t\t\tif (value.s) {\n\t\t\t\tif (state & 1) {\n\t\t\t\t\tstate = value.s;\n\t\t\t\t}\n\t\t\t\tvalue = value.v;\n\t\t\t} else {\n\t\t\t\tvalue.o = _settle.bind(null, pact, state);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tif (value && value.then) {\n\t\t\tvalue.then(_settle.bind(null, pact, state), _settle.bind(null, pact, 2));\n\t\t\treturn;\n\t\t}\n\t\tpact.s = state;\n\t\tpact.v = value;\n\t\tconst observer = pact.o;\n\t\tif (observer) {\n\t\t\tobserver(pact);\n\t\t}\n\t}\n}\n\nexport function _isSettledPact(thenable) {\n\treturn thenable instanceof _Pact && thenable.s & 1;\n}\n\n// Converts argument to a function that always returns a Promise\nexport function _async(f) {\n\treturn function() {\n\t\tfor (var args = [], i = 0; i < arguments.length; i++) {\n\t\t\targs[i] = arguments[i];\n\t\t}\n\t\ttry {\n\t\t\treturn Promise.resolve(f.apply(this, args));\n\t\t} catch(e) {\n\t\t\treturn Promise.reject(e);\n\t\t}\n\t}\n}\n\n// Awaits on a value that may or may not be a Promise (equivalent to the await keyword in ES2015, with continuations passed explicitly)\nexport function _await(value, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(value) : value;\n\t}\n\tif (!value || !value.then) {\n\t\tvalue = Promise.resolve(value);\n\t}\n\treturn then ? value.then(then) : value;\n}\n\n// Awaits on a value that may or may not be a Promise, then ignores it\nexport function _awaitIgnored(value, direct) {\n\tif (!direct) {\n\t\treturn value && value.then ? value.then(_empty) : Promise.resolve();\n\t}\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continue(value, then) {\n\treturn value && value.then ? value.then(then) : then(value);\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continueIgnored(value) {\n\tif (value && value.then) {\n\t\treturn value.then(_empty);\n\t}\n}\n\n// Asynchronously iterate through an object that has a length property, passing the index as the first argument to the callback (even as the length property changes)\nexport function _forTo(array, body, check) {\n\tvar i = -1, pact, reject;\n\tfunction _cycle(result) {\n\t\ttry {\n\t\t\twhile (++i < array.length && (!check || !check())) {\n\t\t\t\tresult = body(i);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (pact) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t} else {\n\t\t\t\tpact = result;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t}\n\t}\n\t_cycle();\n\treturn pact;\n}\n\n// Asynchronously iterate through an object's properties (including properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forIn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tkeys.push(key);\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\n// Asynchronously iterate through an object's own properties (excluding properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forOwn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tif (Object.prototype.hasOwnProperty.call(target, key)) {\n\t\t\tkeys.push(key);\n\t\t}\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\nexport const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.iterator || (Symbol.iterator = Symbol(\"Symbol.iterator\"))) : \"@@iterator\";\n\n// Asynchronously iterate through an object's values\n// Uses for...of if the runtime supports it, otherwise iterates until length on a copy\nexport function _forOf(target, body, check) {\n\tif (typeof target[_iteratorSymbol] === \"function\") {\n\t\tvar iterator = target[_iteratorSymbol](), step, pact, reject;\n\t\tfunction _cycle(result) {\n\t\t\ttry {\n\t\t\t\twhile (!(step = iterator.next()).done && (!check || !check())) {\n\t\t\t\t\tresult = body(step.value);\n\t\t\t\t\tif (result && result.then) {\n\t\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (pact) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t} else {\n\t\t\t\t\tpact = result;\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t\t}\n\t\t}\n\t\t_cycle();\n\t\tif (iterator.return) {\n\t\t\tvar _fixup = function(value) {\n\t\t\t\ttry {\n\t\t\t\t\tif (!step.done) {\n\t\t\t\t\t\titerator.return();\n\t\t\t\t\t}\n\t\t\t\t} catch(e) {\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t}\n\t\t\tif (pact && pact.then) {\n\t\t\t\treturn pact.then(_fixup, function(e) {\n\t\t\t\t\tthrow _fixup(e);\n\t\t\t\t});\n\t\t\t}\n\t\t\t_fixup();\n\t\t}\n\t\treturn pact;\n\t}\n\t// No support for Symbol.iterator\n\tif (!(\"length\" in target)) {\n\t\tthrow new TypeError(\"Object is not iterable\");\n\t}\n\t// Handle live collections properly\n\tvar values = [];\n\tfor (var i = 0; i < target.length; i++) {\n\t\tvalues.push(target[i]);\n\t}\n\treturn _forTo(values, function(i) { return body(values[i]); }, check);\n}\n\nexport const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol(\"Symbol.asyncIterator\"))) : \"@@asyncIterator\";\n\n// Asynchronously iterate on a value using it's async iterator if present, or its synchronous iterator if missing\nexport function _forAwaitOf(target, body, check) {\n\tif (typeof target[_asyncIteratorSymbol] === \"function\") {\n\t\tvar pact = new _Pact();\n\t\tvar iterator = target[_asyncIteratorSymbol]();\n\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\treturn pact;\n\t\tfunction _resumeAfterBody(result) {\n\t\t\tif (check && check()) {\n\t\t\t\treturn _settle(pact, 1, iterator.return ? iterator.return().then(function() { return result; }) : result);\n\t\t\t}\n\t\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\t}\n\t\tfunction _resumeAfterNext(step) {\n\t\t\tif (step.done) {\n\t\t\t\t_settle(pact, 1);\n\t\t\t} else {\n\t\t\t\tPromise.resolve(body(step.value)).then(_resumeAfterBody).then(void 0, _reject);\n\t\t\t}\n\t\t}\n\t\tfunction _reject(error) {\n\t\t\t_settle(pact, 2, iterator.return ? iterator.return().then(function() { return error; }) : error);\n\t\t}\n\t}\n\treturn Promise.resolve(_forOf(target, function(value) { return Promise.resolve(value).then(body); }, check));\n}\n\n// Asynchronously implement a generic for loop\nexport function _for(test, update, body) {\n\tvar stage;\n\tfor (;;) {\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t\tif (shouldContinue.then) {\n\t\t\tstage = 0;\n\t\t\tbreak;\n\t\t}\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.s;\n\t\t\t} else {\n\t\t\t\tstage = 1;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (update) {\n\t\t\tvar updateValue = update();\n\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\tstage = 2;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tvar pact = new _Pact();\n\tvar reject = _settle.bind(null, pact, 2);\n\t(stage === 0 ? shouldContinue.then(_resumeAfterTest) : stage === 1 ? result.then(_resumeAfterBody) : updateValue.then(_resumeAfterUpdate)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tdo {\n\t\t\tif (update) {\n\t\t\t\tupdateValue = update();\n\t\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\t\tupdateValue.then(_resumeAfterUpdate).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tshouldContinue = test();\n\t\t\tif (!shouldContinue || (_isSettledPact(shouldContinue) && !shouldContinue.v)) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t}\n\t\t} while (!result || !result.then);\n\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterBody(result);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n\tfunction _resumeAfterUpdate() {\n\t\tif (shouldContinue = test()) {\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterTest(shouldContinue);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a do ... while loop\nexport function _do(body, test) {\n\tvar awaitBody;\n\tdo {\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t} else {\n\t\t\t\tawaitBody = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t} while (!shouldContinue.then);\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : shouldContinue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tfor (;;) {\n\t\t\tshouldContinue = test();\n\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t}\n\t\t\tif (!shouldContinue) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\tresult = result.v;\n\t\t\t\t} else {\n\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tdo {\n\t\t\t\tresult = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tshouldContinue = test();\n\t\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t\t}\n\t\t\t\tif (!shouldContinue) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} while (!shouldContinue.then);\n\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a switch statement\nexport function _switch(discriminant, cases) {\n\tvar dispatchIndex = -1;\n\tvar awaitBody;\n\touter: {\n\t\tfor (var i = 0; i < cases.length; i++) {\n\t\t\tvar test = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvar testValue = test();\n\t\t\t\tif (testValue && testValue.then) {\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tif (testValue === discriminant) {\n\t\t\t\t\tdispatchIndex = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Found the default case, set it as the pending dispatch case\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tif (dispatchIndex !== -1) {\n\t\t\tdo {\n\t\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\t\twhile (!body) {\n\t\t\t\t\tdispatchIndex++;\n\t\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t\t}\n\t\t\t\tvar result = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tawaitBody = true;\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\t\tdispatchIndex++;\n\t\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t\treturn result;\n\t\t}\n\t}\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : testValue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterTest(value) {\n\t\tfor (;;) {\n\t\t\tif (value === discriminant) {\n\t\t\t\tdispatchIndex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (++i === cases.length) {\n\t\t\t\tif (dispatchIndex !== -1) {\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\ttest = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvalue = test();\n\t\t\t\tif (value && value.then) {\n\t\t\t\t\tvalue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tdo {\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tvar result = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tdispatchIndex++;\n\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterBody(result) {\n\t\tfor (;;) {\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tif (!fallthroughCheck || fallthroughCheck()) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdispatchIndex++;\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _call(body, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(body()) : body();\n\t}\n\ttry {\n\t\tvar result = Promise.resolve(body());\n\t\treturn then ? result.then(then) : result;\n\t} catch (e) {\n\t\treturn Promise.reject(e);\n\t}\n}\n\n// Asynchronously call a function and swallow the result\nexport function _callIgnored(body, direct) {\n\treturn _call(body, _empty, direct);\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _invoke(body, then) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(then);\n\t}\n\treturn then(result);\n}\n\n// Asynchronously call a function and swallow the result\nexport function _invokeIgnored(body) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(_empty);\n\t}\n}\n\n// Asynchronously call a function and send errors to recovery continuation\nexport function _catch(body, recover) {\n\ttry {\n\t\tvar result = body();\n\t} catch(e) {\n\t\treturn recover(e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(void 0, recover);\n\t}\n\treturn result;\n}\n\n// Asynchronously await a promise and pass the result to a finally continuation\nexport function _finallyRethrows(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer(true, e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer.bind(null, false), finalizer.bind(null, true));\n\t}\n\treturn finalizer(false, result);\n}\n\n// Asynchronously await a promise and invoke a finally continuation that always overrides the result\nexport function _finally(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer();\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer, finalizer);\n\t}\n\treturn finalizer();\n}\n\n// Rethrow or return a value from a finally continuation\nexport function _rethrow(thrown, value) {\n\tif (thrown)\n\t\tthrow value;\n\treturn value;\n}\n\n// Empty function to implement break and other control flow that ignores asynchronous results\nexport function _empty() {\n}\n\n// Sentinel value for early returns in generators \nexport const _earlyReturn = /*#__PURE__*/ {};\n\n// Asynchronously call a function and send errors to recovery continuation, skipping early returns\nexport function _catchInGenerator(body, recover) {\n\treturn _catch(body, function(e) {\n\t\tif (e === _earlyReturn) {\n\t\t\tthrow e;\n\t\t}\n\t\treturn recover(e);\n\t});\n}\n\n// Asynchronous generator class; accepts the entrypoint of the generator, to which it passes itself when the generator should start\nexport const _AsyncGenerator = /*#__PURE__*/(function() {\n\tfunction _AsyncGenerator(entry) {\n\t\tthis._entry = entry;\n\t\tthis._pact = null;\n\t\tthis._resolve = null;\n\t\tthis._return = null;\n\t\tthis._promise = null;\n\t}\n\n\tfunction _wrapReturnedValue(value) {\n\t\treturn { value: value, done: true };\n\t}\n\tfunction _wrapYieldedValue(value) {\n\t\treturn { value: value, done: false };\n\t}\n\n\t_AsyncGenerator.prototype._yield = function(value) {\n\t\t// Yield the value to the pending next call\n\t\tthis._resolve(value && value.then ? value.then(_wrapYieldedValue) : _wrapYieldedValue(value));\n\t\t// Return a pact for an upcoming next/return/throw call\n\t\treturn this._pact = new _Pact();\n\t};\n\t_AsyncGenerator.prototype.next = function(value) {\n\t\t// Advance the generator, starting it if it has yet to be started\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tconst _entry = _this._entry;\n\t\t\t\tif (_entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the next call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Start the generator\n\t\t\t\t_this._entry = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\tfunction returnValue(value) {\n\t\t\t\t\t_this._resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t_this._resolve = null;\n\t\t\t\t}\n\t\t\t\tvar result = _entry(_this);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tresult.then(returnValue, function(error) {\n\t\t\t\t\t\tif (error === _earlyReturn) {\n\t\t\t\t\t\t\treturnValue(_this._return);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst pact = new _Pact();\n\t\t\t\t\t\t\t_this._resolve(pact);\n\t\t\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t\t\t_this._resolve = null;\n\t\t\t\t\t\t\t_resolve(pact, 2, error);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\treturnValue(result);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Generator is started and a yield expression is pending, settle it\n\t\t\t\t_this._pact = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\t_settle(_pact, 1, value);\n\t\t\t}\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.return = function(value) {\n\t\t// Early return from the generator if started, otherwise abandons the generator\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the return call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return the specified value\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t}\n\t\t\t// Settle the yield expression with a rejected \"early return\" value\n\t\t\t_this._return = value;\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, _earlyReturn);\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.throw = function(error) {\n\t\t// Inject an exception into the pending yield expression\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve, reject) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the throw call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return a rejected Promise containing the error\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn reject(error);\n\t\t\t}\n\t\t\t// Settle the yield expression with the value as a rejection\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, error);\n\t\t});\n\t};\n\n\t_AsyncGenerator.prototype[_asyncIteratorSymbol] = function() {\n\t\treturn this;\n\t};\n\t\n\treturn _AsyncGenerator;\n})();\n","import React, { useState, useEffect, useRef, VideoHTMLAttributes } from 'react';\nimport styled from 'styled-components';\n\nconst Video = styled.video`\n /* width: 800px; */\n`;\ninterface WebRTCMessage {\n sdp?: RTCSessionDescriptionInit;\n ice?: RTCIceCandidate;\n}\ninterface OwnProps {\n enabled: boolean;\n peerAddress: string;\n maxConnectionAttempts?: number;\n rtcConfiguration?: RTCConfiguration\n id?: string;\n setStatus?: (status: string) => void;\n setError?: (error: string | null) => void;\n}\ntype Props = OwnProps & VideoHTMLAttributes<HTMLVideoElement>\n\nconst WebRTCPlayer: React.FC<Props> = ({\n id = \"1\",\n enabled,\n peerAddress,\n maxConnectionAttempts = 30,\n rtcConfiguration = {},\n setStatus = () => {},\n setError = () => {},\n // Video element defaults\n autoPlay = true,\n muted = true,\n ...props\n }) => {\n\n const [connectionAttempts, setConnectionAttempts] = useState(0);\n const videoRef = useRef<HTMLVideoElement>(null);\n const webSocket = useRef<WebSocket|null>(null);\n const peerConnection = useRef<RTCPeerConnection|null>(null);\n\n\n function handleIncomingError(error: string) {\n setError(error);\n closeWebSocket();\n }\n\n // SDP offer received from peer, set remote description and create an answer\n const onIncomingSDP = async (description: RTCSessionDescriptionInit) => {\n if (!peerConnection.current || !webSocket.current) {\n return;\n }\n\n try {\n if (description.type === \"offer\" && peerConnection.current.signalingState !== \"stable\") {\n await Promise.all([\n peerConnection.current.setLocalDescription({type: \"rollback\"}),\n peerConnection.current.setRemoteDescription(description)\n ]);\n\n } else {\n if(description.sdp){\n //HACK: this seems to allow more clients to negotiate.64002a\n // seems to use [codec] H264 (96, level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f)\n description.sdp = description.sdp.replace(/profile-level-id=(640028|64001f|64002a);/,'');\n }\n await peerConnection.current.setRemoteDescription(new RTCSessionDescription(description));\n setStatus('Remote Description set');\n }\n } catch (error){\n console.error('Error:', error);\n setError('Error Setting remote description');\n return;\n }\n\n // what is this case?\n if (description.type !== 'offer') {\n return;\n }\n\n setStatus('Creating Answer');\n try {\n const answer = await peerConnection.current.createAnswer();\n console.debug('Got local description: ' + JSON.stringify(answer));\n await peerConnection.current.setLocalDescription(answer);\n } catch (error){\n console.error(error);\n if(error instanceof Error){\n setError(error.message);\n }\n return;\n }\n\n // TODO: Why was this being set to null and why AFTER setting it??\n // peerConnection.current.localDescription['ice-option'] = null\n const message = {\n sdp: peerConnection.current.localDescription\n };\n setStatus('Sending Local Description');\n // console.debug('Local Description:' + JSON.stringify(message));\n try {\n await webSocket.current.send(JSON.stringify(message));\n setStatus('Connected');\n } catch (error) {\n console.error(error);\n if(error instanceof Error){\n setError(error.message);\n }\n }\n };\n\n // ICE candidate received from peer, add it to the peer connection\n function onIncomingICE(ice:RTCIceCandidateInit) {\n if(!peerConnection.current){\n console.error('peerConnection.current not found onIncomingICE ');\n return;\n }\n const candidate = new RTCIceCandidate(ice);\n peerConnection.current.addIceCandidate(candidate).catch(setError);\n }\n\n const onServerMessage = ({data = ''}: MessageEvent) => {\n if(data ==='HELLO') {\n console.debug('Received HELLO');\n setStatus('Registered with server, waiting for offer.');\n } else if (data.startsWith('ERROR')) {\n console.error('Received ' + data);\n handleIncomingError(data);\n } else {\n // Handle incoming JSON SDP and ICE messages\n let msg: WebRTCMessage;\n try {\n msg = JSON.parse(data);\n } catch (e) {\n if (e instanceof SyntaxError) {\n handleIncomingError('Error parsing incoming JSON: ' + data);\n } else {\n handleIncomingError('Unknown error parsing response: ' + data);\n }\n return;\n }\n // Incoming JSON signals the beginning of a call\n if (!peerConnection.current) {\n createCall(msg);\n }\n\n if (msg.sdp != null) {\n console.debug('Received Remote SDP:' + JSON.stringify(msg.sdp));\n onIncomingSDP(msg.sdp);\n } else if (msg.ice != null) {\n console.debug('Received Remote ICE:' + JSON.stringify(msg.ice));\n onIncomingICE(msg.ice);\n } else {\n handleIncomingError('Unknown incoming JSON: ' + msg);\n }\n }\n };\n\n function onServerClose(event: any) {\n console.debug('serverClose');\n if(webSocket.current){\n setStatus('Disconnected from server');\n closePeerConnection();\n //TODO: todo Fix this to clear on close\n if (event !== null && event.code !== 1000 && enabled) {\n window.setTimeout(connectToPeer, 3000);\n }\n }\n }\n\n function onServerError(event: any) {\n console.debug(event);\n setError('Unable to connect to server');\n closeWebSocket();\n }\n\n function connectToPeer() {\n console.debug('connectToPeer', connectionAttempts);\n if (connectionAttempts >= maxConnectionAttempts) {\n setError('Too many connection attempts, aborting. Refresh page to try again');\n return;\n }\n setError(null);\n\n const peerId = getPeerId(id);\n setStatus('Connecting to server ' + peerAddress);\n const ws = new WebSocket(peerAddress);\n webSocket.current = ws;\n /* When connected, immediately register with the server */\n ws.addEventListener('open', () => {\n const interval = setInterval(() => {\n try {\n ws.send('HELLO ' + peerId);\n clearInterval(interval);\n setStatus('Registering with server (sent HELLO) for peer id: ' + peerId);\n } catch (error) {\n console.debug(error);\n }\n }, 3000);\n });\n ws.addEventListener('error', onServerError);\n ws.addEventListener('message', onServerMessage);\n ws.addEventListener('close', onServerClose);\n setConnectionAttempts(connectionAttempts + 1);\n }\n\n function onRemoteTrack(event: RTCTrackEvent) {\n if (videoRef.current && videoRef.current.srcObject !== event.streams[0]) {\n console.debug('Incoming stream');\n videoRef.current.srcObject = event.streams[0];\n setStatus('Adding Track');\n }\n }\n\n function createCall(msg: WebRTCMessage) {\n // Reset connection attempts because we connected successfully\n setConnectionAttempts(0);\n console.debug('Creating RTCPeerConnection');\n\n if (!msg.sdp) {\n console.debug('WARNING: First message wasn\\'t an SDP message!?');\n return;\n }\n\n const pc = new RTCPeerConnection(rtcConfiguration);\n peerConnection.current = pc;\n pc.addEventListener('track', onRemoteTrack);\n\n pc.addEventListener('icecandidate', ({candidate = null}) => {\n\n if (!candidate) {\n console.debug('All local ICE Candidates sent.');\n return;\n }\n // We have a local ICE candidate, send it to the remote party with the same uuid\n if(webSocket.current){\n webSocket.current.send(JSON.stringify({ 'ice': candidate }));\n //TODO: try catch here?\n } else {\n console.debug('no WS found on peer connection \\'icecandidate\\' event... how?');\n }\n });\n // pc.addEventListener('negotiationneeded', ()=>{console.debug('negotiationneeded')})\n\n setStatus('RTCPeerConnection created, waiting for SDP');\n }\n\n const closeWebSocket = async () => {\n console.debug('closeWebSocket');\n await closePeerConnection();\n if(webSocket.current){\n await webSocket.current.close();\n webSocket.current = null;\n }\n };\n\n const closePeerConnection = async() => {\n console.debug('closePeerConnection');\n if (peerConnection.current) {\n await peerConnection.current.close();\n peerConnection.current = null;\n }\n };\n\n useEffect(() => {\n if (enabled === true) {\n connectToPeer();\n } else {\n if (webSocket.current) {\n webSocket.current.close(1000, 'WebRTC Disabled');\n }\n }\n return ()=>{\n console.debug('cleanup');\n closeWebSocket();\n };\n }, [enabled]);// eslint-disable-line react-hooks/exhaustive-deps\n\n return (\n <Video {...props} autoPlay={autoPlay} muted={muted} ref={videoRef} />\n );\n};\n\nexport default WebRTCPlayer;\n\n\n\nfunction getPeerId(id: string) {\n return 'WRP_' + id + '_' + Math.floor(Math.random() * (9000 - 10) + 10).toString();\n}","import React, { useState, useEffect, useCallback, useRef, useContext } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport LineSet from './LineSet';\nimport { LineSetContext } from './Contexts';\nimport WebRTCClient from '../WebRTCClient';\nimport Spinner from '../Indicators/Spinner';\nimport { LineUIOptions, IBoundary, LineUIVideoOptions } from '.';\n\n\nconst Container = styled.div`\n position: relative;\n line-height: 0;\n user-select: none;\n touch-action: none;\n /* box-shadow: 0 10px 20px hsla(195deg, 65%, 5%, 35%); */\n /* border: 10px solid hsla(195deg, 45%, 35%, 45%); */\n /* border-radius:3px; */\n\n width: auto;\n /* transform: translateY(-70%); */\n`;\nconst Video = styled(WebRTCClient)`\n width: 100%;\n height: 100%;\n border-radius: 3px;\n background-color: hsla(0deg, 0%, 0%, 35%);\n`;\nconst LoadingOverlay =styled.div`\n position: absolute;\n top:0;\n bottom: 0;\n left: 0;\n right: 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n`;\n\nconst Frame = styled.svg<{transcalent?: boolean}>`\n touch-action: none;\n user-select: none;\n margin: 0;\n\n overflow: visible;\n\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n bottom: 0;\n height: 100%;\n width: 100%;\n transition: background 250ms ease;\n background: hsla(0deg, 0%, 0%, 0%);\n\n ${props => props.transcalent && css`\n background: hsla(0deg, 0%, 0%, 35%);\n `}\n\n`;\n\n\n\ninterface LineUIProps {\n ws: string;\n onSizeChange?: (size: {h: number; w: number}) => void;\n onLineMoveEnd?: ()=> void;\n onLoaded?: (metadata: {height: number; width: number; }) => void;\n options?: LineUIOptions;\n videoOptions?: LineUIVideoOptions;\n}\nconst LineUI : React.FC<LineUIProps> = ({\n ws,\n onSizeChange = ()=>{},\n onLineMoveEnd = ()=>{},\n onLoaded = ()=>{},\n videoOptions,\n options: {\n showHandleFinder,\n showSetIndex,\n showPointLabel = false,\n showPointHandle,\n showMoveHandle,\n showGrabHandle,\n setIndexOffset = 0,\n pointIndexOffset = 0,\n showPoint = false,\n boundaryOffset = 0,\n showDirectionMark = false\n }={}\n}) => {\n\n const frame = useRef<SVGSVGElement>(null);\n const videoRef = useRef<HTMLVideoElement>();\n\n const [boundaries, setBoundaries] = useState<IBoundary>({ x: { min: 0, max: 0 }, y: { min: 0, max: 0 } });\n const {state} = useContext(LineSetContext);\n\n const [handleFinder, setHandleFinder] = useState<boolean>(false);\n\n\n // Scale Code\n const [videoSize, setVideoSize] = useState({ h: 768, w: 1024 });\n const [unit, setUnit] = useState(1);\n const [loaded, setLoaded] = useState(false);\n\n // Initialization functions.\n const initScaleAndBounds = useCallback(() => {\n if(!videoRef.current) {return;}\n const { videoHeight, videoWidth, clientHeight } = videoRef.current;\n\n if(videoHeight !== videoSize.h || videoWidth !== videoSize.w) {\n setVideoSize({ h: videoHeight, w: videoWidth });\n onSizeChange({ h: videoHeight, w: videoWidth });\n }\n\n if(videoHeight / clientHeight !== unit) {\n setUnit(videoHeight / clientHeight);\n }\n }, [videoSize.h, videoSize.w, unit, onSizeChange]);\n\n const handlePositionTipShow = (e: any) => {\n if(e.target === frame.current){\n setHandleFinder((!handleFinder === false) && true);\n }\n };\n\n const handlePositionTipHide = () => {\n setHandleFinder(showHandleFinder ||false);\n };\n\n const calculateCTM = useCallback(()=>{\n if(!frame.current) {return null;}\n //On size change make sure to refresh CTM\n return frame.current.getScreenCTM();\n },[]);\n\n useEffect(() => {\n // Redefine boundaries and screen matrix when the loaded video changes our svg viewbox.\n if(!frame.current || !loaded) {return;}\n const { viewBox } = frame.current;\n const bounds = {\n x: {\n min: viewBox.baseVal.x + boundaryOffset,\n max: viewBox.baseVal.x + viewBox.baseVal.width - boundaryOffset\n },\n y: {\n min: viewBox.baseVal.y + boundaryOffset,\n max: viewBox.baseVal.y + viewBox.baseVal.height - boundaryOffset\n },\n };\n setBoundaries(bounds);\n }, [videoSize, loaded, boundaryOffset]);\n\n const onLoadedMetadata = useCallback(({target}) =>{\n if(target){\n setLoaded(true);\n videoRef.current = target;\n initScaleAndBounds();\n const {videoHeight=1, videoWidth=1} = target;\n onLoaded({height: videoHeight, width: videoWidth});\n }\n },[initScaleAndBounds, onLoaded]);\n\n useEffect(() => {\n // Make sure we always keep scale up to date on resize.\n window.addEventListener('resize', initScaleAndBounds);\n return () => {\n window.removeEventListener('resize', initScaleAndBounds);\n };\n }, [initScaleAndBounds]);\n\n const options = {\n handleFinderActive: handleFinder,\n revealSetIndex: showSetIndex !== false && (showSetIndex || state.length > 1),\n showPointLabel,\n showPointHandle: showPointHandle || (showPointHandle !== false && showGrabHandle !== false),\n showMoveHandle: showMoveHandle || (showMoveHandle !== false && showGrabHandle !== false),\n setIndexOffset,\n pointIndexOffset,\n showPoint,\n showDirectionMark\n };\n\n return (\n <Container>\n <Video onLoadedMetadata={onLoadedMetadata} peerAddress={ws} id='1' {...videoOptions} enabled> </Video>\n {!loaded && <LoadingOverlay><Spinner size='large' styling='primary' /></LoadingOverlay>}\n {\n loaded &&\n <Frame ref={frame} viewBox={`0 0 ${videoSize.w} ${videoSize.h} `} version='1.1' xmlns='http://www.w3.org/2000/svg' onPointerDown={handlePositionTipShow} onPointerUp={handlePositionTipHide} onPointerLeave={handlePositionTipHide} transcalent={handleFinder}>\n {state.map((lineSet, index) => (\n <LineSet key={index} onLineMoveEnd={onLineMoveEnd} lineSetId={index} lineData={lineSet} getCTM={calculateCTM} boundaries={boundaries} unit={unit} size={30} options={options} />\n ))}\n </Frame>\n }\n </Container>\n );\n\n};\n\nexport default LineUI;\n","import { IPointSet, IVector2 } from './';\nimport update from 'immutability-helper';\n\nexport type IReducerActions =\n | UpdateAction\n | LoadAction\n | AddSetAction\n | RemoveAction\n | AddPointAction\n | RemovePointAction\n | UpdateSetOptions\n | RenameSetAction\n ;\n\ninterface AddSetAction{\n type: 'ADD_SET';\n data: IPointSet;\n}\ninterface UpdateAction {\n type: 'UPDATE'|'UPDATE_SET_POINTS';\n index: number;\n data: IPointSet;\n}\n\ninterface RenameSetAction {\n type: 'RENAME_SET';\n index: number;\n data: {\n name: string;\n };\n}\ninterface UpdateSetOptions {\n type: 'UPDATE_SET_OPTIONS';\n index: number;\n data: Partial<IPointSet>;\n}\ninterface RemoveAction {\n type: 'REMOVE_SET';\n index: number;\n}\ninterface LoadAction {\n type: 'LOAD';\n state: IPointSet[];\n}\ninterface AddPointAction {\n type: 'ADD_POINT';\n index: number;\n}\ninterface RemovePointAction {\n type: 'REMOVE_POINT';\n index: number;\n}\n\nconst getMidpoint = (pointA : IVector2, pointB : IVector2) => {\n return({\n x: pointA.x + (pointB.x - pointA.x) * 0.5,\n y: pointA.y + (pointB.y - pointA.y) * 0.5\n });\n};\n\nexport default (state : IPointSet[], action: IReducerActions) => {\n\n switch(action.type){\n //This UPDATE is better named 'UPDATE_SET_POINTS'\n case \"UPDATE_SET_POINTS\":\n case \"UPDATE\": {\n const points = action.data.points.map((point) => ({...point}));\n return update(state, {[action.index]: { points: {$set: points}}});\n }\n\n case \"RENAME_SET\": {\n const set = { ...state[action.index], name: action.data.name};\n return update(state, {[action.index]: {$set: set}});\n }\n\n case \"UPDATE_SET_OPTIONS\": {\n const set = { ...state[action.index], ...action.data};\n return update(state, {[action.index]: {$set: set}});\n }\n\n case \"ADD_SET\":\n return [...state, action.data];\n\n case \"REMOVE_SET\":\n return update(state, { $splice: [[action.index,1]]});\n\n case \"ADD_POINT\": {\n const newPoint: IVector2 = getMidpoint(state[action.index].points[0], state[action.index].points[1]);\n return update(state, {[action.index]: {points: {$splice: [[1, 0, newPoint]]}}});\n }\n\n case \"REMOVE_POINT\":\n if(state[action.index].points.length <= 2){ return state; }\n return update(state, {[action.index]: {points: {$splice: [[state[action.index].points.length - 1, 1]]}}});\n\n case 'LOAD': {\n const newState = action.state.map(\n ({name, points, ...rest}) => ({\n name,\n points: points.map( ({x,y}) => ({x,y}) ),\n ...rest\n })\n );\n return newState;\n }\n\n default:\n console.error(`Action ${action['type']} not registered.`);\n return state;\n }\n};\n","import { useEffect } from 'react';\n\nexport const useTitle = (title : string, area? : string, delimiter?: string, update= true) => {\n\n// Index Title\nconst baseTitle = document.title.split('|').slice(-1)[0].trim();\n\n// on unmount will return the baseTitle to Index Title for pages not using this hook.\nuseEffect(() => {\n return () => {\n document.title = baseTitle;\n };\n}, [baseTitle]);\n\n useEffect(() => {\n if(!update) return;\n document.title = makeTitle([\n ...(title ? [title] : []),\n ...(area ? [area] : []),\n ...(baseTitle? [baseTitle] : [])\n ], delimiter);\n\n },[title, area, delimiter, update, baseTitle]);\n};\n\n/**\n * Put the parts together for title use.\n * @param parts Each part to make up the title.\n * @param delimiter Character used for delimiting\n */\nconst makeTitle = (parts: string[], delimiter : string = '|') : string => {\n\n let title = '';\n delimiter = ' ' + delimiter + ' ';\n\n parts.forEach((part, key) => {\n title += part;\n if(parts.length - 1 !== key){\n title += delimiter;\n }\n });\n\n return title;\n\n};","import React from 'react';\nimport styled, { css } from 'styled-components';\n\nimport Icon from '../../Icons/Icon';\nimport { Link } from 'react-router-dom';\nimport { useTitle } from '../../hooks/useTitle';\n\n\nconst Container = styled.div`\n position: relative;\n`;\n\nconst IconContainer = styled.div`\n position: absolute;\n left: -45px;\n bottom: 0;\n height: 30px;\n display: flex;\n justify-content: center;\n align-items: center;\n\n svg {\n display: block;\n }\n`;\n\nconst Title = styled.h1`\n ${({theme}) => css`\n font-family: ${theme.fontFamily.ui};\n ${theme.typography.pageHeader.mainTitle};\n `}\n margin: 0 0 20px;\n`;\n\n\nconst AreaTitleCss = css`\n ${({theme}) => css`\n font-family: ${theme.fontFamily.ui};\n ${theme.typography.pageHeader.areaTitle};\n `}\n margin: 0;\n position: absolute;\n top: -18px;\n`;\n\nconst AreaTitle = styled.div`\n ${AreaTitleCss}\n`;\n\nconst AreaLinkTitle = styled(Link)`\n ${AreaTitleCss}\n &:hover {\n text-decoration: underline;\n }\n`;\n\ninterface IProps {\n title: string\n icon?: string\n areaTitle?: string\n areaHref?: string\n updateDocTitle?: boolean\n hideAreaInDocTitle? : boolean\n}\n\nconst PageTitle : React.FC<IProps> = ({title, icon, areaTitle, areaHref, updateDocTitle = true, hideAreaInDocTitle=false }) => {\n // Set <title> attribute automagically.\n\n useTitle(title, hideAreaInDocTitle ? undefined : areaTitle || '', undefined, updateDocTitle);\n\n return (\n <Container>\n {areaTitle && areaHref\n ? <AreaLinkTitle to={areaHref}>{areaTitle}</AreaLinkTitle>\n : areaTitle && <AreaTitle>{areaTitle}</AreaTitle>}\n <Title>{title}</Title>\n {icon ?\n <IconContainer><Icon size={24} color='dimmed' {...{icon}} /></IconContainer>\n : null}\n </Container>\n );\n};\n\nexport default PageTitle;","import React from 'react';\nimport styled, { css } from 'styled-components';\n\nconst Container = styled.p`\n ${({theme}) => css`\n font-family: ${theme.fontFamily.ui};\n ${theme.typography.pageHeader.introduction};\n `}\n`;\n\ninterface IProps {}\n\nconst IntroductionText : React.FC<IProps> = ({children}) => {\n return (\n <Container>\n {children}\n </Container>\n );\n};\n\nexport default IntroductionText;","import React from 'react';\nimport styled from 'styled-components';\n\nimport PageTitle from '../atoms/PageTitle';\nimport IntroductionText from '../atoms/IntroductionText';\n\nconst Container = styled.div``;\n\ninterface IProps {\n title: string\n areaHref?: string\n areaTitle?: string\n icon?: string\n introductionText?: string\n updateDocTitle?: boolean\n hideAreaInDocTitle? : boolean\n}\n\nconst PageHeader : React.FC<IProps> = ({title, icon, introductionText, areaHref, areaTitle, updateDocTitle = true, hideAreaInDocTitle}) => {\n return (\n <Container>\n <PageTitle {...{title, icon, areaHref, areaTitle, updateDocTitle, hideAreaInDocTitle}} />\n {introductionText ?\n <IntroductionText>{introductionText}</IntroductionText>\n : null}\n </Container>\n );\n};\n\nexport default PageHeader;","import React, { ReactElement } from 'react';\nimport styled from 'styled-components';\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\n/**\n * This component creates a column of ReactElements\n */\nexport interface IMultiContent {\n contentArray: ReactElement[];\n}\n\nconst MultilineContent : React.FC<IMultiContent> = ({contentArray}) => {\n return(\n <Container>\n {contentArray.map((element, index) => {\n return <div key={`element-${index}`}>{element}</div>;\n })}\n </Container>\n );\n};\n\nexport default MultilineContent;","import React, { useState, useCallback, VideoHTMLAttributes } from 'react';\nimport styled, { css } from 'styled-components';\nimport Spinner from '../../Indicators/Spinner';\nimport { IMediaType } from '../../index';\nimport Icon from '../../Icons/Icon';\n\nexport const MediaBoxWrapper = styled.div<{minWidth?: string, minHeight?: string}>`\n position: relative;\n line-height: 0;\n ${({minHeight}) => minHeight && `min-height: ${minHeight}`};\n ${({minWidth}) => minWidth && `min-width: ${minWidth}`};\n`;\n\nconst mediaStyle = `\n max-width: 100%;\n max-height: 100%;\n border-radius: 3px;\n background-color: hsla(0deg, 0%, 0%, 35%);\n`;\n\nconst LoadingOverlay = styled.div`\n position: absolute;\n top:0;\n bottom: 0;\n left: 0;\n right: 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n`;\n\nconst Video = styled.video<{ isLoaded?: boolean, hasModalLimits?: boolean }>`\n ${mediaStyle};\n outline: none;\n\n ${({ theme, isLoaded, hasModalLimits }) => css`\n transition: opacity ${theme.animation.speed.slow} ${theme.animation.easing.primary.easeOut};\n opacity: ${isLoaded ? `1` : `0`};\n\n ${hasModalLimits && css`\n max-height: calc(100vh - 100px);\n max-width: calc(100vw - 100px);\n `};\n `};\n`;\n\nconst StyledImage = styled.img<{ isLoaded?: boolean, hasModalLimits?: boolean }>`\n ${mediaStyle};\n\n ${({ theme, isLoaded, hasModalLimits }) => css`\n transition: opacity ${theme.animation.speed.slow} ${theme.animation.easing.primary.easeOut};\n opacity: ${isLoaded ? `1` : `0`};\n\n ${hasModalLimits && css`\n max-height: calc(100vh - 100px);\n max-width: calc(100vw - 100px);\n `};\n `};\n`;\n\nexport interface IMediaModal {\n src: string\n mediaType: IMediaType\n alt?: string\n videoOptions?: VideoHTMLAttributes<HTMLVideoElement>\n hasModalLimits?: boolean\n retryLoading?: boolean\n retryLimit?: number\n minWidth?: string\n minHeight?: string\n onError?: (e: Event) => void\n onMediaLoad?: () => void\n}\n\nconst MediaBox: React.FC<IMediaModal> = ({\n src: incomingSrc,\n alt,\n videoOptions = {},\n mediaType,\n hasModalLimits,\n retryLoading= false,\n retryLimit=5,\n minWidth,\n minHeight,\n onError: onErrorCallback = () => { },\n onMediaLoad = () => { },\n}) => {\n const [retryCount, setRetryCount] = useState(0);\n const [src, setSrc] = useState(incomingSrc);\n const [loadFailed, setLoadFailed] = useState(false);\n const [loaded, setLoaded] = useState(false);\n\n const {\n loop = false,\n autoPlay = true,\n controls = false,\n muted = true,\n ...videoValues\n } = videoOptions;\n\n const onError = useCallback((e)=>{\n if(!retryLoading || retryCount >= retryLimit) {\n onErrorCallback(e);\n setLoaded(true);\n setLoadFailed(true);\n } else {\n const randomDelay = (1000 * (retryCount ** 2 + Math.random())); // exponential back off retry\n setRetryCount(count => count+1);\n setTimeout(()=>{\n setSrc(`${incomingSrc}?v=${Date.now()}`);\n }, randomDelay);\n }\n\n },[incomingSrc, onErrorCallback, retryCount, retryLoading, retryLimit]);\n\n const handleLoad = useCallback(() => {\n onMediaLoad();\n setLoaded(true);\n }, [onMediaLoad, setLoaded]);\n\n return (\n <MediaBoxWrapper {...{minWidth, minHeight}}>\n {mediaType === 'video'\n ? <Video\n {...{ src, loop, autoPlay, controls, muted, onError, hasModalLimits }}\n {...videoValues}\n isLoaded={loaded && !loadFailed}\n preload='metadata'\n onCanPlayThrough={handleLoad}\n />\n : <StyledImage\n {...{ src, alt, onError, hasModalLimits }}\n onLoad={handleLoad}\n isLoaded={loaded && !loadFailed}\n />}\n {(!loaded) && <LoadingOverlay><Spinner size='large' styling='primary' /></LoadingOverlay>}\n {loadFailed && <LoadingOverlay><Icon icon='MissingImage' size={48} /></LoadingOverlay>}\n </MediaBoxWrapper>\n );\n};\n\nexport default MediaBox;","import React, { ReactElement, useCallback, useRef } from 'react';\nimport ReactDom from 'react-dom';\nimport styled, { css } from 'styled-components';\nimport { resetButtonStyles } from '../common';\nimport Icon, {IconWrapper} from '../Icons/Icon';\nimport { useClickOutside } from '../hooks/useClickOutside';\n\n\nconst Container = styled.div`\n position: fixed;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: hsla(202, 33%, 95%, 0.51);\n -webkit-backdrop-filter: blur(5px);\n backdrop-filter: blur(5px);\n z-index: 999;\n ${({theme}) => theme && css``}\n\n font-family: ${({ theme }) => theme.fontFamily.ui};\n ${({ theme }) => theme.styles.modal.overlay};\n`;\n\nconst CloseIcon = styled(Icon)``;\n\nconst CloseButton = styled.button<{ selected?: boolean }>`\n ${resetButtonStyles};\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n right: 0;\n top: -30px;\n color: ${({theme}) => theme.colors.icons.mono};\n font-size: 14px;\n font-weight: 500;\n\n ${IconWrapper} {\n display: flex;\n margin-left: 12px;\n }\n ${({ selected = false }) => selected && css`\n border-bottom: 5px solid hsl(207, 80%, 64%);\n `}\n &:focus {\n outline: none;\n }\n\n &:hover:enabled {\n ${({ theme }) => theme && css`\n opacity: .8;\n transition: transform ${theme.animation.speed.normal} ${theme.animation.easing.primary.inOut};\n `}\n }\n\n &:active:enabled {\n opacity: .9;\n }\n &:disabled {\n opacity: 0.1;\n }\n`;\n\nconst LightBox = styled.div<{ padding?: boolean, width?: string}>`\n position: relative;\n margin: 27px 0 0;\n z-index: 9999;\n width: ${({ width }) => width ? width : `580px`};\n padding: ${({ padding }) => padding ? `30px 40px` : `0`};\n border-radius: 5px;\n ${({ theme }) => theme.styles.modal.container};\n`;\n\nexport interface IModalProps {\n isOpen: boolean;\n isCloseEnable?: boolean;\n closeText?: string;\n width?: string;\n padding?: boolean;\n customComponent?: ReactElement;\n onDismiss: () => void;\n dismissCallback?: () => void;\n}\n\nconst Modal: React.FC<IModalProps> = ({\n isOpen = false,\n isCloseEnable = true,\n closeText = '',\n width = '',\n padding = true,\n customComponent,\n onDismiss,\n dismissCallback,\n}) => {\n\n const lightBoxRef = useRef<HTMLDivElement>(null);\n const onClickOutside = () => {\n if (isCloseEnable) {\n if(dismissCallback) {\n dismissCallback();\n }\n dismiss();\n }\n };\n\n useClickOutside(lightBoxRef, onClickOutside);\n\n const dismiss = useCallback(() => {\n if(dismissCallback) {\n dismissCallback();\n }\n onDismiss();\n }, [onDismiss, dismissCallback]);\n\n return (isOpen\n ? ReactDom.createPortal(\n <Container>\n <LightBox ref={lightBoxRef} width={width} padding={padding}>\n {isCloseEnable\n ?\n <CloseButton onClick={() => dismiss()}>\n {closeText ? closeText : 'CLOSE'}\n <CloseIcon icon='CloseCompact' size={15} color='mono' weight='regular' />\n </CloseButton>\n : null}\n {customComponent}\n </LightBox>\n </Container>, document.body)\n : null\n );\n};\n\nexport default Modal;","import React, { useState } from 'react';\nimport Modal, { IModalProps } from '../Modals/Modal';\n\nconst defaultModalProps: IModalProps = {\n isOpen: false,\n onDismiss: () => null,\n};\n\ninterface ModalContextType {\n modalProps: IModalProps;\n setModalProps: (newProps: IModalProps) => void;\n}\n\nconst defaultContext: ModalContextType = {\n modalProps: defaultModalProps,\n setModalProps: (newProps: IModalProps) => { console.log(newProps); },\n};\n\nconst ModalContext = React.createContext<ModalContextType>(defaultContext);\n\nconst ModalProvider: React.FC = ({ children }) => {\n\n const [modalProps, setProps] = useState<IModalProps>(defaultContext.modalProps);\n\n const setModalProps = (newProps: IModalProps) => {\n setProps(newProps);\n };\n\n return (\n <ModalContext.Provider value={{ modalProps, setModalProps }}>\n <Modal {...modalProps} />\n {children}\n </ModalContext.Provider>\n );\n};\n\nexport { ModalContext };\nexport default ModalProvider;","import { ReactElement, useCallback, useContext} from 'react';\nimport { ModalContext } from '../context/ModalContext';\nimport { IModalProps } from '../Modals/Modal';\n\n/**\n * This type is a reduced version of the modalProps\n * but with the possibilities to grow beyond the basic modal\n * features\n */\nexport type IModal = {\n closeText?: string,\n isCloseEnable?: boolean,\n width?: string,\n padding?: boolean,\n dismissCallback?: () => void,\n customComponent?: ReactElement\n}\nexport const useModal = () => {\n const { modalProps, setModalProps } = useContext(ModalContext);\n\n const setModalOpen = useCallback((newStatus: boolean) => {\n if (newStatus === undefined) { return;}\n\n const updateProps: IModalProps = {\n ...modalProps,\n isOpen: newStatus,\n };\n setModalProps(updateProps);\n }, [modalProps, setModalProps]);\n\n const onDismiss = useCallback(() => {\n setModalOpen(false);\n }, [setModalOpen]);\n\n const createModal = useCallback((modal?: IModal) => {\n\n if(!modal) {\n setModalProps({isOpen: true, onDismiss});\n }\n\n const updateProps = {\n isOpen: true,\n closeText: modal?.closeText,\n isCloseEnable: modal?.isCloseEnable,\n width: modal?.width,\n padding: modal?.padding,\n dismissCallback: modal?.dismissCallback,\n customComponent: modal?.customComponent,\n onDismiss,\n };\n\n setModalProps(updateProps);\n }, [onDismiss, setModalProps]);\n\n return {\n createModal,\n isModalOpen: modalProps.isOpen,\n setModalOpen,\n };\n};","import React, {useCallback, VideoHTMLAttributes } from 'react';\nimport { IMediaType } from '..';\nimport MediaBox, { IMediaModal } from \"../Misc/atoms/MediaBox\";\nimport { useModal, IModal } from \"./useModal\";\n\n\nexport type ICreateMediaModal = IMediaModal & IModal;\n\nconst videoDefaultOptions: VideoHTMLAttributes<HTMLVideoElement> = { controls: true };\n\nexport const useMediaModal = () => {\n\n // default options for media box\n const { createModal, isModalOpen, setModalOpen } = useModal();\n\n async function isMediaUrlValid(src: string, mediaType: IMediaType): Promise<boolean> {\n let isValid = false;\n\n if (mediaType === 'img') {\n const img = new Image();\n img.src = src;\n try {\n await new Promise((resolve, reject) => {\n img.onload = () => resolve(isValid = true);\n img.onerror = reject;\n });\n } catch (error) {\n isValid = false;\n console.log(`[useMediaModal - isMediaUrlValid] Invalid preview url ${src} - image load failed, modal will not be open`, error);\n }\n }\n\n if (mediaType === 'video') {\n const videoElement = document.createElement('video');\n videoElement.src = src;\n\n try {\n await new Promise((resolve, reject) => {\n videoElement.oncanplaythrough = () => resolve(isValid = true);\n videoElement.onerror = reject;\n });\n\n } catch (error) {\n isValid = false;\n console.log(`[useMediaModal - isMediaUrlValid] Invalid preview url ${src} - video load failed, modal will not be open`, error);\n }\n }\n\n return isValid;\n }\n\n\n const createMediaModal = useCallback(async (mediaModal: ICreateMediaModal) => {\n const {\n src,\n mediaType,\n alt,\n videoOptions = videoDefaultOptions,\n onError,\n onMediaLoad,\n closeText,\n dismissCallback,\n retryLoading = false,\n retryLimit=5,\n minHeight='300px',\n minWidth='300px',\n } = mediaModal;\n\n createModal({\n padding: false,\n width: 'auto',\n closeText,\n dismissCallback,\n customComponent: (\n <MediaBox\n {...{\n src,\n mediaType,\n alt,\n videoOptions,\n onError,\n onMediaLoad,\n retryLoading,\n retryLimit,\n minHeight,\n minWidth,\n }}\n hasModalLimits\n />\n )\n });\n\n }, [createModal]);\n\n return {\n createMediaModal,\n isMediaUrlValid,\n isMediaModalOpen: isModalOpen,\n setMediaModalOpen: setModalOpen,\n };\n};","import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport styled, { css } from 'styled-components';\nimport { useMediaModal } from '../../hooks/useMediaModal';\nimport { IMediaType } from '../..';\nimport Icon, { IconWrapper } from '../../Icons/Icon';\n\ntype VideoAspects = '4:3' | '16:9';\n\nconst Container = styled.div<{ hoverZoom?: boolean, aspect?: VideoAspects, mediaUrl?: string}>`\n position: relative;\n height: inherit;\n background: grey;\n border-radius: 3px;\n overflow: hidden;\n width: 55px;\n height: auto;\n opacity: 0.65;\n margin-right: 10px;\n\n &::after {\n content: '';\n display: block;\n padding-bottom: 75%;\n ${({ aspect }) => aspect === '16:9' && css`\n padding-left: 56.25%;\n `}\n }\n\n ${({ theme }) => theme && css`\n transition:\n opacity ${theme.animation.speed.normal} ${theme.animation.easing.primary.easeOut},\n transform ${theme.animation.speed.fast} ${theme.animation.easing.primary.easeOut};\n `}\n\n &:hover {\n ${({ mediaUrl }) => mediaUrl && css`\n cursor: pointer;\n `};\n\n ${({ theme, hoverZoom }) => theme && hoverZoom && css`\n transform: scale(1.5);\n opacity: 1;\n transition: transform ${theme.animation.speed.normal} ${theme.animation.easing.primary.easeOut};\n `}\n }\n\n`;\nconst Image = styled.img<{ showImage: boolean }>`\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n height: 100%;\n width: 100%;\n object-fit: cover;\n display: ${({showImage}) => showImage===true ? 'block': 'none'};\n`;\n\nconst PlayableDrop = styled.div`\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n background-color: hsla(0, 0%, 0%, .5);\n height: 24px;\n width: 24px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n ${IconWrapper} {\n display: flex;\n svg {\n padding-left: 2px;\n path {\n stroke: hsla(0, 0%, 100%, 1.000);\n }\n }\n };\n`;\n\ninterface IProps {\n image?: string\n hoverZoom?: boolean,\n aspect?: VideoAspects\n mediaUrl?: string\n mediaType?: IMediaType\n retryImageLoad?: boolean\n retryLimit?: number;\n}\n\n// Image\n// No Image Placeholder\n\nconst TableRowThumbnail: React.FC<IProps> = ({ hoverZoom = true, image='', mediaUrl, mediaType, retryImageLoad= false, retryLimit=5}) => {\n const [showImage, setShowImage] = useState(true);\n const [imgSrc, setImgSrc] = useState(image);\n const { createMediaModal } = useMediaModal();\n const [retryCount, setRetryCount] = useState(0);\n const imgRef = useRef<HTMLImageElement>(null);\n const timeoutRef = useRef<(ReturnType<typeof setTimeout>)|null>(null);\n\n const handleModal = useCallback(async () => {\n\n if ( mediaUrl && mediaType ) {\n createMediaModal({ src: mediaUrl, mediaType });\n }\n }, [createMediaModal, mediaType, mediaUrl]);\n\n useEffect(()=>{\n setShowImage(false);\n setRetryCount(0);\n setImgSrc(image);\n },[image]);\n\n useEffect(()=>{\n if(imgRef.current && imgRef.current.complete && imgSrc !== ''){\n timeoutRef.current && clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n setShowImage(true);\n }\n },[imgSrc]);\n\n const retryTimeout = useCallback(()=>{\n timeoutRef.current = null;\n setImgSrc(`${image}?v=${Date.now()}`);\n },[image]);\n\n const retryImage = useCallback(()=>{\n setShowImage(false);\n if(!retryImageLoad || retryCount >= retryLimit ||timeoutRef.current) return;\n const randomDelay = (1000 * (retryCount ** 2 + Math.random())); // exponential back off retry\n setRetryCount(count => count+1);\n timeoutRef.current = setTimeout(retryTimeout, randomDelay);\n },[retryCount, retryImageLoad, retryLimit, retryTimeout]);\n\n\n\n const onLoad = useCallback(()=>{\n timeoutRef.current && clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n setShowImage(true);\n },[]);\n\n return (\n <Container {...{ hoverZoom, mediaUrl }} aspect='16:9' onClick={handleModal}>\n <Image ref={imgRef} src={imgSrc} onError={retryImage} onLoad={onLoad} showImage={showImage} />\n {mediaUrl && (mediaType === 'video') &&\n <PlayableDrop>\n <Icon size={12} icon='Play' color='inverse' />\n </PlayableDrop>}\n </Container>\n );\n};\n\nexport default TableRowThumbnail;\n","import React from 'react';\nimport styled, { css } from 'styled-components';\nimport {IDeviceStatus} from '..';\n\ntype TypeDeviceStatus = IDeviceStatus;\n\nconst Container = styled.div<{ status: TypeDeviceStatus }>`\n height: 42px;\n width: 4px;\n border-radius: 3px;\n display: block;\n\n ${({status, theme: {colors}}) => css`\n background: ${colors.status[status]};\n content:'${status}';\n `}\n\n`;\n\ninterface IProps {\n status: TypeDeviceStatus\n}\n\nconst TypeTableDeviceStatus : React.FC<IProps> = ({status = 'neutral'}) => {\n return <Container status={status} />;\n};\n\nexport default TypeTableDeviceStatus;","import { useCallback } from 'react';\n\nexport const useCopyToClipboard = () => {\n const copyToClipboard = useCallback((str : string) : boolean => {\n\n // Make an area to allow for copying.\n const el = document.createElement('textarea');\n el.value = str;\n el.setAttribute('readonly', '');\n el.style.position = 'absolute';\n el.style.left = '-9999px';\n document.body.appendChild(el);\n\n const selection = document.getSelection();\n\n if(selection){\n const selected = selection.rangeCount > 0 ? selection.getRangeAt(0) : false;\n el.select();\n\n const success = document.execCommand('copy');\n document.body.removeChild(el);\n if(selected) {\n selection.removeAllRanges();\n selection.addRange(selected);\n }\n return success;\n }\n\n return false;\n\n },[]);\n\n return {copyToClipboard};\n};","import React from 'react';\nimport styled, { css } from 'styled-components';\n\nimport Icon from '../../Icons/Icon';\nimport { useCopyToClipboard } from '../../hooks/useCopyToClipboard';\nimport {TypeCellStyle, TypeCellAlignment} from '..';\n\nconst CopyToClipboard = styled.button`\n\n cursor: pointer;\n opacity: 0;\n\n position: absolute;\n right: 0;\n top: 14px;\n width: 20px;\n height: 20px;\n background: transparent;\n border: none;\n outline: none;\n\n ${({theme}) => theme && css`\n transition: ${theme.animation.speed.normal} ${theme.animation.easing.easeOut};\n `}\n\n svg {\n display: block;\n }\n\n &:hover {\n opacity: 1 !important;\n }\n\n`;\n\nconst CellContainer = styled.div<{ cellStyle: TypeCellStyle, alignment: TypeCellAlignment, hideDivider?: boolean, hasCopyButton?:boolean }>`\n display: table-cell;\n height: 50px;\n vertical-align: middle;\n position: relative;\n line-height: 30px;\n font-family: ${p => p.theme.fontFamily.data};\n\n &:hover ${CopyToClipboard}{\n opacity: 0.5;\n }\n\n &, a {\n ${({theme, cellStyle, alignment}) => cellStyle === 'firstColumn' ? css`\n ${theme.typography.table.columnData[cellStyle]};\n ` : css`\n ${theme.typography.table.columnData[cellStyle][alignment]};\n `}\n }\n\n a:hover {\n text-decoration: underline;\n }\n\n ${({hasCopyButton}) => hasCopyButton && css`\n padding-right: 20px;\n `};\n\n ${({theme: {styles}, hideDivider}) => !hideDivider && css`\n &::after {\n ${styles.tables.rows.divider};\n content: '';\n display: block;\n height: 1px;\n left: 0;\n right: 0;\n width: 100%;\n bottom: 0px;\n position: absolute;\n }\n `}\n`;\n\nconst UnitText = styled.span`\n ${({theme}) => css`\n ${theme.typography.table.columnData['unit']};\n `}\n`;\n\nconst StatusBlip = styled.div<{status?:string}>`\n display: inline-block;\n width: 10px;\n height: 10px;\n border-radius: 50%;\n margin-right: 8px;\n ${({status = 'neutral', theme: {colors}}) => css`\n background: ${colors.status[status]};\n `}\n`;\ninterface IProps {\n isLastRow?: boolean\n hideDivider?: boolean\n cellStyle?: TypeCellStyle\n alignment?: TypeCellAlignment\n href?: string\n showUnit?: boolean\n showStatus?: boolean\n unit?: string\n status?: string\n hasCopyButton?: boolean\n}\n\nconst TypeTableCell : React.FC<IProps> = ({ showUnit = false, showStatus = false, status, unit = '', cellStyle = 'normalImportance', alignment = 'left', hideDivider, isLastRow, hasCopyButton, href, children }) => {\n\n // No divider on the last row.\n hideDivider = isLastRow ? true : hideDivider;\n\n const {copyToClipboard} = useCopyToClipboard();\n\n\n return (\n <CellContainer {...{cellStyle, alignment, hideDivider, hasCopyButton}}>\n {showStatus ? <StatusBlip {...{status}} /> : null}\n {href ? <a href={href}>{children}</a> : children}\n {showUnit ? <UnitText>{unit}</UnitText> : null}\n {hasCopyButton ? <CopyToClipboard onClick={() => typeof children === 'string' && copyToClipboard(children)}><Icon icon='Copy' size={16} /></CopyToClipboard> : null}\n </CellContainer>\n );\n};\n\nexport default TypeTableCell;\n","import React, { useCallback } from 'react';\nimport styled, {css} from 'styled-components';\n\nimport Checkbox from '../../Form/atoms/Checkbox';\nimport TableRowThumbnail from './TableRowThumbnail';\nimport TypeTableDeviceStatus from './TypeTableDeviceStatus';\nimport TypeTableCell from './TypeTableCell';\nimport Icon from '../../Icons/Icon';\nimport { ITableColumnConfig, IRowData } from '..';\n\n\nconst RowContainer = styled.div<{isEmpty: boolean}>`\n display: table-row;\n ${({isEmpty}) => isEmpty && css`\n visibility: hidden;\n `};\n`;\n\ninterface IProps {\n isLastRow?: boolean\n selectable?: boolean\n hasStatus?: boolean\n hasThumbnail?: boolean\n hasTypeIcon?: boolean\n columnConfig: ITableColumnConfig[]\n rowData: IRowData\n selectCallback? : (event: any, id?: string | number) => void\n}\n\nconst TypeTableRow : React.FC<IProps> = ({selectable = false, selectCallback, hasStatus, hasThumbnail, hasTypeIcon, rowData, isLastRow, columnConfig }) => {\n\n const wrappedSelectCallback = useCallback((checked) => {\n if(selectCallback){ selectCallback(checked, rowData.id); }\n }, [rowData.id, selectCallback]);\n\n const isEmpty = rowData.columns.length === 0;\n\n return (\n <RowContainer isEmpty={isEmpty}>\n {selectable ? <TypeTableCell hideDivider><Checkbox checked={rowData._checked} onChangeCallback={wrappedSelectCallback} /></TypeTableCell> : null}\n {hasStatus ? <TypeTableCell hideDivider><TypeTableDeviceStatus status={rowData.header?.status} /></TypeTableCell> : null}\n {hasThumbnail ? <TypeTableCell hideDivider><TableRowThumbnail image={rowData.header?.image} mediaUrl={rowData.header?.mediaUrl} mediaType={rowData.header?.mediaType} retryImageLoad={rowData.header?.retryImageLoad} /></TypeTableCell> : null}\n {hasTypeIcon ? <TypeTableCell hideDivider><Icon icon={rowData.header?.icon || ''} color='dimmed' weight='regular' size={16} /></TypeTableCell> : null}\n\n {rowData.columns.map((cell, key) => {\n const {cellStyle, alignment, showUnit, showStatus, hasCopyButton} = columnConfig[key];\n const {unit, status, text, customComponent} = cell;\n return <TypeTableCell key={key} href={cell.href} {...{cellStyle, alignment, showUnit, showStatus, hasCopyButton, unit, status, isLastRow}}>{customComponent ? customComponent : text}</TypeTableCell>;\n })}\n\n </RowContainer>\n );\n};\n\n\nexport default TypeTableRow;","import React from 'react';\nimport styled, {css}from 'styled-components';\nimport Icon, {IconWrapper} from '../../Icons/Icon';\n\nconst HeaderTitle = styled.div<{sortable?: boolean, isSortActive?: boolean, ascending?:boolean}>`\n border-bottom-right-radius: 3px;\n border-top-right-radius: 3px;\n display: inline-flex;\n justify-content: center;\n align-content: center;\n position: relative;\n padding: 0 2px;\n user-select: none;\n z-index: 99;\n\n ${IconWrapper} {\n position: absolute;\n top: 0px;\n left: -15px;\n display: none;\n border-bottom-left-radius: 3px;\n border-top-left-radius: 3px;\n padding: 3px 1px;\n\n ${({ascending}) => ascending && css`\n transform: rotate(180deg);\n border-bottom-right-radius: 3px;\n border-top-right-radius: 3px;\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n top: 0;\n `}\n }\n\n ${({isSortActive}) => isSortActive && css`\n &:not(hover) {\n ${IconWrapper} {\n display: inline-flex;\n }\n }\n `}\n\n ${({theme: { styles }, sortable}) => sortable && css`\n\n ${styles.tables.header.sortable.default};\n\n &:hover {\n cursor: pointer;\n ${styles.tables.header.sortable.hover};\n\n ${IconWrapper} {\n ${styles.tables.header.sortable.hover};\n display: inline-flex;\n }\n }\n `}\n`;\n\ninterface IHeaderProps {\n isSortActive?: boolean\n header: string\n sortable?: boolean\n ascending?: boolean\n columnId?: string\n indexKey: number\n toggleSort: (dataKey: number, columnId?: string) => void\n}\n\nconst TableHeaderTitle : React.FC<IHeaderProps> = ({\n header,\n sortable,\n isSortActive,\n ascending,\n columnId,\n indexKey,\n toggleSort\n}) => {\n\n const handleClick = (key: number, colId?: string) => {\n toggleSort(key, colId);\n };\n\n return(\n <HeaderTitle\n sortable={sortable}\n isSortActive={isSortActive}\n ascending={ascending}\n onClick={() => {handleClick(indexKey, columnId);}}\n >\n {sortable && <Icon icon='FilterSorting' size={14} color='dimmed' />}\n {header}\n </HeaderTitle>\n );\n};\n\nexport default TableHeaderTitle;","import React, { useState, useCallback, Fragment } from 'react';\nimport styled, { css } from 'styled-components';\nimport { TypeCellAlignment, ITableColumnConfig } from '..';\nimport Checkbox from '../../Form/atoms/Checkbox';\nimport TableHeaderTitle from '../atoms/TableHeaderTitle';\n\nconst HeaderRow = styled.div`\n display: table-row;\n height: 50px;\n`;\n\nconst HeaderItem = styled.div<{ fixedWidth?: number, alignment?: TypeCellAlignment, hasCopyButton?: boolean, minWidth?: number, headerStyle: string, isSortActive?: boolean }>`\n display: table-cell;\n height: inherit;\n vertical-align:top;\n line-height: 20px;\n position: relative;\n font-family: ${p => p.theme.fontFamily.ui};\n\n ${({ hasCopyButton }) => hasCopyButton && css`\n padding-right: 20px;\n `};\n\n ${({ theme, alignment, headerStyle }) => alignment ? css`\n ${theme.typography.table[headerStyle][alignment]};\n ` : css`\n ${theme.typography.table[headerStyle]['left']};\n `};\n\n ${p => p.fixedWidth && css`\n width: ${p.fixedWidth}px;\n `};\n\n ${({ minWidth }) => minWidth && css`\n min-width:${minWidth}px;\n `};\n\n ${({ theme: {styles}, headerStyle, isSortActive }) => headerStyle === 'subHeader' && css`\n padding-bottom: 15px;\n\n &::after {\n ${styles.tables.header.divider};\n content: '';\n display: block;\n height: 1px;\n left: ${isSortActive ? '-15px' : '0'};\n right: 0;\n width: ${isSortActive ? 'calc(100% + 15px)' : '100%'};\n bottom: 0px;\n position: absolute;\n }\n`};\n`;\n\n// Default alignment is left//\nconst TitleItems = styled.div<{ alignment?: TypeCellAlignment }>`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n ${({ alignment }) => alignment && css`\n ${alignment === 'right' ? 'align-items: flex-end' : null};\n ${alignment === 'center' ? 'align-items: center' : null};\n `};\n`;\n\nconst GroupTitle = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n align-self: stretch;\n margin-bottom: 4px;\n`;\n\nconst Title = styled.div`\n ${({ theme: {typography} }) => css`\n ${typography.tables.groupName};\n `};\n padding-left: 2px;\n padding-right: 8px;\n white-space: nowrap;\n`;\n\n// Keeps the height consistent with other rows\nconst EmptyTitle = styled.div`\n height: 20px;\n`;\n\nconst MiddleLine = styled.div<{ isLastOfGroup?: boolean }>`\n ${({ theme: {styles} }) => css`\n ${styles.tables.header.groupLine};\n `};\n\n height: 1px;\n flex: 1;\n ${({ isLastOfGroup }) => isLastOfGroup && css`\n margin-right: 15px;\n `};\n`;\n\nconst renderGroupHeader = (columnConfig: ITableColumnConfig[], index: number) => {\n if (index < 0) { return null; }\n\n let isLastOfGroup: boolean = true;\n\n // Is Last of the group if the next is different\n if (index < (columnConfig.length - 1)) {\n isLastOfGroup = (columnConfig[index].groupTitle !== columnConfig[index + 1].groupTitle);\n }\n\n // if the column doesn't belong to any group\n if (!columnConfig[index].groupTitle) {\n return (\n <EmptyTitle />\n );\n }\n\n // has group, previous was equal\n if ((index !== 0) && (columnConfig[index - 1].groupTitle === columnConfig[index].groupTitle)) {\n return (\n <Fragment>\n <EmptyTitle />\n <MiddleLine {...{ isLastOfGroup }} />\n </Fragment>\n );\n }\n\n // New GroupTitle\n return (\n <Fragment>\n <Title>{columnConfig[index].groupTitle}</Title>\n <MiddleLine {...{ isLastOfGroup }} />\n </Fragment>\n );\n};\n\ninterface ITableHeader {\n selectable?: boolean\n hasStatus: boolean\n hasThumbnail: boolean\n hasTypeIcon: boolean\n allChecked: boolean\n isEmptyTable: boolean\n isLoading: boolean\n hasHeaderGroups: boolean\n columnConfig: ITableColumnConfig[]\n defaultAscending: boolean\n toggleAllCallback?: (checked: boolean) => void\n sortCallback?: (ascending: boolean, columnId: string) => void\n}\n\nconst TypeTableHeader: React.FC<ITableHeader> = ({\n selectable,\n hasStatus,\n hasThumbnail,\n hasTypeIcon,\n allChecked,\n isEmptyTable,\n isLoading,\n hasHeaderGroups,\n columnConfig,\n defaultAscending,\n toggleAllCallback = () => { },\n sortCallback = () => { },\n}) => {\n\n const [sortSpec, setSortSpec] = useState(columnConfig);\n const [ascendingState, setAscendingState] = useState(defaultAscending);\n\n const toggleAllCallbackWrapper = useCallback((checked: boolean) => {\n toggleAllCallback(checked);\n }, [toggleAllCallback]);\n\n\n /**\n * Rules for toggling ascending value\n * - Clicked column was active, toggle value of ascending.\n * - No column was sorted before, keep the sorting ascending.\n * - Clicked column was not active persist the last ascending option\n */\n const toggleSort = useCallback((indexKey: number, columnId?: string) => {\n\n if (sortSpec[indexKey] === undefined) { return; }\n if (!sortSpec[indexKey].sortable) { return; }\n\n const updatedSort = [...sortSpec];\n\n let lastActiveKey: number | null = null;\n updatedSort.forEach((col, key) => {\n if (col.sortActive) {\n lastActiveKey = key;\n }\n if (key === indexKey) {\n col.sortActive = true;\n } else {\n col.sortActive = false;\n }\n });\n\n const newAscending: boolean = (lastActiveKey === indexKey) ? !ascendingState : ascendingState;\n const colId: string = (columnId === undefined) ? `column_${indexKey}` : columnId;\n sortCallback(newAscending, colId);\n setSortSpec(updatedSort);\n setAscendingState(newAscending);\n }, [ascendingState, sortCallback, sortSpec]);\n\n return (\n <HeaderRow>\n {selectable ? (\n <HeaderItem headerStyle='header' fixedWidth={30}>\n <Checkbox checked={allChecked} disabled={isEmptyTable || isLoading} onChangeCallback={toggleAllCallbackWrapper} />\n </HeaderItem>)\n : null}\n {hasStatus ? <HeaderItem headerStyle='header' fixedWidth={10} /> : null}\n {hasThumbnail ? <HeaderItem headerStyle='header' fixedWidth={70} /> : null}\n {hasTypeIcon ? <HeaderItem headerStyle='header' fixedWidth={35} /> : null}\n\n {columnConfig.map((column, key, allColls) => {\n const { header, alignment, hasCopyButton, sortActive, columnId, sortable, minWidth }: ITableColumnConfig = column;\n return (\n <HeaderItem\n key={key}\n {...{ alignment, hasCopyButton, minWidth }}\n headerStyle={hasHeaderGroups ? 'subHeader' : 'header'}\n isSortActive={sortActive}\n >\n <TitleItems {...{ alignment }}>\n {hasHeaderGroups &&\n <GroupTitle>\n {hasHeaderGroups && renderGroupHeader(allColls, key)}\n </GroupTitle>}\n <TableHeaderTitle\n header={header}\n sortable={sortable}\n indexKey={key}\n columnId={columnId}\n isSortActive={sortActive}\n ascending={ascendingState}\n toggleSort={toggleSort}\n />\n </TitleItems>\n </HeaderItem>);\n })}\n </HeaderRow>\n );\n};\n\nexport default TypeTableHeader;","import React, { useEffect, useState } from 'react';\nimport styled from 'styled-components';\nimport Spinner from '../../Indicators/Spinner';\nimport TypeTableRow from '../atoms/TypeTableRow';\nimport { ITableColumnConfig, ITypeTableData, IRowData } from '..';\nimport TypeTableHeader from '../molecules/TypeTableHeader';\n\nconst Container = styled.div``;\n\nconst TableContainer = styled.div`\n display: table;\n width: 100%;\n position: relative;\n`;\n\nconst LoadingText = styled.div`\n color: hsla(195, 10%, 52%, 0.72);\n`;\n\nconst LoadingBox = styled.div`\n position: absolute;\n left: 0;\n z-index: 99;\n background-color: ${({ theme }) => theme.styles.tables.loadingOverlay};\n height: calc(100% - 50px);\n width: 100%;\n min-height: 100px;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 20px;\n\n ${LoadingText} {\n margin-top: 10px;\n }\n`;\n\nconst EmptyTableBox = styled.div`\n position: absolute;\n left: 0;\n z-index: 99;\n padding: 20px;\n width: 100%;\n min-height: 100px;\n text-align: center;\n h3 {\n font-weight: 500;\n color: hsl(208, 8%, 38%);\n }\n color: hsl(207, 5%, 57%);\n`;\n\nconst isChecked = ({ _checked = false }: IRowData) => {\n return _checked === true;\n};\n\ninterface IProps {\n columnConfig: ITableColumnConfig[]\n rows: ITypeTableData\n selectable?: boolean\n hasStatus?: boolean\n hasThumbnail?: boolean\n hasTypeIcon?: boolean\n defaultAscending?: boolean\n isLoading?: boolean\n loadingText?: string\n emptyTableTitle?: string\n emptyTableText?: string\n hasHeaderGroups?: boolean\n selectCallback?: (checked: boolean, id?: string | number) => void\n toggleAllCallback?: (checked: boolean) => void\n sortCallback?: (ascending: boolean, columnId: string) => void\n}\n\nconst TypeTable: React.FC<IProps> = ({\n columnConfig,\n selectable,\n rows = [],\n hasStatus = false,\n hasThumbnail = false,\n hasTypeIcon = false,\n defaultAscending = false,\n isLoading = false,\n loadingText = 'Loading Data...',\n emptyTableTitle = '',\n emptyTableText = '',\n hasHeaderGroups = false,\n sortCallback = () => { },\n selectCallback = () => { },\n toggleAllCallback = () => { },\n}) => {\n\n /* Note about Empty table\n Currently IRowData Type enforces user to send columns\n so rows length will always be at least 1\n I wasn't sure if I should edit IRowData to have columns optional\n If we allow columns to be optional, previous implementations\n wont be able to have \"No data\" Message\n*/\n\n const [allChecked, setAllChecked] = useState(false);\n const isEmptyTable = (rows.length === 1) && (rows[0].columns.length === 0) && (!isLoading);\n\n useEffect(() => {\n let areAllChecked = false;\n if (rows.every(isChecked) && (rows.length > 0) && !isEmptyTable) {\n areAllChecked = true;\n }\n setAllChecked(areAllChecked);\n }, [isEmptyTable, rows]);\n\n return (\n <Container>\n <TableContainer>\n <TypeTableHeader\n {...{\n selectable,\n hasStatus,\n hasThumbnail,\n hasTypeIcon,\n defaultAscending,\n allChecked,\n isEmptyTable,\n isLoading,\n hasHeaderGroups,\n columnConfig,\n toggleAllCallback,\n sortCallback,\n }}\n />\n {isLoading ? (\n <LoadingBox>\n <Spinner size='large' styling='primary' />\n <LoadingText>{loadingText}</LoadingText>\n </LoadingBox>\n ) : null}\n {isEmptyTable\n ? (\n <EmptyTableBox>\n <h3>{emptyTableTitle}</h3>\n <p>{emptyTableText}</p>\n </EmptyTableBox>\n )\n : null}\n {rows.map((rowData, key) => {\n const isLastRow = (rows.length - 1 === key) ? true : false;\n return (\n <TypeTableRow\n key={key} {...{\n rowData,\n isLastRow,\n selectable,\n selectCallback,\n columnConfig,\n hasStatus,\n hasThumbnail,\n hasTypeIcon\n }}\n />\n );\n })}\n </TableContainer>\n </Container>\n );\n};\n\nexport default TypeTable;","import React, { InputHTMLAttributes, useState, useCallback, useRef } from 'react';\nimport styled, { css } from 'styled-components';\nimport SmallInput from '../../Form/atoms/SmallInput';\nimport Button from '../../Form/atoms/Button';\nimport ButtonWithLoading from '../../Form/atoms/ButtonWithLoading';\nimport { StyledLabel } from '../../Form/atoms/Label';\nimport IconButton from '../../Form/atoms/IconButton';\nimport { TypeCellAlignment } from '../';\nimport { useClickOutside } from '../../hooks/useClickOutside';\nimport { Link } from 'react-router-dom';\n\nconst Container = styled.div`\n position: relative;\n ${({ theme }) => css`\n font-family: ${theme.fontFamily.ui};\n `}\n`;\nconst StyledButton = styled(Button)`\n flex-shrink: 0;\n`;\n\nconst StyledLoadingButton = styled(ButtonWithLoading)`\n flex-shrink: 0;\n`;\n\nconst StyledLink = styled(Link)`\n color: inherit;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n`;\n\nconst EditContainer = styled.div`\n min-width: 320px;\n background-color: hsl(0, 0%, 100%);\n z-index: 99;\n position: absolute;\n bottom: -15px;\n left: -11px;\n display: flex;\n align-items: center;\n justify-content: center;\n ${StyledLabel} {\n margin:0;\n span {\n margin: 0;\n }\n }\n ${StyledButton} {\n margin-left: 5px;\n }\n ${StyledLoadingButton} {\n margin-left: 5px;\n }\n`;\n\nconst StyledIconButton = styled(IconButton)``;\n\nconst TextContainer = styled.div<{ alignment: TypeCellAlignment }>`\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding-right: 18px;\n\n ${({ alignment }) => alignment === 'center' && css`\n justify-content: center;\n `}\n\n ${({ alignment }) => alignment === 'right' && css`\n justify-content: flex-end;\n`}\n\n ${StyledIconButton} {\n opacity: 0;\n position: absolute;\n top: 7px;\n right: 0;\n };\n\n &:hover {\n ${StyledIconButton} {\n opacity: 1;\n };\n }\n`;\n\nexport interface OwnProps {\n defaultValue: string\n rowKey: string\n alignment?: TypeCellAlignment\n toLink?: string\n saveCallback?: (inputValue: string, rowKey: string) => void\n}\n\ntype IEditableCell = OwnProps & InputHTMLAttributes<HTMLInputElement>\n\nconst EditCell: React.FC<IEditableCell> = ({\n type = 'text',\n placeholder = '',\n defaultValue,\n rowKey,\n alignment = 'left',\n toLink = '',\n saveCallback,\n ...props\n}) => {\n const [isEditMode, setIsEditMode] = useState(false);\n const [updatedValue, setUpdatedValue] = useState(defaultValue);\n const [loading, setLoading] = useState(false);\n\n const handleSave = useCallback(async (value: string) => {\n setLoading(true);\n if (saveCallback) {\n await saveCallback(value, rowKey);\n }\n setIsEditMode(false);\n setLoading(false);\n }, [rowKey, saveCallback]);\n\n const verifyKeyPress = useCallback(async (eve: React.KeyboardEvent<HTMLInputElement>) => {\n\n // var code = parseInt(eve.key, 10);\n const code = eve.keyCode | eve.which | parseInt(eve.key, 10);\n\n if (code === 13 && handleSave) {\n await handleSave(updatedValue);\n setIsEditMode(false);\n }\n\n if (code === 27) {\n setUpdatedValue(defaultValue);\n setIsEditMode(false);\n }\n\n }, [handleSave, updatedValue, defaultValue]);\n\n const editContainerRef = useRef<HTMLDivElement>(null);\n\n const onClickOutsideEdit = () => {\n setUpdatedValue(defaultValue);\n setIsEditMode(false);\n };\n\n useClickOutside(editContainerRef, onClickOutsideEdit);\n\n return (\n <Container>\n {isEditMode\n ? (\n <EditContainer ref={editContainerRef}>\n <SmallInput\n {...props}\n autoFocus\n label=''\n disabled={loading}\n type={type}\n placeholder={placeholder}\n defaultValue={defaultValue}\n onKeyUp={(eve: React.KeyboardEvent<HTMLInputElement>) => verifyKeyPress(eve)}\n onChange={(e: React.ChangeEvent<HTMLInputElement>) => { setUpdatedValue(e.target.value); }}\n />\n <StyledLoadingButton\n onClick={() => {\n handleSave(updatedValue);\n }}\n size='small'\n loading={loading}\n >\n {loading ? 'Saving' : 'Save'}\n </StyledLoadingButton>\n {!loading && (\n <StyledButton\n onClick={() => setIsEditMode(false)}\n design='secondary'\n size='small'\n >Cancel\n </StyledButton>)}\n </EditContainer>)\n : (\n <TextContainer alignment={alignment}>\n {toLink ? <StyledLink to={toLink}>{updatedValue}</StyledLink> : updatedValue}\n <StyledIconButton icon='Edit' weight='light' size={16} onClick={() => setIsEditMode(true)} />\n </TextContainer>)}\n </Container>\n );\n};\n\nexport default EditCell;","export type PTZReducerActions =\n | ConnectStartAction\n | ConnectFailAction\n | ConnectSuccessAction\n // | DisconnectStartAction\n // | DisconnectFailAction\n | DisconnectSuccessAction\n | MoveStart\n | Stop\n | ZoomStart\n | Home\n | SetImage\n | PTZError\n;\n\ninterface ConnectStartAction {\n type: 'CONNECTING';\n address: string;\n}\ninterface ConnectFailAction {\n type: 'CONNECTION_FAIL';\n errorMessage: string;\n}\ninterface PTZError {\n type: 'PTZ_ERROR';\n errorMessage: string;\n}\ninterface ConnectSuccessAction {\n type: 'CONNECTED';\n}\n// interface DisconnectStartAction {\n// type: 'DISCONNECTING';\n// }\n// interface DisconnectFailAction {\n// type: 'DISCONNECT_FAIL';\n// }\ninterface DisconnectSuccessAction {\n type: 'DISCONNECTED';\n}\ninterface MoveStart {\n type: 'MOVE_START';\n direction: MoveDirections;\n}\n// interface MoveStop {\n// type: 'MOVE_STOP';\n// }\ninterface ZoomStart {\n type: 'ZOOM_START';\n zooming: ZoomStates\n}\ninterface SetImage {\n type: 'SET_IMAGE';\n image: string;\n}\ninterface Stop {\n type: 'STOP';\n}\ninterface Home {\n type: 'HOME';\n}\n\n\nexport interface PTZCredentials {\n host: string;\n username: string;\n password: string;\n}\ntype MoveDirections = 'left'|'right'|'up'|'down'|'home'|null;\ntype ZoomStates = 'in'|'out'|null;\nexport interface PTZState {\n connection: 'connected'|'connecting'|'error'|'disconnecting'|'disconnected';\n moving: MoveDirections;\n zooming: ZoomStates;\n loading: boolean;\n image: string;\n address?: string;\n errorMessage?: string;\n stateID: number;\n}\n\n\nexport default (state : PTZState, action: PTZReducerActions): PTZState => {\n\n switch(action.type){\n case 'CONNECTING': {\n return {\n ...state,\n connection: 'connecting',\n address: action.address,\n loading: true,\n errorMessage: ''\n };\n }\n case 'CONNECTED': {\n return {\n ...state,\n connection: 'connected',\n loading: false\n };\n }\n case 'CONNECTION_FAIL': {\n return {\n ...state,\n loading: false,\n connection: 'error',\n errorMessage: action.errorMessage\n };\n }\n case 'PTZ_ERROR': {\n //UNHANDLED ERROR\n return {\n ...state,\n loading: false,\n errorMessage: action.errorMessage\n };\n }\n // case 'DISCONNECTING': {\n // return {\n // ...state,\n // connection: 'disconnecting',\n // };\n // }\n case 'DISCONNECTED': {\n return {\n image: '',\n connection: 'disconnected',\n moving: null,\n zooming: null,\n loading: false,\n stateID: state.stateID\n };\n }\n // case 'DISCONNECT_FAIL': {\n // return {...state, connection: 'error'};\n // }\n case 'SET_IMAGE': {\n return {\n ...state,\n image: action.image\n };\n }\n case 'MOVE_START': {\n return {\n ...state,\n moving: action.direction,\n };\n }\n case 'STOP': {\n return {\n ...state,\n moving: null,\n zooming: null,\n };\n }\n case 'ZOOM_START': {\n return {\n ...state,\n zooming: action.zooming,\n };\n }\n case 'HOME': {\n return state;\n }\n\n default:\n console.error(`Action ${action['type']} not registered.`);\n return state;\n }\n};\n\n\n\n\n\n","import { useCallback, useEffect, useReducer } from 'react';\nimport useWebSocket from 'react-use-websocket';\nimport reducer from './PTZReducer';\n\nconst usePTZ = ({socketUrl='', imageRefresh = 1000}) => {\n const {\n sendJsonMessage,\n lastMessage\n } = useWebSocket(socketUrl);\n\n const [state, dispatch ] = useReducer(reducer, {\n connection: 'disconnected',\n moving: null,\n zooming: null,\n image: '',\n loading: false,\n stateID: Math.floor(Math.random() * 1000)\n });\n const {address=null} = state;\n\n const connect = useCallback(async ({username: user, password: pass, host: address, port = 80}: {username: string, password: string, host: string, port?: number})=>{\n dispatch({\n type: 'CONNECTING',\n address\n });\n await sendJsonMessage({\n method: 'connect',\n params: {\n address,\n port,\n user,\n pass\n }\n });\n },[sendJsonMessage]);\n\n const move = useCallback(({direction}: {direction: 'up'|'down'|'left'|'right'}) => {\n console.debug('move', direction);\n const speed = {\n x: 0,\n y: 0,\n z: 0\n };\n\n dispatch({\n type: 'MOVE_START',\n direction\n });\n\n switch (direction){\n case 'up':\n speed.y = 1;\n break;\n case 'down':\n speed.y = -1;\n break;\n case 'left':\n speed.x = -1;\n break;\n case 'right':\n speed.x = 1;\n break;\n }\n\n sendJsonMessage({\n method: 'ptzMove',\n params: {\n address,\n speed,\n timeout: 30\n }\n });\n },[sendJsonMessage, address]);\n\n const zoom = useCallback(({zooming}: {zooming: 'in'|'out'}) => {\n console.debug('zoom', zooming);\n const speed = {\n x: 0,\n y: 0,\n z: 0\n };\n dispatch({\n type: 'ZOOM_START',\n zooming\n });\n switch (zooming) {\n case 'in':\n speed.z = 1;\n break;\n case 'out':\n speed.z = -1;\n break;\n }\n sendJsonMessage({\n method: 'ptzMove',\n params: {\n address,\n speed,\n timeout: 30\n }\n });\n },[sendJsonMessage, address]);\n\n const stop = useCallback(()=>{\n sendJsonMessage({\n method: 'ptzStop',\n params: {\n address\n }\n });\n },[sendJsonMessage, address]);\n\n const disconnect = useCallback(async () => {\n dispatch({\n type: 'DISCONNECTED',\n });\n },[]);\n\n const getImage = useCallback(async ()=>{\n if(!address) { return; }\n sendJsonMessage({\n method: 'fetchSnapshot',\n params: {\n address\n }\n });\n },[address, sendJsonMessage]);\n\n useEffect(()=>{\n const intervalHandler = setInterval(getImage, imageRefresh);\n return () => {\n window.clearInterval(intervalHandler);\n };\n },[getImage, imageRefresh]);\n\n\n useEffect(()=>{\n if(!lastMessage){ return; }\n const {id ='', result=null, error} = JSON.parse(lastMessage.data);\n if(error && id !== 'fetchSnapshot'){\n dispatch({\n type: 'PTZ_ERROR',\n errorMessage: error\n });\n return;\n } else if(id === 'connect') {\n getImage();\n dispatch({\n type: 'CONNECTED',\n });\n } else if(id === 'fetchSnapshot'){\n dispatch({\n type: 'SET_IMAGE',\n image: result||''\n });\n } else if(id === 'ptzMove'){\n console.debug('ptzMove');\n } else if(id === 'ptzStop'){\n console.debug('ptzStop');\n dispatch({\n type: 'STOP'\n });\n }\n },[address, getImage, lastMessage]);\n\n return {state, dispatch, actions: { connect, getImage, disconnect, zoom, stop, move} };\n};\n\nexport default usePTZ;","import React from 'react';\nimport { createContext } from 'react';\nimport { PTZReducerActions, PTZState } from \"./PTZReducer\";\nimport usePTZ from './usePTZ';\n\nexport interface IPTZContext {\n state: PTZState,\n dispatch: React.Dispatch<PTZReducerActions>\n actions: PTZActions\n}\ninterface PTZActions {\n move: ({direction}:{direction: 'up'|'down'|'left'|'right'}) => void;\n zoom: ({zooming}: {zooming: 'in'|'out'}) => void;\n stop: () => void;\n connect: (params: {username: string, password: string, host: string, port?: number}) => void;\n disconnect: () => void;\n}\n\nexport const PTZContext = createContext<IPTZContext>({state: {} as PTZState, dispatch: ()=>{}, actions: {} as PTZActions});\n\ninterface Props {\n socketUrl?: string;\n imageRefresh?: number\n}\n\nconst PTZProvider: React.FC<Props> = ({socketUrl ='ws://localhost/wsapp/', imageRefresh = 1000, children}) => {\n\n const {state, dispatch, actions} = usePTZ({socketUrl, imageRefresh});\n return (\n <PTZContext.Provider value={{state, dispatch, actions}}>\n {children}\n </PTZContext.Provider>\n );\n};\n\nexport default PTZProvider;","import React, { useState, useCallback, useContext } from 'react';\nimport styled, {css} from 'styled-components';\nimport { PTZContext } from '../state/PTZProvider';\nconst Active = styled.g<{active:boolean}>`\n opacity: 0;\n ${({active}) => active && css`opacity: 1;`}\n\n`;\nconst Hover = styled.g<{hover:boolean}>`\n opacity: 0;\n ${({hover}) => hover && css`opacity: 1;`}\n`;\n\nconst Container = styled.g`\n`;\n\n\ninterface Props {\n\n}\n\nconst Up: React.FC<Props> = () => {\n const [hover, setHover] = useState(false);\n const { state: {moving}, actions: {move, stop} } = useContext(PTZContext);\n\n const activeStart = useCallback(()=>{\n setHover(false);\n move({direction: 'up'});\n },[move]);\n const activeEnd = useCallback(()=>{\n stop();\n setHover(true);\n },[stop]);\n const hoverStart = useCallback(()=>{\n setHover(true);\n },[]);\n const hoverEnd = useCallback(()=>{\n setHover(false);\n },[]);\n return (\n <Container onMouseEnter={hoverStart} onMouseLeave={hoverEnd} onMouseDown={activeStart} onMouseUp={activeEnd} onTouchStart={activeStart} onTouchEnd={activeEnd} transform='translate(138.146447, 137.146447) rotate(45.000000)'>\n <Hover hover={hover} transform='translate(-138.146447, -137.146447) translate(41.146447, 40.646447)' fill='url(#linearGradient-11)' fillOpacity='0.56'>\n <path d='M97.1695375,0.000553838433 L97.5,0.333477759 L97.5,96.5 L1.33347776,96.5 L1.00279053,96.1695538 L1.01292824,94.904196 C1.86331972,42.4545249 44.5585771,0.176923219 97.1695375,0.000553838433 Z' id='PTZ-Hover-Up' />\n </Hover>\n\n <Active active={moving === 'up'} transform='translate(-137.792893, -137.500000) translate(40.792893, 40.500000) translate(1.002791, 0.000554)'>\n <path d='M96.1667469,-4.68958206e-13 L96.4972095,0.33292392 L96.4972095,96.4994462 L0.33068723,96.4994462 L2.98427949e-13,96.169 L0.0101377147,94.9036422 C0.860529194,42.4539711 43.5557866,0.176369381 96.1667469,-4.68958206e-13 Z' id='PTZ-Active-Up-Slice' fillOpacity='0.56' fill='url(#linearGradient-12)' />\n <path d='M96.1667469,9.08073616e-12 L96.4972095,0.33292392 L96.1682095,0.658446162 L96.1835085,4.9999719 C46.8438228,5.16537489 6.62803783,44.4114895 5.04606009,93.4545769 L5.00997725,94.9436996 L4.99983954,96.2090574 L0.655209472,96.1734462 L0.33068723,96.4994462 L1.20792265e-12,96.169 L0.0101377147,94.9036422 C0.860529194,42.4539711 43.5557866,0.176369381 96.1667469,9.08073616e-12 Z' id='PTZ-Active-Up-Highlight' stroke='url(#linearGradient-18)' fill='url(#linearGradient-17)' />\n </Active>\n\n <g id='PTZ-Arrows-Icons' transform='rotate(-45.000000) translate(-138.146447, -137.146447) translate(68.000000, 68.000000)' fillRule='nonzero'>\n <use fill='url(#linearGradient-19)' xlinkHref='#path-26' />\n <use fill='black' fillOpacity='1' filter='url(#filter-27)' xlinkHref='#path-26' />\n </g>\n </Container>\n );\n};\n\nexport default Up;","import React, { useState, useCallback, useContext } from 'react';\nimport styled, {css} from 'styled-components';\nimport { PTZContext } from '../state/PTZProvider';\n\nconst Active = styled.g<{active:boolean}>`\n opacity: 0;\n ${({active}) => active && css`opacity: 1;`}\n\n`;\nconst Hover = styled.g<{hover:boolean}>`\n opacity: 0;\n ${({hover}) => hover && css`opacity: 1;`}\n`;\n\nconst Container = styled.g`\n`;\nconst Arrow = styled.g`\n\n`;\n\n\ninterface Props {\n\n}\n\n\n\nconst Down: React.FC<Props> = () => {\n const [hover, setHover] = useState(false);\n const { state: {moving}, actions: {move, stop} } = useContext(PTZContext);\n\n const activeStart = useCallback(()=>{\n move({direction: 'down'});\n setHover(false);\n },[move]);\n const activeEnd = useCallback(()=>{\n stop();\n setHover(true);\n },[stop]);\n const hoverStart = useCallback(()=>{\n setHover(true);\n },[]);\n const hoverEnd = useCallback(()=>{\n setHover(false);\n },[]);\n\n return (\n <Container onMouseEnter={hoverStart} onMouseLeave={hoverEnd} onMouseDown={activeStart} onMouseUp={activeEnd} onTouchStart={activeStart} onTouchEnd={activeEnd} transform='translate(138.146447, 137.146447) rotate(45.000000)'>\n <Hover hover={hover} transform='translate(-138.146447, -137.146447) translate(41.146447, 40.646447)' fill='url(#linearGradient-11)' fillOpacity='0.56'>\n <path d='M193.146668,96.3343288 L193.47713,96.6672527 L193.47713,192.833775 L97.3106078,192.833775 L96.9799206,192.503329 L96.9900583,191.237971 C97.8404498,138.7883 140.535707,96.5106982 193.146668,96.3343288 Z' id='PTZ-Hover-Down' transform='translate(145.228525, 144.584052) rotate(180.000000) translate(-145.228525, -144.584052) ' />\n </Hover>\n\n <Active active={moving === 'down'} transform='translate(-137.792893, -137.500000) translate(40.792893, 40.500000) translate(96.979921, 96.167076)' fill='url(#linearGradient-12)'>\n <path d='M96.1667469,0.167252749 L96.4972095,0.50017667 L96.4972095,96.6666989 L0.33068723,96.6666989 L2.98427949e-13,96.3362527 L0.0101377147,95.070895 C0.860529194,42.6212238 43.5557866,0.34362213 96.1667469,0.167252749 Z' id='PTZ-Active-Down-Slice' fillOpacity='0.56' transform='translate(48.248605, 48.416976) rotate(180.000000) translate(-48.248605, -48.416976) ' />\n <path d='M0.519854724,96.4994462 L0.189392188,96.1665222 L0.518392188,95.841 L0.50309316,91.4994743 C49.8427789,91.3340713 90.0585638,52.0879566 91.6405416,3.0448693 L91.6766244,1.55574655 L91.6867621,0.290388759 L96.0313922,0.326 L96.3559144,-4.8316906e-13 L96.6866017,0.330446162 L96.6764639,1.59580395 C95.8260725,54.0454751 53.1308151,96.3230768 0.519854724,96.4994462 Z' id='PTZ-Active-Down-Highlight' stroke='url(#linearGradient-15)' />\n </Active>\n\n <Arrow id='PTZ-Arrows-Icons' transform='rotate(-45) translate(-138.146447, -137.146447) translate(68.000000, 68.000000) translate(71.000000, 125.000000) rotate(180.000000) translate(-71.000000, -125.000000)' fillRule='nonzero'>\n <use fill='url(#linearGradient-19)' xlinkHref='#path-22' />\n <use fill='black' fillOpacity='1' filter='url(#filter-23)' xlinkHref='#path-22' />\n </Arrow>\n </Container>\n\n );\n};\n\nexport default Down;","import React, { useState, useCallback, useContext } from 'react';\nimport styled, {css} from 'styled-components';\nimport { PTZContext } from '../state/PTZProvider';\n\nconst Active = styled.g<{active:boolean}>`\n opacity: 0;\n ${({active}) => active && css`opacity: 1;`}\n\n`;\nconst Hover = styled.g<{hover:boolean}>`\n opacity: 0;\n ${({hover}) => hover && css`opacity: 1;`}\n`;\n\nconst Container = styled.g`\n`;\n\n\ninterface Props {\n\n}\n\n\nconst Left: React.FC<Props> = () => {\n const [hover, setHover] = useState(false);\n const { state: {moving}, actions: {move, stop} } = useContext(PTZContext);\n\n const activeStart = useCallback(()=>{\n setHover(false);\n move({direction: 'left'});\n },[move]);\n const activeEnd = useCallback(()=>{\n stop();\n setHover(true);\n },[stop]);\n const hoverStart = useCallback(()=>{\n setHover(true);\n },[]);\n const hoverEnd = useCallback(()=>{\n setHover(false);\n },[]);\n\n return (\n <Container onMouseEnter={hoverStart} onMouseLeave={hoverEnd} onMouseDown={activeStart} onMouseUp={activeEnd} onTouchStart={activeStart} onTouchEnd={activeEnd} transform='translate(138.146447, 137.146447) rotate(45.000000)'>\n <Hover hover={hover} transform='translate(-138.146447, -137.146447) translate(41.146447, 40.646447)' fill='url(#linearGradient-11)' fillOpacity='0.56'>\n <path d='M96.9801453,96.3343288 L97.3106078,96.6672527 L97.3106078,192.833775 L1.14408557,192.833775 L0.813398341,192.503329 L0.823536055,191.237971 C1.67392753,138.7883 44.3691849,96.5106982 96.9801453,96.3343288 Z' id='PTZ-Hover-Left' transform='translate(49.062003, 144.584052) rotate(-90.000000) translate(-49.062003, -144.584052) ' />\n </Hover>\n\n <Active active={moving === 'left'} transform='translate(-137.792893, -137.500000) translate(40.792893, 40.500000) translate(0.813398, 96.167076)'>\n <path d='M96.1667469,0.167252749 L96.4972095,0.50017667 L96.4972095,96.6666989 L0.33068723,96.6666989 L2.98427949e-13,96.3362527 L0.0101377147,95.070895 C0.860529194,42.6212238 43.5557866,0.34362213 96.1667469,0.167252749 Z' id='PTZ-Active-Up-Slice' fillOpacity='0.56' fill='url(#linearGradient-12)' transform='translate(48.248605, 48.416976) rotate(-90.000000) translate(-48.248605, -48.416976) ' />\n <path d='M0.188273843,0.331580881 L0.521197763,0.00111834491 L0.846720004,0.330118345 L5.18824575,0.314819318 C5.35364873,49.654505 44.5997634,89.87029 93.6428507,91.4522677 L95.1319735,91.4883506 L96.3973312,91.4984883 L96.36172,95.8431183 L96.68772,96.1676406 L96.3572738,96.4983278 L95.0919161,96.4881901 C42.6422449,95.6377986 0.364643223,52.9425412 0.188273843,0.331580881 Z' id='PTZ-Active-Left-Highlight' stroke='url(#linearGradient-14)' fill='url(#linearGradient-13)' />\n </Active>\n\n <g id='PTZ-Arrows-Icons' transform='rotate(-45.000000) translate(-138.146447, -137.146447) translate(68.000000, 68.000000) translate(12.000000, 69.000000) rotate(-90.000000) translate(-12.000000, -69.000000)' fillRule='nonzero'>\n <use fill='url(#linearGradient-19)' xlinkHref='#path-20' />\n <use fill='black' fillOpacity='1' filter='url(#filter-21)' xlinkHref='#path-20' />\n </g>\n </Container>\n\n );\n};\n\nexport default Left;","import React, { useState, useCallback, useContext } from 'react';\nimport styled, {css} from 'styled-components';\nimport { PTZContext } from '../state/PTZProvider';\n\nconst Active = styled.g<{active:boolean}>`\n opacity: 0;\n ${({active}) => active && css`opacity: 1;`}\n\n`;\nconst Hover = styled.g<{hover:boolean}>`\n opacity: 0;\n ${({hover}) => hover && css`opacity: 1;`}\n`;\n\nconst Container = styled.g`\n`;\n\n\ninterface Props {\n\n}\n\nconst Right: React.FC<Props> = () => {\n const [hover, setHover] = useState(false);\n const { state: {moving}, actions: {move, stop} } = useContext(PTZContext);\n\n const activeStart = useCallback(()=>{\n setHover(false);\n move({direction: 'right'});\n },[move]);\n const activeEnd = useCallback(()=>{\n stop();\n setHover(true);\n },[stop]);\n const hoverStart = useCallback(()=>{\n setHover(true);\n },[]);\n const hoverEnd = useCallback(()=>{\n setHover(false);\n },[]);\n\n return (\n <Container onMouseEnter={hoverStart} onMouseLeave={hoverEnd} onMouseDown={activeStart} onMouseUp={activeEnd} onTouchStart={activeStart} onTouchEnd={activeEnd} transform='translate(138.146447, 137.146447) rotate(45.000000)'>\n <Hover hover={hover} transform='translate(-138.146447, -137.146447) translate(41.146447, 40.646447)' fill='url(#linearGradient-11)' fillOpacity='0.56'>\n <path d='M193.146668,0.167806588 L193.47713,0.500730508 L193.47713,96.6672527 L97.3106078,96.6672527 L96.9799206,96.3368066 L96.9900583,95.0714488 C97.8404498,42.6217777 140.535707,0.344175968 193.146668,0.167806588 Z' id='PTZ-Hover-Right' transform='translate(145.228525, 48.417530) rotate(90.000000) translate(-145.228525, -48.417530) ' />\n </Hover>\n\n <Active active={moving === 'right'} transform='translate(-137.792893, -137.500000) translate(40.792893, 40.500000) translate(96.979921, 0.000554)'>\n <path d='M96.1667469,0.167252749 L96.4972095,0.50017667 L96.4972095,96.6666989 L0.33068723,96.6666989 L2.98427949e-13,96.3362527 L0.0101377147,95.070895 C0.860529194,42.6212238 43.5557866,0.34362213 96.1667469,0.167252749 Z' id='PTZ-Active-Right-Slice' fillOpacity='0.56' fill='url(#linearGradient-12)' transform='translate(48.248605, 48.416976) rotate(90.000000) translate(-48.248605, -48.416976) ' />\n <path d='M96.68772,96.1678653 L96.3547961,96.4983278 L96.0292738,96.1693278 L91.6877481,96.1846268 C91.5223451,46.8449411 52.2762305,6.62915618 3.23314314,5.04717843 L1.74402039,5.0110956 L0.478662601,5.00095788 L0.514273843,0.656327817 L0.188273843,0.331805575 L0.518720004,0.00111834491 L1.78407779,0.0112560596 C54.2337489,0.861647539 96.5113506,43.5569049 96.68772,96.1678653 Z' id='PTZ-Active-Right-Highlight' stroke='url(#linearGradient-16)' fill='url(#linearGradient-13)' />\n </Active>\n\n <g id='PTZ-Arrows-Icons' transform='rotate(-45.000000) translate(-137.792893, -137.500000) translate(68.000000, 68.000000) translate(127.000000, 69.000000) rotate(90.000000) translate(-127.000000, -69.000000)' fillRule='nonzero'>\n <use fill='url(#linearGradient-19)' xlinkHref='#path-24' />\n <use fill='black' fillOpacity='1' filter='url(#filter-25)' xlinkHref='#path-24' />\n </g>\n </Container>\n\n );\n};\n\nexport default Right;","import React from 'react';\n\ninterface Props {\n\n}\n\nconst PTZControl: React.FC<Props> = ({children}) => {\n return (\n <svg width='237px' height='245px' viewBox='0 0 237 245' version='1.1'>\n <defs>\n <linearGradient x1='50%' y1='0%' x2='50%' y2='100%' id='linearGradient-1'>\n <stop stopColor='#2E3F4B' offset='0%' />\n <stop stopColor='#273743' offset='100%' />\n </linearGradient>\n <linearGradient x1='50%' y1='0%' x2='50%' y2='100%' id='linearGradient-2'>\n <stop stopColor='#2F4555' offset='0%' />\n <stop stopColor='#1F2F3A' offset='100%' />\n </linearGradient>\n <circle id='path-3' cx='138.5' cy='137.5' r='106.5' />\n <filter x='-9.9%' y='-12.2%' width='119.7%' height='124.4%' filterUnits='objectBoundingBox' id='filter-4'>\n <feMorphology radius='1.5' operator='dilate' in='SourceAlpha' result='shadowSpreadOuter1' />\n <feOffset dx='0' dy='5' in='shadowSpreadOuter1' result='shadowOffsetOuter1' />\n <feGaussianBlur stdDeviation='5' in='shadowOffsetOuter1' result='shadowBlurOuter1' />\n <feComposite in='shadowBlurOuter1' in2='SourceAlpha' operator='out' result='shadowBlurOuter1' />\n <feColorMatrix values='0 0 0 0 0.107227805 0 0 0 0 0.154449538 0 0 0 0 0.188179348 0 0 0 0.242706512 0' type='matrix' in='shadowBlurOuter1' result='shadowMatrixOuter1' />\n <feMorphology radius='0.5' operator='dilate' in='SourceAlpha' result='shadowSpreadOuter2' />\n <feOffset dx='0' dy='-5' in='shadowSpreadOuter2' result='shadowOffsetOuter2' />\n <feGaussianBlur stdDeviation='5' in='shadowOffsetOuter2' result='shadowBlurOuter2' />\n <feComposite in='shadowBlurOuter2' in2='SourceAlpha' operator='out' result='shadowBlurOuter2' />\n <feColorMatrix values='0 0 0 0 0.225481289 0 0 0 0 0.324960407 0 0 0 0 0.399569746 0 0 0 0.400923295 0' type='matrix' in='shadowBlurOuter2' result='shadowMatrixOuter2' />\n <feMerge>\n <feMergeNode in='shadowMatrixOuter1' />\n <feMergeNode in='shadowMatrixOuter2' />\n </feMerge>\n </filter>\n <linearGradient x1='50%' y1='100%' x2='50%' y2='2.48363598%' id='linearGradient-5'>\n <stop stopColor='#262E37' stopOpacity='0.65' offset='0%' />\n <stop stopColor='#262E37' stopOpacity='0.66' offset='100%' />\n </linearGradient>\n <path d='M96.5,0 C149.795478,0 193,43.2045216 193,96.5 C193,149.795478 149.795478,193 96.5,193 C43.2045216,193 0,149.795478 0,96.5 C0,43.2045216 43.2045216,0 96.5,0 Z' id='path-6' />\n <filter x='-0.8%' y='-0.8%' width='101.6%' height='101.6%' filterUnits='objectBoundingBox' id='filter-8'>\n <feGaussianBlur stdDeviation='1' in='SourceAlpha' result='shadowBlurInner1' />\n <feOffset dx='0' dy='1' in='shadowBlurInner1' result='shadowOffsetInner1' />\n <feComposite in='shadowOffsetInner1' in2='SourceAlpha' operator='arithmetic' k2='-1' k3='1' result='shadowInnerInner1' />\n <feColorMatrix values='0 0 0 0 0.168627451 0 0 0 0 0.215686275 0 0 0 0 0.262745098 0 0 0 0.0113090035 0' type='matrix' in='shadowInnerInner1' result='shadowMatrixInner1' />\n <feGaussianBlur stdDeviation='1' in='SourceAlpha' result='shadowBlurInner2' />\n <feOffset dx='0' dy='-1' in='shadowBlurInner2' result='shadowOffsetInner2' />\n <feComposite in='shadowOffsetInner2' in2='SourceAlpha' operator='arithmetic' k2='-1' k3='1' result='shadowInnerInner2' />\n <feColorMatrix values='0 0 0 0 0.162705208 0 0 0 0 0.231672463 0 0 0 0 0.300639719 0 0 0 1 0' type='matrix' in='shadowInnerInner2' result='shadowMatrixInner2' />\n <feMerge>\n <feMergeNode in='shadowMatrixInner1' />\n <feMergeNode in='shadowMatrixInner2' />\n </feMerge>\n </filter>\n <linearGradient x1='49.8274193%' y1='13.7528099%' x2='50.1815273%' y2='82.6324827%' id='linearGradient-9'>\n <stop stopColor='#324659' offset='0%' />\n <stop stopColor='#263647' offset='100%' />\n </linearGradient>\n <linearGradient x1='50.170103%' y1='15.6407997%' x2='49.8181984%' y2='84.5265853%' id='linearGradient-10'>\n <stop stopColor='#324659' offset='0%' />\n <stop stopColor='#263647' offset='100%' />\n </linearGradient>\n <linearGradient x1='99.9976822%' y1='100%' x2='30.4274195%' y2='28.550434%' id='linearGradient-11'>\n <stop stopColor='#46596D' stopOpacity='0.65' offset='0%' />\n <stop stopColor='#577393' stopOpacity='0.66' offset='100%' />\n </linearGradient>\n <linearGradient x1='87.5668564%' y1='87.9295401%' x2='33.2810997%' y2='28.936849%' id='linearGradient-12'>\n <stop stopColor='#508ED3' stopOpacity='0.65' offset='0%' />\n <stop stopColor='#79AEEB' stopOpacity='0.66' offset='100%' />\n </linearGradient>\n <linearGradient x1='87.568598%' y1='87.9277819%' x2='33.2803247%' y2='28.9378254%' id='linearGradient-13'>\n <stop stopColor='#508ED3' stopOpacity='0.65' offset='0%' />\n <stop stopColor='#79AEEB' stopOpacity='0.66' offset='100%' />\n </linearGradient>\n <linearGradient x1='22.297939%' y1='79.0413218%' x2='39.761035%' y2='60.7027769%' id='linearGradient-14'>\n <stop stopColor='#A2B9FF' offset='0%' />\n <stop stopColor='#3393FF' stopOpacity='0' offset='100%' />\n </linearGradient>\n <linearGradient x1='80.348219%' y1='76.4229599%' x2='62.8569051%' y2='60.0361013%' id='linearGradient-15'>\n <stop stopColor='#A2B9FF' offset='0%' />\n <stop stopColor='#3393FF' stopOpacity='0' offset='100%' />\n </linearGradient>\n <linearGradient x1='77.520937%' y1='22.5831044%' x2='57.8137717%' y2='41.946341%' id='linearGradient-16'>\n <stop stopColor='#A2B9FF' offset='0%' />\n <stop stopColor='#3393FF' stopOpacity='0' offset='100%' />\n </linearGradient>\n <linearGradient x1='50%' y1='43.428843%' x2='25.1751595%' y2='28.0552504%' id='linearGradient-17'>\n <stop stopColor='#508ED3' stopOpacity='0.65' offset='0%' />\n <stop stopColor='#79AEEB' stopOpacity='0.66' offset='100%' />\n </linearGradient>\n <linearGradient x1='30.6678499%' y1='23.1406239%' x2='41.9194217%' y2='34.4210798%' id='linearGradient-18'>\n <stop stopColor='#A2B9FF' offset='0%' />\n <stop stopColor='#3393FF' stopOpacity='0' offset='100%' />\n </linearGradient>\n <linearGradient x1='50%' y1='0.918284083%' x2='50%' y2='98.6410535%' id='linearGradient-19'>\n <stop stopColor='#F0F7FF' offset='0%' />\n <stop stopColor='#B2C9D9' offset='100%' />\n </linearGradient>\n <path d='M25.6553811,77.370593 L14.0428746,58.1532717 C13.6102476,57.4373681 12.8355055,57 12,57 C11.1644945,57 10.3897524,57.4373681 9.95712537,58.1532717 L-1.65538114,77.370593 C-2.10132346,78.1091204 -2.11539958,79.0310048 -1.69221345,79.7828447 C-1.26902733,80.5346846 -0.474230758,81 0.387493489,81 L23.6125065,81 C24.4742308,81 25.2690273,80.5346846 25.6922135,79.7828447 C26.1153996,79.0310048 26.1013235,78.1091204 25.6553811,77.370593 Z' id='path-20' />\n <filter x='-3.6%' y='-4.2%' width='107.1%' height='108.3%' filterUnits='objectBoundingBox' id='filter-21'>\n <feGaussianBlur stdDeviation='0.5' in='SourceAlpha' result='shadowBlurInner1' />\n <feOffset dx='0' dy='-1' in='shadowBlurInner1' result='shadowOffsetInner1' />\n <feComposite in='shadowOffsetInner1' in2='SourceAlpha' operator='arithmetic' k2='-1' k3='1' result='shadowInnerInner1' />\n <feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.495629371 0' type='matrix' in='shadowInnerInner1' />\n </filter>\n <path d='M84.6553811,133.370593 L73.0428746,114.153272 C72.6102476,113.437368 71.8355055,113 71,113 C70.1644945,113 69.3897524,113.437368 68.9571254,114.153272 L57.3446189,133.370593 C56.8986765,134.10912 56.8846004,135.031005 57.3077865,135.782845 C57.7309727,136.534685 58.5257692,137 59.3874935,137 L82.6125065,137 C83.4742308,137 84.2690273,136.534685 84.6922135,135.782845 C85.1153996,135.031005 85.1013235,134.10912 84.6553811,133.370593 Z' id='path-22' />\n <filter x='-3.6%' y='-4.2%' width='107.1%' height='108.3%' filterUnits='objectBoundingBox' id='filter-23'>\n <feGaussianBlur stdDeviation='0.5' in='SourceAlpha' result='shadowBlurInner1' />\n <feOffset dx='0' dy='-1' in='shadowBlurInner1' result='shadowOffsetInner1' />\n <feComposite in='shadowOffsetInner1' in2='SourceAlpha' operator='arithmetic' k2='-1' k3='1' result='shadowInnerInner1' />\n <feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.495629371 0' type='matrix' in='shadowInnerInner1' />\n </filter>\n <path d='M140.655381,77.370593 L129.042875,58.1532717 C128.610248,57.4373681 127.835505,57 127,57 C126.164495,57 125.389752,57.4373681 124.957125,58.1532717 L113.344619,77.370593 C112.898677,78.1091204 112.8846,79.0310048 113.307787,79.7828447 C113.730973,80.5346846 114.525769,81 115.387493,81 L138.612507,81 C139.474231,81 140.269027,80.5346846 140.692213,79.7828447 C141.1154,79.0310048 141.101323,78.1091204 140.655381,77.370593 Z' id='path-24' />\n <filter x='-3.6%' y='-4.2%' width='107.1%' height='108.3%' filterUnits='objectBoundingBox' id='filter-25'>\n <feGaussianBlur stdDeviation='0.5' in='SourceAlpha' result='shadowBlurInner1' />\n <feOffset dx='0' dy='-1' in='shadowBlurInner1' result='shadowOffsetInner1' />\n <feComposite in='shadowOffsetInner1' in2='SourceAlpha' operator='arithmetic' k2='-1' k3='1' result='shadowInnerInner1' />\n <feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.495629371 0' type='matrix' in='shadowInnerInner1' />\n </filter>\n <path d='M84.6553811,20.370593 L73.0428746,1.15327173 C72.6102476,0.437368074 71.8355055,0 71,0 C70.1644945,0 69.3897524,0.437368074 68.9571254,1.15327173 L57.3446189,20.370593 C56.8986765,21.1091204 56.8846004,22.0310048 57.3077865,22.7828447 C57.7309727,23.5346846 58.5257692,24 59.3874935,24 L82.6125065,24 C83.4742308,24 84.2690273,23.5346846 84.6922135,22.7828447 C85.1153996,22.0310048 85.1013235,21.1091204 84.6553811,20.370593 Z' id='path-26' />\n <filter x='-3.6%' y='-4.2%' width='107.1%' height='108.3%' filterUnits='objectBoundingBox' id='filter-27'>\n <feGaussianBlur stdDeviation='0.5' in='SourceAlpha' result='shadowBlurInner1' />\n <feOffset dx='0' dy='-1' in='shadowBlurInner1' result='shadowOffsetInner1' />\n <feComposite in='shadowOffsetInner1' in2='SourceAlpha' operator='arithmetic' k2='-1' k3='1' result='shadowInnerInner1' />\n <feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.495629371 0' type='matrix' in='shadowInnerInner1' />\n </filter>\n </defs>\n <g stroke='none' strokeWidth='1' fill='none' fillRule='evenodd' transform='translate(-20, -16)'>\n <g id='PTZ-Base-Outer'>\n <use fill='black' fillOpacity='1' filter='url(#filter-4)' xlinkHref='#path-3' />\n <use stroke='url(#linearGradient-2)' strokeWidth='1' fill='url(#linearGradient-1)' fillRule='evenodd' xlinkHref='#path-3' />\n </g>\n\n <g id='PTZ-Base-Inner' transform='translate(138.500000, 137.500000) rotate(45.000000) translate(-138.500000, -137.500000) translate(42.000000, 41.000000)'>\n <mask id='mask-7' fill='white'>\n <use xlinkHref='#path-6' />\n </mask>\n <g>\n <use fillOpacity='0.56' fill='url(#linearGradient-5)' fillRule='evenodd' xlinkHref='#path-6' />\n <use fill='black' fillOpacity='1' filter='url(#filter-8)' xlinkHref='#path-6' />\n </g>\n <line x1='96.5' y1='0.333477759' x2='96.5' y2='192.666522' id='PTZ-Base-Division-B' stroke='url(#linearGradient-9)' strokeLinecap='square' mask='url(#mask-7)' />\n <line x1='96.5' y1='0.333477759' x2='96.5' y2='192.666522' id='PTZ-Base-Division-A' stroke='url(#linearGradient-10)' strokeLinecap='square' mask='url(#mask-7)' transform='translate(96.500000, 96.500000) rotate(-90.000000) translate(-96.500000, -96.500000) ' />\n </g>\n {children}\n </g>\n </svg>\n );\n};\n\nexport default PTZControl;","import React from 'react';\n\ninterface Props {\n\n}\n\nconst ZoomBase: React.FC<Props> = ({ children }) => {\n return (\n <svg width='239px' height='121px' viewBox='0 0 239 121'>\n <defs>\n <linearGradient x1='50%' y1='0%' x2='50%' y2='100%' id='linearGradient-zoom1'>\n <stop stopColor='#2E3F4B' offset='0%' />\n <stop stopColor='#273743' offset='100%' />\n </linearGradient>\n <linearGradient x1='50%' y1='0%' x2='50%' y2='100%' id='linearGradient-zoom2'>\n <stop stopColor='#2F4555' offset='0%' />\n <stop stopColor='#1F2F3A' offset='100%' />\n </linearGradient>\n <path\n d='M42.6,0 L170.4,0 C193.92733,0 213,19.0278981 213,42.5 C213,65.9721019 193.92733,85 170.4,85 L42.6,85 C19.0726697,85 0,65.9721019 0,42.5 C0,19.0278981 19.0726697,0 42.6,0 Z'\n id='path-zoom3'\n />\n <filter x='-9.9%' y='-30.6%' width='119.7%' height='161.2%' filterUnits='objectBoundingBox' id='filter-zoom4'>\n <feMorphology radius='1.5' operator='dilate' in='SourceAlpha' result='shadowSpreadOuter1' />\n <feOffset dx='0' dy='5' in='shadowSpreadOuter1' result='shadowOffsetOuter1' />\n <feGaussianBlur stdDeviation='5' in='shadowOffsetOuter1' result='shadowBlurOuter1' />\n <feComposite in='shadowBlurOuter1' in2='SourceAlpha' operator='out' result='shadowBlurOuter1' />\n <feColorMatrix values='0 0 0 0 0.107227805 0 0 0 0 0.154449538 0 0 0 0 0.188179348 0 0 0 0.242706512 0' type='matrix' in='shadowBlurOuter1' result='shadowMatrixOuter1' />\n <feMorphology radius='0.5' operator='dilate' in='SourceAlpha' result='shadowSpreadOuter2' />\n <feOffset dx='0' dy='-5' in='shadowSpreadOuter2' result='shadowOffsetOuter2' />\n <feGaussianBlur stdDeviation='5' in='shadowOffsetOuter2' result='shadowBlurOuter2' />\n <feComposite in='shadowBlurOuter2' in2='SourceAlpha' operator='out' result='shadowBlurOuter2' />\n <feColorMatrix values='0 0 0 0 0.225481289 0 0 0 0 0.324960407 0 0 0 0 0.399569746 0 0 0 0.400923295 0' type='matrix' in='shadowBlurOuter2' result='shadowMatrixOuter2' />\n <feMerge>\n <feMergeNode in='shadowMatrixOuter1' />\n <feMergeNode in='shadowMatrixOuter2' />\n </feMerge>\n </filter>\n <linearGradient x1='50%' y1='100%' x2='50%' y2='2.48363598%' id='linearGradient-zoom5'>\n <stop stopColor='#262E37' stopOpacity='0.65' offset='0%' />\n <stop stopColor='#262E37' stopOpacity='0.66' offset='100%' />\n </linearGradient>\n <path\n d='M32.1164062,0.625 L160.582031,0.625 C178.319433,0.625 192.698438,14.8959236 192.698438,32.5 C192.698438,50.1040764 178.319433,64.375 160.582031,64.375 L32.1164062,64.375 C14.3790049,64.375 0,50.1040764 0,32.5 C0,14.8959236 14.3790049,0.625 32.1164062,0.625 Z'\n id='path-zoom6'\n />\n <filter x='-0.8%' y='-2.4%' width='101.6%' height='104.7%' filterUnits='objectBoundingBox' id='filter-zoom7'>\n <feGaussianBlur stdDeviation='1' in='SourceAlpha' result='shadowBlurInner1' />\n <feOffset dx='0' dy='1' in='shadowBlurInner1' result='shadowOffsetInner1' />\n <feComposite in='shadowOffsetInner1' in2='SourceAlpha' operator='arithmetic' k2='-1' k3='1' result='shadowInnerInner1' />\n <feColorMatrix values='0 0 0 0 0.168627451 0 0 0 0 0.215686275 0 0 0 0 0.262745098 0 0 0 0.0113090035 0' type='matrix' in='shadowInnerInner1' result='shadowMatrixInner1' />\n <feGaussianBlur stdDeviation='1' in='SourceAlpha' result='shadowBlurInner2' />\n <feOffset dx='0' dy='-1' in='shadowBlurInner2' result='shadowOffsetInner2' />\n <feComposite in='shadowOffsetInner2' in2='SourceAlpha' operator='arithmetic' k2='-1' k3='1' result='shadowInnerInner2' />\n <feColorMatrix values='0 0 0 0 0.162705208 0 0 0 0 0.231672463 0 0 0 0 0.300639719 0 0 0 1 0' type='matrix' in='shadowInnerInner2' result='shadowMatrixInner2' />\n <feMerge>\n <feMergeNode in='shadowMatrixInner1' />\n <feMergeNode in='shadowMatrixInner2' />\n </feMerge>\n </filter>\n <linearGradient x1='-103.741879%' y1='13.7528099%' x2='211.711869%' y2='82.6324827%' id='linearGradient-zoom8'>\n <stop stopColor='#324659' offset='0%' />\n <stop stopColor='#263647' offset='100%' />\n </linearGradient>\n <linearGradient x1='12.2402545%' y1='50%' x2='57.7520941%' y2='28.4033239%' id='linearGradient-zoom9'>\n <stop stopColor='#46596D' stopOpacity='0.65' offset='0%' />\n <stop stopColor='#577393' stopOpacity='0.66' offset='100%' />\n </linearGradient>\n <linearGradient x1='92.8257893%' y1='51.9201456%' x2='57.7520941%' y2='28.4033239%' id='linearGradient-zoom10'>\n <stop stopColor='#46596D' stopOpacity='0.65' offset='0%' />\n <stop stopColor='#577393' stopOpacity='0.66' offset='100%' />\n </linearGradient>\n <linearGradient x1='65.5323776%' y1='100%' x2='65.5323776%' y2='0%' id='linearGradient-zoom11'>\n <stop stopColor='#508ED3' stopOpacity='0.65' offset='0%' />\n <stop stopColor='#79AEEB' stopOpacity='0.66' offset='100%' />\n </linearGradient>\n <linearGradient x1='112.326836%' y1='50%' x2='-13.3174936%' y2='50%' id='linearGradient-zoom12'>\n <stop stopColor='#508ED3' stopOpacity='0.65' offset='0%' />\n <stop stopColor='#79AEEB' stopOpacity='0.66' offset='100%' />\n </linearGradient>\n <linearGradient x1='-15.3833763%' y1='43.598779%' x2='72.9059278%' y2='57.6171557%' id='linearGradient-zoom13'>\n <stop stopColor='#A2B9FF' offset='0%' />\n <stop stopColor='#3393FF' stopOpacity='0' offset='100%' />\n </linearGradient>\n <linearGradient x1='50%' y1='0.918284083%' x2='50%' y2='98.6410535%' id='linearGradient-zoom14'>\n <stop stopColor='#F0F7FF' offset='0%' />\n <stop stopColor='#B2C9D9' offset='100%' />\n </linearGradient>\n <linearGradient x1='50%' y1='0.918284083%' x2='50%' y2='98.6410535%' id='linearGradient-zoom15'>\n <stop stopColor='#F0F7FF' offset='0%' />\n <stop stopColor='#B2C9D9' offset='100%' />\n </linearGradient>\n </defs>\n <g stroke='none' strokeWidth='1' fill='none' fillRule='evenodd' transform='translate(-200.000000, -490.000000) translate(213.000000, 508.000000)'>\n <g id='PTZ-Zoom-Base-Outer'>\n <use fill='black' fillOpacity='1' filter='url(#filter-zoom4)' xlinkHref='#path-zoom3' />\n <use stroke='url(#linearGradient-zoom2)' strokeWidth='1' fill='url(#linearGradient-zoom1)' fillRule='evenodd' xlinkHref='#path-zoom3' />\n </g>\n\n <g id='PTZ-Zoom-Divider-Section' transform='translate(10.000000, 10.000000)'>\n <g id='PTZ-Zoom-Base-Inner'>\n <use fillOpacity='0.56' fill='url(#linearGradient-zoom5)' fillRule='evenodd' xlinkHref='#path-zoom6' />\n <use fill='black' fillOpacity='1' filter='url(#filter-zoom7)' xlinkHref='#path-zoom6' />\n </g>\n <path d='M105.820053,40.7088832 L99.6638296,34.5975949 C102.060022,31.621888 101.697137,27.3062591 98.8371361,24.766097 C95.9771351,22.2259349 91.6163355,22.346137 88.902734,25.0399314 C86.1891326,27.7337257 86.0680466,32.0626948 88.6268862,34.90182 C91.1857259,37.7409453 95.5330871,38.1011814 98.5306741,35.7224793 L104.686898,41.8337675 C105.002147,42.1387442 105.504804,42.1387442 105.820053,41.8337675 C106.132899,41.5231118 106.132899,41.0195389 105.820053,40.7088832 Z M88.425235,30.1282878 C88.425235,27.0527607 90.9367746,24.5595534 94.0349157,24.5595534 C97.1330568,24.5595534 99.6445964,27.0527607 99.6445964,30.1282878 C99.6445964,33.2038149 97.1330568,35.6970222 94.0349157,35.6970222 C90.9382392,35.693515 88.428768,33.202361 88.425235,30.1282878 Z' id='PTZ-Zoom-Divider-Section-Icon' fill='#6A839E' fillRule='nonzero' />\n <line x1='95.3544271' y1='1.5' x2='95.3544271' y2='13.5' id='PTZ-Zoom-Divider-Section-Top-Line' stroke='url(#linearGradient-zoom8)' strokeLinecap='square' />\n <line x1='95.3544271' y1='50.5' x2='95.3544271' y2='62.5' id='PTZ-Zoom-Divider-Section-Bottom-Line' stroke='url(#linearGradient-zoom8)' strokeLinecap='square' />\n </g>\n {children}\n </g>\n\n </svg>\n );\n};\n\nexport default ZoomBase;","import React, { useState, useCallback, useContext } from 'react';\nimport styled, {css} from 'styled-components';\nimport { PTZContext } from '../state/PTZProvider';\n\nconst Active = styled.g<{active:boolean}>`\n opacity: 0;\n ${({active}) => active && css`opacity: 1;`}\n\n`;\nconst Hover = styled.g<{hover:boolean}>`\n opacity: 0;\n ${({hover}) => hover && css`opacity: 1;`}\n`;\n\nconst Container = styled.g`\n`;\n\n\ninterface Props {\n\n}\n\nconst Up: React.FC<Props> = () => {\n const [hover, setHover] = useState(false);\n const { state: {zooming}, actions: {zoom, stop}} = useContext(PTZContext);\n\n const activeStart = useCallback(()=>{\n setHover(false);\n zoom({zooming: 'in'});\n },[zoom]);\n const activeEnd = useCallback(()=>{\n stop();\n setHover(true);\n },[stop]);\n const hoverStart = useCallback(()=>{\n setHover(true);\n },[]);\n const hoverEnd = useCallback(()=>{\n setHover(false);\n },[]);\n\n return (\n <Container onMouseEnter={hoverStart} onMouseLeave={hoverEnd} onMouseDown={activeStart} onMouseUp={activeEnd} onTouchStart={activeStart} onTouchEnd={activeEnd} transform='translate(10.000000, 10.625000)'>\n <Hover hover={hover} fillOpacity='0.56'>\n <path\n d='M96,0 L96,63.75 L160.883594,63.75 C178.620995,63.75 193,49.4790764 193,31.875 C193,14.2709236 178.620995,0 160.883594,0 L96,0 Z'\n id='PTZ-Zoom-Hover-Plus-Slice'\n fill='url(#linearGradient-zoom9)'\n />\n {/* <path d=\"M97,0 L97,63.75 L32.1164062,63.75 C14.3790049,63.75 0,49.4790764 0,31.875 C0,14.2709236 14.3790049,0 32.1164062,0 L97,0 Z\" id=\"PTZ-Zoom-Hover-Minus-Slice\" fill=\"url(#linearGradient-zoom10)\"></path> */}\n </Hover>\n <Active active={zooming === 'in'} transform='translate(96.000000, 0.000000)'>\n <path\n d='M0,0 L0,63.75 L64.8835938,63.75 C82.6209951,63.75 97,49.4790764 97,31.875 C97,14.2709236 82.6209951,0 64.8835938,0 L0,0 Z' id='PTZ-Zoom-Active-Plus-Slice'\n fillOpacity='0.61'\n fill='url(#linearGradient-zoom11)'\n />\n <path\n d='M96,0 L96,5 L32.1164062,5 C17.4302083,5 5.48398392,16.5663708 5.01434007,30.9927914 L5.00363033,31.4308221 L5,31.875 C5,46.5608308 16.8905918,58.5089041 31.6677396,58.746397 L32.1164062,58.75 L96,58.75 L96,63.75 L32.1164062,63.75 C14.3790049,63.75 0,49.4790764 0,31.875 C0,14.2709236 14.3790049,0 32.1164062,0 L96,0 Z'\n stroke='url(#linearGradient-zoom13)'\n fill='url(#linearGradient-zoom12)'\n transform='translate(48.000000, 31.875000) scale(-1, 1) translate(-48.000000, -31.875000) '\n />\n\n\n </Active>\n <g id='PTZ-Zoom-Icons-Section' transform='translate(-10.000000, -10.625000) translate(35.000000, 30.000000)' fillRule='nonzero'>\n <path d='M117.149921,14.1184213 L124.420095,14.1184213 C124.657568,14.1184213 124.850079,14.3104799 124.850079,14.5473962 L124.850079,21.8005035 C124.850079,22.9850849 125.812631,23.9453779 127,23.9453779 C128.187369,23.9453779 129.149921,22.9850849 129.149921,21.8005035 L129.149921,14.5473962 C129.149921,14.3104799 129.342432,14.1184213 129.579905,14.1184213 L136.850079,14.1184213 C138.037448,14.1184213 139,13.1581283 139,11.9735469 C139,10.7889655 138.037448,9.82867248 136.850079,9.82867248 L129.579905,9.82867248 C129.342432,9.82867248 129.149921,9.63661388 129.149921,9.3996976 L129.149921,2.14487441 C129.149921,0.960292981 128.187369,-3.55271368e-15 127,-3.55271368e-15 C125.812631,-3.55271368e-15 124.850079,0.960292981 124.850079,2.14487441 L124.850079,9.3996976 C124.850079,9.63661388 124.657568,9.82867248 124.420095,9.82867248 L117.149921,9.82867248 C115.962552,9.82867248 115,10.7889655 115,11.9735469 C115,13.1581283 115.962552,14.1184213 117.149921,14.1184213 L117.149921,14.1184213 Z' id='PTZ-Zoom-Icon-Plus' fill='url(#linearGradient-zoom14)' />\n </g>\n </Container>\n );\n};\n\nexport default Up;","import React, { useState, useCallback, useContext } from 'react';\nimport styled, {css} from 'styled-components';\nimport { PTZContext } from '../state/PTZProvider';\n\nconst Active = styled.g<{active:boolean}>`\n opacity: 0;\n ${({active}) => active && css`opacity: 1;`}\n\n`;\nconst Hover = styled.g<{hover:boolean}>`\n opacity: 0;\n ${({hover}) => hover && css`opacity: 1;`}\n`;\n\nconst Container = styled.g`\n`;\n\n\ninterface Props {\n\n}\n\nconst Up: React.FC<Props> = () => {\n const [hover, setHover] = useState(false);\n const { state: {zooming}, actions: {zoom, stop}} = useContext(PTZContext);\n\n const activeStart = useCallback(()=>{\n setHover(false);\n zoom({zooming: 'out'});\n },[zoom]);\n const activeEnd = useCallback(()=>{\n stop();\n setHover(true);\n },[stop]);\n\n const hoverStart = useCallback(()=>{\n setHover(true);\n },[]);\n const hoverEnd = useCallback(()=>{\n setHover(false);\n },[]);\n return (\n <Container onMouseEnter={hoverStart} onMouseLeave={hoverEnd} onMouseDown={activeStart} onMouseUp={activeEnd} onTouchStart={activeStart} onTouchEnd={activeEnd} transform='translate(10.000000, 10.625000)'>\n <Hover hover={hover} fillOpacity='0.56'>\n <path\n d='M97,0 L97,63.75 L32.1164062,63.75 C14.3790049,63.75 0,49.4790764 0,31.875 C0,14.2709236 14.3790049,0 32.1164062,0 L97,0 Z'\n id='PTZ-Zoom-Hover-Minus-Slice'\n fill='url(#linearGradient-zoom10)'\n />\n </Hover>\n <Active active={zooming === 'out'}>\n <path\n d='M97,0 L97,63.75 L32.1164062,63.75 C14.3790049,63.75 0,49.4790764 0,31.875 C0,14.2709236 14.3790049,0 32.1164062,0 L97,0 Z'\n fillOpacity='0.61'\n fill='url(#linearGradient-zoom11)'\n />\n\n <path\n d='M97,0 L97,5 L33.1164062,5 C18.4302083,5 6.48398392,16.5663708 6.01434007,30.9927914 L6.00363033,31.4308221 L6,31.875 C6,46.5608308 17.8905918,58.5089041 32.6677396,58.746397 L33.1164062,58.75 L97,58.75 L97,63.75 L33.1164062,63.75 C15.3790049,63.75 1,49.4790764 1,31.875 C1,14.2709236 15.3790049,0 33.1164062,0 L97,0 Z'\n stroke='url(#linearGradient-zoom13)'\n fill='url(#linearGradient-zoom12)'\n />\n </Active>\n <g transform='translate(-10.000000, -10.625000) translate(35.000000, 30.000000)' fillRule='nonzero'>\n <path\n d='M2.14992117,10 C0.962552494,10 0,10.960293 0,12.1448744 C0,13.3294558 0.962552494,14.2897488 2.14992117,14.2897488 L21.8500788,14.2897488 C23.0374475,14.2897488 24,13.3294558 24,12.1448744 C24,10.960293 23.0374475,10 21.8500788,10 L2.14992117,10 Z'\n id='PTZ-Zoom-Icon-Minus'\n fill='url(#linearGradient-zoom15)'\n />\n </g>\n </Container>\n );\n};\n\nexport default Up;","import React, { useContext } from 'react';\n\nimport Up from '../atoms/Up';\nimport Down from '../atoms/Down';\nimport Left from '../atoms/Left';\nimport Right from '../atoms/Right';\nimport Base from '../molecules/Base';\n\nimport ZoomBase from '../molecules/ZoomBase';\nimport ZoomIn from '../atoms/ZoomIn';\nimport ZoomOut from '../atoms/ZoomOut';\nimport styled from 'styled-components';\nimport { PTZContext } from '../state/PTZProvider';\n\ninterface Props {\n debug?: boolean;\n}\n\nconst Container = styled.div`\n user-select: none;\n display: flex;\n flex-direction: column;\n`;\n\nconst Controls: React.FC<Props> = ({debug = false}) => {\n const { state } = useContext(PTZContext);\n\n return (\n <Container>\n <Base>\n <Up />\n <Down />\n <Left />\n <Right />\n </Base>\n <ZoomBase>\n <ZoomOut />\n <ZoomIn />\n </ZoomBase>\n {\n debug &&\n <pre>\n {JSON.stringify(state, null, 2)}\n </pre>\n }\n </Container>\n );\n};\n\nexport default Controls;","import React from 'react';\nimport styled, { css } from 'styled-components';\nimport { MediaBoxWrapper } from '../../Misc/atoms/MediaBox';\nimport { IFeedbackColor } from '../..';\nimport Icon, { IconWrapper } from '../../Icons/Icon';\nimport MediaBox, { IMediaModal } from '../../Misc/atoms/MediaBox';\nimport { EllipsisStyles } from '../../common';\n\nconst Container = styled.div`\n width: 100%;\n height: 170px;\n border-radius: 3px;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n position: relative;\n\n ${MediaBoxWrapper} {\n height: 100%;\n width: 100%;\n text-align: center;\n img, video {\n border-radius: 3px;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n height: 100%;\n width: 100%;\n object-fit: cover;\n }\n`;\n\nconst EmptyWithIcon = styled.div<{hasPadding: boolean}>`\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n width: 100%;\n ${({hasPadding})=> hasPadding && `\n padding-bottom: 43px\n `}\n;\n\n ${IconWrapper} {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n`;\nconst Notice = styled.div`\n ${({ theme, color }) => color && css`\n background-color: ${theme.colors.feedback[color]};\n color: ${theme.colors.icons.inverse};\n `};\n opacity: 0.85;\n height: 46px;\n width: 300px;\n position: absolute;\n bottom: 0px;\n left: 0px;\n display: flex;\n align-items: center;\n padding: 10px;\n`;\n\nconst NoticeMessage = styled.div`\n ${EllipsisStyles};\n max-width: 245px;\n font-size: 10px;\n`;\n\nconst NoticeTitle = styled.div`\n ${EllipsisStyles};\n max-width: 245px;\n font-size: 12px;\n`;\n\nconst NoticeIcon = styled.div`\n height: 20px;\n width: 20px;\n margin-left: 2px;\n\n ${IconWrapper} {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n }\n`;\n\nconst NoticeTextGroup = styled.div`\n display: flex;\n flex-direction: column;\n margin-left: 14px;\n`;\n\nconst StatusLine = styled.div<{ color: IFeedbackColor }>`\n background-color: ${({ theme, color }) => color && theme.colors.feedback[color]};\n height: 3px;\n width: 100%;\n`;\n\nexport interface IMediaStream extends IMediaModal {\n isEmptyWithIcon?: boolean\n emptyIcon?: string\n status?: IFeedbackColor\n noticeMessage?: string\n noticeTitle?: string\n noticeIcon?: string\n hasNotice?: boolean\n}\n\nconst MediaStream: React.FC<IMediaStream> = ({\n isEmptyWithIcon = false,\n status = 'neutral',\n noticeIcon,\n hasNotice = false,\n noticeMessage,\n noticeTitle,\n emptyIcon,\n ...props\n}) => {\n return (\n <Container>\n {isEmptyWithIcon\n ? <EmptyWithIcon hasPadding={hasNotice}><Icon icon={emptyIcon ? emptyIcon : 'PasswordHide'} color='dimmed' size={41} /></EmptyWithIcon>\n : <MediaBox {...{ ...props }} />}\n {hasNotice && (\n <Notice color={status}>\n {noticeIcon && <NoticeIcon><Icon icon={noticeIcon} size={20} color='inverse' /></NoticeIcon>}\n <NoticeTextGroup>\n {noticeTitle && <NoticeTitle>{noticeTitle}</NoticeTitle>}\n {noticeMessage && <NoticeMessage>{noticeMessage}</NoticeMessage>}\n </NoticeTextGroup>\n </Notice>\n )}\n <StatusLine color={status} />\n </Container>\n );\n};\n\nexport default MediaStream;","import React, { useMemo } from 'react';\nimport styled, { css } from 'styled-components';\nimport { EllipsisStyles } from '../../common';\nimport Icon, { IconWrapper } from '../../Icons/Icon';\n\nconst Container = styled.div`\n display: flex;\n height: 60px;\n`;\n\nconst LeftData = styled.div<{ hasRightData: boolean }>`\n ${({ theme, hasRightData }) => hasRightData && css`\n border-right: ${theme.colors.divider} 1px solid;\n width: 195px;\n `};\n\n padding: 0 12px 0 12px;\n display: flex;\n\n ${IconWrapper} {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n }\n`;\n\nconst RightData = styled.div`\n padding: 0 12px 0 16px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n`;\n\nconst DeviceDataGroup = styled.div`\n display: flex;\n flex-direction: column;\n margin-left: 14px;\n justify-content: center;\n`;\n\nconst LeftTitle = styled.div<{ hasMarginBottom: boolean, hasRightData: boolean }>`\n ${EllipsisStyles};\n ${({ hasRightData }) => hasRightData\n ? `max-margin: 140px;`\n : `max-margin: 250px;`\n }};\n ${({ hasMarginBottom }) => hasMarginBottom && `margin-bottom: 1px;`};\n\n color: hsla(195, 10%, 52%, 0.72);\n font-size: 10px;\n`;\n\nconst LeftSubTitle = styled.div<{ hasRightData: boolean }>`\n font-family: ${({ theme }) => theme.fontFamily.data};\n ${EllipsisStyles};\n ${({ hasRightData }) => hasRightData\n ? `max-width: 140px;`\n : `max-width: 250px;`\n }\n\n color: hsl(208, 8%, 38%);\n font-size: 16px;\n`;\n\nconst Title = styled.div<{ hasMarginBottom: boolean }>`\n ${EllipsisStyles};\n max-width: 80px;\n color: hsla(195, 10%, 52%, 0.72);\n font-size: 10px;\n ${({ hasMarginBottom }) => hasMarginBottom && `margin-bottom: 6px;`};\n`;\n\nconst SubTitle = styled.div`\n ${EllipsisStyles};\n max-width: 80px;\n color: hsl(195, 10%, 52%);\n font-size: 12px;\n`;\n\nexport interface IPanelMetaData {\n deviceIcon?: string\n leftSubTitle?: string\n leftTitle?: string\n rightTitle?: string\n rightSubTitle?: string\n hideIcon?: boolean\n}\n\nconst PanelMetaData: React.FC<IPanelMetaData> = ({\n deviceIcon = 'Camera',\n leftSubTitle,\n leftTitle,\n rightTitle,\n rightSubTitle,\n hideIcon = false\n}) => {\n\n const hasRightData = useMemo(() => (!!rightTitle || !!rightSubTitle) , [rightSubTitle, rightTitle]);\n\n return (\n <Container>\n <LeftData {...{ hasRightData }}>\n {!hideIcon && <Icon icon={deviceIcon} color='dimmed' size={18} />}\n <DeviceDataGroup>\n {leftTitle && <LeftTitle hasMarginBottom={!!leftSubTitle} {...{ hasRightData }}>{leftTitle}</LeftTitle>}\n {leftSubTitle && <LeftSubTitle {...{ hasRightData }}>{leftSubTitle}</LeftSubTitle>}\n </DeviceDataGroup>\n </LeftData>\n {hasRightData && (\n <RightData>\n {rightTitle && <Title hasMarginBottom={!!rightSubTitle}>{rightTitle}</Title>}\n {rightSubTitle && <SubTitle>{rightSubTitle}</SubTitle>}\n </RightData>\n )}\n </Container>\n );\n};\n\nexport default PanelMetaData;","import React, { ReactElement } from 'react';\nimport styled from 'styled-components';\nimport MediaStream, { IMediaStream } from '../atoms/MediaStream';\nimport PanelMetaData, { IPanelMetaData } from '../atoms/PanelMetaData';\n\nexport const CameraPanelWrapper = styled.div<{hasOnClick: boolean}>`\n width: 300px;\n height: 230px;\n border-radius: 3px;\n box-shadow: 0 2px 10px 0 hsla(211, 42%, 86%, 0.41);\n background-color: ${({theme}) => theme.styles.global.background.backgroundImage};\n }\n\n ${({hasOnClick}) => hasOnClick &&`\n cursor: pointer;\n `};\n`;\n\nexport interface ICameraPanel {\n streamProps: IMediaStream\n panelMetaData?: IPanelMetaData\n customBottom?: ReactElement\n panelOnClick?: () => void\n}\n\nconst NewComponent : React.FC<ICameraPanel> = ({\n streamProps,\n panelMetaData,\n customBottom,\n panelOnClick,\n ...props}) => {\n return(\n <CameraPanelWrapper onClick={panelOnClick} hasOnClick={panelOnClick === undefined? false : true} {...props}>\n <MediaStream {...streamProps} />\n {customBottom\n ? customBottom\n : panelMetaData && <PanelMetaData {... panelMetaData} />}\n </CameraPanelWrapper>\n );\n};\n\nexport default NewComponent;","import React from 'react';\nimport styled from 'styled-components';\nimport CameraPanel, { ICameraPanel } from '../molecules/CameraPanel';\n\nconst CameraGrid = styled.div`\n display: grid;\n grid-template-columns: repeat(auto-fill, 300px);\n gap: 20px 20px;\n`;\n\ninterface ICameraPanels {\n panels: ICameraPanel[]\n}\n\nconst CameraPanels: React.FC<ICameraPanels> = ({ panels }) => {\n return (\n <CameraGrid>\n {panels.map((props, index) => {\n return <CameraPanel key={index} {...props} />;\n })}\n </CameraGrid>\n );\n};\n\nexport default CameraPanels;","import React from 'react';\nimport styled, {css} from 'styled-components';\nimport Icon, {IconProps, IconWrapper} from '../../Icons/Icon';\nimport { Link } from 'react-router-dom';\n\nconst TextContainer = styled.div`\n user-select: none;\n`;\n\nconst StyledLink = styled(Link)`\n text-decoration: none;\n`;\n\nexport const TagWrapper = styled.div<{ hoverColor:ISvgIcons['color']; enableHover:boolean; size: number}>`\n font-family: ${({theme}) => theme.fontFamily.ui };\n font-size: ${({size}) => size}px;\n font-weight: 500;\n color: hsl(200, 3%, 39%);\n padding: 4px 10px;\n border: solid 1px hsl(120, 1%, 85%);\n display: inline-flex;\n align-items: center;\n border-radius: 3px;\n height: 26px;\n\n ${IconWrapper} {\n [stroke]{\n ${({theme}) => theme.colors.icons['dimmed']};\n }\n margin-right: 8px;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n ${({theme, hoverColor, enableHover}) => enableHover && css`\n &:hover {\n cursor: pointer;\n border-color: ${theme.colors.icons[hoverColor]};\n color: ${theme.colors.icons[hoverColor]};\n ${IconWrapper} {\n [stroke]{\n stroke: ${theme.colors.icons[hoverColor]};\n }\n }\n }\n `};\n`;\n\ninterface OwnProps {\n label?: string\n linkTo?: string\n}\n\nexport type ITag = OwnProps & IconProps;\n\nconst Tag : React.FC<ITag> = ({\n icon = '',\n size = 14,\n weight = 'regular',\n label='',\n linkTo,\n ...props \n}) => {\n\n const renderTag = () => (\n <TagWrapper hoverColor='primary' enableHover={linkTo ? true : false} size={size}>\n {icon && (\n <Icon\n icon={icon}\n size={size}\n weight={weight}\n {...props}\n />\n )}\n <TextContainer>{label}</TextContainer>\n </TagWrapper>\n );\n\n return(\n linkTo\n ? (\n <StyledLink to={linkTo}>\n {renderTag()}\n </StyledLink>)\n : renderTag()\n );\n};\n\nexport default Tag;","import React from 'react';\nimport styled from 'styled-components';\nimport Tag, {ITag, TagWrapper} from '../atoms/Tag';\n\n\nexport const TagListWrapper = styled.div`\n display: flex;\n ${TagWrapper} {\n margin-right: 10px;\n margin-bottom: 6px;\n flex-shrink: 0;\n }\n flex-wrap: wrap;\n`;\n\nexport interface ITagList {\n tagsConfig: ITag[]\n}\n\nconst TagList : React.FC<ITagList> = ({tagsConfig}) => {\n return(\n <TagListWrapper>\n {tagsConfig.map((tagProps, index) => {\n return (\n <Tag key={`tag-${index}`} {...tagProps} />\n );\n })}\n </TagListWrapper>\n );\n};\n\nexport default TagList;","import debounce from 'lodash.debounce';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport BasicSearchInput, { IBasicSearchInput } from '../atoms/BasicSearchInput';\n\n// Adding default value thinking of query params or other outside initialized value\ninterface IDebouncedSearcher extends IBasicSearchInput {\n defaultValue?: string;\n onDebouncedChange?: (newValue: string) => void\n}\n\nconst DebouncedSearcher: React.FC<IDebouncedSearcher> = ({\n onDebouncedChange = () => { },\n defaultValue,\n ...props\n}) => {\n const [typedValue, setTypedValue] = useState<string>(defaultValue || '');\n\n const debounceChange = useRef(debounce(newValue => updateChange(newValue), 600)).current;\n\n const updateChange = useCallback((newValue: string) => {\n onDebouncedChange(newValue);\n }, [onDebouncedChange]);\n\n const updateTyped = useCallback((e: React.FormEvent<HTMLInputElement>) => {\n const newValue = e.currentTarget.value;\n setTypedValue(newValue);\n debounceChange(newValue);\n }, [debounceChange]);\n\n useEffect(() => {\n if (defaultValue) {\n setTypedValue(defaultValue);\n }\n }, [defaultValue]);\n\n return (\n <BasicSearchInput {...props} onChange={updateTyped} value={typedValue} />\n );\n};\n\nexport default DebouncedSearcher;","import React from 'react';\nimport styled from 'styled-components';\nimport Button from '../../Form/atoms/Button';\nimport ButtonWithIcon, { IButtonWithIcon } from '../../Form/atoms/ButtonWithIcon';\n\nconst Container = styled.div``;\nconst Title = styled.div`\n font-family: ${({ theme }) => theme.fontFamily.ui};\n color: hsl(207, 5%, 57%);\n font-size: 12px;\n font-weight: 700;\n margin-bottom: 17px;\n`;\n\nconst ButtonsWrapper = styled.div`\n display: flex;\n justify-content: space-between;\n`;\n\nconst LeftButtons = styled.div`\n button {\n margin: 0 10px 10px 0;\n }\n`;\n\nconst RightButtons = styled.div`\n flex-shrink: 0;\n`;\n\nconst SelectedResults = styled.div`\n font-family: ${({ theme }) => theme.fontFamily.ui};\n margin-top: 29px;\n min-height: 19px;\n color: hsl(207, 5%, 57%);\n font-size: 12px;\n`;\n\n\nconst renderSelected = (template: string, selected: number, total: number) => {\n const newSelected = template.replace('[SELECTED]', `${selected}`);\n return newSelected.replace('[TOTAL]', `${total}`);\n};\n\nexport interface IActionsButton extends IButtonWithIcon {\n text: string\n}\n\nexport interface IActionsBar {\n title?: string\n finishTextButton?: string\n actionButtons?: IActionsButton[]\n selectedTemplate?: string\n totalSelected?: number\n totalAvailable?: number\n finishCallback?: () => void\n}\n\nconst ActionsBar: React.FC<IActionsBar> = ({\n title = 'Actions:',\n finishTextButton = 'Finish',\n actionButtons = [],\n selectedTemplate = 'Selected [SELECTED] of [TOTAL] Results',\n totalSelected = 0,\n totalAvailable = 0,\n finishCallback = () => { }\n}) => {\n return (\n <Container>\n <Title>{title}</Title>\n <ButtonsWrapper>\n <LeftButtons>\n {actionButtons.map(({ design, size, position, text, ...props }, index) => {\n return (\n <ButtonWithIcon\n key={index}\n design={design || 'secondary'}\n size={size || 'small'}\n position={position || 'left'}\n {...props}\n >\n {text}\n </ButtonWithIcon>\n );\n })}\n </LeftButtons>\n <RightButtons>\n <Button size='small' onClick={finishCallback}>{finishTextButton}</Button>\n </RightButtons>\n </ButtonsWrapper>\n <SelectedResults>{renderSelected(selectedTemplate, totalSelected, totalAvailable)}</SelectedResults>\n </Container>\n );\n};\n\nexport default ActionsBar;","import { useEffect, useRef } from 'react';\n\nexport function useInterval(callback: ()=>void, delay: number) {\n const savedCallback = useRef<()=>void>();\n\n // Remember the latest callback.\n useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\n // Set up the interval.\n useEffect(() => {\n function tick() {\n savedCallback.current && savedCallback.current();\n }\n if (delay !== null) {\n const id = setInterval(tick, delay);\n return () => clearInterval(id);\n }\n }, [delay]);\n}","import { useCallback } from \"react\";\nimport { useHistory } from \"react-router-dom\";\n\nexport const useTo = ()=>{\n const history = useHistory();\n const to = useCallback((url: string) => () => history.push(url),[history]);\n return to;\n};","import React, { useState, useCallback, useMemo } from 'react';\nimport Notification, { INotificationProps } from '../Alerts/atom/Notification';\nimport { uniqueID } from '../helpers';\n\ntype NotificationContextType = {\n sendNotification: (newNotification: INotificationProps) => void\n clearNotifications: () => void\n};\n\nconst defaultContext: NotificationContextType = {\n sendNotification: () => console.log(\"This is the context initialization should not appear\"),\n clearNotifications: () => console.log(\"This is the context initialization should not appear\"),\n};\n\nconst NotificationContext = React.createContext<NotificationContextType>(defaultContext);\n\nconst notificationList: INotificationProps[] = [];\n\nconst NotificationProvider: React.FC = ({ children }) => {\n const [activeNotification, setActiveNotification] = useState<INotificationProps | null>(null);\n\n const showNotification = useCallback(() => {\n const nextNotification = notificationList.shift();\n\n if (!nextNotification) { return; }\n\n const updateOnClose = () => {\n if (nextNotification.closeCallback) {\n nextNotification.closeCallback();\n }\n setActiveNotification(null);\n showNotification();\n };\n\n const displayedNotification = { ...nextNotification, closeCallback: updateOnClose };\n\n setActiveNotification(displayedNotification);\n }, []);\n\n const sendNotification = useCallback(async (newNotification: INotificationProps) => {\n\n const validNotification: INotificationProps = {\n message: newNotification.message,\n type: newNotification.type,\n id: uniqueID()\n };\n\n if (newNotification.icon) {\n validNotification.icon = newNotification.icon;\n }\n\n if (newNotification.actionTextButton) {\n validNotification.actionTextButton = newNotification.actionTextButton;\n }\n\n if (newNotification.onTextButtonClick) {\n validNotification.onTextButtonClick = newNotification.onTextButtonClick;\n }\n\n if (newNotification.closeCallback) {\n validNotification.closeCallback = newNotification.closeCallback;\n }\n\n if (newNotification.isPinned) {\n validNotification.isPinned = newNotification.isPinned;\n }\n\n notificationList.push(validNotification);\n\n if (notificationList.length === 1 && activeNotification === null) {\n showNotification();\n }\n },[activeNotification, showNotification]);\n\n const clearNotifications = useCallback(() => {\n notificationList.length = 0;\n setActiveNotification((prev) => {\n\n if(prev !== null) {\n return {...prev, closeNow: true};\n }\n\n return prev;\n });\n },[]);\n\n const contextValue = useMemo(() => ({sendNotification, clearNotifications}),[clearNotifications, sendNotification]);\n\n return (\n <NotificationContext.Provider value={contextValue}>\n {activeNotification\n ? <Notification {...activeNotification} />\n : null}\n {children}\n </NotificationContext.Provider>\n );\n};\n\nexport { NotificationContext };\nexport type { NotificationContextType };\nexport default NotificationProvider;","import React from 'react';\nimport { NotificationContext } from '../context/NotificationContext';\n\nexport const useNotification = () => React.useContext(NotificationContext);","import { useRef, useCallback, useEffect } from 'react';\n\n\nexport const usePoll = (callback = ()=>{}, interval = 1000) => {\n const timeoutIDRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const callbackRef = useRef<()=>void>(callback);\n const canceled = useRef<boolean>(false);\n\n\n const pollOnce = useCallback(async()=>{\n if(timeoutIDRef.current !== null){\n console.debug('Clearing previous');\n clearTimeout(timeoutIDRef.current);\n timeoutIDRef.current = null;\n }\n\n await callbackRef.current();\n //Start next one in the chain\n if(!canceled.current){\n console.debug('Starting next timeout');\n timeoutIDRef.current = setTimeout(pollOnce, interval);\n }\n },[interval]);\n\n useEffect(()=>{\n callbackRef.current = callback;\n },[callback]);\n\n useEffect(()=>{\n\n pollOnce();\n\n return () => {\n console.debug('canceled');\n canceled.current = true;\n if(timeoutIDRef.current !== null){\n console.debug('clearing final', timeoutIDRef.current);\n clearTimeout(timeoutIDRef.current);\n timeoutIDRef.current = null;\n }\n };\n },[pollOnce]);\n};\n","import {useState, useLayoutEffect } from \"react\";\n\n/**\n * Custom hook that tells you whether a given media query is active.\n */\n\nexport default function useMediaQuery(query: string) {\n\n const [matches, setMatches] = useState(false);\n useLayoutEffect(\n () => {\n\n const mediaQuery = window.matchMedia(query);\n setMatches(mediaQuery.matches);\n const handler = (event: MediaQueryListEvent) => setMatches(event.matches);\n\n mediaQuery.addEventListener(\"change\", handler);\n\n return () => mediaQuery.removeEventListener(\"change\", handler);\n\n },\n // eslint-disable-next-line\n [] // Empty array ensures effect is only run on mount and unmount\n );\n return matches;\n}","import useMediaQuery from \"./useMediaQuery\";\nimport {deviceMediaQuery} from '../themes/common';\n\n/**\n * Get a set of boolean representing which breakpoint is activeScreen\n * and which breakpoints are inactiveScreen.\n */\n\nexport type IBreakpoints = 'small'\n| 'medium'\n| 'large'\n| 'xlarge'\n| 'xxlarge';\n\ninterface OwnProps {\n isSmall: boolean\n isMedium: boolean\n isLarge: boolean\n isXLarge: boolean\n isXXLarge: boolean\n activeScreen: IBreakpoints\n}\n\nexport default function useBreakpoints() {\n const breakpoints : OwnProps= {\n isSmall: useMediaQuery(deviceMediaQuery.small),\n isMedium: useMediaQuery(deviceMediaQuery.medium),\n isLarge: useMediaQuery(deviceMediaQuery.large),\n isXLarge: useMediaQuery(deviceMediaQuery.xlarge),\n isXXLarge: useMediaQuery(deviceMediaQuery.xxlarge),\n activeScreen: \"small\"\n };\n\n if (breakpoints.isSmall) breakpoints.activeScreen = 'small';\n if (breakpoints.isMedium) breakpoints.activeScreen = 'medium';\n if (breakpoints.isLarge) breakpoints.activeScreen = 'large';\n if (breakpoints.isXLarge) breakpoints.activeScreen = 'xlarge';\n if (breakpoints.isXXLarge) breakpoints.activeScreen = 'xxlarge';\n\n return breakpoints;\n}","import React from 'react';\nimport styled from 'styled-components';\nimport Button from '../Form/atoms/Button';\nimport { TypeButtonDesigns } from '../Form';\nimport { useModal } from '../hooks';\n\nconst Container = styled.div``;\n\nconst Title = styled.div`\n ${({theme: { typography }}) => typography.modal.title};\n`;\n\nconst MessageBox = styled.div`\n ${({theme: { typography }}) => typography.modal.basicContent};\n margin: 28px 0;\n`;\n\nconst StyledButton = styled(Button)`\n margin-left: 10px;\n`;\n\nconst ButtonsGroup = styled.div`\n text-align: right;\n`;\n\n\ntype IConfirmationModal = {\n title?: string,\n message: string,\n leftButtonText?: string,\n leftButtonDesign?: TypeButtonDesigns,\n leftButtonCallback?: () => void,\n rightButtonText?: string,\n rightButtonDesign?: TypeButtonDesigns,\n rightButtonCallback?: () => void,\n}\n\nconst ConfirmationModal: React.FC<IConfirmationModal> = ({\n title = '',\n message = '',\n leftButtonText = 'submit',\n leftButtonDesign = 'primary',\n leftButtonCallback = () => { },\n rightButtonDesign = 'secondary',\n rightButtonText = 'cancel',\n rightButtonCallback = () => { },\n}) => {\n\n const { setModalOpen } = useModal();\n\n const handlePrimaryBtn = () => {\n leftButtonCallback();\n setModalOpen(false);\n };\n\n const handleSecondaryBtn = () => {\n rightButtonCallback();\n setModalOpen(false);\n };\n\n return (\n <Container>\n <Title>{title}</Title>\n <MessageBox>{message}</MessageBox>\n <ButtonsGroup>\n <StyledButton\n design={leftButtonDesign}\n onClick={handlePrimaryBtn}\n >\n {leftButtonText}\n </StyledButton>\n <StyledButton\n design={rightButtonDesign}\n onClick={handleSecondaryBtn}\n >\n {rightButtonText}\n </StyledButton>\n </ButtonsGroup>\n </Container>\n );\n};\n\nexport default ConfirmationModal;","import styled, {css} from 'styled-components';\nimport {deviceMediaQuery} from '../../themes/common';\n\nexport const MOBILE_CLOSE_HEIGHT = 50;\nexport const MOBILE_NAVBAR_HEIGHT = 68;\n\nexport const Layout = styled.div`\n display: flex;\n flex-direction: row;\n height: 100%;\n`;\n\nexport const MobileLayout = styled.div``;\n\n\nexport const Content = styled.div<{ maxWidth?: string, padBottom?: boolean }>`\n padding: ${({padBottom = true}) => padBottom ? '70px 90px' : '70px 90px 0'};\n flex: 1;\n overflow: auto;\n\n & > div {\n max-width: 1400px;\n }\n\n ${\n ({ maxWidth }) =>\n maxWidth && css`\n & > div {\n max-width: ${maxWidth};\n }\n `\n }\n`;\nexport const MainContainer = styled.div`\n flex: 1;\n display: flex;\n flex-direction: column;\n`;\n\nexport const ContentArea = styled.div<{ maxWidth?: string, paddingOverride?: string}>`\n flex: 1;\n width: 100%;\n padding: ${({paddingOverride}) => paddingOverride ? paddingOverride : '40px 20px'};\n margin-left: auto;\n margin-right: auto;\n\n @media ${deviceMediaQuery.medium} {\n padding: ${({paddingOverride}) => paddingOverride ? paddingOverride : '40px'};\n }\n\n @media ${deviceMediaQuery.large} {\n max-width: ${({maxWidth}) => maxWidth ? maxWidth : `1200px`};\n padding: ${({paddingOverride}) => paddingOverride ? paddingOverride : '70px 90px'};\n }\n`;","import React from 'react';\nimport styled, { css } from 'styled-components';\nimport { Link } from 'react-router-dom';\n\nimport Icon, { IconWrapper } from '../../Icons/Icon';\n\n\nconst ContextTitle = styled.div<{ compact?: boolean }>`\n opacity: 0;\n\n ${({ theme }) => css`\n transition: opacity ${theme.animation.speed.fast} ${theme.animation.easing.primary.easeInOut};\n `}\n\n ${({ compact }) => compact && css`\n font-size:14px;\n `}\n`;\n\nconst ContextIcon = styled.div<{ compact?: boolean }>`\n ${({ theme }) => css`\n ${theme.styles.global.mainMenu.iconBackground.default};\n transition: background ${theme.animation.speed.fast} ${theme.animation.easing.primary.easeInOut};\n `};\n\n flex: 0 0 40px;\n width: 40px;\n height: 40px;\n margin: 0 20px;\n\n border-radius: 7px;\n display:flex;\n justify-content:center;\n align-items:center;\n\n svg {\n display: block;\n }\n`;\n\nconst ContextIndicator = styled.div`\n width: 12px;\n height: 12px;\n flex: 0 0 14px;\n margin: 0 20px 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n\n svg {\n display: block;\n height: 12px;\n width: 12px;\n }\n\n opacity: 0;\n\n ${({ theme }) => css`\n transition: opacity 0 ${theme.animation.easing.primary.easeInOut};\n `}\n\n`;\nconst ContextActionBaseCSS = css`\n -webkit-tap-highlight-color: transparent;\n border: none;\n background: none;\n display: flex;\n justify-content:left;\n align-items:center;\n flex-wrap: wrap;\n cursor: pointer;\n width: 100%;\n outline: none;\n padding: 0;\n text-decoration: none;\n`;\n\nconst StyledAnchor = styled.a`\n display: flex;\n text-decoration: none;\n`;\n\nconst ExternalIconWrapper = styled.div`\n margin-left: 15px;\n`;\n\nconst ContextWrapper = styled.div<{$menuOpen?: boolean}>`\n ${ContextActionBaseCSS}\n ${({ theme }) => theme && css`\n font-family: ${theme.fontFamily.ui};\n ${theme.typography.global.mainMenu.menuItem.default};\n `}\n\n ${({ $menuOpen }) => $menuOpen && css`\n ${ContextTitle}{\n opacity: 1;\n }\n`}\n\n &:hover ${ContextIcon}{\n opacity: 1;\n ${({ theme }) => theme.styles.global.mainMenu.iconBackground.hover};\n ${IconWrapper}{\n [stroke]{\n stroke: ${({ theme }) => theme.colors.icons['inverse']};\n }\n }\n }\n`;\n\nconst ContextActionA = styled(Link) <{ $menuOpen?: boolean, $isActive: boolean }>`\n ${ContextActionBaseCSS}\n ${({ theme }) => theme && css`\n font-family: ${theme.fontFamily.ui};\n ${theme.typography.global.mainMenu.menuItem.default};\n `}\n\n ${({ $menuOpen }) => $menuOpen && css`\n ${ContextTitle}{\n opacity: 1;\n }\n `}\n\n &:hover ${ContextIcon}{\n opacity: 1;\n ${({ theme }) => theme.styles.global.mainMenu.iconBackground.hover};\n ${IconWrapper}{\n [stroke]{\n stroke: ${({ theme }) => theme.colors.icons['inverse']};\n }\n }\n }\n\n ${({ $isActive }) => $isActive && css`\n ${ContextIcon},\n &:hover ${ContextIcon}{\n ${({ theme }) => theme.styles.global.mainMenu.iconBackground.active};\n }\n `}\n`;\nconst ContextActionButton = styled.button<{ menuOpen?: boolean, isActive: boolean }>`\n ${ContextActionBaseCSS}\n\n ${({ theme }) => theme && css`\n font-family: ${theme.fontFamily.ui};\n ${theme.typography.global.mainMenu.menuItem.default};\n `}\n\n ${({ menuOpen, theme }) => menuOpen && css`\n ${ContextTitle}{\n opacity: 1;\n }\n\n ${ContextIndicator}{\n opacity: 1;\n transition: opacity ${theme.animation.speed.normal} ${theme.animation.easing.primary.easeInOut} ${theme.animation.speed.fast};\n }\n `}\n\n &:hover ${ContextIcon}{\n opacity: 1;\n ${({ theme }) => theme.styles.global.mainMenu.iconBackground.hover};\n ${IconWrapper}{\n [stroke]{\n stroke: ${({ theme }) => theme.colors.icons['inverse']};\n }\n }\n }\n\n ${({ isActive }) => isActive && css`\n ${ContextIcon},\n &:hover ${ContextIcon}{\n ${({ theme }) => theme.styles.global.mainMenu.iconBackground.active};\n }\n `}\n`;\n\ninterface IProps {\n title: string\n icon: string\n isActive: boolean\n menuOpen?: boolean\n submenuOpen?: boolean\n hasSubmenu?: boolean\n contextKey?: number\n href?: string\n compact?: boolean\n isExternalLink?: boolean\n onClickCallback?: (...args: any[]) => void\n}\n\nconst ContextItem: React.FC<IProps> = ({\n hasSubmenu = false,\n contextKey = -1,\n submenuOpen,\n menuOpen,\n title,\n href,\n icon,\n compact,\n isActive,\n isExternalLink,\n onClickCallback }) => {\n\n const internal = (\n <React.Fragment>\n <ContextIcon {...{ compact }}>\n <Icon icon={icon} color={isActive ? 'inverse' : 'dimmed'} size={20} />\n </ContextIcon>\n <ContextTitle {...{ compact }}>{title}</ContextTitle>\n {hasSubmenu ? <ContextIndicator><Icon icon={submenuOpen ? 'Up' : 'Down'} color='dimmed' /></ContextIndicator> : null}\n </React.Fragment>);\n\n if (hasSubmenu) {\n return (\n <ContextActionButton menuOpen={menuOpen} isActive={isActive} onClick={() => onClickCallback && onClickCallback(contextKey)}>\n {internal}\n </ContextActionButton>\n );\n } else {\n return (\n isExternalLink\n ? (\n <StyledAnchor href={href} target='_blank'>\n <ContextWrapper $menuOpen={menuOpen}>\n {internal}\n <ExternalIconWrapper>\n <Icon icon='ExternalLink' color='dimmed' size={12} />\n </ExternalIconWrapper>\n </ContextWrapper>\n </StyledAnchor>\n )\n : (\n <ContextActionA\n $menuOpen={menuOpen}\n to={href ? href : '#'}\n $isActive={isActive}\n onClick={() => onClickCallback && onClickCallback(contextKey)}\n >\n {internal}\n </ContextActionA>)\n );\n }\n\n};\n\nexport default ContextItem;","import { useReducer, useCallback, useLayoutEffect } from 'react';\n\nimport useBreakpoints, { IBreakpoints } from './useBreakpoints';\n\ninterface IMenuState {\n desktopSize: IBreakpoints\n isMenuPinned: boolean\n isMenuOpen: boolean\n canPin: boolean\n}\n\ninterface SET_MENU {\n type: 'SET_MENU'\n data: {\n desktopSize: IBreakpoints\n defaultMenuOpen: boolean\n canAlwaysPin?: boolean\n }\n}\n\ninterface SET_OPEN {\n type: 'SET_OPEN'\n}\n\ninterface SET_CLOSE {\n type: 'SET_CLOSE'\n}\n\ninterface TOGGLE_PIN {\n type: 'TOGGLE_PIN'\n}\n\ntype IMenuActions = SET_MENU | SET_OPEN | SET_CLOSE | TOGGLE_PIN\n\n\nconst menuReducer = (state: IMenuState, action: IMenuActions) => {\n\n switch (action.type) {\n\n // initial State based in props and desktop size and local storage\n case 'SET_MENU': {\n const openValueStorage = localStorage.getItem(window.location.hostname + '_isMenuOpen');\n\n let isMenuOpen = (openValueStorage === 'true') || (openValueStorage === null && (!!action.data.defaultMenuOpen));\n let isMenuPinned = (openValueStorage === 'true') && !!action.data.canAlwaysPin;\n const canPin = (action.data.desktopSize === 'xlarge') || !!action.data.canAlwaysPin;\n\n if (action.data.desktopSize === 'xxlarge' && action.data.canAlwaysPin === false) {\n isMenuOpen = true;\n isMenuPinned = true;\n }\n\n return {\n ...state,\n desktopSize: action.data.desktopSize,\n isMenuOpen,\n isMenuPinned,\n canPin,\n };\n }\n\n // handle autoOpen based on desktop\n case 'SET_OPEN': {\n if (state.isMenuOpen === true) { return state; }\n if (state.desktopSize === 'xxlarge' && !state.canPin) { return state; }\n\n return {\n ...state,\n isMenuOpen: true\n };\n }\n\n // handle auto close based on desktop\n case 'SET_CLOSE': {\n if (state.isMenuOpen === false) { return state; }\n if (state.desktopSize === 'xxlarge' && !state.canPin) { return state; }\n if (state.isMenuPinned === true) { return state; }\n\n return {\n ...state,\n isMenuOpen: false,\n };\n }\n\n case 'TOGGLE_PIN': {\n if (!state.canPin) { return state; }\n\n let isMenuOpen = true;\n\n if (state.isMenuPinned) {\n localStorage.setItem(window.location.hostname + '_isMenuOpen', 'false');\n isMenuOpen = false;\n } else {\n localStorage.setItem(window.location.hostname + '_isMenuOpen', 'true');\n }\n\n return {\n ...state,\n isMenuOpen,\n isMenuPinned: !state.isMenuPinned,\n };\n }\n\n default:\n console.error(`Action ${action['type']} not registered.`);\n return state;\n }\n};\n\nconst menuState: IMenuState = {\n desktopSize: 'large',\n isMenuPinned: false,\n isMenuOpen: false,\n canPin: false\n};\n\nconst useMenu = (defaultMenuOpen: boolean, canAlwaysPin: boolean) => {\n\n const { activeScreen } = useBreakpoints();\n const [state, dispatch] = useReducer(menuReducer, menuState);\n\n const setMenu = useCallback((defaultMenuOpen: boolean, canAlwaysPin: boolean, desktopSize: IBreakpoints,) => {\n dispatch({ type: 'SET_MENU', data: { defaultMenuOpen, desktopSize, canAlwaysPin } });\n }, []);\n\n const setMenuOpen = useCallback(() => {\n dispatch({ type: 'SET_OPEN' });\n }, []);\n\n const setMenuClose = useCallback(() => {\n dispatch({ type: 'SET_CLOSE' });\n }, []);\n\n const togglePinned = useCallback(() => {\n dispatch({ type: 'TOGGLE_PIN' });\n }, []);\n\n useLayoutEffect(() => {\n setMenu(defaultMenuOpen, canAlwaysPin, activeScreen);\n }, [activeScreen, defaultMenuOpen, canAlwaysPin, setMenu]);\n\n return {\n menuState: state,\n setMenuOpen,\n setMenuClose,\n togglePinned\n };\n};\n\nexport default useMenu;","import React, { useRef, useEffect, useState } from 'react';\nimport styled, { css } from 'styled-components';\nimport {Link} from 'react-router-dom';\nimport ContextItem from './ContextItem';\nimport { IMenuItemTop, IMenuItemSubmenu } from '..';\nimport {resetButtonStyles} from '../../common/index';\nimport Icon from '../../Icons/Icon';\n\nconst Submenu = styled.ul`\n display: block;\n position: relative;\n margin-left: 40px;\n padding: 0;\n\n`;\nconst SubmenuHeader = styled.div`\n display: block;\n height: 40px;\n margin-left: 40px;\n`;\n\nconst SubmenuItemTitle = styled.span`\n display: block;\n ${({theme}) => theme && css`\n font-family: ${theme.fontFamily.ui};\n ${theme.typography.global.mainMenu.subheader}\n `};\n\n`;\n\nconst SubmenuItemLink = styled(Link)`\n ${resetButtonStyles};\n display: block;\n`;\n\nconst ExternalIconWrapper = styled.div`\n margin-left: 15px;\n`;\n\nconst SubmenuItemAnchor = styled.a`\n ${resetButtonStyles};\n display: flex;\n align-items: center;\n`;\n\nconst SubmenuItem = styled.li<{isActive?: boolean}>`\n display: block;\n height: 30px;\n padding-left: 40px;\n position: relative;\n\n &::after {\n display: block;\n content: '';\n height: 1px;\n width: 14px;\n position: absolute;\n left: 0;\n top: 10px;\n background: ${({theme: {colors}}) => colors.divider};\n }\n\n ${SubmenuItemLink}, ${SubmenuItemAnchor}{\n\n ${({theme, isActive}) => theme && css`\n font-family: ${theme.fontFamily.ui};\n ${theme.typography.global.mainMenu.subItem.default};\n\n &:hover {\n ${theme.typography.global.mainMenu.subItem.hover};\n }\n\n ${isActive && css`\n &, &:hover {\n ${theme.typography.global.mainMenu.subItem.active};\n }\n `}\n\n `};\n\n\n\n }\n`;\n\nconst SubmenuContainer = styled.div`\n ${({theme}) => theme && css`\n transition:\n max-height ${theme.animation.speed.normal} ${theme.animation.easing.primary.easeOut},\n opacity ${theme.animation.speed.fast} ${theme.animation.easing.primary.easeOut};\n `};\n\n position: relative;\n overflow: hidden;\n\n &::after {\n display: block;\n content: '';\n width: 1px;\n position: absolute;\n left: 40px;\n top: 0;\n bottom: 35px;\n background: ${({theme: {colors}}) => colors.divider};\n }\n\n`;\n\nconst ContextContainer = styled.div<{ open: boolean, maxHeight: number, minHeight?: number, loading: 'true'|'false' }>`\n min-height: ${({minHeight}) => minHeight ? `${minHeight}px` : `70px`};\n width: inherit;\n\n ${SubmenuContainer}{\n max-height: 0;\n opacity: 0;\n }\n ${({open, maxHeight, theme}) => open && css`\n ${SubmenuContainer}{\n transition:\n max-height ${theme.animation.speed.normal} ${theme.animation.easing.primary.easeOut},\n opacity ${theme.animation.speed.fast} ${theme.animation.easing.primary.easeOut};\n max-height: ${maxHeight}px !important;\n opacity: 1;\n }\n `};\n\n ${({loading}) => loading === 'true' && css`\n ${SubmenuContainer}{\n max-height: none !important;\n opacity: 1;\n }\n `};\n\n`;\n\ninterface IProps {\n item: IMenuItemTop\n contextKey: number\n submenuOpen: boolean\n loading: boolean\n menuOpen?: boolean\n topLevelPath: string\n minHeight?: number\n onClickCallback?: (...args: any[]) => void\n readyCallback?: (...args: any[]) => void\n}\n\nconst NavigationItem : React.FC<IProps> = ({item, menuOpen, submenuOpen, contextKey, loading, topLevelPath, minHeight, onClickCallback, readyCallback}) => {\n const { icon, title, href, submenu, isExternalLink } = item;\n const isActive = topLevelPath === href;\n\n const refSubmenu = useRef<any>(null);\n const [submenuHeight, setSubmenuHeight] = useState<number>(0);\n\n const submenus : any[] = generateSubmenus(submenu, onClickCallback ) || [];\n const hasSubmenu : boolean = submenus.length > 0;\n\n useEffect(() => {\n if(refSubmenu && refSubmenu.current && refSubmenu.current.clientHeight !== 0){\n setSubmenuHeight(refSubmenu.current.clientHeight);\n }\n\n if(readyCallback){ readyCallback(contextKey); }\n\n }, [refSubmenu, setSubmenuHeight, readyCallback, contextKey]);\n\n return (\n <ContextContainer open={submenuOpen} loading={loading ? 'true': 'false'} maxHeight={submenuHeight} minHeight={minHeight}>\n <ContextItem {...{title, href, isActive, icon, hasSubmenu, isExternalLink, submenuOpen, menuOpen, onClickCallback, contextKey}} />\n {hasSubmenu ? <SubmenuContainer ref={refSubmenu}>{submenus}</SubmenuContainer> : null}\n </ContextContainer>\n );\n\n};\n\n/**\n * Generate the submenu component structure.\n * @param submenu JSON Object with the menu structure\n */\nconst generateSubmenus = (\n submenu? : IMenuItemSubmenu[],\n onClickCallback?: (...args: any[]) => void,\n ) => {\n\n if(!submenu){ return; }\n\n const grouping : any[] = [];\n const output : any = [];\n\n // First submenu\n grouping.push([]);\n\n submenu.forEach((item, key) => {\n const {title, href, isExternalLink} = item;\n if(href){\n // Treat as menu item/\n if(isExternalLink) {\n grouping[grouping.length - 1].push(\n <SubmenuItem key={key} isActive={false}>\n <SubmenuItemAnchor href={href} target='_blank'>\n {title}\n <ExternalIconWrapper>\n <Icon icon='ExternalLink' color='dimmed' size={10} />\n </ExternalIconWrapper>\n </SubmenuItemAnchor>\n </SubmenuItem>);\n }else {\n grouping[grouping.length - 1].push(<SubmenuItem key={key} isActive={false}><SubmenuItemLink to={href} onClick={() => onClickCallback && onClickCallback(-1)}>{title}</SubmenuItemLink></SubmenuItem>);\n }\n } else {\n // Assume this is a grouping header.\n if(grouping[grouping.length - 1].length > 1){ grouping.push([]); }\n grouping[grouping.length - 1].push(<SubmenuHeader key={key}><SubmenuItemTitle>{title}</SubmenuItemTitle></SubmenuHeader>);\n }\n });\n\n grouping.forEach((group, key) => {\n output.push(<Submenu key={key}>{group}</Submenu>);\n });\n\n return output;\n\n};\n\nexport default NavigationItem;\n\n","import React, { useState, useCallback } from 'react';\nimport ReactDom from 'react-dom';\nimport styled, { css } from 'styled-components';\n\nimport { Link, useLocation } from 'react-router-dom';\nimport ContextItem from '../atoms/ContextItem';\nimport useMenu from '../../hooks/useMenu';\n\nimport { IBreakpoints } from '../../hooks/useBreakpoints';\n\nimport SvgLogoMark from '../../svg/LogoMark';\nimport SvgLogoText from '../../svg/LogoText';\nimport NavigationItem from '../atoms/NavigationItem';\nimport { IMenu } from '..';\nimport { getTopLevelPath } from '../../helpers/index';\n\nconst Logo = styled(Link)`\n height: 50px;\n margin: 0 20px 55px 15px;\n display: flex;\n\n object {\n pointer-events: none;\n }\n`;\nconst LogoMark = styled.div`\n height: 50px;\n flex: 0 0 50px;\n margin-right: 15px;\n display: flex;\n justify-content: center;\n align-items: center;\n\n`;\nconst LogoType = styled.div`\n opacity: 0;\n flex: 1;\n height: 50px;\n display: flex;\n justify-content: left;\n align-items: center;\n`;\n\nconst SVGObject = styled.object``;\nconst SVGObjectText = styled.object`\n max-width: 180px;\n`;\n\nconst NavigationContainer = styled.div``;\n\nconst MenuFooter = styled.div`\n ${({ theme }) => theme && css`\n ${theme.styles.global.mainMenu.footerBackground}\n `};\n display: flex;\n flex-direction: column;\n flex: 1;\n justify-content: flex-end;\n`;\n\nconst FooterItemContainer = styled.div`\n min-height: 70px;\n`;\n\nconst PushContainer = styled.div<{ isPinned: boolean; }>`\n position: relative;\n height: 100%;\n ${({ theme, isPinned }) => theme && css`\n width: ${isPinned ? theme.dimensions.global.mainMenu.width.open : theme.dimensions.global.mainMenu.width.closed};\n `};\n`;\n\nconst Container = styled.div<{ open: boolean; desktopSize: IBreakpoints }>`\n z-index: 99;\n position: fixed;\n top: 0;\n left: 0;\n ${({ theme, open, desktopSize }) => theme && css`\n ${theme.styles.global.mainMenu.background}\n ${desktopSize === 'xxlarge' ? `` : css`\n transition: width ${theme.animation.speed.normal} ${theme.animation.easing.primary.easeOut}\n `\n };\n width: ${open ? theme.dimensions.global.mainMenu.width.open : theme.dimensions.global.mainMenu.width.closed};\n border-right: 1px solid ${theme.styles.global.mainMenu.lines.backgroundColor};\n\n ${LogoType}{\n transition: opacity ${theme.animation.speed.normal} ${theme.animation.easing.primary.easeInOut};\n opacity: ${open ? 1 : 0};\n }\n `}\n\n box-sizing: border-box;\n height: 100%;\n padding: 20px 0 0 0;\n overflow: hidden;\n`;\n\nconst ContainerInner = styled.div`\n width: ${({ theme }) => theme.dimensions.global.mainMenu.width.open};\n display: flex;\n flex-direction: column;\n height: 100%;\n`;\n\n\nconst MainMenu: React.FC<IMenu> = ({ content, home = \"/\", logoMark, logoText, keepOpenText = \"Keep Open\", autoHideText = \"Auto-Hide\", supportUrl, defaultMenuOpen = true, canAlwaysPin = false }) => {\n\n const { menuState, setMenuOpen, setMenuClose, togglePinned } = useMenu(defaultMenuOpen, canAlwaysPin);\n\n const [focusedContext, setFocusedContext] = useState<number>(0);\n const [loading, setLoading] = useState<boolean>(true);\n const location = useLocation();\n let checkedInItems: number = 0;\n\n /* Handling of menu open, closing and pinning. */\n const autoMenuOpen = useCallback((e: any) => {\n if (e.pointerType === 'touch') { return; }\n setMenuOpen();\n }, [setMenuOpen]);\n\n const autoMenuClose = useCallback(() => {\n // TODO: Move the focused back to the active view so it re-opens on current context.\n setMenuClose();\n }, [setMenuClose]);\n\n const toggleMenuPin = useCallback((e: any) => {\n if (e.pointerType === 'touch') { return; }\n togglePinned();\n }, [togglePinned]);\n\n /** Manage which context is open. */\n /** Submenu sends -1 because context only is for the parent\n * The -1 value is important in the mobile version of this menu\n */\n const setFocusedContextCb = useCallback(contextKey => {\n if(contextKey === -1) { return; }\n\n setFocusedContext(focusedContext !== contextKey ? contextKey : -1);\n }, [setFocusedContext, focusedContext]);\n\n /** Manage the loading cycle. */\n const readyCallback = useCallback(() => {\n // Basic count of menu items (that need to measure height) that have checked in.\n checkedInItems++;\n if (checkedInItems === content.items.length) {\n setLoading(false);\n }\n }, [checkedInItems, content]);\n\n return (\n <PushContainer isPinned={menuState.isMenuPinned}>\n {ReactDom.createPortal(\n <Container\n open={menuState.isMenuOpen}\n desktopSize={menuState.desktopSize}\n onPointerEnter={menuState.isMenuPinned ? () => {} : autoMenuOpen}\n onTouchStart={() => console.log('touch')}\n onMouseLeave={menuState.isMenuPinned ? () => {} : autoMenuClose}\n >\n <ContainerInner>\n <Logo to={home}>\n <LogoMark>{logoMark ? <SVGObject type='image/svg+xml' data={logoMark} /> : <SvgLogoMark />}</LogoMark>\n <LogoType>{logoText ? <SVGObjectText type='image/svg+xml' data={logoText} /> : <SvgLogoText />}</LogoType>\n </Logo>\n\n <NavigationContainer>\n {content.items.map((item, key) => {\n return (\n <NavigationItem\n topLevelPath={getTopLevelPath(location.pathname)}\n key={key}\n contextKey={key}\n menuOpen={menuState.isMenuOpen}\n submenuOpen={key === focusedContext && menuState.isMenuOpen}\n onClickCallback={setFocusedContextCb}\n {...{ item, loading, focusedContext, readyCallback }}\n />\n );\n })}\n </NavigationContainer>\n\n <MenuFooter>\n\n {supportUrl && (\n <FooterItemContainer>\n <ContextItem compact isActive={false} icon='Question' title='Help & Support' href={supportUrl} menuOpen={menuState.isMenuOpen} />\n </FooterItemContainer>\n )}\n\n {(menuState.canPin)\n ? (\n <FooterItemContainer>\n <ContextItem\n compact\n isActive={false}\n icon={menuState.isMenuOpen && menuState.isMenuPinned ? 'Left' : 'Menu'}\n title={menuState.isMenuPinned ? keepOpenText : autoHideText}\n onClickCallback={toggleMenuPin}\n menuOpen={menuState.isMenuOpen}\n />\n </FooterItemContainer>\n )\n : null}\n </MenuFooter>\n </ContainerInner>\n </Container>,\n document.body)}\n </PushContainer>\n );\n};\n\nexport default MainMenu;\n","import React, { FC } from 'react';\nimport styled from 'styled-components';\nimport Icon from '../../Icons/Icon';\n\nconst Container = styled.div`\n padding: 16px 10px 14px 23px;\n display: flex;\n flex-direction: row;\n border-top: 1px solid ${({ theme }) => theme.colors.divider};\n align-items: center;\n cursor: pointer;\n svg {\n margin-top: 7px;\n }\n`;\n\nconst ColumnContainer = styled.div`\n display: flex;\n flex-direction: column;\n padding-left: 14px;\n align-items: flex-start;\n`;\n\nconst Title = styled.div`\n opacity: 0.76;\n font-family: ${({ theme }) => theme.fontFamily.ui};\n font-size: 12px;\n font-weight: 500;\n letter-spacing: 0.34px;\n color: ${({ theme }) => theme.typography.global.mainMenu.subheader.color};\n`;\n\nconst SubTitle = styled.div`\n font-family: ${({ theme }) => theme.fontFamily.ui};\n font-size: 10px;\n font-weight: 500;\n letter-spacing: 0.29px;\n color: ${({ theme }) => theme.typography.global.mainMenu.subheader.color};\n padding-top: 2px;\n opacity: 0.5;\n`;\n\ninterface IDrawerBottomMenu {\n icon: string,\n title: string,\n subTitle: string,\n onClickCallback?: () => void\n}\n\nconst DrawerBottomMenu: FC<IDrawerBottomMenu> = ({ icon = 'Settings', title, subTitle, onClickCallback = () => {} }) => {\n\n return (\n <Container onClick={onClickCallback}>\n <Icon icon={icon} size={18} color='dimmed' />\n\n <ColumnContainer>\n <Title>{title}</Title>\n <SubTitle>{subTitle}</SubTitle>\n </ColumnContainer>\n\n </Container>\n );\n};\n\nexport default DrawerBottomMenu;\n","import React, { useCallback, Fragment } from 'react';\nimport styled, { css } from 'styled-components';\nimport { Link } from 'react-router-dom';\n\nimport { ITopBar } from '../index';\nimport { resetButtonStyles } from '../../common/index';\nimport DrawerBottomMenu from '../atoms/DrawerBottomMenu';\n\nconst DrawerTop = styled.div``;\nconst DrawerBottom = styled.div`\n ${({ theme }) => css`\n width: 100%;\n position: fixed;\n bottom: 0;\n\n @media ${theme.deviceMediaQuery.large} {\n position: static;\n bottom: 0;\n }\n `};\n`;\n\nconst DrawerHeader = styled.h2`\n ${({ theme }) => theme.typography.global.mainMenu.subheader};\n padding: 0;\n margin: 0 0 5px;\n`;\nconst CurrentUser = styled.div`\n padding: 20px 20px 15px;\n\n ${({ theme }) => css`\n border-bottom: ${theme.styles.global.mainMenu.lines.backgroundColor} 1px solid;\n ${theme.typography.global.mainMenu.identity};\n `};\n`;\n\nconst UserOptions = styled.div`\n padding: 20px 20px 10px 20px;\n ${({ theme }) => css`\n border-bottom: ${theme.styles.global.mainMenu.lines.backgroundColor} 1px solid;\n `};\n\n`;\n\nconst Logout = styled.div`\n padding: 0 20px;\n`;\n\nconst LinkMenu = styled.ul`\n padding: 0;\n margin: 12px 0 0 0;\n list-style: none;\n`;\n\nconst LinkMenuItem = styled.li`\n padding: 10px 0;\n`;\n\nconst LinkMenuItemA = styled(Link) <{ isActive?: boolean }>`\n ${resetButtonStyles};\n display: block;\n width: 100%;\n\n ${({ theme }) => css`\n ${theme.typography.global.mainMenu.subItem.default};\n\n &:hover {\n ${theme.typography.global.mainMenu.subItem.hover};\n }\n `};\n\n ${({ theme, isActive }) => isActive && css`\n &, &:hover {\n ${theme.typography.global.mainMenu.subItem.active};\n }\n `};\n`;\n\ninterface IUserMenu extends ITopBar {\n closeOnClick?: () => void\n}\n\nconst UserMenu: React.FC<IUserMenu> = ({\n hasLanguage = false,\n selectedLanguageText = '',\n hasLogout = true,\n logoutLink = '/logout',\n logoutText = 'Logout',\n hasCurrentUser = true,\n currentUserText = 'Current User',\n accountOptionText = \"Account Options\",\n userSubmenu = [],\n userDrawerBespoke,\n loggedInUser,\n hasSwitchTheme = false,\n isLightMode = true,\n switchThemeText = 'SWITCH THEME',\n selectedThemeText = '',\n onLogout = () => { },\n onLanguageToggle = () => { },\n closeOnClick,\n onThemeToggle = () => { }\n}) => {\n\n const logoutHandler = useCallback(async (e: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => {\n e.preventDefault();\n await onLogout();\n window.location.assign(logoutLink);\n if (closeOnClick) {\n closeOnClick();\n }\n }, [closeOnClick, logoutLink, onLogout]);\n\n const handleCloseWhenClick = useCallback(() => {\n if (closeOnClick) {\n closeOnClick();\n }\n }, [closeOnClick]);\n\n return (\n <Fragment>\n <DrawerTop>\n {hasCurrentUser ?\n <CurrentUser>\n <DrawerHeader>{currentUserText}</DrawerHeader>\n {loggedInUser}\n </CurrentUser>\n : null}\n\n {userSubmenu.length > 0 ?\n <UserOptions>\n <DrawerHeader>{accountOptionText}</DrawerHeader>\n <LinkMenu>\n {userSubmenu.map(({ text, href }, index) => {\n return (\n <LinkMenuItem key={index}>\n <LinkMenuItemA to={href} onClick={handleCloseWhenClick}>{text}</LinkMenuItemA>\n </LinkMenuItem>\n );\n })}\n </LinkMenu>\n </UserOptions>\n : null}\n\n {userDrawerBespoke ? userDrawerBespoke : null}\n\n {hasLogout ?\n <Logout>\n <LinkMenu>\n <LinkMenuItem><LinkMenuItemA onClick={logoutHandler} to={logoutLink}>{logoutText}</LinkMenuItemA></LinkMenuItem>\n </LinkMenu>\n </Logout>\n : null}\n </DrawerTop>\n\n <DrawerBottom>\n {hasSwitchTheme && <DrawerBottomMenu icon={isLightMode ? 'LightMode' : 'DarkMode'} title={switchThemeText} subTitle={selectedThemeText} onClickCallback={onThemeToggle} />}\n {hasLanguage && <DrawerBottomMenu icon='Language' title='LANGUAGE / 言語' subTitle={selectedLanguageText} onClickCallback={onLanguageToggle} />}\n </DrawerBottom>\n </Fragment>\n );\n};\n\nexport default UserMenu;","import React from 'react';\nimport styled from 'styled-components';\nimport { INotificationItem } from '../index';\n\nconst Container = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 18px 20px 12px 20px;\n height: 122px;\n`;\n\nconst ImgWrapper = styled.div`\n border-radius: 5px;\n overflow: hidden;\n height: 40px;\n width: 40px;\n flex-shrink: 0;\n`;\n\nconst EmptyImg = styled.div`\n background-color: hsl(210, 22%, 91%);\n width: 100%;\n height: 100%;\n`;\n\nconst Image = styled.div<{ image?: string }>`\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n background-image: url(${p => p.image});\n background-position: center center;\n background-size: cover;\n background-repeat: no-repeat; \n display: ${p => p.image ? 'block' : 'none'};\n`;\n\nconst InfoContainer = styled.div`\n margin-left: 20px;\n`;\n\nconst Title = styled.div`\n font-size: 16px;\n font-weight: 500;\n color: hsl(0, 0%, 34%);\n`;\n\nconst Message = styled.div`\n font-size: 13px;\n font-weight: 500;\n overflow: hidden;\n color: hsl(0, 0%, 34%);\n margin: 4px 0;\n height: 30px;\n text-overflow: ellipsis;\n overflow: hidden;\n display: inline-block;\n vertical-align: middle;\n`;\n\nconst TimeMsg = styled.div`\n font-size: 13px;\n font-weight: 500;\n color: hsl(0, 0%, 67%);\n margin-top: 15px;\n`;\n\n\nconst NotificationItem: React.FC<INotificationItem> = ({ imgUrl, title, message, time }) => {\n return (\n <Container>\n <ImgWrapper>\n {imgUrl\n ? <Image image={imgUrl} />\n : <EmptyImg />}\n </ImgWrapper>\n <InfoContainer>\n <Title>{title}</Title>\n <Message>{message}</Message>\n <TimeMsg>{time}</TimeMsg>\n </InfoContainer>\n </Container>\n );\n};\n\nexport default NotificationItem;","import React, { Fragment } from 'react';\nimport styled from 'styled-components';\nimport { INotificationsHistory, INotificationItem } from '../index';\nimport NotificationItem from '../atoms/NotificationItem';\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nconst StatusContainer = styled.h2`\n text-transform: uppercase;\n padding: 10px 0 10px 20px;\n font-size: 14px;\n font-weight: 500;\n color: hsl(0, 0%, 34%);\n border-bottom: ${({ theme }) => theme.colors.divider} 1px solid;\n margin: 0;\n`;\n\nconst NotificationWrapper = styled.div`\n border-bottom: ${({ theme: { colors } }) => colors.divider} 1px solid;\n`;\n\nconst renderNotifications = (items: INotificationItem[], type: string) => (\n items.map((item, index) => {\n return (\n <NotificationWrapper key={`alert-${type}-${index}`}>\n <NotificationItem {...item} />\n </NotificationWrapper>);\n })\n);\n\nconst NotificationsHistory: React.FC<INotificationsHistory> = ({\n read,\n unread,\n noNotificationsText = 'No new notifications',\n readNotificationsText = 'New',\n unreadNotificationsText = 'Read',\n\n}) => {\n\n if ((read.length === 0) && (unread.length === 0)) {\n return (\n <Container>\n <StatusContainer>{noNotificationsText}</StatusContainer>\n </Container>\n );\n }\n\n return (\n <Container>\n {unread && (\n <Fragment>\n <StatusContainer>{readNotificationsText}</StatusContainer>\n {renderNotifications(unread, 'unread')}\n </Fragment>\n )}\n {read && (\n <Fragment>\n <StatusContainer>{unreadNotificationsText}</StatusContainer>\n {renderNotifications(read, 'read')}\n </Fragment>\n )}\n </Container>\n );\n};\n\nexport default NotificationsHistory;","import React, { useState } from 'react';\nimport ReactDom from 'react-dom';\nimport styled, { css } from 'styled-components';\n\nimport Icon from '../../Icons/Icon';\nimport StatusIcon from '../../Icons/StatusIcon';\nimport UserMenu from '../molecules/UserMenu';\nimport { ITopBar } from '../index';\nimport NotificationsHistory from './NotificationsHistory';\nimport { removeAutoFillStyle } from '../../common';\n\nconst Container = styled.div`\n z-index: 9;\n position: sticky;\n top: 0;\n align-self: flex-start;\n height: 65px;\n width: 100%;\n display: flex;\n justify-content: space-between;\n\n ${({ theme, theme: { colors } }) => colors && css`\n border-bottom: ${theme.styles.global.mainMenu.lines.backgroundColor} 1px solid;\n // box-shadow: 5px 7px 10px 0 hsla(205, 16%, 77%, 0.1);\n background-color:${theme.styles.global.mainMenu.background.backgroundColor};\n `}\n`;\n\nconst SearchBar = styled.div`\n margin-left: 25px;\n flex: 0 1 500px;\n display: flex;\n justify-content: center;\n align-items: center;\n`;\n\nconst IconWrapper = styled.div`\n flex: 0 40px;\n width: 5px;\n display: flex;\n justify-content: center;\n align-items: center;\n > div {\n display: flex;\n flex-direction: column;\n justify-content: center;\n }\n`;\n\nconst SearchInput = styled.input`\n ${removeAutoFillStyle};\n font-family: ${({ theme }) => theme.fontFamily.data};\n flex: 1;\n height: 35px;\n line-height: 35px;\n border: none;\n outline: none;\n background: transparent;\n\n ${({ theme: { typography } }) => typography.global.topBar.search.value};\n\n &::placeholder {\n font-style: italic;\n ${({ theme: { typography } }) => typography.global.topBar.search.placeholder};\n }\n`;\n\nconst ButtonArea = styled.div`\n height: inherit;\n padding-right: 10px;\n display: flex;\n`;\n\nconst DrawerToggle = styled.button.attrs({ type: 'button' }) <{ isActive: boolean }>`\n width: 60px;\n margin: 0 5px;\n height: inherit;\n background: none;\n border: none;\n outline: none;\n cursor: pointer;\n\n ${({ theme }) => css`\n border-bottom: 5px solid transparent;\n /*${theme.colors.menu.indicator};*/\n\n &:hover {\n border-bottom-color: ${theme.colors.menu.hover};\n }\n\n transition: border ${theme.animation.speed.normal} ${theme.animation.easing.primary.easeInOut};\n `};\n\n ${({ isActive, theme }) => isActive && css`\n &, &:hover {\n border-bottom-color: ${theme.colors.menu.active};\n }\n `}\n`;\n\nconst DrawerPortalWrapper = styled.div``;\n\nconst Drawer = styled.div<{ isOpen: boolean, baseWidth?: string }>`\n font-family: ${({ theme }) => theme.fontFamily.ui};\n\n position: fixed;\n right: -10px;\n top: 65px;\n bottom: 0;\n background: ${({ theme }) => theme.styles.global.mainMenu.background};\n border-left: ${({ theme }) => theme.styles.global.mainMenu.lines.backgroundColor} 1px solid;\n width: ${({ baseWidth }) => baseWidth ? baseWidth : `200px`};\n opacity: 0;\n visibility: hidden;\n z-index: 100;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n\n ${({ theme }) => css`\n transition:\n opacity ${theme.animation.speed.normal} ${theme.animation.easing.primary.easeInOut},\n right ${theme.animation.speed.normal} ${theme.animation.easing.primary.easeInOut};\n `};\n\n ${({ isOpen }) => isOpen && css`\n right: 0;\n opacity: 1;\n visibility: visible;\n `}\n`;\n\n/**\n * Negative margin hides the scroll;\n * Reviewed on Chrome an Firefox\n */\nconst NotificationsContainer = styled.div`\n overflow-y: scroll;\n margin-right: -17px;\n`;\n\ntype IDrawerKeys = 'user' | 'notifications' | 'custom' | null;\n\n\nconst TopBar: React.FC<ITopBar> = ({\n hasNotifications = false,\n hasLanguage = false,\n selectedLanguageText = '',\n hasLogout = true,\n logoutLink = '/logout',\n logoutText = 'Logout',\n hasSearch = false,\n hasCurrentUser = true,\n currentUserText = 'Current User',\n accountOptionText = 'Account Options',\n searchPlaceholder = 'Search for devices, analysis tasks, etc.',\n userSubmenu = [],\n userDrawerBespoke,\n loggedInUser,\n notificationsHistory,\n customDrawer,\n hasSwitchTheme = false,\n isLightMode = true,\n switchThemeText = 'SWITCH THEME',\n selectedThemeText = '',\n onLogout = () => { },\n onLanguageToggle = () => { },\n onThemeToggle = () => { }\n}) => {\n\n const [openDrawer, setOpenDrawer] = useState<IDrawerKeys>(null);\n\n const toggleDrawers = (drawerKey: IDrawerKeys) => {\n setOpenDrawer(\n prevDrawer => {\n // if prevDrawer is open, just update to null to close\n if (prevDrawer === drawerKey) {\n return null;\n }\n\n return drawerKey;\n }\n );\n };\n\n return (\n <Container>\n {hasSearch ?\n <SearchBar>\n <IconWrapper>\n <Icon icon='Search' size={18} color='dimmed' />\n </IconWrapper>\n <SearchInput placeholder={searchPlaceholder} />\n </SearchBar> : <div />}\n\n <ButtonArea>\n {customDrawer && (\n <DrawerToggle isActive={openDrawer === 'custom'} onClick={() => toggleDrawers('custom')}>\n <StatusIcon {...customDrawer} />\n </DrawerToggle>\n )}\n {hasNotifications && (\n <DrawerToggle isActive={openDrawer === 'notifications'} onClick={() => toggleDrawers('notifications')}>\n <Icon icon='Notifications' size={18} color='dimmed' />\n </DrawerToggle>\n )}\n <DrawerToggle isActive={openDrawer === 'user'} onClick={() => toggleDrawers('user')}>\n <Icon icon='UserProfile' size={18} color='dimmed' />\n </DrawerToggle>\n </ButtonArea>\n\n {ReactDom.createPortal(\n <DrawerPortalWrapper>\n {/* User Menu */}\n <Drawer isOpen={openDrawer === 'user'}>\n <UserMenu {...{\n hasLanguage,\n hasLogout,\n logoutLink,\n logoutText,\n hasCurrentUser,\n currentUserText,\n accountOptionText,\n userSubmenu,\n userDrawerBespoke,\n loggedInUser,\n onLogout,\n onLanguageToggle,\n selectedLanguageText,\n hasSwitchTheme,\n isLightMode,\n switchThemeText,\n selectedThemeText,\n onThemeToggle\n }}\n />\n </Drawer>\n\n {/* Notifications */}\n {hasNotifications ?\n <Drawer isOpen={openDrawer === 'notifications'} baseWidth='300px'>\n <NotificationsContainer>\n {notificationsHistory ? <NotificationsHistory {...notificationsHistory} /> : null}\n </NotificationsContainer>\n </Drawer> : null}\n\n {customDrawer && (\n <Drawer isOpen={openDrawer === 'custom'} baseWidth={customDrawer.width ? customDrawer.width : \"200px\"}>\n {customDrawer.customComponent}\n </Drawer>\n )}\n </DrawerPortalWrapper>, document.body)}\n </Container>\n );\n\n};\n\nexport default TopBar;","import React, { useState, HTMLAttributes } from 'react';\n\nexport interface ContextProps {\n selected: string,\n setSelected: (value: string) => void\n}\nexport const TabContext = React.createContext<ContextProps>({\n selected: '',\n setSelected: () => { }\n});\n\ntype Props = HTMLAttributes<HTMLDivElement>\n\nconst Tabs: React.FC<Props> = ({ children }) => {\n const [selected, setSelected] = useState('');\n\n return (\n <TabContext.Provider value={{ selected, setSelected }}>\n {children}\n </TabContext.Provider>\n );\n};\n\nexport { Tabs };","import React, { useContext, useEffect, HTMLAttributes } from 'react';\nimport styled from 'styled-components';\nimport { TabContext, ContextProps } from './Tabs';\n\nexport const TabListWrapper = styled.div`\n display: flex;\n flex-direction: row;\n`;\n\ninterface OwnProps {\n defaultTabId: string\n}\n\ntype Props = OwnProps & HTMLAttributes<HTMLDivElement>\n\nconst TabList: React.FC<Props> = ({ children, defaultTabId}) => {\n const { setSelected }: ContextProps = useContext(TabContext);\n\n useEffect(() => {\n setSelected(defaultTabId);\n }, [defaultTabId, setSelected]);\n\n return (\n <TabListWrapper>\n {children}\n </TabListWrapper>\n );\n};\n\nexport { TabList };","import React, { useContext, HTMLAttributes, useCallback } from 'react';\nimport styled, { css } from 'styled-components';\nimport { TabContext, ContextProps } from '../Tabs';\n\nconst TabComponent = styled.div`\n margin-right: 39px;\n display: flex;\n align-items: center;\n line-height: 20px;\n`;\n\nconst TabLabel = styled.label<{ active: boolean }>`\n height: 40px;\n ${({theme}) => css`\n font-family: ${theme.fontFamily.ui};\n `}\n font-size: 15px;\n font-weight: ${({ active }) => active ? '600' : '500'};\n letter-spacing: 0.09px;\n color: ${({ active }) => active ? '#0097ce' : '#787878'};\n cursor: pointer;\n border-bottom: ${({ active }) => active ? '2px solid #0097ce' : '2px solid transparent'};\n padding-top: 6px;\n padding-bottom: 14px;\n flex-shrink: 0;\n`;\n\ninterface OwnProps {\n tabFor: string\n}\n\ntype Props = OwnProps & HTMLAttributes<HTMLDivElement>\n\nconst Tab: React.FC<Props> = ({ children, tabFor, onClick, ...props }) => {\n const { selected, setSelected }: ContextProps = useContext(TabContext);\n\n const onChangeTab = useCallback((event:React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n onClick && onClick(event);\n setSelected(tabFor);\n }, [onClick, setSelected, tabFor]);\n\n return (\n <TabComponent {...props} onClick={onChangeTab}>\n <TabLabel active={selected === tabFor}>\n {children}\n </TabLabel>\n </TabComponent>\n );\n};\n\nexport { Tab };","import React, { useContext, HTMLAttributes } from 'react';\nimport styled from 'styled-components';\nimport { TabContext, ContextProps } from './Tabs';\n\nconst Container = styled.div`\n`;\n\ninterface OwnProps {\n tabId: string\n}\n\ntype Props = OwnProps & HTMLAttributes<HTMLDivElement>\n\nconst TabContent: React.FC<Props> = ({ children, tabId, ...props }) => {\n const { selected }: ContextProps = useContext(TabContext);\n\n return (\n selected === tabId ?\n <Container {...props}>\n {children}\n </Container> :\n null\n );\n};\n\nexport { TabContent };","import React, { useContext, useCallback } from 'react';\nimport styled, { css } from 'styled-components';\nimport { TabContext, ContextProps } from '../Tabs';\nimport { IconWrapper } from '../../Icons/Icon';\nimport StatusIcon from '../../Icons/StatusIcon';\nimport { resetButtonStyles } from '../../common/index';\nimport { IStatusDot } from '../..';\n\nconst Container = styled.button`\n ${resetButtonStyles}\n flex-basis: auto;\n flex-grow: 1;\n`;\n\nconst LinkTab = styled.div<{ isActive: boolean }>`\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n\n ${({ theme }) => css`\n transition: border ${theme.animation.speed.normal} ${theme.animation.easing.primary.easeInOut};\n border-bottom: 5px solid ${theme.colors.menu.indicator};\n\n ${IconWrapper} {\n [stroke]{\n stroke: ${theme.colors.icons['dimmed']};\n }\n }\n\n &:hover {\n border-bottom-color: ${theme.colors.menu.hover};\n ${IconWrapper} {\n [stroke]{\n stroke: ${theme.colors.menu.hover};\n }\n }\n }\n `};\n\n ${({ isActive, theme }) => isActive && css`\n &, &:hover {\n border-bottom-color: ${theme.colors.menu.active};\n ${IconWrapper} {\n [stroke]{\n stroke: ${theme.colors.menu.active};\n }\n }\n }\n `}\n`;\n\ninterface IMobileTab {\n tabFor: string\n icon: string\n closeId: string\n counter?: number\n status?: IStatusDot\n}\n\nconst MobileTab: React.FC<IMobileTab> = ({ tabFor, icon, closeId, counter, status, ...props }) => {\n const { selected, setSelected }: ContextProps = useContext(TabContext);\n\n const onChangeTab = useCallback((tabId: string) => {\n const newValue = (selected === tabId) ? closeId : tabId;\n setSelected(newValue);\n }, [closeId, selected, setSelected]);\n\n return (\n <Container {...props} onClick={() => onChangeTab(tabFor)}>\n <LinkTab isActive={selected === tabFor}>\n <StatusIcon {...{icon, status, counter}} />\n </LinkTab>\n </Container>\n );\n};\n\nexport { MobileTab };","import React, { useContext, useCallback } from 'react';\nimport { TabContext, ContextProps } from '../Tabs';\nimport styled, { css } from 'styled-components';\nimport Icon, { IconWrapper } from '../../Icons/Icon';\n\nconst Container = styled.div<{ active: boolean }>`\n display: flex;\n align-items: center;\n margin-right: 22px;\n padding-bottom: 7px;\n height: 60px;\n cursor: pointer;\n\n ${({ active }) => active ? css`\n border-bottom: 3px solid hsl(196, 100%, 40%);\n `\n : css`\n border-bottom: 3px solid transparent;\n `};\n ${IconWrapper} {\n margin-left: 2px;\n flex-shrink: 0;\n }\n`;\n\nconst Title = styled.div<{ active: boolean }>`\n font-size: 14px;\n font-family: ${({ theme }) => theme.fontFamily.ui};\n letter-spacing: 0.09px;\n font-weight: 500;\n color: ${({ active }) => active ? 'hsl(196, 100%, 40%)' : 'hsl(0, 0%, 46%)'};\n margin-bottom: 5px;\n flex-shrink: 0;\n white-space: nowrap;\n text-overflow: ellipsis;\n`;\n\n\nconst SubTitle = styled.div`\n font-size: 12px;\n font-family: ${({ theme }) => theme.fontFamily.data};\n font-style: italic;\n color: hsla(195, 10%, 52%, 0.72);\n flex-shrink: 0;\n white-space: nowrap;\n text-overflow: ellipsis;\n`;\n\nconst TextGroup = styled.div`\n margin-left: 12px;\n margin-right: 20px;\n`;\n\nexport interface ITabWithIcon {\n icon: string\n title: string\n subtitle?: string\n tabFor: string\n}\n\nconst TabWithIcon: React.FC<ITabWithIcon> = ({ icon, title, subtitle, tabFor, ...props }) => {\n\n const { selected, setSelected }: ContextProps = useContext(TabContext);\n\n const onChangeTab = useCallback((tabId: string) => {\n setSelected(tabId);\n }, [setSelected]);\n\n const active = selected === tabFor;\n\n return (\n <Container {...{ active }} {...props} onClick={() => onChangeTab(tabFor)}>\n <Icon {...{ icon }} weight='regular' size={15} color={active ? 'primary' : 'dimmed'} />\n <TextGroup>\n <Title {...{ active }}>{title}</Title>\n {subtitle && <SubTitle>{subtitle}</SubTitle>}\n </TextGroup>\n </Container>\n );\n};\n\nexport { TabWithIcon };","import React, { ReactElement } from 'react';\nimport styled from 'styled-components';\nimport { Tabs } from '../Tabs';\nimport { TabList } from '../TabList';\nimport { TabContent } from '../TabContent';\nimport { TabWithIcon, ITabWithIcon } from '../atoms/TabWithIcon';\n\nconst Container = styled.div``;\n\nconst TabListWrapper = styled.div<{ paddingLeft?: string }>`\n padding-top: 10px;\n padding-left: ${({ paddingLeft }) => paddingLeft ? paddingLeft : '87px'};\n box-shadow: 0 -5px 5px 0 hsla(0, 0%, 0%, 0.01);\n border-bottom: 1px solid hsl(0, 0%, 89%);\n overflow-y: auto;\n scrollbar-width: none; /* Firefox */\n -ms-overflow-style: none; /* Internet Explorer 10+ */\n &::-webkit-scrollbar { /* WebKit */\n width: 0;\n height: 0;\n }\n`;\n\nexport interface ITabIcon extends ITabWithIcon {\n customComponent?: ReactElement\n}\n\nexport interface ITabsWithIconBar {\n defaultTabId: string\n tabList: ITabIcon[]\n paddingLeft?: string\n}\n\nconst TabsWithIconBar: React.FC<ITabsWithIconBar> = ({ defaultTabId, tabList, paddingLeft }) => {\n\n return (\n <Container>\n <Tabs>\n <TabListWrapper {...{ paddingLeft }}>\n <TabList {...{ defaultTabId }}>\n {tabList.map(({ icon, title, subtitle, tabFor }) => {\n return (\n <TabWithIcon key={`tabWithIcon-${tabFor}`} {...{ icon, title, subtitle, tabFor }} />\n );\n })}\n </TabList>\n </TabListWrapper>\n\n {tabList.map(({ tabFor, customComponent }) => {\n return (\n <TabContent key={`TabContent-${tabFor}`} tabId={tabFor}>{customComponent}</TabContent>\n );\n }\n )}\n </Tabs>\n </Container>\n );\n};\n\nexport { TabsWithIconBar };","import React, { ButtonHTMLAttributes, useContext } from 'react';\nimport { TabContext, ContextProps } from '../../Tabs/Tabs';\nimport styled, {css} from 'styled-components';\nimport { resetButtonStyles } from '../../common/index';\nimport Icon from '../../Icons/Icon';\nimport { MOBILE_CLOSE_HEIGHT } from './Layout';\n\nconst StyledButton = styled.button`\n ${resetButtonStyles}\n\n ${({theme}) => css`\n font-family: ${theme.fontFamily.ui};\n ${theme.typography.global.mainMenu.menuItem.default};\n ${theme.styles.global.mainMenu.background};\n border-top: 1px solid ${theme.colors.divider};\n `};\n \n height: ${MOBILE_CLOSE_HEIGHT}px;\n position: fixed;\n bottom: 0;\n font-size: 14px;\n outline: none;\n\n width: 100%;\n text-align: center;\n white-space: nowrap;\n padding: 0 40px;\n\n`;\n\nconst IconContainer = styled.div`\n height: inherit;\n position: absolute;\n top: 0;\n left: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n margin: 0 20px;\n\n svg {\n display:block;\n }\n`;\n\nconst TextWrapper = styled.div`\n text-transform: uppercase;\n`;\n\ninterface ICloseProps {\n closeId: string\n closeText?: string\n}\n\ntype IClose = ICloseProps & ButtonHTMLAttributes<HTMLButtonElement>\n\nconst CloseButton: React.FC<IClose> = ({\n closeId,\n closeText = 'CLOSE MENU',\n ...props }) => {\n const { setSelected }: ContextProps = useContext(TabContext);\n\n return (\n <StyledButton\n onClick={() => setSelected(closeId)}\n {...props}\n >\n <IconContainer>\n <Icon icon='CloseCompact' color='dimmed' size={16} />\n </IconContainer>\n <TextWrapper>{closeText}</TextWrapper>\n </StyledButton>\n );\n};\n\nexport default CloseButton;","import React, {useContext} from 'react';\nimport styled from 'styled-components';\nimport { TabContext, ContextProps } from '../../Tabs/Tabs';\n\nimport { MOBILE_NAVBAR_HEIGHT, MOBILE_CLOSE_HEIGHT } from '../atoms/Layout';\n\n//\n// Containers height is full height but header and close button\n//\n\nconst Container = styled.div`\n position: relative;\n min-height: calc(100vh - ${MOBILE_NAVBAR_HEIGHT + MOBILE_CLOSE_HEIGHT }px);\n width: 100%;\n overflow-y: scroll;\n`;\n\nconst ContentWrapper = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n`;\n\ninterface OwnProps {\n closeId: string\n}\n\nconst MobileNavbarContent: React.FC<OwnProps> = ({ closeId, children }) => {\n const { selected }: ContextProps = useContext(TabContext);\n\n return (\n selected === closeId\n ? null\n : (\n <Container>\n <ContentWrapper>\n {children}\n </ContentWrapper>\n </Container>\n )\n );\n};\n\nexport default MobileNavbarContent;","import React, { useCallback, useState, useContext } from 'react';\nimport styled, { css } from 'styled-components';\nimport { useLocation } from 'react-router-dom';\nimport { TabContext, ContextProps } from '../../Tabs/Tabs';\n\nimport { IMenu } from '..';\nimport NavigationItem from '../atoms/NavigationItem';\nimport ContextItem from '../atoms/ContextItem';\nimport { getTopLevelPath } from '../../helpers/index';\n\nconst Container = styled.div``;\n\nconst ItemWrapper = styled.div`\n padding: 14px 0;\n ${({ theme }) => css`\n border-bottom: 1px solid ${theme.colors.divider}\n `};\n`;\n\ninterface IMobileMenu extends IMenu {\n closeId: string\n}\n\nconst MobileMenu: React.FC<IMobileMenu> = ({\n content,\n supportUrl,\n closeId\n}) => {\n\n const [loading, setLoading] = useState<boolean>(true);\n const [focusedContext, setFocusedContext] = useState<number>(0);\n const location = useLocation();\n let checkedInItems: number = 0;\n const { setSelected }: ContextProps = useContext(TabContext);\n\n\n /** Manage which context is open. \n * -1 is the value of a sub menu\n * In this mobile version of the menu will close after selecting an option\n * It will not close if the menu has a submenu to allow it to display the options\n */\n const setFocusedContextCb = useCallback(contextKey => {\n if((contextKey === -1) || (!content.items[contextKey].submenu) ){\n setSelected(closeId);\n }\n\n if(contextKey === -1) { return; }\n\n setFocusedContext(focusedContext !== contextKey ? contextKey : -1);\n\n }, [closeId, content.items, focusedContext, setSelected]);\n\n /** Manage the loading cycle. */\n const readyCallback = useCallback(() => {\n // Basic count of menu items (that need to measure height) that have checked in.\n checkedInItems++;\n if (checkedInItems === content.items.length) {\n setLoading(false);\n }\n }, [checkedInItems, content.items.length]);\n\n const handleCloseMenu = useCallback(() => {\n setSelected(closeId);\n },[closeId, setSelected]);\n\n return (\n <Container>\n {content.items.map((item, key) => {\n return (\n <ItemWrapper key={key} data-key={key}>\n <NavigationItem\n minHeight={30}\n topLevelPath={getTopLevelPath(location.pathname)}\n contextKey={key}\n menuOpen\n submenuOpen={key === focusedContext}\n onClickCallback={setFocusedContextCb}\n {...{ item, loading, focusedContext, readyCallback }}\n />\n </ItemWrapper>\n\n );\n })}\n {supportUrl && (\n <ItemWrapper>\n <ContextItem\n compact\n isActive={false}\n icon='Question'\n title='Help & Support'\n href={supportUrl}\n menuOpen\n onClickCallback={handleCloseMenu}\n />\n </ItemWrapper>)}\n </Container>\n );\n};\n\nexport default MobileMenu;","import React, { useContext } from 'react';\nimport styled from 'styled-components';\nimport { TabContext, ContextProps } from '../../Tabs/Tabs';\n\nimport SvgLogoMark from '../../svg/LogoMark';\nimport {resetButtonStyles} from '../../common/index';\nimport { Link } from 'react-router-dom';\n\nconst Logo = styled(Link)`\n ${resetButtonStyles};\n display: flex;\n flex-basis: 0;\n flex-grow: 1;\n justify-content: center;\n align-items: center;\n object {\n pointer-events: none;\n height: 25px;\n }\n`;\nconst LogoMark = styled.div`\n margin-right: 15px;\n`;\n\nconst SVGObject = styled.object``;\n\ninterface ILogoLink {\n closeId: string\n logoMark?: string,\n home?: string,\n}\n\nconst MobileLogoLink: React.FC<ILogoLink> = ({\n home = \"/\",\n logoMark,\n closeId,\n}) => {\n const { setSelected }: ContextProps = useContext(TabContext);\n\n return(\n <Logo to={home} onClick={() => setSelected(closeId)}>\n <LogoMark>{logoMark ? <SVGObject type='image/svg+xml' data={logoMark} /> : <SvgLogoMark />}</LogoMark>\n </Logo>\n );\n};\n\nexport default MobileLogoLink;","import React, { useCallback, useContext } from 'react';\nimport styled from 'styled-components';\nimport UserMenu from '../molecules/UserMenu';\nimport { ITopBar } from '../index';\nimport { TabContext, ContextProps } from '../../Tabs/Tabs';\n\nconst Container = styled.div`\n background: ${({ theme }) => theme.styles.global.mainMenu.background};\n z-index: 100;\n display: flex;\n flex-direction: column;\n`;\n\ninterface IMobileUserMenu extends ITopBar {\n closeId: string\n}\n\nconst MobileUserMenu: React.FC<IMobileUserMenu> = ({\n closeId,\n hasLanguage,\n hasLogout,\n logoutLink,\n hasCurrentUser,\n userSubmenu,\n userDrawerBespoke,\n loggedInUser,\n onLogout,\n onLanguageToggle\n}) => {\n const { setSelected }: ContextProps = useContext(TabContext);\n\n const handleCloseMenu = useCallback(() => {\n setSelected(closeId);\n },[closeId, setSelected]);\n\n return (\n <Container>\n <UserMenu\n {...{\n hasLanguage,\n hasLogout,\n logoutLink,\n hasCurrentUser,\n userSubmenu,\n userDrawerBespoke,\n loggedInUser,\n onLogout,\n onLanguageToggle,\n }}\n closeOnClick={handleCloseMenu}\n />\n </Container>\n );\n};\n\nexport default MobileUserMenu;","import React from 'react';\nimport styled from 'styled-components';\nimport { Tabs, TabContent, MobileTab } from '../../Tabs/index';\nimport { TabListWrapper, TabList } from '../../Tabs/TabList';\nimport { IMenu, ITopBar, INotificationsHistory } from '..';\nimport CloseButton from '../atoms/CloseButton';\nimport MobileNavbarContainer from '../atoms/MobileNavbarContent';\nimport MobileMenu from './MobileMenu';\nimport MobileLogoLink from '../atoms/MobileLogoLink';\nimport MobileUserMenu from '../molecules/MobileUserMenu';\nimport NotificationsHistory from '../molecules/NotificationsHistory';\nimport { MOBILE_NAVBAR_HEIGHT } from '../atoms/Layout';\n\nconst CLOSE_ID = 'closeMenu';\nconst NOTI_TAB = 'notifications';\nconst USER_TAB= 'user';\nconst MENU_TAB = 'menu';\nconst CUSTOM_TAB = 'custom';\n\nconst Container = styled.nav`\n background-color: ${({theme}) => theme.styles.global.mainMenu.background.backgroundColor};\n position: sticky;\n top: 0;\n left: 0;\n width: 100%;\n z-index: 99;\n`;\n\nconst HeaderContainer = styled.div`\n display: flex;\n flex-direction: row;\n height: ${MOBILE_NAVBAR_HEIGHT}px;\n border-bottom: ${({theme}) => theme.colors.divider} 1px solid;\n\n ${TabListWrapper} {\n flex-basis: 0;\n flex-grow: 3;\n }\n`;\n\ninterface OwnProps {\n closeText?: string\n notificationsHistory?: INotificationsHistory\n}\n\ntype IMobileNavbar = OwnProps & IMenu & ITopBar;\n\nconst MobileNavbar: React.FC<IMobileNavbar> = ({\n content,\n home,\n logoMark,\n supportUrl,\n defaultMenuOpen = true,\n closeText,\n hasLanguage,\n hasLogout,\n logoutLink,\n hasCurrentUser,\n hasNotifications,\n userSubmenu,\n userDrawerBespoke,\n loggedInUser,\n notificationsHistory,\n customDrawer,\n onLogout,\n onLanguageToggle,\n}) => {\n\n return (\n <Container>\n <Tabs>\n <HeaderContainer>\n <MobileLogoLink {...{ home, logoMark }} closeId={CLOSE_ID} />\n <TabList defaultTabId={CLOSE_ID}>\n {customDrawer && <MobileTab {...customDrawer} tabFor={CUSTOM_TAB} closeId={CLOSE_ID} />}\n {hasNotifications? <MobileTab tabFor={NOTI_TAB} icon='Notifications' closeId={CLOSE_ID} /> : null}\n <MobileTab tabFor={USER_TAB} icon='UserProfile' closeId={CLOSE_ID} />\n <MobileTab tabFor={MENU_TAB} icon='Menu' closeId={CLOSE_ID} />\n </TabList>\n </HeaderContainer>\n <MobileNavbarContainer closeId={CLOSE_ID}>\n <TabContent tabId={CUSTOM_TAB}>\n {customDrawer && customDrawer.customComponent}\n </TabContent>\n <TabContent tabId={NOTI_TAB}>\n {notificationsHistory && hasNotifications ? <NotificationsHistory {...notificationsHistory} /> : null}\n </TabContent>\n <TabContent tabId={USER_TAB}>\n <MobileUserMenu\n {...{\n hasLanguage,\n hasLogout,\n logoutLink,\n hasCurrentUser,\n userSubmenu,\n userDrawerBespoke,\n loggedInUser,\n onLogout,\n onLanguageToggle\n }}\n closeId={CLOSE_ID}\n />\n\n </TabContent>\n <TabContent tabId={MENU_TAB}>\n <MobileMenu {...{ content, supportUrl, defaultMenuOpen }} closeId={CLOSE_ID} />\n </TabContent>\n <CloseButton {...{ closeText }} closeId={CLOSE_ID} />\n </MobileNavbarContainer>\n </Tabs>\n </Container>\n );\n};\n\nexport default MobileNavbar;","import React from 'react';\nimport { IMenu, ITopBar} from '..';\nimport { Layout, MainContainer, ContentArea, MobileLayout } from '../atoms/Layout';\nimport MainMenu from '../organisms/MainMenu';\nimport TopBar from '../molecules/TopBar';\nimport MobileNavbar from '../organisms/MobileNavbar';\nimport useBreakpoints from '../../hooks/useBreakpoints';\n\n\ninterface OwnProps {\n maxWidth?: string,\n paddingOverride?: string\n}\n\ntype INavigation = OwnProps & IMenu & ITopBar;\n\nconst GlobalUI: React.FC<INavigation> = ({\n content,\n home,\n openWidth,\n logoMark,\n logoText,\n supportUrl,\n defaultMenuOpen,\n canAlwaysPin,\n paddingOverride,\n maxWidth,\n children,\n ...props\n}) => {\n\n const { isLarge } = useBreakpoints();\n\n return (\n isLarge\n ? (\n <Layout>\n <MainMenu {...{\n content,\n home,\n openWidth,\n logoMark,\n logoText,\n supportUrl,\n defaultMenuOpen,\n canAlwaysPin}\n }\n />\n <MainContainer>\n <TopBar\n {...{...props}}\n />\n <ContentArea {...{maxWidth, paddingOverride}}>\n {children}\n </ContentArea>\n </MainContainer>\n </Layout>\n )\n : (\n <MobileLayout>\n <MobileNavbar\n {...{\n content,\n home,\n logoMark,\n supportUrl,\n defaultMenuOpen,\n ...props\n }\n }\n />\n <ContentArea>\n {children}\n </ContentArea>\n </MobileLayout>\n )\n );\n};\n\nexport default GlobalUI;","import React from 'react';\nimport styled from 'styled-components';\nimport { Link } from 'react-router-dom';\n\nconst Container = styled.div`\n width: 286px;\n border-right: 1px solid hsla(0, 0%, 84%, 50%);\n height: 100%;\n overflow-y: auto;\n overflow-x: hidden;\n display: flex;\n flex-direction: column;\n`;\nconst LogoContainer = styled.div`\n height: 84px;\n color: hsl(205, 7%, 35%);\n border-bottom: 1px solid hsla(0, 0%, 84%, 50%);\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding-top: 18px;\n padding-bottom: 15px;\n`;\nconst LogoTopText = styled.div`\n height: 31px;\n font-family: Monorale;\n font-size: 18px;\n font-weight: 500;\n line-height: 1.72;\n letter-spacing: 4.5px;\n text-align: center;\n`;\nconst LogoBottomText = styled.div`\n height: 19px;\n font-family: Monorale;\n font-size: 16px;\n font-weight: 300;\n line-height: normal;\n letter-spacing: 14.11px;\n text-align: center;\n`;\n\nexport const SidebarBox = styled.div`\n position: relative;\n border-bottom: 1px solid hsla(0, 0%, 84%, 50%);\n padding: 22px 20px 21px 20px;\n`;\nexport const SidebarHeading = styled.div`\n font-size: 14px;\n font-weight: 500;\n letter-spacing: 0.35px;\n color: hsl(0, 0%, 50%);\n margin-bottom: 18px;\n`;\n\nexport const SidebarLinkHeading = styled.div`\n font-size: 14px;\n font-weight: 500;\n letter-spacing: 0.35px;\n color: hsl(0, 0%, 50%);\n`;\n\nexport const BackLink = styled(Link)`\n font-size: 14px;\n font-weight: 500;\n letter-spacing: 0.35px;\n color: hsl(0, 0%, 50%);\n`;\n\nconst SLink = styled(Link)`\n position: absolute;\n right: 30px;\n top: 15px;\n /* width: 80px; */\n /* height: 30px; */\n font-size: 14px;\n font-weight: 600;\n text-align: center;\n color: hsl(0, 0%, 55%);\n border-radius: 3px;\n background-color: hsl(206, 70%, 96%);\n text-decoration: none;\n padding: 7px 20px;\n`;\n\nexport const SidebarLink : React.FC<{title: string; to: string}> = ({title,to}) => {\n return (\n <SidebarBox>\n <SidebarLinkHeading>{title}</SidebarLinkHeading>\n <SLink to={to}>Setup</SLink>\n </SidebarBox>\n );\n};\n\ninterface LogoProps{\n logoTextTop: string;\n logoTextBottom: string;\n}\n\nexport const Logo: React.FC<LogoProps> = ({logoTextTop,logoTextBottom}) => (\n <LogoContainer>\n <LogoTopText>{logoTextTop}</LogoTopText>\n <LogoBottomText>•{logoTextBottom}•</LogoBottomText>\n </LogoContainer>\n);\n\n\nconst Sidebar: React.FC = ({children,...props}) => {\n return (\n <Container {...props}>\n {children}\n </Container>\n );\n};\n\nexport default Sidebar;\n"],"names":["fontFamily","ui","data","dimensions","icons","weights","light","regular","heavy","strong","form","button","xsmall","height","padding","iconSize","small","normal","large","input","outer","width","borderRadius","inner","positions","top","off","neutral","locked","on","global","mainMenu","open","closed","animation","easing","primary","inOut","out","speed","faster","fast","slow","slower","slowest","deviceSize","medium","xlarge","xxlarge","deviceMediaQuery","typography","colors","styles","border","menu","active","hover","divider","feedback","error","info","success","warning","custom","label","fill","contrastLine","stroke","highlightLine","grabHandle","point","grabHandleContrast","grabHandleText","handleBase","handleRingLayer","handleReactiveFill","handleReactiveRing","handleContrastLayer","stopStart","stopColor","stopEnd","themeFallbackHelper","theme","themeFallback","defaultsDeep","wrapperCss","css","IconWrapper","styled","div","IconWrapperForSVG","g","Icon","icon","size","weight","color","forSvgUsage","useTheme","iconWeight","IconSVG","IconSVGs","React","RowCss","ColumnCss","resetButtonStyles","removeAutoFillStyle","EllipsisStyles","IconButton","selected","AlertWrapper","type","feedbackBar","message","pureBase","IconNames","MessageBox","AlertBar","hideCloseButton","useState","dismiss","setDismiss","useEffect","onClick","initAnimation","keyframes","closeAnimation","Container","easeInOut","isClosing","TextButton","MainMessage","Notification","id","isPinned","actionTextButton","closeNow","closeCallback","onTextButtonClick","slideUp","setSlideUp","textClicked","setTextClicked","handleDismiss","useCallback","handleTextClick","animationEnded","mounted","setTimeout","ReactDom","createPortal","onAnimationEnd","document","body","StyledButton","design","easeOut","backgroundColor","disabled","Button","children","props","TextContainer","position","IconContainer","InnerContainer","ButtonWithIcon","iconColor","circumference","radius","c","rotate","BaseCircle","circle","styling","indicators","spinner","base","borderColor","RotatingCircle","r","sizeGuide","Spinner","sizeVal","strokeWidth","circleRadius","viewBox","xmlns","cx","cy","LoadingButton","$loading","LoadingContainer","actionArea","ButtonWithLoading","loading","rest","hoverColor","StyledIconButton","alignment","ActionButtons","buttonsConfig","map","btn","key","ActionContainer","InputActionButton","attrs","FeedbackContainer","FeedbackMessage","FeedbackIcon","StyledInput","fieldState","value","placeholder","InputContainer","hasAction","indexOf","focused","Input","defaultValue","feedbackMessage","actionCallback","actionIcon","postfix","isActionButton","undefined","feedbackIcon","StyledLabel","rightAlign","LabelText","span","Label","htmlFor","labelText","compact","p","padRight","UnitKey","SmallInput","unit","name","className","unitElement","useRef","unitElementWidth","setUnitElementWidth","current","clientWidth","ref","SwitchPosition","intentPosition","left","checked","offset","intentLeft","parseInt","toString","RealInput","SwitchOuter","getPositionKey","switchPos","Off","On","Neutral","Locked","SwitchInner","SpinnerWrapper","themeState","activeTheming","useIntent","Switch","state","leftTheme","rightTheme","onChangeCallback","inputRef","setPosition","setActiveTheming","switchState","setSwitchState","positionSwitch","customOnChange","updateThemeChoice","stateCheck","onChange","defaultChecked","SvgLogoMark","x1","x2","y1","y2","fillRule","rx","d","SvgLogoText","SvgAvatarPlaceholder","strokeLinecap","strokeLinejoin","transform","x","y","CheckMark","CheckboxState","CheckboxOuter","CheckboxInner","visualState","checkbox","unchecked","Indeterminate","indeterminate","Checkbox","isChecked","setIsChecked","setVisualState","e","target","readOnly","InnerRadio","OuterRadio","HiddenInput","RadioButton","currentChecked","required","handleChange","checkedValue","StyledTextArea","textarea","TextArea","SelectWrapper","StyledSelect","select","isCompact","isLabelSameRow","activePlaceholder","SelectField","changeCallback","setPlaceholderStatus","handleOnChange","prev","renderSelect","hidden","isSameRow","text","isInsideRange","min","max","clamp","minValue","maxValue","Math","getShortTextTimeUnit","isTimeUnit","getTopLevelPath","pathname","parts","split","filter","String","length","getImageType","img","dataType","src","substr","includes","isValidImage","file","acceptedImageTypes","uniqueID","Date","now","random","replace","ThumbDiameter","SliderWrapper","Rail","Mark","leftValue","MarkLabel","ThumbWrapper","Thumb","bgColor","GhostThumb","thumbLeftPosition","valueToPercent","nearMark","marks","closest","reduce","curr","abs","getValidMin","getValidMax","round","getMarkAlignment","renderMarks","markList","listTag","listOptions","marksElements","index","push","Fragment","ghostThumbValue","SliderInput","thumbColor","onlyMarkSelect","inputCallback","maxValid","minValid","initValue","selectedValue","setSelectedValue","isGhostActive","setIsGhostActive","thumbValueRef","mark","ghostVal","handleInputChange","lastValue","val","numericVal","prevMark","handleSelectStart","handleSelectEnd","currentValue","list","onMouseUp","onMouseDown","onTouchStart","onTouchEnd","InputFileButton","buttonDesign","buttonSize","fileInputRef","handleFile","files","newFiles","forwardClick","click","Headers","ValueLabel","Unit","ValueTitle","DurationSlider","title","timeUnit","controlledValue","handleSelectedValue","labelValue","getThumbColor","getTitleLevel","PercentageSlider","updateThumbColor","updateTitle","PasswordField","showValue","setShowValue","setActionIcon","newValue","TextField","_type","TextAreaField","DragAndDrop","inDropZone","DropArea","dropCallback","setInDropZone","onDragEnter","preventDefault","stopPropagation","onDragLeave","onDragOver","onDrop","dataTransfer","updateCursorStyle","clientX","clientY","cursorStyle","drawImgValues","canvasHeight","canvasWidth","scale","naturalWidth","naturalHeight","floor","imageDraw","initialCropValues","cropWidth","cropHeight","imgWidth","imgHeight","aspectRatio","aspect","minWidth","minHeight","isLeftMouseButton","mouseButton","buttons","which","updateCropValues","oldSelection","newX","newY","cropLeft","cropTop","updatedLeft","updatedTop","updatedWidth","updatedHeight","diffX","mouseStartX","diffY","mouseStartY","cursorStart","imgLeft","imgTop","isUpdateRequired","areDimensionsDiff","updateCropWithAspect","imgBoundLeft","imgBoundTop","imgBoundWidth","imgBoundHeight","oldDimensions","newValues","isDifferent","CropLineStyle","TopLine","RightLine","BottomLine","LeftLine","resizeSquaresCss","PointN","isResizable","PointNW","PointNE","PointE","PointSE","PointS","PointSW","PointW","CropArea","hasAspectRatio","ToolHeader","TextGroup","mono","ButtonsGroup","PreviewArea","HiddenImage","SelectedArea","viewDimensions","isResizing","CropTool","cancelBtnTxt","cropBtnTxt","imgUrl","onCrop","onClose","onError","isLoading","setIsLoading","_loadDimensions","setLoadDimensions","canvasRef","imgRef","cropRef","drawImgOnCanvas","newImage","canvas","ctx","getContext","newImgDraw","drawImage","newCrop","prevState","handleCrop","cropArea","cropImageData","getImageData","canvasCropped","createElement","cropContext","putImageData","imgType","newImgUrl","toDataURL","handleMouseDown","rect","getBoundingClientRect","posX","posY","newCursorStyle","handleMouseUp","updateSelect","style","handleMouseMove","newDimensions","handleOnMouseLeave","onMouseMove","onMouseLeave","onLoad","crossOrigin","CROP_HEIGHT_AREA","CROP_WIDTH_AREA","CANVAS_HEIGHT","CANVAS_WIDTH","ratio","PHOTO_HEIGHT","PHOTO_WIDTH","PreviewImageGroup","PhotoContainerStyle","PreviewImage","PlaceholderText","NoPhoto","StyledInputFileButton","ButtonsWrapper","AvatarUploader","photoText","buttonText","buttonTextReplace","uploaderCropText","deletePhotoText","cropToolTitle","cropToolCancelTxt","cropToolConfirmTxt","currentImg","hasCrop","onAvatarUpdate","onRemove","avatarImg","setAvatarImg","cropImg","setCropImg","isCropOpen","setIsCropOpen","newFileUrl","fileType","fetch","then","blob","blobFile","File","newFile","handleCropClose","URL","revokeObjectURL","handleFileUpload","prevImg","createObjectURL","handleEdit","fileUrl","handleRemove","alt","AvatarPlaceholder","accept","PlusIcon","PlusIconWrapper","BigIconsSummary","StyledDropArea","InputButtonWrapper","FilesUploadGroup","hasFiles","filters","dropdownContainer","background","Title","Description","getUpdateFiles","allowedFileTypes","newFilesTransfer","DataTransfer","rejectedFilesTransfer","isCorrectType","items","add","result","goodFiles","rejectedFiles","updatedFilesTransfer","fileNamesSet","Set","isAlready","has","AreaUploadManager","description","fileIcons","selectFilesText","addMoreFilesText","customComponent","setFiles","handleFiles","console","log","multiple","FormContainer","spacing","Form","hide","datepicker","metaHeader","Item","IconWrap","TimeColon","InputWrap","passive","pureTop","DateTimeBlock","allowAfterMidnight","hasDate","hasTime","date","setDateCallback","format","displayHours","setDisplayHours","displayMinutes","setDisplayMinutes","setDateHours","endOfDay","set","hours","Number","minutes","seconds","milliseconds","setDateMinutes","isEqual","initializeInterval","day","start","end","TODAY","TODAY_INTERVAL","startOfDay","DateTimeArea","TimeZoneOption","TimeZoneLabel","subOption","TimeZoneValue","CalendarArea","CalendarHeader","CurrentMonth","focusedMonth","focusedYear","PaginateMonth","monthLink","CalBody","CalRow","CalHRow","CalCell","calendar","CalHCell","header","CalCellB","thisMonth","otherMonth","isToday","enDayGuide","jpDayGuide","isDateInterval","DatePicker","dateMode","timeMode","dateTimeTextUpper","dateTimeTextLower","timeZoneTitle","timeZoneValueTitle","hasEmptyValue","updateCallback","initialValue","lang","getInitialValue","selectedRange","setSelectedRange","setFocusedMonth","targetedDate","setTargetedDate","weeksOfMonth","setWeeksOfMonth","isInitialMount","dayGuide","eachWeekOfInterval","startOfMonth","endOfMonth","onCellClick","validRange","updateDay","isAfter","updateStartDate","updateEndDate","addMonths","locale","ja","enUS","week","days","eachDayOfInterval","endOfWeek","cellState","isSameMonth","interval","_hoverDate","isInsideInterval","singleDayRange","intervalToDuration","isWithinInterval","isSameDay","newDate","getHours","getMinutes","getSeconds","getMilliseconds","validInitial","topBorder","Inner","FilterDropdownContainer","FlipWrapper","isSortAscending","filterButton","dimmed","isOpen","hasFlipArrow","inverse","ButtonText","FilterButton","FakeCheckbox","FakeCheckboxInner","CheckMarkWrapper","FakeRadioButton","FakeInnerRadio","FilterOption","optionType","hasBorder","noBackground","searchInput","boxShadow","CrossButton","BasicSearchInput","hasCrossButton","onCrossClick","isFilterItem","item","useClickOutside","elRef","elCallback","callbackRef","handleClickOutside","eve","contains","addEventListener","removeEventListener","ButtonWrapper","ContentBox","openState","getDropPosition","buttonRect","openLeft","window","innerWidth","openTop","bottom","innerHeight","spaceTop","FilterDropHandler","buttonIcon","onToggleOpenCallback","onCloseCallback","setOpenState","buttonWrapperRef","mainRef","handleClose","handleToggleOpen","LoadingText","LoadingBox","loadingText","InnerBox","StyledFilterOption","OptionList","ResultsContainer","ResultCounter","SearchWrapper","EmptyResultText","isValueSelected","isItemSelected","Array","isArray","forEach","element","getNewSelected","validSelected","newSelected","selectedOrderList","maxItems","findIndex","newList","unshift","selectedIndexList","foundItem","find","sort","a","b","selectedIndex","getFilteredList","valueString","toLowerCase","getResultText","template","visible","total","newMessage","FilterDropdown","hasOptionsFilter","searchPlaceholder","maxDisplayedItems","searchResultText","emptyResultText","onSelect","visibleList","setVisibleList","searchText","setSearchText","handleSelection","handleInputFilter","isActive","OrderGroup","OrderButton","isSelected","SortDropdown","descendingText","ascendingText","handleSortSelect","handleOrderSelect","isAscending","MIN_WIDTH","MIN_HEIGHT","DropdownDatePicker","onUpdateCallback","onToggleCallback","pickerValue","isMount","mountedPicker","setMountedPicker","handleUpdateCallback","handleOnClose","handleOnToggle","canReset","fadeInAnimation","SearchInputWrapper","CloseSearchInputWrapper","StyledFilterButton","StyledDropdown","StyledDropdownDatePicker","renderDropdowns","dropdownFilters","showMoreDropdowns","hasShowMore","dropdown","canHide","renderSearchInputs","searchFilters","visibleSearchInputs","handleVisibleSearch","renderDatePickers","datePickerFilters","datePicker","renderAddSearchButtons","searchId","showFieldText","initialSearchFilters","currentVisible","FilterInputs","showMoreText","showLessText","setVisibleSearchInputs","setShowMoreDropdowns","toggleShowMore","newVisible","ResultsTextWrapper","FilterLabel","FilterLabelText","hasIcon","ClearTextButton","RemoveButton","FilterLabelsGroup","validateDateFormat","resultsDateFormat","isFormatValid","tryDate","renderResults","renderLabel","filterName","textLabel","isDateFormatValid","toDateString","FiltersResults","labelLists","totalResults","resultTextTemplate","clearText","onRemoveFilter","onClearAll","filterId","StyledFilterResults","getDisableValue","filtersValues","singleFilter","notNullValues","createDropdownFilters","dropdownsConfig","handleDropdownsSelected","newSelection","newDropdown","createSearchers","searchersConfig","handleSearchers","searchersFilters","searcher","currentTarget","newSearcher","createDatePickers","datePickersConfig","handleDatePickers","datePickersFilters","foundPicker","validInitialValue","newPicker","createLabelResults","foundSearcher","newLabel","foundDropdown","dropdownLabelVal","initFilters","newFilters","validatedSelected","initialSearch","initialDropdown","FilterBar","filtersTitle","setFiltersValues","dropdownsConfigRef","isequal","debounceSearcher","debounce","updatedFilters","foundFilter","handleOnClear","filterElement","handleOnRemoveFilter","selectedFiltered","oldItem","selection","updatedDatePickers","mountConfig","dropdownItem","StatusCounter","status","StatusDot","StatusIcon","counter","HandleTouchReactionKeyframes","HandleMouseReactionKeyframes","HandleBase","svg","lines","HandleRingLayer","maskID","HandleReactiveGroup","touchDragging","mouseDragging","HandleReactiveFill","HandleReactiveRing","HandleContrastLayer","HandleShadowLayer","fillID","GrabHandleIndexGroup","showIndex","StopStart","stop","StopEnd","GrabHandleIndexText","IconGroup","HandleUnit","useAngles","angle","lineSetId","moveCallback","moveEndCB","options","readOnlyHandle","handleInstance","createRef","setTouchDragging","setMouseDragging","touchIndex","setTouchIndex","handleTouchStart","i","touches","touch","parentNode","parentElement","handleTouchEnd","handleTouchMove","pageX","pageY","shadowGradientID","showPointHandle","showPointLabel","pointIndexOffset","onTouchMove","fontSize","ContrastLine","line","HighlightLine","GrabHandle","GrabHandleContrast","GrabHandleGroup","originalRadius","DMCircle","LineUnit","lineMoveCallback","lineMoveStartCallback","showSmallDirectionMark","overrideShowMoveHandle","handleFinderActive","revealSetIndex","showMoveHandle","setIndexOffset","showDirectionMark","hideGrabHandle","grabTouchMove","grabTouchStart","midpoint","directionMarkCoordinate","atan2","angleMode","PI","sin","cos","labelRotate","getDirectionMarkLine","dmCoordinate","textAnchor","dominantBaseline","LineSetContext","createContext","Point","AreaLabelText","AreaLabel","lineSetData","pointsLength","points","Textlen","areaName","LineSet","getCTM","boundaries","onLineMoveEnd","useContext","dispatch","handleAngles","setHandleAngles","handleRelation","handleRadius","handleUsesAngles","enforceBoundaries","handleMoveCallback","pointerPosition","screenCTM","pointer","f","newLineSetData","update","$merge","lineDragStart","handle","xDiff","yDiff","offsetX","offsetY","lineDragUpdate","newPoints","_handle","calcAngle","originX","originY","towardsX","towardsY","degrees","updateHandleAngles","inputHandleData","outputData","nextIndex","nextHandle","handles","showPoint","LoadingOverlay","Frame","transculent","Image","LineUI","onSizeChange","showHandleFinder","showSetIndex","showGrabHandle","fixedImgDimensions","boundaryOffset","setBoundaries","handleFinder","setHandleFinder","loaded","setLoaded","h","w","imgSize","setImgSize","setUnit","frame","initScaleAndBounds","clientHeight","debug","calculateCTM","ctm","getScreenCTM","handlePositionTipShow","handlePositionTipHide","bounds","baseVal","version","onPointerDown","onPointerUp","onPointerLeave","lineSet","lineData","Video","video","transcalent","LineUIVideo","onLoaded","videoOptions","loop","autoPlay","controls","muted","videoRef","videoSize","setVideoSize","videoHeight","videoWidth","onLoadedMetadata","_iteratorSymbol","Symbol","iterator","_asyncIteratorSymbol","asyncIterator","_catch","recover","WebRTCPlayer","enabled","peerAddress","maxConnectionAttempts","rtcConfiguration","setStatus","setError","connectionAttempts","setConnectionAttempts","webSocket","peerConnection","handleIncomingError","closeWebSocket","onIncomingSDP","sdp","localDescription","send","JSON","stringify","Error","createAnswer","answer","setLocalDescription","signalingState","Promise","all","setRemoteDescription","RTCSessionDescription","onIncomingICE","ice","candidate","RTCIceCandidate","addIceCandidate","onServerMessage","startsWith","msg","parse","SyntaxError","createCall","onServerClose","event","closePeerConnection","code","connectToPeer","onServerError","peerId","getPeerId","ws","WebSocket","setInterval","clearInterval","onRemoteTrack","srcObject","streams","pc","RTCPeerConnection","close","WebRTCClient","getMidpoint","pointA","pointB","action","$set","$splice","newPoint","newState","useTitle","area","delimiter","baseTitle","slice","trim","makeTitle","part","h1","pageHeader","mainTitle","AreaTitleCss","areaTitle","AreaTitle","AreaLinkTitle","Link","PageTitle","areaHref","updateDocTitle","hideAreaInDocTitle","to","introduction","IntroductionText","PageHeader","introductionText","MultilineContent","contentArray","MediaBoxWrapper","mediaStyle","isLoaded","hasModalLimits","StyledImage","MediaBox","incomingSrc","mediaType","retryLoading","retryLimit","onErrorCallback","onMediaLoad","retryCount","setRetryCount","setSrc","loadFailed","setLoadFailed","videoValues","randomDelay","count","handleLoad","preload","onCanPlayThrough","modal","overlay","CloseIcon","CloseButton","LightBox","container","Modal","isCloseEnable","closeText","onDismiss","dismissCallback","lightBoxRef","onClickOutside","defaultModalProps","defaultContext","modalProps","setModalProps","newProps","ModalContext","ModalProvider","setProps","Provider","useModal","setModalOpen","newStatus","updateProps","createModal","isModalOpen","videoDefaultOptions","useMediaModal","isMediaUrlValid","videoElement","resolve","reject","oncanplaythrough","isValid","onerror","onload","createMediaModal","mediaModal","isMediaModalOpen","setMediaModalOpen","mediaUrl","hoverZoom","showImage","PlayableDrop","TableRowThumbnail","image","retryImageLoad","setShowImage","imgSrc","setImgSrc","timeoutRef","handleModal","complete","clearTimeout","retryTimeout","retryImage","TypeTableDeviceStatus","useCopyToClipboard","copyToClipboard","str","el","setAttribute","appendChild","getSelection","rangeCount","getRangeAt","execCommand","removeChild","removeAllRanges","addRange","CopyToClipboard","CellContainer","cellStyle","table","columnData","hasCopyButton","hideDivider","tables","rows","UnitText","StatusBlip","TypeTableCell","showUnit","showStatus","isLastRow","href","RowContainer","isEmpty","TypeTableRow","selectable","selectCallback","hasStatus","hasThumbnail","hasTypeIcon","rowData","columnConfig","wrappedSelectCallback","columns","_checked","cell","HeaderTitle","ascending","isSortActive","sortable","TableHeaderTitle","columnId","indexKey","toggleSort","handleClick","colId","HeaderRow","HeaderItem","headerStyle","fixedWidth","TitleItems","GroupTitle","groupName","EmptyTitle","MiddleLine","groupLine","isLastOfGroup","renderGroupHeader","groupTitle","TypeTableHeader","allChecked","isEmptyTable","hasHeaderGroups","defaultAscending","toggleAllCallback","sortCallback","sortSpec","setSortSpec","ascendingState","setAscendingState","toggleAllCallbackWrapper","updatedSort","lastActiveKey","col","sortActive","newAscending","column","allColls","TableContainer","loadingOverlay","EmptyTableBox","TypeTable","emptyTableTitle","emptyTableText","setAllChecked","areAllChecked","every","StyledLoadingButton","StyledLink","EditContainer","EditCell","rowKey","toLink","saveCallback","isEditMode","setIsEditMode","updatedValue","setUpdatedValue","setLoading","handleSave","verifyKeyPress","keyCode","editContainerRef","onClickOutsideEdit","autoFocus","onKeyUp","connection","address","errorMessage","moving","zooming","stateID","direction","usePTZ","socketUrl","imageRefresh","useWebSocket","sendJsonMessage","lastMessage","useReducer","reducer","connect","user","username","pass","password","host","port","method","params","move","z","timeout","zoom","disconnect","getImage","intervalHandler","actions","PTZContext","PTZProvider","Active","Hover","Up","setHover","activeStart","activeEnd","hoverStart","hoverEnd","onMouseEnter","fillOpacity","xlinkHref","Arrow","Down","Left","Right","PTZControl","filterUnits","operator","dx","dy","stdDeviation","in2","values","stopOpacity","k2","k3","mask","ZoomBase","Controls","Base","ZoomOut","ZoomIn","EmptyWithIcon","hasPadding","Notice","NoticeMessage","NoticeTitle","NoticeIcon","NoticeTextGroup","StatusLine","MediaStream","isEmptyWithIcon","noticeIcon","hasNotice","noticeMessage","noticeTitle","emptyIcon","LeftData","hasRightData","RightData","DeviceDataGroup","LeftTitle","hasMarginBottom","LeftSubTitle","SubTitle","PanelMetaData","deviceIcon","leftSubTitle","leftTitle","rightTitle","rightSubTitle","hideIcon","useMemo","CameraPanelWrapper","backgroundImage","hasOnClick","NewComponent","streamProps","panelMetaData","customBottom","panelOnClick","CameraGrid","CameraPanels","panels","CameraPanel","TagWrapper","enableHover","Tag","linkTo","renderTag","TagListWrapper","TagList","tagsConfig","tagProps","DebouncedSearcher","onDebouncedChange","typedValue","setTypedValue","debounceChange","updateChange","updateTyped","LeftButtons","RightButtons","SelectedResults","renderSelected","ActionsBar","finishTextButton","actionButtons","selectedTemplate","totalSelected","totalAvailable","finishCallback","useInterval","callback","delay","savedCallback","tick","useTo","history","useHistory","url","sendNotification","clearNotifications","NotificationContext","notificationList","NotificationProvider","activeNotification","setActiveNotification","showNotification","nextNotification","shift","updateOnClose","displayedNotification","newNotification","validNotification","contextValue","useNotification","usePoll","timeoutIDRef","canceled","pollOnce","useMediaQuery","query","matches","setMatches","useLayoutEffect","mediaQuery","matchMedia","handler","useBreakpoints","breakpoints","isSmall","isMedium","isLarge","isXLarge","isXXLarge","activeScreen","basicContent","ConfirmationModal","leftButtonText","leftButtonDesign","leftButtonCallback","rightButtonDesign","rightButtonText","rightButtonCallback","handlePrimaryBtn","handleSecondaryBtn","MOBILE_CLOSE_HEIGHT","MOBILE_NAVBAR_HEIGHT","Layout","MobileLayout","Content","padBottom","maxWidth","MainContainer","ContentArea","paddingOverride","ContextTitle","ContextIcon","iconBackground","ContextIndicator","ContextActionBaseCSS","StyledAnchor","ExternalIconWrapper","ContextWrapper","menuItem","$menuOpen","ContextActionA","$isActive","ContextActionButton","menuOpen","ContextItem","hasSubmenu","contextKey","submenuOpen","isExternalLink","onClickCallback","internal","menuReducer","openValueStorage","localStorage","getItem","location","hostname","isMenuOpen","defaultMenuOpen","isMenuPinned","canAlwaysPin","canPin","desktopSize","setItem","menuState","useMenu","setMenu","setMenuOpen","setMenuClose","togglePinned","Submenu","ul","SubmenuHeader","SubmenuItemTitle","subheader","SubmenuItemLink","SubmenuItemAnchor","SubmenuItem","li","subItem","SubmenuContainer","ContextContainer","maxHeight","NavigationItem","topLevelPath","readyCallback","submenu","refSubmenu","submenuHeight","setSubmenuHeight","submenus","generateSubmenus","grouping","output","group","Logo","LogoMark","LogoType","SVGObject","object","SVGObjectText","NavigationContainer","MenuFooter","footerBackground","FooterItemContainer","PushContainer","ContainerInner","MainMenu","content","home","logoMark","logoText","keepOpenText","autoHideText","supportUrl","focusedContext","setFocusedContext","useLocation","checkedInItems","autoMenuOpen","pointerType","autoMenuClose","toggleMenuPin","setFocusedContextCb","onPointerEnter","ColumnContainer","DrawerBottomMenu","subTitle","DrawerTop","DrawerBottom","DrawerHeader","h2","CurrentUser","identity","UserOptions","Logout","LinkMenu","LinkMenuItem","LinkMenuItemA","UserMenu","hasLanguage","selectedLanguageText","hasLogout","logoutLink","logoutText","hasCurrentUser","currentUserText","accountOptionText","userSubmenu","userDrawerBespoke","loggedInUser","hasSwitchTheme","isLightMode","switchThemeText","selectedThemeText","onLogout","onLanguageToggle","closeOnClick","onThemeToggle","logoutHandler","assign","handleCloseWhenClick","ImgWrapper","EmptyImg","InfoContainer","Message","TimeMsg","NotificationItem","time","StatusContainer","NotificationWrapper","renderNotifications","NotificationsHistory","read","unread","noNotificationsText","readNotificationsText","unreadNotificationsText","SearchBar","SearchInput","topBar","search","ButtonArea","DrawerToggle","indicator","DrawerPortalWrapper","Drawer","baseWidth","NotificationsContainer","TopBar","hasNotifications","hasSearch","notificationsHistory","customDrawer","openDrawer","setOpenDrawer","toggleDrawers","drawerKey","prevDrawer","TabContext","setSelected","Tabs","TabListWrapper","TabList","defaultTabId","TabComponent","TabLabel","Tab","tabFor","onChangeTab","TabContent","tabId","LinkTab","MobileTab","closeId","TabWithIcon","subtitle","paddingLeft","TabsWithIconBar","tabList","TextWrapper","ContentWrapper","MobileNavbarContent","ItemWrapper","MobileMenu","handleCloseMenu","MobileLogoLink","MobileUserMenu","CLOSE_ID","NOTI_TAB","USER_TAB","MENU_TAB","CUSTOM_TAB","nav","HeaderContainer","MobileNavbar","MobileNavbarContainer","GlobalUI","openWidth","LogoContainer","LogoTopText","LogoBottomText","SidebarBox","SidebarHeading","SidebarLinkHeading","BackLink","SLink","SidebarLink","logoTextTop","logoTextBottom","Sidebar"],"mappings":"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"}
|