{"version":3,"file":"app.acba28e2b62534c78415.bundle.js","mappings":"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AQ,IACR,YAAe,WAEnB,CACI,KAAQ,IACR,YAAe,WAEnB,CACI,KAAQ,IACR,YAAe,WAEnB,CACI,KAAQ,IACR,YAAe,WAEnB,CACI,KAAQ,IACR,YAAe,WAEnB,CACI,KAAQ,IACR,YAAe,WAEnB,CACI,KAAQ,KACR,YAAe,WAEnB,CACI,KAAQ,KACR,YAAe,WAEnB,CACI,KAAQ,KACR,YAAe,WAEnB,CACI,KAAQ,KACR,YAAe,WAEnB,CACI,KAAQ,KACR,YAAe,WAEnB,CACI,KAAQ,KACR,YAAe,WAEnB,CACI,KAAQ,KACR,YAAe,WAEnB,CACI,KAAQ,KACR,YAAe,WAEnB,CACI,KAAQ,KACR,YAAe,WAEnB,CACI,KAAQ,KACR,YAAe,WAEnB,CACI,KAAQ,KACR,YAAe,WAEnB,CACI,KAAQ,KACR,YAAe,WAEnB,CACI,KAAQ,KACR,YAAe,WAEnB,CACI,KAAQ,KACR,YAAe,WAEnB,CACI,KAAQ,KACR,YAAe,WAEnB,CACI,KAAQ,KACR,YAAe,WAEnB,CACI,KAAQ,KACR,YAAe,WAEnB,CACI,KAAQ,KACR,YAAe,WAEnB,CACI,KAAQ,KACR,YAAe,WAEnB,CACI,KAAQ,KACR,YAAe,WAEnB,CACI,KAAQ,KACR,YAAe,WAEnB,CACI,KAAQ,KACR,YAAe,WAEnB,CACI,KAAQ,KACR,YAAe,WAEnB,CACI,KAAQ,KACR,YAAe,WAEnB,CACI,KAAQ,KACR,YAAe,WAEnB,CACI,KAAQ,KACR,YAAe,WAEnB,CACI,KAAQ,KACR,YAAe,WAEnB,CACI,KAAQ,KACR,YAAe,WAEnB,CACI,KAAQ,KACR,YAAe,WAEnB,CACI,KAAQ,KACR,YAAe,WAEnB,CACI,KAAQ,KACR,YAAe,WAEnB,CACI,KAAQ,KACR,YAAe,WAEnB,CACI,KAAQ,KACR,YAAe,WAEnB,CACI,KAAQ,KACR,YAAe,WAEnB,CACI,KAAQ,KACR,YAAe,WAEnB,CACI,KAAQ,KACR,YAAe,WAEnB,CACI,KAAQ,KACR,YAAe,WAEnB,CACI,KAAQ,KACR,YAAe,WAEnB,CACI,KAAQ,KACR,YAAe,WAEnB,CACI,KAAQ,KACR,YAAe,WAEnB,CACI,KAAQ,K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","sources":["webpack://wpi/./enterprise/http/errors/NetworkError.js","webpack://wpi/./enterprise/http/errors/ResponseFormatError.js","webpack://wpi/./enterprise/http/request.js","webpack://wpi/./common/util/ResourceCollection/requestActionCreator.js","webpack://wpi/./common/util/ResourceCollection/actions.js","webpack://wpi/./common/data/RequestStatus.js","webpack://wpi/./common/util/ResourceCollection/requestReducer.js","webpack://wpi/./common/util/reducerUtils/actionFilter.js","webpack://wpi/./common/util/reducerUtils/actionMap.js","webpack://wpi/./common/util/ResourceCollection/resourceCollectionReducer.js","webpack://wpi/./common/util/ResourceCollection/resourceReducer.js","webpack://wpi/./enterprise/redux/actions/getHierarchy.js","webpack://wpi/./enterprise/redux/actions/putHierarchy.js","webpack://wpi/./enterprise/redux/actions/getSessionUser.js","webpack://wpi/./enterprise/redux/actions/getUser.js","webpack://wpi/./enterprise/redux/actions/getUsers.js","webpack://wpi/./enterprise/redux/actions/getSupportUsers.js","webpack://wpi/./enterprise/redux/actions/sortSupportUsers.js","webpack://wpi/./enterprise/redux/actions/deleteSupportUser.js","webpack://wpi/./enterprise/redux/actions/patchSupportUser.js","webpack://wpi/./enterprise/redux/actions/getEnvironment.js","webpack://wpi/./enterprise/redux/actions/initApp.js","webpack://wpi/./enterprise/redux/actions/login.js","webpack://wpi/./enterprise/redux/actions/logout.js","webpack://wpi/./enterprise/redux/actions/patchSessionUser.js","webpack://wpi/./enterprise/redux/actions/patchUser.js","webpack://wpi/./enterprise/redux/actions/getOrganization.js","webpack://wpi/./enterprise/redux/actions/patchOrganization.js","webpack://wpi/./enterprise/redux/actions/getAlerts.js","webpack://wpi/./enterprise/redux/actions/patchAlerts.js","webpack://wpi/./enterprise/redux/actions/getDeviceSubscriptions.js","webpack://wpi/./enterprise/redux/actions/patchDeviceSubscriptions.js","webpack://wpi/./enterprise/redux/actions/getAlertWindow.js","webpack://wpi/./enterprise/redux/actions/patchAlertWindow.js","webpack://wpi/./enterprise/redux/actions/getVersion.js","webpack://wpi/./enterprise/redux/actions/postEmailTemplate.js","webpack://wpi/./enterprise/redux/actions/patchEmailTemplate.js","webpack://wpi/./enterprise/redux/actions/getEmailTemplates.js","webpack://wpi/./enterprise/redux/actions/deleteEmailTemplate.js","webpack://wpi/./enterprise/redux/actions/getEmailSubscriptions.js","webpack://wpi/./enterprise/redux/actions/patchEmailSubscriptions.js","webpack://wpi/./enterprise/redux/actions/getMetricThresholds.js","webpack://wpi/./enterprise/redux/actions/putMetricThresholds.js","webpack://wpi/./common/providers/LocaleProvider.js","webpack://wpi/./enterprise/components/typography/typography.js","webpack://wpi/./enterprise/fonts/vornefont/style.css?f0a8","webpack://wpi/./enterprise/components/vorne-icon/VorneIcon.js","webpack://wpi/./enterprise/components/loading-indicator/LoadingIndicator.js","webpack://wpi/./enterprise/components/notice/Notice.js","webpack://wpi/./enterprise/components/notice/ErrorNotice.js","webpack://wpi/./enterprise/components/loading-indicator/ErrorLoadingMessage.js","webpack://wpi/./enterprise/components/loading-indicator/LoadingWrapper.js","webpack://wpi/./enterprise/components/util/propTypesUtils.js","webpack://wpi/./enterprise/components/button/ButtonLike.js","webpack://wpi/./enterprise/components/button/ButtonText.js","webpack://wpi/./enterprise/components/button/Button.js","webpack://wpi/./enterprise/components/util/reactUtils.js","webpack://wpi/./enterprise/components/button/TextButton.js","webpack://wpi/./enterprise/components/button/ContainedButton.js","webpack://wpi/./enterprise/components/form-element/FormElementContext.js","webpack://wpi/./enterprise/components/form-element/FormElement.js","webpack://wpi/./enterprise/components/form-element/withFormElementContext.js","webpack://wpi/./enterprise/components/text-input/TextInputField.js","webpack://wpi/./enterprise/components/form-element/FormElementLabel.js","webpack://wpi/./enterprise/components/text-input/TextInputLabel.js","webpack://wpi/./enterprise/components/form-element/FormElementHelperText.js","webpack://wpi/./common/util/uniqueId.js","webpack://wpi/./enterprise/components/text-input/TextInput.js","webpack://wpi/./enterprise/components/common/common.js","webpack://wpi/./enterprise/components/button/OutlinedButton.js","webpack://wpi/./common/components/Portal/Portal.js","webpack://wpi/./common/components/Portal/Mask.js","webpack://wpi/./common/components/typography/index.js","webpack://wpi/./common/components/Button/ButtonBase.js","webpack://wpi/./common/font/fontawesome/css/font-awesome.css?8ddc","webpack://wpi/./common/font/vorne-icon/style.scss?5da7","webpack://wpi/./common/components/Icon/Icon.js","webpack://wpi/./common/components/Icon/index.js","webpack://wpi/./common/hooks/useUniqueId.js","webpack://wpi/./common/components/ModalWindow/ModalWindow.js","webpack://wpi/./common/components/Button/Button.js","webpack://wpi/./common/components/Button/index.js","webpack://wpi/./common/hooks/useNavigationPrevention.js","webpack://wpi/./enterprise/components/form/FormError.js","webpack://wpi/./enterprise/components/form/Form.js","webpack://wpi/./enterprise/components/login-form/LoginForm.js","webpack://wpi/./enterprise/components/login-form/LogoutForm.js","webpack://wpi/./enterprise/redux/reducers/session.js","webpack://wpi/./enterprise/components/login-form/LoginLogoutForm.js","webpack://wpi/./enterprise/components/login-form/LoginFormContainer.js","webpack://wpi/./enterprise/fonts/fontawesome/css/font-awesome.css?6495","webpack://wpi/./enterprise/components/icon/FaIcon.js","webpack://wpi/./enterprise/components/header/internal/IconLink.js","webpack://wpi/./enterprise/components/header/internal/main-menu/MainMenuIconLink.js","webpack://wpi/./enterprise/components/header/internal/main-menu/MainMenuMobileIconLink.js","webpack://wpi/./enterprise/components/app/roles.js","webpack://wpi/./enterprise/components/header/internal/navigation-menu/NavSeparator.js","webpack://wpi/./enterprise/components/header/internal/navigation-menu/NavLink.js","webpack://wpi/./enterprise/components/header/internal/navigation-menu/NavItem.js","webpack://wpi/./enterprise/components/header/internal/navigation-menu/NavSubMenu.js","webpack://wpi/./enterprise/components/header/internal/navigation-menu/NavMenu.js","webpack://wpi/./enterprise/components/header/internal/navigation-menu/StaticNavMenu.js","webpack://wpi/./enterprise/components/header/internal/navigation-menu/MobileNavMenuNode.js","webpack://wpi/./enterprise/components/header/internal/navigation-menu/MobileNavMenu.js","webpack://wpi/./enterprise/components/header/internal/navigation-menu/filterNavItems.js","webpack://wpi/./enterprise/components/header/internal/main-menu/MainMenu.js","webpack://wpi/./enterprise/components/header/internal/config-menu/ConfigMenu.js","webpack://wpi/./enterprise/components/header/internal/support-menu/SupportMenu.js","webpack://wpi/./common/util/DisplayMode.js","webpack://wpi/./enterprise/components/header/internal/HeaderLogoIcon.js","webpack://wpi/./enterprise/components/dropdown/internal/DropdownContext.js","webpack://wpi/./enterprise/components/dropdown/Dropdown.js","webpack://wpi/./enterprise/components/dropdown/internal/DropdownContentBox.js","webpack://wpi/./enterprise/components/dropdown/DropdownContent.js","webpack://wpi/./enterprise/components/dropdown/FixedDropdownContent.js","webpack://wpi/./enterprise/components/header/Header.js","webpack://wpi/./enterprise/components/footer/Footer.js","webpack://wpi/./common/theme/default.js","webpack://wpi/./enterprise/components/pages/loading/LoadingPage.js","webpack://wpi/./enterprise/components/page/PageTitle.js","webpack://wpi/./enterprise/components/page/ConfigPageTitle.js","webpack://wpi/./enterprise/components/page/PageDescription.js","webpack://wpi/./enterprise/components/page/PageContentStandard.js","webpack://wpi/./enterprise/components/page/PageContentWide.js","webpack://wpi/./enterprise/components/page/PageContentFull.js","webpack://wpi/./enterprise/components/page/PageFrame.js","webpack://wpi/./enterprise/components/page/Page.js","webpack://wpi/./enterprise/components/pages/forbidden/ForbiddenPage.js","webpack://wpi/./enterprise/components/app/PrivateRoute.js","webpack://wpi/./enterprise/components/app/SupportRoute.js","webpack://wpi/./enterprise/components/app/StrictlyPublicRoute.js","webpack://wpi/./enterprise/components/app/defaultPages.js","webpack://wpi/./enterprise/components/pages/home/HomePage.js","webpack://wpi/./enterprise/components/pages/invalid-url/InvalidUrlPage.js","webpack://wpi/./enterprise/components/popup/PopupLayer.js","webpack://wpi/./enterprise/components/popup/PopupMask.js","webpack://wpi/./enterprise/components/select/internal/SelectOptionsPopup.js","webpack://wpi/./enterprise/components/select/SelectOption.js","webpack://wpi/./enterprise/components/select/SelectGroup.js","webpack://wpi/./enterprise/components/checkbox/internal/BaseCheckboxInput.js","webpack://wpi/./enterprise/components/checkbox/ThemedCheckboxInput.js","webpack://wpi/./enterprise/components/select/internal/SelectOptionWrapper.js","webpack://wpi/./enterprise/components/select/internal/SelectOpenButton.js","webpack://wpi/./enterprise/components/select/SelectOptionContent.js","webpack://wpi/./enterprise/components/select/SelectInput.js","webpack://wpi/./enterprise/components/timezone/TimezoneSelect.js","webpack://wpi/./enterprise/components/timezone/TimezoneInput.js","webpack://wpi/./enterprise/components/password/UnmaskablePasswordInput.js","webpack://wpi/./enterprise/components/password/PasswordRulesValidation.js","webpack://wpi/./enterprise/components/util/validationUtils.js","webpack://wpi/./enterprise/components/pages/create-account/internal/CreateAccountValidation.js","webpack://wpi/./common/util/FormUtils.js","webpack://wpi/./enterprise/components/util/cancelablePromise.js","webpack://wpi/./enterprise/components/form/FormController.js","webpack://wpi/./enterprise/components/pages/create-account/internal/CreateAccountForm.js","webpack://wpi/./enterprise/components/data-use-description/DataUseDescription.js","webpack://wpi/./enterprise/components/pages/create-account/internal/CreateAccountSuccessPage.js","webpack://wpi/./enterprise/components/pages/create-account/CreateAccountPage.js","webpack://wpi/./enterprise/components/hierarchy-editor/HierarchyNodeType.js","webpack://wpi/./enterprise/redux/reducers/hierarchy.js","webpack://wpi/./enterprise/components/hierarchy-editor/GroupedDragDropList.js","webpack://wpi/./enterprise/components/hierarchy-editor/HierarchyEditor.js","webpack://wpi/./enterprise/components/hierarchy-editor/AddNodeDropdown.js","webpack://wpi/./enterprise/components/list/ListItem.js","webpack://wpi/./enterprise/components/list/ListItemText.js","webpack://wpi/./enterprise/system/versions.js","webpack://wpi/./common/util/ParamTypes/internal/paramTypeWrapper.js","webpack://wpi/./common/util/ParamTypes/internal/basicTypes.js","webpack://wpi/./common/util/ParamTypes/internal/testType.js","webpack://wpi/./common/util/ParamTypes/internal/exactly.js","webpack://wpi/./common/util/ParamTypes/ParamTypes.js","webpack://wpi/./common/util/ParamTypes/internal/shape.js","webpack://wpi/./common/util/ParamTypes/internal/oneOf.js","webpack://wpi/./common/util/ParamTypes/internal/oneOfType.js","webpack://wpi/./common/util/ParamTypes/internal/arrayOf.js","webpack://wpi/./common/util/ParamTypes/internal/objectOf.js","webpack://wpi/./common/util/domUtils.js","webpack://wpi/./common/components/Dropdown/DropdownWindow.js","webpack://wpi/./common/components/Dropdown/Dropdown.js","webpack://wpi/./common/components/Checkbox/CheckboxInput.js","webpack://wpi/./common/components/SelectList/internal/SelectOptionWrapper.js","webpack://wpi/./common/util/propTypeHelpers.js","webpack://wpi/./common/components/SelectList/SelectSeparator.js","webpack://wpi/./common/components/SelectList/SelectOptionGroup.js","webpack://wpi/./common/components/SelectList/CollapsibleSelectOptionGroup.js","webpack://wpi/./common/components/SelectList/SelectList.js","webpack://wpi/./common/components/TextField/TextField.js","webpack://wpi/./common/components/TextField/index.js","webpack://wpi/./common/components/SearchField/SearchField.js","webpack://wpi/./common/components/SearchField/index.js","webpack://wpi/./common/hooks/useSearchBox.js","webpack://wpi/./common/components/SelectList/SearchableSelectList.js","webpack://wpi/./common/components/EnterpriseHierarchySelectList/internal/HierarchyListOption.js","webpack://wpi/./common/components/EnterpriseHierarchySelectList/EnterpriseHierarchySelectList.js","webpack://wpi/./common/components/EnterpriseHierarchySelectList/index.js","webpack://wpi/./enterprise/components/enterprise-hierarchy-select/EnterpriseHierarchySelectInput.js","webpack://wpi/./enterprise/components/form-element/useFormElementContext.js","webpack://wpi/./enterprise/components/enterprise-hierarchy-select/EnterpriseHierarchySelect.js","webpack://wpi/./enterprise/components/pages/devices/DeviceItem.js","webpack://wpi/./enterprise/components/button/IconButton.js","webpack://wpi/./enterprise/components/icon/SvgIcon.js","webpack://wpi/./enterprise/components/icon/TrashIcon.js","webpack://wpi/./enterprise/components/hierarchy-editor/HierarchyNodeEditor.js","webpack://wpi/./enterprise/components/hierarchy-editor/EnterpriseHierarchyEditor.js","webpack://wpi/./enterprise/components/hierarchy-editor/EnterpriseHierarchyEditorValidation.js","webpack://wpi/./enterprise/components/pages/devices/EnterpriseHierarchyForm.js","webpack://wpi/./enterprise/components/pages/devices/DevicesPage.js","webpack://wpi/./enterprise/components/pages/xlconnect/XLConnectPage.js","webpack://wpi/./enterprise/components/role-select/RoleSelect.js","webpack://wpi/./enterprise/components/loading-indicator/RequestLoadingWrapper.js","webpack://wpi/./enterprise/components/pages/add-user/AddUserPage.js","webpack://wpi/./enterprise/components/notice/SuccessNotice.js","webpack://wpi/./enterprise/components/pages/setup-new-user/SetPasswordForm.js","webpack://wpi/./enterprise/components/pages/setup-new-user/SetPasswordValidation.js","webpack://wpi/./enterprise/components/pages/setup-new-user/SetupNewUserPage.js","webpack://wpi/./enterprise/redux/actions/updatePassword.js","webpack://wpi/./enterprise/components/pages/reset-password/ResetPasswordPage.js","webpack://wpi/./enterprise/components/pages/forgot-password/ForgotPasswordForm.js","webpack://wpi/./enterprise/components/pages/forgot-password/ForgotPasswordPage.js","webpack://wpi/./enterprise/redux/reducers/users.js","webpack://wpi/./enterprise/components/loading-indicator/MultiRequestLoadingWrapper.js","webpack://wpi/./enterprise/components/pages/edit-user/internal/ResendWelcomeButton.js","webpack://wpi/./enterprise/components/checkbox/CheckboxFormElement.js","webpack://wpi/./enterprise/components/notice/WarningNotice.js","webpack://wpi/./enterprise/components/table/TableHeaderColumn.js","webpack://wpi/./enterprise/components/table/TableHeaderRow.js","webpack://wpi/./enterprise/components/table/TableHeader.js","webpack://wpi/./enterprise/components/table/TableColumn.js","webpack://wpi/./enterprise/components/table/TableErrorColumn.js","webpack://wpi/./enterprise/components/table/TableRow.js","webpack://wpi/./enterprise/components/table/TableErrorRow.js","webpack://wpi/./enterprise/components/table/TableBody.js","webpack://wpi/./enterprise/components/table/Table.js","webpack://wpi/./enterprise/components/pages/edit-user/internal/UserEditor.js","webpack://wpi/./enterprise/components/pages/edit-user/internal/UserEditorValidation.js","webpack://wpi/./enterprise/components/pages/edit-user/internal/EditUserForm.js","webpack://wpi/./enterprise/components/pages/edit-user/EditUserPage.js","webpack://wpi/./enterprise/components/pages/edit-user/internal/PrimaryEmailEditor.js","webpack://wpi/./enterprise/components/text/SectionDescription.js","webpack://wpi/./enterprise/components/pages/edit-user/internal/sectionDescriptions.js","webpack://wpi/./enterprise/components/popup/Popup.js","webpack://wpi/./enterprise/components/popup/PopupWindow.js","webpack://wpi/./enterprise/components/pages/edit-user/internal/VerificationNotice.js","webpack://wpi/./enterprise/components/pages/edit-user/internal/PendingEmailEditor.js","webpack://wpi/./enterprise/components/pages/edit-user/internal/SessionUserEditorValidation.js","webpack://wpi/./enterprise/components/pages/edit-user/internal/PrimaryEmailForm.js","webpack://wpi/./enterprise/components/pages/edit-user/internal/SmsEmailEditor.js","webpack://wpi/./enterprise/components/pages/edit-user/internal/SmsEmailForm.js","webpack://wpi/./enterprise/components/password/ChangePasswordControl.js","webpack://wpi/./enterprise/components/pages/edit-user/internal/SessionUserEditor.js","webpack://wpi/./enterprise/components/pages/edit-user/internal/SessionUserForm.js","webpack://wpi/./enterprise/redux/actions/verifyEmailResend.js","webpack://wpi/./enterprise/redux/actions/verifySmsEmailResend.js","webpack://wpi/./enterprise/components/pages/edit-user/EditSessionUserPage.js","webpack://wpi/./enterprise/components/list/List.js","webpack://wpi/./enterprise/components/list/ListItemRightComponent.js","webpack://wpi/./enterprise/components/user-list/UserListItem.js","webpack://wpi/./enterprise/components/pages/users/UsersPage.js","webpack://wpi/./enterprise/components/organization-editor/OrganizationEditor.js","webpack://wpi/./enterprise/components/pages/organization/OrganizationPage.js","webpack://wpi/./enterprise/components/organization-editor/OrganizationEditorValidation.js","webpack://wpi/./enterprise/components/pages/alerts-edit/FirstSelectInput.js","webpack://wpi/./enterprise/system/metrics.js","webpack://wpi/./enterprise/components/number-input/IntegerInputField.js","webpack://wpi/./enterprise/components/util/didPropsChange.js","webpack://wpi/./enterprise/components/pages/alerts-edit/MetricAlertEditor.js","webpack://wpi/./enterprise/system/processStates.js","webpack://wpi/./enterprise/components/pages/alerts-edit/ProcessStateDurationAlertEditor.js","webpack://wpi/./enterprise/components/pages/alerts-edit/ProcessStateTargetTimeAlertEditor.js","webpack://wpi/./enterprise/components/pages/alerts-edit/AlertsEditorSection.js","webpack://wpi/./enterprise/components/list/ListItemSecondaryAction.js","webpack://wpi/./enterprise/components/pages/alerts-edit/AlertItemDeleteButton.js","webpack://wpi/./enterprise/components/pages/alerts-edit/AlertItemSubscriberList.js","webpack://wpi/./enterprise/components/pages/alerts-edit/AlertItem.js","webpack://wpi/./enterprise/components/pages/alerts-edit/AlertsEditor.js","webpack://wpi/./enterprise/components/pages/alerts-edit/MetricAlertValidation.js","webpack://wpi/./enterprise/components/pages/alerts-edit/ProcessStateDurationAlertValidation.js","webpack://wpi/./enterprise/components/pages/alerts-edit/ProcessStateTargetTimeAlertValidation.js","webpack://wpi/./enterprise/components/pages/alerts-edit/EditAlertsForm.js","webpack://wpi/./enterprise/components/pages/alerts-edit/AlertsEditorValidation.js","webpack://wpi/./enterprise/components/pages/alerts-edit/EditAlertsPage.js","webpack://wpi/./common/components/SelectList/BasicSelectOption.js","webpack://wpi/./common/components/SelectList/index.js","webpack://wpi/./common/components/SelectList/BasicSelectList.js","webpack://wpi/./common/components/LiveControlBar/LiveControlSeparator.js","webpack://wpi/./common/components/IconButton/IconSizeProp.js","webpack://wpi/./common/components/IconButton/IconButton.js","webpack://wpi/./common/components/IconButton/index.js","webpack://wpi/./common/components/LiveControlBar/LiveControlIcon.js","webpack://wpi/./common/components/LiveControlBar/internal/LiveControlOverflowMenuItem.js","webpack://wpi/./common/hooks/useHover.js","webpack://wpi/./common/hooks/useDelayedHover.js","webpack://wpi/./common/components/Tooltip/Tooltip.js","webpack://wpi/./common/components/Tooltip/TouchableTooltipTarget.js","webpack://wpi/./common/components/Tooltip/index.js","webpack://wpi/./common/components/LiveControlBar/LiveControl.js","webpack://wpi/./common/components/LiveControlBar/LiveControlDropdownHeader.js","webpack://wpi/./common/components/LiveControlBar/LiveControlDropdownLayout.js","webpack://wpi/./common/components/LiveControlBar/internal/LiveControlOverflowMenu.js","webpack://wpi/./common/components/MenuToolbar/hooks.js","webpack://wpi/./common/components/LiveControlBar/LiveControlBar.js","webpack://wpi/./common/components/LiveControlBar/index.js","webpack://wpi/./common/components/SelectList/SelectDisplay.js","webpack://wpi/./common/components/SelectList/SelectDropdownButton.js","webpack://wpi/./common/components/BasicSelectField/BasicSelectField.js","webpack://wpi/./common/components/ListButton/ListButton.js","webpack://wpi/./common/components/ListButton/index.js","webpack://wpi/./common/util/cssSnippets.js","webpack://wpi/./common/components/widgets/TableWidget/TableColumnControl/DraggableFieldItem.js","webpack://wpi/./common/components/DraggableList/DraggableListItem.js","webpack://wpi/./common/components/DraggableList/TrashCanDrop.js","webpack://wpi/./common/components/DraggableList/TrashCan.js","webpack://wpi/./common/components/DraggableList/DraggableListWithTrashCan.js","webpack://wpi/./common/components/DraggableList/DraggableList.js","webpack://wpi/./common/components/InfoCircle/InfoCircle.js","webpack://wpi/./common/components/InfoCircle/index.js","webpack://wpi/./common/components/Chip/Chip.js","webpack://wpi/./common/components/Chip/DraggableChip.js","webpack://wpi/./common/components/Checkbox/Checkbox.js","webpack://wpi/./common/components/Checkbox/index.js","webpack://wpi/./common/providers/TranslationProvider.js","webpack://wpi/./common/hooks/useMemoizedArgs.js","webpack://wpi/./common/hooks/useTranslation.js","webpack://wpi/./common/components/LiveControls/FieldSelectControl/FieldSelectListUtil.js","webpack://wpi/./common/components/LiveControls/FieldSelectControl/FieldSelectControl.js","webpack://wpi/./common/components/LiveControls/FieldSelectControl/index.js","webpack://wpi/./common/components/CategorySelectList/CategorySelectList.js","webpack://wpi/./common/components/CategorySelectList/index.js","webpack://wpi/./common/components/FieldBuilderTypeSelect/FieldBuilderTypeSelect.js","webpack://wpi/./common/components/FieldBuilder/FieldBuilderSelect.js","webpack://wpi/./common/components/FieldBuilder/FieldBuilder.js","webpack://wpi/./common/components/ColumnControl/mergeMetricAndMetricSet.js","webpack://wpi/./common/components/ColumnControl/MetricAndMetricSetOption.js","webpack://wpi/./common/components/RadioButton/RadioButton.js","webpack://wpi/./common/components/RadioButton/RadioButtonGroup.js","webpack://wpi/./common/components/Error/InlineError.js","webpack://wpi/./common/util/language/math.js","webpack://wpi/./common/util/language/string.js","webpack://wpi/./common/util/language/date.js","webpack://wpi/./common/data/date/OffsetDate.js","webpack://wpi/./common/data/date/ProductionDay.js","webpack://wpi/./common/util/format.js","webpack://wpi/./common/util/formatDuration/DurationFormatter.js","webpack://wpi/./common/util/formatDuration/index.js","webpack://wpi/./common/data/defaultFormatters.js","webpack://wpi/./common/types/Filters/Filters.js","webpack://wpi/./common/components/widgets/TableWidget/TableColumnControl/CommentListColumnSelector.js","webpack://wpi/./common/components/widgets/TableWidget/TableColumnControl/MetricListColumnSelect.js","webpack://wpi/./common/components/NoDataMessage/NoDataMessage.js","webpack://wpi/./common/util/MetricListColumnConstants.js","webpack://wpi/./common/components/widgets/TableWidget/TableColumnControl/MetricListColumnEditor.js","webpack://wpi/./common/components/widgets/TableWidget/TableColumnControl/AttentionListColumnSelector.js","webpack://wpi/./common/components/widgets/TableWidget/tableWidgetConstants.js","webpack://wpi/./common/components/SparkVisualization/SparkDimensionConstants.js","webpack://wpi/./common/components/NumberField/NumberField.js","webpack://wpi/./common/components/NumberField/index.js","webpack://wpi/./common/components/MetricSelectField/MetricSelectField.js","webpack://wpi/./common/components/MetricSelectField/index.js","webpack://wpi/./common/components/CategorySelectList/CategorySelectField.js","webpack://wpi/./common/data/validateNumber.js","webpack://wpi/./common/components/ColumnControl/SparkDimensionColumnSelector.js","webpack://wpi/./common/components/widgets/TableWidget/TableColumnControl/TableFieldsOption.js","webpack://wpi/./common/components/widgets/TableWidget/TableColumnControl/TableSelectedFieldsOption.js","webpack://wpi/./common/hooks/useStackHistory.js","webpack://wpi/./common/components/LiveControlBar/useValidationState.js","webpack://wpi/./common/components/LiveControlBar/InvalidLiveControlDialog.js","webpack://wpi/./common/components/widgets/TableWidget/TableColumnControl/TableColumnControl.js","webpack://wpi/./common/components/widgets/TableWidget/TableColumnControl/index.js","webpack://wpi/./enterprise/components/pages/email-templates/ChannelSchema.js","webpack://wpi/./common/util/ParamTypes/index.js","webpack://wpi/./common/components/FormattedDatum/ErrorIndicator.js","webpack://wpi/./common/components/FormattedDatum/CategoryValue/CategoryValue.js","webpack://wpi/./common/components/FormattedDatum/CategoryValue/index.js","webpack://wpi/./common/hooks/useLocale.js","webpack://wpi/./common/util/color/util.js","webpack://wpi/./common/components/FormattedDatum/Metric/Metric.js","webpack://wpi/./common/components/FormattedDatum/Metric/index.js","webpack://wpi/./common/components/FormattedDatum/FormattedDatum.js","webpack://wpi/./common/components/FormattedDatum/index.js","webpack://wpi/./enterprise/components/pages/email-templates/HeatMapColors.js","webpack://wpi/./enterprise/components/pages/email-templates/MockWidgetData.js","webpack://wpi/./enterprise/components/pages/email-templates/getColumnFormatType.js","webpack://wpi/./enterprise/components/pages/email-templates/EmailTableLiveControls.js","webpack://wpi/./common/components/WidgetFrame/WidgetFrame.js","webpack://wpi/./common/hooks/useBounds.js","webpack://wpi/./common/components/Table/internal/tableConstants.js","webpack://wpi/./common/util/getScrollBarWidth.js","webpack://wpi/./common/components/Table/internal/useSizedColumns.js","webpack://wpi/./common/components/Table/tableUtil.js","webpack://wpi/./common/util/cssHelpers.js","webpack://wpi/./common/components/Table/internal/NoDataPlaceholder.js","webpack://wpi/./common/components/Table/Table.js","webpack://wpi/./common/components/Table/internal/useExpandedRows.js","webpack://wpi/./common/components/Table/WidthAdjustableTable.js","webpack://wpi/./enterprise/components/pages/email-templates/EmailTableWidget.js","webpack://wpi/./common/components/widgets/KPIWidget/internal/KPIValue.js","webpack://wpi/./common/components/SparkLine/SparkLine.js","webpack://wpi/./common/components/SparkLine/index.js","webpack://wpi/./common/components/widgets/KPIWidget/internal/KPISparkLine.js","webpack://wpi/./common/components/widgets/KPIWidget/internal/KPIData.js","webpack://wpi/./common/data/trend.js","webpack://wpi/./common/components/TrendDot/TrendGoodness.js","webpack://wpi/./common/components/TrendDot/TrendNotAvailableIcon.js","webpack://wpi/./common/components/TrendDot/TrendDot.js","webpack://wpi/./common/components/TrendDot/index.js","webpack://wpi/./common/components/widgets/KPIWidget/internal/KPITrendDot.js","webpack://wpi/./common/components/widgets/KPIWidget/KPIContent.js","webpack://wpi/./common/types/TimeRange/TimeRange.js","webpack://wpi/./common/types/stf/fieldParamType.js","webpack://wpi/./common/components/Dashboard/DashboardCache/internal/InternalDashboardCacheContext.js","webpack://wpi/./common/components/Dashboard/DashboardCache/internal/AsyncValueCache.js","webpack://wpi/./common/components/Dashboard/DashboardCache/internal/DashboardCache.js","webpack://wpi/./common/components/Dashboard/DashboardCache/DashboardCacheProvider.js","webpack://wpi/./common/components/Dashboard/DashboardCache/internal/InternalWidgetCacheContext.js","webpack://wpi/./common/components/Dashboard/DashboardCache/WidgetCacheProvider.js","webpack://wpi/./common/components/Dashboard/DashboardCache/useDashboardCache.js","webpack://wpi/./common/components/Dashboard/DashboardCache/useWidgetCache.js","webpack://wpi/./common/hooks/requests/useRepeatingRequest.js","webpack://wpi/./common/hooks/requests/useRequestWithStatus.js","webpack://wpi/./common/hooks/requests/useRepeatingRequestWithStatus.js","webpack://wpi/./common/components/widgets/KPIWidget/internal/useKpiWidgetData.js","webpack://wpi/./common/types/stf/fieldSetParamType.js","webpack://wpi/./common/types/stf/explorationPathParamType.js","webpack://wpi/./common/components/widgets/KPIWidget/internal/useKpiWidgetInitialization.js","webpack://wpi/./common/components/TimeRangeSelector/helpers/getPrimaryDescription.js","webpack://wpi/./common/components/TimeRangeSelector/helpers/getSecondaryDescription.js","webpack://wpi/./common/types/RequestState/RequestState.js","webpack://wpi/./common/components/TimeRangeSelector/hooks/useTimeRangeData.js","webpack://wpi/./common/util/formatFiltersForRequest.js","webpack://wpi/./common/components/FilterBuilderText/FilterBuilderUtils.js","webpack://wpi/./common/hooks/useFormattedFilters.js","webpack://wpi/./common/components/widgets/KPIWidget/internal/useKpiController.js","webpack://wpi/./common/components/widgets/KPIWidget/internal/useKpiWidgetPrintStatus.js","webpack://wpi/./common/components/LiveControls/EnterpriseHierarchyControl/EnterpriseHierarchyControl.js","webpack://wpi/./common/components/LiveControls/EnterpriseHierarchyControl/index.js","webpack://wpi/./common/components/LiveControlBar/ValidatedLiveControl.js","webpack://wpi/./common/components/DurationField/internal/DurationFieldError.js","webpack://wpi/./common/util/language/array.js","webpack://wpi/./common/components/DurationField/DurationField.js","webpack://wpi/./common/components/DurationField/index.js","webpack://wpi/./common/components/FilterBuilder/internal/ExpressionRow.js","webpack://wpi/./common/components/FilterBuilder/FilterBuilder.js","webpack://wpi/./common/data/validateDuration.js","webpack://wpi/./common/components/LiveControls/FilterControl/internal/validateFilters.js","webpack://wpi/./common/components/LiveControls/FilterControl/FilterControl.js","webpack://wpi/./common/components/DurationField/hmsHelpers.js","webpack://wpi/./common/components/LiveControls/FilterControl/index.js","webpack://wpi/./common/components/LiveControls/TimeRangeControl/TimeRangeControl.js","webpack://wpi/./common/components/LiveControls/TimeRangeControl/index.js","webpack://wpi/./common/components/LiveControls/DuplicateLiveControl/renderDuplicateLiveControl.js","webpack://wpi/./common/components/widgets/KPIWidget/KPIWidgetLiveControls.js","webpack://wpi/./common/components/WidgetFrame/WidgetValidationErrorMessage.js","webpack://wpi/./common/components/LoadingIndicator/LoadingIndicator.js","webpack://wpi/./common/components/LoadingIndicator/index.js","webpack://wpi/./common/components/WidgetFrame/WidgetLoadingIndicator.js","webpack://wpi/./common/components/AutoResizeTitle/AutoResizeTitle.js","webpack://wpi/./common/components/AutoResizeTitle/index.js","webpack://wpi/./common/components/WidgetFrame/FrameTitle.js","webpack://wpi/./common/components/WidgetFrame/SectionFrameTitle.js","webpack://wpi/./common/components/TimeRangeSelector/TimeRangeDisplaySmall.js","webpack://wpi/./common/components/FilterBuilderText/FilterBuilderPrettyFormat.js","webpack://wpi/./common/components/FilterBuilderText/FilterBuilderText.js","webpack://wpi/./common/components/TimeRangeSelector/TimeRangeDisplay.js","webpack://wpi/./common/components/WidgetFrame/FrameHeader.js","webpack://wpi/./common/hooks/usePersistWidgetHeight.js","webpack://wpi/./common/components/widgets/KPIWidget/KPIWidget.js","webpack://wpi/./common/components/widgets/KPIGroupWidget/internal/useKPIGroupWidgetInitialization.js","webpack://wpi/./common/components/widgets/KPIGroupWidget/KPIGroupWidgetConstants.js","webpack://wpi/./common/components/widgets/KPIGroupWidget/internal/useKPIGroupWidgetData.js","webpack://wpi/./common/components/widgets/KPIGroupWidget/internal/useKPIGroupWidgetController.js","webpack://wpi/./common/components/widgets/KPIGroupWidget/KPIGroupColumnControl/KPIGroupHeadingOption.js","webpack://wpi/./common/components/widgets/KPIGroupWidget/KPIGroupColumnControl/SparkDimensionColumnSelector.js","webpack://wpi/./common/components/widgets/KPIGroupWidget/KPIGroupColumnControl/KPIGroupFieldsOption.js","webpack://wpi/./common/components/widgets/KPIGroupWidget/KPIGroupColumnControl/KPIGroupFieldChipText.js","webpack://wpi/./common/components/widgets/KPIGroupWidget/KPIGroupColumnControl/KPIGroupSelectedFieldsOption.js","webpack://wpi/./common/components/widgets/KPIGroupWidget/KPIGroupColumnControl/KPIGroupColumnControl.js","webpack://wpi/./common/components/widgets/KPIGroupWidget/KPIGroupWidgetLiveControls.js","webpack://wpi/./common/components/NoDataMessage/index.js","webpack://wpi/./common/components/EventData/EventDataCell.js","webpack://wpi/./common/components/EventData/EventDataRow.js","webpack://wpi/./common/components/EventData/EventDataGroup.js","webpack://wpi/./common/components/widgets/KPIGroupWidget/KPIGroupContent.js","webpack://wpi/./common/components/widgets/KPIGroupWidget/KPIGroupHeading.js","webpack://wpi/./common/components/SparkVisualization/internal/TooltipContent.js","webpack://wpi/./common/components/SparkVisualization/TextSparkVisualization.js","webpack://wpi/./common/components/SparkVisualization/internal/addDimensionColors.js","webpack://wpi/./common/components/SparkVisualization/ChronogramSparkVisualization.js","webpack://wpi/./common/components/SparkVisualization/internal/barAndColumnUtils.js","webpack://wpi/./common/components/SparkVisualization/BarSparkVisualization.js","webpack://wpi/./common/components/SparkVisualization/ColumnSparkVisualization.js","webpack://wpi/./common/components/widgets/KPIGroupWidget/internal/KPIGroupFormattedDatum.js","webpack://wpi/./common/components/widgets/KPIGroupWidget/KPIGroupWidget.js","webpack://wpi/./enterprise/components/pages/email-templates/WidgetSchema.js","webpack://wpi/./common/components/Dashboard/DashboardLayout/DroppableSpot.js","webpack://wpi/./common/components/Dashboard/DashboardLayout/WorkaroundDndContext.js","webpack://wpi/./common/components/Dashboard/DashboardLayout/DraggableWrapper.js","webpack://wpi/./common/components/Icon/ImageIcon.js","webpack://wpi/./common/components/Dashboard/DashboardLayout/AddWidgetButton.js","webpack://wpi/./common/components/Dashboard/DashboardLayout/Column.js","webpack://wpi/./common/components/Dashboard/DashboardLayout/constants.js","webpack://wpi/./common/components/Dashboard/DashboardLayout/SectionToolbar/SectionToolbarButton.js","webpack://wpi/./common/components/Dashboard/DashboardLayout/SectionToolbar/SectionToolbarBase.js","webpack://wpi/./common/components/Dashboard/DashboardLayout/SectionToolbar/SectionToolbar.js","webpack://wpi/./common/components/Dashboard/DashboardLayout/SectionHeadingEditor.js","webpack://wpi/./common/components/Dashboard/DashboardLayout/Section.js","webpack://wpi/./common/components/Dashboard/DashboardLayout/DashboardLayoutEditor.js","webpack://wpi/./common/components/MenuToolbar/MenuItem.js","webpack://wpi/./common/components/MenuToolbar/MenuButton.js","webpack://wpi/./common/components/MenuToolbar/MenuSeparator.js","webpack://wpi/./common/components/MenuToolbar/MenuDropdown.js","webpack://wpi/./common/components/Dashboard/DashboardLayout/PageSelectField.js","webpack://wpi/./common/components/MenuToolbar/MenuList.js","webpack://wpi/./common/components/MenuToolbar/MenuToolbarOverflow.js","webpack://wpi/./common/components/MenuToolbar/MenuToolbar.js","webpack://wpi/./enterprise/components/pages/email-templates/getDataService.js","webpack://wpi/./common/components/Dashboard/DashboardLayout/dashboardLayoutReducer.js","webpack://wpi/./enterprise/redux/reducers/emailTemplates.js","webpack://wpi/./enterprise/redux/reducers/metricThresholds.js","webpack://wpi/./enterprise/components/pages/email-templates/EmailTemplatesPage.js","webpack://wpi/./enterprise/components/pages/metric-thresholds/MetricThresholds.scss?a670","webpack://wpi/./enterprise/components/pages/metric-thresholds/MetricThresholdsTable.js","webpack://wpi/./enterprise/components/pages/metric-thresholds/MetricThresholdsForm.js","webpack://wpi/./enterprise/components/pages/metric-thresholds/MetricThresholdsPage.js","webpack://wpi/./enterprise/redux/actions/getAlertSubscriptions.js","webpack://wpi/./enterprise/redux/actions/patchAlertSubscriptions.js","webpack://wpi/./enterprise/redux/reducers/alertSubscriptions.js","webpack://wpi/./enterprise/redux/reducers/alerts.js","webpack://wpi/./enterprise/redux/reducers/alertWindow.js","webpack://wpi/./enterprise/redux/reducers/deviceSubscriptions.js","webpack://wpi/./enterprise/components/select/SelectGroupLabel.js","webpack://wpi/./enterprise/components/pages/alerts-subscribe/MetricAlertText.js","webpack://wpi/./enterprise/components/pages/alerts-subscribe/ProcessStateDurationAlertText.js","webpack://wpi/./enterprise/components/pages/alerts-subscribe/ProcessStateTargetTimeAlertText.js","webpack://wpi/./enterprise/components/pages/alerts-subscribe/AlertSubscriptionsEditor.js","webpack://wpi/./enterprise/components/pages/alerts-subscribe/AlertSubscriptionsForm.js","webpack://wpi/./enterprise/components/util/timeUtils.js","webpack://wpi/./enterprise/components/time-input/timeInputValidation.js","webpack://wpi/./enterprise/components/pages/alerts-subscribe/DndSelect.js","webpack://wpi/./enterprise/components/time-input/TimeInput.js","webpack://wpi/./enterprise/components/pages/alerts-subscribe/AlertWindowEditor.js","webpack://wpi/./enterprise/components/pages/alerts-subscribe/AlertWindowForm.js","webpack://wpi/./enterprise/components/pages/alerts-subscribe/AlertWindowValidation.js","webpack://wpi/./enterprise/components/pages/alerts-subscribe/DeviceSubscriptionsEditor.js","webpack://wpi/./enterprise/components/pages/alerts-subscribe/DeviceSubscriptionsForm.js","webpack://wpi/./enterprise/components/pages/alerts-subscribe/AlertsSubscribePage.js","webpack://wpi/./enterprise/components/pages/version/VersionPage.js","webpack://wpi/./enterprise/components/pages/privacy/PrivacyPage.js","webpack://wpi/./enterprise/components/pages/cookie-policy/CookiePolicyPage.js","webpack://wpi/./enterprise/components/pages/licenses/LicenseDesciption.js","webpack://wpi/./enterprise/components/pages/licenses/LicensesPage.js","webpack://wpi/./enterprise/components/pages/terms-of-use/TermsOfUsePage.js","webpack://wpi/./enterprise/redux/reducers/emailSubscriptions.js","webpack://wpi/./enterprise/components/pages/email-subscribe/EmailsSubscriptionTable.js","webpack://wpi/./enterprise/components/pages/email-subscribe/EmailsSubscriptionForm.js","webpack://wpi/./enterprise/components/pages/email-subscribe/DayOfWeekForm.js","webpack://wpi/./enterprise/components/pages/email-subscribe/EmailsSubscribePage.js","webpack://wpi/./enterprise/components/anchor-toc/AnchorTocItem.js","webpack://wpi/./enterprise/components/anchor-toc/AnchorToc.js","webpack://wpi/./enterprise/components/pages/help/MobileGatewaysHelpPage.js","webpack://wpi/./enterprise/redux/actions/verifyAccount.js","webpack://wpi/./enterprise/components/pages/verify/VerifyAccountPage.js","webpack://wpi/./enterprise/components/app/InitializationRequiredRoute.js","webpack://wpi/./enterprise/redux/actions/verifyEmailChange.js","webpack://wpi/./enterprise/components/pages/verify/VerifyEmailChangePage.js","webpack://wpi/./enterprise/redux/reducers/supportUsers.js","webpack://wpi/./enterprise/components/pages/support-users/SupportUsersPage.js","webpack://wpi/./enterprise/components/app/Main.js","webpack://wpi/./enterprise/translation/entTranslator.js","webpack://wpi/./common/font/roboto/light.scss?4c52","webpack://wpi/./common/font/roboto/regular.scss?13c4","webpack://wpi/./common/font/roboto/bold.scss?4c1f","webpack://wpi/./common/font/roboto/medium.scss?d3aa","webpack://wpi/./enterprise/components/app/App.js","webpack://wpi/./enterprise/redux/reducers/environment.js","webpack://wpi/./enterprise/redux/reducers/organization.js","webpack://wpi/./enterprise/redux/reducers/version.js","webpack://wpi/./enterprise/redux/reducers/activeSoftwareUpdates.js","webpack://wpi/./enterprise/redux/reducers/completedSoftwareUpdates.js","webpack://wpi/./enterprise/redux/reducers/availableSoftwareUpdates.js","webpack://wpi/./enterprise/redux/reducers/index.js","webpack://wpi/./enterprise/redux/store.js","webpack://wpi/./enterprise/index.js","webpack://wpi/./common/font/fontawesome/css/font-awesome.css","webpack://wpi/./enterprise/fonts/fontawesome/css/font-awesome.css","webpack://wpi/./enterprise/fonts/vornefont/style.css","webpack://wpi/./common/font/roboto/bold.scss","webpack://wpi/./common/font/roboto/light.scss","webpack://wpi/./common/font/roboto/medium.scss","webpack://wpi/./common/font/roboto/regular.scss","webpack://wpi/./common/font/vorne-icon/style.scss","webpack://wpi/./enterprise/components/pages/metric-thresholds/MetricThresholds.scss","webpack://wpi/./node_modules/moment/locale/ sync ^\\.\\/.*$"],"sourcesContent":["export default class NetworkError extends Error {}\n","export default class ResponseFormatError extends Error {}\n","import NetworkError from './errors/NetworkError';\nimport ResponseFormatError from './errors/ResponseFormatError';\n\nconst defaultRequestConfig = {\n mode: 'cors',\n headers: {},\n};\n\nexport default function Request(url, config) {\n if (typeof url !== 'string') {\n throw new Error('URL must be a string');\n }\n else if (url.length === 0 || url[0] !== '/') {\n throw new Error('Relative paths are not allowed. URL must begin with `/`');\n }\n\n async function send() {\n let response = null;\n let statusCode = null;\n let responseJson = null;\n\n // fetch should only throw an error if it's unable to make the request\n // It will NOT throw if the response is non-200\n try {\n response = await fetch(url, config);\n }\n catch (err) {\n throw new NetworkError('Network Error');\n }\n\n // request complete, get and parse the results\n try {\n statusCode = response.status;\n responseJson = await response.json();\n }\n catch (err) {\n throw new ResponseFormatError(`Server Error - ${err?.message || 'unknown'}`);\n }\n\n // 200 range is OK\n let ok = statusCode >= 200 && statusCode < 300;\n\n return {\n ok,\n statusCode,\n data: responseJson,\n };\n }\n\n function abort() {\n // TODO\n }\n\n return { send, abort };\n}\n\n/**\n * Merges two request config objects into one.\n *\n * @param {Object} defaultConfig default properties\n * @param {Object} config override properties\n * @returns {Object}\n */\nfunction mergeTwoRequestConfigs(defaultConfig, config) {\n const mergedConfig = {\n ...defaultConfig,\n ...config\n };\n\n // merge headers\n mergedConfig.headers = {\n ...(defaultConfig.headers || {}),\n ...(config.headers || {}),\n };\n\n return mergedConfig;\n}\n\n/**\n * Merges multiple request config objects into one. Using the first argument as\n * the default config, each config object is merged in order.\n *\n * @param {...Object} configs request configuration objects\n * @returns {Object} merged request configuration\n */\n\nfunction mergeRequestConfigs(...configs) {\n if (configs.length === 0) {\n return {};\n }\n else if (configs.length === 1) {\n return configs;\n }\n else {\n let merged = mergeTwoRequestConfigs(configs[0], configs[1]);\n\n for (let i = 2; i < configs.length; i++) {\n merged = mergeTwoRequestConfigs(merged, configs[i]);\n }\n\n return merged;\n }\n}\n\nexport function GetRequest(url, config) {\n const mergedConfig = mergeRequestConfigs(\n defaultRequestConfig,\n {\n method: 'GET',\n headers: {\n 'Accept': 'application/json',\n },\n },\n config || {},\n );\n\n return new Request(url, mergedConfig);\n}\n\nexport function PostRequest(url, config) {\n const mergedConfig = mergeRequestConfigs(\n defaultRequestConfig,\n {\n method: 'POST',\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json',\n },\n },\n config || {},\n );\n\n // stringify JSON body\n if (mergedConfig.body && typeof mergedConfig.body === 'object') {\n mergedConfig.body = JSON.stringify(mergedConfig.body);\n }\n\n return new Request(url, mergedConfig);\n}\n\nexport function PatchRequest(url, config) {\n const mergedConfig = mergeRequestConfigs(\n defaultRequestConfig,\n {\n method: 'PATCH',\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json',\n },\n },\n config || {},\n );\n\n // stringify JSON body\n if (mergedConfig.body && typeof mergedConfig.body === 'object') {\n mergedConfig.body = JSON.stringify(mergedConfig.body);\n }\n\n return new Request(url, mergedConfig);\n}\n\nexport function PutRequest(url, config) {\n const mergedConfig = mergeRequestConfigs(\n defaultRequestConfig,\n {\n method: 'PUT',\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json',\n },\n },\n config || {},\n );\n\n // stringify JSON body\n if (mergedConfig.body && typeof mergedConfig.body === 'object') {\n mergedConfig.body = JSON.stringify(mergedConfig.body);\n }\n\n return new Request(url, mergedConfig);\n}\n\nexport function DeleteRequest(url, config) {\n const mergedConfig = mergeRequestConfigs(\n defaultRequestConfig,\n {\n method: 'DELETE',\n headers: {\n 'Accept': 'application/json',\n },\n },\n config || {},\n );\n\n return new Request(url, mergedConfig);\n}\n\n/**\n * Immediately construct and send a GET request.\n *\n * @param {string} url URL of the request\n * @param {Object} config Request configuration\n * @returns {Promise} Promise that resolves with the response\n */\nexport async function sendGetRequest(url, config) {\n let request = new GetRequest(url, config);\n return request.send();\n}\n\n/**\n * Immediately construct and send a POST request.\n *\n * @param {string} url URL of the request\n * @param {Object} config Request configuration\n * @returns {Promise} Promise that resolves with the response\n */\nexport async function sendPostRequest(url, config) {\n let request = new PostRequest(url, config);\n return request.send();\n}\n\n/**\n * Immediately construct and send a PATCH request.\n *\n * @param {string} url URL of the request\n * @param {Object} config Request configuration\n * @returns {Promise} Promise that resolves with the response\n */\nexport async function sendPatchRequest(url, config) {\n let request = new PatchRequest(url, config);\n return request.send();\n}\n\n/**\n * Immediately construct and send a PUT request.\n *\n * @param {string} url URL of the request\n * @param {Object} config Request configuration\n * @returns {Promise} Promise that resolves with the response\n */\nexport async function sendPutRequest(url, config) {\n let request = new PutRequest(url, config);\n return request.send();\n}\n\n/**\n * Immediately construct and send a DELETE request.\n *\n * @param {string} url URL of the request\n * @param {Object} config Request configuration\n * @returns {Promise} Promise that resolves with the response\n */\nexport async function sendDeleteRequest(url, config) {\n let request = new DeleteRequest(url, config);\n return request.send();\n}\n","/**\n * Helper function for sending requests in async action creators\n * \n * @param {Object} actions Map of action creators for each stage of the request\n * @param {function} actions.request Dispatched before the request\n * @param {function} actions.success Dispatched on success\n * @param {function} actions.failure Dispatched on failure\n * @param {function} sendRequest Function that actually does the sending of the request\n * @returns {function} async action creator\n */\nexport function requestActionCreator(actions, sendRequest) {\n return async (dispatch) => {\n dispatch(actions.request());\n\n let response = null;\n\n try {\n response = await sendRequest();\n }\n catch (err) {\n return dispatch(actions.failure({\n message: err.message,\n }));\n }\n\n if (response.ok) {\n return dispatch(actions.success(response.data));\n }\n else {\n return dispatch(actions.failure(response.data));\n }\n };\n}\n","import { requestActionCreator } from './requestActionCreator';\n\nexport const SET_RESOURCE = 'SET_RESOURCE';\n// General purpose request action types\nexport const REQUEST_RESET = 'REQUEST_RESET';\nexport const REQUEST_PENDING = 'REQUEST_PENDING';\nexport const REQUEST_SUCCESS = 'REQUEST_SUCCESS';\nexport const REQUEST_FAILURE = 'REQUEST_FAILURE';\n\n/**\n * Async action creator for GET-ing multiple resources\n *\n * @param {Object} options\n * @param {string} options.resourceType\n * @param {string} options.requestId\n * @param {function} options.sendRequest\n * @returns {function} async action creator\n */\nexport function getResources(options) {\n const {\n resourceType,\n requestId,\n sendRequest,\n } = options;\n\n return requestActionCreator(\n {\n request: () => ({\n type: REQUEST_PENDING,\n resourceType: resourceType,\n requestId: requestId,\n requestMethod: 'GET',\n }),\n success: (payload) => ({\n type: REQUEST_SUCCESS,\n resourceType: resourceType,\n requestId: requestId,\n requestMethod: 'GET',\n payload,\n }),\n failure: (error) => ({\n type: REQUEST_FAILURE,\n resourceType: resourceType,\n requestId: requestId,\n requestMethod: 'GET',\n payload: { error },\n }),\n },\n sendRequest\n );\n}\n\n/**\n * Async action creator for PATCH-ing multiple resources\n *\n * @param {Object} options\n * @param {string} options.resourceType\n * @param {string} options.requestId\n * @param {string} options.requestData\n * @param {function} options.sendRequest\n * @returns {function} async action creator\n */\nexport function patchResources(options) {\n const {\n resourceType,\n requestId,\n requestData,\n sendRequest,\n } = options;\n\n return requestActionCreator(\n {\n request: () => ({\n type: REQUEST_PENDING,\n resourceType: resourceType,\n requestId: requestId,\n requestMethod: 'PATCH',\n requestData: requestData,\n }),\n success: (payload) => ({\n type: REQUEST_SUCCESS,\n resourceType: resourceType,\n requestId: requestId,\n requestMethod: 'PATCH',\n requestData: requestData,\n payload,\n }),\n failure: (error) => ({\n type: REQUEST_FAILURE,\n resourceType: resourceType,\n requestId: requestId,\n requestMethod: 'PATCH',\n requestData: requestData,\n payload: { error },\n }),\n },\n sendRequest\n );\n}\n\n/**\n * Action creator for resetting a resources request back to its initial state\n *\n * @param {Object} options\n * @param {string} options.resourceType\n * @param {string} options.requestId\n * @returns {function} action creator\n */\nexport function resetResourcesRequest(options) {\n const {\n resourceType,\n requestId,\n } = options;\n\n return (dispatch) => {\n dispatch({\n type: REQUEST_RESET,\n resourceType: resourceType,\n requestId: requestId,\n });\n };\n}\n\n/**\n * Async action creator for GET-ing a resource\n *\n * @param {Object} options\n * @param {string} options.resourceType\n * @param {string} options.requestId\n * @param {string} options.resourceId\n * @param {function} options.sendRequest\n * @returns {function} async action creator\n */\nexport function getResource(options) {\n const {\n resourceType,\n requestId,\n resourceId,\n sendRequest,\n } = options;\n\n return requestActionCreator(\n {\n request: () => ({\n type: REQUEST_PENDING,\n resourceType: resourceType,\n requestId: requestId,\n requestMethod: 'GET',\n resourceId: resourceId,\n }),\n success: (payload) => ({\n type: REQUEST_SUCCESS,\n resourceType: resourceType,\n requestId: requestId,\n requestMethod: 'GET',\n resourceId: resourceId,\n payload,\n }),\n failure: (error) => ({\n type: REQUEST_FAILURE,\n resourceType: resourceType,\n requestId: requestId,\n requestMethod: 'GET',\n resourceId: resourceId,\n payload: { error },\n }),\n },\n sendRequest\n );\n}\n\n/**\n * Async action creator for POST-ing a resource\n *\n * @param {Object} options\n * @param {string} options.resourceType\n * @param {string} options.requestId\n * @param {string} options.resourceId\n * @param {function} options.sendRequest\n * @returns {function} async action creator\n */\n export function postResource(options) {\n const {\n resourceType,\n requestId,\n resourceId,\n sendRequest,\n } = options;\n\n return requestActionCreator(\n {\n request: () => ({\n type: REQUEST_PENDING,\n resourceType: resourceType,\n requestId: requestId,\n requestMethod: 'POST',\n resourceId: resourceId,\n }),\n success: (payload) => ({\n type: REQUEST_SUCCESS,\n resourceType: resourceType,\n requestId: requestId,\n requestMethod: 'POST',\n resourceId: resourceId,\n payload,\n }),\n failure: (error) => ({\n type: REQUEST_FAILURE,\n resourceType: resourceType,\n requestId: requestId,\n requestMethod: 'POST',\n resourceId: resourceId,\n payload: { error },\n }),\n },\n sendRequest\n );\n}\n\n/**\n * Async action creator for PATCH-ing a resource\n *\n * @param {Object} options\n * @param {string} options.resourceType\n * @param {string} options.requestId\n * @param {string} options.resourceId\n * @param {function} options.sendRequest\n * @returns {function} async action creator\n */\nexport function patchResource(options) {\n const {\n resourceType,\n requestId,\n resourceId,\n sendRequest,\n } = options;\n\n return requestActionCreator(\n {\n request: () => ({\n type: REQUEST_PENDING,\n resourceType: resourceType,\n requestId: requestId,\n requestMethod: 'PATCH',\n resourceId: resourceId,\n }),\n success: (payload) => ({\n type: REQUEST_SUCCESS,\n resourceType: resourceType,\n requestId: requestId,\n requestMethod: 'PATCH',\n resourceId: resourceId,\n payload,\n }),\n failure: (error) => ({\n type: REQUEST_FAILURE,\n resourceType: resourceType,\n requestId: requestId,\n requestMethod: 'PATCH',\n resourceId: resourceId,\n payload: { error },\n }),\n },\n sendRequest\n );\n}\n\n/**\n * Async action creator for PUT-ing a resource\n *\n * @param {Object} options\n * @param {string} options.resourceType\n * @param {string} options.requestId\n * @param {string} options.resourceId\n * @param {function} options.sendRequest\n * @returns {function} async action creator\n */\nexport function putResource(options) {\n const {\n resourceType,\n requestId,\n resourceId,\n sendRequest,\n } = options;\n\n return requestActionCreator(\n {\n request: () => ({\n type: REQUEST_PENDING,\n resourceType: resourceType,\n requestId: requestId,\n requestMethod: 'PUT',\n resourceId: resourceId,\n }),\n success: (payload) => ({\n type: REQUEST_SUCCESS,\n resourceType: resourceType,\n requestId: requestId,\n requestMethod: 'PUT',\n resourceId: resourceId,\n payload,\n }),\n failure: (error) => ({\n type: REQUEST_FAILURE,\n resourceType: resourceType,\n requestId: requestId,\n requestMethod: 'PUT',\n resourceId: resourceId,\n payload: { error },\n }),\n },\n sendRequest\n );\n}\n\n/**\n * Async action creator for DELETE-ing a resource\n *\n * @param {Object} options\n * @param {string} options.resourceType\n * @param {string} options.requestId\n * @param {string} options.resourceId\n * @param {function} options.sendRequest\n * @returns {function} async action creator\n */\nexport function deleteResource(options) {\n const {\n resourceType,\n requestId,\n resourceId,\n sendRequest,\n } = options;\n\n return requestActionCreator(\n {\n request: () => ({\n type: REQUEST_PENDING,\n resourceType: resourceType,\n requestId: requestId,\n requestMethod: 'DELETE',\n resourceId: resourceId,\n }),\n success: (payload) => ({\n type: REQUEST_SUCCESS,\n resourceType: resourceType,\n requestId: requestId,\n requestMethod: 'DELETE',\n resourceId: resourceId,\n payload,\n }),\n failure: (error) => ({\n type: REQUEST_FAILURE,\n resourceType: resourceType,\n requestId: requestId,\n requestMethod: 'DELETE',\n resourceId: resourceId,\n payload: { error },\n }),\n },\n sendRequest\n );\n}\n\n/**\n * Action creator for resetting a resource request back to its initial state\n *\n * @param {Object} options\n * @param {string} options.resourceType\n * @param {string} options.requestId\n * @param {string} options.resourceId\n * @returns {function} action creator\n */\nexport function resetResourceRequest(options) {\n const {\n resourceType,\n requestId,\n resourceId,\n } = options;\n\n return (dispatch) => {\n dispatch({\n type: REQUEST_RESET,\n resourceType: resourceType,\n requestId: requestId,\n resourceId: resourceId,\n });\n };\n}\n","export const IDLE = 'IDLE';\nexport const PENDING = 'PENDING';\nexport const SUCCESS = 'SUCCESS';\nexport const FAILURE = 'FAILURE';\n","import * as RequestStatus from 'Common/data/RequestStatus';\nimport {\n REQUEST_RESET,\n REQUEST_PENDING,\n REQUEST_SUCCESS,\n REQUEST_FAILURE,\n} from './actions';\n\nconst initialState = {\n status: RequestStatus.IDLE,\n error: null,\n};\n\nexport function requestReducer(state = initialState, action) {\n const {\n type,\n payload,\n } = action;\n\n switch (type) {\n case REQUEST_RESET: {\n return initialState;\n }\n case REQUEST_PENDING: {\n return {\n status: RequestStatus.PENDING,\n error: null,\n };\n }\n case REQUEST_SUCCESS: {\n return {\n status: RequestStatus.SUCCESS,\n error: null,\n };\n }\n case REQUEST_FAILURE: {\n return {\n status: RequestStatus.FAILURE,\n error: { ...payload.error },\n };\n }\n default:\n return state;\n }\n}\n","/**\n * Wraps around a reducer and filters out actions based on the supplied filter\n * function.\n * \n * @param {Function} filterFn Function that accepts an action and returns a boolean\n * @param {Function} reducer Redux reducer\n * @returns {Function} Filtered redux reducer\n */\nexport default function actionFilter(filterFn, reducer) {\n return function filtered(state, action) {\n // Init the state if needed\n state = state || reducer(state, {});\n\n if (filterFn(action)) {\n return reducer(state, action);\n }\n else {\n return state;\n }\n };\n}\n","/**\n * Wraps around a set of reducers and maps each action to a single reducer based\n * on the result of the supplied map function.\n * \n * @param {Function} mapFn Function that given an action returns a key into the set of reducers\n * @param {Object} reducerMap Object of redux reducer functions\n * @returns {Function} Combined and mapped redux reducer function\n */\nexport default function actionMap(mapFn, reducerMap) {\n const initialState = {};\n\n for (let key in reducerMap) {\n initialState[key] = reducerMap[key](undefined, {});\n }\n\n return function mappedReducer(state = initialState, action) {\n const key = mapFn(action);\n\n if (reducerMap[key]) {\n return {\n ...state,\n [key]: reducerMap[key](state[key], action),\n };\n }\n else {\n return state;\n }\n };\n}\n","import {\n SET_RESOURCE,\n REQUEST_RESET,\n REQUEST_PENDING,\n REQUEST_SUCCESS,\n REQUEST_FAILURE,\n} from './actions';\nimport { requestReducer } from './requestReducer';\nimport actionFilter from 'Common/util/reducerUtils/actionFilter';\nimport actionMap from 'Common/util/reducerUtils/actionMap';\n\nfunction createRequestsReducer(requestIds) {\n return actionMap(\n (action) => action?.requestId,\n requestIds.reduce((reducers, requestId) => {\n reducers[requestId] = requestReducer;\n return reducers;\n }, {}),\n );\n}\n\n/**\n * A reducer for a collection of resources\n * \n * @param {string} resourceType Unique name of resource collection\n * @param {Object} options\n * @param {function} options.resourceReducer Reducer for each individual resource\n * @param {function(Object):number} options.getResourceId Given a resource, returns the `resourceId`\n * @param {string[]} options.requests `requestId`s handled by the resource\n * @param {function} [options.sort] Optional sort function\n * @param {function} [options.additionalReducers] Optional function to allow additional reducers to implemented for resource\n * @param {boolean} [options.numericResourceIdsOnly=true] Should the collection only allow numeric values for resource IDs?\n * Defaults to true. If false, string IDs are allowed.\n */\nexport function resourceCollectionReducer(resourceType, options) {\n const {\n resourceReducer,\n getResourceId,\n requests: requestIds,\n sort: sortFunction,\n additionalReducers,\n numericResourceIdsOnly = true,\n } = options;\n\n const requestsReducer = createRequestsReducer(requestIds);\n\n function _isIndividualResourceAction(action) {\n // If `resourceId` is provided, we know this action is targeting a\n // single resource, not the entire collection.\n //\n if (numericResourceIdsOnly) {\n // Allow numbers only\n return typeof action.resourceId === 'number';\n }\n else {\n // Allow numbers or strings\n return (\n typeof action.resourceId === 'number' ||\n typeof action.resourceId === 'string'\n );\n }\n }\n\n function _handleGetResources(state, action) {\n const {\n type,\n payload,\n } = action;\n\n switch (type) {\n case REQUEST_PENDING: {\n return {\n ...state,\n requests: requestsReducer(state.requests, action),\n };\n }\n case REQUEST_SUCCESS: {\n let list = [ ...payload ];\n\n if (sortFunction) {\n list.sort(sortFunction);\n }\n\n return {\n ...state,\n list: list.map((resource) => {\n return getResourceId(resource);\n }),\n resources: payload.reduce((resources, resource) => {\n resources[getResourceId(resource)] = resourceReducer(undefined, {\n type: SET_RESOURCE,\n payload: resource,\n });\n return resources;\n }, {}),\n requests: requestsReducer(state.requests, action),\n };\n }\n case REQUEST_FAILURE: {\n return {\n ...state,\n list: [],\n resources: {},\n requests: requestsReducer(state.requests, action),\n };\n }\n default: {\n return state;\n }\n }\n }\n\n function _handlePostResource(state, action) {\n const {\n type,\n payload,\n } = action;\n\n switch (type) {\n case REQUEST_PENDING: {\n return {\n ...state,\n requests: requestsReducer(state.requests, action),\n };\n }\n case REQUEST_SUCCESS: {\n let list = [ ...payload ];\n\n if (sortFunction) {\n list.sort(sortFunction);\n }\n\n return {\n ...state,\n list: list.map((resource) => {\n return getResourceId(resource);\n }),\n resources: payload.reduce((resources, resource) => {\n resources[getResourceId(resource)] = resourceReducer(undefined, {\n type: SET_RESOURCE,\n payload: resource,\n });\n return resources;\n }, {}),\n requests: requestsReducer(state.requests, action),\n };\n }\n case REQUEST_FAILURE: {\n return {\n ...state,\n requests: requestsReducer(state.requests, action),\n };\n }\n default: {\n return state;\n }\n }\n }\n\n function _handlePatchResource(state, action) {\n const {\n type,\n payload,\n } = action;\n\n switch (type) {\n case REQUEST_PENDING: {\n return {\n ...state,\n requests: requestsReducer(state.requests, action),\n };\n }\n case REQUEST_SUCCESS: {\n let list = [ ...payload ];\n\n if (sortFunction) {\n list.sort(sortFunction);\n }\n\n return {\n ...state,\n list: list.map((resource) => {\n return getResourceId(resource);\n }),\n resources: payload.reduce((resources, resource) => {\n resources[getResourceId(resource)] = resourceReducer(undefined, {\n type: SET_RESOURCE,\n payload: resource,\n });\n return resources;\n }, {}),\n requests: requestsReducer(state.requests, action),\n };\n }\n case REQUEST_FAILURE: {\n return {\n ...state,\n requests: requestsReducer(state.requests, action),\n };\n }\n default: {\n return state;\n }\n }\n }\n\n const initialState = {\n list: [],\n resources: {},\n requests: requestsReducer(undefined, {}),\n // Use this resource initial state so that there is something to return\n // when a missing resource is selected\n _missingResourceState: resourceReducer(undefined, {}),\n };\n\n return actionFilter(\n // Only process actions targeted directly at this collection\n (action) => action?.resourceType === resourceType,\n (state = initialState, action) => {\n const {\n type,\n requestId,\n requestMethod,\n resourceId,\n } = action;\n \n // If the action is targeting a single resource, pass it along to that\n // reducer\n if (_isIndividualResourceAction(action)) {\n const resourceState = state.resources[resourceId];\n const nextResourceState = resourceReducer(resourceState, action);\n\n // If the resource is deleted, make sure we remove it from the\n // list\n let nextList = state.list;\n if (requestMethod === 'DELETE' && type === REQUEST_SUCCESS) {\n nextList = nextList.filter((id) => id !== resourceId);\n }\n\n return {\n ...state,\n list: nextList,\n resources: {\n ...state.resources,\n [resourceId]: nextResourceState,\n },\n };\n }\n \n // If `requestId` is set on the action, only process requests that were\n // specified in the constructor\n if (requestId && !state.requests[requestId]) {\n return state; // Unknown `requestId`, ignore action\n }\n \n switch (type) {\n case REQUEST_RESET: {\n return {\n ...state,\n requests: requestsReducer(state.requests, action),\n };\n }\n default: {\n if (requestMethod === 'GET') {\n return _handleGetResources(state, action);\n }\n\n else if (requestMethod === 'POST') {\n return _handlePostResource(state, action);\n }\n\n else if (requestMethod === 'PATCH') {\n return _handlePatchResource(state, action);\n }\n\n else {\n if (additionalReducers) {\n return additionalReducers(state, action);\n }\n return state;\n }\n }\n }\n }\n );\n}\n\nexport function selectResource(state, id) {\n return state.resources[id] || state._missingResourceState;\n}\n\nexport function selectResources(state) {\n return state.list.map((id) => {\n return selectResource(state, id);\n });\n}\n\nexport function selectResourcesRequest(state, requestId) {\n const request = state.requests[requestId];\n\n if (!request) {\n throw new Error(`Unknown resources request with ID \"${requestId}\"`);\n }\n\n return request;\n}\n","import {\n SET_RESOURCE,\n REQUEST_PENDING,\n REQUEST_SUCCESS,\n REQUEST_FAILURE\n} from './actions';\nimport { requestReducer } from './requestReducer';\nimport actionMap from 'Common/util/reducerUtils/actionMap';\nimport { combineReducers } from 'redux';\n\nfunction createDataReducer(options) {\n const { setResource } = options;\n\n function handleGetRequest(state, action) {\n const {\n type,\n payload,\n } = action;\n\n switch (type) {\n case REQUEST_PENDING: {\n return state;\n }\n case REQUEST_SUCCESS: {\n return setResource(payload);\n }\n case REQUEST_FAILURE: {\n return setResource(null);\n }\n default: {\n return state;\n }\n }\n }\n\n function handlePatchRequest(state, action) {\n const {\n type,\n payload,\n } = action;\n\n switch (type) {\n case REQUEST_PENDING: {\n return state;\n }\n case REQUEST_SUCCESS: {\n return setResource(payload);\n }\n case REQUEST_FAILURE: {\n return state;\n }\n default: {\n return state;\n }\n }\n }\n\n function handlePutRequest(state, action) {\n const {\n type,\n payload,\n } = action;\n\n switch (type) {\n case REQUEST_PENDING: {\n return state;\n }\n case REQUEST_SUCCESS: {\n return setResource(payload);\n }\n case REQUEST_FAILURE: {\n return state;\n }\n default: {\n return state;\n }\n }\n }\n\n function handleDeleteRequest(state, action) {\n const {\n type,\n } = action;\n\n switch (type) {\n case REQUEST_PENDING: {\n return state;\n }\n case REQUEST_SUCCESS: {\n return setResource(null);\n }\n case REQUEST_FAILURE: {\n return state;\n }\n default: {\n return state;\n }\n }\n }\n\n const initialState = setResource(null);\n\n return function dataReducer(state = initialState, action) {\n const {\n type,\n payload,\n requestMethod,\n } = action;\n\n if (type === SET_RESOURCE) {\n return setResource(payload);\n }\n\n switch (requestMethod) {\n case 'GET': {\n return handleGetRequest(state, action);\n }\n case 'PATCH': {\n return handlePatchRequest(state, action);\n }\n case 'DELETE': {\n return handleDeleteRequest(state, action);\n }\n case 'PUT': {\n return handlePutRequest(state, action);\n }\n default: {\n return state;\n }\n }\n };\n}\n\n/**\n * A reducer for a resource in a `resourceCollection`\n * \n * @param {Object} options \n * @param {string[]} options.requests array of `requestId`s handled by the resource\n * @param {function} [options.setResource] optional function to transform the\n * resource data before it is saved in the store. Called each time the data\n * is changed. \n */\n\nexport function resourceReducer(options) {\n const {\n requests: requestIds,\n setResource = (data) => data,\n } = options;\n\n const dataReducer = createDataReducer({ setResource });\n\n const requestsReducer = actionMap(\n (action) => action.requestId,\n requestIds.reduce((map, requestId) => {\n map[requestId] = requestReducer;\n return map;\n }, {})\n );\n\n const combinedReducer = combineReducers({\n data: dataReducer,\n requests: requestsReducer,\n });\n\n const initialState = combinedReducer(undefined, {});\n\n return function reducer(state = initialState, action) {\n const {\n requestId,\n } = action;\n\n // If `requestId` is set on the action, only process requests that were\n // specified in the constructor\n if (requestId && !state.requests[requestId]) {\n return state; // Unknown `requestId`, ignore action\n }\n\n return combinedReducer(state, action);\n };\n}\n\nexport function selectResourceData(state) {\n return state.data;\n}\n\nexport function selectResourceRequest(state, requestId) {\n const request = state.requests[requestId];\n\n if (!request) {\n throw new Error(`Unknown resource request with ID \"${requestId}\"` + Object.keys(state.requests));\n }\n\n return request;\n}\n","import { sendGetRequest } from 'Http/request';\nimport { getResource, resetResourceRequest } from 'Common/util/ResourceCollection';\n\nexport function getHierarchy() {\n return getResource({\n resourceType: 'hierarchy',\n requestId: 'getHierarchy',\n sendRequest: async () => {\n const response = await sendGetRequest('/api/v1/devices/hierarchy');\n\n // If the response is a 403 (forbidden), it means the user has no\n // hierarchy visibility. Just fake a success with an empty hierarchy.\n if (response.statusCode === 403) {\n return {\n ok: true,\n statusCode: 200,\n data: null,\n };\n }\n else {\n return response;\n }\n },\n });\n}\n\nexport function getHierarchyReset() {\n return resetResourceRequest({\n resourceType: 'hierarchy',\n requestId: 'getHierarchy',\n });\n}\n\nexport default getHierarchy;\n","import { sendPutRequest } from 'Http/request';\nimport { putResource } from 'Common/util/ResourceCollection';\n\nexport function putHierarchy(newHierarchy) {\n return putResource({\n resourceType: 'hierarchy',\n requestId: 'putHierarchy',\n sendRequest: () => {\n return sendPutRequest('/api/v1/devices/hierarchy', {\n body: { ...newHierarchy },\n });\n },\n });\n}\n\nexport default putHierarchy;\n","import { sendGetRequest } from 'Http/request';\nimport { requestActionCreator } from 'Common/util/ResourceCollection/requestActionCreator';\nimport { REQUEST_PENDING, REQUEST_SUCCESS, REQUEST_FAILURE } from 'Common/util/ResourceCollection/actions';\n\nexport const getSessionUser = () => requestActionCreator(\n {\n request: () => ({\n type: REQUEST_PENDING,\n requestId: 'getSessionUser',\n }),\n success: (payload) => ({\n type: REQUEST_SUCCESS,\n requestId: 'getSessionUser',\n payload,\n }),\n failure: (error) => ({\n type: REQUEST_FAILURE,\n requestId: 'getSessionUser',\n payload: { error },\n }),\n },\n () => sendGetRequest('/api/v1/accounts/user')\n);\n\nexport default getSessionUser;\n","import { sendGetRequest } from 'Http/request';\nimport { getResource } from 'Common/util/ResourceCollection';\n\nexport function getUser(userId) {\n return getResource({\n resourceType: 'users',\n requestId: 'getUser',\n resourceId: userId,\n sendRequest: () => sendGetRequest(`/api/v1/accounts/organization/users/${userId}`),\n });\n}\n\nexport default getUser;\n","import { sendGetRequest } from 'Http/request';\nimport { getResources, resetResourcesRequest } from 'Common/util/ResourceCollection';\n\nexport function getUsers() {\n return getResources({\n resourceType: 'users',\n requestId: 'getUsers',\n sendRequest: () => sendGetRequest('/api/v1/accounts/organization/users'),\n });\n}\n\nexport function getUsersReset() {\n return resetResourcesRequest({\n resourceType: 'users',\n requestId: 'getUsers',\n });\n}\n\nexport default getUsers;\n","import { sendGetRequest } from 'Http/request';\nimport { getResources, resetResourcesRequest } from 'Common/util/ResourceCollection';\n\nexport function getSupportUsers() {\n return getResources({\n resourceType: 'supportUsers',\n requestId: 'getSupportUsers',\n sendRequest: () => sendGetRequest('/api/v1/vornesupport/user'),\n });\n}\n\nexport function getSupportUsersReset() {\n return resetResourcesRequest({\n resourceType: 'supportUsers',\n requestId: 'getSupportUsers',\n });\n}\n\nexport default getSupportUsers;\n","\nexport function sortSupportUsers(accessor, direction) {\n return (dispatch, b) => {\n dispatch({\n type: 'sort-support-table',\n resourceType: 'supportUsers',\n payload: {\n accessor,\n direction,\n }\n });\n };\n}\n\nexport default sortSupportUsers;\n","\nimport { sendDeleteRequest } from 'Http/request';\nimport {\n deleteResource,\n} from 'Common/util/ResourceCollection';\n\nexport function deleteSupportUser(userId) {\n return deleteResource({\n requestId: 'deleteSupportUser',\n resourceId: userId,\n resourceType: 'supportUsers',\n sendRequest: () => sendDeleteRequest(`/api/v1/vornesupport/user/${userId}`),\n });\n}\n\nexport default deleteSupportUser;\n","\nimport { sendPatchRequest } from 'Http/request';\nimport {\n patchResource,\n} from 'Common/util/ResourceCollection';\n\nexport function patchSupportUser(userId, patch) {\n return patchResource({\n requestId: 'patchSupportUser',\n resourceId: userId,\n resourceType: 'supportUsers',\n sendRequest: () => sendPatchRequest(`/api/v1/vornesupport/user/${userId}`, { body: patch } ),\n });\n}\n\nexport default patchSupportUser;\n","import { sendGetRequest } from 'Http/request';\nimport { requestActionCreator } from 'Common/util/ResourceCollection/requestActionCreator';\n\nexport const GET_ENVIRONMENT_REQUEST = 'GET_ENVIRONMENT_REQUEST';\nexport const GET_ENVIRONMENT_SUCCESS = 'GET_ENVIRONMENT_SUCCESS';\nexport const GET_ENVIRONMENT_FAILURE = 'GET_ENVIRONMENT_FAILURE';\n\nexport const getEnvironment = () => requestActionCreator(\n {\n request: () => ({\n type: GET_ENVIRONMENT_REQUEST,\n }),\n success: (payload) => ({\n type: GET_ENVIRONMENT_SUCCESS,\n payload,\n }),\n failure: (error) => ({\n type: GET_ENVIRONMENT_FAILURE,\n payload: { error },\n }),\n },\n () => sendGetRequest('/api/v1/environment')\n);\n\nexport default getEnvironment;\n","import { getEnvironment } from './getEnvironment';\nimport { getSessionUser } from './getSessionUser';\n\nexport const INIT_APP_COMPLETE = 'INIT_APP_COMPLETE';\n\nexport function initApp() {\n return async (dispatch) => {\n await Promise.all([\n getEnvironment()(dispatch),\n getSessionUser()(dispatch)\n ]);\n\n dispatch({\n type: INIT_APP_COMPLETE,\n });\n };\n}\n\nexport default initApp;\n","import { sendPostRequest } from 'Http/request';\nimport { requestActionCreator } from 'Common/util/ResourceCollection/requestActionCreator';\nimport {\n REQUEST_RESET,\n REQUEST_PENDING,\n REQUEST_SUCCESS,\n REQUEST_FAILURE,\n} from 'Common/util/ResourceCollection/actions';\n\nexport function loginReset() {\n return {\n type: REQUEST_RESET,\n requestId: 'login',\n };\n}\n\nexport const login = ({ email, password }) => requestActionCreator(\n {\n request: () => ({\n type: REQUEST_PENDING,\n requestId: 'login',\n }),\n success: (payload) => ({\n type: REQUEST_SUCCESS,\n requestId: 'login',\n payload,\n }),\n failure: (error) => ({\n type: REQUEST_FAILURE,\n requestId: 'login',\n payload: { error },\n }),\n },\n () => sendPostRequest('/api/v1/accounts/login', {\n body: { email, password },\n })\n);\n\nexport default login;\n","import { sendPostRequest } from 'Http/request';\nimport { requestActionCreator } from 'Common/util/ResourceCollection/requestActionCreator';\nimport { REQUEST_PENDING, REQUEST_SUCCESS, REQUEST_FAILURE } from 'Common/util/ResourceCollection/actions';\n\nexport const logout = () => requestActionCreator(\n {\n request: () => ({\n type: REQUEST_PENDING,\n requestId: 'logout',\n }),\n success: (payload) => ({\n type: REQUEST_SUCCESS,\n requestId: 'logout',\n payload,\n }),\n failure: (error) => ({\n type: REQUEST_FAILURE,\n requestId: 'logout',\n payload: { error },\n }),\n },\n async () => {\n const val = await sendPostRequest('/api/v1/accounts/logout');\n document.location.href = '/';\n return new Promise((resolve, reject) => {\n resolve(val);\n });\n }\n);\n\nexport default logout;\n","import { sendPatchRequest } from 'Http/request';\nimport { requestActionCreator } from 'Common/util/ResourceCollection/requestActionCreator';\nimport { REQUEST_RESET, REQUEST_PENDING, REQUEST_SUCCESS, REQUEST_FAILURE } from 'Common/util/ResourceCollection/actions';\n\nfunction cleanUpEmail(email) {\n return email.trim().toLowerCase();\n}\n\nexport function generatePendingEmailAddressPatch(initialData, modifiedData) {\n // Clean up initial\n if (initialData === null) {\n initialData = {\n email: '',\n };\n }\n else {\n initialData = {\n ...initialData,\n email: cleanUpEmail(initialData.email),\n };\n }\n\n // Clean up modified\n if (modifiedData === null) {\n modifiedData = {\n email: '',\n };\n }\n else {\n modifiedData = {\n ...modifiedData,\n email: cleanUpEmail(modifiedData.email),\n };\n }\n\n if (initialData.email !== modifiedData.email) {\n if (modifiedData.email.length === 0) {\n // Email deleted\n return null;\n }\n else {\n // Email changed\n return {\n email: modifiedData.email,\n };\n }\n }\n else {\n // No change\n return undefined;\n }\n}\n\nexport function generateSmsEmailAddressPatch(initialData, modifiedData) {\n // Clean up initial\n if (initialData === null) {\n initialData = {\n email: '',\n };\n }\n else {\n initialData = {\n ...initialData,\n email: cleanUpEmail(initialData.email),\n };\n }\n\n // Clean up modified\n if (modifiedData === null) {\n modifiedData = {\n email: '',\n };\n }\n else {\n modifiedData = {\n ...modifiedData,\n email: cleanUpEmail(modifiedData.email),\n };\n }\n\n if (initialData.email !== modifiedData.email) {\n if (modifiedData.email.length === 0) {\n // Email deleted\n return null;\n }\n else {\n // Email changed\n return {\n email: modifiedData.email,\n };\n }\n }\n else {\n // No change\n return undefined;\n }\n}\n\nexport function generateSessionUserPatch(initialData, modifiedData) {\n const patchData = {};\n\n // Start with some cleanup\n modifiedData = {\n ...modifiedData,\n name: modifiedData.name.trim(),\n };\n\n // These are the basic fields that the user can modify\n const fields = [\n 'name',\n 'timezone',\n ];\n\n fields.forEach((key) => {\n if (initialData[key] !== modifiedData[key]) {\n patchData[key] = modifiedData[key];\n }\n });\n\n // Any values in BOTH password fields indicate the user is trying to change\n // their password\n if (modifiedData.current_password.length && modifiedData.new_password.length) {\n patchData.current_password = modifiedData.current_password;\n patchData.new_password = modifiedData.new_password;\n }\n\n return patchData;\n}\n\nexport function patchSessionUserReset() {\n return {\n type: REQUEST_RESET,\n requestId: 'patchSessionUser',\n };\n}\n\nexport const patchSessionUser = (changes) => requestActionCreator(\n {\n request: () => ({\n type: REQUEST_PENDING,\n requestId: 'patchSessionUser',\n }),\n success: (payload) => ({\n type: REQUEST_SUCCESS,\n requestId: 'patchSessionUser',\n payload,\n }),\n failure: (error) => ({\n type: REQUEST_FAILURE,\n requestId: 'patchSessionUser',\n payload: { error },\n }),\n },\n () => sendPatchRequest('/api/v1/accounts/user', {\n body: { ...changes }\n })\n);\n\nexport function patchSessionUserEmailReset() {\n return {\n type: REQUEST_RESET,\n requestId: 'patchSessionUserEmail',\n };\n}\n\nexport const patchSessionUserEmail = (changes) => requestActionCreator(\n {\n request: () => ({\n type: REQUEST_PENDING,\n requestId: 'patchSessionUserEmail',\n }),\n success: (payload) => ({\n type: REQUEST_SUCCESS,\n requestId: 'patchSessionUserEmail',\n payload,\n }),\n failure: (error) => ({\n type: REQUEST_FAILURE,\n requestId: 'patchSessionUserEmail',\n payload: { error },\n }),\n },\n () => sendPatchRequest('/api/v1/accounts/user', {\n body: { ...changes }\n })\n);\n\nexport function patchSessionUserSmsEmailReset() {\n return {\n type: REQUEST_RESET,\n requestId: 'patchSessionUserSmsEmail',\n };\n}\n\nexport const patchSessionUserSmsEmail = (changes) => requestActionCreator(\n {\n request: () => ({\n type: REQUEST_PENDING,\n requestId: 'patchSessionUserSmsEmail',\n }),\n success: (payload) => ({\n type: REQUEST_SUCCESS,\n requestId: 'patchSessionUserSmsEmail',\n payload,\n }),\n failure: (error) => ({\n type: REQUEST_FAILURE,\n requestId: 'patchSessionUserSmsEmail',\n payload: { error },\n }),\n },\n () => sendPatchRequest('/api/v1/accounts/user', {\n body: { ...changes }\n })\n);\n\nexport default patchSessionUser;\n","import { sendPatchRequest } from 'Http/request';\nimport { patchResource, resetResourceRequest } from 'Common/util/ResourceCollection';\n\nexport function generateUserPatch(initialData, modifiedData) {\n const patchData = {};\n\n // Start with some cleanup\n modifiedData = {\n ...modifiedData,\n name: modifiedData.name.trim(),\n };\n\n // These are the basic fields that the user can modify\n const fields = [\n 'name',\n 'role',\n 'active',\n 'hierarchy_visibility',\n ];\n\n fields.forEach((key) => {\n if (initialData[key] !== modifiedData[key]) {\n patchData[key] = modifiedData[key];\n }\n });\n\n return patchData;\n}\n\nexport function patchUser(userId, changes) {\n return patchResource({\n resourceType: 'users',\n requestId: 'patchUser',\n resourceId: userId,\n sendRequest: () => sendPatchRequest(`/api/v1/accounts/organization/users/${userId}`, {\n body: { ...changes }\n }),\n });\n}\n\nexport function patchUserReset(userId) {\n return resetResourceRequest({\n resourceType: 'users',\n requestId: 'patchUser',\n resourceId: userId,\n });\n}\n\nexport default patchUser;\n","import { sendGetRequest } from 'Http/request';\nimport { requestActionCreator } from 'Common/util/ResourceCollection/requestActionCreator';\n\nexport const GET_ORGANIZATION_REQUEST = 'GET_ORGANIZATION_REQUEST';\nexport const GET_ORGANIZATION_SUCCESS = 'GET_ORGANIZATION_SUCCESS';\nexport const GET_ORGANIZATION_FAILURE = 'GET_ORGANIZATION_FAILURE';\n\nexport const getOrganization = () => requestActionCreator(\n {\n request: () => ({\n type: GET_ORGANIZATION_REQUEST,\n }),\n success: (payload) => ({\n type: GET_ORGANIZATION_SUCCESS,\n payload,\n }),\n failure: (error) => ({\n type: GET_ORGANIZATION_FAILURE,\n payload: { error },\n }),\n },\n () => sendGetRequest('/api/v1/accounts/organization')\n);\n\nexport default getOrganization;\n","import { sendPatchRequest } from 'Http/request';\nimport { requestActionCreator } from 'Common/util/ResourceCollection/requestActionCreator';\n\nexport const PATCH_ORGANIZATION_RESET = 'PATCH_ORGANIZATION_RESET';\nexport const PATCH_ORGANIZATION_REQUEST = 'PATCH_ORGANIZATION_REQUEST';\nexport const PATCH_ORGANIZATION_SUCCESS = 'PATCH_ORGANIZATION_SUCCESS';\nexport const PATCH_ORGANIZATION_FAILURE = 'PATCH_ORGANIZATION_FAILURE';\n\nexport function patchOrganizationReset() {\n return {\n type: PATCH_ORGANIZATION_RESET,\n };\n}\n\nexport const patchOrganization = (changes) => requestActionCreator(\n {\n request: () => ({\n type: PATCH_ORGANIZATION_REQUEST,\n }),\n success: (payload) => ({\n type: PATCH_ORGANIZATION_SUCCESS,\n payload,\n }),\n failure: (error) => ({\n type: PATCH_ORGANIZATION_FAILURE,\n payload: { error },\n }),\n },\n () => sendPatchRequest('/api/v1/accounts/organization', {\n body: { ...changes }\n })\n);\n\nexport default patchOrganization;\n","import { sendGetRequest } from 'Http/request';\nimport { getResources } from 'Common/util/ResourceCollection';\n\nexport function getAlerts() {\n return getResources({\n resourceType: 'alerts',\n requestId: 'getAlerts',\n sendRequest: async () => {\n return sendGetRequest('/api/v1/alerts');\n },\n });\n}\n\nexport default getAlerts;\n","import { sendPatchRequest } from 'Http/request';\nimport { patchResources } from 'Common/util/ResourceCollection';\nimport isEqual from 'lodash/isEqual';\n\nconst PATCH_KEYS = [ 'id', 'metric', 'process_state', 'comparison', 'threshold' ];\n\nfunction extractPatchKeys(alert) {\n return PATCH_KEYS.reduce((rv, key) => {\n if (alert[key] !== undefined) {\n rv[key] = alert[key];\n }\n return rv;\n }, {});\n}\n\nfunction withoutId(alert) {\n const { id, ...other } = alert;\n return other;\n}\n\nexport function generateAlertsPatch(initialData, modifiedData) {\n const patchData = {\n add: {},\n replace: {},\n remove: {},\n };\n\n Object.keys(initialData).forEach((alertType) => {\n // Remove all fields that shouldn't be present in the request\n const initialAlerts = initialData[alertType].map(extractPatchKeys);\n const modifiedAlerts = modifiedData[alertType].map(extractPatchKeys);\n\n let patch = { add: [], replace: [], remove: [] };\n\n // Map of initial alerts, key is the alert id\n let initial = {};\n\n initialAlerts.forEach((alert) => {\n initial[alert.id] = alert;\n });\n\n // Map of modified or unchnaged alerts, key is the alert id\n let modified = {};\n\n modifiedAlerts.forEach((alert) => {\n const alertId = alert.id;\n\n // If the alert isn't in the the initial set, it must be new\n if (!Object.prototype.hasOwnProperty.call(initial, alertId)) {\n // Remove alert field and push\n patch.add.push(withoutId(alert));\n }\n else {\n // Alert is either modified or unchanged, store it\n modified[alertId] = alert;\n\n // Test to see if the alert was modified at all\n if (!isEqual(alert, initial[alertId])) {\n patch.replace.push(alert);\n }\n }\n });\n\n // Find alerts from the initial set that no longer exist, those\n // are ones that will be removed\n Object.keys(initial).forEach((alertId) => {\n if (!Object.prototype.hasOwnProperty.call(modified, alertId)) {\n patch.remove.push(Number(alertId));\n }\n });\n\n patchData.add[alertType] = patch.add;\n patchData.replace[alertType] = patch.replace;\n patchData.remove[alertType] = patch.remove;\n });\n\n return patchData;\n}\n\nexport function patchAlerts(data) {\n return patchResources({\n resourceType: 'alerts',\n requestId: 'patchAlerts',\n sendRequest: async (changes) => {\n return sendPatchRequest('/api/v1/alerts', {\n body: { ...data },\n });\n },\n });\n}\n","import { sendGetRequest } from 'Http/request';\nimport { getResources } from 'Common/util/ResourceCollection';\n\nexport function getDeviceSubscriptions() {\n return getResources({\n resourceType: 'deviceSubscriptions',\n requestId: 'getDeviceSubscriptions',\n sendRequest: async () => {\n return sendGetRequest('/api/v1/accounts/user/device-subscriptions');\n },\n });\n}\n\nexport default getDeviceSubscriptions;\n","import { sendPatchRequest } from 'Http/request';\nimport { patchResources } from 'Common/util/ResourceCollection';\n\nexport function generateDeviceSubscriptionsPatch(initialData, modifiedData) {\n const generateMap = ids => ids.reduce((map, id) => {\n map[id] = true;\n return map;\n }, {});\n\n const initialDataMap = generateMap(initialData);\n const modifiedDataMap = generateMap(modifiedData);\n\n let patch = { add: [], remove: [] };\n\n // IDs in initial but not modified have been removed\n Object.keys(initialDataMap).forEach((id) => {\n if (!modifiedDataMap[id]) {\n patch.remove.push(Number(id));\n }\n });\n\n // IDs in modified but not initial have been added\n Object.keys(modifiedDataMap).forEach((id) => {\n if (!initialDataMap[id]) {\n patch.add.push(Number(id));\n }\n });\n\n return patch;\n}\n\nexport function patchDeviceSubscriptions(data) {\n return patchResources({\n resourceType: 'deviceSubscriptions',\n requestId: 'patchDeviceSubscriptions',\n requestData: data,\n sendRequest: async () => {\n return sendPatchRequest('/api/v1/accounts/user/device-subscriptions', {\n body: { ...data },\n });\n },\n });\n}\n","import { sendGetRequest } from 'Http/request';\nimport { getResources } from 'Common/util/ResourceCollection';\n\nexport function getAlertWindow() {\n return getResources({\n resourceType: 'alertWindow',\n requestId: 'getAlertWindow',\n sendRequest: async () => {\n return sendGetRequest('/api/v1/accounts/user/alert-window');\n },\n });\n}\n\nexport default getAlertWindow;\n","import { sendPatchRequest } from 'Http/request';\nimport { patchResources } from 'Common/util/ResourceCollection';\n\nexport function patchAlertWindow(data) {\n return patchResources({\n resourceType: 'alertWindow',\n requestId: 'patchAlertWindow',\n requestData: data,\n sendRequest: async () => {\n return sendPatchRequest('/api/v1/accounts/user/alert-window', {\n body: { ...data },\n });\n },\n });\n}\n","import { sendGetRequest } from 'Http/request';\nimport { requestActionCreator } from 'Common/util/ResourceCollection/requestActionCreator';\n\nexport const GET_VERSION_REQUEST = 'GET_VERSION_REQUEST';\nexport const GET_VERSION_SUCCESS = 'GET_VERSION_SUCCESS';\nexport const GET_VERSION_FAILURE = 'GET_VERSION_FAILURE';\n\nexport const getVersion = () => requestActionCreator(\n {\n request: () => ({\n type: GET_VERSION_REQUEST,\n }),\n success: (payload) => ({\n type: GET_VERSION_SUCCESS,\n payload,\n }),\n failure: (error) => ({\n type: GET_VERSION_FAILURE,\n payload: { error },\n }),\n },\n () => sendGetRequest('/api/service/version')\n);\n\nexport default getVersion;\n","\nimport { sendPostRequest } from 'Http/request';\nimport {\n postResource,\n} from 'Common/util/ResourceCollection';\n\nexport function postEmailTemplate(post, onSuccess) {\n return postResource({\n requestId: 'postEmailTemplate',\n resourceType: 'emailTemplates',\n sendRequest: () => {\n const promise = sendPostRequest('/api/v1/reports', { body: post } );\n promise.then((response) => {\n if (onSuccess) {\n onSuccess(response.data);\n }\n });\n return promise;\n },\n });\n}\n\nexport default postEmailTemplate;\n","\nimport { sendPatchRequest } from 'Http/request';\nimport {\n patchResource,\n} from 'Common/util/ResourceCollection';\n\nexport function patchEmailTemplate(emailTemplateId, patch) {\n return patchResource({\n requestId: 'patchEmailTemplate',\n resourceId: emailTemplateId,\n resourceType: 'emailTemplates',\n sendRequest: () => sendPatchRequest(`/api/v1/reports/${emailTemplateId}`, { body: patch } ),\n });\n}\n\nexport default patchEmailTemplate;\n","import { sendGetRequest } from 'Http/request';\nimport { getResources, resetResourcesRequest } from 'Common/util/ResourceCollection';\n\nexport function getEmailTemplates() {\n return getResources({\n resourceType: 'emailTemplates',\n requestId: 'getEmailTemplates',\n sendRequest: () => sendGetRequest('/api/v1/reports'),\n });\n}\n\nexport function getEmailTemplateReset() {\n return resetResourcesRequest({\n resourceType: 'emailTemplates',\n requestId: 'getEmailTemplates',\n });\n}\n\nexport default getEmailTemplates;\n","\nimport { sendDeleteRequest } from 'Http/request';\nimport {\n deleteResource,\n} from 'Common/util/ResourceCollection';\n\nexport function deleteEmailTemplate(emailTemplateId) {\n return deleteResource({\n requestId: 'deleteEmailTemplate',\n resourceId: emailTemplateId,\n resourceType: 'emailTemplates',\n sendRequest: () => sendDeleteRequest(`/api/v1/reports/${emailTemplateId}`),\n });\n}\n\nexport default deleteEmailTemplate;\n","import { sendGetRequest } from 'Http/request';\nimport { getResources } from 'Common/util/ResourceCollection';\n\nexport function getEmailSubscriptions() {\n return getResources({\n resourceType: 'emailSubscriptions',\n requestId: 'getEmailSubscriptions',\n sendRequest: async () => {\n return sendGetRequest('/api/v1/accounts/user/report-subscriptions');\n },\n });\n}\n\nexport default getEmailSubscriptions;\n","import { sendPatchRequest } from 'Http/request';\nimport { patchResources } from 'Common/util/ResourceCollection';\nimport isEqual from 'lodash/isEqual';\n\nexport function generateEmailSubscriptionsPatch(initialData, modifiedData) {\n const generateMap = ids => ids.reduce((map, subscription) => {\n map[subscription.data.id] = subscription;\n return map;\n }, {});\n\n const initialDataMap = generateMap(initialData);\n const modifiedDataMap = generateMap(modifiedData);\n\n let patch = { add: [], remove: [], replace: [] };\n\n // IDs in initial but not modified have been removed\n Object.keys(initialDataMap).forEach((id) => {\n if (!modifiedDataMap[id]) {\n patch.remove.push(Number(id));\n }\n });\n\n Object.keys(modifiedDataMap).forEach((id) => {\n if (!initialDataMap[id]) {\n const mod = modifiedDataMap[id].data;\n // remove the id property before saving, this is temporary to make front-end work, the\n // backend will assign the official key when saved\n let { id: xx, ...val } = mod;\n patch.add.push(val);\n }\n });\n\n // IDs in modified and initial then see if they are different\n Object.keys(modifiedDataMap).forEach((id) => {\n if (initialDataMap[id]) {\n const orig = initialDataMap[id].data;\n const mod = modifiedDataMap[id].data;\n\n if (!isEqual(orig, mod)) {\n patch.replace.push(mod);\n }\n\n }\n });\n\n return patch;\n}\n\nexport function patchEmailSubscriptions(data) {\n return patchResources({\n resourceType: 'emailSubscriptions',\n requestId: 'patchEmailSubscriptions',\n requestData: data,\n sendRequest: async () => {\n return sendPatchRequest('/api/v1/accounts/user/report-subscriptions', {\n body: { ...data },\n });\n },\n });\n}\n","import { sendGetRequest } from 'Http/request';\nimport { getResource } from 'Common/util/ResourceCollection';\n\nexport function getMetricThresholds() {\n return getResource({\n resourceType: 'metricThresholds',\n requestId: 'getMetricThresholds',\n sendRequest: async () => {\n return sendGetRequest('/api/v1/alerts/metric-thresholds');\n }\n });\n}\n\nexport default getMetricThresholds;\n","import { sendPutRequest } from 'Http/request';\nimport { putResource } from 'Common/util/ResourceCollection';\n\nexport function putMetricThresholds(newMetricThresholds) {\n return putResource({\n resourceType: 'metricThresholds',\n requestId: 'putMetricThresholds',\n sendRequest: () => {\n return sendPutRequest('/api/v1/alerts/metric-thresholds', {\n body: { ...newMetricThresholds },\n });\n },\n });\n}\n\nexport default putMetricThresholds;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction defaultLocale() {\n throw new Error('a locale must be provided in order to format text');\n}\n\nexport const LocaleContext = React.createContext(defaultLocale);\n\nexport const LocaleConsumer = LocaleContext.Consumer;\n\n/**\n * A provider for the LocaleContext which allows child elements to access the\n * device's locale via a LocaleConsumer or the useLocale hook.\n *\n * @param {Function} getLocale A function which returns the locale of the device\n * @param {Node} children\n *\n * @see useLocale\n */\nfunction LocaleProvider({\n getLocale,\n children,\n}) {\n if (!children) {\n return null;\n }\n\n if (!getLocale) {\n getLocale = defaultLocale;\n }\n\n return (\n \n {children}\n \n );\n}\n\nLocaleProvider.propTypes = {\n getLocale: PropTypes.func.isRequired,\n children: PropTypes.node,\n};\n\nexport default LocaleProvider;\n","import styled from 'styled-components';\n\nexport const FontWeight = {\n light: 200,\n regular: 400,\n medium: 700,\n bold: 800,\n};\n\nexport const FontFamily = {\n primary: 'Roboto, Helvetica, sans-serif',\n secondary: '\"Lucida Grande\", \"Lucida Sans Unicode\", Arial, Helvetica, sans-serif',\n serif: 'Georgia, \"Times New Roman\", Times, serif',\n};\n\n// TITLES\n\nexport const T1 = styled.span`\n font-family: ${FontFamily.primary};\n font-size: 28px;\n font-weight: ${FontWeight.medium};\n`;\n\nexport const T2 = styled.span`\n font-family: ${FontFamily.primary};\n font-size: 21px;\n font-weight: ${FontWeight.medium};\n`;\n\nexport const T3 = styled.span`\n font-family: ${FontFamily.primary};\n font-size: 18px;\n font-weight: ${FontWeight.medium};\n`;\n\nexport const T4 = styled.span`\n font-family: ${FontFamily.primary};\n font-size: 18px;\n font-weight: ${FontWeight.medium};\n`;\n\nexport const T5 = styled.span`\n font-family: ${FontFamily.primary};\n font-size: 18px;\n font-weight: ${FontWeight.regular};\n`;\n\nexport const T6 = styled.span`\n font-family: ${FontFamily.primary};\n font-size: 14px;\n font-weight: ${FontWeight.medium};\n`;\n\n// SUBTITLES\n\nexport const Subtitle1 = styled.span`\n font-family: ${FontFamily.primary};\n font-size: 14px;\n font-weight: ${FontWeight.regular};\n`;\n\nexport const Subtitle2 = styled.span`\n font-family: ${FontFamily.primary};\n font-size: 12px;\n font-weight: ${FontWeight.medium};\n`;\n\n// BODY\n\nexport const Body1 = styled.span`\n font-family: ${FontFamily.primary};\n font-size: 14px;\n font-weight: ${FontWeight.regular};\n`;\n\nexport const Body2 = styled.span`\n font-family: ${FontFamily.secondary};\n font-size: 12px;\n font-weight: ${FontWeight.regular};\n`;\n\n// OTHER\n\nexport const Button = styled.span`\n font-family: ${FontFamily.primary};\n font-size: 14px;\n font-weight: ${FontWeight.medium};\n`;\n\nexport const Caption = styled.span`\n font-family: ${FontFamily.primary};\n font-size: 12px;\n font-weight: ${FontWeight.medium};\n`;\n\nexport const Overline = styled.span`\n font-family: ${FontFamily.primary};\n font-size: 14px;\n font-weight: ${FontWeight.medium};\n text-transform: uppercase;\n`;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!./style.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!./style.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport 'Fonts/vornefont/style.css';\nimport classNames from 'classnames';\n\nexport default class VorneIcon extends React.Component {\n render() {\n const { className, ...otherProps } = this.props;\n\n return (\n \n );\n }\n}\n\nVorneIcon.propTypes = {\n className: PropTypes.string,\n i: PropTypes.string,\n};\n\nVorneIcon.defaultProps = {\n i: '',\n};\n","import React from 'react';\nimport styled from 'styled-components';\n\nconst Box = styled.div``;\n\nconst Root = styled.div`\n margin-left: auto;\n margin-right: auto;\n\n ${Box} {\n display: inline-block;\n width: 1.2em;\n height: 2em;\n background-color: ${(props) => props.theme.colors.palette.blue.awesome};\n\n margin-left: 0.2em;\n margin-right: 0.2em;\n\n animation-name: box-grow;\n animation-duration: 1.6s;\n animation-timing-function: ease-in-out;\n animation-iteration-count: infinite;\n animation-direction: both;\n\n :nth-child(2) {\n animation-delay: 0.2s;\n }\n\n :nth-child(3) {\n animation-delay: 0.4s;\n }\n }\n\n @keyframes box-grow {\n 0%, 90%, 100% {\n transform: scale(0.4);\n }\n 50% {\n transform: scale(1.0);\n }\n }\n`;\n\nfunction LoadingIndicator(props) {\n return (\n \n \n \n \n \n );\n}\n\nexport default LoadingIndicator;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { Body1 } from 'Components/typography/typography';\n\nconst NoticeBox = styled.div`\n box-sizing: border-box;\n background-color: ${props => props.colors.background};\n color: ${props => props.colors.text};\n border-radius: 5px;\n border: 2px solid ${props => props.colors.border};\n margin-bottom: 8px;\n padding: 20px 28px;\n`;\n\nfunction Notice({ children, textColor, backgroundColor, borderColor, ...otherProps }) {\n const boxColors = {\n background: backgroundColor,\n text: textColor,\n border: borderColor,\n };\n\n return (\n \n \n {children}\n \n \n );\n}\n\nNotice.defaultProps = {\n backgroundColor: '#ffffff',\n textColor: '#000000',\n borderColor: 'transparent',\n};\n\nNotice.propTypes = {\n children: PropTypes.node,\n textColor: PropTypes.string,\n backgroundColor: PropTypes.string,\n borderColor: PropTypes.string,\n};\n\nexport default Notice;\n","import React from 'react';\nimport { withTheme } from 'styled-components';\nimport PropTypes from 'prop-types';\n\nimport Notice from './Notice';\n\nfunction ErrorNotice({ children, theme, ...otherProps }) {\n return (\n \n {children}\n \n );\n}\n\nErrorNotice.propTypes = {\n children: PropTypes.node,\n theme: PropTypes.object.isRequired,\n};\n\nexport default withTheme(ErrorNotice);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ErrorNotice from 'Components/notice/ErrorNotice';\n\nfunction ErrorLoadingMessage(props) {\n const { children, ...otherProps } = props;\n\n return (\n \n {children}\n \n );\n}\n\nErrorLoadingMessage.propTypes = {\n children: PropTypes.node,\n};\n\nexport default ErrorLoadingMessage;\n","import React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nimport LoadingIndicator from 'Components/loading-indicator/LoadingIndicator';\nimport ErrorLoadingMessage from 'Components/loading-indicator/ErrorLoadingMessage';\n\nconst Root = styled.div``;\n\nconst LoadingIndicatorWrapper = styled.div`\n padding: 16px;\n text-align: center;\n`;\n\nfunction LoadingWrapper({ loading, children, error, render, ...otherProps }) {\n let internalJsx;\n\n if (render && children) {\n console.error('Cannot supply both children and a render prop to LoadingWrapper.');\n return null;\n }\n\n if (loading) {\n internalJsx = (\n \n \n \n );\n }\n else if (error) {\n internalJsx = (\n \n {error}\n \n );\n }\n else {\n internalJsx = children || (render ? render() : null);\n }\n\n return (\n \n {internalJsx}\n \n );\n}\n\nLoadingWrapper.defaultProps = {\n loading: true,\n};\n\nLoadingWrapper.propTypes = {\n children: PropTypes.node,\n render: PropTypes.func,\n loading: PropTypes.bool,\n error: PropTypes.string,\n};\n\nexport default LoadingWrapper;\n","import React from 'react';\n\n/**\n * A composite `PropTypes` validator that takes in multiple validators and passes\n * if at least one of them passes.\n *\n * @param {function[]} validators An array of PropTypes validators\n */\nexport function anyOf(validators) {\n function validate(props, propName, componentName, ...rest) {\n let passed = false;\n\n let errors = validators\n .map((validator) => {\n // optimize to stop validating if one passed\n if (passed) {\n return;\n }\n\n if (typeof validator !== 'function') {\n throw new TypeError(`anyOf: expected valildator of type \\`function\\`, got \\`${typeof validator}\\``);\n }\n\n const error = validator(props, propName, componentName, ...rest);\n if (!error) {\n passed = true;\n }\n return error;\n })\n .filter((error) => !!error);\n\n if (!passed) {\n return new Error(`${componentName} prop ${propName} must satisfy at least one of the following errors:\\n`\n + `${errors.map((error, i) => `\\t\\t${i + 1}. ${error.message}`).join('\\n')}`);\n }\n }\n\n validate.isRequired = function(props, propName, componentName, ...rest) {\n if (typeof props[propName] === 'undefined') {\n return new Error(`Missing prop ${propName} in component ${componentName}`);\n }\n else {\n return validate(props, propName, componentName, ...rest);\n }\n };\n\n return validate;\n}\n\nfunction _assertChildrenPropName(propName, componentName) {\n if (propName !== 'children') {\n throw new Error(`\\`${componentName}.propTypes.${propName}\\` has invalid use of \\`elementsOfType\\`.`\n + 'This validator should only be used for the prop `children`.');\n }\n}\n\nfunction _validateElementType({ el, allowedTypes, componentName, propName }) {\n let error;\n\n let elemDisplayType = typeof el;\n\n if (el === null) {\n return; // nulls can be ignored\n }\n else if (typeof el === 'object') {\n if (allowedTypes.indexOf(el.type) !== -1) {\n return;\n }\n else {\n elemDisplayType = String((el.type && el.type.displayName) || el.type);\n }\n }\n\n error = new Error(`${componentName} has invalid ${propName} element type of \"${elemDisplayType}\".`\n + ` Elements must be of type (${allowedTypes.map(c=>c.displayName).join('|')})`);\n\n return error;\n}\n\n/**\n * A `PropTypes` validator that checks that all the elements are one of the provided\n * element types. NOTE: Should only be used on the `children` prop.\n *\n * @param {*[]} allowedTypes An array of element types\n */\nexport function elementsOfType(allowedTypes) {\n return (props, propName, componentName) => {\n _assertChildrenPropName(propName, componentName);\n\n const children = props[propName];\n let error;\n\n // Children must be of the proper type\n React.Children.forEach(children, (el) => {\n if (error) {\n return ;\n }\n\n error = _validateElementType({\n el,\n allowedTypes,\n componentName,\n propName,\n });\n });\n\n return error;\n };\n}\n\n/**\n * A `PropTypes` validator that checks that there is one child and the element is one\n * of the provided element types. NOTE: Should only be used on the `children` prop.\n *\n * @param {*[]} allowedTypes An array of element types\n */\nexport function elementOfType(allowedTypes) {\n return (props, propName, componentName) => {\n _assertChildrenPropName(propName, componentName);\n\n const children = props[propName];\n let error;\n\n try {\n const childEl = React.Children.only(children);\n\n error = _validateElementType({\n el: childEl,\n allowedTypes,\n componentName,\n propName,\n });\n }\n catch (e) {\n error = new Error(`${componentName} has more than one child element.`\n + ' If multiple children are expected use `elementsOfType` instead.');\n }\n\n return error;\n };\n}\n\nexport function strictNull(props, propName, componentName) {\n if (props[propName] !== null) {\n return new Error(`${componentName} prop ${propName} must be null.`);\n }\n}\n\nstrictNull.isRequired = function(props, propName, componentName, ...rest) {\n if (typeof props[propName] === 'undefined') {\n return new Error(`Missing prop ${propName} in component ${componentName}`);\n }\n};\n\nexport function nullable(propType) {\n return anyOf([\n strictNull,\n propType,\n ]);\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport classNames from 'classnames';\n\nconst Overlay = styled.div``;\n\nconst Root = styled.button`\n position: relative;\n cursor: pointer;\n outline: none;\n\n & > ${Overlay} {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: ${(p) => p.theme.colors.palette.black};\n opacity: 0;\n transition: all 300ms;\n border-radius: inherit;\n }\n\n &[disabled] {\n cursor: default;\n }\n\n &:active > ${Overlay} {\n opacity: 0.125;\n }\n\n &:not(:active) {\n /* Overlay when selected */\n &.selected > ${Overlay} {\n opacity: 0.15;\n }\n\n /* Only :hover and :focus when not selected */\n &:not(.selected) {\n :hover > ${Overlay} {\n opacity: 0.06;\n }\n\n :focus > ${Overlay} {\n opacity: 0.10;\n }\n }\n }\n`;\n\nconst ButtonLike = React.forwardRef((props, ref) => {\n const {\n Component,\n className: classNameProp,\n children,\n selected,\n disabled,\n ...otherProps\n } = props;\n\n const className = classNames(classNameProp, { selected: selected });\n\n return (\n \n \n {children}\n \n );\n});\n\nButtonLike.defaultProps = {\n Component: 'button',\n selected: false,\n disabled: false,\n};\n\nButtonLike.propTypes = {\n Component: PropTypes.any,\n className: PropTypes.string,\n children: PropTypes.node,\n selected: PropTypes.bool,\n disabled: PropTypes.bool,\n};\n\nButtonLike.displayName = 'ButtonLike';\n\nexport default ButtonLike;\n","import styled from 'styled-components';\nimport { Button as ButtonTypography } from 'Components/typography/typography';\n\n const ButtonText = styled(ButtonTypography)`\n display: inline-block;\n flex: 1 1 auto;\n`;\n\nexport default ButtonText;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { anyOf, elementsOfType } from 'Components/util/propTypesUtils';\nimport styled from 'styled-components';\nimport ButtonLike from './ButtonLike';\nimport ButtonText from './ButtonText';\n\nconst Root = styled(ButtonLike)`\n display: inline-flex;\n box-sizing: border-box;\n align-items: center;\n justify-content: center;\n text-align: center;\n\n border: none;\n border-radius: 3px;\n padding: 0 16px;\n min-height: 30px;\n height: 30px;\n\n &[disabled] {\n opacity: 0.2;\n }\n`;\n\nexport default function Button(props) {\n const {\n children: childrenProp,\n ...otherProps\n } = props;\n\n let children = React.Children.toArray(childrenProp);\n\n // if the only child is just a string, wrap it in the proper element\n if (children.length === 1 && typeof children[0] === 'string') {\n children = {children};\n }\n\n return (\n {children}\n );\n}\n\nButton.defaultProps = {\n children: undefined,\n type: 'button',\n};\n\nButton.propTypes = {\n children: anyOf([\n PropTypes.string,\n elementsOfType([ ButtonText ]),\n ]),\n type: PropTypes.string,\n};\n","import React from 'react';\n\n/**\n * Attempts to get a display name for a component class\n * @param {function|string} Component\n */\nexport function getDisplayName(Component) {\n return typeof Component === 'string' ? Component :\n (Component.displayName || Component.name || 'Component');\n}\n\n/**\n * A higher-order component that blocks intercepts props so they are not passed\n * into the component it wraps\n * @param {function|string} Component React component class\n * @param {string[]} propNames props that should be intercepted/removed\n */\nexport function interceptProps(Component, propNames) {\n const WrappedComponent = React.forwardRef((props, ref) => {\n const otherProps = { ...props };\n\n propNames.forEach((propName) => {\n delete otherProps[propName];\n });\n\n return ;\n });\n\n WrappedComponent.displayName = `InterceptProps(${getDisplayName(Component)})`;\n\n return WrappedComponent;\n}\n","import React from 'react';\nimport styled, { withTheme } from 'styled-components';\nimport PropTypes from 'prop-types';\nimport Button from './Button';\nimport { interceptProps } from 'Components/util/reactUtils';\n\nconst Root = styled(interceptProps(Button, [ '__textColor' ]))`\n color: ${(props) => props.__textColor};\n background-color: transparent;\n padding: 0 8px;\n`;\n\nfunction TextButton(props) {\n const {\n theme,\n color,\n children,\n ...otherProps\n } = props;\n\n let textColor = theme.colors[color];\n\n return (\n \n {children}\n \n );\n}\n\nTextButton.propTypes = {\n theme: PropTypes.object.isRequired,\n color: PropTypes.string.isRequired,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node\n ])\n};\n\nexport default withTheme(TextButton);\n","import React from 'react';\nimport styled, { withTheme } from 'styled-components';\nimport PropTypes from 'prop-types';\nimport Button from './Button';\nimport { interceptProps } from 'Components/util/reactUtils';\n\nconst Root = styled(interceptProps(Button, ['styled']))`\n color: ${(props) => props.styled.textColor};\n background-color: ${(props) => props.styled.bgColor};\n`;\n\nfunction ContainedButton(props) {\n const {\n theme,\n children,\n ...otherProps\n } = props;\n\n let bgColor = theme.colors.palette.blue.awesome;\n let textColor = theme.colors.palette.white;\n\n return (\n \n {children}\n \n );\n}\n\nContainedButton.propTypes = {\n theme: PropTypes.object.isRequired,\n children: PropTypes.node,\n};\n\nexport default withTheme(ContainedButton);\n","import React from 'react';\n\nconst defaultContext = {\n focused: false,\n required: false,\n disabled: false,\n error: false,\n onFocus: () => {},\n onBlur: () => {},\n};\n\nconst FormElementContext = React.createContext(defaultContext);\n\nexport default FormElementContext;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport FormElementContext from './FormElementContext';\n\nexport default class FormElement extends React.Component {\n constructor() {\n super();\n this.state = {\n focused: false,\n };\n this._handleFocus = this._handleFocus.bind(this);\n this._handleBlur = this._handleBlur.bind(this);\n }\n\n _handleFocus() {\n this.setState({ focused: true });\n }\n\n _handleBlur() {\n this.setState({ focused: false });\n }\n\n render() {\n const {\n Component,\n disabled,\n required,\n error,\n ...otherProps\n } = this.props;\n\n const contextValue = {\n ...this.state,\n disabled,\n required,\n error,\n onFocus: this._handleFocus,\n onBlur: this._handleBlur,\n };\n\n return (\n \n \n \n );\n }\n}\n\nFormElement.defaultProps = {\n Component: 'div',\n disabled: false,\n required: false,\n error: false,\n};\n\nFormElement.propTypes = {\n Component: PropTypes.any,\n disabled: PropTypes.bool,\n required: PropTypes.bool,\n error: PropTypes.bool,\n};\n","import React from 'react';\nimport { getDisplayName } from 'Components/util/reactUtils';\nimport FormElementContext from './FormElementContext';\n\nexport default function withFormElementContext(WrappedComponent) {\n const WithFormElementContext = React.forwardRef((props, ref) => (\n \n {(context) => {\n return (\n \n );\n }}\n \n ));\n\n // Wrap the display name for easy debugging\n WithFormElementContext.displayName = `WithFormElementContext(${getDisplayName(WrappedComponent)})`;\n\n return WithFormElementContext;\n}\n","import React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { Body1 } from 'Components/typography/typography';\nimport withFormElementContext from 'Components/form-element/withFormElementContext';\n\nconst Root = styled(Body1).attrs({ as: 'input' })`\n position: relative;\n display: block;\n box-sizing: border-box;\n width: 100%;\n padding: 0 6px;\n height: calc(2em + 2px);\n line-height: 2em;\n border: 1px solid rgba(0, 0, 0, 0.25);\n outline: none;\n\n &.error {\n border: 1px solid ${props => props.theme.colors.palette.error.red};\n }\n\n &.focused:not(.error) {\n border: 1px solid rgba(0, 0, 0, 1.0);\n }\n\n &[disabled] {\n cursor: default;\n color: ${props => props.theme.colors.darkText.disabled};\n background-color: rgba(0,0,0,0.05);\n }\n`;\n\nclass TextInputField extends React.Component {\n constructor() {\n super();\n }\n\n _handleFocus = (event) => {\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n this.props.formElementContext.onFocus(event);\n };\n\n _handleBlur = (event) => {\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n this.props.formElementContext.onBlur(event);\n };\n\n render() {\n const {\n className: classNameProp,\n formElementContext,\n readOnly,\n disabled: disabledProps,\n ...otherProps\n } = this.props;\n\n const {\n focused,\n disabled: disabledFormContext,\n required,\n error,\n } = formElementContext;\n\n const className = classNames(classNameProp, { focused, error });\n\n return (\n \n );\n }\n}\n\nTextInputField.defaultProps = {\n readOnly: false,\n};\n\nTextInputField.propTypes = {\n className: PropTypes.string,\n formElementContext: PropTypes.object.isRequired,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n};\n\nexport default withFormElementContext(TextInputField);\n","import React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { Caption } from 'Components/typography/typography';\nimport withFormElementContext from 'Components/form-element/withFormElementContext';\n\nconst Root = styled(Caption).attrs({ as: 'label' })`\n display: block;\n box-sizing: border-box;\n width: 100%;\n line-height: 2em;\n color: ${props => props.theme.colors.darkText.mediumEmphasis};\n transition: color 300ms;\n\n &.error {\n color: ${props => props.theme.colors.palette.error.red};\n }\n\n &.focused:not(.error) {\n color: ${props => props.theme.colors.darkText.highEmphasis};\n }\n`;\n\nclass FormElementLabel extends React.Component {\n render() {\n const {\n className: classNameProp,\n formElementContext,\n ...otherProps\n } = this.props;\n\n const { focused, error } = formElementContext;\n\n const className = classNames(classNameProp, { focused, error });\n\n return (\n \n );\n }\n}\n\nFormElementLabel.defaultProps = {\n className: ''\n};\n\nFormElementLabel.propTypes = {\n className: PropTypes.string,\n formElementContext: PropTypes.object.isRequired,\n};\n\nexport default withFormElementContext(FormElementLabel);\n","import styled from 'styled-components';\nimport FormElementLabel from 'Components/form-element/FormElementLabel';\n\nconst TextInputLabel = styled(FormElementLabel)``;\n\nexport default TextInputLabel;\n","import React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { Caption } from 'Components/typography/typography';\nimport withFormElementContext from 'Components/form-element/withFormElementContext';\n\nconst Root = styled(Caption)`\n display: block;\n box-sizing: border-box;\n width: 100%;\n min-height: 1.5em;\n line-height: 1.5em;\n opacity: 0.3;\n transition: opacity 300ms;\n\n &.error {\n color: ${props => props.theme.colors.palette.error.red};\n opacity: 1.0;\n }\n`;\n\nclass FormElementHelperText extends React.Component {\n render() {\n const {\n className: classNameProp,\n formElementContext,\n ...otherProps\n } = this.props;\n\n const { error } = formElementContext;\n\n const className = classNames(classNameProp, { error });\n\n return (\n \n );\n }\n}\n\nFormElementHelperText.defaultProps = {\n className: ''\n};\n\nFormElementHelperText.propTypes = {\n className: PropTypes.string,\n formElementContext: PropTypes.object.isRequired,\n};\n\nexport default withFormElementContext(FormElementHelperText);\n","import _uniqueId from 'lodash/uniqueId';\n\nexport default function uniqueId(prefix) {\n return _uniqueId(prefix);\n}\n","import React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport FormElement from 'Components/form-element/FormElement';\nimport TextInputField from './TextInputField';\nimport TextInputLabel from './TextInputLabel';\nimport FormElementHelperText from 'Components/form-element/FormElementHelperText';\nimport uniqueId from 'Common/util/uniqueId';\n\nconst Root = styled.div`\n display: inline-block;\n`;\n\nconst TextInputWrapper = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n`;\n\nconst RightButtonWrapper = styled.div`\n flex: 0 0 auto;\n margin-left: 10px;\n`;\n\nexport default class TextInput extends React.Component {\n\n constructor() {\n super();\n this._uniqueId = uniqueId();\n }\n\n render() {\n const {\n label,\n helperText,\n type,\n placeholder,\n value,\n name,\n autoComplete,\n autoFocus,\n rightButton,\n onFocus,\n onBlur,\n onChange,\n readOnly,\n ...otherProps\n } = this.props;\n\n const id = 'text-input-' + this._uniqueId;\n\n let helperTextElem = null;\n if (typeof helperText !== 'undefined' && helperText !== null) {\n helperTextElem = (\n \n {helperText}\n \n );\n }\n\n return (\n \n \n {label}\n \n \n \n {rightButton && (\n \n {rightButton}\n \n )}\n \n {helperTextElem}\n \n );\n }\n}\n\nTextInput.defaultProps = {\n label: '',\n\n type: 'text',\n placeholder: '',\n readOnly: false,\n\n onFocus: () => {},\n onBlur: () => {},\n};\n\nTextInput.propTypes = {\n label: PropTypes.string,\n helperText: PropTypes.string,\n rightButton: PropTypes.node,\n\n type: PropTypes.string,\n placeholder: PropTypes.string,\n value: PropTypes.string,\n name: PropTypes.string,\n autoComplete: PropTypes.string,\n autoFocus: PropTypes.bool,\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n required: PropTypes.bool,\n error: PropTypes.bool,\n\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n};\n","\n// Common constants for spacing of elements.\nexport const Spacing = {\n formButtonMargin: '16px',\n inlineButtonMargin: '8px',\n};\n","import React from 'react';\nimport styled, { withTheme } from 'styled-components';\nimport PropTypes from 'prop-types';\nimport Button from './Button';\nimport { interceptProps } from 'Components/util/reactUtils';\n\nconst Root = styled(interceptProps(Button, ['styled']))`\n color: ${(props) => props.styled.textColor};\n border: 1px solid ${(props) => props.styled.borderColor};\n background-color: ${(props) => props.styled.backgroundColor};\n`;\n\nfunction OutlinedButton(props) {\n const {\n theme,\n children,\n ...otherProps\n } = props;\n\n let borderColor = theme.colors.palette.blue.awesome;\n let textColor = theme.colors.palette.blue.awesome;\n let backgroundColor = theme.colors.palette.white;\n\n return (\n \n {children}\n \n );\n}\n\nOutlinedButton.propTypes = {\n theme: PropTypes.object.isRequired,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node\n ])\n};\n\nexport default withTheme(OutlinedButton);\n","import React, { Component, useState } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nconst sourceIdPrefix = 'portal-source-';\n\nclass PortalHelper extends Component {\n static propTypes = {\n sourceId: PropTypes.string.isRequired,\n parentStyle: PropTypes.object,\n children: PropTypes.node,\n };\n\n static defaultProps = {\n parentStyle: { },\n };\n\n constructor(props) {\n super(props);\n\n const id = props.sourceId.replace(sourceIdPrefix, '');\n this.el = document.createElement('div');\n this.el.id = `portal-window-${id}`;\n document.body.appendChild(this.el);\n }\n\n componentWillUnmount() {\n if (this.el) {\n this.el.remove();\n }\n }\n\n renderChildren() {\n const { sourceId, parentStyle, children } = this.props;\n\n const style = {\n position: 'fixed',\n top: 0,\n left: 0,\n ...parentStyle,\n };\n\n return (\n
\n {children}\n
\n );\n }\n\n render() {\n return ReactDOM.createPortal(this.renderChildren(), this.el);\n }\n}\n\nlet nextPortalSourceNumber = 1000;\n\nfunction getNextPortalSourceId() {\n const id = `${sourceIdPrefix}${nextPortalSourceNumber}`;\n nextPortalSourceNumber++;\n return id;\n}\n\nconst PortalSource = styled.div`\n display: none;\n`;\n\n// eslint-disable-next-line react/no-multi-comp\nexport default function Portal({\n parentStyle,\n children,\n}) {\n // Generate the ID initially and never update it again for the life\n // of the component\n const [ id ] = useState(() => {\n return getNextPortalSourceId();\n });\n\n return (\n \n \n {children}\n \n \n );\n}\n\nPortal.propTypes = {\n parentStyle: PropTypes.object,\n children: PropTypes.node,\n};\n\nPortal.defaultProps = {\n parentStyle: { },\n};\n","import styled from 'styled-components';\n\nexport const MASK_Z_INDEX = 80;\n\nconst Mask = styled.div`\n cursor: default;\n display: block;\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: ${MASK_Z_INDEX};\n`;\n\nexport default Mask;\n","/**\n * All typography definitions come from the WPI Lookbook:\n *\n * https://vornewiki.atlassian.net/wiki/spaces/XSD/pages/1527021724/WPI+Lookbook\n *\n */\n\nimport styled from 'styled-components';\n\nexport const FontWeight = {\n thin: 200,\n light: 300,\n regular: 400,\n medium: 500,\n bold: 700,\n heavy: 900,\n};\n\nexport const FontSize = {\n size1: 27,\n size2: 21,\n size3: 17,\n size4: 14,\n size5: 12,\n size6: 11,\n size7: 10,\n};\n\nexport const FontColor = {\n heading: ({ theme }) => theme.colors.darkText.highEmphasis,\n subheading: ({ theme }) => theme.colors.palette.blue.awesome,\n primary: ({ theme }) => theme.colors.darkText.highEmphasis,\n secondary: ({ theme }) => theme.colors.darkText.mediumEmphasis,\n body: ({ theme }) => theme.colors.darkText.highEmphasis,\n};\n\nexport const FontFamily = {\n primary: 'Roboto, Helvetica, sans-serif',\n serif: 'Georgia, \"Times New Roman\", Times, serif',\n};\n\n// HEADING\n\nconst HeadingBase = styled.span`\n font-family: ${FontFamily.primary};\n color: ${FontColor.heading};\n`;\n\nexport const Heading1 = styled(HeadingBase)`\n font-size: ${FontSize.size1}px;\n font-weight: ${FontWeight.bold};\n`;\n\nexport const Heading2 = styled(HeadingBase)`\n font-size: ${FontSize.size2}px;\n font-weight: ${FontWeight.bold};\n`;\n\nexport const Heading3 = styled(HeadingBase)`\n font-size: ${FontSize.size3}px;\n font-weight: ${FontWeight.bold};\n`;\n\nexport const Heading4 = styled(HeadingBase)`\n font-size: ${FontSize.size4}px;\n font-weight: ${FontWeight.medium};\n`;\n\nexport const Heading5 = styled(HeadingBase)`\n font-size: ${FontSize.size5}px;\n font-weight: ${FontWeight.medium};\n`;\n\nexport const Heading6 = styled(HeadingBase)`\n font-size: ${FontSize.size6}px;\n font-weight: ${FontWeight.medium};\n`;\n\nexport const Heading7 = styled(HeadingBase)`\n font-size: ${FontSize.size7}px;\n font-weight: ${FontWeight.medium};\n`;\n\n// SUBHEADING\n\nconst SubheadingBase = styled.span`\n font-family: ${FontFamily.primary};\n color: ${FontColor.subheading};\n`;\n\nexport const Subheading1 = styled(SubheadingBase)`\n font-size: ${FontSize.size1}px;\n font-weight: ${FontWeight.bold};\n`;\n\nexport const Subheading2 = styled(SubheadingBase)`\n font-size: ${FontSize.size2}px;\n font-weight: ${FontWeight.bold};\n`;\n\nexport const Subheading3 = styled(SubheadingBase)`\n font-size: ${FontSize.size3}px;\n font-weight: ${FontWeight.bold};\n`;\n\nexport const Subheading4 = styled(SubheadingBase)`\n font-size: ${FontSize.size4}px;\n font-weight: ${FontWeight.medium};\n`;\n\nexport const Subheading5 = styled(SubheadingBase)`\n font-size: ${FontSize.size5}px;\n font-weight: ${FontWeight.medium};\n`;\n\nexport const Subheading6 = styled(SubheadingBase)`\n font-size: ${FontSize.size6}px;\n font-weight: ${FontWeight.medium};\n`;\n\nexport const Subheading7 = styled(SubheadingBase)`\n font-size: ${FontSize.size7}px;\n font-weight: ${FontWeight.medium};\n`;\n\n// PRIMARY\n\nconst PrimaryBase = styled.span`\n font-family: ${FontFamily.primary};\n font-weight: ${FontWeight.regular};\n color: ${FontColor.primary};\n`;\n\nexport const Primary1 = styled(PrimaryBase)`\n font-size: ${FontSize.size1}px;\n`;\n\nexport const Primary2 = styled(PrimaryBase)`\n font-size: ${FontSize.size2}px;\n`;\n\nexport const Primary3 = styled(PrimaryBase)`\n font-size: ${FontSize.size3}px;\n`;\n\nexport const Primary4 = styled(PrimaryBase)`\n font-size: ${FontSize.size4}px;\n`;\n\nexport const Primary5 = styled(PrimaryBase)`\n font-size: ${FontSize.size5}px;\n`;\n\nexport const Primary6 = styled(PrimaryBase)`\n font-size: ${FontSize.size6}px;\n`;\n\n// SECONDARY\n\nconst SecondaryBase = styled.span`\n font-family: ${FontFamily.primary};\n font-weight: ${FontWeight.regular};\n color: ${FontColor.secondary};\n`;\n\nexport const Secondary1 = styled(SecondaryBase)`\n font-size: ${FontSize.size1}px;\n`;\n\nexport const Secondary2 = styled(SecondaryBase)`\n font-size: ${FontSize.size2}px;\n`;\n\nexport const Secondary3 = styled(SecondaryBase)`\n font-size: ${FontSize.size3}px;\n`;\n\nexport const Secondary4 = styled(SecondaryBase)`\n font-size: ${FontSize.size4}px;\n`;\n\nexport const Secondary5 = styled(SecondaryBase)`\n font-size: ${FontSize.size5}px;\n`;\n\nexport const Secondary6 = styled(SecondaryBase)`\n font-size: ${FontSize.size6}px;\n`;\n\n// BODY\n\nconst BodyBase = styled.span`\n font-family: ${FontFamily.primary};\n font-weight: ${FontWeight.regular};\n color: ${FontColor.body};\n`;\n\nexport const Body1 = styled(BodyBase)`\n font-size: ${FontSize.size1}px;\n`;\n\nexport const Body2 = styled(BodyBase)`\n font-size: ${FontSize.size2}px;\n`;\n\nexport const Body3 = styled(BodyBase)`\n font-size: ${FontSize.size3}px;\n`;\n\nexport const Body4 = styled(BodyBase)`\n font-size: ${FontSize.size4}px;\n`;\n\nexport const Body5 = styled(BodyBase)`\n font-size: ${FontSize.size5}px;\n`;\n\nexport const Body6 = styled(BodyBase)`\n font-size: ${FontSize.size6}px;\n`;\n\nexport const Body7 = styled(BodyBase)`\n font-size: ${FontSize.size7}px;\n`;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\n/**\n * ButtonBase\n *\n * The purpose of ButtonBase is simple:\n *\n * 1. Clear default browser button styles (border, outline, padding, etc.).\n * 2. Provide a touch target that does not interfere with the size and layout of the button.\n * 3. Show the pointer cursor when the button is not disabled.\n *\n * ButtonBase should NOT specify fonts, colors, background colors, or anything\n * else.\n *\n */\n\nconst Root = styled.button`\n position: relative; /* Needed for touch target in :before */\n box-sizing: border-box;\n border: none;\n outline: none;\n margin: 0;\n padding: 0;\n\n background-color: transparent;\n font-family: inherit;\n font-size: inherit;\n color: inherit;\n\n cursor: default;\n\n &:not(:disabled) {\n cursor: pointer;\n }\n\n /* Touch Target */\n :before {\n content: \"\";\n display: block;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translateX(-50%) translateY(-50%);\n width: 100%;\n height: 100%;\n /* Give mobile users a nice big touch target */\n @media (hover: none) and (pointer: coarse) {\n min-width: 44px;\n min-height: 44px;\n }\n }\n`;\n\nconst ButtonBase = React.forwardRef((props, ref) => {\n const { Component } = props;\n\n return (\n \n );\n});\n\nButtonBase.displayName = 'ButtonBase';\n\nButtonBase.propTypes = {\n Component: PropTypes.elementType,\n};\n\nButtonBase.defaultProps = {\n Component: 'button',\n};\n\nexport default ButtonBase;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!./font-awesome.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!./font-awesome.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./style.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./style.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nimport 'Common/font/fontawesome';\nimport 'Common/font/vorne-icon';\n\nfunction Icon({ type, iconName, children, className, style }) {\n let classes = [];\n\n if (type === 'vorne') {\n classes = [\n 'vorne-icon',\n `vorne-icon-${iconName}`\n ];\n }\n else {\n classes = [\n 'fa',\n `fa-${iconName}`\n ];\n }\n\n const fullClassName = classNames(className, classes);\n\n return (\n \n );\n}\n\nIcon.propTypes = {\n type: PropTypes.oneOf(['vorne', 'fontAwesome']).isRequired,\n iconName: PropTypes.string.isRequired,\n className: PropTypes.string,\n children: PropTypes.element,\n style: PropTypes.object,\n};\n\nIcon.defaultProps = {\n className: '',\n};\n\nexport default Icon;\n","import Icon from './Icon';\n\nexport default Icon;\n","\nimport uniqueId from 'Common/util/uniqueId';\nimport { useRef } from 'react';\n\n\nexport default function useUniqueId(prefix) {\n const ref = useRef(null);\n\n if (ref.current === null) {\n ref.current = uniqueId(prefix);\n }\n\n return ref.current;\n}","import React from 'react';\nimport styled, { css } from 'styled-components';\nimport PropTypes from 'prop-types';\nimport Portal from 'Common/components/Portal/Portal';\nimport Mask from 'Common/components/Portal/Mask';\nimport { Body5, Heading2 } from 'Common/components/typography';\nimport ButtonBase from 'Common/components/Button/ButtonBase';\nimport Icon from 'Common/components/Icon';\nimport useUniqueId from 'Common/hooks/useUniqueId';\n\nconst StyledWindowContainer = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n`;\n\nconst borderRadius = '6px';\n\nconst StyledWindow = styled.div`\n box-sizing: border-box;\n background-color: ${({theme}) => theme.colors.palette.white};\n border-radius: ${borderRadius};\n box-shadow: 2px 2px 20px ${({theme}) => theme.colors.palette.grey.emperor};\n z-index: 300;\n display: flex;\n flex: 0 1 auto;\n flex-direction: column;\n max-width: 100%;\n max-height: 100%;\n`;\n\nconst StyledBar = styled.div`\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n padding: 5px 10px;\n min-height: 44px;\n`;\n\nconst StyledTopBar = styled(StyledBar)`\n ${({hasTitle}) => hasTitle && css`\n background-color: ${({theme}) => theme.colors.palette.grey.cloud};\n border-top-left-radius: ${borderRadius};\n border-top-right-radius: ${borderRadius};\n `}\n`;\n\nconst StyledBottomBar = styled(StyledBar)`\n border-top: 1px solid ${({theme}) => theme.colors.palette.grey.cloud};\n flex-direction: row;\n justify-content: flex-end;\n flex-wrap: wrap;\n\n > button {\n margin-left: 8px;\n }\n`;\n\nconst TitleText = styled(Heading2)`\n flex: 1 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n padding-right: 10px;\n white-space: nowrap;\n`;\n\nconst WindowBody = styled(Body5)`\n overflow: auto;\n padding: ${({hasTitle}) => hasTitle ? 20 : 0}px 15px 20px 15px;\n`;\n\n\nconst StyledMask = styled(Mask)`\n background-color: rgba(0, 0, 0, 0.5);\n\n animation: mask-fade-in 0.3s;\n\n @keyframes mask-fade-in {\n from {\n background-color: rgba(0, 0, 0, 0);\n }\n\n to {\n background-color: rgba(0, 0, 0, 0.5);\n }\n }\n`;\n\nconst CloseButton = styled(ButtonBase)`\n flex: 0 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n width: 30px;\n height: 36px;\n /* Touch Target */\n :before {\n border-radius: 50%;\n background-color: transparent;\n transition: background-color 300ms;\n min-width: 44px;\n min-height: 44px;\n }\n :hover {\n :before {\n background-color: rgba(0,0,0,0.05);\n }\n }\n :active {\n :before {\n background-color: rgba(0,0,0,0.1);\n }\n }\n :not(:hover):focus {\n :before {\n background-color: rgba(0,0,0,0.05);\n }\n }\n`;\n\nconst CloseButtonIcon = styled(Icon)`\n font-size: 18px;\n\n /* We rotate it to look like an 'X', we need to add a bit of translation\n too to keep it in the perfect center.\n */\n transform: translateX(1.5px) rotate(45deg);\n\n color: ${props => props.theme.colors.darkText.mediumEmphasis};\n`;\n\n/**\n * A custom Modal window. Interrupts the current layout by being placed on top and preventing page interaction until closed.\n * Used as either a dialog requiring user input/confirmation, or a way to allow the user to complete multiple tasks.\n *\n */\nexport default function ModalWindow(props) {\n const {\n children,\n buttons,\n title,\n bodyHeight,\n bodyWidth,\n bodyMaxHeight,\n bodyMaxWidth,\n\n onClose,\n onMaskClick,\n } = props;\n\n const hasTitle = title.length > 0;\n\n const windowTitle = title || onClose\n ? (\n \n {title}\n {onClose && (\n \n \n \n )}\n \n )\n : null;\n\n const actions = buttons.length\n ? (\n \n {buttons}\n \n )\n : null;\n\n const bodyStyle = {\n width: bodyWidth,\n height: bodyHeight,\n maxWidth: bodyMaxWidth,\n maxHeight: bodyMaxHeight,\n };\n\n const labelId = useUniqueId('window-label-');\n\n return (\n \n \n \n \n {windowTitle}\n \n {children}\n \n {actions}\n \n \n \n );\n}\n\nconst cssUnitType = PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n]);\n\nModalWindow.propTypes = {\n buttons: PropTypes.arrayOf(PropTypes.node),\n children: PropTypes.node,\n title: PropTypes.string,\n bodyHeight: cssUnitType,\n bodyWidth: cssUnitType,\n bodyMaxHeight: cssUnitType,\n bodyMaxWidth: cssUnitType,\n\n onClose: PropTypes.func,\n onMaskClick: PropTypes.func,\n};\n\nModalWindow.defaultProps = {\n title: '',\n buttons: [],\n\n bodyMaxHeight: '100%',\n bodyMaxWidth: '100%',\n\n onMaskClick: () => {},\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { css } from 'styled-components';\nimport ButtonBase from 'Common/components/Button/ButtonBase';\nimport { Heading5 } from 'Common/components/typography';\n\nconst StyledButton = styled(Heading5).attrs({ as: ButtonBase })`\n position: relative; /* Needed for touch target in :before */\n box-sizing: border-box;\n margin: 0;\n padding: 0 10px;\n min-width: 90px; /* From lookbook */\n height: ${({ size }) => size === 'short' ? css`18px` : css`22px`};\n border-radius: 4px;\n text-align: center;\n white-space: nowrap;\n\n /* Gives the button a slightly raised look */\n box-shadow: 1px 1.5px 1px rgba(0, 0, 0, 0.16);\n\n ${({ type, theme }) => type === 'primary'\n ? css`\n color: ${theme.colors.palette.white};\n background-color: ${theme.colors.palette.blue.awesome};\n border: 1px solid ${theme.colors.palette.blue.awesome};\n `\n : css`\n color: ${theme.colors.palette.blue.awesome};\n background-color: ${theme.colors.palette.white};\n border: 1px solid ${theme.colors.palette.blue.awesome};\n `\n };\n\n transition: color 0.25s, background-color 0.25s, border-color 0.25s, opacity 0.25s, box-shadow 0.25s;\n\n &:not(:disabled) {\n cursor: pointer;\n\n &:hover, &:focus {\n ${({ type, theme }) => type === 'primary'\n ? css`\n color: ${theme.colors.palette.white};\n background-color: ${theme.colors.palette.blue.deep};\n border-color: ${theme.colors.palette.blue.deep};\n `\n : css`\n color: ${theme.colors.palette.blue.awesome};\n background-color: ${theme.colors.palette.grey.cloud};\n border-color: ${theme.colors.palette.blue.awesome};\n `\n };\n }\n\n &:active { /* When the button is being pressed. */\n ${({ type, theme }) => type === 'primary'\n ? css`\n color: ${theme.colors.palette.white};\n background-color: ${theme.colors.palette.blue.awesome};\n border-color: ${theme.colors.palette.blue.deep};\n `\n : css`\n color: ${theme.colors.palette.blue.awesome};\n background-color: ${theme.colors.palette.blue.ice};\n border-color: ${theme.colors.palette.blue.awesome};\n `\n };\n }\n }\n\n &:disabled {\n box-shadow: none;\n\n ${({ type, theme }) => type === 'primary'\n ? css`\n color: ${theme.colors.palette.white};\n background-color: ${theme.colors.palette.blue.cruise};\n border-color: ${theme.colors.palette.blue.cruise};\n `\n : css`\n color: ${theme.colors.palette.blue.cruise};\n background-color: ${theme.colors.palette.white};\n border-color: ${theme.colors.palette.blue.cruise};\n `\n };\n }\n`;\n\nconst Button = React.forwardRef(({\n type,\n size,\n ...otherProps\n}, ref) => (\n \n));\n\nButton.displayName = 'Button';\n\nButton.propTypes = {\n type: PropTypes.oneOf([\n 'primary',\n 'secondary',\n ]),\n size: PropTypes.oneOf([\n 'short',\n 'medium',\n ]),\n};\n\nButton.defaultProps = {\n type: 'primary',\n size: 'medium',\n};\n\nexport default Button;\n","import Button from './Button';\n\nexport default Button;\n","\nimport React, {\n useEffect,\n useState,\n} from 'react';\n\nimport {\n useHistory,\n Prompt,\n} from 'react-router-dom';\n\nimport ModalWindow from 'Common/components/ModalWindow/ModalWindow';\nimport Button from 'Common/components/Button';\n\n/**\n * Hook which can be used to prevent navigation if the page has unsaved changes (dirty)\n *\n * @returns {Component} A component that needs to be rendered which will handle displaying a modal\n * window for the user to confirm that they want to navigate away with unsaved\n * changes.\n */\nexport default function useNavigationPrevention(isDirty) {\n\n const history = useHistory();\n\n const [state, setState] = useState({\n showModal: false,\n confirmedNavigation: false,\n location: null,\n });\n\n const handlePreventNavigation = (nextLocation) => {\n if (!state.confirmedNavigation) {\n // set state to show modal, stop navigation, store where they were planning on going\n setState({\n ...state,\n showModal: true,\n location: nextLocation,\n });\n return false;\n }\n return true;\n };\n\n const handleModelLeave = () => {\n // if they decide to leave, set the confirmedNavigation to true so the\n // handlePreventNavigation function will let us go\n setState({\n ...state,\n showModal: false,\n confirmedNavigation: true,\n });\n };\n\n const handleModalStay = () => {\n // if they want to stay, hide the modal and reset other state variables\n setState({\n ...state,\n showModal: false,\n confirmedNavigation: false,\n location: null,\n });\n };\n\n useEffect(() => {\n // when state changes, check if they confirmed navigating away, if so go ahead and do the\n // navigation manually\n if (state.confirmedNavigation && state.location) {\n history.push(state.location.pathname);\n // now that the browser has navigated away reset the confirmedNavigation\n setState({\n ...state,\n confirmedNavigation: false,\n });\n }\n }, [history, state]);\n\n const getModal = () => {\n if (state.showModal) {\n const title = 'Confirm Navigation';\n const messages = [\n \"You have made changes to this view. Save your changes by clicking on 'Save' near the top of the view. Otherwise your changes will be lost.\",\n 'Are you sure you want to leave this view?',\n ];\n const modalButtons = [\n \n {'Leave this View'}\n ,\n \n {'Stay on this View'}\n \n ];\n\n return (\n \n {messages.map((message, index) => (

{message}

))}\n \n );\n }\n };\n\n const [ cancelled, setCancelled ] = useState(false);\n\n return {\n component: (\n \n \n {getModal()}\n \n ),\n cancel: () => { setCancelled(true); },\n reset: () => { setCancelled(false); },\n };\n}\n","import React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport ErrorNotice from 'Components/notice/ErrorNotice';\n\nconst StyledErrorNotice = styled(ErrorNotice)`\n margin-top: 10px;\n`;\n\nconst ErrorList = styled.ul`\n padding-inline-start: 30px;\n`;\n\nconst ErrorListItem = styled.li`\n`;\n\nfunction renderPayload(payload) {\n const keys = Object.keys(payload);\n\n if (keys.length) {\n return (\n \n {keys.map((key) => {\n return (\n \n {/* Just use the first error for the key */}\n {payload[key][0]}\n \n );\n })}\n \n );\n }\n else {\n return null;\n }\n}\n\nfunction FormError({ error, ...otherProps }) {\n if (error) {\n const { message, payload } = error;\n\n return (\n \n {message}\n {payload && renderPayload(payload)}\n \n );\n }\n else {\n return null;\n }\n}\n\nFormError.propTypes = {\n error: PropTypes.shape({\n message: PropTypes.string.isRequired,\n status_code: PropTypes.number,\n payload: PropTypes.objectOf(\n PropTypes.arrayOf(PropTypes.string),\n ),\n }),\n};\n\nexport default FormError;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport ContainedButton from 'Components/button/ContainedButton';\nimport { Spacing } from 'Components/common/common';\nimport OutlinedButton from 'Components/button/OutlinedButton';\nimport useNavigationPrevention from 'Common/hooks/useNavigationPrevention';\nimport FormError from './FormError';\n\nconst SubmitButton = styled(ContainedButton)`\n margin-top: ${Spacing.formButtonMargin};\n margin-right: ${Spacing.inlineButtonMargin};\n`;\n\nconst CancelButton = styled(OutlinedButton)`\n margin-top: ${Spacing.formButtonMargin};\n margin-right: ${Spacing.inlineButtonMargin};\n`;\n\nexport default function Form(props) {\n\n const _handleSubmit = (event) => {\n event.preventDefault();\n props.onSubmit(event);\n };\n\n const _handleReset = (event) => {\n event.preventDefault();\n props.onReset(event);\n };\n\n const {\n error, allowSubmit,\n allowCancel,\n disableNavigationPrevention,\n showCancel,\n showSubmit,\n submitButtonText,\n cancelButtonText,\n children,\n ...otherProps\n } = props;\n\n // prevent navigation if the allowCancel or allowSubmit is enabled indicating there have been some changes\n // do not prevent navigation if this component has been configured to disable navigation\n // prevention, probably because the user is handling navigation prevention themselves\n const preventNav = !disableNavigationPrevention && (allowCancel || allowSubmit);\n\n const {\n component: navigationPrevention,\n } = useNavigationPrevention(preventNav);\n\n return (\n \n {navigationPrevention}\n \n {children}\n\n {showCancel && (\n \n {cancelButtonText}\n \n )}\n {showSubmit && (\n {submitButtonText}\n )}\n {error && (\n \n )}\n \n \n );\n}\n\nForm.propTypes = {\n allowSubmit: PropTypes.bool,\n allowCancel: PropTypes.bool,\n disableNavigationPrevention: PropTypes.bool,\n showSubmit: PropTypes.bool,\n showCancel: PropTypes.bool,\n submitButtonText: PropTypes.string,\n cancelButtonText: PropTypes.string,\n error: PropTypes.shape({\n message: PropTypes.string.isRequired,\n status_code: PropTypes.number,\n payload: PropTypes.objectOf(\n PropTypes.arrayOf(PropTypes.string),\n ),\n }),\n onReset: PropTypes.func,\n onSubmit: PropTypes.func.isRequired,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node\n ])\n};\n\nForm.defaultProps = {\n showSubmit: true,\n showCancel: true,\n allowSubmit: true,\n allowCancel: true,\n submitButtonText: 'Save',\n cancelButtonText: 'Cancel',\n onReset: () => { }\n};\n","import React from 'react';\nimport styled from 'styled-components';\nimport { Link } from 'react-router-dom';\nimport TextButton from 'Components/button/TextButton';\nimport ContainedButton from 'Components/button/ContainedButton';\nimport TextInput from 'Components/text-input/TextInput';\nimport { Spacing } from 'Components/common/common';\nimport * as RequestStatus from 'Common/data/RequestStatus';\nimport PropTypes from 'prop-types';\nimport Form from 'Components/form/Form';\n\nconst StyledTextInput = styled(TextInput)``;\nconst LoginButtonsContainer = styled.div``;\nconst ForgotPasswordLink = styled(TextButton)``;\nconst SubmitButton = styled(ContainedButton)``;\n\nconst LoginFormBody = styled(Form)`\n display: block;\n width: 100%;\n box-sizing: border-box;\n\n ${StyledTextInput} {\n display: block;\n width: 100%;\n box-sizing: border-box;\n }\n\n ${LoginButtonsContainer} {\n margin-top: ${Spacing.formButtonMargin};\n\n ${SubmitButton} {\n margin-right: ${Spacing.inlineButtonMargin};\n }\n\n ${ForgotPasswordLink} {\n text-decoration: none;\n }\n }\n`;\n\nexport default class LoginForm extends React.Component {\n static propTypes = {\n initialValue: PropTypes.shape({\n email: PropTypes.string,\n password: PropTypes.string,\n }),\n request: PropTypes.shape({\n status: PropTypes.string.isRequired,\n error: PropTypes.shape({\n message: PropTypes.string,\n }),\n }).isRequired,\n onSubmit: PropTypes.func.isRequired,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n email: props.initialValue?.email || '',\n password: props.initialValue?.password || '',\n };\n }\n\n _handleEmailChange = (event) => {\n this.setState({ email: event.target.value });\n };\n _handlePasswordChange = (event) => {\n this.setState({ password: event.target.value });\n };\n\n _handleSubmit = (event) => {\n this.props.onSubmit({\n email: this.state.email,\n password: this.state.password,\n });\n };\n\n render() {\n const { request } = this.props;\n const { email, password } = this.state;\n\n const isLoading = request.status === RequestStatus.PENDING;\n const error = request.status === RequestStatus.FAILURE ?\n request.error : null;\n\n return (\n \n \n \n \n \n Log In\n \n \n Forgot Password?\n \n \n \n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { Caption } from 'Components/typography/typography';\nimport * as RequestStatus from 'Common/data/RequestStatus';\nimport Form from 'Components/form/Form';\n\nconst LogoutFormBody = styled(Form)`\n display: block;\n width: 100%;\n box-sizing: border-box;\n padding: 10px;\n`;\n\nconst StatusMessage = styled(Caption)`\n display: block;\n`;\n\nclass LogoutForm extends React.Component {\n static propTypes = {\n sessionData: PropTypes.shape({\n name: PropTypes.string.isRequired,\n }),\n request: PropTypes.shape({\n status: PropTypes.string.isRequired,\n error: PropTypes.shape({\n message: PropTypes.string,\n }),\n }).isRequired,\n onSubmit: PropTypes.func.isRequired,\n };\n\n constructor(props) {\n super(props);\n }\n\n _handleSubmit = (event) => {\n this.props.onSubmit();\n };\n\n render() {\n const { sessionData, request } = this.props;\n const isLoading = request.status === RequestStatus.PENDING;\n\n return (\n \n You are logged in as {sessionData.name}\n \n );\n }\n}\n\nexport default LogoutForm;\n","import { INIT_APP_COMPLETE } from 'Redux/actions';\nimport { requestReducer } from 'Common/util/ResourceCollection';\nimport { REQUEST_SUCCESS, REQUEST_FAILURE } from 'Common/util/ResourceCollection/actions';\nimport { combineReducers } from 'redux';\nimport actionMap from 'Common/util/reducerUtils/actionMap';\n\nconst sessionDataInitialState = null;\n\nfunction sessionDataReducer(state = sessionDataInitialState, action) {\n const { type, requestId, payload } = action;\n\n switch (requestId) {\n case 'getSessionUser':\n case 'login':\n if (type === REQUEST_SUCCESS) {\n return {\n active: payload.active,\n created: payload.created,\n email_address: payload.email_address,\n first_day_of_week: payload.first_day_of_week,\n hierarchy_visibility: payload.hierarchy_visibility,\n id: payload.id,\n last_login: payload.last_login,\n name: payload.name,\n organization_id: payload.organization_id,\n pending_email_address: payload.pending_email_address,\n role: payload.role,\n sms_email_address: payload.sms_email_address,\n timezone: payload.timezone,\n vorne_support: payload.vorne_support,\n };\n }\n else if (type === REQUEST_FAILURE) {\n return sessionDataInitialState;\n }\n else {\n return state;\n }\n case 'patchSessionUser':\n case 'patchSessionUserEmail':\n case 'patchSessionUserSmsEmail':\n if (type === REQUEST_SUCCESS) {\n return {\n active: payload.active,\n created: payload.created,\n email_address: payload.email_address,\n first_day_of_week: payload.first_day_of_week,\n hierarchy_visibility: payload.hierarchy_visibility,\n id: payload.id,\n last_login: payload.last_login,\n name: payload.name,\n organization_id: payload.organization_id,\n pending_email_address: payload.pending_email_address,\n role: payload.role,\n sms_email_address: payload.sms_email_address,\n timezone: payload.timezone,\n };\n }\n else {\n return state;\n }\n case 'logout':\n return sessionDataInitialState;\n default:\n return state;\n }\n}\n\nconst sessionReducer = combineReducers({\n sessionData: sessionDataReducer,\n requests: actionMap(\n (action) => action?.requestId,\n {\n getSessionUser: requestReducer,\n patchSessionUser: requestReducer,\n patchSessionUserEmail: requestReducer,\n patchSessionUserSmsEmail: requestReducer,\n login: requestReducer,\n logout: requestReducer,\n updatePassword: requestReducer,\n verifyAccount: requestReducer,\n verifyEmailChange: requestReducer,\n verifyEmailResend: requestReducer,\n verifySmsEmailResend: requestReducer,\n }\n ),\n isInitialized: (state = false, action) => {\n if (action.type === INIT_APP_COMPLETE) {\n return true;\n }\n else {\n return state;\n }\n }\n});\n\nexport default sessionReducer;\n\nexport function selectIsInitialized(state) {\n return state.isInitialized;\n}\n\nexport function selectSessionUser(state) {\n return state.sessionData || null;\n}\n\nexport function selectIsLoggedIn(state) {\n return state.sessionData !== null;\n}\n\nexport function selectIsSupport(state) {\n return state.sessionData?.vorne_support;\n}\n\nexport function selectSessionRequest(state, requestId) {\n const request = state.requests[requestId];\n\n if (!request) {\n throw new Error(`Unknown session request with ID \"${requestId}\"`);\n }\n\n return request;\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport LoadingWrapper from 'Components/loading-indicator/LoadingWrapper';\nimport LoginForm from './LoginForm';\nimport LogoutForm from './LogoutForm';\nimport { selectIsInitialized, selectIsLoggedIn, selectSessionRequest, selectSessionUser } from 'Redux/reducers/session';\n\nconst Base = styled.div`\n padding: 0;\n line-height: normal;\n width: 100%;\n`;\n\nexport default class LoginLogoutForm extends React.Component {\n static propTypes = {\n session: PropTypes.object.isRequired,\n onLoginSubmit: PropTypes.func,\n onLogoutSubmit: PropTypes.func,\n };\n\n static defaultProps = {\n onLoginSubmit: () => {},\n onLogoutSubmit: () => {},\n };\n\n constructor(props) {\n super(props);\n }\n\n _handleLoginSubmit = ({ email, password }) => {\n this.props.onLoginSubmit({\n email: email,\n password: password,\n });\n };\n\n _handleLogoutSubmit = () => {\n this.props.onLogoutSubmit();\n };\n\n render() {\n const { session } = this.props;\n\n const isInitialized = selectIsInitialized(session);\n const isLoggedIn = selectIsLoggedIn(session);\n const sessionData = selectSessionUser(session);\n\n return (\n (\n \n {isLoggedIn && (\n \n )}\n {!isLoggedIn && (\n \n )}\n \n )}\n />\n );\n }\n}\n","import { connect } from 'react-redux';\nimport { login, logout } from 'Redux/actions';\nimport LoginLogoutForm from './LoginLogoutForm';\n\nconst mapStateToProps = state => {\n const { session } = state;\n return { session };\n};\n\nconst mapDispatchToProps = {\n onLoginSubmit: login,\n onLogoutSubmit: logout,\n};\n\n// connect the component to Redux\nconst LoginFormContainer = connect(\n mapStateToProps,\n mapDispatchToProps\n)(LoginLogoutForm);\n\nexport default LoginFormContainer;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!./font-awesome.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!./font-awesome.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport 'Fonts/fontawesome/css/font-awesome.css';\nimport classNames from 'classnames';\n\nexport default class FaIcon extends React.Component {\n render() {\n const { className, ...otherProps } = this.props;\n\n return (\n \n );\n }\n}\n\nFaIcon.propTypes = {\n className: PropTypes.string,\n i: PropTypes.string,\n};\n\nFaIcon.defaultProps = {\n i: '',\n};\n","import styled from 'styled-components';\n\nconst IconLink = styled.a`\n border: none;\n background-color: transparent;\n\n display: inline-flex;\n position: relative;\n align-items: center;\n height: 50px;\n padding: 0 16px;\n color: ${props => props.theme.colors.darkText.mediumEmphasis};\n font-size: 18px;\n line-height: 50px;\n cursor: pointer;\n text-decoration: none;\n z-index: 5001;\n\n :hover, &.active {\n color: ${props => props.theme.colors.darkText.highEmphasis};\n }\n`;\n\nexport default IconLink;\n","import React from 'react';\nimport styled from 'styled-components';\nimport IconLink from '../IconLink';\nimport FaIcon from 'Components/icon/FaIcon';\nimport { Caption } from 'Components/typography/typography';\n\nconst MainMenuText = styled(Caption)`\n display: inline-block;\n padding-left: 6px;\n\n text-transform: uppercase;\n font-weight: 900;\n`;\n\nconst Root = styled(IconLink)`\n ${MainMenuText} {\n display: inline-block;\n padding-left: 6px;\n\n text-transform: uppercase;\n font-weight: 900;\n }\n`;\n\nexport default React.forwardRef(\n function MainMenuIconLink(props, ref) {\n return (\n \n \n Main Menu\n \n );\n }\n);\n","import React from 'react';\nimport IconLink from '../IconLink';\nimport FaIcon from 'Components/icon/FaIcon';\n\nexport default React.forwardRef(\n function MainMenuMobileIconLink(props, ref) {\n return (\n \n \n \n );\n }\n);\n","export const Roles = {\n ADMIN: 'admin',\n MEMBER: 'member',\n};\n\n// Roles listed in order from least-permission to most-permission\nconst roleOrder = [\n Roles.MEMBER,\n Roles.ADMIN,\n];\n\nexport function getHighestRole() {\n return roleOrder[roleOrder.length - 1];\n}\n\nexport function getLowestRole() {\n return roleOrder[0];\n}\n\nexport function isAtLeastMinimumRole(minRole, role) {\n const minRoleNum = roleOrder.indexOf(minRole);\n const roleNum = roleOrder.indexOf(role);\n\n if (minRoleNum < 0) {\n throw new Error(`Unknown minRole '${minRole}'`);\n }\n else if (roleNum < 0) {\n throw new Error(`Unknown role '${role}'`);\n }\n\n return roleNum >= minRoleNum;\n}\n\nexport function getRoleDisplayText(role) {\n switch (role) {\n case Roles.ADMIN: return 'Admin';\n case Roles.MEMBER: return 'Regular User';\n default: throw new Error(`Unknown role '${role}'`);\n }\n}\n\nexport function getRoleValues() {\n return [\n Roles.MEMBER,\n Roles.ADMIN,\n ];\n}\n","import styled from 'styled-components';\n\nconst NavSeparator = styled.div`\n border-width: 1px 0 0 0;\n border-style: solid;\n border-color: #d5d5d5;\n\n margin-top: 3px;\n margin-bottom: 3px;\n`;\n\nexport default NavSeparator;\n","import styled from 'styled-components';\nimport { Link } from 'react-router-dom';\n\nconst NavLink = styled(Link)`\n line-height: 32px;\n color: #505050;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n`;\n\nexport default NavLink;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { elementOfType } from 'Components/util/propTypesUtils';\nimport NavSeparator from './NavSeparator';\nimport NavLink from './NavLink';\n\nconst NavListItem = styled.li`\n margin: 0;\n padding: 0;\n list-style: none;\n`;\n\nfunction NavItem({ children, ...otherProps }) {\n return (\n \n {children}\n \n );\n}\n\nNavItem.propTypes = {\n children: elementOfType([\n NavSeparator,\n NavLink,\n ]),\n};\n\nexport default NavItem;\n","import React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nimport { elementsOfType } from 'Components/util/propTypesUtils';\nimport NavItem from './NavItem';\n\nconst SubMenu = styled.li`\n margin: 0;\n padding: 0;\n list-style: none;\n width: 170px;\n flex-basis: auto;\n flex-grow: 1;\n flex-shrink: 1;\n`;\n\nconst MenuHeading = styled.span`\n line-height: 16px;\n text-shadow: none;\n color: #505050;\n font-weight: bold;\n text-transform: uppercase;\n`;\n\nconst MenuList = styled.ul`\n margin: 0;\n padding: 0;\n`;\n\nfunction NavSubMenu({ heading, children, ...otherProps }) {\n return (\n \n \n {heading}\n \n \n {children}\n \n \n );\n}\n\nNavSubMenu.propTypes = {\n heading: PropTypes.string,\n children: elementsOfType([\n NavItem,\n ]),\n};\n\nexport default NavSubMenu;\n","import React from 'react';\nimport styled from 'styled-components';\n\nimport { elementsOfType } from 'Components/util/propTypesUtils';\nimport NavSubMenu from './NavSubMenu';\nimport { FontFamily } from 'Components/typography/typography';\n\nconst MenuList = styled.ul`\n font: normal 12px ${FontFamily.primary};\n margin: 0;\n padding: 0;\n list-style-type: none;\n display: flex;\n`;\n\nfunction NavMenu({ children, ...otherProps }) {\n return (\n \n {children}\n \n );\n}\n\nNavMenu.propTypes = {\n children: elementsOfType([\n NavSubMenu,\n ]),\n};\n\nexport default NavMenu;\n","import React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nimport NavMenu from './NavMenu';\nimport NavSubMenu from './NavSubMenu';\nimport NavLink from './NavLink';\nimport NavItem from './NavItem';\nimport NavSeparator from './NavSeparator';\n\nconst StyledNavMenu = styled(NavMenu)`\n box-sizing: border-box;\n margin-left: 6px;\n margin-right: 6px;\n padding: 10px;\n`;\n\nexport default class StaticNavMenu extends React.PureComponent {\n static propTypes = {\n subMenuContents: PropTypes.arrayOf(\n PropTypes.shape({\n menuTitle: PropTypes.string.isRequired,\n menuItems: PropTypes.arrayOf(\n PropTypes.shape({\n type: PropTypes.string.isRequired,\n to: PropTypes.string,\n text: PropTypes.string,\n minRole: PropTypes.string,\n })\n ).isRequired,\n }).isRequired,\n ).isRequired,\n };\n\n static defaultProps = {};\n\n constructor(props) {\n super(props);\n }\n\n _renderNavItem({ type, to, text }, i) {\n let innerItem = null;\n\n if (type === 'link') {\n innerItem = (\n {text}\n );\n }\n else if (type === 'separator') {\n innerItem = (\n \n );\n }\n\n return (\n \n {innerItem}\n \n );\n }\n\n _renderMenuList(subMenuContents) {\n return subMenuContents.map(({ menuItems, menuTitle }, i) => {\n return (\n \n {menuItems.map((item, itemIndex) => {\n return this._renderNavItem(item, itemIndex);\n })}\n \n );\n });\n }\n\n render() {\n const { subMenuContents, ...otherProps } = this.props;\n\n return (\n \n {this._renderMenuList(subMenuContents)}\n \n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport classNames from 'classnames';\nimport FaIcon from 'Components/icon/FaIcon';\nimport { Link } from 'react-router-dom';\nimport { Body1 } from 'Components/typography/typography';\n\nconst Root = styled.div``;\n\nconst MenuLabel = styled.div``;\nconst MenuLabelIcon = styled.div``;\nconst MenuLabelText = styled.div``;\n\nconst CollapseIcon = styled(({ open, ...otherProps }) => {\n return (\n \n );\n})``;\n\nconst ChildListItem = styled.li``;\n\nconst ChildList = styled.ul`\n display: block;\n margin: 0;\n padding: 0;\n list-style-type: none;\n\n ${ChildListItem} {\n display: block;\n list-style: none;\n margin: 0;\n padding: 0;\n }\n\n border: 1px solid rgb(213, 213, 213);\n border-width: 1px 0px;\n\n &:not(.open) {\n display: none;\n }\n`;\n\nconst indentLevelPadding = [ 16, 48, 66, 82 ];\n\nconst MenuLabelWrapper = styled(Body1)`\n display: block;\n\n ${MenuLabel} {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n height: 48px;\n padding-left: ${props => indentLevelPadding[props.indentLevel]}px;\n padding-right: 16px;\n\n font-size: 12px;\n line-height: 16px;\n text-shadow: none;\n color: #505050;\n font-weight: bold;\n text-transform: uppercase;\n text-decoration: none;\n\n background-color: transparent;\n transition: background-color 0.3s;\n cursor: pointer;\n\n &.open, &:hover {\n background-color: #eeeeee;\n }\n\n &.link {\n line-height: 32px;\n color: #505050;\n font-size: 12px;\n font-weight: normal;\n text-decoration: none;\n text-transform: none;\n\n :hover {\n text-decoration: none;\n }\n }\n\n ${MenuLabelIcon} {\n display: block;\n font-size: 18px;\n padding-right: 1em;\n }\n\n ${MenuLabelText} {\n flex: 1 1 auto;\n }\n\n ${CollapseIcon} {\n display: block;\n }\n }\n`;\n\nexport default class MobileNavMenuNode extends React.Component {\n static propTypes = {\n className: PropTypes.string,\n icon: PropTypes.node,\n label: PropTypes.node.isRequired,\n link: PropTypes.string,\n indentLevel: PropTypes.number,\n children: PropTypes.any,\n };\n\n static defaultProps = {\n icon: null,\n label: null,\n link: null,\n indentLevel: 0,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n open: false,\n };\n }\n\n _handleClick = () => {\n if (React.Children.count(this.props.children) === 0) {\n return;\n }\n\n this.setState(({ open }) => ({ open: !open }));\n };\n\n render() {\n const { className, indentLevel, icon, label, link, children } = this.props;\n const { open } = this.state;\n\n const isLink = !!link;\n\n const hasChildren = React.Children.count(children) > 0;\n\n return (\n \n \n \n {icon && (\n {icon}\n )}\n \n {label}\n \n {hasChildren && (\n \n )}\n \n \n \n {React.Children.map(children, (child, i) => {\n return (\n \n {child}\n \n );\n })}\n \n \n );\n }\n}\n","import React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nimport MobileNavMenuNode from './MobileNavMenuNode';\n\nconst Root = styled.div``;\n\nexport default class MobileNavMenu extends React.PureComponent {\n static propTypes = {\n subMenuContents: PropTypes.arrayOf(\n PropTypes.shape({\n menuTitle: PropTypes.string.isRequired,\n menuItems: PropTypes.arrayOf(\n PropTypes.shape({\n type: PropTypes.string.isRequired,\n to: PropTypes.string,\n text: PropTypes.string,\n minRole: PropTypes.string,\n })\n ).isRequired,\n }).isRequired,\n ).isRequired,\n indentLevel: PropTypes.number,\n };\n\n static defaultProps = {\n indentLevel: 0,\n };\n\n constructor(props) {\n super(props);\n }\n\n _renderNavItem({ type, to, text }, i) {\n const { indentLevel } = this.props;\n\n if (type === 'link') {\n return (\n \n );\n }\n else if (type === 'separator') {\n return null;\n }\n }\n\n _renderMenuList(subMenuContents) {\n const { indentLevel } = this.props;\n\n return subMenuContents.map(({ menuTitle, menuItems }, i) => {\n if (menuItems.length === 0) {\n return null;\n }\n\n return (\n \n {menuItems.map((menuItem, menuItemIndex, itemIndex) => {\n return this._renderNavItem(menuItem, menuItemIndex, itemIndex);\n })}\n \n );\n });\n }\n\n render() {\n const { subMenuContents, indentLevel, ...otherProps } = this.props;\n\n return (\n \n {this._renderMenuList(subMenuContents)}\n \n );\n }\n}\n","import { isAtLeastMinimumRole } from 'Components/app/roles';\n\nexport default function filterNavItems(subMenus, currentRole) {\n return subMenus\n .map((subMenu) => {\n return {\n ...subMenu,\n menuItems: subMenu.menuItems.filter((item) => {\n if (item.minRole) {\n return isAtLeastMinimumRole(item.minRole, currentRole);\n }\n else {\n return true;\n }\n }),\n };\n })\n .filter((subMenu) => {\n return subMenu.menuItems.length > 0;\n });\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\n\nimport { Roles } from 'Components/app/roles';\nimport StaticNavMenu from 'Components/header/internal/navigation-menu/StaticNavMenu';\nimport MobileNavMenu from '../navigation-menu/MobileNavMenu';\nimport filterNavItems from '../navigation-menu/filterNavItems';\n\nconst mainMenuContent = [\n {\n menuTitle: 'SUBSCRIPTIONS',\n menuItems: [\n {\n type: 'link',\n to: '/subscriptions/alerts',\n text: 'Alert Subscriptions',\n minRole: Roles.MEMBER,\n },\n {\n type: 'link',\n to: '/subscriptions/reports',\n text: 'Email Report Subscriptions',\n minRole: Roles.MEMBER,\n },\n ],\n },\n];\n\nclass MainMenu extends React.PureComponent {\n static propTypes = {\n mobile: PropTypes.bool,\n role: PropTypes.string,\n };\n\n static defaultProps = {\n mobile: false,\n };\n\n constructor(props) {\n super(props);\n }\n\n render() {\n const { mobile, role } = this.props;\n\n const subMenuContents = filterNavItems(mainMenuContent, role);\n\n if (mobile) {\n return (\n \n );\n }\n else {\n return (\n \n );\n }\n }\n}\n\nconst mapStateToProps = state => {\n const {\n session: {\n sessionData: {\n role\n }\n }\n } = state;\n\n return { role };\n};\n\nexport default connect(mapStateToProps)(MainMenu);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\n\nimport { Roles } from 'Components/app/roles';\nimport StaticNavMenu from 'Components/header/internal/navigation-menu/StaticNavMenu';\nimport MobileNavMenu from 'Components/header/internal/navigation-menu/MobileNavMenu';\nimport filterNavItems from '../navigation-menu/filterNavItems';\n\nconst configMenuContent = [\n {\n menuTitle: 'USER',\n menuItems: [\n {\n type: 'link',\n to: '/config/user/profile',\n text: 'Account',\n minRole: Roles.MEMBER,\n },\n ],\n },\n {\n menuTitle: 'PLANT FLOOR',\n menuItems: [\n {\n type: 'link',\n to: '/config/plant-floor/alert-definitions',\n text: 'Alert Definitions',\n minRole: Roles.ADMIN,\n },\n {\n type: 'link',\n to: '/config/plant-floor/email-templates',\n text: 'Email Report Templates',\n minRole: Roles.ADMIN,\n },\n {\n type: 'link',\n to: '/config/plant-floor/metric-thresholds',\n text: 'Metric Thresholds',\n minRole: Roles.ADMIN,\n },\n ],\n },\n {\n menuTitle: 'DEVICES',\n menuItems: [\n {\n type: 'link',\n to: '/config/devices/all-assets',\n text: 'Enterprise Hierarchy',\n minRole: Roles.MEMBER,\n },\n /*{\n type: 'link',\n to: '/config/devices/software-updates',\n text: 'Software Updates',\n minRole: Roles.MEMBER,\n },*/\n ],\n },\n {\n menuTitle: 'ORGANIZATION',\n menuItems: [\n {\n type: 'link',\n to: '/config/organization/settings',\n text: 'Organization Name',\n minRole: Roles.ADMIN,\n },\n {\n type: 'link',\n to: '/config/organization/users',\n text: 'All Users',\n minRole: Roles.ADMIN,\n },\n ],\n },\n];\n\nclass ConfigMenu extends React.PureComponent {\n static propTypes = {\n mobile: PropTypes.bool,\n role: PropTypes.string,\n };\n\n static defaultProps = {\n mobile: false,\n };\n\n constructor(props) {\n super(props);\n }\n\n render() {\n const { mobile, role } = this.props;\n\n const subMenuContents = filterNavItems(configMenuContent, role);\n\n if (mobile) {\n return (\n \n );\n }\n else {\n return (\n \n );\n }\n }\n}\n\nconst mapStateToProps = state => {\n const {\n session: {\n sessionData: {\n role\n }\n }\n } = state;\n\n return { role };\n};\n\nexport default connect(mapStateToProps)(ConfigMenu);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\n\nimport { Roles } from 'Components/app/roles';\nimport StaticNavMenu from 'Components/header/internal/navigation-menu/StaticNavMenu';\nimport MobileNavMenu from 'Components/header/internal/navigation-menu/MobileNavMenu';\nimport filterNavItems from '../navigation-menu/filterNavItems';\n\nconst menuContext = [\n {\n menuTitle: 'USER',\n menuItems: [\n {\n type: 'link',\n to: '/support/all-users',\n text: 'All Users',\n minRole: Roles.MEMBER,\n },\n ],\n },\n];\n\nclass SupportMenu extends React.PureComponent {\n static propTypes = {\n mobile: PropTypes.bool,\n role: PropTypes.string,\n };\n\n static defaultProps = {\n mobile: false,\n };\n\n constructor(props) {\n super(props);\n }\n\n render() {\n const { mobile, role } = this.props;\n\n const subMenuContents = filterNavItems(menuContext, role);\n\n if (mobile) {\n return (\n \n );\n }\n else {\n return (\n \n );\n }\n }\n}\n\nconst mapStateToProps = state => {\n const {\n session: {\n sessionData: {\n role\n }\n }\n } = state;\n\n return { role };\n};\n\nexport default connect(mapStateToProps)(SupportMenu);\n","import React, { createContext, useContext, useEffect, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nexport const DisplayMode = {\n LARGE_DESKTOP: 'LARGE_DESKTOP',\n DESKTOP: 'DESKTOP',\n TABLET: 'TABLET',\n MOBILE: 'MOBILE',\n};\n\nexport const DisplayModeBreakpoints = {\n LARGE_DESKTOP: 1200,\n DESKTOP: 992,\n TABLET: 768,\n MOBILE: 576,\n};\n\nconst DisplayModeContext = createContext(DisplayMode.DESKTOP);\n\nfunction getDisplayModeFromScreenWidth(width) {\n if (width <= DisplayModeBreakpoints.MOBILE) {\n return DisplayMode.MOBILE;\n }\n else if (width <= DisplayModeBreakpoints.TABLET) {\n return DisplayMode.TABLET;\n }\n else if (width <= DisplayModeBreakpoints.DESKTOP) {\n return DisplayMode.DESKTOP;\n }\n else {\n return DisplayMode.LARGE_DESKTOP;\n }\n}\n\nfunction useScreenSize() {\n const [ size, setSize ] = useState(() => ({\n width: window.innerWidth,\n height: window.innerHeight,\n }));\n\n useEffect(() => {\n const handleResize = () => {\n setSize({\n width: window.innerWidth,\n height: window.innerHeight,\n });\n };\n\n window.addEventListener('resize', handleResize);\n\n return function cleanup() {\n window.removeEventListener('resize', handleResize);\n };\n }, []);\n\n return size;\n}\n\nfunction InternalDisplayModeProvider({ width, children }) {\n const displayMode = useMemo(() => {\n return getDisplayModeFromScreenWidth(width);\n }, [ width ]);\n\n return (\n \n {children}\n \n );\n}\n\nInternalDisplayModeProvider.propTypes = {\n width: PropTypes.number.isRequired,\n children: PropTypes.any,\n};\n\n// eslint-disable-next-line react/no-multi-comp\nexport function DisplayModeProvider({ children }) {\n const { width } = useScreenSize();\n\n return (\n \n {children}\n \n );\n}\n\nDisplayModeProvider.propTypes = {\n children: PropTypes.any,\n};\n\n/**\n * A mocked alternative to `DisplayModeProvider` for testing.\n *\n * Instead of getting the actual screen width, it is passed as a prop to make\n * testing responsive components easy.\n */\n// eslint-disable-next-line react/no-multi-comp\nexport function MockDisplayModeProvider({ width, children }) {\n return (\n \n {children}\n \n );\n}\n\nMockDisplayModeProvider.propTypes = {\n width: PropTypes.number.isRequired,\n children: PropTypes.any,\n};\n\n/**\n * A react hook to get the current display mode.\n *\n * @returns {String} A DisplayMode value @see {DisplayMode}\n */\nexport function useDisplayMode() {\n return useContext(DisplayModeContext);\n}\n\n/**\n * Note: Only use this if necessary. Use the `useDisplayMode` hook instead.\n *\n * A react higher-order component that can be used to get the current display\n * mode as a prop named `displayMode`.\n *\n * `props.displayMode` is a String. @see {DisplayMode} for possible values.\n *\n * Usage:\n * ```\n * const MyReactComponentClassWithDisplayMode = withDisplayMode(MyReactComponentClass);\n * ```\n *\n * @returns {Function} A wrapped React component.\n */\nexport function withDisplayMode(WrappedComponent) {\n // eslint-disable-next-line react/no-multi-comp\n function WithDisplayMode(props) {\n // Quick check to warn if there's a displayMode prop being overridden.\n // eslint-disable-next-line react/prop-types\n if (props.displayMode !== undefined) {\n console.warn('Component wrapped by `withDisplayMode` has a `displayMode` prop that will be overridden');\n }\n\n const displayMode = useContext(DisplayModeContext);\n\n return (\n \n );\n }\n\n const displayName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n\n WithDisplayMode.displayName = `WithDisplayMode${displayName}`;\n\n return WithDisplayMode;\n}\n\n/**\n * Note: Only use this if necessary. Use the `useDisplayMode` hook instead.\n *\n * A react context consumer that can be used to get the current display\n * mode.\n *\n * As with any regular context consumer, this component should have a function\n * as its only child. The child function will be called with `displayMode`\n * as the only argument.\n *\n * `displayMode` is a String. @see {DisplayMode} for possible values.\n *\n * @returns {React.Consumer} React Consumer\n */\nexport const DisplayModeConsumer = DisplayModeContext.Consumer;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { css } from 'styled-components';\nimport VorneIcon from 'Components/vorne-icon/VorneIcon';\nimport { DisplayMode } from 'Common/util/DisplayMode';\n\nconst BigLogo = styled(VorneIcon).attrs({ i: 'xl-vorne-logo' })``;\nconst SmallLogo = styled(VorneIcon).attrs({ i: 'xl-logo' })``;\n\nconst Root = styled.span`\n display: inline-flex;\n font-size: 28px;\n color: ${props => props.theme.colors.palette.blue.awesome};\n\n ${({ $displayMode }) => $displayMode === DisplayMode.MOBILE && css`\n padding: 0 10px;\n\n ${BigLogo} {\n display: none;\n }\n\n ${SmallLogo} {\n display: inline;\n }\n `}\n\n ${({ $displayMode }) => $displayMode !== DisplayMode.MOBILE && css`\n padding: 0 16px;\n\n ${BigLogo} {\n display: inline;\n }\n\n ${SmallLogo} {\n display: none;\n }\n `}\n`;\n\nexport default function HeaderLogoIcon({ displayMode, ...otherProps }) {\n return (\n \n \n \n
\n );\n}\n\nHeaderLogoIcon.propTypes = {\n displayMode: PropTypes.string.isRequired,\n};\n","import React from 'react';\nimport { getDisplayName } from 'Components/util/reactUtils';\n\nconst defaultContext = {\n isDefault: true,\n open: false,\n getAnchorNode: () => null,\n};\n\nconst DropdownContext = React.createContext(defaultContext);\n\nexport const DropdownContextProvider = DropdownContext.Provider;\n\nexport function withDropdownContext(WrappedComponent) {\n const WithDropdownContext = React.forwardRef((props, ref) => (\n \n {(context) => {\n return (\n \n );\n }}\n \n ));\n\n // Wrap the display name for easy debugging\n WithDropdownContext.displayName = `WithDropdownContext(${getDisplayName(WrappedComponent)})`;\n\n return WithDropdownContext;\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { DropdownContextProvider } from './internal/DropdownContext';\n\nfunction isInTree(rootNode, testNode) {\n if (rootNode && testNode) {\n return rootNode === testNode || rootNode.contains(testNode);\n }\n else {\n return false;\n }\n}\n\nfunction isWithinDropdown(anchorNode, contentNode, testNode) {\n return isInTree(anchorNode, testNode) || isInTree(contentNode, testNode);\n}\n\nconst Root = styled.div`\n position: relative;\n display: inline-block;\n outline: none;\n`;\n\nexport default class Dropdown extends React.Component {\n static propTypes = {\n Component: PropTypes.elementType,\n open: PropTypes.bool,\n onBlur: PropTypes.func,\n onBlurDeep: PropTypes.func,\n };\n\n static defaultProps = {\n Component: 'div',\n open: false,\n onBlurDeep: () => {},\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n mounted: false,\n };\n\n this._anchorRef = React.createRef();\n this._contentRef = React.createRef();\n }\n\n componentDidMount() {\n this.setState({ mounted: true });\n }\n\n _handleBlur = (event) => {\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n\n const rootNode = this._anchorRef.current;\n const contentNode = this._contentRef.current;\n const newFocus = event.relatedTarget;\n\n const hasFocus = isWithinDropdown(rootNode, contentNode, newFocus);\n\n if (!hasFocus) {\n // The focus has moved away from the dropdown. This can also happen\n // when the user focuses outside the document, but we only want to\n // trigger blurDeep when the user focuses elsewhere within the document.\n // The way to check for this is to see that we are still the\n // activeElement. If we are not, then trigger the blurDeep.\n // Otherwise, we want to keep focus (preventDefault).\n\n const isActiveElement = isWithinDropdown(rootNode, contentNode, document.activeElement);\n\n if (!isActiveElement) {\n this.props.onBlurDeep();\n }\n else {\n event.preventDefault();\n }\n }\n };\n\n render() {\n const { open, onBlur, onBlurDeep, Component, ...otherProps } = this.props;\n const { mounted } = this.state;\n\n return (\n this._anchorRef.current,\n contentRef: this._contentRef,\n }}\n >\n {mounted && (\n \n )}\n \n );\n }\n}\n","import styled from 'styled-components';\n\nconst DropdownContentBox = styled.div`\n box-sizing: border-box;\n overflow: auto;\n\n outline: none;\n\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 4px;\n box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n background-color: ${props => props.theme.colors.palette.white};\n color: ${props => props.theme.colors.palette.black};\n`;\n\nexport default DropdownContentBox;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport DropdownContentBox from './internal/DropdownContentBox';\nimport { withDropdownContext } from './internal/DropdownContext';\n\n// Give a margin for scrollbars on the edge of the screen, and it looks a\n// little nicer.\nconst windowEdgeMargin = 24;\n\nconst Root = styled(DropdownContentBox)`\n position: absolute;\n z-index: 100;\n transition: opacity 300ms;\n min-width: 120px;\n max-width: calc(100vw - ${2 * windowEdgeMargin}px);\n max-height: calc(100vh - ${2 * windowEdgeMargin}px);\n`;\n\nfunction getCurrentWindowSize() {\n return {\n width: document.documentElement.clientWidth,\n height: document.documentElement.clientHeight,\n };\n}\n\nfunction calculateAbsolutePosition(anchorRect, windowSize) {\n let style = {};\n\n const spaceAboveAnchor = anchorRect.top;\n const spaceBelowAnchor = windowSize.height - anchorRect.bottom;\n\n if (spaceAboveAnchor > spaceBelowAnchor) {\n // Position off the top of the anchor\n style = {\n ...style,\n bottom: `${anchorRect.height}px`,\n maxHeight: `${spaceAboveAnchor - windowEdgeMargin}px`,\n };\n }\n else {\n // Position off the bottom of the anchor\n style = {\n ...style,\n top: `${anchorRect.height}px`,\n maxHeight: `${spaceBelowAnchor - windowEdgeMargin}px`,\n };\n }\n\n const spaceLeftOfAnchor = anchorRect.right;\n const spaceRightOfAnchor = windowSize.width - anchorRect.left;\n\n if (spaceLeftOfAnchor > spaceRightOfAnchor) {\n // Position off the left of the anchor\n style = {\n ...style,\n right: '0',\n maxWidth: `${spaceLeftOfAnchor - windowEdgeMargin}px`,\n };\n }\n else {\n // Position off the right of the anchor\n style = {\n ...style,\n left: '0',\n maxWidth: `${spaceRightOfAnchor - windowEdgeMargin}px`,\n };\n }\n\n return style;\n}\n\nclass DropdownContent extends React.Component {\n static propTypes = {\n className: PropTypes.string,\n children: PropTypes.any,\n\n // Provided by `withDropdownContext`\n dropdownContext: PropTypes.shape({\n isDefault: PropTypes.bool.isRequired,\n getAnchorNode: PropTypes.func.isRequired,\n contentRef: PropTypes.shape({\n current: PropTypes.any,\n }).isRequired,\n }).isRequired,\n };\n\n static defaultProps = {};\n\n constructor(props) {\n super(props);\n\n if (props.dropdownContext.isDefault) {\n throw new Error('DropdownContent must be rendered as a descendant of Dropdown');\n }\n\n this.state = {\n mounted: false,\n anchorRect: null,\n windowSize: null,\n };\n }\n\n get _rootRef() {\n return this.props.dropdownContext.contentRef;\n }\n\n componentDidMount() {\n const { dropdownContext } = this.props;\n\n const anchorNode = dropdownContext.getAnchorNode();\n const anchorRect = anchorNode.getBoundingClientRect();\n\n this.setState({\n mounted: true,\n anchorRect: anchorRect,\n windowSize: getCurrentWindowSize(),\n });\n\n window.addEventListener('resize', this._handleWindowResize);\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (this.state.mounted && !prevState.mounted) {\n this._rootRef.current.focus();\n }\n }\n\n componentWillUnmount() {\n window.removeEventListener('resize', this._handleWindowResize);\n }\n\n _handleWindowResize = (event) => {\n this.setState({\n windowSize: getCurrentWindowSize(),\n });\n };\n\n render() {\n const { className, children } = this.props;\n const { anchorRect, windowSize } = this.state;\n\n let style = {\n opacity: '0',\n };\n\n if (anchorRect && windowSize) {\n style = {\n opacity: '1',\n ...calculateAbsolutePosition(anchorRect, windowSize),\n };\n }\n\n return (\n \n {children}\n
\n );\n }\n}\n\n// eslint-disable-next-line react/no-multi-comp\nfunction BlockedRender(props) {\n if (props.dropdownContext.open) {\n return (\n \n );\n }\n else {\n return null;\n }\n}\n\nBlockedRender.propTypes = {\n dropdownContext: PropTypes.shape({\n open: PropTypes.bool\n }),\n};\n\nexport default withDropdownContext(BlockedRender);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport DropdownContentBox from './internal/DropdownContentBox';\nimport { withDropdownContext } from './internal/DropdownContext';\n\n// Give a margin for scrollbars on the edge of the screen, and it looks a\n// little nicer.\nconst windowEdgeMargin = 24;\n\nconst Root = styled(DropdownContentBox)`\n position: absolute;\n z-index: 100;\n transition: opacity 300ms;\n min-width: 120px;\n max-width: calc(100vw - ${2 * windowEdgeMargin}px);\n max-height: calc(100vh - ${2 * windowEdgeMargin}px);\n`;\n\nclass FixedDropdownContent extends React.Component {\n static propTypes = {\n className: PropTypes.string,\n children: PropTypes.any,\n\n // Provided by `withDropdownContext`\n dropdownContext: PropTypes.shape({\n isDefault: PropTypes.bool.isRequired,\n getAnchorNode: PropTypes.func.isRequired,\n contentRef: PropTypes.shape({\n current: PropTypes.any,\n }).isRequired,\n }).isRequired,\n };\n\n static defaultProps = {};\n\n constructor(props) {\n super(props);\n\n if (props.dropdownContext.isDefault) {\n throw new Error('FixedDropdownContent must be rendered as a descendant of Dropdown');\n }\n\n this.state = {\n mounted: false,\n anchorRect: null,\n windowSize: null,\n };\n }\n\n get _rootRef() {\n return this.props.dropdownContext.contentRef;\n }\n\n componentDidMount() {\n this.setState({\n mounted: true,\n });\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (this.state.mounted && !prevState.mounted) {\n this._rootRef.current.focus();\n }\n }\n\n render() {\n const { className, children } = this.props;\n const { mounted } = this.state;\n\n let style = {\n opacity: '0',\n };\n\n if (mounted) {\n style = {\n opacity: '1',\n };\n }\n\n return (\n \n {children}\n \n );\n }\n}\n\n// eslint-disable-next-line react/no-multi-comp\nfunction BlockedRender(props) {\n if (props.dropdownContext.open) {\n return (\n \n );\n }\n else {\n return null;\n }\n}\n\nBlockedRender.propTypes = {\n dropdownContext: PropTypes.shape({\n open: PropTypes.bool\n }),\n};\n\nexport default withDropdownContext(BlockedRender);\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport { withRouter, Link } from 'react-router-dom';\nimport styled from 'styled-components';\nimport classNames from 'classnames';\nimport { T1, Caption } from 'Components/typography/typography';\nimport VorneIcon from 'Components/vorne-icon/VorneIcon';\nimport LoginFormContainer from 'Components/login-form/LoginFormContainer';\nimport FaIcon from 'Components/icon/FaIcon';\nimport MainMenuIconLink from './internal/main-menu/MainMenuIconLink';\nimport MainMenuMobileIconLink from './internal/main-menu/MainMenuMobileIconLink';\nimport MainMenu from './internal/main-menu/MainMenu';\nimport { selectIsLoggedIn, selectIsSupport } from 'Redux/reducers/session';\nimport ConfigMenu from './internal/config-menu/ConfigMenu';\nimport SupportMenu from './internal/support-menu/SupportMenu';\nimport HeaderLogoIcon from './internal/HeaderLogoIcon';\nimport IconLink from './internal/IconLink';\nimport MobileNavMenuNode from './internal/navigation-menu/MobileNavMenuNode';\nimport Dropdown from 'Components/dropdown/Dropdown';\nimport DropdownContent from 'Components/dropdown/DropdownContent';\nimport FixedDropdownContent from 'Components/dropdown/FixedDropdownContent';\nimport { DisplayMode, withDisplayMode } from 'Common/util/DisplayMode';\n\nconst HeaderBar = styled.div`\n min-height: 50px;\n background-color: ${props => props.theme.colors.palette.white};\n position: relative;\n display: flex;\n align-items: center;\n font-family: Arial, sans-serif;\n color: ${props => props.theme.colors.darkText.mediumEmphasis};\n box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23);\n z-index: 150;\n`;\n\nconst LeftItems = styled.div`\n height: 100%;\n position: absolute;\n display: flex;\n align-items: center;\n top: 0;\n left: 0;\n`;\n\nconst RightItems = styled.div`\n height: 100%;\n position: absolute;\n display: flex;\n align-items: center;\n top: 0;\n right: 0;\n`;\n\nconst VerticalDivider = styled.div`\n width: 1px;\n height: 30px;\n display: inline-block;\n background-color: ${props => props.theme.colors.darkText.mediumEmphasis};\n`;\n\nconst Details = styled.div`\n display: inline-block;\n font-size: 12px;\n line-height: 1.2em;\n padding: 0 16px;\n\n ${Caption}.primary {\n text-transform: uppercase;\n font-weight: 900;\n padding-bottom: 2px;\n }\n`;\n\nconst DesktopDropdown = styled(Dropdown)`\n display: inline-block;\n`;\n\nconst MobileDropdown = styled(Dropdown)`\n display: inline-block;\n`;\n\nconst MobileDropdownContent = styled(FixedDropdownContent)`\n display: block;\n position: fixed;\n top: 50px;\n left: 0;\n right: 0;\n max-width: 100vw;\n max-height: calc(100vh - 50px);\n z-index: 2000;\n`;\n\nconst LoginWrapper = styled.div`\n box-sizing: border-box;\n min-width: 300px;\n padding: 10px;\n`;\n\nconst DropdownTitle = styled(T1)`\n display: block;\n border-bottom: 1px solid #D5D5D5;\n color: ${props => props.theme.colors.palette.blue.awesome};\n margin: 0;\n padding: 10px;\n`;\n\nconst UnstyledLink = styled(Link)`\n text-decoration: none;\n color: none;\n`;\n\nclass Header extends React.Component {\n static propTypes = {\n displayMode: PropTypes.string.isRequired,\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired,\n }).isRequired,\n session: PropTypes.object.isRequired,\n history: PropTypes.shape({\n listen: PropTypes.func.isRequired,\n }).isRequired,\n onOpenMenuChange: PropTypes.func.isRequired,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n activeDropdown: null,\n };\n\n this._toggleActiveDropdownHandlers = {};\n }\n\n componentDidMount() {\n // listen for changes to history for location changes\n this.unlistenHistory = this.props.history.listen((location, action) => {\n const { location: { pathname: currentPathname } } = this.props;\n if (currentPathname === location.pathname) {\n // if the location was \"changed\" to the current location close the menu\n this.closeAllMenus();\n }\n });\n }\n\n componentWillUnmount() {\n this.unlistenHistory();\n }\n\n _getDropdownToggleHandler(name) {\n const handlerKey = name === null ? 'none' : name;\n\n if (!this._toggleActiveDropdownHandlers[handlerKey]) {\n this._toggleActiveDropdownHandlers[handlerKey] = this._toggleActiveDropdown.bind(this, name);\n }\n\n return this._toggleActiveDropdownHandlers[handlerKey];\n }\n\n _toggleActiveDropdown(name) {\n this.setState((state) => {\n let activeDropdown = state.activeDropdown;\n\n if (activeDropdown === name) {\n // already active; 'toggle' to null\n activeDropdown = null;\n }\n else {\n activeDropdown = name;\n }\n\n return {\n activeDropdown,\n };\n });\n }\n\n _renderDesktopDropdown(name, trigger, content) {\n const { displayMode } = this.props;\n const { activeDropdown } = this.state;\n\n if (displayMode === DisplayMode.MOBILE) {\n return null;\n }\n else {\n return (\n \n {trigger}\n \n {content}\n \n \n );\n }\n }\n\n _renderMobileDropdown(name, trigger, content) {\n const { displayMode } = this.props;\n const { activeDropdown } = this.state;\n\n if (displayMode === DisplayMode.MOBILE) {\n return (\n \n {trigger}\n \n {content}\n \n\n \n );\n }\n else {\n return null;\n }\n }\n\n _renderOverflowMenu() {\n const isLoggedIn = selectIsLoggedIn(this.props.session);\n\n return (\n \n \n )}\n >\n \n \n \n \n {isLoggedIn && (\n \n )}\n >\n \n \n )}\n \n );\n }\n\n componentDidUpdate(prevProps, prevState) {\n const {\n displayMode: currentDisplayMode,\n location: { pathname: currentPathname },\n } = this.props;\n const {\n displayMode: prevDisplayMode,\n location: { pathname: previousPathname },\n } = prevProps;\n\n // The browser location changed, close all of the menus.\n if (currentPathname !== previousPathname) {\n this.closeAllMenus();\n }\n\n // If the displayMode changed AND either the current or previous\n // displayMode is mobile, then we crossed the mobile breakpoint.\n const crossedMobileBreakpoint = (\n currentDisplayMode !== prevDisplayMode &&\n (\n prevDisplayMode === DisplayMode.MOBILE ||\n currentDisplayMode === DisplayMode.MOBILE\n )\n );\n\n // Close all menus when the window resizes past the mobile breakpoint\n if (crossedMobileBreakpoint) {\n this.closeAllMenus();\n }\n\n if (prevState.activeDropdown !== this.state.activeDropdown) {\n this.props.onOpenMenuChange(this.state.activeDropdown);\n }\n }\n\n closeAllMenus() {\n this.setState({\n activeDropdown: null,\n });\n }\n\n render() {\n const { displayMode } = this.props;\n const { activeDropdown } = this.state;\n const isLoggedIn = selectIsLoggedIn(this.props.session);\n const isSupport = selectIsSupport(this.props.session);\n\n return (\n \n \n \n \n \n \n
\n XL Enterprise
\n
\n {isLoggedIn && (\n \n \n {this._renderDesktopDropdown(\n 'main',\n (\n \n ),\n \n )}\n {this._renderMobileDropdown(\n 'mainMobile',\n (\n \n ),\n \n )}\n \n )}\n
\n\n \n {this._renderMobileDropdown(\n 'overflow',\n \n \n ,\n this._renderOverflowMenu(),\n )}\n\n {this._renderDesktopDropdown(\n 'login',\n (\n \n \n \n ),\n (\n \n Log In\n \n \n )\n )}\n\n {isLoggedIn && isSupport && (\n this._renderDesktopDropdown(\n 'support',\n \n \n ,\n \n )\n )}\n\n {isLoggedIn && (\n this._renderDesktopDropdown(\n 'config',\n \n \n ,\n \n )\n )}\n \n
\n );\n }\n}\n\nconst mapStateToProps = state => {\n const { session } = state;\n return { session };\n};\n\nexport default withDisplayMode(withRouter(connect(mapStateToProps)(Header)));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Link } from 'react-router-dom';\nimport styled from 'styled-components';\n\nconst Footer = styled.div`\n margin-top: auto;\n font-family: Arial, sans-serif;\n box-sizing: border-box;\n padding: 20px;\n position: relative;\n box-shadow: 0 -3px 6px rgba(0,0,0,0.16), 0 -3px 6px rgba(0,0,0,0.23);\n z-index: 100;\n\n a {\n text-decoration: none;\n color: inherit;\n }\n\n a:hover {\n text-decoration: underline;\n color: #2352a2;\n }\n`;\n\nconst Line1 = styled.div`\n font-size: 12px;\n font-weight: bold;\n text-align: center;\n`;\n\nconst Line2 = styled.div`\n font-size: 10px;\n margin-top: 10px;\n text-align: center;\n`;\n\nconst Spacer = styled.span`\n padding-left: 5px;\n padding-right: 5px;\n`;\n\nexport default class FooterContainer extends React.PureComponent {\n static propTypes = {\n className: PropTypes.string,\n };\n\n constructor() {\n super();\n }\n\n _renderSpacer() {\n return (\n | \n );\n }\n\n render() {\n const { className } = this.props;\n\n return (\n
\n \n Vorne XL Enterprise\n\n {this._renderSpacer()}\n www.vorne.com \n\n {this._renderSpacer()}\n +1.630.875.3600 \n\n {this._renderSpacer()}\n support@vorne.com \n \n \n Copyright © {new Date().getFullYear()} Vorne Industries, Inc.\n\n {this._renderSpacer()}\n Privacy Policy \n\n {this._renderSpacer()}\n Cookie Policy \n\n {this._renderSpacer()}\n Terms of Use \n\n {this._renderSpacer()}\n Third-Party Licenses \n \n
\n );\n }\n}\n","// Color Palette - Standard colors to be used across the XL WPI.\n// See: https://vornewiki.atlassian.net/wiki/spaces/XSD/pages/1287422332/WPI+Styles+-+Colors\n//\nconst palette = {\n black: '#000000',\n white: '#FFFFFF',\n grey: {\n emperor: '#464646',\n manatee: '#6A6A6A',\n ash: '#909090',\n silver: '#DDDDDD',\n cloud: '#F2F2F2',\n },\n greyOpacity: {\n // These are generated \"black opacity\" versions of the straight colors for using as a\n // darkener on a transparent background.\n // https://aclarembeau.github.io/grayscale-to-opacity/\n emperor: 'rgba(0, 0, 0, 0.73)',\n manatee: 'rgba(0, 0, 0, 0.58)',\n ash: 'rgba(0, 0, 0, 0.44)',\n silver: 'rgba(0, 0, 0, 0.13)',\n cloud: 'rgba(0, 0, 0, 0.05)',\n },\n blue: {\n deep: '#075391',\n awesome: '#1070C0',\n summer: '#4D92CA',\n cruise: '#A5C8E4',\n pool: '#DCE9F4',\n ice: '#F0F5FA',\n },\n error: {\n red: '#D91111',\n helios: '#FDF2F2',\n },\n heatMap: {\n deepGreen: '#006400',\n green: '#228B22',\n amber: '#FFBF00',\n red: '#D91111',\n deepRed: '#8B0000',\n },\n};\n\nconst transparent = 'rgba(255, 255, 255, 0)';\nconst green = '#4f9d47';\n\nexport default {\n colors: {\n separator: palette.grey.silver,\n\n // [FUTUREHACK] Color names still used by enterprise\n warning: 'rgba(255, 200, 0, 1)',\n warningSurface: 'rgba(255, 200, 0, 0.3)',\n onWarning: 'rgba(0, 0, 0, 0.87)',\n\n success: green,\n onSuccess: palette.white,\n editorGreen: green,\n\n primary: palette.blue.awesome,\n onPrimary: palette.white,\n // [FUTUREHACK END] Color names still used by enterprise\n\n trend: {\n good: palette.heatMap.green,\n bad: palette.heatMap.red,\n neutral: palette.grey.silver,\n none: transparent,\n },\n\n palette: palette,\n\n darkText: {\n highEmphasis: 'rgba(0, 0, 0, 0.82)',\n mediumEmphasis: 'rgba(0, 0, 0, 0.58)',\n disabled: 'rgba(0, 0, 0, 0.34)',\n },\n },\n layout: {\n widget: {\n horizontalPadding: '15px',\n verticalPadding: '10px',\n },\n },\n};\n","import React from 'react';\nimport styled from 'styled-components';\nimport LoadingWrapper from 'Components/loading-indicator/LoadingWrapper';\n\nconst Root = styled.div`\n position: relative;\n box-sizing: border-box;\n width: 100%;\n height: 500px;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: ${(props) => props.theme.colors.palette.white};\n`;\n\nfunction LoadingPage(props) {\n return (\n \n \n \n );\n}\n\nexport default LoadingPage;\n","import React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport { T1 } from 'Components/typography/typography';\nimport { Helmet } from 'react-helmet-async';\n\nconst Root = styled(T1)`\n display: block;\n margin: 0;\n padding: 0;\n line-height: 1.7em;\n color: ${props => props.theme.colors.palette.black};\n`;\n\nexport default function PageTitle(props) {\n const { children, preface, ...otherProps } = props;\n\n return (\n \n \n {children}\n \n \n {preface} {children}\n \n \n );\n}\n\nPageTitle.propTypes = {\n children: PropTypes.string,\n preface: PropTypes.node,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport PageTitle from './PageTitle';\nimport FaIcon from 'Components/icon/FaIcon';\n\nexport default function ConfigPageTitle(props) {\n const { children, ...otherProps } = props;\n\n return (\n )} {...otherProps}>\n {children}\n \n );\n}\n\nConfigPageTitle.propTypes = {\n children: PropTypes.node,\n};\n","import styled from 'styled-components';\nimport { Subtitle1 } from 'Components/typography/typography';\n\nconst PageDescription = styled(Subtitle1)`\n display: block;\n color: ${props => props.theme.colors.darkText.mediumEmphasis};\n margin-top: 10px;\n margin-bottom: 24px;\n max-width: 1280px; /* Matches PageContentWide */\n\n > p:first-of-type {\n margin-block-start: 0;\n }\n > p:last-of-type {\n margin-block-end: 0;\n }\n`;\n\nexport default PageDescription;\n","import styled from 'styled-components';\n\nconst PageContent = styled.div`\n display: block;\n margin: 24px 0;\n max-width: 500px;\n`;\n\nexport default PageContent;\n","import styled from 'styled-components';\nimport PageContentStandard from './PageContentStandard';\n\nconst PageContentWide = styled(PageContentStandard)`\n max-width: 1280px;\n`;\n\nexport default PageContentWide;\n","import styled from 'styled-components';\n\nconst PageContentFull = styled.div`\n display: block;\n`;\n\nexport default PageContentFull;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport classNames from 'classnames';\nimport { T3, Body1 } from 'Components/typography/typography';\nimport FaIcon from 'Components/icon/FaIcon';\n\nconst ANIMATION_LENGTH_MS = 500;\n\nconst Root = styled.div`\n position: relative;\n margin: 24px 0;\n`;\n\nconst TitleLineWrapper = styled.div``;\nconst TitleText = styled.span``;\n\nconst Title = styled(T3)`\n display: block;\n line-height: 2em;\n color: ${props => props.theme.colors.palette.blue.awesome};\n\n ${TitleLineWrapper} {\n display: inline-block;\n\n &.collapsible {\n cursor: pointer;\n\n ${TitleText} {\n ${'' /* Add some padding for the caret */}\n padding-left: 7px;\n }\n }\n }\n`;\n\nconst TitleCaret = styled(FaIcon)`\n transition: transform ${ANIMATION_LENGTH_MS}ms cubic-bezier(0.4, 0.0, 0.2, 1);\n transform: rotate(-90deg);\n\n &.isOpen {\n transform: rotate(-45deg);\n }\n`;\n\nconst Content = styled(Body1)``;\n\nconst ContentMeasureable = styled.div``;\n\nconst ContentWrapper = styled.div.attrs((props) => {\n const style = {};\n\n if (props._height !== null) {\n style.height = `${props._height}px`;\n style.overflow = 'hidden';\n }\n\n return { style };\n})`\n display: block;\n transition: height ${ANIMATION_LENGTH_MS}ms cubic-bezier(0.4, 0.0, 0.2, 1);\n box-sizing: border-box;\n margin: 5px;\n\n ${Content} {\n display: block;\n }\n`;\n\nexport default class PageFrame extends React.Component {\n static propTypes = {\n className: PropTypes.string,\n title: PropTypes.string.isRequired,\n collapsible: PropTypes.bool,\n children: PropTypes.node,\n };\n\n static defaultProps = {\n collapsible: true,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n isOpen: true,\n contentHeight: null,\n };\n\n this._contentRef = React.createRef();\n this._contentWrapperRef = React.createRef();\n this._contentMeasureableRef = React.createRef();\n\n this._openAnimation = this._openAnimation.bind(this);\n this._closeAnimation = this._closeAnimation.bind(this);\n\n this._isAnimating = false;\n }\n\n componentWillUnmount() {\n this._abortCurrentAnimation();\n }\n\n _handleTitleClick = () => {\n if (!this.props.collapsible) {\n return;\n }\n\n let animation;\n\n if (this.state.isOpen) {\n animation = this._closeAnimation;\n }\n else {\n animation = this._openAnimation;\n }\n\n this._runAnimation(animation);\n };\n\n _runAnimation(animation) {\n // Abort any animations in progress\n this._abortCurrentAnimation();\n\n const gen = animation();\n\n const step = (cb) => {\n const { value, done } = gen.next();\n\n if (typeof value !== 'function') {\n if (!done) {\n console.error('Stopping animation because it yielded a non-function.');\n gen.return();\n }\n cb();\n return;\n }\n\n value(() => {\n if (!done) {\n step(cb);\n }\n else {\n cb();\n }\n });\n };\n\n // Set as the current animation\n this._currentAnimation = gen;\n\n step(() => {\n // Only clear if we are still the current animation (not aborted)\n if (this._currentAnimation === gen) {\n this._currentAnimation = null;\n }\n });\n }\n\n _abortCurrentAnimation() {\n if (this._currentAnimation) {\n this._currentAnimation.return();\n this._currentAnimation = null;\n }\n }\n\n * _openAnimation() {\n const contentNode = this._contentMeasureableRef.current;\n const height = contentNode.getBoundingClientRect().height;\n\n yield f => this.setState((state) => {\n return {\n isOpen: true,\n contentHeight: 0,\n };\n }, f);\n\n yield f => requestAnimationFrame(f);\n\n yield f => this.setState(() => {\n return { contentHeight: height };\n }, f);\n\n yield f => setTimeout(f, ANIMATION_LENGTH_MS);\n\n yield f => this.setState(() => {\n return { contentHeight: null };\n }, f);\n }\n\n * _closeAnimation() {\n const contentNode = this._contentMeasureableRef.current;\n const height = contentNode.getBoundingClientRect().height;\n\n yield f => this.setState((state) => {\n return {\n isOpen: false,\n contentHeight: height,\n };\n }, f);\n\n yield f => requestAnimationFrame(f);\n\n yield f => this.setState(() => {\n return { contentHeight: 0 };\n }, f);\n\n yield f => setTimeout(f, ANIMATION_LENGTH_MS);\n }\n\n render() {\n const { className, title, collapsible, children, ...otherProps } = this.props;\n const { isOpen, contentHeight } = this.state;\n\n return (\n \n \n <TitleLineWrapper onClick={this._handleTitleClick} className={classNames({ collapsible })}>\n {collapsible && (\n <TitleCaret i=\"caret-down\" className={classNames({ isOpen })} />\n )}\n <TitleText>{title}</TitleText>\n </TitleLineWrapper>\n \n \n \n \n {children}\n \n \n \n \n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { elementsOfType } from 'Components/util/propTypesUtils';\nimport PageTitle from './PageTitle';\nimport ConfigPageTitle from './ConfigPageTitle';\nimport PageDescription from './PageDescription';\nimport PageContentStandard from './PageContentStandard';\nimport PageContentWide from './PageContentWide';\nimport PageContentFull from './PageContentFull';\nimport PageFrame from './PageFrame';\n\nconst Root = styled.div`\n position: relative;\n padding: 10px 20px;\n background-color: ${(props) => props.theme.colors.palette.white};\n color: ${(props) => props.theme.colors.palette.black};\n`;\n\nexport default class Page extends React.Component {\n constructor() {\n super();\n }\n\n render() {\n const { className, children } = this.props;\n\n return (\n \n {children}\n \n );\n }\n}\n\nPage.propTypes = {\n className: PropTypes.string,\n children: elementsOfType([\n PageTitle,\n ConfigPageTitle,\n PageDescription,\n PageContentStandard,\n PageContentWide,\n PageContentFull,\n PageFrame,\n ]),\n};\n","import React from 'react';\nimport { Body1 } from 'Components/typography/typography';\nimport { Link } from 'react-router-dom';\nimport Page from 'Components/page/Page';\nimport PageTitle from 'Components/page/PageTitle';\nimport PageContent from 'Components/page/PageContentStandard';\nimport PageDescription from 'Components/page/PageDescription';\nimport PropTypes from 'prop-types';\nimport { getRoleDisplayText } from 'Components/app/roles';\n\nexport default class ForbiddenPage extends React.Component {\n static propTypes = {\n minRole: PropTypes.string.isRequired,\n };\n\n render() {\n const { minRole } = this.props;\n\n return (\n \n Forbidden\n \n You do not have permission to access this page.\n This action requires a minimum role of "{getRoleDisplayText(minRole)}".\n \n \n Return to the home page.\n \n \n );\n }\n}\n","import { connect } from 'react-redux';\nimport React from 'react';\nimport { withRouter, Redirect, Route } from 'react-router-dom';\nimport LoadingPage from 'Components/pages/loading/LoadingPage';\nimport PropTypes from 'prop-types';\nimport ForbiddenPage from 'Components/pages/forbidden/ForbiddenPage';\nimport { isAtLeastMinimumRole, getLowestRole } from './roles';\nimport { selectIsLoggedIn, selectIsInitialized, selectSessionUser } from 'Redux/reducers/session';\n\nconst PrivateRoute = ({ component: Component, minRole, ...rest }) => {\n const session = rest.session;\n const showLoading = !selectIsInitialized(session);\n const isLoggedIn = selectIsLoggedIn(session);\n const sessionData = selectSessionUser(session);\n\n // object passed on to the redirect so it can bring us back here after successful login\n const fromObj = {\n path: rest.location.pathname,\n search: rest.location.search\n };\n\n const renderFunc = function(props) {\n if (showLoading) {\n return (\n \n );\n }\n else if (!isLoggedIn) {\n return (\n \n );\n }\n\n const hasPermission = isAtLeastMinimumRole(minRole || getLowestRole(), sessionData.role);\n\n if (hasPermission) {\n return (\n \n );\n }\n else {\n return ;\n }\n };\n\n return (\n \n );\n};\n\nPrivateRoute.propTypes = {\n session: PropTypes.object.isRequired,\n component: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.func,\n ]).isRequired,\n minRole: PropTypes.string,\n};\n\nconst mapStateToProps = state => {\n const { session } = state;\n return { session };\n};\n\nexport default withRouter(connect(mapStateToProps)(PrivateRoute));\n","import { connect } from 'react-redux';\nimport React from 'react';\nimport { withRouter, Redirect, Route } from 'react-router-dom';\nimport LoadingPage from 'Components/pages/loading/LoadingPage';\nimport PropTypes from 'prop-types';\nimport {\n selectIsSupport,\n selectIsInitialized,\n selectIsLoggedIn,\n} from 'Redux/reducers/session';\n\n// routes only for vorne support employees\nconst SupportRoute = ({ component: Component, ...rest }) => {\n const session = rest.session;\n const showLoading = !selectIsInitialized(session);\n const isLoggedIn = selectIsLoggedIn(session);\n const isSupport = selectIsSupport(session);\n\n const renderFunc = function(props) {\n if (showLoading) {\n return (\n \n );\n }\n else if (!isLoggedIn || !isSupport) {\n return (\n \n );\n }\n\n return (\n \n );\n };\n\n return (\n \n );\n};\n\nSupportRoute.propTypes = {\n session: PropTypes.object.isRequired,\n component: PropTypes.func.isRequired,\n};\n\nconst mapStateToProps = state => {\n const { session } = state;\n return { session };\n};\n\nexport default withRouter(connect(mapStateToProps)(SupportRoute));\n","import { connect } from 'react-redux';\nimport React from 'react';\nimport { withRouter, Redirect, Route } from 'react-router-dom';\nimport LoadingPage from 'Components/pages/loading/LoadingPage';\nimport PropTypes from 'prop-types';\nimport { getDefaultPageForRole } from 'Components/app/defaultPages';\nimport { selectIsLoggedIn, selectIsInitialized, selectSessionUser } from 'Redux/reducers/session';\n\n/**\n * A Route for pages which have no use to a logged in user, such as a landing page\n * or login page. It will automatically redirect to the default page for the\n * particular role of the user signed in.\n */\nconst StrictlyPublicRoute = ({ component: Component, redirectToPrevious, ...otherProps }) => {\n const { session } = otherProps;\n const showLoading = !selectIsInitialized(session);\n const isLoggedIn = selectIsLoggedIn(session);\n\n const renderFunc = (props) => {\n if (showLoading) {\n return (\n \n );\n }\n else if (isLoggedIn) {\n const { role } = selectSessionUser(session);\n\n let redirectPath = getDefaultPageForRole(role);\n\n if (redirectToPrevious) {\n const from = otherProps.location?.state?.from;\n\n if (from) {\n // if came to this from a redirect and we are now logged in, time to go back to that page\n redirectPath = from.path + from.search;\n }\n }\n\n return (\n \n );\n }\n else {\n return (\n \n );\n }\n };\n\n return (\n \n );\n};\n\nStrictlyPublicRoute.defaultProps = {\n redirectToPrevious: false,\n};\n\nStrictlyPublicRoute.propTypes = {\n location: PropTypes.shape({\n state: PropTypes.shape({\n from: PropTypes.shape({\n path: PropTypes.string.isRequired,\n search: PropTypes.string.isRequired,\n })\n })\n }).isRequired,\n session: PropTypes.shape({\n isInitialized: PropTypes.bool.isRequired,\n sessionData: PropTypes.shape({\n role: PropTypes.string,\n }),\n requests: PropTypes.shape({\n getSessionUser: PropTypes.shape({\n status: PropTypes.string.isRequired,\n }).isRequired,\n login: PropTypes.shape({\n status: PropTypes.string.isRequired,\n }).isRequired,\n }).isRequired,\n }).isRequired,\n component: PropTypes.func.isRequired,\n // If true, redirect the page based on the router location 'from' value,\n // instead of the default page. If there is no from value, redirect to the\n // default page.\n //\n redirectToPrevious: PropTypes.bool,\n};\n\nconst mapStateToProps = state => {\n const { session } = state;\n return { session };\n};\n\nexport default withRouter(connect(mapStateToProps)(StrictlyPublicRoute));\n","import { Roles } from 'Components/app/roles';\n\nexport function getDefaultPageForRole(role) {\n if (role === Roles.ADMIN) {\n return '/config/plant-floor/alert-definitions';\n }\n else {\n return '/subscriptions/alerts';\n }\n}\n","import React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport { Link } from 'react-router-dom';\n\nimport LoginFormContainer from 'Components/login-form/LoginFormContainer.js';\nimport { FontWeight } from 'Components/typography/typography';\nimport Page from 'Components/page/Page';\nimport PageContent from 'Components/page/PageContentFull';\nimport heroUrl from './xl-enterprise-hero.svg';\nimport ContainedButton from 'Components/button/ContainedButton';\n\nconst StyledPage = styled(Page)`\n max-width: 100%;\n padding: 0;\n`;\n\nconst DumboTron = styled.div`\n width: 100%;\n background-image: url(${heroUrl});\n background-position: center;\n background-size: cover;\n min-height: 600px;\n display: flex;\n align-items: center;\n`;\n\nconst FlexCenter = styled.div`\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n align-items: center;\n width: 100%;\n\n ${'' /* [FUTUREHACK] Force a height for IE11 to properly center flex stuff */}\n @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {\n height: 600px;\n }\n @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) and (max-width: 900px) {\n height: 700px;\n }\n`;\n\nconst WelcomeBox = styled.div`\n color: white;\n vertical-align: top;\n box-sizing: border-box;\n min-width: 280px;\n max-width: 460px;\n margin: 0 35px;\n`;\n\nconst LoginBox = styled.div`\n background-color: #e5e5e5;\n padding: 20px;\n border-radius: 5px;\n box-sizing: border-box;\n min-width: 280px;\n max-width: 460px;\n margin: 0 35px;\n margin-bottom: 30px;\n`;\n\nconst NewUserBox = styled.div`\n text-align: center;\n padding: 30px;\n`;\n\nconst HomeText = styled.span`\n font-family: Arial, sans-serif;\n font-size: 24px;\n font-weight: ${FontWeight.light};\n margin-bottom: 30px;\n`;\n\nconst WelcomeText = styled(HomeText)`\n color: #e5e5e5;\n`;\n\nconst NewUserText = styled(HomeText)`\n color: #505050;\n`;\n\nconst PrimaryHeading = styled.span`\n font-family: Arial, sans-serif;\n font-size: 50px;\n font-weight: ${FontWeight.medium};\n margin: 20px 0;\n`;\n\nconst SecondaryHeading = styled.span`\n font-family: Arial, sans-serif;\n font-size: 36px;\n font-weight: ${FontWeight.medium};\n`;\n\nconst CreateAccountLink = styled(ContainedButton)`\n text-decoration: none;\n`;\n\nfunction HomePage(props) {\n // we may have been redirected here from a private page\n // don't lose that state, persist so after account creation we can go back\n let createAccountLinkTo = {\n pathname: '/create-organization'\n };\n\n if (props?.location?.state) {\n createAccountLinkTo.state = props.location.state;\n }\n\n return (\n \n \n \n \n \n Welcome To XL Enterprise\n \n XL Enterprise is your portal to cloud‑based services for the XL Productivity\n Appliance™. It monitors key manufacturing productivity metrics across your\n enterprise and sends automated email alerts when any manufacturing process needs\n your attention.\n \n \n \n \n \n \n \n \n New to XL Enterprise?\n Create an organization to get started.\n \n Create Organization\n \n \n \n \n );\n}\n\nHomePage.propTypes = {\n location: PropTypes.shape({\n state: PropTypes.object,\n }),\n};\n\nexport default HomePage;\n","import React from 'react';\nimport { Body1 } from 'Components/typography/typography';\nimport { Link } from 'react-router-dom';\nimport Page from 'Components/page/Page';\nimport PageTitle from 'Components/page/PageTitle';\nimport PageContent from 'Components/page/PageContentStandard';\n\nexport default class InvalidUrlPage extends React.Component {\n render() {\n return (\n \n That page seems to be missing\n \n Return to the home page.\n \n \n );\n }\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\n\n/**\n * PopupLayer is a component that renders a single child through a portal so it\n * can be on top of all other components.\n *\n * See https://reactjs.org/docs/portals.html for more info about portals\n */\n\n const POPUP_ROOT_ID = 'popup-root';\n\nfunction getPopupRoot() {\n let popupRoot = document.getElementById(POPUP_ROOT_ID);\n\n if (!popupRoot) {\n console.warn(`PopupLayer: Unable to find #${POPUP_ROOT_ID} in the DOM.` +\n ' One will be added to the body. To prevent issues, the element' +\n ' should exist in the DOM before rendering a PopupLayer.');\n popupRoot = document.createElement('div');\n popupRoot.setAttribute('id', POPUP_ROOT_ID);\n document.body.appendChild(popupRoot);\n }\n\n return popupRoot;\n}\n\nexport default class PopupLayer extends React.Component {\n static propTypes = {\n children: PropTypes.node.isRequired,\n };\n\n constructor(props) {\n super(props);\n this._popupRoot = getPopupRoot();\n this._el = document.createElement('div');\n this.state = { mounted: false };\n }\n\n componentDidMount() {\n // The portal element is inserted in the DOM tree after\n // the children are mounted, meaning that children\n // will be mounted on a detached DOM node. If a child\n // component requires to be attached to the DOM tree\n // immediately when mounted, for example to measure a\n // DOM node, or uses 'autoFocus' in a descendant, add\n // state to PopupLayer and only render the children when PopupLayer\n // is inserted in the DOM tree.\n this._popupRoot.appendChild(this._el);\n // Now that everything is attached to the DOM tree, trigger another render\n this.setState({ mounted: true });\n }\n\n componentWillUnmount() {\n this._popupRoot.removeChild(this._el);\n }\n\n _renderChildren() {\n const { children } = this.props;\n const { mounted } = this.state;\n\n if (!mounted) {\n return null;\n }\n\n return (\n \n {children}\n \n );\n }\n\n render() {\n return ReactDOM.createPortal(\n this._renderChildren(),\n this._el,\n );\n }\n}\n","import React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nconst Root = styled.div`\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 1000;\n background-color: rgba(0, 0, 0, 0);\n transition: background-color 300ms 0ms;\n\n &.dark {\n background-color: rgba(0, 0, 0, 0.2);\n }\n`;\n\nexport default class PopupMask extends React.Component {\n static propTypes = {\n maskRef: PropTypes.any,\n className: PropTypes.string,\n dark: PropTypes.bool,\n onClick: PropTypes.func,\n children: PropTypes.node,\n };\n\n static defaultProps = {\n dark: false,\n };\n\n constructor(props) {\n super(props);\n }\n\n render() {\n const {\n maskRef,\n className,\n onClick,\n dark,\n children,\n } = this.props;\n\n return (\n \n {children}\n \n );\n }\n}\n","import React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { interceptProps } from 'Components/util/reactUtils';\nimport PopupMask from 'Components/popup/PopupMask';\n\nconst ContentWrapper = styled(interceptProps('div', [ 'measured', 'top', 'left', 'width', 'height', 'maxHeight' ])).attrs(props => {\n let container = Number.isFinite(props.maxHeight)\n ? { style: { maxHeight: `${props.maxHeight}px` } }\n : { style: {} };\n\n if (!props.measured) {\n return container;\n }\n\n container.style.top = `${props.top}px`;\n container.style.left = `${props.left}px`;\n container.style.width = `${props.width}px`;\n container.style.height = `${props.height}px`;\n\n return container;\n})`\n position: fixed;\n\n z-index: 1001;\n\n &.measured {\n & > .ContentWrapper-inner {\n display: block;\n }\n }\n\n &:not(.measured) {\n visibility: hidden;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n }\n\n & > .ContentWrapper-inner {\n display: inline-block;\n max-width: 100%;\n max-height: 100%;\n overflow: auto;\n }\n`;\n\nexport default class SelectOptionsPopup extends React.Component {\n static propTypes = {\n children: PropTypes.node,\n originTop: PropTypes.number.isRequired,\n originLeft: PropTypes.number.isRequired,\n onOverlayClick: PropTypes.func.isRequired,\n maxHeight: PropTypes.number,\n // width will be used as the actual width of the popup unless the screen\n // is narrower. If undefined, the width of the popup will fit the content.\n width: PropTypes.number,\n };\n\n static defaultProps = {\n children: null,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n measured: false,\n originTop: 0,\n originLeft: 0,\n top: 0,\n left: 0,\n width: 0,\n height: 0,\n };\n\n this._overlayRef = React.createRef();\n this._contentRef = React.createRef();\n }\n\n static getDerivedStateFromProps(props, state) {\n // By copying originTop and originLeft from props to state we can use\n // the difference between props and state to determine if the props have changed.\n if (state.originTop !== props.originTop || state.originLeft !== props.originLeft) {\n // They have changed, force a re-measurement of the content.\n return {\n originTop: props.originTop,\n originLeft: props.originLeft,\n measured: false,\n };\n }\n\n return null;\n }\n\n componentDidMount() {\n window.addEventListener('resize', this._handleWindowResize);\n this._afterRender();\n }\n\n componentDidUpdate(prevProps, prevState) {\n this._afterRender();\n }\n\n componentWillUnmount() {\n window.removeEventListener('resize', this._handleWindowResize);\n }\n\n _afterRender() {\n const {\n width: widthProp,\n } = this.props;\n\n const {\n measured,\n originTop,\n originLeft,\n } = this.state;\n\n if (!measured) {\n\n const overlay = this._overlayRef.current;\n const overlayRect = overlay.getBoundingClientRect();\n\n const content = this._contentRef.current;\n const contentRect = content.getBoundingClientRect();\n\n const preferredWidth = widthProp === undefined ? contentRect.width : widthProp;\n\n const width = Math.min(preferredWidth, overlayRect.width);\n const height = Math.min(contentRect.height, overlayRect.height);\n\n let topOffset = 0;\n\n // If it hangs off the bottom, push it up\n if (originTop + height > overlayRect.height) {\n topOffset = overlayRect.height - (originTop + height);\n }\n\n let leftOffset = 0;\n\n // If it hangs off the right, push it left\n if (originLeft + width > overlayRect.width) {\n leftOffset = overlayRect.width - (originLeft + width);\n }\n\n this.setState({\n measured: true,\n top: originTop + topOffset,\n left: originLeft + leftOffset,\n width: width,\n height: height,\n });\n }\n }\n\n _handleWindowResize = () => {\n this.setState({\n measured: false,\n });\n };\n\n render() {\n const {\n children,\n maxHeight,\n onOverlayClick,\n } = this.props;\n\n const {\n measured,\n top,\n left,\n width,\n height,\n } = this.state;\n\n return (\n \n \n\n \n {React.cloneElement(React.Children.only(children), {\n ref: this._contentRef,\n className: 'ContentWrapper-inner',\n })}\n \n \n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * SelectOption is just a wrapper that provides `SelectInput` the `value` for the\n * wrapped component. It should not have any style, or any real DOM wrapped\n * around the component. It soley exists to provide `SelectInput` a consistent\n * interface.\n */\nexport default function SelectOption(props) {\n const child = React.Children.only(props.children);\n return child;\n}\n\nSelectOption.propTypes = {\n value: PropTypes.string,\n children: PropTypes.element.isRequired,\n};\n\nSelectOption.defaultProps = {\n value: '',\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction SelectGroup(props) {\n const { label, children } = props;\n\n return (\n \n {label}\n {children}\n \n );\n}\n\nSelectGroup.propTypes = {\n label: PropTypes.node.isRequired,\n children: PropTypes.node.isRequired,\n};\n\nexport default SelectGroup;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport withFormElementContext from 'Components/form-element/withFormElementContext';\n\nclass BaseCheckboxInput extends React.Component {\n static propTypes = {\n name: PropTypes.string,\n value: PropTypes.bool,\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n formElementContext: PropTypes.shape({\n disabled: PropTypes.bool.isRequired,\n onFocus: PropTypes.func.isRequired,\n onBlur: PropTypes.func.isRequired,\n }).isRequired,\n };\n\n static defaultProps = {\n name: '',\n value: false,\n onChange: () => {},\n };\n\n constructor(props) {\n super(props);\n }\n\n _handleFocus = (event) => {\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n this.props.formElementContext.onFocus(event);\n };\n\n _handleBlur = (event) => {\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n this.props.formElementContext.onBlur(event);\n };\n\n _handleChange = (event) => {\n event.target = {\n name: event.target.name,\n value: event.target.checked,\n };\n this.props.onChange(event);\n };\n\n render() {\n const {\n value,\n formElementContext,\n ...otherProps\n } = this.props;\n\n return (\n \n );\n }\n}\n\nexport default withFormElementContext(BaseCheckboxInput);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport BaseCheckboxInput from './internal/BaseCheckboxInput';\nimport uniqueId from 'Common/util/uniqueId';\n\nconst Root = styled.div`\n /* Much of the below checkbox trickery follows the example of: */\n /* http://www.templatemonster.com/blog/style-checkboxes-radio-buttons-css */\n /* http://codepen.io/matthewcain/pen/KMgBxp */\n position: relative;\n display: inline-block;\n vertical-align: middle;\n width: 16px;\n height: 16px;\n\n /* We hide the normal checkbox and add our own pretty one. */\n input[type=\"checkbox\"] {\n opacity: 0.001;\n width: 16px;\n height: 16px;\n margin: 0;\n padding: 0;\n\n /* When it's checked, we show a white checkbox on a blue background. */\n &:checked + label span.checkbox::after {\n color: ${props => props.theme.colors.palette.white};\n background-color: ${props => props.theme.colors.palette.blue.awesome};\n border: 1px solid ${props => props.theme.colors.palette.blue.awesome};\n text-align: center;\n content: \"${props => props.tick}\";\n }\n }\n\n label {\n position: absolute;\n display: inline-block;\n top: 0;\n left: 0;\n width: 16px;\n height: 16px;\n }\n\n span.checkbox {\n /* &::after is for the checkmark itself. */\n &::after {\n content: '';\n position: absolute;\n top: 0;\n bottom: 0;\n width: 14px;\n height: 14px;\n content: \"${props => props.tick}\";\n font-family: 'FontAwesome';\n font-size: 12px;\n color: transparent;\n transition: background-color .3s;\n border: 1px solid rgba(0, 0, 0, 0.25);\n line-height: 14px;\n cursor: pointer;\n }\n }\n\n input[type=\"checkbox\"]:focus + label > span.checkbox::after {\n border: 1px solid rgba(0, 0, 0, 1);\n }\n\n input[type=\"checkbox\"][disabled] + label > span.checkbox::after {\n opacity: 0.5;\n cursor: not-allowed;\n }\n`;\n\nexport default class ThemedCheckboxInput extends React.Component {\n static propTypes = {\n id: PropTypes.string,\n className: PropTypes.string,\n tick: PropTypes.string.isRequired,\n };\n\n static defaultProps = {\n tick: '\\f00c',\n };\n\n constructor(props) {\n super(props);\n this._uniqueId = uniqueId('CheckboxInput_');\n }\n\n _handleLabelClick = (event) => {\n // By default the label click will trigger another click on the\n // real input. The prevents a double click event.\n event.stopPropagation();\n };\n\n render() {\n const {\n id: idProp,\n className,\n tick,\n ...otherProps\n } = this.props;\n\n const id = idProp || this._uniqueId;\n\n return (\n \n \n \n \n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport ButtonLike from 'Components/button/ButtonLike';\nimport ThemedCheckboxInput from 'Components/checkbox/ThemedCheckboxInput';\n\nconst StyledButtonLike = styled(ButtonLike)`\n position: relative;\n display: block;\n box-sizing: border-box;\n width: auto;\n`;\n\nconst OptionContent = styled.div`\n display: inline-block;\n`;\n\nclass SelectOptionWrapper extends React.Component {\n static propTypes = {\n value: PropTypes.string.isRequired,\n selected: PropTypes.bool.isRequired,\n depth: PropTypes.number.isRequired,\n multiple: PropTypes.bool.isRequired,\n onClick: PropTypes.func.isRequired,\n children: PropTypes.node.isRequired,\n };\n\n _handleClick = (event) => {\n event.target = {\n value: this.props.value,\n };\n\n this.props.onClick(event);\n };\n\n render() {\n const {\n value,\n selected,\n depth,\n multiple,\n onClick,\n children,\n ...otherProps\n } = this.props;\n\n let paddingLeft = 16 * depth;\n\n // Give a little extra padding for the checkbox, if needed\n if (multiple) {\n paddingLeft += 6;\n }\n\n const style = {\n paddingLeft: `${paddingLeft}px`,\n };\n\n return (\n \n {multiple && (\n \n )}\n \n {children}\n \n \n );\n }\n}\n\nexport default SelectOptionWrapper;\n","import React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport ButtonLike from 'Components/button/ButtonLike';\n\nconst RootButton = styled(ButtonLike)`\n position: relative;\n display: block;\n box-sizing: border-box;\n width: 100%;\n border: 1px solid rgba(0, 0, 0, 0.25);\n outline: none;\n cursor: pointer;\n\n /* Make room for arrow */\n padding-right: 32px;\n\n /* Render an arrow after the content */\n &::after {\n content: '';\n width: 0;\n height: 0;\n position: absolute;\n right: calc(16px - 4px);\n top: calc(50% - 4px);\n\n border-left: 6px solid transparent;\n border-right: 6px solid transparent;\n border-top: 8px solid rgba(0,0,0,0.4);\n border-bottom: none;\n }\n\n /* Flip arrow when open */\n &.open::after {\n border-top: none;\n border-bottom: 8px solid rgba(0,0,0,0.4);\n }\n\n &.disabled {\n color: ${props => props.theme.colors.darkText.disabled};\n background-color: rgba(0,0,0,0.05);\n }\n\n &.focused {\n border: 1px solid rgba(0, 0, 0, 1.0);\n }\n`;\n\nexport default class SelectOpenButton extends React.Component {\n static propTypes = {\n forwardedRef: PropTypes.any,\n Component: PropTypes.any,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n focused: PropTypes.bool,\n open: PropTypes.bool,\n };\n\n static defaultProps = {\n Component: 'div',\n disabled: false,\n focused: false,\n open: false,\n };\n\n render() {\n const {\n forwardedRef,\n className,\n disabled,\n focused,\n open,\n ...otherProps\n } = this.props;\n\n return (\n \n );\n }\n}\n","import styled from 'styled-components';\nimport { Body1 } from 'Components/typography/typography';\n\nconst SelectOptionContent = styled(Body1).attrs({ as: 'div' })`\n position: relative;\n display: block;\n box-sizing: border-box;\n width: auto;\n padding: 6px 6px;\n border: none;\n outline: none;\n word-break: break-all;\n`;\n\nexport default SelectOptionContent;\n","import React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport withFormElementContext from 'Components/form-element/withFormElementContext';\nimport PopupLayer from 'Components/popup/PopupLayer';\nimport SelectOptionsPopup from './internal/SelectOptionsPopup';\nimport SelectOption from './SelectOption';\nimport SelectGroup from './SelectGroup';\nimport SelectOptionWrapper from './internal/SelectOptionWrapper';\nimport SelectOpenButton from './internal/SelectOpenButton';\nimport SelectOptionContent from './SelectOptionContent';\n\nconst Root = styled.div`\n position: relative;\n display: inline-block;\n box-sizing: border-box;\n`;\n\nconst HiddenInput = styled.input`\n display: none;\n`;\n\nconst OptionsContainer = styled.div`\n position: relative;\n display: inline-block;\n box-sizing: border-box;\n min-width: 50px;\n background-color: ${(props) => props.theme.colors.palette.white};\n box-shadow: 0px 5px 5px -3px rgba(0,0,0,0.2), 0px 8px 10px 1px rgba(0,0,0,0.14), 0px 3px 14px 2px rgba(0,0,0,0.12);\n border: 1px solid rgb(0,0,0);\n overflow: auto;\n`;\n\nclass SelectInput extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n value: props.initialValue,\n open: false,\n popupOriginTop: 0,\n popupOriginLeft: 0,\n };\n\n this._preventBlur = false;\n this._openButtonRef = React.createRef();\n }\n\n static getDerivedStateFromProps(props, state) {\n let value;\n\n if (typeof props.value !== 'undefined') {\n // Controlled\n\n // Value in state should always be an array\n if (props.multiple) {\n if (!Array.isArray(props.value)) {\n throw new Error(\"SelectInput 'value' prop must be an array when 'multiple' === true\");\n }\n\n value = props.value;\n }\n else {\n if (typeof props.value !== 'string') {\n throw new Error(\"SelectInput 'value' prop must be a string when 'multiple' === false\");\n }\n\n value = [ props.value ];\n }\n }\n else {\n // Uncontrolled\n value = state.value;\n\n // Init state value if needed\n if (value === undefined) {\n let initialValue;\n\n if (props.multiple) {\n initialValue = props.initialValue || [];\n\n if (!Array.isArray(initialValue)) {\n throw new Error(\"SelectInput 'initialValue' prop must be an array when 'multiple' === true\");\n }\n\n value = initialValue;\n }\n else {\n initialValue = props.initialValue || '';\n\n if (typeof initialValue !== 'string') {\n throw new Error(\"SelectInput 'initialValue' prop must be a string when 'multiple' === false\");\n }\n\n value = [ initialValue ];\n }\n }\n }\n\n return {\n value: value,\n };\n }\n\n _getValue() {\n return this.state.value;\n }\n\n _handleHiddenInputClick = (event) => {\n const openButton = this._openButtonRef.current;\n openButton.focus();\n openButton.click();\n };\n\n _handleFocus = (event) => {\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n this.props.formElementContext.onFocus(event);\n };\n\n _handleBlur = (event) => {\n if (this._preventBlur === true) {\n event.stopPropagation();\n this._preventBlur = false;\n return;\n }\n\n const { name } = this.props;\n const { value } = this.state;\n if (this.props.onBlur) {\n event.target = {\n name: name,\n value: value,\n };\n this.props.onBlur(event);\n }\n this.props.formElementContext.onBlur(event);\n };\n\n _handleOpen = (event) => {\n // Don't open menu if disabled\n if (this.props.formElementContext.disabled) {\n return;\n }\n\n // Prevents the next blur so it can be re-focused after the dropdown\n // is closed\n this._preventBlur = true;\n\n const node = this._openButtonRef.current;\n const rect = node.getBoundingClientRect();\n\n this.setState({\n open: true,\n popupOriginTop: Math.round(rect.bottom - 1),\n popupOriginLeft: rect.left,\n });\n };\n\n _handleClose = (event) => {\n this.setState({\n open: false,\n });\n\n if (this.props.onClose) {\n const { value } = this.state;\n const { name } = this.props;\n event.target = {\n name: name,\n value: value,\n };\n this.props.onClose(event);\n }\n\n // Re-focus the button on close\n this._openButtonRef.current.focus();\n };\n\n _handleOptionSelect = (event) => {\n const { name, multiple, onChange } = this.props;\n const { value } = event.target;\n const prevValue = this._getValue();\n\n const isSelected = prevValue.indexOf(value) !== -1;\n\n if (multiple) {\n let nextValue = [];\n\n if (isSelected) {\n nextValue = prevValue.filter(selectedVal => selectedVal !== value);\n }\n else {\n nextValue = [ ...prevValue, value ];\n }\n\n this.setState({\n value: nextValue,\n open: true, // stay open\n });\n\n event.target = {\n name: name,\n value: nextValue,\n };\n\n if (onChange) {\n onChange(event);\n }\n }\n else {\n const didChange = !isSelected;\n\n this.setState({\n value: [ value ],\n open: false,\n });\n\n if (didChange && onChange) {\n event.target = {\n name: name,\n value: value,\n };\n onChange(event);\n }\n\n // Re-focus the button on close\n this._openButtonRef.current.focus();\n }\n };\n\n _renderOptions(options) {\n const {\n maxOptionsHeight,\n optionsWidth,\n } = this.props;\n\n const {\n open,\n popupOriginTop,\n popupOriginLeft,\n } = this.state;\n\n if (open) {\n return (\n \n \n \n {options}\n \n \n \n );\n }\n else {\n return null;\n }\n }\n\n _mapChildOptionsRecursive(children, mapFn, indices = []) {\n return React.Children.map(children, (child, i) => {\n if (!React.isValidElement(child)) {\n return null;\n }\n else if (child.type === SelectOption) {\n return mapFn(child, [ ...indices, i ]);\n }\n else if (child.type === SelectGroup) {\n return React.cloneElement(child, {\n children: this._mapChildOptionsRecursive(child.props.children, mapFn, [ ...indices, i ]),\n });\n }\n else {\n throw new Error(`Unknown Select child of type ${child.type}`);\n }\n });\n }\n\n render() {\n const {\n className: classNameProp,\n id,\n name,\n formElementContext,\n onChange,\n children,\n multiple,\n selectionDisplay,\n maxOptionsHeight,\n optionsWidth,\n ...otherProps\n } = this.props;\n\n const {\n focused,\n disabled,\n required,\n } = formElementContext;\n\n const {\n open,\n } = this.state;\n\n const value = this._getValue();\n\n // Build map of selected values for quick lookup\n const valueMap = value.reduce((map, selectedValue) => {\n map[selectedValue] = true;\n return map;\n }, {});\n\n let selectedChild = null;\n\n const options = this._mapChildOptionsRecursive(children, (child, indices) => {\n const selected = Boolean(valueMap[child.props.value]);\n\n if (selected) {\n selectedChild = child;\n }\n\n if (open) {\n return (\n \n {child}\n \n );\n }\n\n return null;\n });\n\n // User may pass in a custom component for inside the open button\n if (selectionDisplay) {\n selectedChild = selectionDisplay;\n }\n\n if (selectedChild === null) {\n selectedChild = (\n \n None\n \n );\n }\n\n const selectedChildDiv = React.cloneElement(selectedChild, { as: 'div' });\n\n return (\n \n {}}\n />\n \n {selectedChildDiv}\n \n {this._renderOptions(options)}\n \n );\n }\n}\n\nSelectInput.propTypes = {\n formElementContext: PropTypes.object.isRequired,\n id: PropTypes.string,\n name: PropTypes.string.isRequired,\n className: PropTypes.string,\n initialValue: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onClose: PropTypes.func,\n onChange: PropTypes.func,\n children: PropTypes.node,\n maxOptionsHeight: PropTypes.number,\n optionsWidth: PropTypes.number,\n multiple: PropTypes.bool,\n selectionDisplay: PropTypes.element,\n};\n\nSelectInput.defaultProps = {\n className: '',\n onChange: () => {},\n multiple: false,\n};\n\nexport default withFormElementContext(SelectInput);\n","import React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nimport FormElement from 'Components/form-element/FormElement';\nimport FormElementLabel from 'Components/form-element/FormElementLabel';\nimport FormElementHelperText from 'Components/form-element/FormElementHelperText';\nimport TimezoneInput from 'Components/timezone/TimezoneInput';\n\nconst StyledTimezoneInput = styled(TimezoneInput)`\n display: block;\n min-width: 200px;\n`;\n\nexport default function TimezoneSelect(props)\n{\n const {\n id,\n label,\n name,\n value,\n error,\n helperText,\n onFocus,\n onBlur,\n onChange,\n ...otherProps\n } = props;\n\n return (\n \n {label}\n \n \n {helperText}\n \n \n );\n}\n\nTimezoneSelect.propTypes = {\n id: PropTypes.string,\n label: PropTypes.string,\n name: PropTypes.string,\n value: PropTypes.string,\n error: PropTypes.bool,\n helperText: PropTypes.node,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n};\n","import React from 'react';\nimport moment from 'moment-timezone';\n\nimport SelectInput from 'Components/select/SelectInput';\nimport SelectOption from 'Components/select/SelectOption';\nimport SelectOptionContent from 'Components/select/SelectOptionContent';\n\nfunction getTimeZoneChunks(timeZoneName) {\n const regex = /([^/]+)\\/(.+)/;\n const matched = timeZoneName.match(regex);\n\n return {\n continent: matched[1],\n zone: matched[2].replace(/_/g, ' '),\n offset: moment.tz(timeZoneName).format('Z'),\n };\n}\n\nfunction renderTimeZones() {\n const filtered = moment.tz.names().filter((name) => {\n const parts = name.match(/(.*?)\\/(.*)/);\n\n return parts && parts[1] !== 'Etc';\n });\n\n const options = filtered.map((timeZoneName, i) => {\n const tzChunks = getTimeZoneChunks(timeZoneName);\n\n return (\n \n \n {`${tzChunks.continent} – ${tzChunks.zone} (UTC${tzChunks.offset})`}\n \n \n );\n });\n\n // Special case for UTC, which doesn't match the \"Vague/Specific\" name format.\n options.push((\n \n UTC\n \n ));\n\n return options;\n}\n\nfunction TimezoneInput(props) {\n return (\n \n {renderTimeZones()}\n \n );\n}\n\nexport default TimezoneInput;\n","import React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nimport TextInput from 'Components/text-input/TextInput';\nimport ContainedButton from 'Components/button/ContainedButton';\nimport { Spacing } from 'Components/common/common';\n\nconst Container = styled.div`\n display: flex;\n`;\n\nconst StyledTextInput = styled(TextInput)`\n display: inline-block;\n width: 100%;\n`;\n\nconst ToggleMaskingButton = styled(ContainedButton)`\n display: inline-block;\n word-break: keep-all;\n vertical-align: top;\n height: 30px;\n margin-top: 24px;\n margin-left: ${Spacing.inlineButtonMargin};\n`;\n\nexport default class UnmaskablePasswordInput extends React.Component {\n constructor() {\n super();\n this._toggleMasking = this._toggleMasking.bind(this);\n\n this._showText = 'Show';\n this._hideText = 'Hide';\n\n this.state = {\n inputType: 'password',\n };\n }\n\n _toggleMasking(event) {\n event.preventDefault();\n event.stopPropagation();\n this.setState(prevState => ({\n inputType: prevState.inputType === 'input' ? 'password' : 'input'\n }));\n }\n\n render() {\n const {\n autoComplete,\n disabled,\n error,\n helperText,\n id,\n label,\n name,\n onChange,\n onBlur,\n required,\n value,\n } = this.props;\n const { inputType } = this.state;\n return (\n \n \n \n {inputType === 'input' ? this._hideText : this._showText}\n \n \n );\n }\n}\n\nUnmaskablePasswordInput.defaultProps = {\n autoComplete: '',\n disabled: false,\n error: false,\n helperText: undefined,\n id: 'password',\n label: 'Password',\n name: 'password',\n required: false,\n value: '',\n};\n\nUnmaskablePasswordInput.propTypes = {\n autoComplete: PropTypes.string,\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n helperText: PropTypes.string,\n id: PropTypes.string,\n label: PropTypes.string,\n name: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n onBlur: PropTypes.func,\n required: PropTypes.bool,\n value: PropTypes.string,\n};\n","// Length requirement from https://pages.nist.gov/800-63-3/sp800-63b.html\nconst MIN_PASSWORD_LENGTH = 8;\n\nexport default function validate(password) {\n let error = null;\n if (!password || password === '') {\n error = 'Password cannot be blank';\n }\n else if (password.length < MIN_PASSWORD_LENGTH) {\n error = `Password must be at least ${MIN_PASSWORD_LENGTH} characters long`;\n }\n\n return error;\n}\n","import every from 'lodash/every';\nimport isObject from 'lodash/isObject';\nimport isPlainObject from 'lodash/isPlainObject';\nimport isArray from 'lodash/isArray';\nimport isFunction from 'lodash/isFunction';\nimport mapValues from 'lodash/mapValues';\nimport pickBy from 'lodash/pickBy';\nimport size from 'lodash/size';\nimport forOwn from 'lodash/forOwn';\n\nexport function isValidationValid(validation) {\n if (isObject(validation) || isArray(validation)) {\n // We need to go down every level to ensure everything is valid\n return every(validation, isValidationValid);\n }\n else {\n // If we're a falsy value, we're valid!\n return !validation;\n }\n}\n\n/**\n * Combine an object of validator functions into a single validator function.\n * When the resulting validation function is called, each validation function\n * will be called with the value of the input data at its corresponding key.\n *\n * @param {object} validators Object of validator functions\n * @returns {function} Validator function that returns an object of validation\n * errors or `null` if there are none\n */\nexport function combineValidators(validators) {\n // Check that the argument is an object\n if (!isPlainObject(validators)) {\n throw new Error('First argument of `combineValidators` must be a plain object.');\n }\n\n // Check that all values in the object are functions\n if (!every(validators, validatorFn => isFunction(validatorFn))) {\n throw new Error('First argument of `combineValidators` must be a plain object of validator functions');\n }\n\n return (data) => {\n let validation = mapValues(validators, (validatorFn, key) => {\n return validatorFn(data[key]);\n });\n\n // Filter out keys with no validation result\n validation = pickBy(validation, (subValidation, key) => {\n return subValidation !== null && subValidation !== undefined;\n });\n\n if (size(validation) === 0) {\n return null; // Valid\n }\n else {\n return validation; // Invalid\n }\n };\n}\n\n/**\n * Merge the results of mutiple validator functions that return objects.\n * Similar to an `Object.assign`, but `null` and `undefined` values will not\n * overwrite existing values during the merge. Furthermore, if none of the\n * objects contain any errors, `null` is returned.\n *\n * @param {object[]} validationObjects Array of results from validator functions\n * that return objects.\n * @returns {object|null} Merged validation object.\n */\nexport function mergeValidationObjects(validationObjects) {\n const validation = validationObjects\n // Remove null and undefined from array\n .filter((validationObject) => {\n return validationObject !== null && validationObject !== undefined;\n })\n // Perform the merge\n .reduce((currentValidation, validationObject) => {\n forOwn(validationObject, (subValidation, key) => {\n // Ignore keys with null/undefined values\n if (subValidation !== null && subValidation !== undefined) {\n currentValidation[key] = subValidation;\n }\n });\n\n return currentValidation;\n }, {});\n\n if (size(validation) === 0) {\n return null; // Valid\n }\n else {\n return validation; // Invalid\n }\n}\n\n/**\n * Combine multiple validator functions that return objects into a single\n * validator function that returns a single validation object with the results\n * merged.\n *\n * @param {function[]} validators Array of validator functions that return objects\n * @returns {function} Validator function that returns an object of validation\n * errors or `null` if there are none\n */\nexport function mergeObjectValidators(validators) {\n // Check that the argument is an array\n if (!isArray(validators)) {\n throw new Error('First argument of `mergeValidators` must be an array.');\n }\n\n // Check that all validators are functions\n if (!every(validators, validatorFn => isFunction(validatorFn))) {\n throw new Error('First argument of `mergeValidators` must be an array of validator functions');\n }\n\n return (data) => {\n const validationObjects = validators.map((validatorFn) => {\n return validatorFn(data);\n });\n\n return mergeValidationObjects(validationObjects);\n };\n}\n","import { default as validateRules } from 'Components/password/PasswordRulesValidation';\nimport { combineValidators } from 'Components/util/validationUtils';\n\nconst validate = combineValidators({\n email: (email) => email.length > 0 ? null : 'Required',\n name: (name) => name.length > 0 ? null : 'Required',\n organization_name: (organization_name) => organization_name.length > 0 ? null : 'Required',\n password: (password) => validateRules(password),\n timezone: (timezone) => timezone.length > 0 ? null : 'Required',\n});\n\nexport default validate;\n","/**\n * All of this code was copied from xl-enterprise\n */\n\nimport setWith from 'lodash/setWith';\nimport clone from 'lodash/clone';\nimport get from 'lodash/get';\nimport unset from 'lodash/unset';\nimport toPath from 'lodash/toPath';\nimport isArray from 'lodash/isArray';\nimport isEmpty from 'lodash/isEmpty';\nimport has from 'lodash/has';\n\nfunction isValidArrayIndex(index) {\n return Number.isInteger(index) && index >= 0;\n}\n\n/**\n * Create an object property path from a variable number of components.\n * Falsey arguments are not allowed, with the exception of the first argument.\n * \n * Example: Given 'a', 'b', 5, 'x', the resulting path would be 'a.b[5].x'.\n * \n * @param {...any} args Components of the path\n * @returns {String} path\n */\nexport function createPath(...args) {\n return args.reduce((path, keyOrIndex, i) => {\n // Falsey arguments are not allowed, with the exception of the first\n // argument.\n if (!keyOrIndex && keyOrIndex !== 0) {\n if (i === 0) {\n return path;\n }\n else {\n throw new Error(`Invalid path key or index \\`${keyOrIndex}\\` in path \"${path}\"`);\n }\n }\n\n if (isValidArrayIndex(keyOrIndex)) {\n // Array index: e.g. \"thing[5]\"\n return `${path}[${keyOrIndex}]`;\n }\n else {\n // Object key: e.g. \"thing.xyz\"\n if (path === '') {\n // First key in path\n return `${keyOrIndex}`;\n }\n else {\n return `${path}.${keyOrIndex}`;\n }\n }\n }, '');\n}\n\n/**\n * Returns the value from an object at the specified location. Useful for deep\n * access to values by a single path string.\n * \n * If the path is empty, the object itself is returned.\n * If the path does not exist in the object, `undefined` is returned.\n * \n * @param {Object|Array} obj The source object\n * @param {String} path The path to the value\n * @returns {any}\n */\nexport function getAtPath(obj, path) {\n if (isEmpty(path)) {\n return obj;\n }\n\n return get(obj, path);\n}\n\n/**\n * Sets the value in an object at the specified location. Useful for deep\n * modifications to objects by a single path string.\n * \n * The source object is not modified and a new object is returned.\n * \n * If the path is empty, the value itself is returned.\n * If the path does not exist in the object, new objects will be created along\n * the path as needed.\n * \n * @param {Object|Array} obj The source object\n * @param {String} path The path to the value\n * @param {any} value The new value to be set\n * @returns {any} New object with modifications\n */\nexport function setAtPath(obj, path, value) {\n if (isEmpty(path)) {\n return value;\n }\n\n return setWith(clone(obj), path, value, clone);\n}\n\n/**\n * Updates the value in an object at the specified location. Useful for deep\n * modifications to objects by a single path string.\n * \n * Unlike `setAtPath`, this accepts a function that can be used to update the\n * value, so you can use the existing value to construct the new one.\n * \n * The source object is not modified and a new object is returned.\n * \n * If the path is empty, the source object itself is updated.\n * If the path does not exist in the object, new objects will be created along\n * the path as needed.\n * \n * @param {Object|Array} obj The source object\n * @param {String} path The path to the value\n * @param {Function} updater Function that is given the existing value and returns\n * the new value\n * @returns {any} New object with modifications\n */\nexport function updateAtPath(obj, path, updater) {\n const currentValue = getAtPath(obj, path);\n return setAtPath(obj, path, updater(currentValue));\n}\n\n/**\n * Deletes the value in an object at the specified location. Useful for deep\n * deletion to objects by a single path string.\n * \n * The source object is not modified and a new object is returned.\n * \n * If the path is empty, an empty object is returned.\n * If the item deleted is an index into an array, the item will be `spliced` out\n * of the original array.\n * \n * @param {Object|Array} obj The source object\n * @param {String} path The path to the value\n * @returns {any} New object with modifications\n */\nexport function deleteAtPath(obj, path) {\n if (isEmpty(path)) {\n return {};\n }\n\n // If the value doesn't exsit, return the original object\n if (!has(obj, path)) {\n return obj;\n }\n\n // Get the current value\n const currentValue = getAtPath(obj, path);\n // To keep the object immutable, set the path with the existing value, which\n // clones the object along the path\n const clonedObj = setAtPath(obj, path, currentValue);\n\n // Splits the path into an array of keys/indices\n const splitPath = toPath(path);\n const parentPath = splitPath.slice(0, splitPath.length - 1);\n const childKeyOrIndex = splitPath[splitPath.length - 1];\n // Get the parent value\n const parentValue = getAtPath(clonedObj, parentPath);\n\n // Remove the parent value\n if (isArray(parentValue)) {\n // Removing from an array, so splice the value out\n parentValue.splice(Number(childKeyOrIndex), 1);\n }\n else {\n // Removing from an object\n unset(clonedObj, path);\n }\n\n return clonedObj;\n}\n","/**\n * @typedef {Object} CancelablePromise\n * @property {Promise} promise - The X Coordinate\n * @property {Function} cancel - Cancel the promise. Immediately rejects the\n * promise with `{ isCanceled: true }`\n */\n\n/**\n * Wrap a Promise so that it can be canceled later. It returns an object\n * containing the wrapped promise and a cancel function. If cancel is called\n * before the promise is completed, it is immediately rejected with an object\n * of `{ isCanceled: true }`.\n *\n * It is important to note that you can't really \"cancel\" a promise. The best\n * you can do is ignore the results. Essentially, that is what this cancelable\n * promise does.\n *\n * @param {Promise} promise\n * @returns {CancelablePromise}\n */\nexport default function cancelablePromise(promise) {\n let isDone = false;\n let resolvePromise;\n let rejectPromise;\n\n const wrappedPromise = new Promise((resolve, reject) => {\n resolvePromise = resolve;\n rejectPromise = reject;\n });\n\n Promise.resolve(promise)\n .then((result) => {\n if (!isDone) {\n isDone = true;\n resolvePromise(result);\n }\n })\n .catch((err) => {\n if (!isDone) {\n isDone = true;\n rejectPromise(err);\n }\n });\n\n return {\n promise: wrappedPromise,\n cancel: () => {\n if (!isDone) {\n isDone = true;\n rejectPromise({ isCanceled: true });\n }\n },\n };\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport isEqual from 'lodash/isEqual';\nimport { setAtPath } from 'Common/util/FormUtils';\nimport cancelablePromise from 'Components/util/cancelablePromise';\n\nexport class FormController extends React.Component {\n static propTypes = {\n initialValue: PropTypes.object.isRequired,\n initialTouched: PropTypes.object,\n validate: PropTypes.func,\n detectChanges: PropTypes.func,\n // If needed, use this function to make any extra changes to the value\n // on each update. It is useful if you need to make changes to one field\n // based on the value of another.\n transformValue: PropTypes.func,\n onSubmit: PropTypes.func.isRequired,\n onReset: PropTypes.func,\n render: PropTypes.func.isRequired,\n // If true, updates to the initialValue prop will be carried over\n // to the modified value when there are no pending changes. Useful for\n // periodically refreshing data when a user is not editing.\n updateValueIfNoChanges: PropTypes.bool,\n };\n\n static defaultProps = {\n initialTouched: {},\n validate: () => null,\n detectChanges: (value, initialValue) => !isEqual(value, initialValue),\n transformValue: (value) => value,\n onSubmit: () => {},\n onReset: () => {},\n updateValueIfNoChanges: false,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n initialValue: props.initialValue,\n value: props.initialValue,\n prevValue: props.initialValue,\n touched: props.initialTouched,\n hasChanges: false,\n isSubmitting: false,\n submitError: null,\n };\n\n this._pendingSubmit = null;\n }\n\n static getDerivedStateFromProps(props, state) {\n const derivedState = {};\n\n // When the value changes, update `hasChanges`\n if (state.value !== state.prevValue) {\n derivedState.prevValue = state.value;\n derivedState.hasChanges = props.detectChanges(state.value, state.initialValue);\n }\n\n const hasChanges = derivedState.hasChanges !== undefined ?\n derivedState.hasChanges : state.hasChanges;\n\n // If there are no changes and `updateValueIfNoChanges` is set,\n // carry over changes from `initialValue` into `value`.\n if (\n !hasChanges &&\n props.updateValueIfNoChanges &&\n props.initialValue !== state.initialValue // `initialValue` changed\n ) {\n derivedState.initialValue = props.initialValue;\n derivedState.value = props.initialValue;\n }\n\n if (Object.keys(derivedState).length) {\n return derivedState;\n }\n else {\n return null;\n }\n }\n\n componentWillUnmount() {\n // Cancel any pending submit\n if (this._pendingSubmit) {\n this._pendingSubmit.cancel();\n this._pendingSubmit = null;\n }\n }\n\n _getInterface() {\n const {\n initialValue,\n value,\n touched,\n hasChanges,\n isSubmitting,\n submitError,\n } = this.state;\n\n return {\n // state\n initialValue: initialValue,\n value: value,\n touched: touched,\n hasChanges: hasChanges,\n isSubmitting: isSubmitting,\n submitError: submitError,\n // setters\n resetValue: this._resetValue,\n setTouched: this._setTouched,\n setIsSubmitting: this._setIsSubmitting,\n setSubmitError: this._setSubmitError,\n // handlers\n handleSubmit: this._handleSubmit,\n handleReset: this._handleReset,\n handleChange: this._handleChange,\n handleBlur: this._handleBlur,\n };\n }\n\n _resetValue = () => {\n const { initialValue } = this.props;\n\n this.setState({\n initialValue: initialValue,\n value: initialValue,\n });\n };\n\n _resetTouched = () => {\n const { initialTouched } = this.props;\n\n this.setState({\n touched: initialTouched,\n });\n };\n\n _setTouched = (touched) => {\n this.setState({ touched });\n };\n\n _setIsSubmitting = (isSubmitting) => {\n this.setState({ isSubmitting });\n };\n\n _setSubmitError = (submitError) => {\n this.setState({ submitError });\n };\n\n _handleSubmit = async (event) => {\n // block double submits\n if (this._pendingSubmit) {\n return;\n }\n\n const { value } = this.state;\n\n this._setIsSubmitting(true);\n this._setSubmitError(null);\n\n this._pendingSubmit = cancelablePromise(this.props.onSubmit(value, this._getInterface()));\n\n try {\n await this._pendingSubmit.promise;\n this._pendingSubmit = null;\n this._setIsSubmitting(false);\n }\n catch (err) {\n this._pendingSubmit = null;\n\n if (!err.isCanceled) {\n this._setIsSubmitting(false);\n }\n }\n };\n\n _handleReset = (event) => {\n this._resetValue();\n this._resetTouched();\n this._setSubmitError(null);\n this.props.onReset();\n };\n\n _handleChange = (event) => {\n const { transformValue } = this.props;\n const { name, value } = event.target;\n\n this.setState((state) => {\n return {\n value: transformValue(setAtPath(state.value, name, value)),\n touched: setAtPath(state.touched, name, true),\n };\n });\n };\n\n _handleBlur = (event) => {\n const { name } = event.target;\n\n this.setState((state) => {\n return {\n touched: setAtPath(state.touched, name, true),\n };\n });\n };\n\n render() {\n const { render, validate } = this.props;\n const { value } = this.state;\n\n return render({\n ...this._getInterface(),\n validation: validate(value),\n });\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport TextInput from 'Components/text-input/TextInput';\nimport TimezoneSelect from 'Components/timezone/TimezoneSelect';\nimport UnmaskablePasswordInput from 'Components/password/UnmaskablePasswordInput';\nimport validate from './CreateAccountValidation';\nimport { sendPostRequest } from 'Http/request';\nimport moment from 'moment-timezone';\nimport Form from 'Components/form/Form';\nimport PageFrame from 'Components/page/PageFrame';\nimport { FormController } from 'Components/form/FormController';\nimport { getAtPath } from 'Common/util/FormUtils';\n\nconst StyledTextInput = styled(TextInput)`\n display: block;\n`;\n\nexport default class CreateAccountForm extends React.Component {\n static propTypes = {\n onSuccess: PropTypes.func.isRequired,\n pendingLinkingToken: PropTypes.string,\n pendingAssetName: PropTypes.string,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n initialValue: {\n organization_name: '',\n name: '',\n email: '',\n password: '',\n timezone: moment.tz.guess(),\n },\n initialTouched: {\n organization_name: false,\n name: false,\n email: false,\n password: false,\n timezone: false,\n },\n };\n }\n\n _handleSubmit = async (value, formController) => {\n const { onSuccess, pendingAssetName, pendingLinkingToken } = this.props;\n\n // Set everything as touched to expose all validation errors\n formController.setTouched({\n organization_name: true,\n name: true,\n email: true,\n password: true,\n timezone: true,\n });\n\n const validation = validate(value);\n\n if (validation) {\n formController.setSubmitError({ message: 'Some fields are invalid.' });\n return;\n }\n\n let requestBody = {\n email: value.email,\n name: value.name,\n password: value.password,\n organization_name: value.organization_name,\n timezone: value.timezone,\n };\n if (pendingAssetName && pendingLinkingToken) {\n requestBody.pending_linking_token = pendingLinkingToken;\n requestBody.pending_asset_name = pendingAssetName;\n }\n\n let response;\n\n try {\n response = await sendPostRequest('/api/v1/accounts/user', {\n body: requestBody,\n });\n }\n catch (err) {\n response = {\n ok: false,\n data: err || { message: 'Network error' },\n };\n }\n\n if (response.ok) {\n onSuccess(requestBody);\n }\n else {\n formController.setSubmitError(response.data);\n }\n };\n\n render() {\n const { initialValue, initialTouched } = this.state;\n\n return (\n validate(value)}\n onSubmit={this._handleSubmit}\n onReset={this._handleReset}\n render={(formController) => {\n const {\n value,\n touched,\n validation,\n isSubmitting,\n submitError,\n\n handleBlur,\n handleChange,\n handleSubmit,\n } = formController;\n\n const inputError = (inputName) => {\n return getAtPath(touched, inputName) && getAtPath(validation, inputName);\n };\n\n const inputProps = (inputName, defaults = {}) => {\n return {\n name: inputName,\n value: getAtPath(value, inputName),\n error: !!inputError(inputName),\n helperText: inputError(inputName) || defaults.helperText || '',\n onChange: handleChange,\n onBlur: handleBlur,\n disabled: isSubmitting,\n };\n };\n\n return (\n \n \n \n \n\n \n \n\n \n\n \n \n \n \n );\n }}\n />\n );\n }\n}\n","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport styled from 'styled-components';\nimport { Subtitle1 } from 'Components/typography/typography';\n\nconst Description = styled(Subtitle1)`\n display: block;\n color: ${props => props.theme.colors.darkText.mediumEmphasis};\n`;\n\nfunction DataUseDescription() {\n return (\n \n

We’re Vorne. We are experts in improving manufacturing productivity and we look forward to helping you.

\n

We will use the information you provide to:

\n
    \n
  • Create XL Enterprise accounts.
  • \n
  • Send transactional emails that are generated by (or directly relate to) your XL Enterprise account.
  • \n
  • Periodically send emails about improving manufacturing productivity and how our XL products can help. We are confident you will find this information to be valuable, but of course you can unsubscribe at any time.
  • \n
\n

We do not rent, sell, or lease personal information that you disclose to us. If you are located in a country with an approved XL reseller, we will share your information with our reseller so that they can contact and work with you directly. You can read our complete privacy policy here.

\n
\n );\n}\n\nexport default DataUseDescription;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Page from 'Components/page/Page';\nimport PageTitle from 'Components/page/PageTitle';\nimport PageDescription from 'Components/page/PageDescription';\n\nexport default class CreateAccountSuccessPage extends React.Component {\n static propTypes = {\n email: PropTypes.string.isRequired,\n };\n\n static defaultProps = {};\n\n constructor(props) {\n super(props);\n }\n\n render() {\n const { email } = this.props;\n\n return (\n \n Check your inbox!\n \n A verification link has been sent to {email}.\n You must follow the instructions in the email to confirm your\n email address before you will be able to log in.\n \n \n );\n }\n}\n","import React from 'react';\nimport Page from 'Components/page/Page';\nimport PageContent from 'Components/page/PageContentStandard';\nimport PageContentWide from 'Components/page/PageContentWide';\nimport PageTitle from 'Components/page/PageTitle';\nimport PageDescription from 'Components/page/PageDescription';\nimport CreateAccountForm from './internal/CreateAccountForm';\nimport DatauseDescription from 'Components/data-use-description/DataUseDescription';\nimport CreateAccountSuccessPage from './internal/CreateAccountSuccessPage';\nimport queryString from 'query-string';\n\nexport default class CreateAccountPage extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n isDone: false,\n email: '',\n };\n }\n\n _handleCreateAccountSuccess = ({ email }) => {\n this.setState({\n isDone: true,\n email: email,\n });\n };\n\n _getPendingLinkInformation(props) {\n const qs = props.location?.state?.from?.search;\n if (qs) {\n const params = queryString.parse(qs);\n if (params.asset_name && params.linking_token) {\n return {\n asset_name: params.asset_name,\n linking_token: params.linking_token,\n };\n }\n }\n\n return null;\n }\n\n render() {\n const { isDone, email } = this.state;\n const pendingLinkInfo = this._getPendingLinkInformation(this.props);\n\n if (isDone) {\n return (\n \n );\n }\n else {\n return (\n \n Create Organization\n \n This will create a new XL Enterprise organization, with you as the administrator. A\n company should have only one organization. Before creating an organization,\n check with your IT and management to verify that there is NOT already an XL Enterprise\n organization for your company.\n \n \n \n \n \n \n \n \n );\n }\n }\n}\n","export const NodeType = {\n DEVICE: 'device',\n AREA: 'area',\n PLANT: 'plant',\n ENTERPRISE: 'enterprise',\n};\n\nexport function getNodeTypeIconName(nodeType) {\n switch (nodeType) {\n case NodeType.DEVICE: return 'gear';\n case NodeType.AREA: return 'department';\n case NodeType.PLANT: return 'factory';\n case NodeType.ENTERPRISE: return 'globe';\n default: throw new Error(`Unknown node type '${nodeType}'`);\n }\n}\n\nexport function getNodeTypeIconColor(nodeType) {\n switch (nodeType) {\n case NodeType.DEVICE: return '#505050';\n case NodeType.AREA: return '#1070c0';\n case NodeType.PLANT: return '#8f5b2a';\n case NodeType.ENTERPRISE: return '#4f9d47';\n default: throw new Error(`Unknown node type '${nodeType}'`);\n }\n}\n\nexport function getNodeTypeDisplayText(nodeType) {\n switch (nodeType) {\n case NodeType.DEVICE: return 'Work Center';\n case NodeType.AREA: return 'Area';\n case NodeType.PLANT: return 'Site';\n case NodeType.ENTERPRISE: return 'Enterprise';\n default: throw new Error(`Unknown node type '${nodeType}'`);\n }\n}\n\nexport function getNodeTypePlaceholderText(nodeType) {\n return `${getNodeTypeDisplayText(nodeType)} name`;\n}\n\nexport function getNodeTypeValues() {\n return [\n NodeType.DEVICE,\n NodeType.AREA,\n NodeType.PLANT,\n NodeType.ENTERPRISE,\n ];\n}\n\nexport function getSelectableNodeTypeValues() {\n return [\n NodeType.PLANT,\n NodeType.AREA,\n ];\n}\n\nexport function getHierarchyNodeDisplayName(node) {\n if (node.node_type === NodeType.DEVICE) {\n return node.device.asset_name;\n }\n else {\n return node.node_name;\n }\n}\n","import { resourceReducer } from 'Common/util/ResourceCollection';\nimport { selectResourceData, selectResourceRequest } from 'Common/util/ResourceCollection/resourceReducer';\nimport { NodeType } from 'Components/hierarchy-editor/HierarchyNodeType';\n\n/**\n * @typedef FlatHierarchyNode\n * @type {Object}\n * @property {string} id Node ID.\n * @property {string[]} children IDs of child nodes.\n * @property {string[]} parents IDs of parent nodes, starting with the root node\n * at index 0 and ending with the node's immediate parent.\n * @property {string} node_type\n * @property {string|null} node_name\n * @property {(Object|null)} device\n */\n\n/**\n * @typedef FlatHierarchy\n * @type {Object}\n * @property {string} rootId ID of the root node.\n * @property {Object.} nodes All nodes in the\n * hierarchy, indexed by node ID.\n */\n\nfunction flattenHierarchy(rootNode, parents = []) {\n const rootId = String(rootNode.id);\n const rootChildren = rootNode.children || [];\n\n const newNode = {\n ...rootNode,\n id: rootId,\n children: rootChildren.map(childNode => String(childNode.id)),\n parents: parents,\n };\n\n // All node IDs get converted into strings. Also do this for the device\n // `hierarchy_visibility` to keep things conistent.\n if (newNode.device) {\n newNode.device.hierarchy_visibility = String(newNode.device.hierarchy_visibility);\n }\n\n let nodes = {\n [rootId]: newNode,\n };\n\n // Add current node to parents list\n let childParents = [ ...parents, rootId ];\n\n rootChildren.forEach((childNode) => {\n nodes = {\n ...nodes,\n ...flattenHierarchy(childNode, childParents).nodes,\n };\n });\n\n return {\n rootId: rootId,\n nodes: nodes,\n };\n}\n\nfunction normalizeHierarchyData(hierarchy) {\n if (hierarchy === null) {\n return {\n hierarchy: null,\n flattenedHierarchy: null,\n devicesList: [],\n };\n }\n\n const flattenedHierarchy = flattenHierarchy(hierarchy);\n\n const devicesList = [];\n\n for (const nodeId in flattenedHierarchy.nodes) {\n const node = flattenedHierarchy.nodes[nodeId];\n\n if (node.node_type === NodeType.DEVICE) {\n const device = node.device;\n // Add the device to the list\n devicesList.push(device);\n }\n }\n\n // Sort devices by name\n devicesList.sort((deviceA, deviceB) => {\n return deviceA.asset_name.localeCompare(deviceB.asset_name);\n });\n\n return {\n hierarchy: hierarchy,\n flattenedHierarchy: flattenedHierarchy,\n devicesList: devicesList,\n };\n}\n\nexport default resourceReducer({\n requests: [ 'getHierarchy', 'putHierarchy' ],\n setResource: (data) => {\n return normalizeHierarchyData(data);\n }\n});\n\n/**\n * Select the hierarchy in tree form.\n *\n * @param {Object} state The state of the redux store.\n * @returns {Object} The root node. Each node has an array of child nodes\n * in `node.children`.\n */\nexport function selectHierarchy(state) {\n return selectResourceData(state).hierarchy;\n}\n\n/**\n * Select the current state of a request from the hierarchy store.\n *\n * @param {Object} state The state of the redux store.\n * @param {string} requestId\n * @returns {Object} The state of the request.\n */\nexport function selectHierarchyRequest(state, requestId) {\n return selectResourceRequest(state, requestId);\n}\n\n/**\n * Select the hierarchy in flattened format.\n *\n * @param {Object} state The state of the redux store.\n * @returns {FlatHierarchy} The hierarchy in flattened form.\n */\nexport function selectFlattenedHierarchy(state) {\n return selectResourceData(state).flattenedHierarchy;\n}\n\n/**\n * Select a single node from the hierarchy, by ID.\n *\n * @param {Object} state The state of the redux store.\n * @param {string} id Node ID.\n * @returns {FlatHierarchyNode} The hierarchy node.\n */\nexport function selectHierarchyNode(state, id) {\n const flattenedHierarchy = selectFlattenedHierarchy(state);\n const node = flattenedHierarchy.nodes[id];\n\n if (!node) {\n throw new Error(`Unable to find node with id \"${id}\".`);\n }\n\n return node;\n}\n\n/**\n * Select a list of all devices in the enterprise hierarchy.\n *\n * @param {Object} state The state of the redux store.\n * @returns {Object[]} List of device objects.\n */\nexport function selectDevicesList(state) {\n return selectResourceData(state).devicesList || [];\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { DragDropContext, Droppable, Draggable } from 'react-beautiful-dnd';\n\nfunction prepareDraggables(items, draggingId, allowDropAtIndexFn) {\n if (!draggingId) {\n return {\n before: { id: null, items: [] },\n middle: items.map((item) => {\n return { id: item.id, items: [ item ] };\n }),\n after: { id: null, items: [] },\n };\n }\n\n let dragStartIndex = null;\n\n const otherItems = items.filter((item, index) => {\n if (item.id === draggingId) {\n dragStartIndex = index;\n return false;\n }\n\n return true;\n });\n\n const allowDropAtIndex = (index) => {\n return allowDropAtIndexFn(index);\n };\n\n const groups = [];\n\n let currentGroup = {\n id: null,\n items: [],\n };\n\n otherItems.forEach((item, index) => {\n const allowDrop = allowDropAtIndex(index);\n const itemAbove = otherItems[index - 1];\n const itemBelow = otherItems[index];\n\n // Insert the currently dragged item in its own group at its starting\n // index.\n if (index === dragStartIndex) {\n groups.push(currentGroup);\n groups.push({\n id: draggingId,\n items: [ items[dragStartIndex] ],\n });\n currentGroup = {\n id: itemBelow.id,\n items: [ itemBelow ],\n };\n return;\n }\n\n if (!itemAbove) {\n // Start of list\n if (allowDrop) {\n // Drop allowed at start of list\n groups.push(currentGroup); // Push the first group\n currentGroup = {\n id: itemBelow.id,\n items: [ itemBelow ],\n };\n }\n else {\n // Drop not allowed at start of list\n currentGroup.id = itemBelow.id;\n currentGroup.items.push(itemBelow);\n }\n }\n else {\n // Somewhere in the middle of the list\n if (allowDrop) {\n // Close out the current group and start a new one\n groups.push(currentGroup);\n currentGroup = {\n id: itemBelow.id,\n items: [ itemBelow ],\n };\n }\n else {\n // Add item to the current group\n currentGroup.items.push(itemBelow);\n }\n }\n });\n\n // End of list\n if (dragStartIndex === otherItems.length) {\n const draggingItem = items[dragStartIndex];\n\n // Edge case, literally. Last item is the one being dragged.\n groups.push(currentGroup);\n groups.push({\n id: draggingItem.id,\n items: [ draggingItem ],\n });\n // Last group is always empty in this case.\n groups.push({\n id: null,\n items: [],\n });\n }\n else if (allowDropAtIndex(otherItems.length)) {\n // Drop allowed at end of list, push current group, then an\n // empty group at the end\n groups.push(currentGroup);\n groups.push({\n id: null,\n items: [],\n });\n }\n else {\n // Drop not allowed at end of list, push current group as the\n // last group\n groups.push(currentGroup);\n }\n\n if (groups.length < 2) {\n throw new Error('Cannot be less than 2 groups');\n }\n\n const totalItemCount = groups.reduce((count, group) => {\n return count + group.items.length;\n }, 0);\n\n if (totalItemCount !== items.length) {\n throw new Error(`Invalid number of items. Expected ${items.length}, got ${totalItemCount}`);\n }\n\n return {\n before: groups[0],\n middle: groups.slice(1, -1),\n after: groups[groups.length - 1],\n };\n}\n\nexport default class GroupedDragDropList extends React.Component {\n static propTypes = {\n droppableId: PropTypes.string.isRequired,\n items: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n }).isRequired,\n ).isRequired,\n renderItem: PropTypes.func.isRequired,\n allowDropAtIndex: PropTypes.func.isRequired,\n readOnly: PropTypes.bool,\n children: PropTypes.func.isRequired,\n\n onBeforeCapture: PropTypes.func,\n onDragStart: PropTypes.func,\n onDragUpdate: PropTypes.func,\n onDragEnd: PropTypes.func,\n };\n\n static defaultProps = {\n readOnly: false,\n onBeforeCapture: () => {},\n onDragStart: () => {},\n onDragUpdate: () => {},\n onDragEnd: () => {},\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n draggingId: null,\n idToIndexMap: null, // Derived\n draggables: null, // Derived\n };\n }\n\n static getDerivedStateFromProps(props, state) {\n return {\n idToIndexMap: props.items.reduce((map, item, index) => {\n map[item.id] = index;\n return map;\n }, {}),\n draggables: prepareDraggables(\n props.items,\n state.draggingId || null,\n props.allowDropAtIndex,\n ),\n };\n }\n\n _translateSource(draggableId, source) {\n const { items } = this.props;\n\n const index = items.findIndex((item) => {\n return item.id === draggableId;\n });\n\n if (index === -1) {\n throw new Error(`Unable to find item with id ${draggableId}`);\n }\n\n return {\n ...source,\n index: index,\n };\n }\n\n _translateDestination(destination) {\n const { draggingId, draggables } = this.state;\n\n let translatedDestination = null;\n\n if (destination) {\n const draggableGroups = draggables.middle.filter((draggable) => {\n return draggable.id !== draggingId;\n });\n\n const translatedDestinationIndex = draggables.before.items.length + draggableGroups.reduce((curr, group, groupIndex) => {\n if (groupIndex < destination.index) {\n curr += group.items.length;\n }\n\n return curr;\n }, 0);\n\n translatedDestination = {\n ...destination,\n index: translatedDestinationIndex,\n };\n }\n\n return translatedDestination;\n }\n\n _handleBeforeCapture = (beforeCapture) => {\n this.setState({\n draggingId: beforeCapture.draggableId,\n });\n\n this.props.onBeforeCapture(beforeCapture);\n };\n\n _handleDragStart = (start) => {\n const { draggableId, source } = start;\n const { onDragStart } = this.props;\n\n onDragStart({\n ...start,\n source: this._translateSource(draggableId, source),\n });\n };\n\n _handleDragUpdate = (update) => {\n const { draggableId, source, destination } = update;\n const { onDragUpdate } = this.props;\n\n onDragUpdate({\n ...update,\n source: this._translateSource(draggableId, source),\n destination: this._translateDestination(destination),\n });\n };\n\n _handleDragEnd = (dragEnd) => {\n const { draggableId, source, destination } = dragEnd;\n const { onDragEnd } = this.props;\n\n onDragEnd({\n ...dragEnd,\n source: this._translateSource(draggableId, source),\n destination: this._translateDestination(destination),\n });\n\n this.setState({\n draggingId: null,\n });\n };\n\n _renderItem(item, provided = null, snapshot = {}) {\n const index = this.state.idToIndexMap[item.id];\n\n const mergedProvided = {\n dragHandleProps: {},\n ...provided,\n };\n\n return this.props.renderItem(index, mergedProvided, snapshot);\n }\n\n _renderItemsBefore() {\n const { draggables } = this.state;\n\n return draggables.before.items.map((item) => {\n return this._renderItem(item);\n });\n }\n\n _renderItemsAfter() {\n const { draggables } = this.state;\n\n return draggables.after.items.map((item) => {\n return this._renderItem(item);\n });\n }\n\n _renderDraggableItems() {\n const { draggables } = this.state;\n const { readOnly } = this.props;\n\n return draggables.middle.map((group, index) => {\n return (\n \n {(provided, snapshot) => {\n return (\n \n {group.items.map((item) => {\n return this._renderItem(\n item,\n {\n dragHandleProps: provided.dragHandleProps,\n },\n snapshot\n );\n })}\n \n );\n }}\n \n );\n });\n }\n\n render() {\n const {\n children,\n droppableId,\n ...otherProps\n } = this.props;\n\n return (\n \n {this._renderItemsBefore()}\n \n {(provided, snapshot) => {\n const mergedProvided = {\n ...provided,\n draggables: this._renderDraggableItems(),\n };\n\n return this.props.children(\n mergedProvided,\n snapshot,\n );\n }}\n \n {this._renderItemsAfter()}\n \n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport GroupedDragDropList from './GroupedDragDropList';\n\nconst triggerEscape = () => {\n const event = new window.KeyboardEvent('keydown', {\n bubbles: true,\n cancelable: true,\n keyCode: 27, // Escape,\n });\n document.body.dispatchEvent(event);\n};\n\nfunction getNodeLevel(node) {\n return node.path.length - 1;\n}\n\nfunction getFlatNodeParentId(flatNode) {\n if (flatNode.path.length > 1) {\n return flatNode.path[flatNode.path.length - 2];\n }\n else if (flatNode.path.length === 1) {\n return null; // Root node, no parent.\n }\n else {\n throw new Error('Invalid path for flatNode');\n }\n}\n\nfunction flattenNodes(rootId, nodes, dragSource, path) {\n const { children, ...rootNode } = nodes[rootId];\n\n const currNode = {\n ...rootNode,\n path: path,\n isDragging: Boolean(dragSource && dragSource.draggableId === rootId),\n groupedChildren: [],\n allowedDropLevels: [],\n };\n\n const flatChildNodes = children.reduce((curr, childId, siblingIndex) => {\n return curr.concat(\n flattenNodes(\n childId,\n nodes,\n dragSource,\n [ ...path, childId ],\n )\n );\n }, []);\n\n if (currNode.isDragging) {\n // The node is being dragged, so group the children inside of the\n // draggable so they will be dragged with the parent.\n currNode.groupedChildren = flatChildNodes;\n\n return [ currNode ];\n }\n else {\n // Create a flattened list starting with the parent and the\n // children after.\n return [\n currNode,\n ...flatChildNodes,\n ];\n }\n}\n\n/*\n * Calculate a range of indent levels that a dragged node can be dropped at in\n * the flat list.\n *\n * At any given index in the flattened tree, there are usually multiple options\n * for what level a node can be placed. Basically, the rule is that it can be\n * placed at any level of the hierarchy that does not cause any other nodes to\n * get re-parented.\n *\n * For example, if you drop a node between two sibling nodes (at the same\n * level), there are only two options for what level it can be placed at: As a\n * child of the parent above, or a sibling of both the node before and the node\n * after. After determining the available levels, the desired level for the\n * drop is based on the horizontal position of the dragged element.\n *\n */\nfunction calculateDropLevelRange(flatNodes, draggingId, dropIndex) {\n // Start by removing the dragged node from the list\n flatNodes = flatNodes.filter((node, index) => {\n return node.id !== draggingId;\n });\n\n const indexBefore = dropIndex - 1;\n const indexAfter = dropIndex;\n\n const nodeBefore = flatNodes[indexBefore];\n const nodeAfter = flatNodes[indexAfter];\n\n if (!nodeBefore && !nodeAfter) {\n // Empty list\n return [ 1, 1 ];\n }\n else if (!nodeBefore && nodeAfter) {\n // Start of list\n return [ 1, 1 ];\n }\n else if (nodeBefore && !nodeAfter) {\n // End of list\n return [ 1, getNodeLevel(nodeBefore) + 1 ];\n }\n\n if (getNodeLevel(nodeBefore) === getNodeLevel(nodeAfter)) {\n // Between two nodes of the same level\n return [ getNodeLevel(nodeBefore), getNodeLevel(nodeBefore) + 1 ];\n }\n else if (getNodeLevel(nodeBefore) < getNodeLevel(nodeAfter)) {\n // Inserting at first child of nodeBefore\n return [ getNodeLevel(nodeAfter), getNodeLevel(nodeAfter) ];\n }\n else if (getNodeLevel(nodeBefore) > getNodeLevel(nodeAfter)) {\n // Inserting sibling of nodeAfter to child of nodeBefore\n return [ getNodeLevel(nodeAfter), getNodeLevel(nodeBefore) + 1 ];\n }\n\n throw new Error('Unable to calculate drop level range');\n}\n\nfunction prepareDraggables(value, dragSource, allowDropChildFn) {\n const { rootId, nodes } = value;\n\n if (!rootId) {\n return [];\n }\n\n const { children } = nodes[rootId];\n\n const allowDropChildMap = {\n [rootId]: Boolean(dragSource && allowDropChildFn(nodes[rootId], nodes[dragSource.draggableId])),\n };\n\n let flatNodes = children\n .reduce((curr, childId) => {\n return curr.concat(\n flattenNodes(\n childId,\n nodes,\n dragSource,\n [ rootId, childId ]\n )\n );\n }, [])\n .map((flatNode) => {\n let allowDropChild = true;\n\n if (dragSource && !flatNode.isDragging) {\n allowDropChild = allowDropChildFn(nodes[flatNode.id], nodes[dragSource.draggableId]);\n }\n\n allowDropChildMap[flatNode.id] = allowDropChild;\n\n return {\n ...flatNode,\n allowDropChild: allowDropChild,\n };\n });\n\n const isDragging = !!dragSource;\n\n const dragSourceIndex = flatNodes.findIndex((flatNode) => {\n return flatNode.id === dragSource?.draggableId;\n });\n\n if (isDragging && dragSourceIndex === -1) {\n throw new Error(`Unable to find index of drag source with id ${dragSource?.draggableId}`);\n }\n\n flatNodes = flatNodes.map((flatNode, index) => {\n const draggingId = dragSource?.draggableId;\n\n // If this is the node being dragged, don't bother with it.\n if (draggingId === flatNode.id) {\n return {\n ...flatNode,\n blockDropAfter: false,\n allowedDropLevels: [],\n };\n }\n\n // The hypothetical index that the dragged node could be dropped at.\n // To figure this out, the starting index of the dragged item must\n // be considered, because moving the dragged item could cause indexes\n // to shift.\n let dropIndex;\n\n if (isDragging) {\n if (dragSourceIndex < index) {\n dropIndex = index;\n }\n else {\n dropIndex = index + 1;\n }\n }\n else {\n dropIndex = index + 1;\n }\n\n // Find the range of drop levels if the dragged item was dropped after\n // this node.\n const [ minDropLevel, maxDropLevel ] = calculateDropLevelRange(flatNodes, draggingId, dropIndex);\n\n const adjustedPath = [ '', ...flatNode.path ];\n\n const allowedDropLevels = adjustedPath.map((nodeId, dropLevel) => {\n return (\n dropLevel >= minDropLevel &&\n dropLevel <= maxDropLevel &&\n allowDropChildMap[nodeId]\n );\n });\n\n // If every node in it's path does not allow the node to be dropped\n // as a child, then mark it as blocking all drops\n const blockDropAfter = allowedDropLevels.every((allowDrop) => {\n return allowDrop === false;\n });\n\n return {\n ...flatNode,\n allowedDropLevels: allowedDropLevels,\n blockDropAfter: blockDropAfter,\n };\n });\n\n return flatNodes;\n}\n\nfunction calculateDropLevel(flatNodes, dragSource, dropDestination, dropLevelIndent) {\n if (dropDestination.index === 0) {\n return 1;\n }\n\n // Start by removing the dragged node from the list\n flatNodes = flatNodes.filter((node, index) => {\n const isDraggedNode = (\n dragSource.droppableId === dropDestination.droppableId &&\n dragSource.index === index\n );\n\n return !isDraggedNode;\n });\n\n const indexBefore = dropDestination.index - 1;\n const nodeBefore = flatNodes[indexBefore];\n\n let dropLevel = null;\n\n for (let i = 0; i < nodeBefore.allowedDropLevels.length; i++) {\n const isLevelAllowed = nodeBefore.allowedDropLevels[i];\n\n if (dropLevel === null) {\n if (isLevelAllowed) {\n dropLevel = i;\n }\n }\n else {\n if (isLevelAllowed && i <= dropLevelIndent) {\n dropLevel = i;\n }\n }\n }\n\n return dropLevel;\n}\n\nfunction calculatePlaceholderTop(flatNodeHeights, dragSource, dropDestination) {\n if (dropDestination === null) {\n return null;\n }\n\n const rv = flatNodeHeights\n .filter((height, index) => {\n const isDraggedNode = (\n dragSource.droppableId === dropDestination.droppableId &&\n dragSource.index === index\n );\n\n return !isDraggedNode;\n })\n .reduce((curr, height, index) => {\n if (index < dropDestination.index) {\n return curr + height;\n }\n else {\n return curr;\n }\n }, 0);\n\n return rv;\n}\n\n/**\n * After a drag is completed, this will \"refresh\" the `parents` array of each node\n * in the hierarchy.\n *\n * @param {Object} nodes\n * @param {string} rootId Id of root node\n *\n * @returns {Object} Updated nodes.\n */\nfunction updateNodeParentsAfterDragEnd(nodes, rootId) {\n const updatedNodes = {};\n\n const recurse = (nodeId, parents) => {\n const currentNode = nodes[nodeId];\n\n updatedNodes[nodeId] = {\n ...currentNode,\n parents: parents,\n };\n\n const childParents = [ ...parents, nodeId ];\n\n currentNode.children.forEach((childNodeId) => {\n recurse(childNodeId, childParents);\n });\n };\n\n recurse(rootId, []);\n\n return updatedNodes;\n}\n\nconst Root = styled.div``;\n\nconst DropPlaceholder = styled.div.attrs((props) => {\n return {\n style: {\n top: `${props._top}px`,\n left: `${props._left}px`,\n height: `${props._height}px`,\n },\n };\n})`\n position: absolute;\n right: 0;\n background-color: rgba(0,0,0,0.1);\n`;\n\nexport default class HierarchyEditor extends React.Component {\n static propTypes = {\n name: PropTypes.string,\n value: PropTypes.shape({\n rootId: PropTypes.string.isRequired,\n nodes: PropTypes.objectOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n children: PropTypes.arrayOf(PropTypes.string).isRequired,\n parents: PropTypes.arrayOf(PropTypes.string).isRequired,\n }).isRequired,\n ).isRequired,\n }).isRequired,\n validation: PropTypes.objectOf(PropTypes.string),\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool.isRequired,\n indentPerLevel: PropTypes.number,\n renderNode: PropTypes.func.isRequired,\n allowDropChild: PropTypes.func,\n onChange: PropTypes.func.isRequired,\n };\n\n static defaultProps = {\n name: '',\n validation: {},\n disabled: false,\n indentPerLevel: 32,\n allowDropChild: (node, draggedNode) => true,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n draggingId: null,\n dragSource: null,\n\n dropDestination: null,\n dropLevel: null,\n\n showPlaceholder: false,\n placeholderTop: null,\n placeholderHeight: null,\n placeholderLevel: null,\n\n flatNodeHeights: null,\n };\n\n this._isDropAnimating = false;\n\n this._droppableInnerElem = null;\n this._draggableInnerElems = {};\n this._draggableOuterElems = {};\n }\n\n static getDerivedStateFromProps(props, state) {\n const dragSource = state.draggingId ?\n {\n draggableId: state.draggingId,\n }\n : null;\n\n return {\n flatNodes: prepareDraggables(\n props.value,\n dragSource,\n props.allowDropChild,\n ),\n };\n }\n\n _handleBeforeCapture = ({ draggableId }) => {\n this.setState({\n draggingId: draggableId,\n });\n };\n\n _handleDragStart = (start) => {\n const { draggableId, source, mode } = start;\n const { flatNodes } = this.state;\n\n // This is a hack to prevent dragging with the keyboard. Keybaord is\n // not supported and will cause issues.\n if (mode === 'SNAP') {\n setTimeout(triggerEscape, 10);\n }\n\n const dragSource = {\n draggableId: draggableId,\n droppableId: source.droppableId,\n index: source.index,\n };\n\n // Fake out the drop destination as the source, just for the start of\n // the drag\n const fakeDropDestination = {\n droppableId: source.droppableId,\n index: source.index,\n };\n\n const flatNodeHeights = flatNodes.map((node) => {\n const outerElems = this._draggableOuterElems;\n return outerElems[node.id].getBoundingClientRect().height;\n });\n\n const placeholderHeight = flatNodeHeights[dragSource.index];\n const placeholderTop = calculatePlaceholderTop(flatNodeHeights, dragSource, fakeDropDestination);\n const placeholderLevel = getNodeLevel(flatNodes[dragSource.index]);\n\n this.setState({\n draggingId: draggableId,\n dragSource: dragSource,\n dropDestination: null,\n dropLevel: null,\n\n showPlaceholder: true,\n placeholderTop: placeholderTop,\n placeholderHeight: placeholderHeight,\n placeholderLevel: placeholderLevel,\n\n flatNodeHeights: flatNodeHeights,\n });\n };\n\n _handleDragUpdate = (update) => {\n const { draggableId, source, destination } = update;\n const { flatNodeHeights } = this.state;\n\n const dragSource = {\n draggableId: draggableId,\n droppableId: source.droppableId,\n index: source.index,\n };\n\n let dropDestination = null;\n\n if (destination) {\n dropDestination = {\n droppableId: destination.droppableId,\n index: destination.index,\n };\n }\n\n this.setState({\n draggingId: draggableId,\n dragSource: dragSource,\n dropDestination: dropDestination,\n\n showPlaceholder: dropDestination !== null,\n placeholderTop: calculatePlaceholderTop(flatNodeHeights, dragSource, dropDestination),\n });\n };\n\n _handleDragEnd = (result) => {\n const { draggableId, source } = result;\n let { destination } = result;\n\n const { value } = this.props;\n const { flatNodes } = this.state;\n let { dropLevel } = this.state;\n\n if (!destination) {\n destination = {\n droppableId: source.droppableId,\n index: source.index,\n };\n }\n\n if (dropLevel === null) {\n dropLevel = getNodeLevel(flatNodes[source.index]);\n }\n\n const draggedFlatNode = flatNodes[source.index];\n const sourceParentId = getFlatNodeParentId(draggedFlatNode);\n\n const otherFlatNodes = flatNodes.filter((node) => {\n return node.id !== draggableId;\n });\n\n const nodeBefore = otherFlatNodes[destination.index - 1];\n let firstSiblingIndex = 0;\n let destinationParentId = null;\n\n if (nodeBefore) {\n const dropPath = nodeBefore.path.slice(0, dropLevel);\n\n destinationParentId = dropPath[dropPath.length - 1];\n\n if (destinationParentId === value.rootId) {\n firstSiblingIndex = 0;\n }\n else {\n // In the flat list, the first child is always right after the parent.\n firstSiblingIndex = 1 + otherFlatNodes.findIndex((node) => {\n return node.id === destinationParentId;\n });\n }\n }\n else {\n // Parent is the root node\n destinationParentId = value.rootId;\n // First sibling is the start of the flat list\n firstSiblingIndex = 0;\n }\n\n let siblingsBefore = 0;\n\n for (let i = firstSiblingIndex; i < destination.index; i++) {\n const currNode = otherFlatNodes[i];\n const isSibling = getFlatNodeParentId(currNode) === destinationParentId;\n\n if (isSibling) {\n siblingsBefore++;\n }\n }\n\n const siblingIndex = siblingsBefore;\n\n let newNodes = { ...value.nodes };\n\n // Remove draggable from old parent\n newNodes[sourceParentId] = {\n ...newNodes[sourceParentId],\n children: newNodes[sourceParentId].children.filter((childId) => {\n return childId !== draggableId;\n }),\n };\n\n const newSiblings = [ ...newNodes[destinationParentId].children ];\n newSiblings.splice(siblingIndex, 0, draggableId);\n\n newNodes[destinationParentId] = {\n ...newNodes[destinationParentId],\n children: newSiblings,\n };\n\n // Now that the drag has finished, update the parent nodes.\n newNodes = updateNodeParentsAfterDragEnd(newNodes, value.rootId);\n\n this.props.onChange({\n target: {\n name: this.props.name,\n value: {\n ...value,\n nodes: newNodes,\n },\n },\n });\n\n this._isDropAnimating = false;\n\n this.setState({\n draggingId: null,\n dragSource: null,\n\n dropDestination: null,\n dropLevel: null,\n\n showPlaceholder: false,\n placeholderTop: null,\n placeholderHeight: null,\n placeholderLevel: null,\n\n flatNodeHeights: null,\n });\n };\n\n _handleMouseMove = () => {\n const { indentPerLevel } = this.props;\n const { draggingId, flatNodes, dragSource } = this.state;\n let { dropDestination } = this.state;\n\n // If we are not currently dragging, do nothing.\n if (draggingId === null || !dragSource) {\n return;\n }\n\n // There is a short time after the dragged item is \"released\", when it\n // is animating to its new position. Because the `onDragEnd` is not\n // fired until after the animation, we do not want to update the drop\n // level during this time.\n if (this._isDropAnimating) {\n return;\n }\n\n // If there is no dropDestination, fake it.\n if (!dropDestination) {\n dropDestination = {\n droppableId: dragSource.droppableId,\n index: dragSource.index,\n };\n }\n\n const dragElem = this._draggableInnerElems[draggingId];\n const dropElem = this._droppableInnerElem;\n\n // Calculate drop level\n const dragRect = dragElem.getBoundingClientRect();\n const dropRect = dropElem.getBoundingClientRect();\n\n const dropLevelPx = Math.max(0, dragRect.left - dropRect.left);\n const dropLevelIndent = Math.floor(dropLevelPx / indentPerLevel);\n\n const dropLevel = calculateDropLevel(flatNodes, dragSource, dropDestination, dropLevelIndent);\n\n if (dropLevel !== this.state.dropLevel || dropLevel !== this.state.placeholderLevel) {\n this.setState({\n dropLevel: dropLevel,\n placeholderLevel: dropLevel,\n });\n }\n };\n\n _renderNode(flatNode, provided, snapshot) {\n const { value: valueProp, indentPerLevel, renderNode } = this.props;\n\n const mergedProvided = {\n innerRef: () => {},\n dragHandleProps: {},\n draggableProps: {},\n ...provided,\n };\n\n const mergedSnapshot = {\n isDragging: false,\n isParentDragging: false,\n isDropAnimating: false,\n allowDropChild: flatNode.allowDropChild,\n blockDropAfter: flatNode.blockDropAfter,\n allowedDropLevels: flatNode.allowedDropLevels || [],\n dropLevel: null,\n path: flatNode.path || [],\n ...snapshot,\n };\n\n const nodeId = flatNode.id;\n const node = valueProp.nodes[nodeId];\n\n let visibleIndentLevel = getNodeLevel(flatNode);\n\n if ((mergedSnapshot.isDragging || mergedSnapshot.isParentDragging) && mergedSnapshot.isDropAnimating) {\n visibleIndentLevel = mergedSnapshot.dropLevel;\n }\n\n let transition = '';\n\n if (mergedSnapshot.dropAnimation) {\n transition = `padding-left ${mergedSnapshot.dropAnimation.duration}s ${mergedSnapshot.dropAnimation.curve}`;\n }\n\n return (\n \n {renderNode({\n node: node,\n level: getNodeLevel(flatNode),\n provided, mergedProvided,\n snapshot: mergedSnapshot,\n })}\n \n );\n }\n\n _renderItem(flatNode, provided, snapshot) {\n const { dropLevel } = this.state;\n\n let dropLevelChange = null;\n\n if (snapshot.isDropAnimating) {\n this._isDropAnimating = true;\n }\n\n if (snapshot.isDragging && dropLevel !== null) {\n dropLevelChange = dropLevel - getNodeLevel(flatNode);\n }\n\n return (\n {\n this._draggableOuterElems[flatNode.id] = elem;\n }}\n {...provided.draggableProps}\n >\n {this._renderNode(\n flatNode,\n {\n ...provided,\n innerRef: (elem) => {\n this._draggableInnerElems[flatNode.id] = elem;\n },\n },\n {\n ...snapshot,\n dropLevel: dropLevel,\n allowDropChild: flatNode.allowDropChild,\n }\n )}\n {flatNode.groupedChildren && flatNode.groupedChildren.map((child) => {\n return this._renderNode(\n child,\n {\n innerRef: () => {},\n dragHandleProps: {}\n },\n {\n isDragging: false,\n isParentDragging: true,\n isDropAnimating: snapshot.isDropAnimating,\n dropAnimation: snapshot.dropAnimation,\n dropLevel: getNodeLevel(child) + dropLevelChange,\n }\n );\n })}\n \n );\n }\n\n _renderRootNode() {\n const { value } = this.props;\n const { rootId, nodes } = value;\n const { children: rootChildren, ...rootNode } = nodes[rootId];\n\n const flatRootNode = {\n ...rootNode,\n path: [ rootId ],\n groupedChildren: [],\n };\n\n return this._renderNode(\n flatRootNode,\n // provided\n {\n innerRef: (elem) => {\n this._draggableOuterElems[rootNode.id] = elem;\n this._draggableInnerElems[rootNode.id] = elem;\n },\n dragHandleProps: {},\n },\n // snapshot\n {\n isDragging: false,\n allowedDropLevels: [],\n }\n );\n }\n\n render() {\n const {\n value,\n validation,\n disabled,\n name: nameProp,\n onChange,\n indentPerLevel,\n readOnly,\n ...otherProps\n } = this.props;\n\n const {\n draggingId,\n flatNodes,\n showPlaceholder,\n placeholderTop,\n placeholderHeight,\n placeholderLevel,\n } = this.state;\n\n return (\n \n {this._renderRootNode()}\n ({ id: node.id }))}\n renderItem={(index, provided, snapshot) => {\n return this._renderItem(flatNodes[index], provided, snapshot);\n }}\n allowDropAtIndex={(index) => {\n // Always allow dropping at the top\n if (index === 0) {\n return true;\n }\n\n // Note: The code below should be optimized to not use\n // a filter.\n\n const otherNodes = flatNodes.filter((flatNode) => {\n return flatNode.id !== draggingId;\n });\n\n const nodeAbove = otherNodes[index - 1];\n\n if (!nodeAbove) {\n throw new Error(`Unable to find node for allow drop at index ${index}, otherNodes.length=${otherNodes.length}`);\n }\n\n return !nodeAbove.blockDropAfter;\n }}\n >\n {(provided, snapshot) => (\n {\n this._droppableInnerElem = elem;\n provided.innerRef(elem);\n }}\n style={{\n pointerEvents: 'auto',\n position: 'relative',\n }}\n onMouseMove={this._handleMouseMove}\n >\n {provided.draggables}\n {provided.placeholder}\n {/* This placeholder will not be positioned\n properly if dropping at the top of the list is\n disabled. This is not currently supported, but\n could be in the future. */}\n \n {showPlaceholder && (\n \n )}\n \n \n )}\n \n \n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport DropdownContent from 'Components/dropdown/DropdownContent';\nimport { Body1 } from 'Components/typography/typography';\nimport Dropdown from 'Components/dropdown/Dropdown';\nimport ContainedButton from 'Components/button/ContainedButton';\nimport ButtonLike from 'Components/button/ButtonLike';\nimport { getSelectableNodeTypeValues, getNodeTypeDisplayText, getNodeTypeIconName, getNodeTypeIconColor } from './HierarchyNodeType';\nimport { Spacing } from 'Components/common/common';\nimport VorneIcon from 'Components/vorne-icon/VorneIcon';\n\nconst DropdownItem = styled.div`\n padding: 8px;\n display: flex;\n align-items: center;\n`;\n\nconst StyledIcon = styled(VorneIcon)`\n padding-right: ${Spacing.inlineButtonMargin};\n display: flex;\n flex-direction: column;\n justify-content: center;\n font-size: 20px;\n color: ${props => props.color || 'inherit'}\n`;\n\nexport default class AddNodeDropdown extends React.Component {\n static propTypes = {\n name: PropTypes.string,\n onSelect: PropTypes.func.isRequired,\n };\n\n static defaultProps = {};\n\n constructor(props) {\n super(props);\n\n this.state = {\n isOpen: false,\n };\n\n this._itemClickHandlers = {};\n }\n\n _handleOpenButtonClick = () => {\n this.setState(({ isOpen }) => ({ isOpen: !isOpen }));\n };\n\n _handleDropdownBlurDeep = () => {\n this.setState({ isOpen: false });\n };\n\n _handleItemClick = (nodeType) => {\n const { name, onSelect } = this.props;\n\n onSelect({\n target: {\n name: name,\n value: nodeType,\n },\n });\n\n this.setState({ isOpen: false });\n };\n\n render() {\n const { isOpen } = this.state;\n\n return (\n \n \n Add Node\n \n \n {getSelectableNodeTypeValues().map((nodeType) => {\n return (\n this._handleItemClick(nodeType)}\n >\n \n {getNodeTypeDisplayText(nodeType)}\n \n );\n })}\n \n \n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport ButtonLike from '../button/ButtonLike';\nimport { interceptProps } from 'Components/util/reactUtils';\n\nconst Root = styled.div`\n position: relative;\n box-sizing: border-box;\n color: ${(p) => p.theme.colors.palette.black};\n background-color: ${(p) => p.theme.colors.palette.white};\n`;\n\nconst PrimaryContent = styled(interceptProps(ButtonLike, ['paddingRight']))`\n position: relative;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n padding-top: 16px;\n padding-bottom: 16px;\n padding-right: ${p => p.paddingRight}px;\n`;\n\nconst isListItemSecondaryAction = function(child) {\n return React.isValidElement(child) &&\n typeof child.type.isListItemSecondaryAction === 'function' &&\n child.type.isListItemSecondaryAction();\n};\n\nfunction ListItem(props) {\n const {\n Component,\n children: childrenProp,\n selected,\n disabled,\n clickable,\n onClick,\n ...otherProps\n } = props;\n\n const children = React.Children.toArray(childrenProp);\n\n let secondaryAction = null;\n if (children.length > 0 && isListItemSecondaryAction(children[children.length - 1])) {\n secondaryAction = children.pop();\n }\n\n return (\n \n \n {children}\n \n {secondaryAction}\n \n );\n}\n\nListItem.defaultProps = {\n Component: 'div',\n selected: false,\n disabled: false,\n clickable: true,\n onClick: () => {},\n};\n\nListItem.propTypes = {\n Component: PropTypes.any,\n selected: PropTypes.bool,\n disabled: PropTypes.bool,\n clickable: PropTypes.bool,\n onClick: PropTypes.func,\n children: PropTypes.node,\n};\n\nexport default ListItem;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nconst Root = styled.div`\n position: relative;\n box-sizing: border-box;\n display: block;\n flex: 1 1 auto;\n padding-left: 16px;\n padding-right: 16px;\n min-width: 1px; /* Allows text to elide */\n`;\n\nconst TextLine = styled.div`\n position: relative;\n`;\n\nfunction ListItemText(props) {\n const {\n children: childrenProp,\n ...otherProps\n } = props;\n\n const children = React.Children.toArray(childrenProp);\n\n return (\n \n {children.map((child, i) => {\n return (\n {child}\n );\n })}\n \n );\n}\n\nListItemText.propTypes = {\n children: PropTypes.node,\n};\n\nexport default ListItemText;\n","import isString from 'lodash/isString';\n\n// matches numbers separated by dots. Up to 4 dotted numbers will be matched\nconst regex = /[0-9]+(\\.[0-9]+){0,3}/;\n\nfunction parseVersion(version) {\n if (!isString(version)) {\n throw new Error('Version must be a string');\n }\n\n if (version.length === 0) {\n throw new Error('Invalid version format - empty string');\n }\n\n // find a clean numeric dotted version string removing everything else\n const cleanedVersionString = version.match(regex);\n if (! cleanedVersionString) {\n throw new Error('Invalid version format - could not find valid version');\n }\n\n const versionNumbers = cleanedVersionString[0].split('.');\n\n return versionNumbers.map((numStr) => {\n if (numStr.length === 0) {\n throw new Error(`Invalid version format ${version}`);\n }\n\n const num = Number(numStr);\n\n if (!Number.isInteger(num) || !Number.isFinite(num) || num < 0) {\n throw new Error(`Invalid version format ${version}`);\n }\n\n return num;\n });\n}\n\nexport function compareVersions(versionStringA, versionStringB) {\n const versionA = parseVersion(versionStringA);\n const versionB = parseVersion(versionStringB);\n\n for (let i = 0; i < Math.max(versionA.length, versionB.length); i++) {\n const partA = i < versionA.length ? versionA[i] : 0;\n const partB = i < versionB.length ? versionB[i] : 0;\n\n if (partA < partB) {\n return -1;\n }\n else if (partA > partB) {\n return 1;\n }\n }\n\n return 0;\n}\n\nexport function isDeviceAssetNameChangeSupported(xlFirmwareVersion) {\n return compareVersions(xlFirmwareVersion, '2.13') >= 0;\n}\n\nexport function isDeviceVisibilityChangeSupported(xlFirmwareVersion) {\n return compareVersions(xlFirmwareVersion, '2.13') >= 0;\n}\n\nexport function isDeviceUpgradeSupported(xlFirmwareVersion) {\n return compareVersions(xlFirmwareVersion, '2.19.2') >= 0;\n}\n","/**\n * Wraps a test function with the structure needed to be a paramType checker.\n *\n * @param {Function} test Tester function which returns an array of failures.\n *\n * @returns {Object} The paramType tester object. Only \"public\" member is\n * \"isRequired\", which is used to mark the paramType as a required\n * field (value cannot be null or undefined).\n */\nexport default function paramTypeWrapper(test) {\n return {\n isRequired: {\n _required: true,\n _test: test,\n },\n _required: false,\n _test: test,\n };\n}\n","import paramTypeWrapper from './paramTypeWrapper';\n\nfunction basicTypeWrapper(name, test) {\n const wrappedTest = (arg, key) => {\n if (test(arg)) {\n return [];\n }\n else {\n return [`${key} must have type ${name}`];\n }\n };\n\n return paramTypeWrapper(wrappedTest);\n}\n\nexport const object = basicTypeWrapper('object', (arg) => typeof arg === 'object' && arg !== null);\n\nexport const array = basicTypeWrapper('array', (arg) => Array.isArray(arg));\n\nexport const string = basicTypeWrapper('string', (arg) => typeof arg === 'string');\n\nexport const number = basicTypeWrapper('number', (arg) => typeof arg === 'number');\n\nexport const boolean = basicTypeWrapper('boolean', (arg) => typeof arg === 'boolean');\n\nexport const func = basicTypeWrapper('func', (arg) => typeof arg === 'function');\n\nexport const any = paramTypeWrapper(() => []);\n\n// Custom \"basic\" types\n\nexport const paramType = basicTypeWrapper('paramType', (arg) => {\n return (typeof arg === 'object') && (typeof arg._test === 'function') && (typeof arg._required === 'boolean');\n});\n","/**\n * Run a ParamType tester.\n *\n * @param {ParamType} typeChecker\n * @param {Any} arg \n * @param {String} [key='argument']\n *\n * @returns {String[]} Array of failure messages.\n */\nexport default function testType(typeChecker, arg, key = 'argument') {\n if (arg === null || arg === undefined) {\n if (typeChecker._required) {\n return [\n `${key} is required`\n ];\n }\n else {\n // If null / undefined and not required then we have no problems here\n return [];\n }\n }\n\n return typeChecker._test(arg, key);\n}\n","import ParamTypes, { paramTest } from '../ParamTypes';\nimport paramTypeWrapper from './paramTypeWrapper';\n\n/**\n * ParamType checker which checks if the value is exactly the same as the option\n * given.\n *\n * @param {String|Number|Boolean} option The value to check against. Can also be\n * null or undefined.\n *\n * @returns {Function} ParamType checker which returns an array of failures.\n */\nexport default function exactly(option) {\n paramTest(\n option, \n ParamTypes.oneOfType([\n ParamTypes.string, \n ParamTypes.number, \n ParamTypes.boolean,\n ]),\n 'ParamTypes.exactly option arg',\n { throwError: true, }\n );\n \n return paramTypeWrapper((arg, key) => {\n let failures = [];\n\n const matchesOption = arg === option;\n\n if (!matchesOption) {\n const formattedOption = typeof option === 'string'\n ? `\"${option}\"`\n : `${option}`;\n\n failures.push(\n `${key} must be exactly: ${formattedOption}`\n );\n }\n\n return failures;\n });\n}\n","import {\n object,\n array,\n string,\n number,\n boolean,\n func,\n any,\n paramType,\n} from './internal/basicTypes';\nimport shape from './internal/shape';\nimport oneOf from './internal/oneOf';\nimport exactly from './internal/exactly';\nimport oneOfType from './internal/oneOfType';\nimport arrayOf from './internal/arrayOf';\nimport objectOf from './internal/objectOf';\nimport internalTestType from './internal/testType';\n\n/**\n * Set of ParamType checkers for use with paramTest().\n *\n * @see paramTest\n */\nconst ParamTypes = {\n object,\n array,\n string,\n number,\n boolean,\n bool: boolean,\n func,\n any,\n\n paramType,\n\n shape,\n oneOf,\n exactly,\n exact: exactly,\n oneOfType,\n arrayOf,\n objectOf,\n};\n\nexport default ParamTypes;\n\n/**\n * \n * @param {Any} value The value to test\n * @param {ParamType} paramTypeArg A param type tester from the ParamTypes object.\n * @param {String} [name='argument'] An optional name to help make the error easier to read / find.\n * @param {Object} opts\n * @param {boolean} [opts.throwError=!RELEASE] Throw an error instead of just logging a failure. This\n * is turned on by default when using a debug build, but off by default for release builds.\n * @param {boolean} [opts.noLog=false] Do not log a failed paramTest, should only be used in test\n * environments.\n *\n * @returns {boolean} True if no type failures, false if type failures and opts.throwError is falsy.\n *\n * @see ParamTypes\n */\nexport function paramTest(\n value,\n paramTypeArg,\n name = 'argument',\n { throwError, noLog } = { throwError: !RELEASE, noLog: false }\n) {\n let failures = internalTestType(ParamTypes.paramType.isRequired, paramTypeArg, 'paramTypeArg');\n failures = failures.concat(internalTestType(ParamTypes.string.isRequired, name, 'name'));\n\n if (failures.length > 0) {\n throw new Error(failures[0]);\n }\n\n failures = internalTestType(paramTypeArg, value, name);\n\n failures = failures.map((failure) => {\n return `ParamType Error: ${failure}`;\n });\n \n if (throwError && failures.length > 0) {\n throw new Error(failures[0]);\n }\n else if (!noLog) {\n failures.forEach((failure) => {\n console.error(failure);\n });\n }\n\n return failures.length === 0;\n}\n\n/**\n * Convert a ParamTypes validator into a React PropTypes validator.\n * \n * Useful for when you already have a ParamTypes definition for an object and\n * don't want to duplicate it in PropTypes.\n * \n * @param {ParamType} paramTypeArg A param type tester from the ParamTypes object.\n * @returns {function} A React PropTypes validator.\n */\nexport function paramTypeToPropType(paramTypeArg) {\n const propTypeValidator = function(props, propName, componentName) {\n try {\n paramTest(props[propName], paramTypeArg, propName, { throwError: true, noLog: true });\n }\n catch (err) {\n let errorMessage = `Invalid prop \\`${propName}\\` supplied to \\`${componentName}\\`.`;\n\n if (err?.message) {\n errorMessage += ` ${err.message}`;\n }\n\n return new Error(errorMessage);\n }\n\n return null; // No errors\n };\n\n propTypeValidator.isRequired = function(props, propName, componentName) {\n if (props[propName] === null || props[propName] === undefined) {\n return new Error(\n `Invalid prop \\`${propName}\\` supplied to \\`${componentName}\\`. \\`${propName}\\` is required.`\n );\n }\n else {\n return propTypeValidator(props, propName, componentName);\n }\n };\n\n return propTypeValidator;\n}\n","import ParamTypes from '../ParamTypes';\nimport paramTypeWrapper from './paramTypeWrapper';\nimport testType from './testType';\n\n/**\n * ParamType checker which checks if the value is an object and has the given shape.\n *\n * @param {Object} shapeObj An object where each key is a ParamType checker that is\n * in the shape of the expected value.\n *\n * @example ParamTypes.shape({\n * foo: ParamTypes.number,\n * bar: ParamTypes.string.isRequired,\n * deepFoo: ParamTypes.shape({\n * baz: ParamTypes.arrayOf(ParamTypes.number),\n * buz: ParamTypes.boolean.isRequired,\n * }),\n * })\n *\n * @returns {Function} ParamType checker which returns an array of failures.\n */\nexport default function shape(shapeObj) {\n if (typeof shapeObj !== 'object' || shapeObj === null) {\n throw new Error(\n `shape argument must be of type \"object\" not \"${typeof shapeObj}\"`\n );\n }\n\n function shapeTest(arg, parentKey) {\n let failures = [];\n\n failures = failures.concat(testType(ParamTypes.object.isRequired, arg, parentKey));\n\n if (failures.length > 0) {\n return failures;\n }\n\n Object.keys(shapeObj).forEach((key) => {\n const shapeMember = shapeObj[key];\n const argsMember = arg[key];\n\n const nextKey = `${parentKey}.${key}`;\n\n failures = failures.concat(testType(shapeMember, argsMember, nextKey));\n });\n\n return failures;\n }\n\n return paramTypeWrapper(shapeTest);\n}\n","import ParamTypes, { paramTest } from '../ParamTypes';\nimport paramTypeWrapper from './paramTypeWrapper';\n\n/**\n * ParamType checker which checks if the value is equal (===) to one of the given\n * options.\n *\n * @param {String[]|Number[]|Boolean[]} options The values to check against. An option\n * can also be null or undefined.\n *\n * @returns {Function} ParamType checker which returns an array of failures.\n */\nexport default function oneOf(options) {\n paramTest(\n options, \n ParamTypes.arrayOf(\n ParamTypes.oneOfType([\n ParamTypes.string, \n ParamTypes.number, \n ParamTypes.boolean,\n ])\n ).isRequired,\n 'ParamTypes.oneOf options arg',\n { throwError: true, }\n );\n\n return paramTypeWrapper((arg, key) => {\n let failures = [];\n\n const matchesOption = options.some((option) => {\n return arg === option;\n });\n\n if (!matchesOption) {\n const formattedOptions = options.map((option) => {\n if (typeof option === 'string') {\n return `\"${option}\"`;\n }\n else {\n return `${option}`;\n }\n }).join(', ');\n\n failures.push(\n `${key} must be one of: ${formattedOptions}`\n );\n }\n\n return failures;\n });\n}\n","import ParamTypes, { paramTest } from '../ParamTypes';\nimport paramTypeWrapper from './paramTypeWrapper';\nimport testType from './testType';\n\n/**\n * ParamType checker which checks if the value is one of the given types.\n *\n * @param {ParamTypes[]} types The types to check against. If any type matches\n * there are no failures.\n *\n * @returns {Function} ParamType checker which returns an array of failures.\n */\nexport default function oneOfType(types) {\n paramTest(types,\n ParamTypes.arrayOf(ParamTypes.paramType).isRequired,\n 'ParamTypes.oneOfType types arg',\n { throwError: true, }\n );\n\n if (types.length === 0) {\n throw new Error(`ParamTypes.oneOfType must be given at least one type`);\n }\n\n return paramTypeWrapper((arg, key) => {\n let allFailures = [];\n\n const allFailed = types.every((type) => {\n const typeFailures = testType(type, arg, key);\n\n allFailures = allFailures.concat(typeFailures);\n\n return typeFailures.length > 0;\n });\n\n if (allFailed) {\n const failMessage = `${key} must pass one of these checks:\\n ${allFailures.join('\\n ')}`;\n\n return [failMessage];\n }\n else {\n return [];\n }\n });\n}\n","import ParamTypes, { paramTest } from '../ParamTypes';\nimport paramTypeWrapper from './paramTypeWrapper';\nimport testType from './testType';\n\n/**\n * ParamType checker which checks if all items in the array have the given type.\n *\n * @param {ParamType} type ParamType from ParamTypes object\n *\n * @returns {Function} ParamType checker which returns an array of failures.\n */\nexport default function arrayOf(type) {\n paramTest(type, ParamTypes.paramType.isRequired, 'ParamTypes.arrayOf type arg', { throwError: true, });\n \n return paramTypeWrapper((arg, key) => {\n let failures = [];\n\n failures = failures.concat(testType(ParamTypes.array, arg, key));\n\n // If the arrayOf type is marked 'isRequired' we will enforce the array must\n // be at least length 1 .\n //\n if (type._required && arg.length === 0) {\n failures.push(\n `array must have at least one item as arrayOf type is marked as 'isRequired'`\n );\n }\n\n if (failures.length === 0) {\n arg.forEach((value, i) => {\n failures = failures.concat(testType(type, value, `${key}[${i}]`));\n });\n }\n\n return failures;\n });\n}\n","import ParamTypes, { paramTest } from '../ParamTypes';\nimport paramTypeWrapper from './paramTypeWrapper';\nimport testType from './testType';\n\n/**\n * ParamType checker which checks if all values in the object have the given type.\n *\n * @param {ParamType} type ParamType from ParamTypes object\n *\n * @returns {Function} ParamType checker which returns an array of failures.\n */\nexport default function objectOf(type) {\n paramTest(type, ParamTypes.paramType.isRequired, 'ParamTypes.objectOf type arg', { throwError: true, });\n \n return paramTypeWrapper((arg, key) => {\n let failures = [];\n\n failures = failures.concat(testType(ParamTypes.object, arg, key));\n\n const values = Object.values(arg);\n\n // If the objectOf type is marked 'isRequired' we will enforce the array must\n // be at least length 1 .\n //\n if (type._required && values.length === 0) {\n failures.push(\n `object must have at least one item as objectOf type is marked as 'isRequired'`\n );\n }\n\n if (failures.length === 0) {\n values.forEach((value, i) => {\n failures = failures.concat(testType(type, value, `${key}[${i}]`));\n });\n }\n\n return failures;\n });\n}\n","import ParamTypes, { paramTest } from 'Common/util/ParamTypes/ParamTypes';\n\nconst AVG_STRING_CHAR_WIDTH = 6.5;\nconst AVG_NUMBER_CHAR_WIDTH = 6.85;\n\n/**\n* Given a string, measure its approximate length. This does not consider any desired padding\n* or spacing within a table cell, that is left as a final step of measureColumn.\n*\n* @param {String} dataString\n* @param {Object} [opts]\n* @param {Boolean} [opts.numeric = false] If true measure as a numeric string. Numeric\n* strings use a different constant as the average character width is wider.\n*\n* @returns {Number} Approximate width of the string in pixels.\n*/\nexport function measureString(dataString, { numeric = false } = {}) {\n if (!paramTest(dataString, ParamTypes.string, 'measureString.dataString', { throwError: false })) {\n console.error(\n `column.width set to \"auto\" and measureCell's measureFunction has been called with unmeasurable type ${typeof dataString}`\n );\n }\n\n const avgCharWidth = numeric ? AVG_NUMBER_CHAR_WIDTH : AVG_STRING_CHAR_WIDTH;\n\n return ((dataString?.length || 0) * avgCharWidth);\n}\n\nexport function isHtmlElement(obj) {\n return (\n typeof HTMLElement === 'object' ? obj instanceof HTMLElement : //DOM2\n obj && typeof obj === 'object' && obj !== null && obj.nodeType === 1 && typeof obj.nodeName === 'string'\n );\n}\n\nexport function getComputedStyle(element) {\n return window.getComputedStyle(element);\n}\n\nfunction isScrollStyle(styleProp) {\n return /auto|scroll|overlay|hidden/.test(styleProp);\n}\n\nexport function isScrollElement(element) {\n const computedStyle = getComputedStyle(element);\n\n return (\n isScrollStyle(computedStyle.overflow) ||\n isScrollStyle(computedStyle.overflowX) ||\n isScrollStyle(computedStyle.overflowY)\n );\n}\n\n/**\n * Find the closest parent to a node that is scrollable. This does not\n * necessarily mean the parent has a scrollbar, but it has style properties that\n * will allow it to scroll on overflow.\n * \n * @param {HTMLElement} node\n * @returns {HTMLElement} The scrollable parent\n */\n\nexport function getScrollParent(node) {\n // Check if we are at the top-level node. If so, the window is always\n // the scroll parent.\n if (node === document.body) {\n return window;\n }\n\n let parentNode;\n\n // If the element is part of a portal, then follow the portal back to its\n // original source.\n if (node.hasAttribute?.('data-portal-source-id')) {\n parentNode = document.getElementById(node.getAttribute('data-portal-source-id'))?.parentNode;\n }\n else {\n parentNode = node.parentNode;\n }\n\n if (!parentNode) {\n return null;\n }\n\n if (isScrollElement(parentNode)) {\n return parentNode;\n }\n else {\n // Try again with the parent node\n return getScrollParent(parentNode);\n }\n}\n\nexport function getAllScrollParents(node, scrollParentArr = []) {\n const scrollParent = getScrollParent(node);\n\n if (!scrollParent) {\n return scrollParentArr;\n }\n else {\n return scrollParentArr.concat(\n [ scrollParent ],\n getAllScrollParents(scrollParent)\n );\n }\n}\n\nexport function getTextWidth({fontName, fontSize, fontWeight}, text) {\n const canvas = document.createElement(\"canvas\");\n const context = canvas.getContext(\"2d\");\n context.font = `${fontWeight} ${fontSize} ${fontName}`;\n return context.measureText(text).width;\n}\n","import React, { useState, useRef, useLayoutEffect, useEffect, useMemo, useCallback } from 'react';\nimport styled, { css } from 'styled-components';\nimport PropTypes from 'prop-types';\nimport { getAllScrollParents } from 'Common/util/domUtils';\nimport Portal from 'Common/components/Portal/Portal';\nimport Mask from 'Common/components/Portal/Mask';\n\n/**\n * A hook to get all scrollable parents of the provided DOM element.\n *\n * @param {*} [element] A DOM element\n */\nfunction useScrollParents(element) {\n return useMemo(() => {\n if (!element) {\n return [];\n }\n\n return getAllScrollParents(element);\n }, [ element ]);\n}\n\n/**\n * A hook to listen for any scroll events on scrollable parents of the provided\n * DOM element.\n * \n * @param {Object} opts\n * @param {*} [opts.element]\n * @param {Function} opts.onScroll\n */\nfunction useParentScrollTracking({ element, onScroll }) {\n const scrollParents = useScrollParents(element);\n\n useEffect(() => {\n scrollParents.forEach((elem) => {\n elem.addEventListener('scroll', onScroll);\n });\n\n return () => {\n scrollParents.forEach((elem) => {\n elem.removeEventListener('scroll', onScroll);\n });\n };\n }, [ scrollParents, onScroll ]);\n}\n\n/**\n * A hook to get the dimensions of the viewport/window. Listens to the window\n * resize event.\n * \n * @returns {DOMRect} \n */\nfunction useViewportRect() {\n const [ viewportRect, setViewportRect ] = useState({\n x: 0,\n y: 0,\n top: 0,\n bottom: window.innerHeight,\n left: 0,\n right: window.innerWidth,\n width: window.innerWidth,\n height: window.innerHeight,\n });\n\n useEffect(() => {\n const handleResize = () => {\n setViewportRect({\n top: 0,\n bottom: window.innerHeight,\n left: 0,\n right: window.innerWidth,\n width: window.innerWidth,\n height: window.innerHeight,\n });\n };\n\n window.addEventListener('resize', handleResize);\n\n return () => {\n window.removeEventListener('resize', handleResize);\n };\n }, []);\n\n return viewportRect;\n}\n\nconst areEqualRects = (rectA, rectB) => {\n const keys = [ 'top', 'bottom', 'left', 'right', 'width', 'height' ];\n\n for (let i in keys) {\n const key = keys[i];\n\n if (rectA?.[key] !== rectB?.[key]) {\n return false;\n }\n }\n\n return true;\n};\n\nfunction useElementRect(element) {\n const elementRef = useRef(element);\n const [ rect, setRect ] = useState(null);\n\n // Update the ref on every render so it can be acessed in callbacks while\n // keeping the callback refrence stable.\n elementRef.current = element;\n\n const setRectIfChanged = useCallback((newRect) => {\n setRect((prevRect) => {\n if (areEqualRects(prevRect, newRect)) {\n return prevRect;\n }\n else {\n return newRect;\n }\n });\n }, []);\n\n const updateRect = useCallback(() => {\n let newRect = null;\n\n if (elementRef.current) {\n newRect = elementRef.current.getBoundingClientRect();\n }\n\n setRectIfChanged(newRect);\n }, [ setRectIfChanged ]);\n\n // Update the rect after every render\n useLayoutEffect(() => {\n updateRect();\n });\n\n return {\n rect: rect,\n forceUpdate: updateRect,\n };\n}\n\nfunction calculateWindowPosition(anchorRect, viewportRect, minWidth) {\n const pos = {\n top: null,\n bottom: null,\n\n left: null,\n right: null,\n\n maxWidth: null,\n maxHeight: null,\n };\n\n const spaceAbove = anchorRect.top;\n const spaceBelow = viewportRect.height - anchorRect.bottom;\n\n if (spaceBelow >= spaceAbove) {\n // Position below the anchor\n pos.top = anchorRect.bottom;\n pos.maxHeight = spaceBelow;\n }\n else {\n // Position above the anchor\n pos.bottom = viewportRect.height - anchorRect.top;\n pos.maxHeight = spaceAbove;\n }\n\n const spaceToLeft = anchorRect.right;\n const spaceToRight = viewportRect.width - anchorRect.left;\n\n if (spaceToRight >= spaceToLeft) {\n // Align with the left side of the anchor\n pos.left = anchorRect.left;\n pos.maxWidth = spaceToRight;\n\n // If there isn't enough space for the minWidth, nudge the window to the\n // left so it can have more space.\n if (spaceToRight < minWidth) {\n const nudgeLeft = minWidth - spaceToRight;\n pos.right = 0;\n pos.left = Math.max(0, anchorRect.left - nudgeLeft);\n pos.maxWidth = viewportRect.width - pos.left;\n }\n }\n else {\n // Align with the right side of the anchor\n pos.right = viewportRect.width - anchorRect.right;\n pos.maxWidth = spaceToLeft;\n\n // If there isn't enough space for the minWidth, nudge the window to the\n // right so it can have more space.\n if (spaceToLeft < minWidth) {\n const nudgeRight = minWidth - spaceToLeft;\n pos.left = 0;\n pos.right = Math.max(0, (viewportRect.width - anchorRect.right) - nudgeRight);\n pos.maxWidth = viewportRect.width - pos.right;\n }\n }\n\n return pos;\n}\n\nconst StyledWindow = styled.div.attrs((props) => {\n\n const { $windowPos } = props;\n\n const style = {};\n\n for (let key in $windowPos) {\n if ($windowPos[key] !== null) {\n style[key] = `${$windowPos[key]}px`;\n }\n }\n\n return { style };\n})`\n box-sizing: border-box;\n background-color: ${({ theme }) => theme.colors.palette.white};\n border: 1px solid ${({ theme }) => theme.colors.palette.grey.cloud};\n border-radius: 4px;\n position: fixed;\n z-index: 300;\n display: flex;\n flex-direction: column;\n overflow: auto;\n\n ${({ $shadow }) => $shadow && css`\n box-shadow: 0 0 8px rgba(0, 0, 0, 0.18);\n `}\n`;\n\nexport default function DropdownWindow(props) {\n const { anchorElement, children, minWidth, onMaskClick, shadow } = props;\n\n const windowRef = useRef(null);\n\n const viewportRect = useViewportRect();\n\n const {\n rect: anchorRect,\n forceUpdate: updateAnchorRect,\n } = useElementRect(anchorElement);\n\n useParentScrollTracking({\n element: anchorElement,\n onScroll: updateAnchorRect,\n });\n\n const windowPos = useMemo(() => {\n if (!anchorRect) {\n return {\n top: 0,\n left: 0,\n maxWidth: viewportRect.width,\n maxHeight: viewportRect.height,\n };\n }\n\n return calculateWindowPosition(anchorRect, viewportRect, minWidth);\n }, [ anchorRect, viewportRect, minWidth ]);\n\n return (\n \n \n \n {children}\n \n \n );\n}\n\nDropdownWindow.propTypes = {\n anchorElement: PropTypes.object,\n children: PropTypes.node,\n minWidth: PropTypes.number,\n onMaskClick: PropTypes.func,\n shadow: PropTypes.bool,\n};\n\nDropdownWindow.defaultProps = {\n minWidth: 375,\n onMaskClick: () => { },\n shadow: false,\n};\n","import React, { useState, useCallback } from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport DropdownWindow from './DropdownWindow';\n\nconst DropdownAnchor = styled.div`\n position: relative;\n`;\n\nexport default function Dropdown({\n className,\n isOpen,\n renderContent,\n onMaskClick,\n children,\n shadow,\n ...otherProps\n}) {\n const [ anchorElement, setAnchorElement ] = useState(null);\n\n const setAnchorRef = useCallback((el) => {\n setAnchorElement(el);\n }, []);\n\n return (\n \n {children}\n {isOpen && (\n \n {renderContent()}\n \n )}\n \n );\n}\n\nDropdown.propTypes = {\n className: PropTypes.string,\n isOpen: PropTypes.bool.isRequired,\n renderContent: PropTypes.func.isRequired,\n onMaskClick: PropTypes.func,\n children: PropTypes.node.isRequired,\n shadow: PropTypes.bool,\n};\n\nDropdown.defaultProps = {\n onMaskClick: () => { },\n shadow: false,\n};\n","import React, { useState, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { css } from 'styled-components';\n\nconst Layout = styled.div`\n position: relative;\n display: inline-block;\n\n /* custom checkbox */\n &::before {\n box-sizing: border-box;\n width: 8px;\n height: 8px;\n content: \"\\\\e93b\";\n font-family: \"vorne-icon\";\n font-size: 6px;\n line-height: 8px;\n position: absolute;\n left: 0;\n top: 50%;\n transform: translateY(-51%);\n\n border-radius: 2px;\n\n transition: color 0.3s, background-color 0.3s, border-color 0.3s;\n\n /* Checked */\n ${({ checked }) => checked && css`\n color: ${({ theme }) => theme.colors.palette.white};\n border: 1px solid ${({ theme }) => theme.colors.palette.blue.awesome};\n background-color: ${({ theme }) => theme.colors.palette.blue.awesome};\n\n ${({ disabled }) => disabled && css`\n border: 1px solid ${({ theme }) => theme.colors.darkText.disabled};\n background-color: ${({ theme }) => theme.colors.darkText.disabled};\n `}\n `}\n\n /* Unchecked */\n ${({ checked }) => !checked && css`\n color: transparent;\n border: 1px solid ${({ theme }) => theme.colors.darkText.mediumEmphasis};\n background-color: transparent;\n\n ${({ disabled }) => disabled && css`\n border: 1px solid ${({ theme }) => theme.colors.darkText.disabled};\n `}\n `}\n }\n\n ${({ focused, theme }) => focused && css`\n &::before {\n border-color: ${theme.colors.darkText.mediumEmphasis};\n }\n `}\n\n /* hide real checkbox */\n input[type=\"checkbox\"] {\n opacity: 0;\n margin: 0;\n padding: 0;\n width:8px;\n\n cursor: ${({ disabled }) => disabled ? 'default' : 'pointer'};\n }\n`;\n\n/**\n * A custom checkbox input. This hides the real functional checkbox\n * and displays a custom one. For more cases prefer using the full\n * Checkbox component as it adds additional features to the\n * CheckboxInput such as labels and touch targets.\n *\n * @see Checkbox\n */\nfunction CheckboxInput({\n name,\n readonly,\n disabled,\n value,\n onChange,\n className,\n style,\n ...otherProps\n}) {\n const [focused, setFocused] = useState(false);\n\n // Disabled implies readonly\n const isReadonly = readonly || disabled;\n\n const handleOnFocus = useCallback(() => {\n setFocused(true);\n }, []);\n\n const handleOnBlur = useCallback(() => {\n setFocused(false);\n }, []);\n\n const handleOnChange = useCallback((event) => {\n if (!isReadonly) {\n onChange({\n target: {\n name: event.target.name,\n value: event.target.checked,\n },\n });\n }\n }, [isReadonly, onChange]);\n\n return (\n \n \n \n );\n}\n\nCheckboxInput.propTypes = {\n disabled: PropTypes.bool,\n readonly: PropTypes.bool,\n name: PropTypes.string,\n value: PropTypes.bool.isRequired,\n\n onChange: PropTypes.func,\n\n className: PropTypes.string,\n style: PropTypes.object,\n};\n\nCheckboxInput.defaultProps = {\n disabled: false,\n readonly: false,\n name: '',\n\n onChange: () => {},\n};\n\nexport default CheckboxInput;\n","import React, { useCallback } from 'react';\nimport styled, { css } from 'styled-components';\nimport PropTypes from 'prop-types';\nimport { Body5 } from 'Common/components/typography';\n\nimport CheckboxInput from 'Common/components/Checkbox/CheckboxInput';\n\nconst StyledSelectOptionWrapper = styled(Body5).attrs({ as: 'div' })`\n display: flex;\n flex-direction: row;\n align-items: center;\n user-select: none;\n\n color: ${({ theme }) => theme.colors.darkText.highEmphasis};\n\n transition: background-color 0.3s;\n\n ${({disabled}) => !disabled && css`\n &:hover {\n background-color: ${({ theme }) => theme.colors.palette.grey.cloud};\n }\n `}\n\n background-color: ${(props) => {\n if (props.isSelected && !props.isMultiSelect) {\n return props.theme.colors.palette.blue.ice;\n }\n else if (props.isFocused) {\n return props.theme.colors.palette.grey.cloud;\n }\n else {\n return props.theme.colors.palette.white;\n }\n }};\n\n cursor: pointer;\n padding: 4px ${({ hasSearch }) => hasSearch ? 12 : 8}px;\n border-radius: 4px;\n\n /* Give mobile users a nice big touch target */\n @media (hover: none) and (pointer: coarse) {\n padding: 13px ${({ hasSearch }) => hasSearch ? 12 : 8}px;\n }\n\n margin: 0;\n margin-bottom: 1px;\n min-width: 44px;\n\n ${({disabled}) => disabled && css`\n opacity: 0.34;\n pointer-events: none;\n cursor: default;\n `}\n`;\n\nconst CheckboxOptionContainer = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n`;\n\nconst StyledCheckboxInput = styled(CheckboxInput)`\n margin-right: 5px;\n`;\n\nfunction SelectOptionWrapper({\n isFocused,\n isSelected,\n hasSearch,\n children,\n isMultiSelect,\n value,\n onClick,\n disabled,\n}) {\n const handleOnClick = useCallback((event) => {\n event.preventDefault();\n event.stopPropagation();\n\n if (!disabled) {\n onClick({ target: { value: value } });\n }\n }, [onClick, value, disabled]);\n\n return (\n \n {isMultiSelect\n ? (\n \n \n {children}\n \n )\n : children\n }\n \n );\n}\n\nSelectOptionWrapper.propTypes = {\n children: PropTypes.node.isRequired,\n isFocused: PropTypes.bool.isRequired,\n isSelected: PropTypes.bool.isRequired,\n onClick: PropTypes.func.isRequired,\n value: PropTypes.string.isRequired,\n hasSearch: PropTypes.bool,\n isMultiSelect: PropTypes.bool,\n disabled: PropTypes.bool,\n};\n\nSelectOptionWrapper.defaultProps = {\n hasSearch: false,\n isMultiSelect: false,\n disabled: false,\n};\n\nexport default SelectOptionWrapper;\n","import React from 'react';\n\n/**\n * A composite `PropTypes` validator that takes in multiple validators and passes\n * if at least one of them passes.\n *\n * @param {function[]} validators An array of PropTypes validators\n */\nexport function anyOf(validators) {\n return function validate(props, propName, componentName, ...rest) {\n let passed = false;\n\n let errors = validators\n .map((validator) => {\n // optimize to stop validating if one passed\n if (passed) {\n return;\n }\n\n if (typeof validator !== 'function') {\n throw new TypeError(`anyOf: expected valildator of type \\`function\\`, got \\`${typeof validator}\\``);\n }\n\n const error = validator(props, propName, componentName, ...rest);\n if (!error) {\n passed = true;\n }\n return error;\n })\n .filter((error) => !!error);\n\n if (!passed) {\n return new Error(`${componentName} prop ${propName} must satisfy at least one of the following errors:\\n`\n + `${errors.map((error, i) => `\\t\\t${i + 1}. ${error.message}`).join('\\n')}`);\n }\n };\n}\n\nfunction _assertChildrenPropName(propName, componentName) {\n if (propName !== 'children') {\n throw new Error(`\\`${componentName}.propTypes.${propName}\\` has invalid use of \\`elementsOfType\\`.`\n + 'This validator should only be used for the prop `children`.');\n }\n}\n\nfunction _validateRequiredProps({ el, requiredProps, componentName }) {\n let error;\n\n requiredProps.some((propName) => {\n if (!el.props[propName]) {\n error = new Error(\n `${componentName} requires child to have prop ${propName}`\n );\n\n return true;\n }\n });\n\n return error;\n}\n\nfunction _validateElementType({ el, allowedTypes, componentName, propName }) {\n let error;\n\n let elemDisplayType = typeof el;\n\n if (el === null) {\n return; // nulls can be ignored\n }\n else if (typeof el === 'object') {\n if (allowedTypes.indexOf(el.type) !== -1) {\n return;\n }\n else {\n elemDisplayType = String((el.type && el.type.displayName) || el.type);\n }\n }\n\n error = new Error(`${componentName} has invalid ${propName} element type of \"${elemDisplayType}\".`\n + ` Elements must be of type (${allowedTypes.map(c=>c.displayName).join('|')})`);\n\n return error;\n}\n\n/**\n * Accepts an array of types and required props (in the form of an array)\n * that the children must be or have. Each child only needs to match\n * one of these requirements. NOTE: Should only be used on the\n * `children` prop.\n *\n * @param {Type[]} elementTypes\n * @param {String[][]} elementTypes\n */\nexport function childrenAreOneOf({ elementTypes, propShapes }) {\n elementTypes = Array.isArray(elementTypes) ? elementTypes : [elementTypes];\n propShapes = Array.isArray(propShapes) ? propShapes : [propShapes];\n\n return (props, propName, componentName) => {\n _assertChildrenPropName(propName, componentName);\n\n const children = props[propName];\n let error;\n\n React.Children.forEach(children, (el) => {\n if (error) {\n return ;\n }\n\n // Ignore falsy children\n if (!el) {\n return ;\n }\n\n const typeError = _validateElementType({\n el,\n allowedTypes: elementTypes,\n componentName,\n propName,\n });\n\n let propError;\n\n propShapes.some((propShape) => {\n propError = _validateRequiredProps({\n el,\n requiredProps: propShape,\n componentName,\n });\n\n return !propError;\n });\n\n error = (typeError && propError) || null;\n });\n\n return error;\n };\n}\n\n/**\n * A `PropTypes` validator that checks that all the elements are one of the provided\n * element types. NOTE: Should only be used on the `children` prop.\n *\n * @param {*[]} allowedTypes An array of element types\n */\nexport function elementsOfType(allowedTypes) {\n return (props, propName, componentName) => {\n _assertChildrenPropName(propName, componentName);\n\n const children = props[propName];\n let error;\n\n // Children must be of the proper type\n React.Children.forEach(children, (el) => {\n if (error) {\n return ;\n }\n\n error = _validateElementType({\n el,\n allowedTypes,\n componentName,\n propName,\n });\n });\n\n return error;\n };\n}\n\n/**\n * A `PropTypes` validator that checks that there is one child and the element is one\n * of the provided element types. NOTE: Should only be used on the `children` prop.\n *\n * @param {*[]} allowedTypes An array of element types\n */\nexport function elementOfType(allowedTypes) {\n return (props, propName, componentName) => {\n _assertChildrenPropName(propName, componentName);\n\n const children = props[propName];\n let error;\n\n try {\n const childEl = React.Children.only(children);\n\n error = _validateElementType({\n el: childEl,\n allowedTypes,\n componentName,\n propName,\n });\n }\n catch (e) {\n error = new Error(`${componentName} has more than one child element.`\n + ' If multiple children are expected use `elementsOfType` instead.');\n }\n\n return error;\n };\n}\n\nexport const objectOrNull = function(props, propName) {\n const data = props[propName];\n\n if (data === undefined) {\n return new Error(`Undefined ${propName} is not allowed`);\n }\n\n if (data === null) {\n return ;\n }\n\n if (!(data instanceof Object)) {\n return new Error(`${propName} must be an instance of an Object`);\n }\n};\n","import React from 'react';\nimport styled from 'styled-components';\n\nconst StyledSeparator = styled.div`\n margin: 4px 0;\n border-top: 1px solid ${({ theme }) => theme.colors.separator};\n`;\n\nexport default function SelectSeparator() {\n return (\n \n );\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { Subheading5 } from '../typography';\n\nconst Root = styled.div`\n padding-top: 5px;\n padding-bottom: 5px;\n padding: 0;\n`;\n\nconst Label = styled.div`\n align-items: center;\n display: flex;\n flex-direction: row;\n`;\n\nconst LabelText = styled(Subheading5)`\n height: 100%;\n width: 100%;\n overflow: hidden;\n text-align: left;\n text-overflow: ellipsis;\n vertical-align: middle;\n white-space: nowrap;\n`;\n\nexport default function SelectOptionGroup(props) {\n const { label, children, ...otherProps } = props;\n\n return (\n React.Children.count(children) > 0\n ? \n \n
\n {children}\n
\n
\n : null\n );\n}\n\nSelectOptionGroup.propTypes = {\n label: PropTypes.node.isRequired,\n children: PropTypes.node.isRequired,\n};\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { Body5 } from '../typography';\nimport Icon from '../Icon';\nimport useUniqueId from 'Common/hooks/useUniqueId';\n\nconst Root = styled.div``;\n\nconst Label = styled.div`\n align-items: center;\n display: flex;\n flex-direction: row;\n padding-left: 5px;\n\n color: ${({ theme }) => theme.colors.palette.grey.manatee};\n background-color: ${({ theme }) => theme.colors.palette.white};\n\n cursor: pointer;\n padding: 4px ${({ hasSearch }) => hasSearch ? 18 : 8}px;\n border-radius: 4px;\n\n transition: background-color 0.3s;\n\n &:hover {\n background-color: ${({ theme }) => theme.colors.palette.grey.cloud};\n }\n\n /* Give mobile users a nice big touch target */\n @media (hover: none) and (pointer: coarse) {\n padding: 13px ${({ hasSearch }) => hasSearch ? 18 : 8}px;\n }\n`;\n\nconst CollapseIcon = styled(Icon).attrs(({ open }) => {\n return {\n type: 'vorne',\n iconName: open ? 'collapse-arrow-open' : 'collapse-arrow-closed',\n };\n})`\n font-size: 6px;\n padding-right: 6px;\n`;\n\nconst LabelText = styled(Body5)`\n height: 100%;\n width: 100%;\n overflow: hidden;\n text-align: left;\n text-overflow: ellipsis;\n vertical-align: middle;\n white-space: nowrap;\n`;\n\nconst ChildrenContainer = styled.div`\n padding-left: 26px;\n`;\n\nexport default function CollapsibleSelectOptionGroup(props) {\n const { groupName, label, children, open, onLabelClick, ...otherProps } = props;\n\n const handleLabelClick = useCallback(() => {\n onLabelClick(groupName);\n }, [ groupName, onLabelClick ]);\n\n const labelId = useUniqueId('group-label-');\n\n return (\n React.Children.count(children) > 0\n ? \n \n \n {label}\n \n {open && (\n \n {children}\n \n )}\n \n : null\n );\n}\n\nCollapsibleSelectOptionGroup.propTypes = {\n groupName: PropTypes.string.isRequired,\n label: PropTypes.node.isRequired,\n open: PropTypes.bool,\n children: PropTypes.node.isRequired,\n onLabelClick: PropTypes.func,\n};\n\nCollapsibleSelectOptionGroup.defaultProps = {\n open: false,\n onLabelClick: (groupName) => {},\n};\n","import React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nimport findIndex from 'lodash/findIndex';\nimport toLower from 'lodash/toLower';\nimport includes from 'lodash/includes';\n\nimport SelectOptionWrapper from './internal/SelectOptionWrapper';\n\nimport { Body5 } from '../typography';\nimport { childrenAreOneOf } from 'Common/util/propTypeHelpers';\nimport SelectSeparator from './SelectSeparator';\nimport SelectOptionGroup from './SelectOptionGroup';\nimport CollapsibleSelectOptionGroup from './CollapsibleSelectOptionGroup';\n\nfunction findChildIndexByValue(children, value) {\n const childArray = React.Children.toArray(children);\n\n return findIndex(childArray, (child) => {\n return child.props.value === value;\n });\n}\n\nexport function doesOptionMatchSearchFilter(optionChild, searchFilter) {\n return (\n searchFilter === '' ||\n (includes(toLower(optionChild.props.searchValue || optionChild.props.value), searchFilter) && !optionChild.props.disabled)\n );\n}\n/**\n * Determine if value is one of the selected values.\n * @param {String} item value to check\n * @param {String/String[]} selected selected values\n * @param {Boolean} isMultiSelect has multiple selected values\n */\nfunction isItemSelected(item, selected, isMultiSelect) {\n return isMultiSelect\n ? !!selected.find((x) => (x === item))\n : item === selected;\n}\n\n/** \n Based on passed in children (actual selection options/their group containers/separators)\n 1. filter out children based on search filter\n 2. separate selected from non-selected based on separateSelected\n 3. maintain which groups have selected children in selectedGroupNames\n * @param {ReactNode[]} children Children of a react node to organize\n * @param {String} searchFilter String used to filter out children\n * @param {Boolean} separateSelected decides if selected children should stay within hierarchy\n * @param {String/String[]} values used to determine which children are selected\n * @param {ReactNode[]} selected hold onto selected children\n * @param {String[]} selectedGroupNames hold onto selected group names\n*/\nfunction organizeVisibleChildren({children, searchFilter, separateSelected, values, selected, selectedGroupNames}) {\n let filteredChildren = React.Children.toArray(children)\n .map((child, i) => {\n if (child.type === SelectOptionGroup || child.type === CollapsibleSelectOptionGroup) {\n const prevSelectedLength = selected.length;\n const groupChildren = organizeVisibleChildren({children: child.props.children, searchFilter, separateSelected, values, selected, selectedGroupNames});\n\n if (groupChildren.length) {\n if (prevSelectedLength < selected.length) {\n selectedGroupNames.push(child.props.groupName);\n }\n return React.cloneElement(child, {\n children: groupChildren,\n });\n }\n else {\n return null;\n }\n }\n else if (child.type === SelectSeparator) {\n return child;\n }\n else {\n if (doesOptionMatchSearchFilter(child, searchFilter)) {\n const isSelected = isItemSelected(child.props.value, values, separateSelected);\n let hideChild = isSelected && separateSelected;\n if (isSelected) {\n selected.push(child);\n }\n\n return hideChild ? null : child;\n }\n else {\n return null;\n }\n }\n })\n .filter((child) => {\n return Boolean(child);\n })\n .filter((child, i, newChildren) => {\n // Remove all separators after another separator\n if (child?.type === SelectSeparator) {\n const hideSeparator = (\n newChildren[i - 1]?.type === SelectSeparator\n );\n\n return !hideSeparator;\n }\n else {\n return true;\n }\n });\n\n // remove separator if it's first in the list\n if (filteredChildren[0]?.type === SelectSeparator) {\n filteredChildren.shift();\n }\n\n // remove separator if it's last in the list\n if (filteredChildren[filteredChildren.length - 1]?.type === SelectSeparator) {\n filteredChildren.pop();\n }\n\n return filteredChildren;\n}\n\nfunction flattenOptions(children, curr = []) {\n children.forEach((child) => {\n if (child.type === SelectOptionGroup || child.type === CollapsibleSelectOptionGroup) {\n // Add group child options to array\n flattenOptions(React.Children.toArray(child.props.children), curr);\n return;\n }\n else if (child.type === SelectSeparator) {\n // Skip\n return;\n }\n\n // Add option to array\n curr.push(child);\n });\n\n return curr;\n}\n\nconst Root = styled.div`\n width: 100%;\n min-height: 10px;\n\n display: flex;\n flex-direction: column;\n outline: none;\n`;\n\nconst OptionsContainer = styled.div`\n overflow-x: auto;\n overflow-y: auto;\n\n padding-left: 10px;\n padding-right: 10px;\n padding-top: ${({$verticalPadding}) => $verticalPadding }px;\n padding-bottom: ${({$verticalPadding}) => $verticalPadding }px;\n\n /* This trick forces the element to be on its own layer,\n which prevents the browser from repainting the element\n on scroll, avoiding performance hitches.\n */\n transform: translateZ(0);\n`;\n\nconst StyledNoSelection = styled(Body5).attrs({ as: 'div' })`\n color: ${({ theme }) => theme.colors.palette.grey.ash };\n font-style: italic;\n padding: 10px;\n text-align: left;\n`;\n\nconst StyledInstructionContainer = styled(Body5).attrs({ as: 'div' })`\n display: inline-block;\n color: ${({ theme }) => theme.colors.darkText.mediumEmphasis };\n padding: 0 14px;\n max-width: 225px;\n`;\n\nexport default class SelectList extends React.PureComponent {\n static propTypes = {\n children: childrenAreOneOf({\n elementTypes: [ SelectSeparator, SelectOptionGroup, CollapsibleSelectOptionGroup ],\n propShapes: [\n ['value']\n ],\n }),\n searchValue: PropTypes.string,\n noSelectionText: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n onKeyDown: PropTypes.func,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n instruction: PropTypes.node,\n disabled: PropTypes.bool,\n verticalPadding: PropTypes.number,\n };\n\n static defaultProps = {\n value: '',\n searchValue: '',\n disabled: false,\n verticalPadding: 10,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n focusedValue: null,\n containerHeight: null,\n containerWidth: null,\n openGroups: {},\n // Derived in `getDerivedStateFromProps`\n defaultGroupOpen: false,\n searchFilterClean: '',\n visibleChildren: [],\n selectableChildren: [],\n isMultiSelect: false,\n userHasSearched: false,\n };\n\n this._containerRef = React.createRef();\n this._focusedRef = React.createRef();\n }\n\n _handleCollapsibleGroupClick = (groupName) => {\n this.setState(({ openGroups }) => {\n return {\n openGroups: {\n ...openGroups,\n [groupName]: !openGroups[groupName],\n },\n };\n });\n };\n\n _handleSelectOptionClick = (event) => {\n if (this.state.isMultiSelect) {\n\n const newItem = event.target.value;\n\n // copy value and filter out newItem\n let newValue = this.props.value.filter((x) => (x !== newItem));\n\n // newItem wasn't found so must be new selection\n if (newValue.length === this.props.value.length) {\n newValue.push(newItem);\n }\n\n this.props.onChange({\n target: {\n value: newValue\n }\n });\n }\n else {\n this.props.onChange(event);\n }\n };\n\n _handleKeyDown = (event) => {\n const { key } = event;\n\n if (key === 'ArrowUp' || key === 'ArrowDown') {\n event.preventDefault();\n\n this.setState((state) => {\n const { focusedValue, selectableChildren, isMultiSelect } = state;\n const { value } = this.props;\n const firstValue = ( isMultiSelect ? value[0] : value ) || null;\n\n let childIndex;\n\n if (focusedValue === null) {\n childIndex = findChildIndexByValue(selectableChildren, firstValue);\n }\n else {\n childIndex = findChildIndexByValue(selectableChildren, focusedValue);\n }\n\n if (key === 'ArrowUp' && childIndex > 0 && selectableChildren[childIndex - 1]) {\n this._shouldScrollOnUpdate = true;\n\n return { focusedValue: selectableChildren[childIndex - 1].props.value };\n }\n else if (key === 'ArrowDown' && childIndex < selectableChildren.length - 1 && selectableChildren[childIndex + 1]) {\n this._shouldScrollOnUpdate = true;\n\n return { focusedValue: selectableChildren[childIndex + 1].props.value };\n }\n });\n }\n else if (key === 'Enter' && this.state.focusedValue) {\n event.preventDefault();\n\n // selection moves child to top of list don't move focus there\n // try to first move it down then try up unless this is the last selected value\n this.setState((state) => {\n const { focusedValue, selectableChildren, isMultiSelect } = state;\n const childIndex = findChildIndexByValue(selectableChildren, focusedValue);\n\n if (isMultiSelect && childIndex > -1) {\n let nextIndex = null;\n let newFocusedValue = null;\n\n if ((childIndex + 1) < selectableChildren.length) {\n nextIndex = childIndex + 1;\n }\n else if ((childIndex - 1) > -1) {\n nextIndex = childIndex - 1;\n }\n\n if (nextIndex !== null) {\n this._shouldScrollOnUpdate = true;\n newFocusedValue = selectableChildren[nextIndex].props.value;\n }\n\n return { focusedValue: newFocusedValue };\n }\n });\n\n this._handleSelectOptionClick({ target: { value: this.state.focusedValue } });\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(event);\n }\n };\n\n static getDerivedStateFromProps(nextProps, prevState) {\n let newState = {\n openGroups: prevState.openGroups,\n searchFilterClean: prevState.searchFilterClean,\n visibleChildren: [],\n selectableChildren: [],\n defaultGroupOpen: prevState.defaultGroupOpen,\n isMultiSelect: Array.isArray(nextProps.value),\n userHasSearched: prevState.userHasSearched\n };\n\n // `searchFilterClean` is the cleaned-up version of `searchValue`\n newState.searchFilterClean = toLower(nextProps.searchValue).trim();\n\n let selected = [];\n let selectedGroupNames = [];\n newState.visibleChildren = organizeVisibleChildren({\n children: nextProps.children,\n searchFilter: newState.searchFilterClean,\n separateSelected: newState.isMultiSelect,\n values: nextProps.value,\n selected,\n selectedGroupNames\n });\n\n if (newState.isMultiSelect && selected.length > 0) {\n newState.visibleChildren = newState.visibleChildren.length > 0\n ? selected.concat([()]).concat(newState.visibleChildren)\n : selected;\n }\n\n newState.selectableChildren = flattenOptions(newState.visibleChildren);\n\n const didSearchFilterChange = prevState.searchFilterClean !== newState.searchFilterClean;\n\n if (didSearchFilterChange) {\n newState.userHasSearched = true;\n\n if (newState.searchFilterClean.length === 0) {\n // The search filter has just been cleared. Collapse all groups.\n newState.defaultGroupOpen = false;\n newState.openGroups = {};\n }\n else {\n // Open all groups\n newState.defaultGroupOpen = true;\n newState.openGroups = {};\n }\n }\n\n if (selectedGroupNames.length && !newState.isMultiSelect && typeof newState.openGroups[selectedGroupNames[0]] !== 'boolean' && !newState.userHasSearched ) {\n newState.openGroups[selectedGroupNames[0]] = true;\n }\n\n return newState;\n }\n\n _renderOptions(children) {\n if (children.length === 0) {\n const { noSelectionText } = this.props;\n\n return (\n {noSelectionText}\n );\n }\n\n return React.Children.map(children, (child) => {\n if (child.type === SelectOptionGroup || child.type === CollapsibleSelectOptionGroup) {\n let childProps = {\n children: this._renderOptions(child.props.children)\n };\n\n if (child.type === CollapsibleSelectOptionGroup) {\n childProps.groupName = child.props.groupName;\n childProps.open = this._isCollapsibleGroupOpen(child.props.groupName);\n childProps.onLabelClick = this._handleCollapsibleGroupClick;\n }\n\n return React.cloneElement(child, childProps);\n }\n else if (child.type === SelectSeparator) {\n return child;\n }\n else {\n const childValue = child.props.value;\n const isFocused = this.state.focusedValue === childValue;\n const isDisabled = child.props.disabled || this.props.disabled;\n const value = this.props.value;\n const isSelected = isItemSelected(childValue, value, this.state.isMultiSelect);\n\n let ref = undefined;\n\n if (isFocused || (isSelected && !this.state.isMultiSelect)) {\n ref = this._focusedRef;\n }\n\n return (\n \n \n {child}\n \n \n );\n }\n });\n }\n\n _isCollapsibleGroupOpen(groupName) {\n const { openGroups, defaultGroupOpen } = this.state;\n\n // If a value exists for the group in `openGroups`, use that. Otherwise,\n // use the default.\n //\n if (typeof openGroups[groupName] === 'boolean') {\n return openGroups[groupName];\n }\n else {\n return defaultGroupOpen;\n }\n }\n\n _isScrolledIntoView(el) {\n const containerEl = this._containerRef.current;\n\n if (!containerEl || !el) {\n return false;\n }\n\n const containerTop = containerEl.scrollTop;\n const containerBottom = containerTop + containerEl.clientHeight;\n\n const elTop = el.offsetTop;\n const elBottom = elTop + el.clientHeight;\n\n return ((elBottom <= containerBottom) && (elTop >= containerTop));\n }\n\n _scrollIntoView(el, opts = {}) {\n const containerEl = this._containerRef.current;\n\n if (!containerEl || !el) {\n return ;\n }\n\n const currentScrollTop = containerEl.scrollTop;\n const scrollElHeight = containerEl.clientHeight;\n const currentScrollBottom = currentScrollTop + scrollElHeight;\n\n const elHeight = el.clientHeight;\n const elOffsetTop = el.offsetTop;\n const elOffsetBottom = elOffsetTop + elHeight;\n\n let newScrollTop = currentScrollTop;\n\n if (opts.center) {\n newScrollTop = elOffsetTop - (scrollElHeight / 2);\n }\n else {\n if (elOffsetBottom > currentScrollBottom) {\n newScrollTop = currentScrollTop + elOffsetBottom - currentScrollBottom + elHeight;\n }\n else if (elOffsetTop < currentScrollTop) {\n newScrollTop = elOffsetTop - elHeight;\n }\n }\n\n containerEl.scrollTop = newScrollTop;\n }\n\n componentDidUpdate() {\n if (this._shouldScrollOnUpdate) {\n this._shouldScrollOnUpdate = false;\n\n const focusedEl = this._focusedRef.current;\n\n if (!this._isScrolledIntoView(focusedEl)) {\n this._scrollIntoView(focusedEl);\n }\n }\n }\n\n componentDidMount() {\n const el = this._focusedRef.current;\n\n if (!this.state.isMultiSelect) {\n this._scrollIntoView(el, {\n center: true,\n });\n }\n }\n\n render() {\n const {\n instruction,\n verticalPadding,\n } = this.props;\n\n const {\n visibleChildren,\n containerHeight,\n containerWidth,\n } = this.state;\n\n const instructionArea = instruction && (\n \n {instruction}\n \n );\n\n const containerStyle = {\n height: containerHeight,\n width: containerWidth,\n };\n\n return (\n \n {instructionArea}\n \n {this._renderOptions(visibleChildren)}\n \n \n );\n }\n}\n","import React, { useCallback, useState } from 'react';\nimport styled, { css } from 'styled-components';\nimport PropTypes from 'prop-types';\n\nimport { Primary5 } from 'Common/components/typography';\n\nconst Root = styled(Primary5).attrs({ as: 'div' })`\n position: relative;\n display: block;\n box-sizing: border-box;\n border: none;\n outline: none;\n margin: 0;\n height: 22px;\n width: 100%;\n\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n\n background-color: ${({theme}) => theme.colors.palette.grey.cloud};\n border-bottom: 1px solid ${({theme}) => theme.colors.palette.grey.emperor};\n\n transition: background-color 0.3s, border-color 0.3s;\n\n ${({isDisabled}) => !isDisabled && css`\n /* Default, Non-error State */\n ${({hasError}) => !hasError && css`\n ${({hasFocus}) => hasFocus && css`\n background-color: ${({theme}) => theme.colors.palette.blue.ice};\n border-bottom-color: ${({theme}) => theme.colors.palette.blue.awesome};\n `}\n `}\n\n /* Error State */\n ${({hasError}) => hasError && css`\n background-color: ${({theme}) => theme.colors.palette.error.helios};\n border-bottom-color: ${({theme}) => theme.colors.palette.error.red};\n `}\n `}\n\n ${({isDisabled}) => isDisabled && css`\n border-bottom-color: ${({theme}) => theme.colors.palette.grey.ash};\n opacity: 0.34;\n pointer-events: none;\n `}\n`;\n\nconst LeftIconContainer = styled.div`\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 25px;\n font-size: 15px;\n color: ${({ theme }) => theme.colors.darkText.mediumEmphasis}; \n pointer-events: none;\n`;\n\nconst TextInput = styled(Primary5).attrs({ as: 'input' })`\n position: absolute;\n display: block;\n box-sizing: border-box;\n border: none;\n outline: none;\n margin: 0;\n /* Since there is a bottom border, in order of the text to line up with\n the baseline we need to nudge down a pixel.\n */\n top: 1px;\n bottom: 0;\n left: 0;\n right: 0;\n width: 100%;\n height: 100%;\n\n padding-top: 0;\n padding-bottom: 0;\n padding-left: ${({hasLeftIcon}) => hasLeftIcon ? 25 : 5}px;\n padding-right: 5px;\n\n transition: color 0.3s;\n\n text-align: inherit;\n\n color: ${({theme}) => theme.colors.darkText.highEmphasis};\n background-color: transparent;\n\n /*\n This is needed to override bootstrap's _normalize.scss, which sets\n all search inputs to have 'box-sizing: content-box;'. We can probably\n remove this when we finally remove bootstrap.\n */\n &[type=\"search\"] {\n box-sizing: border-box;\n }\n\n &::placeholder {\n color: ${({theme}) => theme.colors.darkText.mediumEmphasis};\n opacity: 1;\n transition: color 0.3s, opacity 0.3s;\n }\n\n &:focus {\n /* Only hide placeholder text on focused number inputs */\n &[type=\"number\"]::placeholder {\n opacity: 0;\n }\n }\n\n &:not(:disabled) {\n /* Error State */\n ${({hasError}) => hasError && css`\n color: ${({theme}) => theme.colors.palette.error.red};\n `}\n }\n\n &:disabled {\n color: ${({theme}) => theme.colors.darkText.disabled};\n }\n`;\n\n/**\n * A simple text input field with the standard styles, including disabled\n * and error states. Most props are passed along to the internal input node.\n */\nexport default function TextField({\n inputRef,\n className,\n type,\n autoFocus,\n disabled,\n placeholder,\n value,\n onChange,\n onFocus,\n onBlur,\n error,\n leftIcon,\n ...inputProps\n}) {\n const hasError = Boolean(error);\n const hasLeftIcon = Boolean(leftIcon);\n\n const [ hasFocus, setHasFocus ] = useState(false);\n\n const handleFocus = useCallback((event) => {\n setHasFocus(true);\n onFocus(event);\n }, [ onFocus ]);\n\n const handleBlur = useCallback((event) => {\n setHasFocus(false);\n onBlur(event);\n }, [ onBlur ]);\n\n return (\n \n {hasLeftIcon && (\n \n {leftIcon}\n \n )}\n \n \n );\n}\n\nTextField.propTypes = {\n /* inputRef: A ref that will be passed through directly to the . */\n inputRef: PropTypes.any,\n className: PropTypes.string,\n type: PropTypes.string,\n autoFocus: PropTypes.bool,\n disabled: PropTypes.bool,\n placeholder: PropTypes.string,\n value: PropTypes.string,\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n /* error: A truthy value indicates the field should display in an error state. */\n error: PropTypes.any,\n /* leftIcon: Icon to be placed on the left side of the text input. */\n leftIcon: PropTypes.node,\n};\n\nTextField.defaultProps = {\n type: 'text',\n disabled: false,\n onFocus: () => {},\n onBlur: () => {},\n error: false,\n};\n","import TextField from './TextField';\n\nexport default TextField;\n","import React from 'react';\nimport styled from 'styled-components';\nimport Icon from 'Common/components/Icon';\nimport TextField from '../TextField';\n\nconst StyledTextField = styled(TextField)`\n min-width: 185px;\n`;\n\nexport default function SearchField(props) {\n return (\n \n )}\n />\n );\n}\n\n/**\n * @see TextField\n */\nSearchField.propTypes = {};\n\n/**\n * @see TextField\n */\nSearchField.defaultProps = {};\n","import SearchField from './SearchField';\n\nexport default SearchField;\n","import React, { useState, useCallback } from 'react';\nimport SearchField from 'Common/components/SearchField';\nimport includes from 'lodash/includes';\nimport toLower from 'lodash/toLower';\n\nexport function doesValueMatchSearch(value, searchValue) {\n return (\n searchValue === '' ||\n (includes(toLower(value), toLower(searchValue)))\n );\n}\n\n/**\n * A hook to provide a search box for any component, returns both the value of the search\n * box and a render function for the search box so it can be rendered anywhere in the\n * component.\n *\n * @param {Boolean} [autoFocus=true] If true the search box will be focused when it is first rendered.\n * @param {Boolean} [disabled=false] If true it will disable the search box.\n * @param {String} [placeholder=''] The placeholder text for the search input.\n *\n * @returns {Object} With the following fields:\n * - searchValue {String} The value of the search box.\n * - renderSearchBox {Function} React render function to display the search box.\n */\nexport default function useSearchBox({\n autoFocus = true,\n disabled = false,\n placeholder = '',\n}) {\n const [searchValue, setSearchValue] = useState('');\n\n const onSearchChange = useCallback((event) => {\n setSearchValue(event.target.value);\n }, []);\n\n const renderSearchBox = useCallback(() => {\n return (\n \n );\n }, [autoFocus, disabled, placeholder, onSearchChange, searchValue]);\n\n return {\n searchValue,\n renderSearchBox,\n };\n}\n","import React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nimport SelectList from './SelectList';\nimport useSearchBox from 'Common/hooks/useSearchBox';\n\nconst StyledSearchFieldContainer = styled.div`\n margin: 10px 10px 0 10px;\n`;\n\nexport default function SearchableSelectList({\n disabled,\n searchBoxPlaceholder,\n ...selectListProps\n}) {\n const {\n searchValue,\n renderSearchBox,\n } = useSearchBox({\n autoFocus: true,\n disabled,\n placeholder: searchBoxPlaceholder,\n });\n\n return (\n \n \n {renderSearchBox()}\n \n \n \n );\n}\n\nSearchableSelectList.propTypes = {\n disabled: PropTypes.bool,\n searchBoxPlaceholder: PropTypes.string,\n};\n\nSearchableSelectList.defaultProps = {\n disabled: false,\n searchBoxPlaceholder: '',\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport Icon from 'Common/components/Icon';\nimport { Body6 } from 'Common/components/typography';\n\nconst StyledEntryLayout = styled.div.attrs(({ indentLevel }) => ({\n style: {\n paddingLeft: `${indentLevel * 20}px`,\n },\n}))`\n display: flex;\n flex-direction: row;\n align-items: center;\n min-width: 250px;\n`;\n\nconst StyledIcon = styled(Icon)`\n height: 100%;\n color: ${({ theme }) => theme.colors.palette.grey.manatee};\n font-size: 16px;\n`;\n\nconst StyledEntry = styled(Body6)`\n height: 100%;\n overflow: hidden;\n width: 100%;\n text-align: left;\n text-overflow: ellipsis;\n padding-left: 6px;\n white-space: nowrap;\n`;\n\nfunction HierarchyListOption(props) {\n const { value, searchValue, asset, showSelectedIcon } = props;\n\n const displayName = asset.displayName;\n\n return (\n \n \n {displayName}\n {showSelectedIcon && (\n \n )}\n \n );\n}\n\nHierarchyListOption.propTypes = {\n value: PropTypes.string.isRequired,\n searchValue: PropTypes.string,\n asset: PropTypes.shape({\n level: PropTypes.number.isRequired,\n name: PropTypes.string.isRequired,\n displayName: PropTypes.string.isRequired,\n iconClass: PropTypes.string.isRequired,\n }).isRequired,\n showSelectedIcon: PropTypes.bool,\n};\n\nHierarchyListOption.defaultProps = {\n showSelectedIcon: true,\n};\n\nexport default React.memo(HierarchyListOption);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport SearchableSelectList from '../SelectList/SearchableSelectList';\nimport HierarchyListOption from './internal/HierarchyListOption';\n\nfunction EnterpriseHierarchySelectList(props) {\n return (\n \n {props.hierarchyList && props.hierarchyList.map((asset) => {\n return (\n \n );\n })}\n \n );\n}\n\nEnterpriseHierarchySelectList.propTypes = {\n disabled: PropTypes.bool,\n hierarchyList: PropTypes.arrayOf(\n PropTypes.shape({\n displayName: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n iconClass: PropTypes.string.isRequired,\n level: PropTypes.number.isRequired,\n })\n ),\n onChange: PropTypes.func.isRequired,\n value: PropTypes.string,\n noSelectionText: PropTypes.string.isRequired,\n searchBoxPlaceholder: PropTypes.string.isRequired,\n onlyAssets: PropTypes.bool,\n showIconForSelected: PropTypes.bool,\n};\n\nEnterpriseHierarchySelectList.defaultProps = {\n disabled: false,\n onlyAssets: false,\n showIconForSelected: false,\n};\n\nexport default React.memo(EnterpriseHierarchySelectList);\n","import EnterpriseHierarchySelectList from './EnterpriseHierarchySelectList';\n\nexport default EnterpriseHierarchySelectList;\n","import React, { useState, useCallback, useRef, useMemo } from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Dropdown from 'Common/components/Dropdown/Dropdown';\nimport ButtonBase from 'Common/components/Button/ButtonBase';\nimport { Body1 } from 'Components/typography/typography';\nimport { NodeType, getNodeTypeDisplayText, getNodeTypeIconName } from '../hierarchy-editor/HierarchyNodeType';\nimport uniqueId from 'Common/util/uniqueId';\nimport useFormElementContext from 'Components/form-element/useFormElementContext';\nimport EnterpriseHierarchySelectList from 'Common/components/EnterpriseHierarchySelectList';\nimport { nullable } from 'Components/util/propTypesUtils';\n\nfunction createListItem(hierarchy, nodeId) {\n const node = hierarchy.nodes[nodeId];\n\n const iconClass = `vorne-icon vorne-icon-${getNodeTypeIconName(node.node_type)}`;\n\n let displayName = node.node_name;\n\n if (node.node_type === NodeType.DEVICE) {\n displayName = node.device.asset_name;\n }\n\n // Use a default value for the display name, if needed\n if (!displayName) {\n displayName = getNodeTypeDisplayText(node.node_type);\n }\n\n return {\n displayName: displayName,\n iconClass: iconClass,\n level: node.parents.length,\n name: node.id,\n };\n}\n\nfunction createList(hierarchy, optionsFilter) {\n const list = [];\n\n const recurse = (nodeId) => {\n if (optionsFilter(nodeId)) {\n list.push(createListItem(hierarchy, nodeId));\n\n hierarchy.nodes[nodeId].children.forEach((childId) => {\n recurse(childId);\n });\n }\n };\n\n recurse(hierarchy.rootId);\n\n return list;\n}\n\nconst OpenButton = styled(ButtonBase)`\n position: relative;\n display: block;\n width: 100%;\n box-sizing: border-box;\n border: 1px solid rgba(0, 0, 0, 0.25);\n outline: none;\n cursor: pointer;\n line-height: 2em;\n\n padding-left: 6px;\n /* Make room for arrow */\n padding-right: 32px;\n\n color: ${props => props.theme.colors.darkText.highEmphasis};\n\n /* Render an arrow after the content */\n &::after {\n content: '';\n width: 0;\n height: 0;\n position: absolute;\n right: calc(16px - 4px);\n top: calc(50% - 4px);\n\n border-left: 6px solid transparent;\n border-right: 6px solid transparent;\n border-top: 8px solid rgba(0,0,0,0.4);\n border-bottom: none;\n }\n\n /* Flip arrow when open */\n &.open::after {\n border-top: none;\n border-bottom: 8px solid rgba(0,0,0,0.4);\n }\n\n &:disabled {\n color: ${props => props.theme.colors.darkText.disabled};\n background-color: rgba(0,0,0,0.05);\n }\n\n &.focused, &.open {\n border: 1px solid rgba(0, 0, 0, 1.0);\n }\n\n &.error {\n border: 1px solid ${props => props.theme.colors.palette.error.red};\n }\n`;\n\nconst TextContent = styled(Body1).attrs({ as: 'div' })`\n text-align: left;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\nconst NoVisibilityText = styled.span`\n font-style: italic;\n color: ${props => props.theme.colors.darkText.mediumEmphasis};\n`;\n\nexport default function EnterpriseHierarchySelectInput(props) {\n const {\n name,\n value,\n enterpriseHierarchy,\n optionsFilter,\n onChange,\n selectionDisplay,\n } = props;\n\n const preventNextBlur = useRef(false);\n\n const {\n focused,\n disabled,\n error,\n onFocus,\n onBlur,\n } = useFormElementContext();\n\n const openButtonRef = useRef(null);\n\n const [ id ] = useState(() => {\n return uniqueId();\n });\n\n const [ isOpen, setIsOpen ] = useState(false);\n\n const handleMaskClick = useCallback(() => {\n setIsOpen(false);\n }, []);\n\n const handleOpenButtonClick = useCallback(() => {\n setIsOpen(true);\n // Prevents the next blur so it can be re-focused after the dropdown\n // is closed\n preventNextBlur.current = true;\n }, []);\n\n const handleChange = useCallback((event) => {\n // Close the dropdown\n setIsOpen(false);\n\n // Emit change event\n onChange({\n target: {\n name: name,\n value: event.target.value,\n },\n });\n\n // Re-focus the open button\n openButtonRef.current.focus();\n }, [ name, onChange ]);\n\n const handleBlur = useCallback((event) => {\n if (preventNextBlur.current) {\n event.stopPropagation();\n preventNextBlur.current = false;\n }\n else {\n onBlur(event);\n }\n }, [ onBlur ]);\n\n const hierarchyList = useMemo(() => {\n // The hierarchy can be null if the user has no hierarchy visibility\n if (enterpriseHierarchy === null) {\n return [];\n }\n else {\n return createList(enterpriseHierarchy, optionsFilter);\n }\n }, [ enterpriseHierarchy, optionsFilter ]);\n\n const visibilityName = useMemo(() => {\n let rv = '';\n\n if (value && enterpriseHierarchy) {\n const visibilityNode = enterpriseHierarchy.nodes[value];\n\n if (visibilityNode.node_type === NodeType.DEVICE) {\n rv = visibilityNode.device.asset_name;\n }\n else {\n rv = visibilityNode.node_name;\n }\n\n // Use a default value for the display name, if needed\n if (!rv) {\n rv = getNodeTypeDisplayText(visibilityNode.node_type);\n }\n }\n else {\n if (selectionDisplay) {\n rv = selectionDisplay;\n }\n else {\n rv = (\n None\n );\n }\n }\n\n return rv;\n }, [value, enterpriseHierarchy, selectionDisplay]);\n\n return (\n (\n \n )}\n >\n \n \n {visibilityName}\n \n \n \n );\n}\n\nEnterpriseHierarchySelectInput.propTypes = {\n name: PropTypes.string,\n value: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n enterpriseHierarchy: nullable(\n PropTypes.shape({\n nodes: PropTypes.object.isRequired,\n })\n ).isRequired,\n optionsFilter: PropTypes.func,\n selectionDisplay: PropTypes.element,\n};\n\nEnterpriseHierarchySelectInput.defaultProps = {\n disabled: false,\n error: false,\n optionsFilter: (nodeId) => true,\n};\n","import { useContext } from 'react';\nimport FormElementContext from './FormElementContext';\n\nexport default function useFormElementContext(props) {\n return useContext(FormElementContext);\n}\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport FormElement from 'Components/form-element/FormElement';\nimport FormElementHelperText from 'Components/form-element/FormElementHelperText';\nimport FormElementLabel from 'Components/form-element/FormElementLabel';\nimport uniqueId from 'Common/util/uniqueId';\nimport EnterpriseHierarchySelectInput from './EnterpriseHierarchySelectInput';\n\nexport default function EnterpriseHierarchySelect(props) {\n const {\n name,\n value,\n onChange,\n disabled,\n error,\n label,\n helperText,\n enterpriseHierarchy,\n optionsFilter,\n selectionDisplay,\n } = props;\n\n const [ id ] = useState(() => {\n return uniqueId();\n });\n\n return (\n \n {label}\n \n {helperText !== null && (\n {helperText}\n )}\n \n );\n}\n\nEnterpriseHierarchySelect.propTypes = {\n name: PropTypes.string,\n value: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n disabled: PropTypes.bool,\n label: PropTypes.string,\n helperText: PropTypes.string,\n error: PropTypes.bool,\n enterpriseHierarchy: PropTypes.shape({\n nodes: PropTypes.object.isRequired,\n }),\n optionsFilter: PropTypes.func,\n selectionDisplay: PropTypes.element,\n};\n\nEnterpriseHierarchySelect.defaultProps = {\n disabled: false,\n error: false,\n helperText: null,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport moment from 'moment';\nimport upperFirst from 'lodash/upperFirst';\n\nimport { Caption, Subtitle1 } from 'Components/typography/typography';\nimport ListItem from 'Components/list/ListItem';\nimport ListItemText from 'Components/list/ListItemText';\nimport TextInput from 'Components/text-input/TextInput';\nimport { Spacing } from 'Components/common/common';\nimport { createPath } from 'Common/util/FormUtils';\nimport { isDeviceAssetNameChangeSupported, isDeviceVisibilityChangeSupported } from 'System/versions';\nimport { getNodeTypePlaceholderText, NodeType, getHierarchyNodeDisplayName } from 'Components/hierarchy-editor/HierarchyNodeType';\nimport EnterpriseHierarchySelect from 'Components/enterprise-hierarchy-select/EnterpriseHierarchySelect';\n\nconst StyledTextInput = styled(TextInput)`\n padding-right: ${Spacing.inlineButtonMargin};\n display: flex;\n flex-direction: column;\n justify-content: center;\n flex: 10000 0 auto;\n`;\n\nconst ReadOnlyName = styled(Subtitle1)`\n display: block;\n color: ${props => props.theme.colors.darkText.highEmphasis};\n`;\n\nconst TextLine = styled(Caption)`\n display: block;\n color: ${props => props.theme.colors.darkText.mediumEmphasis};\n padding-top: 4px;\n`;\n\nconst Indicator = styled.span`\n border-radius: 50%;\n height: 14px;\n width: 14px;\n display: inline-block;\n vertical-align: middle;\n position: relative;\n bottom: 2px;\n`;\n\nconst RedIndicator = styled(Indicator)`\n background-color: #e52a20;\n`;\n\nconst AmberIndicator = styled(Indicator)`\n background-color: #e68500;\n`;\n\nconst GreenIndicator = styled(Indicator)`\n background-color: #4f9d47;\n`;\n\nexport default class DeviceItem extends React.Component {\n static defaultProps = {\n disabled: false,\n };\n\n static propTypes = {\n name: PropTypes.string,\n value: PropTypes.shape({\n id: PropTypes.number.isRequired,\n asset_name: PropTypes.string,\n created: PropTypes.string.isRequired,\n alert_data: PropTypes.shape({\n updated: PropTypes.string.isRequired,\n xl_firmware_version: PropTypes.string.isRequired,\n }),\n ip_address: PropTypes.string,\n hierarchy_visibility: PropTypes.string.isRequired,\n }).isRequired,\n nodeId: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool.isRequired,\n validation: PropTypes.object,\n enterpriseHierarchy: PropTypes.object.isRequired,\n };\n\n constructor() {\n super();\n }\n\n _formatLastDataReceivedText(alertDataTimestamp) {\n if (!alertDataTimestamp) {\n return 'Never';\n }\n\n return upperFirst(moment(alertDataTimestamp).fromNow());\n }\n\n _renderLastDataReceived(timeStamp) {\n const dataTime = timeStamp ? moment(timeStamp).toDate() : null;\n const now = new Date();\n const renderIndicator = function() {\n if (dataTime) {\n const elapsed = now - dataTime.getTime();\n if (elapsed <= 5 * 60 * 1000) {\n return (\n \n );\n }\n else if (elapsed <= 60 * 60 * 1000) {\n return (\n \n );\n }\n }\n\n return ();\n };\n\n return (\n \n {renderIndicator()} Last data received: {this._formatLastDataReceivedText(dataTime)}\n \n );\n }\n\n _enterpriseVisibilityOptionsFilter = (optionNodeId) => {\n const { nodeId, enterpriseHierarchy } = this.props;\n\n const node = enterpriseHierarchy.nodes[nodeId];\n return nodeId === optionNodeId || node.parents.indexOf(optionNodeId) !== -1;\n };\n\n _renderEnterpriseVisibility() {\n const {\n name,\n value,\n enterpriseHierarchy,\n disabled,\n onChange,\n nodeId,\n validation,\n } = this.props;\n\n const firmwareVersion = value?.alert_data?.xl_firmware_version;\n const isVisibilityChangeSupported = firmwareVersion ? isDeviceVisibilityChangeSupported(firmwareVersion) : true;\n\n return (\n \n );\n }\n\n render() {\n const {\n name,\n value,\n onChange,\n disabled,\n validation,\n enterpriseHierarchy,\n readOnly,\n ...otherProps\n } = this.props;\n\n const firmwareVersion = value?.alert_data?.xl_firmware_version;\n\n const isNameChangeSupported = firmwareVersion ? isDeviceAssetNameChangeSupported(firmwareVersion) : true;\n\n return (\n \n \n {readOnly && (\n \n {value.asset_name}\n \n )}\n {!readOnly && (\n \n )}\n {value.ip_address && (\n \n IP Address: {value.ip_address}\n \n )}\n \n Linked: {(new Date(value.created)).toDateString()}\n \n \n {this._renderLastDataReceived(value.alert_data?.updated)}\n \n {readOnly && (\n \n Hierarchy Visibility: {getHierarchyNodeDisplayName(\n enterpriseHierarchy.nodes[value.hierarchy_visibility]\n )}\n \n )}\n {!readOnly && (\n this._renderEnterpriseVisibility()\n )}\n \n \n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport ButtonLike from './ButtonLike';\n\nconst Root = styled(ButtonLike)`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n background: none;\n border: none;\n outline: none;\n padding: 10px;\n border-radius: 50%;\n\n &[disabled] {\n opacity: 0.2;\n }\n`;\n\nfunction IconButton(props) {\n const {\n children: childrenProp,\n ...otherProps\n } = props;\n\n const icon = React.Children.only(childrenProp);\n\n return (\n \n {icon}\n \n );\n}\n\nIconButton.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node\n ]),\n type: PropTypes.string,\n};\n\nIconButton.defaultProps = {\n type: 'button',\n};\n\nexport default IconButton;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nconst Root = styled.span`\n position: relative;\n display: inline-block;\n width: 1em;\n height: 1em;\n\n & > svg {\n width: 1em;\n height: 1em;\n fill: currentColor;\n }\n`;\n\nfunction SvgIcon(props) {\n const svg = React.Children.only(props.children);\n\n return (\n \n {svg}\n \n );\n}\n\nSvgIcon.propTypes = {\n children: PropTypes.node,\n};\n\nexport default SvgIcon;\n","import React from 'react';\nimport SvgIcon from './SvgIcon';\n\nfunction TrashIcon(props) {\n return (\n \n \n \n \n \n \n );\n}\n\nexport default TrashIcon;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport classNames from 'classnames';\n\nimport DeviceItem from 'Components/pages/devices/DeviceItem';\nimport TextInput from 'Components/text-input/TextInput';\nimport VorneIcon from 'Components/vorne-icon/VorneIcon';\nimport IconButton from 'Components/button/IconButton';\nimport TrashIcon from 'Components/icon/TrashIcon';\nimport { createPath } from 'Common/util/FormUtils';\nimport { NodeType, getNodeTypeIconName, getNodeTypeIconColor, getNodeTypePlaceholderText } from './HierarchyNodeType';\nimport { Spacing } from 'Components/common/common';\nimport { Subtitle1 } from 'Components/typography/typography';\n\nconst Root = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n box-sizing: border-box;\n width: 400px;\n min-height: 52px;\n padding: 5px;\n\n background-color: ${props => props.theme.colors.palette.white};\n border: 1px solid;\n border-color: rgba(0, 0, 0, 0.25);\n min-height: 40px;\n\n &.dragging {\n opacity: 0.5;\n }\n`;\n\nconst StyledIcon = styled(VorneIcon)`\n padding-right: ${Spacing.inlineButtonMargin};\n display: flex;\n flex-direction: column;\n justify-content: center;\n font-size: 20px;\n color: ${props => props.color || 'inherit'}\n`;\n\nconst ReadOnlyName = styled(Subtitle1)`\n display: block;\n color: ${props => props.theme.colors.darkText.highEmphasis};\n`;\n\nconst StyledTextInput = styled(TextInput)`\n padding-right: ${Spacing.inlineButtonMargin};\n display: flex;\n flex-direction: column;\n justify-content: center;\n flex: 10000 0 auto;\n`;\n\nconst StyledDeviceItemContainer = styled.div`\n flex: 1 1 auto;\n padding-right: ${Spacing.inlineButtonMargin};\n min-width: 1px; /* Flexbox needs this so it doesn't overflow */\n`;\n\nconst StyledDeviceItem = styled(DeviceItem)`\n padding: 0;\n`;\n\nconst StyledIconButtonContainer = styled.div`\n padding-right: ${Spacing.inlineButtonMargin};\n display: flex;\n flex-direction: column;\n justify-content: center;\n`;\n\nconst StyledIconButton = styled(IconButton)`\n font-size: 16px;\n`;\n\nconst StyledTrashIcon = styled(TrashIcon)`\n color: ${props => props.theme.colors.darkText.mediumEmphasis};\n`;\n\nexport default class HierarchyNodeEditor extends React.Component {\n static propTypes = {\n innerRef: PropTypes.func,\n name: PropTypes.string,\n value: PropTypes.shape({\n // In the store, the `id` of a node is a number. But when the values\n // are prepared for editing they are converted to strings. So it\n // will expect a string here.\n id: PropTypes.string.isRequired,\n node_type: PropTypes.string.isRequired,\n node_name: PropTypes.string,\n children: PropTypes.arrayOf(PropTypes.string).isRequired,\n isNew: PropTypes.bool,\n device: PropTypes.object,\n }).isRequired,\n enterpriseHierarchy: PropTypes.object.isRequired,\n validation: PropTypes.object,\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n onChange: PropTypes.func.isRequired,\n onDelete: PropTypes.func,\n dragHandleProps: PropTypes.object,\n isDragging: PropTypes.bool,\n };\n\n static defaultProps = {\n name: '',\n disabled: false,\n isDragging: false,\n readOnly: false,\n };\n\n constructor(props) {\n super(props);\n }\n\n _handleDeleteClick = (event) => {\n this.props.onDelete(this.props.value.id, event);\n };\n\n _renderDeviceNode() {\n const {\n name,\n value,\n onChange,\n disabled,\n validation,\n enterpriseHierarchy,\n readOnly,\n } = this.props;\n\n const { device } = value;\n\n return (\n \n {device && (\n \n )}\n \n );\n }\n\n _renderNonDeviceNode() {\n const {\n name,\n value,\n disabled,\n readOnly,\n onChange,\n validation,\n } = this.props;\n\n return (\n \n {readOnly && (\n {value.node_name}\n )}\n {!readOnly && (\n \n )}\n \n );\n }\n\n render() {\n const { innerRef, value, dragHandleProps, readOnly, isDragging } = this.props;\n\n const nodeBody = value.node_type === NodeType.DEVICE\n ? this._renderDeviceNode()\n : this._renderNonDeviceNode();\n\n const draggable = ! readOnly && value.node_type !== NodeType.ENTERPRISE;\n const deleteable = ! readOnly && value.node_type !== NodeType.ENTERPRISE;\n\n return (\n \n {draggable && (\n \n )}\n \n {nodeBody}\n {deleteable && (\n \n \n \n \n \n )}\n \n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport HierarchyEditor from './HierarchyEditor';\nimport AddNodeDropdown from './AddNodeDropdown';\nimport HierarchyNodeEditor from './HierarchyNodeEditor';\nimport { updateAtPath, createPath } from 'Common/util/FormUtils';\nimport { NodeType } from './HierarchyNodeType';\nimport mapValues from 'lodash/mapValues';\nimport { Spacing } from 'Components/common/common';\n\nconst Root = styled.div``;\n\nconst AddNodeDropdownWrapper = styled.div`\n margin-top: ${Spacing.formButtonMargin};\n`;\n\nexport default class EnterpriseHierarchyEditor extends React.Component {\n static propTypes = {\n name: PropTypes.string,\n value: PropTypes.object.isRequired,\n validation: PropTypes.object,\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool.isRequired,\n onChange: PropTypes.func.isRequired,\n };\n\n static defaultProps = {\n name: '',\n validation: {},\n disabled: false,\n };\n\n constructor(props) {\n super(props);\n }\n\n _emitOnChange = (newValue) => {\n this.props.onChange({\n target: {\n name: this.props.name,\n value: newValue,\n },\n });\n };\n\n _handleHierarchyChange = (event) => {\n this._emitOnChange(event.target.value);\n };\n\n _newNodeIdGen = (function * () {\n let n = 1000;\n\n while (true) {\n yield `--new-${n++}`;\n }\n })();\n\n _handleAddNodeSelect = (event) => {\n const { value: newNodeType } = event.target;\n const rootId = this.props.value.rootId;\n\n const newNode = {\n id: this._newNodeIdGen.next().value,\n isNew: true,\n node_name: '',\n node_type: newNodeType,\n children: [],\n parents: [rootId],\n };\n\n // Add the node\n let newValue = updateAtPath(this.props.value, 'nodes', (nodes) => {\n return {\n ...nodes,\n [newNode.id]: newNode,\n };\n });\n\n // Set the node as the first child of the root node\n newValue = updateAtPath(newValue, createPath('nodes', newValue.rootId, 'children'), (rootChildren) => {\n return [\n newNode.id,\n ...rootChildren,\n ];\n });\n\n this._emitOnChange(newValue);\n };\n\n _handleNodeChange = (event) => {\n const newValue = updateAtPath(this.props.value, event.target.name, () => {\n return event.target.value;\n });\n\n this._emitOnChange(newValue);\n };\n\n _handleNodeDelete = (nodeId) => {\n const { nodes } = this.props.value;\n\n const nodeToDelete = nodes[nodeId];\n\n // Remove the node from all other nodes' children\n let newNodes = mapValues(nodes, (node) => {\n return {\n ...node,\n children: node.children.filter(childId => childId !== nodeToDelete.id),\n };\n });\n\n const getChildIds = (node) => {\n const flatChildIds = node.children.reduce((curr, childId) => {\n const childNode = nodes[childId];\n return curr.concat(getChildIds(childNode));\n }, []);\n\n return node.children.concat(flatChildIds);\n };\n\n const flatChildIds = getChildIds(nodeToDelete);\n\n delete newNodes[nodeToDelete.id];\n\n flatChildIds.forEach((childId) => {\n delete newNodes[childId];\n });\n\n this._emitOnChange({\n ...this.props.value,\n nodes: newNodes,\n });\n };\n\n _renderAddNodeDropdown() {\n const {\n readOnly,\n } = this.props;\n\n if (! readOnly) {\n return (\n \n \n \n );\n }\n }\n\n render() {\n const {\n value,\n validation,\n readOnly,\n } = this.props;\n\n return (\n \n {\n return (\n \n );\n }}\n allowDropChild={(node, draggedNode) => {\n switch (node.node_type) {\n case NodeType.DEVICE:\n return false;\n case NodeType.AREA:\n return [\n NodeType.DEVICE,\n ].indexOf(draggedNode.node_type) !== -1;\n case NodeType.PLANT:\n return [\n NodeType.AREA,\n NodeType.DEVICE,\n ].indexOf(draggedNode.node_type) !== -1;\n case NodeType.ENTERPRISE:\n return true;\n default:\n throw new Error(`Unknown node_type ${node.node_type}`);\n }\n }}\n />\n {this._renderAddNodeDropdown()}\n \n );\n }\n}\n","import { NodeType } from './HierarchyNodeType';\nimport { combineValidators } from 'Components/util/validationUtils';\n\nexport const visibilityMustContainDeviceText =\n 'Visibility for a work center must contain the work center itself.';\n\nexport const visibilityNodeMustBeSavedText =\n 'Hierarchy must be saved before new node can be used for visibility.';\n\nconst validateName = (name) => {\n if (name === null) {\n return 'Name cannot be empty.';\n }\n else if (typeof name === 'string') {\n const trimmed = name.trim();\n\n if (trimmed.length === 0) {\n return 'Name cannot be empty.';\n }\n else {\n return null;\n }\n }\n else {\n throw new Error(`Unable to validate name of type ${typeof name}`);\n }\n};\n\nconst validateDeviceNode = (deviceNode, nodes) => {\n let validation = null;\n\n const addDeviceError = (key, error) => {\n if (!validation) {\n validation = {};\n }\n\n if (!validation.device) {\n validation.device = {};\n }\n\n validation.device[key] = error;\n };\n\n const assetNameValidation = validateName(deviceNode.device.asset_name);\n\n if (assetNameValidation) {\n addDeviceError('asset_name', assetNameValidation);\n }\n\n const isDeviceInVisibility = deviceNode.id === String(deviceNode.device.hierarchy_visibility) ||\n deviceNode.parents.indexOf(String(deviceNode.device.hierarchy_visibility)) !== -1;\n\n const isVisibilityNodeNew = nodes[deviceNode.device.hierarchy_visibility].isNew;\n\n if (!isDeviceInVisibility) {\n addDeviceError('hierarchy_visibility', visibilityMustContainDeviceText);\n }\n else if (isVisibilityNodeNew) {\n addDeviceError('hierarchy_visibility', visibilityNodeMustBeSavedText);\n }\n\n return validation;\n};\n\nconst validateNonDeviceNode = combineValidators({\n node_name: validateName,\n});\n\nfunction validateNodes(nodes) {\n let errors = {};\n\n Object.keys(nodes).forEach((ii) => {\n const node = nodes[ii];\n let nodeValidation;\n if (node.node_type === NodeType.DEVICE) {\n nodeValidation = validateDeviceNode(node, nodes);\n }\n else {\n nodeValidation = validateNonDeviceNode(node);\n }\n\n if (nodeValidation) {\n errors[ii] = nodeValidation;\n }\n });\n\n return Object.keys(errors).length !== 0\n ? errors\n : null;\n}\n\nexport default function validateEnterpriseHierarchy(value) {\n const nodesValidation = validateNodes(value.nodes);\n\n if (nodesValidation) {\n return { nodes: nodesValidation };\n }\n else {\n return null;\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Form from 'Components/form/Form';\nimport { REQUEST_SUCCESS, REQUEST_FAILURE } from 'Common/util/ResourceCollection/actions';\nimport { FormController } from 'Components/form/FormController';\nimport EnterpriseHierarchyEditor from 'Components/hierarchy-editor/EnterpriseHierarchyEditor';\nimport validate from 'Components/hierarchy-editor/EnterpriseHierarchyEditorValidation';\nimport { selectFlattenedHierarchy } from 'Redux/reducers/hierarchy';\n\nfunction rebuildTree(value) {\n const { rootId, nodes } = value;\n\n let node = nodes[rootId];\n\n let nodeId = node.isNew ? null : Number(node.id);\n\n const children = node.children.map((childId) => {\n return rebuildTree({\n rootId: childId,\n nodes: nodes,\n });\n });\n\n let device = null;\n\n if (node.device) {\n device = {\n id: node.device.id,\n asset_name: typeof node.device.asset_name === 'string' ?\n node.device.asset_name.trim() : node.device.asset_name,\n hierarchy_visibility: Number(node.device.hierarchy_visibility),\n };\n }\n\n return {\n id: nodeId,\n node_name: node.node_name ? node.node_name.trim() : node.node_name,\n node_type: node.node_type,\n device: device,\n children: children,\n };\n}\n\nexport class EnterpriseHierarchyForm extends React.Component {\n static propTypes = {\n hierarchyStore: PropTypes.object.isRequired,\n requests: PropTypes.shape({\n putHierarchy: PropTypes.shape({\n status: PropTypes.string.isRequired,\n }).isRequired,\n }).isRequired,\n readOnly: PropTypes.bool,\n actions: PropTypes.shape({\n setHierarchyReset: PropTypes.func.isRequired,\n putHierarchy: PropTypes.func.isRequired,\n }).isRequired,\n };\n\n static defaultProps = {\n readOnly: true,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n flattenedHierarchy: null, // Derived in `getDerivedStateFromProps`\n };\n }\n\n static getDerivedStateFromProps(props, state) {\n return {\n flattenedHierarchy: selectFlattenedHierarchy(props.hierarchyStore),\n };\n }\n\n componentDidMount() {\n this.props.actions.setHierarchyReset();\n }\n\n _handleSubmit = async (value, formController) => {\n const {\n resetValue,\n setSubmitError,\n } = formController;\n\n const payload = rebuildTree(value.hierarchy);\n\n // Send the request\n const responseAction = await this.props.actions.putHierarchy(payload);\n\n if (responseAction.type === REQUEST_SUCCESS) {\n resetValue();\n }\n else if (responseAction.type === REQUEST_FAILURE) {\n setSubmitError(responseAction.payload?.error);\n }\n };\n\n _handleReset = (event) => {\n this.props.actions.setHierarchyReset();\n };\n\n _handleKeyPress = (event) => {\n const key = event.charCode || event.keyCode || 0;\n\n // If ENTER/RETURN was pressed, do not submit the form.\n if (key === 13) {\n event.preventDefault();\n }\n };\n\n render() {\n const { readOnly } = this.props;\n return (\n {\n return {\n hierarchy: validate(value.hierarchy),\n };\n }}\n updateValueIfNoChanges={true}\n onSubmit={this._handleSubmit}\n onReset={this._handleReset}\n render={(innerProps) => {\n const {\n value,\n validation,\n hasChanges,\n isSubmitting,\n submitError,\n\n handleChange,\n handleSubmit,\n handleReset,\n } = innerProps;\n\n return (\n \n \n \n );\n }}\n />\n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { connect } from 'react-redux';\nimport { getHierarchy, putHierarchy } from 'Redux/actions';\n\nimport Page from 'Components/page/Page';\nimport { Roles } from 'Components/app/roles';\nimport ConfigPageTitle from 'Components/page/ConfigPageTitle';\nimport PageContent from 'Components/page/PageContentStandard';\nimport PageDescription from 'Components/page/PageDescription';\nimport { selectHierarchyRequest } from 'Redux/reducers/hierarchy';\nimport { EnterpriseHierarchyForm } from './EnterpriseHierarchyForm';\nimport { selectSessionUser } from 'Redux/reducers/session';\nimport { bindActionCreators } from 'redux';\nimport LoadingWrapper from 'Components/loading-indicator/LoadingWrapper';\nimport { REQUEST_FAILURE } from 'Common/util/ResourceCollection/actions';\n\nexport class DevicesPagePresentation extends React.Component {\n static propTypes = {\n requests: PropTypes.shape({\n getHierarchy: PropTypes.object.isRequired,\n putHierarchy: PropTypes.object.isRequired,\n }).isRequired,\n actions: PropTypes.shape({\n getHierarchy: PropTypes.func.isRequired,\n putHierarchy: PropTypes.func.isRequired,\n setHierarchyReset: PropTypes.func.isRequired,\n }).isRequired,\n hierarchyStore: PropTypes.object,\n sessionRole: PropTypes.string.isRequired,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n initialRequestFinished: false,\n initialRequestErrorMessage: null,\n };\n }\n\n componentDidMount() {\n this._loadData();\n // start pinging the devices endpoint to check for device updates\n this.interval = setInterval(this._loadData.bind(this), 10e3);\n }\n\n componentWillUnmount() {\n // stop the device pinging\n clearInterval(this.interval);\n }\n\n async _loadData() {\n const responseAction = await this.props.actions.getHierarchy();\n\n let errorMessage = null;\n\n if (responseAction.type === REQUEST_FAILURE) {\n errorMessage = responseAction.payload?.error?.message;\n }\n\n this.setState((state) => {\n const updates = {};\n\n if (!state.initialRequestFinished) {\n updates.initialRequestErrorMessage = errorMessage;\n updates.initialRequestFinished = true;\n }\n\n return updates;\n });\n }\n\n render() {\n const { requests, actions, hierarchyStore, sessionRole } = this.props;\n const { initialRequestFinished, initialRequestErrorMessage } = this.state;\n\n const readOnly = sessionRole !== Roles.ADMIN;\n\n return (\n \n Enterprise Hierarchy\n \n Use this page to view and manage all XL devices that are currently linked to XL Enterprise.\n Linking is initiated by logging into a device and navigating to\n Settings > Connections > XL Enterprise.\n Devices can only be unlinked by an XL Enterprise Administrator.\n \n \n Hierarchy Visibility (below) for each XL device determines which work centers\n are visible from the associated XL device.\n Since each XL device has its own IP address and web interface, to restrict\n access to an XL device on your local network, your IT department will need to\n control access to those IP addresses.\n \n \n {\n return (\n \n );\n }}\n />\n \n \n );\n }\n}\n\nconst mapStateToProps = (state, ownProps) => {\n const { session, hierarchy } = state;\n\n return {\n sessionRole: selectSessionUser(session)?.role,\n hierarchyStore: hierarchy,\n requests: {\n getHierarchy: selectHierarchyRequest(hierarchy, 'getHierarchy'),\n putHierarchy: selectHierarchyRequest(hierarchy, 'putHierarchy'),\n },\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n actions: bindActionCreators({\n getHierarchy: getHierarchy,\n putHierarchy: putHierarchy,\n setHierarchyReset: () => { return { type: '____NOTHING' }; },\n }, dispatch),\n };\n};\n\n// connect the component to Redux\nconst DevicesPageContainer = connect(\n mapStateToProps,\n mapDispatchToProps\n)(DevicesPagePresentation);\n\nexport default DevicesPageContainer;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { Redirect } from 'react-router-dom';\n\nimport { sendPostRequest } from 'Http/request';\n\nimport { Body1 } from 'Components/typography/typography';\nimport queryString from 'query-string';\nimport ContainedButton from 'Components/button/ContainedButton';\nimport Page from 'Components/page/Page';\nimport PageTitle from 'Components/page/PageTitle';\nimport PageContent from 'Components/page/PageContentStandard';\nimport { Spacing } from 'Components/common/common';\nimport PageDescription from 'Components/page/PageDescription';\nimport FaIcon from 'Components/icon/FaIcon';\n\nconst ContentWrapper = styled.div`\n\n`;\n\nconst SubmitButton = styled(ContainedButton)`\n margin-top: ${Spacing.formButtonMargin};\n`;\n\nconst CheckIcon = styled(props => ())`\n color: ${props => props.theme.colors.success};\n font-size: 120px;\n`;\n\nclass XLConnectPage extends React.Component {\n constructor() {\n super();\n\n this.state = {\n complete: false,\n linking: false,\n error: false,\n redirecting: false,\n };\n\n this._handleDeviceLink = this._handleDeviceLink.bind(this);\n }\n\n componentWillUnmount() {\n if (this.redirectTimeoutId) {\n clearTimeout(this.redirectTimeoutId);\n }\n }\n\n async _handleDeviceLink() {\n const params = queryString.parse(this.props.location.search);\n\n this.setState({ linking: true });\n\n const payload = {\n linking_token: params.linking_token,\n };\n\n try {\n const response = await sendPostRequest('/api/v1/devices/linking-token', {\n body: payload\n });\n\n if (response.ok) {\n this.setState({\n linking: false,\n complete: true\n });\n\n // Wait ten seconds before loading the hierarchy while the\n // linking process is finalized asynchronously between XLPA\n // and the Enterprise API\n this.redirectTimeoutId = setTimeout(() => {\n this.setState({ redirecting: true });\n }, 10000);\n }\n else {\n this.setState({\n linking: false,\n error: true,\n errorInfo: response.data,\n });\n\n }\n }\n catch (err) {\n console.error('Unable to send request', err);\n this.setState({\n linking: false,\n error: true,\n errorInfo: {\n message: 'Unable to send request'\n }\n });\n }\n }\n\n _valid(params) {\n // Linking token and asset name are required URL parameters.\n return !!params.linking_token && !!params.asset_name;\n }\n\n _renderReady() {\n const params = queryString.parse(this.props.location.search);\n\n if (!this._valid(params)) {\n return (\n \n Invalid Link\n The link used to come to this page is invalid.\n \n );\n }\n else {\n return (\n \n Link XL Device\n \n You’ve reached this page by linking one of your XL devices to XL Enterprise.\n Click the Link Device button below to complete the linking process.\n \n \n \n Link "{params.asset_name}" to your XL Enterprise organization?\n \n \n Link Device\n \n \n \n );\n }\n }\n\n _renderInProgress() {\n return (\n \n Link XL Device\n \n \n Please wait, linking in progress...\n \n \n \n );\n }\n\n _renderLinkingError() {\n let errorMessage = this.state.errorInfo.message;\n if (this.state.errorInfo.status_code === 409) {\n errorMessage = (\n \n

\n The Asset ID for this XL device is already used in XL Enterprise.\n This can happen if a backup file from one device is restored to another device.\n Please contact Vorne technical support, who will assist you in assigning a new Asset ID.\n

\n

Asset ID: {this.state.errorInfo.payload.asset_id}

\n
\n );\n }\n return (\n \n Error\n \n {errorMessage}\n \n \n );\n }\n\n _renderSuccess() {\n return (\n \n \n Device has been linked successfully\n \n The enterprise hierarchy will open automatically in a few seconds.\n {this.state.redirecting && (\n \n )}\n \n \n );\n }\n\n render() {\n if (this.state.linking) {\n return this._renderInProgress();\n }\n else if (this.state.error) {\n return this._renderLinkingError();\n }\n else if (this.state.complete || this.state.redirecting) {\n return this._renderSuccess();\n }\n else {\n return this._renderReady();\n }\n }\n}\n\nXLConnectPage.propTypes = {\n location: PropTypes.shape({\n search: PropTypes.string\n }).isRequired,\n};\n\nexport default XLConnectPage;\n","import React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport { getRoleValues, getRoleDisplayText } from 'Components/app/roles';\nimport FormElement from 'Components/form-element/FormElement';\nimport FormElementLabel from 'Components/form-element/FormElementLabel';\nimport FormElementHelperText from 'Components/form-element/FormElementHelperText';\nimport SelectInput from 'Components/select/SelectInput';\nimport SelectOption from 'Components/select/SelectOption';\nimport SelectOptionContent from 'Components/select/SelectOptionContent';\n\nconst StyledSelectInput = styled(SelectInput)`\n display: block;\n min-width: 200px;\n`;\n\nconst OptionContent = styled(SelectOptionContent)`\n min-width: 200px;\n color: inherit;\n\n &.emptyOption {\n color: rgba(0,0,0,0.5);\n }\n`;\n\nexport default class RoleSelect extends React.Component {\n render() {\n const {\n id,\n label,\n name,\n value,\n error,\n helperText,\n onFocus,\n onBlur,\n onChange,\n ...otherProps\n } = this.props;\n\n const roleValues = getRoleValues();\n\n return (\n \n {label}\n \n \n None\n \n {roleValues.map((roleValue) => (\n \n {getRoleDisplayText(roleValue)}\n \n ))}\n \n \n {helperText}\n \n \n );\n }\n}\n\nRoleSelect.propTypes = {\n id: PropTypes.string,\n label: PropTypes.string,\n name: PropTypes.string,\n value: PropTypes.oneOf([ '', ...getRoleValues() ]),\n error: PropTypes.bool,\n helperText: PropTypes.node,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport LoadingWrapper from 'Components/loading-indicator/LoadingWrapper';\n\nimport * as RequestStatus from 'Common/data/RequestStatus';\n\nfunction RequestLoadingWrapper({ children, request, render, ...otherProps }) {\n const { status, error } = request;\n\n let isLoading = true;\n let errorMessage;\n\n if (status === RequestStatus.SUCCESS) {\n isLoading = false;\n }\n else if (status === RequestStatus.FAILURE) {\n isLoading = false;\n errorMessage = error.message;\n }\n\n return (\n \n {children}\n \n );\n}\n\nRequestLoadingWrapper.propTypes = {\n children: PropTypes.node,\n render: PropTypes.func,\n request: PropTypes.shape({\n status: PropTypes.string,\n error: PropTypes.shape({\n message: PropTypes.string,\n }),\n }).isRequired,\n};\n\nexport default RequestLoadingWrapper;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { Redirect } from 'react-router-dom';\nimport PropTypes from 'prop-types';\n\nimport Page from 'Components/page/Page';\nimport PageContent from 'Components/page/PageContentStandard';\nimport ConfigPageTitle from 'Components/page/ConfigPageTitle';\nimport RoleSelect from 'Components/role-select/RoleSelect';\nimport TextInput from 'Components/text-input/TextInput';\nimport { sendPostRequest } from 'Http/request';\nimport PageDescription from 'Components/page/PageDescription';\nimport Form from 'Components/form/Form';\nimport { FormController } from '../../form/FormController';\nimport { combineValidators } from 'Components/util/validationUtils';\nimport { getAtPath } from 'Common/util/FormUtils';\nimport EnterpriseHierarchySelect from 'Components/enterprise-hierarchy-select/EnterpriseHierarchySelect';\nimport { bindActionCreators } from 'redux';\nimport { selectHierarchyRequest, selectFlattenedHierarchy } from 'Redux/reducers/hierarchy';\nimport { getHierarchy } from 'Redux/actions';\nimport { connect } from 'react-redux';\nimport RequestLoadingWrapper from 'Components/loading-indicator/RequestLoadingWrapper';\nimport { Roles } from 'Components/app/roles';\n\nconst StyledTextInput = styled(TextInput)`\n display: block;\n width: 100%;\n`;\n\nconst validate = combineValidators({\n name: (name) => name.trim().length === 0 ? 'Required' : null,\n email: (email) => email.trim().length === 0 ? 'Required' : null,\n role: (role) => role === '' ? 'Required' : null,\n hierarchy_visibility: (hierarchy_visibility) => hierarchy_visibility === null ? 'Required' : null,\n});\n\nexport class AddUserPagePresentation extends React.Component {\n static propTypes = {\n requests: PropTypes.shape({\n getHierarchy: PropTypes.object.isRequired,\n }),\n actions: PropTypes.shape({\n getHierarchy: PropTypes.func.isRequired,\n }),\n flattenedHierarchy: PropTypes.object,\n };\n\n constructor() {\n super();\n\n this.state = {\n isComplete: false,\n };\n }\n\n componentDidMount() {\n this.props.actions.getHierarchy();\n }\n\n _transformValue = (value) => {\n const { flattenedHierarchy } = this.props;\n\n // If the role is set to ADMIN, force the visibility to be the root\n if (\n value.role === Roles.ADMIN &&\n value.hierarchy_visibility !== flattenedHierarchy.rootId\n ) {\n return {\n ...value,\n hierarchy_visibility: flattenedHierarchy.rootId,\n };\n }\n else {\n return value;\n }\n };\n\n _handleSubmit = async (value, formController) => {\n const {\n setTouched,\n setSubmitError,\n } = formController;\n\n // Set everything as touched to expose all validation errors\n setTouched({\n name: true,\n email: true,\n role: true,\n hierarchy_visibility: true,\n });\n\n const validation = validate(value);\n\n if (validation) {\n setSubmitError({ message: 'Some fields are invalid.' });\n return;\n }\n\n try {\n const response = await sendPostRequest('/api/v1/accounts/organization/users', {\n body: {\n email: value.email,\n name: value.name,\n role: value.role,\n hierarchy_visibility: value.hierarchy_visibility === null ?\n null : Number(value.hierarchy_visibility),\n },\n });\n\n if (response.ok) {\n this.setState({ isComplete: true });\n }\n else {\n setSubmitError(response.data || { message: 'Network error' });\n }\n }\n catch (err) {\n setSubmitError(err || { message: 'Network error' });\n }\n };\n\n render() {\n const { requests, flattenedHierarchy } = this.props;\n const { isComplete } = this.state;\n\n return (\n \n Add User\n \n When you add a user they will receive an invitation email with a link to set\n their password. Admins manage the organization, other users, and alerts.\n \n \n (\n {\n return validate(value);\n }}\n transformValue={this._transformValue}\n onSubmit={this._handleSubmit}\n render={(innerProps) => {\n const {\n value,\n touched,\n validation,\n isSubmitting,\n submitError,\n\n handleChange,\n handleBlur,\n handleSubmit,\n } = innerProps;\n\n const inputError = (inputName) => {\n return getAtPath(touched, inputName) && getAtPath(validation, inputName);\n };\n\n const inputProps = (inputName, defaults = {}) => {\n return {\n name: inputName,\n value: getAtPath(value, inputName),\n error: !!inputError(inputName),\n helperText: inputError(inputName) || defaults.helperText || '',\n onChange: handleChange,\n onBlur: handleBlur,\n disabled: isSubmitting,\n };\n };\n\n return (\n \n \n \n \n \n {!isSubmitting && isComplete && (\n \n )}\n \n );\n }}\n />\n )}\n />\n \n \n );\n }\n}\n\nconst mapStateToProps = (state, ownProps) => {\n const { hierarchy } = state;\n\n return {\n requests: {\n getHierarchy: selectHierarchyRequest(hierarchy, 'getHierarchy'),\n },\n flattenedHierarchy: selectFlattenedHierarchy(hierarchy),\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n actions: bindActionCreators({\n getHierarchy: getHierarchy,\n }, dispatch),\n };\n};\n\n// connect the component to Redux\nconst AddUserPage = connect(\n mapStateToProps,\n mapDispatchToProps\n)(AddUserPagePresentation);\n\nexport default AddUserPage;\n","import React from 'react';\nimport { withTheme } from 'styled-components';\nimport PropTypes from 'prop-types';\n\nimport Notice from './Notice';\n\nfunction SuccessNotice({ children, theme, ...otherProps }) {\n return (\n \n {children}\n \n );\n}\n\nSuccessNotice.propTypes = {\n children: PropTypes.node,\n theme: PropTypes.object.isRequired,\n};\n\nexport default withTheme(SuccessNotice);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport * as RequestStatus from 'Common/data/RequestStatus';\nimport UnmaskablePasswordInput from 'Components/password/UnmaskablePasswordInput';\nimport validate from './SetPasswordValidation';\nimport Form from 'Components/form/Form';\n\nexport default class SetPasswordForm extends React.Component {\n static propTypes = {\n name: PropTypes.string,\n request: PropTypes.object.isRequired,\n onSubmit: PropTypes.func.isRequired,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n value: {\n password: '',\n },\n dirty: {\n password: false,\n },\n };\n }\n\n _handlePasswordChange = (event) => {\n const password = event.target.value;\n\n this.setState((state) => {\n return {\n value: {\n ...state.value,\n password: password,\n },\n dirty: {\n ...state.dirty,\n password: true,\n },\n };\n });\n };\n\n _handleSubmit = async (event) => {\n this.props.onSubmit({\n target: {\n name: this.props.name,\n value: this.state.value,\n },\n });\n };\n\n render() {\n const { request } = this.props;\n const { value, dirty } = this.state;\n\n const validation = validate(value);\n\n const isLoading = request.status === RequestStatus.PENDING;\n const isPasswordValid = !(validation?.password);\n const showPasswordError = dirty.password;\n const allowSubmit = isPasswordValid && !isLoading;\n\n return (\n \n \n \n );\n }\n}\n","import validatePassword from 'Components/password/PasswordRulesValidation';\nimport every from 'lodash/every';\n\nexport default function validate(value) {\n const validation = {\n password: validatePassword(value.password),\n };\n\n if (every(validation, v => !v)) {\n return null;\n }\n else {\n return validation;\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Redirect, withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport queryString from 'query-string';\nimport Page from 'Components/page/Page';\nimport { Body1 } from 'Components/typography/typography';\nimport PageTitle from 'Components/page/PageTitle';\nimport PageContent from 'Components/page/PageContentStandard';\nimport PageContentWide from 'Components/page/PageContentWide';\nimport PageDescription from 'Components/page/PageDescription';\nimport DatauseDescription from 'Components/data-use-description/DataUseDescription';\nimport ErrorNotice from 'Components/notice/ErrorNotice';\nimport SuccessNotice from 'Components/notice/SuccessNotice';\nimport { logout, updatePassword, login, updatePasswordReset } from 'Redux/actions';\nimport LoginForm from 'Components/login-form/LoginForm';\nimport { selectSessionRequest, selectIsLoggedIn } from 'Redux/reducers/session';\nimport SetPasswordForm from './SetPasswordForm';\nimport { PENDING } from 'Common/data/RequestStatus';\nimport { REQUEST_SUCCESS } from 'Common/util/ResourceCollection/actions';\n\nconst STEPS = {\n UPDATE_PASSWORD: 'UPDATE_PASSWORD',\n LOGIN: 'LOGIN',\n SETTINGS: 'SETTINGS',\n};\n\nexport class SetupNewUserPagePresentation extends React.Component {\n static propTypes = {\n location: PropTypes.shape({\n search: PropTypes.string\n }).isRequired,\n login: PropTypes.func.isRequired,\n logout: PropTypes.func.isRequired,\n updatePassword: PropTypes.func.isRequired,\n updatePasswordReset: PropTypes.func.isRequired,\n isLoggedIn: PropTypes.bool.isRequired,\n loginRequest: PropTypes.object.isRequired,\n logoutRequest: PropTypes.object.isRequired,\n updatePasswordRequest: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n currentStep: STEPS.UPDATE_PASSWORD,\n };\n }\n\n componentDidMount() {\n this.props.updatePasswordReset();\n }\n\n _handlePasswordChange = (event) => {\n const password = event.target.value;\n\n this.setState((state) => {\n return {\n value: {\n ...state.value,\n password: password,\n },\n dirty: {\n ...state.dirty,\n password: true,\n },\n };\n });\n };\n\n _handleUpdatePasswordSubmit = async (event) => {\n const {\n isLoggedIn,\n logout: logoutAction,\n updatePassword: updatePasswordAction,\n } = this.props;\n\n if (isLoggedIn) {\n // We don't actually care if this succeeds, it's just a nice-to-have.\n await logoutAction();\n }\n\n const urlParams = queryString.parse(this.props.location.search);\n\n const response = await updatePasswordAction({\n new_password: event.target.value.password,\n token: urlParams.token,\n });\n\n // If the update password request was successful, move to the next step\n if (response.type === REQUEST_SUCCESS) {\n this.setState((state) => {\n return {\n currentStep: STEPS.LOGIN,\n };\n });\n }\n };\n\n _handleLoginSubmit = async ({ email, password }) => {\n const { login: loginAction } = this.props;\n\n const response = await loginAction({ email, password });\n\n // If the login request was successful, move to the next step\n if (response.type === REQUEST_SUCCESS) {\n this.setState({\n currentStep: STEPS.SETTINGS,\n });\n }\n };\n\n _validUrl(params) {\n // linking token is the only required url parameter\n return !!params.token;\n }\n\n _renderInvalidUrl() {\n return (\n \n Invalid New User Link\n \n \n \n The link used to come to this page is invalid\n \n \n \n \n );\n }\n\n _renderUpdatePassword() {\n const { logoutRequest, updatePasswordRequest } = this.props;\n\n let mergedRequest = { ...updatePasswordRequest };\n\n // Merge the requests together and treat them like one request.\n if (logoutRequest.status === PENDING) {\n mergedRequest.status = PENDING;\n }\n\n return (\n \n New User Setup\n \n Use this page to create a password for your new XL Enterprise account.\n \n \n \n \n \n \n \n \n );\n }\n\n _renderLogin() {\n const { loginRequest } = this.props;\n\n return (\n \n Log In\n \n \n Congratulations, you have successfully set up a new account!\n Please log in to continue.\n \n \n \n \n );\n }\n\n _renderSettings() {\n return (\n \n );\n }\n\n render() {\n const { currentStep } = this.state;\n\n const urlParams = queryString.parse(this.props.location.search);\n\n if (!this._validUrl(urlParams)) {\n return this._renderInvalidUrl();\n }\n\n switch (currentStep) {\n case STEPS.UPDATE_PASSWORD:\n return this._renderUpdatePassword();\n case STEPS.LOGIN:\n return this._renderLogin();\n case STEPS.SETTINGS:\n return this._renderSettings();\n default:\n throw new Error(`Unknown step: ${currentStep}`);\n }\n }\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n isLoggedIn: selectIsLoggedIn(state.session),\n loginRequest: selectSessionRequest(state.session, 'login'),\n logoutRequest: selectSessionRequest(state.session, 'logout'),\n updatePasswordRequest: selectSessionRequest(state.session, 'updatePassword'),\n };\n};\n\nconst mapDispatchToProps = {\n login: login,\n logout: logout,\n updatePassword: updatePassword,\n updatePasswordReset: updatePasswordReset,\n};\n\n// connect the component to Redux\nconst SetupNewUserPage = withRouter(connect(\n mapStateToProps,\n mapDispatchToProps\n)(SetupNewUserPagePresentation));\n\nexport default SetupNewUserPage;\n","import { sendPostRequest } from 'Http/request';\nimport { requestActionCreator } from 'Common/util/ResourceCollection/requestActionCreator';\nimport { REQUEST_RESET } from 'Common/util/ResourceCollection';\nimport { REQUEST_PENDING, REQUEST_SUCCESS, REQUEST_FAILURE } from 'Common/util/ResourceCollection/actions';\n\nexport function updatePasswordReset() {\n return {\n type: REQUEST_RESET,\n requestId: 'updatePassword',\n };\n}\n\nexport const updatePassword = ({ token, new_password }) => requestActionCreator(\n {\n request: () => ({\n type: REQUEST_PENDING,\n requestId: 'updatePassword',\n }),\n success: (payload) => ({\n type: REQUEST_SUCCESS,\n requestId: 'updatePassword',\n payload,\n }),\n failure: (error) => ({\n type: REQUEST_FAILURE,\n requestId: 'updatePassword',\n payload: { error },\n }),\n },\n () => sendPostRequest('/api/v1/accounts/update-password', {\n body: { token, new_password },\n })\n);\n\nexport default updatePassword;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport queryString from 'query-string';\n\nimport UnmaskablePasswordInput from 'Components/password/UnmaskablePasswordInput';\nimport Page from 'Components/page/Page';\nimport { Body1 } from 'Components/typography/typography';\nimport PageTitle from 'Components/page/PageTitle';\nimport PageContent from 'Components/page/PageContentStandard';\nimport LoginFormContainer from 'Components/login-form/LoginFormContainer.js';\nimport { sendPostRequest } from 'Http/request';\nimport validate from 'Components/password/PasswordRulesValidation';\nimport Form from 'Components/form/Form';\nimport ErrorNotice from 'Components/notice/ErrorNotice';\n\nexport default class ResetPasswordPage extends React.Component {\n constructor() {\n super();\n\n this.state = {\n password: {\n dirty: false,\n invalidReason: null,\n value: null\n },\n submit: {\n isLoading: false,\n error: null,\n isDone: false,\n }\n };\n }\n\n _handlePasswordChange = (event) => {\n const password = event.target.value;\n const error = validate(password);\n\n this.setState(() => {\n return {\n password: {\n dirty: true,\n invalidReason: error,\n value: password\n }\n };\n });\n };\n\n _handleResponse(response) {\n if (response.ok) {\n this.setState((prevState) => {\n return {\n submit: {\n ...prevState.submit,\n isLoading: false,\n isDone: true,\n error: null,\n }\n };\n });\n }\n else {\n this._handleResponseError(response.data);\n }\n }\n\n _handleResponseError(err) {\n this.setState((prevState) => {\n return {\n submit: {\n ...prevState.submit,\n isLoading: false,\n isDone: false,\n error: err || { message: 'Network error' },\n },\n };\n });\n }\n\n _handleSubmit = (event) => {\n let submit = Object.assign({}, this.state.submit);\n submit.isLoading = true;\n\n this.setState(prevState => ({ submit }), () => {\n let urlParams = queryString.parse(this.props.location.search);\n sendPostRequest('/api/v1/accounts/update-password', {\n body: {\n new_password: this.state.password.value,\n token: urlParams.token\n }\n })\n .then((response) => {\n this._handleResponse(response);\n })\n .catch((err) => {\n this._handleResponseError(err);\n });\n });\n };\n\n _validUrl(params) {\n // linking token is the only required url parameter\n return !!params.token;\n }\n\n render() {\n const { password, submit } = this.state;\n const allowSubmit = password.dirty && ! password.invalidReason && ! submit.isLoading;\n\n let urlParams = queryString.parse(this.props.location.search);\n\n if (! this._validUrl(urlParams)) {\n return (\n \n Invalid Reset Password Link\n \n \n The link used to come to this page is invalid \n \n \n \n );\n }\n\n if (submit.isDone) {\n return (\n \n Reset Password\n \n You have successfully reset your password \n
\n \n
\n
\n
\n );\n }\n\n return (\n \n Reset Password\n \n \n \n \n \n \n );\n }\n}\n\nResetPasswordPage.propTypes = {\n location: PropTypes.shape({\n search: PropTypes.string\n }).isRequired,\n};\n","import React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport { Link } from 'react-router-dom';\nimport TextButton from 'Components/button/TextButton';\nimport ContainedButton from 'Components/button/ContainedButton';\nimport TextInput from 'Components/text-input/TextInput';\nimport { sendPostRequest } from 'Http/request';\nimport { Spacing } from 'Components/common/common';\nimport Form from 'Components/form/Form';\n\nconst EmailInput = styled(TextInput)`\n display: block;\n width: 100%;\n box-sizing: border-box;\n`;\n\nconst CancelLink = styled(TextButton)``;\nconst SubmitButton = styled(ContainedButton)``;\nconst FormButtonsContainer = styled.div`\n margin-top: ${Spacing.formButtonMargin};\n\n ${SubmitButton} {\n margin-right: 8px;\n }\n\n ${CancelLink} {\n text-decoration: none;\n }\n`;\n\nexport default class ForgotPasswordForm extends React.Component {\n static propTypes = {\n className: PropTypes.string,\n initialEmail: PropTypes.string,\n onSuccess: PropTypes.func.isRequired,\n };\n\n static defaultProps = {\n className: '',\n initialEmail: '',\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n isLoading: false,\n error: null,\n email: {\n value: props.initialEmail,\n dirty: false,\n },\n };\n }\n\n _validate() {\n const { email } = this.state;\n\n const validation = {\n email: {\n ...email,\n error: null,\n },\n };\n\n if (!email.value && email.dirty) {\n validation.email.error = 'required';\n }\n\n return validation;\n }\n\n _handleEmailChange = (event) => {\n const value = event.target.value;\n\n this.setState((state) => ({\n email: {\n ...state.email,\n value: value,\n dirty: true,\n },\n }));\n };\n\n _handleSubmit = (event) => {\n this._sendRequest();\n };\n\n async _sendRequest() {\n const email = this.state.email.value;\n\n this.setState({\n isLoading: true,\n error: null,\n });\n\n try {\n const response = await sendPostRequest('/api/v1/accounts/reset-password', {\n body: { email }\n });\n\n if (response.ok) {\n this.setState({\n isLoading: false,\n error: null,\n });\n this.props.onSuccess({ email });\n }\n else {\n this.setState({\n isLoading: false,\n error: response.data,\n });\n }\n }\n catch (err) {\n this.setState({\n isLoading: false,\n error: err || { message: 'Network error' },\n });\n }\n }\n\n render() {\n const { className } = this.props;\n const { isLoading, error } = this.state;\n const validation = this._validate();\n\n return (\n \n \n \n \n Cancel\n \n \n Submit\n \n \n \n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { withRouter } from 'react-router-dom';\nimport Page from 'Components/page/Page';\nimport PageTitle from 'Components/page/PageTitle';\nimport PageDescription from 'Components/page/PageDescription';\nimport PageContent from 'Components/page/PageContentStandard';\nimport ForgotPasswordForm from './ForgotPasswordForm';\n\nconst StyledForm = styled(ForgotPasswordForm)`\n display: block;\n width: 100%;\n`;\n\nclass ForgotPasswordPage extends React.Component {\n\n constructor() {\n super();\n\n this.state = {\n success: false,\n successEmail: '',\n };\n\n this._handleFormSuccess = this._handleFormSuccess.bind(this);\n }\n\n _handleFormSuccess({ email }) {\n this.setState({\n success: true,\n successEmail: email,\n });\n }\n\n _renderPageTitle() {\n const { success } = this.state;\n return success ? 'Check your inbox!' : 'Reset your password';\n }\n\n _renderPageDescription() {\n const { success, successEmail } = this.state;\n\n if (success) {\n return (\n \n If there is an account associated with the email address, we will send\n you a link to {successEmail} to reset your password.\n \n );\n }\n else {\n return (\n \n Enter your email address. If there is an account associated with the\n email address, we will send you a link to reset your password.\n \n );\n }\n }\n\n _renderPageContent() {\n const { location } = this.props;\n const { success } = this.state;\n const initialEmail = location.state && location.state.email || '';\n\n if (success) {\n return null;\n }\n else {\n return (\n \n );\n }\n }\n\n render() {\n return (\n \n {this._renderPageTitle()}\n {this._renderPageDescription()}\n {this._renderPageContent()}\n \n );\n }\n}\n\nForgotPasswordPage.propTypes = {\n location: PropTypes.shape({\n state: PropTypes.shape({\n email: PropTypes.string\n })\n }).isRequired,\n};\n\nexport default withRouter(ForgotPasswordPage);\n","import { resourceCollectionReducer, resourceReducer } from 'Common/util/ResourceCollection';\nimport { Roles } from 'Components/app/roles';\nimport { selectResource, selectResources, selectResourcesRequest } from 'Common/util/ResourceCollection/resourceCollectionReducer';\nimport { selectResourceData, selectResourceRequest } from 'Common/util/ResourceCollection/resourceReducer';\n\nexport default resourceCollectionReducer('users', {\n getResourceId: (resource) => resource.id,\n requests: [ 'getUsers' ],\n resourceReducer: resourceReducer({\n requests: [ 'getUser', 'patchUser' ],\n }),\n sort: (userA, userB) => {\n return userA.email_address.email.localeCompare(userB.email_address.email);\n },\n});\n\nexport function getUserById(state, userId) {\n return selectResource(state, userId);\n}\n\nexport function getUsersList(state) {\n return selectResources(state);\n}\n\nexport function selectUserData(state, userId) {\n const resourceState = selectResource(state, userId);\n return selectResourceData(resourceState);\n}\n\nexport function selectUserRequest(state, userId, requestId) {\n const resourceState = selectResource(state, userId);\n return selectResourceRequest(resourceState, requestId);\n}\n\nexport function selectAdminUsers(state) {\n return selectResources(state).filter((resourceState) => {\n return selectResourceData(resourceState)?.role === Roles.ADMIN;\n });\n}\n\nexport function selectUsersRequest(state, requestId) {\n return selectResourcesRequest(state, requestId);\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport LoadingWrapper from 'Components/loading-indicator/LoadingWrapper';\nimport * as RequestStatus from 'Common/data/RequestStatus';\n\n/**\n * A wrapper component that is given an array of request states, and will not\n * render its contents until all requests have completed.\n */\nfunction MultiRequestLoadingWrapper({ children, requests, render, ...otherProps }) {\n let isLoading = false;\n let errorMessage;\n\n requests.forEach((request) => {\n const { status, error } = request;\n // The loading indicator should be set until all requests are complete\n isLoading = isLoading ||\n (status !== RequestStatus.SUCCESS && status !== RequestStatus.FAILURE);\n\n // If this request has failed, set the error message if one hasn't been\n // set already\n if (status === RequestStatus.FAILURE) {\n errorMessage = errorMessage || error.message;\n }\n });\n\n return (\n \n {children}\n \n );\n}\n\nMultiRequestLoadingWrapper.propTypes = {\n children: PropTypes.node,\n render: PropTypes.func,\n requests: PropTypes.arrayOf(\n PropTypes.shape({\n status: PropTypes.string,\n error: PropTypes.shape({\n message: PropTypes.string,\n }),\n }).isRequired\n ).isRequired,\n};\n\nexport default MultiRequestLoadingWrapper;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport ContainedButton from 'Components/button/ContainedButton';\nimport { Body1 } from 'Components/typography/typography';\nimport { sendPostRequest } from '../../../../http/request';\n\nconst Root = styled.div`\n`;\n\nconst ActionButton = styled(ContainedButton)`\n display: block;\n margin-bottom: 18px;\n`;\n\nconst StatusMessage = styled(Body1)`\n display: block;\n margin-bottom: 18px;\n`;\n\nconst RequestState = {\n Idle: 'RequestState.Idle',\n InProgress: 'RequestState.InProgress',\n Success: 'RequestState.Success',\n Error: 'RequestState.Error',\n};\n\nexport default class ResendWelcomeButton extends React.Component {\n static propTypes = {\n disabled: PropTypes.bool,\n userId: PropTypes.number.isRequired,\n email: PropTypes.string.isRequired,\n };\n\n static defaultProps = {\n disabled: false,\n };\n\n constructor() {\n super();\n this._handleClick = this._handleClick.bind(this);\n this.state = {\n requestStatus: RequestState.Idle,\n };\n }\n\n async _handleClick(event) {\n let userId = this.props.userId;\n this.setState({ requestStatus: RequestState.InProgress });\n\n try {\n let response = await sendPostRequest(`/api/v1/accounts/organization/users/${userId}/resend-welcome`);\n\n if (response.ok) {\n this.setState({ requestStatus: RequestState.Success });\n }\n else {\n this.setState({ requestStatus: RequestState.Error });\n }\n }\n catch (err) {\n this.setState({ requestStatus: RequestState.Error });\n }\n }\n\n render() {\n const {\n email,\n disabled,\n ...otherProps\n } = this.props;\n\n const {\n requestStatus,\n } = this.state;\n\n let resendControl;\n switch (requestStatus) {\n case RequestState.Idle:\n case RequestState.InProgress:\n resendControl = (\n \n Resend Setup Email\n \n );\n break;\n\n case RequestState.Success:\n resendControl = (\n \n An email has been sent to {email} with instructions on activating their account.\n \n );\n break;\n\n case RequestState.Error:\n resendControl = (\n \n An error occurred sending the instructions.\n \n );\n break;\n }\n\n return (\n \n {resendControl}\n \n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport FormElement from 'Components/form-element/FormElement';\nimport ThemedCheckboxInput from 'Components/checkbox/ThemedCheckboxInput';\nimport FormElementLabel from 'Components/form-element/FormElementLabel';\nimport uniqueId from 'Common/util/uniqueId';\nimport FormElementHelperText from 'Components/form-element/FormElementHelperText';\n\nconst StyledFormElement = styled(FormElement)`\n display: inline-block;\n`;\n\nconst ContentWrapper = styled.div`\n display: inline-flex;\n align-items: center;\n`;\n\nconst RightLabel = styled(FormElementLabel)`\n display: inline-block;\n padding-left: 8px;\n`;\n\nexport default class CheckboxFormElement extends React.Component {\n static propTypes = {\n name: PropTypes.string,\n label: PropTypes.node.isRequired,\n helperText: PropTypes.string,\n value: PropTypes.bool.isRequired,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onChange: PropTypes.func.isRequired,\n // ... other props passed to `FormElement`\n };\n\n constructor(props) {\n super(props);\n this._uniqueId = uniqueId('CheckboxElement-input-');\n }\n\n render() {\n const {\n name,\n label,\n helperText,\n value,\n onFocus,\n onBlur,\n onChange,\n ...otherProps\n } = this.props;\n\n const inputId = this._uniqueId;\n\n return (\n \n \n \n {label}\n \n {helperText !== undefined && (\n {helperText}\n )}\n \n );\n }\n}\n","import React from 'react';\nimport { withTheme } from 'styled-components';\nimport PropTypes from 'prop-types';\n\nimport Notice from './Notice';\n\nfunction Warning({ children, theme, ...otherProps }) {\n return (\n \n {children}\n \n );\n}\n\nWarning.propTypes = {\n children: PropTypes.node,\n theme: PropTypes.object.isRequired,\n};\n\nexport default withTheme(Warning);\n","import React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nconst ThemedTableHeaderColumn = styled.th`\n padding: 8px;\n text-align: left;\n`;\n\nfunction TableHeaderColumn({ children, ...otherProps }) {\n return (\n \n {children}\n \n );\n}\n\nTableHeaderColumn.propTypes = {\n children: PropTypes.node,\n};\n\nexport default TableHeaderColumn;\n","import React from 'react';\nimport styled from 'styled-components';\n\nimport { elementsOfType } from 'Components/util/propTypesUtils';\nimport TableHeaderColumn from 'Components/table/TableHeaderColumn';\n\nconst ThemedTableHeaderRow = styled.tr`\n\n`;\n\nfunction TableHeaderRow({ children, ...otherProps }) {\n return (\n \n {children}\n \n );\n}\n\nTableHeaderRow.propTypes = {\n children: elementsOfType([\n TableHeaderColumn\n ]),\n};\n\nexport default TableHeaderRow;\n","import React from 'react';\nimport styled from 'styled-components';\n\nimport { elementsOfType } from 'Components/util/propTypesUtils';\nimport TableHeaderRow from 'Components/table/TableHeaderRow';\n\nconst ThemedTableHeader = styled.thead`\n background-color: ${({ theme }) => theme.colors.palette.grey.manatee};\n color: ${({ theme }) => theme.colors.palette.white};\n`;\n\nfunction TableHeader({ children, ...otherProps }) {\n return (\n \n {children}\n \n );\n}\n\nTableHeader.propTypes = {\n children: elementsOfType([\n TableHeaderRow\n ]),\n};\n\nexport default TableHeader;\n","import React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nconst ThemedTableColumn = styled.td`\n padding: 5px;\n`;\n\nfunction TableColumn({ children, ...otherProps }) {\n return (\n \n {children}\n \n );\n}\n\nTableColumn.propTypes = {\n children: PropTypes.node,\n};\n\nexport default TableColumn;\n","import styled from 'styled-components';\n\nimport TableColumn from './TableColumn';\n\nconst TableErrorColumn = styled(TableColumn)`\n color: ${ p => p.theme.colors.error };\n\n :not(:last-child) {\n border-right: 0;\n }\n\n :not(:first-child) {\n border-left: 0;\n }\n`;\n\nexport default TableErrorColumn;\n","import React from 'react';\nimport styled from 'styled-components';\n\nimport { elementsOfType } from 'Components/util/propTypesUtils';\nimport TableColumn from 'Components/table/TableColumn';\nimport TableErrorColumn from './TableErrorColumn';\nimport TableHeaderColumn from './TableHeaderColumn';\n\nconst ThemedTableRow = styled.tr`\n\n`;\n\nfunction TableRow({ children, ...otherProps }) {\n return (\n \n {children}\n \n );\n}\n\nTableRow.propTypes = {\n children: elementsOfType([\n TableColumn,\n TableHeaderColumn,\n TableErrorColumn,\n ]),\n};\n\nexport default TableRow;\n","import styled from 'styled-components';\n\nimport TableRow from './TableRow';\nimport TableErrorColumn from './TableErrorColumn';\nimport { elementsOfType } from 'Components/util/propTypesUtils';\n\nconst TableErrorRow = styled(TableRow)`\n color: ${ p => p.theme.colors.error };\n`;\n\nTableErrorRow.propTypes = {\n children: elementsOfType([\n TableErrorColumn\n ]),\n};\n\nexport default TableErrorRow;\n","import React from 'react';\nimport styled from 'styled-components';\nimport classNames from 'classnames';\n\nimport { elementsOfType } from 'Components/util/propTypesUtils';\nimport TableRow from 'Components/table/TableRow';\nimport TableErrorRow from './TableErrorRow';\n\nconst ThemedTableBody = styled.tbody`\n tr.even {\n background-color: ${({ theme }) => theme.colors.palette.blue.ice};\n }\n`;\n\nfunction TableBody({ children, ...otherProps }) {\n let rows = React.Children.toArray(children);\n\n let nonErrorRows = 0;\n\n rows = rows.map((row) => {\n if (row.type !== TableErrorRow) {\n nonErrorRows += 1;\n }\n\n const evenRow = (nonErrorRows % 2 === 0);\n let className = row.props.className;\n\n className = classNames(className, {\n even: evenRow,\n odd: !evenRow,\n });\n\n return React.cloneElement(row, {\n className\n });\n });\n\n return (\n \n {rows}\n \n );\n}\n\nTableBody.propTypes = {\n children: elementsOfType([\n TableRow,\n TableErrorRow,\n ]),\n};\n\nexport default TableBody;\n","import React from 'react';\nimport styled from 'styled-components';\n\nimport { elementsOfType } from 'Components/util/propTypesUtils';\nimport TableHeader from 'Components/table/TableHeader';\nimport TableBody from 'Components/table/TableBody';\n\nconst roundingRadius = '4px';\n\nconst ThemedTable = styled.table`\n border-collapse: collapse;\n border-spacing: 0px;\n font-size: 12px;\n font-weight: 400;\n\n input + div {\n border: 0;\n }\n\n button {\n border: 0;\n }\n\n tr td div div {\n font-size: 12px;\n }\n\n thead tr th:not(:first-child) {\n border-left: solid 1px white;\n }\n\n thead tr:last-child th:first-child {\n border-top-left-radius: ${roundingRadius};\n }\n\n thead tr:last-child th:last-child {\n border-top-right-radius: ${roundingRadius};\n }\n\n tfoot tr:last-child td {\n height: 12px;\n background-color: ${({ theme }) => theme.colors.palette.grey.manatee};\n border-bottom-right-radius: ${roundingRadius};\n border-bottom-left-radius: ${roundingRadius};\n }\n`;\n\nconst Row = styled.tr`\n height: 12px;\n background-color: ${({ theme }) => theme.colors.palette.grey.manatee};\n\n`;\n\nfunction Table({ children, ...otherProps }) {\n const {\n noFooter,\n ...passedProps\n } = otherProps;\n\n const printFooter = () => {\n if (! noFooter) {\n return (\n \n \n \n \n \n );\n }\n };\n\n return (\n \n {children}\n {printFooter()}\n \n );\n}\n\nTable.propTypes = {\n children: elementsOfType([TableHeader, TableBody]),\n};\n\nexport default Table;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport ResendWelcomeButton from './ResendWelcomeButton';\nimport RoleSelect from 'Components/role-select/RoleSelect';\nimport TextInput from 'Components/text-input/TextInput';\nimport PageFrame from 'Components/page/PageFrame';\nimport CheckboxFormElement from 'Components/checkbox/CheckboxFormElement';\nimport WarningNotice from 'Components/notice/WarningNotice';\nimport { createPath, setAtPath } from 'Common/util/FormUtils';\nimport EnterpriseHierarchySelect from 'Components/enterprise-hierarchy-select/EnterpriseHierarchySelect';\nimport { Roles } from 'Components/app/roles';\nimport ThemedTable from 'Components/table/Table';\nimport ThemedTableBody from 'Components/table/TableBody';\nimport TableRow from 'Components/table/TableRow';\nimport TableColumn from 'Components/table/TableColumn';\nimport TableHeaderColumn from 'Components/table/TableHeaderColumn';\n\nconst Root = styled.div`\n word-break: break-word;\n`;\n\nconst StyledTextInput = styled(TextInput)`\n display: block;\n`;\n\nconst StyledResendWelcomeButton = styled(ResendWelcomeButton)`\n margin-top: 16px;\n`;\n\nfunction getDateString(dateTime) {\n if (!dateTime) {\n return '--';\n }\n\n return (new Date(dateTime)).toDateString();\n}\n\nexport default class UserEditor extends React.Component {\n static propTypes = {\n name: PropTypes.string,\n value: PropTypes.shape({\n id: PropTypes.number.isRequired,\n email_address: PropTypes.shape({\n email: PropTypes.string.isRequired,\n verified: PropTypes.bool.isRequired,\n }).isRequired,\n // sms_email_address can be null\n sms_email_address: PropTypes.shape({\n email: PropTypes.string.isRequired,\n }),\n name: PropTypes.string.isRequired,\n role: PropTypes.string.isRequired,\n hierarchy_visibility: PropTypes.number,\n active: PropTypes.bool.isRequired,\n created: PropTypes.string.isRequired,\n last_login: PropTypes.string,\n }).isRequired,\n validation: PropTypes.object,\n disabled: PropTypes.bool,\n allowDeactivate: PropTypes.bool,\n enterpriseHierarchy: PropTypes.shape({\n rootId: PropTypes.string.isRequired,\n }).isRequired,\n\n onChange: PropTypes.func.isRequired,\n onBlur: PropTypes.func,\n };\n\n static defaultProps = {\n name: '',\n validation: null,\n disabled: false,\n allowDeactivate: true,\n };\n\n constructor() {\n super();\n }\n\n _handleChange = (event) => {\n this.props.onChange(event);\n };\n\n _handleRoleChange = (event) => {\n const {\n name: nameProp,\n value: currentValue,\n enterpriseHierarchy,\n } = this.props;\n\n const { value: newRoleValue } = event.target;\n\n // If the role is changed to ADMIN, we also need to update the\n // visibility at the same time.\n if (newRoleValue === Roles.ADMIN) {\n let newValue = currentValue;\n // Update role\n newValue = setAtPath(newValue, 'role', newRoleValue);\n // Update visibility\n newValue = setAtPath(newValue, 'hierarchy_visibility', Number(enterpriseHierarchy.rootId));\n\n this._handleChange({\n target: {\n name: nameProp,\n value: newValue,\n },\n });\n }\n else {\n // Normal onChange behavior\n this._handleChange(event);\n }\n };\n\n _handleHierarchyVisibilityChange = (event) => {\n // The hierarchy visibility editor uses strings for node IDs. So we\n // need to convert them back to numbers on change.\n const { name, value } = event.target;\n\n this._handleChange({\n target: {\n name,\n value: value === null ? null : Number(value),\n },\n });\n };\n\n render() {\n const {\n value,\n validation,\n disabled,\n allowDeactivate,\n name: nameProp,\n enterpriseHierarchy,\n onChange,\n onBlur,\n ...otherProps\n } = this.props;\n\n const {\n id,\n email_address,\n sms_email_address,\n name,\n role,\n hierarchy_visibility,\n active,\n created,\n last_login,\n } = value;\n\n const roleElementId = `UserEditor_${id}_role`;\n\n return (\n \n \n {!email_address.verified && (\n \n \n This user has not finished setting up their account. The account will\n not be active until they complete the instructions in the setup email.\n \n \n \n )}\n \n \n \n \n \n\n \n \n \n \n Primary Email\n {email_address?.email}\n \n \n Text-Only Email\n {sms_email_address?.email || '--'}\n \n \n User Creation\n {getDateString(created)}\n \n \n Last Login\n {getDateString(last_login)}\n \n \n \n \n \n );\n }\n}\n","import { combineValidators } from 'Components/util/validationUtils';\n\nconst validate = combineValidators({\n name: (name) => name.trim() === '' ? 'Required' : null,\n role: (role) => role ? null : 'Required',\n});\n\nexport default validate;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { generateUserPatch } from 'Redux/actions';\nimport UserEditor from './UserEditor';\nimport validate from './UserEditorValidation';\nimport { FormController } from '../../../form/FormController';\nimport Form from 'Components/form/Form';\nimport { REQUEST_FAILURE, REQUEST_SUCCESS } from 'Common/util/ResourceCollection/actions';\n\nexport class EditUserForm extends React.Component {\n static propTypes = {\n sessionUserId: PropTypes.number,\n initialValue: PropTypes.shape({\n id: PropTypes.number.isRequired,\n }).isRequired,\n actions: PropTypes.shape({\n patchUserReset: PropTypes.func.isRequired,\n patchUser: PropTypes.func.isRequired,\n }).isRequired,\n enterpriseHierarchy: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n }\n\n componentDidMount() {\n const userId = this.props.initialValue.id;\n this.props.actions.patchUserReset(userId);\n }\n\n _handleSubmit = async (modifiedValue, formController) => {\n const {\n initialValue,\n setSubmitError,\n resetValue,\n } = formController;\n\n const patchData = generateUserPatch(initialValue, modifiedValue);\n\n // Send the request\n const response = await this.props.actions.patchUser(modifiedValue.id, patchData);\n\n if (response.type === REQUEST_SUCCESS) {\n resetValue();\n }\n else if (response.type === REQUEST_FAILURE) {\n setSubmitError(response.payload?.error);\n }\n };\n\n _handleReset = () => {\n const userId = this.props.initialValue.id;\n this.props.actions.patchUserReset(userId);\n };\n\n render() {\n const { sessionUserId, initialValue, enterpriseHierarchy } = this.props;\n\n const allowDeactivate = sessionUserId !== initialValue.id;\n\n return (\n validate(value)}\n onSubmit={this._handleSubmit}\n onReset={this._handleReset}\n render={(innerProps) => {\n const {\n value,\n validation,\n hasChanges,\n isSubmitting,\n submitError,\n\n handleChange,\n handleSubmit,\n handleReset,\n } = innerProps;\n\n return (\n \n \n \n );\n }}\n />\n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\n\nimport { connect } from 'react-redux';\nimport { bindActionCreators } from 'redux';\nimport { getUser, patchUser, patchUserReset, getHierarchy } from 'Redux/actions';\nimport { selectUserData, selectUserRequest } from 'Redux/reducers/users';\n\nimport MultiRequestLoadingWrapper from 'Components/loading-indicator/MultiRequestLoadingWrapper';\nimport Page from 'Components/page/Page';\nimport PageContent from 'Components/page/PageContentStandard';\nimport ConfigPageTitle from 'Components/page/ConfigPageTitle';\nimport PageDescription from 'Components/page/PageDescription';\nimport { EditUserForm } from './internal/EditUserForm';\nimport { selectFlattenedHierarchy, selectHierarchyRequest } from 'Redux/reducers/hierarchy';\n\nexport class EditUserPagePresentation extends React.Component {\n static propTypes = {\n // Actions\n actions: PropTypes.shape({\n getUser: PropTypes.func.isRequired,\n patchUser: PropTypes.func.isRequired,\n patchUserReset: PropTypes.func.isRequired,\n getHierarchy: PropTypes.func.isRequired,\n }).isRequired,\n // There may be more fields in here than what's below, but this is just\n // what's required by this component\n user: PropTypes.shape({\n id: PropTypes.number.isRequired,\n }),\n hierarchyStore: PropTypes.object.isRequired,\n requests: PropTypes.shape({\n getUser: PropTypes.shape({\n status: PropTypes.string.isRequired,\n error: PropTypes.shape({\n message: PropTypes.string,\n }),\n }).isRequired,\n patchUser: PropTypes.shape({\n status: PropTypes.string.isRequired,\n error: PropTypes.shape({\n message: PropTypes.string,\n }),\n }).isRequired,\n getHierarchy: PropTypes.shape({\n status: PropTypes.string.isRequired,\n error: PropTypes.shape({\n message: PropTypes.string,\n }),\n }).isRequired,\n }).isRequired,\n match: PropTypes.shape({\n params: PropTypes.shape({\n user: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string\n ]).isRequired\n }).isRequired\n }).isRequired,\n sessionUser: PropTypes.shape({\n id: PropTypes.number.isRequired,\n }),\n };\n\n constructor(props) {\n super(props);\n }\n\n componentDidMount() {\n const userId = Number(this.props.match.params.user);\n this.props.actions.getUser(userId);\n this.props.actions.getHierarchy();\n }\n\n render() {\n const {\n sessionUser,\n user,\n requests,\n actions,\n hierarchyStore,\n } = this.props;\n\n return (\n \n Edit User\n \n View or change details for a user.\n \n \n {\n return (\n \n );\n }}\n />\n \n \n );\n }\n}\n\nconst mapStateToProps = (state, ownProps) => {\n const { users, session, hierarchy } = state;\n const userId = Number(ownProps.match.params.user);\n\n return {\n sessionUser: session?.sessionData,\n user: selectUserData(users, userId),\n hierarchyStore: hierarchy,\n requests: {\n getUser: selectUserRequest(users, userId, 'getUser'),\n patchUser: selectUserRequest(users, userId, 'patchUser'),\n getHierarchy: selectHierarchyRequest(hierarchy, 'getHierarchy'),\n },\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n actions: bindActionCreators({\n getUser: getUser,\n patchUser: patchUser,\n patchUserReset: patchUserReset,\n getHierarchy: getHierarchy,\n }, dispatch),\n };\n};\n\n// connect the component to Redux\nconst EditUserPage = withRouter(connect(\n mapStateToProps,\n mapDispatchToProps\n)(EditUserPagePresentation));\n\nexport default EditUserPage;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport TextInput from 'Components/text-input/TextInput';\n\nconst StyledTextInput = styled(TextInput)`\n display: block;\n`;\n\nexport default class PrimaryEmailEditor extends React.Component {\n static propTypes = {\n className: PropTypes.string,\n name: PropTypes.string.isRequired,\n value: PropTypes.shape({\n email: PropTypes.string.isRequired,\n }).isRequired,\n };\n\n constructor(props) {\n super(props);\n }\n\n render() {\n const { name, value } = this.props;\n\n return (\n \n );\n }\n}\n","import styled from 'styled-components';\nimport { Body1 } from 'Components/typography/typography';\n\nconst SectionDescription = styled(Body1)`\n display: block;\n color: ${props => props.theme.colors.darkText.mediumEmphasis};\n margin-bottom: 16px;\n\n > p:first-of-type {\n margin-block-start: 0;\n }\n > p:last-of-type {\n margin-block-end: 0;\n }\n`;\n\nexport default SectionDescription;\n","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport SectionDescription from 'Components/text/SectionDescription';\n\nexport const primaryEmailDescription = (\n \n Each account has one primary email address that is used to log in and\n for account administration. The primary email address will also receive\n email alerts and email reports.\n \n);\n\nexport const smsEmailDescription = (\n \n

\n Alerts can optionally be delivered as text messages through\n a mobile carrier gateway.\n To support this service, XL Enterprise will send short, text-only alerts to\n this email address.\n

\n\n

\n Please note that not all carriers support this service and message and data rates\n from your mobile carrier may apply to text messages sent to you by XL Enterprise.\n

\n
\n);\n\nexport const smsEmailShortDescription = (\n

\n Enter the email address to use for text messages. This email address\n will include your mobile phone number and a domain specific to your\n mobile carrier.\n See Mobile Gateways for more information.\n

\n);\n","import React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport PopupMask from './PopupMask';\n\nconst RENDER_PHASE = {\n MEASURING: 'MEASURING',\n POSITIONING: 'POSITIONING',\n DONE: 'DONE',\n};\n\nconst Mask = styled(PopupMask)`\n display: flex;\n align-items: center;\n justify-content: center;\n\n transition: opacity 300ms;\n\n opacity: 0;\n &.visible {\n opacity: 1;\n }\n`;\n\nconst ContentWrapper = styled.div`\n display: inline-block;\n position: relative;\n max-width: 100%;\n max-height: 100%;\n opacity: 1.0;\n`;\n\nexport default class Popup extends React.Component {\n static propTypes = {\n children: PropTypes.node,\n onMaskClick: PropTypes.func,\n // If width and height are not provided, the popup will automatically\n // fit to the size of the content within.\n width: PropTypes.number.isRequired,\n height: PropTypes.number,\n darkenMask: PropTypes.bool,\n };\n\n static defaultProps = {\n children: null,\n onMaskClick: () => {},\n height: null,\n darkenMask: false,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n measured: false,\n phase: RENDER_PHASE.MEASURING,\n maskWidth: 0,\n maskHeight: 0,\n contentWidth: 0,\n };\n this._animationFrameRequest = null;\n this._maskRef = React.createRef();\n this._contentMeasureRef = React.createRef();\n }\n\n componentDidMount() {\n window.addEventListener('resize', this._handleWindowResize);\n\n this._animationFrameRequest = requestAnimationFrame(() => {\n this._afterRender();\n this._animationFrameRequest = null;\n });\n }\n\n componentDidUpdate(prevProps, prevState) {\n // Cancel any pending animation frame request\n if (this._animationFrameRequest !== null) {\n cancelAnimationFrame(this._animationFrameRequest);\n }\n\n this._animationFrameRequest = requestAnimationFrame(() => {\n this._afterRender();\n this._animationFrameRequest = null;\n });\n }\n\n componentWillUnmount() {\n window.removeEventListener('resize', this._handleWindowResize);\n\n if (this._animationFrameRequest !== null) {\n cancelAnimationFrame(this._animationFrameRequest);\n }\n }\n\n _afterRender() {\n this.setState((state) => {\n const { phase } = this.state;\n\n switch (phase) {\n case RENDER_PHASE.MEASURING:\n return {\n ...this._measureMask(),\n ...this._measureContent(),\n phase: RENDER_PHASE.POSITIONING,\n };\n case RENDER_PHASE.POSITIONING:\n return {\n phase: RENDER_PHASE.DONE,\n };\n case RENDER_PHASE.DONE:\n default:\n break;\n }\n });\n }\n\n _measureMask() {\n const mask = this._maskRef.current;\n const maskRect = mask.getBoundingClientRect();\n\n return {\n maskWidth: maskRect.width,\n maskHeight: maskRect.height,\n };\n }\n\n _measureContent() {\n const content = this._contentMeasureRef.current;\n const contentRect = content.getBoundingClientRect();\n\n return {\n contentWidth: contentRect.width,\n };\n }\n\n _handleWindowResize = () => {\n this.setState({\n ...this._measureMask(),\n });\n };\n\n _handleContentWrapperClick = (event) => {\n // This stops click events from bubbling up to the mask\n event.stopPropagation();\n };\n\n render() {\n const {\n children,\n onMaskClick,\n darkenMask,\n width: widthProp,\n height: heightProp,\n } = this.props;\n\n const {\n phase,\n maskWidth,\n maskHeight,\n contentWidth,\n } = this.state;\n\n let contentWrapperStyle = {};\n let contentStyle = {};\n\n switch (phase) {\n case RENDER_PHASE.MEASURING:\n contentWrapperStyle = {\n opacity: '1',\n position: 'fixed',\n overflow: 'visible',\n display: 'inline-block',\n maxWidth: 'unset',\n maxHeight: 'unset',\n width: `${widthProp}px`,\n height: Number.isFinite(heightProp) ? `${heightProp}px` : undefined,\n };\n break;\n case RENDER_PHASE.POSITIONING:\n case RENDER_PHASE.DONE: {\n // If there is not enough space horizontally to\n // display the content, put it to fullscreen\n\n const fullscreen = maskWidth <= contentWidth;\n\n if (fullscreen) {\n contentWrapperStyle = {\n width: '100%',\n height: '100%',\n };\n }\n else {\n contentWrapperStyle = {\n maxWidth: `${maskWidth}px`,\n maxHeight: `${maskHeight}px`,\n width: `${widthProp}px`,\n // If a fixed height was provided, use it. Otherwise,\n // allow the height to be dynamic.\n height: Number.isFinite(heightProp) ? `${heightProp}px` : undefined,\n };\n contentStyle = {\n maxHeight: `${maskHeight}px`,\n };\n }\n break;\n }\n }\n\n return (\n \n \n {React.cloneElement(React.Children.only(children), {\n style: contentStyle,\n })}\n \n \n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { T2, Body1 } from 'Components/typography/typography';\nimport Popup from './Popup';\nimport PopupLayer from './PopupLayer';\n\nconst TopBar = styled.div``;\nconst TitleText = styled(T2)``;\nconst WindowBody = styled(Body1)``;\nconst BottomBar = styled.div``;\n\nconst WindowWrapper = styled.div`\n box-sizing: border-box;\n border: 1px solid #d5d5d5;\n box-shadow: 2px 2px 20px #505050;\n background-color: white;\n\n width: 100%;\n height: 100%;\n\n display: flex;\n flex-direction: column;\n\n overflow: auto;\n\n > ${TopBar} {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n padding: 10px 10px;\n border-bottom: 1px solid #d5d5d5;\n background-color: #f0f0f0;\n\n > ${TitleText} {\n display: block;\n flex: 1 0 auto;\n }\n }\n\n > ${WindowBody} {\n flex: 1 1 auto;\n display: block;\n padding: 20px 10px;\n font-size: 12px;\n overflow: auto;\n }\n\n > ${BottomBar} {\n flex: 0 0 auto;\n display: flex;\n flex-direction: row-reverse;\n align-items: center;\n padding: 10px;\n border-top: 1px solid #d5d5d5;\n background-color: #f0f0f0;\n\n > * {\n margin-left: 8px;\n }\n }\n`;\n\nexport default class PopupWindow extends React.Component {\n static propTypes = {\n title: PropTypes.string,\n buttons: PropTypes.arrayOf(PropTypes.node),\n onMaskClick: PropTypes.func,\n children: PropTypes.node,\n width: PropTypes.number,\n height: PropTypes.number,\n };\n\n static defaultProps = {\n onMaskClick: () => {},\n width: 500,\n };\n\n constructor(props) {\n super(props);\n }\n\n render() {\n const {\n title,\n buttons,\n onMaskClick,\n children,\n width,\n height,\n } = this.props;\n\n return (\n \n \n \n \n {title}\n \n \n {children}\n \n \n {buttons}\n \n \n \n \n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport TextButton from 'Components/button/TextButton';\nimport ContainedButton from 'Components/button/ContainedButton';\nimport ErrorNotice from 'Components/notice/ErrorNotice';\nimport { Body1 } from 'Components/typography/typography';\nimport SuccessNotice from 'Components/notice/SuccessNotice';\nimport WarningNotice from 'Components/notice/WarningNotice';\n\nconst PendingEmailChange = styled(WarningNotice)``;\n\nconst PendingEmailChangeText = styled(Body1)`\n display: block;\n`;\n\nconst PendingEmailChangeButtons = styled.div`\n display: flex;\n margin-top: 16px;\n justify-content: flex-end;\n\n & > * {\n margin-left: 10px;\n }\n`;\n\nconst PendingEmailChangeError = styled.div`\n margin-top: 16px;\n`;\n\nconst PendingEmailChangeSuccess = styled.div`\n margin-top: 16px;\n`;\n\nexport default class VerificationNotice extends React.Component {\n static propTypes = {\n className: PropTypes.string,\n children: PropTypes.node,\n disabled: PropTypes.bool,\n error: PropTypes.node,\n success: PropTypes.node,\n onCancelVerificationClick: PropTypes.func.isRequired,\n onResendVerificationClick: PropTypes.func.isRequired,\n };\n\n static defaultProps = {\n disabled: false,\n };\n\n constructor(props) {\n super(props);\n }\n\n render() {\n const {\n className,\n children,\n disabled,\n error,\n success,\n onCancelVerificationClick,\n onResendVerificationClick,\n } = this.props;\n\n return (\n \n \n {children}\n \n \n \n Cancel Request\n \n \n Resend Verification\n \n \n {error && (\n \n \n {error}\n \n \n )}\n {success && (\n \n \n {success}\n \n \n )}\n \n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport TextInput from 'Components/text-input/TextInput';\nimport OutlinedButton from 'Components/button/OutlinedButton';\nimport PopupWindow from 'Components/popup/PopupWindow';\nimport ContainedButton from 'Components/button/ContainedButton';\nimport ErrorNotice from 'Components/notice/ErrorNotice';\nimport VerificationNotice from './VerificationNotice';\n\nconst StyledTextInput = styled(TextInput)`\n display: block;\n`;\n\nexport default class PendingEmailEditor extends React.Component {\n static propTypes = {\n className: PropTypes.string,\n name: PropTypes.string.isRequired,\n value: PropTypes.shape({\n email: PropTypes.string,\n id: PropTypes.number,\n }),\n onChange: PropTypes.func.isRequired,\n validation: PropTypes.shape({\n email: PropTypes.string,\n }),\n disabled: PropTypes.bool,\n onSubmit: PropTypes.func.isRequired,\n onReset: PropTypes.func.isRequired,\n onCancelVerificationClick: PropTypes.func.isRequired,\n onResendVerificationClick: PropTypes.func.isRequired,\n error: PropTypes.node,\n success: PropTypes.node,\n };\n\n static defaultProps = {\n disabled: false,\n };\n\n constructor(props) {\n super(props);\n }\n\n _emitChange(value) {\n this.props.onChange({\n target: {\n name: this.props.name,\n value: value,\n },\n });\n }\n\n _handleEmailChange = (event) => {\n this._emitChange({\n ...this.props.value,\n email: event.target.value,\n });\n };\n\n _handleChangeClick = (event) => {\n this._emitChange({\n email: '',\n verified: false,\n });\n };\n\n _handleCancelClick = (event) => {\n this._emitChange(null);\n this.props.onReset();\n };\n\n _handleConfirmClick = () => {\n this.props.onSubmit(this.props.value);\n };\n\n render() {\n const {\n name,\n value,\n validation,\n disabled,\n error,\n success,\n onCancelVerificationClick,\n onResendVerificationClick,\n } = this.props;\n\n const hasPendingEmail = value !== null;\n const isSaved = typeof value?.id === 'number';\n\n return (\n \n {!isSaved && (\n \n Change Email\n \n )}\n {hasPendingEmail && !isSaved && (\n \n Change Email\n ,\n \n Cancel\n \n ]}\n >\n \n {error && (\n \n {error}\n \n )}\n \n )}\n {hasPendingEmail && isSaved && (\n \n A verification link has been sent to {value.email}.\n You must confirm this email address before it will become\n your primary email.\n \n )}\n \n );\n }\n}\n","import validatePassword from 'Components/password/PasswordRulesValidation';\nimport { combineValidators, mergeObjectValidators } from 'Components/util/validationUtils';\n\nconst emailAddressValidator = combineValidators({\n email: (email) => email.trim() === '' ? 'Required' : null,\n});\n\nexport const pendingEmailAddressValidator = (editorData) => {\n if (editorData.pending_email_address === null) {\n return null;\n }\n\n const email_address = {\n ...editorData.email_address,\n email: editorData.email_address.email.trim().toLowerCase(),\n };\n\n const pending_email_address = {\n ...editorData.pending_email_address,\n email: editorData.pending_email_address.email.trim().toLowerCase(),\n };\n\n const validation = {\n pending_email_address: emailAddressValidator(pending_email_address),\n };\n\n if (!validation.pending_email_address) {\n if (pending_email_address.email === email_address.email) {\n validation.pending_email_address = {\n email: 'New email must be different from your current',\n };\n }\n }\n\n return validation;\n};\n\nexport const smsEmailAddressValidator = (editorData) => {\n if (editorData.sms_email_address === null) {\n return null;\n }\n\n const emailValidation = emailAddressValidator(editorData.sms_email_address);\n\n if (emailValidation !== null) {\n return {\n sms_email_address: emailValidation,\n };\n }\n else {\n return null;\n }\n};\n\nconst baseValidator = combineValidators({\n name: (name) => name.trim() === '' ? 'Required' : null,\n role: (role) => role ? null : 'Required',\n timezone: (timezone) => timezone ? null : 'Required',\n});\n\nconst passwordsValidator = (editorData) => {\n if (editorData?.current_password !== '' && editorData?.new_password !== '') {\n return {\n new_password: validatePassword(editorData?.new_password),\n };\n }\n else {\n return null;\n }\n};\n\nconst validate = mergeObjectValidators([\n baseValidator,\n passwordsValidator,\n]);\n\nexport default validate;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport * as RequestStatus from 'Common/data/RequestStatus';\nimport PageFrame from 'Components/page/PageFrame';\nimport PrimaryEmailEditor from './PrimaryEmailEditor';\nimport { primaryEmailDescription } from './sectionDescriptions';\nimport PendingEmailEditor from './PendingEmailEditor';\nimport { generatePendingEmailAddressPatch } from 'Redux/actions';\nimport { pendingEmailAddressValidator } from './SessionUserEditorValidation';\n\nfunction getInitialStateFromProps(props) {\n return {\n initialValue: props.initialValue,\n modifiedValue: props.initialValue,\n serverError: null,\n verifyEmailResendSuccess: false,\n };\n}\n\nexport default class PrimaryEmailForm extends React.Component {\n static propTypes = {\n initialValue: PropTypes.shape({\n email_address: PropTypes.object.isRequired,\n pending_email_address: PropTypes.object, // can be null\n }).isRequired,\n requests: PropTypes.shape({\n patchSessionUserEmail: PropTypes.shape({\n status: PropTypes.string.isRequired,\n error: PropTypes.object,\n }).isRequired,\n verifyEmailResend: PropTypes.shape({\n status: PropTypes.string.isRequired,\n error: PropTypes.object,\n }).isRequired,\n }).isRequired,\n actions: PropTypes.shape({\n patchSessionUserEmail: PropTypes.func.isRequired,\n patchSessionUserEmailReset: PropTypes.func.isRequired,\n verifyEmailResendReset: PropTypes.func.isRequired,\n verifyEmailResend: PropTypes.func.isRequired,\n }).isRequired,\n };\n\n static defaultProps = {\n disabled: false,\n name: '',\n validation: null,\n };\n\n constructor(props) {\n super(props);\n this.state = getInitialStateFromProps(props);\n }\n\n componentDidMount() {\n this.props.actions.patchSessionUserEmailReset();\n this.props.actions.verifyEmailResendReset();\n }\n\n _handleChange = (event) => {\n const { name: changedName, value: changedValue } = event.target;\n\n this.setState((state) => {\n return {\n modifiedValue: {\n ...state.modifiedValue,\n [changedName]: changedValue,\n },\n };\n });\n };\n\n _handleSubmit = async (pendingEmailAddressValue) => {\n // Start by clearing any existing server error or success messages\n this.setState({\n serverError: null,\n verifyEmailResendSuccess: false,\n });\n\n let payload = {};\n\n const initialEmailValue = this.state.initialValue.pending_email_address;\n\n const emailPatch = generatePendingEmailAddressPatch(initialEmailValue, pendingEmailAddressValue);\n\n if (emailPatch !== undefined) {\n payload.pending_email_address = emailPatch;\n }\n\n await this.props.actions.patchSessionUserEmail(payload);\n\n if (this.props.requests.patchSessionUserEmail.status === RequestStatus.SUCCESS) {\n // Reset the form after submit\n const nextInitialValue = this.props.initialValue;\n\n this.setState(prevState => {\n return {\n initialValue: nextInitialValue,\n modifiedValue: nextInitialValue,\n serverError: null,\n };\n });\n }\n else if (this.props.requests.patchSessionUserEmail.status === RequestStatus.FAILURE) {\n this.setState(prevState => {\n return {\n serverError: this.props.requests.patchSessionUserEmail.error,\n };\n });\n }\n };\n\n _handleCancelVerificationClick = () => {\n this._handleSubmit(null);\n };\n\n _handleResendVerificationClick = async () => {\n // Start by clearing any existing server error or success messages\n this.setState({\n serverError: null,\n verifyEmailResendSuccess: false,\n });\n\n // Send the request\n await this.props.actions.verifyEmailResend({\n email: this.state.initialValue.pending_email_address.email,\n });\n\n if (this.props.requests.verifyEmailResend.status === RequestStatus.SUCCESS) {\n this.setState(prevState => {\n return {\n serverError: null,\n verifyEmailResendSuccess: true,\n };\n });\n }\n else if (this.props.requests.verifyEmailResend.status === RequestStatus.FAILURE) {\n this.setState(prevState => {\n return {\n serverError: this.props.requests.verifyEmailResend.error,\n verifyEmailResendSuccess: false,\n };\n });\n }\n };\n\n _handleReset = () => {\n this.setState(getInitialStateFromProps(this.props));\n };\n\n render() {\n const { requests } = this.props;\n const { modifiedValue, serverError, verifyEmailResendSuccess } = this.state;\n const validation = pendingEmailAddressValidator(modifiedValue);\n\n const {\n email_address,\n pending_email_address,\n } = modifiedValue;\n\n const isLoading = (\n requests.patchSessionUserEmail.status === RequestStatus.PENDING ||\n requests.verifyEmailResend.status === RequestStatus.PENDING\n );\n const topLevelErrorMessage = serverError?.message;\n const emailErrorMessages = serverError?.payload?.pending_email_address?.email;\n\n return (\n \n {primaryEmailDescription}\n \n \n {topLevelErrorMessage}\n {emailErrorMessages?.map?.((msg, i) => (
  • {msg}
  • ))}\n \n )}\n success={verifyEmailResendSuccess && (\n \n Verification email resent.\n \n )}\n />\n
    \n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport TextInput from 'Components/text-input/TextInput';\nimport OutlinedButton from 'Components/button/OutlinedButton';\nimport PopupWindow from 'Components/popup/PopupWindow';\nimport ContainedButton from 'Components/button/ContainedButton';\nimport ErrorNotice from 'Components/notice/ErrorNotice';\nimport VerificationNotice from './VerificationNotice';\nimport { Body1 } from 'Components/typography/typography';\nimport { smsEmailShortDescription } from './sectionDescriptions';\n\nconst StyledTextInput = styled(TextInput)`\n display: block;\n`;\n\nconst PopupWindowDescription = styled(Body1)`\n display: block;\n margin-bottom: 16px;\n color: ${props => props.theme.colors.darkText.mediumEmphasis};\n`;\n\nexport default class SmsEmailEditor extends React.Component {\n static propTypes = {\n className: PropTypes.string,\n name: PropTypes.string.isRequired,\n value: PropTypes.shape({\n id: PropTypes.number, // Can be missing if a new email is being added\n email: PropTypes.string.isRequired,\n verified: PropTypes.bool.isRequired,\n }), // Can be null if no email is set\n onChange: PropTypes.func.isRequired,\n validation: PropTypes.shape({\n email: PropTypes.string,\n }),\n disabled: PropTypes.bool,\n autoFocus: PropTypes.bool,\n onSubmit: PropTypes.func.isRequired,\n onDeleteCurrentClick: PropTypes.func.isRequired,\n onCancelVerificationClick: PropTypes.func.isRequired,\n onResendVerificationClick: PropTypes.func.isRequired,\n onReset: PropTypes.func.isRequired,\n error: PropTypes.node,\n success: PropTypes.node,\n };\n\n static defaultProps = {\n disabled: false,\n autoFocus: false,\n };\n\n constructor(props) {\n super(props);\n }\n\n _emitChange = (value) => {\n this.props.onChange({\n target: {\n name: this.props.name,\n value: value,\n },\n });\n };\n\n _handleChange = (event) => {\n this._emitChange({\n ...(this.props.value || {}),\n email: event.target.value,\n });\n };\n\n _handleAddEmailClick = () => {\n this._emitChange({\n email: '',\n verified: false,\n });\n };\n\n _handleAddConfirmClick = () => {\n this.props.onSubmit(this.props.value);\n };\n\n _handleAddCancelClick = () => {\n this.props.onReset();\n };\n\n render() {\n const {\n name,\n value,\n validation,\n disabled,\n autoFocus,\n onDeleteCurrentClick,\n onCancelVerificationClick,\n onResendVerificationClick,\n error,\n success,\n } = this.props;\n\n const hasValue = value !== null;\n const hasVerifiedEmail = hasValue && value?.verified;\n const hasPendingEmail = hasValue && !value?.verified;\n const isAddingEmail = hasValue && typeof value?.id !== 'number';\n\n return (\n \n {hasVerifiedEmail && (\n \n Delete\n \n }\n />\n )}\n {hasPendingEmail && !isAddingEmail && (\n \n A verification link has been sent to {value.email}.\n You must confirm this email address before it will become\n active.\n \n )}\n {(!hasValue || isAddingEmail) && (\n \n Add Text-Only Email\n \n )}\n {isAddingEmail && (\n \n Add Email\n ,\n \n Cancel\n \n ]}\n >\n \n {smsEmailShortDescription}\n \n \n {error && (\n \n {error}\n \n )}\n \n )}\n \n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport * as RequestStatus from 'Common/data/RequestStatus';\nimport PageFrame from 'Components/page/PageFrame';\nimport { smsEmailDescription } from './sectionDescriptions';\nimport { generateSmsEmailAddressPatch } from 'Redux/actions';\nimport { smsEmailAddressValidator } from './SessionUserEditorValidation';\nimport SmsEmailEditor from './SmsEmailEditor';\n\nfunction getInitialStateFromProps(props) {\n return {\n initialValue: props.initialValue,\n modifiedValue: props.initialValue,\n serverError: null,\n verifySmsEmailResendSuccess: false,\n };\n}\n\nexport default class SmsEmailForm extends React.Component {\n static propTypes = {\n initialValue: PropTypes.shape({\n email_address: PropTypes.object.isRequired,\n sms_email_address: PropTypes.object, // can be null\n }).isRequired,\n requests: PropTypes.shape({\n patchSessionUserSmsEmail: PropTypes.shape({\n status: PropTypes.string.isRequired,\n error: PropTypes.object,\n }).isRequired,\n verifySmsEmailResend: PropTypes.shape({\n status: PropTypes.string.isRequired,\n error: PropTypes.object,\n }).isRequired,\n }).isRequired,\n actions: PropTypes.shape({\n patchSessionUserSmsEmail: PropTypes.func.isRequired,\n patchSessionUserSmsEmailReset: PropTypes.func.isRequired,\n verifySmsEmailResend: PropTypes.func.isRequired,\n verifySmsEmailResendReset: PropTypes.func.isRequired,\n }).isRequired,\n };\n\n static defaultProps = {\n disabled: false,\n name: '',\n validation: null,\n };\n\n constructor(props) {\n super(props);\n this.state = getInitialStateFromProps(props);\n }\n\n componentDidMount() {\n this.props.actions.patchSessionUserSmsEmailReset();\n this.props.actions.verifySmsEmailResendReset();\n }\n\n _handleChange = (event) => {\n const { name: changedName, value: changedValue } = event.target;\n\n this.setState((state) => {\n return {\n modifiedValue: {\n ...state.modifiedValue,\n [changedName]: changedValue,\n },\n };\n });\n };\n\n _handleSubmit = async (smsEmailAddressValue) => {\n // Start by clearing any existing server error or success messages\n this.setState({\n serverError: null,\n verifySmsEmailResendSuccess: false,\n });\n\n let payload = {};\n\n const initialEmailValue = this.state.initialValue.sms_email_address;\n\n const emailPatch = generateSmsEmailAddressPatch(initialEmailValue, smsEmailAddressValue);\n\n if (emailPatch !== undefined) {\n payload.sms_email_address = emailPatch;\n }\n\n await this.props.actions.patchSessionUserSmsEmail(payload);\n\n if (this.props.requests.patchSessionUserSmsEmail.status === RequestStatus.SUCCESS) {\n // Reset the form after submit\n const nextInitialValue = this.props.initialValue;\n\n this.setState(prevState => {\n return {\n initialValue: nextInitialValue,\n modifiedValue: nextInitialValue,\n serverError: null,\n };\n });\n }\n else if (this.props.requests.patchSessionUserSmsEmail.status === RequestStatus.FAILURE) {\n this.setState(prevState => {\n return {\n serverError: this.props.requests.patchSessionUserSmsEmail.error,\n };\n });\n }\n };\n\n _handleDeleteCurrentClick = () => {\n this._handleSubmit(null);\n };\n\n _handleCancelVerificationClick = () => {\n this._handleSubmit(null);\n };\n\n _handleResendVerificationClick = async () => {\n // Start by clearing any existing server error or success messages\n this.setState({\n serverError: null,\n verifySmsEmailResendSuccess: false,\n });\n\n // Send the request\n await this.props.actions.verifySmsEmailResend({\n email: this.state.initialValue.sms_email_address.email,\n });\n\n if (this.props.requests.verifySmsEmailResend.status === RequestStatus.SUCCESS) {\n this.setState(prevState => {\n return {\n serverError: null,\n verifySmsEmailResendSuccess: true,\n };\n });\n }\n else if (this.props.requests.verifySmsEmailResend.status === RequestStatus.FAILURE) {\n this.setState(prevState => {\n return {\n serverError: this.props.requests.verifySmsEmailResend.error,\n verifySmsEmailResendSuccess: false,\n };\n });\n }\n };\n\n _handleReset = () => {\n this.setState(getInitialStateFromProps(this.props));\n };\n\n render() {\n const { requests } = this.props;\n const { modifiedValue, serverError, verifySmsEmailResendSuccess } = this.state;\n const validation = smsEmailAddressValidator(modifiedValue);\n\n const {\n sms_email_address,\n } = modifiedValue;\n\n const isLoading = (\n requests.patchSessionUserSmsEmail.status === RequestStatus.PENDING ||\n requests.verifySmsEmailResend.status === RequestStatus.PENDING\n );\n const topLevelErrorMessage = serverError?.message;\n const emailErrorMessages = serverError?.payload?.sms_email_address?.email;\n\n return (\n \n {smsEmailDescription}\n \n {topLevelErrorMessage}\n {emailErrorMessages?.map?.((msg, i) => (
  • {msg}
  • ))}\n \n )}\n success={verifySmsEmailResendSuccess && (\n \n Verification email resent.\n \n )}\n />\n
    \n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport UnmaskablePasswordInput from 'Components/password/UnmaskablePasswordInput';\nimport { createPath } from 'Common/util/FormUtils';\n\nconst Root = styled.div``;\n\nclass ChangePasswordControl extends React.Component {\n constructor() {\n super();\n }\n\n render() {\n const {\n name,\n value,\n validation,\n disabled,\n onChange,\n } = this.props;\n\n const newPasswordDisabled = !(value.current_password && value.current_password !== '');\n\n return (\n \n \n \n \n );\n }\n}\n\nChangePasswordControl.defaultProps = {\n disabled: false,\n};\n\nChangePasswordControl.propTypes = {\n name: PropTypes.string.isRequired,\n value: PropTypes.shape({\n current_password: PropTypes.string.isRequired,\n new_password: PropTypes.string.isRequired,\n }).isRequired,\n\n disabled: PropTypes.bool,\n onChange: PropTypes.func.isRequired,\n validation: PropTypes.objectOf(PropTypes.string),\n};\n\nexport default ChangePasswordControl;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport ChangePasswordControl from 'Components/password/ChangePasswordControl';\nimport RoleSelect from 'Components/role-select/RoleSelect';\nimport TimezoneSelect from 'Components/timezone/TimezoneSelect';\nimport TextInput from 'Components/text-input/TextInput';\nimport OutlinedButton from 'Components/button/OutlinedButton';\nimport { Caption } from 'Components/typography/typography';\nimport PageFrame from 'Components/page/PageFrame';\nimport { createPath } from 'Common/util/FormUtils';\nimport EnterpriseHierarchySelect from 'Components/enterprise-hierarchy-select/EnterpriseHierarchySelect';\nimport { nullable } from 'Components/util/propTypesUtils';\n\nconst Root = styled.div`\n word-break: break-word;\n`;\n\nconst StyledTextInput = styled(TextInput)`\n display: block;\n`;\n\nconst ChangePasswordLabel = styled(Caption)`\n display: block;\n color: ${props => props.theme.colors.darkText.mediumEmphasis};\n line-height: 2em;\n display: none;\n`;\n\nconst ChangePasswordButton = styled(OutlinedButton)`\n margin-bottom: 16px;\n`;\n\nfunction getDateString(dateTime) {\n if (!dateTime) {\n return '--';\n }\n\n return (new Date(dateTime)).toDateString();\n}\n\nexport default class SessionUserEditor extends React.Component {\n static propTypes = {\n disabled: PropTypes.bool,\n name: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n validation: PropTypes.object,\n value: PropTypes.shape({\n id: PropTypes.number.isRequired,\n current_password: PropTypes.string.isRequired,\n new_password: PropTypes.string.isRequired,\n created: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n role: PropTypes.string.isRequired,\n timezone: PropTypes.string.isRequired,\n hierarchy_visibility: nullable(PropTypes.number).isRequired,\n }).isRequired,\n enterpriseHierarchy: PropTypes.object,\n };\n\n static defaultProps = {\n disabled: false,\n validation: null,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n showChangePassword: false,\n };\n }\n\n _handleShowPasswordClick = () => {\n this.setState(({ showChangePassword }) => ({\n showChangePassword: !showChangePassword\n }));\n };\n\n render() {\n const {\n name: nameProp,\n value,\n validation,\n disabled,\n onChange,\n enterpriseHierarchy,\n ...otherProps\n } = this.props;\n const {\n showChangePassword,\n } = this.state;\n\n const password_validation = {\n current_password: validation?.current_password,\n new_password: validation?.new_password\n };\n\n const {\n created,\n current_password,\n name,\n new_password,\n role,\n id,\n timezone,\n hierarchy_visibility,\n } = value;\n\n const roleElementId = `SessionUserEditor_${id}_role`;\n const timezoneElementId = `SessionUserEditor_${id}_timezone`;\n\n return (\n \n \n {!showChangePassword && (\n \n Password\n \n {'Change Password'}\n \n \n )}\n {showChangePassword && (\n \n )}\n \n\n \n \n \n \n \n\n \n \n \n \n \n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport SessionUserEditor from './SessionUserEditor';\nimport validate from './SessionUserEditorValidation';\nimport Form from 'Components/form/Form';\nimport { generateSessionUserPatch } from 'Redux/actions';\nimport { REQUEST_SUCCESS, REQUEST_FAILURE } from 'Common/util/ResourceCollection/actions';\nimport { FormController } from 'Components/form/FormController';\n\nexport class SessionUserForm extends React.Component {\n static propTypes = {\n initialValue: PropTypes.object.isRequired,\n requests: PropTypes.shape({\n patchSessionUser: PropTypes.shape({\n status: PropTypes.string.isRequired,\n }).isRequired,\n }).isRequired,\n actions: PropTypes.shape({\n patchSessionUserReset: PropTypes.func.isRequired,\n patchSessionUser: PropTypes.func.isRequired,\n }).isRequired,\n enterpriseHierarchy: PropTypes.object,\n };\n\n constructor(props) {\n super(props);\n }\n\n componentDidMount() {\n this.props.actions.patchSessionUserReset();\n }\n\n _handleSubmit = async (value, formController) => {\n const {\n initialValue,\n resetValue,\n setSubmitError,\n } = formController;\n\n const payload = generateSessionUserPatch(initialValue.user, value.user);\n\n // Send the request\n const responseAction = await this.props.actions.patchSessionUser(payload);\n\n if (responseAction.type === REQUEST_SUCCESS) {\n resetValue();\n }\n else if (responseAction.type === REQUEST_FAILURE) {\n setSubmitError(responseAction.payload?.error);\n }\n };\n\n _handleReset = (event) => {\n this.props.actions.patchSessionUserReset();\n };\n\n render() {\n const {\n initialValue,\n enterpriseHierarchy,\n } = this.props;\n\n return (\n {\n return {\n user: validate(value.user),\n };\n }}\n onSubmit={this._handleSubmit}\n onReset={this._handleReset}\n render={(innerProps) => {\n const {\n value,\n validation,\n hasChanges,\n isSubmitting,\n submitError,\n\n handleChange,\n handleSubmit,\n handleReset,\n } = innerProps;\n\n return (\n \n \n \n );\n }}\n />\n );\n }\n}\n","import { sendPostRequest } from 'Http/request';\nimport { requestActionCreator } from 'Common/util/ResourceCollection/requestActionCreator';\nimport { REQUEST_RESET } from 'Common/util/ResourceCollection';\nimport { REQUEST_PENDING, REQUEST_SUCCESS, REQUEST_FAILURE } from 'Common/util/ResourceCollection/actions';\n\nexport function verifyEmailResendReset() {\n return {\n type: REQUEST_RESET,\n requestId: 'verifyEmailResend',\n };\n}\n\nexport const verifyEmailResend = ({ email }) => requestActionCreator(\n {\n request: () => ({\n type: REQUEST_PENDING,\n requestId: 'verifyEmailResend',\n }),\n success: (payload) => ({\n type: REQUEST_SUCCESS,\n requestId: 'verifyEmailResend',\n payload,\n }),\n failure: (error) => ({\n type: REQUEST_FAILURE,\n requestId: 'verifyEmailResend',\n payload: { error },\n }),\n },\n () => sendPostRequest('/api/v1/accounts/verify-email-resend', {\n body: { email },\n })\n);\n\nexport default verifyEmailResend;\n","import { sendPostRequest } from 'Http/request';\nimport { requestActionCreator } from 'Common/util/ResourceCollection/requestActionCreator';\nimport { REQUEST_RESET } from 'Common/util/ResourceCollection';\nimport { REQUEST_PENDING, REQUEST_SUCCESS, REQUEST_FAILURE } from 'Common/util/ResourceCollection/actions';\n\nexport function verifySmsEmailResendReset() {\n return {\n type: REQUEST_RESET,\n requestId: 'verifySmsEmailResend',\n };\n}\n\nexport const verifySmsEmailResend = ({ email }) => requestActionCreator(\n {\n request: () => ({\n type: REQUEST_PENDING,\n requestId: 'verifySmsEmailResend',\n }),\n success: (payload) => ({\n type: REQUEST_SUCCESS,\n requestId: 'verifySmsEmailResend',\n payload,\n }),\n failure: (error) => ({\n type: REQUEST_FAILURE,\n requestId: 'verifySmsEmailResend',\n payload: { error },\n }),\n },\n () => sendPostRequest('/api/v1/accounts/verify-email-resend', {\n body: { email },\n })\n);\n\nexport default verifySmsEmailResend;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\n\nimport { connect } from 'react-redux';\nimport { bindActionCreators } from 'redux';\nimport { selectSessionUser, selectSessionRequest } from 'Redux/reducers/session';\n\nimport Page from 'Components/page/Page';\nimport PageContent from 'Components/page/PageContentStandard';\nimport ConfigPageTitle from 'Components/page/ConfigPageTitle';\nimport {\n getSessionUser,\n patchSessionUser,\n patchSessionUserReset,\n patchSessionUserEmail,\n patchSessionUserEmailReset,\n patchSessionUserSmsEmail,\n patchSessionUserSmsEmailReset,\n getHierarchy,\n} from 'Redux/actions';\nimport MultiRequestLoadingWrapper from 'Components/loading-indicator/MultiRequestLoadingWrapper';\nimport PageDescription from 'Components/page/PageDescription';\nimport PrimaryEmailForm from './internal/PrimaryEmailForm';\nimport SmsEmailForm from './internal/SmsEmailForm';\nimport { SessionUserForm } from './internal/SessionUserForm';\nimport verifyEmailResend, { verifyEmailResendReset } from 'Redux/actions/verifyEmailResend';\nimport verifySmsEmailResend, { verifySmsEmailResendReset } from 'Redux/actions/verifySmsEmailResend';\nimport { selectFlattenedHierarchy, selectHierarchyRequest } from 'Redux/reducers/hierarchy';\n\nexport class EditSessionUserPagePresentation extends React.Component {\n static propTypes = {\n user: PropTypes.object.isRequired,\n flattenedHierarchy: PropTypes.object,\n requests: PropTypes.shape({\n getHierarchy: PropTypes.object.isRequired,\n getSessionUser: PropTypes.object.isRequired,\n patchSessionUser: PropTypes.object.isRequired,\n patchSessionUserEmail: PropTypes.object.isRequired,\n patchSessionUserSmsEmail: PropTypes.object.isRequired,\n verifyEmailResend: PropTypes.object.isRequired,\n verifySmsEmailResend: PropTypes.object.isRequired,\n }).isRequired,\n actions: PropTypes.shape({\n getHierarchy: PropTypes.func.isRequired,\n getSessionUser: PropTypes.func.isRequired,\n patchSessionUserReset: PropTypes.func.isRequired,\n patchSessionUser: PropTypes.func.isRequired,\n patchSessionUserEmailReset: PropTypes.func.isRequired,\n patchSessionUserEmail: PropTypes.func.isRequired,\n patchSessionUserSmsEmailReset: PropTypes.func.isRequired,\n patchSessionUserSmsEmail: PropTypes.func.isRequired,\n verifyEmailResend: PropTypes.func.isRequired,\n verifyEmailResendReset: PropTypes.func.isRequired,\n verifySmsEmailResend: PropTypes.func.isRequired,\n verifySmsEmailResendReset: PropTypes.func.isRequired,\n }).isRequired,\n };\n\n constructor(props) {\n super(props);\n }\n\n componentDidMount() {\n this.props.actions.getSessionUser();\n this.props.actions.getHierarchy();\n }\n\n render() {\n const {\n user: initialValue,\n requests,\n actions,\n flattenedHierarchy,\n } = this.props;\n\n return (\n \n Account\n \n Use this page to view or change your account details.\n \n \n {\n return (\n \n \n \n \n \n );\n }}\n />\n \n \n );\n }\n}\n\nconst mapStateToProps = (state, ownProps) => {\n const { session, hierarchy } = state;\n\n return {\n user: selectSessionUser(session),\n flattenedHierarchy: selectFlattenedHierarchy(hierarchy),\n requests: {\n getHierarchy: selectHierarchyRequest(hierarchy, 'getHierarchy'),\n getSessionUser: selectSessionRequest(session, 'getSessionUser'),\n patchSessionUser: selectSessionRequest(session, 'patchSessionUser'),\n patchSessionUserEmail: selectSessionRequest(session, 'patchSessionUserEmail'),\n patchSessionUserSmsEmail: selectSessionRequest(session, 'patchSessionUserSmsEmail'),\n verifyEmailResend: selectSessionRequest(session, 'verifyEmailResend'),\n verifySmsEmailResend: selectSessionRequest(session, 'verifySmsEmailResend'),\n },\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n actions: bindActionCreators({\n getHierarchy: getHierarchy,\n getSessionUser: getSessionUser,\n patchSessionUserReset: patchSessionUserReset,\n patchSessionUser: patchSessionUser,\n patchSessionUserEmailReset: patchSessionUserEmailReset,\n patchSessionUserEmail: patchSessionUserEmail,\n patchSessionUserSmsEmailReset: patchSessionUserSmsEmailReset,\n patchSessionUserSmsEmail: patchSessionUserSmsEmail,\n verifyEmailResendReset: verifyEmailResendReset,\n verifyEmailResend: verifyEmailResend,\n verifySmsEmailResendReset: verifySmsEmailResendReset,\n verifySmsEmailResend: verifySmsEmailResend,\n }, dispatch),\n };\n};\n\n// connect the component to Redux\nconst EditSessionUserPage = withRouter(connect(\n mapStateToProps,\n mapDispatchToProps\n)(EditSessionUserPagePresentation));\n\nexport default EditSessionUserPage;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nconst Container = styled.div`\n position: relative;\n box-sizing: border-box;\n`;\n\nexport default class List extends React.Component {\n render() {\n return (\n \n {this.props.children}\n \n );\n }\n}\n\nList.propTypes = {\n children: PropTypes.node,\n className: PropTypes.string\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nconst Root = styled.div`\n position: relative;\n box-sizing: border-box;\n display: block;\n flex-shrink: 0;\n padding-right: 16px;\n`;\n\nfunction ListItemRightComponent(props) {\n const {\n children: childrenProp,\n ...otherProps\n } = props;\n\n const child = React.Children.only(childrenProp);\n\n return (\n \n {child}\n \n );\n}\n\nListItemRightComponent.propTypes = {\n children: PropTypes.element.isRequired,\n};\n\nexport default ListItemRightComponent;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport classNames from 'classnames';\n\nimport { Link } from 'react-router-dom';\n\nimport { Subtitle1, Caption } from 'Components/typography/typography';\nimport ListItem from 'Components/list/ListItem';\nimport ListItemText from 'Components/list/ListItemText';\nimport ListItemRightComponent from 'Components/list/ListItemRightComponent';\nimport FaIcon from 'Components/icon/FaIcon';\nimport { getRoleDisplayText } from 'Components/app/roles';\n\nconst FirstLine = styled(Subtitle1)``;\nconst SecondLine = styled(Caption)``;\nconst RoleText = styled.span``;\nconst AccessText = styled.span``;\nconst Spacer = styled.div``;\nconst EmailPendingText = styled.span``;\n\nconst StyledListItem = styled(ListItem)`\n text-decoration: none;\n color: ${props => props.theme.colors.darkText.highEmphasis};\n\n ${FirstLine} {\n color: ${props => props.theme.colors.darkText.highEmphasis};\n\n ${EmailPendingText} {\n color: ${props => props.theme.colors.darkText.disabled};\n }\n }\n\n ${SecondLine} {\n color: ${props => props.theme.colors.darkText.highEmphasis};\n\n ${RoleText} {\n color: ${props => props.theme.colors.darkText.mediumEmphasis};\n }\n\n ${AccessText} {\n color: ${props => props.theme.colors.darkText.mediumEmphasis};\n }\n\n ${Spacer} {\n display: inline-block;\n padding-left: 2px;\n }\n\n }\n\n\n\n &.disabled {\n color: ${props => props.theme.colors.darkText.disabled};\n\n ${FirstLine} {\n color: ${props => props.theme.colors.darkText.disabled};\n }\n\n ${SecondLine} {\n color: ${props => props.theme.colors.darkText.disabled};\n\n ${RoleText} {\n color: ${props => props.theme.colors.darkText.disabled};\n }\n }\n }\n`;\n\nconst StyledIcon = styled.span`\n font-size: 24px;\n color: ${(props) => props.theme.colors.editorGreen};\n text-decoration: none;\n`;\n\nfunction UserListItem(props) {\n const {\n className: classNameProp,\n id,\n email_address,\n name,\n role,\n active,\n visibility,\n ...otherProps\n } = props;\n\n let roleString = '';\n\n try {\n roleString = getRoleDisplayText(role);\n }\n catch (err) {\n console.error(err);\n roleString = role;\n }\n\n let visibilityText;\n\n if (visibility === null) {\n visibilityText = None;\n }\n else {\n visibilityText = visibility;\n }\n\n const className = classNames(classNameProp, { disabled: !active });\n\n return (\n \n \n \n {email_address.email}\n {!email_address.verified && (\n \n {' (email address not verified)'}\n \n )}\n \n \n {name}\n \n {` — ${roleString}`}\n {!active && ' (disabled)'}\n \n \n (Visibility: {visibilityText})\n \n \n \n \n \n \n \n \n );\n}\n\nUserListItem.defaultProps = {\n name: '',\n};\n\nUserListItem.propTypes = {\n id: PropTypes.number.isRequired,\n email_address: PropTypes.shape({\n email: PropTypes.string.isRequired,\n verified: PropTypes.bool.isRequired,\n }).isRequired,\n name: PropTypes.string,\n visibility: PropTypes.string,\n role: PropTypes.string.isRequired,\n active: PropTypes.bool.isRequired,\n className: PropTypes.string\n};\n\nexport default UserListItem;\n","import React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport { Link, withRouter } from 'react-router-dom';\n\nimport { connect } from 'react-redux';\nimport { getUsers, getHierarchy, getUsersReset, getHierarchyReset } from 'Redux/actions';\n\nimport List from 'Components/list/List';\nimport Page from 'Components/page/Page';\nimport ConfigPageTitle from 'Components/page/ConfigPageTitle';\nimport PageContent from 'Components/page/PageContentStandard';\nimport UserListItem from 'Components/user-list/UserListItem';\nimport MultiRequestLoadingWrapper from 'Components/loading-indicator/MultiRequestLoadingWrapper';\nimport ContainedButton from 'Components/button/ContainedButton';\nimport { Spacing } from 'Components/common/common';\nimport { getUsersList, selectUsersRequest } from 'Redux/reducers/users';\nimport { selectHierarchyRequest, selectHierarchyNode } from 'Redux/reducers/hierarchy';\nimport PageDescription from 'Components/page/PageDescription';\nimport { bindActionCreators } from 'redux';\nimport { NodeType } from 'Components/hierarchy-editor/HierarchyNodeType';\n\nconst UserList = styled(List)``;\n\nconst AddUserButton = styled(ContainedButton)`\n margin-bottom: ${Spacing.formButtonMargin};\n text-decoration: none;\n`;\n\nexport class UsersPagePresentation extends React.Component {\n static propTypes = {\n actions: PropTypes.shape({\n getUsers: PropTypes.func.isRequired,\n getUsersReset: PropTypes.func.isRequired,\n getHierarchy: PropTypes.func.isRequired,\n getHierarchyReset: PropTypes.func.isRequired,\n }).isRequired,\n requests: PropTypes.shape({\n getUsers: PropTypes.shape({\n status: PropTypes.string.isRequired,\n error: PropTypes.shape({\n message: PropTypes.string,\n }),\n }).isRequired,\n getHierarchy: PropTypes.shape({\n status: PropTypes.string.isRequired,\n error: PropTypes.shape({\n message: PropTypes.string,\n }),\n }).isRequired,\n }).isRequired,\n users: PropTypes.arrayOf(\n PropTypes.shape({\n data: PropTypes.shape({\n id: PropTypes.number.isRequired,\n name: PropTypes.string,\n email_address: PropTypes.object.isRequired,\n role: PropTypes.string.isRequired,\n active: PropTypes.bool.isRequired,\n }),\n })\n ).isRequired,\n hierarchyStore: PropTypes.object.isRequired,\n };\n\n constructor() {\n super();\n }\n\n componentDidMount() {\n this.props.actions.getUsers();\n this.props.actions.getHierarchy();\n }\n\n componentWillUnmount() {\n this.props.actions.getUsersReset();\n this.props.actions.getHierarchyReset();\n }\n\n _renderUserList = () => {\n return (\n \n \n Add User\n \n \n {this._renderUsers()}\n \n \n );\n };\n\n _renderUsers() {\n const { hierarchyStore } = this.props;\n\n return this.props.users.map((userobj) => {\n let visibility = null;\n\n if (userobj.data.hierarchy_visibility !== null) {\n const hierarchyNode = selectHierarchyNode(\n hierarchyStore,\n userobj.data.hierarchy_visibility\n );\n\n visibility = (hierarchyNode.node_type === NodeType.DEVICE) ?\n hierarchyNode.device.asset_name : hierarchyNode.node_name;\n }\n\n return (\n \n );\n });\n }\n\n render() {\n const {\n requests,\n } = this.props;\n return (\n \n All Users\n \n Use this page to manage the users in your organization.\n \n \n \n \n \n );\n }\n}\n\nconst mapStateToProps = state => {\n const { users, hierarchy } = state;\n\n return {\n users: getUsersList(users),\n hierarchyStore: hierarchy,\n requests: {\n getUsers: selectUsersRequest(users, 'getUsers'),\n getHierarchy: selectHierarchyRequest(hierarchy, 'getHierarchy'),\n },\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n actions: bindActionCreators({\n getUsers: getUsers,\n getUsersReset: getUsersReset,\n getHierarchy: getHierarchy,\n getHierarchyReset: getHierarchyReset,\n }, dispatch)\n };\n};\n\n// connect the component to Redux\nconst UsersPage = withRouter(connect(\n mapStateToProps,\n mapDispatchToProps\n)(UsersPagePresentation));\n\nexport default UsersPage;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport TextInput from 'Components/text-input/TextInput';\n\nconst Root = styled.div`\n word-break: break-word;\n`;\n\nconst StyledTextInput = styled(TextInput)`\n display: block;\n`;\n\nfunction getDateString(dateTime) {\n if (!dateTime) {\n return '--';\n }\n\n return (new Date(dateTime)).toDateString();\n}\n\nclass OrganizationEditor extends React.Component {\n constructor() {\n super();\n this._handleChange = this._handleChange.bind(this);\n }\n\n _handleChange(event) {\n const newValue = {\n ...this.props.value,\n [event.target.name]: event.target.value,\n };\n\n event.target = {\n name: this.props.name,\n value: newValue,\n };\n\n this.props.onChange(event);\n }\n\n render() {\n const {\n value,\n validation,\n disabled,\n name: nameProp,\n onChange,\n ...otherProps\n } = this.props;\n\n return (\n \n \n \n \n );\n }\n}\n\nOrganizationEditor.defaultProps = {\n name: '',\n validation: {},\n disabled: false,\n};\n\nOrganizationEditor.propTypes = {\n name: PropTypes.string,\n value: PropTypes.shape({\n name: PropTypes.string.isRequired,\n created: PropTypes.string.isRequired,\n }).isRequired,\n validation: PropTypes.objectOf(PropTypes.string),\n disabled: PropTypes.bool,\n\n onChange: PropTypes.func.isRequired,\n};\n\nexport default OrganizationEditor;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\n\nimport { connect } from 'react-redux';\nimport { getOrganization, patchOrganization, patchOrganizationReset } from 'Redux/actions';\nimport * as RequestStatus from 'Common/data/RequestStatus';\n\nimport Page from 'Components/page/Page';\nimport PageContent from 'Components/page/PageContentStandard';\nimport ConfigPageTitle from 'Components/page/ConfigPageTitle';\nimport OrganizationEditor from 'Components/organization-editor/OrganizationEditor';\nimport validate from 'Components/organization-editor/OrganizationEditorValidation';\nimport Form from 'Components/form/Form';\n\nimport RequestLoadingWrapper from 'Components/loading-indicator/RequestLoadingWrapper';\nimport isEqual from 'lodash/isEqual';\nimport some from 'lodash/some';\nimport PageDescription from 'Components/page/PageDescription';\n\nexport class OrganizationPagePresentation extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n organization: props.organization,\n };\n\n this._handleSubmit = this._handleSubmit.bind(this);\n this._handleReset = this._handleReset.bind(this);\n this._handleChange = this._handleChange.bind(this);\n this._renderForm = this._renderForm.bind(this);\n }\n\n static getDerivedStateFromProps(props, state) {\n const isLoaded = props.requests &&\n props.requests.getOrganization &&\n (props.requests.getOrganization.status === RequestStatus.SUCCESS);\n\n if (!state.organization && props.organization && isLoaded) {\n // Data has loaded, update the derived state.\n return { organization: props.organization };\n }\n return null; // no changes to state\n }\n\n componentDidMount() {\n this.props.onDidMount();\n }\n\n componentWillUnmount() {\n this.props.onWillUnmount();\n }\n\n _handleSubmit(event) {\n const initialValue = this.props.organization;\n const value = this.state.organization;\n\n // Only include the fields that A) the API accepts and B) have changed.\n let payload = {};\n const fields = Array('name');\n for (let ii in fields) {\n let name = fields[ii];\n if (value[name] !== initialValue[name]) {\n payload[name] = value[name].trim();\n }\n }\n\n this.props.onSubmit(payload);\n }\n\n _handleChange(event) {\n const { value } = event.target;\n\n this.setState({\n organization: { ...value },\n });\n }\n\n _handleReset(event) {\n this.setState({\n organization: { ...this.props.organization },\n });\n }\n\n _renderForm() {\n const { requests, organization: originalOrganization } = this.props;\n const { organization } = this.state;\n\n const hasChanges = !isEqual(organization, originalOrganization);\n const validation = validate(organization);\n\n const allowEdit = requests.patchOrganization.status !== RequestStatus.PENDING;\n const allowSubmit =\n allowEdit &&\n !some(validation, val => val !== null) &&\n hasChanges;\n const allowCancel =\n allowEdit &&\n hasChanges;\n\n return (\n \n \n \n );\n }\n\n render() {\n return (\n \n Organization Name\n \n Use this page to change the name of the Organization.\n \n \n \n \n \n );\n }\n}\n\nOrganizationPagePresentation.propTypes = {\n onDidMount: PropTypes.func.isRequired,\n onWillUnmount: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n organization: PropTypes.shape({\n id: PropTypes.number.isRequired,\n name: PropTypes.string.isRequired,\n }),\n requests: PropTypes.shape({\n getOrganization: PropTypes.shape({\n status: PropTypes.string.isRequired,\n error: PropTypes.shape({\n message: PropTypes.string,\n }),\n }).isRequired,\n patchOrganization: PropTypes.shape({\n status: PropTypes.string.isRequired,\n error: PropTypes.shape({\n message: PropTypes.string,\n }),\n }).isRequired,\n }).isRequired,\n};\n\nOrganizationPagePresentation.defaultProps = {\n organization: null,\n};\n\nconst mapStateToProps = (state, ownProps) => {\n const { organization } = state;\n\n return {\n organization: organization.data || null,\n requests: organization.requests,\n };\n};\n\nconst mapDispatchToProps = {\n onWillUnmount: patchOrganizationReset,\n onDidMount: getOrganization,\n onSubmit: patchOrganization,\n};\n\n// connect the component to Redux\nconst OrganizationPage = withRouter(connect(\n mapStateToProps,\n mapDispatchToProps\n)(OrganizationPagePresentation));\n\nexport default OrganizationPage;\n","export default function validate(data) {\n return {\n name: data?.name.trim() === '' ? 'Required' : null,\n };\n}\n","import styled from 'styled-components';\nimport SelectInput from 'Components/select/SelectInput';\n\nconst FirstSelectInput = styled(SelectInput)`\n min-width: 300px;\n`;\n\nexport default FirstSelectInput;\n","const metrics = [\n { value: 'availability', name: 'Availability' },\n { value: 'efficiency', name: 'Efficiency' },\n { value: 'oee', name: 'OEE' },\n { value: 'performance', name: 'Performance' },\n { value: 'quality', name: 'Quality' },\n];\n\nexport default metrics;\n\nexport function getMetricsMap() {\n return metrics.reduce((map, metric) => {\n map[metric.value] = metric;\n return map;\n }, {});\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport TextInputField from 'Components/text-input/TextInputField';\n\nfunction _forceInteger(value) {\n // An empty/null value should not be treated as a zero\n const valueNumber = value ? Number(value) : NaN;\n\n if (Number.isNaN(valueNumber)) {\n return value;\n }\n\n return Math.floor(valueNumber).toFixed(0);\n}\n\nclass IntegerInputField extends React.Component {\n constructor(props) {\n super(props);\n }\n\n _handleBlur = (event) => {\n const value = event.target.value;\n const newValue = _forceInteger(value);\n\n const { value: propValue, onChange, name } = this.props;\n\n if (propValue !== newValue) {\n onChange({\n target: {\n value: newValue,\n name,\n },\n });\n }\n };\n\n render() {\n const { type, onBlur, ...otherProps } = this.props;\n\n if (type !== 'number') {\n throw new Error(`type for IntegerInputField must be \"number\", not ${type}`);\n }\n\n return (\n \n );\n }\n}\n\nIntegerInputField.defaultProps = {\n type: 'number',\n onBlur: () => { },\n onChange: () => { },\n};\n\nIntegerInputField.propTypes = {\n type: PropTypes.string,\n value: PropTypes.string,\n name: PropTypes.string,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default IntegerInputField;\n","import isPlainObject from 'lodash/isPlainObject';\nimport isArray from 'lodash/isArray';\n\nfunction objectShallowEquality(a, b, skipKeys = {}) {\n if (a === b) {\n return true;\n }\n\n const firstChangedKey = Object.keys(Object.assign({}, a, b))\n .find((key) => {\n if (skipKeys[key]) {\n return false;\n }\n\n return a[key] !== b[key];\n });\n\n return firstChangedKey === undefined;\n}\n\nfunction arrayShallowEquality(a, b) {\n if (a === b) {\n return true;\n }\n else if (a.length !== b.length) {\n return false;\n }\n else {\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n }\n\n return true;\n}\n\nfunction shallowEquality(a, b) {\n if (typeof a !== typeof b) {\n return false;\n }\n else if (!a || !b) {\n return a === b;\n }\n else if (isPlainObject(a) && isPlainObject(b)) {\n return objectShallowEquality(a, b);\n }\n else if (isArray(a) && isArray(b)) {\n return arrayShallowEquality(a, b);\n }\n else {\n return a === b;\n }\n}\n\n/**\n * Compare two versions of a component's props to detect changes. Designed for\n * use in `shouldComponentUpdate`. Performs a shallow compare of all the props\n * with an option to check certain props one level deeper.\n *\n * @param {Object} prevProps Current/last props, usually `this.props`\n * @param {Object} nextProps Next/updated props, usually the first arg to `shouldComponentUpdate`\n * @param {string[]} [nestedProps] A list of prop names that should be compared\n * one level deeper than the usual shallow compare. In other words, each\n * of the props listed here will get its own shallow compare.\n * @returns true if a change was detected, false otherwise\n */\nexport default function didPropsChange(prevProps, nextProps, nestedProps = []) {\n if (!isPlainObject(prevProps) || !isPlainObject(nextProps)) {\n throw new Error(`Props must be plain objects. Received ${typeof prevProps}, ${typeof nextProps}`);\n }\n\n const skipKeys = nestedProps.reduce((map, key) => {\n map[key] = true;\n return map;\n }, {});\n\n if (!objectShallowEquality(prevProps, nextProps, skipKeys)) {\n return true;\n }\n\n const firstChangedKey = nestedProps.find((key) => {\n return !shallowEquality(prevProps[key], nextProps[key]);\n });\n\n return firstChangedKey !== undefined;\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport SelectInput from 'Components/select/SelectInput';\nimport FirstSelectInput from './FirstSelectInput';\nimport SelectOption from 'Components/select/SelectOption';\nimport FormElement from 'Components/form-element/FormElement';\nimport { Body1 } from 'Components/typography/typography';\nimport SelectOptionContent from 'Components/select/SelectOptionContent';\nimport metrics from 'System/metrics';\nimport IntegerInputField from 'Components/number-input/IntegerInputField';\nimport didPropsChange from 'Components/util/didPropsChange';\n\nconst ContentWrapper = styled.div`\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n`;\n\nconst StyledSelectElement = styled.div`\n margin: 8px;\n flex-shrink: 0;\n`;\n\nconst ThresholdWrapper = styled.div``;\nconst ThresholdInputField = styled(IntegerInputField)``;\nconst Percent = styled(Body1)``;\n\nconst ThresholdElement = styled.div`\n margin: 8px;\n\n ${ThresholdWrapper} {\n display: flex;\n align-items: center;\n\n ${ThresholdInputField} {\n width: 70px;\n }\n\n ${Percent} {\n padding-left: 8px;\n color: ${props => props.theme.colors.darkText.mediumEmphasis};\n }\n }\n`;\n\nexport default class MetricAlertEditor extends React.Component {\n constructor(props) {\n super(props);\n }\n\n _handleChange = (event) => {\n this.props.onChange({\n ...event,\n target: {\n name: this.props.name,\n value: {\n ...this.props.value,\n [event.target.name]: event.target.value,\n },\n },\n });\n };\n\n shouldComponentUpdate(nextProps) {\n return didPropsChange(this.props, nextProps, [\n 'value',\n 'validation',\n ]);\n }\n\n render() {\n const { allowEdit, value } = this.props;\n const { metric, comparison, threshold } = value;\n\n const validation = this.props.validation || {};\n\n return (\n \n \n \n {metrics.map(option => {\n return (\n \n \n {option.name}\n \n \n );\n })}\n \n \n \n \n \n \n {'<'}\n \n \n \n \n {'>'}\n \n \n \n \n \n \n \n %\n \n \n \n );\n }\n}\n\nMetricAlertEditor.propTypes = {\n allowEdit: PropTypes.bool.isRequired,\n name: PropTypes.string,\n value: PropTypes.shape({\n metric: PropTypes.string.isRequired,\n comparison: PropTypes.string.isRequired,\n threshold: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n }).isRequired,\n validation: PropTypes.shape({\n metric: PropTypes.string,\n comparison: PropTypes.string,\n threshold: PropTypes.string,\n }),\n onChange: PropTypes.func.isRequired,\n};\n\nMetricAlertEditor.defaultProps = {\n name: '',\n validation: {},\n};\n","const processStates = [\n {\n value: 'running',\n name: 'Running',\n hasTargetTime: false,\n },\n {\n value: 'running_slow',\n name: 'Running Slow',\n hasTargetTime: false,\n },\n {\n value: 'running_poor_quality',\n name: 'Running Poor Quality',\n hasTargetTime: false,\n },\n {\n value: 'running_poorly',\n name: 'Running Poorly',\n hasTargetTime: false,\n },\n {\n value: 'down',\n name: 'Down',\n hasTargetTime: false,\n },\n {\n value: 'meal_break',\n name: 'Meal/Break',\n hasTargetTime: true,\n },\n {\n value: 'meeting',\n name: 'Meeting',\n hasTargetTime: true,\n },\n {\n value: 'maintenance',\n name: 'Maintenance',\n hasTargetTime: true,\n },\n {\n value: 'no_production',\n name: 'No Production',\n hasTargetTime: false,\n },\n {\n value: 'changeover',\n name: 'Changeover',\n hasTargetTime: true,\n },\n {\n value: 'not_monitored',\n name: 'Not Monitored',\n hasTargetTime: false,\n },\n];\n\nexport default processStates;\n\nexport function getProcessStatesWithTargetTimes() {\n return processStates.filter(ps => ps.hasTargetTime);\n}\n\nexport function getProcessStatesMap() {\n return processStates.reduce((map, processState) => {\n map[processState.value] = processState;\n return map;\n }, {});\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport FirstSelectInput from './FirstSelectInput';\nimport SelectOption from 'Components/select/SelectOption';\nimport FormElement from 'Components/form-element/FormElement';\nimport { Body1 } from 'Components/typography/typography';\nimport processStates from 'System/processStates';\nimport SelectOptionContent from 'Components/select/SelectOptionContent';\nimport IntegerInputField from 'Components/number-input/IntegerInputField';\nimport didPropsChange from 'Components/util/didPropsChange';\n\nconst ContentWrapper = styled.div`\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n`;\n\nconst StyledSelectElement = styled.div`\n margin: 8px;\n flex-shrink: 0;\n`;\n\nconst ComparisonText = styled(Body1)`\n padding: 0 12px;\n font-weight: bold;\n color: ${props => props.theme.colors.darkText.highEmphasis};\n`;\n\nconst ThresholdWrapper = styled.div``;\nconst ThresholdInputField = styled(IntegerInputField)``;\nconst TimeUnitLabel = styled(Body1)``;\n\nconst ThresholdElement = styled.div`\n margin: 8px;\n\n ${ThresholdWrapper} {\n display: flex;\n align-items: center;\n\n ${ThresholdInputField} {\n width: 70px;\n }\n\n ${TimeUnitLabel} {\n padding-left: 8px;\n color: ${props => props.theme.colors.darkText.mediumEmphasis};\n }\n }\n`;\n\nexport default class ProcessStateDurationAlertEditor extends React.Component {\n constructor(props) {\n super(props);\n }\n\n _handleChange = (event) => {\n this.props.onChange({\n ...event,\n target: {\n name: this.props.name,\n value: {\n ...this.props.value,\n [event.target.name]: event.target.value,\n },\n },\n });\n };\n\n shouldComponentUpdate(nextProps) {\n return didPropsChange(this.props, nextProps, [\n 'value',\n 'validation',\n ]);\n }\n\n render() {\n const { allowEdit, value } = this.props;\n const { process_state, threshold } = value;\n\n const validation = this.props.validation || {};\n\n return (\n \n \n \n {processStates.map((processState) => {\n return (\n \n \n {processState.name}\n \n \n );\n })}\n \n \n {'>'}\n \n \n \n min.\n \n \n \n );\n }\n}\n\nProcessStateDurationAlertEditor.propTypes = {\n allowEdit: PropTypes.bool.isRequired,\n name: PropTypes.string,\n value: PropTypes.shape({\n process_state: PropTypes.string.isRequired,\n threshold: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n }).isRequired,\n validation: PropTypes.shape({\n process_state: PropTypes.string,\n threshold: PropTypes.string,\n }),\n onChange: PropTypes.func.isRequired,\n};\n\nProcessStateDurationAlertEditor.defaultProps = {\n name: '',\n validation: {}\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport SelectInput from 'Components/select/SelectInput';\nimport FirstSelectInput from './FirstSelectInput';\nimport SelectOption from 'Components/select/SelectOption';\nimport FormElement from 'Components/form-element/FormElement';\nimport { Body1 } from 'Components/typography/typography';\nimport { getProcessStatesWithTargetTimes } from 'System/processStates';\nimport SelectOptionContent from 'Components/select/SelectOptionContent';\nimport IntegerInputField from 'Components/number-input/IntegerInputField';\nimport didPropsChange from 'Components/util/didPropsChange';\n\nconst processStates = getProcessStatesWithTargetTimes();\n\nconst ContentWrapper = styled.div`\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n`;\n\nconst StyledSelectElement = styled.div`\n margin: 8px;\n flex-shrink: 0;\n`;\n\nconst ComparisonSelectInput = styled(SelectInput)`\n min-width: 140px;\n`;\n\nconst ThresholdWrapper = styled.div``;\nconst ThresholdInputField = styled(IntegerInputField)``;\nconst TimeUnitLabel = styled(Body1)``;\n\nconst ThresholdElement = styled.div`\n margin: 8px;\n\n ${ThresholdWrapper} {\n display: flex;\n align-items: center;\n\n ${ThresholdInputField} {\n width: 70px;\n }\n\n ${TimeUnitLabel} {\n padding-left: 8px;\n color: ${props => props.theme.colors.darkText.mediumEmphasis};\n }\n }\n`;\n\nexport default class ProcessStateTargetTimeAlertEditor extends React.Component {\n constructor(props) {\n super(props);\n }\n\n _handleChange = (event) => {\n this.props.onChange({\n ...event,\n target: {\n name: this.props.name,\n value: {\n ...this.props.value,\n [event.target.name]: event.target.value,\n },\n },\n });\n };\n\n shouldComponentUpdate(nextProps) {\n return didPropsChange(this.props, nextProps, [\n 'value',\n 'validation',\n ]);\n }\n\n render() {\n const { allowEdit, value } = this.props;\n const { process_state, comparison, threshold } = value;\n\n const validation = this.props.validation || {};\n\n return (\n \n \n \n {processStates.map((processState) => {\n return (\n \n \n {processState.name}\n \n \n );\n })}\n \n \n \n \n \n min.\n \n \n \n \n \n Before Target\n \n \n Over Target\n \n \n \n \n );\n }\n}\n\nProcessStateTargetTimeAlertEditor.propTypes = {\n allowEdit: PropTypes.bool.isRequired,\n name: PropTypes.string,\n value: PropTypes.shape({\n process_state: PropTypes.string.isRequired,\n comparison: PropTypes.string.isRequired,\n threshold: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n }).isRequired,\n validation: PropTypes.shape({\n process_state: PropTypes.string,\n comparison: PropTypes.string,\n threshold: PropTypes.string,\n }),\n onChange: PropTypes.func.isRequired,\n};\n\nProcessStateTargetTimeAlertEditor.defaultProps = {\n name: '',\n validation: {},\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport ButtonText from 'Components/button/ButtonText';\nimport List from 'Components/list/List';\nimport { Caption } from 'Components/typography/typography';\nimport ContainedButton from 'Components/button/ContainedButton';\nimport PageFrame from 'Components/page/PageFrame';\nimport SectionDescription from 'Components/text/SectionDescription';\n\nconst AddAlertButtonWrapper = styled.div`\n display: block;\n margin: 10px 0;\n`;\n\nconst AlertList = styled(List)`\n border: 1px solid #d5d5d5;\n\n & > * {\n border-top: 1px solid #d5d5d5;\n\n &:first-child {\n border-top: none;\n }\n }\n`;\n\nconst EmptyAlerts = styled.div`\n display: inline-block;\n margin: 10px 0;\n padding: 10px 15px;\n border-radius: 3px;\n background-color: #f5f5f5;\n color: ${props => props.theme.colors.darkText.mediumEmphasis};\n\n & > * {\n display: block;\n &.secondary {\n font-weight: normal;\n }\n }\n`;\n\nexport default class AlertsEditorSection extends React.Component {\n constructor(props) {\n super(props);\n }\n\n render() {\n const {\n title,\n description,\n addButtonEnabled,\n children,\n showAddButton,\n onAddClick,\n } = this.props;\n\n const hasAlerts = React.Children.count(children) > 0;\n\n return (\n \n {description && (\n {description}\n )}\n {showAddButton &&\n \n \n \n {'Add Alert'}\n \n \n \n }\n {hasAlerts && (\n \n {children}\n \n )}\n {!hasAlerts && (\n \n There are no alerts.\n {'Click \"Add Alert\" to create one.'}\n \n )}\n \n );\n }\n}\n\nAlertsEditorSection.propTypes = {\n title: PropTypes.node.isRequired,\n description: PropTypes.node,\n addButtonEnabled: PropTypes.bool,\n children: PropTypes.any,\n showAddButton: PropTypes.bool,\n onAddClick: PropTypes.func,\n};\n\nAlertsEditorSection.defaultProps = {\n addButtonEnabled: true,\n children: null,\n showAddButton: true,\n onAddClick: () => {},\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nconst Root = styled.div`\n position: absolute;\n box-sizing: border-box;\n display: flex;\n right: 4px;\n top: 0;\n bottom: 0;\n align-items: center;\n`;\n\nfunction ListItemSecondaryAction(props) {\n const {\n children: childrenProp,\n ...otherProps\n } = props;\n\n const child = React.Children.only(childrenProp);\n\n return (\n \n {child}\n \n );\n}\n\n// function is here so the ListItem can detect a secondary action\nListItemSecondaryAction.isListItemSecondaryAction = function() {\n return true;\n};\n\nListItemSecondaryAction.propTypes = {\n children: PropTypes.element.isRequired,\n};\n\nexport default ListItemSecondaryAction;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport TrashIcon from 'Components/icon/TrashIcon';\nimport IconButton from 'Components/button/IconButton';\n\nconst TrashIconButton = styled(IconButton)`\n font-size: 24px;\n color: ${props => props.theme.colors.darkText.mediumEmphasis};\n`;\n\nexport default class AlertItemDeleteButton extends React.PureComponent {\n static propTypes = {\n disabled: PropTypes.bool,\n onClick: PropTypes.func,\n };\n\n static defaultProps = {\n disabled: false,\n };\n\n render() {\n const { disabled, onClick } = this.props;\n\n return (\n \n \n \n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nconst ListContent = styled.div``;\nconst NoSubscribers = styled.span`\n font-style: italic;\n color: ${props => props.theme.colors.darkText.disabled};\n`;\n\nexport default class AlertItemSubscriberList extends React.PureComponent {\n static propTypes = {\n className: PropTypes.string,\n subscribers: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n }),\n ).isRequired,\n };\n\n render() {\n const { className, subscribers } = this.props;\n\n return (\n \n {subscribers.map(user => user.name).join(', ')}\n {subscribers.length === 0 && (\n Nobody\n )}\n \n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport ListItemSecondaryAction from 'Components/list/ListItemSecondaryAction';\nimport ListItem from 'Components/list/ListItem';\nimport { Body1 } from 'Components/typography/typography';\nimport AlertItemDeleteButton from './AlertItemDeleteButton';\nimport AlertItemSubscriberList from './AlertItemSubscriberList';\nimport didPropsChange from 'Components/util/didPropsChange';\n\nconst StyledListItem = styled(ListItem)`\n padding: 8px 52px 8px 8px;\n background-color: ${props => props.theme.colors.palette.white};\n color: ${props => props.theme.colors.palette.black};\n`;\n\nconst EditorWrapper = styled.div``;\nconst ListWrapper = styled(Body1)``;\n\nconst Content = styled.div`\n display: block;\n box-sizing: border-box;\n width: 100%;\n\n ${EditorWrapper} {\n display: block;\n }\n\n ${ListWrapper} {\n display: block;\n padding-left: 8px;\n text-align: left;\n color: ${props => props.theme.colors.darkText.mediumEmphasis};\n }\n\n ${'' /* When screen is large enough, display editor and list */}\n @media only screen and (min-width: 1280px) {\n display: flex;\n\n ${EditorWrapper} {\n flex: 0 0 auto;\n }\n\n ${ListWrapper} {\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n justify-content: center;\n text-align: right;\n\n ${'' /* For some reason, IE11 needs this min-width to be set for\n the text to wrap properly. All I know is it has to do with nested\n flexboxes.\n See: https://github.com/philipwalton/flexbugs/issues/164 */}\n min-width: 1px;\n }\n }\n`;\n\nexport default class AlertItem extends React.Component {\n static propTypes = {\n name: PropTypes.string,\n className: PropTypes.string,\n subscribers: PropTypes.array.isRequired,\n allowDelete: PropTypes.bool.isRequired,\n onDeleteClick: PropTypes.func.isRequired,\n Editor: PropTypes.func.isRequired,\n EditorProps: PropTypes.object.isRequired,\n };\n\n static defaultProps = {\n className: '',\n };\n\n constructor(props) {\n super(props);\n }\n\n _handleDeleteClick = (event) => {\n this.props.onDeleteClick({\n ...event,\n target: {\n name: this.props.name,\n },\n });\n };\n\n shouldComponentUpdate(nextProps) {\n return didPropsChange(this.props, nextProps, [\n 'subscribers',\n 'EditorProps',\n ]);\n }\n\n render() {\n const { className, subscribers, allowDelete, Editor, EditorProps } = this.props;\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport MetricAlertEditor from './MetricAlertEditor';\nimport ProcessStateDurationAlertEditor from './ProcessStateDurationAlertEditor';\nimport ProcessStateTargetTimeAlertEditor from './ProcessStateTargetTimeAlertEditor';\nimport AlertsSection from './AlertsEditorSection';\nimport AlertItem from './AlertItem';\n\nconst DEFAULT_ALERTS = {\n metric: {\n metric: 'oee',\n comparison: 'less_than',\n threshold: 50,\n subscribers: [],\n },\n process_state_duration: {\n process_state: 'down',\n threshold: 15,\n subscribers: [],\n },\n process_state_target_time: {\n process_state: 'changeover',\n comparison: 'over_target',\n threshold: 15,\n subscribers: [],\n },\n};\n\nexport default class AlertsEditor extends React.Component {\n constructor(props) {\n super(props);\n\n // Object to hold handler functions for the multiple alert lists\n this._listHandlers = {};\n this._nextTempId = 0;\n }\n\n _getNextTempId() {\n return this._nextTempId++;\n }\n\n _handleAlertChange = (listName, event) => {\n const { name, value } = event.target;\n\n let alerts = [ ...this.props.value[listName] ];\n alerts[name] = value;\n\n this.props.onChange({\n ...event,\n target: {\n name: this.props.name,\n value: {\n ...this.props.value,\n [listName]: alerts,\n },\n },\n });\n };\n\n _handleAddAlertClick = (listName, defaultAlert, event) => {\n const { name, value } = this.props;\n\n const alerts = [\n {\n ...defaultAlert,\n id: null,\n temp_id: this._getNextTempId(),\n },\n ...value[listName],\n ];\n\n this.props.onChange({\n ...event,\n target: {\n name: name,\n value: {\n ...value,\n [listName]: alerts,\n },\n },\n });\n };\n\n _handleDeleteAlertClick = (listName, event) => {\n const { name, value } = this.props;\n const { name: itemName } = event.target;\n\n const alerts = value[listName].filter((alert, i) => {\n return String(i) !== itemName;\n });\n\n this.props.onChange({\n ...event,\n target: {\n name: name,\n value: {\n ...value,\n [listName]: alerts,\n },\n },\n });\n };\n\n _getChangeAlertHandler(listName) {\n const key = `${listName}-change`;\n\n if (!this._listHandlers[key]) {\n this._listHandlers[key] = (event) => { this._handleAlertChange(listName, event); };\n }\n\n return this._listHandlers[key];\n }\n\n _getAddAlertHandler(listName) {\n const key = `${listName}-add`;\n\n if (!this._listHandlers[key]) {\n this._listHandlers[key] = (event) => { this._handleAddAlertClick(listName, DEFAULT_ALERTS[listName], event); };\n }\n\n return this._listHandlers[key];\n }\n\n _getDeleteAlertHandler(listName) {\n const key = `${listName}-delete`;\n\n if (!this._listHandlers[key]) {\n this._listHandlers[key] = (event) => { this._handleDeleteAlertClick(listName, event); };\n }\n\n return this._listHandlers[key];\n }\n\n _getValidationForItem(validation, listName, itemIndex) {\n return validation?.[listName]?.[itemIndex] || null;\n }\n\n _renderAlertItem(listName, alert, index) {\n const { validation, allowEdit } = this.props;\n const alertValidation = this._getValidationForItem(validation, listName, index);\n\n let Editor;\n\n switch (listName) {\n case 'metric':\n Editor = MetricAlertEditor;\n break;\n case 'process_state_duration':\n Editor = ProcessStateDurationAlertEditor;\n break;\n case 'process_state_target_time':\n Editor = ProcessStateTargetTimeAlertEditor;\n break;\n default:\n throw new Error(`No editor available for alert type \"${listName}\"`);\n }\n\n return (\n \n );\n }\n\n render() {\n const { value, allowEdit } = this.props;\n\n return (\n \n \n Monitor KPIs for the current shift. A typical application is to be alerted if your\n team is not on track to win their shift (as measured by takt-based Efficiency).\n
    \n
    \n Metric alerts are only sent after there has been at least 30 minutes of manufacturing\n time (run time and down time) in the shift. This ensures there has been enough\n production time for the alert to be meaningful and actionable. Each metric alert is\n sent one time per shift. In other words, if a metric crosses an alert threshold\n multiple times, the alert is sent only the first time.\n
    \n }\n addButtonEnabled={allowEdit}\n onAddClick={this._getAddAlertHandler('metric')}\n >\n {value.metric.map((alert, i) => {\n return this._renderAlertItem('metric', alert, i);\n })}\n \n \n {value.process_state_duration.map((alert, i) => {\n return this._renderAlertItem('process_state_duration', alert, i);\n })}\n \n \n {value.process_state_target_time.map((alert, i) => {\n return this._renderAlertItem('process_state_target_time', alert, i);\n })}\n \n \n );\n }\n}\n\nAlertsEditor.propTypes = {\n name: PropTypes.string,\n value: PropTypes.shape({\n metric: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n temp_id: PropTypes.number,\n })\n ).isRequired,\n process_state_duration: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n temp_id: PropTypes.number,\n }).isRequired\n ).isRequired,\n process_state_target_time: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n temp_id: PropTypes.number,\n }).isRequired\n ).isRequired,\n }).isRequired,\n validation: PropTypes.shape({\n metric: PropTypes.array,\n process_state_duration: PropTypes.array,\n process_state_target_time: PropTypes.array,\n }),\n allowEdit: PropTypes.bool.isRequired,\n onChange: PropTypes.func.isRequired,\n};\n\nAlertsEditor.defaultProps = {\n name: '',\n validation: null,\n};\n","import every from 'lodash/every';\n\nfunction validateMetric(value) {\n if (value.length === 0) {\n return 'required';\n }\n else {\n return null;\n }\n}\n\nfunction validateComparison(value) {\n if (value.length === 0) {\n return 'required';\n }\n else if (value !== 'greater_than' && value !== 'less_than') {\n return 'invalid comparison';\n }\n else {\n return null;\n }\n}\n\nfunction validateThreshold(value) {\n if (value.length === 0) {\n return 'required';\n }\n else if (!Number.isFinite(Number(value))) {\n return 'not a number';\n }\n else {\n return null;\n }\n}\n\nexport default function validate(metricAlert) {\n const { metric, comparison, threshold } = metricAlert;\n\n const validation = {\n metric: validateMetric(metric),\n comparison: validateComparison(comparison),\n threshold: validateThreshold(threshold),\n };\n\n if (every(validation, v => !v)) {\n return null;\n }\n else {\n return validation;\n }\n}\n","import some from 'lodash/some';\nimport processStates from 'System/processStates';\nimport every from 'lodash/every';\n\nfunction validateProcessState(value) {\n if (value.length === 0) {\n return 'required';\n }\n else if (!some(processStates, ps => ps.value === value)) {\n return 'invalid production state';\n }\n else {\n return null;\n }\n}\n\nfunction validateThreshold(value) {\n if (value.length === 0) {\n return 'required';\n }\n else if (!Number.isFinite(Number(value))) {\n return 'not a number';\n }\n else {\n return null;\n }\n}\n\nexport default function validate(processStateDurationAlert) {\n const { process_state, threshold } = processStateDurationAlert;\n\n const validation = {\n process_state: validateProcessState(process_state),\n threshold: validateThreshold(threshold),\n };\n\n if (every(validation, v => !v)) {\n return null;\n }\n else {\n return validation;\n }\n}\n","import some from 'lodash/some';\nimport { getProcessStatesWithTargetTimes } from 'System/processStates';\nimport every from 'lodash/every';\n\nconst processStates = getProcessStatesWithTargetTimes();\n\nfunction validateProcessState(value) {\n if (value.length === 0) {\n return 'required';\n }\n else if (!some(processStates, ps => ps.value === value)) {\n return 'invalid production state';\n }\n else {\n return null;\n }\n}\n\nfunction validateComparison(value) {\n if (value.length === 0) {\n return 'required';\n }\n else if (value !== 'over_target' && value !== 'before_target') {\n return 'invalid comparison';\n }\n else {\n return null;\n }\n}\n\nfunction validateThreshold(value) {\n if (value.length === 0) {\n return 'threshold is required';\n }\n else if (!Number.isFinite(Number(value))) {\n return 'threshold must be a number';\n }\n else if (Number(value) < 0) {\n return 'threshold must be positive';\n }\n else {\n return null;\n }\n}\n\nexport default function validate(processStateDurationAlert) {\n const { process_state, comparison, threshold } = processStateDurationAlert;\n\n const validation = {\n process_state: validateProcessState(process_state),\n comparison: validateComparison(comparison),\n threshold: validateThreshold(threshold),\n };\n\n if (every(validation, v => !v)) {\n return null;\n }\n else {\n return validation;\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Form from 'Components/form/Form';\nimport AlertsEditor from 'Components/pages/alerts-edit/AlertsEditor';\nimport validate from 'Components/pages/alerts-edit/AlertsEditorValidation';\nimport isEqual from 'lodash/isEqual';\nimport * as RequestStatus from 'Common/data/RequestStatus';\nimport { isValidationValid } from 'Components/util/validationUtils';\n\nfunction _secondsToMinutes(seconds) {\n return Math.floor(seconds / 60);\n}\n\nfunction _minutesToSeconds(minutes) {\n return Math.floor(minutes * 60);\n}\n\nconst _timeBasedAlertTypes = ['process_state_duration', 'process_state_target_time'];\n\n// The server store the thresholds in seconds and that's how the form receives\n// it. But the editors want to just handle the thresholds as minutes, so we\n// convert the seconds to minute for all the thresholds.\n//\nfunction _cleanUpDataForState(data) {\n let cleanedUpData = {};\n\n Object.keys(data).forEach((alertType) => {\n cleanedUpData[alertType] = data[alertType].map((alert) => {\n let cleanedUpAlert = { ...alert };\n\n if (_timeBasedAlertTypes.includes(alertType)) {\n cleanedUpAlert.threshold = _secondsToMinutes(alert.threshold);\n }\n else {\n // Convert from a 0.0-1.0 value to an integer percentage.\n cleanedUpAlert.threshold = Math.round(alert.threshold * 100.0);\n }\n\n return cleanedUpAlert;\n });\n });\n\n return cleanedUpData;\n}\n\nfunction _cleanUpDataForSubmit(data) {\n const cleanedUpData = {};\n\n Object.keys(data).forEach((alertType) => {\n cleanedUpData[alertType] = data[alertType].map((alert) => {\n let cleanedUpAlert = { ...alert };\n\n // Newly added alerts are given a temp id we must remove\n if (cleanedUpAlert.temp_id !== undefined) {\n delete cleanedUpAlert.temp_id;\n cleanedUpAlert.id = null;\n }\n\n // Make sure threshold values get converted back to Numbers. They get\n // turned into strings when they are edited.\n //\n cleanedUpAlert.threshold = Number(alert.threshold);\n\n // For time-based alert types we want to edit the values as minutes, but\n // submit them as seconds.\n //\n if (_timeBasedAlertTypes.includes(alertType)) {\n cleanedUpAlert.threshold = _minutesToSeconds(cleanedUpAlert.threshold);\n }\n else\n {\n // Convert from a percentage to a 0.0-1.0 value.\n cleanedUpAlert.threshold /= 100.0;\n }\n\n return cleanedUpAlert;\n });\n });\n\n return cleanedUpData;\n}\n\nexport default class EditAlertsForm extends React.Component {\n constructor(props) {\n super(props);\n\n const initialData = _cleanUpDataForState(props.data);\n\n this.state = {\n modifiedData: initialData,\n initialData: initialData,\n lastPatchStatus: props?.requests?.patchAlerts?.status,\n };\n }\n\n static getDerivedStateFromProps(props, state) {\n const lastPatchStatus = state.lastPatchStatus;\n const nextPatchStatus = props?.requests?.patchAlerts?.status;\n\n if (lastPatchStatus !== nextPatchStatus) {\n let nextModifiedData = state.modifiedData;\n let nextInitialData = state.initialData;\n\n // Watch for when patchAlerts changes from PENDING to SUCCESS and\n // reset the data\n if (lastPatchStatus === RequestStatus.PENDING &&\n nextPatchStatus === RequestStatus.SUCCESS)\n {\n nextModifiedData = _cleanUpDataForState(props.data);\n nextInitialData = nextModifiedData;\n }\n\n return {\n modifiedData: nextModifiedData,\n initialData: nextInitialData,\n lastPatchStatus: nextPatchStatus,\n };\n }\n\n return null; // No changes\n }\n\n _handleSubmit = (event) => {\n // Perform any data cleanup here\n const { modifiedData } = this.state;\n const cleanedUpData = _cleanUpDataForSubmit(modifiedData);\n\n this.props.onSubmit({\n target: {\n name: this.props.name,\n value: cleanedUpData,\n },\n });\n };\n\n _handleChange = (event) => {\n const { value } = event.target;\n\n this.setState({\n modifiedData: value,\n });\n };\n\n _handleReset = (event) => {\n this.setState({\n modifiedData: this.state.initialData,\n });\n };\n\n render() {\n const { requests } = this.props;\n const { modifiedData, initialData } = this.state;\n\n // Compare the submission formatted data to determine if there are changes.\n const hasChanges = !isEqual(\n _cleanUpDataForSubmit(initialData),\n _cleanUpDataForSubmit(modifiedData)\n );\n\n const validation = validate(modifiedData);\n const isValid = isValidationValid(validation);\n\n const isLoading = requests.patchAlerts.status === RequestStatus.PENDING;\n\n const allowEdit = !isLoading;\n const allowSubmit = !isLoading && isValid && hasChanges;\n const allowCancel = !isLoading && hasChanges;\n\n return (\n \n \n \n );\n }\n}\n\nEditAlertsForm.propTypes = {\n name: PropTypes.string,\n onSubmit: PropTypes.func.isRequired,\n // There may be more fields in here than what's below, but this is just\n // what's required by this component\n data: PropTypes.object.isRequired,\n requests: PropTypes.shape({\n patchAlerts: PropTypes.shape({\n status: PropTypes.string.isRequired,\n error: PropTypes.shape({\n message: PropTypes.string,\n }),\n }).isRequired,\n }).isRequired,\n};\n\nEditAlertsForm.defaultProps = {\n name: '',\n};\n","import validateMetricAlert from './MetricAlertValidation';\nimport validateProcessStateDurationAlert from './ProcessStateDurationAlertValidation';\nimport validateProcessStateTargetTimeAlert from './ProcessStateTargetTimeAlertValidation';\n\nexport default function validate(alerts) {\n let validation = {\n metric: alerts.metric.map(validateMetricAlert),\n process_state_duration: alerts.process_state_duration.map(validateProcessStateDurationAlert),\n process_state_target_time: alerts.process_state_target_time.map(validateProcessStateTargetTimeAlert),\n };\n\n return validation;\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { Link } from 'react-router-dom';\nimport { getAlerts, patchAlerts, generateAlertsPatch } from 'Redux/actions';\nimport Page from 'Components/page/Page';\nimport PageContent from 'Components/page/PageContentWide';\nimport ConfigPageTitle from 'Components/page/ConfigPageTitle';\nimport EditAlertsForm from './EditAlertsForm';\nimport RequestLoadingWrapper from 'Components/loading-indicator/RequestLoadingWrapper';\nimport PageDescription from 'Components/page/PageDescription';\n\nexport class EditAlertsPagePresentation extends React.Component {\n constructor(props) {\n super(props);\n }\n\n componentDidMount() {\n this.props.onDidMount();\n }\n\n _handleSubmit = (event) => {\n // Generate the patch data\n const initialData = this.props.data;\n const modifiedData = event.target.value;\n const patchData = generateAlertsPatch(initialData, modifiedData);\n\n this.props.onSubmit(patchData);\n };\n\n render() {\n const { requests, data } = this.props;\n\n return (\n \n Alert Definitions\n \n Use this page to configure alert thresholds that can be used to send\n automated notifications based on real-time information from the plant floor.\n Administrators configure alerts on this page and individual users\n subscribe to the alerts (and processes) that fall within the scope of\n their responsibility (using\n the Alert Subscriptions page).\n Escalation is easy – simply add an alert for each escalation level.\n \n \n (\n \n )}\n />\n \n \n );\n }\n}\n\nEditAlertsPagePresentation.defaultProps = {\n data: null,\n requests: null,\n};\n\nEditAlertsPagePresentation.propTypes = {\n onDidMount: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n // There may be more fields in here than what's below, but this is just\n // what's required by this component\n data: PropTypes.object.isRequired,\n requests: PropTypes.shape({\n getAlerts: PropTypes.object.isRequired,\n patchAlerts: PropTypes.object.isRequired,\n }),\n};\n\nconst mapStateToProps = (state, ownProps) => {\n const { alerts } = state;\n\n return {\n data: (alerts?.data) || null,\n requests: (alerts?.requests) || null,\n };\n};\n\nconst mapDispatchToProps = {\n onDidMount: getAlerts,\n onSubmit: patchAlerts,\n};\n\n// connect the component to Redux\nconst EditAlertsPage = connect(\n mapStateToProps,\n mapDispatchToProps\n)(EditAlertsPagePresentation);\n\nexport default EditAlertsPage;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { css } from 'styled-components';\nimport { Body5 } from '../typography';\n\nconst Root = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n width: 100%;\n\n ${({ $hasDescription }) => $hasDescription && css`\n align-items: flex-start;\n `}\n`;\n\nconst IconWrapper = styled.div`\n display: flex;\n font-size: 24px;\n padding-right: 12px;\n\n ${({ $hasDescription }) => $hasDescription && css`\n padding-top: 4px;\n `}\n`;\n\nconst TextAndDescriptionWrapper = styled.div`\n width: 100%;\n`;\n\nconst OptionText = styled(Body5).attrs({ as: 'div' })`\n height: 100%;\n width: 100%;\n overflow: hidden;\n text-align: left;\n text-overflow: ellipsis;\n vertical-align: middle;\n white-space: nowrap;\n color: ${({ theme }) => theme.colors.darkText.highEmphasis};\n`;\n\nconst OptionDescription = styled(Body5).attrs({ as: 'div' })`\n margin-top: 2px;\n margin-bottom: 4px;\n max-width: 300px;\n white-space: normal;\n color: ${({ theme }) => theme.colors.darkText.mediumEmphasis};\n`;\n\nexport default function BasicSelectOption(props) {\n const { value, searchValue, icon, description, children, ...otherProps } = props;\n\n const hasDescription = Boolean(description);\n\n return (\n \n {icon && (\n \n {icon}\n \n )}\n \n \n {children}\n \n {description && (\n \n {description}\n \n )}\n \n \n );\n}\n\nBasicSelectOption.propTypes = {\n value: PropTypes.string.isRequired,\n searchValue: PropTypes.string,\n icon: PropTypes.node,\n description: PropTypes.node,\n children: PropTypes.node.isRequired,\n};\n","import SelectList from './SelectList';\n\nexport default SelectList;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport BasicSelectOption from './BasicSelectOption';\nimport SelectList from 'Common/components/SelectList';\nimport SelectSeparator from './SelectSeparator';\n\n/**\n * A simple SelectList that takes a list of basic options and provides\n * some default behavior.\n *\n */\nfunction BasicSelectList({\n name,\n value: selectedOption,\n options,\n onChange,\n verticalPadding,\n searchValue,\n}) {\n const handleChange = (event) => {\n const { value } = event.target;\n\n onChange({\n target: {\n name,\n value,\n },\n });\n };\n\n const getOptionName = (opt) => {\n return opt.displayName;\n };\n\n const optionElements = useMemo(() => {\n // Insert a separator between all options only if there is a description\n // in at least one of the options.\n const separateAll = Boolean(options.find((opt) => {\n return Boolean(opt.description);\n }));\n\n return options.reduce((acc, option, index) => {\n const optionKey = option.value;\n\n if (separateAll && index !== 0) {\n acc.push(\n \n );\n }\n\n acc.push(\n \n {getOptionName(option)}\n \n );\n\n return acc;\n }, []);\n }, [ options ]);\n\n return (\n \n {optionElements}\n \n );\n}\n\nBasicSelectList.propTypes = {\n name: PropTypes.string,\n value: PropTypes.string,\n options: PropTypes.arrayOf(PropTypes.shape( {\n value: PropTypes.string.isRequired,\n displayName: PropTypes.string.isRequired,\n description: PropTypes.string,\n icon: PropTypes.node,\n })),\n onChange: PropTypes.func,\n verticalPadding: PropTypes.number,\n searchValue: PropTypes.string,\n};\n\nBasicSelectList.defaultProps = {\n name: 'basicSelectList',\n value: '',\n options: [],\n onChange: () => { },\n};\n\nexport default React.memo(BasicSelectList);\n","import styled from 'styled-components';\n\nconst LiveControlSeparator = styled.span`\n font-size: 28px;\n padding-bottom: 3px;\n border-right: 1px solid ${({theme}) => theme.colors.separator};\n`;\n\nexport default LiveControlSeparator;\n","\nimport PropTypes from 'prop-types';\n\nconst IconSizeProp = PropTypes.oneOfType([\n PropTypes.oneOf([\n 'small',\n 'medium',\n // 'large', Not implemented yet...\n ]),\n // Custom sizing. Use sparingly.\n PropTypes.exact({\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n }),\n]);\n\nexport default IconSizeProp;\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { css } from 'styled-components';\nimport ButtonBase from '../Button/ButtonBase';\nimport { Body7 } from '../typography';\nimport IconSizeProp from './IconSizeProp';\n\nconst getColor = (theme, name) => {\n const {\n darkText,\n palette: { grey, greyOpacity, blue },\n } = theme.colors;\n\n return {\n controlIcon: darkText.mediumEmphasis,\n badgeBackground: grey.manatee,\n background: 'transparent',\n disabledIconColor: darkText.disabled,\n // Hover\n hoverIconColor: darkText.mediumEmphasis,\n hoverBackground: greyOpacity.cloud,\n // Selected\n selectedIconColor: blue.awesome,\n selectedBackground: blue.ice,\n // Selected + Hover\n selectedHoverIconColor: blue.deep,\n selectedHoverBackground: blue.pool,\n }[name];\n};\n\nconst ButtonContentWrapper = styled.div``;\nconst ButtonBadge = styled(Body7)``;\n\nconst Root = styled(ButtonBase)`\n position: relative;\n display: inline-flex;\n background: none;\n border: none;\n outline: none;\n margin: 0;\n padding: 0;\n text-align: center;\n flex: 1 0 auto;\n align-content: center;\n cursor: pointer;\n\n > ${ButtonContentWrapper} {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex: 1 0 auto;\n\n ${({ $size }) => css`\n ${$size === 'small' && css`\n width: 24px;\n height: 24px;\n font-size: 16px;\n `}\n ${$size === 'medium' && css`\n width: 44px;\n height: 44px;\n font-size: 22px;\n `}\n ${$size && typeof $size === 'object' && css`\n width: ${$size.width}px;\n height: ${$size.height}px;\n font-size: 22px;\n `}\n `}\n\n transition: color 0.25s, background-color 0.25s, border-color 0.25s, outline-color 0.25s;\n\n color: ${({theme, $selected}) => (\n $selected\n ? getColor(theme, 'selectedIconColor')\n : getColor(theme, 'controlIcon')\n )};\n background-color: ${({theme, $selected}) => (\n $selected\n ? getColor(theme, 'selectedBackground')\n : getColor(theme, 'background')\n )};\n\n border-radius: 4px;\n }\n\n > ${ButtonBadge} {\n position: absolute;\n top: 8px;\n right: 4px;\n display: inline-block;\n box-sizing: border-box;\n line-height: 1.25em;\n height: 1.25em;\n min-width: 1.25em;\n padding: 0 0.25em;\n border-radius: 1em;\n\n transition: color 0.25s, background-color 0.25s;\n\n color: ${({theme}) => ( theme.colors.palette.white )};\n border-color: ${({theme, $selected}) => (\n $selected\n ? getColor(theme, 'selectedBackground')\n : getColor(theme, 'background')\n )};\n background-color: ${({theme, $selected}) => (\n $selected\n ? getColor(theme, 'selectedIconColor')\n : getColor(theme, 'badgeBackground')\n )};\n\n /* Give a little border around the badge so that you can\n see the edges against the button color */\n box-shadow: ${({theme, $selected}) => {\n const boxShadowColor = $selected\n ? getColor(theme, 'selectedBackground')\n : getColor(theme, 'background');\n return `0 0 0 1.5px ${boxShadowColor};`;}\n };\n }\n\n\n\n &:enabled {\n &:hover, &:focus {\n > ${ButtonContentWrapper} {\n color: ${({theme, $selected}) => (\n $selected\n ? getColor(theme, 'selectedHoverIconColor')\n : getColor(theme, 'hoverControlIcon')\n )};\n background-color: ${({theme, $selected}) => (\n $selected\n ? getColor(theme, 'selectedHoverBackground')\n : getColor(theme, 'hoverBackground')\n )};\n }\n\n > ${ButtonBadge} {\n background-color: ${({theme, $selected}) => (\n $selected\n ? getColor(theme, 'selectedHoverIconColor')\n : getColor(theme, 'hoverControlIcon')\n )};\n box-shadow: ${({theme, $selected}) => {\n const boxShadowColor = $selected\n ? getColor(theme, 'selectedHoverBackground')\n : getColor(theme, 'hoverBackground');\n return `0 0 0 1.5px ${boxShadowColor};`;}\n };\n }\n }\n }\n\n &:disabled {\n & > ${ButtonContentWrapper} {\n color: ${({theme}) => getColor(theme, 'disabledIconColor')};\n background-color: ${({theme}) => getColor(theme, 'background')};\n }\n\n > ${ButtonBadge} {\n background-color: ${({theme}) => getColor(theme, 'disabledIconColor')};\n }\n }\n`;\n\nconst IconButton = forwardRef((props, ref) => {\n const {\n badge,\n children,\n disabled,\n onClick,\n selected,\n size,\n ...otherProps\n } = props;\n\n const showBadge = Number.isFinite(badge) && badge > 0;\n\n return (\n \n \n {children}\n \n {showBadge && (\n {badge}\n )}\n \n );\n});\n\nIconButton.displayName = 'IconButton';\n\nIconButton.propTypes = {\n badge: PropTypes.number,\n children: PropTypes.node,\n disabled: PropTypes.bool,\n selected: PropTypes.bool,\n onClick: PropTypes.func,\n size: IconSizeProp,\n};\n\nIconButton.defaultProps = {\n disabled: false,\n selected: false,\n size: 'medium',\n};\n\nexport default IconButton;\n","import IconButton from './IconButton';\nexport default IconButton;\n","import styled from 'styled-components';\nimport Icon from 'Common/components/Icon';\n\nconst LiveControlIcon = styled(Icon)`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n`;\n\nexport default LiveControlIcon;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { Body7 } from 'Common/components/typography';\nimport LiveControlIcon from '../LiveControlIcon';\n\nconst ButtonContentWrapper = styled.div`\n ${LiveControlIcon} {\n font-size: 22px;\n width: 44px;\n height: 44px;\n }\n`;\nconst ButtonBadge = styled(Body7)``;\n\nconst getColor = (theme, name) => {\n const {\n darkText,\n palette: { white, grey, blue },\n } = theme.colors;\n\n return {\n controlIcon: darkText.mediumEmphasis,\n controlIconBadge: grey.manatee,\n controlIconBackground: white,\n disabledControlIcon: darkText.disabled,\n hoverControlIconBackground: grey.cloud,\n selectedControlIcon: blue.awesome,\n selectedControlIconBackground: blue.ice,\n selectedHoverControlIcon: blue.deep,\n selectedHoverControlIconBackground: blue.pool,\n }[name];\n};\n\nconst RootButton = styled.button`\n position: relative;\n display: inline-flex;\n background: none;\n border: none;\n outline: none;\n margin: 0;\n padding: 0;\n text-align: center;\n flex: 1 0 auto;\n align-content: center;\n\n > ${ButtonContentWrapper} {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex: 1 0 auto;\n\n transition: color 0.25s, background-color 0.25s, border-color 0.25s, outline-color 0.25s;\n\n color: ${({theme, selected}) => (\n selected\n ? getColor(theme, 'selectedControlIcon')\n : getColor(theme, 'controlIcon')\n )};\n background-color: ${({theme, selected}) => (\n selected\n ? getColor(theme, 'selectedControlIconBackground')\n : getColor(theme, 'controlIconBackground')\n )};\n\n border-radius: 4px;\n }\n\n > ${ButtonBadge} {\n position: absolute;\n top: 8px;\n right: 4px;\n display: inline-block;\n box-sizing: border-box;\n line-height: 1.25em;\n height: 1.25em;\n min-width: 1.25em;\n padding: 0 0.25em;\n border-radius: 1em;\n\n transition: color 0.25s, background-color 0.25s;\n\n color: ${({theme, selected}) => ( theme.colors.palette.white )};\n border-color: ${({theme, selected}) => (\n selected\n ? getColor(theme, 'selectedControlIconBackground')\n : getColor(theme, 'controlIconBackground')\n )};\n background-color: ${({theme, selected}) => (\n selected\n ? getColor(theme, 'selectedControlIcon')\n : getColor(theme, 'controlIconBadge')\n )};\n\n /* Give a little border around the badge so that you can\n see the edges against the button color */\n box-shadow: ${({theme, selected}) => {\n const boxShadowColor = selected\n ? getColor(theme, 'selectedControlIconBackground')\n : getColor(theme, 'controlIconBackground');\n return `0 0 0 1.5px ${boxShadowColor};`;}\n };\n }\n\n &:hover:not(:disabled) {\n cursor: pointer;\n\n > ${ButtonContentWrapper} {\n color: ${({theme, selected}) => (\n selected\n ? getColor(theme, 'selectedHoverControlIcon')\n : getColor(theme, 'hoverControlIcon')\n )};\n background-color: ${({theme, selected}) => (\n selected\n ? getColor(theme, 'selectedHoverControlIconBackground')\n : getColor(theme, 'hoverControlIconBackground')\n )};\n }\n\n > ${ButtonBadge} {\n background-color: ${({theme, selected}) => (\n selected\n ? getColor(theme, 'selectedHoverControlIcon')\n : getColor(theme, 'hoverControlIcon')\n )};\n box-shadow: ${({theme, selected}) => {\n const boxShadowColor = selected\n ? getColor(theme, 'selectedHoverControlIconBackground')\n : getColor(theme, 'hoverControlIconBackground');\n return `0 0 0 1.5px ${boxShadowColor};`;}\n };\n }\n }\n\n &:disabled {\n & > ${ButtonContentWrapper} {\n color: ${({theme}) => getColor(theme, 'disabledControlIcon')};\n background-color: ${({theme}) => getColor(theme, 'controlIconBackground')};\n }\n\n > ${ButtonBadge} {\n background-color: ${({theme}) => getColor(theme, 'disabledControlIcon')};\n }\n }\n`;\n\nexport default function LiveControlOverflowMenuItem({\n children,\n onClick,\n disabled,\n selected,\n badge,\n buttonRef,\n ...otherProps\n}) {\n const showBadge = Number.isFinite(badge) && badge > 0;\n\n return (\n \n \n {children}\n \n {showBadge && (\n {badge}\n )}\n \n );\n}\n\nLiveControlOverflowMenuItem.propTypes = {\n disabled: PropTypes.bool,\n selected: PropTypes.bool,\n badge: PropTypes.number,\n onClick: PropTypes.func.isRequired,\n buttonRef: PropTypes.object,\n children: PropTypes.node,\n};\n\nLiveControlOverflowMenuItem.defaultProps = {\n disabled: false,\n selected: false,\n badge: null,\n};\n","import {\n useState,\n useEffect,\n useCallback,\n} from 'react';\n\n/**\n * Given a target element, return whether the element is currently hovered\n * by the mouse by tracking mouseenter and mouseleave events.\n *\n * @param {Element} target A DOM element, if null useHover will always return false.\n *\n * @returns {Booleans} True if the target element is currently hovered.\n */\nexport default function useHover(target) {\n const [hovered, setHovered] = useState(false);\n\n const onMouseEnter = useCallback(() => {\n setHovered(true);\n }, []);\n\n const onMouseLeave = useCallback(() => {\n setHovered(false);\n }, []);\n\n useEffect(() => {\n if (target) {\n target.addEventListener('mouseenter', onMouseEnter);\n target.addEventListener('mouseleave', onMouseLeave);\n }\n\n return () => {\n if (target) {\n target.removeEventListener('mouseenter', onMouseEnter);\n target.removeEventListener('mouseleave', onMouseLeave);\n }\n };\n }, [target, onMouseEnter, onMouseLeave]);\n\n return hovered;\n}\n","import {\n useState,\n useEffect,\n useRef\n} from 'react';\nimport useHover from './useHover';\n\nconst DEFAULT_HOVER_DELAY = 200;\n\n/**\n * Given a target element and a delay, return whether the element is currently hovered\n * by the mouse and has been hovered for the number of milliseconds of delay.\n *\n * @param {Element} target The DOM element to detect hover for.\n * @param {Number} [delay=DEFAULT_HOVER_DELAY] Number of milliseconds of hover required before useHover\n * return true.\n *\n * @returns {Booleans} True if the target element has been hovered for delay milliseconds.\n */\nexport default function useDelayedHover({\n target,\n delay = DEFAULT_HOVER_DELAY,\n}) {\n const isHovered = useHover(target);\n\n const hoverTimeoutRef = useRef(null);\n const [sustainedHover, setSustainedHover] = useState(false);\n\n useEffect(() => {\n if (isHovered) {\n if (delay > 0) {\n if (!hoverTimeoutRef.current) {\n hoverTimeoutRef.current = setTimeout(() => setSustainedHover(true), delay);\n }\n }\n else {\n setSustainedHover(true);\n }\n }\n else {\n if (hoverTimeoutRef.current) {\n clearTimeout(hoverTimeoutRef.current);\n hoverTimeoutRef.current = null;\n }\n\n setSustainedHover(false);\n }\n }, [isHovered, delay]);\n\n useEffect(() => {\n // On component unmount be sure we don't have a lingering hover timeout\n return () => {\n if (hoverTimeoutRef.current) {\n clearTimeout(hoverTimeoutRef.current);\n }\n };\n }, []);\n \n return sustainedHover;\n}\n","import React, { useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { css } from 'styled-components';\nimport { usePopper } from 'react-popper';\nimport { detectOverflow } from '@popperjs/core';\nimport Portal from 'Common/components/Portal/Portal';\nimport Mask, { MASK_Z_INDEX } from '../Portal/Mask';\nimport useDelayedHover from 'Common/hooks/useDelayedHover';\n\nconst TOOLTIP_VERTICAL_PADDING = 8;\nconst TOOLTIP_HORIZONTAL_PADDING = 10;\n\nconst TOOLTIP_MIN = 10;\nconst TOOLTIP_SMALL = 100;\nconst TOOLTIP_MEDIUM = 200;\nconst TOOLTIP_LARGE = 400;\nconst TOOLTIP_EXTRA_LARGE = 600;\n\nexport {\n TOOLTIP_SMALL,\n TOOLTIP_MEDIUM,\n TOOLTIP_LARGE,\n TOOLTIP_EXTRA_LARGE,\n};\n\nconst borderCss = css`1px solid rgba(0, 0, 0, 0.2)`;\n\nconst TooltipArrow = styled.div`\n visibility: hidden;\n\n &, &::before {\n position: absolute;\n width: 8px;\n height: 8px;\n background: inherit;\n }\n\n &::before {\n visibility: visible;\n content: ' ';\n border-top: ${borderCss};\n border-left: ${borderCss};\n\n background: ${({theme}) => theme.colors.palette.white};\n }\n`;\n\nconst TooltipContainer = styled.div`\n background: ${({theme}) => theme.colors.palette.white};\n color: ${({theme}) => theme.colors.palette.grey.emperor};\n\n border: ${borderCss};\n box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n\n padding: ${TOOLTIP_VERTICAL_PADDING}px ${TOOLTIP_HORIZONTAL_PADDING}px;\n font-size: 12px;\n border-radius: 4px;\n\n min-width: ${({minWidth}) => minWidth}px;\n max-width: min(100vw, ${({maxWidth}) => maxWidth}px);\n\n z-index: ${MASK_Z_INDEX + 1};\n\n /*\n Rotate the arrow by different amounts depending on tooltip placement\n to ensure the borders \n */\n &[data-popper-placement^='top'] > ${TooltipArrow} {\n bottom: -5px;\n\n &::before {\n transform: rotate(225deg);\n }\n }\n\n &[data-popper-placement^='bottom'] > ${TooltipArrow} {\n top: -5px;\n\n &::before {\n transform: rotate(45deg);\n }\n }\n\n &[data-popper-placement^='left'] > ${TooltipArrow} {\n right: -5px;\n\n &::before {\n transform: rotate(135deg);\n }\n }\n\n &[data-popper-placement^='right'] > ${TooltipArrow} {\n left: -5px;\n\n &::before {\n transform: rotate(-45deg);\n }\n }\n`;\n\n/**\n * A generic tooltip component which can wrap a react component and give it a tooltip\n * on hover or (optionally) on click. Any props not listed below are forwarded to the\n * element wrapping the tooltip children.\n *\n * @param {Node} content A React component or string which will make up the body of\n * the tooltip.\n * @param {String} [placement='auto'] The direction the tooltip should prefer to\n * pop out to when possible.\n * @param {Number} [minWidth=TOOLTIP_MIN] The min width for the tooltip content.\n * @param {Number} [maxWidth=TOOLTIP_MEDIUM] The max width for the tooltip content.\n * @param {Number} [delay=400] How many milliseconds to wait when hovering to display\n * the tooltip.\n * @param {Boolean} [stickyOnClick=false] If true, when the child element is clicked\n * display the tooltip until the mask is clicked.\n * @param {Boolean} [disabled=false] If true, don't display the tooltip content at all.\n * @param {Boolean} [scrollContentOnOverflow=false] If true, tooltip content\n * will be scrollable if it extends beyond the available vertical space.\n *\n * @returns {Tooltip}\n */\nfunction Tooltip({\n content,\n children,\n placement,\n minWidth,\n maxWidth,\n delay,\n stickyOnClick,\n disabled,\n scrollContentOnOverflow,\n ...otherProps\n}) {\n const [referenceElement, setReferenceElement] = useState(null);\n const [popperElement, setPopperElement] = useState(null);\n const [arrowElement, setArrowElement] = useState(null);\n const [opened, setOpened] = useState(false);\n\n const sustainedHover = useDelayedHover({\n target: referenceElement,\n delay,\n });\n\n const scrollContentOnOverflowModifier = useMemo(() => {\n return {\n name: 'scrollContentOnOverflow',\n phase: 'main',\n enabled: scrollContentOnOverflow,\n fn: ({ state, instance, options, name }) => {\n const overflow = detectOverflow(state);\n\n if (overflow.top > 0 && overflow.bottom > 0) {\n state.rects.popper.height = state.rects.popper.height - (overflow.top + overflow.bottom);\n\n if (!state.styles.popperContent) {\n state.styles.popperContent = {};\n }\n\n state.styles.popperContent = {\n maxHeight: (state.rects.popper.height - (2 * TOOLTIP_VERTICAL_PADDING)) + 'px',\n overflow: 'auto',\n };\n }\n }\n };\n }, [ scrollContentOnOverflow ]);\n\n const { state, styles, attributes } = usePopper(referenceElement, popperElement, {\n placement,\n strategy: 'fixed',\n modifiers: [\n {\n name: 'arrow',\n options: {\n element: arrowElement,\n },\n },\n {\n name: 'offset',\n options: {\n offset: [0, 8],\n },\n },\n scrollContentOnOverflowModifier,\n ],\n });\n\n const shown = !disabled && (sustainedHover || opened);\n\n return (\n \n {\n if (stickyOnClick) {\n // Don't bubble the click\n event.stopPropagation();\n\n setOpened(true);\n }\n }}\n ref={setReferenceElement}\n >\n {children}\n \n\n {shown && (\n \n {opened && (\n {\n // Don't bubble the click\n event.stopPropagation();\n\n setOpened(false);\n }}\n />\n )}\n \n
    \n {content}\n
    \n \n \n
    \n )}\n
    \n );\n}\n\nTooltip.propTypes = {\n content: PropTypes.node.isRequired,\n children: PropTypes.node.isRequired,\n placement: PropTypes.oneOf([\n 'auto',\n 'left',\n 'top',\n 'right',\n 'bottom',\n ]),\n minWidth: PropTypes.number,\n maxWidth: PropTypes.number,\n delay: PropTypes.number,\n stickyOnClick: PropTypes.bool,\n disabled: PropTypes.bool,\n scrollContentOnOverflow: PropTypes.bool,\n};\n\nTooltip.defaultProps = {\n placement: 'auto',\n delay: 400,\n minWidth: TOOLTIP_MIN,\n maxWidth: TOOLTIP_MEDIUM,\n stickyOnClick: false,\n disabled: false,\n scrollContentOnOverflow: false,\n};\n\nexport default Tooltip;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport Tooltip, { TOOLTIP_LARGE } from './Tooltip';\n\nconst TargetContainer = styled.div`\n display: inline-flex;\n\n min-height: 24px;\n min-width: 24px;\n\n align-items: center;\n justify-content: center;\n\n cursor: pointer;\n position: relative;\n\n &:before {\n content: \"\";\n display: block;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translateX(-50%) translateY(-50%);\n width: 100%;\n height: 100%;\n /* Give mobile users a nice big touch target */\n @media (hover: none) and (pointer: coarse) {\n min-width: 44px;\n min-height: 44px;\n }\n background-color: transparent;\n }\n`;\n\n/**\n * A utility component for wrapping a tooltip target in something with a\n * mobile-friendly touch target and mobile-friendly behavior such as\n * staying open on tap.\n *\n * @param {Node} children The tooltip target to wrap.\n * @param {Node} content The content of the tooltip.\n *\n * All other props are forwarded to Tooltip.\n *\n * @see Tooltip\n */\nfunction TouchableTooltipTarget({\n children,\n content,\n ...tooltipProps\n}) {\n return (\n \n \n {children}\n \n \n );\n}\n\nTouchableTooltipTarget.propTypes = {\n children: PropTypes.node.isRequired,\n content: PropTypes.node.isRequired,\n delay: PropTypes.number,\n};\n\nTouchableTooltipTarget.defaultProps = {\n delay: 200,\n};\n\nexport default React.memo(TouchableTooltipTarget);\n","import Tooltip from './Tooltip';\nimport TouchableTooltipTarget from './TouchableTooltipTarget';\n\nexport default Tooltip;\nexport { TouchableTooltipTarget };\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport IconButton from 'Common/components/IconButton';\nimport IconSizeProp from 'Common/components/IconButton/IconSizeProp';\nimport LiveControlOverflowMenuItem from './internal/LiveControlOverflowMenuItem';\nimport Tooltip from 'Common/components/Tooltip';\n\n/**\n * This component is a button where its children are the button's contents.\n */\nfunction LiveControl({\n displayName,\n showTooltip,\n buttonRef,\n icon,\n contentRender,\n controlRender,\n handleContentLayout,\n disabled,\n selected,\n badge,\n onClick,\n action,\n inOverflow,\n iconSize,\n ...otherProps\n}) {\n let liveControlButton;\n\n if (inOverflow) {\n liveControlButton = (\n \n {contentRender()}\n \n );\n }\n else {\n liveControlButton = (\n \n {contentRender()}\n \n );\n }\n\n if (showTooltip && displayName) {\n return (\n \n {liveControlButton}\n \n );\n }\n else {\n return liveControlButton;\n }\n}\n\nLiveControl.propTypes = {\n displayName: PropTypes.string,\n showTooltip: PropTypes.bool,\n badge: PropTypes.number,\n buttonRef: PropTypes.object,\n action: PropTypes.func,\n controlRender: PropTypes.func,\n contentRender: PropTypes.func,\n handleContentLayout: PropTypes.bool,\n icon: PropTypes.node,\n disabled: PropTypes.bool,\n selected: PropTypes.bool,\n onClick: PropTypes.func,\n inOverflow: PropTypes.bool,\n iconSize: IconSizeProp,\n};\n\nLiveControl.defaultProps = {\n showTooltip: false,\n badge: null,\n action: null,\n controlRender: ()=>{},\n contentRender: ()=>{},\n handleContentLayout: false,\n disabled: false,\n onClick: ()=>{},\n selected: false,\n inOverflow: false,\n};\n\nexport default React.memo(LiveControl);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport ButtonBase from 'Common/components/Button/ButtonBase';\nimport Icon from 'Common/components/Icon';\nimport {\n Secondary5,\n Primary4,\n} from 'Common/components/typography';\n\nconst backButtonWidth = 30;\n\nconst MenuTitleContainer = styled.div`\n display: flex;\n flex-direction: row;\n padding-right: ${(props) => props.hasBackButton ? backButtonWidth : 0 }px;\n`;\n\nconst GuideText = styled(Secondary5)`\n max-width: 300px;\n padding-left: 8px;\n padding-right: 8px;\n padding-bottom: 4px;\n`;\n\nconst MenuTitle = styled(Primary4)`\n display: inline-flex;\n justify-content: center;\n align-items: center;\n align-content: center;\n flex-grow: 1;\n padding: 0 8px;\n`;\n\nconst MenuIconContainer = styled.div`\n display: inline-flex;\n justify-content: center;\n align-items: center;\n\n color: ${({theme}) => theme.colors.palette.manatee };\n\n width: 26px;\n height: 30px;\n`;\n\nconst MenuHeaderLabel = styled.div`\n display: inline-block;\n white-space: nowrap;\n text-align: left;\n\n padding-right: 12px;\n`;\n\n// [FUTUREHACK] should this be a defined common button?\nconst BackButton = styled(ButtonBase)`\n box-sizing: border-box;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n width: ${backButtonWidth}px;\n\n color: ${({theme}) => theme.colors.palette.manatee };\n font-size: 20px;\n\n :disabled {\n opacity: 0.5;\n }\n\n :hover:enabled {\n background-color: ${props => props.theme.colors.palette.grey.cloud};\n }\n`;\n\n/**\n * This component is the header shown in the LiveControl Dropdown Window.\n */\n export default function LiveControlDropdownHeader({\n displayName,\n icon,\n goBack,\n guideText,\n}) {\n const renderGuideText = () => {\n if (guideText) {\n return (\n \n {guideText}\n \n );\n }\n };\n\n return (\n \n \n {!!goBack && (\n \n \n )\n }\n \n \n {icon}\n \n \n {displayName}\n \n \n \n {renderGuideText()}\n \n );\n}\n\nLiveControlDropdownHeader.propTypes = {\n displayName: PropTypes.string,\n icon: PropTypes.node,\n goBack: PropTypes.func,\n guideText: PropTypes.string,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nconst MenuHeader = styled.div`\n display: flex;\n align-content: stretch;\n flex-direction: column;\n color: ${({theme}) => theme.colors.darkText.mediumEmphasis};\n`;\n\nconst MenuSeparator = styled.div`\n border-bottom: 1px solid ${({theme}) => theme.colors.palette.grey.silver };\n margin-bottom: 4px;\n`;\n\n/**\n * This component is used to layout how the header and body are displayed in the LiveControl Dropdown window.\n */\n export default function LiveControlDropdownLayout({\n body,\n header,\n}) {\n return (\n \n \n {header}\n \n \n {body}\n \n );\n}\n\nLiveControlDropdownLayout.propTypes = {\n body: PropTypes.node.isRequired,\n header: PropTypes.node,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport LiveControlSeparator from '../LiveControlSeparator';\nimport LiveControlDropdownHeader from '../LiveControlDropdownHeader';\nimport LiveControlDropdownLayout from '../LiveControlDropdownLayout';\nimport { childrenAreOneOf } from 'Common/util/propTypeHelpers';\nimport Icon from 'Common/components/Icon';\nimport { Body5 } from 'Common/components/typography';\n\nconst Root = styled.div`\n display: flex;\n flex-direction: column;\n /* We rely on a flex parent to size ourselves correctly */\n flex: 1 1 auto;\n /* flex-shrink doesn't work correctly without a\n min-height to use as a basis\n */\n min-height: 1px;\n`;\n\nconst MenuSelection = styled.div`\n display: flex;\n flex-direction: row;\n align-items: stretch;\n`;\n\nconst MenuMoreIndicator = styled.div`\n display: inline-flex;\n justify-content: center;\n align-items: center;\n width: 44px;\n height: 44px;\n color: ${({theme}) => theme.colors.darkText.mediumEmphasis};\n font-size: 20px;\n`;\n\nconst MenuSeparator = styled.div`\n border-bottom: 1px solid ${({theme}) => theme.colors.palette.grey.silver };\n`;\n\nconst MenuItemLabel = styled(Body5).attrs({ as: 'div' })`\n display: inline-block;\n white-space: nowrap;\n text-align: left;\n color: ${({theme, disabled}) => disabled\n ? 'inherit'\n : theme.colors.darkText.mediumEmphasis\n };\n flex: 1 0 auto;\n padding-right: ${({hasControl}) => hasControl ? '0' : '12px'};\n`;\n\nexport default function LiveControlOverflowMenu({\n onSelectionChange,\n children,\n}) {\n children = React.Children.toArray(children);\n\n const openChild = children.find((child) => {\n return child.props.selected;\n });\n\n let body = null;\n const goBack = () => { onSelectionChange('overflowMenu'); };\n\n if (openChild?.props.controlRender) {\n if (!openChild.props.handleContentLayout) {\n body = (\n )}\n body={openChild.props.controlRender()}\n />\n );\n }\n else {\n body = openChild.props.controlRender({ headerGoBack: goBack});\n }\n }\n else {\n body = children.map((child, index) => {\n if (child.props.icon) {\n const {\n icon: childIcon,\n controlRender: childControlRender,\n displayName: childDisplayName,\n disabled: childDisabled,\n } = child.props;\n\n const childContent = (\n \n {childIcon}\n \n {childDisplayName}\n \n {childControlRender && (\n \n \n \n )}\n \n );\n\n child = React.cloneElement(child, {\n contentRender: () => childContent,\n });\n\n return (\n \n {child}\n \n );\n }\n else {\n // For now, assume fields without icons are separators\n return (\n \n );\n }\n });\n }\n\n return (\n \n {body}\n \n );\n}\n\nLiveControlOverflowMenu.propTypes = {\n children: childrenAreOneOf({\n elementTypes: [\n LiveControlSeparator,\n ],\n propShapes: [\n // dropdown:\n [\n 'name',\n 'displayName',\n 'icon',\n 'controlRender',\n ],\n // simple selection:\n [\n 'name',\n 'displayName',\n 'icon',\n ],\n ],\n }),\n onSelectionChange: PropTypes.func.isRequired,\n};\n","import React from 'react';\nimport useResizeObserver from '@react-hook/resize-observer';\n\nfunction _calculateVisibleItems(node) {\n let visibleCount = 0;\n const bounds = node.getBoundingClientRect();\n const containerWidth = bounds.width;\n let cumeWidth = 0;\n\n for (let ii = 0; ii < node.childElementCount; ii++) {\n const childBounds = node.children[ii].getBoundingClientRect();\n cumeWidth += childBounds.width;\n if (cumeWidth <= containerWidth) {\n visibleCount += 1;\n }\n }\n return visibleCount;\n}\n\n\nexport function useElidedChildren(childCount) {\n const [visibleItems, setVisibleItems] = React.useState(null);\n const [previousWidth, setPreviousWidth] = React.useState(null);\n\n // Set up the ref with a callback so that we're updated with any changes to it.\n const ref = React.useRef(null);\n const setRef = React.useCallback(node => {\n if (ref.current || node) {\n // Ref is being changed, so clean up anything related to the previous ref.\n setVisibleItems(null);\n }\n\n ref.current = node;\n }, [ref]);\n\n // Trigger a re-measurement on resize.\n useResizeObserver(ref, (e) => {\n if (e.contentRect.width !== previousWidth) {\n setVisibleItems(null);\n setPreviousWidth(e.contentRect.width);\n }\n });\n\n // Trigger a re-measurement if the number of children changes.\n React.useEffect(() => {\n setVisibleItems(null);\n }, [childCount]);\n\n React.useEffect(() => {\n // When ref changes or visibleItems is set to null, recalculate the\n // correct number of visibleItems.\n if (ref.current && visibleItems === null) {\n setVisibleItems(_calculateVisibleItems(ref.current));\n }\n }, [ref, visibleItems]);\n\n return {\n containerRef: setRef,\n visibleItems: visibleItems,\n };\n}\n","import React, { useState, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport DropdownWindow from 'Common/components/Dropdown/DropdownWindow';\n\nimport isFunction from 'lodash/isFunction';\n\nimport { childrenAreOneOf } from 'Common/util/propTypeHelpers';\nimport LiveControlSeparator from './LiveControlSeparator';\nimport LiveControl from './LiveControl';\nimport LiveControlIcon from './LiveControlIcon';\nimport LiveControlOverflowMenu from './internal/LiveControlOverflowMenu';\nimport LiveControlDropdownLayout from './LiveControlDropdownLayout';\nimport LiveControlDropdownHeader from './LiveControlDropdownHeader';\nimport { useElidedChildren } from 'Common/components/MenuToolbar/hooks';\nimport first from 'lodash/first';\nimport last from 'lodash/last';\n\nconst LiveControlBarContainer = styled.div`\n position: relative;\n width: 100%;\n`;\n\nconst LiveControlButtons = styled.div`\n position: relative;\n\n text-align: left;\n width: 100%;\n`;\n\nconst OverflowLiveControlContainer = styled.div`\n display: inline-block;\n\n flex: 0 0 auto;\n\n /* In cases of overlap with the visible control container\n we don't want to take click events away from it.\n */\n pointer-events: none;\n`;\n\nconst VisibleLiveControls = styled.div`\n flex: 0 1 auto;\n\n white-space: nowrap;\n display: flex;\n\n /* Needs a min-width to serve as the flex-shrink basis */\n min-width: 44px;\n`;\n\nconst OverflowLiveControl = styled(LiveControl)`\n display: ${({visible}) => visible ? 'inherit' : 'none'};\n /*\n The parent, OverflowLiveControlContainer, has \"pointer-events: none\".\n So, re-enable pointer events on the child control.\n */\n pointer-events: auto;\n`;\n\nconst OVERFLOW_MENU_NAME = 'overflowMenu';\n\n/**\n * A collection of buttons/dropdowns that can only be opened\n * one at a time. Generally used as a toolbar for a widget. Has\n * the ability to handle overflow if the toolbar if too long for the given width.\n */\n\nexport default function LiveControlBar(props) {\n const {\n selection,\n onSelectionChange,\n separatorBeforeOverflow,\n disabled,\n children: childrenProp,\n ...otherProps\n } = props;\n\n const [anchorElement, setAnchorElement] = useState(null);\n const [selectedBox, setSelectedBox] = useState(null);\n const selectedButtonRef = useRef(null);\n const setBoxSelection = (element) => {\n let newAnchorElement = null;\n let newSelectedBox = null;\n\n if (element) {\n newAnchorElement = element;\n newSelectedBox = element.getBoundingClientRect();\n }\n\n setAnchorElement(newAnchorElement);\n setSelectedBox(newSelectedBox);\n };\n\n const prevSelectionRef = useRef();\n useEffect(() => {\n if (prevSelectionRef.current !== selection || !selectedBox) {\n prevSelectionRef.current = selection;\n if (selection && selectedButtonRef.current) {\n setBoxSelection(selectedButtonRef.current);\n }\n else {\n setBoxSelection(null);\n }\n }\n });\n\n const onControlClick = ({\n selection: newSelection,\n inOverflow,\n action,\n }) => {\n const updateSelection = (aSelection) => {\n if (selection === aSelection) {\n aSelection = null;\n }\n\n onSelectionChange(aSelection);\n };\n\n // This control has an action, and controls with actions cannot be\n // selected.\n //\n if (action) {\n // By default we want to close the overflow menu after\n // an action unless overridden with preventDefault.\n //\n let closeOverflowMenu = true;\n\n const event = {\n value: newSelection,\n inOverflow,\n preventDefault: () => closeOverflowMenu = false,\n };\n\n action(event);\n\n if (inOverflow && closeOverflowMenu) {\n updateSelection(null);\n }\n }\n else {\n updateSelection(newSelection);\n }\n };\n\n const filterExtraSeparators = (childrenArray) => {\n // Separators at the beginning and end of the control sets can\n // be trimmed away so there aren't dangling separators.\n //\n if (first(childrenArray)?.type === LiveControlSeparator) {\n childrenArray.shift();\n }\n\n if (last(childrenArray)?.type === LiveControlSeparator) {\n childrenArray.pop();\n }\n };\n\n const children = React.Children.toArray(childrenProp);\n const totalChildCount = children.length;\n const { containerRef: visibleLiveControlsRef, visibleItems } = useElidedChildren(totalChildCount);\n const currentVisibleItems = visibleItems === null\n ? totalChildCount\n : visibleItems;\n\n let selectedControlRender = null;\n let selectedIcon = null;\n let selectedDisplayName = null;\n let selectedHandlesDropdownLayout = false;\n let showSelectedControlHeader = true;\n\n let visibleChildren = [];\n let overflowChildren = [];\n\n const itemCountThatCanFit = currentVisibleItems;\n children.forEach((child, index) => {\n let newChild = child;\n\n const {\n neverOverflow = false,\n } = child.props;\n\n let inOverflow;\n\n if (neverOverflow) {\n inOverflow = false;\n }\n else {\n if (totalChildCount <= itemCountThatCanFit) {\n inOverflow = false;\n }\n else {\n // index + 1 is the number of children that would be visible if the current child is added\n // if it's greater than the items that can fit then it will need to be in the overflow\n // since the overflow will take up a spot we subtract 1, this means the overflow if it \n if ((index + 1) >= itemCountThatCanFit - 1) {\n inOverflow = true;\n }\n else {\n inOverflow = false;\n }\n }\n }\n\n if (child.props.name) {\n let clonedChildProps = {\n disabled: disabled || !!child.props.disabled,\n inOverflow,\n key: index,\n showTooltip: !inOverflow,\n onClick: () => onControlClick({\n selection: child.props.name,\n inOverflow,\n action: child.props.action,\n }),\n contentRender: () => child.props.icon,\n };\n\n if (isFunction(child.props.controlRender)) {\n const selected = selection === child.props.name;\n clonedChildProps.buttonRef = selected && !inOverflow ? selectedButtonRef : null;\n clonedChildProps.selected = selected;\n\n if (selected) {\n selectedControlRender = child.props.controlRender;\n selectedIcon = child.props.icon;\n selectedDisplayName = child.props.displayName;\n selectedHandlesDropdownLayout = child.props.handleContentLayout;\n showSelectedControlHeader = !child.props.suppressControlHeader;\n }\n }\n else {\n clonedChildProps.selected = selection === child.props.name || !!child.props.selected;\n }\n\n newChild = React.cloneElement(child, clonedChildProps);\n }\n\n if (inOverflow) {\n overflowChildren.push(newChild);\n }\n else {\n visibleChildren.push(newChild);\n }\n });\n\n filterExtraSeparators(visibleChildren);\n filterExtraSeparators(overflowChildren);\n\n const overflowChildOpen = overflowChildren.some((child) => {\n return child.props.selected;\n });\n\n const overflowMenuOpen = overflowChildOpen || selection === OVERFLOW_MENU_NAME;\n let dropdownContent = null;\n\n if (overflowMenuOpen) {\n dropdownContent = (\n \n {overflowChildren}\n \n );\n }\n else if (selectedControlRender && selectedIcon) {\n if (!selectedHandlesDropdownLayout) {\n dropdownContent = (\n )}\n body={selectedControlRender()}\n />\n );\n }\n else {\n dropdownContent = selectedControlRender();\n }\n }\n\n\n const overflowLiveControl = (\n \n {separatorBeforeOverflow && (\n \n )}\n 0}\n disabled={disabled || overflowChildren.length === 0}\n buttonRef={overflowMenuOpen ? selectedButtonRef : null}\n onClick={() => onControlClick({\n selection: OVERFLOW_MENU_NAME,\n inOverflow: false,\n })}\n contentRender={() => (\n \n )}\n />\n \n );\n\n visibleChildren.push(overflowLiveControl);\n\n return (\n \n \n \n {visibleChildren}\n {selectedBox && dropdownContent && (\n onControlClick({\n selection: null,\n inOverflow: false,\n })}\n >\n {dropdownContent}\n \n )}\n \n \n \n );\n}\n\nLiveControlBar.propTypes = {\n children: childrenAreOneOf({\n elementTypes: [\n LiveControlSeparator,\n ],\n propShapes: [\n ['controlRender', 'name', 'displayName'], // for a dropdown\n ['name', 'displayName'] // simple selection\n ],\n }),\n disabled: PropTypes.bool,\n separatorBeforeOverflow: PropTypes.bool,\n onSelectionChange: PropTypes.func.isRequired,\n selection: PropTypes.string,\n};\n\nLiveControlBar.defaultProps = {\n disabled: false,\n separatorBeforeOverflow: false,\n selection: null,\n};\n","import LiveControlBar from './LiveControlBar';\n\nexport default LiveControlBar;\n","import React from 'react';\nimport styled, { css } from 'styled-components';\nimport PropTypes from 'prop-types';\n\nimport Icon from 'Common/components/Icon';\nimport { Primary5 } from 'Common/components/typography';\n\nconst LayoutWrapper = styled.div`\n box-sizing: border-box;\n height: ${({ size }) => size === 'large' ? css`26px` : css`22px`};\n padding: ${({ size }) => size === 'large' ? css`0 6px 0 7px` : css`0 4px 0 5px`};\n\n display: flex;\n align-items: center;\n flex-direction: row;\n text-align: left;\n`;\n\nconst ChildWrapper = styled(Primary5)`\n display: block;\n flex: 1 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n padding-right: 4px;\n\n ${({isPlaceholderText}) => isPlaceholderText && css`\n color: ${({theme}) => theme.colors.darkText.mediumEmphasis};\n `}\n\n ${({hasError}) => hasError && css`\n color: ${({theme}) => theme.colors.palette.error.red};\n `}\n\n ${({disabled}) => disabled && css`\n color: ${({theme}) => theme.colors.darkText.disabled};\n `}\n`;\n\nconst StyledIcon = styled(Icon)`\n flex: 0 0 auto;\n background-color: white;\n border-radius: 6px;\n width: 12px;\n height: 12px;\n text-align: center;\n color: ${({theme}) => theme.colors.darkText.mediumEmphasis};\n line-height: 12px;\n font-size: 10px;\n\n ${({hasError}) => hasError && css`\n color: ${({theme}) => theme.colors.palette.error.red};\n `}\n\n ${({disabled}) => disabled && css`\n color: ${({theme}) => theme.colors.darkText.disabled};\n `}\n`;\n\n/**\n * In general this should not be used directly, prefer using\n * SelectDropdownButton instead.\n *\n * @see SelectDropdownButton\n */\nfunction SelectDisplay({\n children,\n hasError,\n isPlaceholderText,\n disabled,\n size,\n ...otherProps\n}) {\n return (\n \n \n {children}\n \n \n \n );\n}\n\nSelectDisplay.propTypes = {\n children: PropTypes.node.isRequired,\n hasError: PropTypes.bool,\n isPlaceholderText: PropTypes.bool,\n disabled: PropTypes.bool,\n size: PropTypes.oneOf([\n 'medium',\n 'large',\n ]),\n};\n\nSelectDisplay.defaultProps = {\n hasError: false,\n isPlaceholderText: false,\n disabled: false,\n size: 'medium',\n};\n\nexport default React.memo(SelectDisplay);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { css } from 'styled-components';\nimport ButtonBase from '../Button/ButtonBase';\nimport SelectDisplay from './SelectDisplay';\n\nconst StyledSelectDisplay = styled(SelectDisplay)``;\n\nconst RootButton = styled(ButtonBase)`\n box-sizing: border-box;\n\n transition: background-color 0.3s;\n\n border-radius: 4px;\n\n /* For touch targets */\n min-width: 40px;\n\n :enabled {\n /* Regular, non-error state */\n ${({hasError}) => !hasError && css`\n background-color: ${props => props.theme.colors.palette.grey.cloud};\n\n :hover {\n background-color: ${({theme}) => theme.colors.palette.grey.silver};\n }\n `}\n\n /* Error state */\n ${({hasError}) => hasError && css`\n background-color: ${({theme}) => theme.colors.palette.error.helios};\n `}\n }\n\n :disabled {\n background-color: ${props => props.theme.colors.palette.grey.cloud};\n }\n`;\n\nfunction SelectDropdownButton({\n disabled,\n children,\n error,\n isPlaceholderText,\n size,\n ...otherProps\n}) {\n const hasError = Boolean(error);\n\n return (\n \n \n {children}\n \n \n );\n}\n\nSelectDropdownButton.propTypes = {\n disabled: PropTypes.bool,\n children: PropTypes.node.isRequired,\n error: PropTypes.node,\n isPlaceholderText: PropTypes.bool,\n size: PropTypes.oneOf([\n 'medium',\n 'large',\n ]),\n};\n\nSelectDropdownButton.defaultProps = {\n disabled: false,\n isPlaceholderText: false,\n size: 'medium'\n};\n\nexport default SelectDropdownButton;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport BasicSelectList from 'Common/components/SelectList/BasicSelectList';\nimport Dropdown from 'Common/components/Dropdown/Dropdown';\nimport SelectDropdownButton from 'Common/components/SelectList/SelectDropdownButton';\nimport { anyOf } from 'Common/util/propTypeHelpers';\n\n/**\n * Basic select field which wraps a SelectList in a dropdown with internally\n * managed state.\n */\nconst BasicSelectField = ({\n name,\n selectedValue,\n selectedDisplayName,\n options,\n onChange,\n disabled,\n buttonProps,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n\n const openHandler = () => {\n setIsOpen(true);\n };\n\n const closeHandler = () => {\n setIsOpen(false);\n };\n\n const onChangeHandler = (event) => {\n closeHandler();\n onChange(\n {\n target: {\n name: name,\n value: options.find((item) => event.target.value === item.value) || null,\n }\n }\n );\n };\n\n const renderContent = () => {\n return (\n \n );\n };\n\n return (\n \n \n {selectedDisplayName}\n \n \n );\n};\n\nBasicSelectField.propTypes = {\n name: PropTypes.string,\n selectedValue: PropTypes.string,\n selectedDisplayName: PropTypes.string.isRequired,\n options: PropTypes.arrayOf(PropTypes.shape(\n anyOf([ {\n value: PropTypes.string.isRequired,\n displayName: PropTypes.string.isRequired,\n icon: PropTypes.node,\n }, {\n value: PropTypes.string.isRequired,\n displayKey: PropTypes.string.isRequired,\n icon: PropTypes.node,\n } ])\n )),\n onChange: PropTypes.func,\n disabled: PropTypes.bool,\n buttonProps: PropTypes.object,\n};\n\nBasicSelectField.defaultProps = {\n disabled: false,\n buttonProps: {},\n};\n\nexport default BasicSelectField;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport Icon from '../Icon';\nimport ButtonBase from '../Button/ButtonBase';\nimport { FontWeight } from 'Common/components/typography';\n\nconst StyledButton = styled(ButtonBase)`\n box-sizing: border-box;\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n\n color: ${({theme}) => theme.colors.palette.grey.emperor };\n font-size: 12px;\n\n padding: 4px 8px;\n border-radius: 4px;\n\n :disabled {\n opacity: 0.5;\n }\n\n :hover:enabled {\n background-color: ${({theme}) => theme.colors.palette.grey.cloud};\n }\n`;\n\nconst StyledIcon = styled(Icon)`\n font-size: 9px;\n`;\n\nconst StyledOption = styled.span`\n font-weight: ${FontWeight.medium};\n`;\n\nfunction ListButton({\n children,\n ...buttonProps\n}) {\n return (\n \n {children}\n \n \n );\n}\n\nListButton.propTypes = {\n children: PropTypes.node,\n};\n\nListButton.defaultProps = {\n\n};\n\nexport default ListButton;\n","import ListButton from './ListButton';\n\nexport default ListButton;\n","import { css } from \"styled-components\";\n\n/**\n * For use in a styled component to set all the properties needed to\n * make text elide in most situations.\n */\nexport const elideTextCss = css`\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\nexport const dragDropCursor = css`\n cursor: move;\n`;\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { css } from 'styled-components';\nimport { Heading5, Secondary5 } from 'Common/components/typography';\nimport Icon from 'Common/components/Icon';\nimport ButtonBase from 'Common/components/Button/ButtonBase';\nimport { dragDropCursor } from 'Common/util/cssSnippets';\n\nconst Root = styled.div`\n padding: 3px 15px 8px 18px;\n box-sizing: border-box;\n ${dragDropCursor}\n display: flex;\n flex-direction: column;\n user-select: none;\n border-top: 1px solid ${({theme}) => theme.colors.palette.grey.silver };\n border-bottom: 1px solid ${({theme}) => theme.colors.palette.grey.silver };\n margin-top: -1px;\n \n ${({$isDragging}) => $isDragging && css`\n background-color: ${({theme}) => theme.colors.palette.blue.ice };\n box-shadow: 0px 11px 15px -6px ${({theme}) => theme.colors.palette.grey.emperor};\n border-radius: 4px;\n border: 1px solid ${({theme}) => theme.colors.palette.grey.silver };\n\n ${({$overTrash}) => $overTrash && css`\n background-color: ${({theme}) => theme.colors.palette.error.helios };\n `}\n `}\n`;\n\nconst PrimaryContainer = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: baseline;\n`;\n\nconst PrimaryText = styled(Heading5)`\n flex: 1 1 auto;\n display: block;\n`;\n\nconst SecondaryContainer = styled(Secondary5)`\n display: block;\n`;\n\nconst StyledButton = styled(ButtonBase)`\n flex: 0 0 auto;\n box-sizing: border-box;\n\n color: ${({theme}) => theme.colors.palette.grey.emperor };\n font-size: 12px;\n\n padding: 4px 8px;\n border-radius: 4px;\n\n :disabled {\n opacity: 0.5;\n }\n\n :hover:enabled {\n background-color: ${({theme}) => theme.colors.palette.grey.cloud};\n }\n`;\n\nconst StyledIcon = styled(Icon)`\n font-size: 9px;\n`;\n\n/**\n * \n * The component used in ColumnControl for the shown draggable field. It allows\n * the user to drag it for reordering and for deleting. Has a button for the\n * user to begin edit on the field.\n */\n\nfunction DraggableFieldItem(props) {\n const { name, primaryText, secondaryText, onEdit, isDragging, overTrash } = props;\n\n const handleEdit = useCallback(() => {\n onEdit(\n {\n target: {\n value: name,\n },\n }\n );\n }, [onEdit, name]);\n\n return (\n \n \n {primaryText}\n
    \n {onEdit\n ? (\n \n \n \n )\n : null\n }\n
    \n
    \n \n {secondaryText}\n \n
    \n );\n}\n\nDraggableFieldItem.propTypes = {\n name: PropTypes.string.isRequired,\n primaryText: PropTypes.string.isRequired,\n secondaryText: PropTypes.string,\n onEdit: PropTypes.func,\n isDragging: PropTypes.bool,\n overTrash: PropTypes.bool,\n};\n\nDraggableFieldItem.defaultProps = {\n secondaryText: '',\n isDragging: false,\n overTrash: false,\n};\n\nexport default React.memo(DraggableFieldItem);\n","import React, {useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { css } from 'styled-components';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\n\nconst Root = styled.div`\n touch-action: manipulation;\n`;\n\nconst DropZone = styled.div`\n ${({$isDragging}) => $isDragging && css`\n background-color: ${({theme}) => theme.colors.palette.blue.ice };\n `}\n`;\n\n// The DraggableList uses a DragOverlay to show a duplicate of the item\n// while it's being dragged. So hide the original during a drag.\nconst ItemContainer = styled.div`\n ${({$isDragging}) => $isDragging && css`\n opacity: 0;\n `}\n`;\n\nexport default function DraggableListItem(props) {\n const { className, name, index, children, highlightDropZone, onDelete, ...otherProps } = props;\n\n const {\n attributes,\n listeners,\n setNodeRef,\n transform,\n transition,\n isDragging,\n } = useSortable({\n id: name,\n data: {\n index: index,\n },\n });\n \n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n };\n\n // [FUTUREHACK]\n // allow for deleting with delete button\n const handleKeyDelete = useCallback((event) => {\n const { key } = event;\n if (key === 'Delete' && !isDragging) {\n onDelete({ id: name, index: index });\n }\n }, [onDelete, name, index, isDragging]);\n\n return (\n
    \n \n \n \n {children}\n \n \n \n
    \n );\n}\n\nDraggableListItem.propTypes = {\n className: PropTypes.string,\n name: PropTypes.string.isRequired,\n index: PropTypes.number.isRequired,\n children: PropTypes.node,\n highlightDropZone: PropTypes.bool,\n onDelete: PropTypes.func,\n};\n\nDraggableListItem.defaultProps = {\n highlightDropZone: false,\n onDelete: () => {}\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useDroppable } from '@dnd-kit/core';\n\n/**\n * This is used in DraggableListWithTrashCan. It's the actual droppable target. It is\n * not shown, it is used to keep the trash can in the correct location compared to the\n * sortable list.\n */\n\nfunction TrashCanDrop(props) {\n const { name } = props;\n\n const {\n setNodeRef\n } = useDroppable({\n id: name,\n });\n\n return (\n
    \n );\n}\n\nTrashCanDrop.propTypes = {\n name: PropTypes.string.isRequired,\n};\n\nexport default React.memo(TrashCanDrop);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { css } from 'styled-components';\nimport { elideTextCss } from 'Common/util/cssSnippets';\n\nimport Icon from 'Common/components/Icon';\nimport { Secondary5 } from 'Common/components/typography';\n\nexport const TRASH_CAN_HEIGHT = 62;\n\nconst Root = styled.div`\n border-top: 1px solid ${({theme}) => theme.colors.palette.grey.silver };\n margin-top: -1px;\n padding: 15px 0px 8px 0px;\n height: ${TRASH_CAN_HEIGHT}px;\n`;\n\nconst DropTargetContainer = styled.div`\n box-shadow: 0px 0px 4px -2px ${({theme}) => theme.colors.palette.grey.emperor};\n background-color: ${({theme}) => theme.colors.palette.grey.cloud };\n border-radius: 4px;\n border: 1px solid ${({theme}) => theme.colors.palette.grey.silver };\n ${({ $isOver }) => $isOver && css`\n background-color: ${({theme}) => theme.colors.palette.error.helios };\n `}\n color: ${({ theme }) => theme.colors.darkText.mediumEmphasis};\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 10px;\n`;\n\nconst StyledIcon = styled(Icon)`\n font-size: 14px;\n`;\n\nconst StyledText = styled(Secondary5)`\n ${elideTextCss}\n`;\n\n/**\n * This is used in DraggableListWithTrashCan. It's the displayed drop target that looks\n * like a trash can with additional text.\n */\n\nfunction TrashCan(props) {\n const { deleteHelperText, isOver } = props;\n\n return (\n \n \n \n \n {deleteHelperText}\n \n \n \n );\n}\n\nTrashCan.propTypes = {\n deleteHelperText: PropTypes.string,\n isOver: PropTypes.bool.isRequired,\n};\n\nexport default React.memo(TrashCan);\n","import React, { useCallback, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport DraggableListItem from './DraggableListItem';\nimport TrashCanDrop from './TrashCanDrop';\nimport TrashCan, { TRASH_CAN_HEIGHT } from './TrashCan';\nimport { \n DndContext,\n DragOverlay,\n KeyboardSensor,\n MouseSensor,\n TouchSensor,\n useSensor,\n useSensors,\n rectIntersection,\n} from '@dnd-kit/core';\nimport { SortableContext, verticalListSortingStrategy } from '@dnd-kit/sortable';\n\nconst TRASH_ID = 'TRASH_ID';\nconst HALF_TRASH_CAN_HEIGHT = TRASH_CAN_HEIGHT / 2;\n\nconst Root = styled.div`\n box-sizing: border-box;\n display:flex;\n flex-direction: column;\n min-height: 1px;\n`;\n\nconst SortableContainer = styled.div`\n overflow-y: auto;\n flex: 1 1 auto;\n`;\n\nfunction customCollisionDetectionStrategy(rects, rect) {\n let trashRect = null;\n const otherRects = rects.filter((currentRect) => {\n const currentRectId = currentRect[0];\n\n if (currentRectId === TRASH_ID) {\n trashRect = currentRect;\n return false;\n }\n else {\n return true;\n }\n });\n\n // [FUTUREHACK]:\n // The droppable trash is below the sortable list of items.\n // This causes an issue of the trash's offset \n // being within with the sortable list items offsets.\n // The simplest solution was to\n // pretend the trash is actually at the end of the list\n\n if (trashRect) {\n trashRect = [\n TRASH_ID,\n { ...trashRect[1], height: TRASH_CAN_HEIGHT, offsetTop: ( trashRect[1].offsetTop + HALF_TRASH_CAN_HEIGHT) }\n ];\n const updatedRects = [ ...otherRects, trashRect ];\n return rectIntersection(updatedRects, rect);\n }\n else {\n return rectIntersection(rects, rect);\n }\n}\n\n/**\n * DraggableListWithTrashCan is just like DraggableList, displaying a vertical list of provided nodes, \n * allowing them to be reordered via drag/drop, keyboard, and touch.\n * Difference here is that the list tries to stay within its container and always show a trash can\n * below that the nodes can be dragged into to trigger onDelete.\n */\n\nexport default function DraggableListWithTrashCan({\n className,\n children,\n onDragEnd,\n onDelete,\n deleteHelperText\n}) {\n const [ activeId, setActiveId ] = useState(null);\n const [ overTrash, setOverTrash ] = useState(false);\n\n const handleDragStart = useCallback((event) => {\n setActiveId(event.active.id);\n }, []);\n\n const handleDragOver = useCallback((event) => {\n // Because we have a fake trash drop target\n // this handles styling the fake trash drop target\n // when we are 'suppose' to be over it\n if (event?.over?.id === TRASH_ID && overTrash !== true) {\n setOverTrash(true);\n }\n else if (event?.over?.id !== TRASH_ID && overTrash === true) {\n setOverTrash(false);\n }\n }, [overTrash]);\n\n const handleDragEnd = useCallback((event) => {\n setActiveId(null);\n setOverTrash(false);\n const { active, over } = event;\n\n if (over?.id === TRASH_ID) {\n onDelete({ id: active.id, index: active.data.current.index });\n }\n // if no over we dropped the item oustide the list\n else if (over) {\n onDragEnd({\n source: {\n id: active.id,\n index: active.data.current.index,\n },\n destination: {\n id: over.id,\n index: over.data.current.index,\n },\n });\n }\n\n }, [ onDragEnd, onDelete ]);\n\n const handleDragCancel = useCallback((event) => {\n setActiveId(null);\n }, []);\n\n const childrenArray = useMemo(() => (\n React.Children.toArray(children)\n ), [ children ]);\n\n const childNames = useMemo(() => (\n childrenArray.map(child => child.props.name)\n ), [ childrenArray ]);\n\n const childrenByName = useMemo(() => (\n childrenArray.reduce((acc, child) => {\n acc[child.props.name] = child;\n return acc;\n }, {})\n ), [ childrenArray ]);\n\n const sensors = useSensors(\n useSensor(MouseSensor, {\n // Require the mouse to move by 10 pixels before activating\n activationConstraint: {\n distance: 10,\n },\n }),\n useSensor(TouchSensor, {\n // Require a delay so a long press it what triggers drag\n activationConstraint: {\n delay: 1000,\n tolerance: 10,\n },\n }),\n useSensor(KeyboardSensor),\n );\n\n return (\n \n \n \n \n {childrenArray.map((child, i) => {\n const childName = child.props.name;\n\n return (\n \n {child}\n \n );\n })}\n \n \n \n \n {activeId ? React.cloneElement(childrenByName[activeId], { isDragging: true, overTrash }) : null}\n \n \n \n \n );\n}\n\nDraggableListWithTrashCan.propTypes = {\n className: PropTypes.string,\n children: PropTypes.any,\n onDragEnd: PropTypes.func.isRequired,\n onDelete: PropTypes.func.isRequired,\n deleteHelperText: PropTypes.string,\n};\n\nDraggableListWithTrashCan.defaultProps = {\n};\n","import React, { useCallback, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport DraggableListItem from './DraggableListItem';\nimport { DndContext, DragOverlay, KeyboardSensor, MouseSensor, TouchSensor, useSensor, useSensors } from '@dnd-kit/core';\nimport { SortableContext } from '@dnd-kit/sortable';\n\nconst Root = styled.div`\n box-sizing: border-box;\n`;\n\n/**\n * DraggableList displays a vertical list of provided nodes, \n * allowing them to be reordered via drag/drop, keyboard, and touch.\n */\n\nexport default function DraggableList({\n className,\n children,\n onDragEnd,\n}) {\n const [ activeId, setActiveId ] = useState(null);\n\n const handleDragStart = useCallback((event) => {\n setActiveId(event.active.id);\n }, []);\n\n const handleDragEnd = useCallback((event) => {\n setActiveId(null);\n const { active, over } = event;\n\n // dropped outside the list if no over\n if (over) {\n onDragEnd({\n source: {\n id: active.id,\n index: active.data.current.index,\n },\n destination: {\n id: over.id,\n index: over.data.current.index,\n },\n });\n }\n }, [ onDragEnd ]);\n\n const handleDragCancel = useCallback((event) => {\n setActiveId(null);\n }, []);\n\n const childrenArray = useMemo(() => (\n React.Children.toArray(children)\n ), [ children ]);\n\n const childNames = useMemo(() => (\n childrenArray.map(child => child.props.name)\n ), [ childrenArray ]);\n\n const childrenByName = useMemo(() => (\n childrenArray.reduce((acc, child) => {\n acc[child.props.name] = child;\n return acc;\n }, {})\n ), [ childrenArray ]);\n\n const sensors = useSensors(\n useSensor(MouseSensor, {\n // Require the mouse to move by 10 pixels before activating\n activationConstraint: {\n distance: 10,\n },\n }),\n useSensor(TouchSensor, {\n // Require a delay (aka long press)\n activationConstraint: {\n delay: 1000,\n tolerance: 10,\n },\n }),\n useSensor(KeyboardSensor),\n );\n\n return (\n \n \n \n {childrenArray.map((child, i) => {\n const childName = child.props.name;\n\n return (\n \n {child}\n \n );\n })}\n \n {activeId ? React.cloneElement(childrenByName[activeId], { isDragging: true }) : null}\n \n \n \n \n );\n}\n\nDraggableList.propTypes = {\n className: PropTypes.string,\n children: PropTypes.any,\n onDragEnd: PropTypes.func.isRequired,\n};\n\nDraggableList.defaultProps = {\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { useTheme } from 'styled-components';\nimport Icon from 'Common/components/Icon';\nimport { TouchableTooltipTarget } from 'Common/components/Tooltip';\n\nexport const INFO = 'info';\nexport const ERROR = 'error';\n\nconst InfoIcon = styled(Icon).attrs({\n type: 'vorne',\n iconName: 'info',\n})`\n color: ${({color}) => color};\n\n font-size: ${(props) => props.fontSize}px;\n\n /* Slightly push the icon down within the touchable container\n to better align with other inline text.\n */\n transform: translateY(${(props) => props.fontSize / 10}px);\n`;\n\nconst typeMap = {\n [INFO]: {\n type: 'vorne',\n iconName: 'info',\n getColor: (theme) => theme.colors.palette.grey.manatee,\n },\n [ERROR]: {\n type: 'fontAwesome',\n iconName: 'exclamation-circle',\n getColor: (theme) => theme.colors.palette.error.red,\n },\n};\n\n/**\n * A touchable, clickable, and hoverable icon which shows more information in a\n * tooltip. Has types for showing general information or for showing an error.\n *\n * @param {Node} children The content of the tooltip shown on hover or click/tap\n * @param {Enum} [type=INFO] The type of info to be shown, INFO or ERROR, which\n * have different icons and default colors.\n * @param {Number} [fontSize=12] The font size of the icon.\n * @param {String} [circleColor] The color of the icon, defaults to a grey for INFO\n * and a red for ERROR.\n * @param {String} [placement='auto'] The default placement direction of the tooltip,\n * if it fits.\n */\nfunction InfoCircle({\n children,\n type,\n fontSize,\n circleColor,\n placement,\n}) {\n const theme = useTheme();\n const typeInfo = typeMap[type];\n\n if (!circleColor) {\n circleColor = typeInfo.getColor(theme);\n }\n\n return (\n \n \n \n );\n}\n\nInfoCircle.propTypes = {\n children: PropTypes.node.isRequired,\n type: PropTypes.oneOf([\n INFO,\n ERROR,\n ]),\n fontSize: PropTypes.number,\n circleColor: PropTypes.string,\n placement: PropTypes.string,\n};\n\nInfoCircle.defaultProps = {\n type: INFO,\n fontSize: 12,\n placement: 'auto',\n};\n\nexport default React.memo(InfoCircle);\n","import InfoCircle, { INFO, ERROR } from './InfoCircle';\n\nexport { INFO, ERROR };\n\nexport default InfoCircle;\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { Primary5 } from 'Common/components/typography';\nimport InfoCircle from 'Common/components/InfoCircle';\nimport Icon from 'Common/components/Icon';\n\nconst Root = styled.div`\n box-sizing: border-box;\n padding: 5px 11px;\n /* Assuming chip size is 22px, pad enough for 44px touch target\n Give mobile users a nice big touch target\n */\n @media (hover: none) and (pointer: coarse) {\n padding: 11px;\n }\n`;\n\nconst RootLayout = styled.div`\n display: inline-flex;\n max-width: 100%;\n flex-direction: row;\n align-items: center;\n height: 22px;\n background-color: ${props => props.theme.colors.palette.grey.cloud};\n color: ${props => props.theme.colors.darkText.highEmphasis};\n border-radius: 15px;\n`;\n\nconst LeftContentContainer = styled.div`\n flex: 0 0 auto;\n box-sizing: border-box;\n width: 22px;\n height: 22px;\n border: 1px solid white;\n border-radius: 11px;\n color: ${props => props.theme.colors.darkText.mediumEmphasis};\n background-color: ${props => props.theme.colors.palette.grey.cloud};\n`;\n\nconst CenterContentContainer = styled(Primary5).attrs({ as: 'div' })`\n flex: 0 1 auto;\n display: inline-flex;\n align-items: center;\n box-sizing: border-box;\n padding: 0 0 0 5px;\n min-width: 0; /* Allows text to elide */\n height: 100%;\n`;\n\nconst DeleteButtonContainer = styled.button`\n flex: 0 0 auto;\n display: flex;\n position: relative;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n width: 22px;\n height: 22px;\n margin: 0;\n padding: 0;\n border: none;\n outline: none;\n border-radius: 11px;\n cursor: pointer;\n background-color: transparent;\n\n /* Touch Target */\n :before {\n content: \"\";\n display: block;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translateX(-50%) translateY(-50%);\n width: 100%;\n height: 100%;\n /* Give mobile users a nice big touch target */\n @media (hover: none) and (pointer: coarse) {\n min-width: 44px;\n min-height: 44px;\n }\n border-radius: 50%;\n\n background-color: transparent;\n transition: background-color 300ms;\n }\n\n :hover {\n :before {\n background-color: rgba(0,0,0,0.05);\n }\n }\n\n :active {\n :before {\n background-color: rgba(0,0,0,0.1);\n }\n }\n\n :not(:hover):focus {\n :before {\n background-color: rgba(0,0,0,0.05);\n }\n }\n`;\n\nconst DeleteButtonIcon = styled(Icon).attrs({\n type: 'vorne',\n iconName: 'chip-delete',\n})`\n font-size: 14px;\n color: ${props => props.theme.colors.palette.grey.ash};\n line-height: 16px;\n width: 16px;\n height: 16px;\n`;\n\nexport default function Chip({\n name,\n leftContent,\n children,\n canDelete,\n onDeleteClick,\n noDeleteMessage,\n ...otherProps\n}) {\n const handleDeleteClick = useCallback(() => {\n onDeleteClick({\n target: { name: name },\n });\n }, [ onDeleteClick, name ]);\n\n let rightContent = null;\n\n if (canDelete) {\n rightContent = (\n \n \n \n );\n }\n else if (noDeleteMessage) {\n rightContent = (\n \n {noDeleteMessage}\n \n );\n }\n\n return (\n \n \n {leftContent && \n {leftContent}\n }\n \n {children}\n \n {rightContent}\n \n \n );\n}\n\nChip.propTypes = {\n name: PropTypes.string,\n leftContent: PropTypes.node,\n children: PropTypes.any.isRequired,\n canDelete: PropTypes.bool,\n onDeleteClick: PropTypes.func,\n noDeleteMessage: PropTypes.string,\n};\n\nChip.defaultProps = {\n noDeleteMessage: '',\n canDelete: true,\n onDeleteClick: () => { },\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport Chip from './Chip';\nimport Icon from 'Common/components/Icon';\nimport { Body5 } from 'Common/components/typography';\nimport { dragDropCursor } from 'Common/util/cssSnippets';\n\nconst DragHandleContainer = styled.div`\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 9px;\n ${dragDropCursor}\n user-select: none;\n`;\n\nconst TextContainer = styled.div`\n flex: 1 1 auto;\n box-sizing: border-box;\n min-width: 0; /* Allows text to elide */\n user-select: none;\n`;\n\nconst TextContent = styled.div`\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\nexport default function DraggableChip(props) {\n const { text, ...otherProps } = props;\n\n return (\n \n \n \n )}\n >\n \n \n {text}\n \n \n \n );\n}\n\nDraggableChip.propTypes = {\n text: PropTypes.node.isRequired,\n};\n","import React, { useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { css } from 'styled-components';\nimport uniqueId from 'lodash/uniqueId';\nimport CheckboxInput from './CheckboxInput';\nimport { Primary5 } from 'Common/components/typography';\n\nconst touchTargetPadding = '10px';\n\nconst Root = styled.div`\n display: flex;\n flex-direction: row;\n align-items: baseline;\n`;\n\nconst CheckboxWithTouchTarget = styled(CheckboxInput)`\n padding-top: ${touchTargetPadding};\n padding-bottom: ${touchTargetPadding};\n\n input[type=\"checkbox\"] {\n padding-top: ${touchTargetPadding};\n padding-bottom: ${touchTargetPadding};\n }\n`;\n\nconst Label = styled(Primary5).attrs({ as:'label' })`\n margin: 0;\n border: none;\n\n padding-left: 10px;\n padding-top: ${touchTargetPadding};\n padding-bottom: ${touchTargetPadding};\n\n user-select: none;\n\n color: ${({theme}) => theme.colors.darkText.highEmphasis};\n cursor: pointer;\n\n ${({disabled}) => disabled && css`\n color: ${({theme}) => theme.colors.darkText.disabled};\n cursor: default;\n `}\n`;\n\nexport default function Checkbox(props) {\n const {\n id: idProp,\n label,\n className,\n name,\n value,\n disabled,\n onChange,\n onFocus,\n onBlur,\n ...otherProps\n } = props;\n\n const fallbackId = useRef(uniqueId('Checkbox_'));\n const id = idProp || fallbackId.current;\n const inputId = `${id}_input`;\n\n return (\n \n \n \n \n );\n}\n\nCheckbox.propTypes = {\n id: PropTypes.string,\n label: PropTypes.node,\n className: PropTypes.string,\n name: PropTypes.string,\n value: PropTypes.bool,\n disabled: PropTypes.bool,\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n};\n\nCheckbox.defaultProps = {\n id: '',\n className: '',\n name: '',\n value: false,\n disabled: false,\n onChange: () => {},\n onFocus: () => {},\n onBlur: () => {},\n};\n","import Checkbox from './Checkbox';\n\nexport default Checkbox;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction defaultTranslator() {\n throw new Error('a translator must be provided in order to translate text');\n}\n\nexport const TranslationContext = React.createContext(defaultTranslator);\n\nexport const TranslationConsumer = TranslationContext.Consumer;\n\n/**\n * A provider for the TranslationContext which allows child elements to access the\n * provided translation service via a TranslationConsumer or the useTranslation hook.\n *\n * @param {Function} translator A function which accepts an object and returns the\n * translated string. The objects shape is:\n * - {String} key: the translation key.\n * - {Object} substitutions: The substitutions passed along to the translator\n * for dynamic translations.\n * @param {Node} children\n *\n * @see useTranslation\n */\nfunction TranslationProvider({\n translator,\n children,\n}) {\n if (!children) {\n return null;\n }\n\n if (!translator) {\n translator = defaultTranslator;\n }\n\n return (\n \n {children}\n \n );\n}\n\nTranslationProvider.propTypes = {\n translator: PropTypes.func.isRequired,\n children: PropTypes.node,\n};\n\nexport default TranslationProvider;\n","import { isEqual } from 'lodash';\nimport { useEffect, useRef } from 'react';\n\nconst deepEqualityCheck = (a, b) => isEqual(a, b);\n\n/**\n * A utility hook to memoize an arbitrary set of arguments. Useful for\n * a compound set of values in a useMemo, useCallback, or useEffect\n * dependency array where a deeper equality check is needed.\n *\n * @param {Array} args Arguments to memoize\n * @param {Function} [equalityCheck=deepEqualityCheck] Takes in two args and\n * determines if they are equal. By default uses lodash's deep equality.\n *\n * @returns {Array} Memoized version of args.\n */\nexport default function useMemoizedArgs(args, equalityCheck = deepEqualityCheck) {\n const ref = useRef();\n const prevArgs = ref.current;\n\n const argsAreEqual =\n prevArgs !== undefined\n && args.length === prevArgs.length\n && args.every((v, i) => equalityCheck(v, prevArgs[i]));\n\n useEffect(() => {\n if (!argsAreEqual) {\n ref.current = args;\n }\n });\n\n return argsAreEqual ? prevArgs : args;\n}\n","import { useContext, useMemo } from 'react';\nimport { TranslationContext } from 'Common/providers/TranslationProvider';\nimport useMemoizedArgs from './useMemoizedArgs';\n\n/**\n * Returns the translator function provided by TranslationContext.\n * \n */\nexport function useTranslator() {\n return useContext(TranslationContext);\n}\n\n/**\n * \n * @param {String} key The translation key to send to the translator\n * @param {Object} [substitutions] Any substitutions needed for a translation\n * with dynamic components. For example, a key that translates to\n * \"First, pick a {category}\" might have a substitution object like:\n * { category: \"Shift\" }, in which case useTranslation would return\n * \"First, pick a Shift\".\n */\n export default function useTranslation(key, substitutions) {\n const translator = useTranslator();\n\n const [memoKey, memoSubstitutions] = useMemoizedArgs([key, substitutions]);\n\n const translatedValue = useMemo(() => {\n return translator({\n key: memoKey,\n substitutions: memoSubstitutions,\n });\n }, [translator, memoKey, memoSubstitutions]);\n\n return translatedValue;\n}\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport SelectOptionGroup from 'Common/components/SelectList/SelectOptionGroup';\nimport BasicSelectOption from 'Common/components/SelectList/BasicSelectOption';\nimport CollapsibleSelectOptionGroup from 'Common/components/SelectList/CollapsibleSelectOptionGroup';\nimport SelectSeparator from 'Common/components/SelectList/SelectSeparator';\nimport styled from 'styled-components';\nimport { Body5, Heading5 } from 'Common/components/typography';\nimport Icon from 'Common/components/Icon';\nimport InfoCircle from 'Common/components/InfoCircle';\nimport { useTranslator } from 'Common/hooks/useTranslation';\n\nexport const getFullyQualifiedName = function(option) {\n return option ? `${option.name}` : '';\n};\n\nconst OptionContainer = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n width: 100%;\n height: 16px;\n align-items: center;\n`;\n\nconst OptionText = styled(Body5)`\n height: 100%;\n width: 100%;\n overflow: hidden;\n text-align: left;\n text-overflow: ellipsis;\n vertical-align: middle;\n white-space: nowrap;\n\n color: ${({ theme }) => theme.colors.darkText.highEmphasis};\n`;\n\nconst OptionDescription = styled(Body5)`\n height: 100%;\n width: 100%;\n text-align: right;\n vertical-align: middle;\n white-space: nowrap;\n margin-left: 20px;\n\n color: ${({ theme }) => theme.colors.darkText.disabled};\n`;\n\nconst MetricSetIcon = styled(Icon)`\n padding-left : 5px;\n opacity : 0.5;\n`;\n\nconst TooltipHeaderText = styled(Heading5)`\n height: 100%;\n width: 100%;\n overflow: hidden;\n text-align: left;\n text-overflow: ellipsis;\n vertical-align: middle;\n white-space: nowrap;\n`;\n\n\nexport function getEntriesPropType() {\n return PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n displayName: PropTypes.string.isRequired,\n }),\n PropTypes.shape({\n isSeparator: PropTypes.bool.isRequired,\n }),\n ]),\n );\n}\n\nexport function getOptionsPropType() {\n return PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n displayName: PropTypes.string.isRequired,\n isDummyGroup: PropTypes.bool.isRequired,\n entries: getEntriesPropType().isRequired,\n }).isRequired\n );\n}\n\n/**\n * Given an array of groups with entries return option elements for use in a SelectList\n *\n * @param {Array} optionGroups groups of options, should contain an entries array with actual options\n * @returns react elements representing those options for use in a SelectList\n */\nexport function useOptionElements({ optionGroups, collapsibleGroups }) {\n const translator = useTranslator();\n \n return useMemo(() => {\n const renderDescription = (entry) => {\n if (entry.short_description_key) {\n const literal = translator(entry.short_description_key);\n return (\n \n {literal}\n \n );\n }\n };\n\n const renderIcons = (entry) => {\n if (entry.fieldType === 'metric_set') {\n return (\n \n );\n }\n };\n\n const tooltipTextLiteral = translator('widget.table.column_control.metric_set_tooltip_column_text');\n\n const renderTooltip = (entry) => {\n if (entry.fieldType === 'metric_set') {\n const metrics = entry.columns.map((metric) => (
  • {metric.displayName}
  • ));\n return (\n \n {tooltipTextLiteral}\n
      \n {metrics}\n
    \n
    \n );\n }\n };\n\n return optionGroups.reduce((current, group) => {\n let lastGroup = '';\n const groupChildren = group.entries.map((entry) => {\n const rv = [];\n\n if (lastGroup !== entry.groupName) {\n if (lastGroup !== '') {\n rv.push();\n }\n lastGroup = entry.groupName;\n }\n\n const optionFqn = getFullyQualifiedName(entry);\n\n if (entry.isSeparator) {\n rv.push();\n }\n else {\n rv.push(\n \n \n \n {entry.displayName}\n {renderIcons(entry)}\n \n {renderTooltip(entry)}\n {renderDescription(entry)}\n \n \n );\n }\n\n return rv;\n });\n\n // If the group is a \"dummy group\", we want to flatten the options and\n // display them as ungrouped.\n if (group.isDummyGroup) {\n current = current.concat(groupChildren);\n }\n else if (collapsibleGroups) {\n current.push(\n \n {groupChildren}\n \n );\n }\n else {\n current.push(\n \n {groupChildren}\n \n );\n }\n\n return current;\n }, []);\n }, [ optionGroups, collapsibleGroups, translator ]);\n}\n\nexport function findOptionByFqn (options, fullyQualifiedName) {\n let selectedOption = null;\n\n options.find((group) => {\n const foundEntry = group.entries.find((categoryValue) => {\n return getFullyQualifiedName(categoryValue) === fullyQualifiedName;\n });\n\n if (foundEntry) {\n selectedOption = foundEntry;\n }\n\n return selectedOption !== null;\n });\n\n return selectedOption;\n}\n","import React, { useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport SearchableSelectList from 'Common/components/SelectList/SearchableSelectList';\nimport styled from 'styled-components';\nimport Checkbox from 'Common/components/Checkbox';\nimport { useOptionElements, getFullyQualifiedName, findOptionByFqn, getOptionsPropType } from './FieldSelectListUtil';\nimport useTranslation from 'Common/hooks/useTranslation';\n\nfunction useFlattenedGroups({ optionGroups, disabled, sortFn }) {\n return useMemo(() => {\n // Disables the flattening of the groups\n if (disabled) {\n return optionGroups;\n }\n\n let entries = optionGroups.reduce((curr, group) => {\n return curr.concat(group.entries);\n }, []);\n\n // Flattened groups don't have separators\n entries = entries.filter((entry) => {\n return !entry.isSeparator;\n });\n\n entries.sort(sortFn);\n\n return [\n {\n isDummyGroup: true,\n name: '',\n displayName: '',\n entries: entries,\n },\n ];\n }, [ optionGroups, disabled, sortFn ]);\n}\n\nconst Root = styled.div`\n display: flex;\n flex-direction: column;\n overflow: auto;\n`;\n\nconst FlattenCheckboxContainer = styled.div`\n padding: 0 14px 0 14px;\n`;\n\nconst HorizontalSeparator = styled.div`\n width: 100%;\n height: 1px;\n margin-top: 6px;\n border-bottom: 1px solid ${({theme}) => theme.colors.palette.grey.silver};\n`;\n\nfunction FieldSelectControl(props) {\n const {\n name,\n options: optionsProp,\n collapsibleGroups,\n showFlattenCheckbox,\n entriesSortFn,\n onChange,\n value: selected\n } = props;\n\n const [ flattenGroups, setFlattenGroups ] = useState(false);\n\n const options = useFlattenedGroups({\n disabled: !showFlattenCheckbox || !flattenGroups,\n optionGroups: optionsProp,\n sortFn: entriesSortFn,\n });\n\n const handleChange = (event) => {\n const { value: nextSelectedOptionFqn } = event.target;\n\n // Use the value to find the actual option selected\n const nextSelected = Array.isArray(nextSelectedOptionFqn)\n ? nextSelectedOptionFqn.map((x) => (findOptionByFqn(options, x)))\n : findOptionByFqn(options, nextSelectedOptionFqn);\n\n onChange({\n target: {\n name: name,\n value: nextSelected,\n },\n });\n };\n\n const selectedOptionFqn = Array.isArray(selected)\n ? selected.map(getFullyQualifiedName)\n : getFullyQualifiedName(selected);\n\n const optionElements = useOptionElements({\n optionGroups: options,\n collapsibleGroups: collapsibleGroups,\n });\n\n\n const typeToSearchLiteral = useTranslation('type_to_search_literal');\n const filterboxNoSelectionsCopyLiteral = useTranslation('filterbox_no_selections_copy');\n const alphabeticalListLiteral = useTranslation('display_as_alphabetical_list_literal');\n\n return (\n \n \n {optionElements}\n \n {showFlattenCheckbox && (\n \n \n {\n setFlattenGroups(event.target.value);\n }}\n />\n \n )}\n \n );\n}\nconst valueProp = PropTypes.shape({\n name: PropTypes.string.isRequired,\n});\n\nFieldSelectControl.propTypes = {\n name: PropTypes.string,\n options: getOptionsPropType().isRequired,\n value: PropTypes.oneOfType([\n valueProp,\n PropTypes.arrayOf(valueProp)\n ]),\n collapsibleGroups: PropTypes.bool,\n showFlattenCheckbox: PropTypes.bool,\n entriesSortFn: PropTypes.func,\n onChange: PropTypes.func.isRequired,\n};\n\nFieldSelectControl.defaultProps = {\n collapsibleGroups: false,\n showFlattenCheckbox: false,\n entriesSortFn: (entryA, entryB) => {\n return entryA.displayName.localeCompare(entryB.displayName);\n },\n};\n\nexport default React.memo(FieldSelectControl);\n","import FieldSelectControl from './FieldSelectControl';\n\nexport default FieldSelectControl;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport SearchableSelectList from 'Common/components/SelectList/SearchableSelectList';\nimport { useOptionElements, getFullyQualifiedName, findOptionByFqn } from 'Common/components/LiveControls/FieldSelectControl/FieldSelectListUtil';\nimport { useTranslator } from 'Common/hooks/useTranslation';\nfunction CategorySelectList(props) {\n const { name, options, onChange } = props;\n let { value: selectedOption } = props;\n\n const translator = useTranslator();\n\n const handleChange = (event) => {\n const { value: nextSelectedOptionFqn } = event.target;\n\n // Use the value to find the actual option selected\n const nextSelectedOption = findOptionByFqn(options, nextSelectedOptionFqn);\n\n onChange({\n target: {\n name: name,\n value: nextSelectedOption,\n },\n });\n };\n\n const selectedOptionFqn = getFullyQualifiedName(selectedOption);\n\n const optionElements = useOptionElements({\n optionGroups: options,\n collapsibleGroups: false,\n });\n\n return (\n \n {optionElements}\n \n );\n}\n\nconst optionPropType = PropTypes.shape({\n name: PropTypes.string.isRequired,\n channel: PropTypes.string.isRequired,\n displayName: PropTypes.string.isRequired,\n groupName: PropTypes.string.isRequired,\n}).isRequired;\n\nconst groupPropType = PropTypes.shape({\n displayName: PropTypes.string.isRequired,\n entries: PropTypes.arrayOf(optionPropType).isRequired,\n name: PropTypes.string.isRequired,\n}).isRequired;\n\nCategorySelectList.propTypes = {\n name: PropTypes.string,\n options: PropTypes.arrayOf(groupPropType).isRequired,\n value: PropTypes.shape({\n name: PropTypes.string.isRequired,\n }),\n onChange: PropTypes.func.isRequired,\n};\n\nexport default React.memo(CategorySelectList);\n","import CategorySelectList from \"./CategorySelectList\";\n\nexport default CategorySelectList;\n","import React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nimport BasicSelectOption from 'Common/components/SelectList/BasicSelectOption';\nimport SelectList from 'Common/components/SelectList';\nimport Icon from 'Common/components/Icon';\nimport useSearchBox from 'Common/hooks/useSearchBox';\nimport SelectSeparator from 'Common/components/SelectList/SelectSeparator';\nimport InfoCircle from 'Common/components/InfoCircle';\nimport {Heading5} from 'Common/components/typography';\nimport { useTranslator } from 'Common/hooks/useTranslation';\n\nexport const SEPARATOR_TYPE = 'separator';\n\nexport function flattenEntries(entries) {\n let flatList = [];\n\n entries.forEach((entry) => {\n if (entry.entries) {\n flatList = flatList.concat(flattenEntries(entry.entries));\n }\n else {\n flatList.push(entry);\n }\n });\n\n return flatList;\n}\n\nconst StyledBasicSelectOption = styled(BasicSelectOption)`\n flex: 1 1 auto;\n`;\n\nconst OptionContentWrapper = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n`;\n\nconst StyledIcon = styled(Icon)`\n font-size: 9px;\n`;\n\nconst StyledOption = styled.span`\n font-weight: 500;\n`;\n\nconst StyledSearchFieldContainer = styled.div`\n padding: 10px;\n`;\n\nconst StyledMetricType = styled.span`\n color: ${({theme}) => theme.colors.darkText.mediumEmphasis};\n padding-left: 5px;\n`;\n\nconst OptionContainer = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n height: 16px;\n width: 100%;\n align-items: center;\n`;\n\nconst SearchOptionText = styled.span`\n height: 100%;\n width: 100%;\n overflow: hidden;\n text-align: left;\n text-overflow: ellipsis;\n vertical-align: middle;\n white-space: nowrap;\n\n color: ${({ theme }) => theme.colors.darkText.highEmphasis};\n`;\n\nconst MetricSetIcon = styled(Icon)`\n padding-left : 5px;\n opacity : 0.5;\n`;\n\nconst TooltipHeaderText = styled(Heading5)`\n height: 100%;\n width: 100%;\n overflow: hidden;\n text-align: left;\n text-overflow: ellipsis;\n vertical-align: middle;\n white-space: nowrap;\n`;\n\n/**\n * This is a very specialized component that should be avoided. If wanting\n * a selector to get fields check out FieldBuilderSelect.\n *\n */\nfunction FieldBuilderTypeSelect({\n name,\n options,\n searchOptions,\n onChange,\n instruction,\n value,\n}) {\n const translator = useTranslator();\n const {\n searchValue,\n renderSearchBox,\n } = useSearchBox({\n placeholder: translator('type_to_search_literal'),\n });\n\n const hasSearchValue = Boolean(searchValue?.length);\n\n // For this special select list we want a different set of options\n // when searching, so if the user types in a search swap out the\n // normal options with the search specific options.\n //\n const selectListOptions = hasSearchValue\n ? searchOptions\n : options;\n\n const handleChange = (event) => {\n const { value: nextSelectedOptionName } = event.target;\n const type = hasSearchValue ? 'search' : 'main';\n\n // Use the value to find the actual option selected\n const nextSelectedOption = selectListOptions.find((option) => {\n return option.name === nextSelectedOptionName;\n });\n\n onChange({\n target: {\n name: name,\n type,\n value: nextSelectedOption,\n },\n });\n };\n\n const renderIcons = (entry) => {\n if (entry.fieldType === 'metric_set') {\n return (\n \n );\n }\n };\n\n\n const renderTooltip = (entry) => {\n if (entry.fieldType === 'metric_set') {\n const metrics = entry.columns.map((metric) => (
  • {metric.displayName}
  • ));\n return (\n \n {translator(\"widget.table.column_control.metric_set_tooltip_column_text\")}\n
      \n {metrics}\n
    \n
    \n );\n }\n };\n\n return (\n \n \n {renderSearchBox()}\n \n \n {selectListOptions.map((option, optionIndex) => {\n if (option.type === SEPARATOR_TYPE) {\n return (\n \n );\n }\n else {\n return (\n \n {hasSearchValue\n ? (\n \n \n {option.displayName}\n {option.type !== \"metric_set\" && option.displayType ? ({option.displayType}) : null}\n {renderIcons(option)}\n \n {renderTooltip(option)}\n \n )\n : (\n \n \n {option.displayName}\n \n {option.hasChildren\n ? ()\n : null\n }\n \n )\n }\n \n );\n }\n })}\n \n \n );\n}\n\nFieldBuilderTypeSelect.propTypes = {\n name: PropTypes.string,\n options: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string,\n displayName: PropTypes.node,\n disabled: PropTypes.bool,\n type: PropTypes.oneOf([SEPARATOR_TYPE]),\n hasChildren: PropTypes.bool,\n }).isRequired).isRequired,\n searchOptions: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n displayName: PropTypes.node.isRequired,\n displayType: PropTypes.string\n }).isRequired),\n onChange: PropTypes.func.isRequired,\n instruction: PropTypes.node,\n value: PropTypes.string,\n};\n\nexport default React.memo(FieldBuilderTypeSelect);\n","import React, { useState, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport FieldSelectControl from 'Common/components/LiveControls/FieldSelectControl';\nimport CategorySelectList from 'Common/components/CategorySelectList';\nimport FieldBuilderTypeSelect, { flattenEntries } from 'Common/components/FieldBuilderTypeSelect/FieldBuilderTypeSelect';\n\nimport memoizeOne from 'memoize-one';\nimport { useTranslator } from 'Common/hooks/useTranslation';\nimport omit from 'lodash/omit';\n\nconst generatePrimaryMenuOptions = memoizeOne((\n metricFields,\n categoryFields,\n disableEventsToInclude,\n translator\n) => {\n let primaryMenuOptions = [];\n\n if (metricFields.length > 0) {\n primaryMenuOptions.push({\n name: 'metric',\n displayName: translator('metric_literal'),\n hasChildren: true,\n });\n }\n\n if (!disableEventsToInclude && (categoryFields.length > 0)) {\n primaryMenuOptions.push({\n name: 'dimension',\n displayName: translator('category_literal'),\n hasChildren: true,\n });\n }\n\n return primaryMenuOptions;\n});\n\n/**\n * This is a Select component that allows picking fields from all the various types.\n *\n */\nfunction FieldBuilderSelect({\n categoryFields,\n disableEventsToInclude,\n metricFields,\n name,\n onChange,\n value,\n}) {\n const translator = useTranslator();\n const primaryMenuOptions = generatePrimaryMenuOptions(\n metricFields,\n categoryFields,\n disableEventsToInclude,\n translator\n );\n\n // if there is only one option default state to that option.\n const [selectedMenu, setSelectedMenu] = useState(primaryMenuOptions.length === 1 ? primaryMenuOptions[0].name : '');\n\n const handleMainMenuChange = useCallback((event) => {\n const { target } = event;\n if (target.type === 'main') {\n setSelectedMenu(target.value.name);\n }\n else {\n // displayType was added so lets remove it\n onChange({\n target: {\n value: omit(target.value, 'displayType')\n }\n });\n }\n }, [onChange]);\n\n const valueIsDimension = value && categoryFields.find((dimensionField) => (dimensionField.name === value.name));\n\n if (selectedMenu === 'metric') {\n return (\n \n );\n }\n else if (selectedMenu === 'dimension') {\n return (\n \n );\n }\n else {\n const flattenedMetricFields = flattenEntries(metricFields);\n const flattenedCategoryFields = flattenEntries(categoryFields);\n const primaryMenuSearchOptions = flattenedCategoryFields\n .concat(flattenedMetricFields)\n .map((option) => {\n let displayType = '';\n if (option.fieldType === 'metric') {\n displayType = translator('metric_literal');\n }\n else if (option.fieldType === 'category_value') {\n displayType = translator('category_literal');\n }\n\n return { ...option, displayType };\n });\n\n // No secondary menu is selected, so render the primary menu.\n return (\n \n );\n }\n}\n\nFieldBuilderSelect.propTypes = {\n categoryFields: PropTypes.arrayOf(PropTypes.object.isRequired),\n disableEventsToInclude: PropTypes.bool,\n metricFields: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n displayName: PropTypes.string.isRequired,\n isDummyGroup: PropTypes.bool.isRequired,\n entries: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n displayName: PropTypes.string.isRequired,\n }).isRequired\n ).isRequired,\n }).isRequired\n ).isRequired,\n value: PropTypes.shape({\n name: PropTypes.string.isRequired,\n channel: PropTypes.string.isRequired,\n displayName: PropTypes.string.isRequired,\n }),\n onChange: PropTypes.func.isRequired,\n name: PropTypes.string,\n};\n\nFieldBuilderSelect.defaultProps = {\n categoryFields: [],\n disableEventsToInclude: false,\n metricFields: [],\n name: '',\n};\n\nexport default FieldBuilderSelect;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport DraggableList from 'Common/components/DraggableList/DraggableList';\nimport Button from 'Common/components/Button';\nimport DraggableChip from 'Common/components/Chip/DraggableChip';\nimport Dropdown from 'Common/components/Dropdown/Dropdown';\nimport FieldBuilderSelect from './FieldBuilderSelect';\n\nconst Root = styled.div``;\n\nconst TouchTargetSpacing = styled.div`\n box-sizing: border-box;\n height: 44px;\n /* Center the button within the touch target size */\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: start;\n /* Magic number to align button with chip drag handles. Sorry */\n padding-left: 12px;\n`;\n\nconst reorder = (list, startIndex, endIndex) => {\n const result = Array.from(list);\n const [removed] = result.splice(startIndex, 1);\n result.splice(endIndex, 0, removed);\n\n return result;\n};\n\n/**\n *\n * Filter out list of fields from a given list of fields.\n * \n * @param {Array} fields array of fields\n * @param {Array} value array of fields to filter out\n */\nexport function filterFields (fields, value) {\n let valueFieldsByName = value.reduce((byName, col) => {\n byName[col.name] = col;\n return byName;\n }, {});\n\n return fields.filter(field => {\n return !valueFieldsByName[field.name];\n });\n}\n\n/**\n *\n * Filter out list of fields from a given list of fields that have been grouped.\n * \n * @param {Array} fields array of fields\n * @param {Array} value array of fields to filter out\n */\nexport function filterGroupedFields (fields, value) {\n let filteredFields = [];\n let valueFieldsByName = value.reduce((byName, col) => {\n byName[col.name] = col;\n return byName;\n }, {});\n\n\n fields.forEach((group) => {\n let filteredGroup = { ...group };\n filteredGroup.entries = filteredGroup.entries.filter((field) => {\n return !valueFieldsByName[field.name];\n });\n\n if (filteredGroup.entries.length > 0) {\n filteredFields.push(filteredGroup);\n }\n });\n\n return filteredFields;\n}\n/**\n * A control used to add and arrange fields (with drag and drop chips). Used for various\n * widgets and pages.\n *\n * @param {Array} value An array of the currently selected fields.\n * @param {Array} metricFields An array of available metric fields.\n * @param {Array} [dimensionFields] An array of available metric fields.\n * @param {Function} onChange An event handler for field changes, takes an event with the\n * new value as an array of the fields that are now selected.\n * @param {String} [name] Optional name field to include in the onChange event.\n * @param {Boolean} [showAddButton=false] True to show a button for adding another field.\n * @param {String} [addButtonText] Text to be shown on the button which adds a new field.\n * @param {Number} [maxFields=Infinity] Max number of fields that can be added.\n * @param {Function} [onFieldDoubleClick] Called when a fields chip is double-clicked.\n * @param {Function} [renderFieldText] Called with a field from the value array to allow\n * custom rendering of field text.\n */\nexport default class FieldBuilder extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.state = {\n isPickerOpen: false,\n };\n }\n\n _onDragEnd = (result) => {\n // dropped outside the list\n if (!result.destination) {\n return;\n }\n\n const newValue = reorder(\n this.props.value,\n result.source.index,\n result.destination.index\n );\n\n this._triggerChangeEvent(newValue);\n };\n\n _triggerChangeEvent = (newValue) => {\n this.props.onChange({\n target: {\n name: this.props.name,\n value: newValue,\n },\n });\n };\n\n _handleDeleteButtonClick = (event) => {\n const newValue = this.props.value.filter((item) => {\n return item.name !== event.target.name;\n });\n\n this._triggerChangeEvent(newValue);\n };\n\n\n _setIsPickerOpen(isPickerOpen) {\n this.setState({ isPickerOpen });\n }\n\n _closePicker = () => {\n this._setIsPickerOpen(false);\n };\n\n _openPicker = () => {\n this._setIsPickerOpen(true);\n };\n\n _pickField = (event) => {\n const { target } = event;\n\n this._closePicker();\n\n this._triggerChangeEvent([\n ...this.props.value,\n target.value,\n ]);\n };\n\n _renderPicker = () => {\n const {\n metricFields,\n dimensionFields,\n value,\n } = this.props;\n\n return (\n \n );\n };\n\n render() {\n const {\n showAddButton,\n addButtonText,\n value,\n maxFields,\n minFields,\n onFieldDoubleClick,\n } = this.props;\n\n let {\n renderFieldText,\n } = this.props;\n\n const {\n isPickerOpen,\n } = this.state;\n\n const disabled = value.length >= maxFields;\n const canDelete = value.length >= minFields;\n\n // The user of this component can supply a custom renderer for the field text\n // which takes in the field and returns a string or React component for us to\n // render. If this custom render function is not supplied default to using\n // the displayName of the field.\n //\n if (!renderFieldText) {\n renderFieldText = (field) => {\n return field.displayName;\n };\n }\n\n return (\n \n {showAddButton && (\n \n \n {addButtonText}\n \n \n )}\n \n {value.map((item) => {\n const text = renderFieldText(item);\n\n return (\n (onFieldDoubleClick({ target: { value: item.name } }))}\n />\n );\n })}\n \n \n );\n }\n}\n\nFieldBuilder.propTypes = {\n name: PropTypes.string,\n addButtonText: PropTypes.string,\n showAddButton: PropTypes.bool,\n dimensionFields: PropTypes.arrayOf(PropTypes.object.isRequired),\n metricFields: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n isDummyGroup: PropTypes.bool.isRequired,\n entries: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n }).isRequired\n ).isRequired,\n }).isRequired\n ).isRequired,\n value: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n displayName: PropTypes.string,\n type: PropTypes.string,\n }).isRequired,\n ).isRequired,\n maxFields: PropTypes.number,\n minFields: PropTypes.number,\n onChange: PropTypes.func.isRequired,\n onFieldDoubleClick: PropTypes.func,\n renderFieldText: PropTypes.func,\n};\n\nFieldBuilder.defaultProps = {\n addButtonText: '',\n showAddButton: false,\n maxFields: Infinity,\n minFields: 0,\n metricFields: [],\n dimensionFields: [],\n onFieldDoubleClick: () => {},\n};\n","const METRIC = 'metric';\nconst METRIC_SET = 'metric_set';\n\n/*\n Filters out value from the combined metric and metrics list.\n*/\nexport function filterCombinedMetricAndMetricSets(options, value) {\n\n let selectedColumnsByName = value.reduce((byName, col) => {\n byName[col.name] = col;\n return byName;\n }, []);\n\n const filteredOptions = options.reduce((acc, option) => {\n const { entries } = option;\n const filteredEntries = entries.filter((entry) => {\n const { name, fieldType } = entry;\n if (fieldType === METRIC) { // Only show metrics that do not exist in our selected set\n return !selectedColumnsByName[name];\n } else if (fieldType === METRIC_SET) {\n const { columns } = entry;\n const showSet = columns.some((column) => {\n // if we come across a column that does not exist in our selected set show the current metric set\n return !selectedColumnsByName[column.name];\n }, false);\n return showSet;\n } \n });\n if (filteredEntries.length > 0) {\n acc.push({...option, entries: filteredEntries});\n }\n return acc;\n}, []);\n\n return filteredOptions;\n}\n\n/**\n * Given a grouped list of metrics list and grouped list of metric sets list. Combine\n * them so metric sets and metrics in the same group are grouped together.\n * @param {Array} metrics \n * @param {Array} metricSets \n * @returns {Array} merged metrics\n */\nexport default function mergeMetricAndMetricSet(metrics, metricSets) {\n let mergedMetrics = [];\n\n const metricSetGroupByName = metricSets.reduce((byName, metricSetGroup) => {\n byName[metricSetGroup.name] = metricSetGroup;\n return byName;\n }, {});\n let combinedMetricSetGroups = {};\n\n metrics.forEach((metricGroup) => {\n const newMetricGroup = { ...metricGroup };\n if (metricSetGroupByName[metricGroup.name]) {\n newMetricGroup.entries = metricSetGroupByName[metricGroup.name].entries.concat(metricGroup.entries);\n newMetricGroup.entries.sort((a,b) => {\n return a.displayName.localeCompare(b.displayName);\n });\n combinedMetricSetGroups[metricGroup.name] = true;\n } \n\n mergedMetrics.push(newMetricGroup);\n });\n\n Object.keys(metricSetGroupByName).forEach(metricSetGroupName => {\n if (!combinedMetricSetGroups[metricSetGroupName]) {\n mergedMetrics.push(metricSetGroupByName[metricSetGroupName]);\n }\n });\n\n mergedMetrics.sort((a,b) => {\n return a.displayName.localeCompare(b.displayName);\n });\n\n return mergedMetrics;\n}\n","import React, { useMemo, useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport FieldSelectControl from 'Common/components/LiveControls/FieldSelectControl';\nimport mergeMetricAndMetricSet, { filterCombinedMetricAndMetricSets } from './mergeMetricAndMetricSet';\n\nconst METRIC_SET = 'metric_set';\n\n/**\n * Use this in a history stack style column control for when the user is editing/adding metrics and metric sets.\n *\n */\nconst MetricAndMetricSetOption = ({\n fieldOptions,\n selectedColumns,\n selectedColumnIndex,\n onChange\n}) => {\n\n const initialCategoryColumn = Number.isFinite(selectedColumnIndex) ? selectedColumns[selectedColumnIndex] : null;\n const options = useMemo(() => {\n const unselectableFields = initialCategoryColumn\n ? selectedColumns.filter(col => col.name !== initialCategoryColumn.name)\n : selectedColumns;\n // on edit we only let you change it to another sinlge metric\n const metricSets = initialCategoryColumn ? [] : ( fieldOptions.metric_set || [] );\n const mergedOptions = mergeMetricAndMetricSet(fieldOptions.metric || [], metricSets);\n return filterCombinedMetricAndMetricSets(mergedOptions, unselectableFields);\n }, [fieldOptions, selectedColumns, initialCategoryColumn]);\n\n const handleOnChange = useCallback((e) => {\n const column = e.target.value;\n let newSelectedColumns = selectedColumns;\n if (column.fieldType === METRIC_SET){\n const newColumns = column.columns;\n newSelectedColumns = [ ...selectedColumns ];\n\n let selectedColumnsByName = selectedColumns.reduce((byName, col) => {\n byName[col.name] = col;\n return byName;\n }, []);\n\n // for every column in the new metric set, check if it already exists in the table.\n // If not, concat the new column onto the array\n\n newColumns.forEach(newColumn => {\n if (!selectedColumnsByName[newColumn.name]) {\n newSelectedColumns.push(newColumn);\n }\n });\n }\n else if (!Number.isFinite(selectedColumnIndex)) {\n newSelectedColumns = selectedColumns.concat([column]);\n }\n else {\n if (selectedColumns.length < selectedColumnIndex) {\n console.warn(`Can not update column at index ${selectedColumnIndex} there are only ${selectedColumns.length} columns.`);\n }\n else {\n newSelectedColumns = [].concat(selectedColumns);\n newSelectedColumns.splice(selectedColumnIndex, 1, column);\n }\n }\n onChange({\n target: {\n value: newSelectedColumns,\n }\n });\n }, [selectedColumns, onChange, selectedColumnIndex]);\n\n return (\n \n );\n};\n\nMetricAndMetricSetOption.propTypes = {\n fieldOptions: PropTypes.shape({\n metric: PropTypes.arrayOf(\n PropTypes.shape({\n entries: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n channel: PropTypes.string.isRequired,\n displayName: PropTypes.string.isRequired,\n fieldType: PropTypes.string.isRequired,\n }),\n ).isRequired,\n }),\n ),\n metric_set: PropTypes.arrayOf(\n PropTypes.shape({\n entries: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n channel: PropTypes.string.isRequired,\n displayName: PropTypes.string.isRequired,\n fieldType: PropTypes.string.isRequired,\n }),\n ).isRequired,\n }),\n ),\n }).isRequired,\n selectedColumnIndex: PropTypes.number,\n selectedColumns: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n }),\n ).isRequired,\n\n onChange: PropTypes.func.isRequired,\n};\n\nexport default MetricAndMetricSetOption;\n","/**\n * The RadioButton component displays a radio button with optional text to the\n * right of the button. An enabled ({!disabled}) button displays a pointer when\n * the mouse is hovering over the radio button or adjacent text. The required value\n * is a string that will be used to identify the button. Clicking on an enabled button\n * or its adjacent text will invoke the provided {onChange} callback and pass it\n * the following object:\n * \n * target {\n * value: {value} // String used to identify the button\n * }\n * \n * Sample usage:\n * \n * Option A\n * Option B\n * Option C\n * \n * Use the RadioButtonGroup component to manage a group of RadioButton's.\n */\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\n// Hard-coded constants\nconst charSelected = \"\\\\e946\";\nconst charUnselected = \"\\\\e940\";\nconst fontSize = 10;\nconst leftPadding = 10;\nconst standardPadding = 5;\nconst touchTargetPadding = 10;\n\n// Styled
    that contains the radio button and optional text\nconst StyledDiv = styled.div`\n align-items: baseline;\n display: flex;\n flex-direction: row;\n position: relative;\n`;\n\n// Styled
    that contains just the radio button\nconst StyledButton = styled.div`\n &::before {\n content: \"${({selected}) => selected ? charSelected : charUnselected}\";\n }\n\n color: ${\n ({disabled,selected,theme}) =>\n disabled\n ? theme.colors.palette.grey.silver\n : selected\n ? theme.colors.palette.blue.awesome\n : theme.colors.palette.grey.manatee\n };\n\n cursor: ${({disabled}) => disabled ? 'default' : 'pointer'};\n display: flex;\n font-family: \"vorne-icon\";\n font-size: ${fontSize}px;\n padding-bottom: ${standardPadding}px;\n padding-top: ${standardPadding}px;\n /* Give mobile users a nice big touch target*/\n @media (hover: none) and (pointer: coarse) {\n padding-bottom: ${touchTargetPadding}px;\n padding-top: ${touchTargetPadding}px;\n }\n`;\n\n// Styled
    that contains just the optional text\nconst StyledLabel = styled.div`\n color: ${\n ({disabled,theme}) =>\n disabled ? theme.colors.darkText.disabled : theme.colors.darkText.highEmphasis\n };\n\n cursor: ${({disabled}) => disabled ? 'default' : 'pointer'};\n padding-left: ${leftPadding}px;\n`;\n\n// The actual control that displays the radio button and optional text\nexport default function RadioButton({\n children, // Text to the right of the radio button\n className,\n disabled, // Is the radio button disabled?\n selected, // Is the radio button selected?\n value, // Key identifying this radio button\n onChange // Callback when control is clicked\n}) {\n function handleClick() {\n if (!disabled) {\n onChange({ target: { value } });\n }\n }\n\n return (\n \n \n {\n disabled ?\n (\n {children}\n )\n :\n (\n {children}\n )\n }\n \n );\n}\n\nRadioButton.propTypes = {\n children: PropTypes.node,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n selected: PropTypes.bool,\n value: PropTypes.string.isRequired,\n onChange: PropTypes.func\n};\n\nRadioButton.defaultProps = {\n disabled: false,\n selected: false,\n onChange: () => {}\n};\n","/**\n * The RadioButtonGroup component displays a group of RadioButton components. The RadioButton\n * matching {value} will initially be selected. Clicking on one selects it and deselects the\n * others. Specifying {disabled} disables all of the grouped RadioButton controls. Clicking on an\n * enabled button or its adjacent text will invoke the provided {onChange} callback and pass it the\n * following object:\n * \n * target {\n * value: {value} // String used to identify the button\n * }\n * \n * Sample usage:\n * \n * {}}>\n * Option A\n * Option B\n * Option C\n * \n */\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { RadioButton } from 'Common/components/RadioButton';\n\nexport default function RadioButtonGroup({\n children, // List of RadioButton components\n className,\n disabled, // Is the radio button group disabled?\n value, // Key identifying the selected RadioButton component\n onChange // Callback when control is clicked\n}) {\n if (React.Children.count(children) <= 0) {\n return null;\n }\n\n const jsxChildren = React.Children.map(children, (child) => {\n if (child.type == RadioButton) {\n const childProps = {\n ...child.props,\n disabled: disabled,\n selected: (child.props.value === value),\n value: child.props.value,\n onChange: onChange\n };\n\n return React.cloneElement(child, childProps);\n }\n else {\n return child;\n }\n });\n\n return (\n
    \n {jsxChildren}\n
    \n );\n}\n\nRadioButtonGroup.propTypes = {\n children: PropTypes.node,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n value: PropTypes.string,\n onChange: PropTypes.func\n};\n\nRadioButtonGroup.defaultProps = {\n disabled: false,\n value: '',\n onChange: () => {}\n};\n","import styled from 'styled-components';\nimport { Body7 } from 'Common/components/typography';\n\nconst InlineError = styled(Body7)`\n display: inline-block;\n\n color: ${({theme}) => theme.colors.palette.error.red};\n`;\n\nexport default InlineError;\n","import isNumber from 'lodash/isNumber';\n\nfunction log(val, base) {\n return Math.log(val) / Math.log(base);\n}\n\nexport function magnitude(val) {\n var rv = Math.abs(log(Math.abs(val), 10));\n rv = val < 1 ? -Math.ceil(rv) : Math.floor(rv);\n return val === 0 ? 0 : rv;\n}\n\nexport function constrain(number, a, b) {\n var min = Math.min(a, b);\n var max = Math.max(a, b);\n\n number = number < min ? min : number;\n number = number > max ? max : number;\n\n return number;\n}\n\nexport function trunc(n, precision) {\n var rv,\n factor,\n scaledN,\n truncN;\n\n if (precision) {\n factor = Math.pow(10, precision);\n scaledN = n * factor;\n truncN = trunc(scaledN);\n rv = truncN / factor;\n }\n else {\n rv = n < 0 ? Math.ceil(n) : Math.floor(n);\n }\n\n return rv;\n}\n\n/**\n * Get the fractional part of `n` without floating-point error.\n *\n * @param {Number} n The number to get\n * @return {Number} The portion of `n` after the decimal; 0 if `n` is integral.\n */\nexport function getFractionalPiece(n) {\n var str = n.toString(),\n point = str.indexOf('.'),\n fract = 0;\n\n if (point !== -1) {\n fract = parseFloat('0' + str.slice(point));\n }\n\n return fract;\n}\n\n/**\n * Returns an object that contains the slope and intercept of the linear regression of the\n * data. The calculation is based on the formula:\n *\n * y = m*x + b\n * m = (n*sum(xy) - sum(x)*sum(y))/(n*sum(x**2) - (sum(x))**2)\n * b = (sum(y) - m*sum(x))/n\n *\n * Values not included in the data are not included in the calculation.\n *\n * @param {Number[][]} data An array of X,Y pairs.\n * @param {Function} getXYFunction function taking (value, index) as parameters, and returning\n * {x: ..., y: ...} to be used in calculating the trend line.\n * @return {Object} Trend line definition\n * @return {Number} return.slope The slope of the trend line\n * @return {Number} return.intercept The Y at first data point. If 2-dimensional line is used,\n * the intercept is not Y intercept, but intercept at X value of first point.\n * @private\n */\nfunction trend2D(data, getXYFunction) {\n var rv = null;\n\n var getXY = getXYFunction || function(value, index) {\n return {\n x: index,\n y: value\n };\n };\n\n // At least two points are needed for linear regression analysis.\n if (data.length >= 2) {\n var sum_of_x = 0;\n var sum_of_y = 0;\n var sum_of_xy = 0;\n var sum_of_x2 = 0;\n\n var firstX = getXY(data[0][1], data[0][0]).x;\n\n data.forEach(function(value, index) {\n var xy = getXY(value[1], value[0]),\n x = xy.x - firstX,\n y = xy.y;\n\n sum_of_x += x;\n sum_of_y += y;\n sum_of_xy += x * y;\n sum_of_x2 += x * x;\n }, this);\n\n // Get the slope of the linear regression.\n var slope_divisor = data.length * sum_of_x2 - sum_of_x * sum_of_x;\n // Check the value of slope divisor to prevent \"divide by zero\" error.\n if (slope_divisor !== 0) {\n var slope_dividend = data.length * sum_of_xy - sum_of_x * sum_of_y;\n // Get the value of slope\n var m = slope_dividend / slope_divisor;\n\n // Continue the calculation to get the intercept.\n var b = (sum_of_y - m * sum_of_x) / data.length;\n\n rv = {\n slope: m,\n intercept: b\n };\n }\n }\n\n return rv;\n}\n\n/**\n * Returns an object that contains the slope and intercept of the linear regression of the\n * data. The calculation is based on the formula:\n *\n * y = m*x + b\n * m = (n*sum(xy) - sum(x)*sum(y))/(n*sum(x**2) - (sum(x))**2)\n * b = (sum(y) - m*sum(x))/n\n *\n * Values not included in the data are not included in the calculation.\n *\n * @param {Number[]/Number[][]} data An array of numbers representing Y values for a set\n * of continuous X values or an array of X,Y pairs.\n * @param {Function} getXYFunction function taking (value, index) as parameters, and returning\n * {x: ..., y: ...} to be used in calculating the trend line.\n * @return {Object} Trend line definition\n * @return {Number} return.slope The slope of the trend line\n * @return {Number} return.intercept The Y at first data point. If 2-dimensional line is used,\n * the intercept is not Y intercept, but intercept at X value of first point.\n */\nexport function trend(data, getXYFunction) {\n var rv = null;\n\n if (isNumber(data[0])) {\n var data2DArray = [];\n\n var index2D = 0;\n\n //Build 2-Dimensional Array from data\n data.forEach(function(value, index) {\n if (value || value === 0) {\n data2DArray[index2D++] = [index, value];\n }\n }, this);\n\n //Get trend based on 2-Dimensional Array\n rv = trend2D(data2DArray, getXYFunction);\n }\n else {\n rv = trend2D(data, getXYFunction);\n }\n\n return rv;\n}\n\nexport function numericContains(value, low, high) {\n value = parseFloat(value);\n low = parseFloat(low);\n high = parseFloat(high);\n\n var isNumeric = !isNaN(value) && !isNaN(low) && !isNaN(high);\n\n return isNumeric && value >= low && value <= high;\n}\n\nexport function trendPercent(data, getXYFunction) {\n // need at least 2 points of data to compute a trend\n if (data.length < 2) {\n return null;\n }\n\n // The data we're given here has been known to be out of order.\n // Make sure all the pairs are sorted chronologically.\n var sorted_data = data.sort(function(a, b) { return a[0] - b[0]; });\n\n var baseTrend = trend(sorted_data, getXYFunction),\n first,\n last,\n percentChange = 0,\n delta_x;\n\n if (baseTrend) {\n delta_x = sorted_data[sorted_data.length - 1][0] - sorted_data[0][0];\n first = baseTrend.intercept;\n\n last = (baseTrend.slope * delta_x) + baseTrend.intercept;\n if (baseTrend.slope === 0) {\n percentChange = 0;\n }\n else if (first !== 0) {\n percentChange = (last - first) / Math.abs(first);\n }\n else {\n percentChange = Number.MAX_VALUE;\n }\n }\n\n return percentChange;\n}\n\nexport function getPlacesForNumericRange(range, defaultPlaces) {\n var places = defaultPlaces;\n if (range && (range.start || range.start === 0) && (range.end || range.end === 0)) {\n var diff = range.end - range.start,\n mag = magnitude(diff / 2);\n\n if (mag < 0) {\n places = Math.abs(mag) - 2;\n }\n }\n return places < 0 ? 0 : places;\n}\n","import escape from 'lodash/escape';\nconst variableRegEx = /\\{([\\w.]*)\\}/g;\n\n///-----------------------------------------------------------------------------------------\n/// Applies named arguments to the given string.\n/// Returns a formatted version of the string argument and does not modify the original.\n///\n/// PARAMETERS\n/// [String] fmt: a string with embedded format-specifications\n/// [Object] args: an object of strings with members named similarly to the\n// embedded specifiers. Member values will be inserted into the string\n// in place of the specifiers.\n/// [Object] opts: (optional) Contains any of the following formatting options:\n/// escapeHTML: if true, special HTML characters will be replaced with their proper\n/// escape sequence\n///\n/// EXAMPLE\n/// > exformat(\"{foo} -> {bar}\", { foo: 22, bar: 33 });\n/// \"{22 -> 33}\"\n///-----------------------------------------------------------------------------------------\n\nexport function exformat(fmt, args, opts) {\n if (typeof args !== 'object') {\n throw new Error('exformat: args must be an object');\n }\n\n opts = opts || { };\n\n return fmt.replace(variableRegEx, function(m, i) {\n var rv = args[i];\n\n // Undefined values are skipped over.\n if (typeof(rv) === 'undefined') {\n rv = '';\n }\n\n if (typeof(rv) !== 'string') {\n rv = String(rv);\n }\n\n if (opts.escapeHTML) {\n rv = escape(rv);\n }\n\n return rv;\n });\n}\n\n/**\n * Convenience alias to exformat, but ensures the escapeHTML option\n * is enabled so the values of the args may safely be used in HTML.\n */\nexport function exformatHTML(fmt, args, opts) {\n opts = opts || { };\n opts.escapeHTML = true;\n\n return exformat(fmt, args, opts);\n}\n\nexport function countSymbols(str) {\n return Array.from(str).length;\n}\n\nexport function toUtf8(str) {\n // [FUTUREHACK] may not be the most complete, efficient method.\n return unescape(encodeURI(str));\n}\n\nexport function toTitleCase(s) {\n return s.charAt(0).toUpperCase() + s.substr(1);\n}\n\nexport function getVariables(str) {\n var variables = str.match(variableRegEx) || [];\n // Get rid of the braces.\n return variables.map(function(v) {\n return v.slice(1, -1);\n });\n}\n","import { isDate } from 'lodash';\nimport moment from 'moment';\n\nconst DAYS = 'days';\nconst HOURS = 'hours';\nconst MINUTES = 'minutes';\nconst SECONDS = 'seconds';\n\n// We used to base our device-side dates on 1900. Now it's 1970.\nconst OLD_BASE_DATE = new Date(Date.parse(\"January 1, 1900\"));\nconst BASE_DATE = new Date(0);\n\n// Seconds and milliseconds per hour.\nexport const S_PER_HOUR = 60 * 60;\nexport const MS_PER_HOUR = S_PER_HOUR * 1000;\n\n// Seconds and milliseconds per day.\nexport const S_PER_DAY = S_PER_HOUR * 24;\nexport const MS_PER_DAY = S_PER_DAY * 1000;\n\n// Julian Day of 1/1/1970.\nexport const EPOCH_JULIAN_DAY = 2440588;\n\nfunction add(dt, portion, value) {\n return moment(dt).add(value, portion).toDate();\n}\n\nexport function addSeconds (dt, value) { return add(dt, SECONDS, value); }\nexport function addMinutes (dt, value) { return add(dt, MINUTES, value); }\nexport function addHours (dt, value) { return add(dt, HOURS, value); }\nexport function addDays (dt, value) { return add(dt, DAYS, value); }\n\n function subtractMinutes (dt, value) { return addMinutes (dt, -value); }\nexport function subtractHours (dt, value) { return addHours (dt, -value); }\nexport function subtractDays (dt, value) { return addDays (dt, -value); }\n\n// Is the given year a leap year? Expects a four digit year.\nfunction isLeapYear(year) {\n return (year % 400 === 0) || (year % 4 === 0 && year % 100 !== 0);\n}\n\nexport function fromEpochSeconds(s) {\n const dt = new Date(BASE_DATE.getTime() + s * 1000);\n return dt;\n}\n\nexport function from1900EpochSeconds(s) {\n const dt = new Date(OLD_BASE_DATE.getTime() + s * 1000);\n return dt;\n}\n\nexport function toEpochSeconds(date) {\n return date.getTime() / 1000;\n}\n\nexport function toEpochDays(date) {\n return Math.floor(toEpochSeconds(date) / (24 * 3600));\n}\n\nexport function dateToJSON(dt, opts) {\n opts = opts || {};\n\n if (opts.relative) {\n dt = subtractMinutes(dt, dt.getTimezoneOffset());\n }\n\n let rv = dt.toJSON(),\n parts = rv.split('T'),\n stripZ = opts.relative;\n\n if (opts.selector === 'date') {\n rv = parts[0];\n stripZ = false;\n }\n else if (opts.selector === 'time') {\n rv = parts[1];\n stripZ = true;\n }\n\n if (stripZ) {\n rv = rv.slice(0, rv.length - 1);\n }\n\n return rv;\n}\n\nexport function isDateValid(date) {\n return isDate(date) && !isNaN(date.getTime());\n}\n\n/**\n * zero based month (0 = January)\n */\nexport function getDaysInMonth(year, month) {\n const days = [31, isLeapYear(year) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n return days[month];\n}\n\n/**\n * compute the Julian day for a given year, month, and day of month. Computation will not\n * match Gregorian calendar before 1582-10-15 so beware.\n *\n * ref: http://en.wikipedia.org/wiki/Julian_day#Converting_Julian_or_Gregorian_calendar_date_to_Julian_Day_Number\n */\nexport function toJulianDay(year, month, day) {\n if (year instanceof Date) {\n return toJulianDay(year.getFullYear(), year.getMonth() + 1, year.getDate());\n }\n return moment.utc([year, month-1, day]).diff(moment.utc([1970]), 'days') + EPOCH_JULIAN_DAY;\n}\n\n/**\n * converts a Julian Number to an array of Year, Month, and Day\n * Months are 1-12 - not zero based like JavaScript Date\n */\nexport function fromJulianDay(J) {\n const details = moment.utc([1970]).add(J - EPOCH_JULIAN_DAY, 'days').toArray();\n details[1]++;\n return details.slice(0,3);\n}\n\nexport function addToJulianDay(julianDay, portion, value) {\n let details = fromJulianDay(julianDay);\n details[1]--;\n details = moment.utc(details).add(value, portion).toArray();\n details[1]++;\n return toJulianDay.apply(null, (details.slice(0,3)));\n}\n\n/**\n * convert a Julian number to day of week. Zero is Sunday.\n *\n * @param {Number} julianNumber (see http://en.wikipedia.org/wiki/Julian_day)\n *\n * @ref https://en.wikipedia.org/wiki/Julian_day#Finding_day_of_week_given_Julian_day_number\n *\n */\nexport function getJulianDayOfWeek(julianNumber) {\n return (julianNumber + 1) % 7;\n}\n\n/**\n * Converts a JS Date to a filename-friendly string\n *\n * @param {Date} the date to convert\n */\nexport function dateToFilenameString(date) {\n return moment(date).format('YYYY-MM-DD-HHmm');\n}\n\nexport function clearTime(date) {\n if (!isDateValid(date)) {\n throw new Error('Not a valid date');\n }\n\n const year = date.getFullYear(),\n month = date.getMonth(),\n day = date.getDate();\n\n date.setMilliseconds(0);\n date.setSeconds(0);\n date.setMinutes(0);\n date.setHours(0);\n date.setFullYear(year);\n date.setMonth(month);\n date.setDate(day);\n\n return date;\n}\n\nfunction compareDates(l, r) {\n l = l || new Date(r.getTime() - 1);\n r = r || new Date(l.getTime() - 1);\n\n return l.getTime() - r.getTime();\n}\n\nexport function areDatesEqual(l, r) {\n return compareDates(l, r) === 0;\n}\n\n/**\n * gets the week number associated with this date\n * @param {Date} dt the date to get the week number for\n * @param Number startDOW the day of week to use as week start 0=Sunday\n */\nexport function getWeekNumber(dt) {\n return moment(dt).isoWeek();\n}\n\nexport function getQuarter(d) {\n const q = [ 1, 2, 3, 4];\n return q[Math.floor(d.getMonth() / 3)];\n}\n\nconst DAYS_OF_WEEK = Object.freeze([\n 'sunday',\n 'monday',\n 'tuesday',\n 'wednesday',\n 'thursday',\n 'friday',\n 'saturday'\n]);\n\nexport function getDayOfWeekForDay(dayNumber) {\n let rv = DAYS_OF_WEEK[dayNumber];\n\n if (rv) {\n return rv;\n }\n else {\n throw new Error(`Invalid day number: ${dayNumber}`);\n }\n}\n\nexport const DAYS_OF_WEEK_NUMBERS = Object.freeze({\n sunday: 0,\n monday: 1,\n tuesday: 2,\n wednesday: 3,\n thursday: 4,\n friday: 5,\n saturday: 6\n});\n\nexport function getDayOfWeekIndexForDayOfWeek(dayName) {\n let rv = DAYS_OF_WEEK_NUMBERS[dayName];\n\n if (Number.isFinite(rv)) {\n return rv;\n }\n else {\n throw new Error(`Invalid day of week: ${dayName}`);\n }\n}\n\n// http://stackoverflow.com/questions/542938/how-do-i-get-the-number-of-days-between-two-dates-in-javascript\n// JavaScript date calculations are tricky because Date objects store times internally in UTC, not local time. For example,\n// 3/10/2013 12:00 AM Pacific Standard Time (UTC-08:00) is stored as 3/10/2013 8:00 AM UTC, and\n// 3/11/2013 12:00 AM Pacific Daylight Time (UTC-07:00) is stored as 3/11/2013 7:00 AM UTC. On this day, midnight to\n// midnight local time is only 23 hours in UTC!\n//\n// Although a day in local time can have more or less than 24 hours, a day in UTC is always exactly 24 hours (JavaScript\n// ignores leap seconds). The _daysBetween method takes advantage of this fact by first calling _treatAsUTC to adjust both\n// local times to midnight UTC, before subtracting and dividing.\n//\nexport function daysBetween(startDate, endDate) {\n const julianStart = toJulianDay(startDate),\n julianEnd = toJulianDay(endDate);\n\n return julianEnd - julianStart;\n}\n\n/**\n * Get the seconds between two Dates.\n *\n * @param {Date} startDate\n * @param {Date} endDate\n * @returns {Number} Positive if startDate is before endDate, otherwise negative.\n */\nexport function secondsBetween(startDate, endDate) {\n const start = moment(startDate);\n const end = moment(endDate);\n\n // `diff` returns milliseconds, so convert it.\n return end.diff(start) / 1000;\n}\n","import { addMinutes } from 'Common/util/language/date';\nimport moment from 'moment';\n\nfunction configFromString(iso8601) {\n var date = new Date(Date.parse(iso8601)),\n offsetMinutes,\n m = /\\d+-\\d+-\\d+T\\d+:\\d+:\\d+(?:\\.\\d+)?(?:([+-]\\d{2}):?(\\d{2})?|Z)/.exec(iso8601);\n\n if (!m) {\n throw 'Could not parse date string ' + iso8601;\n }\n\n offsetMinutes = 0;\n if (m[1]) {\n offsetMinutes = parseInt(m[1], 10) * 60;\n }\n if (m[2]) {\n // if initial offset is less than zero than we must subtract here\n if (offsetMinutes < 0) {\n offsetMinutes -= parseInt(m[2], 10);\n }\n else {\n offsetMinutes += parseInt(m[2], 10);\n }\n }\n\n return {\n date: date,\n offsetMinutes: offsetMinutes\n };\n}\n\nfunction configFromDate(dt, offsetMinutes) {\n return { date: dt, offsetMinutes: offsetMinutes || 0 };\n}\n\nfunction configFromOffsetDate(src) {\n return configFromDate(new Date(src.getDate()), src.getOffsetMinutes());\n}\n\n/**\n * maintains a javascript Date object plus the offset that was used to create that date. Note the\n * javascript date object will always be in terms of the browser's time zone. The offset stored is\n * used to convert back to the device time zone.\n */\nexport class OffsetDate {\n static fromDate = function(dt, offsetMinutes) {\n return new OffsetDate(dt, offsetMinutes);\n };\n static fromOffsetDate = function(src) {\n return new OffsetDate(src);\n };\n static fromString = function(str) {\n return new OffsetDate(str);\n };\n\n constructor(config, offsetMinutes) {\n if (typeof config === 'string') {\n config = configFromString(config);\n }\n else if (config instanceof Date) {\n config = configFromDate(config, offsetMinutes);\n }\n else if (config instanceof OffsetDate) {\n config = configFromOffsetDate(config);\n }\n\n this._date = config.date;\n this._offsetMinutes = config.offsetMinutes;\n }\n\n /**\n * get the date, this date will be in the browser's time zone\n */\n getDate() {\n return this._date;\n }\n\n /**\n * get the number of minutes date was offset with when created\n */\n getOffsetMinutes() {\n return this._offsetMinutes;\n }\n\n /**\n * creates a java script date object adjusting the time to match the set offset minutes\n *\n * @returns {Date}\n */\n getOffsetDate() {\n return this.convertDateToOffset(this._date);\n }\n\n /**\n * creates a javascript date from a javascript date offset to this object's offset\n */\n convertDateToOffset(dt) {\n return addMinutes(dt, this.getOffsetMinutes() + dt.getTimezoneOffset());\n }\n\n /**\n * returns a string of form [+-]HHMM representing the hours and minutes offset\n */\n getOffsetString(forceMinutes) {\n var rv = '';\n if (this._offsetMinutes !== (this._date.getTimezoneOffset() * -1)) {\n var hours = Math.floor(Math.abs(this._offsetMinutes) / 60);\n if (this._offsetMinutes >= 0) {\n rv += '+';\n }\n else {\n rv += '-';\n }\n\n if (Math.abs(hours) < 10) {\n rv += '0';\n }\n\n rv += hours;\n\n var minutes = Math.abs(this._offsetMinutes) % 60;\n if (minutes > 0 || forceMinutes) {\n if (minutes < 10) {\n rv += '0';\n }\n rv += minutes;\n }\n }\n return rv;\n }\n /**\n * Convert the OffsetDate into a string in the format returned by the API,\n * which contains fractional seconds and a timezone offset.\n *\n * Exampe: 2022-09-16T09:07:45.757825-05:00\n *\n * @returns {String}\n */\n toRawString() {\n // Format the date string (in the timezone of the offset)\n const dateStr = moment(this.getOffsetDate()).format('YYYY-MM-DD[T]HH:mm:ss.SSSSSS');\n\n const offsetSign = this.getOffsetMinutes() > 0 ? '+' : '-';\n\n const offsetMinutesAbs = Math.abs(this.getOffsetMinutes());\n\n let offsetHoursStr = String(Math.floor(offsetMinutesAbs / 60));\n // Pad the hours with an extra 0, if needed.\n if (offsetHoursStr.length === 1) {\n offsetHoursStr = '0' + offsetHoursStr;\n }\n\n let offsetMinutesStr = String(offsetMinutesAbs % 60);\n // Pad the minutes with an extra 0, if needed.\n if (offsetMinutesStr.length === 1) {\n offsetMinutesStr = '0' + offsetMinutesStr;\n }\n\n return `${dateStr}${offsetSign}${offsetHoursStr}:${offsetMinutesStr}`;\n }\n}\n","import { fromISODateString } from 'Common/util/format';\nimport { exformat } from 'Common/util/language/string';\nimport {\n EPOCH_JULIAN_DAY,\n fromJulianDay, toJulianDay, addToJulianDay, getJulianDayOfWeek,\n clearTime,\n getWeekNumber as getWeekNumberFromDate\n} from 'Common/util/language/date';\nimport isArray from 'lodash/isArray';\nimport isDate from 'lodash/isDate';\nimport isString from 'lodash/isString';\nimport isNumber from 'lodash/isNumber';\n\nconst YEARS = 'years',\n QUARTERS = 'quarters',\n MONTHS = 'months',\n WEEKS = 'weeks',\n DAYS = 'days';\n\n/**\n * Get a production day number from a julian day.\n * @param {Number} julianDay\n * @return {Number}\n */\nfunction getNumberFromJulianDay(julianDay) {\n return julianDay - EPOCH_JULIAN_DAY;\n}\n\n/**\n * Get a production day number from a year, month, day tuple\n * @param {Number} year\n * @param {Number} month\n * @param {Number} day\n * @return {Number}\n */\nfunction getNumberFromYMD(year, month, day) {\n return getNumberFromJulianDay(toJulianDay(year, month, day));\n}\n\n/**\n * Get a production day number from an ISO string\n * @param {String} str\n * @return {Number}\n */\nfunction getNumberFromISOString(str) {\n var matcher = RegExp(/(\\d+)-(\\d+)-(\\d+)/);\n\n if (!matcher.test(str)) {\n throw new Error(`Expected YYYY-MM-DD, but got \"${str}\"`);\n }\n\n var m = matcher.exec(str),\n year = parseInt(m[1], 10),\n month = parseInt(m[2], 10),\n date = parseInt(m[3], 10);\n\n return getNumberFromYMD(year, month, date);\n}\n\n/**\n * @class ProductionDay\n *\n * Represents a day of production that is linked with (but not necessarily entirely coincident with)\n * a particular calendar day.\n */\nexport class ProductionDay {\n /**\n * Create a production day from one of a number of sets of arguments:\n *\n * * 1-argument form can be:\n * * {ProductionDay} - copy constructor\n * * {Number[]} - treats the items of the array as year, month, and day\n * * {Date} - selects the production day associated with this JS Date\n * * {String} - an ISO 8601 date string\n * * {Number} - the number of the production day\n *\n * * 2-argument form:\n * * {Number}, {String} - if the second argument is \"julian\", the first argument is treated\n * as a julian day, otherwise it is treated as a production day number (as the 1-argument)\n *\n * * 3-argument form:\n * * {Number}, {Number}, {Number} - treats the arguments as year, month, and day\n */\n constructor(arg1, arg2, arg3) {\n /* eslint-disable no-use-before-define */\n if (arg1 instanceof CalendarDay) {\n this._number = getNumberFromISOString(arg1.toDate().toISOString());\n }\n /* eslint-enable no-use-before-define */\n else if (arg1 instanceof ProductionDay) {\n this._number = arg1.getProductionDayNumber();\n }\n else if (isArray(arg1)) {\n this._number = getNumberFromYMD(arg1[0], arg1[1], arg1[2]);\n }\n else if (arguments.length === 3) {\n this._number = getNumberFromYMD(arg1, arg2, arg3);\n }\n else if (isDate(arg1)) {\n this._number = getNumberFromISOString(arg1.toISOString());\n }\n else if (isString(arg1)) {\n this._number = getNumberFromISOString(arg1);\n }\n else if (isNumber(arg1)) {\n if (arg2 === 'julian') {\n this._number = getNumberFromJulianDay(arg1);\n }\n else {\n this._number = arg1;\n }\n }\n else {\n throw new Error(`Unsupported constructor argument \"${String(arg1)}\"`);\n }\n }\n /**\n * Convert to a year, month, day tuple\n * @return {Number[]}\n */\n toYearMonthDay() {\n return fromJulianDay(this.toJulianDay());\n }\n /**\n * Convert to an ISO 8601 date string.\n * @return {String}\n */\n toString() {\n var ymd = this.toYearMonthDay();\n\n return exformat('{Y}-{Mz}{M}-{Dz}{D}', {\n Y: ymd[0],\n Mz: ymd[1] < 10 ? '0' : '',\n M: ymd[1],\n Dz: ymd[2] < 10 ? '0' : '',\n D: ymd[2]\n });\n }\n /**\n * Convert to a JS Date\n * @return {Date}\n */\n toDate() {\n return fromISODateString(this.toString());\n }\n /**\n * Convert to a julian day\n * @return {Number}\n */\n toJulianDay() {\n return this._number + EPOCH_JULIAN_DAY;\n }\n /**\n * Get the year associated with this day.\n * @return {Number}\n */\n getYear() {\n return this.toYearMonthDay()[0];\n }\n /**\n * Get the quarter (1-4) associated with this day.\n * @return {Number}\n */\n getQuarter() {\n return Math.floor((this.getMonth() - 1) / 3) + 1;\n }\n /**\n * Get the month (1-12) associated with this day.\n * @return {Number}\n */\n getMonth() {\n return this.toYearMonthDay()[1];\n }\n /**\n * Get the day of month (1-31) associated with this day\n * @return {Number}\n */\n getDate() {\n return this.toYearMonthDay()[2];\n }\n /**\n * Get the production day number associated with this day\n * @return {Number}\n */\n getProductionDayNumber() {\n return this._number;\n }\n /**\n * Get the day of week associated wtih this day.\n *\n * @param {Number} [productionWeekStartsOn=1] JS day of week for when the production week\n * starts.\n * @return {Number} JS day of week\n */\n getDayOfWeek(productionWeekStartsOn) {\n productionWeekStartsOn = isNumber(productionWeekStartsOn) ? productionWeekStartsOn : 1;\n\n var dow = getJulianDayOfWeek(this.toJulianDay());\n\n if (productionWeekStartsOn > 0) {\n dow = (dow - productionWeekStartsOn + 7) % 7;\n }\n\n return dow;\n }\n /**\n * gets the week number associated with this day\n * @param Number startDOW the day of week to use as week start 0=Sunday\n */\n getWeekNumber() {\n var dt = new Date(),\n ymd = this.toYearMonthDay();\n\n clearTime(dt);\n dt.setHours(12);\n // setMonth() does something weird if the date is the 31st and you try to change to a month\n // without 31 days, so set the date to something innocuous before we try that.\n dt.setDate(2);\n\n dt.setFullYear(ymd[0]);\n dt.setMonth(ymd[1] - 1);\n dt.setDate(ymd[2]);\n\n return getWeekNumberFromDate(dt);\n }\n /**\n * @private\n * Set the year, month, and day of this production day.\n * Zero or a negative number means \"leave it alone\"\n *\n * @param {Number} year\n * @param {Number} month\n * @param {Number} day\n */\n _setYearMonthDay(year, month, day) {\n var ymd = this.toYearMonthDay();\n if (year > 0) { ymd[0] = year; }\n if (month > 0) { ymd[1] = month; }\n if (day > 0) { ymd[2] = day; }\n\n this._number = getNumberFromYMD(ymd[0], ymd[1], ymd[2]);\n }\n /**\n * Set the day of month (1-31) associated with this day.\n * @param {Number} newDay\n * @return {ProductionDay} this; allows chaining\n */\n setDate(newDay) {\n this._setYearMonthDay(-1, -1, newDay);\n return this;\n }\n /**\n * Set the month (1-12) associated with this day.\n * @param {Number} newMonth\n * @return {ProductionDay} this; allows chaining\n */\n setMonth(newMonth) {\n this._setYearMonthDay(-1, newMonth, -1);\n return this;\n }\n /**\n * Adds a value to the production day. This returns a new production day, and does not\n * mutate `this`.\n *\n * @param {String} portion the name of the portion (e.g., 'years', 'weeks', 'days')\n * @param {Number} value how many of portion to add\n * @return {ProductionDay} A new production day with the appropriate amount added\n */\n add(portion, value) {\n var jd = this.toJulianDay(),\n newJd = addToJulianDay(jd, portion, value);\n\n return new ProductionDay(newJd, 'julian');\n }\n /**\n * Subtracts a value from this production day. See `add` for details.\n */\n subtract(portion, value) {\n return this.add(portion, -value);\n }\n addDays(value) {\n return this.add('days', value);\n }\n subtractDays(value) {\n return this.add('days', -value);\n }\n addWeeks(value) {\n return this.add('weeks', value);\n }\n subtractWeeks(value) {\n return this.add('weeks', -value);\n }\n /**\n * Get the distance (in days) between `this` and `that`\n * @param {Variant} that 1-argument constructible to a production day\n * @return {Number} > 0 if `this` is before `that`\n */\n getDistanceTo(that) {\n that = new ProductionDay(that);\n return that.getProductionDayNumber() - this.getProductionDayNumber();\n }\n /**\n * Compare two production days\n * @param {Variant} that 1-argument constructible to a production day\n * @return {Number} negative number: this < that; 0: this === that; positive number: this > that\n */\n compare(that) {\n // The sign here is reversed from `getDistanceTo`. That's the only difference.\n //\n return -this.getDistanceTo(that);\n }\n /**\n * Are these two things equal?\n *\n * @param {Variant} that Anything constructible (with one argument) to a ProductionDay\n * @return {Boolean}\n */\n equals(that) {\n return this.compare(that) === 0;\n }\n /**\n * Are these two things unequal?\n *\n * @param {Variant} that Anything constructible (with one argument) to a ProductionDay\n * @return {Boolean}\n */\n notEquals(that) {\n return this.compare(that) !== 0;\n }\n /**\n * Does this occur after that?\n *\n * @param {Variant} that Anything constructible (with one argument) to a ProductionDay\n * @return {Boolean}\n */\n isAfter(that) {\n return this.compare(that) > 0;\n }\n\n /**\n * Does this occur on or after that?\n */\n isOnOrAfter(that) {\n return this.compare(that) >= 0;\n }\n\n /**\n * Does this occur before that?\n *\n * @param {Variant} that Anything constructible (with one argument) to a ProductionDay\n * @return {Boolean}\n */\n isBefore(that) {\n return this.compare(that) < 0;\n }\n\n /**\n * Does this occur on or before that?\n *\n * @param {Variant} that Anything constructible (with one argument) to a ProductionDay\n * @return {Boolean}\n */\n isOnOrBefore(that) {\n return this.compare(that) <= 0;\n }\n}\n\n/**\n * @class CalendarDay\n *\n * In addition to ProductionDay (which needn't necessarily transition at midnight) we also\n * support the concept of CalendarDay (which does). It can also be represented as a number,\n * and supports the same methods, but exists just for reasons of type safety.\n */\nexport class CalendarDay extends ProductionDay {\n getProductionDayNumber() {\n // We're trying to avoid confusion, so don't allow getProductionDayNumber.\n throw new Error('CalendarDay does not support getProductionDayNumber.');\n }\n\n /**\n * Get the calendar day number associated with this day\n * @return {Number}\n */\n getCalendarDayNumber() {\n return this._number;\n }\n}\n\n/**\n * Given a production day, return an array indicating the production days of the\n * various time-ish boundaries\n *\n * @param {ProductionDay|Number} pd\n * @param {String} category\n *\n * @return {Object}\n * @return {Array}[0] start epoch day of category bound\n * @return {Array}[1] end epoch day of category bound\n *\n */\n export function getCategoryBounds(pd, category) {\n let rv, end, portion;\n\n let start = new ProductionDay(pd);\n\n if (category === 'day' || category === 'hour' || category === 'shift_hour') {\n // Don't do anything -- since no portion is set, start will === end.\n }\n else if (category === 'week') {\n start = start.add(DAYS, -start.getDayOfWeek());\n portion = WEEKS;\n }\n else if (category === 'month') {\n start.setDate(1);\n portion = MONTHS;\n }\n else if (category === 'quarter') {\n start.setMonth(start.getQuarter() * 3 - 2);\n start.setDate(1);\n\n portion = QUARTERS;\n }\n else if (category === 'year') {\n start.setMonth(1);\n start.setDate(1);\n\n portion = YEARS;\n }\n\n // We subtract a day here so that if `start` is at the beginning of a period (e.g.\n // (e.g., 2015-1-1), `end` is at the end of that period (e.g., 2015-12-31) instead of\n // at the beginning of the next period (e.g., 2016-1-1).\n //\n end = portion\n ? start.add(portion, 1).add(DAYS, -1)\n : start;\n\n rv = [\n start.getProductionDayNumber(),\n end.getProductionDayNumber()\n ];\n\n return rv;\n}\n\n/**\n * takes a numeric production day number and converts it to a production week number each week starts on\n * Monday.\n *\n * @param {Number} production day number\n * @return {Number} a production week number\n */\nexport function productionDayToProductionWeek(pd) {\n return Math.trunc((pd + 3) / 7).toString();\n}\n\n/**\n * takes a numeric production week number and creates a ProductionDay object representing the first\n * day of that production week (hard coded as Monday for now).\n * each week starts on Monday\n *\n * @param {Number} a production week number\n * @return {Number} production day number representing the first day of the sent production week\n */\nexport function productionWeekToProductionDay(week) {\n return new ProductionDay(week * 7 - 3);\n}\n\n/**\n * takes a numeric production day and converts it to a production month of form Year,Month.\n *\n * @param {Number} production day number\n * @return {string} production month of the form \"YYYY,MM\"\n */\nexport function productionDayToProductionMonth(pd) {\n const pdObj = new ProductionDay(pd);\n let month = pdObj.getMonth();\n\n // pad with leading zeros so string sorting of numbers will work\n month = month.toString().padStart(2, '0');\n\n return `${pdObj.getYear()},${month}`;\n}\n\n/**\n * takes a numeric production day and converts it to a production Quarter of form Year,Quarter.\n *\n * @param {Number} production day number\n * @return {string} production Quarter of the form \"YYYY,Q\"\n */\nexport function productionDayToProductionQuarter(pd) {\n const pdObj = new ProductionDay(pd);\n return `${pdObj.getYear()},${pdObj.getQuarter()}`;\n}\n","import { trunc } from 'Common/util/language/math';\nimport { exformat } from 'Common/util/language/string';\nimport { dateToJSON, fromEpochSeconds } from 'Common/util/language/date';\nimport { cloneDeep, extend, keys, pick } from 'lodash';\nimport moment from 'moment';\nimport { OffsetDate } from 'Common/data/date/OffsetDate';\nimport { ProductionDay } from 'Common/data/date/ProductionDay';\n\n/**\n * Get the decimal separator for the current or specified locale.\n *\n * @param {String} [locale] Defaults to global locale setting\n */\nfunction getDecimalSeparator(locale) {\n const numberWithDecimalSeparator = 1.1;\n\n // NOTE: While Intl.NumberFormat.prototype.formatToParts would be a much\n // nicer way to do this IE11 does not support it. This workaround\n // still does the trick though as all locales use a one character\n // decimal separator.\n //\n return numberWithDecimalSeparator\n .toLocaleString(locale)\n .substring(1, 2);\n}\n\nfunction getFormatString(s) {\n if (s && /\\{:.*\\}/.test(s)) {\n s = s.slice(2, -1);\n }\n\n return s;\n}\n\nexport function preprocessOptions(opts) {\n opts = opts ? cloneDeep(opts) : {};\n opts.pattern = getFormatString(opts.pattern);\n opts.datePattern = getFormatString(opts.datePattern);\n opts.timePattern = getFormatString(opts.timePattern);\n\n // This en-DE locale is funny... Coerce all its formatting to German.\n if (opts.locale === 'en-DE') {\n opts.locale = 'de-DE';\n }\n\n return opts;\n}\n\n/**\n * IE11's Intl likes to add lots of extraneous left-to-right markers,\n * which interferes with a lot of things like string comparison.\n */\nexport function stripDirectionalityMarkers(string) {\n return string.replace(/\\u200e/g, '');\n}\n\n/**\n * Similarly, IE11 loves adding spaces to percent values.\n * When we expect \"14.56%\", IE11 will give us \"14.56 %\".\n */\nfunction stripSpaceFromPercent(percentString) {\n return percentString.replace(/\\s%/, '%');\n}\n\nfunction parseNumberPattern(pattern) {\n var pieces = pattern.split('.'),\n wholeText = pieces[0],\n fractText = pieces[1],\n hasComma = wholeText.indexOf(',') !== -1,\n whole = {\n required: 0,\n extra: wholeText.replace(/,/g, '').match('#*(0*)(%)?(.*)?')\n },\n fract = {\n required: 0,\n optional: 0\n },\n hasPercent = false,\n extraText = '',\n opts = {};\n\n if (whole.extra) {\n opts.minDigits = whole.extra[1].length;\n hasPercent = whole.extra[2];\n extraText = whole.extra[3];\n }\n\n if (fractText) {\n fract.extra = fractText.match(/(0*)(#*)(%)?(.*)$/);\n fract.required = fract.extra[1].length;\n fract.optional = fract.extra[2].length;\n hasPercent = fract.extra[3];\n extraText = fract.extra[4];\n hasComma = wholeText.indexOf(',') !== -1;\n }\n\n opts.useGrouping = !!hasComma;\n\n if (hasPercent) {\n opts.style = 'percent';\n }\n if (extraText) {\n opts.format = '{value}' + extraText;\n }\n\n opts.minimumFractionDigits = fract.required;\n opts.maximumFractionDigits = fract.required + fract.optional;\n\n return opts;\n}\n\nfunction preprocessNumberOptions(opts) {\n opts = preprocessOptions(opts);\n\n opts.style = opts.type;\n\n if (opts.places || opts.places === 0) {\n opts.minimumFractionDigits = opts.places;\n opts.maximumFractionDigits = opts.places;\n }\n\n if (opts.pattern) {\n opts = extend(opts, parseNumberPattern(opts.pattern));\n }\n\n return opts;\n}\n\n/**\n * Format a JavaScript number.\n *\n * @param {Number} n the number to format\n * @param {Object} [opts] (optional) various controls over the formatting output.\n *\n * @param {Boolean} [opts.round = false] If true round to the nearest whole number\n * @param {Number} [opts.minimumFractionDigits] Min number of decimal places to show.\n * @param {Number} [opts.maximumFractionDigits] Max number of decimal places to show.\n * @param {Number} [opts.places] Fixed number of decimal places to show, replaces both\n * minimumFractionDigits and maximumFractionDigits opts.\n * @param {Number} [opts.minDigits] Min digits to show for the left side of the decimal, pad with 0's\n * if needed.\n * @param {String} [opts.type = 'decimal'] choose a format type based on the locale from the following:\n * decimal, percent, currency.\n * @param {String} [opts.locale] The locale to use, defaults to global locale setting.\n * @param {String} [opts.currency] (required if type is currency, ignored otherwise)\n * an ISO4217 currency code, a three letter sequence like \"USD\"\n * \n * @param {String} [opts.pattern] (Deprecated) Legacy regex-like pattern for number formatting, not\n * recommended for use.\n *\n */\nexport function formatNumber(n, opts) {\n let fmt;\n let truncPlaces;\n let value;\n\n opts = preprocessNumberOptions(opts);\n\n if (opts.round === false) {\n // If we're formatting a percent, we up the truncation places by 2, since the number\n // formatter will (I guess depending on locale... sigh) multiply by 100.\n //\n truncPlaces = (opts.maximumFractionDigits || 0) + (opts.style === 'percent' ? 2 : 0);\n n = trunc(n, truncPlaces);\n }\n\n try {\n fmt = new Intl.NumberFormat(opts.locale, opts);\n }\n catch (e) {\n fmt = new Intl.NumberFormat('en', opts);\n }\n\n value = fmt.format(n);\n value = stripDirectionalityMarkers(value);\n\n if (opts.style === 'percent') {\n value = stripSpaceFromPercent(value);\n }\n\n if (opts.minDigits) {\n const isNegative = value.startsWith('-');\n\n if (isNegative) {\n // Remove the negative sign for now and add it back at the end\n // once the padding has been added.\n //\n value = value.replace(/^-/, '');\n }\n\n const whole = value.split(getDecimalSeparator(opts.locale))[0];\n\n let padding = opts.minDigits - whole.length;\n\n while (padding > 0) {\n value = '0' + value;\n --padding;\n }\n\n value = isNegative ? `-${value}` : value;\n }\n\n if (opts.format) {\n value = exformat(opts.format, { value: value });\n }\n if (opts.template) {\n value = exformat(opts.template, { value: value });\n }\n\n return value;\n}\n\nconst formatItems = {\n selectors: {\n time: ['hour', 'minute', 'second', 'timeZoneName'],\n date: ['weekday', 'era', 'year', 'month', 'day']\n },\n dateFormatItems: {\n MMMd: {\n month: 'short',\n day: 'numeric'\n },\n 'MMM yyyy': {\n month: 'short',\n year: 'numeric'\n },\n 'MMMd yyyy': {\n month: 'short',\n day: 'numeric',\n year: 'numeric'\n },\n },\n timeFormatItems: {\n ha: {\n hour: 'numeric',\n minute: 'numeric'\n },\n hms: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric'\n }\n },\n canned: {\n short: {\n year: '2-digit',\n month: 'numeric',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric'\n },\n medium: {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric'\n },\n full: {\n weekday: 'long',\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric'\n }\n }\n};\n\nfunction preprocessDateOptions(opts) {\n var rv = {},\n selectorItems = formatItems.selectors[opts.selector],\n timeKey = opts.timeFormatItem || opts.timePattern,\n dateKey = opts.dateFormatItem || opts.datePattern,\n timeFormatItem = formatItems.timeFormatItems[timeKey] || {},\n dateFormatItem = formatItems.dateFormatItems[dateKey] || {};\n\n if (opts.formatLength) {\n rv = extend({}, formatItems.canned[opts.formatLength]);\n }\n\n rv = extend(rv, timeFormatItem);\n rv = extend(rv, dateFormatItem);\n\n // Default to \"short\"\n //\n if (keys(rv).length === 0) {\n rv = extend({}, formatItems.canned.short);\n }\n\n rv = extend(rv, opts);\n\n // If a selector was specified, only use items belonging to that selector.\n //\n if (selectorItems) {\n rv = pick(rv, selectorItems);\n }\n\n return rv;\n}\n\n///---------------------------------------------------------------------------------------------\n///\n/// Format a JavaScript Date object.\n///\n/// PARAMETERS:\n/// [Date] date: the date/time to format\n/// [Object] opts: (optional) various controls over the formatting output. 'fooPattern' options\n/// will be used if present, then 'fooFormatItem' options, then 'formatLength'\n///\n/// [String] datePattern: (optional) override the pattern for the time format with this string\n/// [String] timePattern: (optional) override the pattern for the date format with this string\n/// [String] dateFormatItem: (optional) A CLDR dateFormatItem string (See notes for a list)\n/// [String] timeFormatItem: (optional) override the pattern for the date format with this string\n/// [String] formatLength: (optional: 'short') choice of long, short, medium or full.\n/// [String] selector: (optional: both used) choice of 'time','date'\n///\n/// --------------------------------------------------------------------------------------------\n\nconst defaultLocal = 'en';\n\nexport function formatDate(d, opts) {\n opts = preprocessOptions(opts);\n\n var formatOpts = preprocessDateOptions(opts),\n fmt,\n rv;\n\n if (opts.locale) {\n try {\n fmt = new Intl.DateTimeFormat(opts.locale, formatOpts);\n }\n catch (e) {\n fmt = new Intl.DateTimeFormat(defaultLocal, formatOpts);\n }\n }\n else {\n fmt = new Intl.DateTimeFormat(defaultLocal, formatOpts);\n }\n\n if (typeof d === 'string') {\n // Use moment.js instead of Date.parse here. It'll try some ISO 8601\n // matching first, and if that fails, it'll fall back to Date.parse.\n d = moment(d).toDate();\n }\n else if (typeof d === 'number') {\n d = fromEpochSeconds(d);\n }\n else if (moment.isMoment(d)) {\n d = d.toDate();\n }\n else if (d instanceof OffsetDate) {\n d = d.getOffsetDate();\n }\n else if (d instanceof ProductionDay) {\n d = d.toDate();\n }\n else if (!(d instanceof Date)) {\n throw new TypeError(d + ' is not convertible to Date');\n }\n\n if (opts.iso) {\n rv = dateToJSON(d, extend({}, opts, { relative: true }));\n }\n else {\n if (fmt.formatToParts) {\n const formattedParts = fmt.formatToParts(d);\n\n rv = formattedParts.map(({type, value}) => {\n if (type === 'dayPeriod') {\n // We want to lowercase the AM or PM bit by default\n value = value.toLocaleLowerCase();\n }\n\n return value;\n }).join('');\n }\n else {\n rv = fmt.format(d);\n rv = stripDirectionalityMarkers(rv);\n }\n }\n\n if (('commaSeparator' in opts) && !opts.commaSeparator) {\n rv = rv.replace(/,/, '');\n }\n\n return rv;\n}\n\n/**\n * Convert a string in the format 'YYYY-MM-DD' to a Date object.\n *\n * @param {String} dateString\n * @return {Date}\n */\nexport function fromISODateString(str) {\n // Use moment to ensure JavaScript doesn't try and apply the\n // locale timezone to the date after parsing.\n //\n return moment(str).toDate();\n}\n","import { formatNumber } from 'Common/util/format';\nimport { getFractionalPiece } from 'Common/util/language/math';\nimport { isFunction, isObject } from 'lodash';\n\nfunction sortDurationFormatterItems(l, r) {\n const rv = l.getOrder() - r.getOrder();\n return isNaN(rv) ? Infinity : rv;\n}\n\nclass DurationFormatterItem {\n constructor(config) {\n this.text = config.text;\n this.code = this.text.charAt(0).toLowerCase();\n this.locale = config.locale;\n }\n\n getOrder() {\n return Infinity;\n }\n\n format(units) {\n switch (this.code) {\n case '\"': case \"'\":\n return this.text.slice(1, -1);\n case '.':\n // Figure out what our decimal separator is, and return it.\n return formatNumber(0, { places: 1, locale: this.locale })[1];\n default:\n return this.text;\n }\n }\n}\n\nclass DurationFormatterUnitItem extends DurationFormatterItem {\n static orderMap = { d: 1, h: 2, m: 3, s: 4 };\n\n static handle = (code, text) => {\n const code2 = text.charAt(1).toLowerCase();\n return this.orderMap[code] || (code === ',' && this.orderMap[code2]);\n };\n\n constructor(config) {\n super(config);\n\n if (this.code === ',') {\n this.code = this.text.charAt(1).toLowerCase();\n }\n\n this.hasComma = /,/.test(this.text);\n this.text = this.text.toLowerCase();\n this.text = this.text.replace(/,/, '');\n this.fmt = '#' + this.text.replace(new RegExp(this.code, 'g'), '0');\n }\n\n getOrder() {\n return DurationFormatterUnitItem.orderMap[this.code];\n }\n\n format(units) {\n const value = units.getValue(this.code);\n const rv = this.hasComma\n ? formatNumber(value, { places: 0, locale: this.locale })\n : formatNumber(value, { pattern: this.fmt, locale: this.locale });\n\n return rv;\n }\n}\n\nexport class DurationFormatterUnits {\n constructor(config) {\n const formatItems = config.items.filter(function(item) {\n return (item instanceof DurationFormatterUnitItem);\n }).sort(sortDurationFormatterItems);\n\n this.d = { scalar: 60 * 60 * 24 };\n this.h = { scalar: 60 * 60 };\n this.m = { scalar: 60 };\n this.s = { scalar: 1 };\n\n const largeUnit = this[formatItems[0].code];\n const smallUnit = this[formatItems[formatItems.length - 1].code];\n\n this._setDuration(config.duration, largeUnit, smallUnit);\n }\n\n _order = [ 'd', 'h', 'm', 's' ];\n\n _setDuration(duration, largeUnit, smallUnit) {\n this._duration = (isObject(duration) && isFunction(duration.getRawValue))\n ? duration.getRawValue()\n : duration;\n\n let fractional = getFractionalPiece(this._duration);\n let soak = 0;\n this._order.forEach(function(unit) {\n unit = this[unit];\n let value = Math.trunc(this._duration / unit.scalar);\n this._duration = this._duration % unit.scalar;\n\n if (unit.scalar > largeUnit.scalar) {\n soak += value * unit.scalar;\n value = 0;\n }\n else if (unit.scalar === largeUnit.scalar) {\n value += Math.trunc(soak / unit.scalar);\n }\n\n if (unit.scalar < smallUnit.scalar) {\n fractional += value * unit.scalar;\n value = 0;\n }\n\n unit.value = value;\n\n this._fractional = fractional / smallUnit.scalar;\n }, this);\n }\n\n getFractionalValue(unit) {\n return this._fractional;\n }\n\n getValue(unit) {\n unit = unit.charAt(0).toLowerCase();\n unit = this[unit];\n return unit.value;\n }\n\n isUnit(str) {\n return !!this[str.charAt(0).toLowerCase()];\n }\n}\n\nclass FractionalItemFormatter extends DurationFormatterItem {\n static handle = (code, text) => {\n return code === '.';\n };\n\n format(units) {\n const value = units.getFractionalValue();\n const pattern = '0' + this.text;\n const rv = formatNumber(value, { pattern: pattern, round: false, locale: this.locale });\n\n return rv.slice(1);\n }\n}\n\nexport function createItem(text, index, items, locale) {\n const code = text.charAt(0).toLowerCase();\n let rv = null;\n\n let formatters = [\n DurationFormatterUnitItem,\n FractionalItemFormatter\n ];\n\n formatters.some((item) => {\n if (item !== this && item.handle && item.handle(code, text)) {\n rv = new item({\n text: items[index],\n locale,\n });\n return true;\n }\n });\n\n return rv || new DurationFormatterItem({\n text: items[index],\n locale,\n });\n}\n","import { preprocessOptions } from 'Common/util/format.js';\nimport { exformat } from 'Common/util/language/string.js';\n\nimport { createItem, DurationFormatterUnits } from './DurationFormatter';\n\nconst SPECIAL_FORMATS = {\n 'vorne-s': 's{s}',\n 'vorne-ms': 'm{m} s{s}',\n 'vorne-hm': 'h{h} m{m}',\n 'vorne-hms': 'h{h} m{m} s{s}',\n 'vorne-hms.sss': 'h{h} m{m} s.000{s}'\n};\n\nfunction getSpecialFormat(formatName, translator) {\n let specialFormat = SPECIAL_FORMATS[formatName];\n\n if (specialFormat) {\n specialFormat = exformat(specialFormat, {\n h: '\"' + translator('hours_abbreviation') + '\"',\n m: '\"' + translator('minutes_abbreviation') + '\"',\n s: '\"' + translator('seconds_abbreviation') + '\"'\n });\n }\n\n return specialFormat;\n}\n\nexport default function formatDuration(duration, opts) {\n opts = preprocessOptions(opts);\n let pattern = opts.pattern ||\n getSpecialFormat(opts.formatItem, opts.translator) ||\n 'h:mm:ss',\n re = /(,?([Dd]+|[Hh]+|[Mm]+|[Ss]+)|\\s+|[:]|\".*?\"|'.*?'|\\.0*[0#]#*)/g,\n negative = duration < 0,\n items = pattern.match(re).map((...mapArgs) => createItem(...mapArgs, opts.locale)),\n units, rv;\n\n duration = negative ? -duration : duration;\n\n units = new DurationFormatterUnits({\n duration: duration,\n items: items\n });\n\n rv = items.map(function(item) {\n return item.format(units);\n });\n\n return (negative ? '-' : '') + rv.join('');\n}\n\n/**\n * Provides a convenient default formatter for the '_h __m __s' (e.g. 1h 22m 15s) that\n * we often use. This formatter also truncates the least significant 0 values. So what\n * would be \"1h 23m 00s\" would instead be \"1h 23m\".\n *\n * @param {Number} duration The duration to format in seconds\n * @param {Object} opts\n * @param {Function} opts.translator A text translator function such as cpe.t to\n * translate the h, m, and s abbreviations.\n * @param {Number} [opts.maxSignificantValues = 3] The max number of significant values\n * to include. For example if set to 2 \"1h 22m 15s\" would instead be \"1h 22m\".\n * @param {String} [opts.locale] The locale string for the duration formatter\n */\nexport function formatHMSDuration(duration, { translator, maxSignificantValues = 3, locale }) {\n const hmsDuration = formatDuration(duration, { pattern: \"[d]:[h]:[m]:[s]\", locale, translator }).split(':');\n const patternTranslations = ['days_abbreviation', 'hours_abbreviation', 'minutes_abbreviation', 'seconds_abbreviation'];\n\n const hmsDurationFormatted = hmsDuration.reduce((agg, val, index) => {\n if (val !== '0' && agg.length < maxSignificantValues) {\n agg.push(`${val}${translator(patternTranslations[index])} `);\n }\n\n return agg;\n }, []).join('').trim();\n\n return hmsDurationFormatted;\n}\n","import { formatDate, formatNumber } from 'Common/util/format';\nimport formatDuration from 'Common/util/formatDuration';\nimport { getPlacesForNumericRange } from 'Common/util/language/math';\n\nfunction _commonRate(range, locale, translator, template) {\n return function(data, opts) {\n opts = {\n type: 'decimal',\n places: 1,\n template: translator(template),\n locale,\n ...opts,\n };\n\n return formatNumber(data, opts);\n };\n}\n\nconst DEFAULT_FORMATTERS = {\n boolean: function(range, locale, translator) {\n return function(data, opts) {\n return data ? translator('yes_literal') : translator('no_literal');\n };\n },\n date_time: function(range, locale, translator) {\n return function(data, opts) {\n opts = {\n formatLength: 'short',\n timeFormatItem: 'hms',\n locale,\n ...opts,\n };\n\n return !data ? '' : formatDate(data, opts);\n };\n },\n time_span: function(range, locale, translator) {\n return function(data, opts) {\n opts = { locale, translator, ...opts };\n // Avoid truncating '.9999999' down to zero by first rounding it up.\n data = Number.parseFloat(data).toFixed(4);\n\n return formatDuration(data, opts);\n };\n },\n cycle: function(range, locale, translator) {\n return function(data, opts) {\n // We round to the nearest hundredth for display\n const roundedData = Number(Number(data).toFixed(2));\n\n // We do not care to show decimals for larger cycle counts as it is\n // often unnecessary precision which makes it harder to read.\n //\n const noDecimal = Number.isInteger(roundedData) || roundedData >= 1000;\n\n opts = {\n locale,\n type: 'decimal',\n places: noDecimal ? 0 : 1,\n ...opts,\n };\n\n return formatNumber(roundedData, opts);\n };\n },\n cycle_time: function(range, locale, translator) {\n return function(data, opts) {\n // this function is sometimes called with no opts parameter, so initialize the defaults\n // call with an empty object\n opts = {\n locale,\n translator,\n pattern: 'h:mm:ss.00',\n ...opts,\n };\n\n // As with time_span, avoid truncating '0.49999999' down to '0.49' by first rounding up.\n data = Number.parseFloat(data).toFixed(4);\n\n return formatDuration(data, opts);\n };\n },\n count: function(range, locale, translator) {\n return function(data, opts) {\n opts = {\n locale,\n type: 'decimal',\n places: 0,\n round: false,\n ...opts,\n };\n\n return formatNumber(data, opts);\n };\n },\n double: function(range, locale, translator) {\n return function(data, opts) {\n opts = {\n locale,\n type: 'decimal',\n places: 1,\n round: false,\n ...opts,\n };\n\n return formatNumber(data, opts);\n };\n },\n percent: function(range, locale, translator) {\n return function(data, opts) {\n opts = {\n type: 'percent',\n // percentages are limited to at most 1 decimal place (possibly zero)\n places: Math.min(1, getPlacesForNumericRange(range, 1)),\n locale,\n ...opts,\n };\n\n return formatNumber(data, opts);\n };\n },\n rate: function(range, locale, translator) {\n return _commonRate(range, locale, translator, 'rpm_format_template');\n },\n rate_per_hour: function(range, locale, translator) {\n return _commonRate(range, locale, translator, 'rph_format_template');\n },\n string: function(range, locale, translator) {\n // replace \\n with new lines\n return function(data, opts) {\n return data.replace(/\\n/g, '
    ');\n };\n },\n id_array: function(range, locale, translator) {\n return function(data, opts) {\n // Treat nulls like an empty array\n data = data || [];\n data = Array.isArray(data) ? data : [data];\n\n opts = {\n locale,\n type: 'decimal',\n places: 0,\n round: false,\n ...opts,\n };\n\n return formatNumber(String(data.length), opts);\n };\n },\n invalid: function(range, locale, translator) {\n return function(data, opts) {\n if (opts?.react) {\n return translator('unknown_field_format_not_escaped');\n }\n else {\n return translator('unknown_field_format_escaped');\n }\n };\n },\n uint64: function(range, locale, translator) {\n return function (data, opts) {\n opts = {\n locale,\n type: 'decimal',\n places: 0,\n round: false,\n ...opts,\n };\n\n return formatNumber(data, opts);\n };\n }\n};\n\nexport function getDefaultFormatter({\n type,\n locale,\n translator,\n range,\n}) {\n return DEFAULT_FORMATTERS[type]\n ? DEFAULT_FORMATTERS[type](range, locale, translator)\n : null;\n}\n","import ParamTypes, { paramTest, paramTypeToPropType } from 'Common/util/ParamTypes/ParamTypes';\nimport { getDefaultFormatter } from 'Common/data/defaultFormatters';\n\nexport const FILTER_COMBINE_TYPE_AND = 'and';\nexport const FILTER_COMBINE_TYPE_OR = 'or';\nexport const FILTER_TYPE_GROUP = 'group';\nexport const FILTER_TYPE_SLICE = 'slice';\nconst GROUP_FILTER_COMPARE_TYPES = {\n gt: (rawValue, filterValue) => { return rawValue > filterValue; },\n ge: (rawValue, filterValue) => { return rawValue >= filterValue; },\n lt: (rawValue, filterValue) => { return rawValue < filterValue; },\n le: (rawValue, filterValue) => { return rawValue <= filterValue; },\n ne: (rawValue, filterValue) => { return rawValue !== filterValue; },\n eq: (rawValue, filterValue) => { return rawValue === filterValue; },\n};\n\nconst SLICE_FILTER_COMPARE_TYPES = {\n eq: (rawValue, filterValue, plainCategory) => { \n let validFilter = false;\n filterValue.forEach((dimensionValue) => {\n if (dimensionValue === rawValue || plainCategory[dimensionValue] === rawValue) {\n validFilter = true; \n }\n });\n return validFilter;\n },\n ne: (rawValue, filterValue, plainCategory) => { \n let validFilter = false;\n filterValue.forEach((dimensionValue) => {\n if (dimensionValue !== rawValue && plainCategory[dimensionValue] !== rawValue) {\n validFilter = true; \n }\n });\n return validFilter;\n },\n};\n\n\n\nfunction getColumnsFromSliceFilters(sliceFilters) {\n const columns = [];\n\n const expressions = sliceFilters.expressions;\n\n expressions.forEach(({ lhs }) => {\n columns.push(lhs.name);\n });\n\n return columns;\n}\n\nfunction getColumnsFromGroupFilters(groupFilters) {\n const columns = [];\n\n const expressions = groupFilters.expressions;\n\n expressions.forEach(({ lhs }) => {\n columns.push(lhs.name);\n });\n\n return columns;\n}\n\nfunction getCategoryValuesFromSliceFilters(sliceFilters) {\n const categoryValues = [];\n\n const expressions = sliceFilters.expressions;\n\n expressions.forEach(({ lhs, rhs }) => {\n const rhsArray = rhs\n ? (Array.isArray(rhs) ? rhs : [ rhs ])\n : [];\n\n rhsArray.forEach((categoryValueName) => {\n categoryValues.push({\n category: lhs.name,\n categoryValue: categoryValueName,\n });\n });\n });\n\n return categoryValues;\n}\n\nfunction convertSliceFilterExpressionToDisplayValues({\n expression,\n columnConfigs,\n categoryValueConfigs,\n}) {\n const { lhs, rhs } = expression;\n\n const lhsItemColumnConfig = columnConfigs[lhs.name];\n const lhsString = lhsItemColumnConfig.displayName;\n\n const rhsArray = rhs\n ? (Array.isArray(rhs) ? rhs : [ rhs ])\n : [];\n\n const rhsStringArray = rhsArray.map((categoryValueName) => {\n return categoryValueConfigs[lhs.name][categoryValueName].displayName;\n });\n\n return {\n ...expression,\n lhs: lhsString,\n rhs: rhsStringArray,\n };\n}\n\nfunction convertGroupFilterExpressionToDisplayValues({\n expression,\n locale,\n translator,\n columnConfigs,\n}) {\n const { lhs, rhs } = expression;\n\n const lhsItemColumnConfig = columnConfigs[lhs.name];\n const lhsString = lhsItemColumnConfig.displayName;\n\n let rhsFormatter = getDefaultFormatter({\n type: lhsItemColumnConfig.formatType,\n locale,\n translator,\n });\n\n if (!rhsFormatter) {\n console.error('missing formatter for formatType', lhsItemColumnConfig.formatType);\n rhsFormatter = (name) => name;\n }\n\n const rhsString = rhsFormatter(rhs, {react: true});\n\n return {\n ...expression,\n lhs: lhsString,\n rhs: rhsString,\n };\n}\n\nfunction isSliceExpressionActive(expression) {\n return Array.isArray(expression.rhs)\n ? expression.rhs.length > 0\n : false;\n}\n\nfunction isGroupExpressionActive(expression) {\n return expression.rhs !== undefined && expression.rhs !== null;\n}\n\n/**\n * A set of utility functions using the standard filter object.\n */\nexport default class Filters {\n //\n // ParamTypes:\n //\n\n static sliceFilterExpressionParamType = ParamTypes.shape({\n lhs: ParamTypes.shape({\n channel: ParamTypes.string.isRequired,\n name: ParamTypes.string.isRequired,\n }),\n op: ParamTypes.string,\n rhs: ParamTypes.oneOfType([\n ParamTypes.arrayOf(\n ParamTypes.string\n ),\n ParamTypes.string,\n ])\n });\n\n static groupFilterExpressionParamType = ParamTypes.shape({\n lhs: ParamTypes.shape({\n channel: ParamTypes.string.isRequired,\n name: ParamTypes.string.isRequired,\n }),\n op: ParamTypes.string,\n rhs: ParamTypes.any,\n });\n\n static sliceFiltersParamType = ParamTypes.shape({\n combine_type: ParamTypes.oneOf([FILTER_COMBINE_TYPE_AND, FILTER_COMBINE_TYPE_OR]),\n expressions: ParamTypes.arrayOf(\n Filters.sliceFilterExpressionParamType,\n ),\n });\n\n static groupFiltersParamType = ParamTypes.shape({\n combine_type: ParamTypes.oneOf([FILTER_COMBINE_TYPE_AND, FILTER_COMBINE_TYPE_OR]),\n expressions: ParamTypes.arrayOf(\n Filters.groupFilterExpressionParamType,\n ),\n });\n\n static paramType = ParamTypes.shape({\n slice: Filters.sliceFiltersParamType,\n group: Filters.groupFiltersParamType,\n });\n\n //\n // PropTypes:\n //\n\n static sliceFilterExpressionPropType = paramTypeToPropType(\n Filters.sliceFilterExpressionParamType\n );\n\n static groupFilterExpressionPropType = paramTypeToPropType(\n Filters.groupFilterExpressionParamType\n );\n\n static sliceFiltersPropType = paramTypeToPropType(\n Filters.sliceFiltersParamType\n );\n\n static groupFiltersPropType = paramTypeToPropType(\n Filters.groupFiltersParamType\n );\n\n static propType = paramTypeToPropType(\n Filters.paramType\n );\n\n static validate(filters) {\n paramTest(filters, Filters.paramType, 'Filters');\n }\n\n /**\n * Extract all the column names used by the filters\n *\n * @param {Object} filters\n * @returns {String[]} Column names\n */\n static getColumnsFromFilters(filters) {\n Filters.validate(filters);\n\n let columnNames = [];\n\n if (filters.slice) {\n columnNames = columnNames.concat(\n getColumnsFromSliceFilters(filters.slice)\n );\n }\n\n if (filters.group) {\n columnNames = columnNames.concat(\n getColumnsFromGroupFilters(filters.group)\n );\n }\n\n return columnNames;\n }\n\n /**\n * Extract all the category values used by the filters.\n *\n * @param {Object} filters\n * @returns {Object[]} Category value identifiers in the form of\n * { category: '', categoryValue: '' }\n */\n static getCategoryValuesFromFilters(filters) {\n Filters.validate(filters);\n\n let categoryValueIdentifiers = [];\n\n // Only slice filters have category values\n if (filters.slice) {\n categoryValueIdentifiers = categoryValueIdentifiers.concat(\n getCategoryValuesFromSliceFilters(filters.slice)\n );\n }\n\n return categoryValueIdentifiers;\n }\n\n /**\n * Convert filters from the standard format into where all expressions' lhs\n * values are converted to display name strings, and all rhs values are\n * converted to either formatted numbers or category value display names.\n *\n * Useful for preparing filters to be rendered as plain text.\n *\n * @param {Object} filters\n * @param {Object} columnConfigs An object of column configs, keyed by\n * column name.\n * @param {Object} categoryValueConfigs A two-layer object of category value\n * configs. Keyed by category name, then category value name.\n * @param {Function} translator\n * @param {*} locale\n * @returns {Object} Filters with values converted to display strings.\n */\n static convertToDisplayValues(filters, columnConfigs, categoryValueConfigs, translator, locale) {\n Filters.validate(filters);\n\n const convertedFilters = {};\n\n if (filters.slice) {\n convertedFilters.slice = {\n ...filters.slice,\n expressions: filters.slice.expressions.map((expression) => {\n return convertSliceFilterExpressionToDisplayValues({\n expression,\n columnConfigs,\n categoryValueConfigs,\n });\n }),\n };\n }\n\n if (filters.group) {\n convertedFilters.group = {\n ...filters.group,\n expressions: filters.group.expressions.map((expression) => {\n return convertGroupFilterExpressionToDisplayValues({\n expression,\n translator,\n locale,\n columnConfigs,\n });\n }),\n };\n }\n\n return {\n ...filters,\n ...convertedFilters,\n };\n }\n\n /**\n * Get the number of active expressions. This means they have valid rhs values.\n * \n * @param {Object} filters\n * @returns {Number} number of active expressions\n */\n static countActiveExpressions(filters) {\n Filters.validate(filters);\n\n let count = 0;\n\n (filters?.slice?.expressions || []).forEach((expression) => {\n if (isSliceExpressionActive(expression)) {\n count++;\n }\n });\n\n (filters?.group?.expressions || []).forEach((expression) => {\n if (isGroupExpressionActive(expression)) {\n count++;\n }\n });\n \n return count;\n }\n\n /**\n * Are there any slice filters? This includes inactive filters.\n *\n * @param {object} filters\n * @returns {boolean}\n */\n static hasAnySliceFilters(filters) {\n Filters.validate(filters);\n const sliceExpressions = filters?.slice?.expressions || [];\n\n return sliceExpressions.length;\n }\n\n static validateAndonFilter(pageFitlers, widgetFilters, row, plainCategories = {}) {\n // merge filters also does filter validation\n const filters = this.mergeFilters(pageFitlers, widgetFilters);\n let validFilter = true;\n\n // This is a list of two filter types, Dimension and Metrics\n filters.forEach(filterType => {\n // check if any of the dimension or metric filters failed validation\n if (!validFilter) {\n return;\n }\n // check if the filter is and / or to use the proper comparison functions\n const compareType = filterType.type === FILTER_TYPE_SLICE ? \n SLICE_FILTER_COMPARE_TYPES : GROUP_FILTER_COMPARE_TYPES;\n \n const subFilterResults = filterType?.expressions?.map(filter => {\n // Handle Slice Filters\n if (filterType.type === FILTER_TYPE_SLICE) {\n // Some rawValues in row are returned as a list. \n let rowValue = Array.isArray(row[filter.lhs.name].rawValue) ? row[filter.lhs.name].rawValue[0] : row[filter.lhs.name].rawValue;\n\n if (rowValue?.name) {\n return compareType[filter.op](rowValue.name, filter.rhs, {});\n }\n else {\n return compareType[filter.op](rowValue.displayName, filter.rhs, plainCategories[filter.lhs.name]);\n }\n }\n // Handle Group Filters\n else {\n if (Array.isArray(row[filter.lhs.name].rawValue)) {\n // This is only for occurrence Metrics. \n // We pass in the length of the list of events instead of the actual values in the list.\n return compareType[filter.op](row[filter.lhs.name].rawValue.length, filter.rhs);\n }\n else if (Number.isFinite(row[filter.lhs.name].rawValue)) {\n return compareType[filter.op](row[filter.lhs.name].rawValue, filter.rhs);\n }\n else {\n return false;\n }\n }\n });\n validFilter = filterType.combine_type === FILTER_COMBINE_TYPE_AND ? \n !subFilterResults.some((result) => result === false) \n : !subFilterResults.every(result => result === false);\n });\n return validFilter;\n }\n\n /**\n * Merge together two filters (mostly widget and page filters). These are anded together if they exist.\n * This also handles excluding 'non-active' filters. Filters who don't have a right hand side.\n */\n static mergeFilters(filtersA, filtersB) {\n Filters.validate(filtersA);\n Filters.validate(filtersB);\n let filters = [];\n\n [\n { filter: filtersA.slice, type: FILTER_TYPE_SLICE },\n { filter: filtersA.group, type: FILTER_TYPE_GROUP },\n { filter: filtersB.slice, type: FILTER_TYPE_SLICE },\n { filter: filtersB.group, type: FILTER_TYPE_GROUP }\n ]\n .forEach(({filter, type}) => {\n if (filter) {\n const activeExpressions = filter.expressions.filter((expression) => {\n return Array.isArray(expression.rhs)\n ? expression.rhs.length > 0\n : expression.rhs !== null && expression.rhs !== undefined;\n });\n if (activeExpressions.length) {\n filters.push({ ...filter, expressions: activeExpressions, type });\n }\n }\n });\n \n return filters;\n }\n}\n\n","import React, {\n useState,\n useCallback,\n useMemo\n} from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { Primary5, Secondary5 } from 'Common/components/typography';\nimport { RadioButton, RadioButtonGroup } from 'Common/components/RadioButton';\nimport Button from 'Common/components/Button';\nimport InlineError from 'Common/components/Error/InlineError';\nimport { useTranslator } from 'Common/hooks/useTranslation';\nimport Filters from 'Common/types/Filters/Filters';\n\nconst Root = styled.div`\n padding: 5px 14px 5px 14px;\n`;\n\nconst Instructions = styled(Secondary5).attrs({ as: 'div' })`\n padding-bottom: 8px;\n`;\n\nconst IncludeLabel = styled(Primary5).attrs({ as: 'div' })`\n margin-bottom: 5px;\n`;\n\nconst StyledRadioButtonGroup = styled(RadioButtonGroup)`\n padding-left: 10px;\n`;\n\nconst ApplyContainer = styled.div`\n display: flex;\n justify-content: flex-end;\n`;\n\nconst StyledInlineError = styled(InlineError)`\n max-width: 275px;\n`;\n\nconst INCLUDE_ALL_COMMENTS = 'includeAllComments';\nconst INCLUDE_EVENT_COMMENTS = 'includeEventComments';\n\nfunction getRadioValue(includeAllComments) {\n return includeAllComments ? INCLUDE_ALL_COMMENTS : INCLUDE_EVENT_COMMENTS;\n}\n\nfunction getIncludeAllCommentsValue(radioValue) {\n if (radioValue !== INCLUDE_ALL_COMMENTS && radioValue !== INCLUDE_EVENT_COMMENTS) {\n throw new Error(`Invalid radioValue: \"${radioValue}\"`);\n }\n\n // includeAllComments is a boolean parameter in the CommentListColumn config\n return radioValue === INCLUDE_ALL_COMMENTS;\n}\n\nfunction hasChanges(initialValue, radioValue) {\n if (initialValue) {\n const initialRadioValue = getRadioValue(initialValue.commentList.includeAllComments);\n\n return initialRadioValue !== radioValue;\n }\n else {\n // No initial value? Well anything is change then\n return true;\n }\n\n}\n\nfunction validateCommentList(translator, value, filters) {\n let error = null;\n\n const includeAllComments = value?.commentList?.includeAllComments;\n\n if (includeAllComments && Filters.hasAnySliceFilters(filters)) {\n if (filters.slice.expressions.some((expression) => expression.rhs !== null)) {\n error = translator('control.column.comment_list.invalid_with_filters');\n }\n }\n\n return error;\n}\n\n/**\n * A component containing all that is needed to add a Comment Column\n * as a column on a table (the column and what types of comments it shows).\n *\n */\nfunction CommentListColumnSelector({\n fieldOptions,\n selectedColumnIndex,\n selectedColumns,\n onChange,\n startingValue,\n filterValue\n}) {\n const translator = useTranslator();\n const initialValue = useMemo(() => {\n // There is only one option for CommentLists, and that serves as our default\n return Number.isFinite(selectedColumnIndex) ? selectedColumns[selectedColumnIndex] : startingValue || { ...fieldOptions.comment_list[0] };\n }, [selectedColumnIndex, selectedColumns, startingValue, fieldOptions]);\n\n const [value, setValue] = useState(initialValue);\n\n const onRadioGroupChange = useCallback((event) => {\n const newRadioValue = event.target.value;\n\n if (hasChanges(value, newRadioValue)) {\n const newValue = {\n ...value,\n commentList: {\n includeAllComments: getIncludeAllCommentsValue(newRadioValue),\n },\n };\n\n setValue(newValue);\n }\n }, [value]);\n\n const error = validateCommentList(translator, value, filterValue);\n\n const onApply = useCallback(() => {\n let newSelectedColumns = selectedColumns;\n if (Number.isFinite(selectedColumnIndex)) {\n if (selectedColumns.length < selectedColumnIndex) {\n console.warn(`Can not update column at index ${selectedColumnIndex} there are only ${selectedColumns.length} columns.`);\n }\n else {\n newSelectedColumns = [].concat(selectedColumns);\n newSelectedColumns.splice(selectedColumnIndex, 1, value);\n }\n \n }\n else {\n newSelectedColumns = selectedColumns.concat([value]);\n }\n onChange({\n target: {\n value: newSelectedColumns\n }\n });\n }, [value, selectedColumns, onChange, selectedColumnIndex]);\n\n const canApplyChanges = useMemo(() => {\n return initialValue?.commentList?.includeAllComments !== value?.commentList?.includeAllComments || !Number.isFinite(selectedColumnIndex);\n }, [initialValue, value, selectedColumnIndex]);\n\n return (\n \n \n {translator('control.column.comment_list.instructions')}\n \n \n {translator('control.column.comment_list.include_label')}\n \n \n \n {translator('control.column.comment_list.include_all_comments')}\n \n \n {translator('control.column.comment_list.include_event_comments')}\n \n \n {error && ({error})}\n \n \n {translator('apply_literal')}\n \n \n \n );\n}\n\nconst commentListPropType = PropTypes.shape({\n includeAllComments: PropTypes.bool.isRequired,\n});\n\nconst commentListColumnPropType = PropTypes.shape({\n name: PropTypes.string.isRequired,\n displayName: PropTypes.string.isRequired,\n commentList: commentListPropType.isRequired,\n});\n\nCommentListColumnSelector.propTypes = {\n fieldOptions: PropTypes.shape({\n comment_list: PropTypes.arrayOf(commentListColumnPropType),\n }).isRequired,\n selectedColumnIndex: PropTypes.number,\n selectedColumns: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n displayName: PropTypes.string.isRequired,\n commentList: commentListPropType,\n }),\n ).isRequired,\n startingValue: commentListColumnPropType,\n filterValue: Filters.propType,\n onChange: PropTypes.func.isRequired,\n};\n\nexport default CommentListColumnSelector;\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport MetricAndMetricSetOption from 'Common/components/ColumnControl/MetricAndMetricSetOption';\n\nconst MetricListColumnSelect = (props) => {\n const {\n fieldOptions,\n metricListMetrics,\n metricListAddMetrics\n } = props;\n\n const handleOnChange = useCallback((event) => {\n const newColumns = event.target.value;\n const metricSetChosenAsFirstMetric = metricListMetrics.length === 0 && newColumns.length > 1;\n if (metricSetChosenAsFirstMetric) {\n let foundMetricSet;\n fieldOptions.metric_set.find(group => {\n return group.entries.find(metricSet => {\n const isFound = metricSet.columns.length === newColumns.length\n && metricSet.columns.every((col, index) => (col.name === newColumns[index].name));\n\n if (isFound) {\n foundMetricSet = metricSet;\n }\n return isFound;\n });\n });\n metricListAddMetrics({\n target: {\n value: {\n columns: newColumns,\n displayName: foundMetricSet?.displayName || ''\n }\n }\n });\n }\n else {\n metricListAddMetrics({\n target: {\n value: {\n columns: newColumns\n }\n }\n });\n }\n }, [metricListMetrics, metricListAddMetrics, fieldOptions]);\n\n return (\n \n );\n};\n\nMetricListColumnSelect.propTypes = {\n fieldOptions: PropTypes.shape({\n metric: PropTypes.arrayOf(\n PropTypes.shape({\n entries: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n channel: PropTypes.string.isRequired,\n displayName: PropTypes.string.isRequired,\n fieldType: PropTypes.string.isRequired,\n }),\n ).isRequired,\n }),\n ),\n metric_set: PropTypes.arrayOf(\n PropTypes.shape({\n entries: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n channel: PropTypes.string.isRequired,\n displayName: PropTypes.string.isRequired,\n fieldType: PropTypes.string.isRequired,\n }),\n ).isRequired,\n }),\n ),\n }).isRequired,\n metricListMetrics: PropTypes.array.isRequired,\n\n metricListAddMetrics: PropTypes.func.isRequired,\n};\n\nexport default MetricListColumnSelect;\n","import React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport { Heading5, Body5 } from 'Common/components/typography';\n\nconst Container = styled.div`\n border-radius: 3px;\n background-color: ${props => props.theme.colors.palette.grey.cloud};\n color: ${props => props.theme.colors.palette.grey.manatee};\n padding: 10px;\n display: flex;\n flex-direction: column;\n`;\n\n/**\n * A default for showing no data/error message in widget/table.\n *\n */\nfunction NoDataMessage({ title, message }) {\n\n return (\n \n {title}\n {message}\n \n );\n}\n\nNoDataMessage.propTypes = {\n title: PropTypes.string,\n message: PropTypes.string,\n};\n\nNoDataMessage.defaultProps = {\n title: '',\n message: '',\n};\n\nexport default NoDataMessage;\n","// options for showAs\nexport const SHOW_AS_BAR_CHART = 'barChart';\nexport const SHOW_AS_TEXT_ONLY = 'text';\nexport const SHOW_WITH_HEAT_MAP_INDICATORS = 'heatMapIndicator';\n\n// metric list type\nexport const METRIC_LIST_TYPE = 'metric_list';\n","import React, { Fragment, useCallback, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport some from 'lodash/some';\nimport isEqual from 'lodash/isEqual';\n\nimport Button from 'Common/components/Button';\nimport FieldBuilder from 'Common/components/FieldBuilder/FieldBuilder';\nimport TextField from 'Common/components/TextField';\nimport InlineError from 'Common/components/Error/InlineError';\nimport ListButton from 'Common/components/ListButton';\nimport MetricListColumnSelect from './MetricListColumnSelect';\nimport NoDataMessage from 'Common/components/NoDataMessage/NoDataMessage.js';\nimport { useTranslator } from 'Common/hooks/useTranslation';\nimport { v4 as uuid } from 'uuid';\n\nimport { elideTextCss } from 'Common/util/cssSnippets';\nimport { Primary5 } from 'Common/components/typography';\nimport { RadioButton, RadioButtonGroup } from 'Common/components/RadioButton';\n\nimport { METRIC_LIST_TYPE, SHOW_AS_BAR_CHART, SHOW_AS_TEXT_ONLY , SHOW_WITH_HEAT_MAP_INDICATORS } from \"Common/util/MetricListColumnConstants\";\n\nconst MetricListColumnEditorContainer = styled.div`\n padding: 0px 10px;\n`;\n\nconst ApplyContainer = styled.div`\n padding: 3px 10px 10px 10px;\n display: flex;\n justify-content: flex-end;\n`;\n\nconst HorizontalSeparator = styled.div`\n width: 100%;\n height: 1px;\n margin-top: 6px;\n border-bottom: 1px solid ${({theme}) => theme.colors.palette.grey.silver};\n`;\n\nconst IncludeLabel = styled(Primary5).attrs({ as: 'div' })`\n margin: 10px 0px 5px 0px;\n`;\n\nconst DisplayNameContainer = styled.span`\n ${elideTextCss};\n align-items: center;\n display:flex;\n flex-direction: row;\n margin: 10px 0;\n`;\n\nconst DisplayNameLabel = styled(Primary5).attrs({ as: 'div' })`\n padding-right: 12px;\n`;\n\nconst RadioButtonGroupContainer = styled.div`\n padding-left: 12px;\n`;\n\nconst AddButtonContainer = styled.div`\n padding: 0 4px;\n padding-bottom: 4px;\n border-bottom: 1px solid ${({theme}) => theme.colors.palette.grey.silver };\n`;\n\nconst Container = styled.div`\n overflow-y: auto;\n flex: 1 1 auto;\n`;\n\nconst EmptyMetricsMessageContainer = styled.div`\n padding: 10px;\n`;\n\nconst FieldBuilderContainer = styled.div`\n padding-top: 5px;\n`;\n\nfunction hasChanges(initialValue, value) {\n // It's considered a change if initialValue or value is falsy (such as undefined).\n if (!initialValue || !value) {\n return true;\n }\n\n // Check to see if any Object property indexed by key has changed.\n return some(['columns','displayName','showAs'], (key) => {\n switch (typeof initialValue[key])\n {\n case 'string':\n return (initialValue[key] !== value[key]);\n\n case 'object':\n return !isEqual(initialValue[key], value[key]);\n\n default:\n throw 'Unexpected shape';\n }\n });\n}\n\nfunction isCompatibleColumn(colA, colB) {\n if (colA.type === colB.type) {\n if (colA.subType === colB.subType) {\n // [FUTUREHACK]\n // these are mixed with some other double rates that are all ppm which seem should be separate\n return (colA.name.endsWith('_per_labor_hour') == colB.name.endsWith('_per_labor_hour'));\n }\n // both don't have a subType\n if (!colA.subType && !colB.subType) {\n return true;\n }\n }\n\n // Otherwise, do a lookup in our set of equivalent type/subType combinations.\n const typeKeyA = colA.type + (colA.subType ? '/' + colA.subType : '');\n const typeKeyB = colB.type + (colB.subType ? '/' + colB.subType : '');\n\n const equivalences = {\n 'double/cycle': true, 'uint64': true // All these can be cross-compared.\n };\n\n return equivalences[typeKeyA] && equivalences[typeKeyB];\n}\n\nfunction getErrors(translator, value) {\n let errors = {};\n\n if (!value || value.columns.length === 0) {\n errors.columns = translator('widget.table.column_control.errors.must_have_metrics');\n }\n\n if (!value.displayName) {\n errors.displayName = translator('widget.table.column_control.errors.must_have_header_text');\n }\n\n if (value.showAs === SHOW_AS_BAR_CHART) {\n const hasIncompatiableColumn = value.columns.some(col => {\n return !isCompatibleColumn(col, value.columns[0]) || col.type === 'date_time';\n });\n\n if (hasIncompatiableColumn) {\n errors.showAs = translator('widget.table.column_control.errors.incompatible_metrics');\n }\n }\n\n return Object.keys(errors).length > 0 ? errors : null;\n}\n\nfunction getShowMetricListWithValue(radioValue) {\n switch (radioValue) {\n case SHOW_AS_BAR_CHART:\n case SHOW_AS_TEXT_ONLY:\n case SHOW_WITH_HEAT_MAP_INDICATORS:\n break;\n\n default:\n throw new Error(`Invalid radioValue: \"${radioValue}\"`);\n }\n\n return radioValue;\n}\n\n/**\n * A component containing all that is needed to add a Metric List Column\n * as a column on a table (the column and additional display info).\n *\n */\nfunction MetricListColumnEditor(props) {\n const {\n selectedColumnIndex,\n selectedColumns,\n startingValue,\n title,\n\n onChange,\n transitionForward,\n transitionBackward,\n } = props;\n\n const translator = useTranslator();\n\n const initialValue = useMemo(() => {\n // this means we are editing an existing selectedColumn\n if (Number.isFinite(selectedColumnIndex)) {\n return selectedColumns[selectedColumnIndex];\n }\n else if (startingValue?.initialValue) {\n let initialStartingValue = startingValue.initialValue;\n if (!initialStartingValue.name) {\n initialStartingValue = { ...startingValue.initialValue, name: `mlist_${uuid()}` };\n }\n return initialStartingValue;\n }\n else {\n return {\n name: `mlist_${uuid()}`,\n channel: 'production_metric',\n columns: [],\n showAs: SHOW_AS_TEXT_ONLY,\n displayName: translator('metric_list'),\n fieldType: METRIC_LIST_TYPE,\n type: METRIC_LIST_TYPE\n };\n }\n },[selectedColumnIndex, startingValue, selectedColumns, translator]);\n\n // We will store the current value in persistedControlState\n const [value, setValue] = useState(startingValue?.value || initialValue);\n\n const errors = useMemo(() => {\n return getErrors(translator, value);\n }, [translator, value]);\n\n const onApply = useCallback(() => {\n let newSelectedColumns = selectedColumns;\n if (Number.isFinite(selectedColumnIndex)) {\n if (selectedColumns.length < selectedColumnIndex) {\n console.warn(`Can not update column at index ${selectedColumnIndex} there are only ${selectedColumns.length} columns.`);\n }\n else {\n newSelectedColumns = [].concat(selectedColumns);\n newSelectedColumns.splice(selectedColumnIndex, 1, value);\n }\n \n }\n else {\n newSelectedColumns = selectedColumns.concat([value]);\n }\n onChange({\n target: {\n value: newSelectedColumns\n }\n });\n }, [value, selectedColumns, onChange, selectedColumnIndex]);\n\n const canApplyChanges = useMemo(() => {\n return !errors && (hasChanges(initialValue, value) || !Number.isFinite(selectedColumnIndex));\n }, [initialValue, value, selectedColumnIndex, errors]);\n\n const handleFieldBuilderChange = useCallback((event) => {\n const newFieldValue = event.target.value;\n setValue(previousValue => {\n if (hasChanges(previousValue, { columns: newFieldValue })) {\n const newValue = {\n ...previousValue,\n columns: newFieldValue,\n };\n \n return newValue;\n }\n else {\n return previousValue;\n }\n });\n }, []);\n\n const handleHeaderChange = useCallback((event) => {\n const newHeaderValue = event.target.value;\n setValue(previousValue => {\n if (newHeaderValue != previousValue.displayName) {\n return { ...previousValue, displayName: newHeaderValue };\n }\n else {\n return previousValue;\n }\n });\n }, []);\n\n const handleRadioGroupChange = useCallback((event) => {\n const newRadioValue = getShowMetricListWithValue(event.target.value);\n setValue(previousValue => {\n if (newRadioValue !== previousValue.showAs) {\n return { ...previousValue, showAs: newRadioValue };\n }\n else {\n return previousValue;\n }\n });\n }, []);\n\n const handleAddMetric = useCallback((e) => {\n let propsForCurrentControl = { selectedColumnIndex, startingValue: { value, initialValue }};\n let propsForNextControl = {\n metricListMetrics:value.columns,\n metricListAddMetrics:(event) => {\n const newValue = event.target.value;\n const updatedPropsForCurrentControl = { \n selectedColumnIndex, \n startingValue: {\n initialValue,\n value: { ...value, columns: newValue.columns, displayName: newValue.displayName || value.displayName }\n }\n };\n transitionBackward();\n transitionForward(\n null,\n { control: MetricListColumnEditor, props: updatedPropsForCurrentControl, title }\n );\n }\n };\n\n transitionForward(\n { control: MetricListColumnSelect, props: propsForNextControl, title: translator('add_field_template', { field: translator('metric_literal')}) },\n { control: MetricListColumnEditor, props: propsForCurrentControl, title },\n );\n }, [selectedColumnIndex, value, initialValue, transitionForward, translator, title, transitionBackward]);\n\n return (\n \n \n \n \n {translator('add_field_template', { field: translator('metric_literal')})}\n \n \n \n \n \n {value.columns.length === 0\n ? (\n \n \n \n )\n : null\n }\n \n \n\n \n \n {translator('widget.table.column_control.header_text')}\n \n \n \n\n \n {translator('widget.table.column_control.show_metric_list_with.label')}\n \n\n \n \n \n {translator('widget.table.column_control.show_metric_list_with.only_text')}\n \n \n {translator('widget.table.column_control.show_metric_list_with.heat_map_indicators')}\n \n \n {translator('widget.table.column_control.show_metric_list_with.bar_chart')}\n \n \n \n {errors?.showAs\n ? (\n \n {errors.showAs}\n \n )\n : null\n }\n \n \n \n \n {translator('apply_literal')}\n \n \n \n );\n}\n\nconst metricListColumnPropType = PropTypes.shape({\n name: PropTypes.string,\n columns: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n displayName: PropTypes.string.isRequired,\n type: PropTypes.string,\n subType: PropTypes.string,\n })\n ).isRequired,\n displayName: PropTypes.string.isRequired,\n showAs: PropTypes.oneOf([\n '', SHOW_AS_BAR_CHART,SHOW_WITH_HEAT_MAP_INDICATORS,SHOW_AS_TEXT_ONLY\n ]),\n});\n\nMetricListColumnEditor.propTypes = {\n selectedColumnIndex: PropTypes.number,\n selectedColumns: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n columns: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n displayName: PropTypes.string.isRequired,\n type: PropTypes.string,\n subType: PropTypes.string,\n })\n ),\n displayName: PropTypes.string.isRequired,\n showAs: PropTypes.oneOf([\n '', SHOW_AS_BAR_CHART,SHOW_WITH_HEAT_MAP_INDICATORS,SHOW_AS_TEXT_ONLY\n ]),\n }),\n ).isRequired,\n startingValue: PropTypes.shape({\n initialValue: metricListColumnPropType,\n value: metricListColumnPropType,\n }),\n title: PropTypes.string.isRequired,\n\n transitionForward: PropTypes.func.isRequired,\n transitionBackward: PropTypes.func.isRequired,\n onChange: PropTypes.func.isRequired,\n};\n\nexport default MetricListColumnEditor;\n","import React, {\n useState,\n useCallback,\n useMemo\n} from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { Body5 } from 'Common/components/typography';\nimport { useTranslator } from 'Common/hooks/useTranslation';\n\nimport Button from 'Common/components/Button';\nimport BasicSelectField from 'Common/components/BasicSelectField/BasicSelectField';\nimport { filterFields } from 'Common/components/FieldBuilder/FieldBuilder';\n\nconst limitOptions = [\n { displayName:'1', value:'1' },\n { displayName:'2', value:'2' },\n { displayName:'3', value:'3' },\n { displayName:'4', value:'4' },\n { displayName:'5', value:'5' },\n];\n\nconst emptyValue = {\n attentionList: { limit: 3 }\n};\n\nfunction getColumnLimit(column) {\n return column.attentionList.limit;\n}\n\n// return a new column with limit updated\nfunction setColumnLimit(column, limit) {\n let newAttentionListPortion = {\n ...column.attentionList,\n limit\n };\n\n return { ...column, attentionList: newAttentionListPortion };\n}\n\nfunction hasChanges(initialValue, value) {\n // its considered change if theres no value or initialValue\n if (!initialValue || !value) {\n return true;\n }\n const sameLimit = getColumnLimit(initialValue) === getColumnLimit(value);\n const sameColumn = initialValue.name === value.name;\n return !sameColumn || !sameLimit;\n}\n\nconst verticalPadding = 5;\n\nconst ListDropdownContainer = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 0 14px ${verticalPadding}px 14px;\n`;\n\nconst LimitContainer = styled.div`\n padding: 0 14px ${verticalPadding}px 14px;\n`;\n\nconst LimitLabelContainer = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: ${verticalPadding}px 0;\n`;\n\nconst AttentionListLabel = styled.div`\n width: 35%;\n flex: 0 0 auto;\n padding-right: 10px;\n color: ${({theme}) => theme.colors.palette.grey.manatee};\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\nconst AttentionListContainer = styled.div`\n min-width: 1px;\n flex: 1 1 auto;\n`;\n\nconst HelperTextContainer = styled(Body5).attrs({ as: 'div' })`\n color: ${({ theme }) => theme.colors.darkText.mediumEmphasis };\n padding: 0 14px 10px;\n`;\n\nconst ApplyContainer = styled.div`\n display: flex;\n justify-content: flex-end;\n`;\n\n/**\n * A component containing all that is needed to add an Attention List Column\n * as a column on a table (the column and the limit).\n *\n */\nfunction AttentionListColumnSelector(props) {\n const {\n fieldOptions,\n selectedColumnIndex,\n selectedColumns,\n onChange,\n startingValue\n } = props;\n\n const translator = useTranslator();\n\n // always provide a value for sort to be stored into\n const initialValue = Number.isFinite(selectedColumnIndex) ? selectedColumns[selectedColumnIndex] : startingValue || emptyValue;\n\n const [value, setValue] = useState(initialValue);\n\n const options = useMemo(() => {\n const unselectableColumns = initialValue\n ? selectedColumns.filter(col => col.name !== initialValue.name)\n : selectedColumns;\n return filterFields(fieldOptions.attention_list || [], unselectableColumns);\n }, [fieldOptions, selectedColumns, initialValue]);\n\n const handleColumnChange = useCallback((event) => {\n let newValue = value;\n const { name: targetName, value: targetValue } = event.target;\n\n if (targetName === 'limit') {\n newValue = setColumnLimit(value, Number(targetValue.value));\n }\n else {\n // Use the new target to find the actual option selected\n const nextColumn = options.find((option) => (option.name === targetValue.value));\n newValue = setColumnLimit(nextColumn, getColumnLimit(value));\n }\n\n if (!hasChanges(initialValue, newValue)) {\n newValue = initialValue;\n }\n\n setValue(newValue);\n }, [value, initialValue, options]);\n\n const onApply = useCallback(() => {\n let newSelectedColumns = selectedColumns;\n if (Number.isFinite(selectedColumnIndex)) {\n if (selectedColumns.length < selectedColumnIndex) {\n console.warn(`Can not update column at index ${selectedColumnIndex} there are only ${selectedColumns.length} columns.`);\n }\n else {\n newSelectedColumns = [].concat(selectedColumns);\n newSelectedColumns.splice(selectedColumnIndex, 1, value);\n }\n \n }\n else {\n newSelectedColumns = selectedColumns.concat([value]);\n }\n onChange({\n target: {\n value: newSelectedColumns\n }\n });\n }, [value, selectedColumns, onChange, selectedColumnIndex]);\n\n const canApplyChanges = useMemo(() => {\n return (hasChanges(initialValue, value) || value === startingValue) && value.name;\n }, [initialValue, value, startingValue]);\n\n return (\n \n \n {translator('widget.table.column_control.attention_list_helper_text')}\n \n \n {translator('widget.table.column_control.attention_list_dropdown_label')}\n \n {\n return {\n displayName: option.displayName,\n value: option.name,\n };\n })}\n selectedValue={value?.name || ''}\n selectedDisplayName={value?.displayName || translator('widget.table.column_control.attention_list_dropdown_placeholder')}\n />\n \n \n\n \n \n {translator('widget.table.column_control.attention_list_limit_label')}\n \n \n \n \n {translator('apply_literal')}\n \n \n \n \n );\n}\n\nconst attentionListPropType = PropTypes.shape({\n limit: PropTypes.number.isRequired,\n});\n\nconst attentionListColumnPropType = PropTypes.shape({\n name: PropTypes.string.isRequired,\n displayName: PropTypes.string.isRequired,\n attentionList: attentionListPropType.isRequired,\n});\n\nAttentionListColumnSelector.propTypes = {\n fieldOptions: PropTypes.shape({\n attention_list: PropTypes.arrayOf(attentionListColumnPropType).isRequired,\n }).isRequired,\n selectedColumnIndex: PropTypes.number,\n selectedColumns: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n displayName: PropTypes.string.isRequired,\n attentionList: attentionListPropType,\n }),\n ).isRequired,\n startingValue: attentionListColumnPropType,\n\n onChange: PropTypes.func.isRequired,\n};\n\nexport default AttentionListColumnSelector;\n","export const SCROLL_LIMIT = 'scroll_limit';\nexport const FILTER_LIMIT = 'filter_limit';\n\nexport const DEFAULT_ROW_LIMIT = 14;\n\nexport const ATTENTION_LIST_TYPE = 'attention_list';\nexport const COMMENT_LIST_TYPE = 'comment_list';\nexport const DIMENSION_TYPE = 'category_value';\nexport const METRIC_TYPE = 'metric';\n","export const TEXT_VISUALIZATION_TYPE = 'text';\nexport const BAR_VISUALIZATION_TYPE = 'bar';\nexport const COLUMN_VISUALIZATION_TYPE = 'column';\nexport const CHRONOGRAM_VISUALIZATION_TYPE = 'chronogram';\n\nexport const DIMENSION_ORDER = 'dimension';\nexport const VALUE_ORDER = 'value';\nexport const TIME_ORDER = 'time';\n\nexport const TEXT_FORMAT_TYPE = 'spark_dimension_text';\nexport const BAR_FORMAT_TYPE = 'spark_dimension_bar';\nexport const COLUMN_FORMAT_TYPE = 'spark_dimension_column';\nexport const CHRONOGRAM_FORMAT_TYPE = 'spark_dimension_chronogram';\n\nexport const DIMENSION_VISUALIZATION_TYPES = {\n TEXT_VISUALIZATION_TYPE,\n BAR_VISUALIZATION_TYPE,\n COLUMN_VISUALIZATION_TYPE,\n CHRONOGRAM_VISUALIZATION_TYPE\n};\n\nexport const DIMENSION_VISUALIZATION_ORDER_BY_TYPES = {\n DIMENSION_ORDER,\n TIME_ORDER,\n VALUE_ORDER\n};\n\nexport const DIMENSION_VISUALIZATION_FORMAT_TYPES = {\n TEXT_FORMAT_TYPE,\n BAR_FORMAT_TYPE,\n COLUMN_FORMAT_TYPE,\n CHRONOGRAM_FORMAT_TYPE,\n};\n\nexport const DIMENSION_VISUALIZATION_TO_TYPE = {\n 'bar' : BAR_FORMAT_TYPE,\n 'column': COLUMN_FORMAT_TYPE,\n 'chronogram': CHRONOGRAM_FORMAT_TYPE,\n 'text': TEXT_FORMAT_TYPE\n};\n\nexport const DURATION_METRIC = 'duration';\n","import React, { useState, useCallback } from 'react';\nimport styled, { css } from 'styled-components';\nimport PropTypes from 'prop-types';\n\nimport TextField from '../TextField';\nimport { formatNumber } from 'Common/util/format';\nimport { trunc } from 'Common/util/language/math';\nimport InlineError from 'Common/components/Error/InlineError';\n\nconst DEFAULT_MAX_FRACTION_DIGITS = 3;\n\nconst NumberInput = styled(TextField).attrs(({isEditing}) => ({\n // While editing we want to be a number field for better input filtering and mobile\n // keypad support. But we change to a readonly text field when not editing so we can\n // show formatted values like percentages and thousands separators.\n //\n type: isEditing ? 'number' : 'text',\n readonly: !isEditing,\n}))`\n /* Hides the up/down arrows for number inputs */\n & input[type=number] {\n /* Chrome / Safari */\n &::-webkit-inner-spin-button,\n &::-webkit-outer-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n\n /* Firefox */\n -moz-appearance: textfield;\n\n /* In Firefox we also need to hide the box shadow for invalid inputs */\n &:invalid {\n box-shadow: none;\n }\n }\n\n text-align: right;\n ${({disabled}) => disabled && css`\n color: ${({theme}) => theme.colors.darkText.disabled};\n `}\n`;\n\nconst Container = styled.div`\n display: inline-block;\n width: 100%;\n`;\n\nfunction convertInputValue(percent, value, maximumFractionDigits) {\n let newInputValue = '';\n\n if (Number.isFinite(value)) {\n // Adjust the value to look like a percentage instead of a fractional value\n // for the user to edit.\n //\n newInputValue = percent ? value * 100 : value;\n\n // Do not show precision beyond our max precision\n newInputValue = Number(newInputValue.toFixed(maximumFractionDigits));\n }\n\n return newInputValue;\n}\n\n/**\n * A number input field with the standard styles applied with prop type\n * validation and numerical conversion for the onChange event.\n *\n * @param {Number} [value] The number to use as the value of the field, decimal portion\n * may be truncated on blur if integral prop is set to true.\n * @param {Function} [onChange] Called with the new value when a value is committed on a\n * blur event.\n * @param {Number} [minFractionDigits = 0] Enforce a minimum number for fractional digits.\n * @param {Boolean} [percent = false] When true values are multiplied by 100 and shown with a %\n * symbol while not focused.\n * @param {Number} [minLeftDigits = 0] Number of digits to ensure on the left side of the\n * decimal point, padding with zeros as needed.\n * @param {String} [placeholder = '']\n * @param {Node} [error] An error message if relevant.\n * @param {Boolean} [showErrorInline = true] If there is an error present show it inline under the\n * input.\n */\nexport default function NumberField({\n className,\n value,\n name,\n placeholder,\n onChange: onChangeProp,\n minLeftDigits,\n minFractionDigits,\n percent,\n error,\n showErrorInline,\n disabled\n}) {\n const maximumFractionDigits = Math.max(\n DEFAULT_MAX_FRACTION_DIGITS,\n minFractionDigits,\n );\n\n const [isEditing, setIsEditing] = useState(false);\n const [inputValue, setInputValue] = useState(convertInputValue(percent, value, maximumFractionDigits));\n\n let stringValue = '';\n\n if (Number.isFinite(value)) {\n stringValue = formatNumber(value, {\n minDigits: minLeftDigits,\n type: percent ? 'percent' : 'decimal',\n minimumFractionDigits: minFractionDigits,\n maximumFractionDigits,\n });\n }\n\n const onFocus = useCallback(() => {\n setIsEditing(true);\n setInputValue(convertInputValue(percent, value, maximumFractionDigits));\n }, [percent, value, maximumFractionDigits]);\n\n const handleChange = useCallback(({ newValue: newValueString, shouldTruncate = false }) => {\n newValueString = newValueString.trim();\n let newValue = Number(newValueString);\n\n if (newValueString.length > 0 && !Number.isNaN(newValue)) {\n if (shouldTruncate) {\n newValue = trunc(newValue, maximumFractionDigits);\n }\n\n // Apply percentage adjustment after truncation as the max fraction digits\n // applies to what the user sees, not the value used under the hood.\n //\n if (percent) {\n newValue = Number((newValue / 100).toFixed(maximumFractionDigits + 2));\n }\n }\n else {\n newValue = null;\n }\n\n onChangeProp({\n target: {\n value: newValue,\n name,\n },\n });\n }, [onChangeProp, maximumFractionDigits, name, percent]);\n\n const onBlur = useCallback((event) => {\n setIsEditing(false);\n\n handleChange({\n newValue: event.target.value,\n shouldTruncate: true,\n });\n }, [handleChange]);\n\n const onChange = useCallback((event) => {\n setInputValue(event.target.value);\n handleChange({\n newValue: event.target.value,\n });\n }, [handleChange]);\n\n return (\n \n \n {showErrorInline && error && (\n \n {error}\n \n )}\n \n );\n}\n\nNumberField.propTypes = {\n className: PropTypes.string,\n value: PropTypes.number,\n name: PropTypes.string,\n placeholder: PropTypes.string,\n onChange: PropTypes.func,\n minLeftDigits: PropTypes.number,\n minFractionDigits: PropTypes.number,\n percent: PropTypes.bool,\n error: PropTypes.node,\n showErrorInline: PropTypes.bool,\n disabled: PropTypes.bool\n};\n\nNumberField.defaultProps = {\n placeholder: '',\n onChange: () => { },\n minLeftDigits: 0,\n minFractionDigits: 0,\n percent: false,\n showErrorInline: true,\n disabled: false\n};\n","import NumberField from './NumberField';\n\nexport default NumberField;\n","import Dropdown from 'Common/components/Dropdown/Dropdown';\nimport FieldSelectControl from 'Common/components/LiveControls/FieldSelectControl';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport SelectDropdownButton from 'Common/components/SelectList/SelectDropdownButton';\nimport { useTranslator } from 'Common/hooks/useTranslation';\n\n/**\n * Dropdown with internally managed open/close state.\n */\nfunction MetricSelectField({\n disabled,\n name,\n onChange,\n options,\n selectedItem,\n collapsibleGroups,\n showFlattenCheckbox,\n placeholderText,\n}) {\n const translator = useTranslator();\n const [isOpen, setIsOpen] = React.useState(false);\n\n const openHandler = () => {\n setIsOpen(true);\n };\n\n const closeHandler = () => {\n setIsOpen(false);\n };\n\n const onChangeHandler = (event) => {\n closeHandler();\n onChange(event);\n };\n\n const renderContent = () => {\n return (\n \n );\n };\n\n const itemName = (selectedItem.displayKey ? translator(selectedItem.displayKey) : selectedItem.displayName);\n\n return (\n \n \n {itemName || placeholderText || ''}\n \n \n );\n}\n\nMetricSelectField.propTypes = {\n disabled: PropTypes.bool,\n name: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n options: PropTypes.arrayOf(PropTypes.object).isRequired,\n selectedItem: PropTypes.object.isRequired,\n showFlattenCheckbox: PropTypes.bool,\n collapsibleGroups: PropTypes.bool,\n placeholderText: PropTypes.string,\n};\n\nMetricSelectField.defaultProps = {\n disabled: false,\n name: 'MetricSelectField',\n placeholderText: '',\n};\n\nexport default MetricSelectField;\n","import MetricSelectField from \"./MetricSelectField\";\n\nexport default MetricSelectField;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport CategorySelectList from '.';\nimport Dropdown from 'Common/components/Dropdown/Dropdown';\nimport SelectDropdownButton from 'Common/components/SelectList/SelectDropdownButton';\nimport { useTranslator } from 'Common/hooks/useTranslation';\n\n/**\n * Drop-In SelectField for CategorySelectLists which wraps CategorySelectList in a dropdown\n * with internally managed open/close state.\n */\nfunction CategorySelectField({\n name,\n options,\n selectedItem,\n onChange,\n disabled,\n collapsibleGroups,\n showFlattenCheckbox,\n placeholderText,\n}) {\n const translator = useTranslator();\n const [isOpen, setIsOpen] = useState(false);\n\n const openHandler = () => {\n setIsOpen(true);\n };\n\n const closeHandler = () => {\n setIsOpen(false);\n };\n\n const onChangeHandler = (event) => {\n closeHandler();\n onChange(event);\n };\n\n const renderContent = () => {\n return (\n \n );\n };\n\n const itemName = selectedItem.displayKey ? translator(selectedItem.displayKey) : selectedItem.displayName;\n\n return (\n \n \n {itemName || placeholderText || ''}\n \n \n );\n}\n\nCategorySelectField.propTypes = {\n name: PropTypes.string,\n options: PropTypes.arrayOf(PropTypes.object).isRequired,\n selectedItem: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n disabled: PropTypes.bool,\n showFlattenCheckbox: PropTypes.bool,\n collapsibleGroups: PropTypes.bool,\n placeholderText: PropTypes.string,\n};\n\nCategorySelectField.defaultProps = {\n name: 'CategorySelectField',\n disabled: false,\n placeholderText: '',\n};\n\nexport default CategorySelectField;\n","\n\n/**\n * Validation function for the common NumberField component.\n *\n * @param {Number|String} num Number value to validate.\n * @param {Object} [opts]\n * @param {Number} [opts.min = MIN_SAFE_INT] The lower bound for a valid number.\n * @param {Number} [opts.max = MAX_SAFE_INT] The upper bound for a valid number.\n * @param {Boolean} [opts.integral = false] If true the number should be a whole number to\n * pass validation.\n * @param {Boolean} [opts.percentage = false] If true treat as a percentage.\n * @param {Boolean} [opts.allowEmpty = false] If true count empty values as valid.\n * @param {Function} [opts.translator] The translator used to return string literals from\n * provided keys and substitution mapping.\n *\n * @returns {String} Error message if applicable, undefined if there are no errors to report.\n */\nexport default function validateNumber(num, {\n min = Number.MIN_SAFE_INTEGER,\n max = Number.MAX_SAFE_INTEGER,\n integral,\n percentage,\n allowEmpty,\n translator,\n}) {\n let error;\n\n const originalNum = num;\n\n num = Number(num);\n\n const nanErrorLiteral = translator({ key: 'not_a_number_error'});\n const gteErrorLiteral = translator({\n key: 'number_must_be_gte_error',\n substitutions: { min: min }\n });\n const lteErrorLiteral = translator({\n key: 'number_must_be_lte_error',\n substitutions: { max: max }\n });\n const wholeNumberErrorLiteral = translator({ key: 'not_a_whole_number_error'});\n\n if (Number.isNaN(num)) {\n if (!allowEmpty || originalNum) {\n error = nanErrorLiteral;\n }\n else {\n // No need to check anything else since we are NaN\n return undefined;\n }\n }\n else if (num < min) {\n error = gteErrorLiteral;\n }\n else if (num > max) {\n error = lteErrorLiteral;\n }\n else if (integral) {\n const adjustedNum = percentage ? num * 100 : num;\n\n if (adjustedNum !== Math.trunc(adjustedNum)) {\n error = wholeNumberErrorLiteral;\n }\n }\n\n return error;\n}\n","import React, { useCallback, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { filterGroupedFields } from 'Common/components/FieldBuilder/FieldBuilder';\nimport { useTranslator } from 'Common/hooks/useTranslation';\nimport styled from 'styled-components';\nimport { Body5 } from 'Common/components/typography';\nimport Button from 'Common/components/Button';\nimport BasicSelectField from 'Common/components/BasicSelectField/BasicSelectField';\nimport NumberField from 'Common/components/NumberField';\nimport MetricSelectField from 'Common/components/MetricSelectField';\nimport CategorySelectField from 'Common/components/CategorySelectList/CategorySelectField';\nimport InlineError from 'Common/components/Error/InlineError';\nimport validateNumber from 'Common/data/validateNumber';\nimport {\n BAR_VISUALIZATION_TYPE,\n COLUMN_VISUALIZATION_TYPE,\n DIMENSION_ORDER,\n DIMENSION_VISUALIZATION_TYPES,\n TEXT_VISUALIZATION_TYPE,\n VALUE_ORDER\n} from '../SparkVisualization/SparkDimensionConstants';\n\nconst NO_METRIC = 'none';\n\nfunction getVisualizationOptions(translator) {\n return [\n {\n value: DIMENSION_VISUALIZATION_TYPES.TEXT_VISUALIZATION_TYPE,\n displayName: translator('widget.spark_visualization.dimension_visualization_options.visualization.text'),\n },\n {\n value: DIMENSION_VISUALIZATION_TYPES.BAR_VISUALIZATION_TYPE,\n displayName: translator('widget.spark_visualization.dimension_visualization_options.visualization.bar'),\n },\n {\n value: DIMENSION_VISUALIZATION_TYPES.COLUMN_VISUALIZATION_TYPE,\n displayName: translator('widget.spark_visualization.dimension_visualization_options.visualization.column'),\n },\n ];\n}\n\nfunction getOrderOptions(translator) {\n return [\n {\n value: DIMENSION_ORDER,\n displayName: translator('widget.spark_visualization.dimension_visualization_options.order_by.by_dimension'),\n },\n {\n value: VALUE_ORDER,\n displayName: translator('widget.spark_visualization.dimension_visualization_options.order_by.by_value'),\n },\n ];\n}\n\nfunction getMetricOptions(fieldOptions, visualization) {\n return fieldOptions.category_value_metrics[visualization];\n}\n\n/**\n * A helper function to find the first option in a hierarchical set of options.\n *\n * Similar to Array.find().\n * \n * @param {Array} options Array of options.\n * @param {Function} func Supplied function that should return true if the option matches.\n * @returns {Object|undefined} The found option or undefined.\n */\nconst findOptionRecursive = (options, func) => {\n for (const opt of options) {\n if (opt.entries) {\n const foundEntry = findOptionRecursive(opt.entries, func);\n if (foundEntry !== undefined) {\n return foundEntry;\n }\n }\n else {\n if (func(opt)) {\n return opt;\n }\n }\n }\n\n return undefined;\n};\n\nconst findMetricOption = (metricOptions, metric) => {\n const foundOption = findOptionRecursive(metricOptions, (opt) => {\n return opt.name === metric;\n });\n\n return foundOption || null;\n};\n\nfunction hasChanges(newConfig, initialConfig) {\n return newConfig.dimension !== initialConfig?.name\n || newConfig.visualization !== initialConfig?.dimensionVisualization?.visualization\n || newConfig.metric !== initialConfig?.dimensionVisualization?.metric\n || newConfig.order !== initialConfig?.dimensionVisualization?.orderBy\n || newConfig.limit !== initialConfig?.dimensionVisualization?.maxElementsShown;\n}\n\nconst verticalPadding = 5;\nconst ListDropdownContainer = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 0 14px ${verticalPadding}px 14px;\n`;\n\nconst LimitContainer = styled.div`\n padding: 0 14px;\n display: flex;\n flex-direction: row;\n align-items: center;\n`;\n\nconst LimitErrorContainer = styled.div`\n display: flex;\n flex-direction: row;\n padding: 0 14px ${verticalPadding}px 14px;\n`;\n\nconst SparkColumnLabel = styled.div`\n width: 38%;\n flex: 0 0 auto;\n padding-right: 10px;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\nconst SparkColumnContainer = styled.div`\n min-width: 1px;\n flex: 1 1 auto;\n`;\n\nconst HelperTextContainer = styled(Body5).attrs({ as: 'div' })`\n color: ${({ theme }) => theme.colors.darkText.mediumEmphasis };\n padding: 0 0 10px 14px;\n`;\n\nconst ValidationText = styled(Body5)`\n color: ${({theme}) => theme.colors.palette.error.red };\n`;\n\nconst ValidationContainer = styled.div`\n justify-content: flex-end;\n flex: 0 0 auto;\n padding: 0 10px;\n`;\n\nconst ApplyContainer = styled.div`\n display: flex;\n justify-content: flex-end;\n padding: 0 14px 14px 14px;\n`;\n\nconst NumberFieldContainer = styled.div`\n width: 30px;\n`;\n\n/**\n * Use this in a history stack style column control for when the user is editing/adding a category.\n *\n */\nconst SparkDimensionColumnSelector = ({\n fieldOptions,\n selectedColumnIndex,\n selectedColumns,\n onChange,\n startingValue\n}) => {\n const translator = useTranslator();\n\n // initial column\n const initialCategoryColumn = Number.isFinite(selectedColumnIndex) ? selectedColumns[selectedColumnIndex] : null;\n const initalDimensionVisualization = initialCategoryColumn?.dimensionVisualization || null;\n\n const [dimension, setDimension] = useState(initialCategoryColumn?.name || startingValue?.name || '');\n const [visualization, setVisualization] = useState(initalDimensionVisualization?.visualization || BAR_VISUALIZATION_TYPE);\n const [metric, setMetric] = useState(initalDimensionVisualization?.metric || startingValue?.metric || null);\n const [order, setOrder] = useState(initalDimensionVisualization?.orderBy || DIMENSION_ORDER);\n const [limit, setLimit] = useState(Number.isFinite(initalDimensionVisualization?.maxElementsShown) ? initalDimensionVisualization?.maxElementsShown : 10);\n\n const usesLimit = (visualization !== TEXT_VISUALIZATION_TYPE);\n\n const limitNumberError = useMemo(() => {\n return usesLimit ?\n validateNumber(limit, {\n integral: true,\n min: 1,\n max: 15,\n translator: translator,\n })\n : '';\n }, [limit, translator, usesLimit]);\n\n const configurationError = useMemo(() => {\n if (!metric && visualization !== DIMENSION_VISUALIZATION_TYPES.TEXT_VISUALIZATION_TYPE) {\n return translator('editors.spark_dimension.validation.need_metric');\n }\n else {\n return '';\n }\n }, [metric, visualization, translator]);\n\n const dimensionList = useMemo(() => {\n const unselectableFields = initialCategoryColumn\n ? selectedColumns.filter(col => col.name !== initialCategoryColumn.name)\n : selectedColumns;\n const filteredFields = filterGroupedFields(fieldOptions.category_value || [], unselectableFields);\n\n return filteredFields.map((option) => {\n return {\n ...option,\n isDummyGroup: false,\n };\n });\n }, [fieldOptions, selectedColumns, initialCategoryColumn]);\n\n const selectedDimension = useMemo(() => {\n const foundOption = findOptionRecursive(dimensionList, (opt) => {\n return opt.name === dimension;\n });\n\n return foundOption || null;\n }, [ dimensionList, dimension ]);\n\n const handleDimensionChange = useCallback((e) => {\n const column = e.target.value.name;\n setDimension(column);\n }, []);\n\n const handleVisualizationChange = useCallback((e) => {\n const value = e.target.value.value;\n\n setLimit((currentLimit) => {\n if (value === TEXT_VISUALIZATION_TYPE) {\n return null;\n }\n else if (!currentLimit) {\n return 10;\n }\n else {\n return currentLimit;\n }\n });\n\n setMetric((currentMetric) => {\n // Check that the current metric is valid for this\n // visualization type, otherwise set it to null.\n const newMetricOptions = getMetricOptions(fieldOptions, value);\n if (!findMetricOption(newMetricOptions, currentMetric)) {\n // Metric not available as an option anymore.\n return null;\n }\n else {\n // Metric is still valid; no changes.\n return currentMetric;\n }\n });\n\n setOrder(DIMENSION_ORDER);\n setVisualization(value);\n }, [fieldOptions]);\n\n const handleMetricChange = useCallback((e) => {\n const value = e.target.value.name;\n if (typeof value !== 'string') {\n throw new Error('handleMetricChange: Bad value for metric');\n }\n setMetric(value === NO_METRIC ? null : value);\n }, []);\n\n const handleOrderChange = useCallback((e) => {\n const value = e.target.value.value;\n setOrder(value);\n }, []);\n\n const handleLimitChange = useCallback((e) => {\n const value = e.target.value;\n setLimit(value);\n }, []);\n\n const handleOnChange = useCallback(() => {\n const sparkDimension = {\n ...selectedDimension,\n name: selectedDimension.name,\n channel: selectedDimension.channel,\n displayName: selectedDimension.displayName,\n dimensionVisualization: {\n visualization,\n metric: metric,\n orderBy: order,\n maxElementsShown: limit,\n },\n };\n\n let newSelectedColumns = selectedColumns;\n\n if (!Number.isFinite(selectedColumnIndex)) {\n newSelectedColumns = selectedColumns.concat([sparkDimension]);\n }\n else {\n if (selectedColumns.length < selectedColumnIndex) {\n console.warn(`Can not update column at index ${selectedColumnIndex} there are only ${selectedColumns.length} columns.`);\n }\n else {\n // Array.splice is in-place, so copy the array before.\n newSelectedColumns = [ ...selectedColumns ];\n newSelectedColumns.splice(selectedColumnIndex, 1, sparkDimension);\n }\n }\n\n onChange({\n target: {\n value: newSelectedColumns,\n }\n });\n }, [selectedColumns, onChange, selectedColumnIndex, limit, metric, order, visualization, selectedDimension]);\n\n const visualizationOptions = useMemo(() => getVisualizationOptions(translator), [ translator ]);\n const selectedVisualizationOption = useMemo(() => {\n return visualizationOptions.find((opt) => {\n return opt.value === visualization;\n });\n }, [ visualizationOptions, visualization ]);\n\n const metricOptions = useMemo(() => {\n return [\n {\n name: NO_METRIC,\n displayName: translator('none_literal'),\n isDummyGroup: true,\n entries: [{\n name: NO_METRIC,\n displayName: translator('bracket_none_literal'),\n }]\n }\n ].concat(getMetricOptions(fieldOptions, visualization));\n }, [fieldOptions, visualization, translator]);\n\n const selectedMetric = useMemo(() => {\n return findMetricOption(metricOptions, metric);\n }, [ metricOptions, metric ]);\n\n const orderOptions = useMemo(() => getOrderOptions(translator), [ translator ]);\n const selectedOrderOption = useMemo(() => {\n return orderOptions.find((opt) => {\n return opt.value === order;\n });\n }, [ orderOptions, order ]);\n\n const categoryPlaceholderText = translator('editors.filter.dropdown_placeholder', {value: translator('value_literal').toLowerCase()});\n const metricPlaceholderText = translator('editors.filter.dropdown_placeholder', {value: translator('value_literal').toLowerCase()});\n\n return (\n \n \n {translator('widget.spark_visualization.add_dimension_helper_text')}\n \n \n {translator('widget.spark_visualization.dimension')}\n \n \n \n \n \n {translator('widget.spark_visualization.visualization')}\n \n \n \n \n \n {translator('widget.spark_visualization.metric')}\n \n \n \n \n {metric && (\n {translator('widget.spark_visualization.order')}\n \n \n \n \n )}\n {usesLimit && (\n \n {translator('widget.spark_visualization.max_elements')}\n \n \n \n \n )}\n \n \n \n {limitNumberError}\n \n \n {configurationError && (\n \n \n {configurationError}\n \n \n )}\n \n \n {translator('apply_literal')}\n \n \n \n );\n};\n\nconst categoryValueMetricOptionsPropType = PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired\n })\n);\n// hello\nSparkDimensionColumnSelector.propTypes = {\n fieldOptions: PropTypes.shape({\n category_value: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.string.isRequired,\n })),\n category_value_metrics: PropTypes.exact({\n [BAR_VISUALIZATION_TYPE]: categoryValueMetricOptionsPropType.isRequired,\n [COLUMN_VISUALIZATION_TYPE]: categoryValueMetricOptionsPropType.isRequired,\n [TEXT_VISUALIZATION_TYPE]: categoryValueMetricOptionsPropType.isRequired,\n }),\n }).isRequired,\n selectedColumnIndex: PropTypes.number,\n selectedColumns: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.string.isRequired\n })),\n startingValue: PropTypes.shape({\n name: PropTypes.string,\n metric: PropTypes.string\n }),\n\n onChange: PropTypes.func.isRequired,\n};\n\nexport default SparkDimensionColumnSelector;\n","import React, { useMemo, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport omit from 'lodash/omit';\n\nimport { filterFields, filterGroupedFields } from 'Common/components/FieldBuilder/FieldBuilder';\nimport FieldBuilderTypeSelect, { flattenEntries, SEPARATOR_TYPE } from 'Common/components/FieldBuilderTypeSelect/FieldBuilderTypeSelect';\nimport MetricAndMetricSetOption from 'Common/components/ColumnControl/MetricAndMetricSetOption';\nimport mergeMetricAndMetricSet, { filterCombinedMetricAndMetricSets } from 'Common/components/ColumnControl/mergeMetricAndMetricSet';\nimport CommentListColumnSelector from './CommentListColumnSelector';\nimport MetricListColumnEditor from './MetricListColumnEditor';\nimport AttentionListColumnSelector from './AttentionListColumnSelector';\nimport { METRIC_LIST_TYPE } from \"Common/util/MetricListColumnConstants\";\nimport { useTranslator } from 'Common/hooks/useTranslation';\nimport { ATTENTION_LIST_TYPE, COMMENT_LIST_TYPE } from '../tableWidgetConstants';\nimport { BAR_VISUALIZATION_TYPE, COLUMN_VISUALIZATION_TYPE, TEXT_VISUALIZATION_TYPE } from 'Common/components/SparkVisualization/SparkDimensionConstants';\nimport SparkDimensionColumnSelector from 'Common/components/ColumnControl/SparkDimensionColumnSelector';\n\nconst METRIC = 'metric';\nconst CATEGORY_VALUE = 'category_value';\nconst METRIC_SET = 'metric_set';\n\n/**\n * This generates the list of available types and searchable fields.\n *\n * @returns {Object} Shape: {\n * primary {Array}: The primary menu items for the ADD_COLUMN menu,\n * searchable {Array}: The menu items when searching in the the ADD_COLUMN menu,\n * }\n*/\nfunction generateMenuOptions(translator, fieldOptions = {}, selectedFields = []) {\n let primaryMenuOptions = [];\n let searchableMenuOptions = [];\n\n const generateOptions = ({fields, searchFilter = filterFields, name, displayName}) => {\n const filteredFields = searchFilter(fields, selectedFields);\n\n searchableMenuOptions = searchableMenuOptions\n .concat(flattenEntries(filteredFields))\n .map((option) => {\n let displayType = '';\n if (option.fieldType === METRIC) {\n displayType = translator('metric_literal');\n }\n else if (option.fieldType === CATEGORY_VALUE) {\n displayType = translator('category_literal');\n }\n else if (option.fieldType === ATTENTION_LIST_TYPE) {\n displayType = translator('attention_list');\n }\n else if (option.fieldType === METRIC_LIST_TYPE) {\n displayType = translator('metric_list');\n }\n else if (option.fieldType === METRIC_SET) {\n displayType = translator('metric_set');\n }\n\n return { ...option, displayType };\n });\n\n primaryMenuOptions.push({\n name,\n displayName,\n disabled: filteredFields.length === 0,\n hasChildren: true,\n });\n };\n\n const generateSeparator = () => {\n const numberOfOptions = primaryMenuOptions.length;\n\n // Never start with a separator and never put two separators in a row\n if (numberOfOptions !== 0\n && primaryMenuOptions[numberOfOptions - 1].type !== SEPARATOR_TYPE)\n {\n primaryMenuOptions.push({\n type: SEPARATOR_TYPE,\n });\n }\n };\n\n generateOptions({\n fields: mergeMetricAndMetricSet(fieldOptions.metric || [], fieldOptions.metric_set || []),\n searchFilter: filterCombinedMetricAndMetricSets,\n name: METRIC,\n displayName: translator('metric_literal'),\n });\n\n if (fieldOptions.category_value) {\n generateOptions({\n fields: fieldOptions.category_value,\n searchFilter: filterGroupedFields,\n name: CATEGORY_VALUE,\n displayName: translator('category_literal'),\n });\n }\n\n generateSeparator();\n\n if (fieldOptions.attention_list) {\n generateOptions({\n fields: fieldOptions.attention_list,\n name: ATTENTION_LIST_TYPE,\n displayName: translator('attention_list'),\n });\n }\n\n if (fieldOptions.metric_list) {\n generateOptions({\n fields: fieldOptions.metric_list,\n searchFilter: (fields) => { return fields; },\n name: METRIC_LIST_TYPE,\n displayName: translator('metric_list')\n });\n }\n\n generateSeparator();\n\n if (fieldOptions.comment_list) {\n generateOptions({\n fields: fieldOptions.comment_list,\n name: COMMENT_LIST_TYPE,\n displayName: translator('comment')\n });\n }\n\n return {\n primary: primaryMenuOptions,\n searchable: searchableMenuOptions,\n };\n}\n\nconst categoryValueMetricOptionsPropType = PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired\n })\n);\n\nconst TableFieldsOption = ({\n fieldOptions,\n selectedColumns,\n onChange,\n transitionForward,\n initialMenuSelection\n}) => {\n const translator = useTranslator();\n\n // the different types of fields available\n // for column selection and their respective lists\n const menuOptions = useMemo(() => {\n return generateMenuOptions(translator, fieldOptions, selectedColumns);\n }, [fieldOptions, selectedColumns, translator]);\n\n const handleOnChange = useCallback((e) => {\n if (e.target.type === 'main' \n || e.target.value.fieldType === ATTENTION_LIST_TYPE \n || e.target.value.fieldType === METRIC_LIST_TYPE \n || e.target.value.fieldType === COMMENT_LIST_TYPE \n || e.target.value.fieldType === CATEGORY_VALUE) {\n // we keep the users selection highlighted if they end up traveling back here\n let menuSelection = e.target.value.name;\n let newControlOptions = null;\n\n if (menuSelection === METRIC) {\n newControlOptions = { control: MetricAndMetricSetOption, props: {}, title: translator('add_field_template', { field: translator('metric_literal')}) };\n }\n else if (e.target.type === 'search' && e.target.value.fieldType === CATEGORY_VALUE) {\n newControlOptions = { control: SparkDimensionColumnSelector, props: { startingValue: { metric: 'duration', name: e.target.value.name} }, title: translator('add_field_template', { field: translator('category_literal')}) };\n }\n else if (menuSelection === CATEGORY_VALUE) {\n newControlOptions = { control: SparkDimensionColumnSelector, props: { startingValue: { metric: 'duration' } }, title: translator('add_field_template', { field: translator('category_literal')}) };\n }\n else {\n // displayType was added so lets remove it\n const column = e.target.type === 'main' ? null : omit(e.target.value, 'displayType');\n\n if (menuSelection === ATTENTION_LIST_TYPE || column?.fieldType === ATTENTION_LIST_TYPE) {\n newControlOptions = { control: AttentionListColumnSelector, props: column ? { startingValue: column } : {}, title: translator('add_field_template', { field: translator('attention_list')}) };\n }\n else if (menuSelection === METRIC_LIST_TYPE || column?.fieldType === METRIC_LIST_TYPE) {\n newControlOptions = { control: MetricListColumnEditor, props: column ? { startingValue: { initialValue: omit(column, 'name') } } : {}, title: translator('add_field_template', { field: translator('metric_list')}) };\n }\n else if (menuSelection === COMMENT_LIST_TYPE || column?.fieldType === COMMENT_LIST_TYPE) {\n newControlOptions = { control: CommentListColumnSelector, props: column ? { startingValue: column } : {}, title: translator('add_field_template', { field: translator('comment')}) };\n }\n }\n\n if (newControlOptions) {\n transitionForward(\n newControlOptions,\n { control: TableFieldsOption, props: { initialMenuSelection: menuSelection }, title: translator('add_column_literal') }\n );\n }\n }\n else {\n const column = e.target.value;\n if (column.fieldType === METRIC_SET) {\n const newColumns = column.columns;\n let updatedColumns = [ ...selectedColumns ];\n\n let selectedColumnsByName = selectedColumns.reduce((byName, col) => {\n byName[col.name] = col;\n return byName;\n }, []);\n\n // for every column in the new metric set, check if it already exists in the table.\n // If not, concat the new column onto the array\n\n newColumns.forEach(newColumn => {\n if (!selectedColumnsByName[newColumn.name]) {\n updatedColumns.push(newColumn);\n }\n });\n\n onChange({\n target: {\n value: updatedColumns,\n }\n });\n }\n else {\n // displayType was added so lets remove it\n const modifiedColumn = omit(column, 'displayType');\n onChange({\n target: {\n value: selectedColumns.concat([modifiedColumn]),\n }\n });\n }\n }\n }, [onChange, transitionForward, selectedColumns, translator]);\n\n return (\n );\n};\n\nTableFieldsOption.propTypes = {\n fieldOptions: PropTypes.shape({\n metric: PropTypes.arrayOf(\n PropTypes.shape({\n entries: PropTypes.arrayOf(\n PropTypes.shape({\n fieldType: PropTypes.string,\n }),\n ).isRequired,\n }),\n ).isRequired,\n metric_set: PropTypes.arrayOf(\n PropTypes.shape({\n entries: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n channel: PropTypes.string.isRequired,\n fieldType: PropTypes.string.isRequired,\n }),\n ).isRequired,\n }),\n ).isRequired,\n category_value: PropTypes.arrayOf(\n PropTypes.shape({\n entries: PropTypes.arrayOf(\n PropTypes.shape({\n fieldType: PropTypes.string,\n }),\n ).isRequired,\n }),\n ),\n category_value_metrics: PropTypes.exact({\n [BAR_VISUALIZATION_TYPE]: categoryValueMetricOptionsPropType.isRequired,\n [COLUMN_VISUALIZATION_TYPE]: categoryValueMetricOptionsPropType.isRequired,\n [TEXT_VISUALIZATION_TYPE]: categoryValueMetricOptionsPropType.isRequired,\n }),\n attention_list: PropTypes.arrayOf(\n PropTypes.shape({\n fieldType: PropTypes.string,\n }),\n ),\n metric_list: PropTypes.arrayOf(\n PropTypes.shape({\n entries: PropTypes.arrayOf(\n PropTypes.shape({\n fieldType: PropTypes.string.isRequired,\n }),\n ).isRequired,\n }),\n ),\n comment_list: PropTypes.arrayOf(\n PropTypes.shape({\n fieldType: PropTypes.string,\n }),\n ),\n }).isRequired,\n initialMenuSelection: PropTypes.string,\n selectedColumns: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n channel: PropTypes.string.isRequired,\n fieldType: PropTypes.string.isRequired,\n }),\n ).isRequired,\n onChange: PropTypes.func.isRequired,\n transitionForward: PropTypes.func.isRequired,\n};\n\nexport default TableFieldsOption;\n","import React, { Fragment, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport ListButton from 'Common/components/ListButton';\nimport DraggableFieldItem from './DraggableFieldItem';\nimport DraggableListWithTrashCan from 'Common/components/DraggableList/DraggableListWithTrashCan';\nimport Button from 'Common/components/Button';\n\nimport TableFieldsOption from './TableFieldsOption';\nimport MetricAndMetricSetOption from 'Common/components/ColumnControl/MetricAndMetricSetOption';\nimport CommentListColumnSelector from './CommentListColumnSelector';\nimport MetricListColumnEditor from './MetricListColumnEditor';\nimport AttentionListColumnSelector from './AttentionListColumnSelector';\nimport SparkDimensionColumnSelector from 'Common/components/ColumnControl/SparkDimensionColumnSelector';\nimport { METRIC_LIST_TYPE, SHOW_AS_BAR_CHART, SHOW_WITH_HEAT_MAP_INDICATORS } from \"Common/util/MetricListColumnConstants\";\nimport { useTranslator } from 'Common/hooks/useTranslation';\nimport { Body5 } from 'Common/components/typography';\nimport { ATTENTION_LIST_TYPE, COMMENT_LIST_TYPE } from '../tableWidgetConstants';\nimport {\n BAR_VISUALIZATION_TYPE,\n COLUMN_VISUALIZATION_TYPE,\n DIMENSION_ORDER,\n TEXT_VISUALIZATION_TYPE,\n VALUE_ORDER\n} from 'Common/components/SparkVisualization/SparkDimensionConstants';\n\nconst METRIC = 'metric';\nconst CATEGORY_VALUE = 'category_value';\n\nconst AddButtonContainer = styled.div`\n padding: 0 4px;\n padding-bottom: 4px;\n border-bottom: 1px solid ${({theme}) => theme.colors.palette.grey.silver };\n`;\n\nconst ButtonContainer = styled.div`\n box-sizing: border-box;\n min-height: 44px;\n min-width: 44px;\n display: flex;\n align-items: center;\n flex: 0 0 auto;\n padding-right: 11px;\n`;\n\nconst ApplyContainer = styled(ButtonContainer)`\n justify-content: flex-end;\n flex: 0 0 auto;\n`;\n\nconst ValidationContainer = styled.div`\n justify-content: flex-end;\n flex: 0 0 auto;\n padding: 0 10px;\n`;\n\nconst ValidationText = styled(Body5)`\n color: ${({theme}) => theme.colors.palette.error.red };\n`;\n\n// Used to handle reordering the drag/drop values\nfunction reorder(list, startIndex, endIndex) {\n const result = Array.from(list);\n const [removed] = result.splice(startIndex, 1);\n result.splice(endIndex, 0, removed);\n\n return result;\n}\n\n// Create secondary text from a field based on its type and or configuration\nfunction getSecondaryTextFromField(translator, item, fieldOptions) {\n if (item.fieldType === METRIC) {\n return translator('metric_literal');\n }\n else if (item.fieldType === CATEGORY_VALUE) {\n const fieldTypeDisplayName = translator('category_literal');\n\n let visualizationDisplayName;\n if (item.dimensionVisualization.visualization === BAR_VISUALIZATION_TYPE) {\n visualizationDisplayName = translator('widget.spark_visualization.dimension_visualization_options.visualization.bar');\n }\n else if (item.dimensionVisualization.visualization === COLUMN_VISUALIZATION_TYPE) {\n visualizationDisplayName = translator('widget.spark_visualization.dimension_visualization_options.visualization.column');\n }\n else if (item.dimensionVisualization.visualization === TEXT_VISUALIZATION_TYPE) {\n visualizationDisplayName = translator('widget.spark_visualization.dimension_visualization_options.visualization.text');\n }\n\n let orderDisplayName;\n if (item.dimensionVisualization.orderBy === VALUE_ORDER) {\n orderDisplayName = translator('widget.spark_visualization.dimension_visualization_options.order_by.by_value');\n }\n else if (item.dimensionVisualization.orderBy === DIMENSION_ORDER) {\n orderDisplayName = translator('widget.spark_visualization.dimension_visualization_options.order_by.by_dimension');\n }\n\n let metricDisplayName = translator('unknown_field_literal');\n fieldOptions.category_value_metrics[item.dimensionVisualization.visualization].find(({ entries }) => {\n const foundEntry = entries.find(col => col.name === item.dimensionVisualization.metric);\n if (foundEntry) {\n metricDisplayName = foundEntry.displayName;\n }\n return foundEntry;\n });\n\n let secondaryText = `${fieldTypeDisplayName}; ${visualizationDisplayName}`;\n\n if (item.dimensionVisualization.metric) {\n secondaryText += `; ${metricDisplayName}; ${orderDisplayName}`;\n }\n\n if (item.dimensionVisualization.maxElementsShown) {\n secondaryText += `; ${item.dimensionVisualization.maxElementsShown} ${translator('items_literal')}`;\n }\n \n return secondaryText;\n }\n else if (item.fieldType === ATTENTION_LIST_TYPE) {\n return `${translator('attention_list')}; ${item?.attentionList?.limit || 0} ${translator('items_literal')}`;\n }\n else if (item.fieldType === METRIC_LIST_TYPE) {\n const metrics = item.columns.map(({ displayName }) => (displayName)).join(', ') || '';\n \n let displayAs = translator('widget.table.column_control.as_text');\n if (item.showAs === SHOW_AS_BAR_CHART) {\n displayAs = translator('widget.table.column_control.as_bar_chart');\n }\n else if (item.showAs === SHOW_WITH_HEAT_MAP_INDICATORS) {\n displayAs = translator('widget.table.column_control.as_heat_map_indicator');\n }\n\n return `${translator('metric_list')}; ${metrics}; ${displayAs}`;\n }\n else if (item.fieldType === COMMENT_LIST_TYPE) {\n const displayAs = item.commentList.includeAllComments\n ? translator('widget.table.column_control.all_for_time_peroid')\n : translator('widget.table.column_control.only_for_directly_linked');\n return `${displayAs}`;\n }\n else {\n return '';\n }\n}\n\n/**\n * This component is one of the options traveled to by TableColumnControl.\n * It's the start, allowing the user to add/update/remove fields.\n */\n\nconst TableSelectedFieldsOption = ({\n selectedColumns,\n fieldOptions,\n isValid,\n validation,\n isDirty,\n onChange,\n onApply,\n transitionForward,\n}) => {\n const translator = useTranslator();\n\n const handleAddField = useCallback((e) => {\n transitionForward(\n { control: TableFieldsOption, props: {}, title: translator('add_column_literal') }\n );\n }, [transitionForward, translator]);\n\n const onDragEnd = useCallback((result) => {\n const newValue = reorder(\n selectedColumns,\n result.source.index,\n result.destination.index\n );\n\n onChange({\n target: {\n value: newValue\n }\n });\n }, [selectedColumns, onChange]);\n\n const onDelete = useCallback((result) => {\n const newValue = selectedColumns.filter((item) => {\n return item.name !== result.id;\n });\n\n onChange({\n target: {\n value: newValue\n }\n });\n }, [selectedColumns, onChange]);\n\n const handleUpdateFields = useCallback((e) => {\n const columnIndex = selectedColumns.findIndex((col) => (col.name === e.target.value));\n\n if (columnIndex < 0) {\n console.warn(`Can not find column ${e.target.value}`);\n return;\n }\n\n const columnFieldType = selectedColumns[columnIndex].fieldType;\n\n if (columnFieldType === METRIC) {\n transitionForward(\n { control: MetricAndMetricSetOption, props: { selectedColumnIndex: columnIndex }, title: translator('edit_field_template', { field: translator('metric_literal')}) }\n );\n }\n else if (columnFieldType === CATEGORY_VALUE) {\n transitionForward(\n { control: SparkDimensionColumnSelector, props: { selectedColumnIndex: columnIndex }, title: translator('edit_field_template', { field: translator('category_literal')}) }\n );\n }\n else if (columnFieldType === ATTENTION_LIST_TYPE) {\n transitionForward(\n { control: AttentionListColumnSelector, props: { selectedColumnIndex: columnIndex }, title: translator('edit_field_template', { field: translator('attention_list')}) }\n );\n }\n else if (columnFieldType === METRIC_LIST_TYPE) {\n transitionForward(\n { control: MetricListColumnEditor, props: { selectedColumnIndex: columnIndex }, title: translator('edit_field_template', { field: translator('metric_list')}) }\n );\n }\n else if (columnFieldType === COMMENT_LIST_TYPE) {\n transitionForward(\n { control: CommentListColumnSelector, props: { selectedColumnIndex: columnIndex }, title: translator('edit_field_template', { field: translator('comment')}) }\n );\n }\n\n }, [selectedColumns, transitionForward, translator]);\n\n return (\n \n \n \n {translator('add_column_literal')}\n \n \n \n {selectedColumns.map((item) => {\n return (\n \n );\n })}\n \n {validation && (\n \n \n {validation}\n \n \n )}\n \n \n {translator('apply_literal')}\n \n \n \n );\n};\n\nTableSelectedFieldsOption.propTypes = {\n selectedColumns: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n channel: PropTypes.string.isRequired,\n displayName: PropTypes.string.isRequired,\n fieldType: PropTypes.string.isRequired,\n showAs: PropTypes.string,\n columns: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n channel: PropTypes.string.isRequired,\n displayName: PropTypes.string.isRequired,\n })\n ),\n attentionList: PropTypes.shape({\n limit: PropTypes.number,\n }),\n commentList: PropTypes.shape({\n includeAllComments: PropTypes.bool,\n })\n }),\n ).isRequired,\n fieldOptions: PropTypes.shape({\n metric_set: PropTypes.arrayOf(\n PropTypes.shape({\n entries: PropTypes.arrayOf(\n PropTypes.shape({\n metric_set: PropTypes.string.isRequired,\n columns: PropTypes.arrayOf(\n PropTypes.shape({\n displayName: PropTypes.string.isRequired,\n }).isRequired\n ).isRequired\n }).isRequired\n ).isRequired,\n }),\n ).isRequired,\n }).isRequired,\n isValid: PropTypes.bool.isRequired,\n validation: PropTypes.string,\n isDirty: PropTypes.bool.isRequired,\n onApply: PropTypes.func.isRequired,\n onChange: PropTypes.func.isRequired,\n transitionForward: PropTypes.func.isRequired,\n};\n\nexport default TableSelectedFieldsOption;\n","import {useState, useCallback} from 'react';\n\n/**\n * This hook holds a stack of objects and returns the last item on the stack.\n * It allows the user to pop items off the stack to show the previous item,\n * and to add items to the stack to show a new one. The user can provide\n * updates for the current item on push as well, so the stack has the most\n * up-to-date info.\n *\n */\nexport default function useStackHistory(initialItem) {\n\n const [ historyStack, setHistoryStack ] = useState([initialItem]);\n\n const push = useCallback((newItem, currentItem) => {\n setHistoryStack(currHistoryStack => {\n let newStack = currHistoryStack.concat([]);\n if (currentItem) {\n // remove current item so it can be updated\n newStack.pop();\n // update current item\n newStack.push(currentItem);\n }\n\n // add new item\n if (newItem) {\n newStack.push(newItem);\n }\n\n return newStack;\n });\n }, []);\n\n const clear = useCallback(() => {\n setHistoryStack([initialItem]);\n }, [initialItem]);\n\n const pop = useCallback(() => {\n setHistoryStack(currHistoryStack => {\n if (currHistoryStack.length > 1) {\n let k = currHistoryStack.slice(0, currHistoryStack.length - 1);\n return k;\n }\n else {\n return [initialItem];\n }\n });\n }, [initialItem]);\n\n return { current: historyStack[historyStack.length -1], canPop: historyStack.length > 1, push, pop, clear };\n}\n","import { useCallback, useMemo, useState } from 'react';\n\nfunction useDialogState() {\n const [ isInvalidDialogVisible, setIsInvalidDialogVisible ] = useState(false);\n\n const showInvalidDialog = useCallback(() => {\n setIsInvalidDialogVisible(true);\n }, []);\n\n const hideInvalidDialog = useCallback(() => {\n setIsInvalidDialogVisible(false);\n }, []);\n\n return {\n isInvalidDialogVisible,\n showInvalidDialog,\n hideInvalidDialog,\n };\n}\n\nconst defaultDetectChanges = (initialValue, value) => initialValue !== value;\n\n/**\n * A hook for managing state of a live control that requires validation.\n *\n * Internally, the hook stores a \"modified\" value (set by calling the returned\n * `setValue` function), and runs that though the provided `validate` function.\n * If `validate` returns any truthy value, then the modified value is considered\n * invalid.\n *\n * `apply` Should be called when the `value` is to be applied/saved. When called:\n * - If the current value is valid: `onChange` will be called, the internal\n * state will be reset, and `apply` will return true to indicate success.\n * - If the current value is invalid: `apply` will return false and\n * `isInvalidDialogVisible` will be set to true.\n *\n * `reset` can be called to cancel any changes and return to the initial state.\n *\n * An optional `detectChanges` function can be provided for custom checking of\n * changes between the initial and modified value.\n *\n * @param {{\n * initialValue,\n * validate: function(value) : * | null,\n * onChange: function(value),\n * detectChanges?: function(initialValue, value) : bool\n * }} params\n * @returns {{\n * value: *,\n * setValue: function(value),\n * isDirty: boolean,\n * isValid: boolean,\n * reset: function(),\n * validationErrors: * | null,\n * apply: function() : boolean,\n * isInvalidDialogVisible: boolean,\n * hideInvalidDialog: function(),\n * }}\n */\nexport default function useValidationState({\n initialValue,\n validate,\n onChange,\n detectChanges = defaultDetectChanges,\n}) {\n const [ modifiedValue, setModifiedValue ] = useState(null);\n\n const {\n isInvalidDialogVisible,\n showInvalidDialog,\n hideInvalidDialog,\n } = useDialogState();\n\n // Let the internal value follow initialValue until the user makes changes.\n const value = modifiedValue === null ? initialValue : modifiedValue;\n\n const isDirty = useMemo(() => {\n return detectChanges(initialValue, value);\n }, [ detectChanges, initialValue, value ]);\n\n const reset = useCallback(() => {\n setModifiedValue(null);\n hideInvalidDialog();\n }, [ hideInvalidDialog ]);\n\n const validationErrors = useMemo(() => {\n return validate(value);\n }, [ validate, value ]);\n\n const isValid = !validationErrors;\n\n const apply = useCallback(() => {\n if (!isValid) {\n showInvalidDialog();\n return false;\n }\n\n setModifiedValue(null);\n hideInvalidDialog();\n\n if (isDirty) {\n onChange(value);\n }\n\n return true;\n }, [ isValid, isDirty, setModifiedValue, showInvalidDialog, hideInvalidDialog, onChange, value ]);\n\n return {\n value: value,\n setValue: setModifiedValue,\n isDirty: isDirty,\n isValid: isValid,\n reset: reset,\n validationErrors: validationErrors,\n apply: apply,\n isInvalidDialogVisible,\n hideInvalidDialog,\n };\n}\n","import Button from 'Common/components/Button';\nimport ModalWindow from 'Common/components/ModalWindow/ModalWindow';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslator } from 'Common/hooks/useTranslation';\n\nexport default function InvalidLiveControlDialog({\n title,\n content,\n onContinue,\n onCancel,\n}) {\n const translator = useTranslator();\n const cancelText = translator('control.common.invalid_changes_popup.cancel');\n const continueText = translator('control.common.invalid_changes_popup.continue');\n\n return (\n \n {cancelText}\n ,\n \n {continueText}\n \n ]}\n >\n
    \n {content}\n
    \n \n );\n}\n\nInvalidLiveControlDialog.propTypes = {\n title: PropTypes.string.isRequired,\n content: PropTypes.node.isRequired,\n onContinue: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired,\n};\n","import React, {\n useCallback,\n useImperativeHandle,\n forwardRef,\n createElement,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport TableSelectedFieldsOption from './TableSelectedFieldsOption';\nimport LiveControlDropdownHeader from 'Common/components/LiveControlBar/LiveControlDropdownHeader';\nimport LiveControlDropdownLayout from 'Common/components/LiveControlBar/LiveControlDropdownLayout';\nimport useStackHistory from 'Common/hooks/useStackHistory';\nimport { METRIC_LIST_TYPE } from 'Common/util/MetricListColumnConstants';\nimport Filters from 'Common/types/Filters/Filters';\nimport useValidationState from 'Common/components/LiveControlBar/useValidationState';\nimport InvalidLiveControlDialog from 'Common/components/LiveControlBar/InvalidLiveControlDialog';\nimport useTranslation, { useTranslator } from 'Common/hooks/useTranslation';\nimport { ATTENTION_LIST_TYPE, COMMENT_LIST_TYPE, DIMENSION_TYPE } from '../tableWidgetConstants';\nimport isEqual from 'lodash/isEqual';\n\nconst Root = styled.div`\n box-sizing: border-box;\n width: 275px;\n display: flex;\n flex-direction: column;\n min-height: 1px;\n`;\n\n// compares columns to see if they are the same\nfunction detectChanges (initialColumns, updatedColumns) {\n if (initialColumns.length !== updatedColumns.length) {\n return true;\n }\n\n return !initialColumns.every((column, index) => {\n const updatedColumn = updatedColumns[index];\n let isSameColumn = column.name === updatedColumn?.name &&\n column.channel === updatedColumn?.channel;\n\n if (column.fieldType === ATTENTION_LIST_TYPE && isSameColumn) {\n return column.attentionList.limit === updatedColumn.attentionList.limit;\n }\n else if (column.fieldType === COMMENT_LIST_TYPE && isSameColumn) {\n return column.commentList.includeAllComments === updatedColumn.commentList.includeAllComments;\n }\n else if (column.fieldType === METRIC_LIST_TYPE && isSameColumn) {\n return (column.showAs === updatedColumn.showAs)\n && (column.displayName === updatedColumn.displayName)\n && (!detectChanges(column.columns, updatedColumn.columns));\n }\n else if (column.fieldType === DIMENSION_TYPE && isSameColumn) {\n return isEqual(column.dimensionVisualization, updatedColumn.dimensionVisualization);\n }\n else {\n return isSameColumn;\n }\n });\n}\n\n/**\n * This component is used by table to select which columns will be shown in the table.\n *\n */\nconst TableColumnControl = forwardRef((props, ref) => {\n const {\n defaultTitle,\n fieldOptions,\n icon,\n selectedColumns: initialSelectedColumns,\n goBack,\n onChange,\n filterValue,\n maxNumColumns,\n } = props;\n\n const translator = useTranslator();\n\n const validate = useCallback((value) => {\n if (value.length > maxNumColumns) {\n return translator('control.column.too_many_columns_template', { max: maxNumColumns });\n }\n else {\n return null;\n }\n }, [ translator, maxNumColumns ]);\n\n const handleChange = useCallback((value) => {\n onChange({\n target: {\n value: value,\n },\n });\n }, [ onChange ]);\n\n const {\n value,\n setValue,\n isDirty,\n isValid,\n validationErrors,\n apply,\n reset,\n isInvalidDialogVisible,\n hideInvalidDialog,\n } = useValidationState({\n initialValue: initialSelectedColumns,\n validate,\n detectChanges: detectChanges,\n onChange: handleChange,\n });\n\n useImperativeHandle(ref, () => ({\n onClose: () => {\n const isApplySuccess = apply();\n return isApplySuccess;\n },\n }), [ apply ]);\n\n // handles navigation between different controls\n const {\n current: currentProps,\n canPop: internalCanGoBack,\n push: transitionForward,\n pop: internalGoBack,\n clear,\n } = useStackHistory({ control: TableSelectedFieldsOption, props: {}, title: defaultTitle });\n\n const handleOnColumnsChange = useCallback((event) => {\n setValue(event.target.value);\n clear();\n }, [ clear, setValue ]);\n\n const title = currentProps.title || defaultTitle;\n\n // a go back link can also come from\n // parent not just the history stack\n const canGoBack = !!goBack;\n\n const headerGoBack = internalCanGoBack\n ? internalGoBack\n : canGoBack ? goBack : null;\n\n // this handles what happens when the user selects\n // the go back link\n const handleHeaderGoBack = useCallback(() => {\n if (headerGoBack) {\n headerGoBack();\n }\n }, [headerGoBack]);\n\n const header = (\n \n );\n\n const invalidChangesPopupTitleLiteral = useTranslation('control.column.invalid_changes_popup.title');\n const invalidChangesPopupMessageLiteral = useTranslation('control.column.invalid_changes_popup.message');\n\n const handleInvalidDialogCancel = useCallback(() => {\n // Reset the validation state.\n reset();\n // Trigger a change with the initial value to indicate the user has\n // completed completed making changes to this control.\n handleChange(initialSelectedColumns);\n }, [ reset, handleChange, initialSelectedColumns ]);\n\n const body = (\n \n {createElement(currentProps.control, {\n ...(currentProps.props || {}),\n maxNumColumns,\n fieldOptions,\n filterValue,\n selectedColumns: value,\n isValid,\n validation: validationErrors,\n isDirty,\n title,\n transitionForward,\n transitionBackward: internalGoBack,\n onChange: handleOnColumnsChange,\n onApply: apply,\n })}\n {isInvalidDialogVisible && (\n \n )}\n \n );\n\n return (\n \n );\n});\n\nTableColumnControl.propTypes = {\n fieldOptions: PropTypes.object.isRequired,\n selectedColumns: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n channel: PropTypes.string.isRequired,\n fieldType: PropTypes.string.isRequired,\n attentionList: PropTypes.shape({\n limit: PropTypes.number.isRequired\n }),\n commentList: PropTypes.shape({\n includeAllComments: PropTypes.bool.isRequired\n }),\n displayName: PropTypes.string,\n showAs: PropTypes.string,\n columns: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n channel: PropTypes.string.isRequired,\n })\n )\n })\n ).isRequired,\n maxNumColumns: PropTypes.number,\n icon: PropTypes.node.isRequired,\n defaultTitle: PropTypes.string.isRequired,\n\n filterValue: Filters.propType,\n\n onChange: PropTypes.func.isRequired,\n goBack: PropTypes.func,\n\n};\n\nTableColumnControl.displayName = 'TableColumnControl';\n\nTableColumnControl.defaultProps = {\n maxNumColumns: Infinity,\n};\n\nexport default TableColumnControl;\n","import TableColumnControl from './TableColumnControl';\n\nexport default TableColumnControl;\n","\nexport const channel_schema = {\n 'calendar_day': {\n 'display_name': 'calendar_day_channel_literal',\n 'name': 'calendar_day',\n 'projecting_base': 'production_metric'\n },\n 'diagnostic': {\n 'annotations': {\n 'message': {\n 'display_name': 'term.message.name',\n 'help_text': 'term.message.short',\n 'name': 'message',\n 'rollup': true,\n 'scoreboard_name': 'term.message.scoreboard_name'\n }\n },\n 'category_values': {\n 'diagnostic_event_type': {\n 'category': 'diagnostic_event_type',\n 'display_name': 'term.diagnostic_event_type.name',\n 'help_text': 'term.diagnostic_event_type.short',\n 'indexed': true,\n 'indexed_with': [\n 'record_order'\n ],\n 'name': 'diagnostic_event_type',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.diagnostic_event_type.scoreboard_name'\n },\n 'error_category': {\n 'category': 'error_category',\n 'display_name': 'term.error_category.name',\n 'help_text': 'term.error_category.short',\n 'indexed': true,\n 'indexed_with': [\n 'record_order'\n ],\n 'name': 'error_category',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.error_category.scoreboard_name'\n }\n },\n 'display_name': 'diagnostic_channel_literal',\n 'fragmenting_parent': 'production_metric',\n 'metrics': {\n 'diagnostic_event_id': {\n 'classification': 'miscellaneous',\n 'display_name': 'term.diagnostic_event_id.name',\n 'help_text': 'term.diagnostic_event_id.short',\n 'name': 'diagnostic_event_id',\n 'rollup': true,\n 'scoreboard_name': 'term.diagnostic_event_id.scoreboard_name',\n 'type': 'uint64'\n },\n 'event_id': {\n 'display_name': 'term.event_id.name',\n 'help_text': 'term.event_id.short',\n 'indexed': true,\n 'internal': true,\n 'name': 'event_id',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.event_id.scoreboard_name',\n 'type': 'id'\n },\n 'production_day_number': {\n 'aggregation': 'none',\n 'display_name': 'term.production_day_number.name',\n 'help_text': 'term.production_day_number.short',\n 'internal': true,\n 'name': 'production_day_number',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.production_day_number.scoreboard_name',\n 'type': 'uint64'\n },\n 'production_metric_parent_event_id': {\n 'display_name': 'term.production_metric_parent_event_id.name',\n 'help_text': 'term.production_metric_parent_event_id.short',\n 'name': 'production_metric_parent_event_id',\n 'persist': true,\n 'reference': true,\n 'rollup': true,\n 'scoreboard_name': 'term.production_metric_parent_event_id.scoreboard_name',\n 'type': 'id'\n },\n 'record_id': {\n 'aggregation': 'max',\n 'display_name': 'term.record_id.name',\n 'help_text': 'term.record_id.short',\n 'name': 'record_id',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.record_id.scoreboard_name',\n 'type': 'id'\n },\n 'record_order': {\n 'aggregation': 'min',\n 'display_name': 'term.record_order.name',\n 'help_text': 'term.record_order.short',\n 'indexed': true,\n 'internal': true,\n 'name': 'record_order',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.record_order.scoreboard_name',\n 'type': 'id'\n },\n 'slice_order': {\n 'display_name': 'term.slice_order.name',\n 'help_text': 'term.slice_order.short',\n 'indexed': true,\n 'internal': true,\n 'name': 'slice_order',\n 'persist': true,\n 'reference': true,\n 'rollup': true,\n 'scoreboard_name': 'term.slice_order.scoreboard_name',\n 'type': 'id'\n },\n 'sync_id': {\n 'aggregation': 'sync_id',\n 'display_name': 'term.sync_id.name',\n 'help_text': 'term.sync_id.short',\n 'indexed': true,\n 'internal': true,\n 'name': 'sync_id',\n 'rollup': true,\n 'scoreboard_name': 'term.sync_id.scoreboard_name',\n 'type': 'id'\n },\n 'time': {\n 'classification': 'miscellaneous',\n 'display_name': 'term.time.name',\n 'help_text': 'term.time.short',\n 'name': 'time',\n 'rollup': true,\n 'scoreboard_name': 'term.time.scoreboard_name',\n 'type': 'date_time'\n }\n },\n 'name': 'diagnostic',\n 'primary_key': 'record_id'\n },\n 'hour': {\n 'display_name': 'hour_channel_literal',\n 'name': 'hour',\n 'projecting_base': 'production_metric',\n 'protected': true\n },\n 'job': {\n 'display_name': 'job_channel_literal',\n 'name': 'job',\n 'projecting_base': 'production_metric'\n },\n 'month': {\n 'display_name': 'month_channel_literal',\n 'name': 'month',\n 'projecting_base': 'production_metric',\n 'protected': true\n },\n 'ordinal_shift': {\n 'display_name': 'ordinal_shift_channel_literal',\n 'name': 'ordinal_shift',\n 'projecting_base': 'production_metric',\n 'protected': true\n },\n 'part': {\n 'display_name': 'part_channel_literal',\n 'name': 'part',\n 'projecting_base': 'production_metric'\n },\n 'process_state': {\n 'display_name': 'process_state_channel_literal',\n 'name': 'process_state',\n 'projecting_base': 'production_metric',\n 'protected': true\n },\n 'production_day': {\n 'display_name': 'production_day_channel_literal',\n 'name': 'production_day',\n 'projecting_base': 'production_metric',\n 'protected': true\n },\n 'production_metric': {\n 'annotations': {\n 'job_display_name': {\n 'display_name': 'term.job_display_name.name',\n 'help_text': 'term.job_display_name.short',\n 'name': 'job_display_name',\n 'scoreboard_name': 'term.job_display_name.scoreboard_name'\n },\n 'part_display_name': {\n 'display_name': 'term.part_display_name.name',\n 'help_text': 'term.part_display_name.short',\n 'name': 'part_display_name',\n 'scoreboard_name': 'term.part_display_name.scoreboard_name'\n },\n 'process_state_reason_display_name': {\n 'display_name': 'term.process_state_reason_display_name.name',\n 'help_text': 'term.process_state_reason_display_name.short',\n 'name': 'process_state_reason_display_name',\n 'scoreboard_name': 'term.process_state_reason_display_name.scoreboard_name'\n },\n 'shift_display_name': {\n 'display_name': 'term.shift_display_name.name',\n 'help_text': 'term.shift_display_name.short',\n 'name': 'shift_display_name',\n 'scoreboard_name': 'term.shift_display_name.scoreboard_name'\n },\n 'team_display_name': {\n 'display_name': 'term.team_display_name.name',\n 'help_text': 'term.team_display_name.short',\n 'name': 'team_display_name',\n 'scoreboard_name': 'term.team_display_name.scoreboard_name'\n }\n },\n 'category_values': {\n 'calendar_day': {\n 'category': 'calendar_day',\n 'display_name': 'term.calendar_day.name',\n 'help_text': 'term.calendar_day.short',\n 'indexed': true,\n 'indexed_with': [\n 'record_order'\n ],\n 'name': 'calendar_day',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.calendar_day.scoreboard_name'\n },\n 'hour': {\n 'category': 'hour',\n 'display_name': 'term.hour.name',\n 'help_text': 'term.hour.short',\n 'indexed': true,\n 'indexed_with': [\n 'record_order'\n ],\n 'name': 'hour',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.hour.scoreboard_name'\n },\n 'information_source': {\n 'category': 'information_source',\n 'display_name': 'term.information_source.name',\n 'help_text': 'term.information_source.short',\n 'indexed': true,\n 'indexed_with': [\n 'record_order'\n ],\n 'name': 'information_source',\n 'persist': true,\n 'projecting_source': 'process_state',\n 'rollup': true,\n 'scoreboard_name': 'term.information_source.scoreboard_name'\n },\n 'job': {\n 'category': 'job',\n 'display_name': 'term.job.name',\n 'help_text': 'term.job.short',\n 'indexed': true,\n 'indexed_with': [\n 'record_order'\n ],\n 'name': 'job',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.job.scoreboard_name'\n },\n 'month': {\n 'category': 'month',\n 'display_name': 'term.month.name',\n 'help_text': 'term.month.short',\n 'indexed': true,\n 'indexed_with': [\n 'record_order'\n ],\n 'name': 'month',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.month.scoreboard_name'\n },\n 'ordinal_shift': {\n 'category': 'ordinal_shift',\n 'display_name': 'term.ordinal_shift.name',\n 'help_text': 'term.ordinal_shift.short',\n 'indexed': true,\n 'indexed_with': [\n 'record_order'\n ],\n 'name': 'ordinal_shift',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.ordinal_shift.scoreboard_name'\n },\n 'part': {\n 'category': 'part',\n 'display_name': 'term.part.name',\n 'help_text': 'term.part.short',\n 'indexed': true,\n 'indexed_with': [\n 'record_order'\n ],\n 'name': 'part',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.part.scoreboard_name'\n },\n 'performance_impact': {\n 'category': 'performance_impact',\n 'display_name': 'term.performance_impact.name',\n 'help_text': 'term.performance_impact.short',\n 'indexed': true,\n 'indexed_with': [\n 'record_order'\n ],\n 'name': 'performance_impact',\n 'persist': true,\n 'projecting_source': 'process_state',\n 'rollup': true,\n 'scoreboard_name': 'term.performance_impact.scoreboard_name'\n },\n 'process_state': {\n 'category': 'process_state',\n 'display_name': 'term.process_state.name',\n 'help_text': 'term.process_state.short',\n 'indexed': true,\n 'indexed_with': [\n 'record_order'\n ],\n 'name': 'process_state',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.process_state.scoreboard_name'\n },\n 'process_state_reason': {\n 'category': 'process_state_reason',\n 'display_name': 'term.process_state_reason.name',\n 'help_text': 'term.process_state_reason.short',\n 'indexed': true,\n 'indexed_with': [\n 'record_order'\n ],\n 'name': 'process_state_reason',\n 'persist': true,\n 'projecting_source': 'process_state',\n 'rollup': true,\n 'scoreboard_name': 'term.process_state_reason.scoreboard_name'\n },\n 'production_day': {\n 'category': 'production_day',\n 'display_name': 'term.production_day.name',\n 'help_text': 'term.production_day.short',\n 'indexed': true,\n 'indexed_with': [\n 'record_order'\n ],\n 'name': 'production_day',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.production_day.scoreboard_name'\n },\n 'production_phase': {\n 'category': 'production_phase',\n 'display_name': 'term.production_phase.name',\n 'help_text': 'term.production_phase.short',\n 'indexed': true,\n 'indexed_with': [\n 'record_order'\n ],\n 'name': 'production_phase',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.production_phase.scoreboard_name'\n },\n 'quarter': {\n 'category': 'quarter',\n 'display_name': 'term.quarter.name',\n 'help_text': 'term.quarter.short',\n 'indexed': true,\n 'indexed_with': [\n 'record_order'\n ],\n 'name': 'quarter',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.quarter.scoreboard_name'\n },\n 'shift': {\n 'category': 'shift',\n 'display_name': 'term.shift.name',\n 'help_text': 'term.shift.short',\n 'indexed': true,\n 'indexed_with': [\n 'record_order'\n ],\n 'name': 'shift',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.shift.scoreboard_name'\n },\n 'shift_hour': {\n 'category': 'shift_hour',\n 'display_name': 'term.shift_hour.name',\n 'help_text': 'term.shift_hour.short',\n 'indexed': true,\n 'indexed_with': [\n 'record_order'\n ],\n 'name': 'shift_hour',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.shift_hour.scoreboard_name'\n },\n 'team': {\n 'category': 'team',\n 'display_name': 'term.team.name',\n 'help_text': 'term.team.short',\n 'indexed': true,\n 'indexed_with': [\n 'record_order'\n ],\n 'name': 'team',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.team.scoreboard_name'\n },\n 'week': {\n 'category': 'week',\n 'display_name': 'term.week.name',\n 'help_text': 'term.week.short',\n 'indexed': true,\n 'indexed_with': [\n 'record_order'\n ],\n 'name': 'week',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.week.scoreboard_name'\n },\n 'year': {\n 'category': 'year',\n 'display_name': 'term.year.name',\n 'help_text': 'term.year.short',\n 'indexed': true,\n 'indexed_with': [\n 'record_order'\n ],\n 'name': 'year',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.year.scoreboard_name'\n }\n },\n 'display_name': 'production_metric_channel_literal',\n 'is_slicing_parent': true,\n 'metrics': {\n 'all_time': {\n 'aggregation': 'none',\n 'classification': 'production_times',\n 'display_name': 'term.all_time.name',\n 'formula': 'production_time + not_scheduled_time',\n 'help_text': 'term.all_time.short',\n 'name': 'all_time',\n 'rollup': true,\n 'scoreboard_name': 'term.all_time.scoreboard_name',\n 'translation_arguments': {},\n 'type': 'time_span'\n },\n 'availability': {\n 'aggregation': 'none',\n 'classification': 'oee',\n 'display_name': 'term.availability.name',\n 'formula': 'run_time / production_time',\n 'help_text': 'term.availability.short',\n 'increasing_is': 'good',\n 'name': 'availability',\n 'rollup': true,\n 'scoreboard_name': 'term.availability.scoreboard_name',\n 'subtype': 'percent',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'availability_loss': {\n 'aggregation': 'none',\n 'classification': 'oee',\n 'display_name': 'term.availability_loss.name',\n 'formula': '1 - availability',\n 'help_text': 'term.availability_loss.short',\n 'increasing_is': 'bad',\n 'name': 'availability_loss',\n 'rollup': true,\n 'scoreboard_name': 'term.availability_loss.scoreboard_name',\n 'subtype': 'percent',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'availability_lost_time': {\n 'aggregation': 'none',\n 'classification': 'oee',\n 'display_name': 'term.availability_lost_time.name',\n 'formula': 'availability_loss * production_time',\n 'help_text': 'term.availability_lost_time.short',\n 'increasing_is': 'bad',\n 'name': 'availability_lost_time',\n 'rollup': true,\n 'scoreboard_name': 'term.availability_lost_time.scoreboard_name',\n 'translation_arguments': {},\n 'type': 'time_span'\n },\n 'availability_or_zero': {\n 'aggregation': 'none',\n 'classification': 'oee',\n 'display_name': 'term.availability_or_zero.name',\n 'formula': 'zero_null(availability)',\n 'help_text': 'term.availability_or_zero.short',\n 'increasing_is': 'good',\n 'internal': true,\n 'name': 'availability_or_zero',\n 'rollup': true,\n 'scoreboard_name': 'term.availability_or_zero.scoreboard_name',\n 'subtype': 'percent',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'average_cycle_time': {\n 'aggregation': 'none',\n 'classification': 'cycles',\n 'display_name': 'term.average_cycle_time.name',\n 'formula': 'total_cycle_time / total_cycles',\n 'help_text': 'term.average_cycle_time.short',\n 'increasing_is': 'bad',\n 'name': 'average_cycle_time',\n 'rollup': true,\n 'scoreboard_name': 'term.average_cycle_time.scoreboard_name',\n 'subtype': 'cycle_time',\n 'translation_arguments': {},\n 'type': 'time_span'\n },\n 'average_ideal_cycle_time': {\n 'aggregation': 'none',\n 'classification': 'cycles',\n 'display_name': 'term.average_ideal_cycle_time.name',\n 'formula': 'ideal_time / total_cycles',\n 'help_text': 'term.average_ideal_cycle_time.short',\n 'name': 'average_ideal_cycle_time',\n 'rollup': true,\n 'scoreboard_name': 'term.average_ideal_cycle_time.scoreboard_name',\n 'subtype': 'cycle_time',\n 'translation_arguments': {},\n 'type': 'time_span'\n },\n 'average_run_cycle_time': {\n 'aggregation': 'none',\n 'classification': 'cycles',\n 'display_name': 'term.average_run_cycle_time.name',\n 'formula': '(ideal_time / (partial_cycles + run_cycles + small_stops)) + (run_cycle_lost_time / run_cycles)',\n 'help_text': 'term.average_run_cycle_time.short',\n 'name': 'average_run_cycle_time',\n 'rollup': true,\n 'scoreboard_name': 'term.average_run_cycle_time.scoreboard_name',\n 'subtype': 'cycle_time',\n 'translation_arguments': {},\n 'type': 'time_span'\n },\n 'average_small_stop_time': {\n 'aggregation': 'none',\n 'classification': 'cycles',\n 'display_name': 'term.average_small_stop_time.name',\n 'formula': '(ideal_time / (partial_cycles + run_cycles + small_stops)) + (small_stop_lost_time / small_stops)',\n 'help_text': 'term.average_small_stop_time.short',\n 'increasing_is': 'bad',\n 'name': 'average_small_stop_time',\n 'rollup': true,\n 'scoreboard_name': 'term.average_small_stop_time.scoreboard_name',\n 'subtype': 'cycle_time',\n 'translation_arguments': {},\n 'type': 'time_span'\n },\n 'average_takt_time': {\n 'aggregation': 'none',\n 'classification': 'target',\n 'display_name': 'term.average_takt_time.name',\n 'formula': 'manufacturing_time / target_cycles',\n 'help_text': 'term.average_takt_time.short',\n 'name': 'average_takt_time',\n 'rollup': true,\n 'scoreboard_name': 'term.average_takt_time.scoreboard_name',\n 'subtype': 'cycle_time',\n 'translation_arguments': {},\n 'type': 'time_span'\n },\n 'average_team_size': {\n 'aggregation': 'none',\n 'classification': 'labor',\n 'display_name': 'term.average_team_size.name',\n 'formula': 'labor / production_time',\n 'help_text': 'term.average_team_size.short',\n 'name': 'average_team_size',\n 'rollup': true,\n 'scoreboard_name': 'term.average_team_size.scoreboard_name',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'calendar_day_event_id': {\n 'display_name': 'term.calendar_day_event_id.name',\n 'help_text': 'term.calendar_day_event_id.short',\n 'indexed': true,\n 'indexed_with': [\n 'record_order'\n ],\n 'name': 'calendar_day_event_id',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.calendar_day_event_id.scoreboard_name',\n 'type': 'id'\n },\n 'calendar_day_number': {\n 'aggregation': 'none',\n 'classification': 'production_times',\n 'display_name': 'term.calendar_day_number.name',\n 'help_text': 'term.calendar_day_number.short',\n 'indexed': true,\n 'internal': true,\n 'name': 'calendar_day_number',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.calendar_day_number.scoreboard_name',\n 'type': 'uint64'\n },\n 'capacity_loss': {\n 'aggregation': 'none',\n 'classification': 'teep',\n 'display_name': 'term.capacity_loss.name',\n 'formula': '1 - utilization',\n 'help_text': 'term.capacity_loss.short',\n 'increasing_is': 'bad',\n 'name': 'capacity_loss',\n 'rollup': true,\n 'scoreboard_name': 'term.capacity_loss.scoreboard_name',\n 'subtype': 'percent',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'capacity_lost_time': {\n 'aggregation': 'none',\n 'classification': 'teep',\n 'display_name': 'term.capacity_lost_time.name',\n 'formula': 'capacity_loss * all_time',\n 'help_text': 'term.capacity_lost_time.short',\n 'increasing_is': 'bad',\n 'name': 'capacity_lost_time',\n 'rollup': true,\n 'scoreboard_name': 'term.capacity_lost_time.scoreboard_name',\n 'translation_arguments': {},\n 'type': 'time_span'\n },\n 'count_variance': {\n 'aggregation': 'none',\n 'classification': 'target',\n 'display_name': 'term.count_variance.name',\n 'formula': 'good_count - target_count',\n 'help_text': 'term.count_variance.short',\n 'name': 'count_variance',\n 'rollup': true,\n 'scoreboard_name': 'term.count_variance.scoreboard_name',\n 'subtype': 'count',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'current_cycle_time': {\n 'classification': 'cycles',\n 'display_name': 'term.current_cycle_time.name',\n 'ephemeral': true,\n 'help_text': 'term.current_cycle_time.short',\n 'name': 'current_cycle_time',\n 'persist': true,\n 'rollup': false,\n 'scoreboard_name': 'term.current_cycle_time.scoreboard_name',\n 'subtype': 'cycle_time',\n 'type': 'time_span'\n },\n 'current_good_rate': {\n 'classification': 'rates',\n 'display_name': 'term.current_good_rate.name',\n 'ephemeral': true,\n 'help_text': 'term.current_good_rate.short',\n 'name': 'current_good_rate',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.current_good_rate.scoreboard_name',\n 'subtype': 'rate',\n 'type': 'double'\n },\n 'current_good_rate_per_hour': {\n 'classification': 'rates',\n 'display_name': 'term.current_good_rate_per_hour.name',\n 'ephemeral': true,\n 'help_text': 'term.current_good_rate_per_hour.short',\n 'name': 'current_good_rate_per_hour',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.current_good_rate_per_hour.scoreboard_name',\n 'subtype': 'rate_per_hour',\n 'type': 'double'\n },\n 'current_in_rate': {\n 'classification': 'rates',\n 'display_name': 'term.current_in_rate.name',\n 'ephemeral': true,\n 'help_text': 'term.current_in_rate.short',\n 'name': 'current_in_rate',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.current_in_rate.scoreboard_name',\n 'subtype': 'rate',\n 'type': 'double'\n },\n 'current_in_rate_per_hour': {\n 'classification': 'rates',\n 'display_name': 'term.current_in_rate_per_hour.name',\n 'ephemeral': true,\n 'help_text': 'term.current_in_rate_per_hour.short',\n 'name': 'current_in_rate_per_hour',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.current_in_rate_per_hour.scoreboard_name',\n 'subtype': 'rate_per_hour',\n 'type': 'double'\n },\n 'current_pack_out_rate': {\n 'classification': 'rates',\n 'display_name': 'term.current_pack_out_rate.name',\n 'ephemeral': true,\n 'help_text': 'term.current_pack_out_rate.short',\n 'name': 'current_pack_out_rate',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.current_pack_out_rate.scoreboard_name',\n 'subtype': 'rate',\n 'type': 'double'\n },\n 'current_pack_out_rate_per_hour': {\n 'classification': 'rates',\n 'display_name': 'term.current_pack_out_rate_per_hour.name',\n 'ephemeral': true,\n 'help_text': 'term.current_pack_out_rate_per_hour.short',\n 'name': 'current_pack_out_rate_per_hour',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.current_pack_out_rate_per_hour.scoreboard_name',\n 'subtype': 'rate_per_hour',\n 'type': 'double'\n },\n 'current_reject_rate': {\n 'classification': 'rates',\n 'display_name': 'term.current_reject_rate.name',\n 'ephemeral': true,\n 'help_text': 'term.current_reject_rate.short',\n 'name': 'current_reject_rate',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.current_reject_rate.scoreboard_name',\n 'subtype': 'rate',\n 'type': 'double'\n },\n 'current_reject_rate_per_hour': {\n 'classification': 'rates',\n 'display_name': 'term.current_reject_rate_per_hour.name',\n 'ephemeral': true,\n 'help_text': 'term.current_reject_rate_per_hour.short',\n 'name': 'current_reject_rate_per_hour',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.current_reject_rate_per_hour.scoreboard_name',\n 'subtype': 'rate_per_hour',\n 'type': 'double'\n },\n 'current_target_labor_per_piece': {\n 'classification': 'labor',\n 'display_name': 'term.current_target_labor_per_piece.name',\n 'ephemeral': true,\n 'help_text': 'term.current_target_labor_per_piece.short',\n 'name': 'current_target_labor_per_piece',\n 'persist': true,\n 'rollup': false,\n 'scoreboard_name': 'term.current_target_labor_per_piece.scoreboard_name',\n 'subtype': 'cycle_time',\n 'type': 'time_span'\n },\n 'current_total_rate': {\n 'classification': 'rates',\n 'display_name': 'term.current_total_rate.name',\n 'ephemeral': true,\n 'help_text': 'term.current_total_rate.short',\n 'name': 'current_total_rate',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.current_total_rate.scoreboard_name',\n 'subtype': 'rate',\n 'type': 'double'\n },\n 'current_total_rate_per_hour': {\n 'classification': 'rates',\n 'display_name': 'term.current_total_rate_per_hour.name',\n 'ephemeral': true,\n 'help_text': 'term.current_total_rate_per_hour.short',\n 'name': 'current_total_rate_per_hour',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.current_total_rate_per_hour.scoreboard_name',\n 'subtype': 'rate_per_hour',\n 'type': 'double'\n },\n 'cycle_loss': {\n 'aggregation': 'none',\n 'classification': 'six_big_losses',\n 'display_name': 'term.cycle_loss.name',\n 'formula': 'cycle_lost_time / production_time',\n 'help_text': 'term.cycle_loss.short',\n 'increasing_is': 'bad',\n 'name': 'cycle_loss',\n 'rollup': true,\n 'scoreboard_name': 'term.cycle_loss.scoreboard_name',\n 'subtype': 'percent',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'cycle_lost_time': {\n 'aggregation': 'none',\n 'classification': 'six_big_losses',\n 'display_name': 'term.cycle_lost_time.name',\n 'formula': 'run_cycle_lost_time + partial_cycle_lost_time',\n 'help_text': 'term.cycle_lost_time.short',\n 'increasing_is': 'bad',\n 'name': 'cycle_lost_time',\n 'rollup': true,\n 'scoreboard_name': 'term.cycle_lost_time.scoreboard_name',\n 'translation_arguments': {},\n 'type': 'time_span'\n },\n 'down_loss': {\n 'aggregation': 'none',\n 'classification': 'six_big_losses',\n 'display_name': 'term.down_loss.name',\n 'formula': 'unplanned_stop_loss',\n 'help_text': 'term.down_loss.short',\n 'increasing_is': 'bad',\n 'name': 'down_loss',\n 'rollup': true,\n 'scoreboard_name': 'term.down_loss.scoreboard_name',\n 'subtype': 'percent',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'down_lost_time': {\n 'aggregation': 'none',\n 'classification': 'six_big_losses',\n 'display_name': 'term.down_lost_time.name',\n 'formula': 'unplanned_stop_lost_time',\n 'help_text': 'term.down_lost_time.short',\n 'increasing_is': 'bad',\n 'name': 'down_lost_time',\n 'rollup': true,\n 'scoreboard_name': 'term.down_lost_time.scoreboard_name',\n 'translation_arguments': {},\n 'type': 'time_span'\n },\n 'down_time': {\n 'aggregation': 'none',\n 'classification': 'production_times',\n 'display_name': 'term.down_time.name',\n 'formula': 'unplanned_stop_time',\n 'help_text': 'term.down_time.short',\n 'increasing_is': 'bad',\n 'name': 'down_time',\n 'rollup': true,\n 'scoreboard_name': 'term.down_time.scoreboard_name',\n 'translation_arguments': {},\n 'type': 'time_span'\n },\n 'duration': {\n 'classification': 'production_times',\n 'display_name': 'term.duration.name',\n 'help_text': 'term.duration.short',\n 'name': 'duration',\n 'rollup': true,\n 'scoreboard_name': 'term.duration.scoreboard_name',\n 'type': 'time_span'\n },\n 'earned_labor': {\n 'classification': 'labor',\n 'display_name': 'term.earned_labor.name',\n 'help_text': 'term.earned_labor.short',\n 'name': 'earned_labor',\n 'rollup': true,\n 'scoreboard_name': 'term.earned_labor.scoreboard_name',\n 'type': 'time_span'\n },\n 'efficiency': {\n 'aggregation': 'none',\n 'classification': 'target',\n 'display_name': 'term.efficiency.name',\n 'formula': 'good_count / target_count',\n 'help_text': 'term.efficiency.short',\n 'increasing_is': 'good',\n 'name': 'efficiency',\n 'rollup': true,\n 'scoreboard_name': 'term.efficiency.scoreboard_name',\n 'subtype': 'percent',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'elapsed_time': {\n 'classification': 'production_times',\n 'display_name': 'term.elapsed_time.name',\n 'ephemeral': true,\n 'help_text': 'term.elapsed_time.short',\n 'name': 'elapsed_time',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.elapsed_time.scoreboard_name',\n 'type': 'time_span'\n },\n 'end_time': {\n 'aggregation': 'datetime_max',\n 'classification': 'production_times',\n 'display_name': 'term.end_time.name',\n 'help_text': 'term.end_time.short',\n 'name': 'end_time',\n 'persist': true,\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': 'term.end_time.scoreboard_name',\n 'type': 'date_time'\n },\n 'equipment_cycles': {\n 'classification': 'cycles',\n 'display_name': 'term.equipment_cycles.name',\n 'help_text': 'term.equipment_cycles.short',\n 'name': 'equipment_cycles',\n 'rollup': true,\n 'scoreboard_name': 'term.equipment_cycles.scoreboard_name',\n 'type': 'uint64'\n },\n 'event_efficiency': {\n 'aggregation': 'none',\n 'classification': 'production_times',\n 'display_name': 'term.event_efficiency.name',\n 'formula': 'event_target / duration',\n 'help_text': 'term.event_efficiency.short',\n 'increasing_is': 'good',\n 'internal': true,\n 'name': 'event_efficiency',\n 'rollup': true,\n 'scoreboard_name': 'term.event_efficiency.scoreboard_name',\n 'subtype': 'percent',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'event_id': {\n 'display_name': 'term.event_id.name',\n 'help_text': 'term.event_id.short',\n 'indexed': true,\n 'internal': true,\n 'name': 'event_id',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.event_id.scoreboard_name',\n 'type': 'id'\n },\n 'event_target': {\n 'classification': 'production_times',\n 'display_name': 'term.event_target.name',\n 'help_text': 'term.event_target.short',\n 'internal': true,\n 'name': 'event_target',\n 'rollup': true,\n 'scoreboard_name': 'term.event_target.scoreboard_name',\n 'type': 'time_span'\n },\n 'event_time_variance': {\n 'aggregation': 'none',\n 'classification': 'production_times',\n 'display_name': 'term.event_time_variance.name',\n 'formula': 'event_target - duration',\n 'help_text': 'term.event_time_variance.short',\n 'internal': true,\n 'name': 'event_time_variance',\n 'rollup': true,\n 'scoreboard_name': 'term.event_time_variance.scoreboard_name',\n 'translation_arguments': {},\n 'type': 'time_span'\n },\n 'event_variance': {\n 'aggregation': 'none',\n 'classification': 'production_times',\n 'display_name': 'term.event_variance.name',\n 'formula': '(event_target - duration) / event_target',\n 'help_text': 'term.event_variance.short',\n 'internal': true,\n 'name': 'event_variance',\n 'rollup': true,\n 'scoreboard_name': 'term.event_variance.scoreboard_name',\n 'subtype': 'percent',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'fully_productive_time': {\n 'aggregation': 'none',\n 'classification': 'oee',\n 'display_name': 'term.fully_productive_time.name',\n 'formula': 'ideal_time * (1 - zero_null(percent_reject))',\n 'help_text': 'term.fully_productive_time.short',\n 'increasing_is': 'good',\n 'name': 'fully_productive_time',\n 'rollup': true,\n 'scoreboard_name': 'term.fully_productive_time.scoreboard_name',\n 'translation_arguments': {},\n 'type': 'time_span'\n },\n 'goal_count': {\n 'classification': 'planning',\n 'display_name': 'term.goal_count.name',\n 'ephemeral': true,\n 'help_text': 'term.goal_count.short',\n 'name': 'goal_count',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.goal_count.scoreboard_name',\n 'subtype': 'count',\n 'type': 'double'\n },\n 'count': {\n 'comment': 'This is added to allow email templates to have a special count column that combines changeover and down events',\n 'classification': 'counts',\n 'display_name': 'config.counts.displayKey',\n 'name': 'count',\n 'rollup': true,\n 'subtype': 'count',\n 'type': 'double'\n },\n 'good_count': {\n 'classification': 'counts',\n 'display_name': 'term.good_count.name',\n 'help_text': 'term.good_count.short',\n 'name': 'good_count',\n 'rollup': true,\n 'scoreboard_name': 'term.good_count.scoreboard_name',\n 'subtype': 'count',\n 'type': 'double'\n },\n 'good_pieces_left': {\n 'classification': 'target',\n 'display_name': 'term.good_pieces_left.name',\n 'ephemeral': true,\n 'help_text': 'term.good_pieces_left.short',\n 'name': 'good_pieces_left',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.good_pieces_left.scoreboard_name',\n 'subtype': 'count',\n 'type': 'double'\n },\n 'good_pieces_per_labor_hour': {\n 'aggregation': 'none',\n 'classification': 'labor',\n 'display_name': 'term.good_pieces_per_labor_hour.name',\n 'formula': 'good_count / (labor / 3600)',\n 'help_text': 'term.good_pieces_per_labor_hour.short',\n 'increasing_is': 'good',\n 'name': 'good_pieces_per_labor_hour',\n 'rollup': true,\n 'scoreboard_name': 'term.good_pieces_per_labor_hour.scoreboard_name',\n 'subtype': 'rate',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'good_rate': {\n 'aggregation': 'none',\n 'classification': 'rates',\n 'display_name': 'term.good_rate.name',\n 'formula': 'good_count / manufacturing_time * 60',\n 'help_text': 'term.good_rate.short',\n 'name': 'good_rate',\n 'rollup': true,\n 'scoreboard_name': 'term.good_rate.scoreboard_name',\n 'subtype': 'rate',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'good_rate_per_hour': {\n 'aggregation': 'none',\n 'classification': 'rates',\n 'display_name': 'term.good_rate_per_hour.name',\n 'formula': 'good_count / manufacturing_time * 3600',\n 'help_text': 'term.good_rate_per_hour.short',\n 'name': 'good_rate_per_hour',\n 'rollup': true,\n 'scoreboard_name': 'term.good_rate_per_hour.scoreboard_name',\n 'subtype': 'rate_per_hour',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'good_speed': {\n 'aggregation': 'none',\n 'classification': 'rates',\n 'display_name': 'term.good_speed.name',\n 'formula': 'good_count / run_time * 60',\n 'help_text': 'term.good_speed.short',\n 'name': 'good_speed',\n 'rollup': true,\n 'scoreboard_name': 'term.good_speed.scoreboard_name',\n 'subtype': 'rate',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'good_speed_per_hour': {\n 'aggregation': 'none',\n 'classification': 'rates',\n 'display_name': 'term.good_speed_per_hour.name',\n 'formula': 'good_count / run_time * 3600',\n 'help_text': 'term.good_speed_per_hour.short',\n 'name': 'good_speed_per_hour',\n 'rollup': true,\n 'scoreboard_name': 'term.good_speed_per_hour.scoreboard_name',\n 'subtype': 'rate_per_hour',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'hidden_factory_time': {\n 'aggregation': 'none',\n 'classification': 'teep',\n 'display_name': 'term.hidden_factory_time.name',\n 'formula': 'capacity_lost_time + oee_lost_time',\n 'help_text': 'term.hidden_factory_time.short',\n 'increasing_is': 'bad',\n 'name': 'hidden_factory_time',\n 'rollup': true,\n 'scoreboard_name': 'term.hidden_factory_time.scoreboard_name',\n 'translation_arguments': {},\n 'type': 'time_span'\n },\n 'hour_event_id': {\n 'display_name': 'term.hour_event_id.name',\n 'help_text': 'term.hour_event_id.short',\n 'indexed': true,\n 'indexed_with': [\n 'record_order'\n ],\n 'name': 'hour_event_id',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.hour_event_id.scoreboard_name',\n 'type': 'id'\n },\n 'ideal_cycle_time': {\n 'classification': 'cycles',\n 'display_name': 'term.ideal_cycle_time.name',\n 'ephemeral': true,\n 'help_text': 'term.ideal_cycle_time.short',\n 'name': 'ideal_cycle_time',\n 'persist': true,\n 'rollup': false,\n 'scoreboard_name': 'term.ideal_cycle_time.scoreboard_name',\n 'subtype': 'cycle_time',\n 'type': 'time_span'\n },\n 'ideal_time': {\n 'classification': 'cycles',\n 'display_name': 'term.ideal_time.name',\n 'help_text': 'term.ideal_time.short',\n 'name': 'ideal_time',\n 'rollup': true,\n 'scoreboard_name': 'term.ideal_time.scoreboard_name',\n 'type': 'time_span'\n },\n 'in_count': {\n 'classification': 'counts',\n 'display_name': 'term.in_count.name',\n 'help_text': 'term.in_count.short',\n 'name': 'in_count',\n 'rollup': true,\n 'scoreboard_name': 'term.in_count.scoreboard_name',\n 'subtype': 'count',\n 'type': 'double'\n },\n 'in_rate': {\n 'aggregation': 'none',\n 'classification': 'rates',\n 'display_name': 'term.in_rate.name',\n 'formula': 'in_count / manufacturing_time * 60',\n 'help_text': 'term.in_rate.short',\n 'name': 'in_rate',\n 'rollup': true,\n 'scoreboard_name': 'term.in_rate.scoreboard_name',\n 'subtype': 'rate',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'in_rate_per_hour': {\n 'aggregation': 'none',\n 'classification': 'rates',\n 'display_name': 'term.in_rate_per_hour.name',\n 'formula': 'in_count / manufacturing_time * 3600',\n 'help_text': 'term.in_rate_per_hour.short',\n 'name': 'in_rate_per_hour',\n 'rollup': true,\n 'scoreboard_name': 'term.in_rate_per_hour.scoreboard_name',\n 'subtype': 'rate_per_hour',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'in_speed': {\n 'aggregation': 'none',\n 'classification': 'rates',\n 'display_name': 'term.in_speed.name',\n 'formula': 'in_count / run_time * 60',\n 'help_text': 'term.in_speed.short',\n 'name': 'in_speed',\n 'rollup': true,\n 'scoreboard_name': 'term.in_speed.scoreboard_name',\n 'subtype': 'rate',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'in_speed_per_hour': {\n 'aggregation': 'none',\n 'classification': 'rates',\n 'display_name': 'term.in_speed_per_hour.name',\n 'formula': 'in_count / run_time * 3600',\n 'help_text': 'term.in_speed_per_hour.short',\n 'name': 'in_speed_per_hour',\n 'rollup': true,\n 'scoreboard_name': 'term.in_speed_per_hour.scoreboard_name',\n 'subtype': 'rate_per_hour',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'job_event_id': {\n 'display_name': 'term.job_event_id.name',\n 'help_text': 'term.job_event_id.short',\n 'indexed': true,\n 'indexed_with': [\n 'record_order'\n ],\n 'name': 'job_event_id',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.job_event_id.scoreboard_name',\n 'type': 'id'\n },\n 'job_null_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'job_null_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Job',\n 'category_value': 'No Job'\n },\n 'type': 'id'\n },\n 'job_null_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'job_null_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Job',\n 'category_value': 'No Job'\n },\n 'type': 'double'\n },\n 'job_occurrences': {\n 'display_name': 'term.job_occurrences.name',\n 'help_text': 'term.job_occurrences.short',\n 'internal': true,\n 'name': 'job_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': 'term.job_occurrences.scoreboard_name',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Job'\n },\n 'type': 'double'\n },\n 'job_unknown_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'job_unknown_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Job',\n 'category_value': 'Unknown Job'\n },\n 'type': 'id'\n },\n 'job_unknown_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'job_unknown_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Job',\n 'category_value': 'Unknown Job'\n },\n 'type': 'double'\n },\n 'labor': {\n 'classification': 'labor',\n 'display_name': 'term.labor.name',\n 'help_text': 'term.labor.short',\n 'name': 'labor',\n 'rollup': true,\n 'scoreboard_name': 'term.labor.scoreboard_name',\n 'type': 'time_span'\n },\n 'labor_efficiency': {\n 'aggregation': 'none',\n 'classification': 'labor',\n 'display_name': 'term.labor_efficiency.name',\n 'formula': 'earned_labor / labor',\n 'help_text': 'term.labor_efficiency.short',\n 'increasing_is': 'good',\n 'name': 'labor_efficiency',\n 'rollup': true,\n 'scoreboard_name': 'term.labor_efficiency.scoreboard_name',\n 'subtype': 'percent',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'labor_per_good_piece': {\n 'aggregation': 'none',\n 'classification': 'labor',\n 'display_name': 'term.labor_per_good_piece.name',\n 'formula': 'labor / good_count',\n 'help_text': 'term.labor_per_good_piece.short',\n 'increasing_is': 'bad',\n 'name': 'labor_per_good_piece',\n 'rollup': true,\n 'scoreboard_name': 'term.labor_per_good_piece.scoreboard_name',\n 'subtype': 'cycle_time',\n 'translation_arguments': {},\n 'type': 'time_span'\n },\n 'labor_per_piece': {\n 'aggregation': 'none',\n 'classification': 'labor',\n 'display_name': 'term.labor_per_piece.name',\n 'formula': 'labor / total_count',\n 'help_text': 'term.labor_per_piece.short',\n 'increasing_is': 'bad',\n 'name': 'labor_per_piece',\n 'rollup': true,\n 'scoreboard_name': 'term.labor_per_piece.scoreboard_name',\n 'subtype': 'cycle_time',\n 'translation_arguments': {},\n 'type': 'time_span'\n },\n 'last_down_time': {\n 'classification': 'production_times',\n 'display_name': 'term.last_down_time.name',\n 'ephemeral': true,\n 'help_text': 'term.last_down_time.short',\n 'name': 'last_down_time',\n 'persist': true,\n 'rollup': false,\n 'scoreboard_name': 'term.last_down_time.scoreboard_name',\n 'type': 'time_span'\n },\n 'last_not_scheduled_time': {\n 'classification': 'production_times',\n 'display_name': 'term.last_not_scheduled_time.name',\n 'ephemeral': true,\n 'help_text': 'term.last_not_scheduled_time.short',\n 'name': 'last_not_scheduled_time',\n 'persist': true,\n 'rollup': false,\n 'scoreboard_name': 'term.last_not_scheduled_time.scoreboard_name',\n 'type': 'time_span'\n },\n 'last_planned_stop_time': {\n 'classification': 'production_times',\n 'display_name': 'term.last_planned_stop_time.name',\n 'ephemeral': true,\n 'help_text': 'term.last_planned_stop_time.short',\n 'name': 'last_planned_stop_time',\n 'persist': true,\n 'rollup': false,\n 'scoreboard_name': 'term.last_planned_stop_time.scoreboard_name',\n 'type': 'time_span'\n },\n 'last_run_time': {\n 'classification': 'production_times',\n 'display_name': 'term.last_run_time.name',\n 'ephemeral': true,\n 'help_text': 'term.last_run_time.short',\n 'name': 'last_run_time',\n 'persist': true,\n 'rollup': false,\n 'scoreboard_name': 'term.last_run_time.scoreboard_name',\n 'type': 'time_span'\n },\n 'last_unplanned_stop_time': {\n 'classification': 'production_times',\n 'display_name': 'term.last_unplanned_stop_time.name',\n 'ephemeral': true,\n 'help_text': 'term.last_unplanned_stop_time.short',\n 'name': 'last_unplanned_stop_time',\n 'persist': true,\n 'rollup': false,\n 'scoreboard_name': 'term.last_unplanned_stop_time.scoreboard_name',\n 'type': 'time_span'\n },\n 'lost_labor': {\n 'aggregation': 'none',\n 'classification': 'labor',\n 'display_name': 'term.lost_labor.name',\n 'formula': 'labor - earned_labor',\n 'help_text': 'term.lost_labor.short',\n 'name': 'lost_labor',\n 'rollup': true,\n 'scoreboard_name': 'term.lost_labor.scoreboard_name',\n 'translation_arguments': {},\n 'type': 'time_span'\n },\n 'manufacturing_time': {\n 'aggregation': 'none',\n 'classification': 'production_times',\n 'display_name': 'term.manufacturing_time.name',\n 'formula': 'run_time + unplanned_stop_time',\n 'help_text': 'term.manufacturing_time.short',\n 'name': 'manufacturing_time',\n 'rollup': true,\n 'scoreboard_name': 'term.manufacturing_time.scoreboard_name',\n 'translation_arguments': {},\n 'type': 'time_span'\n },\n 'max_slice_order': {\n 'aggregation': 'none',\n 'display_name': 'term.max_slice_order.name',\n 'help_text': 'term.max_slice_order.short',\n 'internal': true,\n 'name': 'max_slice_order',\n 'rollup': false,\n 'scoreboard': false,\n 'scoreboard_name': 'term.max_slice_order.scoreboard_name',\n 'translation_arguments': {},\n 'type': 'uint64'\n },\n 'min_slice_order': {\n 'aggregation': 'none',\n 'display_name': 'term.min_slice_order.name',\n 'help_text': 'term.min_slice_order.short',\n 'internal': true,\n 'name': 'min_slice_order',\n 'rollup': false,\n 'scoreboard': false,\n 'scoreboard_name': 'term.min_slice_order.scoreboard_name',\n 'translation_arguments': {},\n 'type': 'uint64'\n },\n 'month_event_id': {\n 'display_name': 'term.month_event_id.name',\n 'help_text': 'term.month_event_id.short',\n 'indexed': true,\n 'indexed_with': [\n 'record_order'\n ],\n 'name': 'month_event_id',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.month_event_id.scoreboard_name',\n 'type': 'id'\n },\n 'mtbf': {\n 'aggregation': 'none',\n 'classification': 'mean_times',\n 'display_name': 'term.mtbf.name',\n 'formula': 'run_time / process_state_down_occurrences',\n 'help_text': 'term.mtbf.short',\n 'increasing_is': 'good',\n 'name': 'mtbf',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': 'term.mtbf.scoreboard_name',\n 'translation_arguments': {},\n 'type': 'time_span'\n },\n 'mttr': {\n 'aggregation': 'none',\n 'classification': 'mean_times',\n 'display_name': 'term.mttr.name',\n 'formula': 'unplanned_stop_time / process_state_down_occurrences',\n 'help_text': 'term.mttr.short',\n 'increasing_is': 'bad',\n 'name': 'mttr',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': 'term.mttr.scoreboard_name',\n 'translation_arguments': {},\n 'type': 'time_span'\n },\n 'not_scheduled_time': {\n 'classification': 'production_times',\n 'display_name': 'term.not_scheduled_time.name',\n 'help_text': 'term.not_scheduled_time.short',\n 'name': 'not_scheduled_time',\n 'rollup': true,\n 'scoreboard_name': 'term.not_scheduled_time.scoreboard_name',\n 'type': 'time_span'\n },\n 'oee': {\n 'aggregation': 'none',\n 'classification': 'oee',\n 'display_name': 'term.oee.name',\n 'formula': 'availability * performance_or_zero * quality_or_zero',\n 'help_text': 'term.oee.short',\n 'increasing_is': 'good',\n 'name': 'oee',\n 'rollup': true,\n 'scoreboard_name': 'term.oee.scoreboard_name',\n 'subtype': 'percent',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'oee_loss': {\n 'aggregation': 'none',\n 'classification': 'oee',\n 'display_name': 'term.oee_loss.name',\n 'formula': '1 - oee',\n 'help_text': 'term.oee_loss.short',\n 'increasing_is': 'bad',\n 'name': 'oee_loss',\n 'rollup': true,\n 'scoreboard_name': 'term.oee_loss.scoreboard_name',\n 'subtype': 'percent',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'oee_lost_time': {\n 'aggregation': 'none',\n 'classification': 'oee',\n 'display_name': 'term.oee_lost_time.name',\n 'formula': 'production_time - fully_productive_time',\n 'help_text': 'term.oee_lost_time.short',\n 'increasing_is': 'bad',\n 'name': 'oee_lost_time',\n 'rollup': true,\n 'scoreboard_name': 'term.oee_lost_time.scoreboard_name',\n 'translation_arguments': {},\n 'type': 'time_span'\n },\n 'ordinal_shift_event_id': {\n 'display_name': 'term.ordinal_shift_event_id.name',\n 'help_text': 'term.ordinal_shift_event_id.short',\n 'indexed': true,\n 'indexed_with': [\n 'record_order'\n ],\n 'name': 'ordinal_shift_event_id',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.ordinal_shift_event_id.scoreboard_name',\n 'type': 'id'\n },\n 'pace_timer': {\n 'classification': 'target',\n 'display_name': 'term.pace_timer.name',\n 'ephemeral': true,\n 'help_text': 'term.pace_timer.short',\n 'name': 'pace_timer',\n 'rollup': false,\n 'scoreboard_name': 'term.pace_timer.scoreboard_name',\n 'type': 'time_span'\n },\n 'pack_out_count': {\n 'classification': 'counts',\n 'display_name': 'term.pack_out_count.name',\n 'help_text': 'term.pack_out_count.short',\n 'name': 'pack_out_count',\n 'rollup': true,\n 'scoreboard_name': 'term.pack_out_count.scoreboard_name',\n 'subtype': 'count',\n 'type': 'double'\n },\n 'pack_out_rate': {\n 'aggregation': 'none',\n 'classification': 'rates',\n 'display_name': 'term.pack_out_rate.name',\n 'formula': 'pack_out_count / manufacturing_time * 60',\n 'help_text': 'term.pack_out_rate.short',\n 'name': 'pack_out_rate',\n 'rollup': true,\n 'scoreboard_name': 'term.pack_out_rate.scoreboard_name',\n 'subtype': 'rate',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'pack_out_rate_per_hour': {\n 'aggregation': 'none',\n 'classification': 'rates',\n 'display_name': 'term.pack_out_rate_per_hour.name',\n 'formula': 'pack_out_count / manufacturing_time * 3600',\n 'help_text': 'term.pack_out_rate_per_hour.short',\n 'name': 'pack_out_rate_per_hour',\n 'rollup': true,\n 'scoreboard_name': 'term.pack_out_rate_per_hour.scoreboard_name',\n 'subtype': 'rate_per_hour',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'pack_out_speed': {\n 'aggregation': 'none',\n 'classification': 'rates',\n 'display_name': 'term.pack_out_speed.name',\n 'formula': 'pack_out_count / run_time * 60',\n 'help_text': 'term.pack_out_speed.short',\n 'name': 'pack_out_speed',\n 'rollup': true,\n 'scoreboard_name': 'term.pack_out_speed.scoreboard_name',\n 'subtype': 'rate',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'pack_out_speed_per_hour': {\n 'aggregation': 'none',\n 'classification': 'rates',\n 'display_name': 'term.pack_out_speed_per_hour.name',\n 'formula': 'pack_out_count / run_time * 3600',\n 'help_text': 'term.pack_out_speed_per_hour.short',\n 'name': 'pack_out_speed_per_hour',\n 'rollup': true,\n 'scoreboard_name': 'term.pack_out_speed_per_hour.scoreboard_name',\n 'subtype': 'rate_per_hour',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'part_event_id': {\n 'display_name': 'term.part_event_id.name',\n 'help_text': 'term.part_event_id.short',\n 'indexed': true,\n 'indexed_with': [\n 'record_order'\n ],\n 'name': 'part_event_id',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.part_event_id.scoreboard_name',\n 'type': 'id'\n },\n 'part_null_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'part_null_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Part',\n 'category_value': 'No Part'\n },\n 'type': 'id'\n },\n 'part_null_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'part_null_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Part',\n 'category_value': 'No Part'\n },\n 'type': 'double'\n },\n 'part_occurrences': {\n 'display_name': 'term.part_occurrences.name',\n 'help_text': 'term.part_occurrences.short',\n 'internal': true,\n 'name': 'part_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': 'term.part_occurrences.scoreboard_name',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Part'\n },\n 'type': 'double'\n },\n 'part_sample_part_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'part_sample_part_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Part',\n 'category_value': 'Sample Part'\n },\n 'type': 'id'\n },\n 'part_sample_part_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'part_sample_part_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Part',\n 'category_value': 'Sample Part'\n },\n 'type': 'double'\n },\n 'part_unknown_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'part_unknown_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Part',\n 'category_value': 'Unknown Part'\n },\n 'type': 'id'\n },\n 'part_unknown_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'part_unknown_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Part',\n 'category_value': 'Unknown Part'\n },\n 'type': 'double'\n },\n 'partial_cycle_lost_time': {\n 'classification': 'cycles',\n 'display_name': 'term.partial_cycle_lost_time.name',\n 'help_text': 'term.partial_cycle_lost_time.short',\n 'name': 'partial_cycle_lost_time',\n 'rollup': true,\n 'scoreboard_name': 'term.partial_cycle_lost_time.scoreboard_name',\n 'type': 'time_span'\n },\n 'partial_cycles': {\n 'classification': 'cycles',\n 'display_name': 'term.partial_cycles.name',\n 'help_text': 'term.partial_cycles.short',\n 'name': 'partial_cycles',\n 'rollup': true,\n 'scoreboard_name': 'term.partial_cycles.scoreboard_name',\n 'subtype': 'cycle',\n 'type': 'double'\n },\n 'percent_done': {\n 'classification': 'planning',\n 'display_name': 'term.percent_done.name',\n 'ephemeral': true,\n 'help_text': 'term.percent_done.short',\n 'name': 'percent_done',\n 'persist': true,\n 'rollup': false,\n 'scoreboard_name': 'term.percent_done.scoreboard_name',\n 'subtype': 'percent',\n 'type': 'double'\n },\n 'percent_down': {\n 'aggregation': 'none',\n 'classification': 'production_times',\n 'display_name': 'term.percent_down.name',\n 'formula': 'percent_unplanned_stop',\n 'help_text': 'term.percent_down.short',\n 'increasing_is': 'bad',\n 'name': 'percent_down',\n 'rollup': true,\n 'scoreboard_name': 'term.percent_down.scoreboard_name',\n 'subtype': 'percent',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'percent_good': {\n 'aggregation': 'none',\n 'classification': 'counts',\n 'display_name': 'term.percent_good.name',\n 'formula': 'good_count / total_count',\n 'help_text': 'term.percent_good.short',\n 'increasing_is': 'good',\n 'name': 'percent_good',\n 'rollup': true,\n 'scoreboard_name': 'term.percent_good.scoreboard_name',\n 'subtype': 'percent',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'percent_good_or_zero': {\n 'aggregation': 'none',\n 'classification': 'counts',\n 'display_name': 'term.percent_good_or_zero.name',\n 'formula': 'zero_null(percent_good)',\n 'help_text': 'term.percent_good_or_zero.short',\n 'increasing_is': 'good',\n 'internal': true,\n 'name': 'percent_good_or_zero',\n 'rollup': true,\n 'scoreboard_name': 'term.percent_good_or_zero.scoreboard_name',\n 'subtype': 'percent',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'percent_planned_stop': {\n 'aggregation': 'none',\n 'classification': 'production_times',\n 'display_name': 'term.percent_planned_stop.name',\n 'formula': 'planned_stop_time / production_time',\n 'help_text': 'term.percent_planned_stop.short',\n 'increasing_is': 'bad',\n 'name': 'percent_planned_stop',\n 'rollup': true,\n 'scoreboard_name': 'term.percent_planned_stop.scoreboard_name',\n 'subtype': 'percent',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'percent_production_rejects_or_zero': {\n 'aggregation': 'none',\n 'classification': 'counts',\n 'display_name': 'term.percent_production_rejects_or_zero.name',\n 'formula': 'zero_null(production_rejects / total_count)',\n 'help_text': 'term.percent_production_rejects_or_zero.short',\n 'increasing_is': 'bad',\n 'internal': true,\n 'name': 'percent_production_rejects_or_zero',\n 'rollup': true,\n 'scoreboard_name': 'term.percent_production_rejects_or_zero.scoreboard_name',\n 'subtype': 'percent',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'percent_reject': {\n 'aggregation': 'none',\n 'classification': 'counts',\n 'display_name': 'term.percent_reject.name',\n 'formula': 'reject_count / total_count',\n 'help_text': 'term.percent_reject.short',\n 'increasing_is': 'bad',\n 'name': 'percent_reject',\n 'rollup': true,\n 'scoreboard_name': 'term.percent_reject.scoreboard_name',\n 'subtype': 'percent',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'percent_run': {\n 'aggregation': 'none',\n 'classification': 'production_times',\n 'display_name': 'term.percent_run.name',\n 'formula': 'run_time / production_time',\n 'help_text': 'term.percent_run.short',\n 'increasing_is': 'good',\n 'name': 'percent_run',\n 'rollup': true,\n 'scoreboard_name': 'term.percent_run.scoreboard_name',\n 'subtype': 'percent',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'percent_startup_rejects_or_zero': {\n 'aggregation': 'none',\n 'classification': 'counts',\n 'display_name': 'term.percent_startup_rejects_or_zero.name',\n 'formula': 'zero_null(startup_rejects / total_count)',\n 'help_text': 'term.percent_startup_rejects_or_zero.short',\n 'increasing_is': 'bad',\n 'internal': true,\n 'name': 'percent_startup_rejects_or_zero',\n 'rollup': true,\n 'scoreboard_name': 'term.percent_startup_rejects_or_zero.scoreboard_name',\n 'subtype': 'percent',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'percent_unplanned_stop': {\n 'aggregation': 'none',\n 'classification': 'production_times',\n 'display_name': 'term.percent_unplanned_stop.name',\n 'formula': 'unplanned_stop_time / production_time',\n 'help_text': 'term.percent_unplanned_stop.short',\n 'increasing_is': 'bad',\n 'name': 'percent_unplanned_stop',\n 'rollup': true,\n 'scoreboard_name': 'term.percent_unplanned_stop.scoreboard_name',\n 'subtype': 'percent',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'percent_variance': {\n 'aggregation': 'none',\n 'classification': 'target',\n 'display_name': 'term.percent_variance.name',\n 'formula': 'count_variance / target_count',\n 'help_text': 'term.percent_variance.short',\n 'name': 'percent_variance',\n 'rollup': true,\n 'scoreboard_name': 'term.percent_variance.scoreboard_name',\n 'subtype': 'percent',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'performance': {\n 'aggregation': 'none',\n 'classification': 'oee',\n 'display_name': 'term.performance.name',\n 'formula': 'ideal_time / run_time',\n 'help_text': 'term.performance.short',\n 'increasing_is': 'good',\n 'name': 'performance',\n 'rollup': true,\n 'scoreboard_name': 'term.performance.scoreboard_name',\n 'subtype': 'percent',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'performance_loss': {\n 'aggregation': 'none',\n 'classification': 'oee',\n 'display_name': 'term.performance_loss.name',\n 'formula': '(1 - performance) * availability_or_zero',\n 'help_text': 'term.performance_loss.short',\n 'increasing_is': 'bad',\n 'name': 'performance_loss',\n 'rollup': true,\n 'scoreboard_name': 'term.performance_loss.scoreboard_name',\n 'subtype': 'percent',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'performance_lost_time': {\n 'aggregation': 'none',\n 'classification': 'oee',\n 'display_name': 'term.performance_lost_time.name',\n 'formula': 'performance_loss * production_time',\n 'help_text': 'term.performance_lost_time.short',\n 'increasing_is': 'bad',\n 'name': 'performance_lost_time',\n 'rollup': true,\n 'scoreboard_name': 'term.performance_lost_time.scoreboard_name',\n 'translation_arguments': {},\n 'type': 'time_span'\n },\n 'performance_or_zero': {\n 'aggregation': 'none',\n 'classification': 'oee',\n 'display_name': 'term.performance_or_zero.name',\n 'formula': 'zero_null(performance)',\n 'help_text': 'term.performance_or_zero.short',\n 'increasing_is': 'good',\n 'internal': true,\n 'name': 'performance_or_zero',\n 'rollup': true,\n 'scoreboard_name': 'term.performance_or_zero.scoreboard_name',\n 'subtype': 'percent',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'pieces_per_labor_hour': {\n 'aggregation': 'none',\n 'classification': 'labor',\n 'display_name': 'term.pieces_per_labor_hour.name',\n 'formula': 'total_count / (labor / 3600)',\n 'help_text': 'term.pieces_per_labor_hour.short',\n 'increasing_is': 'good',\n 'name': 'pieces_per_labor_hour',\n 'rollup': true,\n 'scoreboard_name': 'term.pieces_per_labor_hour.scoreboard_name',\n 'subtype': 'rate',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'planned_stop_loss': {\n 'aggregation': 'none',\n 'classification': 'six_big_losses',\n 'display_name': 'term.planned_stop_loss.name',\n 'formula': 'planned_stop_time / production_time',\n 'help_text': 'term.planned_stop_loss.short',\n 'increasing_is': 'bad',\n 'name': 'planned_stop_loss',\n 'rollup': true,\n 'scoreboard_name': 'term.planned_stop_loss.scoreboard_name',\n 'subtype': 'percent',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'planned_stop_lost_time': {\n 'aggregation': 'none',\n 'classification': 'six_big_losses',\n 'display_name': 'term.planned_stop_lost_time.name',\n 'formula': 'planned_stop_time',\n 'help_text': 'term.planned_stop_lost_time.short',\n 'increasing_is': 'bad',\n 'name': 'planned_stop_lost_time',\n 'rollup': true,\n 'scoreboard_name': 'term.planned_stop_lost_time.scoreboard_name',\n 'translation_arguments': {},\n 'type': 'time_span'\n },\n 'planned_stop_time': {\n 'classification': 'production_times',\n 'display_name': 'term.planned_stop_time.name',\n 'help_text': 'term.planned_stop_time.short',\n 'increasing_is': 'bad',\n 'name': 'planned_stop_time',\n 'rollup': true,\n 'scoreboard_name': 'term.planned_stop_time.scoreboard_name',\n 'type': 'time_span'\n },\n 'previous_cycle_time': {\n 'classification': 'cycles',\n 'display_name': 'term.previous_cycle_time.name',\n 'ephemeral': true,\n 'help_text': 'term.previous_cycle_time.short',\n 'name': 'previous_cycle_time',\n 'persist': true,\n 'rollup': false,\n 'scoreboard_name': 'term.previous_cycle_time.scoreboard_name',\n 'subtype': 'cycle_time',\n 'type': 'time_span'\n },\n 'process_state_break_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_break_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Production State',\n 'category_value': 'Meal/Break'\n },\n 'type': 'id'\n },\n 'process_state_break_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_break_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Production State',\n 'category_value': 'Meal/Break'\n },\n 'type': 'double'\n },\n 'process_state_changeover_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_changeover_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Production State',\n 'category_value': 'Changeover'\n },\n 'type': 'id'\n },\n 'process_state_changeover_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_changeover_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Production State',\n 'category_value': 'Changeover'\n },\n 'type': 'double'\n },\n 'process_state_detecting_state_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_detecting_state_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Production State',\n 'category_value': 'Detecting State'\n },\n 'type': 'id'\n },\n 'process_state_detecting_state_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_detecting_state_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Production State',\n 'category_value': 'Detecting State'\n },\n 'type': 'double'\n },\n 'process_state_down_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_down_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Production State',\n 'category_value': 'Down'\n },\n 'type': 'id'\n },\n 'process_state_down_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_down_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Production State',\n 'category_value': 'Down'\n },\n 'type': 'double'\n },\n 'process_state_event_id': {\n 'display_name': 'term.process_state_event_id.name',\n 'help_text': 'term.process_state_event_id.short',\n 'indexed': true,\n 'indexed_with': [\n 'record_order'\n ],\n 'name': 'process_state_event_id',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.process_state_event_id.scoreboard_name',\n 'type': 'id'\n },\n 'process_state_information_source_barcode_scan_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_information_source_barcode_scan_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Information Source',\n 'category_value': 'Barcode Scan'\n },\n 'type': 'id'\n },\n 'process_state_information_source_barcode_scan_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_information_source_barcode_scan_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Information Source',\n 'category_value': 'Barcode Scan'\n },\n 'type': 'double'\n },\n 'process_state_information_source_data_modification_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_information_source_data_modification_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Information Source',\n 'category_value': 'Data Modification'\n },\n 'type': 'id'\n },\n 'process_state_information_source_data_modification_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_information_source_data_modification_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Information Source',\n 'category_value': 'Data Modification'\n },\n 'type': 'double'\n },\n 'process_state_information_source_digital_input_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_information_source_digital_input_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Information Source',\n 'category_value': 'Digital Input'\n },\n 'type': 'id'\n },\n 'process_state_information_source_digital_input_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_information_source_digital_input_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Information Source',\n 'category_value': 'Digital Input'\n },\n 'type': 'double'\n },\n 'process_state_information_source_late_start_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_information_source_late_start_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Information Source',\n 'category_value': 'Time Schedule (Late Start)'\n },\n 'type': 'id'\n },\n 'process_state_information_source_late_start_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_information_source_late_start_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Information Source',\n 'category_value': 'Time Schedule (Late Start)'\n },\n 'type': 'double'\n },\n 'process_state_information_source_part_configuration_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_information_source_part_configuration_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Information Source',\n 'category_value': 'Part Configuration'\n },\n 'type': 'id'\n },\n 'process_state_information_source_part_configuration_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_information_source_part_configuration_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Information Source',\n 'category_value': 'Part Configuration'\n },\n 'type': 'double'\n },\n 'process_state_information_source_run_detector_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_information_source_run_detector_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Information Source',\n 'category_value': 'Run Detector'\n },\n 'type': 'id'\n },\n 'process_state_information_source_run_detector_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_information_source_run_detector_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Information Source',\n 'category_value': 'Run Detector'\n },\n 'type': 'double'\n },\n 'process_state_information_source_time_schedule_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_information_source_time_schedule_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Information Source',\n 'category_value': 'Time Schedule'\n },\n 'type': 'id'\n },\n 'process_state_information_source_time_schedule_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_information_source_time_schedule_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Information Source',\n 'category_value': 'Time Schedule'\n },\n 'type': 'double'\n },\n 'process_state_information_source_timer_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_information_source_timer_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Information Source',\n 'category_value': 'Timer'\n },\n 'type': 'id'\n },\n 'process_state_information_source_timer_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_information_source_timer_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Information Source',\n 'category_value': 'Timer'\n },\n 'type': 'double'\n },\n 'process_state_information_source_web_page_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_information_source_web_page_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Information Source',\n 'category_value': 'Web Page'\n },\n 'type': 'id'\n },\n 'process_state_information_source_web_page_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_information_source_web_page_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Information Source',\n 'category_value': 'Web Page'\n },\n 'type': 'double'\n },\n 'process_state_maintenance_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_maintenance_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Production State',\n 'category_value': 'Maintenance'\n },\n 'type': 'id'\n },\n 'process_state_maintenance_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_maintenance_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Production State',\n 'category_value': 'Maintenance'\n },\n 'type': 'double'\n },\n 'process_state_meeting_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_meeting_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Production State',\n 'category_value': 'Meeting'\n },\n 'type': 'id'\n },\n 'process_state_meeting_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_meeting_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Production State',\n 'category_value': 'Meeting'\n },\n 'type': 'double'\n },\n 'process_state_no_production_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_no_production_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Production State',\n 'category_value': 'No Production'\n },\n 'type': 'id'\n },\n 'process_state_no_production_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_no_production_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Production State',\n 'category_value': 'No Production'\n },\n 'type': 'double'\n },\n 'process_state_not_monitored_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_not_monitored_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Production State',\n 'category_value': 'Not Monitored'\n },\n 'type': 'id'\n },\n 'process_state_not_monitored_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_not_monitored_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Production State',\n 'category_value': 'Not Monitored'\n },\n 'type': 'double'\n },\n 'process_state_occurrences': {\n 'display_name': 'term.process_state_occurrences.name',\n 'help_text': 'term.process_state_occurrences.short',\n 'internal': true,\n 'name': 'process_state_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': 'term.process_state_occurrences.scoreboard_name',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Information Source'\n },\n 'type': 'double'\n },\n 'process_state_performance_impact_not_scheduled_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_performance_impact_not_scheduled_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Impact',\n 'category_value': 'Not Scheduled'\n },\n 'type': 'id'\n },\n 'process_state_performance_impact_not_scheduled_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_performance_impact_not_scheduled_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Impact',\n 'category_value': 'Not Scheduled'\n },\n 'type': 'double'\n },\n 'process_state_performance_impact_planned_stop_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_performance_impact_planned_stop_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Impact',\n 'category_value': 'Planned Stop'\n },\n 'type': 'id'\n },\n 'process_state_performance_impact_planned_stop_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_performance_impact_planned_stop_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Impact',\n 'category_value': 'Planned Stop'\n },\n 'type': 'double'\n },\n 'process_state_performance_impact_run_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_performance_impact_run_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Impact',\n 'category_value': 'Run'\n },\n 'type': 'id'\n },\n 'process_state_performance_impact_run_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_performance_impact_run_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Impact',\n 'category_value': 'Run'\n },\n 'type': 'double'\n },\n 'process_state_performance_impact_unplanned_stop_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_performance_impact_unplanned_stop_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Impact',\n 'category_value': 'Unplanned Stop'\n },\n 'type': 'id'\n },\n 'process_state_performance_impact_unplanned_stop_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_performance_impact_unplanned_stop_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Impact',\n 'category_value': 'Unplanned Stop'\n },\n 'type': 'double'\n },\n 'process_state_process_state_reason_5s_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_5s_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': '5S'\n },\n 'type': 'id'\n },\n 'process_state_process_state_reason_5s_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_5s_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': '5S'\n },\n 'type': 'double'\n },\n 'process_state_process_state_reason_adjustment_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_adjustment_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Adjustment'\n },\n 'type': 'id'\n },\n 'process_state_process_state_reason_adjustment_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_adjustment_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Adjustment'\n },\n 'type': 'double'\n },\n 'process_state_process_state_reason_autonomous_maintenance_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_autonomous_maintenance_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Autonomous Maintenance'\n },\n 'type': 'id'\n },\n 'process_state_process_state_reason_autonomous_maintenance_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_autonomous_maintenance_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Autonomous Maintenance'\n },\n 'type': 'double'\n },\n 'process_state_process_state_reason_break_ended_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_break_ended_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Break Ended'\n },\n 'type': 'id'\n },\n 'process_state_process_state_reason_break_ended_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_break_ended_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Break Ended'\n },\n 'type': 'double'\n },\n 'process_state_process_state_reason_break_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_break_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Break'\n },\n 'type': 'id'\n },\n 'process_state_process_state_reason_break_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_break_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Break'\n },\n 'type': 'double'\n },\n 'process_state_process_state_reason_breakdown_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_breakdown_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Breakdown'\n },\n 'type': 'id'\n },\n 'process_state_process_state_reason_breakdown_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_breakdown_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Breakdown'\n },\n 'type': 'double'\n },\n 'process_state_process_state_reason_changeover_ended_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_changeover_ended_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Changeover Ended'\n },\n 'type': 'id'\n },\n 'process_state_process_state_reason_changeover_ended_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_changeover_ended_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Changeover Ended'\n },\n 'type': 'double'\n },\n 'process_state_process_state_reason_changeover_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_changeover_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Setup'\n },\n 'type': 'id'\n },\n 'process_state_process_state_reason_changeover_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_changeover_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Setup'\n },\n 'type': 'double'\n },\n 'process_state_process_state_reason_cleaning_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_cleaning_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Cleaning'\n },\n 'type': 'id'\n },\n 'process_state_process_state_reason_cleaning_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_cleaning_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Cleaning'\n },\n 'type': 'double'\n },\n 'process_state_process_state_reason_detecting_state_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_detecting_state_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Detecting State'\n },\n 'type': 'id'\n },\n 'process_state_process_state_reason_detecting_state_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_detecting_state_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Detecting State'\n },\n 'type': 'double'\n },\n 'process_state_process_state_reason_down_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_down_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Missing Reason'\n },\n 'type': 'id'\n },\n 'process_state_process_state_reason_down_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_down_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Missing Reason'\n },\n 'type': 'double'\n },\n 'process_state_process_state_reason_event_cleared_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_event_cleared_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Event Cleared'\n },\n 'type': 'id'\n },\n 'process_state_process_state_reason_event_cleared_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_event_cleared_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Event Cleared'\n },\n 'type': 'double'\n },\n 'process_state_process_state_reason_jam_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_jam_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Jam'\n },\n 'type': 'id'\n },\n 'process_state_process_state_reason_jam_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_jam_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Jam'\n },\n 'type': 'double'\n },\n 'process_state_process_state_reason_lubrication_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_lubrication_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Lubrication'\n },\n 'type': 'id'\n },\n 'process_state_process_state_reason_lubrication_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_lubrication_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Lubrication'\n },\n 'type': 'double'\n },\n 'process_state_process_state_reason_lunch_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_lunch_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Lunch'\n },\n 'type': 'id'\n },\n 'process_state_process_state_reason_lunch_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_lunch_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Lunch'\n },\n 'type': 'double'\n },\n 'process_state_process_state_reason_maintenance_ended_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_maintenance_ended_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Maintenance Ended'\n },\n 'type': 'id'\n },\n 'process_state_process_state_reason_maintenance_ended_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_maintenance_ended_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Maintenance Ended'\n },\n 'type': 'double'\n },\n 'process_state_process_state_reason_maintenance_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_maintenance_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'General Maintenance'\n },\n 'type': 'id'\n },\n 'process_state_process_state_reason_maintenance_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_maintenance_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'General Maintenance'\n },\n 'type': 'double'\n },\n 'process_state_process_state_reason_material_change_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_material_change_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Material Change'\n },\n 'type': 'id'\n },\n 'process_state_process_state_reason_material_change_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_material_change_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Material Change'\n },\n 'type': 'double'\n },\n 'process_state_process_state_reason_meeting_ended_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_meeting_ended_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Meeting Ended'\n },\n 'type': 'id'\n },\n 'process_state_process_state_reason_meeting_ended_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_meeting_ended_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Meeting Ended'\n },\n 'type': 'double'\n },\n 'process_state_process_state_reason_meeting_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_meeting_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Team Meeting'\n },\n 'type': 'id'\n },\n 'process_state_process_state_reason_meeting_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_meeting_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Team Meeting'\n },\n 'type': 'double'\n },\n 'process_state_process_state_reason_no_material_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_no_material_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'No Material'\n },\n 'type': 'id'\n },\n 'process_state_process_state_reason_no_material_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_no_material_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'No Material'\n },\n 'type': 'double'\n },\n 'process_state_process_state_reason_no_operator_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_no_operator_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'No Operator'\n },\n 'type': 'id'\n },\n 'process_state_process_state_reason_no_operator_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_no_operator_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'No Operator'\n },\n 'type': 'double'\n },\n 'process_state_process_state_reason_no_orders_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_no_orders_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'No Orders'\n },\n 'type': 'id'\n },\n 'process_state_process_state_reason_no_orders_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_no_orders_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'No Orders'\n },\n 'type': 'double'\n },\n 'process_state_process_state_reason_no_process_state_enabled_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_no_process_state_enabled_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'No State Enabled'\n },\n 'type': 'id'\n },\n 'process_state_process_state_reason_no_process_state_enabled_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_no_process_state_enabled_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'No State Enabled'\n },\n 'type': 'double'\n },\n 'process_state_process_state_reason_no_production_ended_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_no_production_ended_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'No Production Ended'\n },\n 'type': 'id'\n },\n 'process_state_process_state_reason_no_production_ended_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_no_production_ended_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'No Production Ended'\n },\n 'type': 'double'\n },\n 'process_state_process_state_reason_no_production_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_no_production_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'No Shift Scheduled'\n },\n 'type': 'id'\n },\n 'process_state_process_state_reason_no_production_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_no_production_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'No Shift Scheduled'\n },\n 'type': 'double'\n },\n 'process_state_process_state_reason_not_monitored_ended_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_not_monitored_ended_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Not Monitored Ended'\n },\n 'type': 'id'\n },\n 'process_state_process_state_reason_not_monitored_ended_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_not_monitored_ended_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Not Monitored Ended'\n },\n 'type': 'double'\n },\n 'process_state_process_state_reason_not_monitored_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_not_monitored_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Not Monitored'\n },\n 'type': 'id'\n },\n 'process_state_process_state_reason_not_monitored_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_not_monitored_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Not Monitored'\n },\n 'type': 'double'\n },\n 'process_state_process_state_reason_optional_shift_scheduled_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_optional_shift_scheduled_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Optional Shift Scheduled'\n },\n 'type': 'id'\n },\n 'process_state_process_state_reason_optional_shift_scheduled_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_optional_shift_scheduled_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Optional Shift Scheduled'\n },\n 'type': 'double'\n },\n 'process_state_process_state_reason_part_change_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_part_change_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Part Change'\n },\n 'type': 'id'\n },\n 'process_state_process_state_reason_part_change_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_part_change_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Part Change'\n },\n 'type': 'double'\n },\n 'process_state_process_state_reason_powered_off_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_powered_off_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Powered Off'\n },\n 'type': 'id'\n },\n 'process_state_process_state_reason_powered_off_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_powered_off_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Powered Off'\n },\n 'type': 'double'\n },\n 'process_state_process_state_reason_production_rejects_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_production_rejects_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Production Rejects'\n },\n 'type': 'id'\n },\n 'process_state_process_state_reason_production_rejects_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_production_rejects_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Production Rejects'\n },\n 'type': 'double'\n },\n 'process_state_process_state_reason_running_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_running_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Running Normally'\n },\n 'type': 'id'\n },\n 'process_state_process_state_reason_running_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_running_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Running Normally'\n },\n 'type': 'double'\n },\n 'process_state_process_state_reason_running_poor_quality_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_running_poor_quality_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Running Poor Quality'\n },\n 'type': 'id'\n },\n 'process_state_process_state_reason_running_poor_quality_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_running_poor_quality_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Running Poor Quality'\n },\n 'type': 'double'\n },\n 'process_state_process_state_reason_running_poorly_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_running_poorly_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Slow w/ Poor Quality'\n },\n 'type': 'id'\n },\n 'process_state_process_state_reason_running_poorly_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_running_poorly_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Slow w/ Poor Quality'\n },\n 'type': 'double'\n },\n 'process_state_process_state_reason_running_slow_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_running_slow_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Slow and/or Small Stops'\n },\n 'type': 'id'\n },\n 'process_state_process_state_reason_running_slow_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_running_slow_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Slow and/or Small Stops'\n },\n 'type': 'double'\n },\n 'process_state_process_state_reason_safety_meeting_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_safety_meeting_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Safety Meeting'\n },\n 'type': 'id'\n },\n 'process_state_process_state_reason_safety_meeting_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_safety_meeting_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Safety Meeting'\n },\n 'type': 'double'\n },\n 'process_state_process_state_reason_shift_ended_early_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_shift_ended_early_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Shift Ended Early'\n },\n 'type': 'id'\n },\n 'process_state_process_state_reason_shift_ended_early_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_shift_ended_early_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Shift Ended Early'\n },\n 'type': 'double'\n },\n 'process_state_process_state_reason_shift_handover_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_shift_handover_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Shift Handover'\n },\n 'type': 'id'\n },\n 'process_state_process_state_reason_shift_handover_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_shift_handover_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Shift Handover'\n },\n 'type': 'double'\n },\n 'process_state_process_state_reason_startup_rejects_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_startup_rejects_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Startup Rejects'\n },\n 'type': 'id'\n },\n 'process_state_process_state_reason_startup_rejects_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_startup_rejects_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Startup Rejects'\n },\n 'type': 'double'\n },\n 'process_state_process_state_reason_upgrading_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_upgrading_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Upgrading'\n },\n 'type': 'id'\n },\n 'process_state_process_state_reason_upgrading_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_process_state_reason_upgrading_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Reason',\n 'category_value': 'Upgrading'\n },\n 'type': 'double'\n },\n 'process_state_remaining_time': {\n 'classification': 'production_times',\n 'display_name': 'term.process_state_remaining_time.name',\n 'ephemeral': true,\n 'help_text': 'term.process_state_remaining_time.short',\n 'name': 'process_state_remaining_time',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.process_state_remaining_time.scoreboard_name',\n 'type': 'time_span'\n },\n 'process_state_running_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_running_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Production State',\n 'category_value': 'Running'\n },\n 'type': 'id'\n },\n 'process_state_running_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_running_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Production State',\n 'category_value': 'Running'\n },\n 'type': 'double'\n },\n 'process_state_running_poor_quality_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_running_poor_quality_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Production State',\n 'category_value': 'Running Poor Quality'\n },\n 'type': 'id'\n },\n 'process_state_running_poor_quality_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_running_poor_quality_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Production State',\n 'category_value': 'Running Poor Quality'\n },\n 'type': 'double'\n },\n 'process_state_running_poorly_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_running_poorly_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Production State',\n 'category_value': 'Running Poorly'\n },\n 'type': 'id'\n },\n 'process_state_running_poorly_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_running_poorly_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Production State',\n 'category_value': 'Running Poorly'\n },\n 'type': 'double'\n },\n 'process_state_running_slow_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_running_slow_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Production State',\n 'category_value': 'Running Slow'\n },\n 'type': 'id'\n },\n 'process_state_running_slow_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'process_state_running_slow_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Production State',\n 'category_value': 'Running Slow'\n },\n 'type': 'double'\n },\n 'production_day_event_id': {\n 'display_name': 'term.production_day_event_id.name',\n 'help_text': 'term.production_day_event_id.short',\n 'indexed': true,\n 'indexed_with': [\n 'record_order'\n ],\n 'name': 'production_day_event_id',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.production_day_event_id.scoreboard_name',\n 'type': 'id'\n },\n 'production_day_number': {\n 'aggregation': 'none',\n 'classification': 'production_times',\n 'display_name': 'term.production_day_number.name',\n 'help_text': 'term.production_day_number.short',\n 'indexed': true,\n 'indexed_with': [\n 'record_order'\n ],\n 'internal': true,\n 'name': 'production_day_number',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.production_day_number.scoreboard_name',\n 'type': 'uint64'\n },\n 'production_loss': {\n 'aggregation': 'none',\n 'classification': 'teep',\n 'display_name': 'term.production_loss.name',\n 'formula': ' 1 - teep - capacity_loss',\n 'help_text': 'term.production_loss.short',\n 'increasing_is': 'bad',\n 'name': 'production_loss',\n 'rollup': true,\n 'scoreboard_name': 'term.production_loss.scoreboard_name',\n 'subtype': 'percent',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'production_lost_time': {\n 'aggregation': 'none',\n 'classification': 'teep',\n 'display_name': 'term.production_lost_time.name',\n 'formula': 'oee_lost_time',\n 'help_text': 'term.production_lost_time.short',\n 'increasing_is': 'bad',\n 'name': 'production_lost_time',\n 'rollup': true,\n 'scoreboard_name': 'term.production_lost_time.scoreboard_name',\n 'translation_arguments': {},\n 'type': 'time_span'\n },\n 'production_phase_changeover_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'production_phase_changeover_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Production Phase',\n 'category_value': 'Changeover'\n },\n 'type': 'id'\n },\n 'production_phase_changeover_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'production_phase_changeover_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Production Phase',\n 'category_value': 'Changeover'\n },\n 'type': 'double'\n },\n 'production_phase_event_id': {\n 'display_name': 'term.production_phase_event_id.name',\n 'help_text': 'term.production_phase_event_id.short',\n 'indexed': true,\n 'indexed_with': [\n 'record_order'\n ],\n 'name': 'production_phase_event_id',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.production_phase_event_id.scoreboard_name',\n 'type': 'id'\n },\n 'production_phase_null_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'production_phase_null_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Production Phase',\n 'category_value': 'No Part'\n },\n 'type': 'id'\n },\n 'production_phase_null_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'production_phase_null_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Production Phase',\n 'category_value': 'No Part'\n },\n 'type': 'double'\n },\n 'production_phase_occurrences': {\n 'display_name': 'term.production_phase_occurrences.name',\n 'help_text': 'term.production_phase_occurrences.short',\n 'internal': true,\n 'name': 'production_phase_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': 'term.production_phase_occurrences.scoreboard_name',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Production Phase'\n },\n 'type': 'double'\n },\n 'production_phase_remaining_time': {\n 'classification': 'production_times',\n 'display_name': 'term.production_phase_remaining_time.name',\n 'ephemeral': true,\n 'help_text': 'term.production_phase_remaining_time.short',\n 'internal': true,\n 'name': 'production_phase_remaining_time',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.production_phase_remaining_time.scoreboard_name',\n 'type': 'time_span'\n },\n 'production_phase_startup_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'production_phase_startup_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Production Phase',\n 'category_value': 'Startup'\n },\n 'type': 'id'\n },\n 'production_phase_startup_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'production_phase_startup_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Production Phase',\n 'category_value': 'Startup'\n },\n 'type': 'double'\n },\n 'production_phase_steady_state_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'production_phase_steady_state_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Production Phase',\n 'category_value': 'Steady-State'\n },\n 'type': 'id'\n },\n 'production_phase_steady_state_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'production_phase_steady_state_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Production Phase',\n 'category_value': 'Steady-State'\n },\n 'type': 'double'\n },\n 'production_reject_loss': {\n 'aggregation': 'none',\n 'classification': 'six_big_losses',\n 'display_name': 'term.production_reject_loss.name',\n 'formula': 'percent_production_rejects_or_zero * availability_or_zero * performance_or_zero',\n 'help_text': 'term.production_reject_loss.short',\n 'increasing_is': 'bad',\n 'name': 'production_reject_loss',\n 'rollup': true,\n 'scoreboard_name': 'term.production_reject_loss.scoreboard_name',\n 'subtype': 'percent',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'production_reject_loss_or_zero': {\n 'aggregation': 'none',\n 'classification': 'six_big_losses',\n 'display_name': 'term.production_reject_loss_or_zero.name',\n 'formula': 'zero_null(production_reject_loss)',\n 'help_text': 'term.production_reject_loss_or_zero.short',\n 'increasing_is': 'bad',\n 'internal': true,\n 'name': 'production_reject_loss_or_zero',\n 'rollup': true,\n 'scoreboard_name': 'term.production_reject_loss_or_zero.scoreboard_name',\n 'subtype': 'percent',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'production_reject_lost_time': {\n 'aggregation': 'none',\n 'classification': 'six_big_losses',\n 'display_name': 'term.production_reject_lost_time.name',\n 'formula': 'production_reject_loss_or_zero * production_time',\n 'help_text': 'term.production_reject_lost_time.short',\n 'increasing_is': 'bad',\n 'name': 'production_reject_lost_time',\n 'rollup': true,\n 'scoreboard_name': 'term.production_reject_lost_time.scoreboard_name',\n 'translation_arguments': {},\n 'type': 'time_span'\n },\n 'production_rejects': {\n 'aggregation': 'none',\n 'classification': 'counts',\n 'display_name': 'term.production_rejects.name',\n 'formula': 'reject_count - startup_rejects',\n 'help_text': 'term.production_rejects.short',\n 'name': 'production_rejects',\n 'rollup': true,\n 'scoreboard_name': 'term.production_rejects.scoreboard_name',\n 'subtype': 'count',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'production_time': {\n 'aggregation': 'none',\n 'classification': 'production_times',\n 'display_name': 'term.production_time.name',\n 'formula': 'manufacturing_time + planned_stop_time',\n 'help_text': 'term.production_time.short',\n 'name': 'production_time',\n 'rollup': true,\n 'scoreboard_name': 'term.production_time.scoreboard_name',\n 'translation_arguments': {},\n 'type': 'time_span'\n },\n 'quality': {\n 'aggregation': 'none',\n 'classification': 'oee',\n 'display_name': 'term.quality.name',\n 'formula': '1 - zero_null(reject_count / total_count)',\n 'help_text': 'term.quality.short',\n 'increasing_is': 'good',\n 'name': 'quality',\n 'rollup': true,\n 'scoreboard_name': 'term.quality.scoreboard_name',\n 'subtype': 'percent',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'quality_loss': {\n 'aggregation': 'none',\n 'classification': 'oee',\n 'display_name': 'term.quality_loss.name',\n 'formula': '(1 - quality) * availability_or_zero * performance_or_zero',\n 'help_text': 'term.quality_loss.short',\n 'increasing_is': 'bad',\n 'name': 'quality_loss',\n 'rollup': true,\n 'scoreboard_name': 'term.quality_loss.scoreboard_name',\n 'subtype': 'percent',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'quality_lost_time': {\n 'aggregation': 'none',\n 'classification': 'oee',\n 'display_name': 'term.quality_lost_time.name',\n 'formula': 'quality_loss * production_time',\n 'help_text': 'term.quality_lost_time.short',\n 'increasing_is': 'bad',\n 'name': 'quality_lost_time',\n 'rollup': true,\n 'scoreboard_name': 'term.quality_lost_time.scoreboard_name',\n 'translation_arguments': {},\n 'type': 'time_span'\n },\n 'quality_or_zero': {\n 'aggregation': 'none',\n 'classification': 'oee',\n 'display_name': 'term.quality_or_zero.name',\n 'formula': 'zero_null(quality)',\n 'help_text': 'term.quality_or_zero.short',\n 'increasing_is': 'good',\n 'internal': true,\n 'name': 'quality_or_zero',\n 'rollup': true,\n 'scoreboard_name': 'term.quality_or_zero.scoreboard_name',\n 'subtype': 'percent',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'quarter_event_id': {\n 'display_name': 'term.quarter_event_id.name',\n 'help_text': 'term.quarter_event_id.short',\n 'indexed': true,\n 'indexed_with': [\n 'record_order'\n ],\n 'name': 'quarter_event_id',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.quarter_event_id.scoreboard_name',\n 'type': 'id'\n },\n 'rate_efficiency': {\n 'aggregation': 'none',\n 'classification': 'target',\n 'display_name': 'term.rate_efficiency.name',\n 'formula': 'efficiency',\n 'help_text': 'term.rate_efficiency.short',\n 'increasing_is': 'good',\n 'name': 'rate_efficiency',\n 'rollup': true,\n 'scoreboard_name': 'term.rate_efficiency.scoreboard_name',\n 'subtype': 'percent',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'record_id': {\n 'aggregation': 'max',\n 'display_name': 'term.record_id.name',\n 'help_text': 'term.record_id.short',\n 'name': 'record_id',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.record_id.scoreboard_name',\n 'type': 'id'\n },\n 'record_order': {\n 'aggregation': 'min',\n 'display_name': 'term.record_order.name',\n 'help_text': 'term.record_order.short',\n 'indexed': true,\n 'internal': true,\n 'name': 'record_order',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.record_order.scoreboard_name',\n 'type': 'id'\n },\n 'reject_count': {\n 'aggregate_to': {\n 'channel': 'quality',\n 'metric': 'count'\n },\n 'classification': 'counts',\n 'display_name': 'term.reject_count.name',\n 'help_text': 'term.reject_count.short',\n 'name': 'reject_count',\n 'rollup': true,\n 'scoreboard_name': 'term.reject_count.scoreboard_name',\n 'subtype': 'count',\n 'type': 'double'\n },\n 'reject_rate': {\n 'aggregation': 'none',\n 'classification': 'rates',\n 'display_name': 'term.reject_rate.name',\n 'formula': 'reject_count / manufacturing_time * 60',\n 'help_text': 'term.reject_rate.short',\n 'name': 'reject_rate',\n 'rollup': true,\n 'scoreboard_name': 'term.reject_rate.scoreboard_name',\n 'subtype': 'rate',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'reject_rate_per_hour': {\n 'aggregation': 'none',\n 'classification': 'rates',\n 'display_name': 'term.reject_rate_per_hour.name',\n 'formula': 'reject_count / manufacturing_time * 3600',\n 'help_text': 'term.reject_rate_per_hour.short',\n 'name': 'reject_rate_per_hour',\n 'rollup': true,\n 'scoreboard_name': 'term.reject_rate_per_hour.scoreboard_name',\n 'subtype': 'rate_per_hour',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'reject_speed': {\n 'aggregation': 'none',\n 'classification': 'rates',\n 'display_name': 'term.reject_speed.name',\n 'formula': 'reject_count / run_time * 60',\n 'help_text': 'term.reject_speed.short',\n 'name': 'reject_speed',\n 'rollup': true,\n 'scoreboard_name': 'term.reject_speed.scoreboard_name',\n 'subtype': 'rate',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'reject_speed_per_hour': {\n 'aggregation': 'none',\n 'classification': 'rates',\n 'display_name': 'term.reject_speed_per_hour.name',\n 'formula': 'reject_count / run_time * 3600',\n 'help_text': 'term.reject_speed_per_hour.short',\n 'name': 'reject_speed_per_hour',\n 'rollup': true,\n 'scoreboard_name': 'term.reject_speed_per_hour.scoreboard_name',\n 'subtype': 'rate_per_hour',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'remaining_percent': {\n 'classification': 'production_times',\n 'display_name': 'term.remaining_percent.name',\n 'ephemeral': true,\n 'help_text': 'term.remaining_percent.short',\n 'internal': true,\n 'name': 'remaining_percent',\n 'persist': true,\n 'rollup': false,\n 'scoreboard_name': 'term.remaining_percent.scoreboard_name',\n 'subtype': 'percent',\n 'type': 'double'\n },\n 'run_confidence': {\n 'classification': 'production_times',\n 'display_name': 'term.run_confidence.name',\n 'ephemeral': true,\n 'help_text': 'term.run_confidence.short',\n 'internal': true,\n 'name': 'run_confidence',\n 'persist': true,\n 'rollup': false,\n 'scoreboard_name': 'term.run_confidence.scoreboard_name',\n 'subtype': 'percent',\n 'type': 'double'\n },\n 'run_cycle_lost_time': {\n 'classification': 'cycles',\n 'display_name': 'term.run_cycle_lost_time.name',\n 'help_text': 'term.run_cycle_lost_time.short',\n 'increasing_is': 'bad',\n 'name': 'run_cycle_lost_time',\n 'rollup': true,\n 'scoreboard_name': 'term.run_cycle_lost_time.scoreboard_name',\n 'type': 'time_span'\n },\n 'run_cycles': {\n 'classification': 'cycles',\n 'display_name': 'term.run_cycles.name',\n 'help_text': 'term.run_cycles.short',\n 'name': 'run_cycles',\n 'rollup': true,\n 'scoreboard_name': 'term.run_cycles.scoreboard_name',\n 'subtype': 'cycle',\n 'type': 'double'\n },\n 'run_time': {\n 'classification': 'production_times',\n 'display_name': 'term.run_time.name',\n 'help_text': 'term.run_time.short',\n 'increasing_is': 'good',\n 'name': 'run_time',\n 'rollup': true,\n 'scoreboard_name': 'term.run_time.scoreboard_name',\n 'type': 'time_span'\n },\n 'shift_event_id': {\n 'display_name': 'term.shift_event_id.name',\n 'help_text': 'term.shift_event_id.short',\n 'indexed': true,\n 'indexed_with': [\n 'record_order'\n ],\n 'name': 'shift_event_id',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.shift_event_id.scoreboard_name',\n 'type': 'id'\n },\n 'shift_first_shift_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'shift_first_shift_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Shift',\n 'category_value': 'First Shift'\n },\n 'type': 'id'\n },\n 'shift_first_shift_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'shift_first_shift_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Shift',\n 'category_value': 'First Shift'\n },\n 'type': 'double'\n },\n 'shift_hour_event_id': {\n 'display_name': 'term.shift_hour_event_id.name',\n 'help_text': 'term.shift_hour_event_id.short',\n 'indexed': true,\n 'indexed_with': [\n 'record_order'\n ],\n 'name': 'shift_hour_event_id',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.shift_hour_event_id.scoreboard_name',\n 'type': 'id'\n },\n 'shift_hour_occurrences': {\n 'display_name': 'term.shift_hour_occurrences.name',\n 'help_text': 'term.shift_hour_occurrences.short',\n 'internal': true,\n 'name': 'shift_hour_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': 'term.shift_hour_occurrences.scoreboard_name',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Hour'\n },\n 'type': 'double'\n },\n 'shift_null_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'shift_null_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Shift',\n 'category_value': 'No Shift'\n },\n 'type': 'id'\n },\n 'shift_null_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'shift_null_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Shift',\n 'category_value': 'No Shift'\n },\n 'type': 'double'\n },\n 'shift_occurrences': {\n 'display_name': 'term.shift_occurrences.name',\n 'help_text': 'term.shift_occurrences.short',\n 'internal': true,\n 'name': 'shift_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': 'term.shift_occurrences.scoreboard_name',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Shift'\n },\n 'type': 'double'\n },\n 'shift_second_shift_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'shift_second_shift_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Shift',\n 'category_value': 'Second Shift'\n },\n 'type': 'id'\n },\n 'shift_second_shift_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'shift_second_shift_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Shift',\n 'category_value': 'Second Shift'\n },\n 'type': 'double'\n },\n 'shift_third_shift_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'shift_third_shift_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Shift',\n 'category_value': 'Third Shift'\n },\n 'type': 'id'\n },\n 'shift_third_shift_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'shift_third_shift_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Shift',\n 'category_value': 'Third Shift'\n },\n 'type': 'double'\n },\n 'shift_unknown_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'shift_unknown_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Shift',\n 'category_value': 'Unknown Shift'\n },\n 'type': 'id'\n },\n 'shift_unknown_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'shift_unknown_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Shift',\n 'category_value': 'Unknown Shift'\n },\n 'type': 'double'\n },\n 'slice_order': {\n 'display_name': 'term.slice_order.name',\n 'help_text': 'term.slice_order.short',\n 'indexed': true,\n 'internal': true,\n 'name': 'slice_order',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.slice_order.scoreboard_name',\n 'type': 'id',\n 'unique': true\n },\n 'small_stop_loss': {\n 'aggregation': 'none',\n 'classification': 'six_big_losses',\n 'display_name': 'term.small_stop_loss.name',\n 'formula': 'small_stop_lost_time / production_time',\n 'help_text': 'term.small_stop_loss.short',\n 'increasing_is': 'bad',\n 'name': 'small_stop_loss',\n 'rollup': true,\n 'scoreboard_name': 'term.small_stop_loss.scoreboard_name',\n 'subtype': 'percent',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'small_stop_lost_time': {\n 'classification': 'six_big_losses',\n 'display_name': 'term.small_stop_lost_time.name',\n 'help_text': 'term.small_stop_lost_time.short',\n 'increasing_is': 'bad',\n 'name': 'small_stop_lost_time',\n 'rollup': true,\n 'scoreboard_name': 'term.small_stop_lost_time.scoreboard_name',\n 'type': 'time_span'\n },\n 'small_stops': {\n 'classification': 'cycles',\n 'display_name': 'term.small_stops.name',\n 'help_text': 'term.small_stops.short',\n 'name': 'small_stops',\n 'rollup': true,\n 'scoreboard_name': 'term.small_stops.scoreboard_name',\n 'subtype': 'cycle',\n 'type': 'double'\n },\n 'start_time': {\n 'aggregation': 'datetime_min',\n 'classification': 'production_times',\n 'display_name': 'term.start_time.name',\n 'help_text': 'term.start_time.short',\n 'name': 'start_time',\n 'persist': true,\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': 'term.start_time.scoreboard_name',\n 'type': 'date_time'\n },\n 'startup_reject_loss': {\n 'aggregation': 'none',\n 'classification': 'six_big_losses',\n 'display_name': 'term.startup_reject_loss.name',\n 'formula': 'percent_startup_rejects_or_zero * availability_or_zero * performance_or_zero',\n 'help_text': 'term.startup_reject_loss.short',\n 'increasing_is': 'bad',\n 'name': 'startup_reject_loss',\n 'rollup': true,\n 'scoreboard_name': 'term.startup_reject_loss.scoreboard_name',\n 'subtype': 'percent',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'startup_reject_loss_or_zero': {\n 'aggregation': 'none',\n 'classification': 'six_big_losses',\n 'display_name': 'term.startup_reject_loss_or_zero.name',\n 'formula': 'zero_null(startup_reject_loss)',\n 'help_text': 'term.startup_reject_loss_or_zero.short',\n 'increasing_is': 'bad',\n 'internal': true,\n 'name': 'startup_reject_loss_or_zero',\n 'rollup': true,\n 'scoreboard_name': 'term.startup_reject_loss_or_zero.scoreboard_name',\n 'subtype': 'percent',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'startup_reject_lost_time': {\n 'aggregation': 'none',\n 'classification': 'six_big_losses',\n 'display_name': 'term.startup_reject_lost_time.name',\n 'formula': 'startup_reject_loss_or_zero * production_time',\n 'help_text': 'term.startup_reject_lost_time.short',\n 'increasing_is': 'bad',\n 'name': 'startup_reject_lost_time',\n 'rollup': true,\n 'scoreboard_name': 'term.startup_reject_lost_time.scoreboard_name',\n 'translation_arguments': {},\n 'type': 'time_span'\n },\n 'startup_rejects': {\n 'classification': 'counts',\n 'display_name': 'term.startup_rejects.name',\n 'help_text': 'term.startup_rejects.short',\n 'name': 'startup_rejects',\n 'rollup': true,\n 'scoreboard_name': 'term.startup_rejects.scoreboard_name',\n 'subtype': 'count',\n 'type': 'double'\n },\n 'sync_id': {\n 'aggregation': 'sync_id',\n 'display_name': 'term.sync_id.name',\n 'help_text': 'term.sync_id.short',\n 'indexed': true,\n 'internal': true,\n 'name': 'sync_id',\n 'rollup': true,\n 'scoreboard_name': 'term.sync_id.scoreboard_name',\n 'type': 'id'\n },\n 'takt_time': {\n 'classification': 'target',\n 'display_name': 'term.takt_time.name',\n 'ephemeral': true,\n 'help_text': 'term.takt_time.short',\n 'name': 'takt_time',\n 'persist': true,\n 'rollup': false,\n 'scoreboard_name': 'term.takt_time.scoreboard_name',\n 'subtype': 'cycle_time',\n 'type': 'time_span'\n },\n 'target_count': {\n 'classification': 'target',\n 'display_name': 'term.target_count.name',\n 'help_text': 'term.target_count.short',\n 'name': 'target_count',\n 'rollup': true,\n 'scoreboard_name': 'term.target_count.scoreboard_name',\n 'subtype': 'count',\n 'type': 'double'\n },\n 'target_cycles': {\n 'classification': 'target',\n 'display_name': 'term.target_cycles.name',\n 'help_text': 'term.target_cycles.short',\n 'name': 'target_cycles',\n 'rollup': true,\n 'scoreboard_name': 'term.target_cycles.scoreboard_name',\n 'subtype': 'cycle',\n 'type': 'double'\n },\n 'target_labor_per_piece': {\n 'aggregation': 'none',\n 'classification': 'labor',\n 'display_name': 'term.target_labor_per_piece.name',\n 'formula': 'earned_labor / good_count',\n 'help_text': 'term.target_labor_per_piece.short',\n 'name': 'target_labor_per_piece',\n 'rollup': true,\n 'scoreboard_name': 'term.target_labor_per_piece.scoreboard_name',\n 'subtype': 'cycle_time',\n 'translation_arguments': {},\n 'type': 'time_span'\n },\n 'target_rate': {\n 'aggregation': 'none',\n 'classification': 'rates',\n 'display_name': 'term.target_rate.name',\n 'formula': 'target_count / manufacturing_time * 60',\n 'help_text': 'term.target_rate.short',\n 'name': 'target_rate',\n 'rollup': true,\n 'scoreboard_name': 'term.target_rate.scoreboard_name',\n 'subtype': 'rate',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'target_rate_per_hour': {\n 'aggregation': 'none',\n 'classification': 'rates',\n 'display_name': 'term.target_rate_per_hour.name',\n 'formula': 'target_count / manufacturing_time * 3600',\n 'help_text': 'term.target_rate_per_hour.short',\n 'name': 'target_rate_per_hour',\n 'rollup': true,\n 'scoreboard_name': 'term.target_rate_per_hour.scoreboard_name',\n 'subtype': 'rate_per_hour',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'target_time': {\n 'classification': 'production_times',\n 'display_name': 'term.target_time.name',\n 'ephemeral': true,\n 'help_text': 'term.target_time.short',\n 'name': 'target_time',\n 'persist': true,\n 'rollup': false,\n 'scoreboard_name': 'term.target_time.scoreboard_name',\n 'type': 'time_span'\n },\n 'team_event_id': {\n 'display_name': 'term.team_event_id.name',\n 'help_text': 'term.team_event_id.short',\n 'indexed': true,\n 'indexed_with': [\n 'record_order'\n ],\n 'name': 'team_event_id',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.team_event_id.scoreboard_name',\n 'type': 'id'\n },\n 'team_null_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'team_null_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Team',\n 'category_value': 'No Team'\n },\n 'type': 'id'\n },\n 'team_null_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'team_null_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Team',\n 'category_value': 'No Team'\n },\n 'type': 'double'\n },\n 'team_occurrences': {\n 'display_name': 'term.team_occurrences.name',\n 'help_text': 'term.team_occurrences.short',\n 'internal': true,\n 'name': 'team_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': 'term.team_occurrences.scoreboard_name',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Team'\n },\n 'type': 'double'\n },\n 'team_size': {\n 'classification': 'labor',\n 'display_name': 'term.team_size.name',\n 'ephemeral': true,\n 'help_text': 'term.team_size.short',\n 'name': 'team_size',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.team_size.scoreboard_name',\n 'type': 'double'\n },\n 'team_unknown_list_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'team_unknown_list_occurrences',\n 'post_process': 'id_array',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'translation_arguments': {\n 'category': 'Team',\n 'category_value': 'Unknown Team'\n },\n 'type': 'id'\n },\n 'team_unknown_occurrences': {\n 'classification': 'events',\n 'display_name': 'occurrences_display_name_template',\n 'help_text': 'occurrences_help_text_template',\n 'name': 'team_unknown_occurrences',\n 'rollup': true,\n 'scoreboard': false,\n 'scoreboard_name': '',\n 'subtype': 'count',\n 'translation_arguments': {\n 'category': 'Team',\n 'category_value': 'Unknown Team'\n },\n 'type': 'double'\n },\n 'teep': {\n 'aggregation': 'none',\n 'classification': 'teep',\n 'display_name': 'term.teep.name',\n 'formula': 'availability_or_zero * performance_or_zero * quality_or_zero * utilization',\n 'help_text': 'term.teep.short',\n 'increasing_is': 'good',\n 'name': 'teep',\n 'rollup': true,\n 'scoreboard_name': 'term.teep.scoreboard_name',\n 'subtype': 'percent',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'time_variance': {\n 'aggregation': 'none',\n 'classification': 'target',\n 'display_name': 'term.time_variance.name',\n 'formula': 'percent_variance * manufacturing_time',\n 'help_text': 'term.time_variance.short',\n 'name': 'time_variance',\n 'rollup': true,\n 'scoreboard_name': 'term.time_variance.scoreboard_name',\n 'translation_arguments': {},\n 'type': 'time_span'\n },\n 'total_count': {\n 'aggregation': 'none',\n 'classification': 'counts',\n 'display_name': 'term.total_count.name',\n 'formula': 'good_count + reject_count',\n 'help_text': 'term.total_count.short',\n 'name': 'total_count',\n 'rollup': true,\n 'scoreboard_name': 'term.total_count.scoreboard_name',\n 'subtype': 'count',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'total_cycle_time': {\n 'aggregation': 'none',\n 'classification': 'cycles',\n 'display_name': 'term.total_cycle_time.name',\n 'formula': 'ideal_time + run_cycle_lost_time + small_stop_lost_time + partial_cycle_lost_time',\n 'help_text': 'term.total_cycle_time.short',\n 'name': 'total_cycle_time',\n 'rollup': true,\n 'scoreboard_name': 'term.total_cycle_time.scoreboard_name',\n 'translation_arguments': {},\n 'type': 'time_span'\n },\n 'total_cycles': {\n 'aggregation': 'none',\n 'classification': 'cycles',\n 'display_name': 'term.total_cycles.name',\n 'formula': 'run_cycles + small_stops + partial_cycles',\n 'help_text': 'term.total_cycles.short',\n 'name': 'total_cycles',\n 'rollup': true,\n 'scoreboard_name': 'term.total_cycles.scoreboard_name',\n 'subtype': 'cycle',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'total_rate': {\n 'aggregation': 'none',\n 'classification': 'rates',\n 'display_name': 'term.total_rate.name',\n 'formula': 'total_count / manufacturing_time * 60',\n 'help_text': 'term.total_rate.short',\n 'name': 'total_rate',\n 'rollup': true,\n 'scoreboard_name': 'term.total_rate.scoreboard_name',\n 'subtype': 'rate',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'total_rate_per_hour': {\n 'aggregation': 'none',\n 'classification': 'rates',\n 'display_name': 'term.total_rate_per_hour.name',\n 'formula': 'total_count / manufacturing_time * 3600',\n 'help_text': 'term.total_rate_per_hour.short',\n 'name': 'total_rate_per_hour',\n 'rollup': true,\n 'scoreboard_name': 'term.total_rate_per_hour.scoreboard_name',\n 'subtype': 'rate_per_hour',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'total_speed': {\n 'aggregation': 'none',\n 'classification': 'rates',\n 'display_name': 'term.total_speed.name',\n 'formula': 'total_count / run_time * 60',\n 'help_text': 'term.total_speed.short',\n 'name': 'total_speed',\n 'rollup': true,\n 'scoreboard_name': 'term.total_speed.scoreboard_name',\n 'subtype': 'rate',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'total_speed_per_hour': {\n 'aggregation': 'none',\n 'classification': 'rates',\n 'display_name': 'term.total_speed_per_hour.name',\n 'formula': 'total_count / run_time * 3600',\n 'help_text': 'term.total_speed_per_hour.short',\n 'name': 'total_speed_per_hour',\n 'rollup': true,\n 'scoreboard_name': 'term.total_speed_per_hour.scoreboard_name',\n 'subtype': 'rate_per_hour',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'unplanned_stop_loss': {\n 'aggregation': 'none',\n 'classification': 'six_big_losses',\n 'display_name': 'term.unplanned_stop_loss.name',\n 'formula': 'unplanned_stop_time / production_time',\n 'help_text': 'term.unplanned_stop_loss.short',\n 'increasing_is': 'bad',\n 'name': 'unplanned_stop_loss',\n 'rollup': true,\n 'scoreboard_name': 'term.unplanned_stop_loss.scoreboard_name',\n 'subtype': 'percent',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'unplanned_stop_lost_time': {\n 'aggregation': 'none',\n 'classification': 'six_big_losses',\n 'display_name': 'term.unplanned_stop_lost_time.name',\n 'formula': 'unplanned_stop_time',\n 'help_text': 'term.unplanned_stop_lost_time.short',\n 'increasing_is': 'bad',\n 'name': 'unplanned_stop_lost_time',\n 'rollup': true,\n 'scoreboard_name': 'term.unplanned_stop_lost_time.scoreboard_name',\n 'translation_arguments': {},\n 'type': 'time_span'\n },\n 'unplanned_stop_time': {\n 'classification': 'production_times',\n 'display_name': 'term.unplanned_stop_time.name',\n 'help_text': 'term.unplanned_stop_time.short',\n 'increasing_is': 'bad',\n 'name': 'unplanned_stop_time',\n 'rollup': true,\n 'scoreboard_name': 'term.unplanned_stop_time.scoreboard_name',\n 'type': 'time_span'\n },\n 'utilization': {\n 'aggregation': 'none',\n 'classification': 'teep',\n 'display_name': 'term.utilization.name',\n 'formula': 'production_time / all_time',\n 'help_text': 'term.utilization.short',\n 'increasing_is': 'good',\n 'name': 'utilization',\n 'rollup': true,\n 'scoreboard_name': 'term.utilization.scoreboard_name',\n 'subtype': 'percent',\n 'translation_arguments': {},\n 'type': 'double'\n },\n 'week_event_id': {\n 'display_name': 'term.week_event_id.name',\n 'help_text': 'term.week_event_id.short',\n 'indexed': true,\n 'indexed_with': [\n 'record_order'\n ],\n 'name': 'week_event_id',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.week_event_id.scoreboard_name',\n 'type': 'id'\n },\n 'wip': {\n 'aggregation': 'none',\n 'classification': 'counts',\n 'display_name': 'term.wip.name',\n 'help_text': 'term.wip.short',\n 'name': 'wip',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.wip.scoreboard_name',\n 'subtype': 'count',\n 'type': 'double'\n },\n 'year_event_id': {\n 'display_name': 'term.year_event_id.name',\n 'help_text': 'term.year_event_id.short',\n 'indexed': true,\n 'indexed_with': [\n 'record_order'\n ],\n 'name': 'year_event_id',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.year_event_id.scoreboard_name',\n 'type': 'id'\n }\n },\n 'name': 'production_metric',\n 'primary_key': 'record_id',\n 'slicing_parent': 'production_metric'\n },\n 'production_phase': {\n 'display_name': 'production_phase_channel_literal',\n 'name': 'production_phase',\n 'projecting_base': 'production_metric',\n 'protected': true\n },\n 'quality': {\n 'aggregating_boundary_parent': 'production_metric',\n 'annotations': {\n 'reject_reason_display_name': {\n 'display_name': 'term.reject_reason_display_name.name',\n 'help_text': 'term.reject_reason_display_name.short',\n 'name': 'reject_reason_display_name',\n 'scoreboard_name': 'term.reject_reason_display_name.scoreboard_name'\n }\n },\n 'category_values': {\n 'reject_reason': {\n 'category': 'reject_reason',\n 'display_name': 'term.reject_reason.name',\n 'help_text': 'term.reject_reason.short',\n 'indexed': true,\n 'name': 'reject_reason',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.reject_reason.scoreboard_name'\n }\n },\n 'display_name': 'quality_channel_literal',\n 'metrics': {\n 'boundary_parent_event_id': {\n 'display_name': 'term.boundary_parent_event_id.name',\n 'help_text': 'term.boundary_parent_event_id.short',\n 'indexed': true,\n 'internal': true,\n 'name': 'boundary_parent_event_id',\n 'persist': true,\n 'reference': true,\n 'rollup': true,\n 'scoreboard_name': 'term.boundary_parent_event_id.scoreboard_name',\n 'type': 'id'\n },\n 'count': {\n 'classification': 'counts',\n 'display_name': 'term.count.name',\n 'help_text': 'term.count.short',\n 'name': 'count',\n 'rollup': true,\n 'scoreboard_name': 'term.count.scoreboard_name',\n 'subtype': 'count',\n 'type': 'double'\n },\n 'event_id': {\n 'display_name': 'term.event_id.name',\n 'help_text': 'term.event_id.short',\n 'indexed': true,\n 'internal': true,\n 'name': 'event_id',\n 'persist': true,\n 'reference': true,\n 'rollup': true,\n 'scoreboard_name': 'term.event_id.scoreboard_name',\n 'type': 'id'\n },\n 'production_day_number': {\n 'aggregation': 'none',\n 'display_name': 'term.production_day_number.name',\n 'help_text': 'term.production_day_number.short',\n 'internal': true,\n 'name': 'production_day_number',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.production_day_number.scoreboard_name',\n 'type': 'uint64'\n },\n 'record_id': {\n 'aggregation': 'max',\n 'display_name': 'term.record_id.name',\n 'help_text': 'term.record_id.short',\n 'name': 'record_id',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.record_id.scoreboard_name',\n 'type': 'id'\n },\n 'record_order': {\n 'aggregation': 'min',\n 'display_name': 'term.record_order.name',\n 'help_text': 'term.record_order.short',\n 'indexed': true,\n 'internal': true,\n 'name': 'record_order',\n 'persist': true,\n 'reference': true,\n 'rollup': true,\n 'scoreboard_name': 'term.record_order.scoreboard_name',\n 'type': 'id'\n },\n 'slice_order': {\n 'display_name': 'term.slice_order.name',\n 'help_text': 'term.slice_order.short',\n 'indexed': true,\n 'internal': true,\n 'name': 'slice_order',\n 'persist': true,\n 'reference': true,\n 'rollup': true,\n 'scoreboard_name': 'term.slice_order.scoreboard_name',\n 'type': 'id'\n },\n 'sync_id': {\n 'aggregation': 'sync_id',\n 'display_name': 'term.sync_id.name',\n 'help_text': 'term.sync_id.short',\n 'indexed': true,\n 'internal': true,\n 'name': 'sync_id',\n 'rollup': true,\n 'scoreboard_name': 'term.sync_id.scoreboard_name',\n 'type': 'id'\n }\n },\n 'name': 'quality',\n 'primary_key': 'record_id'\n },\n 'quarter': {\n 'display_name': 'quarter_channel_literal',\n 'name': 'quarter',\n 'projecting_base': 'production_metric',\n 'protected': true\n },\n 'shift': {\n 'display_name': 'shift_channel_literal',\n 'name': 'shift',\n 'projecting_base': 'production_metric'\n },\n 'shift_hour': {\n 'display_name': 'shift_hour_channel_literal',\n 'name': 'shift_hour',\n 'projecting_base': 'production_metric',\n 'protected': true\n },\n 'system': {\n 'annotations': {},\n 'category_values': {\n 'internal_storage_lifetime': {\n 'category': 'internal_storage_lifetime',\n 'display_name': 'term.internal_storage_lifetime.name',\n 'help_text': 'term.internal_storage_lifetime.short',\n 'indexed': true,\n 'indexed_with': [\n 'record_order'\n ],\n 'name': 'internal_storage_lifetime',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.internal_storage_lifetime.scoreboard_name'\n },\n 'last_scan_reason': {\n 'category': 'process_state_reason',\n 'display_name': 'term.last_scan_reason.name',\n 'ephemeral': true,\n 'help_text': 'term.last_scan_reason.short',\n 'indexed': true,\n 'indexed_with': [\n 'record_order'\n ],\n 'name': 'last_scan_reason',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.last_scan_reason.scoreboard_name'\n }\n },\n 'display_name': 'system_channel_literal',\n 'metrics': {\n 'event_id': {\n 'display_name': 'term.event_id.name',\n 'help_text': 'term.event_id.short',\n 'indexed': true,\n 'internal': true,\n 'name': 'event_id',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.event_id.scoreboard_name',\n 'type': 'id'\n },\n 'production_day_number': {\n 'aggregation': 'none',\n 'display_name': 'term.production_day_number.name',\n 'help_text': 'term.production_day_number.short',\n 'internal': true,\n 'name': 'production_day_number',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.production_day_number.scoreboard_name',\n 'type': 'uint64'\n },\n 'record_id': {\n 'aggregation': 'max',\n 'display_name': 'term.record_id.name',\n 'help_text': 'term.record_id.short',\n 'name': 'record_id',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.record_id.scoreboard_name',\n 'type': 'id'\n },\n 'record_order': {\n 'aggregation': 'min',\n 'display_name': 'term.record_order.name',\n 'help_text': 'term.record_order.short',\n 'indexed': true,\n 'internal': true,\n 'name': 'record_order',\n 'persist': true,\n 'rollup': true,\n 'scoreboard_name': 'term.record_order.scoreboard_name',\n 'type': 'id'\n },\n 'slice_order': {\n 'display_name': 'term.slice_order.name',\n 'help_text': 'term.slice_order.short',\n 'indexed': true,\n 'internal': true,\n 'name': 'slice_order',\n 'persist': true,\n 'reference': true,\n 'rollup': true,\n 'scoreboard_name': 'term.slice_order.scoreboard_name',\n 'type': 'id'\n },\n 'sync_id': {\n 'aggregation': 'sync_id',\n 'display_name': 'term.sync_id.name',\n 'help_text': 'term.sync_id.short',\n 'indexed': true,\n 'internal': true,\n 'name': 'sync_id',\n 'rollup': true,\n 'scoreboard_name': 'term.sync_id.scoreboard_name',\n 'type': 'id'\n }\n },\n 'name': 'system',\n 'primary_key': 'record_id'\n },\n 'team': {\n 'display_name': 'team_channel_literal',\n 'name': 'team',\n 'projecting_base': 'production_metric'\n },\n 'week': {\n 'display_name': 'week_channel_literal',\n 'name': 'week',\n 'projecting_base': 'production_metric',\n 'protected': true\n },\n 'year': {\n 'display_name': 'year_channel_literal',\n 'name': 'year',\n 'projecting_base': 'production_metric',\n 'protected': true\n }\n};\n","import ParamTypes, { paramTest as importedParamTest } from './ParamTypes';\n\nexport const paramTest = importedParamTest;\n\nexport default ParamTypes;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Tooltip from '../Tooltip';\nimport Icon from '../Icon';\nimport styled from 'styled-components';\n\nconst ErrorIcon = styled.div`\n display: inline-block;\n color: ${({theme}) => theme.colors.palette.error.red};\n`;\n\n/**\n * When error is provided render a red error indicator that displays\n * a tooltip with the error message when hovered or tapped.\n *\n * @param {String[]} error The array of errors from the data request.\n * If empty or falsey render nothing.\n */\nfunction ErrorIndicator({\n error,\n}) {\n if (!error || error.length === 0) {\n return null;\n }\n\n // NOTE: We only display the first error message, even if there\n // are multiple errors.\n //\n let [errorMessage] = error;\n\n return (\n \n \n \n \n \n );\n}\n\nErrorIndicator.propTypes = {\n error: PropTypes.arrayOf(PropTypes.string),\n};\n\nErrorIndicator.defaultProps = { };\n\nexport default ErrorIndicator;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ParamTypes from 'Common/util/ParamTypes';\nimport { paramTest } from 'Common/util/ParamTypes/ParamTypes';\nimport styled from 'styled-components';\nimport useTranslation from 'Common/hooks/useTranslation';\nimport Tooltip from 'Common/components/Tooltip';\nimport Icon from 'Common/components/Icon';\nimport ErrorIndicator from '../ErrorIndicator';\nimport { Body5 } from 'Common/components/typography';\n\nexport const assetFormatTypes = [\n 'asset',\n 'area',\n 'plant',\n 'enterprise',\n];\n\nexport const categoryValueFormatTypes = [\n 'category_value',\n ...assetFormatTypes,\n];\n\nconst Root = styled.div`\n display: inline-block;\n`;\n\nconst MultipleCategoriesListItem = styled(Body5).attrs({ as: 'div' })`\n padding: 4px 5px;\n`;\n\nconst MultipleCategoriesList = styled.div`\n line-height: 16px;\n\n ${MultipleCategoriesListItem}:nth-child(2n) {\n border-radius: 3px;\n background-color: ${({theme}) => theme.colors.palette.grey.cloud};\n }\n`;\n\nconst ErrorContainer = styled.div`\n display: inline-block;\n margin-right: 4px;\n`;\n\n\nconst ValueText = styled.span`\n .fa-circle::before {\n display: table-cell;\n };\n`;\n\n\n/**\n * Gets the text value for this category value.\n * @param {Object} rawValue The rawValue that makes up the category value.\n * @param {Function} translator Translates keys to correct text\n * \n * @return {String}\n */\nexport function getCategoryValueText(parameters) {\n paramTest(parameters, ParamTypes.shape({\n rawValue: ParamTypes.any,\n translator: ParamTypes.func.isRequired,\n }), 'getCategoryValueText');\n\n const {\n rawValue,\n translator,\n } = parameters;\n\n let value = rawValue;\n\n if (!Array.isArray(value)) {\n value = [value];\n }\n\n if (value.length > 1) {\n return translator('multiple_category_value_template', {\n number: value.length,\n });\n }\n else {\n if(!value[0]) {\n return translator('null_metric_literal');\n }\n else {\n return value[0].displayName;\n }\n }\n}\n\n/**\n * A React component that renders a visual representation of a category\n * value. Takes in at minimum a format type and a rawValue which will be\n * formatted and rendered out.\n *\n * @param {Object} data The data that makes up the category value.\n * @param {String[]} [error] List of any errors to be displayed in\n * place of the metric.\n * @param {boolean} [noColorIndicatorOnText=false] When true, don't render the\n * color indicator with the text. This does not affect the color\n * indicator's visibility in the tooltip.\n * @param {boolean} [noColor=false] When true, don't render the metric\n * with any non-grey-scale colors. Mostly used for printing.\n * @param {boolean} [noTooltip=false] When true, disable the tooltip.\n */\nfunction CategoryValue({\n data,\n error,\n noColorIndicatorOnText,\n noColor,\n noTooltip,\n\n className,\n style,\n}) {\n const nullValue = useTranslation('null_metric_literal');\n const {\n rawValue,\n hasColorIndicator,\n } = (data || {});\n\n let value = rawValue;\n\n if (value === null || value === undefined) {\n value = [{\n name: 'null',\n displayName: nullValue,\n assetLink: ''\n }];\n }\n\n if (!Array.isArray(value)) {\n value = [value];\n }\n\n let content = nullValue;\n\n const renderValueText = ({ displayName, color }, { noColorIndicator } = { }) => {\n // If it isn't a string treat it as a null value\n displayName = (typeof displayName === 'string') ? displayName : nullValue;\n const showColorIndicator = !noColor && !noColorIndicator && hasColorIndicator;\n\n return (\n \n {showColorIndicator && (\n \n )}\n {displayName}\n \n );\n };\n\n const renderValue = ({ displayName, color, assetLink }) => {\n // If it isn't a string treat it as a null value\n displayName = (typeof displayName === 'string') ? displayName : nullValue;\n\n let categoryJsx = renderValueText({ displayName, color }, { noColorIndicator: noColorIndicatorOnText });\n\n // If this has a tooltip, wrap it in a tooltip.\n if (!noTooltip) {\n let tooltipContent;\n\n if (assetLink) {\n tooltipContent = `${displayName} (${assetLink})`;\n }\n else {\n tooltipContent = renderValueText({ displayName, color }, { noColorIndicator: false });\n }\n\n categoryJsx = (\n \n {categoryJsx}\n \n );\n }\n\n // If this is an asset link, wrap it in a link.\n if (assetLink) {\n categoryJsx = (\n \n {categoryJsx}\n \n );\n }\n\n return categoryJsx;\n };\n\n const multipleCategoriesLabel = useTranslation('multiple_category_value_template', {\n number: value.length,\n });\n\n if (value.length === 1) {\n content = renderValue(value[0].dimension || value[0]);\n }\n else if (value.length > 1) {\n const tooltipContent = (\n \n {\n value.map((val, index) => (\n \n {renderValueText(val, { noColorIndicator: false })}\n \n ))\n }\n \n );\n\n const innerContent = (\n \n {multipleCategoriesLabel}\n \n );\n\n content = !noTooltip\n ? (\n \n {innerContent}\n )\n : innerContent;\n }\n\n return (\n \n {error && }\n {content}\n \n );\n}\n\nconst tooltipDataPropType = PropTypes.arrayOf(\n PropTypes.shape({\n dimension: PropTypes.shape({\n displayName: PropTypes.string,\n name: PropTypes.string,\n color: PropTypes.string,\n }).isRequired,\n metric: PropTypes.shape({\n displayName: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n formatType: PropTypes.string.isRequired,\n rawValue: PropTypes.number\n }).isRequired,\n }),\n).isRequired;\n\nconst categoryValuePropType = PropTypes.shape({ \n displayName: PropTypes.string,\n color: PropTypes.string,\n assetLink: PropTypes.string,\n});\n\nCategoryValue.propTypes = {\n data: PropTypes.shape({\n name: PropTypes.string,\n formatType: PropTypes.oneOf(categoryValueFormatTypes).isRequired,\n rawValue: PropTypes.oneOfType([\n PropTypes.arrayOf(categoryValuePropType),\n categoryValuePropType,\n tooltipDataPropType,\n ]),\n hasColorIndicator: PropTypes.bool,\n }),\n error: PropTypes.arrayOf(\n PropTypes.string,\n ),\n noColorIndicatorOnText: PropTypes.bool,\n noColor: PropTypes.bool,\n noTooltip: PropTypes.bool,\n\n className: PropTypes.string,\n style: PropTypes.object,\n};\n\nCategoryValue.defaultProps = {\n noColorIndicatorOnText: false,\n noColor: false,\n noTooltip: false,\n};\n\nexport default CategoryValue;\n","import CategoryValue from './CategoryValue';\n\nexport default CategoryValue;\n","import { useContext, useMemo } from 'react';\nimport { LocaleContext } from 'Common/providers/LocaleProvider';\n\n\n export default function useLocale() {\n const localeContext = useContext(LocaleContext);\n\n const locale = useMemo(() => {\n return localeContext();\n }, [localeContext]);\n\n return locale;\n}\n","import isString from 'lodash/isString';\nimport size from 'lodash/size';\nimport isObject from 'lodash/isObject';\nimport isNumber from 'lodash/isNumber';\nimport isFinite from 'lodash/isFinite';\n\n/**\n * Defines the Qualitative Palette, colors that look good together but are not\n * related.\n */\n export const Q_PALETTE = Object.freeze([\n '#5cbae6',\n '#b6d957',\n '#fac364',\n '#d998cb',\n '#ccc5a8',\n '#8cd3ff',\n '#f2d249',\n '#93b9c6',\n '#52bacc',\n '#dbdb46',\n '#98aafb'\n]);\n\n/**\n * Get a qualitative color for an index; will automatically repeat colors when\n * the index goes beyond the number of colors in the palette.\n *\n * @see Q_PALETTE\n *\n * @param {Number} index Integer index into the color palette.\n * @returns {String} Qalitative color in #FFFFFF format.\n */\n export function getQualitativeColor(index) {\n const colorIndex = index % Q_PALETTE.length;\n return Q_PALETTE[colorIndex];\n}\n\n/**\n * Convert CSS color to an RGB object. Includes the alpha channel if present.\n * Inspired by: https://stackoverflow.com/a/21966100\n *\n * @param {String} input CSS color string.\n *\n * @returns {Object} RGB object of the form { r: \\d+, g: \\d+, b: \\d+, [a]: \\d+ }\n */\nexport function cssToRGB(input) {\n if (!isString(input)) {\n throw new Error('cssToRGB requires a String for input!');\n }\n\n let inputLength = size(input),\n rv = null;\n\n if (input.startsWith('#') && (inputLength === 10 || inputLength === 7 || inputLength === 4)) {\n // #xxx or #xxxxxx or #xxxxxxxxx ?\n let colLength = (input.length - 1) / 3,\n factor = [17, 1, 0.062272][colLength - 1];\n\n rv = {\n r: Math.round(Number.parseInt(input.substr(1, colLength), 16) * factor),\n g: Math.round(Number.parseInt(input.substr(1 + colLength, colLength), 16) * factor),\n b: Math.round(Number.parseInt(input.substr(1 + (2 * colLength), colLength), 16) * factor)\n };\n }\n else if (input.startsWith('rgb')) {\n let rgbArray = input.split('(')[1].split(')')[0].split(',').map(Math.round);\n\n rv = {\n r: rgbArray[0],\n g: rgbArray[1],\n b: rgbArray[2],\n };\n\n // Are we rgba? If so include the alpha value\n if (input.startsWith('rgba')) {\n rv.a = rgbArray[3];\n }\n }\n else {\n throw new Error(input + ' is an invalid CSS color!');\n }\n\n return rv;\n}\n\nexport function interpolateColor(rgb1, rgb2, factor) {\n let result = { ...rgb1 };\n\n ['r', 'g', 'b'].forEach((comp) => {\n result[comp] = Math.round(\n result[comp] + factor * (rgb2[comp] - rgb1[comp])\n );\n });\n\n return result;\n}\n\n/**\n * Given an RGB object, return a CSS hex color string.\n *\n * @param {Object} rgb RGB object with an r, g, and b component.\n *\n * @returns {String} CSS color of the form #RRGGBB\n */\nexport function rgbToCss(rgb) {\n if (!isObject(rgb)) {\n throw new Error('RGB must be an object!');\n }\n\n let decimalToHexString = function(decimal) {\n let hexStr = decimal.toString(16);\n\n // Ensure leading 0\n return hexStr.length === 1 ? ('0' + hexStr) : hexStr;\n };\n\n let rr = decimalToHexString(rgb.r || 0),\n gg = decimalToHexString(rgb.g || 0),\n bb = decimalToHexString(rgb.b || 0);\n\n return '#' + rr + gg + bb;\n}\n\n/**\n * A simple function to brighten or darken a color a certain amount.\n *\n * @param {String/Object} color CSS color or RGB object to shade.\n * @param {Number} amount Amount in which to brighten/darken the color. Use a positive\n * value for brightening and a negative value for darkening.\n *\n * @returns {String/Object} Either a CSS color or RGB object depending on the type of the\n * given color.\n */\nexport function adjustBrightness(color, amount) {\n let rgb,\n returnCss = false;\n\n if (isString(color)) {\n rgb = cssToRGB(color);\n returnCss = true;\n }\n else if (isObject(color)) {\n rgb = color;\n }\n else {\n throw new Error('Provided color is not a color or RGB object!');\n }\n\n if (!isNumber(amount) || !isFinite(amount)) {\n throw new Error('Amount must be a finite number!');\n }\n\n let shade = function(component) {\n let newComponent = component + amount;\n\n if (newComponent > 255) { newComponent = 255; }\n else if (newComponent < 0) { newComponent = 0; }\n\n return newComponent;\n };\n\n let newRgb = {\n r: shade(rgb.r),\n g: shade(rgb.g),\n b: shade(rgb.b)\n };\n\n return returnCss ? rgbToCss(newRgb) : newRgb;\n}\n\nexport function getTextColorForBackground(backgroundColor) {\n // Based on https://www.nbdtech.com/Blog/archive/2008/04/27/Calculating-the-Perceived-Brightness-of-a-Color.aspx\n const {r, g, b} = cssToRGB(backgroundColor);\n const brightness = Math.sqrt(\n (r * r * 0.241) +\n (g * g * 0.691) +\n (b * b * 0.068)\n );\n\n return brightness < 130 ? '#ffffff' : '#000000';\n}\n\n/**\n * Takes in a CSS color (hex or rgb) and an alpha (opacity) value and outputs a CSS-friendly\n * rgba color.\n *\n * @param {String} cssColor Hex or rgb CSS color string.\n * @param {Number} [alpha=1.0] Alpha channel value from 0.0 -> 1.0\n *\n * @returns {String} CSS-friendly rgba(r,g,b,a) color string.\n */\nexport function addAlphaToCssColor(cssColor, alpha = 1.0) {\n let rgba = cssToRGB(cssColor);\n\n rgba.a = alpha;\n\n return `rgba(${rgba.r},${rgba.g},${rgba.b},${rgba.a})`;\n}\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport ParamTypes from 'Common/util/ParamTypes';\nimport { paramTest } from 'Common/util/ParamTypes/ParamTypes';\nimport styled from 'styled-components';\nimport { useTranslator } from 'Common/hooks/useTranslation';\nimport useLocale from 'Common/hooks/useLocale';\nimport { getDefaultFormatter } from 'Common/data/defaultFormatters';\nimport { getTextColorForBackground } from 'Common/util/color/util';\nimport ErrorIndicator from '../ErrorIndicator';\n\nconst Root = styled.div`\n display: inline-block;\n`;\n\nconst MetricContent = styled.div`\n display: inline-block;\n`;\n\nconst MetricText = styled.div`\n display: inline-block;\n`;\n\nconst ErrorContainer = styled.div`\n display: inline-block;\n margin-right: 4px;\n`;\n\nexport const HEAT_BLOB_WIDTH = 8;\nexport const HEAT_BLOB_MARGIN = 4;\nconst BLOB_HEIGHT = 16;\n\nconst HeatBlobElement = styled.div.attrs(props => ({\n style: {\n backgroundColor: props.color\n }\n}))`\n display: inline-block;\n height: ${BLOB_HEIGHT}px;\n width: ${HEAT_BLOB_WIDTH}px;\n margin-left: ${HEAT_BLOB_MARGIN}px;\n border-radius: 0.2em;\n`;\n\n\nexport function getBlobStyleForHeat(heatColor) {\n if (heatColor) {\n return {\n backgroundColor: heatColor,\n color: getTextColorForBackground(heatColor),\n };\n }\n}\n\n/**\n * @param {String} severity the severity based on where it fit in metric alerts\n * (best, good, warning, caution, critical)\n * @param {Object} blobStyle the style that was already created for the blob will be re-used for very-bad\n * @param {boolean} heatColor Should it the color of the metric value for non-very-bad_metrics match heat color\n */\nexport function getMetricStyleFromBlob(severity, blobStyle, heatColor) {\n if (severity === 'critical') {\n return {\n ...blobStyle,\n borderRadius: '0.3em',\n fontWeight: 500,\n paddingLeft: '0.3em',\n paddingRight: '0.3em',\n };\n }\n else if (blobStyle && heatColor) {\n return {\n color: blobStyle.backgroundColor,\n paddingLeft: '0.3em',\n paddingRight: '0.3em',\n };\n }\n else {\n return {};\n }\n}\n\nexport function isNullValue(rawValue) {\n return rawValue === null || rawValue === undefined || Number.isNaN(rawValue);\n}\n\n/**\n * Gets the text value for this metric.\n * @param {Object} formatType The formatType that describes the metric value.\n * @param {Object} rawValue The rawValue that makes up the metric value.\n * @param {Function} translator Translates keys to correct text\n * @param {String} locale Client locale\n * \n * @return {String}\n */\n export function getMetricText(parameters) {\n paramTest(parameters, ParamTypes.shape({\n formatType: ParamTypes.string,\n rawValue: ParamTypes.any,\n locale: ParamTypes.string.isRequired,\n translator: ParamTypes.func.isRequired,\n }), 'getMetricText');\n\n const {\n formatType,\n rawValue,\n locale,\n translator,\n } = parameters;\n\n const isNull = isNullValue(rawValue);\n let newRawValue = rawValue;\n // id_array be an empty array if it is null.\n // This sets the proper null value according to Type.js\n if (isNull && formatType !== 'invalid') {\n if (formatType === 'id_array') {\n newRawValue = [];\n }\n else {\n return translator('null_metric_literal');\n }\n }\n\n const valueFormatter = getDefaultFormatter({\n type: formatType,\n locale,\n translator,\n });\n\n let t = valueFormatter ? valueFormatter(newRawValue, {react: true}) : newRawValue;\n return t;\n}\n\n/**\n * A React component that renders a visual representation of a metric.\n * Takes in at minimum a format type and a rawValue which will be\n * formatted and rendered out.\n *\n * @param {Object} data The data that makes up the metric value.\n * @param {String[]} [error] List of any errors to be displayed in\n * place of the metric.\n * @param {boolean} [showHeatBlob=true] When true we show a heat colored\n * blob next to the value. Only applies to heat mappable metrics.\n * @param {boolean} [noColor=false] When true, don't render the metric\n * with any non-grey-scale colors. Mostly used for printing.\n */\nfunction Metric({\n data,\n error,\n noColor,\n showHeatBlob,\n\n // Used to forward style information\n className,\n style,\n}) {\n const {\n rawValue,\n formatType,\n heatConfig,\n } = (data || {});\n\n const translator = useTranslator();\n const locale = useLocale();\n\n const formattedValue = useMemo(() => {\n return getMetricText({ formatType, locale, translator, rawValue });\n }, [formatType, locale, translator, rawValue]);\n\n let content;\n\n if (heatConfig && !noColor) {\n const getReactHeatBlob = (blobStyle) => {\n if (blobStyle && showHeatBlob) {\n return (\n  \n );\n }\n };\n\n const blobStyle = getBlobStyleForHeat(heatConfig.color);\n const metricStyle = getMetricStyleFromBlob(heatConfig.severity, blobStyle, !showHeatBlob);\n\n content = (\n \n {formattedValue}\n {getReactHeatBlob(blobStyle)}\n \n );\n }\n else {\n content = {formattedValue};\n }\n\n return (\n \n {error && }\n {content}\n \n );\n}\n\nMetric.propTypes = {\n error: PropTypes.arrayOf(PropTypes.string),\n data: PropTypes.shape({\n name: PropTypes.string,\n formatType: PropTypes.string.isRequired,\n rawValue: PropTypes.any,\n\n heatConfig: PropTypes.shape({\n severity: PropTypes.oneOf([\n 'best',\n 'good',\n 'warning',\n 'caution',\n 'critical',\n 'unknown',\n ]).isRequired,\n color: PropTypes.string,\n }),\n }),\n noColor: PropTypes.bool,\n showHeatBlob: PropTypes.bool,\n\n className: PropTypes.string,\n style: PropTypes.object,\n};\n\nMetric.defaultProps = {\n noColor: false,\n showHeatBlob: true,\n};\n\nexport default Metric;\n","import Metric from './Metric';\n\nexport default Metric;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport CategoryValue from './CategoryValue';\nimport { categoryValueFormatTypes } from './CategoryValue/CategoryValue';\nimport Metric from './Metric';\n\nfunction FormattedDatum({\n data,\n noColor,\n error,\n\n // Forward other props to inner elements\n ...otherProps\n}) {\n let content = null;\n const formatType = data?.formatType;\n\n if (categoryValueFormatTypes.includes(formatType)) {\n content = (\n \n );\n }\n else {\n content = (\n \n );\n }\n\n return content;\n}\n\nFormattedDatum.propTypes = {\n data: PropTypes.shape({\n // These are common to all data types\n name: PropTypes.string,\n formatType: PropTypes.string.isRequired,\n rawValue: PropTypes.any,\n\n // Additional fields that are not common are still\n // forwarded to the child components.\n //\n }),\n error: PropTypes.arrayOf(PropTypes.string),\n noColor: PropTypes.bool,\n};\n\nFormattedDatum.defaultProps = {\n noColor: false,\n};\n\nexport default FormattedDatum;\n","import FormattedDatum from './FormattedDatum';\n\nexport default FormattedDatum;\n","import { rgbToCss, interpolateColor } from 'Common/util/color/util';\nimport keyBy from 'lodash/keyBy';\nimport isNumber from 'lodash/isNumber';\n\nconst DEFAULT_COLOR = 'rgba(170,170,170,0.32)';\n\nconst BASE_HEAT_MAP_CONFIG = [\n {\n name: 'critical',\n baseColor: { r: 139, g: 0, b: 0 },\n baseMonochrome: { r: 51, g: 51, b: 51 },\n },\n {\n name: 'warning',\n baseColor: { r: 217, g: 17, b: 17 },\n baseMonochrome: { r: 102, g: 102, b: 102 },\n },\n {\n name: 'caution',\n baseColor: { r: 255, g: 191, b: 0 },\n baseMonochrome: { r: 153, g: 153, b: 153 },\n },\n {\n name: 'good',\n baseColor: { r: 34, g: 139, b: 34 },\n baseMonochrome: { r: 204, g: 204, b: 204 },\n },\n {\n name: 'best',\n baseColor: { r: 0, g: 100, b: 0 },\n baseMonochrome: { r: 238, g: 238, b: 238 },\n },\n];\n\nconst METRIC_LIMITS = {\n efficiency: {\n min: 0,\n max: 1.2,\n },\n default: {\n min: 0,\n max: 1,\n },\n};\n\nfunction getHeatMapConfig(columnName, metricAlertConfig) {\n const directionality = metricAlertConfig.directionality;\n const rangesBySeverity = keyBy(metricAlertConfig.ranges, (item) => item.name);\n\n let heatMapConfigBySeverity = BASE_HEAT_MAP_CONFIG\n .reduce((map, heatMapConfigItem) => {\n const severity = heatMapConfigItem.name;\n const { min, max } = rangesBySeverity[severity] || {};\n\n map[severity] = {\n ...heatMapConfigItem,\n min: min,\n max: max,\n };\n\n return map;\n }, {});\n\n const metricLimits = METRIC_LIMITS[columnName] || METRIC_LIMITS.default;\n\n const critical = { ...heatMapConfigBySeverity.critical };\n const good = { ...heatMapConfigBySeverity.good };\n const best = { ...heatMapConfigBySeverity.best };\n\n if (directionality === 'lower_better') {\n if (critical.min >= metricLimits.max) {\n critical.min = undefined;\n }\n else {\n critical.max = metricLimits.max;\n }\n\n if (good.max <= metricLimits.min) {\n good.min = good.max;\n }\n else {\n good.min = metricLimits.min;\n best.max = metricLimits.min;\n }\n }\n else {\n if (critical.max <= metricLimits.min) {\n critical.max = undefined;\n }\n else {\n critical.min = metricLimits.min;\n }\n\n if (good.min >= metricLimits.max) {\n good.max = good.min;\n }\n else {\n good.max = metricLimits.max;\n best.min = metricLimits.max;\n }\n }\n\n heatMapConfigBySeverity = {\n ...heatMapConfigBySeverity,\n critical: critical,\n good: good,\n best: best,\n };\n\n let severityOrder = BASE_HEAT_MAP_CONFIG.map(item => item.name);\n\n if (directionality === 'lower_better') {\n severityOrder = severityOrder.reverse();\n }\n\n return severityOrder\n .map((severity) => {\n return heatMapConfigBySeverity[severity];\n })\n // We don't want to include unused thresholds\n .filter((heatMapConfigItem) => {\n return isNumber(heatMapConfigItem.min) || isNumber(heatMapConfigItem.max);\n });\n}\n\nfunction getHeatMapColor(columnName, value, metricAlertConfig, { noColor = false } = {}) {\n const heatMapConfig = getHeatMapConfig(columnName, metricAlertConfig);\n\n let rgbColor;\n\n if (value) {\n const first = heatMapConfig[0];\n const last = heatMapConfig[heatMapConfig.length - 1];\n\n const firstMin = isNumber(first.min) ? first.min : first.max;\n const firstMax = isNumber(last.max) ? last.max : last.min;\n\n const colorKey = noColor ? 'baseMonochrome' : 'baseColor';\n\n if (value <= firstMin) {\n rgbColor = first[colorKey];\n }\n else if (value >= firstMax) {\n rgbColor = last[colorKey];\n }\n else if (!Number.isNaN(value)) {\n const thresholdIndex = heatMapConfig.findIndex((configItem) => {\n if (!configItem) {\n return false;\n }\n\n const { min, max } = configItem;\n\n return (value >= min) && (value < max);\n });\n\n let { min, max, [colorKey]: baseColor } = heatMapConfig[thresholdIndex];\n\n let nextIndex;\n\n if (metricAlertConfig.directionality === 'lower_better') {\n nextIndex = thresholdIndex - 1;\n\n const oldMin = min;\n\n min = max;\n max = oldMin;\n }\n else {\n nextIndex = thresholdIndex + 1;\n }\n\n let { [colorKey]: nextColor } = heatMapConfig[nextIndex];\n\n // Interpolate the color between its surrounding severity colors.\n {\n const maxDiff = max - min;\n const actualDiff = value - min;\n const factor = actualDiff / maxDiff;\n\n rgbColor = interpolateColor(baseColor, nextColor, factor);\n }\n }\n }\n\n return rgbColor ? rgbToCss(rgbColor) : DEFAULT_COLOR;\n}\n\nfunction getHeatSeverity(rawValue, metricAlertConfig) {\n const stateSet = metricAlertConfig && metricAlertConfig.ranges;\n let severity = 'unknown';\n\n if (stateSet && stateSet.some) {\n stateSet.some((state) => {\n const {\n min = -Infinity,\n max = Infinity,\n name,\n } = state;\n\n if ((rawValue > min) && (rawValue <= max)) {\n severity = name;\n return true; // stop looking\n }\n });\n }\n\n return severity;\n}\n\n// [TODO] Document this\nexport function getHeatConfig(columnName, rawValue, metricAlertConfig) {\n const severity = getHeatSeverity(rawValue, metricAlertConfig);\n let color;\n\n if (metricAlertConfig) {\n color = getHeatMapColor(columnName, rawValue, metricAlertConfig);\n }\n\n return {\n severity,\n color,\n };\n}\n","\nimport React from 'react';\nimport { getColumnFormatType } from './getColumnFormatType';\nimport {\n channel_schema\n} from './ChannelSchema';\nimport FormattedDatum from 'Common/components/FormattedDatum';\nimport { OffsetDate } from 'Common/data/date/OffsetDate';\nimport { getHeatConfig } from './HeatMapColors';\n\nexport const metricOptions = [\n {\n 'name': 'counts',\n 'displayName': 'Counts',\n 'isDummyGroup': false,\n 'entries': [\n {\n 'name': 'pack_out_count',\n 'channel': 'production_metric',\n 'displayName': 'End of Line Count',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'count'\n },\n {\n 'name': 'good_count',\n 'channel': 'production_metric',\n 'displayName': 'Good Count',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'count'\n },\n {\n 'name': 'in_count',\n 'channel': 'production_metric',\n 'displayName': 'In Count',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'count'\n },\n {\n 'name': 'percent_good',\n 'channel': 'production_metric',\n 'displayName': 'Percent Good',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'percent_reject',\n 'channel': 'production_metric',\n 'displayName': 'Percent Reject',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'production_rejects',\n 'channel': 'production_metric',\n 'displayName': 'Production Rejects',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'count'\n },\n {\n 'name': 'reject_count',\n 'channel': 'production_metric',\n 'displayName': 'Reject Count',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'count'\n },\n {\n 'name': 'startup_rejects',\n 'channel': 'production_metric',\n 'displayName': 'Startup Rejects',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'count'\n },\n {\n 'name': 'total_count',\n 'channel': 'production_metric',\n 'displayName': 'Total Count',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'count'\n }\n ]\n },\n {\n 'name': 'cycles',\n 'displayName': 'Cycles',\n 'isDummyGroup': false,\n 'entries': [\n {\n 'name': 'average_cycle_time',\n 'channel': 'production_metric',\n 'displayName': 'Avg. Cycle Time',\n 'fieldType': 'metric',\n 'type': 'time_span',\n 'subType': 'cycle_time'\n },\n {\n 'name': 'average_ideal_cycle_time',\n 'channel': 'production_metric',\n 'displayName': 'Avg. Ideal Cycle Time',\n 'fieldType': 'metric',\n 'type': 'time_span',\n 'subType': 'cycle_time'\n },\n {\n 'name': 'average_run_cycle_time',\n 'channel': 'production_metric',\n 'displayName': 'Avg. Run Cycle Time',\n 'fieldType': 'metric',\n 'type': 'time_span',\n 'subType': 'cycle_time'\n },\n {\n 'name': 'average_small_stop_time',\n 'channel': 'production_metric',\n 'displayName': 'Avg. Small Stop Time',\n 'fieldType': 'metric',\n 'type': 'time_span',\n 'subType': 'cycle_time'\n },\n {\n 'name': 'equipment_cycles',\n 'channel': 'production_metric',\n 'displayName': 'Equipment Cycles',\n 'fieldType': 'metric',\n 'type': 'uint64'\n },\n {\n 'name': 'ideal_time',\n 'channel': 'production_metric',\n 'displayName': 'Ideal Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'partial_cycle_lost_time',\n 'channel': 'production_metric',\n 'displayName': 'Partial Cycle Lost Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'partial_cycles',\n 'channel': 'production_metric',\n 'displayName': 'Partial Cycles',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'cycle'\n },\n {\n 'name': 'run_cycle_lost_time',\n 'channel': 'production_metric',\n 'displayName': 'Run Cycle Lost Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'run_cycles',\n 'channel': 'production_metric',\n 'displayName': 'Run Cycles',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'cycle'\n },\n {\n 'name': 'small_stops',\n 'channel': 'production_metric',\n 'displayName': 'Small Stops',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'cycle'\n },\n {\n 'name': 'total_cycle_time',\n 'channel': 'production_metric',\n 'displayName': 'Total Cycle Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'total_cycles',\n 'channel': 'production_metric',\n 'displayName': 'Total Cycles',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'cycle'\n }\n ]\n },\n {\n 'name': 'labor',\n 'displayName': 'Labor',\n 'isDummyGroup': false,\n 'entries': [\n {\n 'name': 'earned_labor',\n 'channel': 'production_metric',\n 'displayName': 'Earned Labor',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'good_pieces_per_labor_hour',\n 'channel': 'production_metric',\n 'displayName': 'Good Pieces per Labor Hour',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate'\n },\n {\n 'name': 'labor_efficiency',\n 'channel': 'production_metric',\n 'displayName': 'Labor Efficiency',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'labor_per_good_piece',\n 'channel': 'production_metric',\n 'displayName': 'Labor per Good Piece',\n 'fieldType': 'metric',\n 'type': 'time_span',\n 'subType': 'cycle_time'\n },\n {\n 'name': 'labor_per_piece',\n 'channel': 'production_metric',\n 'displayName': 'Labor per Piece',\n 'fieldType': 'metric',\n 'type': 'time_span',\n 'subType': 'cycle_time'\n },\n {\n 'name': 'lost_labor',\n 'channel': 'production_metric',\n 'displayName': 'Lost Labor',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'pieces_per_labor_hour',\n 'channel': 'production_metric',\n 'displayName': 'Pieces per Labor Hour',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate'\n },\n {\n 'name': 'target_labor_per_piece',\n 'channel': 'production_metric',\n 'displayName': 'Target Labor per Piece',\n 'fieldType': 'metric',\n 'type': 'time_span',\n 'subType': 'cycle_time'\n },\n {\n 'name': 'average_team_size',\n 'channel': 'production_metric',\n 'displayName': 'Team Size',\n 'fieldType': 'metric',\n 'type': 'double'\n },\n {\n 'name': 'labor',\n 'channel': 'production_metric',\n 'displayName': 'Total Labor',\n 'fieldType': 'metric',\n 'type': 'time_span'\n }\n ]\n },\n {\n 'name': 'oee',\n 'displayName': 'OEE',\n 'isDummyGroup': false,\n 'entries': [\n {\n 'name': 'availability',\n 'channel': 'production_metric',\n 'displayName': 'Availability',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'availability_loss',\n 'channel': 'production_metric',\n 'displayName': 'Availability Loss',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'availability_lost_time',\n 'channel': 'production_metric',\n 'displayName': 'Availability Lost Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'fully_productive_time',\n 'channel': 'production_metric',\n 'displayName': 'Fully Productive Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'oee',\n 'channel': 'production_metric',\n 'displayName': 'OEE',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'oee_loss',\n 'channel': 'production_metric',\n 'displayName': 'OEE Loss',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'oee_lost_time',\n 'channel': 'production_metric',\n 'displayName': 'OEE Lost Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'performance',\n 'channel': 'production_metric',\n 'displayName': 'Performance',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'performance_loss',\n 'channel': 'production_metric',\n 'displayName': 'Performance Loss',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'performance_lost_time',\n 'channel': 'production_metric',\n 'displayName': 'Performance Lost Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'quality',\n 'channel': 'production_metric',\n 'displayName': 'Quality',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'quality_loss',\n 'channel': 'production_metric',\n 'displayName': 'Quality Loss',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'quality_lost_time',\n 'channel': 'production_metric',\n 'displayName': 'Quality Lost Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n }\n ]\n },\n {\n 'name': 'production_times',\n 'displayName': 'Production Times',\n 'isDummyGroup': false,\n 'entries': [\n {\n 'name': 'all_time',\n 'channel': 'production_metric',\n 'displayName': 'All Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'down_time',\n 'channel': 'production_metric',\n 'displayName': 'Down Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'duration',\n 'channel': 'production_metric',\n 'displayName': 'Duration',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'end_time',\n 'channel': 'production_metric',\n 'displayName': 'End Time',\n 'fieldType': 'metric',\n 'type': 'date_time'\n },\n {\n 'name': 'manufacturing_time',\n 'channel': 'production_metric',\n 'displayName': 'Manufacturing Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'not_scheduled_time',\n 'channel': 'production_metric',\n 'displayName': 'Not Scheduled Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'percent_down',\n 'channel': 'production_metric',\n 'displayName': 'Percent Down',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'percent_planned_stop',\n 'channel': 'production_metric',\n 'displayName': 'Percent Planned Stop',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'percent_run',\n 'channel': 'production_metric',\n 'displayName': 'Percent Run',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'percent_unplanned_stop',\n 'channel': 'production_metric',\n 'displayName': 'Percent Unplanned Stop',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'planned_stop_time',\n 'channel': 'production_metric',\n 'displayName': 'Planned Stop Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'production_time',\n 'channel': 'production_metric',\n 'displayName': 'Production Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'run_time',\n 'channel': 'production_metric',\n 'displayName': 'Run Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'start_time',\n 'channel': 'production_metric',\n 'displayName': 'Start Time',\n 'fieldType': 'metric',\n 'type': 'date_time'\n },\n {\n 'name': 'unplanned_stop_time',\n 'channel': 'production_metric',\n 'displayName': 'Unplanned Stop Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n }\n ]\n },\n {\n 'name': 'rates',\n 'displayName': 'Rates',\n 'isDummyGroup': false,\n 'entries': [\n {\n 'name': 'pack_out_rate_per_hour',\n 'channel': 'production_metric',\n 'displayName': 'End of Line Rate PPH',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate_per_hour'\n },\n {\n 'name': 'pack_out_rate',\n 'channel': 'production_metric',\n 'displayName': 'End of Line Rate PPM',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate'\n },\n {\n 'name': 'pack_out_speed_per_hour',\n 'channel': 'production_metric',\n 'displayName': 'End of Line Speed PPH',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate_per_hour'\n },\n {\n 'name': 'pack_out_speed',\n 'channel': 'production_metric',\n 'displayName': 'End of Line Speed PPM',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate'\n },\n {\n 'name': 'good_rate_per_hour',\n 'channel': 'production_metric',\n 'displayName': 'Good Rate PPH',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate_per_hour'\n },\n {\n 'name': 'good_rate',\n 'channel': 'production_metric',\n 'displayName': 'Good Rate PPM',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate'\n },\n {\n 'name': 'good_speed_per_hour',\n 'channel': 'production_metric',\n 'displayName': 'Good Speed PPH',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate_per_hour'\n },\n {\n 'name': 'good_speed',\n 'channel': 'production_metric',\n 'displayName': 'Good Speed PPM',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate'\n },\n {\n 'name': 'in_rate_per_hour',\n 'channel': 'production_metric',\n 'displayName': 'In Rate PPH',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate_per_hour'\n },\n {\n 'name': 'in_rate',\n 'channel': 'production_metric',\n 'displayName': 'In Rate PPM',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate'\n },\n {\n 'name': 'in_speed_per_hour',\n 'channel': 'production_metric',\n 'displayName': 'In Speed PPH',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate_per_hour'\n },\n {\n 'name': 'in_speed',\n 'channel': 'production_metric',\n 'displayName': 'In Speed PPM',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate'\n },\n {\n 'name': 'reject_rate_per_hour',\n 'channel': 'production_metric',\n 'displayName': 'Reject Rate PPH',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate_per_hour'\n },\n {\n 'name': 'reject_rate',\n 'channel': 'production_metric',\n 'displayName': 'Reject Rate PPM',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate'\n },\n {\n 'name': 'reject_speed_per_hour',\n 'channel': 'production_metric',\n 'displayName': 'Reject Speed PPH',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate_per_hour'\n },\n {\n 'name': 'reject_speed',\n 'channel': 'production_metric',\n 'displayName': 'Reject Speed PPM',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate'\n },\n {\n 'name': 'target_rate_per_hour',\n 'channel': 'production_metric',\n 'displayName': 'Target Rate PPH',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate_per_hour'\n },\n {\n 'name': 'target_rate',\n 'channel': 'production_metric',\n 'displayName': 'Target Rate PPM',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate'\n },\n {\n 'name': 'total_rate_per_hour',\n 'channel': 'production_metric',\n 'displayName': 'Total Rate PPH',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate_per_hour'\n },\n {\n 'name': 'total_rate',\n 'channel': 'production_metric',\n 'displayName': 'Total Rate PPM',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate'\n },\n {\n 'name': 'total_speed_per_hour',\n 'channel': 'production_metric',\n 'displayName': 'Total Speed PPH',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate_per_hour'\n },\n {\n 'name': 'total_speed',\n 'channel': 'production_metric',\n 'displayName': 'Total Speed PPM',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate'\n }\n ]\n },\n {\n 'name': 'six_big_losses',\n 'displayName': 'Six Big Losses',\n 'isDummyGroup': false,\n 'entries': [\n {\n 'name': 'cycle_loss',\n 'channel': 'production_metric',\n 'displayName': 'Cycle Loss',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'cycle_lost_time',\n 'channel': 'production_metric',\n 'displayName': 'Cycle Lost Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'down_loss',\n 'channel': 'production_metric',\n 'displayName': 'Down Loss',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'down_lost_time',\n 'channel': 'production_metric',\n 'displayName': 'Down Lost Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'planned_stop_loss',\n 'channel': 'production_metric',\n 'displayName': 'Planned Stop Loss',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'planned_stop_lost_time',\n 'channel': 'production_metric',\n 'displayName': 'Planned Stop Lost Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'production_reject_loss',\n 'channel': 'production_metric',\n 'displayName': 'Production Reject Loss',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'production_reject_lost_time',\n 'channel': 'production_metric',\n 'displayName': 'Production Reject Lost Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'small_stop_loss',\n 'channel': 'production_metric',\n 'displayName': 'Small Stop Loss',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'small_stop_lost_time',\n 'channel': 'production_metric',\n 'displayName': 'Small Stop Lost Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'startup_reject_loss',\n 'channel': 'production_metric',\n 'displayName': 'Startup Reject Loss',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'startup_reject_lost_time',\n 'channel': 'production_metric',\n 'displayName': 'Startup Reject Lost Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'unplanned_stop_loss',\n 'channel': 'production_metric',\n 'displayName': 'Unplanned Stop Loss',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'unplanned_stop_lost_time',\n 'channel': 'production_metric',\n 'displayName': 'Unplanned Stop Lost Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n }\n ]\n },\n {\n 'name': 'target',\n 'displayName': 'Target',\n 'isDummyGroup': false,\n 'entries': [\n {\n 'name': 'average_takt_time',\n 'channel': 'production_metric',\n 'displayName': 'Avg. Takt Time',\n 'fieldType': 'metric',\n 'type': 'time_span',\n 'subType': 'cycle_time'\n },\n {\n 'name': 'count_variance',\n 'channel': 'production_metric',\n 'displayName': 'Count Variance',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'count'\n },\n {\n 'name': 'efficiency',\n 'channel': 'production_metric',\n 'displayName': 'Efficiency',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'percent_variance',\n 'channel': 'production_metric',\n 'displayName': 'Percent Variance',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'rate_efficiency',\n 'channel': 'production_metric',\n 'displayName': 'Rate Efficiency',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n\n {\n 'name': 'target_count',\n 'channel': 'production_metric',\n 'displayName': 'Target Count',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'count'\n },\n {\n 'name': 'target_cycles',\n 'channel': 'production_metric',\n 'displayName': 'Target Cycles',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'cycle'\n },\n {\n 'name': 'time_variance',\n 'channel': 'production_metric',\n 'displayName': 'Time Variance',\n 'fieldType': 'metric',\n 'type': 'time_span'\n }\n ]\n },\n {\n 'name': 'teep',\n 'displayName': 'TEEP',\n 'isDummyGroup': false,\n 'entries': [\n {\n 'name': 'hidden_factory_time',\n 'channel': 'production_metric',\n 'displayName': 'Hidden Factory Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'production_loss',\n 'channel': 'production_metric',\n 'displayName': 'Production Loss',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'production_lost_time',\n 'channel': 'production_metric',\n 'displayName': 'Production Lost Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'capacity_loss',\n 'channel': 'production_metric',\n 'displayName': 'Schedule Loss',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'capacity_lost_time',\n 'channel': 'production_metric',\n 'displayName': 'Schedule Lost Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'teep',\n 'channel': 'production_metric',\n 'displayName': 'TEEP',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'utilization',\n 'channel': 'production_metric',\n 'displayName': 'Utilization',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n }\n ]\n }\n];\n\nexport const hierarchyNodeOptions = [\n {\n 'displayName': 'Enterprise',\n 'iconClass': 'vorne-icon vorne-icon-globe',\n 'level': 0,\n 'name': '3eb732c7-aeaa-4e46-8ac1-bfccd1d537a9',\n 'isAsset': false\n },\n {\n 'displayName': 'Site',\n 'iconClass': 'vorne-icon vorne-icon-factory',\n 'level': 1,\n 'name': 'fc76e8de-f046-46e5-803a-d1f5230b69a5',\n 'isAsset': false\n },\n {\n 'displayName': 'Area',\n 'iconClass': 'vorne-icon vorne-icon-department',\n 'level': 2,\n 'name': '0f1deb3a-b76e-45be-b033-bce3417f7565',\n 'isAsset': false\n },\n {\n 'displayName': 'XL810-1',\n 'iconClass': 'vorne-icon vorne-icon-gear',\n 'level': 3,\n 'name': 'self',\n 'isAsset': true\n }\n];\n\nexport const filterOptions = {\n 'metrics': [],\n 'categories': [\n {\n 'displayName': 'Production',\n 'name': 'production',\n 'entries': [\n {\n 'name': 'shift',\n 'displayName': 'Shift',\n 'channel': 'production_metric',\n 'fieldType': 'category_value',\n 'type': 'string',\n 'grouping': -1,\n 'groupName': 'team',\n 'groupingLevel': 0,\n 'assetLevel': null,\n 'isAssetBased': false\n },\n {\n 'name': 'team',\n 'displayName': 'Team',\n 'channel': 'production_metric',\n 'fieldType': 'category_value',\n 'type': 'string',\n 'grouping': -1,\n 'groupName': 'team',\n 'groupingLevel': 1,\n 'assetLevel': null,\n 'isAssetBased': false\n },\n {\n 'name': 'part',\n 'displayName': 'Part',\n 'channel': 'production_metric',\n 'fieldType': 'category_value',\n 'type': 'string',\n 'grouping': 0,\n 'groupName': 'production',\n 'groupingLevel': 2,\n 'assetLevel': null,\n 'isAssetBased': false\n },\n {\n 'name': 'job',\n 'displayName': 'Job',\n 'channel': 'production_metric',\n 'fieldType': 'category_value',\n 'type': 'string',\n 'grouping': 0,\n 'groupName': 'production',\n 'groupingLevel': 3,\n 'assetLevel': null,\n 'isAssetBased': false\n },\n {\n 'name': 'process_state',\n 'displayName': 'Production State',\n 'channel': 'production_metric',\n 'fieldType': 'category_value',\n 'type': 'string',\n 'grouping': 1,\n 'groupName': 'process_state',\n 'groupingLevel': 4,\n 'assetLevel': null,\n 'isAssetBased': false\n },\n {\n 'name': 'process_state_reason',\n 'displayName': 'Reason',\n 'channel': 'production_metric',\n 'fieldType': 'category_value',\n 'type': 'string',\n 'grouping': 1,\n 'groupName': 'process_state',\n 'groupingLevel': 5,\n 'assetLevel': null,\n 'isAssetBased': false\n },\n {\n 'name': 'performance_impact',\n 'displayName': 'Impact',\n 'channel': 'production_metric',\n 'fieldType': 'category_value',\n 'type': 'string',\n 'grouping': 2,\n 'groupName': 'impact',\n 'groupingLevel': 6,\n 'assetLevel': null,\n 'isAssetBased': false\n },\n {\n 'name': 'production_phase',\n 'displayName': 'Production Phase',\n 'channel': 'production_metric',\n 'fieldType': 'category_value',\n 'type': 'string',\n 'grouping': 2,\n 'groupName': 'impact',\n 'groupingLevel': 7,\n 'assetLevel': null,\n 'isAssetBased': false\n }\n ]\n },\n {\n 'displayName': 'Date and Time',\n 'name': 'date_and_time',\n 'entries': [\n {\n 'name': 'shift_hour',\n 'displayName': 'Hour',\n 'channel': 'production_metric',\n 'fieldType': 'category_value',\n 'type': 'string',\n 'grouping': -1,\n 'groupName': 'time_based',\n 'groupingLevel': 0,\n 'assetLevel': null,\n 'isAssetBased': false,\n 'short_description_key': 'shift_hour_short_description'\n },\n {\n 'name': 'ordinal_shift',\n 'displayName': 'Ordinal Shift',\n 'channel': 'production_metric',\n 'fieldType': 'category_value',\n 'type': 'string',\n 'grouping': -1,\n 'groupName': 'time_based',\n 'groupingLevel': 1,\n 'assetLevel': null,\n 'isAssetBased': false,\n 'short_description_key': 'ordinal_shift_short_description'\n },\n {\n 'name': 'production_day',\n 'displayName': 'Day of Week',\n 'channel': 'production_metric',\n 'fieldType': 'category_value',\n 'type': 'string',\n 'grouping': -1,\n 'groupName': 'time_based',\n 'groupingLevel': 3,\n 'assetLevel': null,\n 'isAssetBased': false,\n 'short_description_key': 'production_day_short_description'\n },\n {\n 'name': 'week',\n 'displayName': 'Week',\n 'channel': 'production_metric',\n 'fieldType': 'category_value',\n 'type': 'string',\n 'grouping': -1,\n 'groupName': 'time_based',\n 'groupingLevel': 4,\n 'assetLevel': null,\n 'isAssetBased': false,\n 'short_description_key': 'week_short_description'\n },\n {\n 'name': 'month',\n 'displayName': 'Month',\n 'channel': 'production_metric',\n 'fieldType': 'category_value',\n 'type': 'string',\n 'grouping': -1,\n 'groupName': 'time_based',\n 'groupingLevel': 6,\n 'assetLevel': null,\n 'isAssetBased': false,\n 'short_description_key': 'month_short_description'\n },\n {\n 'name': 'quarter',\n 'displayName': 'Quarter',\n 'channel': 'production_metric',\n 'fieldType': 'category_value',\n 'type': 'string',\n 'grouping': -1,\n 'groupName': 'time_based',\n 'groupingLevel': 7,\n 'assetLevel': null,\n 'isAssetBased': false,\n 'short_description_key': 'quarter_short_description'\n },\n {\n 'name': 'year',\n 'displayName': 'Year',\n 'channel': 'production_metric',\n 'fieldType': 'category_value',\n 'type': 'string',\n 'grouping': -1,\n 'groupName': 'time_based',\n 'groupingLevel': 8,\n 'assetLevel': null,\n 'isAssetBased': false,\n 'short_description_key': 'year_short_description'\n }\n ]\n }\n ],\n 'values': {\n 'shift': [\n {\n 'name': 'none',\n 'displayName': 'none',\n 'isDummyGroup': true,\n 'entries': [\n {\n 'name': 'first_shift',\n 'displayName': 'First Shift'\n },\n {\n 'name': 'second_shift',\n 'displayName': 'Second Shift'\n },\n {\n 'name': 'third_shift',\n 'displayName': 'Third Shift'\n },\n {\n 'name': 'unknown',\n 'displayName': 'Unknown Shift'\n }\n ]\n }\n ],\n 'team': [\n {\n 'name': 'none',\n 'displayName': 'none',\n 'isDummyGroup': true,\n 'entries': [\n {\n 'name': 'unknown',\n 'displayName': 'Unknown Team'\n }\n ]\n }\n ],\n 'part': [\n {\n 'name': 'none',\n 'displayName': 'none',\n 'isDummyGroup': true,\n 'entries': [\n {\n 'name': 'sample_part',\n 'displayName': 'Sample Part'\n },\n {\n 'name': 'unknown',\n 'displayName': 'Unknown Part'\n }\n ]\n }\n ],\n 'job': [\n {\n 'name': 'none',\n 'displayName': 'none',\n 'isDummyGroup': true,\n 'entries': [\n {\n 'name': 'unknown',\n 'displayName': 'Unknown Job'\n }\n ]\n }\n ],\n 'process_state': [\n {\n 'name': 'not_scheduled',\n 'displayName': 'Not Scheduled (Excluded from OEE)',\n 'isDummyGroup': false,\n 'entries': [\n {\n 'name': 'meeting',\n 'displayName': 'Meeting',\n 'link': 'not_scheduled'\n },\n {\n 'name': 'break',\n 'displayName': 'Meal/Break',\n 'link': 'not_scheduled'\n },\n {\n 'name': 'no_production',\n 'displayName': 'No Production',\n 'link': 'not_scheduled'\n },\n {\n 'name': 'not_monitored',\n 'displayName': 'Not Monitored',\n 'link': 'not_scheduled'\n }\n ]\n },\n {\n 'name': 'planned_stop',\n 'displayName': 'Planned Stop',\n 'isDummyGroup': false,\n 'entries': [\n {\n 'name': 'maintenance',\n 'displayName': 'Maintenance',\n 'link': 'planned_stop'\n },\n {\n 'name': 'changeover',\n 'displayName': 'Changeover',\n 'link': 'planned_stop'\n }\n ]\n },\n {\n 'name': 'run',\n 'displayName': 'Run',\n 'isDummyGroup': false,\n 'entries': [\n {\n 'name': 'running',\n 'displayName': 'Running',\n 'link': 'run'\n },\n {\n 'name': 'running_slow',\n 'displayName': 'Running Slow',\n 'link': 'run'\n },\n {\n 'name': 'running_poor_quality',\n 'displayName': 'Running Poor Quality',\n 'link': 'run'\n },\n {\n 'name': 'running_poorly',\n 'displayName': 'Running Poorly',\n 'link': 'run'\n }\n ]\n },\n {\n 'name': 'unplanned_stop',\n 'displayName': 'Unplanned Stop',\n 'isDummyGroup': false,\n 'entries': [\n {\n 'name': 'down',\n 'displayName': 'Down',\n 'link': 'unplanned_stop'\n }\n ]\n }\n ],\n 'process_state_reason': [\n {\n 'name': 'changeover',\n 'displayName': 'Changeover',\n 'isDummyGroup': false,\n 'entries': [\n {\n 'name': 'material_change',\n 'displayName': 'Material Change',\n 'link': 'changeover'\n },\n {\n 'name': 'part_change',\n 'displayName': 'Part Change',\n 'link': 'changeover'\n },\n {\n 'name': 'changeover',\n 'displayName': 'Setup',\n 'link': 'changeover'\n }\n ]\n },\n {\n 'name': 'down',\n 'displayName': 'Down',\n 'isDummyGroup': false,\n 'entries': [\n {\n 'name': 'adjustment',\n 'displayName': 'Adjustment',\n 'link': 'down'\n },\n {\n 'name': 'autonomous_maintenance',\n 'displayName': 'Autonomous Maintenance',\n 'link': 'down'\n },\n {\n 'name': 'breakdown',\n 'displayName': 'Breakdown',\n 'link': 'down'\n },\n {\n 'name': 'jam',\n 'displayName': 'Jam',\n 'link': 'down'\n },\n {\n 'name': 'down',\n 'displayName': 'Missing Reason',\n 'link': 'down'\n },\n {\n 'name': 'no_material',\n 'displayName': 'No Material',\n 'link': 'down'\n },\n {\n 'name': 'no_operator',\n 'displayName': 'No Operator',\n 'link': 'down'\n }\n ]\n },\n {\n 'name': 'maintenance',\n 'displayName': 'Maintenance',\n 'isDummyGroup': false,\n 'entries': [\n {\n 'name': '5s',\n 'displayName': '5S',\n 'link': 'maintenance'\n },\n {\n 'name': 'cleaning',\n 'displayName': 'Cleaning',\n 'link': 'maintenance'\n },\n {\n 'name': 'maintenance',\n 'displayName': 'General Maintenance',\n 'link': 'maintenance'\n },\n {\n 'name': 'lubrication',\n 'displayName': 'Lubrication',\n 'link': 'maintenance'\n }\n ]\n },\n {\n 'name': 'break',\n 'displayName': 'Meal/Break',\n 'isDummyGroup': false,\n 'entries': [\n {\n 'name': 'break',\n 'displayName': 'Break',\n 'link': 'break'\n },\n {\n 'name': 'lunch',\n 'displayName': 'Lunch',\n 'link': 'break'\n }\n ]\n },\n {\n 'name': 'meeting',\n 'displayName': 'Meeting',\n 'isDummyGroup': false,\n 'entries': [\n {\n 'name': 'safety_meeting',\n 'displayName': 'Safety Meeting',\n 'link': 'meeting'\n },\n {\n 'name': 'shift_handover',\n 'displayName': 'Shift Handover',\n 'link': 'meeting'\n },\n {\n 'name': 'meeting',\n 'displayName': 'Team Meeting',\n 'link': 'meeting'\n }\n ]\n },\n {\n 'name': 'no_production',\n 'displayName': 'No Production',\n 'isDummyGroup': false,\n 'entries': [\n {\n 'name': 'no_orders',\n 'displayName': 'No Orders',\n 'link': 'no_production'\n },\n {\n 'name': 'no_production',\n 'displayName': 'No Shift Scheduled',\n 'link': 'no_production'\n },\n {\n 'name': 'no_process_state_enabled',\n 'displayName': 'No State Enabled',\n 'link': 'no_production'\n },\n {\n 'name': 'optional_shift_scheduled',\n 'displayName': 'Optional Shift Scheduled',\n 'link': 'no_production'\n },\n {\n 'name': 'shift_ended_early',\n 'displayName': 'Shift Ended Early',\n 'link': 'no_production'\n }\n ]\n },\n {\n 'name': 'not_monitored',\n 'displayName': 'Not Monitored',\n 'isDummyGroup': false,\n 'entries': [\n {\n 'name': 'event_cleared',\n 'displayName': 'Event Cleared',\n 'link': 'not_monitored'\n },\n {\n 'name': 'not_monitored',\n 'displayName': 'Not Monitored',\n 'link': 'not_monitored'\n },\n {\n 'name': 'powered_off',\n 'displayName': 'Powered Off',\n 'link': 'not_monitored'\n },\n {\n 'name': 'upgrading',\n 'displayName': 'Upgrading',\n 'link': 'not_monitored'\n }\n ]\n },\n {\n 'name': 'running',\n 'displayName': 'Running',\n 'isDummyGroup': false,\n 'entries': [\n {\n 'name': 'running',\n 'displayName': 'Running Normally',\n 'link': 'running'\n }\n ]\n },\n {\n 'name': 'running_poor_quality',\n 'displayName': 'Running Poor Quality',\n 'isDummyGroup': false,\n 'entries': [\n {\n 'name': 'production_rejects',\n 'displayName': 'Production Rejects',\n 'link': 'running_poor_quality'\n },\n {\n 'name': 'running_poor_quality',\n 'displayName': 'Running Poor Quality',\n 'link': 'running_poor_quality'\n },\n {\n 'name': 'startup_rejects',\n 'displayName': 'Startup Rejects',\n 'link': 'running_poor_quality'\n }\n ]\n },\n {\n 'name': 'running_poorly',\n 'displayName': 'Running Poorly',\n 'isDummyGroup': false,\n 'entries': [\n {\n 'name': 'running_poorly',\n 'displayName': 'Slow w/ Poor Quality',\n 'link': 'running_poorly'\n }\n ]\n },\n {\n 'name': 'running_slow',\n 'displayName': 'Running Slow',\n 'isDummyGroup': false,\n 'entries': [\n {\n 'name': 'running_slow',\n 'displayName': 'Slow and/or Small Stops',\n 'link': 'running_slow'\n }\n ]\n }\n ],\n 'performance_impact': [\n {\n 'name': 'none',\n 'displayName': 'none',\n 'isDummyGroup': true,\n 'entries': [\n {\n 'name': 'run',\n 'displayName': 'Run'\n },\n {\n 'name': 'planned_stop',\n 'displayName': 'Planned Stop'\n },\n {\n 'name': 'unplanned_stop',\n 'displayName': 'Unplanned Stop'\n },\n {\n 'name': 'not_scheduled',\n 'displayName': 'Not Scheduled'\n }\n ]\n }\n ],\n 'production_phase': [\n {\n 'name': 'none',\n 'displayName': 'none',\n 'isDummyGroup': true,\n 'entries': [\n {\n 'name': 'changeover',\n 'displayName': 'Changeover'\n },\n {\n 'name': 'startup',\n 'displayName': 'Startup'\n },\n {\n 'name': 'steady_state',\n 'displayName': 'Steady State'\n }\n ]\n }\n ],\n 'shift_hour': [\n {\n 'name': 'none',\n 'displayName': 'none',\n 'isDummyGroup': true,\n 'entries': [\n {\n 'name': '1',\n 'displayName': 'Shift Hour 01'\n },\n {\n 'name': '2',\n 'displayName': 'Shift Hour 02'\n },\n {\n 'name': '3',\n 'displayName': 'Shift Hour 03'\n },\n {\n 'name': '4',\n 'displayName': 'Shift Hour 04'\n },\n {\n 'name': '5',\n 'displayName': 'Shift Hour 05'\n },\n {\n 'name': '6',\n 'displayName': 'Shift Hour 06'\n },\n {\n 'name': '7',\n 'displayName': 'Shift Hour 07'\n },\n {\n 'name': '8',\n 'displayName': 'Shift Hour 08'\n },\n {\n 'name': '9',\n 'displayName': 'Shift Hour 09'\n },\n {\n 'name': '10',\n 'displayName': 'Shift Hour 10'\n },\n {\n 'name': '11',\n 'displayName': 'Shift Hour 11'\n },\n {\n 'name': '12',\n 'displayName': 'Shift Hour 12'\n },\n {\n 'name': '13',\n 'displayName': 'Shift Hour 13'\n },\n {\n 'name': '14',\n 'displayName': 'Shift Hour 14'\n },\n {\n 'name': '15',\n 'displayName': 'Shift Hour 15'\n },\n {\n 'name': '16',\n 'displayName': 'Shift Hour 16'\n },\n {\n 'name': '17',\n 'displayName': 'Shift Hour 17'\n },\n {\n 'name': '18',\n 'displayName': 'Shift Hour 18'\n },\n {\n 'name': '19',\n 'displayName': 'Shift Hour 19'\n },\n {\n 'name': '20',\n 'displayName': 'Shift Hour 20'\n },\n {\n 'name': '21',\n 'displayName': 'Shift Hour 21'\n },\n {\n 'name': '22',\n 'displayName': 'Shift Hour 22'\n },\n {\n 'name': '23',\n 'displayName': 'Shift Hour 23'\n },\n {\n 'name': '24',\n 'displayName': 'Shift Hour 24'\n },\n {\n 'name': 'extra',\n 'displayName': 'Shift Hour 25+'\n }\n ]\n }\n ],\n 'ordinal_shift': [\n {\n 'name': 'none',\n 'displayName': 'none',\n 'isDummyGroup': true,\n 'entries': [\n {\n 'name': '1',\n 'displayName': 'Ordinal Shift 1'\n },\n {\n 'name': '2',\n 'displayName': 'Ordinal Shift 2'\n },\n {\n 'name': '3',\n 'displayName': 'Ordinal Shift 3'\n },\n {\n 'name': '4',\n 'displayName': 'Ordinal Shift 4'\n },\n {\n 'name': '5',\n 'displayName': 'Ordinal Shift 5'\n },\n {\n 'name': '6',\n 'displayName': 'Ordinal Shift 6'\n },\n {\n 'name': '7',\n 'displayName': 'Ordinal Shift 7'\n },\n {\n 'name': '8',\n 'displayName': 'Ordinal Shift 8'\n },\n {\n 'name': '9',\n 'displayName': 'Ordinal Shift 9+'\n }\n ]\n }\n ],\n 'production_day': [\n {\n 'name': 'none',\n 'displayName': 'none',\n 'isDummyGroup': true,\n 'entries': [\n {\n 'name': '0',\n 'displayName': 'Monday'\n },\n {\n 'name': '1',\n 'displayName': 'Tuesday'\n },\n {\n 'name': '2',\n 'displayName': 'Wednesday'\n },\n {\n 'name': '3',\n 'displayName': 'Thursday'\n },\n {\n 'name': '4',\n 'displayName': 'Friday'\n },\n {\n 'name': '5',\n 'displayName': 'Saturday'\n },\n {\n 'name': '6',\n 'displayName': 'Sunday'\n }\n ]\n }\n ],\n 'week': [\n {\n 'name': 'none',\n 'displayName': 'none',\n 'isDummyGroup': true,\n 'entries': [\n {\n 'name': '1',\n 'displayName': 'Week 01'\n },\n {\n 'name': '2',\n 'displayName': 'Week 02'\n },\n {\n 'name': '3',\n 'displayName': 'Week 03'\n },\n {\n 'name': '4',\n 'displayName': 'Week 04'\n },\n {\n 'name': '5',\n 'displayName': 'Week 05'\n },\n {\n 'name': '6',\n 'displayName': 'Week 06'\n },\n {\n 'name': '7',\n 'displayName': 'Week 07'\n },\n {\n 'name': '8',\n 'displayName': 'Week 08'\n },\n {\n 'name': '9',\n 'displayName': 'Week 09'\n },\n {\n 'name': '10',\n 'displayName': 'Week 10'\n },\n {\n 'name': '11',\n 'displayName': 'Week 11'\n },\n {\n 'name': '12',\n 'displayName': 'Week 12'\n },\n {\n 'name': '13',\n 'displayName': 'Week 13'\n },\n {\n 'name': '14',\n 'displayName': 'Week 14'\n },\n {\n 'name': '15',\n 'displayName': 'Week 15'\n },\n {\n 'name': '16',\n 'displayName': 'Week 16'\n },\n {\n 'name': '17',\n 'displayName': 'Week 17'\n },\n {\n 'name': '18',\n 'displayName': 'Week 18'\n },\n {\n 'name': '19',\n 'displayName': 'Week 19'\n },\n {\n 'name': '20',\n 'displayName': 'Week 20'\n },\n {\n 'name': '21',\n 'displayName': 'Week 21'\n },\n {\n 'name': '22',\n 'displayName': 'Week 22'\n },\n {\n 'name': '23',\n 'displayName': 'Week 23'\n },\n {\n 'name': '24',\n 'displayName': 'Week 24'\n },\n {\n 'name': '25',\n 'displayName': 'Week 25'\n },\n {\n 'name': '26',\n 'displayName': 'Week 26'\n },\n {\n 'name': '27',\n 'displayName': 'Week 27'\n },\n {\n 'name': '28',\n 'displayName': 'Week 28'\n },\n {\n 'name': '29',\n 'displayName': 'Week 29'\n },\n {\n 'name': '30',\n 'displayName': 'Week 30'\n },\n {\n 'name': '31',\n 'displayName': 'Week 31'\n },\n {\n 'name': '32',\n 'displayName': 'Week 32'\n },\n {\n 'name': '33',\n 'displayName': 'Week 33'\n },\n {\n 'name': '34',\n 'displayName': 'Week 34'\n },\n {\n 'name': '35',\n 'displayName': 'Week 35'\n },\n {\n 'name': '36',\n 'displayName': 'Week 36'\n },\n {\n 'name': '37',\n 'displayName': 'Week 37'\n },\n {\n 'name': '38',\n 'displayName': 'Week 38'\n },\n {\n 'name': '39',\n 'displayName': 'Week 39'\n },\n {\n 'name': '40',\n 'displayName': 'Week 40'\n },\n {\n 'name': '41',\n 'displayName': 'Week 41'\n },\n {\n 'name': '42',\n 'displayName': 'Week 42'\n },\n {\n 'name': '43',\n 'displayName': 'Week 43'\n },\n {\n 'name': '44',\n 'displayName': 'Week 44'\n },\n {\n 'name': '45',\n 'displayName': 'Week 45'\n },\n {\n 'name': '46',\n 'displayName': 'Week 46'\n },\n {\n 'name': '47',\n 'displayName': 'Week 47'\n },\n {\n 'name': '48',\n 'displayName': 'Week 48'\n },\n {\n 'name': '49',\n 'displayName': 'Week 49'\n },\n {\n 'name': '50',\n 'displayName': 'Week 50'\n },\n {\n 'name': '51',\n 'displayName': 'Week 51'\n },\n {\n 'name': '52',\n 'displayName': 'Week 52'\n },\n {\n 'name': '53',\n 'displayName': 'Week 53'\n },\n {\n 'name': 'unknown',\n 'displayName': 'Unknown'\n }\n ]\n }\n ],\n 'month': [\n {\n 'name': 'none',\n 'displayName': 'none',\n 'isDummyGroup': true,\n 'entries': [\n {\n 'name': '1',\n 'displayName': 'January'\n },\n {\n 'name': '2',\n 'displayName': 'February'\n },\n {\n 'name': '3',\n 'displayName': 'March'\n },\n {\n 'name': '4',\n 'displayName': 'April'\n },\n {\n 'name': '5',\n 'displayName': 'May'\n },\n {\n 'name': '6',\n 'displayName': 'June'\n },\n {\n 'name': '7',\n 'displayName': 'July'\n },\n {\n 'name': '8',\n 'displayName': 'August'\n },\n {\n 'name': '9',\n 'displayName': 'September'\n },\n {\n 'name': '10',\n 'displayName': 'October'\n },\n {\n 'name': '11',\n 'displayName': 'November'\n },\n {\n 'name': '12',\n 'displayName': 'December'\n },\n {\n 'name': 'unknown',\n 'displayName': 'Unknown'\n }\n ]\n }\n ],\n 'quarter': [\n {\n 'name': 'none',\n 'displayName': 'none',\n 'isDummyGroup': true,\n 'entries': [\n {\n 'name': '1',\n 'displayName': 'Q1'\n },\n {\n 'name': '2',\n 'displayName': 'Q2'\n },\n {\n 'name': '3',\n 'displayName': 'Q3'\n },\n {\n 'name': '4',\n 'displayName': 'Q4'\n },\n {\n 'name': 'unknown',\n 'displayName': 'Unknown'\n }\n ]\n }\n ],\n 'year': [\n {\n 'name': 'none',\n 'displayName': 'none',\n 'isDummyGroup': true,\n 'entries': [\n {\n 'name': '1999',\n 'displayName': '1999'\n },\n {\n 'name': '2000',\n 'displayName': '2000'\n },\n {\n 'name': '2001',\n 'displayName': '2001'\n },\n {\n 'name': '2002',\n 'displayName': '2002'\n },\n {\n 'name': '2003',\n 'displayName': '2003'\n },\n {\n 'name': '2004',\n 'displayName': '2004'\n },\n {\n 'name': '2005',\n 'displayName': '2005'\n },\n {\n 'name': '2006',\n 'displayName': '2006'\n },\n {\n 'name': '2007',\n 'displayName': '2007'\n },\n {\n 'name': '2008',\n 'displayName': '2008'\n },\n {\n 'name': '2009',\n 'displayName': '2009'\n },\n {\n 'name': '2010',\n 'displayName': '2010'\n },\n {\n 'name': '2011',\n 'displayName': '2011'\n },\n {\n 'name': '2012',\n 'displayName': '2012'\n },\n {\n 'name': '2013',\n 'displayName': '2013'\n },\n {\n 'name': '2014',\n 'displayName': '2014'\n },\n {\n 'name': '2015',\n 'displayName': '2015'\n },\n {\n 'name': '2016',\n 'displayName': '2016'\n },\n {\n 'name': '2017',\n 'displayName': '2017'\n },\n {\n 'name': '2018',\n 'displayName': '2018'\n },\n {\n 'name': '2019',\n 'displayName': '2019'\n },\n {\n 'name': '2020',\n 'displayName': '2020'\n },\n {\n 'name': '2021',\n 'displayName': '2021'\n },\n {\n 'name': '2022',\n 'displayName': '2022'\n },\n {\n 'name': '2023',\n 'displayName': '2023'\n },\n {\n 'name': '2024',\n 'displayName': '2024'\n },\n {\n 'name': '2025',\n 'displayName': '2025'\n },\n {\n 'name': '2026',\n 'displayName': '2026'\n },\n {\n 'name': '2027',\n 'displayName': '2027'\n },\n {\n 'name': '2028',\n 'displayName': '2028'\n },\n {\n 'name': '2029',\n 'displayName': '2029'\n },\n {\n 'name': '2030',\n 'displayName': '2030'\n },\n {\n 'name': 'unknown',\n 'displayName': 'Unknown'\n }\n ]\n }\n ]\n }\n};\n\nconst mockDimensionValues = {\n asset: [\n 'Stamping 1',\n 'Stamping 2',\n 'Stamping 3',\n 'Bottling 1',\n 'Bottling 2',\n 'Bottling 3',\n ],\n part: [\n 'Part A',\n 'Part B',\n 'Part C',\n 'Part D',\n 'Part E',\n ],\n process_state_reason: [\n 'Material Change',\n 'Part Change',\n 'Setup',\n 'Breakdown',\n 'Jam',\n 'Adjustment',\n 'Autonomous Maintenance',\n 'No Material',\n ],\n reject_reason: [\n 'Cosmetic Defect',\n 'Scratch',\n 'Underweight',\n 'Overweight',\n 'Out of Spec',\n ],\n};\n\nconst getColumnChannelName = (columnId) => {\n const channel = columnId.channel ? columnId.channel : 'production_metric';\n const columnName = columnId.name ? columnId.name : columnId;\n return {\n channel,\n columnName,\n };\n};\n\n// helper function to find the columnConfig from the channel schema\nconst getColumnConfig = (channel, columnName) => {\n let columnConfig = channel_schema[channel].metrics[columnName];\n if (columnConfig) {\n return columnConfig;\n }\n\n columnConfig = channel_schema[channel].category_values[columnName];\n if (columnConfig) {\n return columnConfig;\n }\n\n if (columnName === 'asset') {\n return {\n category: 'asset',\n display_name: 'email_table.group.work_center.display_name',\n help_text: 'term.part.short',\n indexed: true,\n indexed_with: [\n 'record_order'\n ],\n name: 'asset',\n persist: true,\n rollup: true,\n formatType: 'category_value'\n };\n }\n\n return {};\n};\n\n/**\n * creates a js object with fake data for a column that can then be used by widgets to display something\n */\nconst getMockData = (columnId, translator, index, metricThresholds) => {\n const { channel, columnName } = getColumnChannelName(columnId);\n\n const columnConfig = getColumnConfig(channel, columnName);\n // if category exists in config then it is a category value\n const isCategoryValue = !!columnConfig.category;\n\n let format = getColumnFormatType(columnConfig, isCategoryValue);\n\n const displayName = translator ? translator(columnConfig.display_name) : columnName;\n\n let rawValue;\n\n if (format === 'count') {\n rawValue = 1234;\n }\n else if (format === 'cycle') {\n rawValue = 1234;\n }\n else if (format === 'cycle_time') {\n rawValue = 1.23;\n }\n else if (format === 'percent') {\n // heatConfig = {\n // 'severity': 'caution',\n // 'color': '#84a213',\n // };\n rawValue = 0.123;\n }\n else if (format === 'rate') {\n rawValue = 12.34;\n }\n else if (format === 'rate_per_hour') {\n rawValue = 123.4;\n }\n else if (format === 'time_span') {\n rawValue = 5025;\n }\n else if (format === 'category_value') {\n const randomValues = mockDimensionValues[columnConfig.category];\n if (!randomValues) {\n console.error(`Could not find random list for ${columnConfig.category}, update mockDimensionValues`);\n }\n const ii = index % randomValues.length;\n rawValue = {\n displayName: randomValues[ii],\n };\n }\n else if (format === 'date_time') {\n const now = new Date();\n now.setMinutes(now.getMinutes() - index * 11);\n rawValue = OffsetDate.fromDate(now, now.getTimezoneOffset() * -1);\n }\n else {\n rawValue = 999;\n }\n\n let heatConfig;\n\n if (metricThresholds?.[columnName]) {\n heatConfig = getHeatConfig(columnName, rawValue, metricThresholds[columnName]);\n }\n\n return {\n name: columnName,\n formatType: format,\n heatConfig,\n rawValue,\n displayName,\n };\n};\n\n/**\n * generate fake KPI Group data based on widget stf\n */\nexport const getKpiGroupData = (widgetData, translator, metricThresholds) => {\n const {\n fields\n } = widgetData;\n\n // for each field in fields create an entry into an js object indexed by column name pointing\n // at data for that column\n let fieldData = fields.reduce((rv, field) => {\n const data = getMockData(field.name, translator, null, metricThresholds);\n rv[field.name] = data;\n return rv;\n }, {});\n\n return {\n response: fieldData,\n error: null\n };\n};\n\n/**\n * generate fake KPI data based on widget stf\n */\nexport const getKpiData = (name, translator, metricThresholds) => {\n const data = getMockData(name, translator, null, metricThresholds);\n\n return {\n response: {\n metricData: data,\n },\n error: null\n };\n};\n\nexport const hierarchyNodeDisplayName = {\n 'response': 'Node Display Name',\n 'error': null\n};\n\nexport const timeRangePrimaryDetails = {\n 'response': null,\n 'error': null\n};\n\nexport const timeRangeSecondaryDetails = {\n 'response': null,\n 'error': null\n};\n\nexport const emailWidgetFieldOptions = {\n 'metric': [\n {\n 'name': 'counts',\n 'displayName': 'Counts',\n 'isDummyGroup': false,\n 'entries': [\n {\n 'name': 'pack_out_count',\n 'channel': 'production_metric',\n 'displayName': 'End of Line Count',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'count'\n },\n {\n 'name': 'good_count',\n 'channel': 'production_metric',\n 'displayName': 'Good Count',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'count'\n },\n {\n 'name': 'in_count',\n 'channel': 'production_metric',\n 'displayName': 'In Count',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'count'\n },\n {\n 'name': 'percent_good',\n 'channel': 'production_metric',\n 'displayName': 'Percent Good',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'percent_reject',\n 'channel': 'production_metric',\n 'displayName': 'Percent Reject',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'production_rejects',\n 'channel': 'production_metric',\n 'displayName': 'Production Rejects',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'count'\n },\n {\n 'name': 'reject_count',\n 'channel': 'production_metric',\n 'displayName': 'Reject Count',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'count'\n },\n {\n 'name': 'startup_rejects',\n 'channel': 'production_metric',\n 'displayName': 'Startup Rejects',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'count'\n },\n {\n 'name': 'total_count',\n 'channel': 'production_metric',\n 'displayName': 'Total Count',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'count'\n }\n ]\n },\n {\n 'name': 'cycles',\n 'displayName': 'Cycles',\n 'isDummyGroup': false,\n 'entries': [\n {\n 'name': 'average_cycle_time',\n 'channel': 'production_metric',\n 'displayName': 'Avg. Cycle Time',\n 'fieldType': 'metric',\n 'type': 'time_span',\n 'subType': 'cycle_time'\n },\n {\n 'name': 'average_ideal_cycle_time',\n 'channel': 'production_metric',\n 'displayName': 'Avg. Ideal Cycle Time',\n 'fieldType': 'metric',\n 'type': 'time_span',\n 'subType': 'cycle_time'\n },\n {\n 'name': 'average_run_cycle_time',\n 'channel': 'production_metric',\n 'displayName': 'Avg. Run Cycle Time',\n 'fieldType': 'metric',\n 'type': 'time_span',\n 'subType': 'cycle_time'\n },\n {\n 'name': 'average_small_stop_time',\n 'channel': 'production_metric',\n 'displayName': 'Avg. Small Stop Time',\n 'fieldType': 'metric',\n 'type': 'time_span',\n 'subType': 'cycle_time'\n },\n {\n 'name': 'equipment_cycles',\n 'channel': 'production_metric',\n 'displayName': 'Equipment Cycles',\n 'fieldType': 'metric',\n 'type': 'uint64'\n },\n {\n 'name': 'ideal_time',\n 'channel': 'production_metric',\n 'displayName': 'Ideal Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'partial_cycle_lost_time',\n 'channel': 'production_metric',\n 'displayName': 'Partial Cycle Lost Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'partial_cycles',\n 'channel': 'production_metric',\n 'displayName': 'Partial Cycles',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'cycle'\n },\n {\n 'name': 'run_cycle_lost_time',\n 'channel': 'production_metric',\n 'displayName': 'Run Cycle Lost Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'run_cycles',\n 'channel': 'production_metric',\n 'displayName': 'Run Cycles',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'cycle'\n },\n {\n 'name': 'small_stops',\n 'channel': 'production_metric',\n 'displayName': 'Small Stops',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'cycle'\n },\n {\n 'name': 'total_cycle_time',\n 'channel': 'production_metric',\n 'displayName': 'Total Cycle Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'total_cycles',\n 'channel': 'production_metric',\n 'displayName': 'Total Cycles',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'cycle'\n }\n ]\n },\n {\n 'name': 'labor',\n 'displayName': 'Labor',\n 'isDummyGroup': false,\n 'entries': [\n {\n 'name': 'earned_labor',\n 'channel': 'production_metric',\n 'displayName': 'Earned Labor',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'good_pieces_per_labor_hour',\n 'channel': 'production_metric',\n 'displayName': 'Good Pieces per Labor Hour',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate'\n },\n {\n 'name': 'labor_efficiency',\n 'channel': 'production_metric',\n 'displayName': 'Labor Efficiency',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'labor_per_good_piece',\n 'channel': 'production_metric',\n 'displayName': 'Labor per Good Piece',\n 'fieldType': 'metric',\n 'type': 'time_span',\n 'subType': 'cycle_time'\n },\n {\n 'name': 'labor_per_piece',\n 'channel': 'production_metric',\n 'displayName': 'Labor per Piece',\n 'fieldType': 'metric',\n 'type': 'time_span',\n 'subType': 'cycle_time'\n },\n {\n 'name': 'lost_labor',\n 'channel': 'production_metric',\n 'displayName': 'Lost Labor',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'pieces_per_labor_hour',\n 'channel': 'production_metric',\n 'displayName': 'Pieces per Labor Hour',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate'\n },\n {\n 'name': 'target_labor_per_piece',\n 'channel': 'production_metric',\n 'displayName': 'Target Labor per Piece',\n 'fieldType': 'metric',\n 'type': 'time_span',\n 'subType': 'cycle_time'\n },\n {\n 'name': 'average_team_size',\n 'channel': 'production_metric',\n 'displayName': 'Team Size',\n 'fieldType': 'metric',\n 'type': 'double'\n },\n {\n 'name': 'labor',\n 'channel': 'production_metric',\n 'displayName': 'Total Labor',\n 'fieldType': 'metric',\n 'type': 'time_span'\n }\n ]\n },\n {\n 'name': 'oee',\n 'displayName': 'OEE',\n 'isDummyGroup': false,\n 'entries': [\n {\n 'name': 'availability',\n 'channel': 'production_metric',\n 'displayName': 'Availability',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'availability_loss',\n 'channel': 'production_metric',\n 'displayName': 'Availability Loss',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'availability_lost_time',\n 'channel': 'production_metric',\n 'displayName': 'Availability Lost Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'fully_productive_time',\n 'channel': 'production_metric',\n 'displayName': 'Fully Productive Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'oee',\n 'channel': 'production_metric',\n 'displayName': 'OEE',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'oee_loss',\n 'channel': 'production_metric',\n 'displayName': 'OEE Loss',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'oee_lost_time',\n 'channel': 'production_metric',\n 'displayName': 'OEE Lost Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'performance',\n 'channel': 'production_metric',\n 'displayName': 'Performance',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'performance_loss',\n 'channel': 'production_metric',\n 'displayName': 'Performance Loss',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'performance_lost_time',\n 'channel': 'production_metric',\n 'displayName': 'Performance Lost Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'quality',\n 'channel': 'production_metric',\n 'displayName': 'Quality',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'quality_loss',\n 'channel': 'production_metric',\n 'displayName': 'Quality Loss',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'quality_lost_time',\n 'channel': 'production_metric',\n 'displayName': 'Quality Lost Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n }\n ]\n },\n {\n 'name': 'production_times',\n 'displayName': 'Production Times',\n 'isDummyGroup': false,\n 'entries': [\n {\n 'name': 'all_time',\n 'channel': 'production_metric',\n 'displayName': 'All Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'down_time',\n 'channel': 'production_metric',\n 'displayName': 'Down Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'duration',\n 'channel': 'production_metric',\n 'displayName': 'Duration',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'end_time',\n 'channel': 'production_metric',\n 'displayName': 'End Time',\n 'fieldType': 'metric',\n 'type': 'date_time'\n },\n {\n 'name': 'manufacturing_time',\n 'channel': 'production_metric',\n 'displayName': 'Manufacturing Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'not_scheduled_time',\n 'channel': 'production_metric',\n 'displayName': 'Not Scheduled Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'percent_down',\n 'channel': 'production_metric',\n 'displayName': 'Percent Down',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'percent_planned_stop',\n 'channel': 'production_metric',\n 'displayName': 'Percent Planned Stop',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'percent_run',\n 'channel': 'production_metric',\n 'displayName': 'Percent Run',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'percent_unplanned_stop',\n 'channel': 'production_metric',\n 'displayName': 'Percent Unplanned Stop',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'planned_stop_time',\n 'channel': 'production_metric',\n 'displayName': 'Planned Stop Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'production_time',\n 'channel': 'production_metric',\n 'displayName': 'Production Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'run_time',\n 'channel': 'production_metric',\n 'displayName': 'Run Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'start_time',\n 'channel': 'production_metric',\n 'displayName': 'Start Time',\n 'fieldType': 'metric',\n 'type': 'date_time'\n },\n {\n 'name': 'unplanned_stop_time',\n 'channel': 'production_metric',\n 'displayName': 'Unplanned Stop Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n }\n ]\n },\n {\n 'name': 'rates',\n 'displayName': 'Rates',\n 'isDummyGroup': false,\n 'entries': [\n {\n 'name': 'pack_out_rate_per_hour',\n 'channel': 'production_metric',\n 'displayName': 'End of Line Rate PPH',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate_per_hour'\n },\n {\n 'name': 'pack_out_rate',\n 'channel': 'production_metric',\n 'displayName': 'End of Line Rate PPM',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate'\n },\n {\n 'name': 'pack_out_speed_per_hour',\n 'channel': 'production_metric',\n 'displayName': 'End of Line Speed PPH',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate_per_hour'\n },\n {\n 'name': 'pack_out_speed',\n 'channel': 'production_metric',\n 'displayName': 'End of Line Speed PPM',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate'\n },\n {\n 'name': 'good_rate_per_hour',\n 'channel': 'production_metric',\n 'displayName': 'Good Rate PPH',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate_per_hour'\n },\n {\n 'name': 'good_rate',\n 'channel': 'production_metric',\n 'displayName': 'Good Rate PPM',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate'\n },\n {\n 'name': 'good_speed_per_hour',\n 'channel': 'production_metric',\n 'displayName': 'Good Speed PPH',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate_per_hour'\n },\n {\n 'name': 'good_speed',\n 'channel': 'production_metric',\n 'displayName': 'Good Speed PPM',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate'\n },\n {\n 'name': 'in_rate_per_hour',\n 'channel': 'production_metric',\n 'displayName': 'In Rate PPH',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate_per_hour'\n },\n {\n 'name': 'in_rate',\n 'channel': 'production_metric',\n 'displayName': 'In Rate PPM',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate'\n },\n {\n 'name': 'in_speed_per_hour',\n 'channel': 'production_metric',\n 'displayName': 'In Speed PPH',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate_per_hour'\n },\n {\n 'name': 'in_speed',\n 'channel': 'production_metric',\n 'displayName': 'In Speed PPM',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate'\n },\n {\n 'name': 'reject_rate_per_hour',\n 'channel': 'production_metric',\n 'displayName': 'Reject Rate PPH',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate_per_hour'\n },\n {\n 'name': 'reject_rate',\n 'channel': 'production_metric',\n 'displayName': 'Reject Rate PPM',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate'\n },\n {\n 'name': 'reject_speed_per_hour',\n 'channel': 'production_metric',\n 'displayName': 'Reject Speed PPH',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate_per_hour'\n },\n {\n 'name': 'reject_speed',\n 'channel': 'production_metric',\n 'displayName': 'Reject Speed PPM',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate'\n },\n {\n 'name': 'target_rate_per_hour',\n 'channel': 'production_metric',\n 'displayName': 'Target Rate PPH',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate_per_hour'\n },\n {\n 'name': 'target_rate',\n 'channel': 'production_metric',\n 'displayName': 'Target Rate PPM',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate'\n },\n {\n 'name': 'total_rate_per_hour',\n 'channel': 'production_metric',\n 'displayName': 'Total Rate PPH',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate_per_hour'\n },\n {\n 'name': 'total_rate',\n 'channel': 'production_metric',\n 'displayName': 'Total Rate PPM',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate'\n },\n {\n 'name': 'total_speed_per_hour',\n 'channel': 'production_metric',\n 'displayName': 'Total Speed PPH',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate_per_hour'\n },\n {\n 'name': 'total_speed',\n 'channel': 'production_metric',\n 'displayName': 'Total Speed PPM',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'rate'\n }\n ]\n },\n {\n 'name': 'six_big_losses',\n 'displayName': 'Six Big Losses',\n 'isDummyGroup': false,\n 'entries': [\n {\n 'name': 'cycle_loss',\n 'channel': 'production_metric',\n 'displayName': 'Cycle Loss',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'cycle_lost_time',\n 'channel': 'production_metric',\n 'displayName': 'Cycle Lost Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'down_loss',\n 'channel': 'production_metric',\n 'displayName': 'Down Loss',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'down_lost_time',\n 'channel': 'production_metric',\n 'displayName': 'Down Lost Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'planned_stop_loss',\n 'channel': 'production_metric',\n 'displayName': 'Planned Stop Loss',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'planned_stop_lost_time',\n 'channel': 'production_metric',\n 'displayName': 'Planned Stop Lost Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'production_reject_loss',\n 'channel': 'production_metric',\n 'displayName': 'Production Reject Loss',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'production_reject_lost_time',\n 'channel': 'production_metric',\n 'displayName': 'Production Reject Lost Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'small_stop_loss',\n 'channel': 'production_metric',\n 'displayName': 'Small Stop Loss',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'small_stop_lost_time',\n 'channel': 'production_metric',\n 'displayName': 'Small Stop Lost Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'startup_reject_loss',\n 'channel': 'production_metric',\n 'displayName': 'Startup Reject Loss',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'startup_reject_lost_time',\n 'channel': 'production_metric',\n 'displayName': 'Startup Reject Lost Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'unplanned_stop_loss',\n 'channel': 'production_metric',\n 'displayName': 'Unplanned Stop Loss',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'unplanned_stop_lost_time',\n 'channel': 'production_metric',\n 'displayName': 'Unplanned Stop Lost Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n }\n ]\n },\n {\n 'name': 'target',\n 'displayName': 'Target',\n 'isDummyGroup': false,\n 'entries': [\n {\n 'name': 'average_takt_time',\n 'channel': 'production_metric',\n 'displayName': 'Avg. Takt Time',\n 'fieldType': 'metric',\n 'type': 'time_span',\n 'subType': 'cycle_time'\n },\n {\n 'name': 'count_variance',\n 'channel': 'production_metric',\n 'displayName': 'Count Variance',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'count'\n },\n {\n 'name': 'efficiency',\n 'channel': 'production_metric',\n 'displayName': 'Efficiency',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'percent_variance',\n 'channel': 'production_metric',\n 'displayName': 'Percent Variance',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'rate_efficiency',\n 'channel': 'production_metric',\n 'displayName': 'Rate Efficiency',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'target_count',\n 'channel': 'production_metric',\n 'displayName': 'Target Count',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'count'\n },\n {\n 'name': 'target_cycles',\n 'channel': 'production_metric',\n 'displayName': 'Target Cycles',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'cycle'\n },\n {\n 'name': 'time_variance',\n 'channel': 'production_metric',\n 'displayName': 'Time Variance',\n 'fieldType': 'metric',\n 'type': 'time_span'\n }\n ]\n },\n {\n 'name': 'teep',\n 'displayName': 'TEEP',\n 'isDummyGroup': false,\n 'entries': [\n {\n 'name': 'hidden_factory_time',\n 'channel': 'production_metric',\n 'displayName': 'Hidden Factory Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'production_loss',\n 'channel': 'production_metric',\n 'displayName': 'Production Loss',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'production_lost_time',\n 'channel': 'production_metric',\n 'displayName': 'Production Lost Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'capacity_loss',\n 'channel': 'production_metric',\n 'displayName': 'Schedule Loss',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'capacity_lost_time',\n 'channel': 'production_metric',\n 'displayName': 'Schedule Lost Time',\n 'fieldType': 'metric',\n 'type': 'time_span'\n },\n {\n 'name': 'teep',\n 'channel': 'production_metric',\n 'displayName': 'TEEP',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n },\n {\n 'name': 'utilization',\n 'channel': 'production_metric',\n 'displayName': 'Utilization',\n 'fieldType': 'metric',\n 'type': 'double',\n 'subType': 'percent'\n }\n ]\n }\n ],\n 'metric_set': [\n {\n 'name': 'overview',\n 'displayName': 'Overview',\n 'entries': [\n {\n 'name': 'overview_set',\n 'displayName': 'Production Overview',\n 'type': 'metric_set',\n 'fieldType': 'metric_set',\n 'metric_set': 'overview',\n 'group': 'overview',\n 'channel': 'production_metric',\n 'columns': [\n {\n 'channel': 'production_metric',\n 'displayName': 'OEE',\n 'fieldType': 'metric',\n 'name': 'oee',\n 'subType': 'percent',\n 'type': 'double'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'In Count',\n 'fieldType': 'metric',\n 'name': 'in_count',\n 'subType': 'count',\n 'type': 'double'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Good Count',\n 'fieldType': 'metric',\n 'name': 'good_count',\n 'subType': 'count',\n 'type': 'double'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Run Time',\n 'fieldType': 'metric',\n 'name': 'run_time',\n 'type': 'time_span'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Down Time',\n 'fieldType': 'metric',\n 'name': 'down_time',\n 'type': 'time_span'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Planned Stop Time',\n 'fieldType': 'metric',\n 'name': 'planned_stop_time',\n 'type': 'time_span'\n }\n ]\n },\n {\n 'name': 'target_overview_set',\n 'displayName': 'Target Overview',\n 'type': 'metric_set',\n 'fieldType': 'metric_set',\n 'metric_set': 'target_overview',\n 'group': 'overview',\n 'channel': 'production_metric',\n 'columns': [\n {\n 'channel': 'production_metric',\n 'displayName': 'Target Count',\n 'fieldType': 'metric',\n 'name': 'target_count',\n 'subType': 'count',\n 'type': 'double'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Good Count',\n 'fieldType': 'metric',\n 'name': 'good_count',\n 'subType': 'count',\n 'type': 'double'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Efficiency',\n 'fieldType': 'metric',\n 'name': 'efficiency',\n 'subType': 'percent',\n 'type': 'double'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Down Time',\n 'fieldType': 'metric',\n 'name': 'down_time',\n 'type': 'time_span'\n }\n ]\n }\n ],\n 'isDummyGroup': false\n },\n {\n 'name': 'counts',\n 'displayName': 'Counts',\n 'entries': [\n {\n 'name': 'counts_set',\n 'displayName': 'Count Overview',\n 'type': 'metric_set',\n 'fieldType': 'metric_set',\n 'metric_set': 'counts',\n 'group': 'counts',\n 'channel': 'production_metric',\n 'columns': [\n {\n 'channel': 'production_metric',\n 'displayName': 'In Count',\n 'fieldType': 'metric',\n 'name': 'in_count',\n 'subType': 'count',\n 'type': 'double'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Good Count',\n 'fieldType': 'metric',\n 'name': 'good_count',\n 'subType': 'count',\n 'type': 'double'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Reject Count',\n 'fieldType': 'metric',\n 'name': 'reject_count',\n 'subType': 'count',\n 'type': 'double'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'End of Line Count',\n 'fieldType': 'metric',\n 'name': 'pack_out_count',\n 'subType': 'count',\n 'type': 'double'\n }\n ]\n },\n {\n 'name': 'reject_count_set',\n 'displayName': 'Reject Count Overview',\n 'type': 'metric_set',\n 'fieldType': 'metric_set',\n 'metric_set': 'reject_count',\n 'group': 'counts',\n 'channel': 'production_metric',\n 'columns': [\n {\n 'channel': 'production_metric',\n 'displayName': 'Reject Count',\n 'fieldType': 'metric',\n 'name': 'reject_count',\n 'subType': 'count',\n 'type': 'double'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Percent Reject',\n 'fieldType': 'metric',\n 'name': 'percent_reject',\n 'subType': 'percent',\n 'type': 'double'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Startup Rejects',\n 'fieldType': 'metric',\n 'name': 'startup_rejects',\n 'subType': 'count',\n 'type': 'double'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Production Rejects',\n 'fieldType': 'metric',\n 'name': 'production_rejects',\n 'subType': 'count',\n 'type': 'double'\n }\n ]\n },\n {\n 'name': 'total_count_set',\n 'displayName': 'Total Count Detail',\n 'type': 'metric_set',\n 'fieldType': 'metric_set',\n 'metric_set': 'total_count',\n 'group': 'counts',\n 'channel': 'production_metric',\n 'columns': [\n {\n 'channel': 'production_metric',\n 'displayName': 'Total Count',\n 'fieldType': 'metric',\n 'name': 'total_count',\n 'subType': 'count',\n 'type': 'double'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Good Count',\n 'fieldType': 'metric',\n 'name': 'good_count',\n 'subType': 'count',\n 'type': 'double'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Reject Count',\n 'fieldType': 'metric',\n 'name': 'reject_count',\n 'subType': 'count',\n 'type': 'double'\n }\n ]\n }\n ],\n 'isDummyGroup': false\n },\n {\n 'name': 'cycles',\n 'displayName': 'Cycles',\n 'entries': [\n {\n 'name': 'cycle_time_set',\n 'displayName': 'Total Cycle Time Detail',\n 'type': 'metric_set',\n 'fieldType': 'metric_set',\n 'metric_set': 'cycle_time',\n 'group': 'cycles',\n 'channel': 'production_metric',\n 'columns': [\n {\n 'channel': 'production_metric',\n 'displayName': 'Total Cycle Time',\n 'fieldType': 'metric',\n 'name': 'total_cycle_time',\n 'type': 'time_span'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Ideal Time',\n 'fieldType': 'metric',\n 'name': 'ideal_time',\n 'type': 'time_span'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Cycle Lost Time',\n 'fieldType': 'metric',\n 'name': 'cycle_lost_time',\n 'type': 'time_span'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Small Stop Lost Time',\n 'fieldType': 'metric',\n 'name': 'small_stop_lost_time',\n 'type': 'time_span'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Partial Cycle Lost Time',\n 'fieldType': 'metric',\n 'name': 'partial_cycle_lost_time',\n 'type': 'time_span'\n }\n ]\n },\n {\n 'name': 'cycle_time_validation_set',\n 'displayName': 'Cycle Time Audit',\n 'type': 'metric_set',\n 'fieldType': 'metric_set',\n 'metric_set': 'cycle_time_validation',\n 'group': 'cycles',\n 'channel': 'production_metric',\n 'columns': [\n {\n 'channel': 'production_metric',\n 'displayName': 'Performance',\n 'fieldType': 'metric',\n 'name': 'performance',\n 'subType': 'percent',\n 'type': 'double'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Avg. Ideal Cycle Time',\n 'fieldType': 'metric',\n 'name': 'average_ideal_cycle_time',\n 'subType': 'cycle_time',\n 'type': 'time_span'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Avg. Run Cycle Time',\n 'fieldType': 'metric',\n 'name': 'average_run_cycle_time',\n 'subType': 'cycle_time',\n 'type': 'time_span'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Run Cycles',\n 'fieldType': 'metric',\n 'name': 'run_cycles',\n 'subType': 'cycle',\n 'type': 'double'\n }\n ]\n },\n {\n 'name': 'cycles_set',\n 'displayName': 'Total Cycles Detail',\n 'type': 'metric_set',\n 'fieldType': 'metric_set',\n 'metric_set': 'cycles',\n 'group': 'cycles',\n 'channel': 'production_metric',\n 'columns': [\n {\n 'channel': 'production_metric',\n 'displayName': 'Total Cycles',\n 'fieldType': 'metric',\n 'name': 'total_cycles',\n 'subType': 'cycle',\n 'type': 'double'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Run Cycles',\n 'fieldType': 'metric',\n 'name': 'run_cycles',\n 'subType': 'cycle',\n 'type': 'double'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Small Stops',\n 'fieldType': 'metric',\n 'name': 'small_stops',\n 'subType': 'cycle',\n 'type': 'double'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Partial Cycles',\n 'fieldType': 'metric',\n 'name': 'partial_cycles',\n 'subType': 'cycle',\n 'type': 'double'\n }\n ]\n }\n ],\n 'isDummyGroup': false\n },\n {\n 'name': 'times',\n 'displayName': 'Times',\n 'entries': [\n {\n 'name': 'all_time_set',\n 'displayName': 'All Time Detail',\n 'type': 'metric_set',\n 'fieldType': 'metric_set',\n 'metric_set': 'all_time',\n 'group': 'times',\n 'channel': 'production_metric',\n 'columns': [\n {\n 'channel': 'production_metric',\n 'displayName': 'All Time',\n 'fieldType': 'metric',\n 'name': 'all_time',\n 'type': 'time_span'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Run Time',\n 'fieldType': 'metric',\n 'name': 'run_time',\n 'type': 'time_span'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Down Time',\n 'fieldType': 'metric',\n 'name': 'down_time',\n 'type': 'time_span'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Planned Stop Time',\n 'fieldType': 'metric',\n 'name': 'planned_stop_time',\n 'type': 'time_span'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Not Scheduled Time',\n 'fieldType': 'metric',\n 'name': 'not_scheduled_time',\n 'type': 'time_span'\n }\n ]\n },\n {\n 'name': 'production_time_set',\n 'displayName': 'Production Time Detail',\n 'type': 'metric_set',\n 'fieldType': 'metric_set',\n 'metric_set': 'production_time',\n 'group': 'times',\n 'channel': 'production_metric',\n 'columns': [\n {\n 'channel': 'production_metric',\n 'displayName': 'Production Time',\n 'fieldType': 'metric',\n 'name': 'production_time',\n 'type': 'time_span'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Run Time',\n 'fieldType': 'metric',\n 'name': 'run_time',\n 'type': 'time_span'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Down Time',\n 'fieldType': 'metric',\n 'name': 'down_time',\n 'type': 'time_span'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Planned Stop Time',\n 'fieldType': 'metric',\n 'name': 'planned_stop_time',\n 'type': 'time_span'\n }\n ]\n },\n {\n 'name': 'production_time_percentages_set',\n 'displayName': 'Production Time Percentages',\n 'type': 'metric_set',\n 'fieldType': 'metric_set',\n 'metric_set': 'production_time_percentages',\n 'group': 'times',\n 'channel': 'production_metric',\n 'columns': [\n {\n 'channel': 'production_metric',\n 'displayName': 'Production Time',\n 'fieldType': 'metric',\n 'name': 'production_time',\n 'type': 'time_span'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Percent Run',\n 'fieldType': 'metric',\n 'name': 'percent_run',\n 'subType': 'percent',\n 'type': 'double'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Percent Down',\n 'fieldType': 'metric',\n 'name': 'percent_down',\n 'subType': 'percent',\n 'type': 'double'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Percent Planned Stop',\n 'fieldType': 'metric',\n 'name': 'percent_planned_stop',\n 'subType': 'percent',\n 'type': 'double'\n }\n ]\n },\n {\n 'name': 'run_time_set',\n 'displayName': 'Run Time Detail',\n 'type': 'metric_set',\n 'fieldType': 'metric_set',\n 'metric_set': 'run_time',\n 'group': 'times',\n 'channel': 'production_metric',\n 'columns': [\n {\n 'channel': 'production_metric',\n 'displayName': 'Run Time',\n 'fieldType': 'metric',\n 'name': 'run_time',\n 'type': 'time_span'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Fully Productive Time',\n 'fieldType': 'metric',\n 'name': 'fully_productive_time',\n 'type': 'time_span'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Cycle Lost Time',\n 'fieldType': 'metric',\n 'name': 'cycle_lost_time',\n 'type': 'time_span'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Small Stop Lost Time',\n 'fieldType': 'metric',\n 'name': 'small_stop_lost_time',\n 'type': 'time_span'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Quality Lost Time',\n 'fieldType': 'metric',\n 'name': 'quality_lost_time',\n 'type': 'time_span'\n }\n ]\n }\n ],\n 'isDummyGroup': false\n },\n {\n 'name': 'labor',\n 'displayName': 'Labor',\n 'entries': [\n {\n 'name': 'labor_overview_set',\n 'displayName': 'Labor Overview',\n 'type': 'metric_set',\n 'fieldType': 'metric_set',\n 'metric_set': 'labor_overview',\n 'group': 'labor',\n 'channel': 'production_metric',\n 'columns': [\n {\n 'channel': 'production_metric',\n 'displayName': 'Team Size',\n 'fieldType': 'metric',\n 'name': 'average_team_size',\n 'type': 'double'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Total Labor',\n 'fieldType': 'metric',\n 'name': 'labor',\n 'type': 'time_span'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Lost Labor',\n 'fieldType': 'metric',\n 'name': 'lost_labor',\n 'type': 'time_span'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Labor Efficiency',\n 'fieldType': 'metric',\n 'name': 'labor_efficiency',\n 'subType': 'percent',\n 'type': 'double'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Target Labor per Piece',\n 'fieldType': 'metric',\n 'name': 'target_labor_per_piece',\n 'subType': 'cycle_time',\n 'type': 'time_span'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Labor per Good Piece',\n 'fieldType': 'metric',\n 'name': 'labor_per_good_piece',\n 'subType': 'cycle_time',\n 'type': 'time_span'\n }\n ]\n },\n {\n 'name': 'labor_time_set',\n 'displayName': 'Labor Time Detail',\n 'type': 'metric_set',\n 'fieldType': 'metric_set',\n 'metric_set': 'labor_time',\n 'group': 'labor',\n 'channel': 'production_metric',\n 'columns': [\n {\n 'channel': 'production_metric',\n 'displayName': 'Total Labor',\n 'fieldType': 'metric',\n 'name': 'labor',\n 'type': 'time_span'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Lost Labor',\n 'fieldType': 'metric',\n 'name': 'lost_labor',\n 'type': 'time_span'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Earned Labor',\n 'fieldType': 'metric',\n 'name': 'earned_labor',\n 'type': 'time_span'\n }\n ]\n }\n ],\n 'isDummyGroup': false\n },\n {\n 'name': 'oee',\n 'displayName': 'OEE',\n 'entries': [\n {\n 'name': 'oee_loss_set',\n 'displayName': 'OEE Loss Detail',\n 'type': 'metric_set',\n 'fieldType': 'metric_set',\n 'metric_set': 'oee_loss',\n 'group': 'oee',\n 'channel': 'production_metric',\n 'columns': [\n {\n 'channel': 'production_metric',\n 'displayName': 'OEE Loss',\n 'fieldType': 'metric',\n 'name': 'oee_loss',\n 'subType': 'percent',\n 'type': 'double'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Availability Loss',\n 'fieldType': 'metric',\n 'name': 'availability_loss',\n 'subType': 'percent',\n 'type': 'double'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Performance Loss',\n 'fieldType': 'metric',\n 'name': 'performance_loss',\n 'subType': 'percent',\n 'type': 'double'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Quality Loss',\n 'fieldType': 'metric',\n 'name': 'quality_loss',\n 'subType': 'percent',\n 'type': 'double'\n }\n ]\n },\n {\n 'name': 'oee_lost_time_set',\n 'displayName': 'OEE Lost Time Detail',\n 'type': 'metric_set',\n 'fieldType': 'metric_set',\n 'metric_set': 'oee_lost_time',\n 'group': 'oee',\n 'channel': 'production_metric',\n 'columns': [\n {\n 'channel': 'production_metric',\n 'displayName': 'OEE Lost Time',\n 'fieldType': 'metric',\n 'name': 'oee_lost_time',\n 'type': 'time_span'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Availability Lost Time',\n 'fieldType': 'metric',\n 'name': 'availability_lost_time',\n 'type': 'time_span'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Performance Lost Time',\n 'fieldType': 'metric',\n 'name': 'performance_lost_time',\n 'type': 'time_span'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Quality Lost Time',\n 'fieldType': 'metric',\n 'name': 'quality_lost_time',\n 'type': 'time_span'\n }\n ]\n },\n {\n 'name': 'oee_waterfall_set',\n 'displayName': 'OEE Waterfall',\n 'type': 'metric_set',\n 'fieldType': 'metric_set',\n 'metric_set': 'oee_waterfall',\n 'group': 'oee',\n 'channel': 'production_metric',\n 'columns': [\n {\n 'channel': 'production_metric',\n 'displayName': 'Production Time',\n 'fieldType': 'metric',\n 'name': 'production_time',\n 'type': 'time_span'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Availability Lost Time',\n 'fieldType': 'metric',\n 'name': 'availability_lost_time',\n 'type': 'time_span'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Performance Lost Time',\n 'fieldType': 'metric',\n 'name': 'performance_lost_time',\n 'type': 'time_span'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Quality Lost Time',\n 'fieldType': 'metric',\n 'name': 'quality_lost_time',\n 'type': 'time_span'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Fully Productive Time',\n 'fieldType': 'metric',\n 'name': 'fully_productive_time',\n 'type': 'time_span'\n }\n ]\n },\n {\n 'name': 'oee_with_factors_set',\n 'displayName': 'OEE Factors',\n 'type': 'metric_set',\n 'fieldType': 'metric_set',\n 'metric_set': 'oee_with_factors',\n 'group': 'oee',\n 'channel': 'production_metric',\n 'columns': [\n {\n 'channel': 'production_metric',\n 'displayName': 'OEE',\n 'fieldType': 'metric',\n 'name': 'oee',\n 'subType': 'percent',\n 'type': 'double'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Availability',\n 'fieldType': 'metric',\n 'name': 'availability',\n 'subType': 'percent',\n 'type': 'double'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Performance',\n 'fieldType': 'metric',\n 'name': 'performance',\n 'subType': 'percent',\n 'type': 'double'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Quality',\n 'fieldType': 'metric',\n 'name': 'quality',\n 'subType': 'percent',\n 'type': 'double'\n }\n ]\n }\n ],\n 'isDummyGroup': false\n },\n {\n 'name': 'six_big_losses',\n 'displayName': 'Six Big Losses',\n 'entries': [\n {\n 'name': 'six_big_losses_set',\n 'displayName': 'Six Big Loss Detail',\n 'type': 'metric_set',\n 'fieldType': 'metric_set',\n 'metric_set': 'six_big_losses',\n 'group': 'six_big_losses',\n 'channel': 'production_metric',\n 'columns': [\n {\n 'channel': 'production_metric',\n 'displayName': 'OEE Loss',\n 'fieldType': 'metric',\n 'name': 'oee_loss',\n 'subType': 'percent',\n 'type': 'double'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Down Loss',\n 'fieldType': 'metric',\n 'name': 'down_loss',\n 'subType': 'percent',\n 'type': 'double'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Planned Stop Loss',\n 'fieldType': 'metric',\n 'name': 'planned_stop_loss',\n 'subType': 'percent',\n 'type': 'double'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Cycle Loss',\n 'fieldType': 'metric',\n 'name': 'cycle_loss',\n 'subType': 'percent',\n 'type': 'double'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Small Stop Loss',\n 'fieldType': 'metric',\n 'name': 'small_stop_loss',\n 'subType': 'percent',\n 'type': 'double'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Startup Reject Loss',\n 'fieldType': 'metric',\n 'name': 'startup_reject_loss',\n 'subType': 'percent',\n 'type': 'double'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Production Reject Loss',\n 'fieldType': 'metric',\n 'name': 'production_reject_loss',\n 'subType': 'percent',\n 'type': 'double'\n }\n ]\n },\n {\n 'name': 'six_big_losses_lost_time_set',\n 'displayName': 'Six Big Loss Time Detail',\n 'type': 'metric_set',\n 'fieldType': 'metric_set',\n 'metric_set': 'six_big_losses_lost_time',\n 'group': 'six_big_losses',\n 'channel': 'production_metric',\n 'columns': [\n {\n 'channel': 'production_metric',\n 'displayName': 'OEE Lost Time',\n 'fieldType': 'metric',\n 'name': 'oee_lost_time',\n 'type': 'time_span'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Down Lost Time',\n 'fieldType': 'metric',\n 'name': 'down_lost_time',\n 'type': 'time_span'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Planned Stop Lost Time',\n 'fieldType': 'metric',\n 'name': 'planned_stop_lost_time',\n 'type': 'time_span'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Cycle Lost Time',\n 'fieldType': 'metric',\n 'name': 'cycle_lost_time',\n 'type': 'time_span'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Small Stop Lost Time',\n 'fieldType': 'metric',\n 'name': 'small_stop_lost_time',\n 'type': 'time_span'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Startup Reject Lost Time',\n 'fieldType': 'metric',\n 'name': 'startup_reject_lost_time',\n 'type': 'time_span'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Production Reject Lost Time',\n 'fieldType': 'metric',\n 'name': 'production_reject_lost_time',\n 'type': 'time_span'\n }\n ]\n }\n ],\n 'isDummyGroup': false\n },\n {\n 'name': 'teep',\n 'displayName': 'TEEP',\n 'entries': [\n {\n 'name': 'hidden_factory_set',\n 'displayName': 'Hidden Factory',\n 'type': 'metric_set',\n 'fieldType': 'metric_set',\n 'metric_set': 'hidden_factory',\n 'group': 'teep',\n 'channel': 'production_metric',\n 'columns': [\n {\n 'channel': 'production_metric',\n 'displayName': 'Hidden Factory Time',\n 'fieldType': 'metric',\n 'name': 'hidden_factory_time',\n 'type': 'time_span'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Schedule Lost Time',\n 'fieldType': 'metric',\n 'name': 'capacity_lost_time',\n 'type': 'time_span'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Availability Lost Time',\n 'fieldType': 'metric',\n 'name': 'availability_lost_time',\n 'type': 'time_span'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Performance Lost Time',\n 'fieldType': 'metric',\n 'name': 'performance_lost_time',\n 'type': 'time_span'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Quality Lost Time',\n 'fieldType': 'metric',\n 'name': 'quality_lost_time',\n 'type': 'time_span'\n }\n ]\n },\n {\n 'name': 'teep_capacity_set',\n 'displayName': 'TEEP Overview',\n 'type': 'metric_set',\n 'fieldType': 'metric_set',\n 'metric_set': 'teep_capacity',\n 'group': 'teep',\n 'channel': 'production_metric',\n 'columns': [\n {\n 'channel': 'production_metric',\n 'displayName': 'TEEP',\n 'fieldType': 'metric',\n 'name': 'teep',\n 'subType': 'percent',\n 'type': 'double'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Utilization',\n 'fieldType': 'metric',\n 'name': 'utilization',\n 'subType': 'percent',\n 'type': 'double'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Schedule Loss',\n 'fieldType': 'metric',\n 'name': 'capacity_loss',\n 'subType': 'percent',\n 'type': 'double'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Schedule Lost Time',\n 'fieldType': 'metric',\n 'name': 'capacity_lost_time',\n 'type': 'time_span'\n }\n ]\n },\n {\n 'name': 'teep_waterfall_set',\n 'displayName': 'TEEP Waterfall',\n 'type': 'metric_set',\n 'fieldType': 'metric_set',\n 'metric_set': 'teep_waterfall',\n 'group': 'teep',\n 'channel': 'production_metric',\n 'columns': [\n {\n 'channel': 'production_metric',\n 'displayName': 'All Time',\n 'fieldType': 'metric',\n 'name': 'all_time',\n 'type': 'time_span'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Schedule Lost Time',\n 'fieldType': 'metric',\n 'name': 'capacity_lost_time',\n 'type': 'time_span'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Availability Lost Time',\n 'fieldType': 'metric',\n 'name': 'availability_lost_time',\n 'type': 'time_span'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Performance Lost Time',\n 'fieldType': 'metric',\n 'name': 'performance_lost_time',\n 'type': 'time_span'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Quality Lost Time',\n 'fieldType': 'metric',\n 'name': 'quality_lost_time',\n 'type': 'time_span'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Fully Productive Time',\n 'fieldType': 'metric',\n 'name': 'fully_productive_time',\n 'type': 'time_span'\n }\n ]\n },\n {\n 'name': 'teep_with_factors_set',\n 'displayName': 'TEEP Factors',\n 'type': 'metric_set',\n 'fieldType': 'metric_set',\n 'metric_set': 'teep_with_factors',\n 'group': 'teep',\n 'channel': 'production_metric',\n 'columns': [\n {\n 'channel': 'production_metric',\n 'displayName': 'TEEP',\n 'fieldType': 'metric',\n 'name': 'teep',\n 'subType': 'percent',\n 'type': 'double'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Utilization',\n 'fieldType': 'metric',\n 'name': 'utilization',\n 'subType': 'percent',\n 'type': 'double'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Availability',\n 'fieldType': 'metric',\n 'name': 'availability',\n 'subType': 'percent',\n 'type': 'double'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Performance',\n 'fieldType': 'metric',\n 'name': 'performance',\n 'subType': 'percent',\n 'type': 'double'\n },\n {\n 'channel': 'production_metric',\n 'displayName': 'Quality',\n 'fieldType': 'metric',\n 'name': 'quality',\n 'subType': 'percent',\n 'type': 'double'\n }\n ]\n }\n ],\n 'isDummyGroup': false\n }\n ],\n};\n\n// search the email table metric list options for a specific metric\nexport const getEmailTableMetricListMetricOptions = (metricName) => {\n let found;\n for (let i = 0; i < emailWidgetFieldOptions.metric.length; i += 1) {\n const metricGroup = emailWidgetFieldOptions.metric[i];\n found = metricGroup.entries.find((mm) => {\n return mm.name === metricName;\n });\n if (found) {\n break;\n }\n }\n return found;\n};\n\nexport const getMockTableData = (translator, rowCount) => {\n // this mock data is not actually read when filling out the table, this table information comes\n // from the 'accessor' function on the column\n // This array does need to exist though for each row that may be represented in the table\n return Array(rowCount).fill({});\n};\n\nexport const getMockTableHeaderColumns = (columns, translator, metricThresholds) => {\n return columns.map((columnId) => {\n const { channel, columnName } = getColumnChannelName(columnId);\n\n const columnConfig = getColumnConfig(channel, columnName);\n\n return {\n Header: translator(columnConfig.display_name),\n id: columnName,\n width: 200,\n fillCellWidth: true,\n accessor: (datum, rowIndex) => {\n const dataItem = getMockData(columnId, translator, rowIndex, metricThresholds);\n const get = () => {\n return (\n \n );\n };\n\n return get();\n },\n title: 'A Title',\n };\n });\n};\n","\nexport function getColumnFormatType(columnSchema, isCategoryValue = false) {\n const isAssetBased = false;\n\n const {\n type,\n subtype,\n name,\n post_process,\n } = columnSchema;\n\n let formatType;\n\n if (post_process) {\n // Each post process type is it's own formatType\n formatType = post_process;\n }\n else if (isAssetBased) {\n // Each asset has its own formatType.\n formatType = name;\n }\n else if (isCategoryValue) {\n formatType = 'category_value';\n }\n else {\n // Anything else just uses the subtype if they have one\n // or they just fallback to type.\n //\n formatType = subtype || type;\n }\n\n return formatType;\n}\n","import React, {\n useCallback,\n useRef,\n useState,\n} from 'react';\nimport BasicSelectList from 'Common/components/SelectList/BasicSelectList';\nimport SelectSeparator from 'Common/components/SelectList/SelectSeparator';\nimport PropTypes from 'prop-types';\nimport LiveControlBar from 'Common/components/LiveControlBar';\nimport LiveControl from 'Common/components/LiveControlBar/LiveControl';\nimport BasicSelectField from 'Common/components/BasicSelectField/BasicSelectField';\nimport LiveControlIcon from 'Common/components/LiveControlBar/LiveControlIcon';\nimport styled from 'styled-components';\nimport {\n Body2,\n Subtitle2,\n} from 'Components/typography/typography';\n\nimport TableColumnControl from 'Common/components/widgets/TableWidget/TableColumnControl';\n\nimport {\n emailWidgetFieldOptions,\n} from './MockWidgetData';\nimport { useTranslator } from 'Common/hooks/useTranslation';\nimport Button from 'Common/components/Button';\n\nconst MAX_ROWS_OPTIONS = [ {\n displayName: '5',\n value: '5',\n}, {\n displayName: '10',\n value: '10',\n}, {\n displayName: '15',\n value: '15',\n}, {\n displayName: '20',\n value: '20',\n}, {\n displayName: '25',\n value: '25',\n} ];\n\nconst TABLE_TYPES_WITH_MAX_ROW_ENABLED = new Set([\n 'availability_events',\n 'availability_reasons',\n 'reject_reasons',\n]);\n\nconst RowOptionsContainer = styled.div`\n margin-left: 10px;\n margin-right: 10px;\n margin-bottom: 10px;\n`;\n\nconst MaxRowLabel = styled(Body2)`\n color: ${props => props.theme.colors.darkText.highEmphasis };\n display: inline-flex;\n align-items: center;\n margin-right: 10px;\n`;\n\nconst MaxRowLabelDisabled = styled(MaxRowLabel)`\n color: ${props => props.theme.colors.darkText.disabled };\n`;\n\nconst RowLimitContainer = styled.div`\n display: flex;\n flex-direction: row;\n`;\n\nconst RowOptionsHeading = styled(Subtitle2)`\n color: ${props => props.theme.colors.palette.blue.awesome};\n`;\n\nconst ApplyContainer = styled.div`\n box-sizing: border-box;\n min-height: 44px;\n min-width: 44px;\n display: flex;\n align-items: center;\n flex: 0 0 auto;\n padding-right: 11px;\n justify-content: flex-end;\n`;\n\nexport default function EmailTableLiveControls(props) {\n const {\n onDimensionOptionsChange,\n maxRowCount,\n onColumnsChange,\n selectedColumns,\n tableType,\n maxNumUserSelectedColumns,\n children,\n } = props;\n\n const translator = useTranslator();\n const editable = true;\n const columnControlRef = useRef();\n\n const [selectedControl, setSelectedControl] = useState(null);\n const [tableTypeState, setTableTypeState] = useState(tableType);\n const [maxRowCountState, setMaxRowCountState] = useState(maxRowCount);\n\n const handleSelectionChange = useCallback((newSelection) => {\n let blockSelectionChange = false;\n\n if (selectedControl === 'columns' && newSelection !== 'columns') {\n blockSelectionChange = !columnControlRef.current.onClose();\n }\n\n if (!blockSelectionChange) {\n setSelectedControl(newSelection);\n }\n }, [ selectedControl ]);\n\n // setup for column control\n const columnControlIcon = ( );\n const filterValue = {};\n const handleColumnsChange = useCallback((evt) => {\n onColumnsChange(evt.target.value);\n setSelectedControl(null);\n }, [ onColumnsChange, setSelectedControl ]);\n\n // setup for row control\n const columnControlDisplayName = translator('control.common.column');\n\n const rowControlIcon = ( );\n\n const groupOptionsWithIcons = [\n 'availability_events', // start time, reason, duration\n 'availability_reasons', // reason, duration, count\n 'reject_reasons', // reason, count\n 'part_run', // start time, duration, part id, good count*, efficiency*, oee*\n 'work_center', // work center, efficiency*, good count*, reject count*, down time*, oee*\n ].map((groupId) => ({\n value: groupId,\n displayName: translator(`email_table.group.${groupId}.display_name`),\n description: translator(`email_table.group.${groupId}.description`),\n }));\n\n const enableMaxRowControl = TABLE_TYPES_WITH_MAX_ROW_ENABLED.has(tableTypeState);\n\n const handleDimensionApplyButton = (evt) => {\n handleSelectionChange(null);\n onDimensionOptionsChange(tableTypeState, maxRowCountState);\n };\n\n const handleTableTypeChange = (evt) => {\n setTableTypeState(evt.target.value);\n };\n\n const handleMaxRowCountChange = (evt) => {\n setMaxRowCountState(parseInt(evt.target.value.value, 10));\n };\n\n const isDirty = maxRowCount !== maxRowCountState || tableType !== tableTypeState;\n\n return (\n \n {editable && (\n (\n \n \n \n \n \n Row Options\n \n \n {enableMaxRowControl\n ? (Max Rows)\n : (Max Rows)\n }\n \n \n \n \n \n {translator('apply_literal')}\n \n \n\n \n )}\n />\n )}\n {editable && (\n {\n return (\n \n );\n }}\n handleContentLayout={true}\n />\n )}\n {children}\n \n );\n}\n\nEmailTableLiveControls.propTypes = {\n onDimensionOptionsChange: PropTypes.func.isRequired,\n onColumnsChange: PropTypes.func.isRequired,\n selectedColumns: PropTypes.array.isRequired,\n tableType: PropTypes.string.isRequired,\n maxNumUserSelectedColumns: PropTypes.number.isRequired,\n maxRowCount: PropTypes.number.isRequired,\n children: PropTypes.node,\n};\n\nEmailTableLiveControls.defaultProps = {};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { css } from 'styled-components';\n\nconst Root = styled.div`\n\tbreak-inside: avoid;\n\tbackground-color: #fff;\n\n ${({$showBorder}) => $showBorder && css`\n border: 1px solid #a0a0a0;\n\t border-radius: 6px;\n `}\n`;\n\nfunction WidgetFrame({\n isPrint,\n frameHeader,\n liveControls,\n showBorder,\n \n children,\n}) {\n return (\n \n {frameHeader}\n {!isPrint && (\n
    \n {liveControls}\n
    \n )}\n
    \n {children}\n
    \n
    \n );\n}\n\nWidgetFrame.propTypes = {\n isPrint: PropTypes.bool,\n frameHeader: PropTypes.node,\n liveControls: PropTypes.node,\n showBorder: PropTypes.bool,\n children: PropTypes.node,\n};\n\nWidgetFrame.defaultProps = {\n showBorder: false,\n isPrint: false,\n};\n\nexport default WidgetFrame;\n","import {useState, useLayoutEffect} from 'react';\nimport useResizeObserver from '@react-hook/resize-observer';\n\n/**\n * A hook to provide the bounding rect of a target element. Updates on resize.\n *\n * @param {Element} target The DOM element to track the size of.\n *\n * @returns {Object} the bounding content rect of the target.\n */\nexport default function useBounds(target) {\n const [bounds, setBounds] = useState();\n\n useLayoutEffect(() => {\n if (target) {\n setBounds(target.getBoundingClientRect());\n }\n }, [target]);\n\n useResizeObserver(target, (entry) => setBounds(entry.contentRect));\n\n return bounds;\n}\n","export const TABLE_MIN_WIDTH = 320;\n\nexport const COLUMN_PADDING = 8;\nexport const SORT_ARROW_WIDTH_ALLOWANCE = 20;\nexport const EXPANDABLE_COLUMN_INDENT_PER_DEPTH = 14;\nexport const EXPANDABLE_COLUMN_INDENT_PER_DEPTH_PRINT = 8;\nexport const COLUMN_LEFT_INDENT_PER_DEPTH = 0;\nexport const COLUMN_RIGHT_INDENT_PER_DEPTH = 0;\nexport const COLUMN_BORDER_WIDTH = 1;\nexport const MAX_METRIC_PADDING = 8;\nexport const MIN_COLUMN_WIDTH = 50;\nexport const DEFAULT_COLUMN_WIDTH = 150;\nexport const MAX_COLUMN_WIDTH = 400;\n\nexport const STANDARD_HEADER_ROW_HEIGHT = 32;\nexport const SECONDARY_HEADER_ROW_HEIGHT = 24;\nexport const MINIMUM_ROW_HEIGHT = 24;\nexport const ADDITIONAL_ROW_HEIGHT_UNIT = 19;\nexport const STANDARD_FOOTER_HEIGHT = 12;\n\n// This is the proportion of the container width at which the table attempts to force\n// itself to be full width by expanding columns beyond their preferred width.\nexport const FORCE_FULL_WIDTH_PROPORTION = 0.8;\n\n// These are the offsets of the containerWidth to prevent overflow when resizing columns\nexport const CONTAINER_FULL_WIDTH_ADJUSTMENT = 0.96;\nexport const CONTAINER_FORCE_FULL_WIDTH_PROPORTION_ADJUSTMENT = 0.97;\n","// Import our styling for .cpe-ellipsis.\r\n\r\n// Adapted from: https://stackoverflow.com/a/13382873\r\nconst scrollBarWidth = (() => {\r\n if (!document) {\r\n return 0;\r\n }\r\n\r\n // Creating invisible container\r\n const outer = document.createElement('div');\r\n outer.style.visibility = 'hidden';\r\n outer.style.overflow = 'scroll'; // forcing scrollbar to appear\r\n document.body.appendChild(outer);\r\n\r\n // Creating inner element and placing it in the container\r\n const inner = document.createElement('div');\r\n outer.appendChild(inner);\r\n\r\n // Calculating difference between container's full width and the child width\r\n const scrollbarWidth = (outer.offsetWidth - inner.offsetWidth);\r\n\r\n // Removing temporary elements from the DOM\r\n outer.parentNode.removeChild(outer);\r\n\r\n return scrollbarWidth >= 0 ? scrollbarWidth : 0;\r\n})();\r\n\r\n/**\r\n * Gets the width of the scrollbar in the current browser. This function uses\r\n * a value calculated on initial load, so the scrollbar is not remeasured on\r\n * every call to this method.\r\n *\r\n * @returns the calculated width of the scrollbar in the browser in pixels\r\n */\r\nexport function getScrollBarWidth() {\r\n return scrollBarWidth;\r\n}\r\n","import { useMemo } from 'react';\n\nimport * as TableConstants from './tableConstants';\nimport { getScrollBarWidth } from 'Common/util/getScrollBarWidth';\nimport { getTextWidth, measureString } from 'Common/util/domUtils';\n\n\nconst scrollBarWidth = getScrollBarWidth();\n\nfunction getIndentPerDepth(column) {\n if (column.expandable === true) {\n return TableConstants.EXPANDABLE_COLUMN_INDENT_PER_DEPTH;\n }\n else if (column.align === 'right') {\n return TableConstants.COLUMN_RIGHT_INDENT_PER_DEPTH;\n }\n else {\n return TableConstants.COLUMN_LEFT_INDENT_PER_DEPTH;\n }\n}\n\nfunction forEachDataRow(data, cb, depth = 0) {\n data.forEach((row, rowIndex) => {\n cb(row, rowIndex, depth);\n\n if (row.subRows) {\n forEachDataRow(row.subRows, cb, depth + 1);\n }\n });\n}\n\n// If a textOnlyHeader is available prefer that.\nfunction getHeaderText(column) {\n const { Header, textOnlyHeader = null } = column;\n\n if (typeof textOnlyHeader === 'string') {\n return textOnlyHeader;\n }\n else if (typeof Header === 'string') {\n return Header;\n }\n else {\n // We don't know how to measure this.\n console.warn('Cannot get header text; assuming empty string');\n return '';\n }\n}\n\nfunction measureColumn({ column, data, maxWidth, minWidth, isLastColumn, headerTextWidthMap }) {\n // savedWidth trumps anything else\n if(column.savedWidth) {\n return {\n measuredWidth: column.savedWidth,\n optimalWidth: column.savedWidth,\n };\n }\n\n let maxMeasuredWidth = minWidth;\n let measureCell = column.measureCell || ((datum, measureFunction) => {\n let w = measureFunction(datum);\n return {measuredWidth: w, optimalWidth: w};\n });\n\n const accessor = column.accessor;\n const accessorType = (typeof accessor);\n let getCellData = null;\n\n if (accessorType === 'string') {\n getCellData = (row) => row[accessor];\n }\n else {\n getCellData = accessor;\n }\n\n const indentPerDepth = getIndentPerDepth(column);\n let maxOptimalWidth = 0;\n\n forEachDataRow(data, (row, rowIndex, depth) => {\n const { width, optimalWidth } = measureCell(getCellData(row), measureString);\n const approximateWidth = (w) => (\n w\n + (TableConstants.COLUMN_PADDING * 2) // left and right padding\n + (indentPerDepth * depth)\n + TableConstants.MAX_METRIC_PADDING\n + (TableConstants.COLUMN_BORDER_WIDTH * 2) // left and right border for some cells\n + (isLastColumn ? scrollBarWidth : 0)\n );\n\n maxMeasuredWidth = Math.max(approximateWidth(width), maxMeasuredWidth);\n maxOptimalWidth = Math.max(approximateWidth(optimalWidth), maxOptimalWidth);\n });\n\n // ensure room for sort icon by ensuring a certain width\n if (column.sortOrder) {\n //[FUTUREHACK] try to add just a little more wiggle room for the arrow + order\n maxMeasuredWidth = Math.max(maxMeasuredWidth, TableConstants.MIN_COLUMN_WIDTH + TableConstants.SORT_ARROW_WIDTH_ALLOWANCE);\n maxOptimalWidth = Math.max(maxOptimalWidth, TableConstants.MIN_COLUMN_WIDTH + TableConstants.SORT_ARROW_WIDTH_ALLOWANCE);\n }\n\n let measuredWidth = Math.min(Math.max(maxMeasuredWidth, minWidth), maxWidth);\n let optimalWidth = Math.min(Math.max(maxOptimalWidth, minWidth), maxWidth);\n\n const headerText = getHeaderText(column);\n const headerTextWidth = headerTextWidthMap[headerText] || (\n getTextWidth({fontName: \"Roboto\", fontSize: \"15px\", fontWeight: \"bold\"}, headerText) +\n (TableConstants.COLUMN_PADDING * 2) + \n TableConstants.MAX_METRIC_PADDING + \n TableConstants.COLUMN_BORDER_WIDTH +\n (column.sortable ? TableConstants.SORT_ARROW_WIDTH_ALLOWANCE : 0)\n );\n headerTextWidthMap[headerText] = headerTextWidth;\n\n if (headerTextWidth > optimalWidth) {\n optimalWidth = headerTextWidth;\n }\n\n return {\n measuredWidth: Math.floor(measuredWidth),\n optimalWidth: Math.floor(optimalWidth),\n };\n}\n\nfunction mapEachColumn(columns, cb, isLast=null) {\n return columns.map((column, columnIndex) => {\n const isLastColumn = columnIndex === (columns.length - 1);\n const newIsLast = isLast === null\n ? isLastColumn\n : isLast && isLastColumn;\n\n if (column.columns) {\n return {\n ...column,\n columns: mapEachColumn(column.columns, cb, newIsLast),\n };\n }\n else {\n return cb(column, columnIndex, newIsLast);\n }\n });\n}\n\n/**\n * Pass in the columns and total widths object you want updated.\n * This recursively goes through columns and aggregates the\n * totals based on of the leaf columns width information.\n * @param columns \n * @param totals \n */\nfunction aggregateTotalsForLowestLevelColumns(columns, totals) {\n columns.forEach(column => {\n if (column.columns) {\n aggregateTotalsForLowestLevelColumns(column.columns, totals);\n }\n else {\n totals.measuredWidth += column.measuredWidth;\n totals.optimalWidth += column.optimalWidth;\n if (column.savedWidth > 0) {\n totals.fixedWidth += column.savedWidth;\n }\n else if (column.measuredWidth >= column.maxWidth) {\n totals.fixedWidth += column.measuredWidth;\n }\n }\n });\n}\n\nconst PRIMARY_COLUMN_WIDTH = 200;\n\n/**\n * A hook to size columns for a table.\n *\n * Columns will be sized based on their width property. Any columns with width set to\n * 'auto' will be measured and sized appropriately. This measurement is done by calling\n * measureCell (see columns param) on each piece of data. The header text is also\n * measured. By default this measurement is not precise and only provides a best guess\n * measurement while being very performant.\n *\n * If the isPrint property is supplied columns will be forced to fit in the given space\n * with little regard to the contents of the column.\n *\n * @param {Array} columns The columns parameter for useTable, these are the relevant\n * fields for useSizedColumns:\n * width {Number | String} - If a number, try and use that as the width, if\n * isPrint is true a different width may need to be used. Any column with\n * the width set to 'auto' will be measured via measureCell.\n * [measureCell] {Function} - Columns can optionally have a member named\n * measureCell to provide a method for data to be measured. measureCell is\n * called with two args (data, measureFunction), data is the raw data object\n * for that cell and measureFunction is a method which takes a string as\n * input and outputs its best guess for that strings width in a table cell.\n * Most column types should only need to call that with a textOnly value to\n * calculate their width. If auto is used and measureCell is not provided one\n * will be generated based on the accessor, note that if the accessor does\n * not return a string the value cannot be measured in this case.\n * accessor {String|Function} - A standard react-table column accessor method.\n * when called on a data row it returns the raw table data for the cell in\n * the current column.\n * [textOnlyHeader] {String} - A plain-text version of the Header text meant to\n * to provide a decent estimation for the header text width. If supplied\n * it may be measured and factored in to the automatic width of a column if\n * space allows.\n * Header {Node|String} - If textOnlyHeader is not supplied and Header is a\n * string it may be measured and factored in to the automatic width of a\n * column if space allows.\n * [isPrimary] {Boolean} - If set to true, the column will be given a\n * larger width relative to other columns in print view.\n * @param {Array} data The data parameter for useTable.\n * @param {Number} containerWidth The width of the table container in pixels. Used for\n * \"auto\" width column calculation and used as a maximum width for isPrint.\n * @param {Boolean} [isPrint] If supplied, constrain the width available for all the\n * columns to containerWidth. With width supplied preset column widths are ignored\n * and will all be treated like they are set to 'auto'.\n *\n * @returns {Array} A memoized columns array with all width members set to their new\n * widths. The minWidth and maxWidth properties on columns may also be set to a\n * new size.\n */\nexport default function useSizedColumns({ columns, data, containerWidth, isPrint }) {\n const newColumns = useMemo(() => {\n let headerTextWidthMap = {}; // used so we don't have to recalculate same header text widths\n let updatedColumns = mapEachColumn(columns, (column, columnIndex, isLastColumn) => {\n if (column.width === 'auto') {\n const minWidth = column.minWidth === undefined\n ? TableConstants.MIN_COLUMN_WIDTH\n : column.minWidth;\n const maxWidth = column.maxWidth === undefined\n ? TableConstants.MAX_COLUMN_WIDTH\n : column.maxWidth;\n\n return {\n ...column,\n // measureColumn returns measuredWidth and optimalWidth\n // measureColumn respects column.savedWidth and will not recalculate\n // the width.\n ...measureColumn({\n column,\n data,\n minWidth,\n maxWidth,\n isLastColumn,\n headerTextWidthMap,\n }),\n maxWidth: maxWidth,\n isAuto: true,\n };\n }\n else if (typeof column.width === 'number') {\n // If we were given a hardcoded width, then use it!\n // This will be used for columns that are not supposed to be resized.\n return {\n ...column,\n optimalWidth: column.width,\n measuredWidth: column.width,\n };\n }\n else {\n return column;\n }\n });\n\n // Accumulate the measured, optimal, and fixed widths.\n let totals = {\n measuredWidth: 0,\n optimalWidth: 0,\n fixedWidth: 0,\n };\n aggregateTotalsForLowestLevelColumns(updatedColumns, totals);\n\n // At this point, we have a measured, optimal, and maximum width for each column,\n // as well as know the total measured width, total optimal width, and total\n // fixed width.\n\n // Let's determine the final column widths\n if(totals.measuredWidth > containerWidth) {\n if (isPrint) {\n const colIsPrimary = (col) => {\n let rv = col.isPrimary;\n if(col.columns) {\n rv = rv || col.columns.some(colIsPrimary);\n }\n return rv;\n };\n\n const countColumns = (cols, primary) => {\n return cols.reduce((acc, column) => {\n if(column.columns) {\n return acc + countColumns(column.columns, primary);\n }\n else {\n let count = 1;\n if (primary) {\n count = column.isPrimary ? 1 : 0;\n }\n return acc + count;\n }\n }, 0);\n };\n\n const numTopLevelColumns = columns.length;\n\n const numPrimaryColumns = countColumns(columns, true);\n\n const numRegularColumns = countColumns(columns, false) - numPrimaryColumns;\n\n // If there's enough space to make primary columns a little\n // bit bigger, do it.\n const primaryColumnWidth = containerWidth > (PRIMARY_COLUMN_WIDTH * numPrimaryColumns * 1.5)\n ? PRIMARY_COLUMN_WIDTH\n : containerWidth / numTopLevelColumns;\n\n const columnWidth = numRegularColumns > 0\n ? (containerWidth - (primaryColumnWidth * numPrimaryColumns)) / numRegularColumns\n : primaryColumnWidth;\n\n // Map through the top level of columns separately, because\n // only the top-level of columns supports the larger primary\n // column.\n return columns.map((column) => {\n const rv = {\n ...column,\n width: colIsPrimary(column)\n ? primaryColumnWidth\n : columnWidth,\n minWidth: 0,\n maxWidth: TableConstants.MAX_COLUMN_WIDTH,\n };\n\n if (rv.columns) {\n rv.columns = mapEachColumn(rv.columns, (subColumn) => {\n return {\n ...subColumn,\n width: colIsPrimary(subColumn)\n ? primaryColumnWidth\n : columnWidth,\n minWidth: 0,\n maxWidth: TableConstants.MAX_COLUMN_WIDTH,\n };\n });\n }\n\n return rv;\n });\n }\n else {\n // We are going to overflow, no matter what. Use measured width for each column.\n updatedColumns = mapEachColumn(updatedColumns, column => {\n if (column.savedWidth) {\n // Leave saved widths alone\n column.width = column.savedWidth;\n }\n else {\n column.width = column.measuredWidth;\n }\n return column;\n });\n }\n }\n else if (totals.optimalWidth > containerWidth) {\n // We can fit more than the measured width, but not all of the optimal width.\n // Use a width for each column proportionally between measured and optimal.\n\n // If we were to use only measured width, how much room do we still have to\n // expand columns closer to their optimal width?\n // To prevent overflow, we need less than the full container width\n const roomToExpand = (containerWidth * TableConstants.CONTAINER_FORCE_FULL_WIDTH_PROPORTION_ADJUSTMENT) - totals.measuredWidth;\n\n // What is the starting width for the columns that can be expanded (i.e., don't\n // have a saved width)?\n const totalStartingWidth = totals.measuredWidth - totals.fixedWidth;\n\n updatedColumns = mapEachColumn(updatedColumns, column => {\n if (column.savedWidth) {\n // Leave saved widths alone\n column.width = column.savedWidth;\n }\n else {\n // Give this column it's proportion of the room we have to expand\n column.width = Math.floor(roomToExpand * (column.measuredWidth/totalStartingWidth) + column.measuredWidth);\n }\n return column;\n });\n }\n else if (totals.optimalWidth > Math.floor(containerWidth * TableConstants.FORCE_FULL_WIDTH_PROPORTION)) {\n // Our optimal width is close to the size of a container, so expand a little more to \n // fill the space and not \"look broken\".\n\n // If we were to use only optimal width, how much room do we still have to\n // expand columns in order to fill the container?\n // To prevent overflow, we need less than the full container width\n const roomToExpand = (containerWidth * TableConstants.CONTAINER_FULL_WIDTH_ADJUSTMENT) - totals.optimalWidth;\n\n // What is the starting width for the columns that can be expanded (i.e., don't\n // have a saved width)? \n const spreadableWidth = totals.optimalWidth - totals.fixedWidth;\n\n updatedColumns = mapEachColumn(updatedColumns, column => {\n if (column.savedWidth) {\n // Leave saved widths alone\n column.width = column.savedWidth;\n }\n else {\n // Give this column its proportion of the room we have to expand\n column.width = Math.floor(roomToExpand * (column.optimalWidth/spreadableWidth) + column.optimalWidth);\n }\n return column;\n });\n }\n else {\n // We have lots of open room, just use optimal width for each column.\n updatedColumns = mapEachColumn(updatedColumns, column => {\n if (column.savedWidth) {\n // Leave saved widths alone\n column.width = column.savedWidth;\n }\n else {\n column.width = column.optimalWidth;\n }\n return column;\n });\n }\n\n return updatedColumns;\n }, [ columns, data, containerWidth, isPrint ]);\n\n return newColumns;\n}\n","/**\n * Gets the depth of the table data. Currently only the first data\n * row is sampled as all rows are assumed to have the same depth.\n *\n * @param {Array} data The data or sub-data of a table data-set.\n * @param {Number} [depth=0] The depth into the data the caller is at.\n */\nexport function getMaxDepth(data, depth = 0) {\n if (data.length > 0) {\n return data.reduce((acc, dd) => {\n const subRows = dd.subRows;\n\n if (subRows && subRows.length > 0) {\n return Math.max(getMaxDepth(subRows, depth + 1), acc);\n }\n\n return acc;\n }, depth);\n }\n\n return depth;\n}\n\n/**\n * Calculates the full expanded state for react-table given a\n * collapse level.\n *\n * @param {Number} collapseLevel The level at which to collapse to.\n * Negative values are relative to the max depth as calculated\n * by getMaxDepth .\n * @param {Array} data Data passed in to Table component\n */\nexport function calculateExpandedStateAtLevel(collapseLevel, data) {\n // Negative collapse levels should be relative to the max depth\n // of the hierarchy.\n //\n if (collapseLevel < 0) {\n collapseLevel = getMaxDepth(data) + collapseLevel;\n }\n\n const buildState = (rows, expandedState = {}, levels = []) => {\n if (levels.length >= collapseLevel) {\n return expandedState;\n }\n\n rows.forEach((row, rowIndex) => {\n const currentLevels = levels.concat(rowIndex);\n\n expandedState[currentLevels.join('.')] = true;\n\n if (row.subRows && row.subRows.length > 0) {\n buildState(\n row.subRows,\n expandedState,\n currentLevels\n );\n }\n });\n\n return expandedState;\n };\n\n return buildState(data);\n}\n\n/**\n * Font weight for the dimension cell based on its depth,\n * the maxDepth, and rootNodeCount.\n * \n * @param {Number} depth \n * @param {*} maxDepth \n * @param {*} rootNodeCount \n */\nexport const getCellFontWeight = (depth, maxDepth, rootNodeCount) => {\n // only bold certain rows if there is any depth at all\n if (maxDepth !== 0) {\n // assume that only the first depth will have bold text\n let boldDepth = 0;\n // if there is only a single root node (as in Enterprise) bold the first two depths\n if (rootNodeCount === 1) {\n boldDepth = 1;\n }\n if (depth <= boldDepth && depth !== maxDepth) {\n return '700';\n }\n }\n};\n\n/**\n * Helper function for handling the resize column info that comes from table.\n * \n * @param {Object} savedColumnWidths\n * @param {Object} updatedColumnWidths\n */\nexport function updateSavedColumnWidths({ savedColumnWidths, updatedColumnWidths }) {\n let newColumnWidths = { ...savedColumnWidths };\n Object.keys(updatedColumnWidths).forEach(id => {\n if (Number.isFinite(updatedColumnWidths[id])) {\n newColumnWidths[id] = updatedColumnWidths[id];\n }\n else {\n delete newColumnWidths[id];\n }\n });\n return newColumnWidths;\n}\n","const cssValueRegex = (() => {\n const cssUnitRegexString = [\n 'px', 'em', 'rem', '%',\n 'pt', 'vw', 'vh', 'vmin',\n 'vmax', 'in', 'cm', 'mm',\n 'lh', 'pc', 'ex', 'ch',\n 'Q',\n ].map((unit) => `(?:${unit})`).join('|');\n\n // A css value\n const regexString = `^(-?\\\\d+\\\\.?\\\\d*)(?:${cssUnitRegexString})?$`;\n\n return RegExp(regexString);\n})();\n\n/**\n * Helper to parse css unit strings such as \"123px\" into the numeric representation such as 123\n *\n * @param {Number|String} cssValue A number of units or css value such as \"123px\", \"15em\", or \"0\"\n *\n * @returns {Number} Numeric representation of the unit value.\n */\nexport function cssValueToNumber(cssValue) {\n const parseFail = (error = 'unknown') => {\n throw new Error(`Cannot parse cssValue value of \"${cssValue}\". Error: ${error}`);\n };\n\n if (typeof cssValue === 'number') {\n return cssValue;\n }\n else if (typeof cssValue === 'string') {\n cssValue = cssValue.trim();\n\n const unitValueMatches = cssValue.match(cssValueRegex);\n\n if (unitValueMatches) {\n const numericValue = Number(unitValueMatches[1]);\n\n if (Number.isNaN(numericValue)) {\n parseFail('parsed value is NaN');\n }\n else {\n return numericValue;\n }\n }\n else {\n parseFail('unsupported unit or format');\n }\n }\n else {\n parseFail('unsupported type');\n }\n}\n","import React from 'react';\nimport Icon from 'Common/components/Icon';\nimport styled from 'styled-components';\nimport useTranslation from 'Common/hooks/useTranslation';\n\nconst Container = styled.div`\n display: flex;\n flex-direction: row;\n padding: 0 10px;\n align-items: center;\n min-height: 24px;\n`;\n\nconst IconContainer = styled.div`\n padding-right: 3px;\n`;\n\nexport default function NoDataPlaceholder() {\n const iconTitle = useTranslation('no_data_in_gap_extended_copy');\n const noDataText = useTranslation('no_data_literal');\n\n return (\n \n \n \n \n
    {noDataText}
    \n
    \n );\n}\n","import React, {\n useCallback,\n useEffect,\n useMemo,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { css } from 'styled-components';\nimport {\n useTable,\n useResizeColumns,\n useFlexLayout,\n useRowSelect,\n} from 'react-table';\n\nimport { FixedSizeList } from 'react-window';\nimport { FontFamily } from 'Common/components/typography';\nimport Icon from 'Common/components/Icon';\nimport useSizedColumns from './internal/useSizedColumns';\nimport * as TableConstants from './internal/tableConstants';\nimport { getMaxDepth, getCellFontWeight } from './tableUtil';\nimport { getScrollBarWidth } from 'Common/util/getScrollBarWidth';\nimport { cssValueToNumber } from 'Common/util/cssHelpers';\nimport NoDataPlaceholder from './internal/NoDataPlaceholder';\nimport useExpandedRows from './internal/useExpandedRows';\n\nconst printBorderColor = ({ theme }) => theme.colors.palette.grey.silver;\n\nconst scrollBarWidth = getScrollBarWidth();\n\nconst roundingRadius = '4px';\n\nconst ExpanderContainer = styled.div`\n display: inline-block;\n font-size: 6px;\n padding-right: 1em;\n height: 1.5em;\n vertical-align: middle;\n`;\n\nconst CellContent = styled.div.attrs(({leftPadding, rightPadding, fontWeight, width}) => {\n return {\n style: {\n paddingLeft: leftPadding,\n paddingRight: rightPadding,\n fontWeight: fontWeight,\n width: width,\n },\n };\n})`\n min-width: 0px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: flex;\n align-items: center;\n height: 100%;\n\n span.cpe-data-item,\n span.cpe-metric-value {\n display: inline;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n`;\n\nconst leftShadow = 'inset 8px 0px 10px -10px rgba(0,0,0,0.08)';\nconst rightShadow = 'inset -8px 0px 10px -10px rgba(0,0,0,0.08)';\n\nconst TableCell = styled.div`\n ${({showCellBorders, isPrint}) => showCellBorders && !isPrint && css`\n /* Ensure all cells, including the header, get padding when showing\n cell borders.\n */\n padding: 0 ${TableConstants.COLUMN_PADDING}px;\n\n :first-child {\n box-shadow: ${rightShadow};\n }\n\n :not(:first-child) {\n box-shadow: ${leftShadow}, ${rightShadow};\n border-left: ${TableConstants.COLUMN_BORDER_WIDTH}px solid white;\n }\n\n :last-child {\n box-shadow: ${leftShadow};\n }\n `}\n`;\n\nconst HeaderCell = styled(TableCell)`\n ${({isPrint, showTopBorder, hasContent}) => showTopBorder && !isPrint && hasContent && css`\n border-top: ${TableConstants.COLUMN_BORDER_WIDTH}px solid white;\n `}\n`;\n\nconst ResizeHandle = styled.div``;\n\nconst CellBorderResizeTarget = styled.div.attrs(({isLastColumn, bodyHasScrollbar}) => {\n return {\n style: {\n right: isLastColumn && !bodyHasScrollbar ? 0 : -10,\n width: isLastColumn ? 10 : 20,\n },\n };\n})`\n position: absolute;\n height: 24px;\n\n /* Just need to make sure it ends up above the neighboring cell */\n z-index: 10;\n`;\n\nconst SortClickTarget = styled.div`\n flex: 1 1 auto;\n min-width: 0px;\n height: 100%;\n\n ${({readonly}) => !readonly && css`\n cursor: pointer;\n `}\n`;\nconst CellContentAndSortContainer = styled.div`\n display: flex;\n align-items: baseline;\n min-width: 0px;\n\n > * {\n user-select: none;\n }\n`;\nconst SortOrderSubScript = styled.sub`\n padding-left: 2px;\n font-size: 8px;\n`;\n\nconst TableRowBase = styled.div`\n ${({ isPrint }) => isPrint && css`\n border-radius: 0;\n border-top: 1px solid ${printBorderColor};\n border-left: 1px solid ${printBorderColor};\n `}\n`;\n\nconst HeaderRow = styled(TableRowBase)`\n ${({ bodyHasScrollbar }) => bodyHasScrollbar && css`\n padding-right: ${scrollBarWidth}px;\n `}\n\n background-color: ${({theme, isSecondaryHeaderRow}) => isSecondaryHeaderRow\n ? theme.colors.palette.grey.ash\n : theme.colors.palette.grey.manatee\n };\n\n ${({ isPrint, theme }) => isPrint && css`\n background-color: ${theme.colors.palette.white};\n `}\n\n ${({isSecondaryHeaderRow}) => isSecondaryHeaderRow\n ? css`\n font-size: 12px;\n `\n : css`\n border-top-left-radius: ${roundingRadius};\n border-top-right-radius: ${roundingRadius};\n `\n }\n\n ${HeaderCell} {\n position: relative;\n margin: 0;\n height: ${({isSecondaryHeaderRow}) => isSecondaryHeaderRow\n ? TableConstants.SECONDARY_HEADER_ROW_HEIGHT\n : TableConstants.STANDARD_HEADER_ROW_HEIGHT\n }px;\n padding-left: ${TableConstants.COLUMN_PADDING}px;\n\n ${({ isPrint }) => isPrint && css`\n border-right: 1px solid ${printBorderColor};\n padding: 0 2px;\n `}\n\n ${ResizeHandle} {\n right: 0;\n position: relative;\n height: 13px;\n width: 18px;\n flex: 0 0 auto;\n\n z-index: 1;\n color: ${({theme}) => theme.colors.palette.grey.silver};\n font-size: 9px;\n text-align: center;\n\n /* prevents from scrolling while dragging on touch devices */\n touch-action: none;\n\n ${({ isPrint }) => isPrint && css`\n position: absolute;\n right: -9px; /* Half of width */\n opacity: 0; /* Invisible. Column border is there as a visual indicator. */\n `}\n\n /* Hide the handle when page is printed */\n @media print {\n display: none;\n }\n }\n }\n`;\n\nconst BodyRow = styled(TableRowBase)`\n ${({isPrint }) => !isPrint && css`\n border-radius: ${roundingRadius};\n\n /* The last row should not have a bottom border radius for aesthetics. */\n :last-child {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n }\n `}\n\n ${({ stripedRow, theme, noColor }) => stripedRow && css`\n background-color: ${noColor ? theme.colors.palette.grey.cloud : theme.colors.palette.blue.ice};\n `}\n\n ${({isTotal}) => isTotal && css`\n font-weight: bold;\n `}\n\n ${({isPrint, theme}) => !isPrint && css`\n :hover {\n background-color: ${theme.colors.palette.grey.cloud};\n }\n `}\n\n ${TableCell} {\n position: relative;\n margin: 0;\n padding: 0 ${TableConstants.COLUMN_PADDING}px;\n\n ${({ isPrint }) => isPrint && css`\n border-right: 1px solid ${printBorderColor};\n padding: 0 2px;\n `}\n }\n`;\n\nconst Thead = styled.div``;\nconst Tbody = styled.div``;\nconst TableFooter = styled.div``;\n\n/**\n * When there are no header columns give the table a header.\n */\nconst EmptyTableHeader = styled.div`\n width: 100%;\n height: ${TableConstants.STANDARD_FOOTER_HEIGHT}px;\n background-color: ${({theme}) => theme.colors.palette.grey.manatee};\n border-top-left-radius: ${roundingRadius};\n border-top-right-radius: ${roundingRadius};\n\n ${({isPrint}) => isPrint && css`\n height: 0;\n border-top: 1px solid ${printBorderColor};\n border-radius: none;\n `}\n`;\n\nconst Table = styled.div`\n font-family: ${FontFamily.primary};\n\n ${Thead} {\n color: ${({theme}) => theme.colors.palette.white};\n font-size: 14px;\n border-top-left-radius: ${roundingRadius};\n border-top-right-radius: ${roundingRadius};\n\n ${({ isPrint }) => isPrint && css`\n border-radius: 0;\n color: ${({theme}) => theme.colors.darkText.highEmphasis};\n background-color: ${({theme}) => theme.colors.palette.white};\n font-size: 12px;\n font-weight: bold;\n `}\n }\n\n ${Tbody} {\n color: ${({theme}) => theme.colors.darkText.highEmphasis};\n background-color: ${({theme}) => theme.colors.palette.white};\n font-size: 12px;\n overflow-x: hidden;\n\n ${({ isPrint }) => isPrint && css`\n font-size: 11px;\n `}\n }\n\n ${TableFooter} {\n width: 100%;\n height: ${TableConstants.STANDARD_FOOTER_HEIGHT}px;\n background-color: ${({theme}) => theme.colors.palette.grey.manatee};\n border-bottom-left-radius: ${roundingRadius};\n border-bottom-right-radius: ${roundingRadius};\n\n ${({isPrint}) => isPrint && css`\n height: 0;\n border-top: 1px solid ${printBorderColor};\n border-radius: none;\n `}\n }\n`;\n\nconst Root = styled.div.attrs(({ minWidth, isPrint }) => {\n return {\n style: {\n minWidth,\n overflow: isPrint ? 'hidden' : 'auto',\n },\n };\n})`\n display: block;\n`;\n\nconst getStyle = (align, style = {}) => {\n let justifyContent = 'space-between';\n\n if (align === 'right') {\n justifyContent = 'flex-end';\n }\n else if (align === 'center') {\n justifyContent = 'center';\n }\n\n let rv = {\n justifyContent,\n alignItems: 'center',\n display: 'flex',\n };\n\n\n\n return rv;\n};\n\nconst getStyles = (props, align = 'left') => {\n return [\n props,\n {\n style: getStyle(align, props.style)\n },\n ];\n};\n\nconst headerProps = (props, { column }) => {\n let title = column.title;\n\n if (title === undefined && typeof column.Header === 'string') {\n title = column.Header;\n }\n\n return [\n ...getStyles(props, column.align),\n {\n title,\n },\n ];\n};\n\nconst cellProps = (props, { cell }) => getStyles(props, cell.column.align);\n\n/**\n * TableComponent - A simple, virtualized React table that supports\n * hierarchical data.\n *\n * @param {Object} props\n * @param {Array} props.columns The columns to be passed into first through\n * useSizedColumns and then react-table. Should be memoized.\n * @param {Array} props.data The rows of data to be passed to react-table.\n * Supports hierarchy through the subRows property. Should be memoized.\n * Any data rows that should be treated as total rows should have the\n * property `isTotal` set to true.\n * @param {Number} [props.containerWidth = 0] The width of the table's\n * container in pixels.\n * @param {Function} [props.setExpandedRows] Called when state changes\n * so user can externally save the expanded row state.\n * @param {Function} [props.setResizedColumnWidths] Called when state changes\n * so user can externally save the resized column widths state.\n * @param {Function} [props.onSortByColumnChange] If provided, called when user\n * clicks on the header columns.\n * @param {Boolean} [props.isPrint = false] If true the table will be rendered\n * in a print friendly format with minimal interactivity. If true isPrint\n * also forces the height prop for the table to be 'full'.\n * @param {Boolean} [props.noColor = false] If true don't render colors for\n * what the table controls and pass noColor to column render functions.\n * @param {Number} [props.rowHeight = 1] A number of lines of data that should\n * fit in a row. This value changes the height of all rows in the table\n * (excluding the header and footer).\n * @param {Number} [props.maxRowsShown] The number of rows shown within the viewport\n * of the the table. If this value is not provided, the height of all rows will be\n * the height of table viewport.\n * @param {Boolean} [props.showCellBorders = false] If true show vertical\n * borders for the data / header cells and do not show the drag handles.\n * @param {Boolean} [props.showNoDataPlaceholder = false] When set to true if\n * if there is no data it will still show a row saying no data.\n *\n * @param {Function} [props.onColumnResizeStart] If provided, called when user\n * clicks starts resizing a column.\n * @param {Function} [props.onColumnResizeEnd] If provided, called when user\n * clicks stops resizing a column.\n *\n * @see react-table\n * @see useSizedColumns\n */\nfunction TableComponent({\n columns: originalColumns,\n containerWidth,\n data,\n expandedRows,\n isPrint,\n maxRowsShown,\n noColor,\n rowHeight,\n showCellBorders,\n showNoDataPlaceholder,\n\n onSortByColumnChange,\n setExpandedRows,\n setResizedColumnWidths,\n\n onColumnResizeStart,\n onColumnResizeEnd,\n}) {\n\n const defaultColumn = useMemo(\n () => ({\n // When using useFlexLayout:\n // minWidth is only used as a limit for resizing\n // width is used for both the flex-basis and flex-grow\n // maxWidth is only used as a limit for resizing\n //\n minWidth: TableConstants.MIN_COLUMN_WIDTH,\n width: TableConstants.DEFAULT_COLUMN_WIDTH,\n maxWidth: TableConstants.MAX_COLUMN_WIDTH,\n }),\n []\n );\n\n // number of root nodes in the data\n // for enterprise hierarchies this will be 1, Enterprise\n // for other hierarchies it can be more than 1, like n parts\n const rootNodeCount = data.length;\n const maxDepth = getMaxDepth(data);\n const columns = useSizedColumns({\n columns: originalColumns,\n data,\n isPrint,\n containerWidth: containerWidth - (isPrint ? 0 : scrollBarWidth),\n });\n\n const {\n getTableProps,\n headerGroups,\n rows,\n totalColumnsWidth,\n prepareRow,\n state,\n } = useTable(\n {\n columns,\n data,\n defaultColumn,\n },\n useResizeColumns,\n useFlexLayout,\n useRowSelect,\n );\n\n // allow saving the column resizing state\n const columnResizedWidths = state?.columnResizing?.columnWidths;\n const resizingHasFinished = state?.columnResizing?.isResizingColumn === null;\n useEffect(() => {\n if (resizingHasFinished ) {\n setResizedColumnWidths(columnResizedWidths);\n }\n }, [columnResizedWidths, setResizedColumnWidths, resizingHasFinished]);\n\n const isResizingColumn = typeof state?.columnResizing?.isResizingColumn === 'string';\n\n useEffect(() => {\n if (isResizingColumn) {\n onColumnResizeStart();\n }\n else {\n onColumnResizeEnd();\n }\n }, [isResizingColumn, onColumnResizeStart, onColumnResizeEnd]);\n\n const rowsWithExpandedDetails = useExpandedRows({ expanded:expandedRows, rows, setExpandedRows });\n\n const width = isPrint\n ? containerWidth\n : Math.max(\n totalColumnsWidth + scrollBarWidth,\n TableConstants.TABLE_MIN_WIDTH\n );\n\n const readonlySort = !onSortByColumnChange || isPrint;\n\n const tableProps = useCallback((initialTableProps) => {\n let minWidth = cssValueToNumber(initialTableProps.style.minWidth);\n minWidth = Math.max(minWidth, totalColumnsWidth);\n\n if (!isPrint) {\n minWidth += scrollBarWidth;\n }\n\n return [\n initialTableProps,\n {\n style: {\n minWidth,\n },\n },\n ];\n }, [ isPrint, totalColumnsWidth ]);\n\n const renderRow = useCallback(\n ({ index, style }) => {\n const row = rowsWithExpandedDetails[index];\n prepareRow(row);\n\n return (\n \n {row.cells.map((cell, cellIndex) => {\n const inverseDepth = maxDepth - row.depth;\n const canExpand = row.subRows?.length;\n let expander = null;\n let contentProps = {};\n let expandedIconOffset = !canExpand && !isPrint ? 12 : 0;\n\n if (cell.column.expandable === true) {\n if (canExpand && !isPrint) {\n contentProps = {\n onClick: () => { row.handleExpandToggle(row.id); },\n style: { cursor: 'pointer'},\n };\n expander = (\n \n \n \n );\n }\n\n const indentPerDepth = isPrint\n ? TableConstants.EXPANDABLE_COLUMN_INDENT_PER_DEPTH_PRINT\n : TableConstants.EXPANDABLE_COLUMN_INDENT_PER_DEPTH;\n\n contentProps.leftPadding = `${expandedIconOffset + (row.depth * indentPerDepth)}px`;\n }\n else if (!isPrint) {\n\n if (inverseDepth < 0) {\n throw new Error(\n `Row depth of ${row.depth} is greater than specified max depth of ${maxDepth}`\n );\n }\n\n if (cell.column.align === 'right') {\n contentProps.rightPadding = `${inverseDepth * TableConstants.COLUMN_RIGHT_INDENT_PER_DEPTH}px`;\n }\n else {\n contentProps.leftPadding = `${row.depth * TableConstants.COLUMN_LEFT_INDENT_PER_DEPTH}px`;\n }\n }\n\n if (cell.column.fillCellWidth) {\n contentProps.width = '100%';\n }\n\n // The following exists for backwards compatibility:\n // Allow left aligned data items to stretch out and use the full cell.\n if (cell.column.align === 'left') {\n contentProps.width = '100%';\n }\n\n contentProps.fontWeight = getCellFontWeight(row.depth, maxDepth, rootNodeCount);\n return (\n \n \n {expander}\n {cell.render('Cell', { noColor, rowHeight })}\n \n \n );\n })}\n \n );\n },\n [prepareRow, rowsWithExpandedDetails, isPrint, maxDepth, rootNodeCount, noColor, rowHeight, showCellBorders]\n );\n\n const renderHeaderRows = useCallback(\n (headerGroupsToRender, bodyHasScrollbar) => {\n const maxGroupIndex = headerGroupsToRender.length - 1;\n\n if (headerGroupsToRender.length === 0) {\n return (\n \n );\n }\n else {\n return headerGroupsToRender.map((headerGroup, groupIndex) => {\n const showSortOrder = headerGroup.headers.filter( (hh) => {return hh.sortIndex !== null;}).length > 1;\n const isHigherOrderHeader = (groupIndex !== maxGroupIndex);\n const isSecondaryHeaderRow = groupIndex !== 0;\n const isLightweightHeaderRow = maxGroupIndex > 0 && groupIndex === maxGroupIndex;\n const showTopBorder = groupIndex > 1 ;\n \n return (\n \n {headerGroup.headers.map((column, columnIndex) => (\n \n {\n if (column.sortable && !readonlySort) {\n onSortByColumnChange(columnIndex, !e.shiftKey);\n }\n }}\n >\n \n \n {column.render('Header')}\n \n {\n column.sortOrder && (\n \n )\n }\n {\n showSortOrder && Number.isInteger(column.sortIndex) && (\n {column.sortIndex + 1}\n )\n }\n \n \n {column.canResize && (showCellBorders\n ? (\n {\n setResizedColumnWidths({ [column.id]: null });\n }}\n bodyHasScrollbar={bodyHasScrollbar}\n />\n )\n : (\n {\n setResizedColumnWidths({ [column.id]: null });\n }}\n >\n {}\n \n )\n )}\n \n ))}\n \n );\n });\n }\n },\n [isPrint, onSortByColumnChange, readonlySort, showCellBorders, setResizedColumnWidths]\n );\n\n // The minimum row height accounts for some padding that should not be included\n // in for additional row height increments, so the min row height and additional\n // row height are kept as separate values.\n //\n const rowPixelHeight = TableConstants.MINIMUM_ROW_HEIGHT + ((rowHeight - 1) * TableConstants.ADDITIONAL_ROW_HEIGHT_UNIT);\n\n let bodyHeight = 0;\n let bodyHasScrollbar;\n\n const totalRowHeight = rowsWithExpandedDetails.length * rowPixelHeight;\n\n if (isPrint) {\n bodyHeight = totalRowHeight;\n bodyHasScrollbar = false;\n }\n else {\n bodyHeight = Math.min(totalRowHeight, rowPixelHeight * maxRowsShown);\n\n bodyHasScrollbar = totalRowHeight > bodyHeight;\n\n // If the table doesn't have enough content to fill the full body\n // height, make the body height smaller.\n //\n if (!bodyHasScrollbar) {\n bodyHeight = totalRowHeight;\n }\n }\n\n return (\n \n \n \n {renderHeaderRows(headerGroups, bodyHasScrollbar)}\n \n \n \n {renderRow}\n \n {rowsWithExpandedDetails.length === 0 && showNoDataPlaceholder && ()}\n \n \n
    \n \n );\n}\n\nconst ColumnPropType = PropTypes.arrayOf(\n PropTypes.shape({\n Header: PropTypes.node.isRequired,\n textOnlyHeader: PropTypes.string,\n accessor: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n ]),\n title: PropTypes.string,\n // react-table useSortBy is not current being used beware\n // of other sort props found on column\n sortOrder: PropTypes.oneOf(['asc', 'desc']),\n sortIndex: PropTypes.number,\n }),\n);\nTableComponent.propTypes = {\n columns: PropTypes.oneOfType([\n PropTypes.arrayOf(\n PropTypes.shape({\n Header: PropTypes.node.isRequired,\n textOnlyHeader: PropTypes.string,\n columns: ColumnPropType.isRequired,\n }),\n ),\n ColumnPropType,\n ]),\n containerWidth: PropTypes.number,\n data: PropTypes.array,\n expandedRows: PropTypes.object,\n isPrint: PropTypes.bool,\n maxRowsShown: PropTypes.number,\n noColor: PropTypes.bool,\n rowHeight: PropTypes.number,\n showCellBorders: PropTypes.bool,\n showNoDataPlaceholder: PropTypes.bool,\n\n onSortByColumnChange: PropTypes.func,\n setExpandedRows: PropTypes.func,\n setResizedColumnWidths: PropTypes.func,\n\n onColumnResizeStart: PropTypes.func,\n onColumnResizeEnd: PropTypes.func,\n};\n\nTableComponent.defaultProps = {\n columns: [],\n containerWidth: 0,\n data: [],\n expandedRows: {},\n isPrint: false,\n maxRowsShown: 14,\n noColor: false,\n rowHeight: 1,\n showCellBorders: false,\n showNoDataPlaceholder: false,\n\n setExpandedRows: () => {},\n setResizedColumnWidths: () => {},\n\n onColumnResizeStart: () => {},\n onColumnResizeEnd: () => {},\n};\n\nexport default TableComponent;\n","import {\n useMemo,\n} from 'react';\n\n/**\n * Hook to handle expanded rows. We don't use the one included with react-table\n * because the widgets are allowed to change the expanded rows as well.\n * \n * @param {Object} expanded the expanded state\n * @param {Object[]} rows the data shown as rows in the table\n * @param {Function} setExpandedRows update expanded state\n */\nexport default function ({ expanded, rows, setExpandedRows }) {\n return useMemo(() => {\n let expandedRows = [];\n const handleExpandRow = (row) => {\n const isExpanded = expanded[row.id];\n expandedRows.push({\n ...row,\n isExpanded,\n handleExpandToggle: (id) => {\n let updatedExpandedState = {\n ...expanded\n };\n if (updatedExpandedState[id]) {\n delete updatedExpandedState[id];\n }\n else {\n updatedExpandedState[id] = true;\n }\n setExpandedRows(updatedExpandedState);\n }\n });\n\n if (row.subRows?.length && isExpanded) {\n row.subRows.forEach(handleExpandRow);\n }\n };\n\n rows.forEach(handleExpandRow);\n\n return expandedRows;\n }, [rows, expanded, setExpandedRows]);\n}\n","import React, { useCallback, useRef, useState } from 'react';\nimport styled from 'styled-components';\nimport useBounds from 'Common/hooks/useBounds';\n\nimport Table from './Table';\n\nconst Container = styled.div`\n display: flex;\n width: 100%;\n`;\n\n/**\n * A wrapper around that watches for changes in the available width and\n * passes it to the Table.\n *\n * This wapper also blocks rerenders of the Table during column resizing.\n *\n * @see Table\n */\nfunction WidthAdjustableTable(props) {\n const [container, setContainer] = useState(null);\n\n const bounds = useBounds(container);\n\n const [ isResizing, setIsResizing ] = useState(false);\n\n const handleColumnResizeStart = useCallback(() => {\n setIsResizing(true);\n }, []);\n\n const handleColumnResizeEnd = useCallback(() => {\n setIsResizing(false);\n }, []);\n\n const lastTablePropsRef = useRef(props);\n const lastTableBounds = useRef(bounds);\n\n // Only allow the props to change if a column is not being resized.\n // Otherwise, keep reusing the same props until the resize is done.\n if (!isResizing) {\n lastTablePropsRef.current = props;\n lastTableBounds.current = bounds;\n }\n\n return (\n \n \n \n );\n}\n\nexport default WidthAdjustableTable;\n","\nimport React, { useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport EmailTableLiveControls from './EmailTableLiveControls';\nimport WidgetFrame from 'Common/components/WidgetFrame/WidgetFrame';\nimport Table from 'Common/components/Table/WidthAdjustableTable';\nimport { useTranslator } from 'Common/hooks/useTranslation';\nimport {\n getMockTableData,\n getMockTableHeaderColumns,\n getEmailTableMetricListMetricOptions,\n} from './MockWidgetData';\n\nconst CONFIG_BY_TABLE_TYPE = {\n 'availability_events': {\n hardCodedColumns: [\n 'start_time',\n 'process_state_reason',\n 'duration',\n ],\n maxNumUserSelectedColumns: 0,\n },\n 'availability_reasons': {\n hardCodedColumns: [\n 'process_state_reason',\n 'duration',\n 'count',\n ],\n maxNumUserSelectedColumns: 0,\n },\n 'reject_reasons': {\n hardCodedColumns: [\n { channel: 'quality', name: 'reject_reason' },\n { channel: 'quality', name: 'count' },\n ],\n maxNumUserSelectedColumns: 0,\n },\n 'part_run': {\n hardCodedColumns: [\n 'start_time',\n 'duration',\n 'part',\n ],\n maxNumUserSelectedColumns: 3,\n },\n 'work_center': {\n hardCodedColumns: [\n 'asset',\n ],\n maxNumUserSelectedColumns: 5,\n },\n};\n\nconst getHardCodedColumnsForTableType = (tableType) => {\n if (!CONFIG_BY_TABLE_TYPE[tableType]) {\n throw new Error(`Invalid tableType: ${tableType}`);\n }\n\n return CONFIG_BY_TABLE_TYPE[tableType].hardCodedColumns;\n};\n\nconst getMaxNumUserSelectedColumnsForTableType = (tableType) => {\n if (!CONFIG_BY_TABLE_TYPE[tableType]) {\n throw new Error(`Invalid tableType: ${tableType}`);\n }\n\n return CONFIG_BY_TABLE_TYPE[tableType].maxNumUserSelectedColumns;\n};\n\nexport default function EmailTableWidget({\n metricThresholds,\n widgetStf,\n widgetState,\n areLiveControlsVisible,\n actions,\n timeRange,\n explorationPath,\n mutable,\n dragHandleProps,\n isDragEnabled,\n isLayoutModeActive,\n dataService,\n isPrint,\n hideTrend,\n printConfig,\n suppressedControls,\n suppressDelete,\n}) {\n const showLiveControls = areLiveControlsVisible;\n\n // function to update state with new columns\n const updateColumnsInFieldSet = (origState, newColumns) => {\n const newFieldSet = {\n ...origState.exploration_path.field_set,\n fields: newColumns\n };\n\n const newExplorationPath = {\n ...origState.exploration_path,\n field_set: newFieldSet\n };\n\n return {\n ...origState,\n exploration_path: newExplorationPath,\n };\n };\n\n const [dirtyUserSelectedColumns, setDirtyUserSelectedColumns] = useState(false);\n\n const onDimensionOptionsChange = (tableType, maxRowCount) => {\n actions.setWidgetStf((stf) => {\n // update tableType in stf\n let newStf = {\n ...stf,\n tableType: tableType,\n row_limit: {\n limit: maxRowCount,\n },\n };\n\n const maxNumUserSelectedColumns = getMaxNumUserSelectedColumnsForTableType(tableType);\n\n // depending on what the new table type and the current state update the selected columns\n if (maxNumUserSelectedColumns === 0) {\n // when selecting these table types the user selected columns are completely wiped,\n // which means other table types will revert back to defaults (thus clean)\n setDirtyUserSelectedColumns(false);\n newStf = updateColumnsInFieldSet(newStf, []);\n }\n else if (dirtyUserSelectedColumns) {\n // The user had made some changes to the selected columns.\n // Instead of replacing them with defaults, just trim them so\n // they don't exceed the max number of columns for the new table\n // type.\n const userSelectedColumns = (stf.exploration_path.field_set.fields || []).slice(0, maxNumUserSelectedColumns);\n newStf = updateColumnsInFieldSet(newStf, userSelectedColumns);\n }\n else if (tableType === 'part_run') {\n // if the user is coming from a blank column set then add the default columns for this table type\n newStf = updateColumnsInFieldSet(newStf, [\n getEmailTableMetricListMetricOptions('good_count'),\n getEmailTableMetricListMetricOptions('efficiency'),\n getEmailTableMetricListMetricOptions('oee'),\n ]);\n }\n else if (tableType === 'work_center') {\n // if the user is coming from a blank column set then add the default columns for this table type\n newStf = updateColumnsInFieldSet(newStf, [\n getEmailTableMetricListMetricOptions('efficiency'),\n getEmailTableMetricListMetricOptions('good_count'),\n getEmailTableMetricListMetricOptions('reject_count'),\n getEmailTableMetricListMetricOptions('down_time'),\n getEmailTableMetricListMetricOptions('oee'),\n ]);\n }\n\n return newStf;\n });\n };\n\n const onColumnsChange = (newColumns) => {\n setDirtyUserSelectedColumns(true);\n actions.setWidgetStf((stf) => {\n return updateColumnsInFieldSet(stf, newColumns);\n });\n };\n\n const translator = useTranslator();\n\n let maxRowCount = 5;\n if (widgetStf.row_limit) {\n maxRowCount = widgetStf.row_limit.limit;\n }\n\n const tableType = widgetStf.tableType;\n // this is the user selected columns\n const selectedColumns = widgetStf.exploration_path.field_set.fields;\n const maxNumUserSelectedColumns = getMaxNumUserSelectedColumnsForTableType(tableType);\n\n const tableColumns = useMemo(() => [\n ...getHardCodedColumnsForTableType(tableType),\n ...selectedColumns,\n ], [ tableType, selectedColumns ]);\n\n const columns = getMockTableHeaderColumns(tableColumns, translator, metricThresholds);\n\n return (\n \n )}\n >\n \n \n );\n}\n\nEmailTableWidget.propTypes = {\n metricThresholds: PropTypes.object,\n widgetStf: PropTypes.object.isRequired,\n widgetState: PropTypes.object,\n areLiveControlsVisible: PropTypes.bool.isRequired,\n\n actions: PropTypes.exact({\n setWidgetStf: PropTypes.func.isRequired,\n setWidgetState: PropTypes.func.isRequired,\n setWidgetPrintStatus: PropTypes.func.isRequired,\n setWidgetExportItem: PropTypes.func.isRequired,\n exportWidgetData: PropTypes.func.isRequired,\n deleteWidget: PropTypes.func.isRequired,\n duplicateWidget: PropTypes.func.isRequired,\n setWidgetLiveControlsVisibility: PropTypes.func.isRequired,\n }).isRequired,\n\n timeRange: PropTypes.object,\n explorationPath: PropTypes.object,\n\n mutable: PropTypes.bool.isRequired,\n parentTitle: PropTypes.string,\n dragHandleProps: PropTypes.object,\n isDragEnabled: PropTypes.bool.isRequired,\n isLayoutModeActive: PropTypes.bool.isRequired,\n isPrint: PropTypes.bool.isRequired,\n hideTrend: PropTypes.bool.isRequired,\n printConfig: PropTypes.object,\n suppressedControls: PropTypes.object,\n suppressDelete: PropTypes.bool,\n\n dataService: PropTypes.shape({\n getKpiWidgetData: PropTypes.func.isRequired,\n getWorkCenterCount: PropTypes.func.isRequired,\n getColumnConfig: PropTypes.func.isRequired,\n getColumnHelpText: PropTypes.func.isRequired,\n getTimeRangePrimaryDetails: PropTypes.func.isRequired,\n getTimeRangeSecondaryDetails: PropTypes.func.isRequired,\n getHierarchyNodeDisplayName: PropTypes.func.isRequired,\n }).isRequired,\n};\n","import styled from 'styled-components';\nimport { FontFamily } from 'Common/components/typography';\n\nconst KPIValue = styled.div`\n display: inline-block;\n font-family: ${FontFamily.primary};\n color: ${({theme}) => theme.colors.palette.black};\n cursor: text;\n`;\n\nexport default KPIValue;\n","import React, { useRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport Highcharts from 'highcharts';\nimport styled from 'styled-components';\nimport theme from 'Common/theme/default';\n\nconst SparkLineContainer = styled.div`\n display: inline-block;\n width: 100%;\n height: 100%;\n`;\n\nconst defaultChartOptions = {\n chart: {\n backgroundColor: null,\n borderWidth: 0,\n type: 'area',\n margin: [0, 0, 0, 0],\n width: null,\n height: null,\n // small optimization for sparklines\n skipClone: true,\n },\n title: {\n text: ''\n },\n credits: {\n enabled: false\n },\n xAxis: {\n visible: false\n },\n yAxis: {\n visible: false\n },\n legend: {\n enabled: false\n },\n tooltip: {\n enabled: false,\n },\n plotOptions: {\n series: {\n animation: false,\n states: {\n hover: {\n enabled: false,\n }\n },\n marker: {\n enabled: false,\n },\n fillOpacity: 1,\n }\n }\n};\n\nfunction createSparkline({ renderTo, data, lineWidth, fillColor, lineColor }) {\n let chartOptions = {\n chart: {\n renderTo,\n },\n series: [{\n data,\n }],\n plotOptions: {\n series: {\n lineWidth,\n fillColor,\n lineColor,\n },\n },\n };\n\n chartOptions = Highcharts.merge(defaultChartOptions, chartOptions);\n\n return new Highcharts.Chart(chartOptions);\n}\n\nfunction SparkLine({ data, lineWidth, fillColor, lineColor, ...otherProps }) {\n const sparkLineContainerEl = useRef(null);\n\n // Called on any prop and lifecycle changes\n useEffect(() => {\n const el = sparkLineContainerEl.current;\n\n if (el) {\n createSparkline({\n renderTo: el,\n data,\n lineWidth,\n fillColor,\n lineColor,\n });\n }\n });\n\n return (\n \n );\n}\n\n// Use memo to prevent re-renders when the props haven't changed.\n//\nexport default React.memo(SparkLine);\n\nSparkLine.propTypes = {\n data: PropTypes.arrayOf(\n PropTypes.arrayOf(\n PropTypes.number.isRequired\n )\n ),\n lineWidth: PropTypes.number,\n fillColor: PropTypes.string,\n lineColor: PropTypes.string,\n};\n\nSparkLine.defaultProps = {\n data: [],\n lineWidth: 1,\n fillColor: theme.colors.palette.blue.cruise,\n lineColor: theme.colors.palette.blue.cruise,\n};\n","import SparkLine from './SparkLine';\n\nexport default SparkLine;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport SparkLine from 'Common/components/SparkLine';\n\nfunction KPISparkLine({ data, noColor, ...otherProps }) {\n\n let sparkLineProps = {};\n\n if (noColor) {\n sparkLineProps = {\n lineWidth: 2,\n lineColor: 'black',\n fillColor: 'silver',\n };\n }\n\n return (\n \n );\n}\n\nKPISparkLine.propTypes = {\n data: PropTypes.array,\n noColor: PropTypes.bool,\n};\n\nKPISparkLine.defaultProps = {\n data: null,\n noColor: false,\n};\n\nexport default KPISparkLine;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { css } from 'styled-components';\nimport KPIValue from './KPIValue';\nimport KPISparkLine from './KPISparkLine';\nimport { FontWeight } from 'Common/components/typography';\n\nconst StyledKpiValue = styled(KPIValue)``;\n\nconst TrendDotContainer = styled.div``;\n\nconst BottomContainer = styled.div``;\nconst TrendInfo = styled.div``;\nconst SparkLineContainer = styled.div``;\nconst StyledSparkLine = styled(KPISparkLine)``;\n\nconst KPIDataContainer = styled.div`\n\n ${({ condensed }) => condensed && css`\n margin-top: 8px;\n `}\n\n ${BottomContainer} {\n display: flex;\n flex-direction: row;\n align-items: center;\n }\n\n ${StyledKpiValue} {\n flex: 1 0 auto;\n align-self: flex-end;\n text-align: left;\n\n ${({hideTrend}) => hideTrend && css`\n text-align: center;\n `}\n\n font-weight: ${FontWeight.medium};\n font-size: 36px;\n line-height: 1em;\n\n padding-right: 0.5em;\n\n ${({isPrint}) => isPrint && css`\n font-size: 20px;\n `}\n\n ${({condensed}) => condensed && css`\n font-size: 18px;\n `}\n\n /* Very bad metrics look a little funky in KPIs\n due to how text is aligned and how large the\n font size is. Allowing the background to overflow\n and slightly reducing some of the paddings keeps\n everything aligned and looking how we want.\n */\n .cpe-metric-container {\n overflow: visible;\n\n span.cpe-metric-very-bad {\n padding-top: 0;\n padding-bottom: 0;\n }\n }\n }\n\n ${TrendInfo} {\n display: flex;\n flex-direction: column;\n vertical-align: middle;\n justify-content: space-between;\n\n flex: 0 1 154px;\n\n height: 53px;\n\n ${({condensed}) => condensed && css`\n height: 43px;\n `}\n\n min-width: 25px;\n max-width: 154px;\n\n ${({isPrint}) => isPrint && css`\n width: 40%;\n `}\n\n ${({condensed}) => condensed && css`\n text-align: left;\n max-width: 75px;\n `}\n\n ${TrendDotContainer} {\n text-align: center;\n flex: 1 0 auto;\n padding-top: 6px;\n }\n\n ${SparkLineContainer} {\n display: block;\n flex: 0 1 35px;\n min-height: 15px;\n\n ${({condensed}) => condensed && css`\n text-align: left;\n height: 15px;\n `}\n }\n }\n`;\n\nexport default function KPIData({\n value,\n trendDot,\n sparkLineData,\n noColor,\n isPrint,\n condensed,\n hideTrend,\n ...otherProps\n}) {\n\n const renderTrendInfo = () => {\n if (! hideTrend) {\n return (\n \n \n {trendDot}\n \n \n \n \n \n );\n }\n };\n return (\n \n \n \n {value}\n \n {renderTrendInfo()}\n \n \n );\n}\n\nKPIData.propTypes = {\n value: PropTypes.node,\n trendDot: PropTypes.node,\n sparkLineData: PropTypes.arrayOf(\n PropTypes.arrayOf(\n PropTypes.number.isRequired\n )\n ),\n noColor: PropTypes.bool,\n isPrint: PropTypes.bool,\n condensed: PropTypes.bool,\n hideTrend: PropTypes.bool.isRequired,\n};\n\nKPIData.defaultProps = {\n value: '',\n sparkLineData: null,\n noColor: false,\n isPrint: false,\n condensed: false,\n};\n","import { trend, trendPercent } from 'Common/util/language/math.js';\n\n/**\n * this is the index that extra data items can expected to be located.\n * This is an artifact of how HighCharts expects data for charting [x, y] or [x, y, val] (for heat map)\n * We use the fourth position to store data items which can be used to further define the actual data.\n */\nconst DATA_INDEX = 3;\n\n/**\n * removes open event data points that contain the current open event as well as\n * null or NaN data points\n *\n * @param {Object} opts the following options used to transform the trend data so it can be calculated\n * @param {Object[]} opts.data an array of data points to compute trend. Each data point should\n * consist of an array of 4 elements [x, y, ?, { ...DataItems, sync_id: DataItem }]\n * The DataItems should be adapted for common, i.e. they should be pure data objects with no functions\n * @param {String} opts.columnName columnName of datapoint to check if it is null\n */\nfunction transformTrendData({data, columnName}) {\n data = data.filter((dataPoint) => {\n let rawValue = dataPoint[DATA_INDEX][columnName].rawValue;\n if (dataPoint[DATA_INDEX][columnName].formatType === 'id_array' && (Array.isArray(rawValue) || typeof rawValue === 'number')) {\n // ensure its an array\n rawValue = Array.isArray(rawValue) ? rawValue : [rawValue];\n // then find the length\n rawValue = rawValue.length;\n }\n const isNumeric = rawValue !== null && typeof rawValue === 'number' && ! Number.isNaN(rawValue);\n\n if (!dataPoint[DATA_INDEX].sync_id) {\n throw 'Need to have sync_id included in trend data';\n }\n const containsOpenEvent = dataPoint[DATA_INDEX].sync_id.rawValue === -1;\n\n return isNumeric && !containsOpenEvent;\n });\n\n return data;\n}\n\nconst maxTrend = 10;\n/**\n *\n *\n * @param {Number} value The trend percent to limit\n * @return {Object} return\n * @return {Object} return.value the original trend, or if it was too big/small the limit\n * @return {Object} return.qualifier if necessary a > or < if the value was limited\n */\nexport function limitTrendPercent (value) {\n let qualifier = '';\n\n if (Math.abs(value) >= maxTrend) {\n qualifier = (value < 0) ? '<' : '>';\n value = maxTrend * ((value < 0) ? -1 : 1);\n }\n\n return { value, qualifier };\n}\n\n/*\n see transformTrendData for options\n*/\nexport function trendNoOpenEvent(opts) {\n let data = transformTrendData(opts);\n return trend(data);\n}\n\n/*\n see transformTrendData for options\n*/\nexport function trendPercentNoOpenEvent(opts) {\n let data = transformTrendData(opts);\n return trendPercent(data);\n}\n","export const GOOD = 'good';\nexport const BAD = 'bad';\nexport const NEUTRAL = 'neutral';\nexport const NONE = 'none';\nexport const UGLY = 'ugly';\n","import React from 'react';\nimport styled from 'styled-components';\nimport Icon from 'Common/components/Icon';\n\nconst StyledIcon = styled(Icon)`\n display: inline-block;\n padding-left: 4px;\n cursor: pointer;\n\n color: ${({theme}) => theme.colors.palette.grey.ash};\n`;\n\nexport default function TrendNotAvailableIcon(props) {\n return (\n \n );\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { formatNumber } from 'Common/util/format.js';\nimport { limitTrendPercent } from 'Common/data/trend';\nimport { Body5, Body6 } from 'Common/components/typography';\nimport * as TrendGoodness from './TrendGoodness';\nimport TrendNotAvailableIcon from './TrendNotAvailableIcon';\nimport useTranslation from 'Common/hooks/useTranslation';\nimport useLocale from 'Common/hooks/useLocale';\n\n\nconst TrendIndicator = styled.div`\n color: ${props => props.theme.colors.trend[props.trendGoodness]};\n display: inline-block;\n padding-right: 0.3em;\n\n &::before {\n font-family: 'FontAwesome';\n content: '\\f111';\n }\n`;\n\nconst TrendValue = styled.span`\n display: inline-block;\n`;\n\nfunction TrendDot({\n trendGoodness,\n value,\n notAvailable,\n condensed,\n isPrint,\n noColor,\n showTrendLabel,\n showPositiveTrendQualifier,\n ...otherProps\n}) {\n const naSymbol = useTranslation('na_symbol');\n const nullMetricLiteral = useTranslation('null_metric_literal');\n const trendLiteral = useTranslation('trend_literal');\n const locale = useLocale();\n \n let trendValue = naSymbol;\n let qualifier = '';\n\n if (notAvailable) {\n trendValue = (\n \n {naSymbol}\n \n \n );\n }\n else if (typeof value === 'number') {\n const trendConfig = limitTrendPercent(value);\n\n trendValue = formatNumber(trendConfig.value, { type: 'percent', places: 1, locale: locale || 'en' });\n\n const hasPositiveTrendQualifier = (value > 0 && showPositiveTrendQualifier);\n qualifier = trendConfig.qualifier || (hasPositiveTrendQualifier ? '+' : '');\n }\n else if (!value) {\n trendValue = nullMetricLiteral;\n }\n\n const TrendContainer = (condensed || isPrint) ? Body6 : Body5;\n \n const trendLabel = showTrendLabel ? `${trendLiteral} ` : '';\n\n const trendGoodnessColor = noColor ? \"none\" : trendGoodness;\n \n return (\n \n \n {trendLabel}{qualifier}{trendValue}\n  \n \n \n \n );\n}\n\nTrendDot.propTypes = {\n trendGoodness: PropTypes.oneOf(Object.values(TrendGoodness)),\n value: PropTypes.number,\n notAvailable: PropTypes.bool,\n condensed: PropTypes.bool,\n isPrint: PropTypes.bool,\n noColor: PropTypes.bool,\n showTrendLabel: PropTypes.bool,\n showPositiveTrendQualifier: PropTypes.bool,\n};\n\nTrendDot.defaultProps = {\n trendGoodness: 'none',\n notAvailable: false,\n condensed: false,\n isPrint: false,\n noColor: false,\n showTrendLabel: false,\n showPositiveTrendQualifier: false,\n};\n\nexport default React.memo(TrendDot);\n","import TrendDot from './TrendDot.js';\n\nexport default TrendDot;\n","import TrendDot from 'Common/components/TrendDot';\nimport styled from 'styled-components';\n\n// Allow it to be styled by it's parent\nexport default styled(TrendDot)`\n color: ${props => props.theme.colors.darkText.mediumEmphasis};\n`;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport KPIData from './internal/KPIData';\nimport KPITrendDot from './internal/KPITrendDot';\nimport * as TrendGoodness from 'Common/components/TrendDot/TrendGoodness';\n\n\nconst Container = styled.div`\n height: 65px;\n\n padding-top: 0;\n padding-bottom: ${({theme}) => theme.layout.widget.verticalPadding };\n padding-left: ${({theme}) => theme.layout.widget.horizontalPadding };\n padding-right: ${({theme}) => theme.layout.widget.horizontalPadding };\n\n ${({ condensed }) => condensed && `\n padding: 0px 12px;\n height: 55px;\n `}\n\n ${({ isPrint }) => isPrint && `\n padding: 0 8px 6px 8px;\n `}\n`;\n\nexport default function KPIContent({\n condensed,\n noColor,\n kpiData,\n sparkLineData,\n trendGoodness,\n trendValue,\n isPrint,\n hideTrend,\n}) {\n const finalTrendGoodness =\n noColor ? TrendGoodness.NONE : trendGoodness;\n\n return (\n \n \n )}\n />\n \n );\n}\n\nKPIContent.propTypes = {\n condensed: PropTypes.bool,\n noColor: PropTypes.bool.isRequired,\n kpiData: PropTypes.node.isRequired,\n sparkLineData: PropTypes.array.isRequired,\n trendGoodness: PropTypes.string.isRequired,\n trendValue: PropTypes.number,\n isPrint: PropTypes.bool,\n hideTrend: PropTypes.bool.isRequired,\n};\n\nKPIContent.defaultProps = {\n condensed: false,\n isPrint: false,\n};\n","import ParamTypes, { paramTest } from 'Common/util/ParamTypes/ParamTypes';\nimport { ProductionDay, getCategoryBounds } from 'Common/data/date/ProductionDay';\nimport { daysBetween } from 'Common/util/language/date';\nimport has from 'lodash/has';\n\n// shift/team/part/job/shift_hour/hour/week/month/quarter/year/production_day/time\n// in the case of time start and end our actual production day numbers\nconst basicTimeRangeParamType = ParamTypes.shape({\n units: ParamTypes.oneOf(['shift', 'team', 'part', 'job', 'shift_hour', 'hour', 'week',\n 'month', 'quarter', 'year', 'production_day', 'time'\n ]).isRequired,\n start: ParamTypes.number.isRequired,\n end: ParamTypes.number.isRequired,\n sameDimensionValue: ParamTypes.string,\n // though units will always be production_day this stipulates if it is\n // actually calendar_day (when dayBasis === 'calendar')\n dayBasis: ParamTypes.string,\n});\n\n// ordinal shift\nconst ordinalShiftRangeParamType = ParamTypes.shape({\n units: ParamTypes.exactly('ordinal_shift').isRequired,\n productionDayOffset: ParamTypes.number.isRequired,\n ordinalShiftValue: ParamTypes.string.isRequired,\n sameDimensionValue: ParamTypes.string,\n});\n\n// all time\nconst allTimeRangeParamType = ParamTypes.shape({\n units: ParamTypes.exactly('all').isRequired,\n});\n\nconst timeRangeParamType = ParamTypes.oneOfType([\n basicTimeRangeParamType,\n ordinalShiftRangeParamType,\n allTimeRangeParamType,\n]);\n\nconst productionDayBasedUnits = [\n 'production_day',\n 'week',\n 'month',\n 'quarter',\n 'year',\n];\n\nexport function getTimeRangeObjectPropType() {\n return function(props, propName, componentName) {\n const isValid = paramTest(props[propName], timeRangeParamType, 'argument', { throwError: false, noLog: true });\n return isValid\n ? null\n : new Error(`Invalid prop '${propName} supplied to '${componentName}' was an invalid timerange`);\n };\n}\n\nexport default class TimeRange {\n static timeRangeParamType = timeRangeParamType;\n\n static includesNow (timeRange, now) {\n if (timeRange.units === 'time') {\n return now >= timeRange.start && now <= timeRange.end;\n }\n else if (timeRange.units === 'ordinal_shift') {\n return false;\n }\n else if (timeRange.units == 'all') {\n return true;\n }\n // If we're using other units, and the range includes the current\n // unit, then this TimeRange certainly includes right now\n else if (timeRange.end === 0) {\n return true;\n }\n \n return false;\n }\n\n static isCalendarDayBasis (timeRange) {\n return timeRange.dayBasis === 'calendar';\n }\n \n /**\n * Is this time range unit based on production days?\n *\n * @param {String} timeRangeUnit\n */\n static isProductionDayBasedUnit(timeRangeUnit) {\n return productionDayBasedUnits.indexOf(timeRangeUnit) !== -1;\n }\n \n /**\n * Return a time range start and end in absolute terms using today and the time range start\n * and end offsets for the given units. Only works for production day based units.\n *\n * @param {Object} timeRange Object representing the time range with units, start, and end.\n * @param {Any} today The ProductionDay, CalendarDay, production day number, or date representing today.\n *\n * @returns {Object} With start and end as absolute production day numbers.\n */\n static computeProductionDayRangeFromToday(timeRange, today) {\n const { units, start, end } = timeRange;\n \n let startDate, endDate;\n \n if (units === 'time') {\n // already in terms of production day numbers\n startDate = start;\n endDate = end;\n }\n else if (TimeRange.isProductionDayBasedUnit(units)) {\n const productionDay = new ProductionDay(today);\n \n const unitsToUse = (units === 'production_day' ? 'days' : (units + 's'));\n startDate = productionDay.add(unitsToUse, start);\n endDate = productionDay.add(unitsToUse, end);\n \n // Now, startDate and endDate are within the desired week/month/whatever.\n // Get the bounds for each.\n startDate = getCategoryBounds(startDate, units)[0];\n endDate = getCategoryBounds(endDate, units)[1];\n }\n else {\n // This must be category based. We can't form an accurate range for this,\n // and therefor don't support it.\n //\n throw new Error(\n `computeProductionDayRangeFromToday does not support time range units \"${units}\"`\n );\n }\n \n return {\n start: startDate,\n end: endDate\n };\n }\n\n /**\n * Get the estimated number of days in a time range.\n *\n * @param {Object} timeRange The time range.\n *\n * @return {Number} An estimated number of days in range. Will be Infinity\n * if the time range is \"all time\". Will be zero if the units are not\n * time based (e.g., part, shift) or a unit is expected to be less than\n * a day (e.g., shift_hour).\n */\n static getEstimatedNumberOfDays(timeRange) {\n const { units, start, end } = timeRange;\n\n if (units === 'all') {\n return Infinity;\n }\n else if (units === 'time') {\n // 'time' is in terms of production day numbers.\n return Math.abs(end - start);\n }\n else if (units === 'production_day') {\n return Math.abs(end - start);\n }\n else if (units === 'week') {\n return 7;\n }\n else if (units === 'month') {\n return 365 / 12; // Avg number of days in a month.\n }\n else if (units === 'quarter') {\n return 365 / 4; // Avg number of days in a quarter.\n }\n else if (units === 'year') {\n return 365;\n }\n else {\n // Default\n return 0;\n }\n }\n\n /**\n * A simple utility function for determining if a request should repeat.\n *\n * @param {object} timeRange\n * @returns {boolean} True if a repeating request is recommended.\n */\n static shouldRepeatRequestWithTimeRange(timeRange) {\n let rangeContainsOpenInterval = false;\n\n if (timeRange.units !== 'all'\n && timeRange.units !== 'ordinal_shift'\n && timeRange.units !== 'time'\n ) {\n // We're in the future, therefore not in the open interval\n const inTheFuture = timeRange.start > 0;\n\n // Start must be less than or equal to 0, so if end is 0 or greater\n // we must contain the open interval. Otherwise we must not.\n //\n rangeContainsOpenInterval = !inTheFuture && timeRange.end >= 0;\n }\n\n return (\n rangeContainsOpenInterval &&\n TimeRange.getEstimatedNumberOfDays(timeRange) <= 7\n );\n }\n\n /**\n * Given a time range object, generate text describing the units of the time range.\n *\n * @param {Object} timeRange Object representing the time range with units, start, and end.\n * @param {Function} translator Function for translating text keys for the user output.\n *\n * @returns {String} Some text representing the time range units.\n */\n static getFullUnitText(timeRange, translator) {\n let units = timeRange.units === 'ordinal_shift' ? 'shift' : timeRange.units;\n let dayCount;\n let startAsDate;\n let endAsDate;\n let fullUnitText;\n\n // Anything represented in a number of days gets special treatment. Right now, that's\n // days and time.\n //\n if (units === 'production_day') {\n dayCount = timeRange.end - timeRange.start + 1;\n }\n else if (units === 'time') {\n units = 'production_day';\n startAsDate = new ProductionDay(timeRange.start).toDate();\n endAsDate = new ProductionDay(timeRange.end).toDate();\n dayCount = daysBetween(startAsDate, endAsDate) + 1;\n }\n\n // If we have a dayCount that's greater than 1, express ourself from the translation table.\n // Otherwise, we're just the singular of the unit name (since we changed `time` to `day`\n // above)\n //\n fullUnitText = dayCount > 1\n ? translator('timerange.n_days', { x: dayCount })\n : translator(`time_range_selector_dropdown.${units}.singular`);\n\n return fullUnitText;\n }\n /*\n * Is the `current` identifier available for a request made with this time\n * range?\n *\n * @param {Object} timeRange Object representing the time range with units, start, and end.\n * @returns {Boolean}\n */\n static isCurrentIdentifierAvailable(timeRange) {\n // current data is only for special units\n // this shift, this shift_hour, this part\n //\n const specialUnits = {\n shift: true,\n part: true,\n shift_hour: true\n };\n\n const isThis = (!timeRange.sameDimensionValue) &&\n (timeRange.end === 0) &&\n (timeRange.start === 0);\n\n return isThis && has(specialUnits, timeRange.units);\n }\n\n /**\n * Get column name for the event id based on the current units and if they are calendar day based\n *\n * @param {Object} timeRange\n *\n * @returns {String} event_id name or empty string if timerange had no event id name\n */\n static getUnitsEventIdName(timeRange) {\n const units = timeRange.units;\n const isCalendarDayBased = TimeRange.isCalendarDayBasis(timeRange);\n let rv = '';\n if (units === 'time') {\n if (isCalendarDayBased) {\n rv = 'calendar_day_event_id';\n }\n else {\n rv = 'production_day_event_id';\n }\n }\n else if (units !== 'all') {\n rv = `${units}_event_id`;\n }\n return rv;\n }\n}\n","import ParamTypes from 'Common/util/ParamTypes';\n\nconst fieldParamType = ParamTypes.shape({\n name: ParamTypes.string.isRequired,\n displayKey: ParamTypes.string,\n channel: ParamTypes.string,\n alternate_display: ParamTypes.string,\n type: ParamTypes.oneOf([\n 'string',\n 'integer',\n 'double',\n 'time_span',\n 'date_time',\n 'id',\n 'id_array',\n 'percent',\n 'other',\n 'custom',\n ]),\n});\n\nexport default fieldParamType;\n","import React from 'react';\n\nconst DashboardCacheContext = React.createContext(null);\nDashboardCacheContext.displayName = 'DashboardCacheContext';\n\nexport default DashboardCacheContext;\n","import isEqual from 'lodash/isEqual';\nimport uniqueId from 'Common/util/uniqueId';\n\nclass AsyncValueCacheEntry {\n constructor({\n args,\n load,\n getTime,\n }) {\n this._getTime = getTime;\n\n this._loadFunction = load;\n this._loadArgs = args;\n this._loadAbortController = new AbortController();\n this._loadPromise = null;\n this._loadComplete = false;\n this._loadCompleteTime = null;\n\n this._getters = {};\n }\n\n getArgs() {\n return this._loadArgs;\n }\n\n isComplete() {\n return this._loadComplete;\n }\n\n isAborted() {\n return this._loadAbortController.signal.aborted;\n }\n\n getAge() {\n if (this._loadComplete) {\n return this._getTime() - this._loadCompleteTime;\n }\n else {\n return 0;\n }\n }\n\n get({ abortSignal }) {\n // If the getter has already aborted OR the load is already aborted,\n // do nothing.\n if (abortSignal.aborted || this._loadAbortController.signal.aborted) {\n return Promise.resolve();\n }\n\n const getter = {\n id: uniqueId(),\n abortSignal: abortSignal,\n resolve: null,\n reject: null,\n promise: null,\n };\n\n getter.promise = new Promise((resolve, reject) => {\n getter.resolve = resolve;\n getter.reject = reject;\n });\n\n this._getters[getter.id] = getter;\n\n /* eslint-disable no-use-before-define */\n const cleanupGetter = () => {\n // Delete the entry from active getters\n delete this._getters[getter.id];\n // Remove listeners\n getter.abortSignal.removeEventListener('abort', handleGetAbort);\n };\n /* eslint-enable no-use-before-define */\n\n const handleGetAbort = () => {\n cleanupGetter();\n // Immediately resolve the promise\n getter.resolve();\n // If this getter is aborted while the load is pending and there's\n // no getters left to get the response, abort the load itself.\n if (!this._loadComplete && Object.keys(this._getters).length === 0) {\n this._loadAbortController.abort();\n }\n };\n\n getter.abortSignal.addEventListener('abort', handleGetAbort);\n\n this._load()\n .then((response) => {\n cleanupGetter();\n if (!getter.abortSignal.aborted) {\n getter.resolve(response);\n }\n })\n .catch((error) => {\n cleanupGetter();\n if (!getter.abortSignal.aborted) {\n getter.reject(error);\n }\n });\n\n return getter.promise;\n }\n\n _load() {\n // Only ever create one load promise for this instance.\n if (!this._loadPromise) {\n const abortSignal = this._loadAbortController.signal;\n\n this._loadPromise =\n this._loadFunction(\n { abortSignal: abortSignal },\n ...this._loadArgs,\n )\n .then((response) => {\n this._loadComplete = true;\n this._loadCompleteTime = this._getTime();\n\n if (abortSignal.aborted) {\n return Promise.resolve();\n }\n else {\n return Promise.resolve(response);\n }\n })\n .catch((error) => {\n this._loadComplete = true;\n this._loadCompleteTime = this._getTime();\n\n if (abortSignal.aborted) {\n return Promise.resolve();\n }\n else {\n return Promise.reject(error);\n }\n });\n }\n\n return this._loadPromise;\n }\n}\n\n/**\n * A class for caching a single async value.\n */\nexport default class AsyncValueCache {\n constructor(opts = {}) {\n const {\n getTime = () => Date.now()\n } = opts;\n\n this._getTime = getTime;\n this._lastCompleted = null;\n this._pending = null;\n }\n\n /**\n * Get the value from the cache. If the value has not been loaded yet, the\n * provided load function will be called to get the value. If it has already\n * been loaded (or is pending) with the same args, then the cached value is\n * returned.\n *\n * @param {object} cacheOptions\n * @param {AbortSignal} [cacheOptions.abortSignal] An abort signal\n * @param {Number} [cacheOptions.maxAge = Infinity] The oldest a cached value\n * can be before it will be reloaded.\n * @param {Function} cacheOptions.load A function that loads the value, if\n * it is not cached.\n * @param {...any} args Args that are deep compared to determine if the\n * value needs to be reloaded. They are also passed to the `load` function. \n * @returns {Promise}\n */\n async get(cacheOptions, ...args) {\n let {\n abortSignal,\n maxAge = Infinity,\n load,\n } = cacheOptions;\n\n // Make an abort signal if one isn't provided.\n if (!abortSignal) {\n abortSignal = (new AbortController()).signal;\n }\n\n // Some bookeeping here:\n // 1. If there's a pending get that has since been aborted, clear it\n // out; we don't want it anymore.\n // 2. If there's a pending get that has since completed, move it into\n // the completed slot.\n if (\n this._pending &&\n (this._pending.isAborted() || this._pending.isComplete())\n ) {\n // Only keep the latest result if it wasn't aborted.\n if (!this._pending.isAborted()) {\n this._lastCompleted = this._pending;\n }\n\n this._pending = null;\n }\n\n // If there is a last get entry, it's not too old, and its arguments\n // match, use it.\n if (\n this._lastCompleted &&\n this._lastCompleted.getAge() <= maxAge &&\n isEqual(args, this._lastCompleted.getArgs())\n ) {\n return this._lastCompleted.get({ abortSignal });\n }\n\n // If there's a pending get with matching arguments, use it.\n if (\n this._pending &&\n isEqual(args, this._pending.getArgs())\n ) {\n return this._pending.get({ abortSignal });\n }\n\n // Cache miss. Create a new entry and get from it.\n\n this._pending = new AsyncValueCacheEntry({\n args: args,\n load: load,\n getTime: this._getTime,\n });\n\n return this._pending.get({ abortSignal });\n }\n}\n","import AsyncValueCache from './AsyncValueCache';\n\nconst validateWidgetId = (widgetId) => {\n if (typeof widgetId === 'undefined') {\n throw new Error('widgetId is required');\n }\n else if (typeof widgetId !== 'string') {\n throw new Error('widgetId must be a string');\n }\n};\n\nconst validateCacheId = (cacheId) => {\n if (typeof cacheId === 'undefined') {\n throw new Error('cacheId is required');\n }\n else if (typeof cacheId !== 'string') {\n throw new Error('cacheId must be a string');\n }\n};\n\n/**\n * A class to manage many AsyncValueCaches for a dashboard. Each cache is\n * accessed by a combination of widget ID and cache ID strings.\n */\nexport default class DashboardCache {\n constructor() {\n this._widgetCaches = {};\n }\n\n /**\n * Get a value cache for a widget by widget ID and cache ID. If one does\n * not exist yet, it will be created.\n *\n * @param {String} widgetId \n * @param {String} cacheId \n * @returns {AsyncValueCache}\n */\n getWidgetValueCache(widgetId, cacheId) {\n validateWidgetId(widgetId);\n validateCacheId(cacheId);\n\n if (!this._widgetCaches[widgetId]) {\n this._widgetCaches[widgetId] = {};\n }\n\n if (!this._widgetCaches[widgetId][cacheId]) {\n this._widgetCaches[widgetId][cacheId] = new AsyncValueCache();\n }\n\n return this._widgetCaches[widgetId][cacheId];\n }\n\n /**\n * Clear a value cache for a widget by widget ID and cache ID.\n *\n * @param {String} widgetId\n * @param {String} cacheId\n */\n clearWidgetValueCache(widgetId, cacheId) {\n validateWidgetId(widgetId);\n validateCacheId(cacheId);\n\n if (!this._widgetCaches[widgetId]) {\n return; // Nothing to clear\n }\n\n if (!this._widgetCaches[widgetId][cacheId]) {\n return; // Nothing to clear\n }\n\n delete this._widgetCaches[widgetId][cacheId];\n }\n\n /**\n * Clear all the value caches for the specified widget.\n *\n * @param {String} widgetId\n */\n clearAllValueCachesForWidget(widgetId) {\n validateWidgetId(widgetId);\n\n if (!this._widgetCaches[widgetId]) {\n return; // Nothing to clear\n }\n\n // Delete all value caches for the widget.\n delete this._widgetCaches[widgetId];\n }\n}\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport DashboardCacheContext from './internal/InternalDashboardCacheContext';\nimport DashboardCache from './internal/DashboardCache';\n\n/**\n * A React context provider to enable use of widget data caches. Should be\n * placed at the top level of a dashboard.\n *\n * The cache can be accessed using `useDashboardCache`.\n */\nexport default function DashboardCacheProvider({\n children,\n}) {\n const value = useMemo(() => {\n return new DashboardCache();\n }, []);\n\n return (\n \n {children}\n \n );\n}\n\nDashboardCacheProvider.propTypes = {\n children: PropTypes.node,\n};\n","import React from 'react';\n\nexport const WidgetCacheContext = React.createContext(null);\nWidgetCacheContext.displayName = 'WidgetCacheContext';\n\nexport default WidgetCacheContext;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport WidgetCacheContext from './internal/InternalWidgetCacheContext';\nimport useDashboardCache from './useDashboardCache';\n\n/**\n * A React context provider that enables the use of `useWidgetCache`.\n *\n * This provider requires that `DashboardCacheProvider` exist higher in the\n * React tree.\n */\nexport default function WidgetCacheProvider({ widgetId, children }) {\n const dashboardCache = useDashboardCache();\n\n const value = useMemo(() => {\n return {\n getValueCache: function(cacheId) {\n return dashboardCache.getWidgetValueCache(widgetId, cacheId);\n },\n clearValueCache: function(cacheId) {\n return dashboardCache.clearWidgetValueCache(widgetId, cacheId);\n },\n };\n }, [ dashboardCache, widgetId ]);\n\n return (\n \n {children}\n \n );\n}\n\nWidgetCacheProvider.propTypes = {\n widgetId: PropTypes.string.isRequired,\n children: PropTypes.node,\n};\n","import { useContext } from 'react';\nimport DashboardCacheContext from './internal/InternalDashboardCacheContext';\n\n/**\n * A React hook to get the dashboard cache from context. Requires\n * `DashboardCacheProvider` to be present in the React tree.\n *\n * @returns {DashboardCache}\n */\nexport default function useDashboardCache() {\n const dashboardCache = useContext(DashboardCacheContext);\n\n // The value of `DashboardCacheContext` defaults to null, which means there\n // is no `DashboardCacheContext` higher up in the React tree.\n if (dashboardCache === null) {\n throw new Error('useDashboardCache requires DashboardCacheProvider to be in the React tree.');\n }\n\n return dashboardCache;\n}\n","import { useContext, useMemo, useRef } from 'react';\nimport WidgetCacheContext from './internal/InternalWidgetCacheContext';\n\n/**\n * A React hook to get a cache for a widget. Requires `WidgetCacheProvider` to\n * be present higher up in the React tree.\n *\n * @param {object} options\n * @param {string} options.cacheId A name for the cache.\n * @param {function} options.load An async function to load the value.\n * `load` is called with arguments ({ abortSignal: AbortSignal }, ...args: any[])\n * where `args` are forwarded from the call to `cache.get(...)`\n * @returns {object} A widget cache object with the following methods:\n * get( cacheOptions: object, ...args: any[] ).\n * @see AsyncValueCache for valid cacheOptions\n */\nexport default function useWidgetCache({\n cacheId,\n load,\n}) {\n const loadRef = useRef(null);\n loadRef.current = load;\n\n const widgetCache = useContext(WidgetCacheContext);\n\n if (widgetCache === null) {\n throw new Error('useWidgetCache requires WidgetCacheProvider to be in the React tree.');\n }\n\n const widgetValueCache = useMemo(() => {\n return widgetCache.getValueCache(cacheId);\n }, [ widgetCache, cacheId ]);\n\n return useMemo(() => {\n return {\n get: (cacheOptions, ...args) => {\n return widgetValueCache.get(\n {\n ...(cacheOptions || {}),\n load: loadRef.current,\n },\n ...args,\n );\n },\n };\n }, [ widgetValueCache ]);\n}\n","import { useEffect } from 'react';\n\nconst DEFAULT_UPDATE_INTERVAL_SECONDS = 10;\n\n/**\n * Determine the data update interval time.\n * @param {String|Number} updateTimeInterval is either the string default or the number of seconds\n * @param {*} defaultInterval default number of seconds\n * @returns intervalTime in milliseconds\n */\nexport const getDataUpdateInterval = (updateTimeInterval, defaultInterval = DEFAULT_UPDATE_INTERVAL_SECONDS) => {\n let rv = null;\n\n // updateTimeInterval could be zero, which is falsey\n if (updateTimeInterval) {\n if (typeof updateTimeInterval === 'string') {\n if (updateTimeInterval === 'default') {\n rv = defaultInterval * 1e3;\n }\n else {\n throw new Error('Invalid time interval type: ' + updateTimeInterval);\n }\n }\n else {\n if (Number.isFinite(updateTimeInterval) && updateTimeInterval > 0) {\n // Convert the update time interval to milliseconds\n rv = updateTimeInterval * 1e3;\n }\n }\n }\n\n return rv;\n};\n\n/**\n * Get a good max age (i.e., expiration) for any cache that might be attached to\n * a request sent through `useRepeatingRequest`.\n *\n * Generally, this value will be slightly less than the `updateInterval` so that\n * when the request is resent the cached value will have expired.\n *\n * @param {boolean} disableRepeat\n * @param {number} updateInterval In milliseconds.\n * @returns {number}\n */\nexport function getMaxAgeForRepeatingRequest(disableRepeat, updateInterval) {\n let maxAge;\n\n if (disableRepeat) {\n // We want to always use cached values when the request is not\n // repeating.\n maxAge = Infinity;\n }\n else {\n // If there's an update interval let the value be\n // cached for just less than the interval.\n maxAge = Math.max(0, updateInterval - 100);\n }\n\n return maxAge;\n}\n\n/**\n * A promise that resolves after a certain time, with support for aborting using\n * an AbortSignal.\n *\n * If aborted, the promise will resolve.\n *\n * @param {Number} delayMs \n * @param {AbortSignal} abortSignal \n * @returns {Promise}\n */\n async function abortableAsyncDelay(delayMs, abortSignal) {\n if (abortSignal.aborted) {\n // Already aborted before we've even started\n return Promise.resolve();\n }\n\n return new Promise((resolve) => {\n let timeout = null;\n\n /* eslint-disable no-use-before-define */\n const cleanup = () => {\n // Clear the current timeout, if needed\n if (timeout !== null) {\n clearTimeout(timeout);\n timeout = null;\n }\n // Remove from listeners\n abortSignal.removeEventListener('abort', handleAbort);\n };\n /* eslint-enable no-use-before-define */\n\n const handleAbort = () => {\n // Cleanup and resolve the promise\n cleanup();\n resolve();\n };\n\n abortSignal.addEventListener('abort', handleAbort);\n\n // Setup the timout to resolve the promise\n timeout = setTimeout(() => {\n // Finished, timer does not need to be cleared\n timeout = null;\n // Cleanup and resolve the promise\n cleanup();\n resolve();\n }, delayMs);\n });\n}\n\n/**\n * A hook to periodically send a request at a specified interval.\n *\n * IMPORTANT: Be sure to memoize (i.e., useCallback) the `sendRequest` function\n * because the loop will be restarted (and any pending requests aborted)\n * each time the reference to the function changes.\n *\n * @param {Object} opts\n * @param {function({ isInitialRequest: boolean, abortSignal: AbortSignal }): Promise} opts.sendRequest\n * Async function to send a request. `isInitialRequest` will be true only\n * for the first time the request is sent.\n * @param {number} opts.delayMs How often (in milliseconds) should the request repeat?\n * @param {boolean} opts.disableRepeat If true, opts.delayMs is ignored and the\n * request will not repeat.\n */\nexport default function useRepeatingRequest({\n sendRequest,\n delayMs,\n disableRepeat,\n}) {\n // Validate the arguments, because bad values in here (especially a too\n // short of a delay) can result in a flurry of requests, possibly causing\n // someone's computer to explode.\n //\n if (typeof sendRequest !== 'function') {\n throw new Error(`useRepeatingRequest: sendRequest is required and must be a function.`);\n }\n\n if (!disableRepeat) {\n if (!Number.isFinite(delayMs)) {\n throw new Error(`useRepeatingRequest: delayMs must be a finite number.`);\n }\n else if (delayMs < 3e3) {\n throw new Error(`useRepeatingRequest: delayMs must be at least 3000.`);\n }\n }\n\n useEffect(() => {\n const abortController = new AbortController();\n const abortSignal = abortController.signal;\n let isInitialRequest = true;\n let isRunning = false;\n\n async function runLoop() {\n isRunning = true;\n\n // Keep this loop going until the abort signal indicates that it\n // should stop.\n while (!abortSignal.aborted) {\n try {\n await sendRequest({\n isInitialRequest,\n abortSignal,\n });\n }\n catch (error) {\n console.error(error);\n }\n\n // If this request should be sent only once, break after the\n // first time the request is sent.\n if (disableRepeat) {\n break;\n }\n\n isInitialRequest = false;\n\n if (abortSignal.aborted) {\n return;\n }\n\n await abortableAsyncDelay(delayMs, abortSignal);\n }\n\n isRunning = false;\n }\n\n runLoop();\n\n // Cleanup\n return () => {\n if (isRunning) {\n abortController.abort();\n }\n };\n }, [ sendRequest, delayMs, disableRepeat ]);\n}\n","import { useCallback, useMemo, useState } from 'react';\nimport * as RequestStatus from 'Common/data/RequestStatus';\nimport isPlainObject from 'lodash/isPlainObject';\n\n/**\n * Check the response of the request and let the developer know if they might\n * have messed something up.\n *\n * Note: This function only logs; it does not throw. It is intended to be used\n * only as a help to developers, not as legitimate validation.\n *\n * @param {*} result\n */\nfunction checkRequestResult(result) {\n const codingMistakeMsg = 'This indicates a possible mistake in the request function.';\n\n if (!isPlainObject(result)) {\n console.error(\n `useRequestWithStatus: Request returned something that isn't a`\n + ` plain object.`\n + ` ${codingMistakeMsg}`\n );\n }\n else if (result?.error && result?.response) {\n // Let the developer know they might have messed something up.\n console.error(\n `useRequestWithStatus: Request returned values for both`\n + ` \\`error\\` and \\`response\\` properties.`\n + ` Because \\`error\\` is truthy, this response is`\n + ` interpreted as a failure and \\`response\\` is ignored.`\n + ` ${codingMistakeMsg}`\n );\n }\n}\n\n/**\n * A hook for managing the state of an async request in a consistent format.\n *\n * @param {function({ abortSignal: AbortSignal }): Promise<{ error?: *, response?: * }>} sendFn\n * An async function that sends a request.\n * @returns {{\n * send: function({ abortSignal: AbortSignal }): Promise,\n * resend: function({ abortSignal: AbortSignal }): Promise,\n * requestState: {\n * status: RequestStatus,\n * error?: *,\n * response?: *,\n * },\n * }}\n */\nexport default function useRequestWithStatus(sendFn) {\n const [ requestState, setRequestState ] = useState({\n status: RequestStatus.IDLE,\n error: null,\n response: null,\n });\n\n /**\n * Internal function with common request sending logic.\n */\n const _sendInternal = useCallback(async ({ isInitialRequest, abortSignal }) => {\n try {\n // Set as pending before sending the request.\n if (isInitialRequest ) {\n setRequestState({\n status: RequestStatus.PENDING,\n error: null,\n response: null,\n });\n }\n\n const result = await sendFn({ abortSignal, isInitialRequest });\n\n if (abortSignal.aborted) {\n // Request was aborted, do nothing.\n return;\n }\n\n // Let the developer know if they might have messed something up.\n checkRequestResult(result);\n\n if (result?.error) {\n // Set the state to failed and include the error.\n setRequestState({\n status: RequestStatus.FAILURE,\n error: result?.error,\n response: null,\n });\n }\n else {\n // Set the state to success.\n setRequestState({\n status: RequestStatus.SUCCESS,\n error: null,\n response: result?.response,\n });\n }\n }\n catch (error) {\n console.error(error);\n console.error(\n 'useRequestWithStatus: The above error was caught when sending'\n + ' the request.'\n + ' Generally, these errors should be caught within the function'\n + ' that sends the request so it can do proper error handling.'\n );\n // Set the state to failed and include the error.\n setRequestState({\n status: RequestStatus.FAILURE,\n error: error?.message || error,\n response: null,\n });\n }\n }, [ sendFn, setRequestState ]);\n \n const send = useCallback(async ({ abortSignal }) => {\n return _sendInternal({\n isInitialRequest: true,\n abortSignal,\n });\n }, [ _sendInternal ]);\n\n const resend = useCallback(async ({ abortSignal }) => {\n return _sendInternal({\n isInitialRequest: false, // Don't reset the state when pending\n abortSignal,\n });\n }, [ _sendInternal ]);\n\n return useMemo(() => ({\n send,\n resend,\n requestState,\n }), [ send, resend, requestState]);\n}\n","import { useCallback } from 'react';\nimport useRepeatingRequest from './useRepeatingRequest';\nimport useRequestWithStatus from './useRequestWithStatus';\n\n/**\n * Like useRepeatingRequest, but returns the current status and state of the\n * request.\n *\n * IMPORTANT: Be sure to memoize (i.e., useCallback) the `sendRequest` function\n * because the loop will be restarted (and any pending requests aborted)\n * each time the reference to the function changes.\n *\n * @param {Object} opts\n * @param {function({ abortSignal: AbortSignal }): Promise<{ error?: *, response?: * }>} opts.sendRequest\n * Async function to send a request.\n * @param {number} opts.delayMs How often (in milliseconds) should the request repeat?\n * @param {boolean} opts.disableRepeat If true, opts.delayMs is ignored and the\n * request will not repeat.\n *\n * @returns {{\n * status: RequestStatus,\n * error?: *,\n * response?: *,\n * }}\n */\nexport default function useRepeatingRequestWithStatus({\n sendRequest,\n delayMs,\n disableRepeat,\n}) {\n const {\n send,\n resend,\n requestState,\n } = useRequestWithStatus(sendRequest);\n\n const internalSendRequest = useCallback(async ({ isInitialRequest, abortSignal }) => {\n if (isInitialRequest) {\n return send({ abortSignal });\n }\n else {\n return resend({ abortSignal });\n }\n }, [ send, resend ]);\n\n useRepeatingRequest({\n sendRequest: internalSendRequest,\n delayMs,\n disableRepeat,\n });\n\n return requestState;\n}\n","import { useCallback, useMemo } from 'react';\nimport ParamTypes from 'Common/util/ParamTypes';\nimport { paramTest } from 'Common/util/ParamTypes/ParamTypes';\nimport TimeRange from 'Common/types/TimeRange/TimeRange';\nimport fieldParamType from 'Common/types/stf/fieldParamType';\nimport Filters from 'Common/types/Filters/Filters';\nimport { useWidgetCache } from 'Common/components/Dashboard/DashboardCache';\nimport { getMaxAgeForRepeatingRequest } from 'Common/hooks/requests/useRepeatingRequest';\nimport { useTranslator } from 'Common/hooks/useTranslation';\nimport useRepeatingRequestWithStatus from 'Common/hooks/requests/useRepeatingRequestWithStatus';\n\nconst filtersParamType = ParamTypes.shape({\n slice_filter: ParamTypes.shape({\n combine_type: ParamTypes.oneOf(['and', 'or']),\n expressions: ParamTypes.arrayOf(Filters.sliceFilterExpressionParamType),\n }),\n group_filter: ParamTypes.shape({\n combine_type: ParamTypes.oneOf(['and', 'or']),\n expressions: ParamTypes.arrayOf(Filters.groupFilterExpressionParamType),\n }),\n});\n\nconst paramTypes = ParamTypes.shape({\n hierarchyNode: ParamTypes.string.isRequired,\n field: fieldParamType.isRequired,\n widgetFilters: filtersParamType,\n pageFilters: filtersParamType,\n timeRange: TimeRange.timeRangeParamType.isRequired,\n getKpiWidgetData: ParamTypes.func.isRequired,\n updateInterval: ParamTypes.number,\n});\n\nexport default function useKpiWidgetData(parameters) {\n paramTest(parameters, paramTypes, 'getKpiWidgetData');\n\n const {\n hierarchyNode,\n field,\n widgetFilters,\n pageFilters,\n timeRange,\n getKpiWidgetData,\n updateInterval,\n } = parameters;\n\n const translator = useTranslator();\n\n const disableRepeat = useMemo(() => {\n // Disable the repeat if there's no update interval or if the time\n // range is not suitable.\n return (\n !updateInterval ||\n !TimeRange.shouldRepeatRequestWithTimeRange(timeRange)\n );\n }, [ timeRange, updateInterval ]);\n\n // getting data\n const getKpiWidgetDataCache = useWidgetCache({\n cacheId: 'getKpiWidgetData',\n load: ({ abortSignal }, args) => {\n return getKpiWidgetData({\n ...args,\n abortSignal,\n });\n },\n });\n\n // A cached version of `getKpiWidgetData`\n const getKpiWidgetDataCached = useCallback((args) => {\n const { abortSignal, ...otherArgs } = args;\n const maxAge = getMaxAgeForRepeatingRequest(disableRepeat, updateInterval);\n\n return getKpiWidgetDataCache.get(\n {\n abortSignal,\n maxAge,\n },\n otherArgs\n );\n }, [ disableRepeat, getKpiWidgetDataCache, updateInterval ]);\n\n\n const requestData = useCallback(async ({ abortSignal }) => {\n try {\n return getKpiWidgetDataCached({\n asset: hierarchyNode,\n field: field,\n filters: Filters.mergeFilters(widgetFilters, pageFilters),\n timeRange,\n abortSignal,\n });\n }\n catch(err) {\n console.error(err);\n return { error: translator('error_literal') };\n }\n }, [field, hierarchyNode, pageFilters, timeRange, widgetFilters,\n getKpiWidgetDataCached, translator]);\n\n return useRepeatingRequestWithStatus({\n sendRequest: requestData,\n delayMs: updateInterval || 0,\n disableRepeat: disableRepeat,\n });\n}\n","import ParamTypes from 'Common/util/ParamTypes';\nimport fieldParamType from './fieldParamType';\n\nconst sortRule = ParamTypes.shape({\n column: ParamTypes.string,\n channel: ParamTypes.string,\n group: ParamTypes.string,\n isCategoriesAll: ParamTypes.bool,\n order: ParamTypes.oneOf([\n 'asc',\n 'desc'\n ]).isRequired,\n});\n\nconst fieldSetParamType = ParamTypes.oneOfType([\n ParamTypes.shape({\n default_channel: ParamTypes.string,\n grouped_fields: ParamTypes.arrayOf(\n ParamTypes.shape({\n alternate_display: ParamTypes.string,\n channel: ParamTypes.string.isRequired,\n name: ParamTypes.string.isRequired,\n }),\n ),\n fields: ParamTypes.arrayOf(\n ParamTypes.oneOfType([\n ParamTypes.string,\n fieldParamType,\n ]),\n ),\n metric_set: ParamTypes.string,\n sort: ParamTypes.oneOfType([\n ParamTypes.arrayOf(sortRule),\n sortRule\n ])\n }),\n ParamTypes.string,\n]);\n\nexport default fieldSetParamType;\n","import ParamTypes from 'Common/util/ParamTypes';\nimport Filters from 'Common/types/Filters/Filters';\nimport fieldSetParamType from './fieldSetParamType';\n\n/**\n * The configuration for the ExplorationPath\n */\nconst explorationPathParamType = ParamTypes.shape({\n asset_control: ParamTypes.shape({\n layout: ParamTypes.oneOf([\n 'hierarchy',\n 'list',\n ]),\n level: ParamTypes.oneOfType([\n ParamTypes.number,\n ParamTypes.string,\n ]),\n root: ParamTypes.string,\n }),\n field_set: fieldSetParamType,\n slice_filter: ParamTypes.shape({\n combine_type: ParamTypes.oneOf(['and', 'or']),\n expressions: ParamTypes.arrayOf(Filters.sliceFilterExpressionParamType),\n }),\n group_filter: ParamTypes.shape({\n combine_type: ParamTypes.oneOf(['and', 'or']),\n expressions: ParamTypes.arrayOf(Filters.groupFilterExpressionParamType),\n }),\n});\n\nexport default explorationPathParamType;\n","import { useEffect, useState } from 'react';\nimport ParamTypes from 'Common/util/ParamTypes';\nimport { paramTest } from 'Common/util/ParamTypes/ParamTypes';\n\nconst paramTypes = ParamTypes.shape({\n dataService: ParamTypes.shape({\n getHierarchyOptions: ParamTypes.func.isRequired,\n getAllFilterOptions: ParamTypes.func.isRequired,\n getAllMetricOptions: ParamTypes.func.isRequired,\n }).isRequired,\n});\n\nexport default function useKpiWidgetInitialization(parameters) {\n paramTest(parameters, paramTypes, 'useKpiWidgetInitialization');\n\n const { dataService } = parameters;\n\n const [ isInitialized, setIsInitialized ] = useState(false);\n const [ liveControlOptions, setLiveControlOptions ] = useState({\n hierarchyNodeOptions: null,\n metricOptions: null,\n filterOptions: null,\n });\n\n useEffect(() => {\n let aborted = false;\n\n async function run() {\n const [\n hierarchyNodeOptions,\n filterOptions,\n metricOptions,\n ] = await Promise.all([\n dataService.getHierarchyOptions(),\n dataService.getAllFilterOptions(),\n dataService.getAllMetricOptions(),\n ]);\n\n if (!aborted) {\n setLiveControlOptions({\n hierarchyNodeOptions,\n filterOptions,\n metricOptions\n });\n\n setIsInitialized(true);\n }\n }\n\n run();\n\n return () => {\n aborted = true;\n };\n }, [ dataService ]);\n\n return {\n isInitialized,\n liveControlOptions,\n };\n}\n","import { formatDate, formatNumber } from 'Common/util/format';\nimport { ProductionDay } from \"Common/data/date/ProductionDay\";\n\n/**\n * @typedef {Object} PrimaryDescription\n * @property {string} title Primary text of the primary description\n * @property {string} detail Secondary text of the primary description\n */\n\n/**\n *\n * Gets primary description for a dimension.\n *\n * @param {String} dimensionDetailsDisplayName\n * @param {Boolean} dimensionDetailsIsMixed\n * @param {Number} timeRangeStart\n * @param {Object} timeRangeSameDimensionValue\n * @param {String} timeRangeUnits\n * @param {Boolean} atEndOfData\n * @param {Function} translator\n *\n * @returns {PrimaryDescription}\n *\n */\nconst handleDimensions = ({\n dimensionDetailsDisplayName,\n dimensionDetailsIsMixed,\n timeRangeStart,\n timeRangeSameDimensionValue,\n timeRangeUnits,\n timeRangeProductionDayOffset,\n atEndOfData,\n translator,\n}) => {\n const formattedCount = formatNumber(-timeRangeStart);\n\n if (timeRangeSameDimensionValue && timeRangeUnits !== 'ordinal_shift') {\n const dimensionName = dimensionDetailsDisplayName;\n\n if (timeRangeStart == 0) {\n return {\n title: `${translator(`timerange.dimensions.most_recent`)}`,\n detail: `${translator(`timerange.dimensions.only`, {\n x: dimensionName,\n })}`,\n };\n }\n else if (atEndOfData) {\n return {\n title: `${translator(`timerange.dimensions.end`)}`,\n detail: `${translator(`timerange.dimensions.only`, {\n x: dimensionName,\n })}`,\n };\n }\n else {\n return {\n title: `${translator(`timerange.dimensions.n_back`, {\n x: formattedCount,\n })}`,\n detail: `${translator(`timerange.dimensions.only`, {\n x: dimensionName,\n })}`,\n };\n }\n }\n else if (timeRangeStart === 0) {\n const detail = dimensionDetailsIsMixed\n ? `${translator(`timerange.dimensions.${timeRangeUnits}.mixed`)}`\n : dimensionDetailsDisplayName\n ? `${dimensionDetailsDisplayName}`\n : '';\n return {\n title: translator(`timerange.dimensions.${timeRangeUnits}.this`),\n detail,\n };\n }\n else if (timeRangeStart === -1) {\n const detail = dimensionDetailsIsMixed\n ? `${translator(`timerange.dimensions.${timeRangeUnits}.mixed`)}`\n : dimensionDetailsDisplayName\n ? `${dimensionDetailsDisplayName}`\n : '';\n return {\n title: translator(`timerange.dimensions.${timeRangeUnits}.last`),\n detail,\n };\n }\n else {\n let title;\n\n let detail = dimensionDetailsIsMixed\n ? `${translator(`timerange.dimensions.${timeRangeUnits}.mixed`)}`\n : dimensionDetailsDisplayName\n ? `${dimensionDetailsDisplayName}`\n : '';\n\n if (timeRangeUnits === 'ordinal_shift') {\n title = timeRangeProductionDayOffset === 0\n ? translator(`timerange.times.production_day.current`)\n : timeRangeProductionDayOffset === -1\n ? translator(`timerange.times.production_day.previous`)\n : translator(`timerange.times.production_day.n_ago`, {\n x: formatNumber(-timeRangeProductionDayOffset),\n });\n\n if (timeRangeSameDimensionValue) {\n detail = translator(`timerange.dimensions.only`, {\n x: detail,\n });\n }\n }\n else {\n title = translator(`timerange.dimensions.${timeRangeUnits}.n_ago`, {\n x: formattedCount,\n });\n }\n\n return {\n title,\n detail,\n };\n }\n};\n\n/**\n *\n * Gets primary description for time.\n *\n * @param {String} dimensionDetailsDisplayName\n * @param {Boolean} dimensionDetailsIsMixed\n * @param {Number} timeRangeStart\n * @param {Number} timeRangeEnd\n * @param {String} timeRangeUnits\n * @param {Function} translator\n *\n * @returns {PrimaryDescription}\n *\n */\nconst handleTime = ({\n dimensionDetailsDisplayName,\n dimensionDetailsIsMixed,\n timeRangeStart,\n timeRangeEnd,\n timeRangeUnits,\n translator,\n}) => {\n const formattedCount = formatNumber(-timeRangeStart);\n\n if (timeRangeUnits === \"shift_hour\") {\n const detail = dimensionDetailsIsMixed\n ? `${translator(`timerange.times.${timeRangeUnits}.mixed`)}`\n : dimensionDetailsDisplayName\n ? `${dimensionDetailsDisplayName}`\n : '';\n if (timeRangeStart === 0) {\n return {\n title: translator(`timerange.times.shift_hour.this`),\n detail,\n };\n } else if (timeRangeStart === -1) {\n return {\n title: translator(`timerange.times.shift_hour.last`),\n detail,\n };\n } else {\n return {\n title: translator(`timerange.times.shift_hour.n_ago`, {\n x: formattedCount,\n }),\n detail,\n };\n }\n }\n else {\n\n const isSingleUnit = timeRangeStart === timeRangeEnd;\n\n if (isSingleUnit) {\n const detail = dimensionDetailsDisplayName ? `${dimensionDetailsDisplayName}` : \"\";\n if (timeRangeStart === 0) {\n return {\n title: `${translator(\n `timerange.times.${timeRangeUnits}.current`\n )}`,\n detail,\n };\n }\n else if (timeRangeStart === 1) {\n return {\n title: `${translator(\n `timerange.times.${timeRangeUnits}.future`\n )}`,\n detail,\n };\n }\n else if (timeRangeStart === -1) {\n return {\n title: `${translator(\n `timerange.times.${timeRangeUnits}.previous`\n )}`,\n detail,\n };\n }\n else if (timeRangeStart < -1) {\n return {\n title: `${translator(\n `timerange.times.${timeRangeUnits}.n_ago`,\n {\n x: formattedCount,\n }\n )}`,\n detail,\n };\n }\n }\n else if (timeRangeUnits === \"production_day\") {\n const translationKey =\n timeRangeEnd === 0\n ? `timerange.times.last_n_days_ago`\n : `timerange.times.n_days_ago`;\n return {\n title: `${translator(translationKey, {\n x: -(timeRangeStart - timeRangeEnd - 1),\n })}`,\n detail: \"\",\n };\n }\n }\n};\n\n/**\n *\n * Gets primary description for all time.\n * \n * @param {Function} translator\n *\n * @returns {PrimaryDescription}\n *\n */\nconst handleAllTime = (translator) => {\n return {\n title: translator(\"timerange.all_time\"),\n detail: \"\",\n };\n};\n\n/**\n *\n * Gets primary description for time range.\n *\n * @param {Number} timeRangeStart\n * @param {Number} timeRangeEnd\n * @param {String} locale\n * @param {Function} translator\n *\n * @returns {PrimaryDescription}\n *\n */\nconst handleTimeRange = (timeRangeStart, timeRangeEnd, locale, translator) => {\n const isSingleUnit = timeRangeStart === timeRangeEnd;\n const start = new ProductionDay(timeRangeStart);\n const end = new ProductionDay(timeRangeEnd);\n\n if (isSingleUnit) {\n return {\n title: formatDate(start, {\n selector: \"date\",\n formatLength: \"short\",\n locale\n }),\n detail: \"\",\n };\n }\n else {\n return {\n title: translator(\"timerange.times.date_range\", {\n x: formatDate(start, {\n selector: \"date\",\n formatLength: \"short\",\n locale\n }),\n y: formatDate(end, {\n selector: \"date\",\n formatLength: \"short\",\n locale\n }),\n }),\n detail: \"\",\n };\n }\n};\n\n/**\n *\n * Gets primary description\n *\n * @param {String} dimensionDetailsDisplayName\n * @param {Boolean} dimensionDetailsIsMixed\n * @param {Number} timeRangeStart\n * @param {Number} timeRangeEnd\n * @param {Object} timeRangeSameDimensionValue\n * @param {String} timeRangeUnits\n * @param {Boolean} atEndOfData\n * @param {String} locale\n * @param {Function} translator\n *\n * @returns {PrimaryDescription}\n *\n */\nconst getPrimaryDescription = ({\n dimensionDetailsDisplayName,\n dimensionDetailsIsMixed,\n timeRangeStart,\n timeRangeEnd,\n timeRangeSameDimensionValue,\n timeRangeUnits,\n timeRangeProductionDayOffset,\n atEndOfData,\n locale,\n translator,\n}) => {\n const supportedDimensions = [\"part\", \"shift\", \"ordinal_shift\"];\n const supportedTimes = [\n \"shift_hour\",\n \"production_day\",\n \"week\",\n \"month\",\n \"quarter\",\n \"year\",\n ];\n\n if (supportedDimensions.includes(timeRangeUnits)) {\n return handleDimensions({\n dimensionDetailsDisplayName,\n dimensionDetailsIsMixed,\n timeRangeStart,\n timeRangeSameDimensionValue,\n timeRangeUnits,\n timeRangeProductionDayOffset,\n atEndOfData,\n translator,\n });\n } else if (supportedTimes.includes(timeRangeUnits)) {\n return handleTime({\n dimensionDetailsDisplayName,\n dimensionDetailsIsMixed,\n timeRangeStart,\n timeRangeEnd,\n timeRangeUnits,\n translator,\n });\n } else if (timeRangeUnits === \"all\") {\n return handleAllTime(translator);\n } else if (timeRangeUnits === \"time\") {\n return handleTimeRange(timeRangeStart, timeRangeEnd, locale, translator);\n } else {\n throw `${timeRangeUnits} is not supported`;\n }\n};\n\nexport default getPrimaryDescription;\n","import { formatDate } from 'Common/util/format';\nimport { toJulianDay } from 'Common/util/language/date';\nimport formatDuration from 'Common/util/formatDuration';\nimport { ProductionDay } from \"Common/data/date/ProductionDay\";\nimport TimeRange from \"Common/types/TimeRange/TimeRange\";\nimport moment from \"moment-timezone\";\n\n/**\n * @typedef {Object} SecondaryDescription\n * @property {string} title Primary text of the secondary description\n *\n * @typedef {Object} Range\n * @property {Object} start\n * @property {String} start.error\n * @property {String} start.errorType\n * @property {OffsetDate} start.startTime\n * @property {Number} start.productionDayNumber\n * @property {Object} end\n * @property {String} end.error\n * @property {String} end.errorType\n * @property {OffsetDate} end.endTime\n * @property {Number} end.productionDayNumber\n * @property {Number} duration\n * \n */\n\n/**\n *\n * Gets the number of days between the start and end date.\n *\n * @param {Object} startDate\n * @param {Object} endDate\n *\n * @returns {number}\n *\n */\nconst getDaysBetween = (startDate, endDate) => {\n const julianStart = toJulianDay(startDate),\n julianEnd = toJulianDay(endDate);\n\n return julianEnd - julianStart;\n};\n\n/**\n *\n * Gets duration in number of days.\n *\n * @param {number} dayCount\n * @param {Function} translator\n *\n * @returns {string}\n *\n */\nconst getDayDuration = (dayCount, translator) => {\n return dayCount === 1\n ? translator(\"timerange.one_day\")\n : translator(\"timerange.n_days\", { x: dayCount });\n};\n\n/**\n *\n * Gets formatted start date.\n *\n * @param {Object} offset\n * @param {String} locale\n * @param {Function} translator\n *\n * @returns {SecondaryDescription}\n *\n */\nconst getFormattedStartDate = (offset, locale, translator) => {\n const today = new Date();\n const startOfWeekToday = moment(today).startOf(\"isoWeek\");\n const startOfWeekOffset = moment(offset).startOf(\"isoWeek\");\n const weeksBetween = startOfWeekToday.diff(startOfWeekOffset, \"week\");\n const daysBetween = getDaysBetween(offset, today);\n const dayOfWeek = [\n \"timerange.day_of_week.sunday\",\n \"timerange.day_of_week.monday\",\n \"timerange.day_of_week.tuesday\",\n \"timerange.day_of_week.wednesday\",\n \"timerange.day_of_week.thursday\",\n \"timerange.day_of_week.friday\",\n \"timerange.day_of_week.saturday\",\n ];\n\n if (daysBetween === -1) {\n return translator(\"timerange.day_of_week.tomorrow\");\n } else if (daysBetween === 0) {\n return translator(\"timerange.day_of_week.today\");\n } else if (daysBetween === 1) {\n return translator(\"timerange.day_of_week.yesterday\");\n } else if (weeksBetween === 0) {\n return translator(dayOfWeek[offset.getDay()]);\n } else if (weeksBetween === 1) {\n return translator(\"timerange.day_of_week.last_secondary\", {\n x: translator(dayOfWeek[offset.getDay()]),\n });\n } else {\n return formatDate(offset, {\n selector: \"date\",\n formatLength: \"long\",\n locale,\n });\n }\n};\n\n/**\n *\n * Gets secondary description for dimensions.\n *\n * @param {Range} range\n * @param {Number} timeRangeEnd\n * @param {Object} timeRangeSameDimensionValue\n * @param {String} locale\n * @param {Function} translator\n *\n * @returns {SecondaryDescription}\n *\n */\nconst handleDimensions = (range, timeRangeEnd, timeRangeSameDimensionValue, timeRangeUnits, locale, translator) => {\n if (range === undefined || range.start.errorType === \"nodata\" || !range.start.startTime) {\n return {\n title: translator(\"timerange.no_data\"),\n };\n }\n\n const offset = range.start.startTime.getOffsetDate();\n const startTime = formatDate(offset, { selector: \"time\", locale });\n const startDate = getFormattedStartDate(offset, locale, translator);\n let duration;\n let startIntervalLiteral = \"timerange.start_interval\";\n\n if (timeRangeEnd === 0 && !timeRangeSameDimensionValue) {\n duration = translator(\"timerange.open\");\n }\n else if ([\"ordinal_shift\", \"shift\"].includes(timeRangeUnits)) {\n duration = \"\";\n startIntervalLiteral = \"timerange.start_interval_no_duration\";\n }\n else {\n const numberOfDays = Math.floor(range.duration / (24 * 60 * 60));\n if (numberOfDays >= 1) {\n duration = getDayDuration(numberOfDays, translator);\n }\n else {\n duration = formatDuration(Number(range.duration).toFixed(4), {\n translator,\n pattern: 'h\"h\" mm\"m\"',\n });\n }\n }\n\n return {\n title: translator(startIntervalLiteral, {\n x: `${startDate} ${startTime}`,\n y: duration,\n }),\n };\n};\n\n/**\n *\n * Gets secondary description for time.\n *\n * @param {Range} range\n * @param {Number} timeRangeStart\n * @param {Number} timeRangeEnd\n * @param {Object} timeRangeSameDimensionValue\n * @param {String} timeRangeUnits\n * @param {ProductionDay} originDay\n * @param {String} locale\n * @param {Function} translator\n *\n * @returns {SecondaryDescription}\n *\n */\nconst handleTime = (range, timeRangeStart, timeRangeEnd, timeRangeSameDimensionValue, timeRangeUnits, originDay, locale, translator) => {\n\n if (timeRangeUnits === \"shift_hour\") {\n return handleDimensions(range, timeRangeEnd, timeRangeSameDimensionValue, timeRangeUnits, locale, translator);\n }\n else {\n let title;\n\n const hasNoData = range === undefined || range.start.errorType === 'nodata' || range.start.error;\n\n if (hasNoData || !originDay) {\n title = translator(\"timerange.no_data\");\n }\n else {\n // Get the production day range using the relative offset starts and\n // ends of the time range\n const productionDayRange = TimeRange.computeProductionDayRangeFromToday(\n {\n units: timeRangeUnits,\n start: timeRangeStart,\n end: timeRangeEnd,\n },\n originDay\n );\n\n // The start of the actual data in the time range\n const dataStart = range?.start.startTime?.getOffsetDate();\n\n let duration;\n\n if (timeRangeEnd === 0 && !timeRangeSameDimensionValue) {\n duration = translator(\"timerange.open\");\n }\n else {\n const dayCount = productionDayRange.end - productionDayRange.start + 1;\n duration = getDayDuration(dayCount, translator);\n }\n\n title = translator(\"timerange.start_interval\", {\n x: getFormattedStartDate(dataStart, locale, translator),\n y: duration,\n });\n }\n\n return {\n title: title,\n };\n }\n};\n\n/**\n *\n * Gets secondary description for all time.\n *\n * @param {Range} range\n * @param {Number} timeRangeEnd\n * @param {Object} timeRangeSameDimensionValue\n * @param {String} locale\n * @param {Function} translator\n *\n * @returns {SecondaryDescription}\n *\n */\nconst handleAllTime = (range, timeRangeEnd, timeRangeSameDimensionValue, timeRangeUnits, locale, translator) => {\n return handleDimensions(range, timeRangeEnd, timeRangeSameDimensionValue, timeRangeUnits, locale, translator);\n};\n\n/**\n *\n * Gets secondary description for time range.\n *\n * @param {Range} range\n * @param {Number} timeRangeStart\n * @param {Number} timeRangeEnd\n * @param {String} locale\n * @param {Function} translator\n *\n * @returns {SecondaryDescription}\n *\n */\n\nconst handleTimeRange = (range, timeRangeStart, timeRangeEnd, locale, translator) => {\n const today = new ProductionDay(new Date());\n\n let title;\n\n const hasNoData = range === undefined || range.start.errorType === \"nodata\" || range.start.errorType === \"deviceunresponsive\";\n\n if (hasNoData) {\n title = translator(\"timerange.no_data\");\n }\n else {\n const startAsDay = new ProductionDay(timeRangeStart);\n const endAsDay = new ProductionDay(timeRangeEnd);\n // The start of the actual data in the time range\n const dataStartDate = range?.start.startTime?.getOffsetDate();\n\n const isOpen = (\n endAsDay.isOnOrAfter(today) &&\n startAsDay.isOnOrBefore(today)\n );\n\n let duration;\n\n if (isOpen) {\n duration = translator(\"timerange.open\");\n }\n else {\n const timeRangeEndDate = new ProductionDay(timeRangeEnd).toDate();\n\n const daysBetween = getDaysBetween(\n dataStartDate,\n timeRangeEndDate\n );\n\n duration = getDayDuration(daysBetween + 1, translator);\n }\n\n title = translator(\"timerange.start_interval\", {\n x: formatDate(dataStartDate, {\n selector: \"date\",\n formatLength: \"short\",\n locale\n }),\n y: duration,\n });\n }\n\n return {\n title: title,\n };\n};\n\n/**\n *\n * Gets secondary description.\n *\n * @param {Range} range\n * @param {Number} timeRangeStart\n * @param {Number} timeRangeEnd\n * @param {Object} timeRangeSameDimensionValue\n * @param {String} timeRangeUnits\n * @param {ProductionDay} originDay\n * @param {String} locale\n * @param {Function} translator\n *\n * @returns {SecondaryDescription}\n *\n */\nconst getSecondaryDescription = ({\n range,\n timeRangeStart,\n timeRangeEnd,\n timeRangeSameDimensionValue,\n timeRangeUnits,\n originDay,\n locale,\n translator\n}) => {\n const supportedDimensions = [\"part\", \"shift\", \"ordinal_shift\"];\n const supportedTimes = [\n \"shift_hour\",\n \"production_day\",\n \"week\",\n \"month\",\n \"quarter\",\n \"year\",\n ];\n\n if (range === undefined) {\n return {\n title: translator(\"timerange.loading\"),\n };\n }\n\n if (supportedDimensions.includes(timeRangeUnits)) {\n return handleDimensions(range, timeRangeEnd, timeRangeSameDimensionValue, timeRangeUnits, locale, translator);\n } else if (supportedTimes.includes(timeRangeUnits)) {\n return handleTime(range, timeRangeStart, timeRangeEnd, timeRangeSameDimensionValue, timeRangeUnits, originDay, locale, translator);\n } else if (timeRangeUnits === \"all\") {\n return handleAllTime(range, timeRangeEnd, timeRangeSameDimensionValue, timeRangeUnits, locale, translator);\n } else if (timeRangeUnits === \"time\") {\n return handleTimeRange(range, timeRangeStart, timeRangeEnd, locale, translator);\n } else {\n throw `${timeRangeUnits} is not supported`;\n }\n};\n\nexport default getSecondaryDescription;\n","import ParamTypes from 'Common/util/ParamTypes';\nimport { paramTest } from 'Common/util/ParamTypes/ParamTypes';\nimport PropTypes from 'prop-types';\nimport * as RequestStatus from 'Common/data/RequestStatus';\n\n/**\n * An object representing the state of a request.\n *\n * @typedef {{ status: RequestStatus, error?: *, response?: * }} RequestStateType\n */\n\n/**\n * A set of utility functions using the standard request state object.\n */\nexport default class RequestState {\n //\n // ParamTypes\n //\n\n static requestStatusParamType = ParamTypes.oneOf([\n RequestStatus.IDLE,\n RequestStatus.PENDING,\n RequestStatus.SUCCESS,\n RequestStatus.FAILURE,\n ]);\n\n /**\n * A ParamTypes definition for a RequestState object, but with a ParamType of\n * your choosing for the `response` field.\n *\n * @param {*} responseParamType \n * @returns ParamTypes validatior.\n */\n static paramTypeWithResponseOf(responseParamType) {\n return ParamTypes.shape({\n status: RequestState.requestStatusParamType.isRequired,\n response: responseParamType,\n error: ParamTypes.any,\n });\n }\n\n static paramType = RequestState.paramTypeWithResponseOf(ParamTypes.any);\n\n //\n // PropTypes\n //\n\n static requestStatusPropType = PropTypes.oneOf([\n RequestStatus.IDLE,\n RequestStatus.PENDING,\n RequestStatus.SUCCESS,\n RequestStatus.FAILURE,\n ]);\n\n /**\n * A PropTypes definition for a RequestState object, but with a PropType of\n * your choosing for the `response` field.\n *\n * @param {*} responsePropType \n * @returns PropTypes validatior.\n */\n static propTypeWithResponseOf(responsePropType) {\n return PropTypes.shape({\n status: RequestState.requestStatusPropType.isRequired,\n response: responsePropType,\n error: PropTypes.any,\n });\n }\n\n static propType = RequestState.propTypeWithResponseOf(PropTypes.any);\n\n //\n // Methods\n //\n\n static validate(requestState) {\n paramTest(requestState, RequestState.paramType, 'RequestState');\n }\n\n /**\n * Is the request completed (i.e., not IDLE or PENDING)?\n * @param {RequestStateType} requestState\n * @returns {boolean}\n */\n static isRequestCompleted(requestState) {\n RequestState.validate(requestState);\n\n return requestState.status !== RequestStatus.IDLE &&\n requestState.status !== RequestStatus.PENDING;\n }\n\n /**\n * Is the request pending?\n *\n * @param {RequestStateType} requestState\n * @returns {boolean}\n */\n static isRequestPending(requestState) {\n RequestState.validate(requestState);\n return requestState.status === RequestStatus.PENDING;\n }\n\n /**\n * Was the request completed and successful?\n *\n * @param {RequestStateType} requestState \n * @returns {boolean}\n */\n static isRequestSuccessful(requestState) {\n RequestState.validate(requestState);\n return requestState.status === RequestStatus.SUCCESS;\n }\n\n /**\n * Was the request completed and failed?\n *\n * @param {RequestStateType} requestState \n * @returns {boolean}\n */\n static isRequestFailure(requestState) {\n RequestState.validate(requestState);\n return requestState.status === RequestStatus.FAILURE;\n }\n\n /**\n * Are all of the requests completed (i.e., not IDLE or PENDING)?\n *\n * @param {Array} requestStates\n * @returns {boolean}\n */\n static areAllRequestsCompleted(requestStates) {\n if (!Array.isArray(requestStates)) {\n throw new Error('RequestState.areAllRequestsCompleted: Argument must be an array');\n }\n\n return requestStates.every((requestState) => RequestState.isRequestCompleted(requestState));\n }\n}\n","import { useCallback, useMemo } from 'react';\nimport ParamTypes from 'Common/util/ParamTypes';\nimport { paramTest } from 'Common/util/ParamTypes/ParamTypes';\nimport TimeRange from 'Common/types/TimeRange/TimeRange';\nimport { useWidgetCache } from 'Common/components/Dashboard/DashboardCache';\nimport useRepeatingRequest, { getMaxAgeForRepeatingRequest } from 'Common/hooks/requests/useRepeatingRequest';\nimport { useTranslator } from 'Common/hooks/useTranslation';\nimport useRequestWithStatus from 'Common/hooks/requests/useRequestWithStatus';\n\nexport const TIME_RANGE_PRIMARY_DETAILS = 'timeRangePrimaryDetails';\nexport const TIME_RANGE_SECONDARY_DETAILS = 'timeRangeSecondaryDetails';\n\nfunction useTimeRangeDataInternal({\n getTimeRangePrimaryDetails,\n getTimeRangeSecondaryDetails,\n hierarchyNodes,\n timeRange,\n translator,\n updateIntervalMs,\n disableRepeat,\n}) {\n const timeRangePrimaryRequest = useRequestWithStatus(\n useCallback(async ({ abortSignal }) => {\n try {\n if (timeRange) {\n return await getTimeRangePrimaryDetails({\n abortSignal: abortSignal,\n hierarchyNodes,\n timeRange,\n });\n }\n else {\n return {\n response: null,\n error: null\n };\n }\n }\n catch (err) {\n console.error(err);\n return { error: translator('error_literal') };\n }\n }, [ getTimeRangePrimaryDetails, hierarchyNodes, timeRange, translator ]),\n );\n\n const timeRangeSecondaryRequest = useRequestWithStatus(\n useCallback(async ({ abortSignal }) => {\n try {\n if (timeRange) {\n return await getTimeRangeSecondaryDetails({\n abortSignal: abortSignal,\n hierarchyNodes,\n timeRange,\n });\n }\n else {\n return {\n response: null,\n error: null\n };\n }\n }\n catch (err) {\n console.error(err);\n return { error: translator('error_literal') };\n }\n }, [ getTimeRangeSecondaryDetails, hierarchyNodes, timeRange, translator ]),\n );\n\n const {\n send: sendTimeRangePrimaryRequest,\n resend: resendTimeRangePrimaryRequest,\n requestState: timeRangePrimaryRequestState,\n } = timeRangePrimaryRequest;\n\n const {\n send: sendTimeRangeSecondaryRequest,\n resend: resendTimeRangeSecondaryRequest,\n requestState: timeRangeSecondaryRequestState,\n } = timeRangeSecondaryRequest;\n\n // Put both of the requests into a single async function.\n const requestTimeRangeData = useCallback(\n async ({ isInitialRequest, abortSignal }) => {\n if (isInitialRequest) {\n await Promise.allSettled([\n sendTimeRangePrimaryRequest({ abortSignal }),\n sendTimeRangeSecondaryRequest({ abortSignal }),\n ]);\n }\n else {\n await Promise.allSettled([\n resendTimeRangePrimaryRequest({ abortSignal }),\n resendTimeRangeSecondaryRequest({ abortSignal }),\n ]);\n }\n },\n [\n sendTimeRangePrimaryRequest,\n sendTimeRangeSecondaryRequest,\n resendTimeRangePrimaryRequest,\n resendTimeRangeSecondaryRequest,\n ]\n );\n\n useRepeatingRequest({\n sendRequest: requestTimeRangeData,\n delayMs: updateIntervalMs,\n disableRepeat,\n });\n\n return useMemo(() => {\n return {\n [TIME_RANGE_PRIMARY_DETAILS]: timeRangePrimaryRequestState,\n [TIME_RANGE_SECONDARY_DETAILS]: timeRangeSecondaryRequestState,\n };\n }, [ timeRangePrimaryRequestState, timeRangeSecondaryRequestState ]);\n}\n\nconst paramTypes = ParamTypes.shape({\n getTimeRangePrimaryDetails: ParamTypes.func.isRequired,\n getTimeRangeSecondaryDetails: ParamTypes.func.isRequired,\n\n hierarchyNode: ParamTypes.string.isRequired,\n timeRange: TimeRange.timeRangeParamType,\n updateInterval: ParamTypes.number,\n});\n\nexport default function useTimeRangeData(parameters) {\n paramTest(parameters, paramTypes, 'useTimeRangeData');\n\n const {\n getTimeRangePrimaryDetails,\n getTimeRangeSecondaryDetails,\n hierarchyNode,\n timeRange,\n updateInterval,\n } = parameters;\n\n const disableRepeat = useMemo(() => {\n // Disable the repeat if there's no update interval or if the time\n // range is not suitable.\n return (\n !updateInterval ||\n !timeRange ||\n !TimeRange.shouldRepeatRequestWithTimeRange(timeRange)\n );\n }, [ timeRange, updateInterval ]);\n\n const updateIntervalMs = updateInterval || 0;\n\n const translator = useTranslator();\n\n const hierarchyNodes = useMemo(() => { return [hierarchyNode]; }, [hierarchyNode]);\n\n // getting timerange primary details\n const getTimeRangePrimaryDetailsCache = useWidgetCache({\n cacheId: 'getTimeRangePrimaryDetails',\n load: ({ abortSignal }, args) => {\n return getTimeRangePrimaryDetails({\n ...args,\n abortSignal,\n });\n },\n });\n\n // A cached version of `getTimeRangePrimaryDetails`\n const getTimeRangePrimaryDetailsCached = useCallback((args) => {\n const { abortSignal, ...otherArgs } = args;\n const maxAge = getMaxAgeForRepeatingRequest(disableRepeat, updateIntervalMs);\n\n return getTimeRangePrimaryDetailsCache.get(\n {\n abortSignal,\n maxAge,\n },\n otherArgs\n );\n }, [ disableRepeat, getTimeRangePrimaryDetailsCache, updateIntervalMs ]);\n\n // getting timerange secondary details\n const getTimeRangeSecondaryDetailsCache = useWidgetCache({\n cacheId: 'getTimeRangeSecondaryDetails',\n load: ({ abortSignal }, args) => {\n return getTimeRangeSecondaryDetails({\n ...args,\n abortSignal,\n });\n },\n });\n\n // A cached version of `getTimeRangeSecondaryDetails`\n const getTimeRangeSecondaryDetailsCached = useCallback((args) => {\n const { abortSignal, ...otherArgs } = args;\n const maxAge = getMaxAgeForRepeatingRequest(disableRepeat, updateIntervalMs);\n\n return getTimeRangeSecondaryDetailsCache.get(\n {\n abortSignal,\n maxAge,\n },\n otherArgs\n );\n }, [ disableRepeat, getTimeRangeSecondaryDetailsCache, updateIntervalMs ]);\n\n return useTimeRangeDataInternal({\n getTimeRangePrimaryDetails: getTimeRangePrimaryDetailsCached,\n getTimeRangeSecondaryDetails: getTimeRangeSecondaryDetailsCached,\n hierarchyNodes,\n timeRange,\n translator,\n updateIntervalMs,\n disableRepeat,\n });\n}\n","export default function formatFiltersForRequest(filters) {\n let formatted = [];\n if (filters.slice) {\n formatted.push({ ...filters.slice, type: 'slice' });\n }\n if (filters.group) {\n formatted.push({ ...filters.group, type: 'group' });\n }\n return formatted;\n}\n","function getPrettyOperator(uglyOp, translator) {\n if (uglyOp === 'eq') {\n return translator('filter.equal_to');\n }\n else if (uglyOp === 'ne') {\n return translator('filter.not_equal_to');\n }\n else if (uglyOp === 'lt') {\n return translator('filter.less_than');\n }\n else if (uglyOp === 'le') {\n return translator('filter.less_than_or_equal_to');\n }\n else if (uglyOp === 'gt') {\n return translator('filter.greater_than');\n }\n else if (uglyOp === 'ge') {\n return translator('filter.greater_than_or_equal_to');\n }\n else {\n return uglyOp;\n }\n}\n\nfunction getFormulaOperator(op) {\n if (op === 'eq') {\n return '==';\n }\n else if (op === 'ne') {\n return '!=';\n }\n else if (op === 'lt') {\n return '<';\n }\n else if (op === 'le') {\n return '<=';\n }\n else if (op === 'gt') {\n return '>';\n }\n else if (op === 'ge') {\n return '>=';\n }\n else {\n throw `Cannot convert ${op} to a formula equivalent.`;\n }\n}\n\nfunction formatForURL ({ rhs, op, lhs }) {\n if (Array.isArray(rhs)) {\n throw 'Break rhs out individually before trying to format';\n }\n let opString = op;\n let lhsString = '';\n let rhsString = '';\n\n if (typeof lhs === 'string' ) {\n lhsString = lhs;\n }\n else {\n lhsString = lhs.getName();\n // [FUTUREHACK]\n // swap out list_occurrences for _occurrences so it doesn't try to do\n // [8,9,4] > 3\n const list_occurrences = '_list_occurrences';\n if (lhsString.endsWith(list_occurrences)) {\n lhsString = `${lhsString.slice(0, -list_occurrences.length)}_occurrences`;\n }\n\n // [FUTUREHACK]\n // swap out category_value fieldType columns that have\n // a display name column counterpart\n // this helps when the request is made across devices\n // and has discrepancies between category value keys\n if (lhs.isCategoryValue() && lhs.isValid()) {\n const displayName = `${lhsString}_display_name`;\n const displayNameColumn = lhs.getTable().getColumn(displayName);\n \n if (displayNameColumn.isValid()) {\n lhsString = displayNameColumn.getName();\n\n // convert what is expected to be category_value key to display name\n // if not found stick with original value\n const rhsDisplayName = lhs.getConfigurationCategoryValue(rhs)?.getDisplayName();\n rhsString = rhsDisplayName ? rhsDisplayName : rhs;\n }\n else {\n rhsString = rhs;\n }\n\n rhsString = `'${rhsString}'`;\n }\n\n // current is a viable option for metrics ending in event_id\n const event_ids = '_event_id';\n if (rhs === 'current' && lhsString.endsWith(event_ids)) {\n rhsString = `'${rhs}'`;\n }\n }\n\n if (rhs instanceof Date) {\n // In our REST API, Dates are represented in UNIX timestamps.\n // Make sure to convert them from their JS milliseconds to seconds.\n rhsString = (rhs.valueOf() / 1000).toString(); // Convert from ms to s.\n }\n else {\n rhsString = (rhsString || rhs ).toString();\n }\n\n return `${lhsString} ${opString} ${rhsString}`;\n}\n\nfunction formatForFormula ({ rhs, op, lhs }) {\n if (Array.isArray(rhs)) {\n throw 'Break rhs out individually before trying to format';\n }\n let opString = getFormulaOperator(op);\n let lhsString = '';\n let rhsString = rhs.toString();\n\n if (typeof lhs === 'string' ) {\n lhsString = lhs;\n }\n else {\n // [FUTUREHACK]\n if (lhs.isCategoryValue()) {\n throw 'Currently unsupported category value in filter formula.';\n }\n\n lhsString = lhs.getName();\n }\n\n return `${lhsString} ${opString} ${rhsString}`;\n}\n\nfunction formatForReadable ({ rhs, op, lhs, translator, combineRHS }) {\n let opString = getPrettyOperator(op, translator);\n let lhsString = '';\n let rhsStrings = [];\n\n if (typeof lhs === 'string' ) {\n lhsString = lhs;\n rhsStrings = rhs.map(singleValue => (singleValue.toString()));\n }\n else {\n lhsString = lhs.getDisplayName();\n rhsStrings = rhs.map(singleValue => {\n if (lhs.isCategoryValue()) { \n // convert what is expected to be category_value key to display name\n // if not found stick with original value\n const rhsDisplayName = lhs.getConfigurationCategoryValue(singleValue)?.getDisplayName();\n return rhsDisplayName ? rhsDisplayName : translator('unknown_literal');\n }\n else {\n const formatter = lhs.getFormatter(null, {\n // This value is what it looks like after post process\n handlePostProcess: false,\n });\n return formatter(rhs);\n }\n });\n }\n\n let rhsFinalString = '';\n\n if (rhsStrings.length === 1) {\n rhsFinalString = rhsStrings[0];\n }\n else if (rhsStrings.length === 2) {\n rhsFinalString = `${rhsStrings[0]} ${combineRHS} ${rhsStrings[1]}`;\n }\n else {\n const lastRHSValue = rhsStrings.pop();\n rhsFinalString = `${rhsStrings.join(', ')}, ${combineRHS} ${lastRHSValue}`;\n }\n\n return `${lhsString} ${opString} ${rhsFinalString}`;\n}\n\n/**\n * Filter out any filter expression that is not active.\n * @param {Object[]} filters the filters to write out\n * \n * @returns {Object[]}\n */\nexport function filterActiveFilters(filters) {\n return filters\n .map((filter) => {\n // Filter out any expressions that have no rhs value\n const activeExpressions = filter.expressions.filter((expression) => {\n if (Array.isArray(expression.rhs)) {\n return expression.rhs.length > 0;\n }\n else {\n return expression.rhs !== null && expression.rhs !== undefined;\n }\n });\n\n return {\n ...filter,\n expressions: activeExpressions,\n };\n })\n // Filter out any filters with no expressions\n .filter((filter) => {\n return filter.expressions.length > 0;\n });\n}\n\nexport const HUMAN_READABLE = 'hr';\nexport const FOR_URL = 'url';\nexport const FOR_FORMULA = 'formula';\n\nfunction isHumanReadable(printType) {\n return printType === HUMAN_READABLE;\n}\n\n/**\n * type should be and or or, this will either return the translated version of the base\n * version depending on if the text should be human readable or not\n */\nfunction handleTranslate(printType, type, translator) {\n if (isHumanReadable(printType)) {\n return translator('filter.' + type);\n }\n return type;\n}\n\nconst validPrintTypes = [HUMAN_READABLE, FOR_URL, FOR_FORMULA]\n .reduce((validTypes, type) => {\n validTypes[type] = true;\n return validTypes;\n }, {});\n\n/**\n * Translate a filter expression to a string.\n * This is used to generate the text for the url, or just displaying it\n * so the user can more easily read it and more.\n * @param {Object} expression the filters to write out\n * @param {Object} opts the options for how to generate the filter text\n * @param {String} opts.printType the different ways to print it \n * humanReadable - this will include spaces \n * between the parenthesis, show > instead of ge,\n * and format values (.ie 75% instead of .75)\n * url - this will print it with less spaces and show ge instead of >\n * formula - this will print it so it can be utilized in formula\n * so it will show > instead of ge.\n * @param {Function} translator A function which accepts an object and returns the\n * translated string. The objects shape is:\n * - {String} key: the translation key.\n * - {Object} substitutions: The substitutions passed along to the translator\n * for dynamic translations.\n * \n * @returns {String}\n */\nexport function generateFilterExpressionText(expression, printType = HUMAN_READABLE, translator) {\n const { lhs, op, rhs } = expression;\n const rhsArray = Array.isArray(rhs) ? rhs : [rhs];\n const showExcessSpacing = isHumanReadable(printType);\n\n const combineRHS = op === 'eq'\n ? handleTranslate(printType, 'or', translator)\n : handleTranslate(printType, 'and', translator);\n\n if (isHumanReadable(printType)) {\n return formatForReadable({ lhs, rhs: rhsArray, op, translator, combineRHS });\n }\n else {\n return rhsArray.map((rr) => {\n let stringExpression = '';\n switch (printType) {\n case FOR_FORMULA:\n stringExpression = formatForFormula({ lhs, rhs:rr, op });\n break;\n case FOR_URL:\n stringExpression = formatForURL({ lhs, rhs:rr, op });\n break;\n }\n\n return rhsArray.length > 1\n ? showExcessSpacing ? `( ${stringExpression} )` : `(${stringExpression})`\n : `${stringExpression}`;\n }).join(` ${combineRHS} `);\n }\n}\n\n/**\n * Based on a filter array this will write out the expressions as strings.\n * This is used to generate the text for the url, or just displaying it\n * so the user can more easily read it and more.\n * @param {Object[]} filters the filters to write out\n * @param {Object} opts the options for how to generate the filter text\n * @param {String} opts.printType the different ways to print it \n * humanReadable - this will include spaces \n * between the parenthesis, show > instead of ge,\n * and format values (.ie 75% instead of .75)\n * url - this will print it with less spaces and show ge instead of >\n * formula - this will print it so it can be utilized in formula\n * so it will show > instead of ge.\n * @param {Function} translator A function which accepts an object and returns the\n * translated string. The objects shape is:\n * - {String} key: the translation key.\n * - {Object} substitutions: The substitutions passed along to the translator\n * for dynamic translations.\n * \n * @returns {String}\n */\nexport function generateFilterText (filters, printType = HUMAN_READABLE, translator) {\n if (!validPrintTypes[printType]) {\n throw `${printType} is not a valid print type.`;\n }\n\n const showExcessSpacing = isHumanReadable(printType);\n\n filters = filterActiveFilters(filters);\n\n return filters\n .reduce((agg, { expressions, combine_type }) => {\n if (agg) {\n agg += ` ${handleTranslate(printType, 'and', translator)} `;\n }\n\n // [FUTURUEHACK] combine_custom exists but is not yet implemented to work\n if (combine_type === 'custom') {\n throw 'This functionality has not yet been implemented';\n }\n\n if (expressions.length > 1) {\n agg += showExcessSpacing ? '( ' : '(';\n }\n\n expressions.forEach((exp, expIndex) => {\n if (expIndex > 0) {\n const translatedOp = combine_type === 'and'\n ? handleTranslate(printType, 'and', translator)\n : handleTranslate(printType, 'or', translator);\n agg += ` ${translatedOp} `;\n }\n\n const rhsLength = Array.isArray(exp.rhs) ? exp.rhs.length : 1;\n if (filters.length > 1 || expressions.length > 1 || rhsLength > 1) {\n agg += showExcessSpacing ? '( ' : '(';\n }\n\n agg += generateFilterExpressionText(exp, printType, translator);\n\n if (filters.length > 1 || expressions.length > 1 || rhsLength > 1) {\n agg += showExcessSpacing ? ' )' : ')';\n }\n });\n\n if (expressions.length > 1) {\n agg += showExcessSpacing ? ' )' : ')';\n }\n\n return agg;\n }, '');\n}\n\n/**\n * Get only slice filters from a filter array.\n * @param {Object[]} filters the filters\n * @param {Object} opts\n * @param {String} opts.type the type we want to filter slice or group\n * @param {Boolean} opts.isValid set to true to only get valid filters that have rhs defined\n * \n * @returns {Object[]}\n */\nfunction filterFilters(filters, opts) {\n return filters.reduce((validFilters, filter) => {\n if (filter.type === opts.type) {\n validFilters.push({\n ...filter,\n expressions: opts.isValid\n ? filter.expressions.filter(({lhs, rhs, op}) =>\n (lhs && op && rhs !== null && rhs !== undefined)\n )\n : filter.expressions\n });\n }\n return validFilters;\n }, []);\n}\n\n/**\n * Get only slice filters from a filter array.\n * @param {Object[]} filters the filters\n * @param {Object} opts\n * @param {Boolean} opts.isValid filters so its only valid filters that have rhs defined\n * \n * @returns {Object[]}\n */\nexport function getSliceFilters(filters, opts={}) {\n return filterFilters(filters, { isValid: !!opts.isValid, type: 'slice' });\n}\n\n/**\n * Get only group filters from a filter array.\n * @param {Object[]} filters the filters\n * @param {Object} opts\n * @param {Boolean} opts.isValid filters so its only valid filters that have rhs defined\n * \n * @returns {Object[]}\n */\nexport function getGroupFilters(filters, opts={}) {\n return filterFilters(filters, { isValid: !!opts.isValid, type: 'group' });\n}\n\n/**\n * Get the lhs column for each filter.\n * @param {Object[]} filters \n *\n * @returns {Column/RequestColumn[]}\n */\nexport function getLHSColumns(filters) {\n return filters.reduce((columns, {expressions}) => {\n expressions.forEach(({lhs}) => {\n columns.push(lhs);\n });\n return columns;\n },[]);\n}\n\n/**\n * Update lhs column or remove expression based on updateRemoveFunc.\n * @param {Object[]} filters\n * @param {Function} updateRemoveFunc\n *\n * @returns {Object[]}\n */\nexport function updateRemoveFilterBasedOnLHS(filters, updateRemoveFunc) {\n return filters.reduce((updatedFilters, filter) => {\n let expressions = filter.expressions.reduce((updatedExpressions, expression) => {\n let updatedLHS = updateRemoveFunc(expression.lhs);\n if (updatedLHS) {\n updatedExpressions.push({ ...expression, lhs: updatedLHS });\n }\n return updatedExpressions;\n }, []);\n\n if (expressions.length) {\n updatedFilters.push({ ...filter, expressions });\n }\n\n return updatedFilters;\n }, []);\n}\n","import { useEffect, useState } from 'react';\nimport { useTranslator } from 'Common/hooks/useTranslation';\nimport useLocale from 'Common/hooks/useLocale';\nimport Filters from 'Common/types/Filters/Filters';\nimport formatFiltersForRequest from 'Common/util/formatFiltersForRequest';\nimport { filterActiveFilters } from 'Common/components/FilterBuilderText/FilterBuilderUtils';\nimport ParamTypes from 'Common/util/ParamTypes';\nimport { paramTest } from 'Common/util/ParamTypes/ParamTypes';\n\nconst paramTypes = ParamTypes.shape({\n sliceFilters: Filters.sliceFiltersParamType,\n groupFilters: Filters.groupFiltersParamType,\n dataService: ParamTypes.shape({\n getMultipleColumnConfigs: ParamTypes.func.isRequired,\n getMultipleCategoryValueConfigs: ParamTypes.func.isRequired,\n }).isRequired,\n});\n\nexport default function useFormattedFilters(parameters) {\n paramTest(parameters, paramTypes, 'useFormattedFilters');\n\n const {\n sliceFilters,\n groupFilters,\n dataService,\n } = parameters;\n\n const translator = useTranslator();\n const locale = useLocale();\n\n const [ formattedFilters, setFormattedFilter ] = useState([]);\n\n useEffect(() => {\n const abortSignal = { aborted: false };\n\n async function run() {\n if (!sliceFilters && !groupFilters) {\n // No filters; skip the rest.\n return;\n }\n\n const filters = { slice: sliceFilters, group: groupFilters };\n const filterColumnNames = Filters.getColumnsFromFilters(filters);\n const columnConfigs = await dataService.getMultipleColumnConfigs(filterColumnNames);\n const filterCategoryValueNames = Filters.getCategoryValuesFromFilters(filters);\n const categoryValueConfigs = await dataService.getMultipleCategoryValueConfigs(filterCategoryValueNames); \n const filtersWithDisplayValues = Filters.convertToDisplayValues(\n filters,\n columnConfigs,\n categoryValueConfigs,\n translator,\n locale\n );\n\n if (abortSignal.aborted) {\n return;\n }\n\n setFormattedFilter(filterActiveFilters(formatFiltersForRequest(filtersWithDisplayValues)));\n }\n\n run();\n\n // Cleanup\n return () => {\n abortSignal.aborted = true;\n };\n }, [ sliceFilters, groupFilters, dataService, translator, locale ]);\n\n return formattedFilters;\n}\n","import useKpiWidgetData from './useKpiWidgetData';\nimport ParamTypes from 'Common/util/ParamTypes';\nimport { paramTest } from 'Common/util/ParamTypes/ParamTypes';\nimport TimeRange from 'Common/types/TimeRange/TimeRange';\nimport explorationPathParamType from 'Common/types/stf/explorationPathParamType';\nimport { useEffect, useMemo, useState, useCallback } from 'react';\nimport { useTranslator } from 'Common/hooks/useTranslation';\nimport useKpiWidgetInitialization from './useKpiWidgetInitialization';\nimport getPrimaryDescription from \"Common/components/TimeRangeSelector/helpers/getPrimaryDescription\";\nimport getSecondaryDescription from \"Common/components/TimeRangeSelector/helpers/getSecondaryDescription\";\nimport useKpiWidgetPrintStatus from './useKpiWidgetPrintStatus';\nimport { getDataUpdateInterval } from 'Common/hooks/requests/useRepeatingRequest';\nimport useTimeRangeData, { TIME_RANGE_PRIMARY_DETAILS, TIME_RANGE_SECONDARY_DETAILS } from 'Common/components/TimeRangeSelector/hooks/useTimeRangeData';\nimport useFormattedFilters from 'Common/hooks/useFormattedFilters';\n\nconst extractFiltersFromExplorationPath = (explorationPath) => {\n let filters = {};\n\n if (explorationPath?.group_filter) {\n filters.group = explorationPath.group_filter;\n }\n\n if (explorationPath?.slice_filter) {\n filters.slice = explorationPath.slice_filter;\n }\n\n if (Object.keys(filters) === 0) {\n // There were either no filters, or no exploration path. Return undefined.\n return undefined;\n }\n else {\n return filters;\n }\n};\n\nconst paramTypes = ParamTypes.shape({\n widgetStf: ParamTypes.shape({\n exploration_path: explorationPathParamType,\n rangeSelection: TimeRange.timeRangeParamType,\n hideLiveControls: ParamTypes.bool,\n showLiveControlsOnImmutablePages: ParamTypes.bool,\n }),\n setWidgetStf: ParamTypes.func.isRequired,\n setWidgetPrintStatus: ParamTypes.func.isRequired,\n setWidgetLiveControlsVisibility: ParamTypes.func.isRequired,\n dataService: ParamTypes.shape({\n getKpiWidgetData: ParamTypes.func.isRequired,\n getColumnConfig: ParamTypes.func.isRequired,\n getColumnHelpText: ParamTypes.func.isRequired,\n getTimeRangePrimaryDetails: ParamTypes.func.isRequired,\n getTimeRangeSecondaryDetails: ParamTypes.func.isRequired,\n }).isRequired,\n pageTimeRange: TimeRange.timeRangeParamType,\n pageExplorationPath: explorationPathParamType,\n reportHierarchyNode: ParamTypes.shape({\n name: ParamTypes.string,\n displayName: ParamTypes.string\n }),\n isPrint: ParamTypes.bool.isRequired,\n mutable: ParamTypes.bool.isRequired,\n areLiveControlsVisible: ParamTypes.bool.isRequired,\n});\n\nconst useKpiController = (parameters) => {\n paramTest(parameters, paramTypes, 'useKpiController');\n\n const {\n widgetStf,\n setWidgetStf,\n setWidgetPrintStatus,\n setWidgetLiveControlsVisibility,\n areLiveControlsVisible,\n dataService,\n pageTimeRange,\n pageExplorationPath,\n reportHierarchyNode,\n isPrint,\n isLayoutModeActive,\n duplicateWidget,\n mutable\n } = parameters;\n\n const {\n isInitialized,\n liveControlOptions,\n } = useKpiWidgetInitialization({ dataService });\n\n const translator = useTranslator();\n\n const [columnConfig, setColumnConfig] = useState({});\n\n // livecontrol goodies\n const supportsLiveControls = useMemo(() => {\n return !widgetStf.hideLiveControls \n && (!!widgetStf.showLiveControlsOnImmutablePages || mutable);\n }, [widgetStf, mutable]);\n\n const toggleShowLiveControls = useCallback(() => {\n setWidgetLiveControlsVisibility(!areLiveControlsVisible);\n }, [ areLiveControlsVisible, setWidgetLiveControlsVisibility ]);\n\n const rawSliceFilters = widgetStf.exploration_path.slice_filter;\n\n const filters = useMemo(() => {\n if (!rawSliceFilters) {\n return {\n slice: {\n combine_type: 'and',\n expressions: [],\n }\n };\n }\n else {\n return {\n slice: rawSliceFilters\n };\n }\n }, [rawSliceFilters]);\n\n const setSliceFilters = (newFilters) => {\n setWidgetStf((stf) => ({\n ...stf,\n exploration_path: {\n ...stf.exploration_path,\n slice_filter: newFilters,\n },\n }));\n };\n\n const formattedFilters = useFormattedFilters({\n sliceFilters: filters.slice,\n dataService,\n });\n\n const followPageTimeRange = !widgetStf.rangeSelection;\n const setTimeRange = (rs) => {\n setWidgetStf((stf) => ({\n ...stf,\n rangeSelection: rs,\n }));\n };\n\n const widgetHierarchyNode = widgetStf?.exploration_path?.asset_control?.root;\n const followAppBarHierarchyNode = !widgetHierarchyNode;\n const mergedHierarchyNode = widgetHierarchyNode || reportHierarchyNode?.name;\n\n const setHierarchyNode = useCallback((newHierarchyNode) => {\n setWidgetStf((stf) => {\n let newExplorationPath = {\n ...stf.exploration_path\n };\n if (newHierarchyNode) {\n newExplorationPath.asset_control = {\n root: newHierarchyNode,\n };\n }\n else {\n delete newExplorationPath.asset_control;\n }\n\n return {\n ...stf,\n exploration_path: newExplorationPath,\n };\n });\n }, [setWidgetStf]);\n\n const widgetExplorationPath = widgetStf.exploration_path;\n\n const widgetField = widgetStf?.exploration_path?.field_set?.fields?.[0];\n const field = widgetField || null;\n\n useEffect(() => {\n let isMounted = true;\n\n async function getColumnConfig() {\n const config = await dataService.getColumnConfig(field.name, field.channel);\n const helpText = await dataService.getColumnHelpText(field.name, field.channel);\n\n // Just tack on the help text to the config\n // Additionally, if the KPIWidget has been unmounted in the time it took to await those\n // previous functions then don't set the state here since it will be setting the state\n // on an unmounted component and flagged as a memory leak\n if (isMounted) {\n // Just tack on the help text to the config\n setColumnConfig({\n ...config,\n helpText,\n });\n }\n }\n\n getColumnConfig();\n\n // useEffect cleanup function to track if we're still mounted after async awaits\n return () => { isMounted = false; };\n }, [field.name, field.channel, dataService]);\n\n const pageFilters = useMemo(() => {\n return extractFiltersFromExplorationPath(pageExplorationPath);\n }, [ pageExplorationPath ]);\n\n const widgetFilters = useMemo(() => {\n return extractFiltersFromExplorationPath(widgetExplorationPath);\n }, [ widgetExplorationPath ]);\n\n const setMetric = (metric) => {\n paramTest(metric, ParamTypes.shape({\n name: ParamTypes.string.isRequired,\n channel: ParamTypes.string.isRequired,\n }).isRequired, 'setMetric.metric');\n\n setWidgetStf((stf) => {\n return {\n ...stf,\n exploration_path: {\n ...stf.exploration_path,\n field_set: {\n ...stf.exploration_path.field_set,\n fields: [{\n name: metric.name,\n channel: metric.channel,\n }],\n },\n },\n };\n });\n };\n\n // Disable the update interval if the widget is in print view\n const widgetUpdateTimeInterval = isPrint ? null : widgetStf.updateTimeInterval;\n \n const dataRequest = useKpiWidgetData({\n hierarchyNode: mergedHierarchyNode,\n field,\n widgetFilters,\n pageFilters,\n timeRange: widgetStf.rangeSelection || pageTimeRange,\n getKpiWidgetData: dataService.getKpiWidgetData,\n updateInterval: getDataUpdateInterval(widgetUpdateTimeInterval),\n });\n\n const defaultTitle = columnConfig.displayName || '';\n let title = widgetStf.title;\n if (!title && widgetStf.titleKey) {\n title = translator(widgetStf.titleKey);\n }\n\n const setTitle = (newTitle) => {\n setWidgetStf((stf) => ({\n ...stf,\n title: newTitle,\n }));\n };\n\n const tooltipContent = useMemo(() => {\n return {\n displayName: columnConfig.displayName || '',\n description: columnConfig.helpText || '',\n trendDescription: translator('widget.kpi.trend_tooltip'),\n };\n }, [columnConfig, translator]);\n\n const timeRangeRequests = useTimeRangeData({\n getTimeRangePrimaryDetails: dataService.getTimeRangePrimaryDetails,\n getTimeRangeSecondaryDetails: dataService.getTimeRangeSecondaryDetails,\n hierarchyNode: mergedHierarchyNode,\n timeRange: widgetStf.rangeSelection,\n updateInterval: getDataUpdateInterval(widgetUpdateTimeInterval),\n });\n\n const timeRangeDescription = useMemo(() => {\n const primaryDetails = timeRangeRequests[TIME_RANGE_PRIMARY_DETAILS]?.response;\n const secondaryDetails = timeRangeRequests[TIME_RANGE_SECONDARY_DETAILS]?.response;\n\n if (primaryDetails && translator) {\n const primary = getPrimaryDescription({\n dimensionDetailsDisplayName: primaryDetails?.dimensionDetails.displayName,\n dimensionDetailsIsMixed: primaryDetails?.dimensionDetails.isMixed || false,\n timeRangeStart: primaryDetails?.timeRange.start,\n timeRangeEnd: primaryDetails?.timeRange.end,\n timeRangeSameDimensionValue: primaryDetails?.timeRange.sameDimensionValue || false,\n timeRangeUnits: primaryDetails?.timeRange.units,\n timeRangeProductionDayOffset: primaryDetails?.timeRange.productionDayOffset,\n atEndOfData: !!secondaryDetails?.atEndOfData,\n locale: primaryDetails.locale,\n translator: translator,\n });\n\n const secondary = getSecondaryDescription({\n range: secondaryDetails?.range,\n timeRangeStart: primaryDetails?.timeRange.start,\n timeRangeEnd: primaryDetails?.timeRange.end,\n timeRangeSameDimensionValue: primaryDetails?.timeRange.sameDimensionValue || null,\n timeRangeUnits: primaryDetails?.timeRange.units || '',\n originDay: primaryDetails?.originDay || '',\n locale: primaryDetails?.locale,\n translator: translator,\n });\n\n return {\n primary,\n secondary\n };\n }\n else {\n return null;\n }\n\n }, [timeRangeRequests, translator]);\n\n // Keeps the print status updated\n useKpiWidgetPrintStatus({\n // Do not update print status when we're already in print view.\n disabled: isPrint,\n setWidgetPrintStatus,\n kpiWidgetDataRequest: dataRequest,\n timeRangePrimaryRequest: timeRangeRequests[TIME_RANGE_PRIMARY_DETAILS],\n timeRangeSecondaryRequest: timeRangeRequests[TIME_RANGE_SECONDARY_DETAILS],\n });\n\n return {\n isInitialized,\n metric: field.name,\n setMetric,\n filters,\n setSliceFilters,\n formattedFilters,\n timeRange: widgetStf.rangeSelection,\n setTimeRange,\n followPageTimeRange,\n followAppBarHierarchyNode,\n hierarchyNode: widgetHierarchyNode,\n setHierarchyNode,\n defaultTitle,\n title,\n setTitle,\n tooltipContent,\n metricOptions: liveControlOptions?.metricOptions,\n hierarchyNodeOptions: liveControlOptions?.hierarchyNodeOptions || [],\n filterOptions: liveControlOptions?.filterOptions,\n dataRequest,\n timeRangeDescription,\n shouldShowFilterText: widgetStf.shouldShowFilterText,\n showLiveControls: areLiveControlsVisible,\n supportsLiveControls,\n toggleShowLiveControls,\n isLayoutModeActive,\n duplicateWidget,\n };\n};\n\nexport default useKpiController;\n","import { useEffect } from 'react';\nimport RequestState from 'Common/types/RequestState/RequestState';\n\nexport default function useKpiWidgetPrintStatus({\n disabled = false,\n setWidgetPrintStatus,\n kpiWidgetDataRequest,\n timeRangePrimaryRequest,\n timeRangeSecondaryRequest,\n}) {\n // Effect to keep the widget's print status up to date.\n useEffect(() => {\n if (disabled) {\n return;\n }\n\n setWidgetPrintStatus(RequestState.areAllRequestsCompleted([\n kpiWidgetDataRequest,\n timeRangePrimaryRequest,\n timeRangeSecondaryRequest,\n ]));\n }, [ disabled, kpiWidgetDataRequest, timeRangePrimaryRequest, timeRangeSecondaryRequest, setWidgetPrintStatus ]);\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport Checkbox from 'Common/components/Checkbox';\nimport EnterpriseHierarchySelectList from 'Common/components/EnterpriseHierarchySelectList';\nimport { useTranslator } from 'Common/hooks/useTranslation';\n\nconst StyledCheckbox = styled(Checkbox)`\n padding-left: 10px;\n`;\n\nfunction EnterpriseHierarchyControl({\n hierarchySelection,\n onHierarchySelectionChange,\n\n hierarchyList,\n onlyAssets,\n\n collapseHierarchyValue,\n showCollapseHierarchyCheckbox,\n onCollapseHierarchyChange,\n\n followAppBar,\n showFollowAppBarCheckbox,\n onFollowAppBar,\n}) {\n const translator = useTranslator();\n\n const collapseHierarchyLiteral = translator('control.common.collapse_hierarchy');\n const searchAssetLiteral = translator('control.common.search_asset_hierarchy');\n const loadingLiteral = translator('loading_literal');\n const filterboxNoSelectionsCopyLiteral = translator('filterbox_no_selections_copy');\n const followAppBarCheckboxText = translator('control.common.follow_app_bar');\n \n return (\n \n {showFollowAppBarCheckbox && (\n \n )}\n {showCollapseHierarchyCheckbox && (\n \n )}\n \n \n );\n}\n\nEnterpriseHierarchyControl.propTypes = {\n hierarchySelection: PropTypes.string,\n onHierarchySelectionChange: PropTypes.func.isRequired,\n\n hierarchyList: PropTypes.arrayOf(\n PropTypes.shape({\n displayName: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n iconClass: PropTypes.string.isRequired,\n level: PropTypes.number.isRequired,\n })\n ),\n onlyAssets: PropTypes.bool,\n\n \n collapseHierarchyValue: PropTypes.bool,\n showCollapseHierarchyCheckbox: PropTypes.bool,\n onCollapseHierarchyChange: PropTypes.func,\n\n followAppBar: PropTypes.bool,\n showFollowAppBarCheckbox: PropTypes.bool,\n onFollowAppBar: PropTypes.func,\n};\n\nEnterpriseHierarchyControl.defaultProps = {\n onlyAssets: false,\n showCollapseHierarchyCheckbox: false,\n showFollowAppBarCheckbox: false,\n};\n\nexport default EnterpriseHierarchyControl;\n","import EnterpriseHierarchyControl from './EnterpriseHierarchyControl';\n\nexport default EnterpriseHierarchyControl;\n","import React, {\n useMemo,\n useState,\n useCallback,\n useImperativeHandle,\n forwardRef,\n} from 'react';\nimport styled from 'styled-components';\nimport Button from 'Common/components/Button';\nimport PropTypes from 'prop-types';\nimport { useTranslator } from 'Common/hooks/useTranslation';\n\nfunction useValidationState({\n initialValue,\n validate,\n detectChanges,\n translator,\n}) {\n const [ modifiedValue, setModifiedValue ] = useState(null);\n \n // Let the internal value follow initialValue until the user makes changes.\n const value = modifiedValue === null ? initialValue : modifiedValue;\n\n const isDirty = useMemo(() => {\n return detectChanges(initialValue, value);\n }, [ detectChanges, initialValue, value ]);\n\n const handleReset = useCallback(() => {\n setModifiedValue(null);\n }, []);\n\n const validationErrors = useMemo(() => {\n return validate(value, translator);\n }, [ validate, value, translator ]);\n\n const isValid = !validationErrors;\n\n return {\n initialValue: initialValue,\n value: value,\n setValue: setModifiedValue,\n isDirty: isDirty,\n isValid: isValid,\n reset: handleReset,\n validationErrors: validationErrors,\n };\n}\n\nconst Root = styled.div`\n display:flex;\n flex-direction: column;\n min-height: 1px;\n`;\n\nconst ButtonContainer = styled.div`\n box-sizing: border-box;\n min-height: 44px;\n min-width: 44px;\n display: flex;\n align-items: center;\n flex: 0 0 auto;\n margin-right: 12px;\n`;\n\nconst ApplyContainer = styled(ButtonContainer)`\n justify-content: flex-end;\n flex: 0 0 auto;\n`;\n\n/**\n * Utility component for controls with an Apply button that can optionally have\n * invalid configuration.\n *\n * Primary Responsibilities:\n *\n * - Starting with an initial value, stores the modified (i.e. \"draft\") value\n * of an editor.\n * - Performs validation (if provided) on the current value of an editor.\n * - Provides an \"Apply\" button for the user to submit valid changes.\n * - Allows a parent component to notify (via `ref`) about an attempt to close\n * the control. If the value is invalid, a dialog will be displayed allowing\n * the user to cancel changes or continue editing.\n *\n * @param {Object} props\n * @param {Object} props.initialValue The starting value for the editor.\n * @param {Function} props.onApply Called when changes are to be applied, always\n * supplied with a valid value.\n * @param {Function} props.onCancel Called when changes are dismissed and the\n * control should be closed.\n * @param {Function} [props.validate] Validate the current editor value and\n * return any validation errors. Returning `null` from this function\n * indicates the value is valid.\n * @param {Function} [props.detectChanges] Provided with the initialValue and\n * the current value. Return true if there are changes. Defaults to doing\n * a strict equality (`===`) check between `initialValue` and `value`.\n * @param {Function} props.renderControl Renders the editor.\n * { value, validationErrors, onChange } are provided.\n * @param {Function} [props.renderInvalidDialog] Renders a dialog informing the\n * user of an invalid value.\n * { value, validationErrors, onContinue, onCancel } are provided.\n *\n * @param {Object} ref An attempt to close the live control can be triggered\n * by a parent component using `ref.onClose()`. This function will return\n * true if the value is valid and can be closed. Otherwise, the invalid\n * dialog is displayed using `renderInvalidDialog`.\n */\nconst ValidatedLiveControl = forwardRef((props, ref) => {\n const {\n initialValue,\n onApply,\n onCancel,\n validate,\n detectChanges,\n renderControl,\n renderInvalidDialog,\n } = props;\n\n const translator = useTranslator();\n\n const [ isDialogVisible, setIsDialogVisible ] = useState(false);\n\n const showDialog = useCallback(() => {\n setIsDialogVisible(true);\n }, []);\n\n const hideDialog = useCallback(() => {\n setIsDialogVisible(false);\n }, []);\n\n const {\n value,\n setValue,\n isDirty,\n isValid,\n reset,\n validationErrors,\n } = useValidationState({\n initialValue: initialValue,\n validate: validate,\n detectChanges: detectChanges,\n translator: translator,\n });\n\n const handleChange = useCallback((event) => {\n setValue(event.target.value);\n }, [ setValue ]);\n\n const handleApply = useCallback(() => {\n reset();\n hideDialog();\n onApply({\n target: {\n value: value,\n },\n });\n }, [ reset, hideDialog, onApply, value ]);\n\n const handleCancel = useCallback(() => {\n reset();\n hideDialog();\n onCancel();\n }, [ reset, hideDialog, onCancel ]);\n\n const handleOuterClose = useCallback(() => {\n if (!isValid) {\n showDialog();\n return false;\n }\n\n if (!isDirty) {\n return true;\n }\n\n onApply({\n target: {\n value: value,\n },\n });\n\n reset();\n\n return true;\n }, [ isValid, showDialog, isDirty, value, onApply, reset ]);\n\n useImperativeHandle(ref, () => ({\n onClose: () => {\n return handleOuterClose();\n },\n }), [ handleOuterClose ]);\n\n return (\n \n {(isDialogVisible && renderInvalidDialog) ?\n (\n renderInvalidDialog({\n value,\n validationErrors,\n onContinue: hideDialog,\n onCancel: handleCancel,\n })\n )\n : null\n }\n {renderControl({\n value,\n validationErrors,\n onChange: handleChange\n })}\n \n \n {translator('apply_literal')}\n \n \n \n );\n});\n\nValidatedLiveControl.displayName = 'ValidatedLiveControl';\n\nValidatedLiveControl.propTypes = {\n initialValue: PropTypes.any.isRequired,\n onApply: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired,\n validate: PropTypes.func,\n detectChanges: PropTypes.func,\n renderControl: PropTypes.func.isRequired,\n renderInvalidDialog: PropTypes.func,\n};\n\nValidatedLiveControl.defaultProps = {\n validate: (value) => null,\n detectChanges: (initialValue, value) => initialValue !== value,\n};\n\nexport default ValidatedLiveControl;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport InlineError from 'Common/components/Error/InlineError';\nimport { arrayJoin } from 'Common/util/language/array';\n\nconst StyledInlineError = styled(InlineError)`\n padding-top: 4px;\n`;\n\nfunction DurationFieldError({\n error,\n ...otherProps\n}) {\n const renderError = (type) => {\n let errorJsx = null;\n\n if (error[type]) {\n errorJsx = (\n \n {error[type]}\n \n );\n }\n\n return errorJsx;\n };\n\n return (\n \n {arrayJoin(\n ['h', 'm', 's'].map(renderError).filter(err => err),\n (
    )\n )}\n
    \n );\n}\n\nDurationFieldError.propTypes = {\n error: PropTypes.shape({\n h: PropTypes.node,\n m: PropTypes.node,\n s: PropTypes.node,\n }),\n};\n\nexport default DurationFieldError;\n","/**\n * Map an array through a function, and then filter out the falsy values.\n */\nexport function filterMap(arr, fn, scope) {\n if (typeof fn !== \"function\") {\n throw new TypeError();\n }\n\n var rv = [];\n var i;\n var len = arr.length;\n for (i = 0; i < len; i++) {\n if (arr.hasOwnProperty(i)) {\n var r = fn.call(scope || null, arr[i], i, arr);\n if (r) { rv.push(r); }\n }\n }\n\n return rv;\n}\n\n/**\n * Convert the argument to an instance of Array\n *\n * @param {Any} arg The thing to be converted. If it has a length property, its members\n * will be added to the array and returned. If `arg` doesn't have a length property,\n * `[arg]` will be returned.\n *\n * @returns {Array}\n */\nexport function toArray(arg) {\n var rv = [];\n\n if (arg === undefined || arg === null) {\n // Do nothing, we'll return the empty array.\n }\n else if (arg.length === undefined) {\n rv.push(arg);\n }\n // NodeLists and such in IE8 are not JS Objects, and will fail this check\n else if (arg instanceof Object) {\n rv = Array.prototype.slice.call(arg);\n }\n else {\n var i;\n for (i = 0; i < arg.length; ++i) {\n rv.push(arg[i]);\n }\n }\n return rv;\n}\n\n/**\n * Similar to Array.prototype.join, arrayJoin intermixes joiner between each item in the\n * array, but unlike Array.prototype.join the output is a new array with those added items\n * instead of a string.\n *\n * Example: arrayJoin([1, 2, 3], '\\n')\n * Returns: [1, '\\n', 2, '\\n', 3]\n *\n * @param {Array} array\n * @param {Any} joiner\n *\n * @returns {Array}\n */\nexport function arrayJoin(array, joiner) {\n if (array.length < 2) {\n return array;\n }\n else {\n const joinedArray = [];\n\n array.forEach((item, index) => {\n joinedArray.push(item);\n\n if (index !== array.length - 1) {\n joinedArray.push(joiner);\n }\n });\n\n return joinedArray;\n }\n}\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { Body5 } from 'Common/components/typography';\nimport NumberField from 'Common/components/NumberField';\nimport Dropdown from '../Dropdown/Dropdown';\nimport SelectDropdownButton from '../SelectList/SelectDropdownButton';\nimport { formatNumber } from 'Common/util/format';\nimport DurationFieldError from './internal/DurationFieldError';\n\nconst DropdownErrorContainer = styled.div`\n /* Make sure it doesn't stretch out the container when an error\n is shown.\n */\n width: 150px;\n`;\n\nconst FieldContainer = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n`;\n\nconst NumberFieldContainer = styled.div`\n width: ${({minFractionDigits}) => 2.5 + minFractionDigits}em;\n`;\n\nconst DropdownContent = styled.div`\n padding: 8px;\n`;\n\nconst FieldsRoot = styled.div`\n display: flex;\n`;\n\nconst Label = styled(Body5)`\n padding-left: 1px;\n padding-right: 6px;\n color: ${({theme}) => theme.colors.palette.grey.emperor};\n`;\n\nfunction getPrecision(precision, type) {\n // The precision prop only applies to the seconds field\n return type === 's' ? precision : 0;\n}\n\nexport default function DurationField({\n name,\n value,\n onChange,\n labels,\n precision,\n error,\n placeholderText,\n}) {\n const [isDropdownOpen, setIsDropdownOpen] = useState(false);\n\n const handleChange = (event) => {\n const {\n value: eventValue,\n name: eventName,\n } = event.target;\n\n const newValue = {\n ...value,\n [eventName]: eventValue,\n };\n\n onChange({\n target: {\n name,\n value: newValue,\n },\n });\n };\n\n const renderField = (type) => {\n const minFractionDigits = getPrecision(precision, type);\n\n const field = (\n \n \n \n \n \n \n );\n\n return field;\n };\n\n const formatHmsValue = (type) => {\n return formatNumber(value?.[type] || 0, {\n minDigits: 2,\n places: getPrecision(precision, type),\n }) + labels[type];\n };\n\n const hasValue = Number.isFinite(value.h) || Number.isFinite(value.m) || Number.isFinite(value.s);\n\n return (\n \n {\n setIsDropdownOpen(false);\n }}\n renderContent={() => (\n \n \n {['h', 'm', 's'].map(renderField)}\n \n {error && (\n \n \n \n )}\n \n )}\n >\n {hasValue\n ? (\n setIsDropdownOpen(true)}\n >\n {formatHmsValue('h')} \n {formatHmsValue('m')} \n {formatHmsValue('s')}\n )\n : (\n setIsDropdownOpen(true)}\n isPlaceholderText\n >\n {placeholderText}\n )}\n \n {error && (\n \n )}\n \n );\n}\n\nDurationField.propTypes = {\n name: PropTypes.string,\n value: PropTypes.shape({\n h: PropTypes.number,\n m: PropTypes.number,\n s: PropTypes.number,\n }),\n onChange: PropTypes.func,\n labels: PropTypes.shape({\n h: PropTypes.string,\n m: PropTypes.string,\n s: PropTypes.string,\n }).isRequired,\n error: PropTypes.shape({\n h: PropTypes.node,\n m: PropTypes.node,\n s: PropTypes.node,\n }),\n precision: PropTypes.number,\n placeholderText: PropTypes.string,\n};\n\nDurationField.defaultProps = {\n value: {\n h: 0,\n m: 0,\n s: 0,\n },\n onChange: () => { },\n precision: 0,\n placeholderText: ''\n};\n","import DurationField from './DurationField';\n\nexport default DurationField;\n","import React, { useState, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { css } from 'styled-components';\n\nimport FieldBuilderSelect from 'Common/components/FieldBuilder/FieldBuilderSelect';\nimport FieldSelectControl from 'Common/components/LiveControls/FieldSelectControl';\nimport DurationField from 'Common/components/DurationField';\nimport NumberField from 'Common/components/NumberField';\nimport BasicSelectField from 'Common/components/BasicSelectField/BasicSelectField';\nimport ButtonBase from 'Common/components/Button/ButtonBase';\nimport Dropdown from 'Common/components/Dropdown/Dropdown';\nimport SelectDropdownButton from 'Common/components/SelectList/SelectDropdownButton';\nimport Icon from 'Common/components/Icon';\nimport { useTranslator } from 'Common/hooks/useTranslation';\n\nconst RowContainer = styled.div`\n box-sizing: border-box;\n display: flex;\n align-items: center;\n padding: 3px 0;\n @media (hover: none) and (pointer: coarse) {\n padding: 10px 0;\n }\n`;\n\nexport const ExpressionInfoContainer = styled.div`\n flex: 1 1 auto;\n display: flex;\n min-width: 1px;\n`;\n\nexport const FieldContainer = styled.div`\n flex: 0 1 39%;\n display: flex;\n flex-direction: column;\n min-width: 44px;\n padding: 0px 3px;\n`;\n\nexport const OperatorContainer = styled.div`\n flex: 0 .5 22%;\n display: flex;\n flex-direction: column;\n min-width: 44px;\n padding: 0px 3px;\n`;\n\nconst DeleteButtonWidthStyle = css`\n width: 24px;\n height: 24px;\n @media (hover: none) and (pointer: coarse) {\n width: 44px;\n }\n`;\n\nexport const DeleteButtonContainer = styled.div`\n flex: 0 0 auto;\n ${DeleteButtonWidthStyle}\n`;\n\nconst DeleteButton = styled(ButtonBase)`\n flex: 0 0 auto;\n ${DeleteButtonWidthStyle}\n display: flex;\n justify-content: center;\n align-items: center;\n\n /* Touch Target */\n :before {\n border-radius: 50%;\n background-color: transparent;\n transition: background-color 300ms;\n }\n\n :hover {\n :before {\n background-color: rgba(0,0,0,0.05);\n }\n }\n\n :active {\n :before {\n background-color: rgba(0,0,0,0.1);\n }\n }\n\n :not(:hover):focus {\n :before {\n background-color: rgba(0,0,0,0.05);\n }\n }\n`;\n\nconst DeleteButtonIcon = styled(Icon).attrs({\n type: 'vorne',\n iconName: 'chip-delete',\n})`\n font-size: 12px;\n color: ${props => props.theme.colors.darkText.mediumEmphasis};\n`;\n\n// check if the user has selected a metric and \"is 0\" or \"is not 0\", users are only allowed to\n// use metric equality operators to compare to 0\nfunction didUserSelectMetricComparedToZero(opValue, fieldType) {\n return fieldType === 'metric' && (opValue === 'eq' || opValue === 'ne');\n}\n\nfunction isDuration(type) {\n return type === 'time_span';\n}\n\nexport function ExpressionRow({\n name,\n lhs,\n op,\n rhs,\n onChange,\n onDeleteRow,\n categoryOptions,\n metricOptions,\n categoryValueOptions,\n allowDelete,\n error,\n}) {\n const translator = useTranslator();\n\n const categoryOperators = [\n {value:'eq', displayName:'='},\n {value:'ne', displayName:'≠'},\n ];\n\n const metricOperators = [\n {value:'eq', displayName: translator('filter.is_zero')},\n {value:'ne', displayName: translator('filter.is_not_zero')},\n {value:'gt', displayName:'>'},\n {value:'ge', displayName:'≥'},\n {value:'lt', displayName:'<'},\n {value:'le', displayName:'≤'}\n ];\n const handleDeleteRow = useCallback(() => { onDeleteRow(name); }, [onDeleteRow, name]);\n\n // state for lhsPicker\n const [ isLHSPickerOpen, setIsLHSPickerOpen ] = useState(false);\n\n // state for rhsPicker\n const [ isRHSPickerOpen, setIsRHSPickerOpen ] = useState(false);\n\n const onRowChange = (e, { isCategoryValue = false } = {}) => {\n const { target } = e;\n let newValue = { lhs, op, rhs };\n\n if (target.name === 'op') {\n newValue[target.name] = target.value.value;\n // force rhs if comparing a metric using an equality operator\n if (didUserSelectMetricComparedToZero(target.value.value, lhs?.fieldType)) {\n newValue.rhs = 0;\n }\n // force rhs if changing from using equality operator\n else if (didUserSelectMetricComparedToZero(op, lhs?.fieldType)) {\n newValue.rhs = isDuration(lhs?.type)\n ? { h: null, m: null, s: null}\n : null;\n }\n }\n else if (isCategoryValue) {\n newValue[target.name] = target.value.map((val) => val.name);\n }\n else {\n newValue[target.name] = target.value;\n }\n\n onChange({\n target: {\n name: name,\n value: newValue,\n }\n });\n };\n\n const onPickerChangeClosePicker = (e) => {\n const { target } = e;\n if (target.name === 'lhs') {\n setIsLHSPickerOpen(false);\n }\n else if (target.name === 'rhs') {\n setIsRHSPickerOpen(false);\n }\n onRowChange(e);\n };\n\n const selectedFieldDisplayName = lhs\n ? lhs.displayName\n : translator(\"editors.filter.dropdown_placeholder\", {value: translator('field_literal').toLowerCase()});\n\n // determine which collection to search to find selected operator\n let operatorList = categoryOperators;\n if (lhs?.fieldType === 'metric') {\n operatorList = metricOperators;\n }\n\n const selectedOp = operatorList.find((operator) => {\n return operator.value === op;\n });\n\n // only show value field if not comparing metric using equality operators\n let showValueField = ! didUserSelectMetricComparedToZero(selectedOp.value, lhs?.fieldType);\n\n // if not showing the value field force rhs to be zero\n if (! showValueField) {\n rhs = 0;\n }\n\n let valueField = null;\n\n if (showValueField && lhs && lhs.fieldType === 'category_value') {\n const valueOptions = categoryValueOptions[lhs.name] || [];\n\n // Create a lookup table of display names for use in the dropdown to\n // prevent us from looping through the options list over and over\n // again to generate the list of display values.\n //\n const displayNameMap = valueOptions.reduce((acc, valueOption) => {\n return valueOption.entries.reduce((displayMap, entry) => {\n displayMap[entry.name] = entry.displayName;\n return displayMap;\n }, acc);\n }, {});\n\n const selectedValue = rhs;\n let selectedValueDisplayName = selectedValue.reduce((result, x) => {\n if (result) {\n result += ', ';\n }\n result += (displayNameMap[x] || translator('unknown_field_literal') );\n return result;\n }, '');\n\n if (selectedValue.length > 1) {\n selectedValueDisplayName = `(${selectedValue.length}) ${selectedValueDisplayName}`;\n }\n else if (selectedValue.length === 0) {\n selectedValueDisplayName = translator(\"editors.filter.dropdown_placeholder\", {value: translator('value_literal').toLowerCase()});\n }\n\n const fieldSelectListValue = rhs.reduce((acc, rhsValue) => {\n // filter out any values that no longer exist\n if (displayNameMap[rhsValue]) {\n acc.push({\n name: rhsValue,\n });\n }\n\n return acc;\n }, []);\n\n valueField = (\n { setIsRHSPickerOpen(false); }}\n renderContent={() =>{\n return ( onRowChange(e, { isCategoryValue: true })}\n />);\n }}\n >\n { setIsRHSPickerOpen(true); }}\n isPlaceholderText={selectedValue.length === 0}\n >\n {selectedValueDisplayName}\n \n \n );\n }\n else if (showValueField && isDuration(lhs?.type)) {\n valueField = (\n \n );\n }\n else if (showValueField && lhs && (lhs.type === 'double' || lhs.type == 'uint64' || lhs.type == 'id')) {\n let precision;\n\n if (lhs.type == 'uint64' || lhs.type == 'id' || lhs.subType === 'count') {\n precision = 0;\n }\n else if (lhs.subType == 'cycle' || lhs.subType == 'rate' || lhs.subType == 'rate_per_hour') {\n precision = 2;\n }\n else {\n precision = 1;\n }\n\n valueField = (\n \n );\n }\n else if (showValueField && lhs) {\n console.error(`Metric with mysterious type and subtype combo: type:${lhs.type} subType:${lhs.subType}`);\n valueField = 'Error: No Field Found';\n }\n\n const opName = selectedOp.displayKey ? translator(selectedOp.displayKey) : selectedOp.displayName;\n\n const renderDeleteButton = () => {\n if (allowDelete) {\n return (\n \n \n \n \n \n );\n }\n };\n\n return (\n \n \n \n { setIsLHSPickerOpen(false); }}\n renderContent={() => {\n return ();\n }}\n >\n { setIsLHSPickerOpen(true); }}\n >\n {selectedFieldDisplayName}\n \n \n \n \n \n \n \n {valueField}\n \n \n {renderDeleteButton()}\n \n );\n}\n\nExpressionRow.propTypes = {\n name: PropTypes.string.isRequired,\n lhs: PropTypes.shape({\n name: PropTypes.string.isRequired,\n channel: PropTypes.string.isRequired,\n displayName: PropTypes.string.isRequired,\n fieldType: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired,\n subType: PropTypes.string,\n }).isRequired,\n op: PropTypes.string.isRequired,\n rhs: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.number,\n PropTypes.array,\n ]),\n onDeleteRow: PropTypes.func.isRequired,\n onChange: PropTypes.func.isRequired,\n categoryOptions: PropTypes.array,\n categoryValueOptions: PropTypes.object.isRequired,\n metricOptions: PropTypes.array,\n allowDelete: PropTypes.bool.isRequired,\n error: PropTypes.shape({\n rhs: PropTypes.any,\n }),\n};\n\nExpressionRow.defaultProps = {\n categoryOptions: [],\n metricOptions: [],\n allowDelete: true,\n};\n","import React, { useState, useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport BasicSelectField from 'Common/components/BasicSelectField/BasicSelectField.js';\nimport Button from 'Common/components/Button/Button.js';\nimport Dropdown from 'Common/components/Dropdown/Dropdown.js';\nimport FieldBuilderSelect from 'Common/components/FieldBuilder/FieldBuilderSelect';\nimport InfoCircle from 'Common/components/InfoCircle';\nimport NoDataMessage from 'Common/components/NoDataMessage/NoDataMessage.js';\nimport { useTranslator } from 'Common/hooks/useTranslation';\n\nimport {\n ExpressionInfoContainer, FieldContainer, OperatorContainer, DeleteButtonContainer, ExpressionRow\n} from './internal/ExpressionRow';\n\nimport { RadioButton, RadioButtonGroup } from 'Common/components/RadioButton';\nimport { Body4, Heading4, FontWeight } from 'Common/components/typography';\n\nconst Root = styled.div`\n width: 375px;\n padding: 0;\n display:flex;\n flex-direction: column;\n min-height: 1px;\n /* The 'flex' below is required or else the ValidatedLiveControl will not\n handle overflow properly. */\n flex: 1 0 auto;\n`;\n\nconst ButtonContainer = styled.div`\n box-sizing: border-box;\n min-height: 44px;\n min-width: 44px;\n display: flex;\n align-items: center;\n flex: 0 0 auto;\n`;\n\nconst TitleContainer = styled.div`\n display: flex;\n color: ${props => props.theme.colors.palette.blue.awesome};\n font-weight: ${FontWeight.medium};\n flex: 0 0 auto;\n\n align-items: center;\n`;\n\nconst ExpressionsContainer = styled.div`\n overflow-y: auto;\n flex: 1 1 auto;\n`;\n\nconst TextContainer = styled.div`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-align: left;\n`;\n\nconst EmptyExpressionsTextContainer = styled.div`\n padding: 5px 0 0px 5px;\n`;\n\nconst CombinedFilterContainer = styled.div`\n padding-bottom: 10px;\n padding-right: 10px;\n`;\n\nconst Separator = styled.div`\n border-top: 1px solid ${({ theme }) => theme.colors.separator};\n`;\n\nconst CommentsContainer = styled.div`\n`;\n\nconst CommentsContainerTitle = styled.div`\n margin-bottom: 5px 0px;\n color: ${\n ({disabled,theme}) =>\n disabled ? theme.colors.darkText.disabled : theme.colors.darkText.highEmphasis\n };\n`;\n\nconst StyledRadioButtonGroup = styled(RadioButtonGroup)`\n padding-left: 10px;\n`;\n\nfunction getDefaultRhsValue(selectedExpression) {\n const { fieldType } = selectedExpression;\n\n if (fieldType === 'category_value') {\n return [];\n }\n else if (fieldType === 'metric') {\n // create new metric expression with a default value of zero \n return 0;\n }\n}\n\n/**\n * Control used to update the filter property of an ExplorationPath.\n * Intended to be used via the useFilterBuilder hook.\n *\n * @see useFilterBuilder\n */\nexport default function FilterBuilder(props) {\n const {\n categoryOptions,\n metricOptions,\n noMetricOptionsMsg,\n categoryValueOptions,\n value,\n onChange,\n error,\n allowDelete,\n combineTypes,\n } = props;\n\n const translator = useTranslator();\n const disableCommentsToInclude = (0 < value.slice.expressions.length);\n const withAllCommentsSelected = !!(value?.showEvents?.with_all_comments_within_time);\n const categoryOptionsInternal = useMemo(() => (\n withAllCommentsSelected ? [] : categoryOptions\n ), [withAllCommentsSelected, categoryOptions]);\n const noCategoryOptionsMsg = withAllCommentsSelected ? translator('control.filter.invalid_filters.category') : '';\n\n // state for Add Expression picker\n const [ isAddExpressionOpen, setIsAddExpressionOpen ] = useState(false);\n\n const openAddExpression = useCallback(() => {\n setIsAddExpressionOpen(true);\n }, [setIsAddExpressionOpen]);\n\n const closeAddExpression = useCallback(() => {\n setIsAddExpressionOpen(false);\n }, [setIsAddExpressionOpen]);\n\n const handleChange = useCallback((newValue) => {\n onChange({\n target: {\n value: newValue,\n },\n });\n }, [onChange]);\n\n const handleAddExpression = useCallback((event) => {\n closeAddExpression();\n\n const selectedField = event.target.value;\n let expressionType = 'group';\n\n // [FUTURE HACK]\n // production_day_number/calendar_day_number/record_id/event_id\n // are metrics that should get placed in slice filters\n // and are currently set to internal so user can not select them\n if (selectedField.fieldType === 'category_value'\n || selectedField.name === 'production_day_number'\n || selectedField.name === 'calendar_day_number'\n || selectedField.name === 'record_id'\n || selectedField.name.endsWith('event_id')) {\n expressionType = 'slice';\n }\n\n const newValue = {\n ...value,\n [expressionType]: {\n ...value[expressionType],\n expressions: [\n {\n lhs: selectedField,\n op: 'eq',\n rhs: getDefaultRhsValue(selectedField),\n },\n ...value[expressionType].expressions\n ]\n }\n };\n\n handleChange(newValue);\n }, [closeAddExpression, value, handleChange]);\n\n const renderAddExpressionContent = useCallback(() => (\n \n ), [categoryOptionsInternal, withAllCommentsSelected, handleAddExpression, metricOptions]);\n\n const handleExpressionChange = useCallback((event) => {\n const { target } = event;\n const targetDetails = target.name.split('.');\n const expressionType = targetDetails[0];\n const expressionIndex = targetDetails[2];\n\n if(!value[expressionType]?.expressions[expressionIndex]) {\n console.error(`Cannot update expression ${expressionType} at index ${expressionIndex}, no expression was found.`);\n return;\n }\n\n let nextExpressions = [ ...value[expressionType].expressions ];\n let updatedExpression = { ...target.value };\n\n // clear rhs and set operator to equals if lhs changed\n if (target.value.lhs.name !== nextExpressions[expressionIndex].lhs.name) {\n updatedExpression.op = 'eq';\n updatedExpression.rhs = getDefaultRhsValue(target.value.lhs);\n }\n nextExpressions[expressionIndex] = updatedExpression;\n let updatedFilterSection = { ...value[expressionType], expressions: nextExpressions };\n\n handleChange({\n ...value,\n [expressionType]: updatedFilterSection\n });\n }, [value, handleChange]);\n\n const handleDeleteButtonClick = useCallback((expressionName) => {\n const targetDetails = expressionName.split('.');\n const expressionType = targetDetails[0];\n const expressionIndex = targetDetails[2];\n\n if(!value[expressionType]?.expressions[expressionIndex]) {\n console.error(`Cannot delete expression ${expressionType} at index ${expressionIndex}, no expression was found.`);\n return;\n }\n\n let nextExpressions = [ ...value[expressionType].expressions ];\n nextExpressions.splice(expressionIndex, 1);\n let updatedFilterSection = { ...value[expressionType], expressions: nextExpressions };\n\n handleChange({\n ...value,\n [expressionType]: updatedFilterSection\n });\n }, [value, handleChange]);\n\n const handleCombineTypeChange = (event) => {\n const expressionType = event.target.name;\n const newValue = event.target.value.value;\n const updatedFilterSection = { ...value[expressionType], combine_type: newValue };\n\n handleChange({\n ...value,\n [expressionType]: updatedFilterSection\n });\n };\n\n const addExpressionText = translator('add_expression_literal');\n\n const combineExpressionOptions = [\n {\n value: 'and',\n displayName: translator('editors.filter.combine_filter_options.all_true')\n },\n {\n value: 'or',\n displayName: translator('editors.filter.combine_filter_options.at_least_one_true')\n }\n ].filter((type) => {\n return combineTypes.includes(type.value);\n });\n\n const createFilterTitle = (type) => {\n let filterTitle = translator('dimensions_literal');\n let filterHelpText = translator('editors.filter.slice_filter_help_text');\n\n if (type === 'group') {\n filterTitle = translator('metrics_literal');\n filterHelpText = translator('editors.filter.group_filter_help_text');\n }\n\n return (\n \n {filterTitle}\n {filterHelpText}\n \n );\n };\n\n const createFilter = (type) => {\n const data = value[type];\n\n const expressions = data.expressions.map((item, index) => {\n const key = `${type}.expressions.${index}`;\n let expressionRowProps = {\n name: key,\n lhs: item.lhs,\n op: item.op,\n rhs: item.rhs,\n categoryValueOptions: (withAllCommentsSelected ? {} : categoryValueOptions),\n onChange: handleExpressionChange,\n onDeleteRow: handleDeleteButtonClick,\n allowDelete: allowDelete,\n error: error && error[type] && error[type][index] || null,\n };\n\n if (type === 'slice') {\n expressionRowProps.categoryOptions = categoryOptionsInternal;\n }\n else if (type === 'group') {\n expressionRowProps.metricOptions = metricOptions;\n }\n\n return (\n \n );\n });\n\n const renderCombineFilterContainer = () => {\n if (expressions.length > 1) {\n const selectedItem = combineExpressionOptions.find((x) => (x.value === data.combine_type));\n const itemName = selectedItem.displayKey ? translator(selectedItem.displayKey) : selectedItem.displayName;\n\n if (combineExpressionOptions.length > 1) {\n return (\n \n \n \n );\n }\n return (\n \n { combineExpressionOptions[0].displayName }\n \n );\n }\n };\n\n return (\n \n {renderCombineFilterContainer()}\n \n \n \n {translator('field_literal')}\n \n \n {translator('operator_copy')}\n \n \n {translator('value_literal')}\n \n \n \n \n \n {expressions.length > 0\n ? expressions\n : (\n \n \n \n )\n }\n \n \n );\n };\n\n const createNoOptionsMsg = (msg, noMessageType) => {\n return (\n \n \n \n );\n };\n\n const INCLUDE_EVENTS_ALL = 'include_events.all';\n const INCLUDE_EVENTS_DIRECTLY_LINKED = 'include_events.directly_linked';\n const INCLUDE_EVENTS_NOT_DIRECTLY_LINKED = 'include_events.not_directly_linked';\n\n /**\n * with_comments without_comments\n * ------------- ----------------\n * INCLUDE_EVENTS_ALL | true true\n * INCLUDE_EVENTS_DIRECTLY_LINKED | true false\n * INCLUDE_EVENTS_NOT_DIRECTLY_LINKED | false true\n */\n const onEventsRadioGroupChange = useCallback((event) => {\n let showEvents = { ...value.showEvents };\n\n switch (event.target.value) {\n case INCLUDE_EVENTS_ALL:\n showEvents.with_comments = true;\n showEvents.without_comments = true;\n break;\n case INCLUDE_EVENTS_DIRECTLY_LINKED:\n showEvents.with_comments = true;\n showEvents.without_comments = false;\n break;\n case INCLUDE_EVENTS_NOT_DIRECTLY_LINKED:\n showEvents.with_comments = false;\n showEvents.without_comments = true;\n break;\n }\n\n onChange({\n target: {\n value: {\n ...value,\n showEvents: showEvents,\n }\n }\n });\n }, [value, onChange]);\n\n let initialEventsValue = INCLUDE_EVENTS_ALL;\n\n // value.showEvents should only be present for EventListWidget\n if (value?.showEvents?.with_comments) {\n initialEventsValue =\n value?.showEvents?.without_comments ?\n INCLUDE_EVENTS_ALL : INCLUDE_EVENTS_DIRECTLY_LINKED;\n }\n else if (value?.showEvents?.without_comments) {\n initialEventsValue = INCLUDE_EVENTS_NOT_DIRECTLY_LINKED;\n }\n\n const INCLUDE_COMMENTS_ALL = 'include_comments.all';\n const INCLUDE_COMMENTS_DIRECTLY_LINKED = 'include_comments.directly_linked';\n\n /**\n * with_all_comments_within_time\n * -----------------------------\n * INCLUDE_COMMENTS_ALL | true\n * INCLUDE_COMMENTS_DIRECTLY_LINKED | false\n */\n const onCommentsRadioGroupChange = useCallback((event) => {\n let showEvents = { ...value.showEvents };\n\n switch (event.target.value) {\n case INCLUDE_COMMENTS_ALL:\n showEvents.with_all_comments_within_time = true;\n break;\n case INCLUDE_COMMENTS_DIRECTLY_LINKED:\n showEvents.with_all_comments_within_time = false;\n break;\n }\n\n onChange({\n target: {\n value: {\n ...value,\n showEvents: showEvents,\n }\n }\n });\n }, [value, onChange]);\n\n // value.showEvents should only be present for EventListWidget\n const initialCommentsValue =\n value?.showEvents?.with_all_comments_within_time ?\n INCLUDE_COMMENTS_ALL : INCLUDE_COMMENTS_DIRECTLY_LINKED;\n\n const separatorSpacing = 4;\n\n const categoryFilters = (categoryOptionsInternal.length || noCategoryOptionsMsg)\n ? (\n \n {createFilterTitle('slice')}\n {categoryOptionsInternal.length ? createFilter('slice', value) : createNoOptionsMsg(noCategoryOptionsMsg)}\n \n ) : null;\n\n const metricFilters = (metricOptions.length || noMetricOptionsMsg)\n ? (\n \n {createFilterTitle('group')}\n {metricOptions.length ? createFilter('group', value) : createNoOptionsMsg(noMetricOptionsMsg)}\n \n ) : null;\n\n return (\n \n \n \n \n {addExpressionText}\n \n \n \n \n {categoryFilters}\n {metricOptions.length && categoryOptionsInternal.length ? : null}\n {metricFilters}\n\n {/* value.showEvents should only be present for EventListWidget */}\n {value?.showEvents ?\n (\n \n \n \n {translator('comments')}\n {translator('control.filter.comments.tooltip')}\n \n \n \n {translator('control.filter.comments.include_events.title')}\n \n \n \n {translator(`control.filter.comments.${INCLUDE_EVENTS_ALL}`)}\n \n \n {translator(`control.filter.comments.${INCLUDE_EVENTS_DIRECTLY_LINKED}`)}\n \n \n {translator(`control.filter.comments.${INCLUDE_EVENTS_NOT_DIRECTLY_LINKED}`)}\n \n \n \n {translator('control.filter.comments.include_comments.title')}\n \n \n \n {translator(`control.filter.comments.${INCLUDE_COMMENTS_ALL}`)}\n \n \n {translator(`control.filter.comments.${INCLUDE_COMMENTS_DIRECTLY_LINKED}`)}\n \n \n {disableCommentsToInclude ? createNoOptionsMsg(translator('control.filter.comments.invalid_selection')) : null}\n \n \n )\n :\n null\n }\n \n );\n}\n\nconst filterProp = PropTypes.shape({\n expressions: PropTypes.arrayOf(\n PropTypes.shape({\n lhs: PropTypes.shape({\n name: PropTypes.string.isRequired,\n channel: PropTypes.string.isRequired,\n displayName: PropTypes.string.isRequired,\n fieldType: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired,\n subType: PropTypes.string,\n }),\n op: PropTypes.string.isRequired,\n rhs: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.number,\n PropTypes.array,\n ]),\n }).isRequired,\n ).isRequired,\n combine_type: PropTypes.string,\n});\n\nFilterBuilder.propTypes = {\n categoryOptions: PropTypes.array.isRequired,\n metricOptions: PropTypes.array.isRequired,\n noMetricOptionsMsg: PropTypes.string,\n categoryValueOptions: PropTypes.object.isRequired,\n value: PropTypes.shape({\n slice: filterProp.isRequired,\n group: filterProp.isRequired,\n showEvents: PropTypes.shape({\n with_all_comments_within_time: PropTypes.bool.isRequired,\n with_comments: PropTypes.bool.isRequired,\n without_comments: PropTypes.bool.isRequired,\n }),\n }).isRequired,\n onChange: PropTypes.func.isRequired,\n error: PropTypes.shape({\n slice: PropTypes.arrayOf(PropTypes.shape({\n rhs: PropTypes.any,\n })),\n group: PropTypes.arrayOf(PropTypes.shape({\n rhs: PropTypes.any,\n })),\n }),\n allowDelete: PropTypes.bool.isRequired,\n combineTypes: PropTypes.array.isRequired,\n};\n\nFilterBuilder.defaultProps = {\n noMetricOptionsMsg: '',\n allowDelete: true,\n combineTypes: ['and', 'or'],\n};\n","import validateNumber from 'Common/data/validateNumber';\n\nconst hmsTypeDisplayKeys = {\n h: 'hours_literal',\n m: 'minutes_literal',\n s: 'seconds_literal',\n};\n\n/**\n * Validation function for the common DurationField component.\n *\n * [FUTUREHACK]: The validation exists outside of Common for now as we don't have a common\n * way of handling translations.\n *\n * @param {Object} hmsValue Has h, m, and s components which should be numeral values.\n * @param {Object} [opts]\n * @param {Boolean} [opts.integral = false] If true the duration should be a whole number to\n * pass validation.\n * @param {Number} [opts.maxHours = MAX_SAFE_INT] The upper bound for a valid number of hours.\n * @param {Function} opts.translator String translator function.\n *\n * @returns {Object} Object with each key (h, m, or s) having an error if applicable. Returns\n * undefined if there are no validation errors.\n */\nexport default function validateDuration(hmsValue, { integral, maxHours = Number.MIN_SAFE_INTEGER, translator }) {\n let errors = {};\n\n Object.keys(hmsValue).forEach((key) => {\n const numberError = validateNumber(hmsValue[key] || 0, {\n min: 0,\n max: key === 'h' ? ( maxHours ) : 59,\n integral: (key !== 's') || integral,\n translator: translator,\n });\n\n if (numberError) {\n errors[key] = `${translator(hmsTypeDisplayKeys[key])}: ${numberError}`;\n }\n });\n\n return Object.keys(errors).length ? errors : undefined;\n}\n","import validateDuration from 'Common/data/validateDuration';\nimport validateNumber from 'Common/data/validateNumber';\n\n// Seconds is the underlying value so\n// we can't allow it to be greater than\n// what's safe.\nconst maxHours = Math.trunc(Number.MAX_SAFE_INTEGER / 3600);\n\nexport default function validateFilters(filters, translator) {\n let errors = {};\n\n const validateExpression = (exp) => {\n const { fieldType, type, subType } = exp.lhs;\n let rhsError;\n\n if (fieldType === 'metric') {\n if (type === 'time_span') {\n rhsError = validateDuration(exp.rhs, {\n integral: subType !== 'cycle_time',\n maxHours,\n translator: translator,\n });\n }\n else {\n const integral = type == 'uint64' || type == 'id' || subType === 'count';\n\n rhsError = validateNumber(exp.rhs, {\n integral,\n percentage: subType === 'percent',\n allowEmpty: true,\n translator: translator,\n });\n }\n }\n\n return rhsError ? {\n rhs: rhsError,\n } : undefined;\n };\n\n const sliceErrors = filters.slice.expressions.map(validateExpression);\n const groupErrors = filters.group.expressions.map(validateExpression);\n\n if (sliceErrors?.find(error => (error))) {\n errors.slice = sliceErrors;\n }\n\n if (groupErrors?.find(error => (error))) {\n errors.group = groupErrors;\n }\n\n return errors.slice || errors.group ? errors : undefined;\n}\n","import PropTypes from 'prop-types';\nimport React, { useMemo, useCallback, forwardRef } from 'react';\nimport styled from 'styled-components';\n\nimport InvalidLiveControlDialog from 'Common/components/LiveControlBar/InvalidLiveControlDialog';\nimport ValidatedLiveControl from 'Common/components/LiveControlBar/ValidatedLiveControl';\n\nimport { secondsToHms, hmsToSeconds } from 'Common/components/DurationField/hmsHelpers';\n\nimport FilterBuilder from 'Common/components/FilterBuilder/FilterBuilder';\nimport validateFilters from './internal/validateFilters';\nimport useTranslation, { useTranslator } from 'Common/hooks/useTranslation';\nimport Filters from 'Common/types/Filters/Filters';\n\nconst DEFAULT_COMBINE_TYPE = 'and';\n\nfunction addColumnInfoToFilters({ filters, categoryOptions, metricOptions }) {\n\n // Combine all category and metric options into a two-level object for\n // quick lookup. First keyed by channel, then by name.\n\n const filterLhsOptions = {};\n\n [ ...categoryOptions, ...metricOptions ].forEach((group) => {\n group.entries.forEach((entry) => {\n if (!filterLhsOptions[entry.channel]) {\n filterLhsOptions[entry.channel] = {};\n }\n\n filterLhsOptions[entry.channel][entry.name] = entry;\n });\n }, []);\n\n return {\n ...filters,\n slice: {\n combine_type: filters.slice?.combine_type || DEFAULT_COMBINE_TYPE,\n expressions: (filters.slice?.expressions || []).map((exp) => {\n const lhsOption = filterLhsOptions[exp.lhs.channel]?.[exp.lhs.name];\n\n return {\n lhs: lhsOption,\n op: exp.op,\n rhs: exp.rhs || [],\n };\n }),\n },\n group: {\n combine_type: filters.group?.combine_type || DEFAULT_COMBINE_TYPE,\n expressions: (filters.group?.expressions || []).map((exp) => {\n const lhsOption = filterLhsOptions[exp.lhs.channel]?.[exp.lhs.name];\n\n return {\n lhs: lhsOption,\n op: exp.op,\n rhs: exp.rhs,\n };\n }),\n }\n };\n}\n\nfunction convertFromInitialValue(filters) {\n let convertedFilters = {};\n\n Object.entries(filters).forEach(([type, filter]) => {\n if ('expressions' in filter) {\n convertedFilters[type] = {\n ...filter,\n expressions: filter.expressions.map((exp) => {\n if (exp?.lhs?.type === 'time_span') {\n return {\n ...exp,\n rhs: secondsToHms(exp.rhs || 0),\n };\n }\n else {\n return exp;\n }\n })\n };\n }\n else {\n convertedFilters[type] = filter;\n }\n });\n\n return convertedFilters;\n}\n\nfunction convertToOutgoingValue(filters) {\n const {\n slice: sliceFilters,\n group: groupFilters,\n ...convertedFilters\n } = filters;\n\n // Convert slice filters.\n //\n\n const sliceFilterExpressions = Array.isArray(sliceFilters?.expressions)\n ? sliceFilters.expressions\n : [];\n\n convertedFilters.slice = {\n combine_type: sliceFilters.combine_type || DEFAULT_COMBINE_TYPE,\n expressions: sliceFilterExpressions.filter((exp) => exp.lhs).map((exp) => {\n return {\n lhs: {\n name: exp.lhs.name,\n channel: exp.lhs.channel,\n },\n op: exp.op,\n rhs: Array.isArray(exp.rhs) ?\n exp.rhs.map((rhsPart) => {\n // Only include the name for objects with a name field\n return rhsPart?.name ? rhsPart.name : rhsPart;\n })\n : [],\n };\n }),\n };\n\n // Convert group filters.\n //\n\n const groupFilterExpressions = Array.isArray(groupFilters?.expressions) ?\n groupFilters.expressions\n : [];\n\n convertedFilters.group = {\n combine_type: groupFilters.combine_type || DEFAULT_COMBINE_TYPE,\n expressions: groupFilterExpressions.filter((exp) => exp.lhs).map((exp) => {\n let newRhs = exp.rhs;\n\n if (exp.lhs.type === 'time_span') {\n // Time spans must be converted from hms object back into\n // a number.\n\n // Allow rhs to be a raw zero as opposed to an hms object.\n if (exp.rhs === 0) {\n newRhs = 0;\n }\n else {\n newRhs = hmsToSeconds(exp.rhs);\n }\n }\n else if (exp.rhs === undefined) {\n // Prefer null over undefined for filters.\n return {\n ...exp,\n rhs: null,\n };\n }\n\n return {\n lhs: {\n name: exp.lhs.name,\n channel: exp.lhs.channel,\n },\n op: exp.op,\n rhs: newRhs,\n };\n }),\n };\n\n return convertedFilters;\n}\n\nconst FilterBuilderContainer = styled.div`\n padding: 0 12px;\n`;\n\nconst FilterControl = forwardRef((props, ref) => {\n const {\n initialValue,\n onApply,\n onCancel,\n categoryOptions,\n metricOptions,\n noMetricOptionsMsg,\n categoryValueOptions,\n allowDelete,\n combineTypes,\n } = props;\n\n const convertedInitialValue = useMemo(() => {\n const initialValueWithColumnInfo = addColumnInfoToFilters({\n filters: initialValue,\n categoryOptions,\n metricOptions,\n });\n\n return convertFromInitialValue(initialValueWithColumnInfo);\n }, [ initialValue, categoryOptions, metricOptions ]);\n\n const translator = useTranslator();\n const validate = useCallback((value) => {\n const validFilters = {\n ...value,\n slice: {\n ...value.slice,\n expressions: value.slice.expressions.filter((expression) => {\n if (expression.lhs) {\n return expression;\n }\n })\n }\n };\n \n return validateFilters(validFilters, translator);\n }, [ translator ]);\n\n const handleApply = useCallback((event) => {\n onApply({\n target: {\n value: convertToOutgoingValue(event.target.value),\n },\n });\n }, [ onApply ]);\n\n const invalidChangesPopupTitleLiteral = useTranslation('editors.filter.invalid_changes_popup.title');\n const invalidChangesPopupMessageLiteral = useTranslation('editors.filter.invalid_changes_popup.message');\n\n return (\n {\n return (\n \n \n \n );\n }}\n renderInvalidDialog={({ onContinue, onCancel: onDialogCancel }) => {\n return (\n \n );\n }}\n />\n );\n});\n\nFilterControl.displayName = 'FilterControl';\n\nFilterControl.propTypes = {\n initialValue: Filters.propType.isRequired,\n onApply: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired,\n categoryOptions: PropTypes.array.isRequired,\n metricOptions: PropTypes.array.isRequired,\n noMetricOptionsMsg: PropTypes.string,\n categoryValueOptions: PropTypes.object.isRequired,\n allowDelete: PropTypes.bool.isRequired,\n combineTypes: PropTypes.array.isRequired,\n};\n\nFilterControl.defaultProps = {\n allowDelete: true,\n combineTypes: ['and', 'or'],\n};\n\nexport default FilterControl;\n","/**\n * Converts from seconds to an hms (hours, minutes, seconds) object.\n *\n * Example:\n *\n * secondsToHms(65)\n * returns:\n * {\n * h: 0,\n * m: 1,\n * s: 5,\n * }\n *\n * @param {Number} seconds\n *\n * @returns {Object} with h,m,s properties representing hours, minutes, and seconds.\n */\nexport function secondsToHms(seconds) {\n let h = null;\n let m = null;\n let s = null;\n\n if (Number.isFinite(seconds)) {\n s = seconds % 60;\n m = ((seconds - s) / 60) % 60;\n h = ((seconds - (m * 60) - s)) / (60 * 60);\n }\n\n return {\n h,\n m,\n s,\n };\n}\n\nexport function hmsToSeconds({\n h,\n m,\n s,\n}) {\n if (Number.isFinite(h) || Number.isFinite(m) || Number.isFinite(s)) {\n return ((h || 0) * 60 * 60) + ((m || 0) * 60) + (s || 0);\n }\n else {\n return null;\n }\n}\n","import FilterControl from './FilterControl';\n\nexport default FilterControl;\n","import React, {\n useCallback,\n useState,\n} from 'react';\nimport DatePicker from \"react-datepicker\";\nimport \"react-datepicker/dist/react-datepicker.css\";\n\nimport styled from 'styled-components';\n\nimport PropTypes from 'prop-types';\nimport LiveControlDropdownHeader from 'Common/components/LiveControlBar/LiveControlDropdownHeader';\nimport LiveControlDropdownLayout from 'Common/components/LiveControlBar/LiveControlDropdownLayout';\nimport Checkbox from 'Common/components/Checkbox';\nimport LiveControlIcon from 'Common/components/LiveControlBar/LiveControlIcon';\nimport Icon from 'Common/components/Icon';\nimport useStackHistory from 'Common/hooks/useStackHistory';\nimport BasicSelectOption from 'Common/components/SelectList/BasicSelectOption';\nimport SelectList from 'Common/components/SelectList';\nimport SelectSeparator from 'Common/components/SelectList/SelectSeparator';\nimport { ProductionDay } from 'Common/data/date/ProductionDay';\nimport Button from 'Common/components/Button';\nimport { useTranslator } from 'Common/hooks/useTranslation';\n\nconst DatePickerWrapper = styled.div`\n align-self: center;\n`;\n\nconst CalendarContainer = styled.div`\n font-size: 12px;\n font-family: inherit;\n color: inherit;\n border-radius: 4px;\n\n .react-datepicker__current-month {\n font-size: 0.9em;\n font-family: inherit;\n }\n\n .react-datepicker__day-name,\n .react-datepicker__day,\n .react-datepicker__time-name {\n color: inherit;\n width: 25px;\n line-height: 25px;\n }\n\n .react-datepicker__day--keyboard-selected {\n color: inherit;\n background-color: transparent;\n }\n\n .react-datepicker__day--selected, .react-datepicker__day--in-selecting-range, .react-datepicker__day--in-range,\n .react-datepicker__month-text--selected,\n .react-datepicker__month-text--in-selecting-range,\n .react-datepicker__month-text--in-range,\n .react-datepicker__quarter-text--selected,\n .react-datepicker__quarter-text--in-selecting-range,\n .react-datepicker__quarter-text--in-range,\n .react-datepicker__year-text--selected,\n .react-datepicker__year-text--in-selecting-range,\n .react-datepicker__year-text--in-range,\n .react-datepicker__month-text--keyboard-selected,\n .react-datepicker__quarter-text--keyboard-selected,\n .react-datepicker__year-text--keyboard-selected {\n border-radius: 50%;\n background-color: ${({theme}) => theme.colors.palette.grey.ash};\n color: ${({theme}) => theme.colors.palette.grey.cloud};\n }\n\n .react-datepicker__day:hover,\n .react-datepicker__month-text:hover,\n .react-datepicker__quarter-text:hover,\n .react-datepicker__year-text:hover {\n border-radius: 50%;\n background-color: ${({theme}) => theme.colors.palette.grey.manatee};\n color: ${({theme}) => theme.colors.palette.grey.cloud};\n }\n\n .react-datepicker__header {\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n background-color: ${({theme}) => theme.colors.palette.grey.cloud};\n }\n\n .react-datepicker__navigation--previous {\n border-right-color: ${({theme}) => theme.colors.palette.grey.manatee};\n }\n\n .react-datepicker__navigation--previous:hover {\n border-right-color: ${({theme}) => theme.colors.palette.grey.ash};\n }\n\n .react-datepicker__navigation--previous--disabled, .react-datepicker__navigation--previous--disabled:hover {\n border-left-color: ${({theme}) => theme.colors.palette.grey.manatee};\n opacity: 50%;\n }\n\n .react-datepicker__navigation--next {\n border-left-color: ${({theme}) => theme.colors.palette.grey.manatee};\n }\n\n .react-datepicker__navigation--next:hover {\n border-left-color: ${({theme}) => theme.colors.palette.grey.ash};\n }\n\n .react-datepicker__navigation--next--disabled, .react-datepicker__navigation--next--disabled:hover {\n border-left-color: ${({theme}) => theme.colors.palette.grey.manatee};\n opacity: 50%;\n }\n`;\n\nconst DatePickerControl = styled.div`\n display: flex;\n flex-direction: column;\n\n padding: 12px;\n\n & > div {\n display: inline-block;\n }\n`;\n\nconst ApplyButton = styled(Button)`\n margin-top: 12px;\n align-self: flex-end;\n`;\n\nconst Root = styled.div`\n box-sizing: border-box;\n width: 275px;\n display: flex;\n flex-direction: column;\n min-height: 1px;\n color: ${({theme}) => theme.colors.darkText.highEmphasis};\n`;\n\nconst Separator = styled.div`\n border-bottom: 1px solid ${({theme}) => theme.colors.palette.grey.silver };\n margin: 3px 11px;\n`;\n\nconst StyledBasicSelectOption = styled(BasicSelectOption)`\n flex: 1 1 auto;\n`;\n\nconst OptionContentWrapper = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n`;\n\nconst StyledIcon = styled(Icon)`\n font-size: 9px;\n`;\n\nconst StyledCheckbox = styled(Checkbox)`\n padding-left: 18px;\n padding-right: 18px;\n`;\n\nconst INITIAL = 'initial';\n\n// These all look \"off by one\" as the start and end range is inclusive, so that\n// { start: -6, end: 0 }, is a seven day (one week) time range.\n//\nconst lastNOptions = {\n week: 6,\n month: 29,\n quarter: 89,\n year: 364,\n};\n\nconst staticMenuOptions = {\n 'this': {\n start: 0,\n end: 0,\n },\n 'last': {\n start: -1,\n end: -1,\n },\n '2_back': {\n start: -2,\n end: -2,\n },\n '3_back': {\n start: -3,\n end: -3,\n },\n};\n\nfunction getTimeRangeFromMenuOption(type, count = null) {\n if (type === 'last_n') {\n return {\n units: 'production_day',\n start: -count,\n end: 0,\n };\n }\n\n return { ...staticMenuOptions[type] };\n}\n\n// need to handle ordinal_shift same as shift\nfunction handleUnits(units) {\n if (units === 'ordinal_shift') {\n return 'shift';\n }\n else {\n return units;\n }\n}\n\nfunction getMenuOptionFromTimeRange(timeRangeValue, openMenuName) {\n const outer = handleUnits(timeRangeValue?.units);\n let menuOption = {\n outer,\n inner: undefined,\n };\n\n // First check if we are a \"same\" type\n if (timeRangeValue?.sameDimensionValue) {\n menuOption.inner = 'same';\n }\n // Then check if start and end match our static options\n else {\n const staticOption = Object.keys(staticMenuOptions).find((key) => {\n const staticTimeRange = staticMenuOptions[key];\n\n return timeRangeValue?.start === staticTimeRange.start\n && timeRangeValue?.end === staticTimeRange.end;\n });\n\n if (staticOption) {\n menuOption.inner = staticOption;\n }\n // If not, move on to the 'last_n' options if end is 0\n else if(timeRangeValue?.end === 0) {\n const matchingLastNKey = Object.keys(lastNOptions).find((lastNOptionKey) => {\n return timeRangeValue.start === -lastNOptions[lastNOptionKey];\n });\n\n if (matchingLastNKey) {\n menuOption.outer = matchingLastNKey;\n menuOption.inner = 'last_n';\n }\n }\n }\n\n // The outer menu does not match the currently selected menu,\n // therefore there must not be an inner menu option for this\n // menu selection.\n //\n if (menuOption.outer !== openMenuName) {\n delete menuOption.inner;\n }\n\n return menuOption;\n}\n\nexport default function TimeRangeControl(props) {\n const {\n monthLimited,\n isDayBased,\n showFollowPageCheckbox,\n dimensionValueDetails,\n\n selectionValue,\n followPageValue,\n onSelectionChange,\n onFollowPageChange,\n onSameOnlyOptionChange,\n } = props;\n\n const translator = useTranslator();\n\n const icon = (\n \n );\n\n // handles navigation between different controls\n const {\n current: shownItemProps,\n canPop: internalCanGoBack,\n push: transitionForward,\n pop: internalGoBack,\n } = useStackHistory({ name: INITIAL, props: {}});\n\n const shownItemName = shownItemProps.name;\n\n let title = translator('time_range_selector_dropdown.title');\n\n const [ customStartDate, setCustomStartDate] = useState(selectionValue?.units === 'time'\n ? new ProductionDay(selectionValue.start).toDate()\n : null\n );\n const [ customEndDate, setCustomEndDate] = useState(selectionValue?.units === 'time'\n ? new ProductionDay(selectionValue.end).toDate()\n : null\n );\n\n if (shownItemName === 'time') {\n title = translator('time_range_selector_dropdown.custom_dates');\n }\n else if (shownItemName !== INITIAL) {\n title = translator(`time_range_selector_dropdown.${shownItemName}.singular`);\n }\n\n let currentControl = null;\n\n const handleHeaderGoBack = internalCanGoBack ? internalGoBack : null;\n\n const handleInnerMenuSelection = useCallback((identifier, event) => {\n const { value: menuValue } = event.target;\n\n if (menuValue === 'same') {\n onSameOnlyOptionChange();\n }\n else if (identifier !== 'all') {\n let count = menuValue === 'last_n'\n ? lastNOptions[identifier]\n : undefined;\n\n const value = {\n units: identifier,\n ...getTimeRangeFromMenuOption(menuValue, count),\n };\n\n onSelectionChange({\n target: {\n value,\n },\n });\n }\n else if (identifier === 'all') {\n onSelectionChange({\n target: {\n value: {\n units: identifier,\n }\n },\n });\n }\n\n }, [onSelectionChange, onSameOnlyOptionChange]);\n\n const handleInitialMenuSelection = (event) => {\n const { value } = event.target;\n\n if (value === 'all') {\n handleInnerMenuSelection('all', event);\n }\n else if (value === 'time') {\n transitionForward(\n {name: value, props: {name: 'time'}}\n );\n }\n else {\n transitionForward(\n {name: value, props: {}},\n {name: INITIAL, props: {}}\n );\n }\n };\n\n let buildWrapper = function(identifier) {\n return (\n \n \n {translator(`time_range_selector_dropdown.${identifier}.singular`)}\n \n \n \n );\n };\n\n const followPageCheckbox = showFollowPageCheckbox\n ? (\n \n \n \n \n )\n : null;\n\n const currentMenuOption = getMenuOptionFromTimeRange(selectionValue, shownItemName);\n\n if (shownItemName === INITIAL) {\n currentControl = (\n \n {followPageCheckbox}\n \n {!isDayBased && buildWrapper('shift')}\n {!isDayBased && buildWrapper('part')}\n {!isDayBased && }\n {!isDayBased && buildWrapper('shift_hour')}\n {buildWrapper('production_day')}\n {buildWrapper('week')}\n {buildWrapper('month')}\n {!monthLimited && buildWrapper('quarter')}\n {!monthLimited && buildWrapper('year')}\n \n {!monthLimited && (\n \n {translator('time_range_selector_dropdown.all.singular')}\n \n )}\n \n \n {translator('time_range_selector_dropdown.custom_dates')}\n \n \n \n \n \n );\n }\n else if (shownItemName === 'time') {\n currentControl = (\n \n \n {\n const [newStartDate, newEndDate] = dates;\n setCustomStartDate(newStartDate);\n setCustomEndDate(newEndDate);\n }}\n openToDate={customStartDate ? customStartDate : undefined}\n startDate={customStartDate}\n endDate={customEndDate}\n inline\n selectsRange\n />\n \n {\n // The datepicker will give us dates that are midnight\n // of the selected date. Some locales can make this\n // a problem.\n //\n // For example, London's daylight savings\n // time offset is GMT+0100 and their standard time is\n // GMT+0000. Assume the browser's timezone is London,\n // and the current date is during standard time.\n // Constructing a Date for midnight on a date during\n // DST will assume the offset at that date.\n // So you will get something like the following:\n // >> new Date('2022-07-13T00:00:00').toISOString()\n // << '2022-07-12T23:00:00.000Z'\n // Notice how the date \"went back\" from the 13th to the\n // 12th. This is not good when the user is selecting\n // a date, not a time.\n //\n // Instead, we can extract the selected year+month+day\n // from the Date objects and use those to construct the\n // ProductionDay so we don't lose the date.\n\n const getProductionDayNumber = (d) => {\n return new ProductionDay(\n d.getFullYear(),\n d.getMonth() + 1,\n d.getDate(),\n ).getProductionDayNumber();\n };\n\n onSelectionChange({\n target: {\n value: {\n units: 'time',\n start: getProductionDayNumber(customStartDate),\n end: getProductionDayNumber(customEndDate)\n }\n }\n });\n }}\n >\n {translator('apply_literal')}\n \n \n );\n }\n else {\n const lastNStart = lastNOptions[shownItemName];\n\n let sameOnlyOption = null;\n const hasSameOnlyOption = ['shift', 'part'].includes(shownItemName);\n\n if (hasSameOnlyOption) {\n let sameOnlyKeyPart = !dimensionValueDetails?.isMixed && ( !dimensionValueDetails?.sameBackDetails?.key && dimensionValueDetails?.displayName )\n ? 'same_category_multi_asset'\n : 'same_category';\n let sameOnlyKeyParams = {\n category: translator(`time_range_selector_dropdown.${shownItemName}.singular`),\n };\n\n const correctSameBackDetails = handleUnits(dimensionValueDetails?.sameBackDetails?.units) === shownItemName\n && handleUnits(selectionValue?.units) === shownItemName;\n\n const shouldBeDisabled = !correctSameBackDetails\n || dimensionValueDetails?.isMixed\n || (!dimensionValueDetails?.sameBackDetails?.key || dimensionValueDetails?.sameBackDetails?.key === 'null');\n\n if (!shouldBeDisabled) {\n sameOnlyKeyParams = {\n category: dimensionValueDetails?.displayName,\n };\n }\n\n sameOnlyOption = [\n ,\n (\n \n {translator(`time_range_selector_dropdown.${sameOnlyKeyPart}`, sameOnlyKeyParams)}\n \n ),\n ];\n }\n\n currentControl = (\n handleInnerMenuSelection(shownItemName, e)}\n value={currentMenuOption.inner}\n >\n \n {translator(`time_range_selector_dropdown.${shownItemName}.this`)}\n \n \n \n {translator(`time_range_selector_dropdown.${shownItemName}.last`)}\n \n \n {translator(`time_range_selector_dropdown.${shownItemName}.2_back`)}\n \n \n {translator(`time_range_selector_dropdown.${shownItemName}.3_back`)}\n \n {lastNStart && [\n (),\n (\n {translator('time_range_selector_dropdown.last_n_days', {\n n: lastNStart + 1,\n })}\n )\n ]\n }\n {onSameOnlyOptionChange && sameOnlyOption}\n \n );\n }\n\n const header = (\n \n );\n const body = ({currentControl});\n\n return (\n \n );\n}\n\nTimeRangeControl.propTypes = {\n monthLimited: PropTypes.bool,\n isDayBased: PropTypes.bool,\n\n selectionValue: PropTypes.shape({\n units: PropTypes.string.isRequired,\n start: PropTypes.number,\n end: PropTypes.number,\n sameDimensionValue: PropTypes.string,\n }),\n\n showFollowPageCheckbox: PropTypes.bool,\n followPageValue: PropTypes.bool,\n onSelectionChange: PropTypes.func.isRequired,\n onFollowPageChange: PropTypes.func,\n\n dimensionValueDetails: PropTypes.shape({\n displayName: PropTypes.string,\n isMixed: PropTypes.bool,\n sameBackDetails: PropTypes.shape({\n key: PropTypes.string,\n units: PropTypes.string,\n }),\n }),\n onSameOnlyOptionChange: PropTypes.func\n};\n\nTimeRangeControl.defaultProps = {\n showFollowPageCheckbox: false,\n\n monthLimited: false,\n isDayBased: false,\n};\n","import TimeRangeControl from \"./TimeRangeControl\";\n\nexport default TimeRangeControl;\n","import React from 'react';\nimport LiveControl from 'Common/components/LiveControlBar/LiveControl';\nimport LiveControlIcon from 'Common/components/LiveControlBar/LiveControlIcon';\n\n/**\n * Simple function to render a element for duplicating a widget.\n *\n * @param {object} props\n * @param {string} props.name\n * @param {string} props.key React `key`\n * @param {function} props.action Called when the live control is clicked.\n * @param {function} props.translator\n *\n * @returns {React.ElementType}\n */\nexport default function renderDuplicateLiveControl({\n name,\n key,\n action,\n translator,\n}) {\n return (\n \n )}\n action={action}\n />\n );\n}\n","import React, { useCallback, useRef, useState, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport LiveControlBar from 'Common/components/LiveControlBar';\nimport LiveControl from 'Common/components/LiveControlBar/LiveControl';\nimport LiveControlIcon from 'Common/components/LiveControlBar/LiveControlIcon';\nimport LiveControlSeparator from 'Common/components/LiveControlBar/LiveControlSeparator';\nimport Filters from 'Common/types/Filters/Filters';\n\nimport useTranslation, { useTranslator } from 'Common/hooks/useTranslation';\n\nimport EnterpriseHierarchyControl from 'Common/components/LiveControls/EnterpriseHierarchyControl';\nimport FieldSelectControl from 'Common/components/LiveControls/FieldSelectControl';\nimport FilterControl from 'Common/components/LiveControls/FilterControl';\nimport TimeRangeControl from 'Common/components/LiveControls/TimeRangeControl';\nimport renderDuplicateLiveControl from 'Common/components/LiveControls/DuplicateLiveControl/renderDuplicateLiveControl';\n\n\nexport default function KPIWidgetLiveControls ({\n controller,\n suppressedControls,\n children,\n}) {\n const {\n metric,\n setMetric,\n metricOptions,\n\n filters,\n setSliceFilters,\n filterOptions,\n\n followPageTimeRange,\n timeRange,\n setTimeRange,\n\n followAppBarHierarchyNode,\n hierarchyNode,\n setHierarchyNode,\n hierarchyNodeOptions,\n\n isLayoutModeActive,\n duplicateWidget,\n } = controller;\n const translator = useTranslator();\n \n const [selectedControl, setSelectedControl] = useState(null);\n\n const closeSelectedControl = useCallback(() => {\n setSelectedControl(null);\n }, []);\n\n const hideControl = (controlName) => {\n // hide control there is a suppressed object and the control name is truthy within that\n // object\n return Boolean(suppressedControls && suppressedControls[controlName]);\n };\n\n const filterControlRef = useRef(null);\n\n const onFilterClose = useCallback(() => {\n return filterControlRef.current.onClose();\n }, []);\n\n const handleSelectionChange = useCallback((newSelection) => {\n let blockSelectionChange = false;\n\n if (selectedControl === 'filter' && newSelection !== 'filter') {\n blockSelectionChange = !onFilterClose();\n }\n\n if (!blockSelectionChange) {\n setSelectedControl(newSelection);\n }\n }, [onFilterClose, selectedControl]);\n\n // Filters\n //\n\n const activeFilterCount = useMemo(() => {\n return Filters.countActiveExpressions(filters);\n }, [filters]);\n\n const transformedFilterValue = useMemo(() => {\n // Enforce that ONLY slice filters are ever used.\n return {\n slice: filters.slice,\n group: { expressions: [] },\n };\n }, [ filters ]);\n\n const handleFilterApply = useCallback((event) => {\n // Close the control when the filters are applied\n closeSelectedControl();\n\n // We only care about slice filters\n const newSliceFilters = event.target.value.slice;\n setSliceFilters(newSliceFilters);\n }, [closeSelectedControl, setSliceFilters]);\n\n // Metric\n //\n\n const transformedMetricValue = useMemo(() => {\n return {\n name: metric,\n };\n }, [metric]);\n\n const handleMetricChange = useCallback((event) => {\n // Close the control after picking a metric field\n handleSelectionChange(null);\n setMetric(event.target.value);\n }, [handleSelectionChange, setMetric]);\n\n // Hierarchy Node\n //\n\n const handleHierarchyNodeChange = useCallback((event) => {\n // Close the control after picking a node\n handleSelectionChange(null);\n setHierarchyNode(event.target.value);\n }, [handleSelectionChange, setHierarchyNode]);\n\n const handleFollowAppBarHierarchyNodeChange = useCallback((event) => {\n const newFollowAppBarHierarchyNode = event.target.value;\n\n let newHierarchyNode;\n\n if (newFollowAppBarHierarchyNode) {\n // Clear the hierarchy node\n newHierarchyNode = null;\n }\n else {\n // Set hierarchy node to default\n newHierarchyNode = 'self';\n }\n\n setHierarchyNode(newHierarchyNode);\n }, [setHierarchyNode]);\n\n // Time Range\n //\n\n const handleTimeRangeChange = useCallback((event) => {\n // Close the control after picking a time range\n handleSelectionChange(null);\n setTimeRange(event.target.value);\n }, [handleSelectionChange, setTimeRange]);\n\n const handleFollowPageTimeRangeChange = useCallback((event) => {\n const newFollowPageTimeRange = event.target.value;\n\n let newTimeRange;\n\n if (newFollowPageTimeRange) {\n // Clear the time range\n newTimeRange = null;\n }\n else {\n // Set time range to default\n newTimeRange = { units: 'shift', start: 0, end: 0 };\n }\n\n setTimeRange(newTimeRange);\n }, [setTimeRange]);\n\n const assetHierarchyLiteral = useTranslation('control.common.asset_hierarchy');\n const timeRangeLiteral = useTranslation('control.common.time_range');\n const kpiMetricLiteral = useTranslation('control.kpi.metric');\n const filterLiteral = useTranslation('control.common.filter');\n\n const showDuplicateControl = () => {\n return isLayoutModeActive && ! hideControl('duplicateWidget');\n };\n\n return (\n \n { hideControl('hierarchyNode') || \n {\n return (\n \n );\n }}\n icon={(\n \n )}\n />\n }\n { hideControl('timeRange') || \n {\n return (\n \n );\n }}\n icon={(\n \n )}\n />\n }\n \n { hideControl('field') || \n {\n return (\n \n );\n }}\n icon={(\n \n )}\n />\n }\n { hideControl('filter') || \n \n )}\n controlRender={() => {\n return (\n \n );\n }}\n />\n }\n {showDuplicateControl() && }\n {showDuplicateControl() && (\n renderDuplicateLiveControl({\n name: 'duplicateWidget',\n key: 'duplicateWidget',\n translator: translator,\n action: duplicateWidget,\n })\n )}\n {children}\n \n );\n}\n\nKPIWidgetLiveControls.propTypes = {\n name: PropTypes.string,\n controller: PropTypes.shape({\n metric: PropTypes.string.isRequired,\n setMetric: PropTypes.func.isRequired,\n metricOptions: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n displayName: PropTypes.string.isRequired,\n isDummyGroup: PropTypes.bool.isRequired,\n entries: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n displayName: PropTypes.string.isRequired,\n }).isRequired\n ).isRequired,\n }).isRequired\n ).isRequired,\n\n filters: PropTypes.object.isRequired,\n setSliceFilters: PropTypes.func.isRequired,\n filterOptions: PropTypes.shape({\n categories: PropTypes.arrayOf(\n PropTypes.object\n ).isRequired,\n values: PropTypes.object.isRequired,\n }).isRequired,\n\n followPageTimeRange: PropTypes.bool.isRequired,\n timeRange: PropTypes.object,\n setTimeRange: PropTypes.func.isRequired,\n\n followAppBarHierarchyNode: PropTypes.bool.isRequired,\n hierarchyNode: PropTypes.string,\n setHierarchyNode: PropTypes.func.isRequired,\n hierarchyNodeOptions: PropTypes.arrayOf(\n PropTypes.shape({\n displayName: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n iconClass: PropTypes.string.isRequired,\n level: PropTypes.number.isRequired,\n })\n ).isRequired,\n\n isLayoutModeActive: PropTypes.bool.isRequired,\n duplicateWidget: PropTypes.func.isRequired,\n }),\n suppressedControls: PropTypes.object,\n children: PropTypes.node,\n};\n\nKPIWidgetLiveControls.defaultProps = {};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nconst Container = styled.div`\n display: flex;\n flex-direction: row;\n padding: 12px;\n justify-content: center;\n`;\n\nconst Box = styled.div`\n border: 1px solid ${({theme}) => theme.colors.palette.grey.silver};\n padding: 10px;\n border-radius: 4px;\n`;\n\nexport default function WidgetValidationErrorMessage({ error }) {\n return (\n \n \n \n {error}\n \n \n \n );\n}\n\nWidgetValidationErrorMessage.propTypes = {\n error: PropTypes.string.isRequired,\n};\n","import React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nconst Box = styled.div``;\n\nconst Root = styled.div`\n margin-left: auto;\n margin-right: auto;\n\n font-size: ${({variant}) => {\n switch(variant) {\n case 'small': return '5px';\n case 'medium': return '8px';\n case 'large': return '12px';\n }\n }};\n\n ${Box} {\n display: inline-block;\n width: 1.2em;\n height: 2em;\n background-color: ${({theme}) => theme.colors.palette.blue.awesome};\n\n margin-left: 0.2em;\n margin-right: 0.2em;\n\n animation-name: box-grow;\n animation-duration: 1.6s;\n animation-timing-function: ease-in-out;\n animation-iteration-count: infinite;\n animation-direction: both;\n\n :nth-child(2) {\n animation-delay: 0.2s;\n }\n\n :nth-child(3) {\n animation-delay: 0.4s;\n }\n }\n\n @keyframes box-grow {\n 0%, 90%, 100% {\n transform: scale(0.4);\n }\n 50% {\n transform: scale(1.0);\n }\n }\n`;\n\nfunction LoadingIndicator({\n variant,\n ...otherProps\n}) {\n return (\n \n \n \n \n \n );\n}\n\nLoadingIndicator.propTypes = {\n variant: PropTypes.oneOf([\n 'small',\n 'medium',\n 'large',\n ]),\n};\n\nLoadingIndicator.defaultProps = {\n variant: 'medium',\n};\n\nexport default LoadingIndicator;\n","import LoadingIndicator from './LoadingIndicator';\n\nexport default LoadingIndicator;\n","import React from 'react';\nimport LoadingIndicator from 'Common/components/LoadingIndicator';\nimport styled from 'styled-components';\n\nconst Container = styled.div`\n display: flex;\n flex-direction: row;\n padding: 12px;\n justify-content: center;\n`;\n\nconst Box = styled.div`\n border: 1px solid ${({theme}) => theme.colors.palette.grey.silver};\n padding: 10px;\n border-radius: 4px;\n`;\n\nexport default function WidgetLoadingIndicator() {\n return (\n \n \n \n \n \n );\n}\n","import React from 'react';\nimport styled, { css } from 'styled-components';\nimport PropTypes from 'prop-types';\nimport { Body5 } from 'Common/components/typography';\nimport themeColors from 'Common/theme/default';\n\nconst LayoutWrapper = styled.div`\n box-sizing: border-box;\n display: inline-flex;\n max-width: 100%;\n position: relative;\n padding: auto;\n min-height: 1.3em;\n\n ${({ $canEdit }) => $canEdit && css`\n cursor: text;\n `}\n`;\n\nconst BaseTitle = styled(Body5)`\n color: ${props => props.textColor};\n border: none;\n border-bottom: 1px solid transparent;\n font-family: inherit;\n font-size: inherit;\n font-weight: inherit;\n overflow: hidden;\n`;\n\nconst StyledInputTitle = styled(BaseTitle).attrs(props => (\n {\n as: 'input',\n title: props.value,\n }))`\n border-bottom-color: ${({theme}) => theme.colors.palette.grey.ash};\n outline: none;\n padding: 0;\n position: absolute;\n width: 100%;\n text-overflow: ellipsis;\n transition: border-bottom-color .250s ease-in-out;\n\n :focus {\n border-bottom-color: ${({theme}) => theme.colors.palette.black};\n }\n :not(:focus) {\n ::placeholder {\n color: ${props => props.textColor};\n }\n }\n`;\n\nconst HiddenTitle = styled(BaseTitle).attrs(props => {\n let style = { minWidth: props.inputMinWidth };\n style.maxWidth = props.inputMaxWidth >= 0 ? props.inputMaxWidth : '100%';\n return {style};\n})`\n box-sizing: border-box;\n opacity: 0;\n white-space: pre;\n\n /* Be sure to pass through pointer events to not steal clicks from the input */\n pointer-events: none;\n`;\n\nconst ShownTitle = styled(BaseTitle).attrs(props => {\n let style = { minWidth: props.inputMinWidth };\n style.maxWidth = props.inputMaxWidth >= 0 ? props.inputMaxWidth : '100%';\n let attributes = {\n title: props.title ? props.title : undefined,\n style\n };\n return {attributes};\n})`\n color: ${props => props.textColor};\n position: absolute;\n text-overflow: ellipsis;\n white-space: pre;\n width: 100%;\n`;\n\n/**\n * This component horizontally resizes an input or span based on the given value\n * and the width limitations. Its attempts to inherit its typography from its parent\n * so create a wrapper component around it to define those properties.\n */\nexport default class AutoResizeTitle extends React.PureComponent {\n\n static propTypes = {\n canEdit: PropTypes.bool.isRequired,\n defaultTitleText: PropTypes.string,\n minWidth: PropTypes.number,\n maxWidth: PropTypes.number, /** if no maxWidth assume its 100% width */\n textColor: PropTypes.string,\n type: PropTypes.string.isRequired,\n value: PropTypes.string,\n\n onChange: PropTypes.func,\n };\n\n static defaultProps = {\n defaultTitleText: '',\n minWidth: 150,\n textColor: themeColors.colors.palette.black,\n value: '',\n\n onChange: () => {},\n };\n\n constructor(props) {\n super(props);\n\n this.inputEl = React.createRef();\n }\n\n _handleBlur = (event) => {\n\n if (this.inputEl.current) {\n this.inputEl.current.scrollLeft = 0;\n }\n\n // if we blur when the current value of the input is the empty string,\n // we want to change the value to match the placeholder so we don't\n // save the empty string value as the title\n if (!this.inputEl.current?.value && this.props.onChange)\n {\n this.props.onChange({\n target: {\n value: this._getPlaceholder(this.inputEl.current?.value, this.props.defaultTitleText)\n }\n });\n }\n };\n\n _handleClick = (event) => {\n // We are taking complete control over this click\n event.preventDefault();\n event.stopPropagation();\n\n if (this.props.canEdit && this.inputEl.current) {\n this.inputEl.current.focus();\n }\n };\n\n _getTitleValue = (value, defaultValue) => {\n // We want to preserve the empty string as a valid value\n // for the title if the user is actively editing it, so we\n // will not use the default value when actively editing the title\n return document.activeElement === this.inputEl.current\n ? value\n : value || defaultValue;\n };\n\n _getPlaceholder = (value, defaultValue) => {\n return value ? '' : defaultValue;\n };\n\n render() {\n const {\n canEdit,\n defaultTitleText,\n maxWidth,\n minWidth,\n onChange,\n textColor,\n value\n } = this.props;\n\n const placeholder = this._getPlaceholder(value, defaultTitleText);\n\n return (\n \n {canEdit\n ? \n : \n {value || defaultTitleText}\n \n }\n \n {this._getTitleValue(value, defaultTitleText)}\n \n \n );\n }\n}\n","import AutoResizeTitle from './AutoResizeTitle';\n\nexport default AutoResizeTitle;\n","import React from 'react';\nimport styled,{ css } from 'styled-components';\nimport PropTypes from 'prop-types';\n\nimport { Heading2, FontWeight } from 'Common/components/typography';\nimport isEmpty from 'lodash/isEmpty';\n\nimport AutoResizeTitle from \"Common/components/AutoResizeTitle\";\nimport Icon from 'Common/components/Icon';\nimport InfoCircle from 'Common/components/InfoCircle';\n\nconst Root = styled.div.attrs(props => {\n let style = {};\n\n style.paddingLeft = props.$isPrint\n ? '8px'\n : props.$isDragEnabled // Leave room for drag handle\n ? '0'\n : props.theme.layout.widget.horizontalPadding;\n\n style.paddingRight = props.$isPrint\n ? '8px'\n : props.theme.layout.widget.horizontalPadding;\n\n if (props.$isPrint) {\n style.paddingTop = '6px';\n }\n else {\n style.minHeight = 52;\n }\n\n return isEmpty(style) ? {} : {style};\n})`\n position: relative;\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n overflow: hidden;\n width: 100%;\n`;\n\nconst AssetTitleActionContainer = styled.div.attrs(props => {\n return props.isPrint ? {} : { style: { height: '44' } };\n})`\n min-width: 1px;\n flex: 1 1 auto;\n display: inline-flex;\n flex-direction: row;\n flex-wrap: nowrap;\n align-items: center;\n width: 100%;\n`;\n\nconst DragHandle = styled.div`\n flex: 0 0 auto;\n width: ${({theme}) => theme.layout.widget.horizontalPadding};\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 15px;\n color: ${({theme}) => theme.colors.darkText.mediumEmphasis};\n`;\n\nconst TextContainer = styled(Heading2).attrs(props => {\n let style = {};\n\n if (props.containerMinWidth) {\n style.minWidth = props.containerMinWidth;\n }\n\n if (props.isPrint) {\n style.fontSize = 12;\n }\n\n return { style };\n})`\n flex: 0 1 auto;\n display: inline-flex;\n align-items: center;\n`;\n\nconst TitleContainer = styled(TextContainer)`\n flex: 0 1 auto;\n`;\n\nconst AssetDisplay = styled.div.attrs(props => ({\n title: props.title ? props.title : undefined,\n}))`\n border: 1px solid transparent;\n color: ${props => props.hasError ? props.theme.colors.palette.error.red : props.theme.colors.palette.black };\n font-weight: ${FontWeight.regular};\n min-width: 1px;\n width: 100%;\n overflow: hidden;\n padding-left: .2em;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nconst frameTitleIconButtonWidth = 44;\nconst FrameTitleIconButton = styled.button`\n background: none;\n border: none;\n margin: 0;\n outline: none;\n padding: 0;\n\n display: inline-flex;\n align-items: center;\n justify-content: center;\n\n width: ${frameTitleIconButtonWidth}px;\n height: 44px;\n\n transition: background-color 0.25s;\n color: ${({theme}) => theme.colors.palette.grey.manatee};\n background-color: transparent;\n border-radius: 4px;\n\n &:hover {\n cursor: pointer;\n background-color: ${({ theme }) => theme.colors.palette.grey.cloud};\n }\n`;\n\nconst DeleteIconButton = styled(FrameTitleIconButton)`\n position: relative;\n right: -15px;\n`;\n\nconst ShowHideIcon = styled(Icon)`\n font-size: 14px;\n\n transition: transform 0.25s;\n\n ${({inverted}) => inverted && css`\n transform: rotate(-180deg);\n `}\n`;\n\nconst DeleteIcon = styled(Icon)`\n font-size: 14px;\n`;\n\nconst TimeRangeDisplayContainer = styled.div`\n padding-top: 9px;\n`;\n\nconst InfoCircleContainer = styled.div`\n height: 44px;\n padding-left: 9px;\n display: flex;\n align-items: center;\n`;\n\nconst assetMinWidth = 40;\n\nexport default function FrameTitle({\n assetError,\n assetValue,\n defaultTitleText,\n isPrint,\n showAsset,\n showDelete,\n shouldShowLiveControls,\n canEditTitle,\n showLiveControlsOnClick,\n showLiveControlsButton,\n titleValue,\n titleOnChange,\n infoTooltipContent,\n deleteOnClick,\n timeRangeDisplay,\n isDragEnabled,\n dragHandleProps,\n}) {\n const hasInfoCircle = !!infoTooltipContent;\n const minTitleWidth = isPrint ? 1 : 44;\n\n return (\n \n \n {isDragEnabled && (\n \n \n \n )}\n \n \n \n {showAsset && \n \n {assetValue}\n \n }\n {showLiveControlsButton && !isPrint && (\n \n \n \n )}\n \n {!!timeRangeDisplay && (\n \n {timeRangeDisplay}\n \n )}\n {hasInfoCircle && !isPrint && !showDelete && (\n \n \n {infoTooltipContent}\n \n \n )}\n {showDelete && (\n \n \n \n )}\n \n );\n}\n\nFrameTitle.propTypes = {\n assetValue: PropTypes.string,\n assetError: PropTypes.string,\n defaultTitleText: PropTypes.string,\n isPrint: PropTypes.bool.isRequired,\n shouldShowLiveControls: PropTypes.bool.isRequired,\n canEditTitle: PropTypes.bool.isRequired,\n showAsset: PropTypes.bool.isRequired,\n showDelete: PropTypes.bool.isRequired,\n showLiveControlsButton: PropTypes.bool.isRequired,\n titleValue: PropTypes.string,\n infoTooltipContent: PropTypes.node,\n\n showLiveControlsOnClick: PropTypes.func.isRequired,\n titleOnChange: PropTypes.func.isRequired,\n deleteOnClick: PropTypes.func.isRequired,\n\n assets: PropTypes.array,\n timeRangeDisplay: PropTypes.node,\n isDragEnabled: PropTypes.bool,\n dragHandleProps: PropTypes.object,\n};\n\nFrameTitle.defaultProps = {\n assetValue: '',\n assetError: '',\n defaultTitleText: '',\n showAsset: false,\n infoTooltipContent: '',\n isDragEnabled: false,\n dragHandleProps: {},\n\n deleteOnClick: () => {},\n showLiveControlsOnClick: () => {},\n titleOnChange: () => {},\n};\n","import React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nimport { Subheading2 } from 'Common/components/typography';\n\nimport AutoResizeTitle from \"Common/components/AutoResizeTitle\";\nimport Icon from 'Common/components/Icon';\nimport themeColors from 'Common/theme/default';\n\nconst Container = styled.div`\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n`;\n\nconst SectionContainer = styled.div`\n flex: 0 0 auto;\n padding-left: 7px;\n`;\n\nconst SectionAction = styled(Subheading2)`\n align-items: center;\n display: flex;\n height: 100%;\n .fa {\n cursor: pointer;\n transform: rotate(-45deg);\n }\n\n ${(props) => props.collapsed && `\n .fa {\n transform: rotate(-90deg);\n }\n `}\n`;\n\nconst TextContainer = styled(Subheading2).attrs(props => {\n let style = {};\n\n if (props.isPrint) {\n style.fontSize = 12;\n }\n\n return { style };\n })`\n flex: 1 1 auto;\n display: inline-flex;\n min-width: 1px;\n padding: 7px 0;\n`;\n\n\nfunction SectionFrameTitle (props) {\n return (\n \n \n \n {!props.isPrint && }\n \n \n \n \n \n \n );\n}\n\nSectionFrameTitle.propTypes = {\n isCollapsed: PropTypes.bool.isRequired,\n isPrint: PropTypes.bool.isRequired,\n titleValue: PropTypes.string.isRequired,\n\n sectionOnClick: PropTypes.func.isRequired,\n};\n\nexport default React.memo(SectionFrameTitle);\n","import React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nimport { Body5 } from 'Common/components/typography';\nimport Icon from 'Common/components/Icon';\n\nconst Container = styled.div`\n position: relative;\n display: block;\n flex-direction: row;\n flex-wrap: nowrap;\n overflow: hidden;\n width: 100%;\n`;\n\nconst StyledText = styled(Body5)`\n padding-left: 15px; \n color: ${({theme}) => theme.colors.palette.grey.manatee };\n`;\n\nconst StyledIcon = styled(Icon)`\n font-size: 9px;\n margin-right: 6px;\n`;\n\n\n/**\n * Container for TimeRange title and detail.\n * Rendered when containing FrameHeader width shrinks beyond a specified breakpoint\n */\nexport default function TimeRangeDisplaySmall({\n title,\n detail\n}) \n{\n return (\n \n \n \n {title} {detail}\n \n \n );\n}\n\nTimeRangeDisplaySmall.propTypes = {\n title: PropTypes.string,\n detail: PropTypes.string,\n};\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { Heading4 } from 'Common/components/typography';\nimport { generateFilterExpressionText, HUMAN_READABLE } from 'Common/components/FilterBuilderText/FilterBuilderUtils';\nimport { useTranslator } from 'Common/hooks/useTranslation';\n\nconst expressionIndent = 10;\n\n/**\n * Take the formatted filters and expand them to a pretty format.\n * ie\n * ( a = 1 )\n * AND\n * (\n * ( b = 2 )\n * OR\n * ( c = 3 )\n * )\n */\n\nfunction FilterBuilderPrettyFormat({\n formattedFilters,\n}) {\n const translator = useTranslator();\n\n const prettyFormattedText = useMemo(() => {\n const numberOfFilters = formattedFilters.length;\n const hasMultipleFilters = numberOfFilters > 1;\n\n return formattedFilters\n .map(({ expressions, combine_type }, filterIndex) => {\n const combineType = combine_type || 'or';\n\n // [FUTURUEHACK] combine_type:custom does not yet exist\n if (combineType === 'custom') {\n throw 'This functionality has not yet been implemented';\n }\n\n const hasMultipleExpressions = expressions.length > 1;\n const expandedExpressions = expressions.reduce((expandedExps, exp, expIndex) => {\n let expressionText = generateFilterExpressionText(exp, HUMAN_READABLE, translator);\n const paddingLeft = hasMultipleFilters ? expressionIndent : 0;\n\n if (hasMultipleExpressions) {\n if (expIndex > 0) {\n expandedExps.push((\n
    {translator(`filter.${combineType}`).toUpperCase()}
    \n ));\n }\n expressionText = `( ${expressionText} )`;\n }\n\n expandedExps.push((\n
    {expressionText}
    \n ));\n\n return expandedExps;\n }, []);\n\n if (hasMultipleFilters) {\n return (\n
    \n {'( '}\n {expandedExpressions}\n {' )'}\n {numberOfFilters !== (filterIndex + 1)\n ?
    {translator(`filter.and`).toUpperCase()}
    \n : null\n }\n
    \n );\n }\n else {\n return expandedExpressions;\n }\n });\n }, [formattedFilters, translator]);\n\n return (\n
    \n {translator('filter.title')}\n
    \n {prettyFormattedText}\n
    \n );\n}\n\nFilterBuilderPrettyFormat.propTypes = {\n formattedFilters: PropTypes.arrayOf(\n PropTypes.shape({\n expressions: PropTypes.arrayOf(\n PropTypes.shape({\n lhs: PropTypes.any.isRequired,\n op: PropTypes.any.isRequired,\n rhs: PropTypes.any.isRequired,\n })\n ).isRequired,\n combine_type: PropTypes.oneOf(['and', 'or'])\n })\n ).isRequired,\n};\n\nexport default FilterBuilderPrettyFormat;\n","import React, { useMemo } from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport { Body5 } from 'Common/components/typography';\nimport Icon from 'Common/components/Icon';\nimport { TouchableTooltipTarget } from 'Common/components/Tooltip';\nimport { generateFilterText, HUMAN_READABLE } from 'Common/components/FilterBuilderText/FilterBuilderUtils';\nimport { useTranslator } from 'Common/hooks/useTranslation';\nimport FilterBuilderPrettyFormat from './FilterBuilderPrettyFormat';\n\nconst StyledText = styled(Body5)`\n color: ${({theme}) => theme.colors.palette.grey.manatee };\n`;\n\nconst StyledIcon = styled(Icon)`\n font-size: 9px;\n margin-right: 6px;\n`;\n\nconst HelpText = styled.span`\n border-bottom: 1px dashed ${({theme}) => theme.colors.palette.heatMap.green};\n cursor: pointer;\n`;\n\nconst FilterBuilderTextContainer = styled.div`\n padding: 0 ${({theme}) => theme.layout.widget.horizontalPadding };\n min-height: 19px;\n max-width: 300px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\n\nfunction FilterBuilderText({\n formattedFilters\n}) {\n const translator = useTranslator();\n\n const tooltipContent = ();\n\n const helpText = useMemo(() => {\n return generateFilterText(formattedFilters, HUMAN_READABLE, translator);\n }, [formattedFilters, translator]);\n\n return (\n \n \n \n \n {helpText}\n \n \n \n );\n}\n\nFilterBuilderText.propTypes = {\n formattedFilters: PropTypes.array.isRequired\n};\n\nexport default FilterBuilderText;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport Icon from 'Common/components/Icon';\n\nimport { Heading3, Body4, FontWeight, FontSize } from 'Common/components/typography';\n\nconst StyledPrimary = styled.span`\n text-align: right;\n min-width: 250px;\n`;\n\nconst StyledPrimaryTitle = styled(Heading3)``;\n\nconst StyledPrimaryDetails = styled(Heading3)`\n font-weight: ${FontWeight.medium}\n`;\n\n\nconst StyledSubtitle = styled(Body4)`\n text-align: right;\n display: block;\n color: ${({theme}) => theme.colors.darkText.mediumEmphasis };\n`;\n\nconst PaddedIcon = styled(Icon)`\n font-weight: ${FontWeight.medium};\n font-size: ${FontSize.size3}px;\n padding: 0 6px;\n`;\n\nconst Root = styled.span`\n width: 100%;\n display: inline-block;\n vertical-align: middle;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n text-align: right;\n cursor: ${props => props.isDropdownTrigger ? \"pointer\" : \"inherit\"};\n user-select: none;\n\n &:hover {\n background-color: ${({isDropdownTrigger, theme}) => isDropdownTrigger ? theme.colors.palette.grey.cloud : \"inherit\"};\n }\n`;\n\nexport default function TimeRangeDisplay(props) {\n const {\n description,\n isDropdownTrigger,\n onClick,\n } = props;\n\n const { primary, secondary } = description;\n\n return(\n \n \n \n {primary.title}\n \n {\n primary.detail &&\n {primary.detail}\n }\n \n {\n isDropdownTrigger &&\n \n }\n {secondary.title}\n \n );\n}\n\nTimeRangeDisplay.propTypes = {\n description: PropTypes.shape({\n primary: PropTypes.shape({\n title: PropTypes.string.isRequired,\n detail: PropTypes.string.isRequired,\n }).isRequired,\n secondary: PropTypes.shape({\n title: PropTypes.string.isRequired,\n }).isRequired,\n }),\n isDropdownTrigger: PropTypes.bool,\n onClick: PropTypes.func,\n};\n\nTimeRangeDisplay.defaultProps = {\n isDropdownTrigger: false,\n onClick: () => { },\n};\n","import React, { useState, useCallback, useMemo } from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nimport FrameTitle from 'Common/components/WidgetFrame/FrameTitle';\nimport SectionFrameTitle from 'Common/components/WidgetFrame/SectionFrameTitle';\nimport TimeRangeDisplaySmall from 'Common/components/TimeRangeSelector/TimeRangeDisplaySmall';\nimport FilterBuilderText from 'Common/components/FilterBuilderText/FilterBuilderText';\nimport TimeRangeDisplay from 'Common/components/TimeRangeSelector/TimeRangeDisplay';\n\nimport useBounds from 'Common/hooks/useBounds';\nimport { useTranslator } from 'Common/hooks/useTranslation';\n\nconst Container = styled.div`\n position: relative;\n display: block;\n flex-direction: row;\n flex-wrap: nowrap;\n overflow: hidden;\n width: 100%;\n`;\n\nconst FilterBuilderTextContainer = styled.div`\n padding: 0 ${({theme}) => theme.layout.widget.horizontalPadding };\n min-height: 19px;\n`;\n\n/**\n * Container for FrameTitle, TimeRangeSmall, and FilterBuilderTextContainer. Added to manage time range visibility on resizing of widgets \n */\nexport default function FrameHeader({\n hierarchyNodes,\n hierarchyNodeValue,\n defaultTitleText,\n isPrint,\n showAsset,\n showDelete,\n shouldShowLiveControls,\n canEditTitle,\n showLiveControlsOnClick,\n showLiveControlsButton,\n titleValue,\n titleOnChange,\n infoTooltipContent,\n deleteOnClick,\n isSectionFrameTitle,\n isCollapsed,\n sectionOnClick,\n formattedFilters,\n isDragEnabled,\n dragHandleProps,\n timeRangeDescription,\n})\n{\n const [container, setContainer] = useState(null);\n const containerBounds = useBounds(container);\n const translator = useTranslator();\n\n const timeRangeBreakpointWidth = 500;\n const doesTimeRangeFit = containerBounds?.width > timeRangeBreakpointWidth;\n\n const { assetValue, assetError } = useMemo(() => {\n const fullHierarchyNode = hierarchyNodes.find(option => (option.name === hierarchyNodeValue));\n\n if (fullHierarchyNode) {\n return {\n assetValue: fullHierarchyNode?.displayName,\n assetError: '',\n };\n }\n else if (hierarchyNodes.length) {\n // We've loaded the hierarchy options but can't find it; show that\n // it's not available.\n return {\n assetValue: translator('na_symbol'),\n assetError: 'Missing Node',\n };\n }\n else {\n return {\n assetValue: '',\n assetError: '',\n };\n }\n }, [ hierarchyNodeValue, hierarchyNodes, translator ]);\n\n const renderFilterText = useCallback(() => {\n let finalFiltersText = null;\n if (formattedFilters?.length && (!shouldShowLiveControls || isPrint)) {\n finalFiltersText = (\n \n \n \n );\n }\n\n return finalFiltersText;\n }, [formattedFilters, shouldShowLiveControls, isPrint]);\n\n const timeRangeDisplay = !isSectionFrameTitle && doesTimeRangeFit && timeRangeDescription ?\n (\n \n )\n : null;\n\n const frame = isSectionFrameTitle\n ? ()\n : ();\n let timeRangeDetail = '';\n\n if (timeRangeDescription?.primary.detail) {\n timeRangeDetail = `(${timeRangeDescription.primary.detail})`;\n }\n return (\n \n {frame}\n {!isSectionFrameTitle && !doesTimeRangeFit && timeRangeDescription &&\n ()\n }\n {renderFilterText()}\n \n );\n}\n\nFrameHeader.propTypes = {\n hierarchyNodes: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n })\n ).isRequired,\n hierarchyNodeValue: PropTypes.string,\n defaultTitleText: PropTypes.string,\n isPrint: PropTypes.bool.isRequired,\n shouldShowLiveControls: PropTypes.bool,\n canEditTitle: PropTypes.bool,\n showAsset: PropTypes.bool,\n showDelete: PropTypes.bool,\n showLiveControlsButton: PropTypes.bool,\n titleValue: PropTypes.string,\n infoTooltipContent: PropTypes.node,\n\n showLiveControlsOnClick: PropTypes.func,\n titleOnChange: PropTypes.func,\n deleteOnClick: PropTypes.func,\n\n isSectionFrameTitle: PropTypes.bool,\n formattedFilters: PropTypes.array,\n isCollapsed: PropTypes.bool,\n timeRangeDescription: PropTypes.object,\n sectionOnClick: PropTypes.func,\n isDragEnabled: PropTypes.bool,\n dragHandleProps: PropTypes.object,\n};\n\nFrameHeader.defaultProps = {\n defaultTitleText: '',\n showAsset: false,\n showDelete: false,\n infoTooltipContent: '',\n isDragEnabled: false,\n dragHandleProps: {},\n\n deleteOnClick: () => {},\n showLiveControlsOnClick: () => {},\n titleOnChange: () => {},\n};\n","import { useEffect, useRef } from 'react';\nimport { FAILURE, SUCCESS } from 'Common/data/RequestStatus';\n\nexport default function usePersistWidgetHeight(dataRequestStatus) {\n \n // Keep around a measurement of the most recent height of the widget and use\n // it as the height of the loading indicator. This stops the layout from\n // jumping around when the widget switches in and out of loading.\n\n let widgetContainerRef = useRef(null);\n let lastWidgetHeightRef = useRef(null);\n\n useEffect(() => {\n if (dataRequestStatus === FAILURE) {\n // Reset the widget height.\n lastWidgetHeightRef.current = null;\n }\n else if (dataRequestStatus === SUCCESS) {\n // Measure the widget height and save it.\n lastWidgetHeightRef.current = widgetContainerRef.current?.getBoundingClientRect()?.height || null;\n }\n }, [ dataRequestStatus, lastWidgetHeightRef, widgetContainerRef ]);\n\n return {\n lastWidgetHeight: lastWidgetHeightRef.current,\n widgetContainerRef\n };\n}\n","import React, { useCallback, useMemo } from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport KPIContent from './KPIContent';\nimport { SUCCESS } from 'Common/data/RequestStatus';\nimport * as TrendGoodness from 'Common/components/TrendDot/TrendGoodness';\nimport useKpiController from './internal/useKpiController';\nimport FormattedDatum from 'Common/components/FormattedDatum';\nimport KPIWidgetLiveControls from './KPIWidgetLiveControls';\nimport WidgetFrame from 'Common/components/WidgetFrame/WidgetFrame';\nimport WidgetValidationErrorMessage from 'Common/components/WidgetFrame/WidgetValidationErrorMessage';\nimport WidgetLoadingIndicator from 'Common/components/WidgetFrame/WidgetLoadingIndicator';\nimport FrameHeader from 'Common/components/WidgetFrame/FrameHeader';\nimport { useTranslator } from 'Common/hooks/useTranslation';\nimport { generateFilterText, HUMAN_READABLE } from 'Common/components/FilterBuilderText/FilterBuilderUtils';\nimport usePersistWidgetHeight from 'Common/hooks/usePersistWidgetHeight';\nimport RequestState from 'Common/types/RequestState/RequestState';\n\nconst emptyArray = [];\n\nconst LoadingContainer = styled.div.attrs(({ $minHeight }) => {\n if ($minHeight) {\n return {\n style: { minHeight: `${$minHeight}px` }\n };\n }\n})``;\n\nconst KPIContainer = styled.div`\n padding-bottom: ${({ theme }) => theme.layout.widget.verticalPadding};\n padding-left: ${({ theme }) => theme.layout.widget.horizontalPadding};\n padding-right: ${({ theme }) => theme.layout.widget.horizontalPadding};\n padding-top: ${({ theme }) => theme.layout.widget.verticalPadding};\n`;\n \nexport default function KPIWidget({\n alwaysShowAsset,\n widgetStf,\n widgetState,\n areLiveControlsVisible,\n actions,\n timeRange,\n reportHierarchyNode,\n explorationPath,\n mutable,\n dragHandleProps,\n isDragEnabled,\n isLayoutModeActive,\n dataService,\n isPrint,\n hideTrend,\n printConfig,\n suppressedControls,\n suppressDelete,\n}) {\n const translator = useTranslator();\n const controller = useKpiController({\n widgetStf,\n setWidgetStf: actions.setWidgetStf,\n widgetState,\n setWidgetState: actions.setWidgetState,\n setWidgetPrintStatus: actions.setWidgetPrintStatus,\n setWidgetLiveControlsVisibility: actions.setWidgetLiveControlsVisibility,\n areLiveControlsVisible: areLiveControlsVisible,\n dataService: dataService,\n pageTimeRange: timeRange,\n pageExplorationPath: explorationPath,\n reportHierarchyNode,\n isPrint,\n mutable,\n isLayoutModeActive,\n duplicateWidget: actions.duplicateWidget\n });\n\n const {\n isInitialized,\n title,\n defaultTitle,\n setTitle,\n dataRequest: kpiWidgetDataRequest,\n timeRangeDescription,\n tooltipContent,\n formattedFilters,\n followAppBarHierarchyNode,\n hierarchyNodeOptions,\n hierarchyNode,\n showLiveControls,\n toggleShowLiveControls,\n supportsLiveControls,\n shouldShowFilterText,\n } = controller;\n\n const handleTitleChange = useCallback((event) => {\n setTitle(event.target.value);\n }, [ setTitle ]);\n\n const noColor = isPrint && printConfig.noColor;\n\n const {\n widgetContainerRef,\n lastWidgetHeight\n } = usePersistWidgetHeight(kpiWidgetDataRequest?.status);\n\n const contentElement = useMemo(() => {\n if (!RequestState.isRequestCompleted(kpiWidgetDataRequest)) {\n return (\n \n \n \n );\n }\n else if (kpiWidgetDataRequest?.status === SUCCESS) {\n const trend = kpiWidgetDataRequest.response.trendData;\n const kpiData = (\n \n );\n return (\n \n \n \n );\n }\n else {\n const erroMessage = kpiWidgetDataRequest?.error || translator('error_literal');\n return (\n \n );\n }\n }, [ kpiWidgetDataRequest, noColor, isPrint, hideTrend, translator, lastWidgetHeight, widgetContainerRef ]);\n\n let finalTooltipContent = (\n \n
    \n {tooltipContent.displayName}\n
    \n
    {tooltipContent.description}
    \n
    \n {tooltipContent.trendDescription}\n
    \n );\n\n const filtersLabelLiteral = translator('filters_label');\n\n const filtersText = useMemo(() => {\n return generateFilterText(formattedFilters, HUMAN_READABLE, translator);\n }, [formattedFilters, translator]);\n\n if (filtersText && shouldShowFilterText) {\n finalTooltipContent = (\n \n {!!finalTooltipContent && (\n \n {finalTooltipContent}\n
    \n
    \n )}\n
    {filtersLabelLiteral}
    \n {filtersText}\n
    \n );\n }\n\n return (\n \n )}\n liveControls={isInitialized && mutable && showLiveControls && (\n \n )}\n >\n {contentElement}\n \n );\n}\n\nKPIWidget.defaultProps = {\n hideTrend: false,\n};\n\nKPIWidget.propTypes = {\n widgetStf: PropTypes.object.isRequired,\n widgetState: PropTypes.object,\n areLiveControlsVisible: PropTypes.bool.isRequired,\n\n actions: PropTypes.shape({\n setWidgetStf: PropTypes.func.isRequired,\n setWidgetState: PropTypes.func.isRequired,\n setWidgetPrintStatus: PropTypes.func.isRequired,\n deleteWidget: PropTypes.func.isRequired,\n duplicateWidget: PropTypes.func.isRequired,\n setWidgetLiveControlsVisibility: PropTypes.func.isRequired,\n }).isRequired,\n\n timeRange: PropTypes.object,\n explorationPath: PropTypes.object,\n reportHierarchyNode: PropTypes.shape({\n name: PropTypes.string,\n displayName: PropTypes.string\n }).isRequired,\n\n alwaysShowAsset: PropTypes.bool,\n mutable: PropTypes.bool.isRequired,\n parentTitle: PropTypes.string,\n dragHandleProps: PropTypes.object,\n isDragEnabled: PropTypes.bool.isRequired,\n isLayoutModeActive: PropTypes.bool.isRequired,\n isPrint: PropTypes.bool.isRequired,\n hideTrend: PropTypes.bool.isRequired,\n printConfig: PropTypes.object,\n suppressedControls: PropTypes.object,\n suppressDelete: PropTypes.bool,\n\n dataService: PropTypes.shape({\n getKpiWidgetData: PropTypes.func.isRequired,\n getColumnConfig: PropTypes.func.isRequired,\n getColumnHelpText: PropTypes.func.isRequired,\n getTimeRangePrimaryDetails: PropTypes.func.isRequired,\n getTimeRangeSecondaryDetails: PropTypes.func.isRequired,\n }).isRequired,\n};\n","import { useEffect, useState } from 'react';\nimport ParamTypes from 'Common/util/ParamTypes';\nimport { paramTest } from 'Common/util/ParamTypes/ParamTypes';\n\nconst paramTypes = ParamTypes.shape({\n dataService: ParamTypes.shape({\n getHierarchyOptions: ParamTypes.func.isRequired,\n getSliceFilterOptions: ParamTypes.func.isRequired,\n getKPIGroupWidgetFieldOptions: ParamTypes.func.isRequired,\n }).isRequired,\n});\n\nexport default function useKPIGroupWidgetInitialization(parameters) {\n paramTest(parameters, paramTypes, 'useKPIGroupWidgetInitialization');\n\n const { dataService } = parameters;\n\n const [ isInitialized, setIsInitialized ] = useState(false);\n const [ liveControlOptions, setLiveControlOptions ] = useState({\n hierarchyNodeOptions: [],\n filterOptions: [],\n columnOptions: {},\n });\n\n useEffect(() => {\n let aborted = false;\n\n async function run() {\n const [\n hierarchyNodeOptions,\n filterOptions,\n columnOptions,\n ] = await Promise.all([\n dataService.getHierarchyOptions(),\n dataService.getSliceFilterOptions(),\n dataService.getKPIGroupWidgetFieldOptions(),\n ]);\n\n if (!aborted) {\n setLiveControlOptions({\n hierarchyNodeOptions,\n filterOptions,\n columnOptions,\n });\n\n setIsInitialized(true);\n }\n }\n\n run();\n\n return () => {\n aborted = true;\n };\n }, [ dataService ]);\n\n return {\n isInitialized,\n liveControlOptions,\n };\n}\n","import PropTypes from 'prop-types';\n\nexport const BLANK_ROW_TYPE = 'separator';\nexport const HEADING_TYPE = 'heading';\nexport const FIELD_TYPE = 'field';\nexport const CATEGORY_VALUE = 'category_value';\n\nexport const KPI_GROUP_COLUMNS_PROPTYPE = PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.shape({ // separator or heading\n type: PropTypes.oneOf([BLANK_ROW_TYPE, HEADING_TYPE]),\n name: PropTypes.string.isRequired,\n displayName: PropTypes.string.isRequired,\n }),\n PropTypes.shape({ // actual field\n type: PropTypes.oneOf([FIELD_TYPE]),\n name: PropTypes.string.isRequired,\n channel: PropTypes.string.isRequired,\n displayName: PropTypes.string.isRequired,\n fieldType: PropTypes.string.isRequired,\n }),\n PropTypes.shape({ // spark dimension\n name: PropTypes.string.isRequired,\n type: PropTypes.oneOf([FIELD_TYPE]),\n displayName: PropTypes.string.isRequired,\n fieldType: PropTypes.oneOf(['category_value']).isRequired,\n dimensionVisualization: PropTypes.shape({\n visualization: PropTypes.string.isRequired,\n metric: PropTypes.string.isRequired,\n orderBy: PropTypes.string.isRequired,\n maxElementsShown: PropTypes.number,\n }),\n }),\n ]),\n);\n\n","import { useCallback, useMemo } from 'react';\nimport ParamTypes from 'Common/util/ParamTypes';\nimport { paramTest } from 'Common/util/ParamTypes/ParamTypes';\nimport TimeRange from 'Common/types/TimeRange/TimeRange';\nimport Filters from 'Common/types/Filters/Filters';\nimport { useWidgetCache } from 'Common/components/Dashboard/DashboardCache';\nimport { getMaxAgeForRepeatingRequest } from 'Common/hooks/requests/useRepeatingRequest';\nimport { FIELD_TYPE } from 'Common/components/widgets/KPIGroupWidget/KPIGroupWidgetConstants';\nimport useRepeatingRequestWithStatus from 'Common/hooks/requests/useRepeatingRequestWithStatus';\nimport { useTranslator } from 'Common/hooks/useTranslation';\n\nconst paramTypes = ParamTypes.shape({\n getKPIGroupWidgetData: ParamTypes.func.isRequired,\n contents: ParamTypes.array.isRequired,\n hierarchyNode: ParamTypes.string.isRequired,\n pageFilters: Filters.paramType,\n widgetFilters: Filters.paramType,\n timeRange: TimeRange.timeRangeParamType.isRequired,\n updateInterval: ParamTypes.number,\n});\n\nexport default function useKPIGroupWidgetData(parameters) {\n paramTest(parameters, paramTypes, 'useKPIGroupWidgetData');\n\n const translator = useTranslator();\n\n const {\n getKPIGroupWidgetData,\n contents,\n hierarchyNode,\n pageFilters,\n widgetFilters,\n timeRange,\n updateInterval,\n } = parameters;\n\n const disableRepeat = useMemo(() => {\n // Disable the repeat if there's no update interval or if the time\n // range is not suitable.\n return (\n !updateInterval ||\n !TimeRange.shouldRepeatRequestWithTimeRange(timeRange)\n );\n }, [ timeRange, updateInterval ]);\n\n // getting data\n const getKPIGroupWidgetDataCache = useWidgetCache({\n cacheId: 'getKPIGroupWidgetData',\n load: ({ abortSignal }, args) => {\n return getKPIGroupWidgetData({\n ...args,\n abortSignal,\n });\n },\n });\n\n // A cached version of `getKPIGroupWidgetData`\n const getKPIGroupWidgetDataCached = useCallback((args) => {\n const { abortSignal, ...otherArgs } = args;\n const maxAge = getMaxAgeForRepeatingRequest(disableRepeat, updateInterval);\n\n return getKPIGroupWidgetDataCache.get(\n {\n abortSignal,\n maxAge,\n },\n otherArgs\n );\n }, [ disableRepeat, getKPIGroupWidgetDataCache, updateInterval ]);\n\n const sendRequest = useCallback(async ({ abortSignal }) => {\n let result;\n try {\n result = await getKPIGroupWidgetDataCached({\n abortSignal,\n fields: contents.reduce((acc, item) => {\n if (item.type === FIELD_TYPE) {\n acc.push(item.field);\n }\n return acc;\n }, []),\n filters: Filters.mergeFilters(widgetFilters, pageFilters),\n hierarchyNode,\n timeRange,\n });\n\n if (result?.response) {\n result = {\n error: null,\n response: {\n data: result.response,\n contents\n }\n };\n }\n }\n catch (err) {\n console.error(err);\n result = { error: translator('error_literal') };\n }\n\n return result;\n }, [contents, hierarchyNode, widgetFilters, pageFilters, timeRange, getKPIGroupWidgetDataCached, translator ]);\n\n return useRepeatingRequestWithStatus({\n sendRequest: sendRequest,\n delayMs: updateInterval || 0,\n // Disable the repeat if there's no update interval or if the time\n // range is not an open interval.\n disableRepeat,\n });\n}\n","import ParamTypes from 'Common/util/ParamTypes';\nimport { paramTest } from 'Common/util/ParamTypes/ParamTypes';\nimport TimeRange from 'Common/types/TimeRange/TimeRange';\nimport explorationPathParamType from 'Common/types/stf/explorationPathParamType';\nimport { useEffect, useMemo, useCallback } from 'react';\nimport { useTranslator } from 'Common/hooks/useTranslation';\nimport useKPIGroupWidgetInitialization from './useKPIGroupWidgetInitialization';\nimport useKPIGroupWidgetData from './useKPIGroupWidgetData';\nimport getPrimaryDescription from \"Common/components/TimeRangeSelector/helpers/getPrimaryDescription\";\nimport getSecondaryDescription from \"Common/components/TimeRangeSelector/helpers/getSecondaryDescription\";\nimport useFormattedFilters from 'Common/hooks/useFormattedFilters';\nimport { getDataUpdateInterval } from 'Common/hooks/requests/useRepeatingRequest';\nimport { DIMENSION_VISUALIZATION_TYPES, DIMENSION_VISUALIZATION_ORDER_BY_TYPES } from 'Common/components/SparkVisualization/SparkDimensionConstants';\nimport useTimeRangeData, { TIME_RANGE_PRIMARY_DETAILS, TIME_RANGE_SECONDARY_DETAILS } from 'Common/components/TimeRangeSelector/hooks/useTimeRangeData';\nimport RequestState from 'Common/types/RequestState/RequestState';\nimport { BLANK_ROW_TYPE, FIELD_TYPE, HEADING_TYPE } from '../KPIGroupWidgetConstants';\n\nconst extractFiltersFromExplorationPath = (explorationPath) => {\n let filters = {};\n\n if (explorationPath?.group_filter) {\n filters.group = explorationPath.group_filter;\n }\n\n if (explorationPath?.slice_filter) {\n filters.slice = explorationPath.slice_filter;\n }\n\n if (Object.keys(filters) === 0) {\n // There were either no filters, or no exploration path.\n return null;\n }\n else {\n return filters;\n }\n};\n\nconst contentRowParamType = ParamTypes.arrayOf(\n ParamTypes.shape({\n type: ParamTypes.oneOf([\n HEADING_TYPE,\n FIELD_TYPE,\n BLANK_ROW_TYPE,\n ]).isRequired,\n // For the heading type:\n heading: ParamTypes.shape({\n displayName: ParamTypes.string,\n displayKey: ParamTypes.string,\n }),\n // For field type:\n field: ParamTypes.shape({\n name: ParamTypes.string.isRequired,\n channel: ParamTypes.string.isRequired,\n // Only for dimension fields (ie: shift)\n dimensionVisualization: ParamTypes.shape({ \n visualization: ParamTypes.oneOf(Object.values(DIMENSION_VISUALIZATION_TYPES)).isRequired,\n metric: ParamTypes.string,\n orderBy: ParamTypes.oneOf(Object.values(DIMENSION_VISUALIZATION_ORDER_BY_TYPES)),\n maxElementsShown: ParamTypes.number\n }),\n }),\n })\n).isRequired;\n\nconst paramTypes = ParamTypes.shape({\n areLiveControlsVisible: ParamTypes.bool.isRequired,\n dataService: ParamTypes.object.isRequired,\n isPrint: ParamTypes.bool.isRequired,\n mutable: ParamTypes.bool.isRequired,\n pageExplorationPath: explorationPathParamType,\n pageTimeRange: TimeRange.timeRangeParamType,\n parentTitle: ParamTypes.string,\n reportHierarchyNode: ParamTypes.shape({\n name: ParamTypes.string,\n displayName: ParamTypes.string\n }),\n setWidgetLiveControlsVisibility: ParamTypes.func.isRequired,\n setWidgetPrintStatus: ParamTypes.func.isRequired,\n setWidgetStf: ParamTypes.func.isRequired,\n widgetStf: ParamTypes.shape({\n type: ParamTypes.exactly('kpi_group_widget').isRequired,\n exploration_path: explorationPathParamType,\n rangeSelection: TimeRange.timeRangeParamType,\n hideLiveControls: ParamTypes.bool,\n hideTimeRange: ParamTypes.bool,\n contents: contentRowParamType,\n }),\n});\n\nconst useKPIGroupWidgetController = (parameters) => {\n paramTest(parameters, paramTypes, 'useKPIGroupWidgetController');\n\n const {\n areLiveControlsVisible,\n dataService,\n isPrint,\n pageExplorationPath,\n pageTimeRange,\n reportHierarchyNode,\n mutable,\n setWidgetLiveControlsVisibility,\n setWidgetPrintStatus,\n setWidgetStf,\n widgetStf,\n } = parameters;\n\n const {\n isInitialized,\n liveControlOptions,\n } = useKPIGroupWidgetInitialization({ dataService });\n\n const translator = useTranslator();\n const widgetExplorationPath = widgetStf.exploration_path;\n\n\n // hide/show livecontrol stuff\n const supportsLiveControls = !widgetStf.hideLiveControls && mutable;\n\n const toggleShowLiveControls = useCallback(() => {\n setWidgetLiveControlsVisibility(!areLiveControlsVisible);\n }, [ areLiveControlsVisible, setWidgetLiveControlsVisibility ]);\n\n\n // hierarchy stuff\n const widgetHierarchyNode = widgetExplorationPath?.asset_control?.root;\n const followAppBarHierarchyNode = !widgetHierarchyNode;\n const mergedHierarchyNode = widgetHierarchyNode || reportHierarchyNode?.name;\n\n const setHierarchyNode = useCallback((newHierarchyNode) => {\n setWidgetStf((stf) => {\n let newExplorationPath = {\n ...stf.exploration_path\n };\n if (newHierarchyNode) {\n newExplorationPath.asset_control = {\n root: newHierarchyNode,\n };\n }\n else {\n delete newExplorationPath.asset_control;\n }\n\n return {\n ...stf,\n exploration_path: newExplorationPath,\n };\n });\n }, [setWidgetStf]);\n\n\n // title stuff\n const defaultTitle = translator('kpi_group_literal');\n let title = widgetStf.title;\n if (!title && widgetStf.titleKey) {\n title = translator(widgetStf.titleKey);\n }\n const handleTitleChange = (event) => {\n const newTitle = event.target.value;\n setWidgetStf((stf) => ({\n ...stf,\n title: newTitle,\n }));\n };\n\n\n // filter stuff\n const rawSliceFilters = widgetStf.exploration_path?.slice_filter;\n\n const filters = useMemo(() => {\n if (!rawSliceFilters) {\n return {\n slice: {\n combine_type: 'and',\n expressions: [],\n }\n };\n }\n else {\n return {\n slice: rawSliceFilters\n };\n }\n }, [rawSliceFilters]);\n\n const setSliceFilters = useCallback((newFilters) => {\n setWidgetStf((stf) => ({\n ...stf,\n exploration_path: {\n ...stf.exploration_path,\n slice_filter: newFilters,\n },\n }));\n }, [setWidgetStf]);\n\n const formattedFilters = useFormattedFilters({\n sliceFilters: filters.slice,\n dataService,\n });\n\n const pageFilters = useMemo(() => {\n return extractFiltersFromExplorationPath(pageExplorationPath);\n }, [ pageExplorationPath ]);\n\n const widgetFilters = useMemo(() => {\n return extractFiltersFromExplorationPath(widgetExplorationPath);\n }, [ widgetExplorationPath ]);\n\n\n // column stuff\n const widgetContents = widgetStf.contents;\n const setContents = useCallback((updatedContents) => {\n paramTest(updatedContents, contentRowParamType, 'setContents.row');\n\n setWidgetStf((stf) => {\n return {\n ...stf,\n contents: updatedContents,\n };\n });\n }, [setWidgetStf]);\n\n\n // data stuff\n\n // Disable the update interval if the widget is in print view\n const widgetUpdateTimeInterval = isPrint ? null : widgetStf.updateTimeInterval;\n\n const dataRequest = useKPIGroupWidgetData({\n getKPIGroupWidgetData: dataService.getKPIGroupWidgetData,\n contents: widgetContents,\n hierarchyNode: mergedHierarchyNode,\n pageFilters,\n widgetFilters,\n timeRange: widgetStf.rangeSelection || pageTimeRange,\n updateInterval: getDataUpdateInterval(widgetUpdateTimeInterval),\n });\n \n\n // time range stuff\n const followPageTimeRange = !widgetStf.rangeSelection;\n const setTimeRange = useCallback((rs) => {\n setWidgetStf((stf) => ({\n ...stf,\n rangeSelection: rs,\n }));\n }, [setWidgetStf]);\n const widgetTimeRange = widgetStf.rangeSelection;\n\n const timeRangeRequests = useTimeRangeData({\n getTimeRangePrimaryDetails: dataService.getTimeRangePrimaryDetails,\n getTimeRangeSecondaryDetails: dataService.getTimeRangeSecondaryDetails,\n hierarchyNode: mergedHierarchyNode,\n timeRange: widgetStf.hideTimeRange ? undefined : widgetStf.rangeSelection,\n updateInterval: getDataUpdateInterval(widgetUpdateTimeInterval),\n });\n\n\n const timeRangeDescription = useMemo(() => {\n const primaryDetails = timeRangeRequests[TIME_RANGE_PRIMARY_DETAILS]?.response;\n const secondaryDetails = timeRangeRequests[TIME_RANGE_SECONDARY_DETAILS]?.response;\n\n if (primaryDetails && translator) {\n const primary = getPrimaryDescription({\n dimensionDetailsDisplayName: primaryDetails?.dimensionDetails.displayName,\n dimensionDetailsIsMixed: primaryDetails?.dimensionDetails.isMixed || false,\n timeRangeStart: primaryDetails?.timeRange.start,\n timeRangeEnd: primaryDetails?.timeRange.end,\n timeRangeSameDimensionValue: primaryDetails?.timeRange.sameDimensionValue || false,\n timeRangeUnits: primaryDetails?.timeRange.units,\n timeRangeProductionDayOffset: primaryDetails?.timeRange.productionDayOffset,\n atEndOfData: !!secondaryDetails?.atEndOfData,\n locale: primaryDetails.locale,\n translator: translator,\n });\n\n const secondary = getSecondaryDescription({\n range: secondaryDetails?.range,\n timeRangeStart: primaryDetails?.timeRange.start,\n timeRangeEnd: primaryDetails?.timeRange.end,\n timeRangeSameDimensionValue: primaryDetails?.timeRange.sameDimensionValue || null,\n timeRangeUnits: primaryDetails?.timeRange.units || '',\n originDay: primaryDetails?.originDay || '',\n locale: primaryDetails?.locale,\n translator: translator,\n });\n\n return {\n primary,\n secondary\n };\n }\n else {\n return null;\n }\n\n }, [timeRangeRequests, translator]);\n\n\n // print stuff\n // Effect to keep the widget's print status up to date.\n useEffect(() => {\n if (isPrint) {\n return;\n }\n\n setWidgetPrintStatus(RequestState.areAllRequestsCompleted([\n dataRequest,\n timeRangeRequests[TIME_RANGE_PRIMARY_DETAILS],\n timeRangeRequests[TIME_RANGE_SECONDARY_DETAILS],\n ]));\n }, [ isPrint, setWidgetPrintStatus, dataRequest, timeRangeRequests ]);\n\n return {\n defaultTitle,\n handleTitleChange,\n title,\n\n dataRequest: dataRequest,\n\n filterOptions: liveControlOptions.filterOptions,\n filters,\n setSliceFilters,\n formattedFilters,\n\n followPageTimeRange,\n setTimeRange,\n widgetTimeRange,\n timeRangeDescription,\n\n followAppBarHierarchyNode,\n hierarchyNode: widgetHierarchyNode,\n hierarchyNodeOptions: liveControlOptions.hierarchyNodeOptions,\n setHierarchyNode,\n\n columns: widgetContents,\n setColumns: setContents,\n columnOptions: liveControlOptions.columnOptions,\n\n isInitialized,\n\n supportsLiveControls,\n toggleShowLiveControls,\n };\n};\n\nexport default useKPIGroupWidgetController;\n","import React, { useCallback, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport uniqueId from 'lodash/uniqueId';\n\nimport TextField from 'Common/components/TextField';\nimport Button from 'Common/components/Button';\nimport { KPI_GROUP_COLUMNS_PROPTYPE, HEADING_TYPE } from 'Common/components/widgets/KPIGroupWidget/KPIGroupWidgetConstants';\nimport { useTranslator } from 'Common/hooks/useTranslation';\n\nconst Root = styled.div`\n padding: 5px 10px;\n`;\n\nconst HeadingContainer = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n margin-bottom: 150px;\n`;\n\nconst HeadingLabel = styled.div`\n flex: 0 0 auto;\n padding-right: 10px;\n color: ${({theme}) => theme.colors.darkText.highEmphasis};\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\nconst ApplyContainer = styled.div`\n padding-top: 5px;\n display: flex;\n justify-content: flex-end;\n`;\n\n/**\n * A component to edit the heading text in a column in Kpi Group.\n *\n */\nconst KPIGroupHeadingOption = ({\n selectedColumnIndex,\n selectedColumns,\n onChange,\n}) => {\n const translator = useTranslator();\n const initialHeadingColumn = Number.isFinite(selectedColumnIndex) ? selectedColumns[selectedColumnIndex] : null;\n const [heading, setHeading] = useState(initialHeadingColumn?.displayName || '');\n const [headingHasChanged, setHeadingHasChanged] = useState(false);\n const canApplyChanges = heading !== initialHeadingColumn && !!heading.trim();\n\n const onHeadingChange = useCallback((e) => {\n setHeading(e.target.value || '');\n setHeadingHasChanged(true);\n }, [setHeading, setHeadingHasChanged]);\n\n const handleApply = () => {\n const column = {\n type: HEADING_TYPE,\n name: uniqueId('kpigroupheading_'),\n displayName: heading.trim(),\n };\n let newSelectedColumns = selectedColumns;\n if (!Number.isFinite(selectedColumnIndex)) {\n newSelectedColumns = selectedColumns.concat([column]);\n }\n else {\n if (selectedColumns.length < selectedColumnIndex) {\n console.warn(`Can not update column at index ${selectedColumnIndex} there are only ${selectedColumns.length} columns.`);\n }\n else {\n newSelectedColumns = [].concat(selectedColumns);\n newSelectedColumns.splice(selectedColumnIndex, 1, column);\n }\n }\n onChange({\n target: {\n value: newSelectedColumns,\n }\n });\n };\n\n return (\n \n \n {translator('widget.kpi_group.heading')}\n \n \n \n \n {translator('apply_literal')}\n \n \n \n );\n};\n\nKPIGroupHeadingOption.propTypes = {\n selectedColumnIndex: PropTypes.number,\n selectedColumns: KPI_GROUP_COLUMNS_PROPTYPE.isRequired,\n\n onChange: PropTypes.func.isRequired,\n};\n\nexport default KPIGroupHeadingOption;\n","import React, { useCallback, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { filterGroupedFields } from 'Common/components/FieldBuilder/FieldBuilder';\nimport { useTranslator } from 'Common/hooks/useTranslation';\nimport styled from 'styled-components';\nimport { Body5 } from 'Common/components/typography';\nimport Button from 'Common/components/Button';\nimport BasicSelectField from 'Common/components/BasicSelectField/BasicSelectField';\nimport NumberField from 'Common/components/NumberField';\nimport MetricSelectField from 'Common/components/MetricSelectField';\nimport CategorySelectField from 'Common/components/CategorySelectList/CategorySelectField';\nimport InlineError from 'Common/components/Error/InlineError';\nimport validateNumber from 'Common/data/validateNumber';\nimport {\n BAR_VISUALIZATION_TYPE,\n CHRONOGRAM_VISUALIZATION_TYPE, \n COLUMN_VISUALIZATION_TYPE, \n DIMENSION_ORDER, \n DIMENSION_VISUALIZATION_TYPES, \n DURATION_METRIC, \n TEXT_VISUALIZATION_TYPE, \n TIME_ORDER, \n VALUE_ORDER\n} from 'Common/components/SparkVisualization/SparkDimensionConstants';\n\nconst REJECT_REASON_DIMENSION = 'reject_reason';\nconst REJECT_COUNT_METRIC = 'reject_count';\nconst NO_METRIC = 'none';\n\nfunction getVisualizationOptions(translator) {\n return [\n {\n value: DIMENSION_VISUALIZATION_TYPES.TEXT_VISUALIZATION_TYPE,\n displayName: translator('widget.spark_visualization.dimension_visualization_options.visualization.text'),\n },\n {\n value: DIMENSION_VISUALIZATION_TYPES.BAR_VISUALIZATION_TYPE,\n displayName: translator('widget.spark_visualization.dimension_visualization_options.visualization.bar'),\n },\n {\n value: DIMENSION_VISUALIZATION_TYPES.COLUMN_VISUALIZATION_TYPE,\n displayName: translator('widget.spark_visualization.dimension_visualization_options.visualization.column'),\n },\n {\n value: DIMENSION_VISUALIZATION_TYPES.CHRONOGRAM_VISUALIZATION_TYPE,\n displayName: translator('widget.spark_visualization.dimension_visualization_options.visualization.chronogram'),\n },\n ];\n}\n\nfunction getOrderOptions(translator) {\n return [\n {\n value: DIMENSION_ORDER,\n displayName: translator('widget.spark_visualization.dimension_visualization_options.order_by.by_dimension'),\n },\n {\n value: VALUE_ORDER,\n displayName: translator('widget.spark_visualization.dimension_visualization_options.order_by.by_value'),\n },\n ];\n}\n\nfunction getMetricOptions(fieldOptions, visualization) {\n return fieldOptions.category_value_metrics[visualization];\n}\n\n/**\n * A helper function to find the first option in a hierarchical set of options.\n *\n * Similar to Array.find().\n * \n * @param {Array} options Array of options.\n * @param {Function} func Supplied function that should return true if the option matches.\n * @returns {Object|undefined} The found option or undefined.\n */\nconst findOptionRecursive = (options, func) => {\n for (const opt of options) {\n if (opt.entries) {\n const foundEntry = findOptionRecursive(opt.entries, func);\n if (foundEntry !== undefined) {\n return foundEntry;\n }\n }\n else {\n if (func(opt)) {\n return opt;\n }\n }\n }\n\n return undefined;\n};\n\nconst findMetricOption = (metricOptions, metric) => {\n const foundOption = findOptionRecursive(metricOptions, (opt) => {\n return opt.name === metric;\n });\n\n return foundOption || null;\n};\n\nfunction hasChanges(newConfig, initialConfig) {\n return newConfig.dimension !== initialConfig?.name\n || newConfig.visualization !== initialConfig?.dimensionVisualization?.visualization\n || newConfig.metric !== initialConfig?.dimensionVisualization?.metric\n || newConfig.order !== initialConfig?.dimensionVisualization?.orderBy\n || newConfig.limit !== initialConfig?.dimensionVisualization?.maxElementsShown;\n}\n\nconst verticalPadding = 5;\nconst ListDropdownContainer = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 0 14px ${verticalPadding}px 14px;\n`;\n\nconst LimitContainer = styled.div`\n padding: 0 14px;\n display: flex;\n flex-direction: row;\n align-items: center;\n`;\n\nconst LimitErrorContainer = styled.div`\n display: flex;\n flex-direction: row;\n padding: 0 14px ${verticalPadding}px 14px;\n`;\n\nconst SparkColumnLabel = styled.div`\n width: 38%;\n flex: 0 0 auto;\n padding-right: 10px;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\nconst SparkColumnContainer = styled.div`\n min-width: 1px;\n flex: 1 1 auto;\n`;\n\nconst HelperTextContainer = styled(Body5).attrs({ as: 'div' })`\n color: ${({ theme }) => theme.colors.darkText.mediumEmphasis };\n padding: 0 0 10px 14px;\n`;\n\nconst ValidationText = styled(Body5)`\n color: ${({theme}) => theme.colors.palette.error.red };\n`;\n\nconst ValidationContainer = styled.div`\n justify-content: flex-end;\n flex: 0 0 auto;\n padding: 0 10px;\n`;\n\nconst ApplyContainer = styled.div`\n display: flex;\n justify-content: flex-end;\n padding: 0 14px 14px 14px;\n`;\n\nconst NumberFieldContainer = styled.div`\n width: 30px;\n`;\n\n/**\n * Use this in a history stack style column control for when the user is editing/adding a category.\n *\n */\nconst SparkDimensionColumnSelector = ({\n fieldOptions,\n selectedColumnIndex,\n selectedColumns,\n onChange,\n startingValue\n}) => {\n const translator = useTranslator();\n\n // initial column\n const initialCategoryColumn = Number.isFinite(selectedColumnIndex) ? selectedColumns[selectedColumnIndex] : null;\n const initalDimensionVisualization = initialCategoryColumn?.dimensionVisualization || null;\n\n const [dimension, setDimension] = useState(initialCategoryColumn?.name || startingValue?.name || '');\n const [visualization, setVisualization] = useState(initalDimensionVisualization?.visualization || BAR_VISUALIZATION_TYPE);\n const [metric, setMetric] = useState(initalDimensionVisualization?.metric || startingValue?.metric || null);\n const [order, setOrder] = useState(initalDimensionVisualization?.orderBy || DIMENSION_ORDER);\n const [limit, setLimit] = useState(Number.isFinite(initalDimensionVisualization?.maxElementsShown) ? initalDimensionVisualization?.maxElementsShown : 10);\n\n const usesLimit = (visualization !== CHRONOGRAM_VISUALIZATION_TYPE && visualization !== TEXT_VISUALIZATION_TYPE);\n\n const limitNumberError = useMemo(() => {\n return usesLimit ?\n validateNumber(limit, {\n integral: true,\n min: 1,\n max: 15,\n translator: translator,\n })\n : '';\n }, [limit, translator, usesLimit]);\n\n const configurationError = useMemo(() => {\n if (visualization === CHRONOGRAM_VISUALIZATION_TYPE && (['enterprise', 'plant', 'area', 'asset', REJECT_REASON_DIMENSION].includes(dimension))) {\n return translator('editors.spark_dimension.validation.chronogram_with_only_primary_dimensions');\n }\n else if (!metric && visualization !== DIMENSION_VISUALIZATION_TYPES.TEXT_VISUALIZATION_TYPE) {\n return translator('editors.spark_dimension.validation.need_metric');\n }\n else if (metric && metric !== REJECT_COUNT_METRIC && dimension === REJECT_REASON_DIMENSION) {\n return translator('editors.spark_dimension.validation.reject_reason_needs_reject_count');\n }\n else {\n return '';\n }\n }, [dimension, metric, visualization, translator]);\n\n const dimensionList = useMemo(() => {\n const unselectableFields = initialCategoryColumn\n ? selectedColumns.filter(col => col.name !== initialCategoryColumn.name)\n : selectedColumns;\n const filteredFields = filterGroupedFields(fieldOptions.category_value || [], unselectableFields);\n\n return filteredFields.map((option) => {\n return {\n ...option,\n isDummyGroup: false,\n };\n });\n }, [fieldOptions, selectedColumns, initialCategoryColumn]);\n\n const selectedDimension = useMemo(() => {\n const foundOption = findOptionRecursive(dimensionList, (opt) => {\n return opt.name === dimension;\n });\n\n return foundOption || null;\n }, [ dimensionList, dimension ]);\n\n const handleDimensionChange = useCallback((e) => {\n const column = e.target.value.name;\n setDimension(column);\n if (column === REJECT_REASON_DIMENSION && metric) {\n setMetric(REJECT_COUNT_METRIC);\n }\n }, [metric]);\n\n const handleVisualizationChange = useCallback((e) => {\n const value = e.target.value.value;\n\n if (value === CHRONOGRAM_VISUALIZATION_TYPE) {\n setOrder(TIME_ORDER);\n setMetric(DURATION_METRIC);\n setLimit(null);\n }\n else {\n if (value === TEXT_VISUALIZATION_TYPE) {\n setLimit(null);\n }\n else if (!limit) {\n setLimit(10);\n }\n\n if (dimension === REJECT_REASON_DIMENSION && metric) {\n setMetric(REJECT_COUNT_METRIC);\n }\n else {\n setMetric((currentMetric) => {\n // Check that the current metric is valid for this\n // visualization type, otherwise set it to null.\n const newMetricOptions = getMetricOptions(fieldOptions, value);\n if (!findMetricOption(newMetricOptions, currentMetric)) {\n // Metric not available as an option anymore.\n return null;\n }\n else {\n // Metric is still valid; no changes.\n return currentMetric;\n }\n });\n }\n\n setOrder(DIMENSION_ORDER);\n }\n setVisualization(value);\n }, [fieldOptions, dimension, limit, metric]);\n\n const handleMetricChange = useCallback((e) => {\n const value = e.target.value.name;\n if (typeof value !== 'string') {\n throw new Error('handleMetricChange: Bad value for metric');\n }\n setMetric(value === NO_METRIC ? null : value);\n }, []);\n\n const handleOrderChange = useCallback((e) => {\n const value = e.target.value.value;\n setOrder(value);\n }, []);\n\n const handleLimitChange = useCallback((e) => {\n const value = e.target.value;\n setLimit(value);\n }, []);\n\n const handleOnChange = useCallback(() => {\n const sparkDimension = {\n ...selectedDimension,\n name: selectedDimension.name,\n channel: selectedDimension.channel,\n displayName: selectedDimension.displayName,\n dimensionVisualization: {\n visualization,\n metric: metric,\n orderBy: order,\n maxElementsShown: limit,\n },\n };\n\n let newSelectedColumns = selectedColumns;\n\n if (!Number.isFinite(selectedColumnIndex)) {\n newSelectedColumns = selectedColumns.concat([sparkDimension]);\n }\n else {\n if (selectedColumns.length < selectedColumnIndex) {\n console.warn(`Can not update column at index ${selectedColumnIndex} there are only ${selectedColumns.length} columns.`);\n }\n else {\n // Array.splice is in-place, so copy the array before.\n newSelectedColumns = [ ...selectedColumns ];\n newSelectedColumns.splice(selectedColumnIndex, 1, sparkDimension);\n }\n }\n\n onChange({\n target: {\n value: newSelectedColumns,\n }\n });\n }, [selectedColumns, onChange, selectedColumnIndex, limit, metric, order, visualization, selectedDimension]);\n\n const visualizationOptions = useMemo(() => getVisualizationOptions(translator), [ translator ]);\n const selectedVisualizationOption = useMemo(() => {\n return visualizationOptions.find((opt) => {\n return opt.value === visualization;\n });\n }, [ visualizationOptions, visualization ]);\n\n const metricOptions = useMemo(() => {\n return [\n {\n name: NO_METRIC,\n displayName: translator('none_literal'),\n isDummyGroup: true,\n entries: [{\n name: NO_METRIC,\n displayName: translator('bracket_none_literal'),\n }]\n }\n ].concat(getMetricOptions(fieldOptions, visualization));\n }, [fieldOptions, visualization, translator]);\n\n const selectedMetric = useMemo(() => {\n return findMetricOption(metricOptions, metric);\n }, [ metricOptions, metric ]);\n\n const orderOptions = useMemo(() => getOrderOptions(translator), [ translator ]);\n const selectedOrderOption = useMemo(() => {\n if (order === TIME_ORDER) {\n return {\n value: TIME_ORDER,\n displayName: translator('widget.spark_visualization.dimension_visualization_options.order_by.by_time'),\n };\n }\n else {\n return orderOptions.find((opt) => {\n return opt.value === order;\n });\n }\n }, [ orderOptions, order, translator ]);\n\n const categoryPlaceholderText = translator('editors.filter.dropdown_placeholder', {value: translator('value_literal').toLowerCase()});\n const metricPlaceholderText = translator('editors.filter.dropdown_placeholder', {value: translator('value_literal').toLowerCase()});\n\n return (\n \n \n {translator('widget.spark_visualization.add_dimension_helper_text')}\n \n \n {translator('widget.spark_visualization.dimension')}\n \n \n \n \n \n {translator('widget.spark_visualization.visualization')}\n \n \n \n \n \n {translator('widget.spark_visualization.metric')}\n \n \n \n \n {metric && (\n {translator('widget.spark_visualization.order')}\n \n \n \n \n )}\n {usesLimit && (\n \n {translator('widget.spark_visualization.max_elements')}\n \n \n \n \n )}\n \n \n \n {limitNumberError}\n \n \n {configurationError && (\n \n \n {configurationError}\n \n \n )}\n \n \n {translator('apply_literal')}\n \n \n \n );\n};\n\nconst categoryValueMetricOptionsPropType = PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired\n })\n);\n\nSparkDimensionColumnSelector.propTypes = {\n fieldOptions: PropTypes.shape({\n category_value: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.string.isRequired,\n })),\n category_value_metrics: PropTypes.exact({\n [BAR_VISUALIZATION_TYPE]: categoryValueMetricOptionsPropType.isRequired,\n [CHRONOGRAM_VISUALIZATION_TYPE]: categoryValueMetricOptionsPropType.isRequired,\n [COLUMN_VISUALIZATION_TYPE]: categoryValueMetricOptionsPropType.isRequired,\n [TEXT_VISUALIZATION_TYPE]: categoryValueMetricOptionsPropType.isRequired,\n }),\n }).isRequired,\n selectedColumnIndex: PropTypes.number,\n selectedColumns: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.string.isRequired\n })),\n startingValue: PropTypes.shape({\n name: PropTypes.string,\n metric: PropTypes.string\n }),\n\n onChange: PropTypes.func.isRequired,\n};\n\nexport default SparkDimensionColumnSelector;\n","import React, { useMemo, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport uniqueId from 'lodash/uniqueId';\nimport omit from 'lodash/omit';\n\nimport { filterFields, filterGroupedFields } from 'Common/components/FieldBuilder/FieldBuilder';\nimport FieldBuilderTypeSelect, { flattenEntries, SEPARATOR_TYPE } from 'Common/components/FieldBuilderTypeSelect/FieldBuilderTypeSelect';\nimport mergeMetricAndMetricSet, { filterCombinedMetricAndMetricSets } from 'Common/components/ColumnControl/mergeMetricAndMetricSet';\nimport MetricAndMetricSetOption from 'Common/components/ColumnControl/MetricAndMetricSetOption';\nimport KPIGroupHeadingOption from './KPIGroupHeadingOption';\nimport { KPI_GROUP_COLUMNS_PROPTYPE, HEADING_TYPE, BLANK_ROW_TYPE, FIELD_TYPE } from 'Common/components/widgets/KPIGroupWidget/KPIGroupWidgetConstants';\nimport { useTranslator } from 'Common/hooks/useTranslation';\nimport SparkDimensionColumnSelector from './SparkDimensionColumnSelector';\n\nconst METRIC = 'metric';\nconst CATEGORY_VALUE = 'category_value';\nconst METRIC_SET = 'metric_set';\n\nfunction createKeyFromColumn(column) {\n return `${column.channel}_${column.name}`;\n}\n\n/**\n * This generates the list of available types and searchable fields.\n *\n * @returns {Object} Shape: {\n * primary {Array}: The primary menu items for the main menu,\n * searchable {Array}: The menu items when searching in the the searchable menu,\n * }\n*/\nfunction generateMenuOptions(fieldOptions = {}, selectedColumns = [], translator) {\n let primaryMenuOptions = [];\n let searchableMenuOptions = [];\n\n const generateOptions = ({fields, searchFilter = filterFields, name, displayName, hasChildren}) => {\n const filteredFields = searchFilter(fields, selectedColumns);\n\n searchableMenuOptions = searchableMenuOptions\n .concat(flattenEntries(filteredFields))\n .map((option) => {\n let displayType = '';\n if (option.fieldType === 'metric') {\n displayType = translator('metric_literal');\n }\n else if (option.fieldType === 'category_value') {\n displayType = translator('category_literal');\n }\n else if (option.fieldType === 'metric_set') {\n displayType = translator('metric_set');\n }\n\n return { ...option, displayType };\n });\n\n primaryMenuOptions.push({\n name,\n displayName,\n disabled: filteredFields.length === 0,\n hasChildren: hasChildren\n });\n };\n\n const generateSeparator = () => {\n const numberOfOptions = primaryMenuOptions.length;\n\n // Never start with a separator and never put two separators in a row\n if (numberOfOptions !== 0\n && primaryMenuOptions[numberOfOptions - 1].type !== SEPARATOR_TYPE)\n {\n primaryMenuOptions.push({\n type: SEPARATOR_TYPE,\n });\n }\n };\n\n generateOptions({\n name: METRIC,\n fields: mergeMetricAndMetricSet(fieldOptions.metric || [], fieldOptions.metric_set || []),\n searchFilter: filterCombinedMetricAndMetricSets,\n displayName: translator('metric_literal'),\n hasChildren: true,\n });\n\n if (fieldOptions.category_value) {\n generateOptions({\n name: CATEGORY_VALUE,\n fields: fieldOptions.category_value,\n searchFilter: filterGroupedFields,\n displayName: translator('category_literal'),\n hasChildren: true,\n });\n }\n\n generateSeparator();\n\n generateOptions({\n name: BLANK_ROW_TYPE,\n fields: [{\n name: BLANK_ROW_TYPE,\n displayName: translator('widget.kpi_group.blank_row'),\n }],\n displayName: translator('widget.kpi_group.blank_row'),\n hasChildren: false,\n });\n\n generateOptions({\n name: HEADING_TYPE,\n fields: [{\n name: HEADING_TYPE,\n displayName: translator('widget.kpi_group.heading'),\n }],\n displayName: translator('widget.kpi_group.heading'),\n hasChildren: true,\n });\n\n return {\n primary: primaryMenuOptions,\n searchable: searchableMenuOptions,\n };\n}\n\nconst KPIGroupFieldsOption = ({\n fieldOptions,\n selectedColumns,\n onChange,\n transitionForward,\n initialMenuSelection\n}) => {\n const translator = useTranslator();\n\n // the different types of fields available\n // for column selection and their respective lists\n const menuOptions = useMemo(() => {\n return generateMenuOptions(fieldOptions, selectedColumns, translator);\n }, [fieldOptions, selectedColumns, translator]);\n\n const handleOnChange = useCallback((e) => {\n // three options user selected:\n // add blank row\n // further explore that column type\n // add specific field\n if (e.target.type === 'main' && e.target.value.name === BLANK_ROW_TYPE) {\n onChange({\n target: {\n value: selectedColumns.concat([{\n type: BLANK_ROW_TYPE,\n name: uniqueId('kpigroupseparator_'),\n displayName: translator('widget.kpi_group.blank_row'),\n }]),\n }\n });\n }\n else if (e.target.type === 'main' || e.target.value.fieldType === CATEGORY_VALUE) {\n // we keep the users selection highlighted if they end up traveling back here\n let menuSelection = e.target.value.name;\n let newControlOptions = null;\n\n if (menuSelection === METRIC) {\n newControlOptions = { control: MetricAndMetricSetOption, props: {}, title: translator('add_field_template', { field: translator('metric_literal')}) };\n }\n else if (menuSelection === CATEGORY_VALUE) {\n newControlOptions = { control: SparkDimensionColumnSelector, props: { startingValue: { metric: 'duration' } }, title: translator('add_field_template', { field: translator('category_literal')}) };\n }\n else if (menuSelection === HEADING_TYPE) {\n newControlOptions = { control: KPIGroupHeadingOption, props: {}, title: translator('add_field_template', { field: translator('widget.kpi_group.heading')}) };\n }\n else {\n // displayType was added so lets remove it\n const column = e.target.type === 'main' ? null : omit(e.target.value, 'displayType');\n newControlOptions = { control: SparkDimensionColumnSelector, props: column ? { startingValue: { name: column.name, metric: 'duration' } } : {}, title: translator('add_field_template', { field: translator('category_literal')}) };\n }\n\n if (newControlOptions) {\n transitionForward(\n newControlOptions,\n { control: KPIGroupFieldsOption, props: { initialMenuSelection: menuSelection }, title: translator('add_row_literal') }\n );\n }\n }\n else {\n const column = e.target.value;\n if (column.fieldType === METRIC_SET) {\n const newColumns = column.columns;\n let updatedColumns = [ ...selectedColumns ];\n\n let selectedColumnsByName = selectedColumns.reduce((byName, col) => {\n const key = createKeyFromColumn(col);\n byName[key] = col;\n return byName;\n }, []);\n\n // for every column in the new metric set, check if it already exists in the table.\n // If not, concat the new column onto the array\n\n newColumns.forEach(newColumn => {\n if (!selectedColumnsByName[createKeyFromColumn(newColumn)]) {\n updatedColumns.push({\n type: FIELD_TYPE,\n name: newColumn.name,\n channel: newColumn.channel,\n displayName: newColumn.displayName,\n fieldType: newColumn.fieldType\n });\n }\n });\n\n onChange({\n target: {\n value: updatedColumns,\n }\n });\n }\n else {\n const modifiedColumn = {\n type: FIELD_TYPE,\n name: column.name,\n channel: column.channel,\n displayName: column.displayName,\n fieldType: column.fieldType\n };\n onChange({\n target: {\n value: selectedColumns.concat([modifiedColumn]),\n }\n });\n }\n }\n }, [onChange, transitionForward, selectedColumns, translator]);\n\n return (\n );\n};\n\nKPIGroupFieldsOption.propTypes = {\n fieldOptions: PropTypes.shape({\n metric: PropTypes.array,\n category_value: PropTypes.array,\n metric_set: PropTypes.array,\n }).isRequired,\n initialMenuSelection: PropTypes.string,\n selectedColumns: KPI_GROUP_COLUMNS_PROPTYPE.isRequired,\n\n onChange: PropTypes.func.isRequired,\n transitionForward: PropTypes.func.isRequired,\n};\n\nexport default KPIGroupFieldsOption;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { css } from 'styled-components';\nimport { HEADING_TYPE, BLANK_ROW_TYPE } from 'Common/components/widgets/KPIGroupWidget/KPIGroupWidgetConstants';\n\nconst Root = styled.span`\n ${({theme, type}) => {\n if (type === HEADING_TYPE) {\n return css`\n font-weight: 500;\n color: ${theme.colors.palette.blue.awesome};\n `;\n }\n else if (type === BLANK_ROW_TYPE) {\n return css`\n color: ${theme.colors.darkText.disabled};\n `;\n }\n }}\n`;\n\nfunction KPIGroupFieldChipText({\n type,\n children,\n}) {\n return (\n \n {children}\n \n );\n}\n\nKPIGroupFieldChipText.propTypes = {\n type: PropTypes.string.isRequired,\n children: PropTypes.node.isRequired,\n};\n\nKPIGroupFieldChipText.defaultProps = { };\n\nexport default KPIGroupFieldChipText;\n","import React, { Fragment, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport FieldBuilder from 'Common/components/FieldBuilder/FieldBuilder';\nimport ListButton from 'Common/components/ListButton';\nimport KPIGroupFieldsOption from './KPIGroupFieldsOption';\nimport MetricAndMetricSetOption from 'Common/components/ColumnControl/MetricAndMetricSetOption';\nimport KPIGroupHeadingOption from './KPIGroupHeadingOption';\nimport { KPI_GROUP_COLUMNS_PROPTYPE } from 'Common/components/widgets/KPIGroupWidget/KPIGroupWidgetConstants';\nimport KPIGroupFieldChipText from './KPIGroupFieldChipText';\nimport Button from 'Common/components/Button';\nimport { useTranslator } from 'Common/hooks/useTranslation';\nimport SparkDimensionColumnSelector from './SparkDimensionColumnSelector';\n\nconst AddButtonContainer = styled.div`\n padding: 0 4px;\n padding-bottom: 4px;\n border-bottom: 1px solid ${({theme}) => theme.colors.palette.grey.silver };\n margin-bottom: -1px;\n`;\n\nconst InstructionLabel = styled.div`\n color: ${({theme}) => theme.colors.darkText.mediumEmphasis};\n padding: 1px 11px 4px 11px;\n`;\n\nconst FieldBuilderContainer = styled.div`\n overflow-y: auto;\n flex: 1 1 auto;\n`;\n\nconst ButtonContainer = styled.div`\n box-sizing: border-box;\n min-height: 44px;\n min-width: 44px;\n display: flex;\n align-items: center;\n flex: 0 0 auto;\n padding-right: 11px;\n border-top: 1px solid ${({theme}) => theme.colors.palette.grey.silver };\n`;\n\nconst ApplyContainer = styled(ButtonContainer)`\n justify-content: flex-end;\n flex: 0 0 auto;\n`;\n\nconst renderFieldText = (field) => {\n return (\n \n {field.displayName}\n \n );\n};\n\n/**\n * This component is one of the options traveled to by KPIGroupColumnControl.\n * Its the start allowing the user to add/update/remove fields.\n */\n\nconst KPIGroupSelectedFieldsOption = ({\n selectedColumns,\n onChange,\n transitionForward,\n onApply,\n isDirty\n}) => {\n\n const translator = useTranslator();\n const handleAddField = useCallback((e) => {\n transitionForward(\n { control: KPIGroupFieldsOption, props: {}, title: translator('add_row_literal') }\n );\n }, [transitionForward, translator]);\n\n const handleUpdateFields = useCallback((e) => {\n const columnIndex = selectedColumns.findIndex((col) => (col.name === e.target.value));\n\n if (columnIndex < 0) {\n console.warn(`Can not find column ${e.target.value}`);\n return;\n }\n\n const columnType = selectedColumns[columnIndex].type;\n\n if (columnType === 'field') {\n const columnFieldType = selectedColumns[columnIndex].fieldType;\n if (columnFieldType === 'metric') {\n transitionForward(\n { control: MetricAndMetricSetOption, props: { selectedColumnIndex: columnIndex }, title: translator('edit_field_template', { field: translator('metric_literal')}) }\n );\n }\n else if (columnFieldType === 'category_value') {\n transitionForward(\n { control: SparkDimensionColumnSelector, props: { selectedColumnIndex: columnIndex }, title: translator('edit_field_template', { field: translator('category_literal')}) }\n );\n }\n }\n else if (columnType === 'heading') {\n transitionForward(\n { control: KPIGroupHeadingOption, props: { selectedColumnIndex: columnIndex }, title: translator('edit_field_template', { field: translator('widget.kpi_group.heading')}) }\n );\n }\n\n }, [transitionForward, selectedColumns, translator]);\n\n return (\n \n \n \n {translator('add_row_literal')}\n \n \n {selectedColumns.length > 0 ? {translator('widget.table.column_control.instructions')} : null}\n \n \n \n \n \n {translator('apply_literal')}\n \n \n \n );\n};\n\nKPIGroupSelectedFieldsOption.propTypes = {\n selectedColumns: KPI_GROUP_COLUMNS_PROPTYPE.isRequired,\n isDirty: PropTypes.bool.isRequired,\n onApply: PropTypes.func.isRequired,\n onChange: PropTypes.func.isRequired,\n transitionForward: PropTypes.func.isRequired,\n};\n\nexport default KPIGroupSelectedFieldsOption;\n","import React, {\n useState,\n useCallback,\n useMemo,\n useImperativeHandle,\n forwardRef,\n createElement,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport LiveControlDropdownHeader from 'Common/components/LiveControlBar/LiveControlDropdownHeader';\nimport LiveControlDropdownLayout from 'Common/components/LiveControlBar/LiveControlDropdownLayout';\nimport KPIGroupSelectedFieldsOption from './KPIGroupSelectedFieldsOption';\nimport useStackHistory from 'Common/hooks/useStackHistory';\nimport { KPI_GROUP_COLUMNS_PROPTYPE, FIELD_TYPE, CATEGORY_VALUE } from 'Common/components/widgets/KPIGroupWidget/KPIGroupWidgetConstants';\nimport isEqual from 'lodash/isEqual';\n\nconst Root = styled.div`\n box-sizing: border-box;\n width: 275px;\n display: flex;\n flex-direction: column;\n min-height: 1px;\n`;\n\n// compares columns to see if they are the same\nfunction hasChanges (initialColumns, updatedColumns) {\n if (initialColumns.length !== updatedColumns.length) {\n return true;\n }\n\n return !initialColumns.every((column, index) => {\n const updatedColumn = updatedColumns[index];\n return isEqual(column, updatedColumn);\n });\n}\n\n/**\n * This component is used by KPIGroupWidget to edit/add/remove fields. It is in the style\n * of a stack so as the user travels through the interface it will replace the current\n * control with the next one.\n *\n */\nconst KPIGroupColumnControl = forwardRef((props, ref) => {\n const {\n defaultTitle,\n fieldOptions,\n icon,\n selectedColumns: initialSelectedColumns,\n goBack,\n onChange,\n } = props;\n\n const [selectedColumns, setSelectedColumns] = useState(initialSelectedColumns);\n\n const isDirty = useMemo(() => {\n return hasChanges(initialSelectedColumns, selectedColumns);\n }, [selectedColumns, initialSelectedColumns]);\n\n const handleOuterClose = useCallback(() => {\n if (!isDirty) {\n return true;\n }\n\n onChange({\n target: {\n value: selectedColumns,\n },\n });\n\n return true;\n }, [ isDirty, selectedColumns, onChange ]);\n\n useImperativeHandle(ref, () => ({\n onClose: () => {\n return handleOuterClose();\n },\n }), [ handleOuterClose ]);\n\n // handles navigation between different controls\n const { \n current: currentProps,\n canPop: internalCanGoBack,\n push: transitionForward,\n pop: internalGoBack,\n clear\n } = useStackHistory({ control: KPIGroupSelectedFieldsOption, props: {}, title: defaultTitle });\n\n const handleOnColumnsChange = useCallback((event) => {\n // in certain cases we just add the full column object\n // so now we will modify it to allign it with what\n // KPIGroupWidget expects\n const columns = event.target.value.map((col) => {\n if (col.fieldType === CATEGORY_VALUE && col.type !== FIELD_TYPE) {\n return {\n type: FIELD_TYPE,\n name: col.name,\n channel: col.channel,\n displayName: col.displayName,\n fieldType: col.fieldType,\n dimensionVisualization: col.dimensionVisualization\n };\n }\n else if (col.fieldType && col.type !== FIELD_TYPE) {\n return {\n type: FIELD_TYPE,\n name: col.name,\n channel: col.channel,\n displayName: col.displayName,\n fieldType: col.fieldType,\n };\n }\n else {\n return col;\n }\n });\n setSelectedColumns(columns);\n clear();\n }, [clear]);\n\n const title = currentProps.title || defaultTitle;\n\n // a go back link can also come from\n // parent not just the history stack\n const canGoBack = !!goBack;\n\n const headerGoBack = internalCanGoBack\n ? internalGoBack\n : canGoBack ? goBack : null;\n\n // this handles what happens when the user selects\n // the go back link\n const handleHeaderGoBack = useCallback(() => {\n if (headerGoBack) {\n headerGoBack();\n }\n }, [headerGoBack]);\n\n const header = (\n \n );\n\n const body = (\n \n {createElement(currentProps.control, {\n ...(currentProps.props || {}),\n fieldOptions,\n selectedColumns,\n isDirty,\n transitionForward,\n onChange: handleOnColumnsChange,\n onApply: handleOuterClose\n })}\n \n );\n\n return (\n \n );\n});\n\nKPIGroupColumnControl.displayName = 'KPIGroupColumnControl';\n\nKPIGroupColumnControl.propTypes = {\n fieldOptions: PropTypes.shape({\n metric: PropTypes.array,\n category_value: PropTypes.array,\n metric_set: PropTypes.array,\n }).isRequired,\n selectedColumns: KPI_GROUP_COLUMNS_PROPTYPE.isRequired,\n icon: PropTypes.node.isRequired,\n defaultTitle: PropTypes.string.isRequired,\n\n onChange: PropTypes.func.isRequired,\n goBack: PropTypes.func,\n};\n\nexport default KPIGroupColumnControl;\n","import React, { useCallback, useRef, useState, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport LiveControlBar from 'Common/components/LiveControlBar';\nimport LiveControl from 'Common/components/LiveControlBar/LiveControl';\nimport LiveControlIcon from 'Common/components/LiveControlBar/LiveControlIcon';\nimport LiveControlSeparator from 'Common/components/LiveControlBar/LiveControlSeparator';\nimport Filters from 'Common/types/Filters/Filters';\n\nimport { useTranslator } from 'Common/hooks/useTranslation';\n\nimport EnterpriseHierarchyControl from 'Common/components/LiveControls/EnterpriseHierarchyControl';\nimport FilterControl from 'Common/components/LiveControls/FilterControl';\nimport TimeRangeControl from 'Common/components/LiveControls/TimeRangeControl';\nimport KPIGroupColumnControl from './KPIGroupColumnControl/KPIGroupColumnControl';\nimport { FIELD_TYPE, HEADING_TYPE, BLANK_ROW_TYPE } from 'Common/components/widgets/KPIGroupWidget/KPIGroupWidgetConstants';\nimport renderDuplicateLiveControl from 'Common/components/LiveControls/DuplicateLiveControl/renderDuplicateLiveControl';\n\nconst emptyArray = [];\n\nexport default function KPIGroupWidgetLiveControls ({\n filters,\n setSliceFilters,\n filterOptions,\n\n followPageTimeRange,\n timeRange,\n setTimeRange,\n\n followAppBarHierarchyNode,\n hierarchyNode,\n setHierarchyNode,\n hierarchyNodeOptions,\n\n columns: selectedColumns,\n setColumns,\n columnOptions,\n\n isLayoutModeActive,\n duplicateWidget,\n\n suppressedControls,\n}) {\n const translator = useTranslator();\n \n const [selectedControl, setSelectedControl] = useState(null);\n const closeSelectedControl = useCallback(() => {\n setSelectedControl(null);\n }, []);\n\n const hideControl = (controlName) => {\n // hide control there is a suppressed object and the control name is truthy within that\n // object\n return Boolean(suppressedControls && suppressedControls[controlName]);\n };\n\n\n // Filters\n //\n const filterLiteral = translator('control.common.filter');\n\n const activeFilterCount = useMemo(() => {\n return Filters.countActiveExpressions(filters);\n }, [filters]);\n\n const transformedFilterValue = useMemo(() => {\n // Enforce that ONLY slice filters are ever used.\n return {\n slice: filters.slice,\n group: { expressions: [] },\n };\n }, [ filters ]);\n\n const filterControlRef = useRef(null);\n\n const onFilterClose = useCallback(() => {\n return filterControlRef.current.onClose();\n }, []);\n\n const handleFilterApply = useCallback((event) => {\n // Close the control when the filters are applied\n closeSelectedControl();\n\n // We only care about slice filters\n const newSliceFilters = event.target.value.slice;\n setSliceFilters(newSliceFilters);\n }, [closeSelectedControl, setSliceFilters]);\n\n\n // Hierarchy Node\n //\n const assetHierarchyLiteral = translator('control.common.asset_hierarchy');\n\n const handleHierarchyNodeChange = useCallback((event) => {\n // Close the control after picking a node\n closeSelectedControl();\n setHierarchyNode(event.target.value);\n }, [closeSelectedControl, setHierarchyNode]);\n\n const handleFollowAppBarHierarchyNodeChange = useCallback((event) => {\n const newFollowAppBarHierarchyNode = event.target.value;\n\n let newHierarchyNode;\n\n if (newFollowAppBarHierarchyNode) {\n // Clear the hierarchy node\n newHierarchyNode = null;\n }\n else {\n // Set hierarchy node to default\n newHierarchyNode = 'self';\n }\n\n setHierarchyNode(newHierarchyNode);\n }, [setHierarchyNode]);\n\n\n // Time Range\n //\n const timeRangeLiteral = translator('control.common.time_range');\n\n const handleTimeRangeChange = useCallback((event) => {\n // Close the control after picking a time range\n closeSelectedControl();\n setTimeRange(event.target.value);\n }, [closeSelectedControl, setTimeRange]);\n\n const handleFollowPageTimeRangeChange = useCallback((event) => {\n const newFollowPageTimeRange = event.target.value;\n\n let newTimeRange;\n\n if (newFollowPageTimeRange) {\n // Clear the time range\n newTimeRange = null;\n }\n else {\n // Set time range to default\n newTimeRange = { units: 'shift', start: 0, end: 0 };\n }\n\n setTimeRange(newTimeRange);\n }, [setTimeRange]);\n\n\n // KPIGroupColumn\n const rowLiteral = translator('control.common.row');\n const rowControlIcon = ();\n const columnControlRef = useRef(null);\n\n const onColumnClose = useCallback(() => {\n return columnControlRef.current.onClose();\n }, [columnControlRef]);\n\n const handleColumnChange = useCallback((event) => {\n // Close the control after picking a node\n closeSelectedControl();\n\n // convert format of columns to stf friendly\n const modifiedColumns = event.target.value.reduce((contents, field) => {\n if (field.type === BLANK_ROW_TYPE) {\n contents.push({\n type: field.type,\n });\n }\n else if (field.type === HEADING_TYPE) {\n contents.push({\n heading: { displayName: field.displayName },\n type: field.type,\n });\n }\n else if (field.type === FIELD_TYPE) {\n const fieldStf = {\n type: field.type,\n field: {\n name: field.name,\n channel: field.channel,\n },\n };\n\n // Add in dimension visualization config, if given.\n if (field.dimensionVisualization) {\n const dv = field.dimensionVisualization;\n\n fieldStf.field.dimensionVisualization = {\n visualization: dv.visualization,\n metric: dv.metric,\n orderBy: dv.orderBy,\n maxElementsShown: dv.maxElementsShown,\n };\n }\n\n contents.push(fieldStf);\n }\n // if somehow its a type we dont know ignore it\n\n return contents;\n }, []);\n\n setColumns(modifiedColumns);\n }, [closeSelectedControl, setColumns]);\n\n const fullSelectedColumns = useMemo(() => {\n const columnsByName = Object.keys(columnOptions).reduce((acc, fieldType) => {\n // The chips only show \"top-level\" selections of category values\n // or metrics.\n if (fieldType === 'category_value' || fieldType === 'metric') {\n columnOptions[fieldType].forEach(group => {\n group.entries.forEach(col => {\n acc[col.name] = col;\n });\n });\n }\n\n return acc;\n }, {});\n\n return selectedColumns.reduce((fields, field, index) => {\n if (field.type === BLANK_ROW_TYPE) {\n fields.push({\n name: `separator_${index}`,\n displayName: translator('widget.kpi_group.blank_row'),\n type: field.type,\n });\n }\n else if (field.type === HEADING_TYPE) {\n let displayName = field.heading?.displayName\n ? field.heading?.displayName\n : field.heading?.displayKey ? translator(field.heading.displayKey) : translator('widget.kpi_group.heading');\n\n fields.push({\n name: `heading_${index}`,\n displayName,\n type: field.type,\n });\n }\n else if (field.type === FIELD_TYPE) {\n const channel = field.field.channel || 'production_metric';\n const column = columnsByName[field.field.name];\n\n const fullField = {\n type: field.type,\n name: field.field.name,\n channel: channel,\n displayName: column?.displayName || translator('na_symbol'),\n fieldType: column?.fieldType || 'invalid',\n };\n\n if (field.field.dimensionVisualization) {\n fullField.dimensionVisualization = field.field.dimensionVisualization;\n }\n \n fields.push(fullField);\n }\n // if somehow its a type we dont know ignore it\n\n return fields;\n }, []);\n }, [selectedColumns, translator, columnOptions]);\n\n\n const handleSelectionChange = useCallback((newSelection) => {\n let blockSelectionChange = false;\n\n if (selectedControl === 'filter' && newSelection !== 'filter') {\n blockSelectionChange = !onFilterClose();\n }\n\n if (selectedControl === 'columns' && newSelection !== 'columns') {\n onColumnClose();\n }\n\n if (!blockSelectionChange) {\n setSelectedControl(newSelection);\n }\n }, [selectedControl, onFilterClose, onColumnClose]);\n\n const showDuplicateControl = () => {\n return isLayoutModeActive && ! hideControl('duplicateWidget');\n };\n\n return (\n \n { hideControl('hierarchyNode') || \n {\n return (\n \n );\n }}\n icon={(\n \n )}\n />\n }\n { hideControl('timeRange') || \n {\n return (\n \n );\n }}\n icon={(\n \n )}\n />\n }\n \n {\n return (\n \n );\n }}\n handleContentLayout={true}\n icon={rowControlIcon}\n />\n { hideControl('filter') || \n \n )}\n controlRender={() => {\n return (\n \n );\n }}\n />\n }\n {showDuplicateControl() && }\n {showDuplicateControl() && (\n renderDuplicateLiveControl({\n name: 'duplicateWidget',\n key: 'duplicateWidget',\n translator: translator,\n action: duplicateWidget,\n })\n )}\n \n );\n}\n\nKPIGroupWidgetLiveControls.propTypes = {\n name: PropTypes.string,\n\n filters: PropTypes.object.isRequired,\n setSliceFilters: PropTypes.func.isRequired,\n filterOptions: PropTypes.shape({\n categories: PropTypes.arrayOf(\n PropTypes.object\n ).isRequired,\n values: PropTypes.object.isRequired,\n }).isRequired,\n\n followPageTimeRange: PropTypes.bool.isRequired,\n timeRange: PropTypes.object,\n setTimeRange: PropTypes.func.isRequired,\n\n followAppBarHierarchyNode: PropTypes.bool.isRequired,\n hierarchyNode: PropTypes.string,\n setHierarchyNode: PropTypes.func.isRequired,\n hierarchyNodeOptions: PropTypes.arrayOf(\n PropTypes.shape({\n displayName: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n iconClass: PropTypes.string.isRequired,\n level: PropTypes.number.isRequired,\n })\n ).isRequired,\n\n columns: PropTypes.arrayOf(PropTypes.object.isRequired),\n setColumns: PropTypes.func.isRequired,\n columnOptions: PropTypes.shape({\n metric: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n displayName: PropTypes.string.isRequired,\n entries: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n channel: PropTypes.string.isRequired,\n displayName: PropTypes.string.isRequired,\n })\n ),\n }).isRequired\n ),\n metric_set: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n displayName: PropTypes.string.isRequired,\n entries: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n channel: PropTypes.string.isRequired,\n displayName: PropTypes.string.isRequired,\n })\n ),\n }).isRequired\n ),\n category_value: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n displayName: PropTypes.string.isRequired,\n entries: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n channel: PropTypes.string.isRequired,\n displayName: PropTypes.string.isRequired,\n })\n ),\n }).isRequired\n ),\n }).isRequired,\n\n isLayoutModeActive: PropTypes.bool.isRequired,\n duplicateWidget: PropTypes.func.isRequired,\n suppressedControls: PropTypes.object,\n};\n\nKPIGroupWidgetLiveControls.defaultProps = {\n suppressedControls: {},\n};\n","import NoDataMessage from './NoDataMessage';\n\nexport default NoDataMessage;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { css } from 'styled-components';\nimport { FontFamily } from 'Common/components/typography';\n\nconst RowCell = styled.div`\n min-width: 1px;\n\n ${({ $singleLine }) => $singleLine && css`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n `}\n\n &:not(:first-child) {\n padding-left: 8px;\n }\n\n ${({ $alignRight }) => $alignRight && css`\n text-align: right;\n `}\n\n /* Line below is helpful for debugging */\n /* box-shadow: inset 0 0 0 1px rgb(255,0,0); */\n`;\n\nconst RowText = styled.span`\n font-family: ${FontFamily.primary};\n font-size: 12px;\n color: ${({theme}) => theme.colors.darkText.highEmphasis};\n\n div.cpe-metric-container {\n display: inline-block;\n }\n`;\n\nexport default function EventDataCell(props) {\n const {\n allowOverflow,\n alignRight,\n children,\n style,\n } = props;\n\n return (\n \n {children}\n \n );\n}\n\nEventDataCell.propTypes = {\n alignRight: PropTypes.bool,\n allowOverflow: PropTypes.bool,\n children: PropTypes.node,\n colspan: PropTypes.number,\n size: PropTypes.number,\n style: PropTypes.object,\n};\n\nEventDataCell.defaultProps = {\n alignRight: false,\n allowOverflow: false,\n colspan: 1,\n size: 1,\n};\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { css } from 'styled-components';\nimport { elementsOfType } from 'Common/util/propTypeHelpers';\nimport EventDataCell from './EventDataCell';\n\nconst Root = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 0 10px;\n min-height: 24px;\n\n font-size: 11px;\n border-radius: 4px;\n\n ${({ striped }) => striped && css`\n background-color: ${({theme}) => theme.colors.palette.grey.cloud};\n `}\n`;\n\nexport default function EventDataRow(props) {\n const { striped, columnOrder, columnConfigs, children } = props;\n\n const cellMap = useMemo(() => {\n const childrenArray = React.Children.toArray(children);\n\n const map = {};\n\n childrenArray.forEach((child, i) => {\n let columnName = child.props.column;\n \n if (columnName === undefined) {\n columnName = i;\n }\n \n if (typeof columnName === 'number') {\n columnName = columnOrder[columnName];\n }\n \n if (map[columnName]) {\n console.warn(`Detected cell with duplicate column: ${child.props.column}`);\n }\n \n map[columnName] = child;\n });\n\n return map;\n }, [ columnOrder, children ]);\n\n const cells = useMemo(() => {\n const totalRowSize = columnOrder.reduce((sum, columnName) => {\n return sum + columnConfigs[columnName].size;\n }, 0);\n\n return columnOrder.map((columnName, columnIndex) => {\n let child = cellMap[columnName];\n\n if (!child) {\n child = (\n {''}\n );\n }\n\n const colspan = child.props.colspan;\n let cellSize = 0;\n\n for (let i = columnIndex; i < Math.min(columnIndex + colspan, columnOrder.length); i++) {\n cellSize += columnConfigs[columnOrder[i]].size;\n }\n\n const percentWidth = Math.floor((cellSize / totalRowSize) * 100);\n\n return React.cloneElement(child, {\n key: String(columnName),\n style: {\n ...(child.props.style || {}),\n flex: `0 0 ${percentWidth}%`,\n },\n });\n });\n }, [ cellMap, columnOrder, columnConfigs ]);\n\n return (\n \n {cells}\n \n );\n}\n\nEventDataRow.propTypes = {\n striped: PropTypes.bool,\n columnOrder: PropTypes.arrayOf(PropTypes.string),\n columnConfigs: PropTypes.objectOf(PropTypes.shape({\n name: PropTypes.string.isRequired,\n size: PropTypes.number.isRequired,\n })),\n children: elementsOfType([ EventDataCell ]),\n};\n\nEventDataRow.defaultProps = {\n striped: false,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { elementsOfType } from 'Common/util/propTypeHelpers';\nimport EventDataRow from './EventDataRow';\n\nconst Root = styled.div`\n border-radius: 5px;\n`;\n\nexport default function EventDataGroup(props) {\n const { columnOrder, columnConfigs, children } = props;\n\n const rows = React.Children.map(children, (child, i) => {\n return React.cloneElement(child, {\n striped: i % 2 === 0,\n columnOrder: columnOrder,\n columnConfigs: columnConfigs,\n });\n });\n\n return (\n \n {rows}\n \n );\n}\n\nEventDataGroup.propTypes = {\n columnOrder: PropTypes.array,\n columnConfigs: PropTypes.object,\n children: elementsOfType([ EventDataRow ]),\n};\n\nEventDataGroup.defaultProps = {};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { css } from 'styled-components';\n\nimport EventDataGroup from 'Common/components/EventData/EventDataGroup';\n\nconst Root = styled.div``;\n\nconst WrapperRow = styled.div`\n height: 12px;\n background-color: ${({theme}) => theme.colors.palette.grey.manatee};\n border-radius: ${(props) => props.position === 'header'\n ? css`4px 4px 0px 0px`\n : css`0px 0px 4px 4px`\n };\n`;\n\n/**\n * A simple wrapper around EventDataGroup that adds a header and footer and default column\n * configs for use in KPIGroupWidget. All children are forwarded to EventDataGroup.\n *\n * @see EventDataGroup\n */\nexport default function KPIGroupContent({\n children,\n isPrint,\n}) {\n const columnOrder = ['label', 'value'];\n const columnConfigs = {\n label: {\n name: 'label',\n size: 1\n },\n value: {\n name: 'value',\n size: 1\n }\n };\n\n return (\n \n {!isPrint && }\n \n {children}\n \n {!isPrint && }\n \n );\n}\n\nKPIGroupContent.propTypes = {\n children: PropTypes.node,\n isPrint: PropTypes.bool,\n};\n\nKPIGroupContent.defaultProps = {\n isPrint: false,\n};\n","import { Heading4 } from 'Common/components/typography';\nimport styled from 'styled-components';\n\nconst KPIGroupHeading = styled(Heading4)`\n color: ${({theme, noColor}) => noColor\n ? theme.colors.darkText.highEmphasis\n : theme.colors.palette.blue.awesome\n };\n`;\n\nexport default KPIGroupHeading;\n","import React, { useMemo } from 'react';\nimport styled from 'styled-components';\nimport CategoryValue from 'Common/components/FormattedDatum/CategoryValue';\nimport Metric from 'Common/components/FormattedDatum/Metric';\nimport PropTypes from 'prop-types';\nimport { Body5, Heading5 } from 'Common/components/typography';\nimport { useTranslator } from 'Common/hooks/useTranslation';\n\nconst StyledCategoryValue = styled(CategoryValue)`\n padding-right: 20px;\n display: block;\n`;\nconst StyledMetric = styled(Metric)`\n display: block;\n text-align: right;\n`;\n\nconst Row = styled(Body5).attrs({ as: 'div' })`\n display: grid;\n padding: 4px 5px 5px 5px;\n grid-template-columns: auto auto;\n align-items: center;\n`;\n\nconst Root = styled.div`\n line-height: 16px;\n\n ${Row}:nth-child(2n) {\n border-radius: 3px;\n background-color: ${({theme}) => theme.colors.palette.grey.cloud};\n }\n`;\n\nconst InformationalText = styled.div`\n padding: 8px 5px 4px 5px;\n`;\n\nconst TooltipHeader = styled(Heading5)`\n display: block;\n text-align: left;\n`;\n\nconst MAX_ITEMS = 100;\n\nfunction TooltipContent({ data }) {\n const { displayName, values:dataValues } = data;\n const translator = useTranslator();\n const header = useMemo(() => {\n const hasMetrics = dataValues.find(x => x.metric);\n return hasMetrics\n ? (\n \n \n {displayName}\n \n \n )\n : null;\n },[displayName, dataValues]);\n const content = useMemo(() => {\n if (!dataValues) {\n return [];\n }\n let values = dataValues;\n const orignalValuesLength = values.length;\n // we will only count too many items as max items + 1\n // this means we won't show a message that one item is missing\n // instead of just showing that one item\n const hasTooManyItems = orignalValuesLength > (MAX_ITEMS + 1);\n\n // we limit how much we show, too many items in here\n // can cause the tooltip to take a full second to load\n // and is soo much data that it's not very digestable to the user.\n if (hasTooManyItems) {\n values = values.slice(0, MAX_ITEMS);\n }\n\n let contentValues = values.map((elem, index) => {\n return elem.metric\n ? (\n \n \n )\n : (\n \n );\n });\n\n if (hasTooManyItems) {\n contentValues.push({translator('widget.spark_visualization.spark_dimension_label.chronogram_max_items', {numItems: orignalValuesLength - MAX_ITEMS})});\n }\n\n return contentValues;\n }, [dataValues, translator]);\n\n return (\n \n {header}\n {content}\n \n );\n}\n\nTooltipContent.propTypes = {\n data: PropTypes.shape({\n displayName: PropTypes.string.isRequired,\n values: PropTypes.arrayOf(\n PropTypes.shape({\n dimension: PropTypes.shape({\n displayName: PropTypes.string,\n name: PropTypes.string,\n formatType: PropTypes.string,\n rawValue: PropTypes.shape({\n displayName: PropTypes.string,\n name: PropTypes.string,\n color: PropTypes.string,\n }),\n }).isRequired,\n metric: PropTypes.shape({\n displayName: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n formatType: PropTypes.string.isRequired,\n rawValue: PropTypes.number\n }),\n }),\n ).isRequired,\n }),\n};\n\nexport default TooltipContent;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport Tooltip from 'Common/components/Tooltip';\nimport TooltipContent from './internal/TooltipContent';\nimport Icon from 'Common/components/Icon';\nimport { useTranslator } from 'Common/hooks/useTranslation';\nimport { Body5 } from 'Common/components/typography';\nimport { TOOLTIP_LARGE } from 'Common/components/Tooltip/Tooltip';\nimport { TEXT_FORMAT_TYPE } from 'Common/components/SparkVisualization/SparkDimensionConstants';\nimport { categoryValueFormatTypes } from '../FormattedDatum/CategoryValue/CategoryValue';\n\nconst emptyArray = [];\n\nconst SparkTextContainer = styled.div.attrs(({ $width, $height }) => {\n if (isFinite($width)) {\n return {\n style: {\n width: `${$width}px`,\n height: `${$height}px`,\n },\n };\n }\n else {\n return {\n style: {\n height: `${$height}px`,\n },\n };\n }\n \n})`\n display: flex;\n align-items: center;\n justify-content: flex-end;\n`;\n\nfunction TextSparkVisualization(props) {\n const translator = useTranslator();\n const {width, height, data} = props;\n const values = data?.values || emptyArray;\n\n let textContent = values.length === 0\n ? translator('null_metric_literal')\n : translator('multiple_category_value_template', {\n number: values.length,\n });\n\n let disableTooltip = false;\n\n if (values.length === 1){\n const displayName = values[0].dimension.rawValue.displayName;\n const color = values[0]?.dimension?.color;\n\n if (!displayName) {\n disableTooltip = true;\n }\n\n if(color) {\n textContent = (\n \n \n {displayName}\n \n );\n }\n else {\n textContent = displayName;\n }\n }\n\n return (\n }\n style={{ display: 'inline-block'}}\n maxWidth={TOOLTIP_LARGE}\n disabled={disableTooltip}\n >\n \n {textContent}\n \n \n );}\n\nTextSparkVisualization.propTypes = {\n data: PropTypes.shape({\n name: PropTypes.string.isRequired,\n displayName: PropTypes.string.isRequired,\n formatType: PropTypes.oneOf([TEXT_FORMAT_TYPE]).isRequired,\n values: PropTypes.arrayOf(\n PropTypes.shape({\n dimension: PropTypes.shape({\n displayName: PropTypes.string,\n name: PropTypes.string,\n formatType: PropTypes.oneOf(categoryValueFormatTypes).isRequired,\n rawValue: PropTypes.shape({\n displayName: PropTypes.string,\n name: PropTypes.string,\n color: PropTypes.string\n }),\n }).isRequired,\n metric: PropTypes.shape({\n displayName: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n formatType: PropTypes.string.isRequired,\n rawValue: PropTypes.number\n }),\n }),\n ).isRequired,\n }),\n width: PropTypes.number,\n height: PropTypes.number.isRequired,\n noColor: PropTypes.bool,\n};\n\nexport default TextSparkVisualization;\n","import { getQualitativeColor } from 'Common/util/color/util';\n\n/**\n * Given an array of values for a dimension visualization, fill in any dimensions\n * that do not have colors (at `dimension.color`) with colors chosen from the\n * qualitative color palette.\n *\n * If maxElements is provided, then any dimensions that would be merged in the\n * visualization (when values.length > maxElements) will be given the color\n * specified by `otherColor`.\n *\n * @param {Object} opts\n * @param {Object[]} opts.values The values to have colors added.\n * @param {Number} [opts.maxElements] Max elements show in the visualization.\n * @param {String} [opts.otherColor] A CSS color string to be used for any values\n * grouped into the \"other\" value due to maxElements. \n * @returns {Object[]} Values with colors for every dimension.\n */\nexport default function addDimensionColors({\n values,\n maxElements = null,\n otherColor = null,\n}) {\n if (maxElements && (!Number.isInteger(maxElements) || maxElements <= 0)) {\n throw new Error(`maxElements must be a positive integer or null. Got '${maxElements}'`);\n }\n\n if (maxElements && typeof otherColor !== 'string') {\n throw new Error(`otherColor is required if maxElements is set.`);\n }\n\n // Only enable 'other' coloring when maxElements is set and the number\n // of values exceeds maxElements.\n const enableOtherColoring = maxElements && values.length > maxElements;\n\n return values.map((value, index) => {\n const isOther = enableOtherColoring && index >= maxElements - 1;\n\n let color;\n\n if (isOther) {\n color = otherColor;\n }\n else if (value.dimension?.rawValue?.color) {\n color = value.dimension.rawValue.color;\n }\n else {\n color = getQualitativeColor(index);\n }\n\n return {\n ...value,\n dimension: {\n ...value.dimension,\n rawValue: {\n ...value.dimension.rawValue,\n color\n }\n },\n };\n });\n}\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { useTheme } from 'styled-components';\nimport Tooltip from 'Common/components/Tooltip';\nimport TooltipContent from './internal/TooltipContent';\nimport { TOOLTIP_LARGE } from 'Common/components/Tooltip/Tooltip';\nimport { addSeconds, secondsBetween } from 'Common/util/language/date';\nimport { useTranslator } from 'Common/hooks/useTranslation';\nimport addDimensionColors from './internal/addDimensionColors';\nimport { categoryValueFormatTypes } from '../FormattedDatum/CategoryValue/CategoryValue';\n\nconst PADDING = 4;\nconst MAX_HEIGHT = 30;\nconst MIN_BAR_WIDTH = 0.5;\n\nconst Root = styled.div.attrs(({ $width, $height, $showBars }) => {\n return {\n style: {\n width: `${$width}px`,\n height: `${$height}px`,\n justifyContent: $showBars ? 'center' : 'end',\n padding: $showBars ? `${PADDING}px` : 0,\n },\n };\n})`\n display: flex;\n align-items: center;\n`;\n\nconst BarContainer = styled.div.attrs(({ $width, $height }) => {\n return {\n style: {\n width: `${$width}px`,\n height: `${$height}px`,\n },\n };\n})`\n position: relative;\n border-radius: 5px;\n overflow: hidden;\n`;\n\nconst ChronogramEvent = styled.div.attrs(({ $width, $height, $left, $backgroundColor }) => {\n return {\n style: {\n width: `${$width}px`,\n height: `${$height}px`,\n left: `${$left}px`,\n backgroundColor: $backgroundColor,\n },\n };\n})`\n position: absolute;\n top: 0;\n`;\n\nfunction getMinStartTime(data) {\n if (!data?.values || data.values.length === 0) {\n return null;\n }\n\n // Just the start_time of the first value.\n return data?.values[0]?.start_time?.rawValue?.getDate?.() || null;\n}\n\nfunction getTotalDuration(data) {\n if (!data?.values || data.values.length === 0) {\n return 0;\n }\n\n const startTime = getMinStartTime(data);\n const lastValue = data.values[data.values.length - 1];\n const lastStartTime = lastValue?.start_time?.rawValue?.getDate?.();\n const lastDuration = lastValue?.duration?.rawValue;\n\n const endTime = addSeconds(lastStartTime, lastDuration);\n\n return secondsBetween(startTime, endTime);\n}\n\nfunction calcOffsetLeft(startTimeDate, totalStartTimeDate, totalDuration, totalWidth) {\n const secondsFromStart = secondsBetween(totalStartTimeDate, startTimeDate);\n return totalWidth * (secondsFromStart / totalDuration);\n}\n\nfunction calcWidth(duration, totalDuration, totalWidth) {\n return (duration / totalDuration) * totalWidth;\n}\n\nexport default function ChronogramSparkVisualization({\n width,\n height,\n data,\n noColor,\n}) {\n const widthSansPadding = width - (2 * PADDING);\n const heightSansPadding = height - (2 * PADDING);\n const theme = useTheme();\n const translator = useTranslator();\n\n const coloredData = useMemo(() => {\n if (!data) {\n return data;\n }\n\n return {\n ...data,\n values: addDimensionColors({\n values: data.values,\n }),\n };\n }, [ data ]);\n\n const bars = useMemo(() => {\n const totalStartTimeDate = getMinStartTime(coloredData);\n const totalDuration = getTotalDuration(coloredData);\n let noChronogramValue = true;\n\n const chronogramContent = (coloredData?.values || [])\n // Calculate rendered sizes for each chronogram event.\n .map((elem) => {\n let backgroundColor;\n\n if (elem.dimension.rawValue.color && !noColor) {\n backgroundColor = elem.dimension.rawValue.color;\n }\n else {\n backgroundColor = null;\n }\n if (elem.dimension.name !== 'null') {\n noChronogramValue = false;\n }\n const offsetLeft = calcOffsetLeft(\n elem.start_time.rawValue.getDate(),\n totalStartTimeDate,\n totalDuration,\n widthSansPadding,\n );\n\n const newWidth = calcWidth(\n elem.duration.rawValue,\n totalDuration,\n widthSansPadding,\n );\n\n return {\n left: offsetLeft,\n width: newWidth,\n height: height >= (MAX_HEIGHT+(2*PADDING)) ? MAX_HEIGHT : heightSansPadding,\n backgroundColor: backgroundColor,\n };\n })\n // Merge any adjacent event bars that are below the min width.\n .reduce((acc, bar) => {\n const isTooSmall = bar.width < MIN_BAR_WIDTH;\n\n if (isTooSmall) {\n const prev = acc[acc.length - 1];\n const shouldMerge = (\n prev &&\n prev.isCombined &&\n bar.left - (prev.left + prev.width) <= MIN_BAR_WIDTH\n );\n\n if (shouldMerge) {\n acc[acc.length - 1] = {\n ...prev,\n width: (bar.left + bar.width) - prev.left,\n };\n }\n else {\n acc.push({\n ...bar,\n isCombined: true,\n backgroundColor: null,\n });\n }\n }\n else {\n acc.push(bar);\n }\n\n return acc;\n }, [])\n // Filter any remaining bars that are less than the min width.\n .filter((bar) => {\n return bar.width >= MIN_BAR_WIDTH;\n })\n // Convert event bar objects into final components.\n .map((bar, index) => {\n let backgroundColor = bar.backgroundColor;\n\n if (bar.isCombined || !backgroundColor) {\n backgroundColor =\n index % 2 === 0\n ? theme.colors.palette.grey.silver\n : theme.colors.palette.grey.ash;\n }\n\n return (\n \n );\n });\n\n return noChronogramValue ? null : chronogramContent;\n }, [height, heightSansPadding, widthSansPadding, coloredData, theme, noColor]);\n\n // Convert tooltip data to just have metric instead of duration and\n // start_time.\n const tooltipData = useMemo(() => {\n if (!coloredData) {\n return null;\n }\n else {\n return {\n ...coloredData,\n values: (coloredData?.values || []).map((item) => {\n return {\n dimension: item.dimension,\n metric: item.duration,\n };\n }),\n };\n }\n }, [coloredData]);\n\n return (\n \n }\n style={{ display: 'inline-block'}}\n maxWidth={TOOLTIP_LARGE}\n disabled={!bars}\n >\n {bars ? (\n \n {bars}\n \n ) : (\n
    \n {translator(\"null_metric_literal\")}\n
    \n )\n\n }\n \n \n
    \n );\n}\n\nChronogramSparkVisualization.propTypes = {\n data: PropTypes.shape({\n values: PropTypes.arrayOf(\n PropTypes.shape({\n dimension: PropTypes.shape({\n displayName: PropTypes.string,\n name: PropTypes.string,\n formatType: PropTypes.oneOf(categoryValueFormatTypes).isRequired,\n rawValue: PropTypes.shape({\n displayName: PropTypes.string,\n name: PropTypes.string,\n color: PropTypes.string\n })\n }).isRequired,\n start_time: PropTypes.shape({\n displayName: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n formatType: PropTypes.string.isRequired,\n rawValue: PropTypes.object.isRequired,\n }).isRequired,\n duration: PropTypes.shape({\n displayName: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n formatType: PropTypes.string.isRequired,\n rawValue: PropTypes.number.isRequired,\n }).isRequired,\n }),\n ).isRequired,\n }),\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n noColor: PropTypes.bool,\n};\n","/**\n * Given an array of values for a bar or column visualization, calculate the\n * total of all metric values. Any `metric.rawValue` that is not a finite number\n * is considered 0.\n *\n * @param {Object[]} values\n * @returns {Number} Total of all `metric.rawValue`.\n */\nexport function getTotalMetricValue(values) {\n return values.reduce((total, value) => {\n return total + (Number.isFinite(value.metric.rawValue) ? value.metric.rawValue : 0);\n }, 0);\n}\n\n/**\n * Given an array of values for a bar or column visualization, merge any values\n * after `maxElements` into the last value, resulting in an array no longer\n * than `maxElements`. If the initial length does not exceed `maxElements`,\n * nothing will be done.\n *\n * NOTE: Not for use with chronogram visualizations. Chronograms don't have\n * maxElements and they don't have the same data shape.\n *\n * @param {Object[]} values\n * @param {Number} maxElements\n * @returns {Object[]} (Possibly) Merged values.\n */\nexport function mergeValuesAfterMaxElements(values, maxElements) {\n if (!Number.isInteger(maxElements) || maxElements <= 0) {\n throw new Error(`maxElements must be a positive integer > 0. Got '${maxElements}'`);\n }\n\n // If needed, merge any values after maxElements into the last element.\n //\n if (values.length > maxElements) {\n const graphableData = values.slice(0, maxElements - 1);\n const otherData = values.slice(maxElements - 1);\n const otherMetricValue = getTotalMetricValue(otherData);\n // Use the first color in `otherData` as the color for the whole group.\n // This is safe because in this context, otherData.length > 0.\n const otherColor = otherData[0].dimension.rawValue.color;\n // Carry over props from `metric`\n const metricProps = otherData[0].metric;\n\n return [\n ...graphableData,\n // The additional \"Other\" value...\n {\n dimension: {\n rawValue: {\n displayName: null,\n name: null,\n color: otherColor,\n },\n },\n metric: {\n ...metricProps,\n rawValue: otherMetricValue\n },\n },\n ];\n }\n else {\n // No merging needed.\n return values;\n }\n}\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { useTheme } from 'styled-components';\nimport Tooltip from 'Common/components/Tooltip';\nimport TooltipContent from './internal/TooltipContent';\nimport { TOOLTIP_LARGE } from 'Common/components/Tooltip/Tooltip';\nimport { useTranslator } from 'Common/hooks/useTranslation';\nimport addDimensionColors from './internal/addDimensionColors';\nimport { getTotalMetricValue, mergeValuesAfterMaxElements } from './internal/barAndColumnUtils';\nimport { BAR_FORMAT_TYPE } from 'Common/components/SparkVisualization/SparkDimensionConstants';\nimport { categoryValueFormatTypes } from '../FormattedDatum/CategoryValue/CategoryValue';\n\nconst PADDING = 4;\nconst MAX_HEIGHT = 30;\n\nconst Root = styled.div.attrs(({ $width, $height }) => {\n return {\n style: {\n width: `${$width}px`,\n height: `${$height}px`,\n },\n };\n})`\n padding: ${PADDING}px;\n padding-right: ${({$showBars}) => $showBars ? `${PADDING}px` : '0'};\n justify-content: ${({$showBars}) => $showBars ? 'center' : 'end'};\n display: flex;\n align-items: center;\n`;\n\nconst SparkBar = styled.div.attrs(({ $width, $height, $backgroundColor }) => {\n return {\n style: {\n width: `${$width}px`,\n height: `${$height}px`,\n backgroundColor: $backgroundColor,\n },\n };\n})``;\n\nconst SparkBarContainer = styled.div`\n border-radius: 5px;\n overflow: hidden;\n display: flex;\n`;\n\nfunction calcWidth(curr, total, totWidth) {\n if (total === 0 || !curr) {\n return 0;\n }\n\n return (curr / total) * totWidth;\n}\n\nfunction BarSparkVisualization(props) {\n const { width, height, data, maxElements, noColor } = props;\n const widthSansPadding = width - (2*PADDING);\n const heightSansPadding = height - (2*PADDING);\n const theme = useTheme();\n const translator = useTranslator();\n\n const coloredData = useMemo(() => {\n if (!data) {\n return data;\n }\n\n return {\n ...data,\n values: addDimensionColors({\n values: data.values,\n otherColor: theme.colors.palette.grey.ash,\n maxElements,\n }),\n };\n }, [ data, maxElements, theme ]);\n\n const mergedValues = useMemo(() => {\n return mergeValuesAfterMaxElements(coloredData?.values || [], maxElements);\n }, [ coloredData, maxElements ]);\n\n const barDetails = useMemo(() => {\n const total = getTotalMetricValue(mergedValues);\n let allValuesAreZero = !!mergedValues.length;\n let allValuesAreNull = true;\n const barValues = mergedValues.map((elem, index) => {\n let backgroundColor = elem.dimension?.rawValue.color;\n if (noColor) {\n backgroundColor = index % 2 === 0\n ? theme.colors.palette.grey.silver\n : theme.colors.palette.grey.ash;\n }\n\n const rawValue = elem.metric.rawValue;\n\n if (Number.isFinite(rawValue)) {\n allValuesAreNull = false;\n if (rawValue !== 0) {\n allValuesAreZero = false;\n }\n }\n\n const barWidth = calcWidth(rawValue, total, widthSansPadding);\n const barHeight = Math.min(heightSansPadding, MAX_HEIGHT);\n\n return (\n \n );\n });\n return {\n bars: barValues,\n allValuesAreNull,\n allValuesAreZero\n };\n }, [heightSansPadding, widthSansPadding, mergedValues, theme, noColor]);\n\n return (\n \n }\n style={{ display: 'inline-block'}}\n maxWidth={TOOLTIP_LARGE}\n disabled={barDetails.allValuesAreNull}\n >\n {coloredData?.error || barDetails.allValuesAreNull\n ? (\n
    \n {translator(\"null_metric_literal\")}\n
    \n )\n : barDetails.allValuesAreZero\n ? (\n
    \n {translator(\"all_zero_values\")}\n
    \n )\n : (\n \n {barDetails.bars}\n \n )}\n \n
    \n );\n}\n\nBarSparkVisualization.propTypes = {\n data: PropTypes.shape({\n name: PropTypes.string.isRequired,\n displayName: PropTypes.string.isRequired,\n formatType: PropTypes.oneOf([BAR_FORMAT_TYPE]).isRequired,\n values: PropTypes.arrayOf(\n PropTypes.shape({\n dimension: PropTypes.shape({\n displayName: PropTypes.string,\n name: PropTypes.string,\n formatType: PropTypes.oneOf(categoryValueFormatTypes).isRequired,\n rawValue: PropTypes.shape({\n displayName: PropTypes.string,\n name: PropTypes.string,\n color: PropTypes.string\n })\n }).isRequired,\n metric: PropTypes.shape({\n displayName: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n formatType: PropTypes.string.isRequired,\n rawValue: PropTypes.number\n }).isRequired,\n }),\n ).isRequired,\n }),\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n maxElements: PropTypes.number.isRequired,\n noColor: PropTypes.bool,\n};\n\nexport default BarSparkVisualization;\n","import React, { useMemo } from 'react';\nimport styled, { useTheme } from 'styled-components';\nimport Tooltip from 'Common/components/Tooltip';\nimport TooltipContent from './internal/TooltipContent';\nimport PropTypes from 'prop-types';\nimport { TOOLTIP_LARGE } from 'Common/components/Tooltip/Tooltip';\nimport { COLUMN_FORMAT_TYPE } from 'Common/components/SparkVisualization/SparkDimensionConstants';\nimport { useTranslator } from 'Common/hooks/useTranslation';\nimport addDimensionColors from './internal/addDimensionColors';\nimport { mergeValuesAfterMaxElements } from './internal/barAndColumnUtils';\nimport { categoryValueFormatTypes } from '../FormattedDatum/CategoryValue/CategoryValue';\n\nconst PADDING = 4;\nconst BORDER_RADIUS = 4;\n\nconst SparkColumn = styled.div.attrs(({ $width, $height, $margin, $backgroundColor }) => {\n // Heights between 0 and 1px or having decimal px can look weird when rendered.\n const height = Math.round(Math.max(1, $height));\n\n // Don't let the border radius be larger than the height or the browser\n // might render it weird.\n let borderRadius = Math.min(BORDER_RADIUS, height);\n\n // For some reason, a height and border radius of 1px will also lead the\n // browser to some weird rendering.\n if (height <= 1) {\n borderRadius = 0;\n }\n\n return {\n style: {\n width: `${$width}px`,\n height: `${height}px`,\n marginLeft: `${$margin}px`,\n marginRight: `${$margin}px`,\n backgroundColor: $backgroundColor,\n borderRadius: `${borderRadius}px ${borderRadius}px 0 0`,\n },\n };\n})`\n display: inline-block;\n vertical-align: bottom;\n`;\n\nconst SparkColumnContainer = styled.div.attrs(({ $width, $height }) => {\n return {\n style: {\n width: `${$width}px`,\n height: `${$height}px`,\n },\n };\n})`\n padding: ${PADDING}px;\n text-align: left;\n display: flex;\n align-items: end;\n`;\n\nconst NoValueContainer = styled.div`\n align-self: end;\n`;\n\nfunction getMaxMetricValue(values){\n return values.reduce((max, val) => {\n if (val.metric.rawValue) {\n return Math.max(max, val.metric.rawValue);\n }\n else {\n return max;\n }\n }, 0);\n}\n\nfunction calcHeight(currValue, maxValue, totalHeight) {\n if (!currValue) {\n return 0;\n }\n\n return (currValue / maxValue) * totalHeight;\n}\n\nfunction ColumnSparkVisualization(props) {\n const {width, height, data, maxElements, noColor} = props;\n const heightSansPadding = height - (2*PADDING);\n const theme = useTheme();\n const translator = useTranslator();\n\n const coloredData = useMemo(() => {\n if (!data) {\n return data;\n }\n\n return {\n ...data,\n values: addDimensionColors({\n values: data.values,\n otherColor: theme.colors.palette.grey.ash,\n maxElements,\n }),\n };\n }, [ data, maxElements, theme ]);\n\n const mergedValues = useMemo(() => {\n return mergeValuesAfterMaxElements(coloredData?.values || [], maxElements);\n }, [ coloredData, maxElements ]);\n\n const columnDetails = useMemo(() => {\n const margin = (maxElements > 7) ? 1 : 2;\n const colWidth = (width/maxElements) - (2*margin);\n let allValuesAreZero = !!mergedValues.length;\n let allValuesAreNull = true;\n\n const max = getMaxMetricValue(mergedValues);\n\n const columnValues = mergedValues.map((elem, index) => {\n let backgroundColor = elem.dimension.rawValue.color;\n\n if (noColor) {\n backgroundColor = index % 2 === 0\n ? theme.colors.palette.grey.silver\n : theme.colors.palette.grey.ash;\n }\n\n const rawValue = elem.metric.rawValue;\n const colHeight = calcHeight(rawValue, max, heightSansPadding);\n\n if (Number.isFinite(rawValue)) {\n allValuesAreNull = false;\n if (rawValue !== 0) {\n allValuesAreZero = false;\n }\n }\n \n return (\n \n );\n });\n\n return {\n columns: columnValues,\n allValuesAreNull,\n allValuesAreZero\n };\n }, [theme, heightSansPadding, mergedValues, maxElements, width, noColor]);\n\n return (\n }\n style={{ display: 'inline-block' }}\n maxWidth={TOOLTIP_LARGE}\n disabled={columnDetails.allValuesAreNull}\n >\n {columnDetails.allValuesAreNull\n ? (\n \n {translator(\"null_metric_literal\")}\n \n )\n : columnDetails.allValuesAreZero\n ? (\n \n {translator(\"all_zero_values\")}\n \n )\n : (\n \n {columnDetails.columns}\n \n )\n }\n \n );\n}\n\nColumnSparkVisualization.propTypes = {\n data: PropTypes.shape({\n name: PropTypes.string.isRequired,\n displayName: PropTypes.string.isRequired,\n formatType: PropTypes.oneOf([COLUMN_FORMAT_TYPE]).isRequired,\n values: PropTypes.arrayOf(\n PropTypes.shape({\n dimension: PropTypes.shape({\n displayName: PropTypes.string,\n name: PropTypes.string,\n formatType: PropTypes.oneOf(categoryValueFormatTypes).isRequired,\n rawValue: PropTypes.shape({\n displayName: PropTypes.string,\n name: PropTypes.string,\n color: PropTypes.string\n })\n }).isRequired,\n metric: PropTypes.shape({\n displayName: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n formatType: PropTypes.string.isRequired,\n rawValue: PropTypes.number\n }).isRequired,\n }),\n ).isRequired,\n }),\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n maxElements: PropTypes.number.isRequired,\n noColor: PropTypes.bool,\n};\n\nexport default ColumnSparkVisualization;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Metric from 'Common/components/FormattedDatum/Metric/Metric';\nimport { DIMENSION_VISUALIZATION_FORMAT_TYPES } from 'Common/components/SparkVisualization/SparkDimensionConstants';\nimport TextSparkVisualization from 'Common/components/SparkVisualization/TextSparkVisualization';\nimport ChronogramSparkVisualization from 'Common/components/SparkVisualization/ChronogramSparkVisualization';\nimport BarSparkVisualization from 'Common/components/SparkVisualization/BarSparkVisualization';\nimport ColumnSparkVisualization from 'Common/components/SparkVisualization/ColumnSparkVisualization';\nimport { useTranslator } from 'Common/hooks/useTranslation';\nimport InfoCircle from 'Common/components/InfoCircle';\n\nexport default function KPIGroupFormattedDatum({\n error,\n validationError,\n data,\n width,\n height,\n maxElements,\n noColor,\n}) {\n const translator = useTranslator();\n\n let content = null;\n const formatType = data?.formatType;\n\n if (error?.length) {\n content = (\n \n {translator('null_metric_literal')} \n \n );\n }\n else if (validationError) {\n content = (\n
    \n \n {validationError}\n \n
    \n );\n }\n else if (formatType === DIMENSION_VISUALIZATION_FORMAT_TYPES.BAR_FORMAT_TYPE) {\n content = (\n \n );\n }\n else if (formatType === DIMENSION_VISUALIZATION_FORMAT_TYPES.CHRONOGRAM_FORMAT_TYPE) {\n content = (\n \n );\n }\n else if (formatType === DIMENSION_VISUALIZATION_FORMAT_TYPES.COLUMN_FORMAT_TYPE) {\n content = (\n \n );\n }\n else if (formatType === DIMENSION_VISUALIZATION_FORMAT_TYPES.TEXT_FORMAT_TYPE) {\n content = (\n \n );\n }\n else {\n content = (\n \n );\n }\n\n return content;\n}\n\nKPIGroupFormattedDatum.propTypes = {\n error: PropTypes.arrayOf(PropTypes.string),\n data: PropTypes.object.isRequired,\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n maxElements: PropTypes.number,\n noColor: PropTypes.bool,\n validationError: PropTypes.string,\n};\n\nKPIGroupFormattedDatum.defaultProps = {\n noColor: false,\n};\n","import React, { useMemo, useState } from 'react';\nimport useBounds from 'Common/hooks/useBounds';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport { useTranslator } from 'Common/hooks/useTranslation';\nimport { FAILURE } from 'Common/data/RequestStatus';\nimport useKPIGroupWidgetController from './internal/useKPIGroupWidgetController';\nimport KPIGroupWidgetLiveControls from './KPIGroupWidgetLiveControls';\nimport WidgetFrame from 'Common/components/WidgetFrame/WidgetFrame';\nimport FrameHeader from 'Common/components/WidgetFrame/FrameHeader';\nimport WidgetValidationErrorMessage from 'Common/components/WidgetFrame/WidgetValidationErrorMessage';\nimport WidgetLoadingIndicator from 'Common/components/WidgetFrame/WidgetLoadingIndicator';\nimport NoDataMessage from 'Common/components/NoDataMessage';\nimport KPIGroupContent from 'Common/components/widgets/KPIGroupWidget/KPIGroupContent';\nimport KPIGroupHeading from 'Common/components/widgets/KPIGroupWidget/KPIGroupHeading';\nimport EventDataRow from 'Common/components/EventData/EventDataRow';\nimport EventDataCell from 'Common/components/EventData/EventDataCell';\nimport { DIMENSION_VISUALIZATION_FORMAT_TYPES } from 'Common/components/SparkVisualization/SparkDimensionConstants';\nimport usePersistWidgetHeight from 'Common/hooks/usePersistWidgetHeight';\nimport RequestState from 'Common/types/RequestState/RequestState';\nimport KPIGroupFormattedDatum from './internal/KPIGroupFormattedDatum';\nimport CategoryValue from 'Common/components/FormattedDatum/CategoryValue/CategoryValue';\nimport { FIELD_TYPE, HEADING_TYPE } from './KPIGroupWidgetConstants';\n\nconst KPIGroupContainer = styled.div`\n padding: 4px 12px 12px 12px;\n`;\n\nconst DataCellContentContainer = styled.div`\n display: flex;\n justify-content: flex-end;\n text-align: right;\n`;\n\nconst AssetLabelContainer = styled.div`\n padding-left: 15px;\n`;\n\nconst LoadingContainer = styled.div.attrs(({ $minHeight }) => {\n if ($minHeight) {\n return {\n style: { minHeight: `${$minHeight}px` }\n };\n }\n})``;\n\nconst calculateSparkVisualizationWidth = (containerWidth) => {\n const defaultMaxWidth = 150;\n\n return containerWidth === undefined || isNaN(containerWidth)\n ? defaultMaxWidth\n : Math.min(defaultMaxWidth, containerWidth);\n};\n\nexport default function KPIGroupWidget({\n actions,\n alwaysShowAsset,\n areLiveControlsVisible,\n dataService,\n dragHandleProps,\n explorationPath,\n isDragEnabled,\n isLayoutModeActive,\n isPrint,\n mutable,\n printConfig,\n reportHierarchyNode,\n timeRange: pageTimeRange,\n widgetState,\n widgetStf,\n suppressedControls,\n suppressDelete,\n}) {\n\n const translator = useTranslator();\n const noColor = isPrint && printConfig.noColor;\n\n const {\n defaultTitle,\n handleTitleChange,\n title,\n\n dataRequest,\n\n filterOptions,\n filters,\n setSliceFilters,\n formattedFilters,\n\n followPageTimeRange,\n setTimeRange,\n widgetTimeRange,\n timeRangeDescription,\n\n followAppBarHierarchyNode,\n hierarchyNode,\n hierarchyNodeOptions,\n setHierarchyNode,\n\n columns,\n setColumns,\n columnOptions,\n\n isInitialized,\n\n supportsLiveControls,\n toggleShowLiveControls,\n } = useKPIGroupWidgetController({\n areLiveControlsVisible,\n dataService,\n isPrint,\n pageExplorationPath: explorationPath,\n pageTimeRange,\n reportHierarchyNode,\n mutable,\n setWidgetLiveControlsVisibility: actions.setWidgetLiveControlsVisibility,\n setWidgetPrintStatus: actions.setWidgetPrintStatus,\n setWidgetState: actions.setWidgetState,\n setWidgetStf: actions.setWidgetStf,\n widgetStf,\n widgetState,\n });\n\n const {\n widgetContainerRef,\n lastWidgetHeight\n } = usePersistWidgetHeight(dataRequest?.status);\n\n const [dataCellContentContainer, setDataCellContentContainer] = useState(null);\n const dataCellContentContainerBounds = useBounds(dataCellContentContainer);\n const dataCellContentContainerWidth = dataCellContentContainerBounds?.width;\n\n const contentElement = useMemo(() => {\n if (!RequestState.isRequestCompleted(dataRequest)) {\n return (\n \n \n \n );\n }\n else if (dataRequest?.status === FAILURE) {\n return (\n \n );\n }\n else {\n const contents = dataRequest.response.contents;\n const hasFieldsOrHeadings = !!contents.find(row => row.type === FIELD_TYPE || row.type === HEADING_TYPE);\n if (hasFieldsOrHeadings) {\n const data = dataRequest.response.data;\n const rowElements = contents.reduce((acc, row) => {\n if (row.type === HEADING_TYPE) {\n const displayName = row.heading?.displayName || translator(row.heading?.displayKey || '');\n acc.push(\n \n \n \n {displayName}\n \n \n \n );\n }\n else if (row.type === FIELD_TYPE) {\n const dataItem = data?.[row.field.name];\n const label = dataItem?.displayName || '';\n const formatType = dataItem?.formatType;\n const maxElements = row.field?.dimensionVisualization?.maxElementsShown;\n const cellHeight = 24;\n const dataCellWidth = calculateSparkVisualizationWidth(dataCellContentContainerWidth);\n\n // we need to handle having a row for each asset of the chronogram\n if (formatType === DIMENSION_VISUALIZATION_FORMAT_TYPES.CHRONOGRAM_FORMAT_TYPE) {\n // when we have multiple assets we need one per row\n if (dataItem?.values?.length > 1) {\n // put a title for the dimension\n acc.push(\n \n \n \n {label}\n \n \n \n );\n \n dataItem.values.forEach(assetData => {\n const finalDataItem = {\n ...dataItem,\n values: assetData.values\n };\n\n const dataCellContent = dataItem ? (\n \n \n \n ) : null;\n \n acc.push(\n \n \n \n \n \n \n \n {dataCellContent} \n \n \n );\n });\n\n }\n // if were only showing one put it a single row\n else {\n let finalDataItem = null;\n let finalDataItemError;\n let finalDataItemValidationError;\n if (dataItem) {\n let newValues = [];\n if (dataItem.values.length) {\n newValues = dataItem.values[0].values;\n finalDataItemError = dataItem.values[0].error;\n finalDataItemValidationError = dataItem.values[0].validationError;\n }\n finalDataItem = {\n ...dataItem,\n values: newValues\n };\n }\n\n const dataCellContent = finalDataItem ? (\n \n \n \n ) : null;\n \n acc.push(\n \n \n \n {label}\n \n \n \n {dataCellContent} \n \n \n );\n }\n }\n else {\n const dataCellContent = dataItem ? (\n \n \n \n ) : null;\n \n acc.push(\n \n \n \n {label}\n \n \n \n {dataCellContent} \n \n \n );\n }\n }\n else {\n // Any other row type can just be left a blank row\n acc.push(\n \n \n \n );\n }\n return acc;\n }, []);\n return (\n \n {rowElements}\n \n );\n }\n else {\n return (\n \n \n \n );\n }\n }\n }, [dataRequest, noColor, translator, isPrint, lastWidgetHeight, widgetContainerRef, dataCellContentContainerWidth]);\n\n return (\n \n )}\n liveControls={isInitialized && mutable && areLiveControlsVisible && (\n \n )}\n >\n {contentElement}\n \n );\n}\n\nKPIGroupWidget.propTypes = {\n widgetStf: PropTypes.object.isRequired,\n widgetState: PropTypes.object,\n alwaysShowAsset: PropTypes.bool,\n areLiveControlsVisible: PropTypes.bool.isRequired,\n suppressedControls: PropTypes.object,\n suppressDelete: PropTypes.bool,\n\n actions: PropTypes.shape({\n setWidgetStf: PropTypes.func.isRequired,\n setWidgetState: PropTypes.func.isRequired,\n setWidgetPrintStatus: PropTypes.func.isRequired,\n setWidgetExportItem: PropTypes.func.isRequired,\n deleteWidget: PropTypes.func.isRequired,\n duplicateWidget: PropTypes.func.isRequired,\n setWidgetLiveControlsVisibility: PropTypes.func.isRequired,\n }).isRequired,\n\n timeRange: PropTypes.object,\n explorationPath: PropTypes.object,\n reportHierarchyNode: PropTypes.shape({\n name: PropTypes.string,\n displayName: PropTypes.string\n }),\n\n mutable: PropTypes.bool.isRequired,\n dragHandleProps: PropTypes.object,\n isDragEnabled: PropTypes.bool.isRequired,\n isLayoutModeActive: PropTypes.bool.isRequired,\n isPrint: PropTypes.bool.isRequired,\n printConfig: PropTypes.object,\n\n dataService: PropTypes.shape({\n getColumnConfig: PropTypes.func.isRequired,\n getTimeRangePrimaryDetails: PropTypes.func.isRequired,\n getTimeRangeSecondaryDetails: PropTypes.func.isRequired,\n }).isRequired,\n};\n","\nexport const widgetSchema = {\n kpi_widget: {\n type: 'kpi_widget',\n descriptionKey: 'dashboard.widget_descriptions.kpi_widget',\n displayKey: 'kpi_literal',\n liveControls: true,\n iconUrl: 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI1LjMuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAxMiAxMiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTIgMTI7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5zdDB7Y2xpcC1wYXRoOnVybCgjU1ZHSURfMl8pO30KCS5zdDF7ZmlsbDojRkZGRkZGO30KCS5zdDJ7ZmlsbDojMDU1MzkxO30KPC9zdHlsZT4KPGc+Cgk8ZGVmcz4KCQk8cmVjdCBpZD0iU1ZHSURfMV8iIHk9IjAiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIvPgoJPC9kZWZzPgoJPGNsaXBQYXRoIGlkPSJTVkdJRF8yXyI+CgkJPHVzZSB4bGluazpocmVmPSIjU1ZHSURfMV8iICBzdHlsZT0ib3ZlcmZsb3c6dmlzaWJsZTsiLz4KCTwvY2xpcFBhdGg+Cgk8ZyBpZD0iQWRkX1dpZGdldF9LUEkiIGNsYXNzPSJzdDAiPgoJCTxyZWN0IHk9IjAiIGNsYXNzPSJzdDEiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIvPgoJCTxnIGlkPSJHcm91cF8zOTExIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDAuNSkiPgoJCQk8Zz4KCQkJCTxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik01LjQsNC4yYzAsMC40LTAuMSwwLjctMC4yLDFDNS4xLDUuNiw0LjksNS45LDQuNyw2LjJMMy4yLDguNUgxLjNsMS42LTIuMmwwLDBMMi43LDYuM2wtMC4yLDAKCQkJCQljLTAuMywwLTAuNSwwLTAuOC0wLjFDMS40LDYuMSwxLjIsNiwxLDUuOEMwLjgsNS42LDAuNyw1LjQsMC42LDUuMUMwLjUsNC45LDAuNCw0LjYsMC40LDQuM2MwLTAuNCwwLjEtMC43LDAuMi0xCgkJCQkJczAuMy0wLjUsMC41LTAuN2MwLjItMC4yLDAuNS0wLjMsMC44LTAuNUMyLjIsMiwyLjYsMiwyLjksMmMwLjMsMCwwLjcsMC4xLDEsMC4yYzAuMywwLjEsMC42LDAuMywwLjgsMC41CgkJCQkJQzQuOSwyLjgsNS4xLDMsNS4yLDMuM1M1LjQsMy45LDUuNCw0LjJ6IE0zLjksNC4yYzAtMC4zLTAuMS0wLjUtMC4zLTAuN0MzLjUsMy4zLDMuMiwzLjIsMi45LDMuMmMtMC4zLDAtMC42LDAuMS0wLjcsMC4zCgkJCQkJQzIsMy43LDEuOSwzLjksMS45LDQuMmMwLDAuMywwLjEsMC41LDAuMywwLjdjMC4yLDAuMiwwLjQsMC4zLDAuNywwLjNjMC4zLDAsMC41LTAuMSwwLjctMC4zQzMuOCw0LjgsMy45LDQuNSwzLjksNC4yeiIvPgoJCQkJPHBhdGggY2xhc3M9InN0MiIgZD0iTTExLjEsNi43YzAsMC4zLTAuMSwwLjYtMC4yLDAuOVMxMC42LDgsMTAuNCw4LjJTOS45LDguNSw5LjYsOC41UzksOC43LDguNyw4LjdjLTAuMywwLTAuNiwwLTAuOS0wLjEKCQkJCQlTNy4zLDguMyw3LjEsOC4yQzYuOCw4LDYuNyw3LjgsNi41LDcuNlM2LjMsNyw2LjMsNi43YzAtMC4yLDAtMC40LDAuMS0wLjVzMC4xLTAuMywwLjItMC40QzYuOCw1LjYsNi45LDUuNSw3LDUuNAoJCQkJCWMwLjEtMC4xLDAuMy0wLjIsMC40LTAuMnYwQzcuMiw1LDcsNC45LDYuOCw0LjdDNi42LDQuNCw2LjUsNC4xLDYuNSwzLjhjMC0wLjMsMC4xLTAuNiwwLjItMC44QzYuOCwyLjgsNywyLjYsNy4yLDIuNAoJCQkJCWMwLjItMC4yLDAuNC0wLjMsMC43LTAuM0M4LjEsMiw4LjQsMiw4LjcsMkM5LDIsOS4zLDIsOS42LDIuMWMwLjMsMC4xLDAuNSwwLjIsMC43LDAuM2MwLjIsMC4xLDAuNCwwLjMsMC41LDAuNgoJCQkJCWMwLjEsMC4yLDAuMiwwLjUsMC4yLDAuOGMwLDAuNC0wLjEsMC43LTAuMywwLjlDMTAuNSw0LjksMTAuMyw1LDEwLDUuMXYwYzAuMiwwLDAuMywwLjEsMC40LDAuMmMwLjEsMC4xLDAuMywwLjIsMC40LDAuMwoJCQkJCVMxMSw2LDExLDYuMkMxMS4xLDYuMywxMS4xLDYuNSwxMS4xLDYuN3ogTTkuNiw2LjZjMC0wLjItMC4xLTAuNS0wLjItMC42QzkuMiw1LjgsOSw1LjgsOC43LDUuOEM4LjUsNS44LDguMiw1LjgsOC4xLDYKCQkJCQlDNy45LDYuMiw3LjgsNi40LDcuOCw2LjZjMCwwLjMsMC4xLDAuNSwwLjIsMC42YzAuMiwwLjIsMC40LDAuMiwwLjYsMC4yczAuNS0wLjEsMC42LTAuMkM5LjUsNy4xLDkuNiw2LjksOS42LDYuNnogTTkuNSwzLjkKCQkJCQljMC0wLjItMC4xLTAuNC0wLjItMC41QzkuMSwzLjIsOC45LDMuMSw4LjcsMy4xYy0wLjIsMC0wLjQsMC4xLTAuNSwwLjJTOCwzLjYsOCwzLjlDOCw0LjEsOCw0LjIsOC4yLDQuNAoJCQkJCWMwLjEsMC4yLDAuMywwLjIsMC42LDAuMmMwLjIsMCwwLjQtMC4xLDAuNS0wLjJDOS40LDQuMiw5LjUsNC4xLDkuNSwzLjl6Ii8+CgkJCTwvZz4KCQk8L2c+Cgk8L2c+CjwvZz4KPC9zdmc+Cg==',\n\n defaults: {\n __meta__: {},\n exploration_path: {\n asset_control: {\n level: '',\n root: 'self'\n },\n field_set: {\n default_channel: 'production_metric',\n fields: [\n {\n channel: 'production_metric',\n name: 'oee',\n }\n ]\n\n },\n // Provide some convenient default filters that don't\n // fill out the right hand side.\n //\n slice_filter: {\n expressions: [\n {\n lhs: {\n channel: 'production_metric',\n name: 'shift',\n },\n op: 'eq',\n rhs: null,\n },\n {\n lhs: {\n channel: 'production_metric',\n name: 'part',\n },\n op: 'eq',\n rhs: null,\n }\n ],\n combine_type: 'and'\n }\n },\n hideLiveControls: true,\n shouldShowFilterText: true,\n type: 'kpi_widget',\n updateTimeInterval: 'default'\n }\n },\n kpi_group_widget: {\n type: 'kpi_group_widget',\n descriptionKey: 'dashboard.widget_descriptions.kpi_group_widget',\n displayKey: 'kpi_group_literal',\n iconUrl: 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI1LjMuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAxMiAxMiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTIgMTI7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5zdDB7Y2xpcC1wYXRoOnVybCgjU1ZHSURfMl8pO30KCS5zdDF7ZmlsbDojRkZGRkZGO30KCS5zdDJ7Y2xpcC1wYXRoOnVybCgjU1ZHSURfNF8pO30KCS5zdDN7ZmlsbDojMDU1MzkyO30KCS5zdDR7ZmlsbDojNDE4Q0NBO30KPC9zdHlsZT4KPGc+Cgk8ZGVmcz4KCQk8cmVjdCBpZD0iU1ZHSURfMV8iIHk9IjAiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIvPgoJPC9kZWZzPgoJPGNsaXBQYXRoIGlkPSJTVkdJRF8yXyI+CgkJPHVzZSB4bGluazpocmVmPSIjU1ZHSURfMV8iICBzdHlsZT0ib3ZlcmZsb3c6dmlzaWJsZTsiLz4KCTwvY2xpcFBhdGg+Cgk8ZyBpZD0iQWRkX1dpZGdldF9LUEkiIGNsYXNzPSJzdDAiPgoJCTxyZWN0IHk9IjAiIGNsYXNzPSJzdDEiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIvPgoJPC9nPgo8L2c+CjxnPgoJPGRlZnM+CgkJPHJlY3QgaWQ9IlNWR0lEXzNfIiB5PSIwIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiLz4KCTwvZGVmcz4KCTxjbGlwUGF0aCBpZD0iU1ZHSURfNF8iPgoJCTx1c2UgeGxpbms6aHJlZj0iI1NWR0lEXzNfIiAgc3R5bGU9Im92ZXJmbG93OnZpc2libGU7Ii8+Cgk8L2NsaXBQYXRoPgoJPGcgaWQ9IkFkZF9XaWRnZXRfS1BJX0dyb3VwIiBjbGFzcz0ic3QyIj4KCQk8Zz4KCQkJPHJlY3QgeT0iMCIgY2xhc3M9InN0MSIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIi8+CgkJCTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik02LjQsNC40bDEtMS40bDAsMEw3LjIsM0w3LDNjLTAuMiwwLTAuMywwLTAuNS0wLjFTNi4yLDIuNyw2LjEsMi42QzYsMi41LDUuOSwyLjQsNS45LDIuMgoJCQkJQzUuOCwyLjEsNS44LDEuOSw1LjgsMS43YzAtMC4yLDAtMC40LDAuMS0wLjZDNS45LDEsNiwwLjgsNi4yLDAuN3MwLjMtMC4yLDAuNS0wLjNDNi44LDAuNCw3LDAuNCw3LjIsMC40YzAuMiwwLDAuNCwwLDAuNiwwLjEKCQkJCWMwLjIsMC4xLDAuMywwLjIsMC41LDAuM0M4LjMsMC45LDguNCwxLDguNSwxLjJzMC4xLDAuMywwLjEsMC41YzAsMC4xLDAsMC4yLDAsMC4zYzAsMC4xLDAsMC4yLTAuMSwwLjNTOC40LDIuNSw4LjQsMi42CgkJCQljMCwwLjEtMC4xLDAuMi0wLjIsMC4zbC0xLDEuNUg2LjR6IE03LjksMS43YzAtMC4xLDAtMC4yLTAuMS0wLjNjMC0wLjEtMC4xLTAuMi0wLjItMC4yQzcuNywxLjEsNy42LDEsNy41LDFTNy4zLDAuOSw3LjIsMC45CgkJCQlDNywwLjksNi44LDEsNi42LDEuMUM2LjUsMS4zLDYuNCwxLjUsNi40LDEuN2MwLDAuMSwwLDAuMiwwLjEsMC4zYzAsMC4xLDAuMSwwLjIsMC4yLDAuMmwwLjIsMC4yYzAuMSwwLDAuMiwwLjEsMC4zLDAuMQoJCQkJYzAuMSwwLDAuMiwwLDAuMy0wLjFjMC4xLDAsMC4yLTAuMSwwLjItMC4yQzcuOCwyLjIsNy44LDIuMSw3LjksMkM3LjksMS45LDcuOSwxLjgsNy45LDEuN3oiLz4KCQkJPHBhdGggY2xhc3M9InN0MyIgZD0iTTEwLjUsMC40YzAuMiwwLDAuMywwLDAuNSwwLjFjMC4xLDAsMC4zLDAuMSwwLjQsMC4yYzAuMSwwLjEsMC4yLDAuMiwwLjMsMC4zczAuMSwwLjMsMC4xLDAuNAoJCQkJYzAsMC4yLTAuMSwwLjQtMC4yLDAuNmMtMC4xLDAuMi0wLjMsMC4zLTAuNCwwLjN2MGMwLjEsMCwwLjIsMC4xLDAuMywwLjFsMC4yLDAuMmMwLjEsMC4xLDAuMSwwLjIsMC4yLDAuM3MwLjEsMC4yLDAuMSwwLjMKCQkJCWMwLDAuMiwwLDAuNC0wLjEsMC41Yy0wLjEsMC4xLTAuMiwwLjMtMC4zLDAuNHMtMC4zLDAuMi0wLjQsMC4yYy0wLjIsMC4xLTAuMywwLjEtMC41LDAuMWMtMC4yLDAtMC40LDAtMC41LTAuMQoJCQkJQzkuOCw0LjMsOS43LDQuMiw5LjYsNC4xQzkuNSw0LDkuNCwzLjksOS4zLDMuOFM5LjIsMy40LDkuMiwzLjNjMC0wLjEsMC0wLjIsMC4xLTAuM2MwLTAuMSwwLjEtMC4yLDAuMi0wLjNsMC4yLTAuMgoJCQkJYzAuMS0wLjEsMC4yLTAuMSwwLjMtMC4xdjBDOS43LDIuMiw5LjYsMi4xLDkuNSwyQzkuNCwxLjksOS4zLDEuNyw5LjMsMS40YzAtMC4yLDAtMC4zLDAuMS0wLjRjMC4xLTAuMSwwLjItMC4yLDAuMy0wLjMKCQkJCUM5LjgsMC42LDkuOSwwLjUsMTAsMC40UzEwLjQsMC40LDEwLjUsMC40eiBNMTAuNSwyLjZjLTAuMSwwLTAuMiwwLTAuMywwbC0wLjIsMC4xTDkuOSwzYzAsMC4xLTAuMSwwLjItMC4xLDAuMwoJCQkJYzAsMC4yLDAuMSwwLjQsMC4yLDAuNWMwLjEsMC4xLDAuMywwLjIsMC41LDAuMmMwLjIsMCwwLjMtMC4xLDAuNS0wLjJjMC4xLTAuMSwwLjItMC4zLDAuMi0wLjVjMC0wLjEsMC0wLjItMC4xLTAuM0wxMSwyLjgKCQkJCWwtMC4yLTAuMUMxMC43LDIuNiwxMC42LDIuNiwxMC41LDIuNnogTTEwLjUsMC45Yy0wLjIsMC0wLjMsMC0wLjQsMC4xUzEwLDEuMywxMCwxLjVjMCwwLjIsMC4xLDAuMywwLjIsMC40UzEwLjQsMiwxMC41LDJsMC4yLDAKCQkJCWwwLjItMC4xbDAuMS0wLjJsMC0wLjJsMC0wLjJsLTAuMS0wLjJsLTAuMi0wLjFMMTAuNSwwLjl6Ii8+CgkJCTxwb2x5Z29uIGNsYXNzPSJzdDMiIHBvaW50cz0iNy41LDguNyA2LjcsOS4zIDYuMyw4LjggNy41LDcuOSA4LjEsNy45IDguMSwxMS44IDcuNSwxMS44IAkJCSIvPgoJCQk8cG9seWdvbiBjbGFzcz0ic3QzIiBwb2ludHM9IjEwLjgsOC43IDEwLjEsOS4zIDkuNyw4LjggMTAuOSw3LjkgMTEuNSw3LjkgMTEuNSwxMS44IDEwLjgsMTEuOCAJCQkiLz4KCQkJPHBhdGggY2xhc3M9InN0NCIgZD0iTTAuOSw3LjloMS41YzAuMSwwLDAuMywwLDAuNCwwLjFTMy4xLDgsMy4yLDguMWMwLjEsMC4xLDAuMiwwLjIsMC4zLDAuM2MwLjEsMC4xLDAuMSwwLjMsMC4xLDAuNQoJCQkJYzAsMC4yLTAuMSwwLjQtMC4yLDAuNUMzLjMsOS41LDMuMSw5LjYsMi45LDkuN3YwYzAuMiwwLDAuNCwwLjEsMC42LDAuM2MwLjIsMC4yLDAuMiwwLjQsMC4yLDAuNmMwLDAuMiwwLDAuNC0wLjEsMC41CgkJCQljLTAuMSwwLjEtMC4yLDAuMy0wLjMsMC4zYy0wLjEsMC4xLTAuMywwLjItMC41LDAuMmMtMC4yLDAtMC40LDAuMS0wLjUsMC4xSDAuOVY3Ljl6IE0xLjYsOS40aDAuNmMwLjIsMCwwLjQsMCwwLjUtMC4xCgkJCQlzMC4yLTAuMiwwLjItMC40YzAtMC4yLTAuMS0wLjMtMC4yLTAuNEMyLjYsOC41LDIuNCw4LjQsMi4xLDguNEgxLjZWOS40eiBNMS42LDExLjJoMC42YzAuMSwwLDAuMiwwLDAuMywwYzAuMSwwLDAuMiwwLDAuMy0wLjEKCQkJCUwzLDEwLjljMC4xLTAuMSwwLjEtMC4yLDAuMS0wLjNjMC0wLjItMC4xLTAuMy0wLjItMC40QzIuNywxMC4xLDIuNSwxMCwyLjIsMTBIMS42VjExLjJ6Ii8+CgkJCTxwYXRoIGNsYXNzPSJzdDQiIGQ9Ik0xLjgsMC41aDAuNkw0LDQuNEgzLjNMMi45LDMuNUgxLjJMMC44LDQuNEgwLjFMMS44LDAuNXogTTIuNiwyLjlMMiwxLjNMMS40LDIuOUgyLjZ6Ii8+CgkJPC9nPgoJPC9nPgo8L2c+Cjwvc3ZnPgo=',\n\n liveControls: true,\n\n defaults: {\n __meta__: {},\n exploration_path: {\n asset_control: {\n level: '',\n root: 'self'\n },\n // Provide some convenient default filters that don't\n // fill out the right hand side.\n //\n slice_filter: {\n expressions: [\n {\n lhs: {\n channel: 'production_metric',\n name: 'shift',\n },\n op: 'eq',\n rhs: null,\n },\n {\n lhs: {\n channel: 'production_metric',\n name: 'part',\n },\n op: 'eq',\n rhs: null,\n }\n ],\n combine_type: 'and'\n }\n },\n contents: [],\n hideLiveControls: true,\n shouldShowFilterText: true,\n type: 'kpi_group_widget',\n updateTimeInterval: 'default'\n }\n },\n email_table_widget: {\n type: 'email_table_widget',\n descriptionKey: 'dashboard.widget_descriptions.table_widget',\n displayKey: 'table_literal',\n liveControls: true,\n iconUrl: 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAxMiAxMiI+CiAgPGRlZnM+CiAgICA8Y2xpcFBhdGggaWQ9ImNsaXAtQWRkX1dpZGdldF9UYWJsZSI+CiAgICAgIDxyZWN0IHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIvPgogICAgPC9jbGlwUGF0aD4KICA8L2RlZnM+CiAgPGcgaWQ9IkFkZF9XaWRnZXRfVGFibGUiIGRhdGEtbmFtZT0iQWRkIFdpZGdldCDigJPCoFRhYmxlIiBjbGlwLXBhdGg9InVybCgjY2xpcC1BZGRfV2lkZ2V0X1RhYmxlKSI+CiAgICA8cmVjdCB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIGZpbGw9IiNmZmYiLz4KICAgIDxnIGlkPSJHcm91cF8zOTEyIiBkYXRhLW5hbWU9Ikdyb3VwIDM5MTIiPgogICAgICA8cGF0aCBpZD0iUmVjdGFuZ2xlXzEwMzYiIGRhdGEtbmFtZT0iUmVjdGFuZ2xlIDEwMzYiIGQ9Ik0xLDBIM0EwLDAsMCwwLDEsMywwVjEyYTAsMCwwLDAsMSwwLDBIMWExLDEsMCwwLDEtMS0xVjFBMSwxLDAsMCwxLDEsMFoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEyKSByb3RhdGUoOTApIiBmaWxsPSIjNmE2YTZhIi8+CiAgICAgIDxyZWN0IGlkPSJSZWN0YW5nbGVfMTAzNyIgZGF0YS1uYW1lPSJSZWN0YW5nbGUgMTAzNyIgd2lkdGg9IjQiIGhlaWdodD0iMTIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEyIDMpIHJvdGF0ZSg5MCkiIGZpbGw9IiNmZmYiLz4KICAgICAgPHJlY3QgaWQ9IlJlY3RhbmdsZV8xMDM4IiBkYXRhLW5hbWU9IlJlY3RhbmdsZSAxMDM4IiB3aWR0aD0iNCIgaGVpZ2h0PSIxMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTIgNykgcm90YXRlKDkwKSIgZmlsbD0icmdiYSgwLDAsMCwwLjEpIi8+CiAgICAgIDxwYXRoIGlkPSJSZWN0YW5nbGVfMTAzOSIgZGF0YS1uYW1lPSJSZWN0YW5nbGUgMTAzOSIgZD0iTS41LDBIMUEwLDAsMCwwLDEsMSwwVjEyYTAsMCwwLDAsMSwwLDBILjVhLjUuNSwwLDAsMS0uNS0uNVYuNUEuNS41LDAsMCwxLC41LDBaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDEyKSByb3RhdGUoLTkwKSIgZmlsbD0iIzZhNmE2YSIvPgogICAgPC9nPgogICAgPHJlY3QgaWQ9IlJlY3RhbmdsZV8xMjA0IiBkYXRhLW5hbWU9IlJlY3RhbmdsZSAxMjA0IiB3aWR0aD0iMC41IiBoZWlnaHQ9IjEyIiByeD0iMC4yNSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNi4yNSAxMikgcm90YXRlKDE4MCkiIGZpbGw9IiM2YTZhNmEiLz4KICA8L2c+Cjwvc3ZnPgo=',\n\n defaults: {\n __meta__: {},\n tableType: 'availability_events',\n exploration_path: {\n field_set: {\n default_channel: 'production_metric',\n fields: [\n ]\n\n },\n },\n hideLiveControls: true,\n type: 'email_table_widget',\n hideEditableLiveControls: false,\n }\n },\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useDroppable } from '@dnd-kit/core';\nimport { useTheme } from 'styled-components';\n\nexport default function DroppableSpot(props) {\n const {\n droppableId,\n sectionIndex,\n columnIndex,\n widgetIndex,\n widgetId,\n outerHeight,\n } = props;\n\n const { isOver, setNodeRef } = useDroppable({\n id: droppableId,\n data: {\n sectionIndex: sectionIndex,\n columnIndex: columnIndex,\n widgetIndex: widgetIndex,\n widgetId: widgetId,\n },\n });\n\n const placeholderHeight = 4;\n\n const placeholderTop = Math.round(\n outerHeight / 2 - placeholderHeight / 2,\n );\n\n const theme = useTheme();\n\n return (\n
    \n {\n \n \n
    \n }\n \n );\n}\n\nDroppableSpot.propTypes = {\n droppableId: PropTypes.string.isRequired,\n sectionIndex: PropTypes.number.isRequired,\n columnIndex: PropTypes.number.isRequired,\n widgetIndex: PropTypes.number.isRequired,\n widgetId: PropTypes.string,\n outerHeight: PropTypes.number.isRequired,\n};\n","import React, { createContext, useCallback, useContext, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { DndContext } from '@dnd-kit/core';\n\nconst WorkaroundDndMonitorContext = createContext({\n addListener: () => {},\n removeListener: () => {},\n});\n\nconst emptyFn = () => {};\n\n/**\n * A workaround for a bug in dnd-kit where useDndMonitor onDragStart will\n * sometimes not be called. This wraps around the DndContext with another\n * context to provide an equivalent to useDndMonitor that actually works.\n * \n * When using this context, the useWorkaroundDndMonitor can be used instead of\n * useDndMonitor.\n * \n * A GitHub issue has been opened here:\n * https://github.com/clauderic/dnd-kit/issues/369\n * \n * Once the issue is resolved, this code can be deleted.\n *\n * @param {*} props\n * @returns {React.ReactElement}\n */\nexport function WorkaroundDndContext(props) {\n const {\n onDragStart,\n onDragMove,\n onDragOver,\n onDragEnd,\n onDragCancel,\n ...otherProps\n } = props;\n\n const listeners = useRef({\n onDragStart: [],\n onDragMove: [],\n onDragOver: [],\n onDragEnd: [],\n onDragCancel: [],\n });\n\n const addListener = useRef((eventName, fn) => {\n listeners.current[eventName].push(fn);\n });\n\n const removeListener = useRef((eventName, fn) => {\n listeners.current[eventName] = listeners.current[eventName].filter((l) => {\n return l !== fn;\n });\n });\n\n const callListeners = useRef((eventName, ...args) => {\n listeners.current[eventName].forEach((l) => {\n l(...args);\n });\n });\n\n const handleDragStart = useCallback((...args) => {\n onDragStart(...args);\n callListeners.current('onDragStart', ...args);\n }, [ onDragStart ]);\n const handleDragMove = useCallback((...args) => {\n onDragMove(...args);\n callListeners.current('onDragMove', ...args);\n }, [ onDragMove ]);\n const handleDragOver = useCallback((...args) => {\n onDragOver(...args);\n callListeners.current('onDragOver', ...args);\n }, [ onDragOver ]);\n const handleDragEnd = useCallback((...args) => {\n onDragEnd(...args);\n callListeners.current('onDragEnd', ...args);\n }, [ onDragEnd ]);\n const handleDragCancel = useCallback((...args) => {\n onDragCancel(...args);\n callListeners.current('onDragCancel', ...args);\n }, [ onDragCancel ]);\n\n const valueRef = useRef({\n addListener: addListener.current,\n removeListener: removeListener.current,\n });\n\n return (\n \n \n \n );\n}\n\nWorkaroundDndContext.propTypes = {\n onDragStart: PropTypes.func,\n onDragMove: PropTypes.func,\n onDragOver: PropTypes.func,\n onDragEnd: PropTypes.func,\n onDragCancel: PropTypes.func,\n};\n\nWorkaroundDndContext.defaultProps = {\n onDragStart: emptyFn,\n onDragMove: emptyFn,\n onDragOver: emptyFn,\n onDragEnd: emptyFn,\n onDragCancel: emptyFn,\n};\n\nexport function useWorkaroundDndMonitor({\n onDragStart = emptyFn,\n onDragMove = emptyFn,\n onDragOver = emptyFn,\n onDragEnd = emptyFn,\n onDragCancel = emptyFn,\n}) {\n const monitorContext = useContext(WorkaroundDndMonitorContext);\n\n useEffect(() => {\n monitorContext.addListener('onDragStart', onDragStart);\n return () => {\n monitorContext.removeListener('onDragStart', onDragStart);\n };\n }, [ onDragStart, monitorContext ]);\n useEffect(() => {\n monitorContext.addListener('onDragMove', onDragMove);\n return () => {\n monitorContext.removeListener('onDragMove', onDragMove);\n };\n }, [ onDragMove, monitorContext ]);\n useEffect(() => {\n monitorContext.addListener('onDragOver', onDragOver);\n return () => {\n monitorContext.removeListener('onDragOver', onDragOver);\n };\n }, [ onDragOver, monitorContext ]);\n useEffect(() => {\n monitorContext.addListener('onDragEnd', onDragEnd);\n return () => {\n monitorContext.removeListener('onDragEnd', onDragEnd);\n };\n }, [ onDragEnd, monitorContext ]);\n useEffect(() => {\n monitorContext.addListener('onDragCancel', onDragCancel);\n return () => {\n monitorContext.removeListener('onDragCancel', onDragCancel);\n };\n }, [ onDragCancel, monitorContext ]);\n}\n","import React, { useCallback, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { useDraggable } from '@dnd-kit/core';\nimport { useWorkaroundDndMonitor } from './WorkaroundDndContext';\n\nfunction getScrollPosition(scrollParent) {\n if (scrollParent === window) {\n return {\n x: window.scrollX,\n y: window.scrollY,\n };\n }\n else {\n if (typeof scrollParent.scrollTop !== 'number' || typeof scrollParent.scrollLeft !== 'number') {\n throw new Error('Invalid scroll parent');\n }\n else {\n return {\n x: scrollParent.scrollLeft,\n y: scrollParent.scrollTop,\n };\n }\n }\n}\n\nconst Root = styled.div`\n /*\n Add some vertical space between the widgets by adding a margin-top to\n each widget, excluding the first/top one.\n */\n margin-top: ${({ $isFirstWidget }) => $isFirstWidget ? '0' : '10px'};\n`;\n\nexport default function DraggableWrapper(props) {\n const {\n isLayoutModeActive,\n sectionIndex,\n columnIndex,\n widgetIndex,\n widgetId,\n renderWidget,\n disabled,\n getScrollParent,\n } = props;\n\n const [isDragInProgress, setIsDragInProgress] = useState(false);\n\n const [initialWindowScroll, setInitialWindowScroll] = useState({\n x: 0,\n y: 0,\n });\n\n const [translate, setTranslate] = useState({ x: 0, y: 0 });\n\n const { attributes, listeners, setNodeRef, isDragging } = useDraggable({\n id: widgetId,\n data: {\n widgetIndex,\n columnIndex,\n sectionIndex,\n widgetId,\n },\n disabled: disabled,\n });\n\n useWorkaroundDndMonitor({\n onDragStart: useCallback(\n (event) => {\n setIsDragInProgress(true);\n\n if (event.active.id !== widgetId) {\n return;\n }\n\n const scrollPosition = getScrollPosition(getScrollParent());\n\n setInitialWindowScroll({\n x: scrollPosition.x,\n y: scrollPosition.y,\n });\n setTranslate({ x: 0, y: 0 });\n },\n [ widgetId, getScrollParent ],\n ),\n onDragMove: useCallback(\n (event) => {\n if (event.active.id !== widgetId) {\n return;\n }\n\n setTranslate({\n x: event.delta.x - initialWindowScroll.x,\n y: event.delta.y - initialWindowScroll.y,\n });\n },\n [ widgetId, initialWindowScroll ],\n ),\n onDragEnd: () => {\n setIsDragInProgress(false);\n setInitialWindowScroll({ x: 0, y: 0 });\n setTranslate({ x: 0, y: 0 });\n },\n onDragCancel: () => {\n setIsDragInProgress(false);\n setInitialWindowScroll({ x: 0, y: 0 });\n setTranslate({ x: 0, y: 0 });\n },\n });\n\n const style = {\n transition: 'opacity 300ms',\n opacity: '1',\n // Add some vertical space between the widgets by adding a margin-top to\n // each widget, excluding the first/top one.\n marginTop: widgetIndex === 0 ? '0' : '10px',\n zIndex: '0',\n };\n\n // Only set the position and zIndex when there is a drag in progress.\n // Otherwise, you risk messing with the visibility/overlapping of widgets\n // during normal operation.\n if (isDragInProgress) {\n style.position = 'relative';\n style.zIndex = '0';\n }\n\n if (isDragging) {\n style.transform = `translate3d(${translate.x}px, ${translate.y}px, 0)`;\n style.opacity = '0.4';\n style.zIndex = '500000';\n }\n\n const memoizedWidget = useMemo(() => {\n return renderWidget(\n widgetId,\n {\n dragHandleProps: {\n ...listeners,\n ...attributes,\n style: {\n cursor: disabled\n ? 'default'\n : 'move',\n // Make drag handles touch friendly\n touchAction: 'none',\n },\n },\n isLayoutModeActive,\n isDragging: isDragging,\n isDragEnabled: !disabled,\n sectionIndex: sectionIndex,\n columnIndex: columnIndex,\n widgetIndex: widgetIndex,\n },\n );\n }, [\n isLayoutModeActive,\n renderWidget,\n widgetId,\n listeners,\n attributes,\n isDragging,\n disabled,\n sectionIndex,\n columnIndex,\n widgetIndex,\n ]);\n\n return (\n \n {memoizedWidget}\n \n );\n}\n\nDraggableWrapper.propTypes = {\n isLayoutModeActive: PropTypes.bool.isRequired,\n sectionIndex: PropTypes.number.isRequired,\n columnIndex: PropTypes.number.isRequired,\n widgetIndex: PropTypes.number.isRequired,\n widgetId: PropTypes.string.isRequired,\n renderWidget: PropTypes.func.isRequired,\n disabled: PropTypes.bool,\n getScrollParent: PropTypes.func.isRequired,\n};\n\nDraggableWrapper.defaultProps = {\n disabled: false,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nconst Root = styled.span.attrs(({ $url, style }) => {\n return {\n style: {\n ...style,\n backgroundImage: `url(${$url})`,\n },\n };\n})`\n background-size: contain;\n display: inline-block;\n width: 1em;\n height: 1em;\n align-self: center;\n`;\n\nexport default function ImageIcon({ className, style, url }) {\n return (\n
    \n \n \n \n Value\n \n \n Directionality\n \n \n Critical\n \n \n Warning\n \n \n Caution\n \n \n Good\n \n \n \n \n {renderRows()}\n \n
    \n );\n}\n\nMetricThresholdsTable.propTypes = {\n errorList: PropTypes.array.isRequired,\n metricThresholds: PropTypes.array.isRequired,\n onChange: PropTypes.func.isRequired,\n};\n","\nimport React, {\n useEffect,\n useMemo,\n useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport MetricThresholdsTable from './MetricThresholdsTable';\nimport Form from 'Components/form/Form';\nimport * as RequestStatus from 'Common/data/RequestStatus';\n\nfunction useErrorList(thresholds) {\n return useMemo(() => {\n let hasError = false;\n const errorList = thresholds.map((thresh) => {\n const rangeMap = thresh.ranges.reduce((acc, field) => {\n acc[field.name] = field;\n return acc;\n }, {});\n\n let error = [];\n if (thresh.directionality === 'higher_better') {\n if (rangeMap.critical.max >= rangeMap.warning.max) {\n hasError = true;\n error.push('warning');\n }\n if (rangeMap.warning.max >= rangeMap.caution.max) {\n hasError = true;\n error.push('caution');\n }\n if (rangeMap.caution.max >= rangeMap.good.max) {\n hasError = true;\n error.push('good');\n }\n }\n else {\n if (rangeMap.critical.min <= rangeMap.warning.min) {\n hasError = true;\n error.push('warning');\n }\n else if (rangeMap.warning.min <= rangeMap.caution.min) {\n hasError = true;\n error.push('caution');\n }\n else if (rangeMap.caution.min <= rangeMap.good.min) {\n hasError = true;\n error.push('good');\n }\n }\n return error;\n });\n return {\n hasError,\n errorList,\n };\n }, [thresholds]);\n}\n\nexport default function MetricThresholdsForm(props) {\n const {\n metricThresholds,\n onSubmit,\n requests,\n } = props;\n\n const [ modifiedThresholds, setModifiedThresholds ] = useState(metricThresholds);\n const [ isDirty, setIsDirty ] = useState(false);\n\n const [ lastPatchStatus, setLastPatchStatus ] = useState(requests?.putMetricThresholds?.status);\n\n useEffect(() => {\n const nextPatchStatus = requests?.putMetricThresholds?.status;\n\n if (lastPatchStatus === RequestStatus.PENDING &&\n nextPatchStatus === RequestStatus.SUCCESS\n ) {\n setIsDirty(false);\n }\n\n if (lastPatchStatus !== nextPatchStatus) {\n setLastPatchStatus(nextPatchStatus);\n }\n }, [lastPatchStatus, requests?.putMetricThresholds?.status]);\n\n const {\n errorList,\n hasError,\n } = useErrorList(modifiedThresholds);\n\n // name of the metric being updated\n // rangeName critical, warning, caution, good\n // rangeSide (updating the min or the max)\n // value the string percentage to update\n const onChange = (name, rangeName, adjacentRange, rangeSide, adjacentRangeSide, value) => {\n const newThresholds = modifiedThresholds.map((thresh) => {\n if (name === thresh.name) {\n const newRange = thresh.ranges.map((range) => {\n if (range.name === rangeName) {\n return {\n ...range,\n [rangeSide]: value,\n };\n }\n if (range.name === adjacentRange) {\n return {\n ...range,\n [adjacentRangeSide]: value,\n };\n }\n return range;\n });\n return {\n ...thresh,\n ranges: newRange,\n };\n }\n return thresh;\n });\n setIsDirty(true);\n setModifiedThresholds(newThresholds);\n };\n\n const isLoading = requests.putMetricThresholds.status === RequestStatus.PENDING;\n\n const allowSubmit = !isLoading && isDirty && !hasError;\n const allowCancel = !isLoading && isDirty;\n\n const handleReset = () => {\n setModifiedThresholds(metricThresholds);\n setIsDirty(false);\n };\n\n const handleSubmit = (a) => {\n onSubmit(modifiedThresholds);\n };\n\n return (\n \n \n \n \n \n );\n}\n\nMetricThresholdsForm.propTypes = {\n metricThresholds: PropTypes.array.isRequired,\n onSubmit: PropTypes.func.isRequired,\n requests: PropTypes.object.isRequired,\n};\n","\nimport React, {\n useEffect,\n} from 'react';\n\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport { bindActionCreators } from 'redux';\nimport { selectMetricThresholds } from 'Redux/reducers/metricThresholds';\nimport {\n getMetricThresholds,\n putMetricThresholds,\n} from 'Redux/actions';\nimport Page from 'Components/page/Page';\nimport PageContent from 'Components/page/PageContentWide';\nimport ConfigPageTitle from 'Components/page/ConfigPageTitle';\nimport MetricThresholdsionForm from './MetricThresholdsForm';\nimport RequestLoadingWrapper from 'Components/loading-indicator/RequestLoadingWrapper';\n\nfunction MetricThresholdsPage(props) {\n\n const {\n actions,\n metricThresholds,\n requests,\n } = props;\n\n useEffect(() => {\n actions.getMetricThresholds();\n }, [actions]);\n\n const handleSubmit = (evt) => {\n actions.putMetricThresholds({\n metrics: evt\n });\n };\n\n return (\n \n Metric Thresholds\n \n (\n \n )}\n />\n \n \n );\n}\n\nMetricThresholdsPage.propTypes = {\n actions: PropTypes.shape({\n getMetricThresholds: PropTypes.func.isRequired,\n putMetricThresholds: PropTypes.func.isRequired,\n }).isRequired,\n\n metricThresholds: PropTypes.array,\n requests: PropTypes.shape({\n getMetricThresholds: PropTypes.object.isRequired,\n putMetricThresholds: PropTypes.object.isRequired,\n }),\n};\n\nconst mapStateToProps = (state, ownProps) => {\n const {\n metricThresholds,\n } = state;\n return {\n metricThresholds: selectMetricThresholds(metricThresholds),\n requests: (metricThresholds?.requests) || null,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n actions: bindActionCreators({\n getMetricThresholds,\n putMetricThresholds,\n }, dispatch)\n };\n};\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(MetricThresholdsPage);\n","import { sendGetRequest } from 'Http/request';\nimport { getResources } from 'Common/util/ResourceCollection';\n\nexport function getAlertSubscriptions() {\n return getResources({\n resourceType: 'alertSubscriptions',\n requestId: 'getAlertSubscriptions',\n sendRequest: async () => {\n return sendGetRequest('/api/v1/accounts/user/alert-subscriptions');\n },\n });\n}\n\nexport default getAlertSubscriptions;\n","import { sendPatchRequest } from 'Http/request';\nimport { patchResources } from 'Common/util/ResourceCollection';\n\nfunction generateAlertSubscriptionsPatchSection(initialData, modifiedData) {\n const generateMap = ids => ids.reduce((map, id) => {\n map[id] = true;\n return map;\n }, {});\n\n const initialDataMap = generateMap(initialData);\n const modifiedDataMap = generateMap(modifiedData);\n\n let patch = { add: [], remove: [] };\n\n // IDs in initial but not modified have been removed\n Object.keys(initialDataMap).forEach((id) => {\n if (!modifiedDataMap[id]) {\n patch.remove.push(Number(id));\n }\n });\n\n // IDs in modified but not initial have been added\n Object.keys(modifiedDataMap).forEach((id) => {\n if (!initialDataMap[id]) {\n patch.add.push(Number(id));\n }\n });\n\n return patch;\n}\n\nexport function generateAlertSubscriptionsPatch(initialData, modifiedData) {\n const patch = {\n add: {},\n remove: {},\n };\n\n Object.keys(initialData).forEach((alertType) => {\n const subPatch = generateAlertSubscriptionsPatchSection(initialData[alertType], modifiedData[alertType]);\n patch.add[alertType] = subPatch.add;\n patch.remove[alertType] = subPatch.remove;\n });\n\n return patch;\n}\n\nexport function patchAlertSubscriptions(data) {\n return patchResources({\n resourceType: 'alertSubscriptions',\n requestId: 'patchAlertSubscriptions',\n requestData: data,\n sendRequest: async () => {\n return sendPatchRequest('/api/v1/accounts/user/alert-subscriptions', {\n body: { ...data },\n });\n },\n });\n}\n","import { combineReducers } from 'redux';\nimport actionFilter from 'Common/util/reducerUtils/actionFilter';\nimport actionMap from 'Common/util/reducerUtils/actionMap';\n\nimport { requestReducer } from 'Common/util/ResourceCollection';\nimport { REQUEST_PENDING, REQUEST_SUCCESS, REQUEST_FAILURE } from 'Common/util/ResourceCollection/actions';\n\nconst initialListState = {\n metric: [],\n process_state_duration: [],\n process_state_target_time: [],\n};\n\nconst dataReducer = (state = initialListState, action) => {\n const {\n type,\n requestMethod,\n payload,\n } = action;\n\n if (requestMethod === 'GET') {\n switch (type) {\n case REQUEST_PENDING:\n return initialListState;\n case REQUEST_FAILURE:\n return initialListState;\n case REQUEST_SUCCESS: {\n return {\n metric: payload.metric,\n process_state_duration: payload.process_state_duration,\n process_state_target_time: payload.process_state_target_time,\n };\n }\n default:\n return state;\n }\n }\n else if (requestMethod === 'PATCH') {\n switch (type) {\n case REQUEST_SUCCESS: {\n return {\n metric: payload.metric,\n process_state_duration: payload.process_state_duration,\n process_state_target_time: payload.process_state_target_time,\n };\n }\n default:\n return state;\n }\n }\n else {\n return state;\n }\n};\n\nconst alertSubscriptionsReducer = actionFilter(\n (action) => action?.resourceType === 'alertSubscriptions',\n combineReducers({\n data: dataReducer,\n requests: actionMap(\n (action) => action?.requestId,\n {\n getAlertSubscriptions: requestReducer,\n patchAlertSubscriptions: requestReducer,\n }\n ),\n })\n);\n\nexport default alertSubscriptionsReducer;\n\nexport function selectAlertSubscriptions(state) {\n return state.data;\n}\n\nexport function selectAlertSubscriptionsRequest(state, requestId) {\n const request = state.requests[requestId];\n\n if (!request) {\n throw new Error(`Unknown alert subscriptions request with ID \"${requestId}\"`);\n }\n\n return request;\n}\n","import { combineReducers } from 'redux';\nimport actionFilter from 'Common/util/reducerUtils/actionFilter';\nimport actionMap from 'Common/util/reducerUtils/actionMap';\n\nimport { requestReducer } from 'Common/util/ResourceCollection';\nimport { REQUEST_PENDING, REQUEST_FAILURE, REQUEST_SUCCESS } from 'Common/util/ResourceCollection/actions';\n\nfunction multiCompare(compareResults) {\n for (let i = 0; i < compareResults.length; i++) {\n if (compareResults[i] !== 0) {\n return compareResults[i];\n }\n }\n\n return 0;\n}\n\nconst sortAlerts = alertType => (alertA, alertB) => {\n switch (alertType) {\n case 'metric': {\n const comparisonOrder = ['less_than', 'greater_than'];\n\n return multiCompare([\n alertA.metric.localeCompare(alertB.metric),\n comparisonOrder.indexOf(alertA.comparison) - comparisonOrder.indexOf(alertB.comparison),\n alertA.threshold - alertB.threshold\n ]);\n }\n case 'process_state_duration': {\n return multiCompare([\n alertA.process_state.localeCompare(alertB.process_state),\n alertA.threshold - alertB.threshold\n ]);\n }\n case 'process_state_target_time': {\n const comparisonOrder = ['before_target', 'over_target'];\n\n return multiCompare([\n comparisonOrder.indexOf(alertA.comparison) - comparisonOrder.indexOf(alertB.comparison),\n alertA.threshold - alertB.threshold\n ]);\n }\n default:\n throw new Error(`Unable to sort unkown alert type \"${alertType}\"`);\n }\n};\n\nconst initialDataState = {\n metric: [],\n process_state_duration: [],\n process_state_target_time: [],\n};\n\nconst dataReducer = (state = initialDataState, action) => {\n const {\n type,\n requestMethod,\n payload,\n } = action;\n\n if (requestMethod === 'GET') {\n switch (type) {\n case REQUEST_PENDING:\n return initialDataState;\n case REQUEST_FAILURE:\n return initialDataState;\n case REQUEST_SUCCESS: {\n const sorted = {};\n\n Object.keys(payload).forEach((alertType) => {\n sorted[alertType] = [ ...(payload[alertType]) ].sort(sortAlerts(alertType));\n });\n\n return sorted;\n }\n default:\n return state;\n }\n }\n else if (requestMethod === 'PATCH') {\n switch (type) {\n case REQUEST_SUCCESS: {\n const sorted = {};\n\n Object.keys(payload).forEach((alertType) => {\n sorted[alertType] = [ ...(payload[alertType]) ].sort(sortAlerts(alertType));\n });\n\n return sorted;\n }\n default:\n return state;\n }\n }\n else {\n return state;\n }\n};\n\nconst alertsReducer = actionFilter(\n (action) => action?.resourceType === 'alerts',\n combineReducers({\n data: dataReducer,\n requests: actionMap(\n (action) => action?.requestId,\n {\n getAlerts: requestReducer,\n patchAlerts: requestReducer,\n }\n ),\n })\n);\n\nexport default alertsReducer;\n\nexport function selectAlerts(state) {\n return state.data;\n}\n\nexport function selectAlertsRequest(state, requestId) {\n const request = state.requests[requestId];\n\n if (!request) {\n throw new Error(`Unknown alerts request with requestId \"${requestId}\"`);\n }\n\n return request;\n}\n","import { combineReducers } from 'redux';\nimport actionFilter from 'Common/util/reducerUtils/actionFilter';\nimport actionMap from 'Common/util/reducerUtils/actionMap';\n\nimport { requestReducer } from 'Common/util/ResourceCollection';\nimport { REQUEST_PENDING, REQUEST_FAILURE, REQUEST_SUCCESS } from 'Common/util/ResourceCollection/actions';\n\nconst initialDataState = {};\n\nconst dataReducer = (state = initialDataState, action) => {\n const {\n type,\n requestMethod,\n payload,\n } = action;\n\n if (requestMethod === 'GET') {\n switch (type) {\n case REQUEST_PENDING:\n return initialDataState;\n case REQUEST_FAILURE:\n return initialDataState;\n case REQUEST_SUCCESS: {\n return payload;\n }\n default:\n return state;\n }\n }\n else if (requestMethod === 'PATCH') {\n switch (type) {\n case REQUEST_SUCCESS: {\n return payload;\n }\n default:\n return state;\n }\n }\n else {\n return state;\n }\n};\n\nconst alertWindowReducer = actionFilter(\n (action) => action?.resourceType === 'alertWindow',\n combineReducers({\n data: dataReducer,\n requests: actionMap(\n (action) => action?.requestId,\n {\n getAlertWindow: requestReducer,\n patchAlertWindow: requestReducer,\n }\n ),\n })\n);\n\nexport default alertWindowReducer;\n\nexport function selectAlertWindow(state) {\n return state.data;\n}\n\nexport function selectAlertWindowRequest(state, requestId) {\n const request = state.requests[requestId];\n\n if (!request) {\n throw new Error(`Unknown alert window request with ID \"${requestId}\"`);\n }\n\n return request;\n}\n","import { combineReducers } from 'redux';\nimport actionFilter from 'Common/util/reducerUtils/actionFilter';\nimport actionMap from 'Common/util/reducerUtils/actionMap';\n\nimport { requestReducer } from 'Common/util/ResourceCollection';\nimport { REQUEST_FAILURE, REQUEST_PENDING, REQUEST_SUCCESS } from 'Common/util/ResourceCollection/actions';\n\nconst initialListState = [];\n\nconst listReducer = (state = initialListState, action) => {\n const {\n type,\n requestMethod,\n payload,\n } = action;\n\n if (requestMethod === 'GET') {\n switch (type) {\n case REQUEST_PENDING:\n return initialListState;\n case REQUEST_FAILURE:\n return initialListState;\n case REQUEST_SUCCESS: {\n return [ ...payload.subscribed ];\n }\n default:\n return state;\n }\n }\n else if (requestMethod === 'PATCH') {\n switch (type) {\n case REQUEST_SUCCESS: {\n return [ ...payload.subscribed ];\n }\n default:\n return state;\n }\n }\n else {\n return state;\n }\n\n};\n\nconst deviceSubscriptionsReducer = actionFilter(\n (action) => action?.resourceType === 'deviceSubscriptions',\n combineReducers({\n list: listReducer,\n requests: actionMap(\n (action) => action?.requestId,\n {\n getDeviceSubscriptions: requestReducer,\n patchDeviceSubscriptions: requestReducer,\n }\n ),\n })\n);\n\nexport default deviceSubscriptionsReducer;\n\nexport function selectDeviceSubscriptions(state) {\n return state.list;\n}\n\nexport function selectDeviceSubscriptionsRequest(state, requestId) {\n const request = state.requests[requestId];\n\n if (!request) {\n throw new Error(`Unknown device subscriptions request with ID \"${requestId}\"`);\n }\n\n return request;\n}\n","import styled from 'styled-components';\nimport { Body1 } from 'Components/typography/typography';\n\nconst SelectGroupLabel = styled(Body1)`\n display: block;\n padding: 6px;\n font-weight: bold;\n color: ${props => props.theme.colors.palette.blue.awesome};\n`;\n\nexport default SelectGroupLabel;\n","import PropTypes from 'prop-types';\nimport { getMetricsMap } from 'System/metrics';\n\nconst metricsMap = getMetricsMap();\n\nconst comparisonMap = {\n greater_than: '>',\n less_than: '<',\n};\n\nexport default function MetricAlertText(props) {\n const { metric, comparison, threshold } = props;\n\n return (\n `${metricsMap[metric].name} ${comparisonMap[comparison]} ${Math.round(threshold * 100.0)}%`\n );\n}\n\nMetricAlertText.propTypes = {\n metric: PropTypes.oneOf(Object.keys(metricsMap)).isRequired,\n comparison: PropTypes.oneOf(Object.keys(comparisonMap)).isRequired,\n threshold: PropTypes.number.isRequired,\n};\n","import PropTypes from 'prop-types';\nimport { getProcessStatesMap } from 'System/processStates';\n\nconst processStatesMap = getProcessStatesMap();\n\nexport default function ProcessStateDurationAlertText(props) {\n const { process_state, threshold } = props;\n\n const thresholdMin = Math.floor(threshold / 60);\n\n return (\n `${processStatesMap[process_state].name} > ${thresholdMin} min.`\n );\n}\n\nProcessStateDurationAlertText.propTypes = {\n process_state: PropTypes.oneOf(Object.keys(processStatesMap)).isRequired,\n threshold: PropTypes.number.isRequired,\n};\n","import PropTypes from 'prop-types';\nimport { getProcessStatesMap } from 'System/processStates';\n\nconst processStatesMap = getProcessStatesMap();\n\nconst comparisonMap = {\n over_target: 'Over Target',\n before_target: 'Before Target',\n};\n\nexport default function ProcessStateTargetTimeAlertText(props) {\n const { process_state, comparison, threshold } = props;\n\n const thresholdMin = Math.floor(threshold / 60);\n\n return (\n `${processStatesMap[process_state].name} ${thresholdMin} min. ${comparisonMap[comparison]}`\n );\n}\n\nProcessStateTargetTimeAlertText.propTypes = {\n process_state: PropTypes.oneOf(Object.keys(processStatesMap)).isRequired,\n comparison: PropTypes.oneOf(Object.keys(comparisonMap)).isRequired,\n threshold: PropTypes.number.isRequired,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport every from 'lodash/every';\nimport SelectGroup from 'Components/select/SelectGroup';\nimport SelectGroupLabel from 'Components/select/SelectGroupLabel';\nimport SelectOption from 'Components/select/SelectOption';\nimport SelectOptionContent from 'Components/select/SelectOptionContent';\nimport SelectInput from 'Components/select/SelectInput';\nimport FormElement from 'Components/form-element/FormElement';\nimport MetricAlertText from './MetricAlertText';\nimport ProcessStateDurationAlertText from './ProcessStateDurationAlertText';\nimport ProcessStateTargetTimeAlertText from './ProcessStateTargetTimeAlertText';\n\nconst StyledSelectInput = styled(SelectInput)`\n min-width: 225px;\n`;\n\nexport default class AlertSubscriptionsEditor extends React.Component {\n constructor(props) {\n super(props);\n }\n\n _handleChange = (event) => {\n const value = event.target.value;\n\n let subscriptions = {\n metric: [],\n process_state_duration: [],\n process_state_target_time: [],\n };\n\n value.forEach((selectedValue) => {\n const [ alertType, alertId ] = selectedValue.split('/');\n subscriptions[alertType].push(Number(alertId));\n });\n\n this.props.onChange({\n target: {\n name: this.props.name,\n value: subscriptions,\n },\n });\n };\n\n render() {\n const { name, alerts, subscriptions, allowEdit } = this.props;\n\n // Construct the value\n const value = [];\n Object.keys(subscriptions).forEach((alertType) => {\n subscriptions[alertType].forEach((alertId) => {\n value.push(`${alertType}/${alertId}`);\n });\n });\n\n const noAlerts = every(alerts, list => list.length === 0);\n const disabled = !allowEdit || noAlerts;\n\n return (\n \n \n {`Select Alerts (${value.length})`}\n \n )}\n onChange={this._handleChange}\n optionsWidth={350}\n maxOptionsHeight={500}\n >\n {Object.keys(alerts).map((alertType) => {\n let title;\n let AlertText = 'div';\n\n switch (alertType) {\n case 'metric':\n title = 'Metric';\n AlertText = MetricAlertText;\n break;\n case 'process_state_duration':\n title = 'Production State Time';\n AlertText = ProcessStateDurationAlertText;\n break;\n case 'process_state_target_time':\n title = 'Production State Target';\n AlertText = ProcessStateTargetTimeAlertText;\n break;\n default:\n throw new Error(`Unknown alert type \"${alertType}\"`);\n }\n\n const alertList = alerts[alertType];\n\n // Don't show empty groups\n if (alertList.length === 0) {\n return null;\n }\n\n return (\n {title}}\n >\n {alertList.map((alert) => {\n const alertId = alert.id;\n\n return (\n \n \n \n \n \n );\n })}\n \n );\n })}\n \n \n );\n }\n}\n\nconst AlertListPropType = PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number.isRequired,\n }).isRequired,\n).isRequired;\n\nAlertSubscriptionsEditor.propTypes = {\n name: PropTypes.string,\n alerts: PropTypes.shape({\n metric: AlertListPropType,\n process_state_duration: AlertListPropType,\n process_state_target_time: AlertListPropType,\n }).isRequired,\n subscriptions: PropTypes.shape({\n metric: PropTypes.arrayOf(PropTypes.number).isRequired,\n process_state_duration: PropTypes.arrayOf(PropTypes.number).isRequired,\n process_state_target_time: PropTypes.arrayOf(PropTypes.number).isRequired,\n }),\n onChange: PropTypes.func.isRequired,\n allowEdit: PropTypes.bool.isRequired,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport AlertSubscriptionsEditor from 'Components/pages/alerts-subscribe/AlertSubscriptionsEditor';\nimport Form from 'Components/form/Form';\nimport * as RequestStatus from 'Common/data/RequestStatus';\n\nexport default class AlertSubscriptionsForm extends React.Component {\n static propTypes = {\n name: PropTypes.string,\n alerts: PropTypes.object.isRequired,\n data: PropTypes.object.isRequired,\n requests: PropTypes.object.isRequired,\n onSubmit: PropTypes.func.isRequired,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n modifiedData: props.data,\n lastPatchStatus: props?.requests?.patchAlertSubscriptions?.status,\n };\n }\n\n static getDerivedStateFromProps(props, state) {\n const lastPatchStatus = state.lastPatchStatus;\n const nextPatchStatus = props?.requests?.patchAlertSubscriptions?.status;\n\n if (lastPatchStatus !== nextPatchStatus) {\n let nextModifiedData = state.modifiedData;\n\n // Watch for when patchAlertSubscriptions changes from PENDING to SUCCESS and\n // reset the data\n if (lastPatchStatus === RequestStatus.PENDING &&\n nextPatchStatus === RequestStatus.SUCCESS\n ) {\n nextModifiedData = props.data;\n }\n\n return {\n modifiedData: nextModifiedData,\n lastPatchStatus: nextPatchStatus,\n };\n }\n\n return null; // No changes\n }\n\n _handleChange = (event) => {\n this.setState({\n modifiedData: event.target.value,\n });\n };\n\n _handleReset = () => {\n this.setState({\n modifiedData: this.props.data,\n });\n };\n\n _handleSubmit = () => {\n this.props.onSubmit({\n target: {\n name: this.props.name,\n value: this.state.modifiedData,\n },\n });\n };\n\n render() {\n const { alerts, data: initialData, requests } = this.props;\n const { modifiedData } = this.state;\n\n const hasChanges = modifiedData !== initialData;\n const isLoading = requests.patchAlertSubscriptions.status === RequestStatus.PENDING;\n\n const allowEdit = !isLoading;\n const allowSubmit = !isLoading && hasChanges;\n const allowCancel = !isLoading && hasChanges;\n\n return (\n \n \n \n );\n }\n}\n","import moment from 'moment';\n\nconst acceptedTimeFormats = [\n // locale time format\n 'LT',\n // AM/PM with space\n 'h:mm a',\n 'h:mm:ss a',\n // AM/PM no space\n 'h:mma',\n 'h:mm:ssa',\n // 24 hour time\n 'H:mm',\n 'H:mm:ss'\n];\n\nexport function parseTime(timeString, { useStrictParsing = true } = {}) {\n let parsedTime;\n\n timeString = String(timeString).trim();\n\n acceptedTimeFormats.some((timeFormat) => {\n parsedTime = moment.utc(timeString, timeFormat, useStrictParsing);\n return parsedTime.isValid();\n });\n\n return parsedTime;\n}\n\nexport function format24HourTime(time) {\n if (!moment.isMoment(time)) {\n // Just parse it as a string\n time = parseTime(time);\n }\n\n return time.isValid() ? time.format('HH:mm') : '';\n}\n\nexport function formatLocaleTime(time) {\n if (!moment.isMoment(time)) {\n // Just parse it as a string\n time = parseTime(time);\n }\n\n return time.isValid() ? time.format('LT') : '';\n}\n","import { parseTime } from 'Components/util/timeUtils';\n\nexport default function validate(value) {\n let error;\n\n if (!parseTime(String(value)).isValid()) {\n error = 'Must provide a valid time entry';\n }\n\n return error;\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport FormElement from 'Components/form-element/FormElement';\nimport FormElementLabel from 'Components/form-element/FormElementLabel';\nimport SelectInput from 'Components/select/SelectInput';\nimport SelectOption from 'Components/select/SelectOption';\nimport SelectOptionContent from 'Components/select/SelectOptionContent';\n\nconst StyledSelectInput = styled(SelectInput)`\n min-width: 225px;\n`;\n\nfunction DndSelect(props) {\n const {\n id,\n label,\n name,\n value,\n error,\n onChange,\n ...otherProps\n } = props;\n\n return (\n \n {label}\n \n \n \n Only Send Alerts During Receive Window\n \n \n \n \n Send Alerts 24/7\n \n \n \n \n Never\n \n \n \n \n );\n}\n\nDndSelect.propTypes = {\n id: PropTypes.string,\n label: PropTypes.string,\n name: PropTypes.string,\n value: PropTypes.string,\n error: PropTypes.bool,\n onChange: PropTypes.func,\n};\n\nexport default DndSelect;\n","import React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nimport TextInputField from 'Components/text-input/TextInputField';\nimport { parseTime, format24HourTime, formatLocaleTime } from 'Components/util/timeUtils';\n\n// Let's avoid having to do this more than once\nconst timeInputSupported = (() => {\n let input = document.createElement('input');\n\n const value = 'abcdefghijklmnop';\n input.setAttribute('type', 'time');\n input.setAttribute('value', value);\n\n // the time input does not allow for non-time input, so the value\n // it reports should not equal the value we gave it. If it fell\n // back to a plain 'ol text input they will be equal and this\n // check will fail.\n //\n return (input.value !== value);\n})();\n\nconst StyledInput = styled(TextInputField)`\n /* These arrows in Chrome mess with the height of the input field.\n The arrows do not exist in any other browser anyway, so it should\n be fine to remove them entirely. See the chromium bug for this\n here: https://bugs.chromium.org/p/chromium/issues/detail?id=417606\n */\n &::-webkit-inner-spin-button {\n display: none;\n }\n`;\n\nexport default class TimeInput extends React.Component {\n static defaultProps = {\n onChange: () => { },\n onBlur: () => { },\n };\n\n static propTypes = {\n name: PropTypes.string.isRequired,\n value: PropTypes.string,\n onChange: PropTypes.func,\n onBlur: PropTypes.func,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n lastPropValue: undefined, // initialized in getDerivedStateFromProps\n internalValue: '',\n };\n }\n\n static getDerivedStateFromProps(props, state) {\n const derived = {\n lastPropValue: props.value,\n };\n\n // Only update the internal value if the prop changes and the time\n // value from the props is different from what the user has entered\n\n if (state.lastPropValue !== props.value) {\n const parsedValue = parseTime(props.value);\n\n if (parsedValue.isValid()) {\n const parsedInternalValue = parseTime(state.internalValue);\n const formattedInternalValue = parsedInternalValue.isValid() ? format24HourTime(parsedInternalValue) : '';\n\n const formattedValue = format24HourTime(parsedValue);\n\n // Check if the prop is different from the internal\n if (formattedValue !== formattedInternalValue) {\n derived.internalValue = formatLocaleTime(parsedValue);\n }\n }\n }\n\n return derived;\n }\n\n _handleChange = (event) => {\n const value = event.target.value;\n\n this.setState({\n internalValue: value,\n });\n\n let normalizedValue = '';\n\n const parsedValue = parseTime(value);\n\n if (parsedValue.isValid()) {\n normalizedValue = format24HourTime(parsedValue);\n }\n\n // Only fire change if the normalized value is actually changing\n if (normalizedValue !== this.props.value) {\n return this.props.onChange({\n target: {\n name: this.props.name,\n value: normalizedValue,\n },\n });\n }\n };\n\n _handleBlur = (event) => {\n let normalizedValue = '';\n const parsedValue = parseTime(this.state.internalValue);\n\n // When blurring, set the internal value to the cleanly formatted time.\n // We only do this if the time is valid, so there is no need to fire\n // an `onChange`, because we aren't actually changing the time.\n if (parsedValue.isValid()) {\n normalizedValue = format24HourTime(parsedValue);\n this.setState({\n internalValue: formatLocaleTime(parsedValue),\n });\n }\n\n event.target = {\n name: this.props.name,\n value: normalizedValue,\n };\n\n this.props.onBlur(event);\n };\n\n render() {\n const { internalValue } = this.state;\n const { value, name, onChange, onBlur, ...otherProps } = this.props;\n\n let stringValue = '';\n\n if (timeInputSupported) {\n let parsedValue = parseTime(internalValue);\n\n if (parsedValue.isValid()) {\n // HTML5 time input expects 24 hour time\n stringValue = format24HourTime(parsedValue);\n }\n else {\n stringValue = '';\n }\n }\n else {\n stringValue = internalValue;\n }\n\n return (\n \n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\n\nimport FormElement from 'Components/form-element/FormElement';\nimport Table from 'Components/table/Table';\nimport TableHeader from 'Components/table/TableHeader';\nimport TableHeaderRow from 'Components/table/TableHeaderRow';\nimport TableHeaderColumn from 'Components/table/TableHeaderColumn';\nimport TableBody from 'Components/table/TableBody';\nimport TableRow from 'Components/table/TableRow';\nimport TableColumn from 'Components/table/TableColumn';\nimport TableErrorRow from 'Components/table/TableErrorRow';\nimport TableErrorColumn from 'Components/table/TableErrorColumn';\nimport TimeInput from 'Components/time-input/TimeInput';\nimport ThemedCheckboxInput from 'Components/checkbox/ThemedCheckboxInput';\n\nfunction parseChildName(fullName) {\n // The fullName is in the form of \"DAY-THE_NAME\", we want to split\n // the day key and the name apart, dropping the hyphen.\n //\n const day = fullName.split('-', 1)[0];\n const name = fullName.substring(day.length + 1);\n\n return {\n key: day,\n name,\n };\n}\n\nclass AlertWindowEditor extends React.Component {\n static propTypes = {\n name: PropTypes.string.isRequired,\n validation: PropTypes.objectOf(\n PropTypes.shape({\n start: PropTypes.string,\n end: PropTypes.string,\n }),\n ),\n allowEdit: PropTypes.bool,\n onChange: PropTypes.func,\n value: PropTypes.objectOf(\n PropTypes.shape({\n enabled: PropTypes.bool.isRequired,\n start: PropTypes.string.isRequired,\n end: PropTypes.string.isRequired,\n }).isRequired,\n ),\n };\n\n static defaultProps = {\n allowEdit: true,\n onChange: () => { },\n };\n\n constructor(props) {\n super(props);\n }\n\n _handleChildChange = (event) => {\n const {\n name: fullChildName,\n value: childValue,\n } = event.target;\n\n const {\n name: thisName,\n onChange,\n } = this.props;\n\n const child = parseChildName(fullChildName);\n\n onChange({\n target: {\n name: thisName,\n value: {\n ...this.props.value,\n [child.key]: {\n ...this.props.value[child.key],\n [child.name]: childValue,\n },\n },\n },\n });\n };\n\n _renderRows() {\n const {\n value,\n validation,\n allowEdit,\n } = this.props;\n\n const dayNames = moment.weekdays(false);\n const dayKeys = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'];\n\n let rows = [];\n\n dayKeys.forEach((dayKey, i) => {\n const dayValue = value[dayKey];\n const dayError = validation[dayKey] || {};\n\n if (dayValue) {\n const {\n enabled,\n start,\n end,\n } = dayValue;\n\n const {\n start: startError,\n end: endError,\n } = dayError;\n\n rows.push(\n \n \n {dayNames[i]}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n\n if (startError || endError) {\n rows.push(\n \n \n \n {startError || endError}\n \n \n );\n }\n }\n });\n\n return rows;\n }\n\n render() {\n const {\n validation,\n onChange,\n value,\n ...otherProps\n } = this.props;\n\n return (\n \n \n \n \n Day\n \n \n Receive Alerts\n \n \n Start Time\n \n \n End Time\n \n \n \n \n {this._renderRows()}\n \n
    \n );\n }\n}\n\nexport default AlertWindowEditor;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport Form from 'Components/form/Form';\nimport validate from 'Components/pages/alerts-subscribe/AlertWindowValidation';\nimport * as RequestStatus from 'Common/data/RequestStatus';\nimport DndSelect from './DndSelect';\nimport AlertWindowEditor from './AlertWindowEditor';\nimport every from 'lodash/every';\nimport mapValues from 'lodash/mapValues';\nimport { format24HourTime } from 'Components/util/timeUtils';\nimport { isValidationValid } from 'Components/util/validationUtils';\n\nconst defaultDayWindow = {\n enabled: true,\n start: '07:00',\n end: '15:00',\n};\n\nfunction getDndSelectValueFromWindow(alertWindow) {\n // If all disabled => never\n const allDisabled = every(alertWindow, (day) => day.enabled === false);\n\n if (allDisabled) {\n return 'never';\n }\n\n const allFullDay = every(alertWindow, (day) => (\n day.enabled &&\n day.start === '00:00' &&\n day.end === '00:00'\n ));\n\n if (allFullDay) {\n return 'always';\n }\n\n // Must be a window\n return 'window';\n}\n\nfunction getInitialDefaultWindowValue(dndSelection, data) {\n switch (dndSelection) {\n case 'window': {\n return data;\n }\n case 'always': {\n // Default week\n return mapValues(data, (curr, day) => {\n if (day === 'saturday' || day === 'sunday') {\n return {\n ...defaultDayWindow,\n enabled: false,\n };\n }\n else {\n return {\n ...defaultDayWindow,\n enabled: true,\n };\n }\n });\n }\n case 'never': {\n // Keep the existing window values and disable each day\n return mapValues(data, (curr) => {\n return {\n ...curr,\n enabled: false,\n };\n });\n }\n default: {\n console.error(`Unknown dndSelection value '${dndSelection}'`);\n // Just default the days in this case\n return mapValues(data, (curr, day) => {\n if (day === 'saturday' || day === 'sunday') {\n return {\n ...defaultDayWindow,\n enabled: false,\n };\n }\n else {\n return {\n ...defaultDayWindow,\n enabled: true,\n };\n }\n });\n }\n }\n}\n\nfunction transformIncomingData(alertWindow) {\n return mapValues(alertWindow, (day) => {\n return {\n enabled: day.enabled,\n start: format24HourTime(day.start),\n end: format24HourTime(day.end),\n };\n });\n}\n\nfunction transformOutgoingData(alertWindow) {\n return mapValues(alertWindow, (day) => {\n return {\n enabled: day.enabled,\n start: format24HourTime(day.start) + ':00',\n end: format24HourTime(day.end) + ':00',\n };\n });\n}\n\nconst StyledAlertWindowEditor = styled(AlertWindowEditor)`\n margin-top: 10px;\n`;\n\nexport default class AlertWindowForm extends React.Component {\n constructor(props) {\n super(props);\n\n const initialData = transformIncomingData(props.data);\n const dndSelection = getDndSelectValueFromWindow(initialData);\n\n this.state = {\n dndSelection: dndSelection,\n initialData: initialData,\n modifiedData: initialData,\n defaultWindow: getInitialDefaultWindowValue(dndSelection, initialData),\n lastPatchStatus: props?.requests?.patchAlertWindow?.status,\n };\n }\n\n static getDerivedStateFromProps(props, state) {\n const lastPatchStatus = state.lastPatchStatus;\n const nextPatchStatus = props?.requests?.patchAlertWindow?.status;\n\n if (lastPatchStatus !== nextPatchStatus) {\n let nextInitialData = state.initialData;\n let nextModifiedData = state.modifiedData;\n let nextDefaultWindow = state.defaultWindow;\n\n // Watch for when patchAlertWindow changes from PENDING to SUCCESS and\n // reset the data\n if (lastPatchStatus === RequestStatus.PENDING &&\n nextPatchStatus === RequestStatus.SUCCESS\n ) {\n nextInitialData = transformIncomingData(props.data);\n nextModifiedData = nextInitialData;\n nextDefaultWindow = getInitialDefaultWindowValue(state.dndSelection, nextInitialData);\n }\n\n return {\n initialData: nextInitialData,\n modifiedData: nextModifiedData,\n defaultWindow: nextDefaultWindow,\n lastPatchStatus: nextPatchStatus,\n };\n }\n\n return null; // No changes\n }\n\n _handleSubmit = (event) => {\n // Perform any data cleanup here\n const cleanedUpData = transformOutgoingData(this.state.modifiedData);\n\n this.props.onSubmit({\n target: {\n name: this.props.name,\n value: cleanedUpData,\n },\n });\n };\n\n _handleChange = (event) => {\n const { dndSelection, defaultWindow } = this.state;\n const { value } = event.target;\n\n this.setState({\n modifiedData: value,\n defaultWindow: dndSelection === 'window' ? value : defaultWindow,\n });\n };\n\n _handleReset = () => {\n this.setState((state) => {\n const dndSelection = getDndSelectValueFromWindow(state.initialData);\n\n return {\n dndSelection: dndSelection,\n modifiedData: state.initialData,\n defaultWindow: getInitialDefaultWindowValue(dndSelection, state.initialData),\n };\n });\n };\n\n _handleDndSelectChange = (event) => {\n const { initialData, modifiedData, defaultWindow } = this.state;\n const newDndSelection = event.target.value;\n\n let newData = { ...modifiedData };\n\n switch (newDndSelection) {\n case 'never': {\n // When set to never, use the initial data (that we know is\n // valid) and set every day to disabled\n newData = mapValues(initialData, (curr) => {\n return {\n ...curr,\n enabled: false,\n };\n });\n break;\n }\n case 'always': {\n newData = mapValues(modifiedData, (curr) => {\n return {\n enabled: true,\n start: '00:00',\n end: '00:00',\n };\n });\n break;\n }\n case 'window': {\n newData = defaultWindow;\n break;\n }\n }\n\n this.setState({\n dndSelection: newDndSelection,\n modifiedData: newData,\n });\n };\n\n render() {\n const { requests } = this.props;\n const { dndSelection, initialData, modifiedData } = this.state;\n\n const hasChanges = modifiedData !== initialData;\n const validation = validate(modifiedData);\n const isValid = isValidationValid(validation);\n const isLoading = requests.patchAlertWindow.status === RequestStatus.PENDING;\n\n const allowEdit = !isLoading;\n const allowSubmit = !isLoading && isValid && hasChanges;\n const allowCancel = !isLoading && hasChanges;\n\n const showReceiveWindow = dndSelection === 'window';\n\n return (\n \n \n \n {showReceiveWindow ? (\n \n ) : null}\n \n \n );\n }\n}\n\nAlertWindowForm.propTypes = {\n name: PropTypes.string,\n onSubmit: PropTypes.func.isRequired,\n data: PropTypes.object.isRequired,\n requests: PropTypes.shape({\n patchAlertWindow: PropTypes.shape({\n status: PropTypes.string.isRequired,\n error: PropTypes.shape({\n message: PropTypes.string,\n }),\n }).isRequired,\n }).isRequired,\n};\n\nAlertWindowForm.defaultProps = {\n name: '',\n};\n","import forEach from 'lodash/forEach';\nimport { parseTime } from 'Components/util/timeUtils';\nimport timeInputValidation from 'Components/time-input/timeInputValidation';\n\nfunction startBeforeEnd(start, end) {\n const startTime = parseTime(start);\n const endTime = parseTime(end);\n\n // Midnight is ambiguous. Therefore, if both equal midnight, then we can\n // assume `end` is referring to the next day\n if (startTime.isSame(endTime)) {\n return startTime.isSame(parseTime('00:00'));\n }\n\n return startTime.isBefore(endTime);\n}\n\nexport default function validate(value = {}) {\n const errors = {};\n\n forEach(value, (dayValue = {}, key) => {\n let startError, endError;\n\n if (dayValue.enabled) {\n const { start, end } = dayValue;\n\n startError = timeInputValidation(start);\n endError = timeInputValidation(end);\n\n if (!startError && !endError) {\n if (!startBeforeEnd(start, end)) {\n startError = 'Start time must occur before end time';\n }\n }\n }\n\n // Only set key if there are errors\n if (startError || endError) {\n errors[key] = {\n start: startError,\n end: endError,\n };\n }\n });\n\n return errors;\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport FormElement from 'Components/form-element/FormElement';\nimport SelectInput from 'Components/select/SelectInput';\nimport SelectOption from 'Components/select/SelectOption';\nimport SelectOptionContent from 'Components/select/SelectOptionContent';\n\nconst StyledSelectInput = styled(SelectInput)`\n min-width: 225px;\n`;\n\nexport default class DeviceSubscriptionsEditor extends React.Component {\n static propTypes = {\n name: PropTypes.string,\n devices: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number.isRequired,\n asset_name: PropTypes.string.isRequired,\n }).isRequired,\n ).isRequired,\n value: PropTypes.arrayOf(PropTypes.number).isRequired,\n onChange: PropTypes.func.isRequired,\n allowEdit: PropTypes.bool.isRequired,\n };\n\n constructor(props) {\n super(props);\n }\n\n _handleChange = (event) => {\n this.props.onChange({\n target: {\n name: this.props.name,\n value: event.target.value.map(Number),\n }\n });\n };\n\n render() {\n const { name, devices, value, allowEdit } = this.props;\n\n const disabled = !allowEdit || devices.length === 0;\n\n return (\n \n \n {`Select Work Centers (${value.length})`}\n \n )}\n onChange={this._handleChange}\n optionsWidth={350}\n maxOptionsHeight={500}\n >\n {devices.map((device) => {\n const deviceId = device.id;\n\n return (\n \n \n {device.asset_name}\n \n \n );\n })}\n \n \n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport DeviceSubscriptionEditor from './DeviceSubscriptionsEditor';\nimport Form from 'Components/form/Form';\nimport * as RequestStatus from 'Common/data/RequestStatus';\n\nexport default class DeviceSubscriptionsForm extends React.Component {\n static propTypes = {\n name: PropTypes.string,\n devices: PropTypes.array.isRequired,\n data: PropTypes.arrayOf(PropTypes.number).isRequired,\n requests: PropTypes.object.isRequired,\n onSubmit: PropTypes.func.isRequired,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n modifiedData: props.data,\n lastPatchStatus: props?.requests?.patchDeviceSubscriptions?.status,\n };\n }\n\n static getDerivedStateFromProps(props, state) {\n const lastPatchStatus = state.lastPatchStatus;\n const nextPatchStatus = props?.requests?.patchDeviceSubscriptions?.status;\n\n if (lastPatchStatus !== nextPatchStatus) {\n let nextModifiedData = state.modifiedData;\n\n // Watch for when patchDeviceSubscriptions changes from PENDING to SUCCESS and\n // reset the data\n if (lastPatchStatus === RequestStatus.PENDING &&\n nextPatchStatus === RequestStatus.SUCCESS\n ) {\n nextModifiedData = props.data;\n }\n\n return {\n modifiedData: nextModifiedData,\n lastPatchStatus: nextPatchStatus,\n };\n }\n\n return null; // No changes\n }\n\n _handleChange = (event) => {\n this.setState({\n modifiedData: event.target.value,\n });\n };\n\n _handleReset = () => {\n this.setState({\n modifiedData: this.props.data,\n });\n };\n\n _handleSubmit = () => {\n this.props.onSubmit({\n target: {\n name: this.props.name,\n value: this.state.modifiedData,\n },\n });\n };\n\n render() {\n const { devices, data: initialData, requests } = this.props;\n const { modifiedData } = this.state;\n\n const hasChanges = modifiedData !== initialData;\n const isLoading = requests.patchDeviceSubscriptions.status === RequestStatus.PENDING;\n\n const allowEdit = !isLoading;\n const allowSubmit = !isLoading && hasChanges;\n const allowCancel = !isLoading && hasChanges;\n\n return (\n \n \n \n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport { bindActionCreators } from 'redux';\n\nimport {\n generateDeviceSubscriptionsPatch,\n getAlerts,\n getAlertWindow,\n getDeviceSubscriptions,\n getHierarchy,\n getUsers,\n patchAlertWindow,\n patchDeviceSubscriptions,\n} from 'Redux/actions';\nimport getAlertSubscriptions from 'Redux/actions/getAlertSubscriptions';\nimport { patchAlertSubscriptions, generateAlertSubscriptionsPatch } from 'Redux/actions/patchAlertSubscriptions';\nimport { selectAlertSubscriptionsRequest, selectAlertSubscriptions } from 'Redux/reducers/alertSubscriptions';\nimport { selectAlertsRequest, selectAlerts } from 'Redux/reducers/alerts';\nimport { selectAlertWindow, selectAlertWindowRequest } from 'Redux/reducers/alertWindow';\nimport { selectAdminUsers, selectUsersRequest } from 'Redux/reducers/users';\nimport { selectDeviceSubscriptionsRequest, selectDeviceSubscriptions } from 'Redux/reducers/deviceSubscriptions';\nimport { selectDevicesList, selectHierarchyRequest } from 'Redux/reducers/hierarchy';\nimport { selectSessionUser } from 'Redux/reducers/session';\nimport * as RequestStatus from 'Common/data/RequestStatus';\n\nimport Page from 'Components/page/Page';\nimport PageTitle from 'Components/page/PageTitle';\nimport RequestLoadingWrapper from 'Components/loading-indicator/RequestLoadingWrapper';\nimport MultiRequestLoadingWrapper from 'Components/loading-indicator/MultiRequestLoadingWrapper';\nimport AlertSubscriptionsForm from './AlertSubscriptionsForm';\nimport AlertWindowForm from './AlertWindowForm';\nimport DeviceSubscriptionsForm from './DeviceSubscriptionsForm';\nimport PageFrame from 'Components/page/PageFrame';\nimport PageDescription from 'Components/page/PageDescription';\nimport PageContentWide from 'Components/page/PageContentWide';\nimport SectionDescription from 'Components/text/SectionDescription';\nimport WarningNotice from 'Components/notice/WarningNotice';\nimport { nullable } from 'Components/util/propTypesUtils';\n\nexport class AlertsSubscribePagePresentation extends React.Component {\n static propTypes = {\n // Admins\n admins: PropTypes.arrayOf(PropTypes.object).isRequired,\n // Alerts\n alerts: PropTypes.object.isRequired,\n alertSubscriptions: PropTypes.object.isRequired,\n // Alert Window\n alertWindow: PropTypes.object.isRequired,\n // Device Subscriptons\n deviceSubscriptions: PropTypes.array.isRequired,\n\n sessionUser: PropTypes.shape({\n hierarchy_visibility: nullable(PropTypes.number).isRequired,\n }).isRequired,\n hierarchy: PropTypes.object.isRequired,\n\n actions: PropTypes.exact({\n getUsers: PropTypes.func.isRequired,\n getAlerts: PropTypes.func.isRequired,\n getAlertSubscriptions: PropTypes.func.isRequired,\n patchAlertSubscriptions: PropTypes.func.isRequired,\n getAlertWindow: PropTypes.func.isRequired,\n patchAlertWindow: PropTypes.func.isRequired,\n getDeviceSubscriptions: PropTypes.func.isRequired,\n getHierarchy: PropTypes.func.isRequired,\n patchDeviceSubscriptions: PropTypes.func.isRequired,\n }).isRequired,\n requests: PropTypes.exact({\n getUsers: PropTypes.object.isRequired,\n getAlerts: PropTypes.object.isRequired,\n getAlertSubscriptions: PropTypes.object.isRequired,\n patchAlertSubscriptions: PropTypes.object.isRequired,\n getAlertWindow: PropTypes.object.isRequired,\n patchAlertWindow: PropTypes.object.isRequired,\n getDeviceSubscriptions: PropTypes.shape({\n status: PropTypes.string.isRequired,\n }).isRequired,\n getHierarchy: PropTypes.object.isRequired,\n patchDeviceSubscriptions: PropTypes.object.isRequired,\n }).isRequired,\n };\n\n constructor(props) {\n super(props);\n }\n\n componentDidMount() {\n this.props.actions.getUsers();\n this.props.actions.getAlerts();\n this.props.actions.getAlertSubscriptions();\n this.props.actions.getAlertWindow();\n this.props.actions.getDeviceSubscriptions();\n this.props.actions.getHierarchy();\n }\n\n _renderPageDescription() {\n const { admins } = this.props;\n\n const names = admins.map(user => user.data.name).join(', ');\n\n return (\n `Use this page to subscribe to automatic email notifications for\n alerts that fall within the scope of your responsibility.\n Alert rules are configured by XL Enterprise\n Administrators${names.length ? ` (${names})` : ''}.`\n );\n }\n\n _handleAlertWindowSubmit = (event) => {\n this.props.actions.patchAlertWindow(event.target.value);\n };\n\n _renderAlertWindowForm() {\n const { alertWindow, requests } = this.props;\n\n return (\n {\n return (\n \n );\n }}\n />\n );\n }\n\n _handleAlertSubscriptionsSubmit = (event) => {\n const patchData = generateAlertSubscriptionsPatch(\n this.props.alertSubscriptions,\n event.target.value\n );\n\n this.props.actions.patchAlertSubscriptions(patchData);\n };\n\n _renderAlertSubscriptionsForm = () => {\n const {\n alerts,\n alertSubscriptions,\n requests,\n } = this.props;\n\n return (\n {\n return (\n \n );\n }}\n />\n );\n };\n\n _handleDeviceSubscriptionsSubmit = (event) => {\n const patchData = generateDeviceSubscriptionsPatch(\n this.props.deviceSubscriptions,\n event.target.value\n );\n\n this.props.actions.patchDeviceSubscriptions(patchData);\n };\n\n _renderDeviceSubscriptionsForm = () => {\n const {\n deviceSubscriptions,\n sessionUser,\n requests,\n hierarchy\n } = this.props;\n\n const devicesList = hierarchy ? selectDevicesList(hierarchy) : [];\n\n const hasNoVisibility = (\n sessionUser.hierarchy_visibility === null ||\n devicesList.length === 0\n );\n\n return (\n {\n return (\n \n {hasNoVisibility && (\n \n You currently have no access to any devices in the\n enterprise hierarchy and therefore are unable to\n subscribe to any work centers.\n Contact your organization's administrator(s)\n to gain access.\n \n )}\n \n \n );\n }}\n />\n );\n };\n\n render() {\n const { deviceSubscriptions, requests, alertSubscriptions } = this.props;\n\n const alertSubscriptionsCount = (\n alertSubscriptions.metric.length\n + alertSubscriptions.process_state_duration.length\n + alertSubscriptions.process_state_target_time.length\n );\n\n return (\n \n Alert Subscriptions\n\n \n {this._renderPageDescription()}\n \n\n \n {requests.getDeviceSubscriptions.status === RequestStatus.SUCCESS &&\n requests.getAlertSubscriptions.status === RequestStatus.SUCCESS &&\n alertSubscriptionsCount > 0 &&\n deviceSubscriptions.length === 0 && (\n \n You haven't subscribed to any work centers. Alerts will only be sent for\n work centers that you have selected below.\n \n )}\n \n\n \n \n Select the alerts for which you would like to receive\n email notifications. Metric Alerts are only sent after\n there has been at least 30 minutes of manufacturing time\n in the shift (enough time for the alert to be meaningful\n and actionable). Each Metric Alert is sent one\n time per shift. In other words, if a metric crosses an\n alert threshold multiple times, the alert is sent only\n the first time. Production State Time and \n Production State Target alerts are sent each time\n the alert threshold is crossed.\n \n {this._renderAlertSubscriptionsForm()}\n \n\n \n \n Select the work centers for which you would like to receive notifications.\n \n \n {this._renderDeviceSubscriptionsForm()}\n \n \n\n \n \n Configure a receive window to establish when you would like to receive\n alerts. This typically should be set to match your regular working hours\n (in your local time). You can also choose to temporarily override the\n configured receive window.\n \n {this._renderAlertWindowForm()}\n \n \n );\n }\n}\n\nconst mapStateToProps = state => {\n const {\n users,\n alerts,\n alertSubscriptions,\n alertWindow,\n deviceSubscriptions,\n hierarchy,\n } = state;\n\n return {\n admins: selectAdminUsers(users),\n alerts: selectAlerts(alerts),\n alertSubscriptions: selectAlertSubscriptions(alertSubscriptions),\n alertWindow: selectAlertWindow(alertWindow),\n deviceSubscriptions: selectDeviceSubscriptions(deviceSubscriptions),\n hierarchy: state.hierarchy,\n sessionUser: selectSessionUser(state.session),\n\n requests: {\n getUsers: selectUsersRequest(users, 'getUsers'),\n getAlerts: selectAlertsRequest(alerts, 'getAlerts'),\n getAlertSubscriptions: selectAlertSubscriptionsRequest(alertSubscriptions, 'getAlertSubscriptions'),\n patchAlertSubscriptions: selectAlertSubscriptionsRequest(alertSubscriptions, 'patchAlertSubscriptions'),\n getAlertWindow: selectAlertWindowRequest(alertWindow, 'getAlertWindow'),\n patchAlertWindow: selectAlertWindowRequest(alertWindow, 'patchAlertWindow'),\n getDeviceSubscriptions: selectDeviceSubscriptionsRequest(deviceSubscriptions, 'getDeviceSubscriptions'),\n patchDeviceSubscriptions: selectDeviceSubscriptionsRequest(deviceSubscriptions, 'patchDeviceSubscriptions'),\n getHierarchy: selectHierarchyRequest(hierarchy, 'getHierarchy'),\n },\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n actions: bindActionCreators({\n getUsers: getUsers,\n getAlerts: getAlerts,\n getAlertSubscriptions: getAlertSubscriptions,\n patchAlertSubscriptions: patchAlertSubscriptions,\n getAlertWindow: getAlertWindow,\n patchAlertWindow: patchAlertWindow,\n getDeviceSubscriptions: getDeviceSubscriptions,\n patchDeviceSubscriptions: patchDeviceSubscriptions,\n getHierarchy: getHierarchy,\n }, dispatch),\n };\n};\n\n// connect the component to Redux\nconst AlertsSubscribePage = withRouter(connect(\n mapStateToProps,\n mapDispatchToProps\n)(AlertsSubscribePagePresentation));\n\nexport default AlertsSubscribePage;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport { getVersion } from 'Redux/actions';\nimport Page from 'Components/page/Page';\nimport PageContent from 'Components/page/PageContentStandard';\nimport PageTitle from 'Components/page/PageTitle';\nimport RequestLoadingWrapper from 'Components/loading-indicator/RequestLoadingWrapper';\nimport styled from 'styled-components';\nimport { Body1 } from 'Components/typography/typography';\n\nconst Body = styled(Body1)``;\n\nexport class VersionPagePresentation extends React.Component {\n constructor(props) {\n super(props);\n this._renderVersions = this._renderVersions.bind(this);\n }\n\n componentDidMount() {\n this.props.onDidMount();\n }\n\n _renderVersions() {\n const { versionData } = this.props;\n return (\n \n Container: {versionData.container_tag}
    \n Schema: {versionData.db_schema_version}
    \n Deployment: {versionData.source_version}
    \n \n );\n }\n\n render() {\n return (\n \n About XL Enterprise\n \n \n \n \n );\n }\n}\n\nVersionPagePresentation.propTypes = {\n onDidMount: PropTypes.func.isRequired,\n versionData: PropTypes.shape({\n source_version: PropTypes.string.isRequired,\n container_tag: PropTypes.string.isRequired,\n db_schema_version: PropTypes.string.isRequired,\n }),\n requests: PropTypes.shape({\n getVersion: PropTypes.shape({\n status: PropTypes.string.isRequired,\n error: PropTypes.shape({\n message: PropTypes.string,\n }),\n }).isRequired,\n }).isRequired,\n};\n\nVersionPagePresentation.defaultProps = {\n versionData: null,\n};\n\nconst mapStateToProps = (state, ownProps) => {\n const { version } = state;\n\n return {\n versionData: version.versionData || null,\n requests: version.requests,\n };\n};\n\nconst mapDispatchToProps = {\n onDidMount: getVersion,\n};\n\nconst VersionPage = withRouter(connect(\n mapStateToProps,\n mapDispatchToProps\n)(VersionPagePresentation));\n\nexport default VersionPage;\n","import React from 'react';\nimport Page from 'Components/page/Page';\nimport PageTitle from 'Components/page/PageTitle';\nimport PageContent from 'Components/page/PageContentWide';\nimport { Body1 } from 'Components/typography/typography';\nimport styled from 'styled-components';\n\nconst Body = styled(Body1)`\n white-space: pre-wrap;\n display: block;\n`;\n\nexport default function PrivacyPage() {\n return (\n \n Privacy Policy\n \n \n XL Enterprise is currently in preview release and this page will be updated soon.\n Please contact us if you have any questions.\n \n \n \n );\n}\n","import React from 'react';\nimport Page from 'Components/page/Page';\nimport PageTitle from 'Components/page/PageTitle';\nimport PageContent from 'Components/page/PageContentWide';\nimport styled from 'styled-components';\nimport { T2, Body2 } from 'Components/typography/typography';\n\nconst Heading = styled(T2)`\n display: block;\n color: ${props => props.theme.colors.palette.blue.awesome};\n text-transform: uppercase;\n margin-bottom: 10px;\n`;\n\nconst Body = styled(Body2)`\n white-space: pre-wrap;\n display: block;\n`;\n\nconst Section = styled(Body)`\n display: block;\n margin-bottom: 20px;\n`;\n\nconst ListItem = styled.li``;\n\nexport default function CookiePolicyPage() {\n return (\n \n Cookie Policy\n \n
    \n Introduction\n \n As with many companies, our websites and emails use standard technologies referred to as “cookies” and “beacons”.\n \n
      \n A cookie is a small data file that is transferred to your computer (when you allow your browser to accept cookies). Cookies are used to identify your web browser whenever you visit a site and may be necessary to providing a better browsing experience and/or to analyze site traffic as a means of improving page content.\n A beacon is an electronic image placed in a web page or email. Beacons are generally used to provide a notification when web pages are loaded and when emails are opened.\n
    \n
    \n
    \n Managing Cookies\n \n If you do not want information collected through the use of cookies, you can opt-out of providing this information by adjusting cookie settings in your browser. Your browser controls allow you to refuse some or all cookies, as well as delete existing cookies from your machine. Please refer to your browser's privacy or help documentation for more information about how to block or disable cookies in your browser.\n \n \n Users located in the European Union will also have the option of disabling cookies through the onsite banner that will appear when originally visiting our websites.\n \n
    \n
    \n Type of Cookies and Information Collected\n \n Our websites uses the following types of cookies:\n \n
      \n Strictly Necessary: These cookies are required for the operation of our sites. They are not used to track your activity or collect information about you. We recommend that you do not turn these cookies off as this may limit your ability to view and navigate our sites.\n Performance: These cookies are used to collect overall information about how visitors use our websites. They recognize and count website visitors and help us see how visitors reach and move around our websites. This helps us ensure that users are able to easily find what they are looking for, and to identify errors. Information collected by performance cookies is anonymous or pseudonymized and cannot be used to identify you. Some performance cookies are managed for us by third parties. For more information see Key Third Party Providers below.\n Functionality: These cookies are used to provide content such as videos. We do not use Functionality Cookies to target advertising content. You can block these cookies using your browser settings, but this may mean you will not be able to view certain content.\n Targeting: These cookies are used to store your contact details once entered on a web form. This information allows us to track and record the pages you have visited and the links you have clicked. This helps us to identify which pages of our website are most relevant to people who visit our sites, so that we can develop and improve our content.\n
    \n \n If you choose to receive marketing emails or newsletters from Vorne we use web beacons and personalized URLs to track that you’ve opened the message, and to identify any clicked links within those messages. This allows Vorne to optimize future communications and limit these communications to subjects that are of interest to you. You will not receive these communications if you have opted-out of receiving marketing materials from us (every email includes an opt-out option in the email footer).\n \n \n You can turn off Targeting Cookies. However, if you block them, we may not be able to offer you certain functionality.\n \n
    \n
    \n Cookie Duration\n \n The length of time that a cookie remains on your machine will depend on whether they are session or persistent cookies.\n \n
      \n Session Cookies: Remain in place only for the duration of your visit. They are deleted at the end of your browsing session.\n Persistent Cookies: Remain in place for a period of time after you leave our website. How long the cookie remains on your machine will depend on the “lifetime” of the specific cookie as well as your browser settings. You can also manually delete these cookies.\n
    \n
    \n
    \n
    \n );\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { T2, Body2, Body1 } from 'Components/typography/typography';\n\nconst LicenseContainer = styled.div`\n margin-bottom: 20px;\n`;\n\nconst LicenseName = styled(T2)`\n display: block;\n color: ${props => props.theme.colors.palette.blue.awesome};\n text-transform: uppercase;\n margin-bottom: 10px;\n`;\n\nconst LicenseIntro = styled(Body1)`\n display: block;\n margin-bottom: 10px;\n`;\n\nconst LicenseText = styled(Body2)`\n display: block;\n white-space: pre-wrap;\n margin-left: 50px;\n margin-bottom: 30px;\n`;\n\nfunction LicenseDescription({ name, text }) {\n return (\n \n \n {name}\n \n \n This product contains code from the {name} package, which is licensed as follows.\n \n \n {text}\n \n \n );\n}\n\nLicenseDescription.propTypes = {\n name: PropTypes.string.isRequired,\n text: PropTypes.string.isRequired,\n};\n\nexport default LicenseDescription;\n","import React from 'react';\nimport Page from 'Components/page/Page';\nimport PageTitle from 'Components/page/PageTitle';\nimport PageContent from 'Components/page/PageContentWide';\nimport licenses from 'Licenses/licenses.json';\nimport LicenseDescription from './LicenseDesciption';\nimport PageDescription from 'Components/page/PageDescription';\n\nexport default function LicensesPage() {\n return (\n \n Third-Party Licenses\n \n XL Enterprise™ utilizes a collection of various pieces of software\n (referred to collectively as the "Software").\n
    \n
    \n Some pieces of the Software require license information to be provided.\n The licensing information in this section pertains only to the\n specifically listed software libraries.\n
    \n
    \n Please note that copyright notices and license text appear in their\n original language.\n
    \n \n {\n licenses.map((license) => {\n return (\n \n );\n })\n }\n \n
    \n );\n}\n","import React from 'react';\nimport Page from 'Components/page/Page';\nimport PageTitle from 'Components/page/PageTitle';\nimport PageContent from 'Components/page/PageContentWide';\nimport { Body1 } from 'Components/typography/typography';\nimport styled from 'styled-components';\n\nconst Body = styled(Body1)`\n white-space: pre-wrap;\n display: block;\n`;\n\nexport default function TermsOfUsePage() {\n return (\n \n Terms of Use\n \n \n XL Enterprise is currently in preview release and this page will be updated soon.\n Please contact us if you have any questions.\n \n \n \n );\n}\n","\nimport {\n resourceCollectionReducer,\n resourceReducer,\n} from 'Common/util/ResourceCollection';\nimport {\n selectResources,\n} from 'Common/util/ResourceCollection/resourceCollectionReducer';\n\nexport default resourceCollectionReducer('emailSubscriptions', {\n getResourceId: (resource) => resource.id,\n requests: [\n 'getEmailSubscriptions',\n 'patchEmailSubscriptions',\n 'deleteEmailSubscription',\n ],\n resourceReducer: resourceReducer({\n requests: [\n 'getEmailSubscriptions',\n 'patchEmailSubscriptions',\n 'deleteEmailSubscription',\n ],\n }),\n sort: (subscriptionA, subscriptionB) => {\n return subscriptionA.id - subscriptionB.id;\n },\n});\n\nexport function getEmailSubscriptionsList(state) {\n return selectResources(state);\n}\n","\nimport React, {\n useState,\n} from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport SelectOptionContent from 'Components/select/SelectOptionContent';\n\nimport FormElement from 'Components/form-element/FormElement';\nimport SelectOption from 'Components/select/SelectOption';\nimport Table from 'Components/table/Table';\nimport TableHeader from 'Components/table/TableHeader';\nimport TableHeaderRow from 'Components/table/TableHeaderRow';\nimport TableHeaderColumn from 'Components/table/TableHeaderColumn';\nimport TableBody from 'Components/table/TableBody';\nimport TableRow from 'Components/table/TableRow';\nimport TableColumn from 'Components/table/TableColumn';\nimport EnterpriseHierarchySelect from 'Components/enterprise-hierarchy-select/EnterpriseHierarchySelect';\nimport VorneIcon from 'Components/vorne-icon/VorneIcon';\nimport ButtonBase from 'Common/components/Button/ButtonBase';\nimport InfoCircle from 'Common/components/InfoCircle';\n\nimport SelectInput from 'Components/select/SelectInput';\n\nconst DeleteButtonIcon = styled(VorneIcon).attrs({\n i: 'chip-delete',\n})`\n color: ${props => props.theme.colors.darkText.mediumEmphasis};\n`;\n\nconst StyledSelectInput = styled(SelectInput)`\n min-width: 225px;\n`;\n\nconst CreateNewSubscriptionText = styled(SelectOptionContent)`\n color: ${props => props.theme.colors.palette.grey.manatee};\n`;\n\n// should have no padding around drop down and other controls in this particular table,\n// additionally remove the padding that will show up around the enterprise drop down control or the\n// select work center doesn't line up with the rest\nconst SubTable = styled(Table)`\n tbody tr td {\n padding: 0;\n }\n\n tbody tr td button div {\n padding: 0;\n }\n`;\n\nconst ReportingPeriodOptions = [ {\n id: 'every_shift',\n displayName: 'Every Shift',\n}, {\n id: 'ordinal_shift_1',\n displayName: '1st Shift of Day',\n}, {\n id: 'ordinal_shift_2',\n displayName: '2nd Shift of Day',\n}, {\n id: 'ordinal_shift_3',\n displayName: '3rd Shift of Day',\n}, {\n id: 'ordinal_shift_4',\n displayName: '4th Shift of Day',\n}, {\n id: 'day',\n displayName: 'Production Day',\n}, {\n id: 'week',\n displayName: 'Production Week',\n}, {\n id: 'month',\n displayName: 'Month',\n} ];\n\n/**\n * returns a string that is a combination of the report template and selected hierarchy node\n */\nfunction getCombinedSubscriptionPseudoId(subscription) {\n return subscription.data.report_template_id + '-' + subscription.data.hierarchy_node_id;\n}\n\n/**\n * Special Handling of reporting periods\n * This explanation may help explain some of the less straight-forward code in this component\n * The front end allows users to choose a report template and a work center, and select 1 of many reporting periods for that combo\n * The back-end sees each unique report tempalte, work center, reporting period as its own unique subscription\n * The code here looks through all reporting periods for a given report template and work center and combines them into an array.\n */\nexport default function EmailsSubscriptionTable(props) {\n const {\n emailSubscriptions,\n emailTemplates,\n flattenedHierarchy,\n onAddRemove,\n onChange,\n onDeleteRow,\n partialRowStatus,\n } = props;\n\n // this object stores a mapping of pseudo id (report template id + hierarchy node id) pointing\n // to an array of reporting periods\n // the user can have multiple reporting periods selected for each report template + enterprise node\n // the back-end sees each reporting periods combination as a separate subscription\n const combinedEmailSubscriptions = emailSubscriptions.reduce((acc, subscription) => {\n const subscriptionPseudoId = getCombinedSubscriptionPseudoId(subscription);\n const obj = {\n reporting_period: subscription.data.reporting_period,\n subscription_id: subscription.data.id,\n };\n if (acc[subscriptionPseudoId]) {\n acc[subscriptionPseudoId].push(obj);\n }\n else {\n acc[subscriptionPseudoId] = [obj];\n }\n return acc;\n }, {});\n\n // renders the email templates in the dropdown menu\n const renderEmailTemplateOptions = () => {\n return emailTemplates.map((report) => {\n return (\n \n \n {report.data.title}\n \n \n );\n });\n };\n\n const renderReportingPeriodOptions = () => {\n return ReportingPeriodOptions.map((opt) => {\n return (\n \n \n {opt.displayName}\n \n \n );\n });\n };\n\n const renderRows = () => {\n const allowEdit = true;\n\n const onTemplateChange = (subscription, evt) => {\n onChange(subscription.data.id, {\n ...subscription.data,\n report_template_id: parseInt(evt.value, 10),\n });\n };\n\n const onReportingPeriodClose = (subscription, evt) => {\n const newPeriods = evt.value;\n const subscriptionPseudoId = getCombinedSubscriptionPseudoId(subscription);\n const previousReportingPeriods = combinedEmailSubscriptions[subscriptionPseudoId].map((x) => x.reporting_period);\n\n // some fancy js to find differences between two arrays of reporting periods so we can\n // know what was actually added or removed\n const removed = previousReportingPeriods.filter(x => !newPeriods.includes(x));\n const added = newPeriods.filter(x => !previousReportingPeriods.includes(x));\n\n const subscriptionsWithCombo = combinedEmailSubscriptions[subscriptionPseudoId];\n const removedSubscriptions = subscriptionsWithCombo.filter((ss) => {\n return removed.includes(ss.reporting_period);\n });\n\n onAddRemove({\n hierarchy_node_id: subscription.data.hierarchy_node_id,\n reporting_period: added,\n report_template_id: subscription.data.report_template_id,\n },\n removedSubscriptions,\n );\n };\n\n const onHierarchyChange = (subscription, evt) => {\n const newHierarchy = evt.value;\n if (newHierarchy !== subscription.data.hierarchy_node_id.toString()) {\n onChange(subscription.data.id, {\n ...subscription.data,\n hierarchy_node_id: parseInt(evt.value, 10),\n });\n }\n };\n\n const onDeleteClick = (subscription) => {\n onDeleteRow(subscription);\n };\n\n // track if a particular template / work center subscription has already been rendered\n // prevents us from rendering multiple rows for a template/work center for each reporting period\n // only want to see one row with multiple reporting periods in a drop down\n let displayedCombinedSubscription = new Set();\n\n return emailSubscriptions.filter((subscription) => {\n const subscriptionPseudoId = getCombinedSubscriptionPseudoId(subscription);\n const rv = ! displayedCombinedSubscription.has(subscriptionPseudoId);\n displayedCombinedSubscription.add(subscriptionPseudoId);\n return rv;\n }).map((subscription) => {\n const subscriptionPseudoId = getCombinedSubscriptionPseudoId(subscription);\n\n const {\n hierarchy_node_id,\n report_template_id,\n } = subscription.data;\n\n const selectedReportingPeriods = combinedEmailSubscriptions[subscriptionPseudoId].map((ss) => ss.reporting_period);\n\n const getReportPeriodDisplay = () => {\n return (\n Select Reporting Period ({selectedReportingPeriods.length}) \n );\n };\n\n return (\n \n \n \n onTemplateChange(subscription, e.target)}\n >\n {renderEmailTemplateOptions()}\n \n \n \n \n \n onHierarchyChange(subscription, e.target)}\n enterpriseHierarchy={flattenedHierarchy}\n />\n \n \n \n \n onReportingPeriodClose(subscription, e.target)}\n selectionDisplay={getReportPeriodDisplay()}\n >\n {renderReportingPeriodOptions()}\n \n \n \n \n \n onDeleteClick(subscription)} >\n \n \n \n \n \n );\n });\n };\n\n // manages state of last row where user configures a brand new subscription\n const [ newSubscription, setNewSubscription ] = useState({\n report_template_id: '',\n hierarchy_node_id: '',\n reporting_period: [],\n });\n\n // renders the bottom row where a user adds a new subscription\n const renderAddNewRow = () => {\n const allowEdit = true;\n\n // check if a new subscription will be complete (all data items will be filled out) with\n // the addition of the addedPiece\n const willBeComplete = (addedPiece) => {\n // copy new subscription state and add a true value for the to be added piece\n const testSub = {\n ...newSubscription,\n [addedPiece]: true,\n };\n let rv = true;\n // check if any keys in the copied new subscription are falsey.\n for (const key in testSub) {\n if (! testSub[key] || (Array.isArray(testSub[key]) && testSub[key].length === 0) ) {\n // there is a falsey piece in the subscription so is will not be considered\n // complete and ready to be saved\n rv = false;\n break;\n }\n }\n return rv;\n };\n\n const clearNewSubscriptionState = () => {\n setNewSubscription({\n report_template_id: '',\n hierarchy_node_id: '',\n reporting_period: [],\n });\n };\n\n const onNewTemplateChange = (evt) => {\n if (willBeComplete('report_template_id')) {\n onAddRemove({\n hierarchy_node_id: parseInt(newSubscription.hierarchy_node_id, 10),\n report_template_id: parseInt(evt.target.value, 10),\n reporting_period: newSubscription.reporting_period,\n }, []);\n\n clearNewSubscriptionState();\n partialRowStatus(false);\n }\n else {\n setNewSubscription((orig) => {\n return {\n ...orig,\n report_template_id: evt.target.value,\n };\n });\n partialRowStatus(true);\n }\n };\n\n const onNewHierarchyChange = (evt) => {\n if (willBeComplete('hierarchy_node_id')) {\n onAddRemove({\n report_template_id: parseInt(newSubscription.report_template_id, 10),\n hierarchy_node_id: parseInt(evt.target.value, 10),\n reporting_period: newSubscription.reporting_period,\n }, []);\n\n clearNewSubscriptionState();\n partialRowStatus(false);\n }\n else {\n setNewSubscription((orig) => {\n return {\n ...orig,\n hierarchy_node_id: evt.target.value,\n };\n });\n partialRowStatus(true);\n }\n };\n\n const onNewReportingPeriodChange = (evt) => {\n setNewSubscription((orig) => {\n return {\n ...orig,\n reporting_period: evt.target.value,\n };\n });\n };\n\n const onNewReportPeriodClose = (evt) => {\n if (willBeComplete('reporting_period')) {\n onAddRemove({\n hierarchy_node_id: parseInt(newSubscription.hierarchy_node_id, 10),\n report_template_id: parseInt(newSubscription.report_template_id, 10),\n reporting_period: evt.target.value,\n }, []);\n\n clearNewSubscriptionState();\n partialRowStatus(false);\n }\n else {\n partialRowStatus(true);\n }\n };\n\n // gets the element that displays the value in the drop downs when nothing is selected\n const getSelectionDisplay = (value, text) => {\n if (! value) {\n return (\n \n {text}\n \n );\n }\n };\n\n const getReportPeriodSelectionDisplay = (value) => {\n const text = value.length === 0 ? 'Select reporting period…' : `Select Reporting Period (${value.length})`;\n return (\n \n {text}\n \n );\n };\n\n const error = !!newSubscription.report_template_id && !newSubscription.hierarchy_node_id ||\n !newSubscription.report_template_id && !!newSubscription.hierarchy_node_id;\n\n return (\n \n \n \n \n {renderEmailTemplateOptions()}\n \n \n \n \n \n \n \n \n \n \n \n {renderReportingPeriodOptions()}\n \n \n \n \n \n );\n };\n return (\n \n \n \n \n Report Template\n \n Select a predefined email template using the dropdown. Email templates are\n organized under two headings: Built-In (templates created by Vorne) and\n Custom (templates created by your XL Enterprise administrator).\n \n \n \n Work Centers\n \n Select a node in the Enterprise hierarchy using the dropdown. The dropdown\n shows all work centers to which access has been granted to you by your XL\n Enterprise administrator. All work centers at or under the selected node will\n be included in the report.\n \n \n \n Reporting Period\n \n Select the reporting period covered by the subscription using the dropdown.\n You can select Every Shift (you will receive end of shift templates for\n every shift), or individual shifts of First Shift of Day, Second Shift\n of Day, Third Shift of Day, or Fourth Shift of Day. Individual shifts\n are ordered by when they appear within the production day.\n \n \n \n \n \n \n {renderRows()}\n {renderAddNewRow()}\n \n \n );\n}\n\nEmailsSubscriptionTable.propTypes = {\n emailSubscriptions: PropTypes.array.isRequired,\n emailTemplates: PropTypes.array.isRequired,\n flattenedHierarchy: PropTypes.object,\n onAddRemove: PropTypes.func.isRequired,\n onChange: PropTypes.func.isRequired,\n onDeleteRow: PropTypes.func.isRequired,\n partialRowStatus: PropTypes.func.isRequired,\n};\n","\nimport React, {\n useState,\n useEffect,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport EmailsSubscriptionTable from './EmailsSubscriptionTable';\nimport Form from 'Components/form/Form';\nimport * as RequestStatus from 'Common/data/RequestStatus';\n\nfunction getUniqueSubscriptionId(sub) {\n return sub.data.hierarchy_node_id + '-' + sub.data.report_template_id + '-' + sub.data.reporting_period;\n}\n\nfunction getSetOfSubscriptionIds(modifiedSubscriptions) {\n return new Set(modifiedSubscriptions.map((sub) => {\n return getUniqueSubscriptionId(sub);\n }));\n}\n\nexport default function EmailsSubscriptionForm(props) {\n const {\n emailSubscriptions,\n emailTemplates,\n flattenedHierarchy,\n onSubmit,\n requests,\n } = props;\n\n const [ modifiedSubscriptions, setModifiedSubscriptions ] = useState(emailSubscriptions);\n const [ isDirty, setIsDirty ] = useState(false);\n const [ fullRow, setFullRow ] = useState(true);\n\n const onChange = (subscriptionId, data) => {\n const currentSubscriptions = getSetOfSubscriptionIds(modifiedSubscriptions);\n\n const originalSubscription = modifiedSubscriptions.find((sub) => {\n return sub.data.id === data.id;\n });\n\n const newBackendSubscriptions = modifiedSubscriptions.map((sub) => {\n if (sub.data.hierarchy_node_id === originalSubscription.data.hierarchy_node_id &&\n sub.data.report_template_id === originalSubscription.data.report_template_id) {\n const rv = {\n data: {\n ...sub.data,\n report_template_id: data.report_template_id,\n hierarchy_node_id: data.hierarchy_node_id,\n }\n };\n const uniqueId = getUniqueSubscriptionId(rv);\n if (currentSubscriptions.has(uniqueId)) {\n return null;\n }\n return rv;\n }\n\n return sub;\n }).filter((sub) => {\n return !!sub;\n });\n\n setIsDirty(true);\n setModifiedSubscriptions(newBackendSubscriptions);\n };\n\n const onAddRemove = (createdSub, deletedSubs) => {\n let newSubs = [\n ...modifiedSubscriptions,\n ];\n\n // track unique subscriptions based on hierarchy node, report template id, and reporting period\n const currentSubscriptions = getSetOfSubscriptionIds(modifiedSubscriptions);\n\n // the new subscription sent here will contain an array of reporting periods. Each element\n // in that array should correspond to a unique subscription as far as the back-end is\n // concerned\n const newBackendSubscriptions = createdSub.reporting_period.map((rp, index) => {\n return {\n data: {\n ...createdSub,\n // add an index because this loop is tight enough that the now value doesn't always change\n id: Date.now() + index,\n reporting_period: rp,\n },\n };\n }).filter((sub) => {\n // do not bother to add subscriptions that match something that is already added (possibly\n // in another row of the table)\n const uniqueId = getUniqueSubscriptionId(sub);\n return ! currentSubscriptions.has(uniqueId);\n });\n\n // it's possible that all new subscriptions were filtered out, in that case there is nothing to do here\n if (newBackendSubscriptions.length > 0) {\n // concatenate the current set of modified subscriptions (they may not actually be modified though)\n // with any new subscriptions that may have been created, and set that as our new modifiedSubscription state\n newSubs = [\n ...newSubs,\n ...newBackendSubscriptions,\n ];\n }\n\n // list containing only the sub ids to be deleted\n const deletedSubIds = deletedSubs.map((ss) => ss.subscription_id);\n newSubs = newSubs.filter((sub) => {\n return ! deletedSubIds.includes(sub.data.id);\n });\n\n setIsDirty(true);\n setModifiedSubscriptions(newSubs);\n };\n\n const onDeleteRow = (deletedSub) => {\n // filter out all subscriptions that match the hierarchy_node_id and report_template_id for the sent deletedSub\n const newSubs = modifiedSubscriptions.filter((sub) => {\n return ! (deletedSub.data.hierarchy_node_id === sub.data.hierarchy_node_id && deletedSub.data.report_template_id === sub.data.report_template_id);\n });\n setIsDirty(true);\n setModifiedSubscriptions(newSubs);\n };\n\n const onPartialRowStatusUpdate = (partialRowStatus) => {\n setFullRow(! partialRowStatus);\n };\n\n // track status of the patch request to know when we've gone from a pending to success and we\n // can clear the dirty flag\n const [ lastPatchStatus, setLastPatchStatus ] = useState(requests?.patchEmailSubscriptions?.status);\n\n useEffect(() => {\n const nextPatchStatus = requests?.patchEmailSubscriptions?.status;\n\n if (lastPatchStatus === RequestStatus.PENDING &&\n nextPatchStatus === RequestStatus.SUCCESS\n ) {\n setIsDirty(false);\n }\n\n if (lastPatchStatus !== nextPatchStatus) {\n setLastPatchStatus(nextPatchStatus);\n }\n }, [lastPatchStatus, requests?.patchEmailSubscriptions?.status]);\n\n const isLoading = requests.patchEmailSubscriptions.status === RequestStatus.PENDING;\n\n const allowSubmit = !isLoading && isDirty && fullRow;\n const allowCancel = !isLoading && isDirty && fullRow;\n\n const handleReset = () => {\n setModifiedSubscriptions(emailSubscriptions);\n setIsDirty(false);\n };\n\n const handleSubmit = (a) => {\n onSubmit(modifiedSubscriptions);\n };\n\n return (\n \n \n \n \n \n );\n}\n\nEmailsSubscriptionForm.propTypes = {\n emailSubscriptions: PropTypes.array.isRequired,\n emailTemplates: PropTypes.array.isRequired,\n onSubmit: PropTypes.func.isRequired,\n flattenedHierarchy: PropTypes.object,\n requests: PropTypes.object.isRequired,\n};\n","\nimport React, {\n useEffect,\n useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport Form from 'Components/form/Form';\nimport * as RequestStatus from 'Common/data/RequestStatus';\nimport SelectInput from 'Components/select/SelectInput';\nimport SelectOption from 'Components/select/SelectOption';\nimport SelectOptionContent from 'Components/select/SelectOptionContent';\nimport FormElement from 'Components/form-element/FormElement';\nimport styled from 'styled-components';\n\nconst StyledSelectInput = styled(SelectInput)`\n min-width: 225px;\n`;\n\nconst OptionContent = styled(SelectOptionContent)`\n min-width: 200px;\n color: inherit;\n`;\n\nconst day_of_week = [ {\n displayName: 'Monday',\n value: 'monday',\n}, {\n displayName: 'Tuesday',\n value: 'tuesday',\n}, {\n displayName: 'Wednesday',\n value: 'wednesday',\n}, {\n displayName: 'Thursday',\n value: 'thursday',\n}, {\n displayName: 'Friday',\n value: 'friday',\n}, {\n displayName: 'Saturday',\n value: 'saturday',\n}, {\n displayName: 'Sunday',\n value: 'sunday',\n}];\n\nexport default function DayOfWeekForm(props) {\n const {\n requests,\n user,\n onSubmit,\n } = props;\n\n const [ isDirty, setIsDirty ] = useState(false);\n const [ selectedDOW, setSelectedDOW ] = useState(user.first_day_of_week);\n const [ lastPatchStatus, setLastPatchStatus ] = useState(requests?.patchSessionUser?.status);\n\n useEffect(() => {\n const nextPatchStatus = requests?.patchSessionUser?.status;\n\n if (lastPatchStatus === RequestStatus.PENDING &&\n nextPatchStatus === RequestStatus.SUCCESS\n ) {\n setIsDirty(false);\n }\n\n if (lastPatchStatus !== nextPatchStatus) {\n setLastPatchStatus(nextPatchStatus);\n }\n }, [lastPatchStatus, requests?.patchSessionUser?.status]);\n\n const handleReset = () => {\n setSelectedDOW(user.first_day_of_week);\n setIsDirty(false);\n };\n\n const handleSubmit = (a) => {\n onSubmit(selectedDOW);\n };\n\n const handleChange = (evt) => {\n setSelectedDOW(evt.target.value);\n setIsDirty(true);\n };\n\n const renderOptions = () => {\n return day_of_week.map((dow) => {\n return (\n \n {dow.displayName}\n \n );\n });\n };\n\n const isLoading = requests.patchSessionUser.status === RequestStatus.PENDING;\n\n const allowSubmit = !isLoading && isDirty;\n const allowCancel = !isLoading && isDirty;\n\n return (\n \n \n \n \n {renderOptions()}\n \n \n \n \n );\n}\n\nDayOfWeekForm.propTypes = {\n user: PropTypes.object.isRequired,\n requests: PropTypes.object.isRequired,\n onSubmit: PropTypes.func.isRequired,\n};\n","\nimport React, {\n useEffect,\n} from 'react';\n\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport { bindActionCreators } from 'redux';\nimport { selectFlattenedHierarchy } from 'Redux/reducers/hierarchy';\nimport { selectSessionUser } from 'Redux/reducers/session';\nimport {\n generateEmailSubscriptionsPatch,\n getEmailSubscriptions,\n getEmailTemplates,\n getHierarchy,\n getSessionUser,\n patchEmailSubscriptions,\n patchSessionUser,\n} from 'Redux/actions';\nimport { getEmailTemplatesList } from 'Redux/reducers/emailTemplates';\nimport { getEmailSubscriptionsList } from 'Redux/reducers/emailSubscriptions';\nimport Page from 'Components/page/Page';\nimport PageContent from 'Components/page/PageContentWide';\nimport ConfigPageTitle from 'Components/page/ConfigPageTitle';\nimport EmailsSubscriptionForm from './EmailsSubscriptionForm';\nimport RequestLoadingWrapper from 'Components/loading-indicator/RequestLoadingWrapper';\nimport PageDescription from 'Components/page/PageDescription';\nimport PageFrame from 'Components/page/PageFrame';\nimport InfoCircle from 'Common/components/InfoCircle';\nimport DayOfWeekForm from './DayOfWeekForm';\n\nfunction EmailsSubscribePage(props) {\n\n const {\n actions,\n emailSubscriptions,\n emailTemplates,\n flattenedHierarchy,\n requests,\n user,\n } = props;\n\n useEffect(() => {\n const load = async () => {\n await Promise.all([\n actions.getEmailTemplates(),\n actions.getEmailSubscriptions(),\n actions.getHierarchy(),\n actions.getSessionUser(),\n ]);\n };\n\n load();\n }, [actions]);\n\n const handleEmailSubscriptionPatch = (evt) => {\n const patchData = generateEmailSubscriptionsPatch(\n emailSubscriptions,\n evt,\n );\n actions.patchEmailSubscriptions(patchData);\n };\n\n const handleDOWPatch = (dow) => {\n actions.patchSessionUser({\n first_day_of_week: dow\n });\n };\n\n return (\n \n Email Report Subscriptions\n \n Use this page to add, configure, and delete email report subscriptions.\n \n \n

    \n Subscribe to email reports to have them automatically sent to you.\n Reports are created by administrators on the Email Report Templates page.\n

    \n

    \n For each subscription you can configure which report you would like to receive,\n which work center(s) you would like included, and the reporting period.\n

    \n

    \n Reports are emailed as soon as all XL devices communicating to XL Enterprise\n have completed the last shift for the reporting period. Keep in mind that\n including work centers with different shift schedules or across multiple\n time zones can significantly delay sending reports.\n

    \n
    \n
    \n
    \n \n \n (\n \n )}\n />\n \n \n (\n \n )}\n />\n \n \n
    \n );\n}\n\nEmailsSubscribePage.propTypes = {\n actions: PropTypes.shape({\n getEmailSubscriptions: PropTypes.func.isRequired,\n getEmailTemplates: PropTypes.func.isRequired,\n getHierarchy: PropTypes.func.isRequired,\n getSessionUser: PropTypes.func.isRequired,\n patchEmailSubscriptions: PropTypes.func.isRequired,\n patchSessionUser: PropTypes.func.isRequired,\n }).isRequired,\n user: PropTypes.object.isRequired,\n emailSubscriptions: PropTypes.array.isRequired,\n emailTemplates: PropTypes.array.isRequired,\n flattenedHierarchy: PropTypes.object,\n requests: PropTypes.shape({\n getEmailSubscriptions: PropTypes.object.isRequired,\n patchEmailSubscriptions: PropTypes.object.isRequired,\n getSessionUser: PropTypes.object.isRequired,\n }),\n};\n\nconst mapStateToProps = (state, ownProps) => {\n const {\n emailTemplates,\n emailSubscriptions,\n hierarchy,\n session,\n } = state;\n\n const user = selectSessionUser(session);\n return {\n emailSubscriptions: emailSubscriptions ? getEmailSubscriptionsList(emailSubscriptions) : [],\n emailTemplates: emailTemplates ? getEmailTemplatesList(emailTemplates) : [],\n flattenedHierarchy: selectFlattenedHierarchy(hierarchy),\n requests: {\n ...emailSubscriptions.requests,\n ...session.requests,\n },\n user: user,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n actions: bindActionCreators({\n getEmailSubscriptions,\n getEmailTemplates,\n getHierarchy,\n getSessionUser,\n patchEmailSubscriptions,\n patchSessionUser,\n }, dispatch)\n };\n};\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(EmailsSubscribePage);\n","import React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nconst TocItem = styled.div`\n display: inline-block;\n margin-right: 0.5em;\n`;\n\nexport default function AnchorTocItem(props) {\n const { id, name } = props;\n\n return (\n \n [ {name} ]\n \n );\n}\n\nAnchorTocItem.propTypes = {\n id: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n};\n","import React from 'react';\nimport styled from 'styled-components';\nimport { elementsOfType } from 'Components/util/propTypesUtils';\n\nimport AnchorTocItem from './AnchorTocItem';\nimport { Body1 } from 'Components/typography/typography';\n\nconst Toc = styled(Body1)``;\n\nexport default function AnchorToc(props) {\n const { children } = props;\n\n return (\n \n {children}\n \n );\n}\n\nAnchorToc.propTypes = {\n children: elementsOfType([\n AnchorTocItem,\n ]),\n};\n","import React from 'react';\nimport Page from 'Components/page/Page';\nimport PageTitle from 'Components/page/PageTitle';\nimport PageContent from 'Components/page/PageContentWide';\nimport PageDescription from 'Components/page/PageDescription';\nimport PageFrame from 'Components/page/PageFrame';\nimport Table from 'Components/table/Table';\nimport TableHeader from 'Components/table/TableHeader';\nimport TableHeaderColumn from 'Components/table/TableHeaderColumn';\nimport TableBody from 'Components/table/TableBody';\nimport TableColumn from 'Components/table/TableColumn';\nimport TableRow from 'Components/table/TableRow';\nimport TableHeaderRow from 'Components/table/TableHeaderRow';\nimport AnchorToc from 'Components/anchor-toc/AnchorToc';\nimport AnchorTocItem from 'Components/anchor-toc/AnchorTocItem';\n\nexport default class MobileGatewaysHelpPage extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.state = {\n gateways: null,\n };\n }\n\n componentDidMount() {\n import(/* webpackChunkName: \"mobileGateways\" */ './mobileGateways')\n .then(({ getMobileGateways }) => {\n let gateways = getMobileGateways();\n\n // Sort the carriers alphabetically\n gateways = gateways.map((country) => {\n country.gateways.sort((gatewayA, gatewayB) => {\n return gatewayA.carrier.localeCompare(gatewayB.carrier);\n });\n\n // Add an id value to a country, used for anchor links\n country.id = country.country.toLowerCase().replace(/\\s/g, '-');\n\n return country;\n });\n\n this.setState({\n gateways,\n });\n })\n .catch(error => 'An error occurred while loading the mobile gateways');\n }\n\n renderToc() {\n const { gateways } = this.state;\n\n if (!gateways) {\n return null;\n }\n\n return (\n \n {gateways.map(({ country, id }) => (\n \n ))}\n \n );\n }\n\n renderGatewayRow({ carrier, format, type, activationRequired }, index) {\n return (\n \n \n {carrier}\n \n \n {format}\n \n \n {activationRequired ? 'Yes' : 'No' }\n \n \n );\n }\n\n renderCountryMessage(country) {\n if (country.message) {\n return (\n \n {country.message}\n \n );\n }\n }\n\n renderSmsGateways() {\n const { gateways } = this.state;\n\n if (!gateways) {\n return null;\n }\n\n return gateways.map((country) => {\n const { country: countryName, id } = country;\n\n return (\n \n {this.renderCountryMessage(country)}\n \n \n \n \n Carrier\n \n \n Gateway Address Format\n \n \n Activation Required by Carrier\n \n \n \n \n {country.gateways.map(this.renderGatewayRow)}\n \n
    \n
    \n );\n });\n }\n\n render() {\n return (\n \n Mobile Gateways\n \n

    \n XL Enterprise can send you alerts as emails or text messages. Email is\n preferred as it includes the most information. Text messages can be useful\n if you do not have a mobile-accessible company email address AND your mobile\n carrier supports email to text message gateways. Please note that message and\n data rates from your mobile carrier may apply to text messages sent to you by\n XL Enterprise.\n

    \n

    \n XL uses email gateways provided by mobile carriers to send text messages. Not\n all carriers provide this service and some carriers only provide it as a premium\n service with additional charges. SMS gateways are preferred as the messages are\n often delivered faster. Locate your country and carrier below, and use the email\n address format to construct an email address for alerts (using your phone number\n in place of the # symbols).\n

    \n
    \n \n {this.renderToc()}\n {this.renderSmsGateways()}\n \n
    \n );\n }\n}\n","import { sendPostRequest } from 'Http/request';\nimport { requestActionCreator } from 'Common/util/ResourceCollection/requestActionCreator';\nimport { REQUEST_RESET } from 'Common/util/ResourceCollection';\nimport { REQUEST_PENDING, REQUEST_SUCCESS, REQUEST_FAILURE } from 'Common/util/ResourceCollection/actions';\n\nexport function verifyAccountReset() {\n return {\n type: REQUEST_RESET,\n requestId: 'verifyAccount',\n };\n}\n\nexport const verifyAccount = ({ token }) => requestActionCreator(\n {\n request: () => ({\n type: REQUEST_PENDING,\n requestId: 'verifyAccount',\n }),\n success: (payload) => ({\n type: REQUEST_SUCCESS,\n requestId: 'verifyAccount',\n payload,\n }),\n failure: (error) => ({\n type: REQUEST_FAILURE,\n requestId: 'verifyAccount',\n payload: { error },\n }),\n },\n () => sendPostRequest('/api/v1/accounts/verify-account', {\n body: { token },\n })\n);\n\nexport default verifyAccount;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Redirect, withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport { bindActionCreators } from 'redux';\nimport queryString from 'query-string';\nimport Page from 'Components/page/Page';\nimport { Body1 } from 'Components/typography/typography';\nimport PageTitle from 'Components/page/PageTitle';\nimport PageContent from 'Components/page/PageContentStandard';\nimport ErrorNotice from 'Components/notice/ErrorNotice';\nimport SuccessNotice from 'Components/notice/SuccessNotice';\nimport { login, logout } from 'Redux/actions';\nimport LoginForm from 'Components/login-form/LoginForm';\nimport { selectSessionRequest, selectIsLoggedIn } from 'Redux/reducers/session';\nimport { PENDING } from 'Common/data/RequestStatus';\nimport { REQUEST_SUCCESS, REQUEST_FAILURE } from 'Common/util/ResourceCollection/actions';\nimport verifyAccount from 'Redux/actions/verifyAccount';\nimport ContainedButton from 'Components/button/ContainedButton';\n\nconst STEPS = {\n VERIFY_TOKEN: 'VERIFY_TOKEN',\n LOGIN: 'LOGIN',\n COMPLETE: 'COMPLETE',\n};\n\nfunction getTokenFromProps(props) {\n const urlParams = queryString.parse(props.location.search);\n const token = urlParams.t;\n return token;\n}\n\nexport class VerifyAccountPagePresentation extends React.Component {\n static propTypes = {\n location: PropTypes.shape({\n search: PropTypes.string\n }).isRequired,\n isLoggedIn: PropTypes.bool.isRequired,\n requests: PropTypes.shape({\n login: PropTypes.object.isRequired,\n logout: PropTypes.object.isRequired,\n verifyAccount: PropTypes.object.isRequired,\n }),\n actions: PropTypes.shape({\n login: PropTypes.func.isRequired,\n logout: PropTypes.func.isRequired,\n verifyAccount: PropTypes.func.isRequired,\n }).isRequired,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n currentStep: STEPS.VERIFY_TOKEN,\n email: '',\n showSuccessMessage: true,\n };\n }\n\n _submitToken = async (token) => {\n const { isLoggedIn, actions } = this.props;\n\n if (isLoggedIn) {\n // We don't actually care if this succeeds, it's just a nice-to-have.\n await actions.logout();\n }\n\n const response = await actions.verifyAccount({\n token: token,\n });\n\n // If the verify token request was successful, move to the next step\n if (response.type === REQUEST_SUCCESS) {\n this.setState((state) => {\n return {\n currentStep: STEPS.LOGIN,\n email: response.payload?.email || '',\n };\n });\n }\n };\n\n _handleLoginSubmit = async ({ email, password }) => {\n const { actions } = this.props;\n\n const response = await actions.login({ email, password });\n\n // If the login request was successful, move to the next step\n if (response.type === REQUEST_SUCCESS) {\n this.setState({\n currentStep: STEPS.COMPLETE,\n });\n }\n else if (response.type === REQUEST_FAILURE) {\n this.setState({\n showSuccessMessage: false,\n });\n }\n };\n\n _renderVerifyToken() {\n const { requests } = this.props;\n\n const token = getTokenFromProps(this.props);\n\n let mergedRequest = { ...requests.verifyAccount };\n\n // Merge the requests together and treat them like one request.\n if (requests.logout.status === PENDING) {\n mergedRequest.status = PENDING;\n }\n\n return (\n \n Verify Account\n \n {token && (\n { this._submitToken(token); }}\n >\n Verify Account\n \n )}\n {!token && (\n \n \n The link used to come to this page is invalid\n \n \n )}\n \n \n );\n }\n\n _renderLogin() {\n const { requests } = this.props;\n const { email, showSuccessMessage } = this.state;\n\n return (\n \n Log In\n \n {showSuccessMessage && (\n \n Congratulations, you have verified your email address!\n Please log in to continue.\n \n )}\n \n \n \n );\n }\n\n _renderComplete() {\n const urlParams = queryString.parse(this.props.location.search);\n const linkingToken = urlParams.dlt;\n const assetName = urlParams.an;\n\n if (linkingToken && assetName) {\n return (\n \n );\n }\n else {\n // Redirect to home page\n return (\n \n );\n }\n }\n\n render() {\n const { currentStep } = this.state;\n\n switch (currentStep) {\n case STEPS.VERIFY_TOKEN:\n return this._renderVerifyToken();\n case STEPS.LOGIN:\n return this._renderLogin();\n case STEPS.COMPLETE:\n return this._renderComplete();\n default:\n throw new Error(`Unknown step: ${currentStep}`);\n }\n }\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n isLoggedIn: selectIsLoggedIn(state.session),\n requests: {\n login: selectSessionRequest(state.session, 'login'),\n logout: selectSessionRequest(state.session, 'logout'),\n verifyAccount: selectSessionRequest(state.session, 'verifyAccount'),\n },\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n actions: bindActionCreators({\n login: login,\n logout: logout,\n verifyAccount: verifyAccount,\n }, dispatch),\n };\n};\n\n// connect the component to Redux\nconst VerifyAccountPage = withRouter(connect(\n mapStateToProps,\n mapDispatchToProps\n)(VerifyAccountPagePresentation));\n\nexport default VerifyAccountPage;\n","import { connect } from 'react-redux';\nimport React from 'react';\nimport { withRouter, Route } from 'react-router-dom';\nimport LoadingPage from 'Components/pages/loading/LoadingPage';\nimport PropTypes from 'prop-types';\nimport { selectIsInitialized } from 'Redux/reducers/session';\n\nconst InitializationRequiredRoute = ({ component: Component, isInitialized, ...otherProps }) => {\n return (\n {\n if (isInitialized) {\n return (\n \n );\n }\n else {\n return (\n \n );\n }\n }}\n />\n );\n};\n\nInitializationRequiredRoute.propTypes = {\n component: PropTypes.func.isRequired,\n isInitialized: PropTypes.bool.isRequired,\n};\n\nconst mapStateToProps = state => {\n const { session } = state;\n return {\n isInitialized: selectIsInitialized(session),\n };\n};\n\nexport default withRouter(connect(mapStateToProps)(InitializationRequiredRoute));\n","import { sendPostRequest } from 'Http/request';\nimport { requestActionCreator } from 'Common/util/ResourceCollection/requestActionCreator';\nimport { REQUEST_RESET } from 'Common/util/ResourceCollection';\nimport { REQUEST_PENDING, REQUEST_SUCCESS, REQUEST_FAILURE } from 'Common/util/ResourceCollection/actions';\n\nexport function verifyEmailChangeReset() {\n return {\n type: REQUEST_RESET,\n requestId: 'verifyEmailChange',\n };\n}\n\nexport const verifyEmailChange = ({ token }) => requestActionCreator(\n {\n request: () => ({\n type: REQUEST_PENDING,\n requestId: 'verifyEmailChange',\n }),\n success: (payload) => ({\n type: REQUEST_SUCCESS,\n requestId: 'verifyEmailChange',\n payload,\n }),\n failure: (error) => ({\n type: REQUEST_FAILURE,\n requestId: 'verifyEmailChange',\n payload: { error },\n }),\n },\n () => sendPostRequest('/api/v1/accounts/verify-email-change', {\n body: { token },\n })\n);\n\nexport default verifyEmailChange;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { withRouter, Link } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport { bindActionCreators } from 'redux';\nimport queryString from 'query-string';\nimport Page from 'Components/page/Page';\nimport { Body1 } from 'Components/typography/typography';\nimport PageTitle from 'Components/page/PageTitle';\nimport PageContent from 'Components/page/PageContentStandard';\nimport PageContentFull from 'Components/page/PageContentFull';\nimport ErrorNotice from 'Components/notice/ErrorNotice';\nimport { login } from 'Redux/actions';\nimport LoginForm from 'Components/login-form/LoginForm';\nimport { selectSessionRequest, selectIsLoggedIn } from 'Redux/reducers/session';\nimport { REQUEST_SUCCESS } from 'Common/util/ResourceCollection/actions';\nimport verifyEmailChange from 'Redux/actions/verifyEmailChange';\nimport PageDescription from 'Components/page/PageDescription';\nimport FaIcon from 'Components/icon/FaIcon';\nimport ContainedButton from 'Components/button/ContainedButton';\n\nconst STEPS = {\n LOGIN: 'LOGIN',\n VERIFY_TOKEN: 'VERIFY_TOKEN',\n COMPLETE: 'COMPLETE',\n};\n\nfunction getTokenFromProps(props) {\n const urlParams = queryString.parse(props.location.search);\n const token = urlParams.t;\n return token;\n}\n\nconst SuccessPage = styled(Page)`\n max-width: 100%;\n padding: 32px;\n`;\n\nconst SuccessContent = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n`;\n\nconst CheckIcon = styled(props => ())`\n color: ${props => props.theme.colors.success};\n font-size: 120px;\n`;\n\nconst PrimarySuccessButton = styled(ContainedButton)`\n text-decoration: none;\n`;\n\nexport class VerifyEmailChangePagePresentation extends React.Component {\n static propTypes = {\n location: PropTypes.shape({\n search: PropTypes.string\n }).isRequired,\n isLoggedIn: PropTypes.bool.isRequired,\n requests: PropTypes.shape({\n login: PropTypes.object.isRequired,\n verifyEmailChange: PropTypes.object.isRequired,\n }),\n actions: PropTypes.shape({\n login: PropTypes.func.isRequired,\n verifyEmailChange: PropTypes.func.isRequired,\n }).isRequired,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n // If the user is already logged in, just go straight to verifying the token\n currentStep: props.isLoggedIn ? STEPS.VERIFY_TOKEN : STEPS.LOGIN,\n };\n }\n\n _handleLoginSubmit = async ({ email, password }) => {\n const { actions } = this.props;\n\n const response = await actions.login({ email, password });\n\n // If the login request was successful, move to the next step\n if (response.type === REQUEST_SUCCESS) {\n this.setState({\n currentStep: STEPS.VERIFY_TOKEN,\n });\n }\n };\n\n _submitToken = async (token) => {\n const { actions } = this.props;\n\n const response = await actions.verifyEmailChange({\n token: token,\n });\n\n // If the change email request was successful, move to the next step\n if (response.type === REQUEST_SUCCESS) {\n this.setState((state) => {\n return {\n currentStep: STEPS.COMPLETE,\n email: response.payload?.email || '',\n };\n });\n }\n };\n\n _renderLogin() {\n const { requests } = this.props;\n\n return (\n \n Verify Email Update - Log In\n \n Please log in with your current primary email to confirm your email update.\n \n \n \n \n \n );\n }\n\n _renderVerifyToken() {\n const token = getTokenFromProps(this.props);\n\n return (\n \n Verify Email Update\n \n {token && (\n { this._submitToken(token); }}\n >\n Verify Email Address\n \n )}\n {!token && (\n \n \n The link used to come to this page is invalid.\n \n \n )}\n \n \n );\n }\n\n _renderComplete() {\n return (\n \n \n \n \n Success!\n \n You have successfully updated your email address.\n \n \n Continue\n \n \n \n \n );\n }\n\n render() {\n const { currentStep } = this.state;\n\n switch (currentStep) {\n case STEPS.VERIFY_TOKEN:\n return this._renderVerifyToken();\n case STEPS.LOGIN:\n return this._renderLogin();\n case STEPS.COMPLETE:\n return this._renderComplete();\n default:\n throw new Error(`Unknown step: ${currentStep}`);\n }\n }\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n isLoggedIn: selectIsLoggedIn(state.session),\n requests: {\n login: selectSessionRequest(state.session, 'login'),\n verifyEmailChange: selectSessionRequest(state.session, 'verifyEmailChange'),\n },\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n actions: bindActionCreators({\n login: login,\n verifyEmailChange: verifyEmailChange,\n }, dispatch),\n };\n};\n\n// connect the component to Redux\nconst VerifyEmailChangePage = withRouter(connect(\n mapStateToProps,\n mapDispatchToProps\n)(VerifyEmailChangePagePresentation));\n\nexport default VerifyEmailChangePage;\n","// import { combineReducers } from 'redux';\nimport {\n resourceCollectionReducer,\n resourceReducer,\n} from 'Common/util/ResourceCollection';\nimport {\n selectResources,\n} from 'Common/util/ResourceCollection/resourceCollectionReducer';\n\nexport default resourceCollectionReducer('supportUsers', {\n getResourceId: (resource) => resource.id,\n requests: [ 'getSupportUsers', 'deleteSupportUser', 'patchSupportUser' ],\n resourceReducer: resourceReducer({\n requests: [ 'getSupportUsers', 'deleteSupportUser', 'patchSupportUser' ],\n }),\n sort: (userA, userB) => {\n return userA.email_address.email.localeCompare(userB.email_address.email);\n },\n additionalReducers: (state, action) => {\n const {\n type,\n payload,\n } = action;\n switch (type) {\n case 'sort-support-table': {\n const newOrder = state.list.sort((left, right) => {\n const lUser = payload.accessor(state.resources[left]);\n const rUser = payload.accessor(state.resources[right]);\n\n if (lUser.localeCompare) {\n return lUser.localeCompare(rUser) * payload.direction;\n }\n return (lUser - rUser) * payload.direction;\n });\n\n return {\n ...state,\n list: newOrder,\n };\n }\n default: {\n return state;\n }\n }\n },\n});\n\nexport function getSupportUsersList(state) {\n return selectResources(state);\n}\n","\nimport React, {\n useEffect,\n useMemo,\n useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\n\nimport { connect } from 'react-redux';\nimport {\n getSupportUsers,\n getSupportUsersReset,\n deleteSupportUser,\n patchSupportUser,\n sortSupportUsers,\n} from 'Redux/actions';\nimport Table from 'Common/components/Table/WidthAdjustableTable';\n\nimport Page from 'Components/page/Page';\nimport styled from 'styled-components';\nimport ConfigPageTitle from 'Components/page/ConfigPageTitle';\nimport PageContent from 'Components/page/PageContentFull';\nimport { getSupportUsersList, } from 'Redux/reducers/supportUsers';\nimport { bindActionCreators } from 'redux';\nimport { Roles } from 'Components/app/roles';\nimport useSearchBox, { doesValueMatchSearch } from 'Common/hooks/useSearchBox';\n\nconst TableContainer = styled.div`\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: 10px;\n`;\n\nfunction SupportUserPage({\n actions,\n sessionData,\n users,\n}) {\n\n const [deleteConfirm, setDeleteConfirm] = useState(0);\n\n const [sortColumn, setSortColumn] = useState(2);\n const [sortDirection, setSortDirection] = useState(1);\n\n const {\n searchValue,\n renderSearchBox,\n } = useSearchBox({\n placeholder: 'Search organization name, user name, email, or pending email',\n });\n\n useEffect(() => {\n actions.getSupportUsers();\n return actions.getSupportUsersReset();\n }, [actions]);\n\n const columns = useMemo(() => {\n const renderRole = (user) => {\n const changeRole = (evt) => {\n const newRole = evt.target.value;\n actions.patchSupportUser(user.data.id, {\n role: newRole\n });\n };\n\n const renderOptions = () => {\n return Object.keys(Roles).map((kk) => {\n return (\n \n );\n });\n };\n\n return (\n \n );\n };\n\n const renderDelete = (user) => {\n\n const deleteStepOne = () => {\n setDeleteConfirm(user.data.id);\n };\n\n const deleteStepTwo = () => {\n actions.deleteSupportUser(user.data.id);\n setDeleteConfirm(0);\n };\n\n if (user.data.id === deleteConfirm) {\n return (\n \n );\n }\n\n if (user.data.id !== sessionData.id) {\n return (\n \n );\n }\n\n return (\n
    Can't Delete
    \n );\n };\n\n return [{\n Header: 'Name',\n accessor: (user) => {\n return user.data.name;\n },\n sortable: true,\n width: 204,\n }, {\n Header: 'Organization',\n sortable: true,\n accessor: (user) => {\n return user.data.organization.name;\n },\n width: 204,\n }, {\n Header: 'Org. Id',\n sortable: true,\n accessor: (user) => {\n return user.data.organization_id;\n },\n width: 71,\n }, {\n Header: 'Email',\n sortable: true,\n accessor: (user) => {\n return user.data.email_address.email;\n },\n width: 204,\n }, {\n Header: 'Email Verified',\n accessor: (user) => {\n return user.data.email_address.verified ? 'true' : 'false';\n },\n width: 102,\n }, {\n Header: 'Pending Email',\n accessor: (user) => {\n return user.data.pending_email_address?.email || 'No Pending';\n },\n width: 204,\n }, {\n Header: 'Acct. Created',\n accessor: (user) => {\n return (new Date(user.data.created)).toLocaleString();\n },\n sortAccessor: (user) => {\n return new Date(user.data.created);\n },\n width: 150,\n sortable: true,\n }, {\n Header: 'Role',\n accessor: (user) => {\n return renderRole(user);\n },\n sortAccessor: (user) => {\n return user.data.role;\n },\n width: 96,\n sortable: true,\n }, {\n Header: 'Delete',\n accessor: (user) => {\n return renderDelete(user);\n },\n width: 84,\n }];\n }, [deleteConfirm, actions, sessionData]);\n\n const onSortByColumnChange = (headerColumnIndex, unsetOtherColumns) => {\n if (headerColumnIndex === sortColumn) {\n setSortDirection(sortDirection * -1);\n }\n else {\n setSortColumn(headerColumnIndex);\n }\n };\n\n useEffect(() => {\n const column = columns[sortColumn];\n let accessor = column.accessor;\n if (column.sortAccessor) {\n accessor = column.sortAccessor;\n }\n actions.sortSupportUsers(accessor, sortDirection);\n }, [actions, columns, sortColumn, sortDirection]);\n\n const data = useMemo(() => {\n return users.filter((dd) => {\n dd = dd.data;\n if (\n doesValueMatchSearch(dd?.organization?.name, searchValue) ||\n doesValueMatchSearch(dd?.name, searchValue) ||\n doesValueMatchSearch(dd?.email_address?.email, searchValue) ||\n doesValueMatchSearch(dd?.pending_email_address?.email, searchValue)\n ) {\n return true;\n }\n return false;\n });\n }, [searchValue, users]);\n\n return (\n \n All Enterprise Users\n \n \n {renderSearchBox()}\n \n \n \n \n );\n}\n\nSupportUserPage.propTypes = {\n actions: PropTypes.shape({\n getSupportUsers: PropTypes.func.isRequired,\n getSupportUsersReset: PropTypes.func.isRequired,\n deleteSupportUser: PropTypes.func.isRequired,\n patchSupportUser: PropTypes.func.isRequired,\n sortSupportUsers: PropTypes.func.isRequired,\n }).isRequired,\n sessionData: PropTypes.shape({\n id: PropTypes.number.isRequired,\n }).isRequired,\n users: PropTypes.arrayOf(\n PropTypes.shape({\n data: PropTypes.shape({\n id: PropTypes.number.isRequired,\n name: PropTypes.string,\n email_address: PropTypes.object.isRequired,\n role: PropTypes.string.isRequired,\n active: PropTypes.bool.isRequired,\n }),\n })\n ).isRequired,\n};\n\nconst mapStateToProps = state => {\n const {\n session,\n supportUsers,\n } = state;\n\n return {\n users: getSupportUsersList(supportUsers),\n sessionData: session.sessionData,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n actions: bindActionCreators({\n getSupportUsers: getSupportUsers,\n getSupportUsersReset: getSupportUsersReset,\n deleteSupportUser: deleteSupportUser,\n patchSupportUser: patchSupportUser,\n sortSupportUsers: sortSupportUsers,\n }, dispatch)\n };\n};\n\n// connect the component to Redux\nexport default withRouter(connect(\n mapStateToProps,\n mapDispatchToProps\n)(SupportUserPage));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Switch, Route, Redirect, withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport PrivateRoute from './PrivateRoute';\nimport SupportRoute from './SupportRoute';\nimport StrictlyPublicRoute from './StrictlyPublicRoute';\nimport { Roles } from './roles';\nimport HomePage from 'Components/pages/home/HomePage';\nimport InvalidUrlPage from 'Components/pages/invalid-url/InvalidUrlPage';\nimport CreateAccountPage from 'Components/pages/create-account/CreateAccountPage';\nimport DevicesPage from 'Components/pages/devices/DevicesPage';\n//import SoftwareUpdatesPage from 'Components/pages/software-updates/SoftwareUpdatePage';\nimport XLConnectPage from 'Components/pages/xlconnect/XLConnectPage';\nimport AddUserPage from 'Components/pages/add-user/AddUserPage';\nimport SetupNewUserPage from 'Components/pages/setup-new-user/SetupNewUserPage';\nimport ResetPasswordPage from 'Components/pages/reset-password/ResetPasswordPage';\nimport ForgotPasswordPage from 'Components/pages/forgot-password/ForgotPasswordPage';\nimport EditUserPage from 'Components/pages/edit-user/EditUserPage';\nimport EditSessionUserPage from 'Components/pages/edit-user/EditSessionUserPage';\nimport UsersPage from 'Components/pages/users/UsersPage';\nimport OrganizationPage from 'Components/pages/organization/OrganizationPage';\nimport EditAlertsPage from 'Components/pages/alerts-edit/EditAlertsPage';\nimport EmailTemplatesPage from 'Components/pages/email-templates/EmailTemplatesPage';\nimport MetricThresholdsPage from 'Components/pages/metric-thresholds/MetricThresholdsPage';\nimport AlertsSubscribePage from 'Components/pages/alerts-subscribe/AlertsSubscribePage';\nimport VersionPage from 'Components/pages/version/VersionPage';\nimport PrivacyPage from 'Components/pages/privacy/PrivacyPage';\nimport CookiePolicyPage from 'Components/pages/cookie-policy/CookiePolicyPage';\nimport LicensesPage from 'Components/pages/licenses/LicensesPage';\nimport TermsOfUsePage from 'Components/pages/terms-of-use/TermsOfUsePage';\nimport { loginReset } from 'Redux/actions';\nimport EmailsSubscribePage from 'Components/pages/email-subscribe/EmailsSubscribePage';\nimport MobileGatewaysHelpPage from 'Components/pages/help/MobileGatewaysHelpPage';\nimport VerifyAccountPage from 'Components/pages/verify/VerifyAccountPage';\nimport InitializationRequiredRoute from './InitializationRequiredRoute';\nimport VerifyEmailChangePage from 'Components/pages/verify/VerifyEmailChangePage';\nimport SupportUsersPage from 'Components/pages/support-users/SupportUsersPage';\n\nclass Main extends React.Component {\n static propTypes = {\n className: PropTypes.string,\n loginReset: PropTypes.func.isRequired,\n // Provided by `withRouter`\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired,\n }).isRequired,\n };\n\n constructor(props) {\n super(props);\n }\n\n componentDidUpdate(prevProps) {\n // Detect navigation change\n if (prevProps.location.pathname !== this.props.location.pathname) {\n this.props.loginReset();\n }\n }\n\n render() {\n const { className } = this.props;\n\n return (\n
    \n \n {/* Non-logged-in user only pages */}\n \n \n \n\n {/* Always available public pages */}\n \n \n \n \n \n\n {/* Email link only public pages. THESE SHOULD NOT CHANGE, if they do\n you MUST include a redirect for the original link! */}\n \n \n \n \n\n {/* XL Linking pages. THESE SHOULD NOT CHANGE, if they do\n you MUST include a redirect for the original link! */}\n \n\n {/* Subscription pages */}\n \n \n \n {/* New email reports have their own mechanism for choosing assets,\n so asset subs have been combined with alerts */}\n \n \n\n {/* General user config pages */}\n \n {/* 2.10 XL devices link to /devices, make sure that URL continues to work */}\n \n \n \n\n {/* Admin config pages */}\n \n \n \n \n \n \n \n \n {/**/}\n\n {/* Private help pages */}\n \n\n \n\n {/* 404 */}\n \n \n
    \n );\n }\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {};\n};\n\nconst mapDispatchToProps = {\n loginReset: loginReset,\n};\n\n// connect the component to Redux\nexport default withRouter(connect(\n mapStateToProps,\n mapDispatchToProps\n)(Main));\n","import { exformat } from 'Common/util/language/string';\nimport EnterpriseTranslationTable from './EnterpriseTranslationTable.json';\n\nfunction flattenTable(nestedTable) {\n const flattenedTable = {};\n\n Object.entries(nestedTable).forEach(([ key, value ]) => {\n if (typeof value === 'object') {\n Object.entries(flattenTable(value)).forEach(([ subKey, subValue ]) => {\n flattenedTable[`${key}.${subKey}`] = subValue;\n });\n }\n else {\n flattenedTable[key] = value;\n }\n });\n\n return flattenedTable;\n}\n\nfunction createTranslationTable() {\n const flatTable = flattenTable(EnterpriseTranslationTable);\n const substitutionOverrides = {};\n\n function get(key) {\n if (typeof substitutionOverrides[key] !== 'undefined') {\n return substitutionOverrides[key];\n }\n else if (typeof flatTable[key] !== 'undefined') {\n return flatTable[key];\n }\n else {\n console.error(`Missing translation for ${key}`);\n return '[ ' + key + ' ]';\n }\n }\n\n // Go through the flat table and find any strings with substitutions\n // (e.g., \"Example {{subtitute.key.name}} here\") and put them into a map\n // with the keys properly substitued. This makes it so we don't need to do\n // this matching every time we want to get a translation value.\n Object.entries(flatTable)\n .filter(([ key, value ]) => {\n return value && value.indexOf('{{') !== -1;\n })\n .forEach(([ key, value ]) => {\n try {\n const replaceSubstitutionKey = (match, lookupKey) => {\n const substituteValue = flatTable[lookupKey];\n\n if (substituteValue) {\n return substituteValue;\n }\n else {\n throw new Error('Substitution key ' + lookupKey\n + ' (within key ' + key + ') was not found.');\n }\n };\n\n while (value.match(/{{([\\s\\S]+?)}}/)) {\n value = value.replace(/{{([\\s\\S]+?)}}/, replaceSubstitutionKey);\n }\n }\n catch (e) {\n console.error(e);\n }\n\n substitutionOverrides[key] = value;\n });\n\n return {\n get,\n };\n}\n\nconst translationTable = createTranslationTable();\n\nexport default function entTranslator(key, templateParams = null) {\n if (typeof key === 'object') {\n key = key.key;\n }\n\n let value = translationTable.get(key);\n\n if (typeof value === 'object') {\n value = value.value;\n }\n\n if (templateParams !== null) {\n if (typeof templateParams !== 'object') {\n console.warn(\n `Tranlation template params must be an object. Got a ${typeof templateParams} instead.\\n` +\n `Key: ${key}\\n`\n );\n }\n\n return exformat(value, templateParams);\n }\n else {\n return value;\n }\n}\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./light.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./light.scss\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./regular.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./regular.scss\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./bold.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./bold.scss\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./medium.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./medium.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { initApp } from 'Redux/actions';\nimport * as RequestStatus from 'Common/data/RequestStatus';\nimport LocaleProvider from 'Common/providers/LocaleProvider';\nimport styled, { ThemeProvider, createGlobalStyle, css } from 'styled-components';\nimport Header from 'Components/header/Header';\nimport Footer from 'Components/footer/Footer';\nimport theme from 'Common/theme/default';\nimport { withRouter } from 'react-router-dom';\nimport Main from './Main.js';\nimport { DisplayMode, DisplayModeConsumer, DisplayModeProvider } from 'Common/util/DisplayMode.js';\nimport entTranslator from 'Translation/entTranslator';\nimport TranslationProvider from 'Common/providers/TranslationProvider';\nimport { FontFamily } from 'Common/components/typography';\nimport 'Common/font/roboto';\n\n// this is a helper component to apply styles globally based on the theme\nconst GlobalStyle = createGlobalStyle`\n body {\n margin: 0;\n font-family: ${FontFamily.primary};\n }\n`;\n\n// AppContent is the root of all the content in the app. It should take up the\n// entire screen and handle all top-level scrolling. This allows us to portal\n// popups outside this box (see index.html for #popup-root), which means we can\n// successfully mask clicks and scrolling on the content below the mask.\nconst AppContent = styled.div`\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n overflow: auto;\n background-color: ${props => props.theme.colors.palette.white};\n\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n\n ${({ $noScroll }) => $noScroll && css`\n overflow: hidden;\n `}\n`;\n\nconst StyledMain = styled(Main)`\n flex: 1 0 auto;\n`;\n\nconst StyledFooter = styled(Footer)`\n flex: 0 0 auto;\n`;\n\nfunction isLoading(requests) {\n return requests.getEnvironment.status === RequestStatus.PENDING\n || requests.getEnvironment.status === RequestStatus.IDLE;\n}\n\nclass App extends React.Component {\n constructor(props) {\n super(props);\n\n props.initApp();\n\n this.state = {\n openMenu: null,\n };\n\n this._rootRef = React.createRef();\n }\n\n _handleHeaderOpenMenuChange = (menuName) => {\n if (this._rootRef.current) {\n this._rootRef.current.scrollTop = 0;\n }\n\n this.setState({ openMenu: menuName });\n };\n\n render() {\n const getLocale = () => {\n return 'en-US';\n };\n const { openMenu } = this.state;\n const { environment } = this.props;\n\n const environmentLoading = isLoading(environment.requests);\n\n if (environmentLoading) {\n return null;\n }\n else {\n if (environment.isInitialized) {\n return (\n \n \n \n \n \n {(displayMode) => (\n \n \n \n
    \n \n \n \n \n )}\n \n \n \n \n \n );\n }\n else {\n throw new Error('environment failed to initialize properly!');\n }\n }\n }\n}\n\nApp.propTypes = {\n initApp: PropTypes.func.isRequired,\n environment: PropTypes.shape({\n isInitialized: PropTypes.bool.isRequired,\n\n requests: PropTypes.shape({\n getEnvironment: PropTypes.shape({\n status: PropTypes.string.isRequired,\n }).isRequired,\n }).isRequired,\n }).isRequired,\n};\n\nconst mapStateToProps = state => {\n const { environment } = state;\n return { environment };\n};\n\nexport default withRouter(connect(mapStateToProps, { initApp })(App));\n","import {\n GET_ENVIRONMENT_REQUEST,\n GET_ENVIRONMENT_SUCCESS,\n GET_ENVIRONMENT_FAILURE,\n} from 'Redux/actions';\nimport { requestReducer } from 'Common/util/ResourceCollection';\nimport { REQUEST_PENDING, REQUEST_SUCCESS, REQUEST_FAILURE } from 'Common/util/ResourceCollection/actions';\n\nconst initialState = {\n isInitialized: false,\n environmentData: null,\n requests: {\n getEnvironment: requestReducer(undefined, {}),\n },\n};\n\nexport default function(state = initialState, action) {\n\n const { type, payload } = action;\n\n switch (type) {\n case GET_ENVIRONMENT_REQUEST:\n return {\n ...state,\n requests: {\n ...state.requests,\n getEnvironment: requestReducer(state.requests.getEnvironment, {\n ...action,\n type: REQUEST_PENDING,\n }),\n },\n };\n case GET_ENVIRONMENT_SUCCESS:\n return {\n ...state,\n isInitialized: true,\n environmentData: {\n ...payload,\n },\n requests: {\n ...state.requests,\n getEnvironment: requestReducer(state.requests.getEnvironment, {\n ...action,\n type: REQUEST_SUCCESS,\n }),\n },\n };\n case GET_ENVIRONMENT_FAILURE:\n return {\n ...state,\n isInitialized: true,\n environmentData: null,\n requests: {\n ...state.requests,\n getEnvironment: requestReducer(state.requests.getEnvironment, {\n ...action,\n type: REQUEST_FAILURE,\n }),\n },\n };\n default:\n return state;\n }\n}\n","import {\n GET_ORGANIZATION_REQUEST,\n GET_ORGANIZATION_SUCCESS,\n GET_ORGANIZATION_FAILURE,\n PATCH_ORGANIZATION_REQUEST,\n PATCH_ORGANIZATION_SUCCESS,\n PATCH_ORGANIZATION_FAILURE,\n PATCH_ORGANIZATION_RESET,\n} from 'Redux/actions';\nimport {\n REQUEST_RESET,\n REQUEST_PENDING,\n REQUEST_SUCCESS,\n REQUEST_FAILURE,\n} from 'Common/util/ResourceCollection/actions';\n\nimport { requestReducer } from 'Common/util/ResourceCollection/requestReducer';\n\nconst initialState = {\n data: null,\n requests: {\n getOrganization: requestReducer(undefined, {}),\n patchOrganization: requestReducer(undefined, {}),\n },\n};\n\nexport default function(state = initialState, action) {\n\n const { type, payload } = action;\n\n switch (type) {\n case GET_ORGANIZATION_REQUEST:\n return {\n ...state,\n requests: {\n ...state.requests,\n getOrganization: requestReducer(state.requests.getOrganization, {\n ...action,\n type: REQUEST_PENDING,\n }),\n },\n };\n case GET_ORGANIZATION_SUCCESS:\n return {\n ...state,\n data: {\n id: payload.id,\n created: payload.created,\n name: payload.name,\n },\n requests: {\n ...state.requests,\n getOrganization: requestReducer(state.requests.getOrganization, {\n ...action,\n type: REQUEST_SUCCESS,\n }),\n },\n };\n case GET_ORGANIZATION_FAILURE:\n return {\n ...state,\n data: null,\n requests: {\n ...state.requests,\n getOrganization: requestReducer(state.requests.getOrganization, {\n ...action,\n type: REQUEST_FAILURE,\n }),\n },\n };\n case PATCH_ORGANIZATION_RESET:\n return {\n ...state,\n requests: {\n ...state.requests,\n patchOrganization: requestReducer(state.requests.patchOrganization, {\n ...action,\n type: REQUEST_RESET,\n }),\n },\n };\n case PATCH_ORGANIZATION_REQUEST:\n return {\n ...state,\n requests: {\n ...state.requests,\n patchOrganization: requestReducer(state.requests.patchOrganization, {\n ...action,\n type: REQUEST_PENDING,\n }),\n },\n };\n case PATCH_ORGANIZATION_SUCCESS:\n return {\n ...state,\n data: {\n id: payload.id,\n created: payload.created,\n name: payload.name,\n },\n requests: {\n ...state.requests,\n patchOrganization: requestReducer(state.requests.patchOrganization, {\n ...action,\n type: REQUEST_SUCCESS,\n }),\n },\n };\n case PATCH_ORGANIZATION_FAILURE:\n return {\n ...state,\n requests: {\n ...state.requests,\n patchOrganization: requestReducer(state.requests.patchOrganization, {\n ...action,\n type: REQUEST_FAILURE,\n }),\n },\n };\n default:\n return state;\n }\n}\n","import {\n GET_VERSION_REQUEST,\n GET_VERSION_SUCCESS,\n GET_VERSION_FAILURE,\n} from 'Redux/actions';\nimport { requestReducer } from 'Common/util/ResourceCollection';\nimport { REQUEST_PENDING, REQUEST_SUCCESS, REQUEST_FAILURE } from 'Common/util/ResourceCollection/actions';\n\nconst initialState = {\n versionData: null,\n requests: {\n getVersion: requestReducer(undefined, {}),\n },\n};\n\nexport default function(state = initialState, action) {\n\n const { type, payload } = action;\n\n switch (type) {\n case GET_VERSION_REQUEST:\n return {\n ...state,\n requests: {\n ...state.requests,\n getVersion: requestReducer(state.requests.getVersion, {\n ...action,\n type: REQUEST_PENDING,\n }),\n },\n };\n case GET_VERSION_SUCCESS:\n return {\n ...state,\n versionData: {\n ...payload,\n },\n requests: {\n ...state.requests,\n getVersion: requestReducer(state.requests.getVersion, {\n ...action,\n type: REQUEST_SUCCESS,\n }),\n },\n };\n case GET_VERSION_FAILURE:\n return {\n ...state,\n versionData: null,\n requests: {\n ...state.requests,\n getVersion: requestReducer(state.requests.getVersion, {\n ...action,\n type: REQUEST_FAILURE,\n }),\n },\n };\n default:\n return state;\n }\n}\n","\nimport { resourceCollectionReducer, resourceReducer } from 'Common/util/ResourceCollection';\nimport { selectResources, } from 'Common/util/ResourceCollection/resourceCollectionReducer';\n\nexport default resourceCollectionReducer('activeSoftwareUpdates', {\n getResourceId: (resource) => resource.id,\n requests: [\n 'getActiveSoftwareUpdates',\n 'patchActiveSoftwareUpdates',\n ],\n resourceReducer: resourceReducer({\n requests: [\n 'getActiveSoftwareUpdates',\n 'patchActiveSoftwareUpdates'\n ],\n }),\n});\n\nexport function getActiveSoftwareUpdatesData(state) {\n return selectResources(state);\n}\n","\nimport { resourceCollectionReducer, resourceReducer } from 'Common/util/ResourceCollection';\nimport { selectResources, } from 'Common/util/ResourceCollection/resourceCollectionReducer';\n\nexport default resourceCollectionReducer('completedSoftwareUpdates', {\n getResourceId: (resource) => resource.id,\n requests: [\n 'getCompletedSoftwareUpdates',\n ],\n resourceReducer: resourceReducer({\n requests: [\n 'getCompletedSoftwareUpdates',\n ],\n }),\n});\n\nexport function getCompletedSoftwareUpdatesData(state) {\n return selectResources(state);\n}\n","import { resourceReducer } from 'Common/util/ResourceCollection';\nimport { selectResourceData } from 'Common/util/ResourceCollection/resourceReducer';\n\nexport default resourceReducer({\n requests: [\n 'getAvailableSoftwareUpdates',\n ],\n});\n\nexport function getAvailableSoftwareUpdatesData(state) {\n return selectResourceData(state) ?? [];\n}\n","import { combineReducers } from 'redux';\nimport session from './session';\nimport environment from './environment';\nimport hierarchy from './hierarchy';\nimport deviceSubscriptions from './deviceSubscriptions';\nimport users from './users';\nimport supportUsers from './supportUsers';\nimport organization from './organization';\nimport alerts from './alerts';\nimport alertSubscriptions from './alertSubscriptions';\nimport alertWindow from './alertWindow';\nimport version from './version';\nimport emailTemplates from './emailTemplates';\nimport emailSubscriptions from './emailSubscriptions';\nimport metricThresholds from './metricThresholds';\nimport activeSoftwareUpdates from './activeSoftwareUpdates';\nimport completedSoftwareUpdates from './completedSoftwareUpdates';\nimport availableSoftwareUpdates from './availableSoftwareUpdates';\n\nexport default combineReducers({\n session,\n environment,\n deviceSubscriptions,\n hierarchy,\n users,\n supportUsers,\n organization,\n alerts,\n alertSubscriptions,\n alertWindow,\n version,\n emailTemplates,\n emailSubscriptions,\n metricThresholds,\n activeSoftwareUpdates,\n completedSoftwareUpdates,\n availableSoftwareUpdates\n});\n","import { createStore, applyMiddleware } from 'redux';\nimport thunk from 'redux-thunk';\nimport rootReducer from './reducers';\n\nconst store = createStore(\n rootReducer,\n // initial store state\n {},\n applyMiddleware(\n thunk\n )\n);\n\nexport default store;\n","import 'whatwg-fetch'; // polyfill for the `fetch()` API\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Provider } from 'react-redux';\nimport { Helmet, HelmetProvider } from 'react-helmet-async';\nimport { BrowserRouter } from 'react-router-dom';\n\nimport App from './components/app/App';\nimport store from './redux/store';\n\nconst rootElement = document.getElementById('root');\n\n// Render the UI\nReactDOM.render(\n \n \n \n \n \n \n \n ,\n rootElement\n);\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"../fonts/fontawesome-webfont.eot?v=4.4.0\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"../fonts/fontawesome-webfont.eot\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_2___ = new URL(\"../fonts/fontawesome-webfont.woff2?v=4.4.0\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_3___ = new URL(\"../fonts/fontawesome-webfont.woff?v=4.4.0\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_4___ = new URL(\"../fonts/fontawesome-webfont.ttf?v=4.4.0\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_5___ = new URL(\"../fonts/fontawesome-webfont.svg?v=4.4.0\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___, { hash: \"?#iefix&v=4.4.0\" });\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\nvar ___CSS_LOADER_URL_REPLACEMENT_3___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___);\nvar ___CSS_LOADER_URL_REPLACEMENT_4___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_4___);\nvar ___CSS_LOADER_URL_REPLACEMENT_5___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_5___, { hash: \"#fontawesomeregular\" });\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*! @license\n * Font Awesome 4.4.0 by @davegandy - http://fontawesome.io - @fontawesome\n * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */\n/* FONT PATH\n * -------------------------- */\n@font-face {\n font-family: 'FontAwesome';\n src: url(${___CSS_LOADER_URL_REPLACEMENT_0___});\n src: url(${___CSS_LOADER_URL_REPLACEMENT_1___}) format(\"embedded-opentype\"), url(${___CSS_LOADER_URL_REPLACEMENT_2___}) format(\"woff2\"), url(${___CSS_LOADER_URL_REPLACEMENT_3___}) format(\"woff\"), url(${___CSS_LOADER_URL_REPLACEMENT_4___}) format(\"truetype\"), url(${___CSS_LOADER_URL_REPLACEMENT_5___}) format(\"svg\");\n font-weight: normal;\n font-style: normal; }\n\n.fa {\n display: inline-block;\n font: normal normal normal 14px/1 FontAwesome;\n font-size: inherit;\n text-rendering: auto;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale; }\n\n/* makes the font 33% larger relative to the icon container */\n.fa-lg {\n font-size: 1.33333333em;\n line-height: 0.75em;\n vertical-align: -15%; }\n\n.fa-2x {\n font-size: 2em; }\n\n.fa-3x {\n font-size: 3em; }\n\n.fa-4x {\n font-size: 4em; }\n\n.fa-5x {\n font-size: 5em; }\n\n.fa-fw {\n width: 1.28571429em;\n text-align: center; }\n\n.fa-ul {\n padding-left: 0;\n margin-left: 2.14285714em;\n list-style-type: none; }\n\n.fa-ul > li {\n position: relative; }\n\n.fa-li {\n position: absolute;\n left: -2.14285714em;\n width: 2.14285714em;\n top: 0.14285714em;\n text-align: center; }\n\n.fa-li.fa-lg {\n left: -1.85714286em; }\n\n.fa-border {\n padding: 0.2em 0.25em 0.15em;\n border: solid 0.08em #eeeeee;\n border-radius: .1em; }\n\n.fa-pull-left {\n float: left; }\n\n.fa-pull-right {\n float: right; }\n\n.fa.fa-pull-left {\n margin-right: .3em; }\n\n.fa.fa-pull-right {\n margin-left: .3em; }\n\n/* Deprecated as of 4.4.0 */\n.pull-right {\n float: right; }\n\n.pull-left {\n float: left; }\n\n.fa.pull-left {\n margin-right: .3em; }\n\n.fa.pull-right {\n margin-left: .3em; }\n\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear; }\n\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8); }\n\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg); } }\n\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg); } }\n\n.fa-rotate-90 {\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);\n -webkit-transform: rotate(90deg);\n -ms-transform: rotate(90deg);\n transform: rotate(90deg); }\n\n.fa-rotate-180 {\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);\n -webkit-transform: rotate(180deg);\n -ms-transform: rotate(180deg);\n transform: rotate(180deg); }\n\n.fa-rotate-270 {\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);\n -webkit-transform: rotate(270deg);\n -ms-transform: rotate(270deg);\n transform: rotate(270deg); }\n\n.fa-flip-horizontal {\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);\n -webkit-transform: scale(-1, 1);\n -ms-transform: scale(-1, 1);\n transform: scale(-1, 1); }\n\n.fa-flip-vertical {\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);\n -webkit-transform: scale(1, -1);\n -ms-transform: scale(1, -1);\n transform: scale(1, -1); }\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical {\n filter: none; }\n\n.fa-stack {\n position: relative;\n display: inline-block;\n width: 2em;\n height: 2em;\n line-height: 2em;\n vertical-align: middle; }\n\n.fa-stack-1x,\n.fa-stack-2x {\n position: absolute;\n left: 0;\n width: 100%;\n text-align: center; }\n\n.fa-stack-1x {\n line-height: inherit; }\n\n.fa-stack-2x {\n font-size: 2em; }\n\n.fa-inverse {\n color: #ffffff; }\n\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n readers do not read off random characters that represent icons */\n.fa-glass:before {\n content: \"\\\\f000\"; }\n\n.fa-music:before {\n content: \"\\\\f001\"; }\n\n.fa-search:before {\n content: \"\\\\f002\"; }\n\n.fa-envelope-o:before {\n content: \"\\\\f003\"; }\n\n.fa-heart:before {\n content: \"\\\\f004\"; }\n\n.fa-star:before {\n content: \"\\\\f005\"; }\n\n.fa-star-o:before {\n content: \"\\\\f006\"; }\n\n.fa-user:before {\n content: \"\\\\f007\"; }\n\n.fa-film:before {\n content: \"\\\\f008\"; }\n\n.fa-th-large:before {\n content: \"\\\\f009\"; }\n\n.fa-th:before {\n content: \"\\\\f00a\"; }\n\n.fa-th-list:before {\n content: \"\\\\f00b\"; }\n\n.fa-check:before {\n content: \"\\\\f00c\"; }\n\n.fa-remove:before,\n.fa-close:before,\n.fa-times:before {\n content: \"\\\\f00d\"; }\n\n.fa-search-plus:before {\n content: \"\\\\f00e\"; }\n\n.fa-search-minus:before {\n content: \"\\\\f010\"; }\n\n.fa-power-off:before {\n content: \"\\\\f011\"; }\n\n.fa-signal:before {\n content: \"\\\\f012\"; }\n\n.fa-gear:before,\n.fa-cog:before {\n content: \"\\\\f013\"; }\n\n.fa-trash-o:before {\n content: \"\\\\f014\"; }\n\n.fa-home:before {\n content: \"\\\\f015\"; }\n\n.fa-file-o:before {\n content: \"\\\\f016\"; }\n\n.fa-clock-o:before {\n content: \"\\\\f017\"; }\n\n.fa-road:before {\n content: \"\\\\f018\"; }\n\n.fa-download:before {\n content: \"\\\\f019\"; }\n\n.fa-arrow-circle-o-down:before {\n content: \"\\\\f01a\"; }\n\n.fa-arrow-circle-o-up:before {\n content: \"\\\\f01b\"; }\n\n.fa-inbox:before {\n content: \"\\\\f01c\"; }\n\n.fa-play-circle-o:before {\n content: \"\\\\f01d\"; }\n\n.fa-rotate-right:before,\n.fa-repeat:before {\n content: \"\\\\f01e\"; }\n\n.fa-refresh:before {\n content: \"\\\\f021\"; }\n\n.fa-list-alt:before {\n content: \"\\\\f022\"; }\n\n.fa-lock:before {\n content: \"\\\\f023\"; }\n\n.fa-flag:before {\n content: \"\\\\f024\"; }\n\n.fa-headphones:before {\n content: \"\\\\f025\"; }\n\n.fa-volume-off:before {\n content: \"\\\\f026\"; }\n\n.fa-volume-down:before {\n content: \"\\\\f027\"; }\n\n.fa-volume-up:before {\n content: \"\\\\f028\"; }\n\n.fa-qrcode:before {\n content: \"\\\\f029\"; }\n\n.fa-barcode:before {\n content: \"\\\\f02a\"; }\n\n.fa-tag:before {\n content: \"\\\\f02b\"; }\n\n.fa-tags:before {\n content: \"\\\\f02c\"; }\n\n.fa-book:before {\n content: \"\\\\f02d\"; }\n\n.fa-bookmark:before {\n content: \"\\\\f02e\"; }\n\n.fa-print:before {\n content: \"\\\\f02f\"; }\n\n.fa-camera:before {\n content: \"\\\\f030\"; }\n\n.fa-font:before {\n content: \"\\\\f031\"; }\n\n.fa-bold:before {\n content: \"\\\\f032\"; }\n\n.fa-italic:before {\n content: \"\\\\f033\"; }\n\n.fa-text-height:before {\n content: \"\\\\f034\"; }\n\n.fa-text-width:before {\n content: \"\\\\f035\"; }\n\n.fa-align-left:before {\n content: \"\\\\f036\"; }\n\n.fa-align-center:before {\n content: \"\\\\f037\"; }\n\n.fa-align-right:before {\n content: \"\\\\f038\"; }\n\n.fa-align-justify:before {\n content: \"\\\\f039\"; }\n\n.fa-list:before {\n content: \"\\\\f03a\"; }\n\n.fa-dedent:before,\n.fa-outdent:before {\n content: \"\\\\f03b\"; }\n\n.fa-indent:before {\n content: \"\\\\f03c\"; }\n\n.fa-video-camera:before {\n content: \"\\\\f03d\"; }\n\n.fa-photo:before,\n.fa-image:before,\n.fa-picture-o:before {\n content: \"\\\\f03e\"; }\n\n.fa-pencil:before {\n content: \"\\\\f040\"; }\n\n.fa-map-marker:before {\n content: \"\\\\f041\"; }\n\n.fa-adjust:before {\n content: \"\\\\f042\"; }\n\n.fa-tint:before {\n content: \"\\\\f043\"; }\n\n.fa-edit:before,\n.fa-pencil-square-o:before {\n content: \"\\\\f044\"; }\n\n.fa-share-square-o:before {\n content: \"\\\\f045\"; }\n\n.fa-check-square-o:before {\n content: \"\\\\f046\"; }\n\n.fa-arrows:before {\n content: \"\\\\f047\"; }\n\n.fa-step-backward:before {\n content: \"\\\\f048\"; }\n\n.fa-fast-backward:before {\n content: \"\\\\f049\"; }\n\n.fa-backward:before {\n content: \"\\\\f04a\"; }\n\n.fa-play:before {\n content: \"\\\\f04b\"; }\n\n.fa-pause:before {\n content: \"\\\\f04c\"; }\n\n.fa-stop:before {\n content: \"\\\\f04d\"; }\n\n.fa-forward:before {\n content: \"\\\\f04e\"; }\n\n.fa-fast-forward:before {\n content: \"\\\\f050\"; }\n\n.fa-step-forward:before {\n content: \"\\\\f051\"; }\n\n.fa-eject:before {\n content: \"\\\\f052\"; }\n\n.fa-chevron-left:before {\n content: \"\\\\f053\"; }\n\n.fa-chevron-right:before {\n content: \"\\\\f054\"; }\n\n.fa-plus-circle:before {\n content: \"\\\\f055\"; }\n\n.fa-minus-circle:before {\n content: \"\\\\f056\"; }\n\n.fa-times-circle:before {\n content: \"\\\\f057\"; }\n\n.fa-check-circle:before {\n content: \"\\\\f058\"; }\n\n.fa-question-circle:before {\n content: \"\\\\f059\"; }\n\n.fa-info-circle:before {\n content: \"\\\\f05a\"; }\n\n.fa-crosshairs:before {\n content: \"\\\\f05b\"; }\n\n.fa-times-circle-o:before {\n content: \"\\\\f05c\"; }\n\n.fa-check-circle-o:before {\n content: \"\\\\f05d\"; }\n\n.fa-ban:before {\n content: \"\\\\f05e\"; }\n\n.fa-arrow-left:before {\n content: \"\\\\f060\"; }\n\n.fa-arrow-right:before {\n content: \"\\\\f061\"; }\n\n.fa-arrow-up:before {\n content: \"\\\\f062\"; }\n\n.fa-arrow-down:before {\n content: \"\\\\f063\"; }\n\n.fa-mail-forward:before,\n.fa-share:before {\n content: \"\\\\f064\"; }\n\n.fa-expand:before {\n content: \"\\\\f065\"; }\n\n.fa-compress:before {\n content: \"\\\\f066\"; }\n\n.fa-plus:before {\n content: \"\\\\f067\"; }\n\n.fa-minus:before {\n content: \"\\\\f068\"; }\n\n.fa-asterisk:before {\n content: \"\\\\f069\"; }\n\n.fa-exclamation-circle:before {\n content: \"\\\\f06a\"; }\n\n.fa-gift:before {\n content: \"\\\\f06b\"; }\n\n.fa-leaf:before {\n content: \"\\\\f06c\"; }\n\n.fa-fire:before {\n content: \"\\\\f06d\"; }\n\n.fa-eye:before {\n content: \"\\\\f06e\"; }\n\n.fa-eye-slash:before {\n content: \"\\\\f070\"; }\n\n.fa-warning:before,\n.fa-exclamation-triangle:before {\n content: \"\\\\f071\"; }\n\n.fa-plane:before {\n content: \"\\\\f072\"; }\n\n.fa-calendar:before {\n content: \"\\\\f073\"; }\n\n.fa-random:before {\n content: \"\\\\f074\"; }\n\n.fa-comment:before {\n content: \"\\\\f075\"; }\n\n.fa-magnet:before {\n content: \"\\\\f076\"; }\n\n.fa-chevron-up:before {\n content: \"\\\\f077\"; }\n\n.fa-chevron-down:before {\n content: \"\\\\f078\"; }\n\n.fa-retweet:before {\n content: \"\\\\f079\"; }\n\n.fa-shopping-cart:before {\n content: \"\\\\f07a\"; }\n\n.fa-folder:before {\n content: \"\\\\f07b\"; }\n\n.fa-folder-open:before {\n content: \"\\\\f07c\"; }\n\n.fa-arrows-v:before {\n content: \"\\\\f07d\"; }\n\n.fa-arrows-h:before {\n content: \"\\\\f07e\"; }\n\n.fa-bar-chart-o:before,\n.fa-bar-chart:before {\n content: \"\\\\f080\"; }\n\n.fa-twitter-square:before {\n content: \"\\\\f081\"; }\n\n.fa-facebook-square:before {\n content: \"\\\\f082\"; }\n\n.fa-camera-retro:before {\n content: \"\\\\f083\"; }\n\n.fa-key:before {\n content: \"\\\\f084\"; }\n\n.fa-gears:before,\n.fa-cogs:before {\n content: \"\\\\f085\"; }\n\n.fa-comments:before {\n content: \"\\\\f086\"; }\n\n.fa-thumbs-o-up:before {\n content: \"\\\\f087\"; }\n\n.fa-thumbs-o-down:before {\n content: \"\\\\f088\"; }\n\n.fa-star-half:before {\n content: \"\\\\f089\"; }\n\n.fa-heart-o:before {\n content: \"\\\\f08a\"; }\n\n.fa-sign-out:before {\n content: \"\\\\f08b\"; }\n\n.fa-linkedin-square:before {\n content: \"\\\\f08c\"; }\n\n.fa-thumb-tack:before {\n content: \"\\\\f08d\"; }\n\n.fa-external-link:before {\n content: \"\\\\f08e\"; }\n\n.fa-sign-in:before {\n content: \"\\\\f090\"; }\n\n.fa-trophy:before {\n content: \"\\\\f091\"; }\n\n.fa-github-square:before {\n content: \"\\\\f092\"; }\n\n.fa-upload:before {\n content: \"\\\\f093\"; }\n\n.fa-lemon-o:before {\n content: \"\\\\f094\"; }\n\n.fa-phone:before {\n content: \"\\\\f095\"; }\n\n.fa-square-o:before {\n content: \"\\\\f096\"; }\n\n.fa-bookmark-o:before {\n content: \"\\\\f097\"; }\n\n.fa-phone-square:before {\n content: \"\\\\f098\"; }\n\n.fa-twitter:before {\n content: \"\\\\f099\"; }\n\n.fa-facebook-f:before,\n.fa-facebook:before {\n content: \"\\\\f09a\"; }\n\n.fa-github:before {\n content: \"\\\\f09b\"; }\n\n.fa-unlock:before {\n content: \"\\\\f09c\"; }\n\n.fa-credit-card:before {\n content: \"\\\\f09d\"; }\n\n.fa-feed:before,\n.fa-rss:before {\n content: \"\\\\f09e\"; }\n\n.fa-hdd-o:before {\n content: \"\\\\f0a0\"; }\n\n.fa-bullhorn:before {\n content: \"\\\\f0a1\"; }\n\n.fa-bell:before {\n content: \"\\\\f0f3\"; }\n\n.fa-certificate:before {\n content: \"\\\\f0a3\"; }\n\n.fa-hand-o-right:before {\n content: \"\\\\f0a4\"; }\n\n.fa-hand-o-left:before {\n content: \"\\\\f0a5\"; }\n\n.fa-hand-o-up:before {\n content: \"\\\\f0a6\"; }\n\n.fa-hand-o-down:before {\n content: \"\\\\f0a7\"; }\n\n.fa-arrow-circle-left:before {\n content: \"\\\\f0a8\"; }\n\n.fa-arrow-circle-right:before {\n content: \"\\\\f0a9\"; }\n\n.fa-arrow-circle-up:before {\n content: \"\\\\f0aa\"; }\n\n.fa-arrow-circle-down:before {\n content: \"\\\\f0ab\"; }\n\n.fa-globe:before {\n content: \"\\\\f0ac\"; }\n\n.fa-wrench:before {\n content: \"\\\\f0ad\"; }\n\n.fa-tasks:before {\n content: \"\\\\f0ae\"; }\n\n.fa-filter:before {\n content: \"\\\\f0b0\"; }\n\n.fa-briefcase:before {\n content: \"\\\\f0b1\"; }\n\n.fa-arrows-alt:before {\n content: \"\\\\f0b2\"; }\n\n.fa-group:before,\n.fa-users:before {\n content: \"\\\\f0c0\"; }\n\n.fa-chain:before,\n.fa-link:before {\n content: \"\\\\f0c1\"; }\n\n.fa-cloud:before {\n content: \"\\\\f0c2\"; }\n\n.fa-flask:before {\n content: \"\\\\f0c3\"; }\n\n.fa-cut:before,\n.fa-scissors:before {\n content: \"\\\\f0c4\"; }\n\n.fa-copy:before,\n.fa-files-o:before {\n content: \"\\\\f0c5\"; }\n\n.fa-paperclip:before {\n content: \"\\\\f0c6\"; }\n\n.fa-save:before,\n.fa-floppy-o:before {\n content: \"\\\\f0c7\"; }\n\n.fa-square:before {\n content: \"\\\\f0c8\"; }\n\n.fa-navicon:before,\n.fa-reorder:before,\n.fa-bars:before {\n content: \"\\\\f0c9\"; }\n\n.fa-list-ul:before {\n content: \"\\\\f0ca\"; }\n\n.fa-list-ol:before {\n content: \"\\\\f0cb\"; }\n\n.fa-strikethrough:before {\n content: \"\\\\f0cc\"; }\n\n.fa-underline:before {\n content: \"\\\\f0cd\"; }\n\n.fa-table:before {\n content: \"\\\\f0ce\"; }\n\n.fa-magic:before {\n content: \"\\\\f0d0\"; }\n\n.fa-truck:before {\n content: \"\\\\f0d1\"; }\n\n.fa-pinterest:before {\n content: \"\\\\f0d2\"; }\n\n.fa-pinterest-square:before {\n content: \"\\\\f0d3\"; }\n\n.fa-google-plus-square:before {\n content: \"\\\\f0d4\"; }\n\n.fa-google-plus:before {\n content: \"\\\\f0d5\"; }\n\n.fa-money:before {\n content: \"\\\\f0d6\"; }\n\n.fa-caret-down:before {\n content: \"\\\\f0d7\"; }\n\n.fa-caret-up:before {\n content: \"\\\\f0d8\"; }\n\n.fa-caret-left:before {\n content: \"\\\\f0d9\"; }\n\n.fa-caret-right:before {\n content: \"\\\\f0da\"; }\n\n.fa-columns:before {\n content: \"\\\\f0db\"; }\n\n.fa-unsorted:before,\n.fa-sort:before {\n content: \"\\\\f0dc\"; }\n\n.fa-sort-down:before,\n.fa-sort-desc:before {\n content: \"\\\\f0dd\"; }\n\n.fa-sort-up:before,\n.fa-sort-asc:before {\n content: \"\\\\f0de\"; }\n\n.fa-envelope:before {\n content: \"\\\\f0e0\"; }\n\n.fa-linkedin:before {\n content: \"\\\\f0e1\"; }\n\n.fa-rotate-left:before,\n.fa-undo:before {\n content: \"\\\\f0e2\"; }\n\n.fa-legal:before,\n.fa-gavel:before {\n content: \"\\\\f0e3\"; }\n\n.fa-dashboard:before,\n.fa-tachometer:before {\n content: \"\\\\f0e4\"; }\n\n.fa-comment-o:before {\n content: \"\\\\f0e5\"; }\n\n.fa-comments-o:before {\n content: \"\\\\f0e6\"; }\n\n.fa-flash:before,\n.fa-bolt:before {\n content: \"\\\\f0e7\"; }\n\n.fa-sitemap:before {\n content: \"\\\\f0e8\"; }\n\n.fa-umbrella:before {\n content: \"\\\\f0e9\"; }\n\n.fa-paste:before,\n.fa-clipboard:before {\n content: \"\\\\f0ea\"; }\n\n.fa-lightbulb-o:before {\n content: \"\\\\f0eb\"; }\n\n.fa-exchange:before {\n content: \"\\\\f0ec\"; }\n\n.fa-cloud-download:before {\n content: \"\\\\f0ed\"; }\n\n.fa-cloud-upload:before {\n content: \"\\\\f0ee\"; }\n\n.fa-user-md:before {\n content: \"\\\\f0f0\"; }\n\n.fa-stethoscope:before {\n content: \"\\\\f0f1\"; }\n\n.fa-suitcase:before {\n content: \"\\\\f0f2\"; }\n\n.fa-bell-o:before {\n content: \"\\\\f0a2\"; }\n\n.fa-coffee:before {\n content: \"\\\\f0f4\"; }\n\n.fa-cutlery:before {\n content: \"\\\\f0f5\"; }\n\n.fa-file-text-o:before {\n content: \"\\\\f0f6\"; }\n\n.fa-building-o:before {\n content: \"\\\\f0f7\"; }\n\n.fa-hospital-o:before {\n content: \"\\\\f0f8\"; }\n\n.fa-ambulance:before {\n content: \"\\\\f0f9\"; }\n\n.fa-medkit:before {\n content: \"\\\\f0fa\"; }\n\n.fa-fighter-jet:before {\n content: \"\\\\f0fb\"; }\n\n.fa-beer:before {\n content: \"\\\\f0fc\"; }\n\n.fa-h-square:before {\n content: \"\\\\f0fd\"; }\n\n.fa-plus-square:before {\n content: \"\\\\f0fe\"; }\n\n.fa-angle-double-left:before {\n content: \"\\\\f100\"; }\n\n.fa-angle-double-right:before {\n content: \"\\\\f101\"; }\n\n.fa-angle-double-up:before {\n content: \"\\\\f102\"; }\n\n.fa-angle-double-down:before {\n content: \"\\\\f103\"; }\n\n.fa-angle-left:before {\n content: \"\\\\f104\"; }\n\n.fa-angle-right:before {\n content: \"\\\\f105\"; }\n\n.fa-angle-up:before {\n content: \"\\\\f106\"; }\n\n.fa-angle-down:before {\n content: \"\\\\f107\"; }\n\n.fa-desktop:before {\n content: \"\\\\f108\"; }\n\n.fa-laptop:before {\n content: \"\\\\f109\"; }\n\n.fa-tablet:before {\n content: \"\\\\f10a\"; }\n\n.fa-mobile-phone:before,\n.fa-mobile:before {\n content: \"\\\\f10b\"; }\n\n.fa-circle-o:before {\n content: \"\\\\f10c\"; }\n\n.fa-quote-left:before {\n content: \"\\\\f10d\"; }\n\n.fa-quote-right:before {\n content: \"\\\\f10e\"; }\n\n.fa-spinner:before {\n content: \"\\\\f110\"; }\n\n.fa-circle:before {\n content: \"\\\\f111\"; }\n\n.fa-mail-reply:before,\n.fa-reply:before {\n content: \"\\\\f112\"; }\n\n.fa-github-alt:before {\n content: \"\\\\f113\"; }\n\n.fa-folder-o:before {\n content: \"\\\\f114\"; }\n\n.fa-folder-open-o:before {\n content: \"\\\\f115\"; }\n\n.fa-smile-o:before {\n content: \"\\\\f118\"; }\n\n.fa-frown-o:before {\n content: \"\\\\f119\"; }\n\n.fa-meh-o:before {\n content: \"\\\\f11a\"; }\n\n.fa-gamepad:before {\n content: \"\\\\f11b\"; }\n\n.fa-keyboard-o:before {\n content: \"\\\\f11c\"; }\n\n.fa-flag-o:before {\n content: \"\\\\f11d\"; }\n\n.fa-flag-checkered:before {\n content: \"\\\\f11e\"; }\n\n.fa-terminal:before {\n content: \"\\\\f120\"; }\n\n.fa-code:before {\n content: \"\\\\f121\"; }\n\n.fa-mail-reply-all:before,\n.fa-reply-all:before {\n content: \"\\\\f122\"; }\n\n.fa-star-half-empty:before,\n.fa-star-half-full:before,\n.fa-star-half-o:before {\n content: \"\\\\f123\"; }\n\n.fa-location-arrow:before {\n content: \"\\\\f124\"; }\n\n.fa-crop:before {\n content: \"\\\\f125\"; }\n\n.fa-code-fork:before {\n content: \"\\\\f126\"; }\n\n.fa-unlink:before,\n.fa-chain-broken:before {\n content: \"\\\\f127\"; }\n\n.fa-question:before {\n content: \"\\\\f128\"; }\n\n.fa-info:before {\n content: \"\\\\f129\"; }\n\n.fa-exclamation:before {\n content: \"\\\\f12a\"; }\n\n.fa-superscript:before {\n content: \"\\\\f12b\"; }\n\n.fa-subscript:before {\n content: \"\\\\f12c\"; }\n\n.fa-eraser:before {\n content: \"\\\\f12d\"; }\n\n.fa-puzzle-piece:before {\n content: \"\\\\f12e\"; }\n\n.fa-microphone:before {\n content: \"\\\\f130\"; }\n\n.fa-microphone-slash:before {\n content: \"\\\\f131\"; }\n\n.fa-shield:before {\n content: \"\\\\f132\"; }\n\n.fa-calendar-o:before {\n content: \"\\\\f133\"; }\n\n.fa-fire-extinguisher:before {\n content: \"\\\\f134\"; }\n\n.fa-rocket:before {\n content: \"\\\\f135\"; }\n\n.fa-maxcdn:before {\n content: \"\\\\f136\"; }\n\n.fa-chevron-circle-left:before {\n content: \"\\\\f137\"; }\n\n.fa-chevron-circle-right:before {\n content: \"\\\\f138\"; }\n\n.fa-chevron-circle-up:before {\n content: \"\\\\f139\"; }\n\n.fa-chevron-circle-down:before {\n content: \"\\\\f13a\"; }\n\n.fa-html5:before {\n content: \"\\\\f13b\"; }\n\n.fa-css3:before {\n content: \"\\\\f13c\"; }\n\n.fa-anchor:before {\n content: \"\\\\f13d\"; }\n\n.fa-unlock-alt:before {\n content: \"\\\\f13e\"; }\n\n.fa-bullseye:before {\n content: \"\\\\f140\"; }\n\n.fa-ellipsis-h:before {\n content: \"\\\\f141\"; }\n\n.fa-ellipsis-v:before {\n content: \"\\\\f142\"; }\n\n.fa-rss-square:before {\n content: \"\\\\f143\"; }\n\n.fa-play-circle:before {\n content: \"\\\\f144\"; }\n\n.fa-ticket:before {\n content: \"\\\\f145\"; }\n\n.fa-minus-square:before {\n content: \"\\\\f146\"; }\n\n.fa-minus-square-o:before {\n content: \"\\\\f147\"; }\n\n.fa-level-up:before {\n content: \"\\\\f148\"; }\n\n.fa-level-down:before {\n content: \"\\\\f149\"; }\n\n.fa-check-square:before {\n content: \"\\\\f14a\"; }\n\n.fa-pencil-square:before {\n content: \"\\\\f14b\"; }\n\n.fa-external-link-square:before {\n content: \"\\\\f14c\"; }\n\n.fa-share-square:before {\n content: \"\\\\f14d\"; }\n\n.fa-compass:before {\n content: \"\\\\f14e\"; }\n\n.fa-toggle-down:before,\n.fa-caret-square-o-down:before {\n content: \"\\\\f150\"; }\n\n.fa-toggle-up:before,\n.fa-caret-square-o-up:before {\n content: \"\\\\f151\"; }\n\n.fa-toggle-right:before,\n.fa-caret-square-o-right:before {\n content: \"\\\\f152\"; }\n\n.fa-euro:before,\n.fa-eur:before {\n content: \"\\\\f153\"; }\n\n.fa-gbp:before {\n content: \"\\\\f154\"; }\n\n.fa-dollar:before,\n.fa-usd:before {\n content: \"\\\\f155\"; }\n\n.fa-rupee:before,\n.fa-inr:before {\n content: \"\\\\f156\"; }\n\n.fa-cny:before,\n.fa-rmb:before,\n.fa-yen:before,\n.fa-jpy:before {\n content: \"\\\\f157\"; }\n\n.fa-ruble:before,\n.fa-rouble:before,\n.fa-rub:before {\n content: \"\\\\f158\"; }\n\n.fa-won:before,\n.fa-krw:before {\n content: \"\\\\f159\"; }\n\n.fa-bitcoin:before,\n.fa-btc:before {\n content: \"\\\\f15a\"; }\n\n.fa-file:before {\n content: \"\\\\f15b\"; }\n\n.fa-file-text:before {\n content: \"\\\\f15c\"; }\n\n.fa-sort-alpha-asc:before {\n content: \"\\\\f15d\"; }\n\n.fa-sort-alpha-desc:before {\n content: \"\\\\f15e\"; }\n\n.fa-sort-amount-asc:before {\n content: \"\\\\f160\"; }\n\n.fa-sort-amount-desc:before {\n content: \"\\\\f161\"; }\n\n.fa-sort-numeric-asc:before {\n content: \"\\\\f162\"; }\n\n.fa-sort-numeric-desc:before {\n content: \"\\\\f163\"; }\n\n.fa-thumbs-up:before {\n content: \"\\\\f164\"; }\n\n.fa-thumbs-down:before {\n content: \"\\\\f165\"; }\n\n.fa-youtube-square:before {\n content: \"\\\\f166\"; }\n\n.fa-youtube:before {\n content: \"\\\\f167\"; }\n\n.fa-xing:before {\n content: \"\\\\f168\"; }\n\n.fa-xing-square:before {\n content: \"\\\\f169\"; }\n\n.fa-youtube-play:before {\n content: \"\\\\f16a\"; }\n\n.fa-dropbox:before {\n content: \"\\\\f16b\"; }\n\n.fa-stack-overflow:before {\n content: \"\\\\f16c\"; }\n\n.fa-instagram:before {\n content: \"\\\\f16d\"; }\n\n.fa-flickr:before {\n content: \"\\\\f16e\"; }\n\n.fa-adn:before {\n content: \"\\\\f170\"; }\n\n.fa-bitbucket:before {\n content: \"\\\\f171\"; }\n\n.fa-bitbucket-square:before {\n content: \"\\\\f172\"; }\n\n.fa-tumblr:before {\n content: \"\\\\f173\"; }\n\n.fa-tumblr-square:before {\n content: \"\\\\f174\"; }\n\n.fa-long-arrow-down:before {\n content: \"\\\\f175\"; }\n\n.fa-long-arrow-up:before {\n content: \"\\\\f176\"; }\n\n.fa-long-arrow-left:before {\n content: \"\\\\f177\"; }\n\n.fa-long-arrow-right:before {\n content: \"\\\\f178\"; }\n\n.fa-apple:before {\n content: \"\\\\f179\"; }\n\n.fa-windows:before {\n content: \"\\\\f17a\"; }\n\n.fa-android:before {\n content: \"\\\\f17b\"; }\n\n.fa-linux:before {\n content: \"\\\\f17c\"; }\n\n.fa-dribbble:before {\n content: \"\\\\f17d\"; }\n\n.fa-skype:before {\n content: \"\\\\f17e\"; }\n\n.fa-foursquare:before {\n content: \"\\\\f180\"; }\n\n.fa-trello:before {\n content: \"\\\\f181\"; }\n\n.fa-female:before {\n content: \"\\\\f182\"; }\n\n.fa-male:before {\n content: \"\\\\f183\"; }\n\n.fa-gittip:before,\n.fa-gratipay:before {\n content: \"\\\\f184\"; }\n\n.fa-sun-o:before {\n content: \"\\\\f185\"; }\n\n.fa-moon-o:before {\n content: \"\\\\f186\"; }\n\n.fa-archive:before {\n content: \"\\\\f187\"; }\n\n.fa-bug:before {\n content: \"\\\\f188\"; }\n\n.fa-vk:before {\n content: \"\\\\f189\"; }\n\n.fa-weibo:before {\n content: \"\\\\f18a\"; }\n\n.fa-renren:before {\n content: \"\\\\f18b\"; }\n\n.fa-pagelines:before {\n content: \"\\\\f18c\"; }\n\n.fa-stack-exchange:before {\n content: \"\\\\f18d\"; }\n\n.fa-arrow-circle-o-right:before {\n content: \"\\\\f18e\"; }\n\n.fa-arrow-circle-o-left:before {\n content: \"\\\\f190\"; }\n\n.fa-toggle-left:before,\n.fa-caret-square-o-left:before {\n content: \"\\\\f191\"; }\n\n.fa-dot-circle-o:before {\n content: \"\\\\f192\"; }\n\n.fa-wheelchair:before {\n content: \"\\\\f193\"; }\n\n.fa-vimeo-square:before {\n content: \"\\\\f194\"; }\n\n.fa-turkish-lira:before,\n.fa-try:before {\n content: \"\\\\f195\"; }\n\n.fa-plus-square-o:before {\n content: \"\\\\f196\"; }\n\n.fa-space-shuttle:before {\n content: \"\\\\f197\"; }\n\n.fa-slack:before {\n content: \"\\\\f198\"; }\n\n.fa-envelope-square:before {\n content: \"\\\\f199\"; }\n\n.fa-wordpress:before {\n content: \"\\\\f19a\"; }\n\n.fa-openid:before {\n content: \"\\\\f19b\"; }\n\n.fa-institution:before,\n.fa-bank:before,\n.fa-university:before {\n content: \"\\\\f19c\"; }\n\n.fa-mortar-board:before,\n.fa-graduation-cap:before {\n content: \"\\\\f19d\"; }\n\n.fa-yahoo:before {\n content: \"\\\\f19e\"; }\n\n.fa-google:before {\n content: \"\\\\f1a0\"; }\n\n.fa-reddit:before {\n content: \"\\\\f1a1\"; }\n\n.fa-reddit-square:before {\n content: \"\\\\f1a2\"; }\n\n.fa-stumbleupon-circle:before {\n content: \"\\\\f1a3\"; }\n\n.fa-stumbleupon:before {\n content: \"\\\\f1a4\"; }\n\n.fa-delicious:before {\n content: \"\\\\f1a5\"; }\n\n.fa-digg:before {\n content: \"\\\\f1a6\"; }\n\n.fa-pied-piper:before {\n content: \"\\\\f1a7\"; }\n\n.fa-pied-piper-alt:before {\n content: \"\\\\f1a8\"; }\n\n.fa-drupal:before {\n content: \"\\\\f1a9\"; }\n\n.fa-joomla:before {\n content: \"\\\\f1aa\"; }\n\n.fa-language:before {\n content: \"\\\\f1ab\"; }\n\n.fa-fax:before {\n content: \"\\\\f1ac\"; }\n\n.fa-building:before {\n content: \"\\\\f1ad\"; }\n\n.fa-child:before {\n content: \"\\\\f1ae\"; }\n\n.fa-paw:before {\n content: \"\\\\f1b0\"; }\n\n.fa-spoon:before {\n content: \"\\\\f1b1\"; }\n\n.fa-cube:before {\n content: \"\\\\f1b2\"; }\n\n.fa-cubes:before {\n content: \"\\\\f1b3\"; }\n\n.fa-behance:before {\n content: \"\\\\f1b4\"; }\n\n.fa-behance-square:before {\n content: \"\\\\f1b5\"; }\n\n.fa-steam:before {\n content: \"\\\\f1b6\"; }\n\n.fa-steam-square:before {\n content: \"\\\\f1b7\"; }\n\n.fa-recycle:before {\n content: \"\\\\f1b8\"; }\n\n.fa-automobile:before,\n.fa-car:before {\n content: \"\\\\f1b9\"; }\n\n.fa-cab:before,\n.fa-taxi:before {\n content: \"\\\\f1ba\"; }\n\n.fa-tree:before {\n content: \"\\\\f1bb\"; }\n\n.fa-spotify:before {\n content: \"\\\\f1bc\"; }\n\n.fa-deviantart:before {\n content: \"\\\\f1bd\"; }\n\n.fa-soundcloud:before {\n content: \"\\\\f1be\"; }\n\n.fa-database:before {\n content: \"\\\\f1c0\"; }\n\n.fa-file-pdf-o:before {\n content: \"\\\\f1c1\"; }\n\n.fa-file-word-o:before {\n content: \"\\\\f1c2\"; }\n\n.fa-file-excel-o:before {\n content: \"\\\\f1c3\"; }\n\n.fa-file-powerpoint-o:before {\n content: \"\\\\f1c4\"; }\n\n.fa-file-photo-o:before,\n.fa-file-picture-o:before,\n.fa-file-image-o:before {\n content: \"\\\\f1c5\"; }\n\n.fa-file-zip-o:before,\n.fa-file-archive-o:before {\n content: \"\\\\f1c6\"; }\n\n.fa-file-sound-o:before,\n.fa-file-audio-o:before {\n content: \"\\\\f1c7\"; }\n\n.fa-file-movie-o:before,\n.fa-file-video-o:before {\n content: \"\\\\f1c8\"; }\n\n.fa-file-code-o:before {\n content: \"\\\\f1c9\"; }\n\n.fa-vine:before {\n content: \"\\\\f1ca\"; }\n\n.fa-codepen:before {\n content: \"\\\\f1cb\"; }\n\n.fa-jsfiddle:before {\n content: \"\\\\f1cc\"; }\n\n.fa-life-bouy:before,\n.fa-life-buoy:before,\n.fa-life-saver:before,\n.fa-support:before,\n.fa-life-ring:before {\n content: \"\\\\f1cd\"; }\n\n.fa-circle-o-notch:before {\n content: \"\\\\f1ce\"; }\n\n.fa-ra:before,\n.fa-rebel:before {\n content: \"\\\\f1d0\"; }\n\n.fa-ge:before,\n.fa-empire:before {\n content: \"\\\\f1d1\"; }\n\n.fa-git-square:before {\n content: \"\\\\f1d2\"; }\n\n.fa-git:before {\n content: \"\\\\f1d3\"; }\n\n.fa-y-combinator-square:before,\n.fa-yc-square:before,\n.fa-hacker-news:before {\n content: \"\\\\f1d4\"; }\n\n.fa-tencent-weibo:before {\n content: \"\\\\f1d5\"; }\n\n.fa-qq:before {\n content: \"\\\\f1d6\"; }\n\n.fa-wechat:before,\n.fa-weixin:before {\n content: \"\\\\f1d7\"; }\n\n.fa-send:before,\n.fa-paper-plane:before {\n content: \"\\\\f1d8\"; }\n\n.fa-send-o:before,\n.fa-paper-plane-o:before {\n content: \"\\\\f1d9\"; }\n\n.fa-history:before {\n content: \"\\\\f1da\"; }\n\n.fa-circle-thin:before {\n content: \"\\\\f1db\"; }\n\n.fa-header:before {\n content: \"\\\\f1dc\"; }\n\n.fa-paragraph:before {\n content: \"\\\\f1dd\"; }\n\n.fa-sliders:before {\n content: \"\\\\f1de\"; }\n\n.fa-share-alt:before {\n content: \"\\\\f1e0\"; }\n\n.fa-share-alt-square:before {\n content: \"\\\\f1e1\"; }\n\n.fa-bomb:before {\n content: \"\\\\f1e2\"; }\n\n.fa-soccer-ball-o:before,\n.fa-futbol-o:before {\n content: \"\\\\f1e3\"; }\n\n.fa-tty:before {\n content: \"\\\\f1e4\"; }\n\n.fa-binoculars:before {\n content: \"\\\\f1e5\"; }\n\n.fa-plug:before {\n content: \"\\\\f1e6\"; }\n\n.fa-slideshare:before {\n content: \"\\\\f1e7\"; }\n\n.fa-twitch:before {\n content: \"\\\\f1e8\"; }\n\n.fa-yelp:before {\n content: \"\\\\f1e9\"; }\n\n.fa-newspaper-o:before {\n content: \"\\\\f1ea\"; }\n\n.fa-wifi:before {\n content: \"\\\\f1eb\"; }\n\n.fa-calculator:before {\n content: \"\\\\f1ec\"; }\n\n.fa-paypal:before {\n content: \"\\\\f1ed\"; }\n\n.fa-google-wallet:before {\n content: \"\\\\f1ee\"; }\n\n.fa-cc-visa:before {\n content: \"\\\\f1f0\"; }\n\n.fa-cc-mastercard:before {\n content: \"\\\\f1f1\"; }\n\n.fa-cc-discover:before {\n content: \"\\\\f1f2\"; }\n\n.fa-cc-amex:before {\n content: \"\\\\f1f3\"; }\n\n.fa-cc-paypal:before {\n content: \"\\\\f1f4\"; }\n\n.fa-cc-stripe:before {\n content: \"\\\\f1f5\"; }\n\n.fa-bell-slash:before {\n content: \"\\\\f1f6\"; }\n\n.fa-bell-slash-o:before {\n content: \"\\\\f1f7\"; }\n\n.fa-trash:before {\n content: \"\\\\f1f8\"; }\n\n.fa-copyright:before {\n content: \"\\\\f1f9\"; }\n\n.fa-at:before {\n content: \"\\\\f1fa\"; }\n\n.fa-eyedropper:before {\n content: \"\\\\f1fb\"; }\n\n.fa-paint-brush:before {\n content: \"\\\\f1fc\"; }\n\n.fa-birthday-cake:before {\n content: \"\\\\f1fd\"; }\n\n.fa-area-chart:before {\n content: \"\\\\f1fe\"; }\n\n.fa-pie-chart:before {\n content: \"\\\\f200\"; }\n\n.fa-line-chart:before {\n content: \"\\\\f201\"; }\n\n.fa-lastfm:before {\n content: \"\\\\f202\"; }\n\n.fa-lastfm-square:before {\n content: \"\\\\f203\"; }\n\n.fa-toggle-off:before {\n content: \"\\\\f204\"; }\n\n.fa-toggle-on:before {\n content: \"\\\\f205\"; }\n\n.fa-bicycle:before {\n content: \"\\\\f206\"; }\n\n.fa-bus:before {\n content: \"\\\\f207\"; }\n\n.fa-ioxhost:before {\n content: \"\\\\f208\"; }\n\n.fa-angellist:before {\n content: \"\\\\f209\"; }\n\n.fa-cc:before {\n content: \"\\\\f20a\"; }\n\n.fa-shekel:before,\n.fa-sheqel:before,\n.fa-ils:before {\n content: \"\\\\f20b\"; }\n\n.fa-meanpath:before {\n content: \"\\\\f20c\"; }\n\n.fa-buysellads:before {\n content: \"\\\\f20d\"; }\n\n.fa-connectdevelop:before {\n content: \"\\\\f20e\"; }\n\n.fa-dashcube:before {\n content: \"\\\\f210\"; }\n\n.fa-forumbee:before {\n content: \"\\\\f211\"; }\n\n.fa-leanpub:before {\n content: \"\\\\f212\"; }\n\n.fa-sellsy:before {\n content: \"\\\\f213\"; }\n\n.fa-shirtsinbulk:before {\n content: \"\\\\f214\"; }\n\n.fa-simplybuilt:before {\n content: \"\\\\f215\"; }\n\n.fa-skyatlas:before {\n content: \"\\\\f216\"; }\n\n.fa-cart-plus:before {\n content: \"\\\\f217\"; }\n\n.fa-cart-arrow-down:before {\n content: \"\\\\f218\"; }\n\n.fa-diamond:before {\n content: \"\\\\f219\"; }\n\n.fa-ship:before {\n content: \"\\\\f21a\"; }\n\n.fa-user-secret:before {\n content: \"\\\\f21b\"; }\n\n.fa-motorcycle:before {\n content: \"\\\\f21c\"; }\n\n.fa-street-view:before {\n content: \"\\\\f21d\"; }\n\n.fa-heartbeat:before {\n content: \"\\\\f21e\"; }\n\n.fa-venus:before {\n content: \"\\\\f221\"; }\n\n.fa-mars:before {\n content: \"\\\\f222\"; }\n\n.fa-mercury:before {\n content: \"\\\\f223\"; }\n\n.fa-intersex:before,\n.fa-transgender:before {\n content: \"\\\\f224\"; }\n\n.fa-transgender-alt:before {\n content: \"\\\\f225\"; }\n\n.fa-venus-double:before {\n content: \"\\\\f226\"; }\n\n.fa-mars-double:before {\n content: \"\\\\f227\"; }\n\n.fa-venus-mars:before {\n content: \"\\\\f228\"; }\n\n.fa-mars-stroke:before {\n content: \"\\\\f229\"; }\n\n.fa-mars-stroke-v:before {\n content: \"\\\\f22a\"; }\n\n.fa-mars-stroke-h:before {\n content: \"\\\\f22b\"; }\n\n.fa-neuter:before {\n content: \"\\\\f22c\"; }\n\n.fa-genderless:before {\n content: \"\\\\f22d\"; }\n\n.fa-facebook-official:before {\n content: \"\\\\f230\"; }\n\n.fa-pinterest-p:before {\n content: \"\\\\f231\"; }\n\n.fa-whatsapp:before {\n content: \"\\\\f232\"; }\n\n.fa-server:before {\n content: \"\\\\f233\"; }\n\n.fa-user-plus:before {\n content: \"\\\\f234\"; }\n\n.fa-user-times:before {\n content: \"\\\\f235\"; }\n\n.fa-hotel:before,\n.fa-bed:before {\n content: \"\\\\f236\"; }\n\n.fa-viacoin:before {\n content: \"\\\\f237\"; }\n\n.fa-train:before {\n content: \"\\\\f238\"; }\n\n.fa-subway:before {\n content: \"\\\\f239\"; }\n\n.fa-medium:before {\n content: \"\\\\f23a\"; }\n\n.fa-yc:before,\n.fa-y-combinator:before {\n content: \"\\\\f23b\"; }\n\n.fa-optin-monster:before {\n content: \"\\\\f23c\"; }\n\n.fa-opencart:before {\n content: \"\\\\f23d\"; }\n\n.fa-expeditedssl:before {\n content: \"\\\\f23e\"; }\n\n.fa-battery-4:before,\n.fa-battery-full:before {\n content: \"\\\\f240\"; }\n\n.fa-battery-3:before,\n.fa-battery-three-quarters:before {\n content: \"\\\\f241\"; }\n\n.fa-battery-2:before,\n.fa-battery-half:before {\n content: \"\\\\f242\"; }\n\n.fa-battery-1:before,\n.fa-battery-quarter:before {\n content: \"\\\\f243\"; }\n\n.fa-battery-0:before,\n.fa-battery-empty:before {\n content: \"\\\\f244\"; }\n\n.fa-mouse-pointer:before {\n content: \"\\\\f245\"; }\n\n.fa-i-cursor:before {\n content: \"\\\\f246\"; }\n\n.fa-object-group:before {\n content: \"\\\\f247\"; }\n\n.fa-object-ungroup:before {\n content: \"\\\\f248\"; }\n\n.fa-sticky-note:before {\n content: \"\\\\f249\"; }\n\n.fa-sticky-note-o:before {\n content: \"\\\\f24a\"; }\n\n.fa-cc-jcb:before {\n content: \"\\\\f24b\"; }\n\n.fa-cc-diners-club:before {\n content: \"\\\\f24c\"; }\n\n.fa-clone:before {\n content: \"\\\\f24d\"; }\n\n.fa-balance-scale:before {\n content: \"\\\\f24e\"; }\n\n.fa-hourglass-o:before {\n content: \"\\\\f250\"; }\n\n.fa-hourglass-1:before,\n.fa-hourglass-start:before {\n content: \"\\\\f251\"; }\n\n.fa-hourglass-2:before,\n.fa-hourglass-half:before {\n content: \"\\\\f252\"; }\n\n.fa-hourglass-3:before,\n.fa-hourglass-end:before {\n content: \"\\\\f253\"; }\n\n.fa-hourglass:before {\n content: \"\\\\f254\"; }\n\n.fa-hand-grab-o:before,\n.fa-hand-rock-o:before {\n content: \"\\\\f255\"; }\n\n.fa-hand-stop-o:before,\n.fa-hand-paper-o:before {\n content: \"\\\\f256\"; }\n\n.fa-hand-scissors-o:before {\n content: \"\\\\f257\"; }\n\n.fa-hand-lizard-o:before {\n content: \"\\\\f258\"; }\n\n.fa-hand-spock-o:before {\n content: \"\\\\f259\"; }\n\n.fa-hand-pointer-o:before {\n content: \"\\\\f25a\"; }\n\n.fa-hand-peace-o:before {\n content: \"\\\\f25b\"; }\n\n.fa-trademark:before {\n content: \"\\\\f25c\"; }\n\n.fa-registered:before {\n content: \"\\\\f25d\"; }\n\n.fa-creative-commons:before {\n content: \"\\\\f25e\"; }\n\n.fa-gg:before {\n content: \"\\\\f260\"; }\n\n.fa-gg-circle:before {\n content: \"\\\\f261\"; }\n\n.fa-tripadvisor:before {\n content: \"\\\\f262\"; }\n\n.fa-odnoklassniki:before {\n content: \"\\\\f263\"; }\n\n.fa-odnoklassniki-square:before {\n content: \"\\\\f264\"; }\n\n.fa-get-pocket:before {\n content: \"\\\\f265\"; }\n\n.fa-wikipedia-w:before {\n content: \"\\\\f266\"; }\n\n.fa-safari:before {\n content: \"\\\\f267\"; }\n\n.fa-chrome:before {\n content: \"\\\\f268\"; }\n\n.fa-firefox:before {\n content: \"\\\\f269\"; }\n\n.fa-opera:before {\n content: \"\\\\f26a\"; }\n\n.fa-internet-explorer:before {\n content: \"\\\\f26b\"; }\n\n.fa-tv:before,\n.fa-television:before {\n content: \"\\\\f26c\"; }\n\n.fa-contao:before {\n content: \"\\\\f26d\"; }\n\n.fa-500px:before {\n content: \"\\\\f26e\"; }\n\n.fa-amazon:before {\n content: \"\\\\f270\"; }\n\n.fa-calendar-plus-o:before {\n content: \"\\\\f271\"; }\n\n.fa-calendar-minus-o:before {\n content: \"\\\\f272\"; }\n\n.fa-calendar-times-o:before {\n content: \"\\\\f273\"; }\n\n.fa-calendar-check-o:before {\n content: \"\\\\f274\"; }\n\n.fa-industry:before {\n content: \"\\\\f275\"; }\n\n.fa-map-pin:before {\n content: \"\\\\f276\"; }\n\n.fa-map-signs:before {\n content: \"\\\\f277\"; }\n\n.fa-map-o:before {\n content: \"\\\\f278\"; }\n\n.fa-map:before {\n content: \"\\\\f279\"; }\n\n.fa-commenting:before {\n content: \"\\\\f27a\"; }\n\n.fa-commenting-o:before {\n content: \"\\\\f27b\"; }\n\n.fa-houzz:before {\n content: \"\\\\f27c\"; }\n\n.fa-vimeo:before {\n content: \"\\\\f27d\"; }\n\n.fa-black-tie:before {\n content: \"\\\\f27e\"; }\n\n.fa-fonticons:before {\n content: \"\\\\f280\"; }\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./common/font/fontawesome/css/font-awesome.css\"],\"names\":[],\"mappings\":\"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CE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;;EAGE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;;EAGE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;;EAGE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;;;EAIE,gBAAgB,EAAE;;AAEpB;;;EAGE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;;EAGE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;;EAGE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;;;;EAKE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;;EAGE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;;EAGE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE\",\"sourcesContent\":[\"/*! @license\\n * Font Awesome 4.4.0 by @davegandy - http://fontawesome.io - @fontawesome\\n * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\\n */\\n/* FONT PATH\\n * -------------------------- */\\n@font-face {\\n font-family: 'FontAwesome';\\n src: url(\\\"../fonts/fontawesome-webfont.eot?v=4.4.0\\\");\\n src: url(\\\"../fonts/fontawesome-webfont.eot?#iefix&v=4.4.0\\\") format(\\\"embedded-opentype\\\"), url(\\\"../fonts/fontawesome-webfont.woff2?v=4.4.0\\\") format(\\\"woff2\\\"), url(\\\"../fonts/fontawesome-webfont.woff?v=4.4.0\\\") format(\\\"woff\\\"), url(\\\"../fonts/fontawesome-webfont.ttf?v=4.4.0\\\") format(\\\"truetype\\\"), url(\\\"../fonts/fontawesome-webfont.svg?v=4.4.0#fontawesomeregular\\\") format(\\\"svg\\\");\\n font-weight: normal;\\n font-style: normal; }\\n\\n.fa {\\n display: inline-block;\\n font: normal normal normal 14px/1 FontAwesome;\\n font-size: inherit;\\n text-rendering: auto;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale; }\\n\\n/* makes the font 33% larger relative to the icon container */\\n.fa-lg {\\n font-size: 1.33333333em;\\n line-height: 0.75em;\\n vertical-align: -15%; }\\n\\n.fa-2x {\\n font-size: 2em; }\\n\\n.fa-3x {\\n font-size: 3em; }\\n\\n.fa-4x {\\n font-size: 4em; }\\n\\n.fa-5x {\\n font-size: 5em; }\\n\\n.fa-fw {\\n width: 1.28571429em;\\n text-align: center; }\\n\\n.fa-ul {\\n padding-left: 0;\\n margin-left: 2.14285714em;\\n list-style-type: none; }\\n\\n.fa-ul > li {\\n position: relative; }\\n\\n.fa-li {\\n position: absolute;\\n left: -2.14285714em;\\n width: 2.14285714em;\\n top: 0.14285714em;\\n text-align: center; }\\n\\n.fa-li.fa-lg {\\n left: -1.85714286em; }\\n\\n.fa-border {\\n padding: 0.2em 0.25em 0.15em;\\n border: solid 0.08em #eeeeee;\\n border-radius: .1em; }\\n\\n.fa-pull-left {\\n float: left; }\\n\\n.fa-pull-right {\\n float: right; }\\n\\n.fa.fa-pull-left {\\n margin-right: .3em; }\\n\\n.fa.fa-pull-right {\\n margin-left: .3em; }\\n\\n/* Deprecated as of 4.4.0 */\\n.pull-right {\\n float: right; }\\n\\n.pull-left {\\n float: left; }\\n\\n.fa.pull-left {\\n margin-right: .3em; }\\n\\n.fa.pull-right {\\n margin-left: .3em; }\\n\\n.fa-spin {\\n -webkit-animation: fa-spin 2s infinite linear;\\n animation: fa-spin 2s infinite linear; }\\n\\n.fa-pulse {\\n -webkit-animation: fa-spin 1s infinite steps(8);\\n animation: fa-spin 1s infinite steps(8); }\\n\\n@-webkit-keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg); }\\n 100% {\\n -webkit-transform: rotate(359deg);\\n transform: rotate(359deg); } }\\n\\n@keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg); }\\n 100% {\\n -webkit-transform: rotate(359deg);\\n transform: rotate(359deg); } }\\n\\n.fa-rotate-90 {\\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);\\n -webkit-transform: rotate(90deg);\\n -ms-transform: rotate(90deg);\\n transform: rotate(90deg); }\\n\\n.fa-rotate-180 {\\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);\\n -webkit-transform: rotate(180deg);\\n -ms-transform: rotate(180deg);\\n transform: rotate(180deg); }\\n\\n.fa-rotate-270 {\\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);\\n -webkit-transform: rotate(270deg);\\n -ms-transform: rotate(270deg);\\n transform: rotate(270deg); }\\n\\n.fa-flip-horizontal {\\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);\\n -webkit-transform: scale(-1, 1);\\n -ms-transform: scale(-1, 1);\\n transform: scale(-1, 1); }\\n\\n.fa-flip-vertical {\\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);\\n -webkit-transform: scale(1, -1);\\n -ms-transform: scale(1, -1);\\n transform: scale(1, -1); }\\n\\n:root .fa-rotate-90,\\n:root .fa-rotate-180,\\n:root .fa-rotate-270,\\n:root .fa-flip-horizontal,\\n:root .fa-flip-vertical {\\n filter: none; }\\n\\n.fa-stack {\\n position: relative;\\n display: inline-block;\\n width: 2em;\\n height: 2em;\\n line-height: 2em;\\n vertical-align: middle; }\\n\\n.fa-stack-1x,\\n.fa-stack-2x {\\n position: absolute;\\n left: 0;\\n width: 100%;\\n text-align: center; }\\n\\n.fa-stack-1x {\\n line-height: inherit; }\\n\\n.fa-stack-2x {\\n font-size: 2em; }\\n\\n.fa-inverse {\\n color: #ffffff; }\\n\\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\\n readers do not read off random characters that represent icons */\\n.fa-glass:before {\\n content: \\\"\\\\f000\\\"; }\\n\\n.fa-music:before {\\n content: \\\"\\\\f001\\\"; }\\n\\n.fa-search:before {\\n content: \\\"\\\\f002\\\"; }\\n\\n.fa-envelope-o:before {\\n content: \\\"\\\\f003\\\"; }\\n\\n.fa-heart:before {\\n content: \\\"\\\\f004\\\"; }\\n\\n.fa-star:before {\\n content: \\\"\\\\f005\\\"; }\\n\\n.fa-star-o:before {\\n content: \\\"\\\\f006\\\"; }\\n\\n.fa-user:before {\\n content: \\\"\\\\f007\\\"; }\\n\\n.fa-film:before {\\n content: \\\"\\\\f008\\\"; }\\n\\n.fa-th-large:before {\\n content: \\\"\\\\f009\\\"; }\\n\\n.fa-th:before {\\n content: \\\"\\\\f00a\\\"; }\\n\\n.fa-th-list:before {\\n content: \\\"\\\\f00b\\\"; }\\n\\n.fa-check:before {\\n content: \\\"\\\\f00c\\\"; }\\n\\n.fa-remove:before,\\n.fa-close:before,\\n.fa-times:before {\\n content: \\\"\\\\f00d\\\"; }\\n\\n.fa-search-plus:before {\\n content: \\\"\\\\f00e\\\"; }\\n\\n.fa-search-minus:before {\\n content: \\\"\\\\f010\\\"; }\\n\\n.fa-power-off:before {\\n content: \\\"\\\\f011\\\"; }\\n\\n.fa-signal:before {\\n content: \\\"\\\\f012\\\"; }\\n\\n.fa-gear:before,\\n.fa-cog:before {\\n content: \\\"\\\\f013\\\"; }\\n\\n.fa-trash-o:before {\\n content: \\\"\\\\f014\\\"; }\\n\\n.fa-home:before {\\n content: \\\"\\\\f015\\\"; }\\n\\n.fa-file-o:before {\\n content: \\\"\\\\f016\\\"; }\\n\\n.fa-clock-o:before {\\n content: \\\"\\\\f017\\\"; }\\n\\n.fa-road:before {\\n content: \\\"\\\\f018\\\"; }\\n\\n.fa-download:before {\\n content: \\\"\\\\f019\\\"; }\\n\\n.fa-arrow-circle-o-down:before {\\n content: \\\"\\\\f01a\\\"; }\\n\\n.fa-arrow-circle-o-up:before {\\n content: \\\"\\\\f01b\\\"; }\\n\\n.fa-inbox:before {\\n content: \\\"\\\\f01c\\\"; }\\n\\n.fa-play-circle-o:before {\\n content: \\\"\\\\f01d\\\"; }\\n\\n.fa-rotate-right:before,\\n.fa-repeat:before {\\n content: \\\"\\\\f01e\\\"; }\\n\\n.fa-refresh:before {\\n content: \\\"\\\\f021\\\"; }\\n\\n.fa-list-alt:before {\\n content: \\\"\\\\f022\\\"; }\\n\\n.fa-lock:before {\\n content: \\\"\\\\f023\\\"; }\\n\\n.fa-flag:before {\\n content: \\\"\\\\f024\\\"; }\\n\\n.fa-headphones:before {\\n content: \\\"\\\\f025\\\"; }\\n\\n.fa-volume-off:before {\\n content: \\\"\\\\f026\\\"; }\\n\\n.fa-volume-down:before {\\n content: \\\"\\\\f027\\\"; }\\n\\n.fa-volume-up:before {\\n content: \\\"\\\\f028\\\"; }\\n\\n.fa-qrcode:before {\\n content: \\\"\\\\f029\\\"; }\\n\\n.fa-barcode:before {\\n content: \\\"\\\\f02a\\\"; }\\n\\n.fa-tag:before {\\n content: \\\"\\\\f02b\\\"; }\\n\\n.fa-tags:before {\\n content: \\\"\\\\f02c\\\"; }\\n\\n.fa-book:before {\\n content: \\\"\\\\f02d\\\"; }\\n\\n.fa-bookmark:before {\\n content: \\\"\\\\f02e\\\"; }\\n\\n.fa-print:before {\\n content: \\\"\\\\f02f\\\"; }\\n\\n.fa-camera:before {\\n content: \\\"\\\\f030\\\"; }\\n\\n.fa-font:before {\\n content: \\\"\\\\f031\\\"; }\\n\\n.fa-bold:before {\\n content: \\\"\\\\f032\\\"; }\\n\\n.fa-italic:before {\\n content: \\\"\\\\f033\\\"; }\\n\\n.fa-text-height:before {\\n content: \\\"\\\\f034\\\"; }\\n\\n.fa-text-width:before {\\n content: \\\"\\\\f035\\\"; }\\n\\n.fa-align-left:before {\\n content: \\\"\\\\f036\\\"; }\\n\\n.fa-align-center:before {\\n content: \\\"\\\\f037\\\"; }\\n\\n.fa-align-right:before {\\n content: \\\"\\\\f038\\\"; }\\n\\n.fa-align-justify:before {\\n content: \\\"\\\\f039\\\"; }\\n\\n.fa-list:before {\\n content: \\\"\\\\f03a\\\"; }\\n\\n.fa-dedent:before,\\n.fa-outdent:before {\\n content: \\\"\\\\f03b\\\"; }\\n\\n.fa-indent:before {\\n content: \\\"\\\\f03c\\\"; }\\n\\n.fa-video-camera:before {\\n content: \\\"\\\\f03d\\\"; }\\n\\n.fa-photo:before,\\n.fa-image:before,\\n.fa-picture-o:before {\\n content: \\\"\\\\f03e\\\"; }\\n\\n.fa-pencil:before {\\n content: \\\"\\\\f040\\\"; }\\n\\n.fa-map-marker:before {\\n content: \\\"\\\\f041\\\"; }\\n\\n.fa-adjust:before {\\n content: \\\"\\\\f042\\\"; }\\n\\n.fa-tint:before {\\n content: \\\"\\\\f043\\\"; }\\n\\n.fa-edit:before,\\n.fa-pencil-square-o:before {\\n content: \\\"\\\\f044\\\"; }\\n\\n.fa-share-square-o:before {\\n content: \\\"\\\\f045\\\"; }\\n\\n.fa-check-square-o:before {\\n content: \\\"\\\\f046\\\"; }\\n\\n.fa-arrows:before {\\n content: \\\"\\\\f047\\\"; }\\n\\n.fa-step-backward:before {\\n content: \\\"\\\\f048\\\"; }\\n\\n.fa-fast-backward:before {\\n content: \\\"\\\\f049\\\"; }\\n\\n.fa-backward:before {\\n content: \\\"\\\\f04a\\\"; }\\n\\n.fa-play:before {\\n content: \\\"\\\\f04b\\\"; }\\n\\n.fa-pause:before {\\n content: \\\"\\\\f04c\\\"; }\\n\\n.fa-stop:before {\\n content: \\\"\\\\f04d\\\"; }\\n\\n.fa-forward:before {\\n content: \\\"\\\\f04e\\\"; }\\n\\n.fa-fast-forward:before {\\n content: \\\"\\\\f050\\\"; }\\n\\n.fa-step-forward:before {\\n content: \\\"\\\\f051\\\"; }\\n\\n.fa-eject:before {\\n content: \\\"\\\\f052\\\"; }\\n\\n.fa-chevron-left:before {\\n content: \\\"\\\\f053\\\"; }\\n\\n.fa-chevron-right:before {\\n content: \\\"\\\\f054\\\"; }\\n\\n.fa-plus-circle:before {\\n content: \\\"\\\\f055\\\"; }\\n\\n.fa-minus-circle:before {\\n content: \\\"\\\\f056\\\"; }\\n\\n.fa-times-circle:before {\\n content: \\\"\\\\f057\\\"; }\\n\\n.fa-check-circle:before {\\n content: \\\"\\\\f058\\\"; }\\n\\n.fa-question-circle:before {\\n content: \\\"\\\\f059\\\"; }\\n\\n.fa-info-circle:before {\\n content: \\\"\\\\f05a\\\"; }\\n\\n.fa-crosshairs:before {\\n content: \\\"\\\\f05b\\\"; }\\n\\n.fa-times-circle-o:before {\\n content: \\\"\\\\f05c\\\"; }\\n\\n.fa-check-circle-o:before {\\n content: \\\"\\\\f05d\\\"; }\\n\\n.fa-ban:before {\\n content: \\\"\\\\f05e\\\"; }\\n\\n.fa-arrow-left:before {\\n content: \\\"\\\\f060\\\"; }\\n\\n.fa-arrow-right:before {\\n content: \\\"\\\\f061\\\"; }\\n\\n.fa-arrow-up:before {\\n content: \\\"\\\\f062\\\"; }\\n\\n.fa-arrow-down:before {\\n content: \\\"\\\\f063\\\"; }\\n\\n.fa-mail-forward:before,\\n.fa-share:before {\\n content: \\\"\\\\f064\\\"; }\\n\\n.fa-expand:before {\\n content: \\\"\\\\f065\\\"; }\\n\\n.fa-compress:before {\\n content: \\\"\\\\f066\\\"; }\\n\\n.fa-plus:before {\\n content: \\\"\\\\f067\\\"; }\\n\\n.fa-minus:before {\\n content: \\\"\\\\f068\\\"; }\\n\\n.fa-asterisk:before {\\n content: \\\"\\\\f069\\\"; }\\n\\n.fa-exclamation-circle:before {\\n content: \\\"\\\\f06a\\\"; }\\n\\n.fa-gift:before {\\n content: \\\"\\\\f06b\\\"; }\\n\\n.fa-leaf:before {\\n content: \\\"\\\\f06c\\\"; }\\n\\n.fa-fire:before {\\n content: \\\"\\\\f06d\\\"; }\\n\\n.fa-eye:before {\\n content: \\\"\\\\f06e\\\"; }\\n\\n.fa-eye-slash:before {\\n content: \\\"\\\\f070\\\"; }\\n\\n.fa-warning:before,\\n.fa-exclamation-triangle:before {\\n content: \\\"\\\\f071\\\"; }\\n\\n.fa-plane:before {\\n content: \\\"\\\\f072\\\"; }\\n\\n.fa-calendar:before {\\n content: \\\"\\\\f073\\\"; }\\n\\n.fa-random:before {\\n content: \\\"\\\\f074\\\"; }\\n\\n.fa-comment:before {\\n content: \\\"\\\\f075\\\"; }\\n\\n.fa-magnet:before {\\n content: \\\"\\\\f076\\\"; }\\n\\n.fa-chevron-up:before {\\n content: \\\"\\\\f077\\\"; }\\n\\n.fa-chevron-down:before {\\n content: \\\"\\\\f078\\\"; }\\n\\n.fa-retweet:before {\\n content: \\\"\\\\f079\\\"; }\\n\\n.fa-shopping-cart:before {\\n content: \\\"\\\\f07a\\\"; }\\n\\n.fa-folder:before {\\n content: \\\"\\\\f07b\\\"; }\\n\\n.fa-folder-open:before {\\n content: \\\"\\\\f07c\\\"; }\\n\\n.fa-arrows-v:before {\\n content: \\\"\\\\f07d\\\"; }\\n\\n.fa-arrows-h:before {\\n content: \\\"\\\\f07e\\\"; }\\n\\n.fa-bar-chart-o:before,\\n.fa-bar-chart:before {\\n content: \\\"\\\\f080\\\"; }\\n\\n.fa-twitter-square:before {\\n content: \\\"\\\\f081\\\"; }\\n\\n.fa-facebook-square:before {\\n content: \\\"\\\\f082\\\"; }\\n\\n.fa-camera-retro:before {\\n content: \\\"\\\\f083\\\"; }\\n\\n.fa-key:before {\\n content: \\\"\\\\f084\\\"; }\\n\\n.fa-gears:before,\\n.fa-cogs:before {\\n content: \\\"\\\\f085\\\"; }\\n\\n.fa-comments:before {\\n content: \\\"\\\\f086\\\"; }\\n\\n.fa-thumbs-o-up:before {\\n content: \\\"\\\\f087\\\"; }\\n\\n.fa-thumbs-o-down:before {\\n content: \\\"\\\\f088\\\"; }\\n\\n.fa-star-half:before {\\n content: \\\"\\\\f089\\\"; }\\n\\n.fa-heart-o:before {\\n content: \\\"\\\\f08a\\\"; }\\n\\n.fa-sign-out:before {\\n content: \\\"\\\\f08b\\\"; }\\n\\n.fa-linkedin-square:before {\\n content: \\\"\\\\f08c\\\"; }\\n\\n.fa-thumb-tack:before {\\n content: \\\"\\\\f08d\\\"; }\\n\\n.fa-external-link:before {\\n content: \\\"\\\\f08e\\\"; }\\n\\n.fa-sign-in:before {\\n content: \\\"\\\\f090\\\"; }\\n\\n.fa-trophy:before {\\n content: \\\"\\\\f091\\\"; }\\n\\n.fa-github-square:before {\\n content: \\\"\\\\f092\\\"; }\\n\\n.fa-upload:before {\\n content: \\\"\\\\f093\\\"; }\\n\\n.fa-lemon-o:before {\\n content: \\\"\\\\f094\\\"; }\\n\\n.fa-phone:before {\\n content: \\\"\\\\f095\\\"; }\\n\\n.fa-square-o:before {\\n content: \\\"\\\\f096\\\"; }\\n\\n.fa-bookmark-o:before {\\n content: \\\"\\\\f097\\\"; }\\n\\n.fa-phone-square:before {\\n content: \\\"\\\\f098\\\"; }\\n\\n.fa-twitter:before {\\n content: \\\"\\\\f099\\\"; }\\n\\n.fa-facebook-f:before,\\n.fa-facebook:before {\\n content: \\\"\\\\f09a\\\"; }\\n\\n.fa-github:before {\\n content: \\\"\\\\f09b\\\"; }\\n\\n.fa-unlock:before {\\n content: \\\"\\\\f09c\\\"; }\\n\\n.fa-credit-card:before {\\n content: \\\"\\\\f09d\\\"; }\\n\\n.fa-feed:before,\\n.fa-rss:before {\\n content: \\\"\\\\f09e\\\"; }\\n\\n.fa-hdd-o:before {\\n content: \\\"\\\\f0a0\\\"; }\\n\\n.fa-bullhorn:before {\\n content: \\\"\\\\f0a1\\\"; }\\n\\n.fa-bell:before {\\n content: \\\"\\\\f0f3\\\"; }\\n\\n.fa-certificate:before {\\n content: \\\"\\\\f0a3\\\"; }\\n\\n.fa-hand-o-right:before {\\n content: \\\"\\\\f0a4\\\"; }\\n\\n.fa-hand-o-left:before {\\n content: \\\"\\\\f0a5\\\"; }\\n\\n.fa-hand-o-up:before {\\n content: \\\"\\\\f0a6\\\"; }\\n\\n.fa-hand-o-down:before {\\n content: \\\"\\\\f0a7\\\"; }\\n\\n.fa-arrow-circle-left:before {\\n content: \\\"\\\\f0a8\\\"; }\\n\\n.fa-arrow-circle-right:before {\\n content: \\\"\\\\f0a9\\\"; }\\n\\n.fa-arrow-circle-up:before {\\n content: \\\"\\\\f0aa\\\"; }\\n\\n.fa-arrow-circle-down:before {\\n content: \\\"\\\\f0ab\\\"; }\\n\\n.fa-globe:before {\\n content: \\\"\\\\f0ac\\\"; }\\n\\n.fa-wrench:before {\\n content: \\\"\\\\f0ad\\\"; }\\n\\n.fa-tasks:before {\\n content: \\\"\\\\f0ae\\\"; }\\n\\n.fa-filter:before {\\n content: \\\"\\\\f0b0\\\"; }\\n\\n.fa-briefcase:before {\\n content: \\\"\\\\f0b1\\\"; }\\n\\n.fa-arrows-alt:before {\\n content: \\\"\\\\f0b2\\\"; }\\n\\n.fa-group:before,\\n.fa-users:before {\\n content: \\\"\\\\f0c0\\\"; }\\n\\n.fa-chain:before,\\n.fa-link:before {\\n content: \\\"\\\\f0c1\\\"; }\\n\\n.fa-cloud:before {\\n content: \\\"\\\\f0c2\\\"; }\\n\\n.fa-flask:before {\\n content: \\\"\\\\f0c3\\\"; }\\n\\n.fa-cut:before,\\n.fa-scissors:before {\\n content: \\\"\\\\f0c4\\\"; }\\n\\n.fa-copy:before,\\n.fa-files-o:before {\\n content: \\\"\\\\f0c5\\\"; }\\n\\n.fa-paperclip:before {\\n content: \\\"\\\\f0c6\\\"; }\\n\\n.fa-save:before,\\n.fa-floppy-o:before {\\n content: \\\"\\\\f0c7\\\"; }\\n\\n.fa-square:before {\\n content: \\\"\\\\f0c8\\\"; }\\n\\n.fa-navicon:before,\\n.fa-reorder:before,\\n.fa-bars:before {\\n content: \\\"\\\\f0c9\\\"; }\\n\\n.fa-list-ul:before {\\n content: \\\"\\\\f0ca\\\"; }\\n\\n.fa-list-ol:before {\\n content: \\\"\\\\f0cb\\\"; }\\n\\n.fa-strikethrough:before {\\n content: \\\"\\\\f0cc\\\"; }\\n\\n.fa-underline:before {\\n content: \\\"\\\\f0cd\\\"; }\\n\\n.fa-table:before {\\n content: \\\"\\\\f0ce\\\"; }\\n\\n.fa-magic:before {\\n content: \\\"\\\\f0d0\\\"; }\\n\\n.fa-truck:before {\\n content: \\\"\\\\f0d1\\\"; }\\n\\n.fa-pinterest:before {\\n content: \\\"\\\\f0d2\\\"; }\\n\\n.fa-pinterest-square:before {\\n content: \\\"\\\\f0d3\\\"; }\\n\\n.fa-google-plus-square:before {\\n content: \\\"\\\\f0d4\\\"; }\\n\\n.fa-google-plus:before {\\n content: \\\"\\\\f0d5\\\"; }\\n\\n.fa-money:before {\\n content: \\\"\\\\f0d6\\\"; }\\n\\n.fa-caret-down:before {\\n content: \\\"\\\\f0d7\\\"; }\\n\\n.fa-caret-up:before {\\n content: \\\"\\\\f0d8\\\"; }\\n\\n.fa-caret-left:before {\\n content: \\\"\\\\f0d9\\\"; }\\n\\n.fa-caret-right:before {\\n content: \\\"\\\\f0da\\\"; }\\n\\n.fa-columns:before {\\n content: \\\"\\\\f0db\\\"; }\\n\\n.fa-unsorted:before,\\n.fa-sort:before {\\n content: \\\"\\\\f0dc\\\"; }\\n\\n.fa-sort-down:before,\\n.fa-sort-desc:before {\\n content: \\\"\\\\f0dd\\\"; }\\n\\n.fa-sort-up:before,\\n.fa-sort-asc:before {\\n content: \\\"\\\\f0de\\\"; }\\n\\n.fa-envelope:before {\\n content: \\\"\\\\f0e0\\\"; }\\n\\n.fa-linkedin:before {\\n content: \\\"\\\\f0e1\\\"; }\\n\\n.fa-rotate-left:before,\\n.fa-undo:before {\\n content: \\\"\\\\f0e2\\\"; }\\n\\n.fa-legal:before,\\n.fa-gavel:before {\\n content: \\\"\\\\f0e3\\\"; }\\n\\n.fa-dashboard:before,\\n.fa-tachometer:before {\\n content: \\\"\\\\f0e4\\\"; }\\n\\n.fa-comment-o:before {\\n content: \\\"\\\\f0e5\\\"; }\\n\\n.fa-comments-o:before {\\n content: \\\"\\\\f0e6\\\"; }\\n\\n.fa-flash:before,\\n.fa-bolt:before {\\n content: \\\"\\\\f0e7\\\"; }\\n\\n.fa-sitemap:before {\\n content: \\\"\\\\f0e8\\\"; }\\n\\n.fa-umbrella:before {\\n content: \\\"\\\\f0e9\\\"; }\\n\\n.fa-paste:before,\\n.fa-clipboard:before {\\n content: \\\"\\\\f0ea\\\"; }\\n\\n.fa-lightbulb-o:before {\\n content: \\\"\\\\f0eb\\\"; }\\n\\n.fa-exchange:before {\\n content: \\\"\\\\f0ec\\\"; }\\n\\n.fa-cloud-download:before {\\n content: \\\"\\\\f0ed\\\"; }\\n\\n.fa-cloud-upload:before {\\n content: \\\"\\\\f0ee\\\"; }\\n\\n.fa-user-md:before {\\n content: \\\"\\\\f0f0\\\"; }\\n\\n.fa-stethoscope:before {\\n content: \\\"\\\\f0f1\\\"; }\\n\\n.fa-suitcase:before {\\n content: \\\"\\\\f0f2\\\"; }\\n\\n.fa-bell-o:before {\\n content: \\\"\\\\f0a2\\\"; }\\n\\n.fa-coffee:before {\\n content: \\\"\\\\f0f4\\\"; }\\n\\n.fa-cutlery:before {\\n content: \\\"\\\\f0f5\\\"; }\\n\\n.fa-file-text-o:before {\\n content: \\\"\\\\f0f6\\\"; }\\n\\n.fa-building-o:before {\\n content: \\\"\\\\f0f7\\\"; }\\n\\n.fa-hospital-o:before {\\n content: \\\"\\\\f0f8\\\"; }\\n\\n.fa-ambulance:before {\\n content: \\\"\\\\f0f9\\\"; }\\n\\n.fa-medkit:before {\\n content: \\\"\\\\f0fa\\\"; }\\n\\n.fa-fighter-jet:before {\\n content: \\\"\\\\f0fb\\\"; }\\n\\n.fa-beer:before {\\n content: \\\"\\\\f0fc\\\"; }\\n\\n.fa-h-square:before {\\n content: \\\"\\\\f0fd\\\"; }\\n\\n.fa-plus-square:before {\\n content: \\\"\\\\f0fe\\\"; }\\n\\n.fa-angle-double-left:before {\\n content: \\\"\\\\f100\\\"; }\\n\\n.fa-angle-double-right:before {\\n content: \\\"\\\\f101\\\"; }\\n\\n.fa-angle-double-up:before {\\n content: \\\"\\\\f102\\\"; }\\n\\n.fa-angle-double-down:before {\\n content: \\\"\\\\f103\\\"; }\\n\\n.fa-angle-left:before {\\n content: \\\"\\\\f104\\\"; }\\n\\n.fa-angle-right:before {\\n content: \\\"\\\\f105\\\"; }\\n\\n.fa-angle-up:before {\\n content: \\\"\\\\f106\\\"; }\\n\\n.fa-angle-down:before {\\n content: \\\"\\\\f107\\\"; }\\n\\n.fa-desktop:before {\\n content: \\\"\\\\f108\\\"; }\\n\\n.fa-laptop:before {\\n content: \\\"\\\\f109\\\"; }\\n\\n.fa-tablet:before {\\n content: \\\"\\\\f10a\\\"; }\\n\\n.fa-mobile-phone:before,\\n.fa-mobile:before {\\n content: \\\"\\\\f10b\\\"; }\\n\\n.fa-circle-o:before {\\n content: \\\"\\\\f10c\\\"; }\\n\\n.fa-quote-left:before {\\n content: \\\"\\\\f10d\\\"; }\\n\\n.fa-quote-right:before {\\n content: \\\"\\\\f10e\\\"; }\\n\\n.fa-spinner:before {\\n content: \\\"\\\\f110\\\"; }\\n\\n.fa-circle:before {\\n content: \\\"\\\\f111\\\"; }\\n\\n.fa-mail-reply:before,\\n.fa-reply:before {\\n content: \\\"\\\\f112\\\"; }\\n\\n.fa-github-alt:before {\\n content: \\\"\\\\f113\\\"; }\\n\\n.fa-folder-o:before {\\n content: \\\"\\\\f114\\\"; }\\n\\n.fa-folder-open-o:before {\\n content: \\\"\\\\f115\\\"; }\\n\\n.fa-smile-o:before {\\n content: \\\"\\\\f118\\\"; }\\n\\n.fa-frown-o:before {\\n content: \\\"\\\\f119\\\"; }\\n\\n.fa-meh-o:before {\\n content: \\\"\\\\f11a\\\"; }\\n\\n.fa-gamepad:before {\\n content: \\\"\\\\f11b\\\"; }\\n\\n.fa-keyboard-o:before {\\n content: \\\"\\\\f11c\\\"; }\\n\\n.fa-flag-o:before {\\n content: \\\"\\\\f11d\\\"; }\\n\\n.fa-flag-checkered:before {\\n content: \\\"\\\\f11e\\\"; }\\n\\n.fa-terminal:before {\\n content: \\\"\\\\f120\\\"; }\\n\\n.fa-code:before {\\n content: \\\"\\\\f121\\\"; }\\n\\n.fa-mail-reply-all:before,\\n.fa-reply-all:before {\\n content: \\\"\\\\f122\\\"; }\\n\\n.fa-star-half-empty:before,\\n.fa-star-half-full:before,\\n.fa-star-half-o:before {\\n content: \\\"\\\\f123\\\"; }\\n\\n.fa-location-arrow:before {\\n content: \\\"\\\\f124\\\"; }\\n\\n.fa-crop:before {\\n content: \\\"\\\\f125\\\"; }\\n\\n.fa-code-fork:before {\\n content: \\\"\\\\f126\\\"; }\\n\\n.fa-unlink:before,\\n.fa-chain-broken:before {\\n content: \\\"\\\\f127\\\"; }\\n\\n.fa-question:before {\\n content: \\\"\\\\f128\\\"; }\\n\\n.fa-info:before {\\n content: \\\"\\\\f129\\\"; }\\n\\n.fa-exclamation:before {\\n content: \\\"\\\\f12a\\\"; }\\n\\n.fa-superscript:before {\\n content: \\\"\\\\f12b\\\"; }\\n\\n.fa-subscript:before {\\n content: \\\"\\\\f12c\\\"; }\\n\\n.fa-eraser:before {\\n content: \\\"\\\\f12d\\\"; }\\n\\n.fa-puzzle-piece:before {\\n content: \\\"\\\\f12e\\\"; }\\n\\n.fa-microphone:before {\\n content: \\\"\\\\f130\\\"; }\\n\\n.fa-microphone-slash:before {\\n content: \\\"\\\\f131\\\"; }\\n\\n.fa-shield:before {\\n content: \\\"\\\\f132\\\"; }\\n\\n.fa-calendar-o:before {\\n content: \\\"\\\\f133\\\"; }\\n\\n.fa-fire-extinguisher:before {\\n content: \\\"\\\\f134\\\"; }\\n\\n.fa-rocket:before {\\n content: \\\"\\\\f135\\\"; }\\n\\n.fa-maxcdn:before {\\n content: \\\"\\\\f136\\\"; }\\n\\n.fa-chevron-circle-left:before {\\n content: \\\"\\\\f137\\\"; }\\n\\n.fa-chevron-circle-right:before {\\n content: \\\"\\\\f138\\\"; }\\n\\n.fa-chevron-circle-up:before {\\n content: \\\"\\\\f139\\\"; }\\n\\n.fa-chevron-circle-down:before {\\n content: \\\"\\\\f13a\\\"; }\\n\\n.fa-html5:before {\\n content: \\\"\\\\f13b\\\"; }\\n\\n.fa-css3:before {\\n content: \\\"\\\\f13c\\\"; }\\n\\n.fa-anchor:before {\\n content: \\\"\\\\f13d\\\"; }\\n\\n.fa-unlock-alt:before {\\n content: \\\"\\\\f13e\\\"; }\\n\\n.fa-bullseye:before {\\n content: \\\"\\\\f140\\\"; }\\n\\n.fa-ellipsis-h:before {\\n content: \\\"\\\\f141\\\"; }\\n\\n.fa-ellipsis-v:before {\\n content: \\\"\\\\f142\\\"; }\\n\\n.fa-rss-square:before {\\n content: \\\"\\\\f143\\\"; }\\n\\n.fa-play-circle:before {\\n content: \\\"\\\\f144\\\"; }\\n\\n.fa-ticket:before {\\n content: \\\"\\\\f145\\\"; }\\n\\n.fa-minus-square:before {\\n content: \\\"\\\\f146\\\"; }\\n\\n.fa-minus-square-o:before {\\n content: \\\"\\\\f147\\\"; }\\n\\n.fa-level-up:before {\\n content: \\\"\\\\f148\\\"; }\\n\\n.fa-level-down:before {\\n content: \\\"\\\\f149\\\"; }\\n\\n.fa-check-square:before {\\n content: \\\"\\\\f14a\\\"; }\\n\\n.fa-pencil-square:before {\\n content: \\\"\\\\f14b\\\"; }\\n\\n.fa-external-link-square:before {\\n content: \\\"\\\\f14c\\\"; }\\n\\n.fa-share-square:before {\\n content: \\\"\\\\f14d\\\"; }\\n\\n.fa-compass:before {\\n content: \\\"\\\\f14e\\\"; }\\n\\n.fa-toggle-down:before,\\n.fa-caret-square-o-down:before {\\n content: \\\"\\\\f150\\\"; }\\n\\n.fa-toggle-up:before,\\n.fa-caret-square-o-up:before {\\n content: \\\"\\\\f151\\\"; }\\n\\n.fa-toggle-right:before,\\n.fa-caret-square-o-right:before {\\n content: \\\"\\\\f152\\\"; }\\n\\n.fa-euro:before,\\n.fa-eur:before {\\n content: \\\"\\\\f153\\\"; }\\n\\n.fa-gbp:before {\\n content: \\\"\\\\f154\\\"; }\\n\\n.fa-dollar:before,\\n.fa-usd:before {\\n content: \\\"\\\\f155\\\"; }\\n\\n.fa-rupee:before,\\n.fa-inr:before {\\n content: \\\"\\\\f156\\\"; }\\n\\n.fa-cny:before,\\n.fa-rmb:before,\\n.fa-yen:before,\\n.fa-jpy:before {\\n content: \\\"\\\\f157\\\"; }\\n\\n.fa-ruble:before,\\n.fa-rouble:before,\\n.fa-rub:before {\\n content: \\\"\\\\f158\\\"; }\\n\\n.fa-won:before,\\n.fa-krw:before {\\n content: \\\"\\\\f159\\\"; }\\n\\n.fa-bitcoin:before,\\n.fa-btc:before {\\n content: \\\"\\\\f15a\\\"; }\\n\\n.fa-file:before {\\n content: \\\"\\\\f15b\\\"; }\\n\\n.fa-file-text:before {\\n content: \\\"\\\\f15c\\\"; }\\n\\n.fa-sort-alpha-asc:before {\\n content: \\\"\\\\f15d\\\"; }\\n\\n.fa-sort-alpha-desc:before {\\n content: \\\"\\\\f15e\\\"; }\\n\\n.fa-sort-amount-asc:before {\\n content: \\\"\\\\f160\\\"; }\\n\\n.fa-sort-amount-desc:before {\\n content: \\\"\\\\f161\\\"; }\\n\\n.fa-sort-numeric-asc:before {\\n content: \\\"\\\\f162\\\"; }\\n\\n.fa-sort-numeric-desc:before {\\n content: \\\"\\\\f163\\\"; }\\n\\n.fa-thumbs-up:before {\\n content: \\\"\\\\f164\\\"; }\\n\\n.fa-thumbs-down:before {\\n content: \\\"\\\\f165\\\"; }\\n\\n.fa-youtube-square:before {\\n content: \\\"\\\\f166\\\"; }\\n\\n.fa-youtube:before {\\n content: \\\"\\\\f167\\\"; }\\n\\n.fa-xing:before {\\n content: \\\"\\\\f168\\\"; }\\n\\n.fa-xing-square:before {\\n content: \\\"\\\\f169\\\"; }\\n\\n.fa-youtube-play:before {\\n content: \\\"\\\\f16a\\\"; }\\n\\n.fa-dropbox:before {\\n content: \\\"\\\\f16b\\\"; }\\n\\n.fa-stack-overflow:before {\\n content: \\\"\\\\f16c\\\"; }\\n\\n.fa-instagram:before {\\n content: \\\"\\\\f16d\\\"; }\\n\\n.fa-flickr:before {\\n content: \\\"\\\\f16e\\\"; }\\n\\n.fa-adn:before {\\n content: \\\"\\\\f170\\\"; }\\n\\n.fa-bitbucket:before {\\n content: \\\"\\\\f171\\\"; }\\n\\n.fa-bitbucket-square:before {\\n content: \\\"\\\\f172\\\"; }\\n\\n.fa-tumblr:before {\\n content: \\\"\\\\f173\\\"; }\\n\\n.fa-tumblr-square:before {\\n content: \\\"\\\\f174\\\"; }\\n\\n.fa-long-arrow-down:before {\\n content: \\\"\\\\f175\\\"; }\\n\\n.fa-long-arrow-up:before {\\n content: \\\"\\\\f176\\\"; }\\n\\n.fa-long-arrow-left:before {\\n content: \\\"\\\\f177\\\"; }\\n\\n.fa-long-arrow-right:before {\\n content: \\\"\\\\f178\\\"; }\\n\\n.fa-apple:before {\\n content: \\\"\\\\f179\\\"; }\\n\\n.fa-windows:before {\\n content: \\\"\\\\f17a\\\"; }\\n\\n.fa-android:before {\\n content: \\\"\\\\f17b\\\"; }\\n\\n.fa-linux:before {\\n content: \\\"\\\\f17c\\\"; }\\n\\n.fa-dribbble:before {\\n content: \\\"\\\\f17d\\\"; }\\n\\n.fa-skype:before {\\n content: \\\"\\\\f17e\\\"; }\\n\\n.fa-foursquare:before {\\n content: \\\"\\\\f180\\\"; }\\n\\n.fa-trello:before {\\n content: \\\"\\\\f181\\\"; }\\n\\n.fa-female:before {\\n content: \\\"\\\\f182\\\"; }\\n\\n.fa-male:before {\\n content: \\\"\\\\f183\\\"; }\\n\\n.fa-gittip:before,\\n.fa-gratipay:before {\\n content: \\\"\\\\f184\\\"; }\\n\\n.fa-sun-o:before {\\n content: \\\"\\\\f185\\\"; }\\n\\n.fa-moon-o:before {\\n content: \\\"\\\\f186\\\"; }\\n\\n.fa-archive:before {\\n content: \\\"\\\\f187\\\"; }\\n\\n.fa-bug:before {\\n content: \\\"\\\\f188\\\"; }\\n\\n.fa-vk:before {\\n content: \\\"\\\\f189\\\"; }\\n\\n.fa-weibo:before {\\n content: \\\"\\\\f18a\\\"; }\\n\\n.fa-renren:before {\\n content: \\\"\\\\f18b\\\"; }\\n\\n.fa-pagelines:before {\\n content: \\\"\\\\f18c\\\"; }\\n\\n.fa-stack-exchange:before {\\n content: \\\"\\\\f18d\\\"; }\\n\\n.fa-arrow-circle-o-right:before {\\n content: \\\"\\\\f18e\\\"; }\\n\\n.fa-arrow-circle-o-left:before {\\n content: \\\"\\\\f190\\\"; }\\n\\n.fa-toggle-left:before,\\n.fa-caret-square-o-left:before {\\n content: \\\"\\\\f191\\\"; }\\n\\n.fa-dot-circle-o:before {\\n content: \\\"\\\\f192\\\"; }\\n\\n.fa-wheelchair:before {\\n content: \\\"\\\\f193\\\"; }\\n\\n.fa-vimeo-square:before {\\n content: \\\"\\\\f194\\\"; }\\n\\n.fa-turkish-lira:before,\\n.fa-try:before {\\n content: \\\"\\\\f195\\\"; }\\n\\n.fa-plus-square-o:before {\\n content: \\\"\\\\f196\\\"; }\\n\\n.fa-space-shuttle:before {\\n content: \\\"\\\\f197\\\"; }\\n\\n.fa-slack:before {\\n content: \\\"\\\\f198\\\"; }\\n\\n.fa-envelope-square:before {\\n content: \\\"\\\\f199\\\"; }\\n\\n.fa-wordpress:before {\\n content: \\\"\\\\f19a\\\"; }\\n\\n.fa-openid:before {\\n content: \\\"\\\\f19b\\\"; }\\n\\n.fa-institution:before,\\n.fa-bank:before,\\n.fa-university:before {\\n content: \\\"\\\\f19c\\\"; }\\n\\n.fa-mortar-board:before,\\n.fa-graduation-cap:before {\\n content: \\\"\\\\f19d\\\"; }\\n\\n.fa-yahoo:before {\\n content: \\\"\\\\f19e\\\"; }\\n\\n.fa-google:before {\\n content: \\\"\\\\f1a0\\\"; }\\n\\n.fa-reddit:before {\\n content: \\\"\\\\f1a1\\\"; }\\n\\n.fa-reddit-square:before {\\n content: \\\"\\\\f1a2\\\"; }\\n\\n.fa-stumbleupon-circle:before {\\n content: \\\"\\\\f1a3\\\"; }\\n\\n.fa-stumbleupon:before {\\n content: \\\"\\\\f1a4\\\"; }\\n\\n.fa-delicious:before {\\n content: \\\"\\\\f1a5\\\"; }\\n\\n.fa-digg:before {\\n content: \\\"\\\\f1a6\\\"; }\\n\\n.fa-pied-piper:before {\\n content: \\\"\\\\f1a7\\\"; }\\n\\n.fa-pied-piper-alt:before {\\n content: \\\"\\\\f1a8\\\"; }\\n\\n.fa-drupal:before {\\n content: \\\"\\\\f1a9\\\"; }\\n\\n.fa-joomla:before {\\n content: \\\"\\\\f1aa\\\"; }\\n\\n.fa-language:before {\\n content: \\\"\\\\f1ab\\\"; }\\n\\n.fa-fax:before {\\n content: \\\"\\\\f1ac\\\"; }\\n\\n.fa-building:before {\\n content: \\\"\\\\f1ad\\\"; }\\n\\n.fa-child:before {\\n content: \\\"\\\\f1ae\\\"; }\\n\\n.fa-paw:before {\\n content: \\\"\\\\f1b0\\\"; }\\n\\n.fa-spoon:before {\\n content: \\\"\\\\f1b1\\\"; }\\n\\n.fa-cube:before {\\n content: \\\"\\\\f1b2\\\"; }\\n\\n.fa-cubes:before {\\n content: \\\"\\\\f1b3\\\"; }\\n\\n.fa-behance:before {\\n content: \\\"\\\\f1b4\\\"; }\\n\\n.fa-behance-square:before {\\n content: \\\"\\\\f1b5\\\"; }\\n\\n.fa-steam:before {\\n content: \\\"\\\\f1b6\\\"; }\\n\\n.fa-steam-square:before {\\n content: \\\"\\\\f1b7\\\"; }\\n\\n.fa-recycle:before {\\n content: \\\"\\\\f1b8\\\"; }\\n\\n.fa-automobile:before,\\n.fa-car:before {\\n content: \\\"\\\\f1b9\\\"; }\\n\\n.fa-cab:before,\\n.fa-taxi:before {\\n content: \\\"\\\\f1ba\\\"; }\\n\\n.fa-tree:before {\\n content: \\\"\\\\f1bb\\\"; }\\n\\n.fa-spotify:before {\\n content: \\\"\\\\f1bc\\\"; }\\n\\n.fa-deviantart:before {\\n content: \\\"\\\\f1bd\\\"; }\\n\\n.fa-soundcloud:before {\\n content: \\\"\\\\f1be\\\"; }\\n\\n.fa-database:before {\\n content: \\\"\\\\f1c0\\\"; }\\n\\n.fa-file-pdf-o:before {\\n content: \\\"\\\\f1c1\\\"; }\\n\\n.fa-file-word-o:before {\\n content: \\\"\\\\f1c2\\\"; }\\n\\n.fa-file-excel-o:before {\\n content: \\\"\\\\f1c3\\\"; }\\n\\n.fa-file-powerpoint-o:before {\\n content: \\\"\\\\f1c4\\\"; }\\n\\n.fa-file-photo-o:before,\\n.fa-file-picture-o:before,\\n.fa-file-image-o:before {\\n content: \\\"\\\\f1c5\\\"; }\\n\\n.fa-file-zip-o:before,\\n.fa-file-archive-o:before {\\n content: \\\"\\\\f1c6\\\"; }\\n\\n.fa-file-sound-o:before,\\n.fa-file-audio-o:before {\\n content: \\\"\\\\f1c7\\\"; }\\n\\n.fa-file-movie-o:before,\\n.fa-file-video-o:before {\\n content: \\\"\\\\f1c8\\\"; }\\n\\n.fa-file-code-o:before {\\n content: \\\"\\\\f1c9\\\"; }\\n\\n.fa-vine:before {\\n content: \\\"\\\\f1ca\\\"; }\\n\\n.fa-codepen:before {\\n content: \\\"\\\\f1cb\\\"; }\\n\\n.fa-jsfiddle:before {\\n content: \\\"\\\\f1cc\\\"; }\\n\\n.fa-life-bouy:before,\\n.fa-life-buoy:before,\\n.fa-life-saver:before,\\n.fa-support:before,\\n.fa-life-ring:before {\\n content: \\\"\\\\f1cd\\\"; }\\n\\n.fa-circle-o-notch:before {\\n content: \\\"\\\\f1ce\\\"; }\\n\\n.fa-ra:before,\\n.fa-rebel:before {\\n content: \\\"\\\\f1d0\\\"; }\\n\\n.fa-ge:before,\\n.fa-empire:before {\\n content: \\\"\\\\f1d1\\\"; }\\n\\n.fa-git-square:before {\\n content: \\\"\\\\f1d2\\\"; }\\n\\n.fa-git:before {\\n content: \\\"\\\\f1d3\\\"; }\\n\\n.fa-y-combinator-square:before,\\n.fa-yc-square:before,\\n.fa-hacker-news:before {\\n content: \\\"\\\\f1d4\\\"; }\\n\\n.fa-tencent-weibo:before {\\n content: \\\"\\\\f1d5\\\"; }\\n\\n.fa-qq:before {\\n content: \\\"\\\\f1d6\\\"; }\\n\\n.fa-wechat:before,\\n.fa-weixin:before {\\n content: \\\"\\\\f1d7\\\"; }\\n\\n.fa-send:before,\\n.fa-paper-plane:before {\\n content: \\\"\\\\f1d8\\\"; }\\n\\n.fa-send-o:before,\\n.fa-paper-plane-o:before {\\n content: \\\"\\\\f1d9\\\"; }\\n\\n.fa-history:before {\\n content: \\\"\\\\f1da\\\"; }\\n\\n.fa-circle-thin:before {\\n content: \\\"\\\\f1db\\\"; }\\n\\n.fa-header:before {\\n content: \\\"\\\\f1dc\\\"; }\\n\\n.fa-paragraph:before {\\n content: \\\"\\\\f1dd\\\"; }\\n\\n.fa-sliders:before {\\n content: \\\"\\\\f1de\\\"; }\\n\\n.fa-share-alt:before {\\n content: \\\"\\\\f1e0\\\"; }\\n\\n.fa-share-alt-square:before {\\n content: \\\"\\\\f1e1\\\"; }\\n\\n.fa-bomb:before {\\n content: \\\"\\\\f1e2\\\"; }\\n\\n.fa-soccer-ball-o:before,\\n.fa-futbol-o:before {\\n content: \\\"\\\\f1e3\\\"; }\\n\\n.fa-tty:before {\\n content: \\\"\\\\f1e4\\\"; }\\n\\n.fa-binoculars:before {\\n content: \\\"\\\\f1e5\\\"; }\\n\\n.fa-plug:before {\\n content: \\\"\\\\f1e6\\\"; }\\n\\n.fa-slideshare:before {\\n content: \\\"\\\\f1e7\\\"; }\\n\\n.fa-twitch:before {\\n content: \\\"\\\\f1e8\\\"; }\\n\\n.fa-yelp:before {\\n content: \\\"\\\\f1e9\\\"; }\\n\\n.fa-newspaper-o:before {\\n content: \\\"\\\\f1ea\\\"; }\\n\\n.fa-wifi:before {\\n content: \\\"\\\\f1eb\\\"; }\\n\\n.fa-calculator:before {\\n content: \\\"\\\\f1ec\\\"; }\\n\\n.fa-paypal:before {\\n content: \\\"\\\\f1ed\\\"; }\\n\\n.fa-google-wallet:before {\\n content: \\\"\\\\f1ee\\\"; }\\n\\n.fa-cc-visa:before {\\n content: \\\"\\\\f1f0\\\"; }\\n\\n.fa-cc-mastercard:before {\\n content: \\\"\\\\f1f1\\\"; }\\n\\n.fa-cc-discover:before {\\n content: \\\"\\\\f1f2\\\"; }\\n\\n.fa-cc-amex:before {\\n content: \\\"\\\\f1f3\\\"; }\\n\\n.fa-cc-paypal:before {\\n content: \\\"\\\\f1f4\\\"; }\\n\\n.fa-cc-stripe:before {\\n content: \\\"\\\\f1f5\\\"; }\\n\\n.fa-bell-slash:before {\\n content: \\\"\\\\f1f6\\\"; }\\n\\n.fa-bell-slash-o:before {\\n content: \\\"\\\\f1f7\\\"; }\\n\\n.fa-trash:before {\\n content: \\\"\\\\f1f8\\\"; }\\n\\n.fa-copyright:before {\\n content: \\\"\\\\f1f9\\\"; }\\n\\n.fa-at:before {\\n content: \\\"\\\\f1fa\\\"; }\\n\\n.fa-eyedropper:before {\\n content: \\\"\\\\f1fb\\\"; }\\n\\n.fa-paint-brush:before {\\n content: \\\"\\\\f1fc\\\"; }\\n\\n.fa-birthday-cake:before {\\n content: \\\"\\\\f1fd\\\"; }\\n\\n.fa-area-chart:before {\\n content: \\\"\\\\f1fe\\\"; }\\n\\n.fa-pie-chart:before {\\n content: \\\"\\\\f200\\\"; }\\n\\n.fa-line-chart:before {\\n content: \\\"\\\\f201\\\"; }\\n\\n.fa-lastfm:before {\\n content: \\\"\\\\f202\\\"; }\\n\\n.fa-lastfm-square:before {\\n content: \\\"\\\\f203\\\"; }\\n\\n.fa-toggle-off:before {\\n content: \\\"\\\\f204\\\"; }\\n\\n.fa-toggle-on:before {\\n content: \\\"\\\\f205\\\"; }\\n\\n.fa-bicycle:before {\\n content: \\\"\\\\f206\\\"; }\\n\\n.fa-bus:before {\\n content: \\\"\\\\f207\\\"; }\\n\\n.fa-ioxhost:before {\\n content: \\\"\\\\f208\\\"; }\\n\\n.fa-angellist:before {\\n content: \\\"\\\\f209\\\"; }\\n\\n.fa-cc:before {\\n content: \\\"\\\\f20a\\\"; }\\n\\n.fa-shekel:before,\\n.fa-sheqel:before,\\n.fa-ils:before {\\n content: \\\"\\\\f20b\\\"; }\\n\\n.fa-meanpath:before {\\n content: \\\"\\\\f20c\\\"; }\\n\\n.fa-buysellads:before {\\n content: \\\"\\\\f20d\\\"; }\\n\\n.fa-connectdevelop:before {\\n content: \\\"\\\\f20e\\\"; }\\n\\n.fa-dashcube:before {\\n content: \\\"\\\\f210\\\"; }\\n\\n.fa-forumbee:before {\\n content: \\\"\\\\f211\\\"; }\\n\\n.fa-leanpub:before {\\n content: \\\"\\\\f212\\\"; }\\n\\n.fa-sellsy:before {\\n content: \\\"\\\\f213\\\"; }\\n\\n.fa-shirtsinbulk:before {\\n content: \\\"\\\\f214\\\"; }\\n\\n.fa-simplybuilt:before {\\n content: \\\"\\\\f215\\\"; }\\n\\n.fa-skyatlas:before {\\n content: \\\"\\\\f216\\\"; }\\n\\n.fa-cart-plus:before {\\n content: \\\"\\\\f217\\\"; }\\n\\n.fa-cart-arrow-down:before {\\n content: \\\"\\\\f218\\\"; }\\n\\n.fa-diamond:before {\\n content: \\\"\\\\f219\\\"; }\\n\\n.fa-ship:before {\\n content: \\\"\\\\f21a\\\"; }\\n\\n.fa-user-secret:before {\\n content: \\\"\\\\f21b\\\"; }\\n\\n.fa-motorcycle:before {\\n content: \\\"\\\\f21c\\\"; }\\n\\n.fa-street-view:before {\\n content: \\\"\\\\f21d\\\"; }\\n\\n.fa-heartbeat:before {\\n content: \\\"\\\\f21e\\\"; }\\n\\n.fa-venus:before {\\n content: \\\"\\\\f221\\\"; }\\n\\n.fa-mars:before {\\n content: \\\"\\\\f222\\\"; }\\n\\n.fa-mercury:before {\\n content: \\\"\\\\f223\\\"; }\\n\\n.fa-intersex:before,\\n.fa-transgender:before {\\n content: \\\"\\\\f224\\\"; }\\n\\n.fa-transgender-alt:before {\\n content: \\\"\\\\f225\\\"; }\\n\\n.fa-venus-double:before {\\n content: \\\"\\\\f226\\\"; }\\n\\n.fa-mars-double:before {\\n content: \\\"\\\\f227\\\"; }\\n\\n.fa-venus-mars:before {\\n content: \\\"\\\\f228\\\"; }\\n\\n.fa-mars-stroke:before {\\n content: \\\"\\\\f229\\\"; }\\n\\n.fa-mars-stroke-v:before {\\n content: \\\"\\\\f22a\\\"; }\\n\\n.fa-mars-stroke-h:before {\\n content: \\\"\\\\f22b\\\"; }\\n\\n.fa-neuter:before {\\n content: \\\"\\\\f22c\\\"; }\\n\\n.fa-genderless:before {\\n content: \\\"\\\\f22d\\\"; }\\n\\n.fa-facebook-official:before {\\n content: \\\"\\\\f230\\\"; }\\n\\n.fa-pinterest-p:before {\\n content: \\\"\\\\f231\\\"; }\\n\\n.fa-whatsapp:before {\\n content: \\\"\\\\f232\\\"; }\\n\\n.fa-server:before {\\n content: \\\"\\\\f233\\\"; }\\n\\n.fa-user-plus:before {\\n content: \\\"\\\\f234\\\"; }\\n\\n.fa-user-times:before {\\n content: \\\"\\\\f235\\\"; }\\n\\n.fa-hotel:before,\\n.fa-bed:before {\\n content: \\\"\\\\f236\\\"; }\\n\\n.fa-viacoin:before {\\n content: \\\"\\\\f237\\\"; }\\n\\n.fa-train:before {\\n content: \\\"\\\\f238\\\"; }\\n\\n.fa-subway:before {\\n content: \\\"\\\\f239\\\"; }\\n\\n.fa-medium:before {\\n content: \\\"\\\\f23a\\\"; }\\n\\n.fa-yc:before,\\n.fa-y-combinator:before {\\n content: \\\"\\\\f23b\\\"; }\\n\\n.fa-optin-monster:before {\\n content: \\\"\\\\f23c\\\"; }\\n\\n.fa-opencart:before {\\n content: \\\"\\\\f23d\\\"; }\\n\\n.fa-expeditedssl:before {\\n content: \\\"\\\\f23e\\\"; }\\n\\n.fa-battery-4:before,\\n.fa-battery-full:before {\\n content: \\\"\\\\f240\\\"; }\\n\\n.fa-battery-3:before,\\n.fa-battery-three-quarters:before {\\n content: \\\"\\\\f241\\\"; }\\n\\n.fa-battery-2:before,\\n.fa-battery-half:before {\\n content: \\\"\\\\f242\\\"; }\\n\\n.fa-battery-1:before,\\n.fa-battery-quarter:before {\\n content: \\\"\\\\f243\\\"; }\\n\\n.fa-battery-0:before,\\n.fa-battery-empty:before {\\n content: \\\"\\\\f244\\\"; }\\n\\n.fa-mouse-pointer:before {\\n content: \\\"\\\\f245\\\"; }\\n\\n.fa-i-cursor:before {\\n content: \\\"\\\\f246\\\"; }\\n\\n.fa-object-group:before {\\n content: \\\"\\\\f247\\\"; }\\n\\n.fa-object-ungroup:before {\\n content: \\\"\\\\f248\\\"; }\\n\\n.fa-sticky-note:before {\\n content: \\\"\\\\f249\\\"; }\\n\\n.fa-sticky-note-o:before {\\n content: \\\"\\\\f24a\\\"; }\\n\\n.fa-cc-jcb:before {\\n content: \\\"\\\\f24b\\\"; }\\n\\n.fa-cc-diners-club:before {\\n content: \\\"\\\\f24c\\\"; }\\n\\n.fa-clone:before {\\n content: \\\"\\\\f24d\\\"; }\\n\\n.fa-balance-scale:before {\\n content: \\\"\\\\f24e\\\"; }\\n\\n.fa-hourglass-o:before {\\n content: \\\"\\\\f250\\\"; }\\n\\n.fa-hourglass-1:before,\\n.fa-hourglass-start:before {\\n content: \\\"\\\\f251\\\"; }\\n\\n.fa-hourglass-2:before,\\n.fa-hourglass-half:before {\\n content: \\\"\\\\f252\\\"; }\\n\\n.fa-hourglass-3:before,\\n.fa-hourglass-end:before {\\n content: \\\"\\\\f253\\\"; }\\n\\n.fa-hourglass:before {\\n content: \\\"\\\\f254\\\"; }\\n\\n.fa-hand-grab-o:before,\\n.fa-hand-rock-o:before {\\n content: \\\"\\\\f255\\\"; }\\n\\n.fa-hand-stop-o:before,\\n.fa-hand-paper-o:before {\\n content: \\\"\\\\f256\\\"; }\\n\\n.fa-hand-scissors-o:before {\\n content: \\\"\\\\f257\\\"; }\\n\\n.fa-hand-lizard-o:before {\\n content: \\\"\\\\f258\\\"; }\\n\\n.fa-hand-spock-o:before {\\n content: \\\"\\\\f259\\\"; }\\n\\n.fa-hand-pointer-o:before {\\n content: \\\"\\\\f25a\\\"; }\\n\\n.fa-hand-peace-o:before {\\n content: \\\"\\\\f25b\\\"; }\\n\\n.fa-trademark:before {\\n content: \\\"\\\\f25c\\\"; }\\n\\n.fa-registered:before {\\n content: \\\"\\\\f25d\\\"; }\\n\\n.fa-creative-commons:before {\\n content: \\\"\\\\f25e\\\"; }\\n\\n.fa-gg:before {\\n content: \\\"\\\\f260\\\"; }\\n\\n.fa-gg-circle:before {\\n content: \\\"\\\\f261\\\"; }\\n\\n.fa-tripadvisor:before {\\n content: \\\"\\\\f262\\\"; }\\n\\n.fa-odnoklassniki:before {\\n content: \\\"\\\\f263\\\"; }\\n\\n.fa-odnoklassniki-square:before {\\n content: \\\"\\\\f264\\\"; }\\n\\n.fa-get-pocket:before {\\n content: \\\"\\\\f265\\\"; }\\n\\n.fa-wikipedia-w:before {\\n content: \\\"\\\\f266\\\"; }\\n\\n.fa-safari:before {\\n content: \\\"\\\\f267\\\"; }\\n\\n.fa-chrome:before {\\n content: \\\"\\\\f268\\\"; }\\n\\n.fa-firefox:before {\\n content: \\\"\\\\f269\\\"; }\\n\\n.fa-opera:before {\\n content: \\\"\\\\f26a\\\"; }\\n\\n.fa-internet-explorer:before {\\n content: \\\"\\\\f26b\\\"; }\\n\\n.fa-tv:before,\\n.fa-television:before {\\n content: \\\"\\\\f26c\\\"; }\\n\\n.fa-contao:before {\\n content: \\\"\\\\f26d\\\"; }\\n\\n.fa-500px:before {\\n content: \\\"\\\\f26e\\\"; }\\n\\n.fa-amazon:before {\\n content: \\\"\\\\f270\\\"; }\\n\\n.fa-calendar-plus-o:before {\\n content: \\\"\\\\f271\\\"; }\\n\\n.fa-calendar-minus-o:before {\\n content: \\\"\\\\f272\\\"; }\\n\\n.fa-calendar-times-o:before {\\n content: \\\"\\\\f273\\\"; }\\n\\n.fa-calendar-check-o:before {\\n content: \\\"\\\\f274\\\"; }\\n\\n.fa-industry:before {\\n content: \\\"\\\\f275\\\"; }\\n\\n.fa-map-pin:before {\\n content: \\\"\\\\f276\\\"; }\\n\\n.fa-map-signs:before {\\n content: \\\"\\\\f277\\\"; }\\n\\n.fa-map-o:before {\\n content: \\\"\\\\f278\\\"; }\\n\\n.fa-map:before {\\n content: \\\"\\\\f279\\\"; }\\n\\n.fa-commenting:before {\\n content: \\\"\\\\f27a\\\"; }\\n\\n.fa-commenting-o:before {\\n content: \\\"\\\\f27b\\\"; }\\n\\n.fa-houzz:before {\\n content: \\\"\\\\f27c\\\"; }\\n\\n.fa-vimeo:before {\\n content: \\\"\\\\f27d\\\"; }\\n\\n.fa-black-tie:before {\\n content: \\\"\\\\f27e\\\"; }\\n\\n.fa-fonticons:before {\\n content: \\\"\\\\f280\\\"; }\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"../fonts/fontawesome-webfont.eot?v=4.4.0\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"../fonts/fontawesome-webfont.eot\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_2___ = new URL(\"../fonts/fontawesome-webfont.woff2?v=4.4.0\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_3___ = new URL(\"../fonts/fontawesome-webfont.woff?v=4.4.0\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_4___ = new URL(\"../fonts/fontawesome-webfont.ttf?v=4.4.0\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_5___ = new URL(\"../fonts/fontawesome-webfont.svg?v=4.4.0\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___, { hash: \"?#iefix&v=4.4.0\" });\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\nvar ___CSS_LOADER_URL_REPLACEMENT_3___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___);\nvar ___CSS_LOADER_URL_REPLACEMENT_4___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_4___);\nvar ___CSS_LOADER_URL_REPLACEMENT_5___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_5___, { hash: \"#fontawesomeregular\" });\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*! @license\n * Font Awesome 4.4.0 by @davegandy - http://fontawesome.io - @fontawesome\n * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */\n/* FONT PATH\n * -------------------------- */\n@font-face {\n font-family: 'FontAwesome';\n src: url(${___CSS_LOADER_URL_REPLACEMENT_0___});\n src: url(${___CSS_LOADER_URL_REPLACEMENT_1___}) format(\"embedded-opentype\"), url(${___CSS_LOADER_URL_REPLACEMENT_2___}) format(\"woff2\"), url(${___CSS_LOADER_URL_REPLACEMENT_3___}) format(\"woff\"), url(${___CSS_LOADER_URL_REPLACEMENT_4___}) format(\"truetype\"), url(${___CSS_LOADER_URL_REPLACEMENT_5___}) format(\"svg\");\n font-weight: normal;\n font-style: normal; }\n\n.fa {\n display: inline-block;\n font: normal normal normal 14px/1 FontAwesome;\n font-size: inherit;\n text-rendering: auto;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale; }\n\n/* makes the font 33% larger relative to the icon container */\n.fa-lg {\n font-size: 1.33333333em;\n line-height: 0.75em;\n vertical-align: -15%; }\n\n.fa-2x {\n font-size: 2em; }\n\n.fa-3x {\n font-size: 3em; }\n\n.fa-4x {\n font-size: 4em; }\n\n.fa-5x {\n font-size: 5em; }\n\n.fa-fw {\n width: 1.28571429em;\n text-align: center; }\n\n.fa-ul {\n padding-left: 0;\n margin-left: 2.14285714em;\n list-style-type: none; }\n\n.fa-ul > li {\n position: relative; }\n\n.fa-li {\n position: absolute;\n left: -2.14285714em;\n width: 2.14285714em;\n top: 0.14285714em;\n text-align: center; }\n\n.fa-li.fa-lg {\n left: -1.85714286em; }\n\n.fa-border {\n padding: 0.2em 0.25em 0.15em;\n border: solid 0.08em #eeeeee;\n border-radius: .1em; }\n\n.fa-pull-left {\n float: left; }\n\n.fa-pull-right {\n float: right; }\n\n.fa.fa-pull-left {\n margin-right: .3em; }\n\n.fa.fa-pull-right {\n margin-left: .3em; }\n\n/* Deprecated as of 4.4.0 */\n.pull-right {\n float: right; }\n\n.pull-left {\n float: left; }\n\n.fa.pull-left {\n margin-right: .3em; }\n\n.fa.pull-right {\n margin-left: .3em; }\n\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear; }\n\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8); }\n\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg); } }\n\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg); } }\n\n.fa-rotate-90 {\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);\n -webkit-transform: rotate(90deg);\n -ms-transform: rotate(90deg);\n transform: rotate(90deg); }\n\n.fa-rotate-180 {\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);\n -webkit-transform: rotate(180deg);\n -ms-transform: rotate(180deg);\n transform: rotate(180deg); }\n\n.fa-rotate-270 {\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);\n -webkit-transform: rotate(270deg);\n -ms-transform: rotate(270deg);\n transform: rotate(270deg); }\n\n.fa-flip-horizontal {\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);\n -webkit-transform: scale(-1, 1);\n -ms-transform: scale(-1, 1);\n transform: scale(-1, 1); }\n\n.fa-flip-vertical {\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);\n -webkit-transform: scale(1, -1);\n -ms-transform: scale(1, -1);\n transform: scale(1, -1); }\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical {\n filter: none; }\n\n.fa-stack {\n position: relative;\n display: inline-block;\n width: 2em;\n height: 2em;\n line-height: 2em;\n vertical-align: middle; }\n\n.fa-stack-1x,\n.fa-stack-2x {\n position: absolute;\n left: 0;\n width: 100%;\n text-align: center; }\n\n.fa-stack-1x {\n line-height: inherit; }\n\n.fa-stack-2x {\n font-size: 2em; }\n\n.fa-inverse {\n color: #ffffff; }\n\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n readers do not read off random characters that represent icons */\n.fa-glass:before {\n content: \"\\\\f000\"; }\n\n.fa-music:before {\n content: \"\\\\f001\"; }\n\n.fa-search:before {\n content: \"\\\\f002\"; }\n\n.fa-envelope-o:before {\n content: \"\\\\f003\"; }\n\n.fa-heart:before {\n content: \"\\\\f004\"; }\n\n.fa-star:before {\n content: \"\\\\f005\"; }\n\n.fa-star-o:before {\n content: \"\\\\f006\"; }\n\n.fa-user:before {\n content: \"\\\\f007\"; }\n\n.fa-film:before {\n content: \"\\\\f008\"; }\n\n.fa-th-large:before {\n content: \"\\\\f009\"; }\n\n.fa-th:before {\n content: \"\\\\f00a\"; }\n\n.fa-th-list:before {\n content: \"\\\\f00b\"; }\n\n.fa-check:before {\n content: \"\\\\f00c\"; }\n\n.fa-remove:before,\n.fa-close:before,\n.fa-times:before {\n content: \"\\\\f00d\"; }\n\n.fa-search-plus:before {\n content: \"\\\\f00e\"; }\n\n.fa-search-minus:before {\n content: \"\\\\f010\"; }\n\n.fa-power-off:before {\n content: \"\\\\f011\"; }\n\n.fa-signal:before {\n content: \"\\\\f012\"; }\n\n.fa-gear:before,\n.fa-cog:before {\n content: \"\\\\f013\"; }\n\n.fa-trash-o:before {\n content: \"\\\\f014\"; }\n\n.fa-home:before {\n content: \"\\\\f015\"; }\n\n.fa-file-o:before {\n content: \"\\\\f016\"; }\n\n.fa-clock-o:before {\n content: \"\\\\f017\"; }\n\n.fa-road:before {\n content: \"\\\\f018\"; }\n\n.fa-download:before {\n content: \"\\\\f019\"; }\n\n.fa-arrow-circle-o-down:before {\n content: \"\\\\f01a\"; }\n\n.fa-arrow-circle-o-up:before {\n content: \"\\\\f01b\"; }\n\n.fa-inbox:before {\n content: \"\\\\f01c\"; }\n\n.fa-play-circle-o:before {\n content: \"\\\\f01d\"; }\n\n.fa-rotate-right:before,\n.fa-repeat:before {\n content: \"\\\\f01e\"; }\n\n.fa-refresh:before {\n content: \"\\\\f021\"; }\n\n.fa-list-alt:before {\n content: \"\\\\f022\"; }\n\n.fa-lock:before {\n content: \"\\\\f023\"; }\n\n.fa-flag:before {\n content: \"\\\\f024\"; }\n\n.fa-headphones:before {\n content: \"\\\\f025\"; }\n\n.fa-volume-off:before {\n content: \"\\\\f026\"; }\n\n.fa-volume-down:before {\n content: \"\\\\f027\"; }\n\n.fa-volume-up:before {\n content: \"\\\\f028\"; }\n\n.fa-qrcode:before {\n content: \"\\\\f029\"; }\n\n.fa-barcode:before {\n content: \"\\\\f02a\"; }\n\n.fa-tag:before {\n content: \"\\\\f02b\"; }\n\n.fa-tags:before {\n content: \"\\\\f02c\"; }\n\n.fa-book:before {\n content: \"\\\\f02d\"; }\n\n.fa-bookmark:before {\n content: \"\\\\f02e\"; }\n\n.fa-print:before {\n content: \"\\\\f02f\"; }\n\n.fa-camera:before {\n content: \"\\\\f030\"; }\n\n.fa-font:before {\n content: \"\\\\f031\"; }\n\n.fa-bold:before {\n content: \"\\\\f032\"; }\n\n.fa-italic:before {\n content: \"\\\\f033\"; }\n\n.fa-text-height:before {\n content: \"\\\\f034\"; }\n\n.fa-text-width:before {\n content: \"\\\\f035\"; }\n\n.fa-align-left:before {\n content: \"\\\\f036\"; }\n\n.fa-align-center:before {\n content: \"\\\\f037\"; }\n\n.fa-align-right:before {\n content: \"\\\\f038\"; }\n\n.fa-align-justify:before {\n content: \"\\\\f039\"; }\n\n.fa-list:before {\n content: \"\\\\f03a\"; }\n\n.fa-dedent:before,\n.fa-outdent:before {\n content: \"\\\\f03b\"; }\n\n.fa-indent:before {\n content: \"\\\\f03c\"; }\n\n.fa-video-camera:before {\n content: \"\\\\f03d\"; }\n\n.fa-photo:before,\n.fa-image:before,\n.fa-picture-o:before {\n content: \"\\\\f03e\"; }\n\n.fa-pencil:before {\n content: \"\\\\f040\"; }\n\n.fa-map-marker:before {\n content: \"\\\\f041\"; }\n\n.fa-adjust:before {\n content: \"\\\\f042\"; }\n\n.fa-tint:before {\n content: \"\\\\f043\"; }\n\n.fa-edit:before,\n.fa-pencil-square-o:before {\n content: \"\\\\f044\"; }\n\n.fa-share-square-o:before {\n content: \"\\\\f045\"; }\n\n.fa-check-square-o:before {\n content: \"\\\\f046\"; }\n\n.fa-arrows:before {\n content: \"\\\\f047\"; }\n\n.fa-step-backward:before {\n content: \"\\\\f048\"; }\n\n.fa-fast-backward:before {\n content: \"\\\\f049\"; }\n\n.fa-backward:before {\n content: \"\\\\f04a\"; }\n\n.fa-play:before {\n content: \"\\\\f04b\"; }\n\n.fa-pause:before {\n content: \"\\\\f04c\"; }\n\n.fa-stop:before {\n content: \"\\\\f04d\"; }\n\n.fa-forward:before {\n content: \"\\\\f04e\"; }\n\n.fa-fast-forward:before {\n content: \"\\\\f050\"; }\n\n.fa-step-forward:before {\n content: \"\\\\f051\"; }\n\n.fa-eject:before {\n content: \"\\\\f052\"; }\n\n.fa-chevron-left:before {\n content: \"\\\\f053\"; }\n\n.fa-chevron-right:before {\n content: \"\\\\f054\"; }\n\n.fa-plus-circle:before {\n content: \"\\\\f055\"; }\n\n.fa-minus-circle:before {\n content: \"\\\\f056\"; }\n\n.fa-times-circle:before {\n content: \"\\\\f057\"; }\n\n.fa-check-circle:before {\n content: \"\\\\f058\"; }\n\n.fa-question-circle:before {\n content: \"\\\\f059\"; }\n\n.fa-info-circle:before {\n content: \"\\\\f05a\"; }\n\n.fa-crosshairs:before {\n content: \"\\\\f05b\"; }\n\n.fa-times-circle-o:before {\n content: \"\\\\f05c\"; }\n\n.fa-check-circle-o:before {\n content: \"\\\\f05d\"; }\n\n.fa-ban:before {\n content: \"\\\\f05e\"; }\n\n.fa-arrow-left:before {\n content: \"\\\\f060\"; }\n\n.fa-arrow-right:before {\n content: \"\\\\f061\"; }\n\n.fa-arrow-up:before {\n content: \"\\\\f062\"; }\n\n.fa-arrow-down:before {\n content: \"\\\\f063\"; }\n\n.fa-mail-forward:before,\n.fa-share:before {\n content: \"\\\\f064\"; }\n\n.fa-expand:before {\n content: \"\\\\f065\"; }\n\n.fa-compress:before {\n content: \"\\\\f066\"; }\n\n.fa-plus:before {\n content: \"\\\\f067\"; }\n\n.fa-minus:before {\n content: \"\\\\f068\"; }\n\n.fa-asterisk:before {\n content: \"\\\\f069\"; }\n\n.fa-exclamation-circle:before {\n content: \"\\\\f06a\"; }\n\n.fa-gift:before {\n content: \"\\\\f06b\"; }\n\n.fa-leaf:before {\n content: \"\\\\f06c\"; }\n\n.fa-fire:before {\n content: \"\\\\f06d\"; }\n\n.fa-eye:before {\n content: \"\\\\f06e\"; }\n\n.fa-eye-slash:before {\n content: \"\\\\f070\"; }\n\n.fa-warning:before,\n.fa-exclamation-triangle:before {\n content: \"\\\\f071\"; }\n\n.fa-plane:before {\n content: \"\\\\f072\"; }\n\n.fa-calendar:before {\n content: \"\\\\f073\"; }\n\n.fa-random:before {\n content: \"\\\\f074\"; }\n\n.fa-comment:before {\n content: \"\\\\f075\"; }\n\n.fa-magnet:before {\n content: \"\\\\f076\"; }\n\n.fa-chevron-up:before {\n content: \"\\\\f077\"; }\n\n.fa-chevron-down:before {\n content: \"\\\\f078\"; }\n\n.fa-retweet:before {\n content: \"\\\\f079\"; }\n\n.fa-shopping-cart:before {\n content: \"\\\\f07a\"; }\n\n.fa-folder:before {\n content: \"\\\\f07b\"; }\n\n.fa-folder-open:before {\n content: \"\\\\f07c\"; }\n\n.fa-arrows-v:before {\n content: \"\\\\f07d\"; }\n\n.fa-arrows-h:before {\n content: \"\\\\f07e\"; }\n\n.fa-bar-chart-o:before,\n.fa-bar-chart:before {\n content: \"\\\\f080\"; }\n\n.fa-twitter-square:before {\n content: \"\\\\f081\"; }\n\n.fa-facebook-square:before {\n content: \"\\\\f082\"; }\n\n.fa-camera-retro:before {\n content: \"\\\\f083\"; }\n\n.fa-key:before {\n content: \"\\\\f084\"; }\n\n.fa-gears:before,\n.fa-cogs:before {\n content: \"\\\\f085\"; }\n\n.fa-comments:before {\n content: \"\\\\f086\"; }\n\n.fa-thumbs-o-up:before {\n content: \"\\\\f087\"; }\n\n.fa-thumbs-o-down:before {\n content: \"\\\\f088\"; }\n\n.fa-star-half:before {\n content: \"\\\\f089\"; }\n\n.fa-heart-o:before {\n content: \"\\\\f08a\"; }\n\n.fa-sign-out:before {\n content: \"\\\\f08b\"; }\n\n.fa-linkedin-square:before {\n content: \"\\\\f08c\"; }\n\n.fa-thumb-tack:before {\n content: \"\\\\f08d\"; }\n\n.fa-external-link:before {\n content: \"\\\\f08e\"; }\n\n.fa-sign-in:before {\n content: \"\\\\f090\"; }\n\n.fa-trophy:before {\n content: \"\\\\f091\"; }\n\n.fa-github-square:before {\n content: \"\\\\f092\"; }\n\n.fa-upload:before {\n content: \"\\\\f093\"; }\n\n.fa-lemon-o:before {\n content: \"\\\\f094\"; }\n\n.fa-phone:before {\n content: \"\\\\f095\"; }\n\n.fa-square-o:before {\n content: \"\\\\f096\"; }\n\n.fa-bookmark-o:before {\n content: \"\\\\f097\"; }\n\n.fa-phone-square:before {\n content: \"\\\\f098\"; }\n\n.fa-twitter:before {\n content: \"\\\\f099\"; }\n\n.fa-facebook-f:before,\n.fa-facebook:before {\n content: \"\\\\f09a\"; }\n\n.fa-github:before {\n content: \"\\\\f09b\"; }\n\n.fa-unlock:before {\n content: \"\\\\f09c\"; }\n\n.fa-credit-card:before {\n content: \"\\\\f09d\"; }\n\n.fa-feed:before,\n.fa-rss:before {\n content: \"\\\\f09e\"; }\n\n.fa-hdd-o:before {\n content: \"\\\\f0a0\"; }\n\n.fa-bullhorn:before {\n content: \"\\\\f0a1\"; }\n\n.fa-bell:before {\n content: \"\\\\f0f3\"; }\n\n.fa-certificate:before {\n content: \"\\\\f0a3\"; }\n\n.fa-hand-o-right:before {\n content: \"\\\\f0a4\"; }\n\n.fa-hand-o-left:before {\n content: \"\\\\f0a5\"; }\n\n.fa-hand-o-up:before {\n content: \"\\\\f0a6\"; }\n\n.fa-hand-o-down:before {\n content: \"\\\\f0a7\"; }\n\n.fa-arrow-circle-left:before {\n content: \"\\\\f0a8\"; }\n\n.fa-arrow-circle-right:before {\n content: \"\\\\f0a9\"; }\n\n.fa-arrow-circle-up:before {\n content: \"\\\\f0aa\"; }\n\n.fa-arrow-circle-down:before {\n content: \"\\\\f0ab\"; }\n\n.fa-globe:before {\n content: \"\\\\f0ac\"; }\n\n.fa-wrench:before {\n content: \"\\\\f0ad\"; }\n\n.fa-tasks:before {\n content: \"\\\\f0ae\"; }\n\n.fa-filter:before {\n content: \"\\\\f0b0\"; }\n\n.fa-briefcase:before {\n content: \"\\\\f0b1\"; }\n\n.fa-arrows-alt:before {\n content: \"\\\\f0b2\"; }\n\n.fa-group:before,\n.fa-users:before {\n content: \"\\\\f0c0\"; }\n\n.fa-chain:before,\n.fa-link:before {\n content: \"\\\\f0c1\"; }\n\n.fa-cloud:before {\n content: \"\\\\f0c2\"; }\n\n.fa-flask:before {\n content: \"\\\\f0c3\"; }\n\n.fa-cut:before,\n.fa-scissors:before {\n content: \"\\\\f0c4\"; }\n\n.fa-copy:before,\n.fa-files-o:before {\n content: \"\\\\f0c5\"; }\n\n.fa-paperclip:before {\n content: \"\\\\f0c6\"; }\n\n.fa-save:before,\n.fa-floppy-o:before {\n content: \"\\\\f0c7\"; }\n\n.fa-square:before {\n content: \"\\\\f0c8\"; }\n\n.fa-navicon:before,\n.fa-reorder:before,\n.fa-bars:before {\n content: \"\\\\f0c9\"; }\n\n.fa-list-ul:before {\n content: \"\\\\f0ca\"; }\n\n.fa-list-ol:before {\n content: \"\\\\f0cb\"; }\n\n.fa-strikethrough:before {\n content: \"\\\\f0cc\"; }\n\n.fa-underline:before {\n content: \"\\\\f0cd\"; }\n\n.fa-table:before {\n content: \"\\\\f0ce\"; }\n\n.fa-magic:before {\n content: \"\\\\f0d0\"; }\n\n.fa-truck:before {\n content: \"\\\\f0d1\"; }\n\n.fa-pinterest:before {\n content: \"\\\\f0d2\"; }\n\n.fa-pinterest-square:before {\n content: \"\\\\f0d3\"; }\n\n.fa-google-plus-square:before {\n content: \"\\\\f0d4\"; }\n\n.fa-google-plus:before {\n content: \"\\\\f0d5\"; }\n\n.fa-money:before {\n content: \"\\\\f0d6\"; }\n\n.fa-caret-down:before {\n content: \"\\\\f0d7\"; }\n\n.fa-caret-up:before {\n content: \"\\\\f0d8\"; }\n\n.fa-caret-left:before {\n content: \"\\\\f0d9\"; }\n\n.fa-caret-right:before {\n content: \"\\\\f0da\"; }\n\n.fa-columns:before {\n content: \"\\\\f0db\"; }\n\n.fa-unsorted:before,\n.fa-sort:before {\n content: \"\\\\f0dc\"; }\n\n.fa-sort-down:before,\n.fa-sort-desc:before {\n content: \"\\\\f0dd\"; }\n\n.fa-sort-up:before,\n.fa-sort-asc:before {\n content: \"\\\\f0de\"; }\n\n.fa-envelope:before {\n content: \"\\\\f0e0\"; }\n\n.fa-linkedin:before {\n content: \"\\\\f0e1\"; }\n\n.fa-rotate-left:before,\n.fa-undo:before {\n content: \"\\\\f0e2\"; }\n\n.fa-legal:before,\n.fa-gavel:before {\n content: \"\\\\f0e3\"; }\n\n.fa-dashboard:before,\n.fa-tachometer:before {\n content: \"\\\\f0e4\"; }\n\n.fa-comment-o:before {\n content: \"\\\\f0e5\"; }\n\n.fa-comments-o:before {\n content: \"\\\\f0e6\"; }\n\n.fa-flash:before,\n.fa-bolt:before {\n content: \"\\\\f0e7\"; }\n\n.fa-sitemap:before {\n content: \"\\\\f0e8\"; }\n\n.fa-umbrella:before {\n content: \"\\\\f0e9\"; }\n\n.fa-paste:before,\n.fa-clipboard:before {\n content: \"\\\\f0ea\"; }\n\n.fa-lightbulb-o:before {\n content: \"\\\\f0eb\"; }\n\n.fa-exchange:before {\n content: \"\\\\f0ec\"; }\n\n.fa-cloud-download:before {\n content: \"\\\\f0ed\"; }\n\n.fa-cloud-upload:before {\n content: \"\\\\f0ee\"; }\n\n.fa-user-md:before {\n content: \"\\\\f0f0\"; }\n\n.fa-stethoscope:before {\n content: \"\\\\f0f1\"; }\n\n.fa-suitcase:before {\n content: \"\\\\f0f2\"; }\n\n.fa-bell-o:before {\n content: \"\\\\f0a2\"; }\n\n.fa-coffee:before {\n content: \"\\\\f0f4\"; }\n\n.fa-cutlery:before {\n content: \"\\\\f0f5\"; }\n\n.fa-file-text-o:before {\n content: \"\\\\f0f6\"; }\n\n.fa-building-o:before {\n content: \"\\\\f0f7\"; }\n\n.fa-hospital-o:before {\n content: \"\\\\f0f8\"; }\n\n.fa-ambulance:before {\n content: \"\\\\f0f9\"; }\n\n.fa-medkit:before {\n content: \"\\\\f0fa\"; }\n\n.fa-fighter-jet:before {\n content: \"\\\\f0fb\"; }\n\n.fa-beer:before {\n content: \"\\\\f0fc\"; }\n\n.fa-h-square:before {\n content: \"\\\\f0fd\"; }\n\n.fa-plus-square:before {\n content: \"\\\\f0fe\"; }\n\n.fa-angle-double-left:before {\n content: \"\\\\f100\"; }\n\n.fa-angle-double-right:before {\n content: \"\\\\f101\"; }\n\n.fa-angle-double-up:before {\n content: \"\\\\f102\"; }\n\n.fa-angle-double-down:before {\n content: \"\\\\f103\"; }\n\n.fa-angle-left:before {\n content: \"\\\\f104\"; }\n\n.fa-angle-right:before {\n content: \"\\\\f105\"; }\n\n.fa-angle-up:before {\n content: \"\\\\f106\"; }\n\n.fa-angle-down:before {\n content: \"\\\\f107\"; }\n\n.fa-desktop:before {\n content: \"\\\\f108\"; }\n\n.fa-laptop:before {\n content: \"\\\\f109\"; }\n\n.fa-tablet:before {\n content: \"\\\\f10a\"; }\n\n.fa-mobile-phone:before,\n.fa-mobile:before {\n content: \"\\\\f10b\"; }\n\n.fa-circle-o:before {\n content: \"\\\\f10c\"; }\n\n.fa-quote-left:before {\n content: \"\\\\f10d\"; }\n\n.fa-quote-right:before {\n content: \"\\\\f10e\"; }\n\n.fa-spinner:before {\n content: \"\\\\f110\"; }\n\n.fa-circle:before {\n content: \"\\\\f111\"; }\n\n.fa-mail-reply:before,\n.fa-reply:before {\n content: \"\\\\f112\"; }\n\n.fa-github-alt:before {\n content: \"\\\\f113\"; }\n\n.fa-folder-o:before {\n content: \"\\\\f114\"; }\n\n.fa-folder-open-o:before {\n content: \"\\\\f115\"; }\n\n.fa-smile-o:before {\n content: \"\\\\f118\"; }\n\n.fa-frown-o:before {\n content: \"\\\\f119\"; }\n\n.fa-meh-o:before {\n content: \"\\\\f11a\"; }\n\n.fa-gamepad:before {\n content: \"\\\\f11b\"; }\n\n.fa-keyboard-o:before {\n content: \"\\\\f11c\"; }\n\n.fa-flag-o:before {\n content: \"\\\\f11d\"; }\n\n.fa-flag-checkered:before {\n content: \"\\\\f11e\"; }\n\n.fa-terminal:before {\n content: \"\\\\f120\"; }\n\n.fa-code:before {\n content: \"\\\\f121\"; }\n\n.fa-mail-reply-all:before,\n.fa-reply-all:before {\n content: \"\\\\f122\"; }\n\n.fa-star-half-empty:before,\n.fa-star-half-full:before,\n.fa-star-half-o:before {\n content: \"\\\\f123\"; }\n\n.fa-location-arrow:before {\n content: \"\\\\f124\"; }\n\n.fa-crop:before {\n content: \"\\\\f125\"; }\n\n.fa-code-fork:before {\n content: \"\\\\f126\"; }\n\n.fa-unlink:before,\n.fa-chain-broken:before {\n content: \"\\\\f127\"; }\n\n.fa-question:before {\n content: \"\\\\f128\"; }\n\n.fa-info:before {\n content: \"\\\\f129\"; }\n\n.fa-exclamation:before {\n content: \"\\\\f12a\"; }\n\n.fa-superscript:before {\n content: \"\\\\f12b\"; }\n\n.fa-subscript:before {\n content: \"\\\\f12c\"; }\n\n.fa-eraser:before {\n content: \"\\\\f12d\"; }\n\n.fa-puzzle-piece:before {\n content: \"\\\\f12e\"; }\n\n.fa-microphone:before {\n content: \"\\\\f130\"; }\n\n.fa-microphone-slash:before {\n content: \"\\\\f131\"; }\n\n.fa-shield:before {\n content: \"\\\\f132\"; }\n\n.fa-calendar-o:before {\n content: \"\\\\f133\"; }\n\n.fa-fire-extinguisher:before {\n content: \"\\\\f134\"; }\n\n.fa-rocket:before {\n content: \"\\\\f135\"; }\n\n.fa-maxcdn:before {\n content: \"\\\\f136\"; }\n\n.fa-chevron-circle-left:before {\n content: \"\\\\f137\"; }\n\n.fa-chevron-circle-right:before {\n content: \"\\\\f138\"; }\n\n.fa-chevron-circle-up:before {\n content: \"\\\\f139\"; }\n\n.fa-chevron-circle-down:before {\n content: \"\\\\f13a\"; }\n\n.fa-html5:before {\n content: \"\\\\f13b\"; }\n\n.fa-css3:before {\n content: \"\\\\f13c\"; }\n\n.fa-anchor:before {\n content: \"\\\\f13d\"; }\n\n.fa-unlock-alt:before {\n content: \"\\\\f13e\"; }\n\n.fa-bullseye:before {\n content: \"\\\\f140\"; }\n\n.fa-ellipsis-h:before {\n content: \"\\\\f141\"; }\n\n.fa-ellipsis-v:before {\n content: \"\\\\f142\"; }\n\n.fa-rss-square:before {\n content: \"\\\\f143\"; }\n\n.fa-play-circle:before {\n content: \"\\\\f144\"; }\n\n.fa-ticket:before {\n content: \"\\\\f145\"; }\n\n.fa-minus-square:before {\n content: \"\\\\f146\"; }\n\n.fa-minus-square-o:before {\n content: \"\\\\f147\"; }\n\n.fa-level-up:before {\n content: \"\\\\f148\"; }\n\n.fa-level-down:before {\n content: \"\\\\f149\"; }\n\n.fa-check-square:before {\n content: \"\\\\f14a\"; }\n\n.fa-pencil-square:before {\n content: \"\\\\f14b\"; }\n\n.fa-external-link-square:before {\n content: \"\\\\f14c\"; }\n\n.fa-share-square:before {\n content: \"\\\\f14d\"; }\n\n.fa-compass:before {\n content: \"\\\\f14e\"; }\n\n.fa-toggle-down:before,\n.fa-caret-square-o-down:before {\n content: \"\\\\f150\"; }\n\n.fa-toggle-up:before,\n.fa-caret-square-o-up:before {\n content: \"\\\\f151\"; }\n\n.fa-toggle-right:before,\n.fa-caret-square-o-right:before {\n content: \"\\\\f152\"; }\n\n.fa-euro:before,\n.fa-eur:before {\n content: \"\\\\f153\"; }\n\n.fa-gbp:before {\n content: \"\\\\f154\"; }\n\n.fa-dollar:before,\n.fa-usd:before {\n content: \"\\\\f155\"; }\n\n.fa-rupee:before,\n.fa-inr:before {\n content: \"\\\\f156\"; }\n\n.fa-cny:before,\n.fa-rmb:before,\n.fa-yen:before,\n.fa-jpy:before {\n content: \"\\\\f157\"; }\n\n.fa-ruble:before,\n.fa-rouble:before,\n.fa-rub:before {\n content: \"\\\\f158\"; }\n\n.fa-won:before,\n.fa-krw:before {\n content: \"\\\\f159\"; }\n\n.fa-bitcoin:before,\n.fa-btc:before {\n content: \"\\\\f15a\"; }\n\n.fa-file:before {\n content: \"\\\\f15b\"; }\n\n.fa-file-text:before {\n content: \"\\\\f15c\"; }\n\n.fa-sort-alpha-asc:before {\n content: \"\\\\f15d\"; }\n\n.fa-sort-alpha-desc:before {\n content: \"\\\\f15e\"; }\n\n.fa-sort-amount-asc:before {\n content: \"\\\\f160\"; }\n\n.fa-sort-amount-desc:before {\n content: \"\\\\f161\"; }\n\n.fa-sort-numeric-asc:before {\n content: \"\\\\f162\"; }\n\n.fa-sort-numeric-desc:before {\n content: \"\\\\f163\"; }\n\n.fa-thumbs-up:before {\n content: \"\\\\f164\"; }\n\n.fa-thumbs-down:before {\n content: \"\\\\f165\"; }\n\n.fa-youtube-square:before {\n content: \"\\\\f166\"; }\n\n.fa-youtube:before {\n content: \"\\\\f167\"; }\n\n.fa-xing:before {\n content: \"\\\\f168\"; }\n\n.fa-xing-square:before {\n content: \"\\\\f169\"; }\n\n.fa-youtube-play:before {\n content: \"\\\\f16a\"; }\n\n.fa-dropbox:before {\n content: \"\\\\f16b\"; }\n\n.fa-stack-overflow:before {\n content: \"\\\\f16c\"; }\n\n.fa-instagram:before {\n content: \"\\\\f16d\"; }\n\n.fa-flickr:before {\n content: \"\\\\f16e\"; }\n\n.fa-adn:before {\n content: \"\\\\f170\"; }\n\n.fa-bitbucket:before {\n content: \"\\\\f171\"; }\n\n.fa-bitbucket-square:before {\n content: \"\\\\f172\"; }\n\n.fa-tumblr:before {\n content: \"\\\\f173\"; }\n\n.fa-tumblr-square:before {\n content: \"\\\\f174\"; }\n\n.fa-long-arrow-down:before {\n content: \"\\\\f175\"; }\n\n.fa-long-arrow-up:before {\n content: \"\\\\f176\"; }\n\n.fa-long-arrow-left:before {\n content: \"\\\\f177\"; }\n\n.fa-long-arrow-right:before {\n content: \"\\\\f178\"; }\n\n.fa-apple:before {\n content: \"\\\\f179\"; }\n\n.fa-windows:before {\n content: \"\\\\f17a\"; }\n\n.fa-android:before {\n content: \"\\\\f17b\"; }\n\n.fa-linux:before {\n content: \"\\\\f17c\"; }\n\n.fa-dribbble:before {\n content: \"\\\\f17d\"; }\n\n.fa-skype:before {\n content: \"\\\\f17e\"; }\n\n.fa-foursquare:before {\n content: \"\\\\f180\"; }\n\n.fa-trello:before {\n content: \"\\\\f181\"; }\n\n.fa-female:before {\n content: \"\\\\f182\"; }\n\n.fa-male:before {\n content: \"\\\\f183\"; }\n\n.fa-gittip:before,\n.fa-gratipay:before {\n content: \"\\\\f184\"; }\n\n.fa-sun-o:before {\n content: \"\\\\f185\"; }\n\n.fa-moon-o:before {\n content: \"\\\\f186\"; }\n\n.fa-archive:before {\n content: \"\\\\f187\"; }\n\n.fa-bug:before {\n content: \"\\\\f188\"; }\n\n.fa-vk:before {\n content: \"\\\\f189\"; }\n\n.fa-weibo:before {\n content: \"\\\\f18a\"; }\n\n.fa-renren:before {\n content: \"\\\\f18b\"; }\n\n.fa-pagelines:before {\n content: \"\\\\f18c\"; }\n\n.fa-stack-exchange:before {\n content: \"\\\\f18d\"; }\n\n.fa-arrow-circle-o-right:before {\n content: \"\\\\f18e\"; }\n\n.fa-arrow-circle-o-left:before {\n content: \"\\\\f190\"; }\n\n.fa-toggle-left:before,\n.fa-caret-square-o-left:before {\n content: \"\\\\f191\"; }\n\n.fa-dot-circle-o:before {\n content: \"\\\\f192\"; }\n\n.fa-wheelchair:before {\n content: \"\\\\f193\"; }\n\n.fa-vimeo-square:before {\n content: \"\\\\f194\"; }\n\n.fa-turkish-lira:before,\n.fa-try:before {\n content: \"\\\\f195\"; }\n\n.fa-plus-square-o:before {\n content: \"\\\\f196\"; }\n\n.fa-space-shuttle:before {\n content: \"\\\\f197\"; }\n\n.fa-slack:before {\n content: \"\\\\f198\"; }\n\n.fa-envelope-square:before {\n content: \"\\\\f199\"; }\n\n.fa-wordpress:before {\n content: \"\\\\f19a\"; }\n\n.fa-openid:before {\n content: \"\\\\f19b\"; }\n\n.fa-institution:before,\n.fa-bank:before,\n.fa-university:before {\n content: \"\\\\f19c\"; }\n\n.fa-mortar-board:before,\n.fa-graduation-cap:before {\n content: \"\\\\f19d\"; }\n\n.fa-yahoo:before {\n content: \"\\\\f19e\"; }\n\n.fa-google:before {\n content: \"\\\\f1a0\"; }\n\n.fa-reddit:before {\n content: \"\\\\f1a1\"; }\n\n.fa-reddit-square:before {\n content: \"\\\\f1a2\"; }\n\n.fa-stumbleupon-circle:before {\n content: \"\\\\f1a3\"; }\n\n.fa-stumbleupon:before {\n content: \"\\\\f1a4\"; }\n\n.fa-delicious:before {\n content: \"\\\\f1a5\"; }\n\n.fa-digg:before {\n content: \"\\\\f1a6\"; }\n\n.fa-pied-piper:before {\n content: \"\\\\f1a7\"; }\n\n.fa-pied-piper-alt:before {\n content: \"\\\\f1a8\"; }\n\n.fa-drupal:before {\n content: \"\\\\f1a9\"; }\n\n.fa-joomla:before {\n content: \"\\\\f1aa\"; }\n\n.fa-language:before {\n content: \"\\\\f1ab\"; }\n\n.fa-fax:before {\n content: \"\\\\f1ac\"; }\n\n.fa-building:before {\n content: \"\\\\f1ad\"; }\n\n.fa-child:before {\n content: \"\\\\f1ae\"; }\n\n.fa-paw:before {\n content: \"\\\\f1b0\"; }\n\n.fa-spoon:before {\n content: \"\\\\f1b1\"; }\n\n.fa-cube:before {\n content: \"\\\\f1b2\"; }\n\n.fa-cubes:before {\n content: \"\\\\f1b3\"; }\n\n.fa-behance:before {\n content: \"\\\\f1b4\"; }\n\n.fa-behance-square:before {\n content: \"\\\\f1b5\"; }\n\n.fa-steam:before {\n content: \"\\\\f1b6\"; }\n\n.fa-steam-square:before {\n content: \"\\\\f1b7\"; }\n\n.fa-recycle:before {\n content: \"\\\\f1b8\"; }\n\n.fa-automobile:before,\n.fa-car:before {\n content: \"\\\\f1b9\"; }\n\n.fa-cab:before,\n.fa-taxi:before {\n content: \"\\\\f1ba\"; }\n\n.fa-tree:before {\n content: \"\\\\f1bb\"; }\n\n.fa-spotify:before {\n content: \"\\\\f1bc\"; }\n\n.fa-deviantart:before {\n content: \"\\\\f1bd\"; }\n\n.fa-soundcloud:before {\n content: \"\\\\f1be\"; }\n\n.fa-database:before {\n content: \"\\\\f1c0\"; }\n\n.fa-file-pdf-o:before {\n content: \"\\\\f1c1\"; }\n\n.fa-file-word-o:before {\n content: \"\\\\f1c2\"; }\n\n.fa-file-excel-o:before {\n content: \"\\\\f1c3\"; }\n\n.fa-file-powerpoint-o:before {\n content: \"\\\\f1c4\"; }\n\n.fa-file-photo-o:before,\n.fa-file-picture-o:before,\n.fa-file-image-o:before {\n content: \"\\\\f1c5\"; }\n\n.fa-file-zip-o:before,\n.fa-file-archive-o:before {\n content: \"\\\\f1c6\"; }\n\n.fa-file-sound-o:before,\n.fa-file-audio-o:before {\n content: \"\\\\f1c7\"; }\n\n.fa-file-movie-o:before,\n.fa-file-video-o:before {\n content: \"\\\\f1c8\"; }\n\n.fa-file-code-o:before {\n content: \"\\\\f1c9\"; }\n\n.fa-vine:before {\n content: \"\\\\f1ca\"; }\n\n.fa-codepen:before {\n content: \"\\\\f1cb\"; }\n\n.fa-jsfiddle:before {\n content: \"\\\\f1cc\"; }\n\n.fa-life-bouy:before,\n.fa-life-buoy:before,\n.fa-life-saver:before,\n.fa-support:before,\n.fa-life-ring:before {\n content: \"\\\\f1cd\"; }\n\n.fa-circle-o-notch:before {\n content: \"\\\\f1ce\"; }\n\n.fa-ra:before,\n.fa-rebel:before {\n content: \"\\\\f1d0\"; }\n\n.fa-ge:before,\n.fa-empire:before {\n content: \"\\\\f1d1\"; }\n\n.fa-git-square:before {\n content: \"\\\\f1d2\"; }\n\n.fa-git:before {\n content: \"\\\\f1d3\"; }\n\n.fa-y-combinator-square:before,\n.fa-yc-square:before,\n.fa-hacker-news:before {\n content: \"\\\\f1d4\"; }\n\n.fa-tencent-weibo:before {\n content: \"\\\\f1d5\"; }\n\n.fa-qq:before {\n content: \"\\\\f1d6\"; }\n\n.fa-wechat:before,\n.fa-weixin:before {\n content: \"\\\\f1d7\"; }\n\n.fa-send:before,\n.fa-paper-plane:before {\n content: \"\\\\f1d8\"; }\n\n.fa-send-o:before,\n.fa-paper-plane-o:before {\n content: \"\\\\f1d9\"; }\n\n.fa-history:before {\n content: \"\\\\f1da\"; }\n\n.fa-circle-thin:before {\n content: \"\\\\f1db\"; }\n\n.fa-header:before {\n content: \"\\\\f1dc\"; }\n\n.fa-paragraph:before {\n content: \"\\\\f1dd\"; }\n\n.fa-sliders:before {\n content: \"\\\\f1de\"; }\n\n.fa-share-alt:before {\n content: \"\\\\f1e0\"; }\n\n.fa-share-alt-square:before {\n content: \"\\\\f1e1\"; }\n\n.fa-bomb:before {\n content: \"\\\\f1e2\"; }\n\n.fa-soccer-ball-o:before,\n.fa-futbol-o:before {\n content: \"\\\\f1e3\"; }\n\n.fa-tty:before {\n content: \"\\\\f1e4\"; }\n\n.fa-binoculars:before {\n content: \"\\\\f1e5\"; }\n\n.fa-plug:before {\n content: \"\\\\f1e6\"; }\n\n.fa-slideshare:before {\n content: \"\\\\f1e7\"; }\n\n.fa-twitch:before {\n content: \"\\\\f1e8\"; }\n\n.fa-yelp:before {\n content: \"\\\\f1e9\"; }\n\n.fa-newspaper-o:before {\n content: \"\\\\f1ea\"; }\n\n.fa-wifi:before {\n content: \"\\\\f1eb\"; }\n\n.fa-calculator:before {\n content: \"\\\\f1ec\"; }\n\n.fa-paypal:before {\n content: \"\\\\f1ed\"; }\n\n.fa-google-wallet:before {\n content: \"\\\\f1ee\"; }\n\n.fa-cc-visa:before {\n content: \"\\\\f1f0\"; }\n\n.fa-cc-mastercard:before {\n content: \"\\\\f1f1\"; }\n\n.fa-cc-discover:before {\n content: \"\\\\f1f2\"; }\n\n.fa-cc-amex:before {\n content: \"\\\\f1f3\"; }\n\n.fa-cc-paypal:before {\n content: \"\\\\f1f4\"; }\n\n.fa-cc-stripe:before {\n content: \"\\\\f1f5\"; }\n\n.fa-bell-slash:before {\n content: \"\\\\f1f6\"; }\n\n.fa-bell-slash-o:before {\n content: \"\\\\f1f7\"; }\n\n.fa-trash:before {\n content: \"\\\\f1f8\"; }\n\n.fa-copyright:before {\n content: \"\\\\f1f9\"; }\n\n.fa-at:before {\n content: \"\\\\f1fa\"; }\n\n.fa-eyedropper:before {\n content: \"\\\\f1fb\"; }\n\n.fa-paint-brush:before {\n content: \"\\\\f1fc\"; }\n\n.fa-birthday-cake:before {\n content: \"\\\\f1fd\"; }\n\n.fa-area-chart:before {\n content: \"\\\\f1fe\"; }\n\n.fa-pie-chart:before {\n content: \"\\\\f200\"; }\n\n.fa-line-chart:before {\n content: \"\\\\f201\"; }\n\n.fa-lastfm:before {\n content: \"\\\\f202\"; }\n\n.fa-lastfm-square:before {\n content: \"\\\\f203\"; }\n\n.fa-toggle-off:before {\n content: \"\\\\f204\"; }\n\n.fa-toggle-on:before {\n content: \"\\\\f205\"; }\n\n.fa-bicycle:before {\n content: \"\\\\f206\"; }\n\n.fa-bus:before {\n content: \"\\\\f207\"; }\n\n.fa-ioxhost:before {\n content: \"\\\\f208\"; }\n\n.fa-angellist:before {\n content: \"\\\\f209\"; }\n\n.fa-cc:before {\n content: \"\\\\f20a\"; }\n\n.fa-shekel:before,\n.fa-sheqel:before,\n.fa-ils:before {\n content: \"\\\\f20b\"; }\n\n.fa-meanpath:before {\n content: \"\\\\f20c\"; }\n\n.fa-buysellads:before {\n content: \"\\\\f20d\"; }\n\n.fa-connectdevelop:before {\n content: \"\\\\f20e\"; }\n\n.fa-dashcube:before {\n content: \"\\\\f210\"; }\n\n.fa-forumbee:before {\n content: \"\\\\f211\"; }\n\n.fa-leanpub:before {\n content: \"\\\\f212\"; }\n\n.fa-sellsy:before {\n content: \"\\\\f213\"; }\n\n.fa-shirtsinbulk:before {\n content: \"\\\\f214\"; }\n\n.fa-simplybuilt:before {\n content: \"\\\\f215\"; }\n\n.fa-skyatlas:before {\n content: \"\\\\f216\"; }\n\n.fa-cart-plus:before {\n content: \"\\\\f217\"; }\n\n.fa-cart-arrow-down:before {\n content: \"\\\\f218\"; }\n\n.fa-diamond:before {\n content: \"\\\\f219\"; }\n\n.fa-ship:before {\n content: \"\\\\f21a\"; }\n\n.fa-user-secret:before {\n content: \"\\\\f21b\"; }\n\n.fa-motorcycle:before {\n content: \"\\\\f21c\"; }\n\n.fa-street-view:before {\n content: \"\\\\f21d\"; }\n\n.fa-heartbeat:before {\n content: \"\\\\f21e\"; }\n\n.fa-venus:before {\n content: \"\\\\f221\"; }\n\n.fa-mars:before {\n content: \"\\\\f222\"; }\n\n.fa-mercury:before {\n content: \"\\\\f223\"; }\n\n.fa-intersex:before,\n.fa-transgender:before {\n content: \"\\\\f224\"; }\n\n.fa-transgender-alt:before {\n content: \"\\\\f225\"; }\n\n.fa-venus-double:before {\n content: \"\\\\f226\"; }\n\n.fa-mars-double:before {\n content: \"\\\\f227\"; }\n\n.fa-venus-mars:before {\n content: \"\\\\f228\"; }\n\n.fa-mars-stroke:before {\n content: \"\\\\f229\"; }\n\n.fa-mars-stroke-v:before {\n content: \"\\\\f22a\"; }\n\n.fa-mars-stroke-h:before {\n content: \"\\\\f22b\"; }\n\n.fa-neuter:before {\n content: \"\\\\f22c\"; }\n\n.fa-genderless:before {\n content: \"\\\\f22d\"; }\n\n.fa-facebook-official:before {\n content: \"\\\\f230\"; }\n\n.fa-pinterest-p:before {\n content: \"\\\\f231\"; }\n\n.fa-whatsapp:before {\n content: \"\\\\f232\"; }\n\n.fa-server:before {\n content: \"\\\\f233\"; }\n\n.fa-user-plus:before {\n content: \"\\\\f234\"; }\n\n.fa-user-times:before {\n content: \"\\\\f235\"; }\n\n.fa-hotel:before,\n.fa-bed:before {\n content: \"\\\\f236\"; }\n\n.fa-viacoin:before {\n content: \"\\\\f237\"; }\n\n.fa-train:before {\n content: \"\\\\f238\"; }\n\n.fa-subway:before {\n content: \"\\\\f239\"; }\n\n.fa-medium:before {\n content: \"\\\\f23a\"; }\n\n.fa-yc:before,\n.fa-y-combinator:before {\n content: \"\\\\f23b\"; }\n\n.fa-optin-monster:before {\n content: \"\\\\f23c\"; }\n\n.fa-opencart:before {\n content: \"\\\\f23d\"; }\n\n.fa-expeditedssl:before {\n content: \"\\\\f23e\"; }\n\n.fa-battery-4:before,\n.fa-battery-full:before {\n content: \"\\\\f240\"; }\n\n.fa-battery-3:before,\n.fa-battery-three-quarters:before {\n content: \"\\\\f241\"; }\n\n.fa-battery-2:before,\n.fa-battery-half:before {\n content: \"\\\\f242\"; }\n\n.fa-battery-1:before,\n.fa-battery-quarter:before {\n content: \"\\\\f243\"; }\n\n.fa-battery-0:before,\n.fa-battery-empty:before {\n content: \"\\\\f244\"; }\n\n.fa-mouse-pointer:before {\n content: \"\\\\f245\"; }\n\n.fa-i-cursor:before {\n content: \"\\\\f246\"; }\n\n.fa-object-group:before {\n content: \"\\\\f247\"; }\n\n.fa-object-ungroup:before {\n content: \"\\\\f248\"; }\n\n.fa-sticky-note:before {\n content: \"\\\\f249\"; }\n\n.fa-sticky-note-o:before {\n content: \"\\\\f24a\"; }\n\n.fa-cc-jcb:before {\n content: \"\\\\f24b\"; }\n\n.fa-cc-diners-club:before {\n content: \"\\\\f24c\"; }\n\n.fa-clone:before {\n content: \"\\\\f24d\"; }\n\n.fa-balance-scale:before {\n content: \"\\\\f24e\"; }\n\n.fa-hourglass-o:before {\n content: \"\\\\f250\"; }\n\n.fa-hourglass-1:before,\n.fa-hourglass-start:before {\n content: \"\\\\f251\"; }\n\n.fa-hourglass-2:before,\n.fa-hourglass-half:before {\n content: \"\\\\f252\"; }\n\n.fa-hourglass-3:before,\n.fa-hourglass-end:before {\n content: \"\\\\f253\"; }\n\n.fa-hourglass:before {\n content: \"\\\\f254\"; }\n\n.fa-hand-grab-o:before,\n.fa-hand-rock-o:before {\n content: \"\\\\f255\"; }\n\n.fa-hand-stop-o:before,\n.fa-hand-paper-o:before {\n content: \"\\\\f256\"; }\n\n.fa-hand-scissors-o:before {\n content: \"\\\\f257\"; }\n\n.fa-hand-lizard-o:before {\n content: \"\\\\f258\"; }\n\n.fa-hand-spock-o:before {\n content: \"\\\\f259\"; }\n\n.fa-hand-pointer-o:before {\n content: \"\\\\f25a\"; }\n\n.fa-hand-peace-o:before {\n content: \"\\\\f25b\"; }\n\n.fa-trademark:before {\n content: \"\\\\f25c\"; }\n\n.fa-registered:before {\n content: \"\\\\f25d\"; }\n\n.fa-creative-commons:before {\n content: \"\\\\f25e\"; }\n\n.fa-gg:before {\n content: \"\\\\f260\"; }\n\n.fa-gg-circle:before {\n content: \"\\\\f261\"; }\n\n.fa-tripadvisor:before {\n content: \"\\\\f262\"; }\n\n.fa-odnoklassniki:before {\n content: \"\\\\f263\"; }\n\n.fa-odnoklassniki-square:before {\n content: \"\\\\f264\"; }\n\n.fa-get-pocket:before {\n content: \"\\\\f265\"; }\n\n.fa-wikipedia-w:before {\n content: \"\\\\f266\"; }\n\n.fa-safari:before {\n content: \"\\\\f267\"; }\n\n.fa-chrome:before {\n content: \"\\\\f268\"; }\n\n.fa-firefox:before {\n content: \"\\\\f269\"; }\n\n.fa-opera:before {\n content: \"\\\\f26a\"; }\n\n.fa-internet-explorer:before {\n content: \"\\\\f26b\"; }\n\n.fa-tv:before,\n.fa-television:before {\n content: \"\\\\f26c\"; }\n\n.fa-contao:before {\n content: \"\\\\f26d\"; }\n\n.fa-500px:before {\n content: \"\\\\f26e\"; }\n\n.fa-amazon:before {\n content: \"\\\\f270\"; }\n\n.fa-calendar-plus-o:before {\n content: \"\\\\f271\"; }\n\n.fa-calendar-minus-o:before {\n content: \"\\\\f272\"; }\n\n.fa-calendar-times-o:before {\n content: \"\\\\f273\"; }\n\n.fa-calendar-check-o:before {\n content: \"\\\\f274\"; }\n\n.fa-industry:before {\n content: \"\\\\f275\"; }\n\n.fa-map-pin:before {\n content: \"\\\\f276\"; }\n\n.fa-map-signs:before {\n content: \"\\\\f277\"; }\n\n.fa-map-o:before {\n content: \"\\\\f278\"; }\n\n.fa-map:before {\n content: \"\\\\f279\"; }\n\n.fa-commenting:before {\n content: \"\\\\f27a\"; }\n\n.fa-commenting-o:before {\n content: \"\\\\f27b\"; }\n\n.fa-houzz:before {\n content: \"\\\\f27c\"; }\n\n.fa-vimeo:before {\n content: \"\\\\f27d\"; }\n\n.fa-black-tie:before {\n content: \"\\\\f27e\"; }\n\n.fa-fonticons:before {\n content: \"\\\\f280\"; }\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./enterprise/fonts/fontawesome/css/font-awesome.css\"],\"names\":[],\"mappings\":\"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CE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;;EAGE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;;EAGE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;;EAGE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;;;EAIE,gBAAgB,EAAE;;AAEpB;;;EAGE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;;EAGE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;;EAGE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;;;;EAKE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;;EAGE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;;EAGE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;;EAEE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE\",\"sourcesContent\":[\"/*! @license\\n * Font Awesome 4.4.0 by @davegandy - http://fontawesome.io - @fontawesome\\n * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\\n */\\n/* FONT PATH\\n * -------------------------- */\\n@font-face {\\n font-family: 'FontAwesome';\\n src: url(\\\"../fonts/fontawesome-webfont.eot?v=4.4.0\\\");\\n src: url(\\\"../fonts/fontawesome-webfont.eot?#iefix&v=4.4.0\\\") format(\\\"embedded-opentype\\\"), url(\\\"../fonts/fontawesome-webfont.woff2?v=4.4.0\\\") format(\\\"woff2\\\"), url(\\\"../fonts/fontawesome-webfont.woff?v=4.4.0\\\") format(\\\"woff\\\"), url(\\\"../fonts/fontawesome-webfont.ttf?v=4.4.0\\\") format(\\\"truetype\\\"), url(\\\"../fonts/fontawesome-webfont.svg?v=4.4.0#fontawesomeregular\\\") format(\\\"svg\\\");\\n font-weight: normal;\\n font-style: normal; }\\n\\n.fa {\\n display: inline-block;\\n font: normal normal normal 14px/1 FontAwesome;\\n font-size: inherit;\\n text-rendering: auto;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale; }\\n\\n/* makes the font 33% larger relative to the icon container */\\n.fa-lg {\\n font-size: 1.33333333em;\\n line-height: 0.75em;\\n vertical-align: -15%; }\\n\\n.fa-2x {\\n font-size: 2em; }\\n\\n.fa-3x {\\n font-size: 3em; }\\n\\n.fa-4x {\\n font-size: 4em; }\\n\\n.fa-5x {\\n font-size: 5em; }\\n\\n.fa-fw {\\n width: 1.28571429em;\\n text-align: center; }\\n\\n.fa-ul {\\n padding-left: 0;\\n margin-left: 2.14285714em;\\n list-style-type: none; }\\n\\n.fa-ul > li {\\n position: relative; }\\n\\n.fa-li {\\n position: absolute;\\n left: -2.14285714em;\\n width: 2.14285714em;\\n top: 0.14285714em;\\n text-align: center; }\\n\\n.fa-li.fa-lg {\\n left: -1.85714286em; }\\n\\n.fa-border {\\n padding: 0.2em 0.25em 0.15em;\\n border: solid 0.08em #eeeeee;\\n border-radius: .1em; }\\n\\n.fa-pull-left {\\n float: left; }\\n\\n.fa-pull-right {\\n float: right; }\\n\\n.fa.fa-pull-left {\\n margin-right: .3em; }\\n\\n.fa.fa-pull-right {\\n margin-left: .3em; }\\n\\n/* Deprecated as of 4.4.0 */\\n.pull-right {\\n float: right; }\\n\\n.pull-left {\\n float: left; }\\n\\n.fa.pull-left {\\n margin-right: .3em; }\\n\\n.fa.pull-right {\\n margin-left: .3em; }\\n\\n.fa-spin {\\n -webkit-animation: fa-spin 2s infinite linear;\\n animation: fa-spin 2s infinite linear; }\\n\\n.fa-pulse {\\n -webkit-animation: fa-spin 1s infinite steps(8);\\n animation: fa-spin 1s infinite steps(8); }\\n\\n@-webkit-keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg); }\\n 100% {\\n -webkit-transform: rotate(359deg);\\n transform: rotate(359deg); } }\\n\\n@keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg); }\\n 100% {\\n -webkit-transform: rotate(359deg);\\n transform: rotate(359deg); } }\\n\\n.fa-rotate-90 {\\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);\\n -webkit-transform: rotate(90deg);\\n -ms-transform: rotate(90deg);\\n transform: rotate(90deg); }\\n\\n.fa-rotate-180 {\\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);\\n -webkit-transform: rotate(180deg);\\n -ms-transform: rotate(180deg);\\n transform: rotate(180deg); }\\n\\n.fa-rotate-270 {\\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);\\n -webkit-transform: rotate(270deg);\\n -ms-transform: rotate(270deg);\\n transform: rotate(270deg); }\\n\\n.fa-flip-horizontal {\\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);\\n -webkit-transform: scale(-1, 1);\\n -ms-transform: scale(-1, 1);\\n transform: scale(-1, 1); }\\n\\n.fa-flip-vertical {\\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);\\n -webkit-transform: scale(1, -1);\\n -ms-transform: scale(1, -1);\\n transform: scale(1, -1); }\\n\\n:root .fa-rotate-90,\\n:root .fa-rotate-180,\\n:root .fa-rotate-270,\\n:root .fa-flip-horizontal,\\n:root .fa-flip-vertical {\\n filter: none; }\\n\\n.fa-stack {\\n position: relative;\\n display: inline-block;\\n width: 2em;\\n height: 2em;\\n line-height: 2em;\\n vertical-align: middle; }\\n\\n.fa-stack-1x,\\n.fa-stack-2x {\\n position: absolute;\\n left: 0;\\n width: 100%;\\n text-align: center; }\\n\\n.fa-stack-1x {\\n line-height: inherit; }\\n\\n.fa-stack-2x {\\n font-size: 2em; }\\n\\n.fa-inverse {\\n color: #ffffff; }\\n\\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\\n readers do not read off random characters that represent icons */\\n.fa-glass:before {\\n content: \\\"\\\\f000\\\"; }\\n\\n.fa-music:before {\\n content: \\\"\\\\f001\\\"; }\\n\\n.fa-search:before {\\n content: \\\"\\\\f002\\\"; }\\n\\n.fa-envelope-o:before {\\n content: \\\"\\\\f003\\\"; }\\n\\n.fa-heart:before {\\n content: \\\"\\\\f004\\\"; }\\n\\n.fa-star:before {\\n content: \\\"\\\\f005\\\"; }\\n\\n.fa-star-o:before {\\n content: \\\"\\\\f006\\\"; }\\n\\n.fa-user:before {\\n content: \\\"\\\\f007\\\"; }\\n\\n.fa-film:before {\\n content: \\\"\\\\f008\\\"; }\\n\\n.fa-th-large:before {\\n content: \\\"\\\\f009\\\"; }\\n\\n.fa-th:before {\\n content: \\\"\\\\f00a\\\"; }\\n\\n.fa-th-list:before {\\n content: \\\"\\\\f00b\\\"; }\\n\\n.fa-check:before {\\n content: \\\"\\\\f00c\\\"; }\\n\\n.fa-remove:before,\\n.fa-close:before,\\n.fa-times:before {\\n content: \\\"\\\\f00d\\\"; }\\n\\n.fa-search-plus:before {\\n content: \\\"\\\\f00e\\\"; }\\n\\n.fa-search-minus:before {\\n content: \\\"\\\\f010\\\"; }\\n\\n.fa-power-off:before {\\n content: \\\"\\\\f011\\\"; }\\n\\n.fa-signal:before {\\n content: \\\"\\\\f012\\\"; }\\n\\n.fa-gear:before,\\n.fa-cog:before {\\n content: \\\"\\\\f013\\\"; }\\n\\n.fa-trash-o:before {\\n content: \\\"\\\\f014\\\"; }\\n\\n.fa-home:before {\\n content: \\\"\\\\f015\\\"; }\\n\\n.fa-file-o:before {\\n content: \\\"\\\\f016\\\"; }\\n\\n.fa-clock-o:before {\\n content: \\\"\\\\f017\\\"; }\\n\\n.fa-road:before {\\n content: \\\"\\\\f018\\\"; }\\n\\n.fa-download:before {\\n content: \\\"\\\\f019\\\"; }\\n\\n.fa-arrow-circle-o-down:before {\\n content: \\\"\\\\f01a\\\"; }\\n\\n.fa-arrow-circle-o-up:before {\\n content: \\\"\\\\f01b\\\"; }\\n\\n.fa-inbox:before {\\n content: \\\"\\\\f01c\\\"; }\\n\\n.fa-play-circle-o:before {\\n content: \\\"\\\\f01d\\\"; }\\n\\n.fa-rotate-right:before,\\n.fa-repeat:before {\\n content: \\\"\\\\f01e\\\"; }\\n\\n.fa-refresh:before {\\n content: \\\"\\\\f021\\\"; }\\n\\n.fa-list-alt:before {\\n content: \\\"\\\\f022\\\"; }\\n\\n.fa-lock:before {\\n content: \\\"\\\\f023\\\"; }\\n\\n.fa-flag:before {\\n content: \\\"\\\\f024\\\"; }\\n\\n.fa-headphones:before {\\n content: \\\"\\\\f025\\\"; }\\n\\n.fa-volume-off:before {\\n content: \\\"\\\\f026\\\"; }\\n\\n.fa-volume-down:before {\\n content: \\\"\\\\f027\\\"; }\\n\\n.fa-volume-up:before {\\n content: \\\"\\\\f028\\\"; }\\n\\n.fa-qrcode:before {\\n content: \\\"\\\\f029\\\"; }\\n\\n.fa-barcode:before {\\n content: \\\"\\\\f02a\\\"; }\\n\\n.fa-tag:before {\\n content: \\\"\\\\f02b\\\"; }\\n\\n.fa-tags:before {\\n content: \\\"\\\\f02c\\\"; }\\n\\n.fa-book:before {\\n content: \\\"\\\\f02d\\\"; }\\n\\n.fa-bookmark:before {\\n content: \\\"\\\\f02e\\\"; }\\n\\n.fa-print:before {\\n content: \\\"\\\\f02f\\\"; }\\n\\n.fa-camera:before {\\n content: \\\"\\\\f030\\\"; }\\n\\n.fa-font:before {\\n content: \\\"\\\\f031\\\"; }\\n\\n.fa-bold:before {\\n content: \\\"\\\\f032\\\"; }\\n\\n.fa-italic:before {\\n content: \\\"\\\\f033\\\"; }\\n\\n.fa-text-height:before {\\n content: \\\"\\\\f034\\\"; }\\n\\n.fa-text-width:before {\\n content: \\\"\\\\f035\\\"; }\\n\\n.fa-align-left:before {\\n content: \\\"\\\\f036\\\"; }\\n\\n.fa-align-center:before {\\n content: \\\"\\\\f037\\\"; }\\n\\n.fa-align-right:before {\\n content: \\\"\\\\f038\\\"; }\\n\\n.fa-align-justify:before {\\n content: \\\"\\\\f039\\\"; }\\n\\n.fa-list:before {\\n content: \\\"\\\\f03a\\\"; }\\n\\n.fa-dedent:before,\\n.fa-outdent:before {\\n content: \\\"\\\\f03b\\\"; }\\n\\n.fa-indent:before {\\n content: \\\"\\\\f03c\\\"; }\\n\\n.fa-video-camera:before {\\n content: \\\"\\\\f03d\\\"; }\\n\\n.fa-photo:before,\\n.fa-image:before,\\n.fa-picture-o:before {\\n content: \\\"\\\\f03e\\\"; }\\n\\n.fa-pencil:before {\\n content: \\\"\\\\f040\\\"; }\\n\\n.fa-map-marker:before {\\n content: \\\"\\\\f041\\\"; }\\n\\n.fa-adjust:before {\\n content: \\\"\\\\f042\\\"; }\\n\\n.fa-tint:before {\\n content: \\\"\\\\f043\\\"; }\\n\\n.fa-edit:before,\\n.fa-pencil-square-o:before {\\n content: \\\"\\\\f044\\\"; }\\n\\n.fa-share-square-o:before {\\n content: \\\"\\\\f045\\\"; }\\n\\n.fa-check-square-o:before {\\n content: \\\"\\\\f046\\\"; }\\n\\n.fa-arrows:before {\\n content: \\\"\\\\f047\\\"; }\\n\\n.fa-step-backward:before {\\n content: \\\"\\\\f048\\\"; }\\n\\n.fa-fast-backward:before {\\n content: \\\"\\\\f049\\\"; }\\n\\n.fa-backward:before {\\n content: \\\"\\\\f04a\\\"; }\\n\\n.fa-play:before {\\n content: \\\"\\\\f04b\\\"; }\\n\\n.fa-pause:before {\\n content: \\\"\\\\f04c\\\"; }\\n\\n.fa-stop:before {\\n content: \\\"\\\\f04d\\\"; }\\n\\n.fa-forward:before {\\n content: \\\"\\\\f04e\\\"; }\\n\\n.fa-fast-forward:before {\\n content: \\\"\\\\f050\\\"; }\\n\\n.fa-step-forward:before {\\n content: \\\"\\\\f051\\\"; }\\n\\n.fa-eject:before {\\n content: \\\"\\\\f052\\\"; }\\n\\n.fa-chevron-left:before {\\n content: \\\"\\\\f053\\\"; }\\n\\n.fa-chevron-right:before {\\n content: \\\"\\\\f054\\\"; }\\n\\n.fa-plus-circle:before {\\n content: \\\"\\\\f055\\\"; }\\n\\n.fa-minus-circle:before {\\n content: \\\"\\\\f056\\\"; }\\n\\n.fa-times-circle:before {\\n content: \\\"\\\\f057\\\"; }\\n\\n.fa-check-circle:before {\\n content: \\\"\\\\f058\\\"; }\\n\\n.fa-question-circle:before {\\n content: \\\"\\\\f059\\\"; }\\n\\n.fa-info-circle:before {\\n content: \\\"\\\\f05a\\\"; }\\n\\n.fa-crosshairs:before {\\n content: \\\"\\\\f05b\\\"; }\\n\\n.fa-times-circle-o:before {\\n content: \\\"\\\\f05c\\\"; }\\n\\n.fa-check-circle-o:before {\\n content: \\\"\\\\f05d\\\"; }\\n\\n.fa-ban:before {\\n content: \\\"\\\\f05e\\\"; }\\n\\n.fa-arrow-left:before {\\n content: \\\"\\\\f060\\\"; }\\n\\n.fa-arrow-right:before {\\n content: \\\"\\\\f061\\\"; }\\n\\n.fa-arrow-up:before {\\n content: \\\"\\\\f062\\\"; }\\n\\n.fa-arrow-down:before {\\n content: \\\"\\\\f063\\\"; }\\n\\n.fa-mail-forward:before,\\n.fa-share:before {\\n content: \\\"\\\\f064\\\"; }\\n\\n.fa-expand:before {\\n content: \\\"\\\\f065\\\"; }\\n\\n.fa-compress:before {\\n content: \\\"\\\\f066\\\"; }\\n\\n.fa-plus:before {\\n content: \\\"\\\\f067\\\"; }\\n\\n.fa-minus:before {\\n content: \\\"\\\\f068\\\"; }\\n\\n.fa-asterisk:before {\\n content: \\\"\\\\f069\\\"; }\\n\\n.fa-exclamation-circle:before {\\n content: \\\"\\\\f06a\\\"; }\\n\\n.fa-gift:before {\\n content: \\\"\\\\f06b\\\"; }\\n\\n.fa-leaf:before {\\n content: \\\"\\\\f06c\\\"; }\\n\\n.fa-fire:before {\\n content: \\\"\\\\f06d\\\"; }\\n\\n.fa-eye:before {\\n content: \\\"\\\\f06e\\\"; }\\n\\n.fa-eye-slash:before {\\n content: \\\"\\\\f070\\\"; }\\n\\n.fa-warning:before,\\n.fa-exclamation-triangle:before {\\n content: \\\"\\\\f071\\\"; }\\n\\n.fa-plane:before {\\n content: \\\"\\\\f072\\\"; }\\n\\n.fa-calendar:before {\\n content: \\\"\\\\f073\\\"; }\\n\\n.fa-random:before {\\n content: \\\"\\\\f074\\\"; }\\n\\n.fa-comment:before {\\n content: \\\"\\\\f075\\\"; }\\n\\n.fa-magnet:before {\\n content: \\\"\\\\f076\\\"; }\\n\\n.fa-chevron-up:before {\\n content: \\\"\\\\f077\\\"; }\\n\\n.fa-chevron-down:before {\\n content: \\\"\\\\f078\\\"; }\\n\\n.fa-retweet:before {\\n content: \\\"\\\\f079\\\"; }\\n\\n.fa-shopping-cart:before {\\n content: \\\"\\\\f07a\\\"; }\\n\\n.fa-folder:before {\\n content: \\\"\\\\f07b\\\"; }\\n\\n.fa-folder-open:before {\\n content: \\\"\\\\f07c\\\"; }\\n\\n.fa-arrows-v:before {\\n content: \\\"\\\\f07d\\\"; }\\n\\n.fa-arrows-h:before {\\n content: \\\"\\\\f07e\\\"; }\\n\\n.fa-bar-chart-o:before,\\n.fa-bar-chart:before {\\n content: \\\"\\\\f080\\\"; }\\n\\n.fa-twitter-square:before {\\n content: \\\"\\\\f081\\\"; }\\n\\n.fa-facebook-square:before {\\n content: \\\"\\\\f082\\\"; }\\n\\n.fa-camera-retro:before {\\n content: \\\"\\\\f083\\\"; }\\n\\n.fa-key:before {\\n content: \\\"\\\\f084\\\"; }\\n\\n.fa-gears:before,\\n.fa-cogs:before {\\n content: \\\"\\\\f085\\\"; }\\n\\n.fa-comments:before {\\n content: \\\"\\\\f086\\\"; }\\n\\n.fa-thumbs-o-up:before {\\n content: \\\"\\\\f087\\\"; }\\n\\n.fa-thumbs-o-down:before {\\n content: \\\"\\\\f088\\\"; }\\n\\n.fa-star-half:before {\\n content: \\\"\\\\f089\\\"; }\\n\\n.fa-heart-o:before {\\n content: \\\"\\\\f08a\\\"; }\\n\\n.fa-sign-out:before {\\n content: \\\"\\\\f08b\\\"; }\\n\\n.fa-linkedin-square:before {\\n content: \\\"\\\\f08c\\\"; }\\n\\n.fa-thumb-tack:before {\\n content: \\\"\\\\f08d\\\"; }\\n\\n.fa-external-link:before {\\n content: \\\"\\\\f08e\\\"; }\\n\\n.fa-sign-in:before {\\n content: \\\"\\\\f090\\\"; }\\n\\n.fa-trophy:before {\\n content: \\\"\\\\f091\\\"; }\\n\\n.fa-github-square:before {\\n content: \\\"\\\\f092\\\"; }\\n\\n.fa-upload:before {\\n content: \\\"\\\\f093\\\"; }\\n\\n.fa-lemon-o:before {\\n content: \\\"\\\\f094\\\"; }\\n\\n.fa-phone:before {\\n content: \\\"\\\\f095\\\"; }\\n\\n.fa-square-o:before {\\n content: \\\"\\\\f096\\\"; }\\n\\n.fa-bookmark-o:before {\\n content: \\\"\\\\f097\\\"; }\\n\\n.fa-phone-square:before {\\n content: \\\"\\\\f098\\\"; }\\n\\n.fa-twitter:before {\\n content: \\\"\\\\f099\\\"; }\\n\\n.fa-facebook-f:before,\\n.fa-facebook:before {\\n content: \\\"\\\\f09a\\\"; }\\n\\n.fa-github:before {\\n content: \\\"\\\\f09b\\\"; }\\n\\n.fa-unlock:before {\\n content: \\\"\\\\f09c\\\"; }\\n\\n.fa-credit-card:before {\\n content: \\\"\\\\f09d\\\"; }\\n\\n.fa-feed:before,\\n.fa-rss:before {\\n content: \\\"\\\\f09e\\\"; }\\n\\n.fa-hdd-o:before {\\n content: \\\"\\\\f0a0\\\"; }\\n\\n.fa-bullhorn:before {\\n content: \\\"\\\\f0a1\\\"; }\\n\\n.fa-bell:before {\\n content: \\\"\\\\f0f3\\\"; }\\n\\n.fa-certificate:before {\\n content: \\\"\\\\f0a3\\\"; }\\n\\n.fa-hand-o-right:before {\\n content: \\\"\\\\f0a4\\\"; }\\n\\n.fa-hand-o-left:before {\\n content: \\\"\\\\f0a5\\\"; }\\n\\n.fa-hand-o-up:before {\\n content: \\\"\\\\f0a6\\\"; }\\n\\n.fa-hand-o-down:before {\\n content: \\\"\\\\f0a7\\\"; }\\n\\n.fa-arrow-circle-left:before {\\n content: \\\"\\\\f0a8\\\"; }\\n\\n.fa-arrow-circle-right:before {\\n content: \\\"\\\\f0a9\\\"; }\\n\\n.fa-arrow-circle-up:before {\\n content: \\\"\\\\f0aa\\\"; }\\n\\n.fa-arrow-circle-down:before {\\n content: \\\"\\\\f0ab\\\"; }\\n\\n.fa-globe:before {\\n content: \\\"\\\\f0ac\\\"; }\\n\\n.fa-wrench:before {\\n content: \\\"\\\\f0ad\\\"; }\\n\\n.fa-tasks:before {\\n content: \\\"\\\\f0ae\\\"; }\\n\\n.fa-filter:before {\\n content: \\\"\\\\f0b0\\\"; }\\n\\n.fa-briefcase:before {\\n content: \\\"\\\\f0b1\\\"; }\\n\\n.fa-arrows-alt:before {\\n content: \\\"\\\\f0b2\\\"; }\\n\\n.fa-group:before,\\n.fa-users:before {\\n content: \\\"\\\\f0c0\\\"; }\\n\\n.fa-chain:before,\\n.fa-link:before {\\n content: \\\"\\\\f0c1\\\"; }\\n\\n.fa-cloud:before {\\n content: \\\"\\\\f0c2\\\"; }\\n\\n.fa-flask:before {\\n content: \\\"\\\\f0c3\\\"; }\\n\\n.fa-cut:before,\\n.fa-scissors:before {\\n content: \\\"\\\\f0c4\\\"; }\\n\\n.fa-copy:before,\\n.fa-files-o:before {\\n content: \\\"\\\\f0c5\\\"; }\\n\\n.fa-paperclip:before {\\n content: \\\"\\\\f0c6\\\"; }\\n\\n.fa-save:before,\\n.fa-floppy-o:before {\\n content: \\\"\\\\f0c7\\\"; }\\n\\n.fa-square:before {\\n content: \\\"\\\\f0c8\\\"; }\\n\\n.fa-navicon:before,\\n.fa-reorder:before,\\n.fa-bars:before {\\n content: \\\"\\\\f0c9\\\"; }\\n\\n.fa-list-ul:before {\\n content: \\\"\\\\f0ca\\\"; }\\n\\n.fa-list-ol:before {\\n content: \\\"\\\\f0cb\\\"; }\\n\\n.fa-strikethrough:before {\\n content: \\\"\\\\f0cc\\\"; }\\n\\n.fa-underline:before {\\n content: \\\"\\\\f0cd\\\"; }\\n\\n.fa-table:before {\\n content: \\\"\\\\f0ce\\\"; }\\n\\n.fa-magic:before {\\n content: \\\"\\\\f0d0\\\"; }\\n\\n.fa-truck:before {\\n content: \\\"\\\\f0d1\\\"; }\\n\\n.fa-pinterest:before {\\n content: \\\"\\\\f0d2\\\"; }\\n\\n.fa-pinterest-square:before {\\n content: \\\"\\\\f0d3\\\"; }\\n\\n.fa-google-plus-square:before {\\n content: \\\"\\\\f0d4\\\"; }\\n\\n.fa-google-plus:before {\\n content: \\\"\\\\f0d5\\\"; }\\n\\n.fa-money:before {\\n content: \\\"\\\\f0d6\\\"; }\\n\\n.fa-caret-down:before {\\n content: \\\"\\\\f0d7\\\"; }\\n\\n.fa-caret-up:before {\\n content: \\\"\\\\f0d8\\\"; }\\n\\n.fa-caret-left:before {\\n content: \\\"\\\\f0d9\\\"; }\\n\\n.fa-caret-right:before {\\n content: \\\"\\\\f0da\\\"; }\\n\\n.fa-columns:before {\\n content: \\\"\\\\f0db\\\"; }\\n\\n.fa-unsorted:before,\\n.fa-sort:before {\\n content: \\\"\\\\f0dc\\\"; }\\n\\n.fa-sort-down:before,\\n.fa-sort-desc:before {\\n content: \\\"\\\\f0dd\\\"; }\\n\\n.fa-sort-up:before,\\n.fa-sort-asc:before {\\n content: \\\"\\\\f0de\\\"; }\\n\\n.fa-envelope:before {\\n content: \\\"\\\\f0e0\\\"; }\\n\\n.fa-linkedin:before {\\n content: \\\"\\\\f0e1\\\"; }\\n\\n.fa-rotate-left:before,\\n.fa-undo:before {\\n content: \\\"\\\\f0e2\\\"; }\\n\\n.fa-legal:before,\\n.fa-gavel:before {\\n content: \\\"\\\\f0e3\\\"; }\\n\\n.fa-dashboard:before,\\n.fa-tachometer:before {\\n content: \\\"\\\\f0e4\\\"; }\\n\\n.fa-comment-o:before {\\n content: \\\"\\\\f0e5\\\"; }\\n\\n.fa-comments-o:before {\\n content: \\\"\\\\f0e6\\\"; }\\n\\n.fa-flash:before,\\n.fa-bolt:before {\\n content: \\\"\\\\f0e7\\\"; }\\n\\n.fa-sitemap:before {\\n content: \\\"\\\\f0e8\\\"; }\\n\\n.fa-umbrella:before {\\n content: \\\"\\\\f0e9\\\"; }\\n\\n.fa-paste:before,\\n.fa-clipboard:before {\\n content: \\\"\\\\f0ea\\\"; }\\n\\n.fa-lightbulb-o:before {\\n content: \\\"\\\\f0eb\\\"; }\\n\\n.fa-exchange:before {\\n content: \\\"\\\\f0ec\\\"; }\\n\\n.fa-cloud-download:before {\\n content: \\\"\\\\f0ed\\\"; }\\n\\n.fa-cloud-upload:before {\\n content: \\\"\\\\f0ee\\\"; }\\n\\n.fa-user-md:before {\\n content: \\\"\\\\f0f0\\\"; }\\n\\n.fa-stethoscope:before {\\n content: \\\"\\\\f0f1\\\"; }\\n\\n.fa-suitcase:before {\\n content: \\\"\\\\f0f2\\\"; }\\n\\n.fa-bell-o:before {\\n content: \\\"\\\\f0a2\\\"; }\\n\\n.fa-coffee:before {\\n content: \\\"\\\\f0f4\\\"; }\\n\\n.fa-cutlery:before {\\n content: \\\"\\\\f0f5\\\"; }\\n\\n.fa-file-text-o:before {\\n content: \\\"\\\\f0f6\\\"; }\\n\\n.fa-building-o:before {\\n content: \\\"\\\\f0f7\\\"; }\\n\\n.fa-hospital-o:before {\\n content: \\\"\\\\f0f8\\\"; }\\n\\n.fa-ambulance:before {\\n content: \\\"\\\\f0f9\\\"; }\\n\\n.fa-medkit:before {\\n content: \\\"\\\\f0fa\\\"; }\\n\\n.fa-fighter-jet:before {\\n content: \\\"\\\\f0fb\\\"; }\\n\\n.fa-beer:before {\\n content: \\\"\\\\f0fc\\\"; }\\n\\n.fa-h-square:before {\\n content: \\\"\\\\f0fd\\\"; }\\n\\n.fa-plus-square:before {\\n content: \\\"\\\\f0fe\\\"; }\\n\\n.fa-angle-double-left:before {\\n content: \\\"\\\\f100\\\"; }\\n\\n.fa-angle-double-right:before {\\n content: \\\"\\\\f101\\\"; }\\n\\n.fa-angle-double-up:before {\\n content: \\\"\\\\f102\\\"; }\\n\\n.fa-angle-double-down:before {\\n content: \\\"\\\\f103\\\"; }\\n\\n.fa-angle-left:before {\\n content: \\\"\\\\f104\\\"; }\\n\\n.fa-angle-right:before {\\n content: \\\"\\\\f105\\\"; }\\n\\n.fa-angle-up:before {\\n content: \\\"\\\\f106\\\"; }\\n\\n.fa-angle-down:before {\\n content: \\\"\\\\f107\\\"; }\\n\\n.fa-desktop:before {\\n content: \\\"\\\\f108\\\"; }\\n\\n.fa-laptop:before {\\n content: \\\"\\\\f109\\\"; }\\n\\n.fa-tablet:before {\\n content: \\\"\\\\f10a\\\"; }\\n\\n.fa-mobile-phone:before,\\n.fa-mobile:before {\\n content: \\\"\\\\f10b\\\"; }\\n\\n.fa-circle-o:before {\\n content: \\\"\\\\f10c\\\"; }\\n\\n.fa-quote-left:before {\\n content: \\\"\\\\f10d\\\"; }\\n\\n.fa-quote-right:before {\\n content: \\\"\\\\f10e\\\"; }\\n\\n.fa-spinner:before {\\n content: \\\"\\\\f110\\\"; }\\n\\n.fa-circle:before {\\n content: \\\"\\\\f111\\\"; }\\n\\n.fa-mail-reply:before,\\n.fa-reply:before {\\n content: \\\"\\\\f112\\\"; }\\n\\n.fa-github-alt:before {\\n content: \\\"\\\\f113\\\"; }\\n\\n.fa-folder-o:before {\\n content: \\\"\\\\f114\\\"; }\\n\\n.fa-folder-open-o:before {\\n content: \\\"\\\\f115\\\"; }\\n\\n.fa-smile-o:before {\\n content: \\\"\\\\f118\\\"; }\\n\\n.fa-frown-o:before {\\n content: \\\"\\\\f119\\\"; }\\n\\n.fa-meh-o:before {\\n content: \\\"\\\\f11a\\\"; }\\n\\n.fa-gamepad:before {\\n content: \\\"\\\\f11b\\\"; }\\n\\n.fa-keyboard-o:before {\\n content: \\\"\\\\f11c\\\"; }\\n\\n.fa-flag-o:before {\\n content: \\\"\\\\f11d\\\"; }\\n\\n.fa-flag-checkered:before {\\n content: \\\"\\\\f11e\\\"; }\\n\\n.fa-terminal:before {\\n content: \\\"\\\\f120\\\"; }\\n\\n.fa-code:before {\\n content: \\\"\\\\f121\\\"; }\\n\\n.fa-mail-reply-all:before,\\n.fa-reply-all:before {\\n content: \\\"\\\\f122\\\"; }\\n\\n.fa-star-half-empty:before,\\n.fa-star-half-full:before,\\n.fa-star-half-o:before {\\n content: \\\"\\\\f123\\\"; }\\n\\n.fa-location-arrow:before {\\n content: \\\"\\\\f124\\\"; }\\n\\n.fa-crop:before {\\n content: \\\"\\\\f125\\\"; }\\n\\n.fa-code-fork:before {\\n content: \\\"\\\\f126\\\"; }\\n\\n.fa-unlink:before,\\n.fa-chain-broken:before {\\n content: \\\"\\\\f127\\\"; }\\n\\n.fa-question:before {\\n content: \\\"\\\\f128\\\"; }\\n\\n.fa-info:before {\\n content: \\\"\\\\f129\\\"; }\\n\\n.fa-exclamation:before {\\n content: \\\"\\\\f12a\\\"; }\\n\\n.fa-superscript:before {\\n content: \\\"\\\\f12b\\\"; }\\n\\n.fa-subscript:before {\\n content: \\\"\\\\f12c\\\"; }\\n\\n.fa-eraser:before {\\n content: \\\"\\\\f12d\\\"; }\\n\\n.fa-puzzle-piece:before {\\n content: \\\"\\\\f12e\\\"; }\\n\\n.fa-microphone:before {\\n content: \\\"\\\\f130\\\"; }\\n\\n.fa-microphone-slash:before {\\n content: \\\"\\\\f131\\\"; }\\n\\n.fa-shield:before {\\n content: \\\"\\\\f132\\\"; }\\n\\n.fa-calendar-o:before {\\n content: \\\"\\\\f133\\\"; }\\n\\n.fa-fire-extinguisher:before {\\n content: \\\"\\\\f134\\\"; }\\n\\n.fa-rocket:before {\\n content: \\\"\\\\f135\\\"; }\\n\\n.fa-maxcdn:before {\\n content: \\\"\\\\f136\\\"; }\\n\\n.fa-chevron-circle-left:before {\\n content: \\\"\\\\f137\\\"; }\\n\\n.fa-chevron-circle-right:before {\\n content: \\\"\\\\f138\\\"; }\\n\\n.fa-chevron-circle-up:before {\\n content: \\\"\\\\f139\\\"; }\\n\\n.fa-chevron-circle-down:before {\\n content: \\\"\\\\f13a\\\"; }\\n\\n.fa-html5:before {\\n content: \\\"\\\\f13b\\\"; }\\n\\n.fa-css3:before {\\n content: \\\"\\\\f13c\\\"; }\\n\\n.fa-anchor:before {\\n content: \\\"\\\\f13d\\\"; }\\n\\n.fa-unlock-alt:before {\\n content: \\\"\\\\f13e\\\"; }\\n\\n.fa-bullseye:before {\\n content: \\\"\\\\f140\\\"; }\\n\\n.fa-ellipsis-h:before {\\n content: \\\"\\\\f141\\\"; }\\n\\n.fa-ellipsis-v:before {\\n content: \\\"\\\\f142\\\"; }\\n\\n.fa-rss-square:before {\\n content: \\\"\\\\f143\\\"; }\\n\\n.fa-play-circle:before {\\n content: \\\"\\\\f144\\\"; }\\n\\n.fa-ticket:before {\\n content: \\\"\\\\f145\\\"; }\\n\\n.fa-minus-square:before {\\n content: \\\"\\\\f146\\\"; }\\n\\n.fa-minus-square-o:before {\\n content: \\\"\\\\f147\\\"; }\\n\\n.fa-level-up:before {\\n content: \\\"\\\\f148\\\"; }\\n\\n.fa-level-down:before {\\n content: \\\"\\\\f149\\\"; }\\n\\n.fa-check-square:before {\\n content: \\\"\\\\f14a\\\"; }\\n\\n.fa-pencil-square:before {\\n content: \\\"\\\\f14b\\\"; }\\n\\n.fa-external-link-square:before {\\n content: \\\"\\\\f14c\\\"; }\\n\\n.fa-share-square:before {\\n content: \\\"\\\\f14d\\\"; }\\n\\n.fa-compass:before {\\n content: \\\"\\\\f14e\\\"; }\\n\\n.fa-toggle-down:before,\\n.fa-caret-square-o-down:before {\\n content: \\\"\\\\f150\\\"; }\\n\\n.fa-toggle-up:before,\\n.fa-caret-square-o-up:before {\\n content: \\\"\\\\f151\\\"; }\\n\\n.fa-toggle-right:before,\\n.fa-caret-square-o-right:before {\\n content: \\\"\\\\f152\\\"; }\\n\\n.fa-euro:before,\\n.fa-eur:before {\\n content: \\\"\\\\f153\\\"; }\\n\\n.fa-gbp:before {\\n content: \\\"\\\\f154\\\"; }\\n\\n.fa-dollar:before,\\n.fa-usd:before {\\n content: \\\"\\\\f155\\\"; }\\n\\n.fa-rupee:before,\\n.fa-inr:before {\\n content: \\\"\\\\f156\\\"; }\\n\\n.fa-cny:before,\\n.fa-rmb:before,\\n.fa-yen:before,\\n.fa-jpy:before {\\n content: \\\"\\\\f157\\\"; }\\n\\n.fa-ruble:before,\\n.fa-rouble:before,\\n.fa-rub:before {\\n content: \\\"\\\\f158\\\"; }\\n\\n.fa-won:before,\\n.fa-krw:before {\\n content: \\\"\\\\f159\\\"; }\\n\\n.fa-bitcoin:before,\\n.fa-btc:before {\\n content: \\\"\\\\f15a\\\"; }\\n\\n.fa-file:before {\\n content: \\\"\\\\f15b\\\"; }\\n\\n.fa-file-text:before {\\n content: \\\"\\\\f15c\\\"; }\\n\\n.fa-sort-alpha-asc:before {\\n content: \\\"\\\\f15d\\\"; }\\n\\n.fa-sort-alpha-desc:before {\\n content: \\\"\\\\f15e\\\"; }\\n\\n.fa-sort-amount-asc:before {\\n content: \\\"\\\\f160\\\"; }\\n\\n.fa-sort-amount-desc:before {\\n content: \\\"\\\\f161\\\"; }\\n\\n.fa-sort-numeric-asc:before {\\n content: \\\"\\\\f162\\\"; }\\n\\n.fa-sort-numeric-desc:before {\\n content: \\\"\\\\f163\\\"; }\\n\\n.fa-thumbs-up:before {\\n content: \\\"\\\\f164\\\"; }\\n\\n.fa-thumbs-down:before {\\n content: \\\"\\\\f165\\\"; }\\n\\n.fa-youtube-square:before {\\n content: \\\"\\\\f166\\\"; }\\n\\n.fa-youtube:before {\\n content: \\\"\\\\f167\\\"; }\\n\\n.fa-xing:before {\\n content: \\\"\\\\f168\\\"; }\\n\\n.fa-xing-square:before {\\n content: \\\"\\\\f169\\\"; }\\n\\n.fa-youtube-play:before {\\n content: \\\"\\\\f16a\\\"; }\\n\\n.fa-dropbox:before {\\n content: \\\"\\\\f16b\\\"; }\\n\\n.fa-stack-overflow:before {\\n content: \\\"\\\\f16c\\\"; }\\n\\n.fa-instagram:before {\\n content: \\\"\\\\f16d\\\"; }\\n\\n.fa-flickr:before {\\n content: \\\"\\\\f16e\\\"; }\\n\\n.fa-adn:before {\\n content: \\\"\\\\f170\\\"; }\\n\\n.fa-bitbucket:before {\\n content: \\\"\\\\f171\\\"; }\\n\\n.fa-bitbucket-square:before {\\n content: \\\"\\\\f172\\\"; }\\n\\n.fa-tumblr:before {\\n content: \\\"\\\\f173\\\"; }\\n\\n.fa-tumblr-square:before {\\n content: \\\"\\\\f174\\\"; }\\n\\n.fa-long-arrow-down:before {\\n content: \\\"\\\\f175\\\"; }\\n\\n.fa-long-arrow-up:before {\\n content: \\\"\\\\f176\\\"; }\\n\\n.fa-long-arrow-left:before {\\n content: \\\"\\\\f177\\\"; }\\n\\n.fa-long-arrow-right:before {\\n content: \\\"\\\\f178\\\"; }\\n\\n.fa-apple:before {\\n content: \\\"\\\\f179\\\"; }\\n\\n.fa-windows:before {\\n content: \\\"\\\\f17a\\\"; }\\n\\n.fa-android:before {\\n content: \\\"\\\\f17b\\\"; }\\n\\n.fa-linux:before {\\n content: \\\"\\\\f17c\\\"; }\\n\\n.fa-dribbble:before {\\n content: \\\"\\\\f17d\\\"; }\\n\\n.fa-skype:before {\\n content: \\\"\\\\f17e\\\"; }\\n\\n.fa-foursquare:before {\\n content: \\\"\\\\f180\\\"; }\\n\\n.fa-trello:before {\\n content: \\\"\\\\f181\\\"; }\\n\\n.fa-female:before {\\n content: \\\"\\\\f182\\\"; }\\n\\n.fa-male:before {\\n content: \\\"\\\\f183\\\"; }\\n\\n.fa-gittip:before,\\n.fa-gratipay:before {\\n content: \\\"\\\\f184\\\"; }\\n\\n.fa-sun-o:before {\\n content: \\\"\\\\f185\\\"; }\\n\\n.fa-moon-o:before {\\n content: \\\"\\\\f186\\\"; }\\n\\n.fa-archive:before {\\n content: \\\"\\\\f187\\\"; }\\n\\n.fa-bug:before {\\n content: \\\"\\\\f188\\\"; }\\n\\n.fa-vk:before {\\n content: \\\"\\\\f189\\\"; }\\n\\n.fa-weibo:before {\\n content: \\\"\\\\f18a\\\"; }\\n\\n.fa-renren:before {\\n content: \\\"\\\\f18b\\\"; }\\n\\n.fa-pagelines:before {\\n content: \\\"\\\\f18c\\\"; }\\n\\n.fa-stack-exchange:before {\\n content: \\\"\\\\f18d\\\"; }\\n\\n.fa-arrow-circle-o-right:before {\\n content: \\\"\\\\f18e\\\"; }\\n\\n.fa-arrow-circle-o-left:before {\\n content: \\\"\\\\f190\\\"; }\\n\\n.fa-toggle-left:before,\\n.fa-caret-square-o-left:before {\\n content: \\\"\\\\f191\\\"; }\\n\\n.fa-dot-circle-o:before {\\n content: \\\"\\\\f192\\\"; }\\n\\n.fa-wheelchair:before {\\n content: \\\"\\\\f193\\\"; }\\n\\n.fa-vimeo-square:before {\\n content: \\\"\\\\f194\\\"; }\\n\\n.fa-turkish-lira:before,\\n.fa-try:before {\\n content: \\\"\\\\f195\\\"; }\\n\\n.fa-plus-square-o:before {\\n content: \\\"\\\\f196\\\"; }\\n\\n.fa-space-shuttle:before {\\n content: \\\"\\\\f197\\\"; }\\n\\n.fa-slack:before {\\n content: \\\"\\\\f198\\\"; }\\n\\n.fa-envelope-square:before {\\n content: \\\"\\\\f199\\\"; }\\n\\n.fa-wordpress:before {\\n content: \\\"\\\\f19a\\\"; }\\n\\n.fa-openid:before {\\n content: \\\"\\\\f19b\\\"; }\\n\\n.fa-institution:before,\\n.fa-bank:before,\\n.fa-university:before {\\n content: \\\"\\\\f19c\\\"; }\\n\\n.fa-mortar-board:before,\\n.fa-graduation-cap:before {\\n content: \\\"\\\\f19d\\\"; }\\n\\n.fa-yahoo:before {\\n content: \\\"\\\\f19e\\\"; }\\n\\n.fa-google:before {\\n content: \\\"\\\\f1a0\\\"; }\\n\\n.fa-reddit:before {\\n content: \\\"\\\\f1a1\\\"; }\\n\\n.fa-reddit-square:before {\\n content: \\\"\\\\f1a2\\\"; }\\n\\n.fa-stumbleupon-circle:before {\\n content: \\\"\\\\f1a3\\\"; }\\n\\n.fa-stumbleupon:before {\\n content: \\\"\\\\f1a4\\\"; }\\n\\n.fa-delicious:before {\\n content: \\\"\\\\f1a5\\\"; }\\n\\n.fa-digg:before {\\n content: \\\"\\\\f1a6\\\"; }\\n\\n.fa-pied-piper:before {\\n content: \\\"\\\\f1a7\\\"; }\\n\\n.fa-pied-piper-alt:before {\\n content: \\\"\\\\f1a8\\\"; }\\n\\n.fa-drupal:before {\\n content: \\\"\\\\f1a9\\\"; }\\n\\n.fa-joomla:before {\\n content: \\\"\\\\f1aa\\\"; }\\n\\n.fa-language:before {\\n content: \\\"\\\\f1ab\\\"; }\\n\\n.fa-fax:before {\\n content: \\\"\\\\f1ac\\\"; }\\n\\n.fa-building:before {\\n content: \\\"\\\\f1ad\\\"; }\\n\\n.fa-child:before {\\n content: \\\"\\\\f1ae\\\"; }\\n\\n.fa-paw:before {\\n content: \\\"\\\\f1b0\\\"; }\\n\\n.fa-spoon:before {\\n content: \\\"\\\\f1b1\\\"; }\\n\\n.fa-cube:before {\\n content: \\\"\\\\f1b2\\\"; }\\n\\n.fa-cubes:before {\\n content: \\\"\\\\f1b3\\\"; }\\n\\n.fa-behance:before {\\n content: \\\"\\\\f1b4\\\"; }\\n\\n.fa-behance-square:before {\\n content: \\\"\\\\f1b5\\\"; }\\n\\n.fa-steam:before {\\n content: \\\"\\\\f1b6\\\"; }\\n\\n.fa-steam-square:before {\\n content: \\\"\\\\f1b7\\\"; }\\n\\n.fa-recycle:before {\\n content: \\\"\\\\f1b8\\\"; }\\n\\n.fa-automobile:before,\\n.fa-car:before {\\n content: \\\"\\\\f1b9\\\"; }\\n\\n.fa-cab:before,\\n.fa-taxi:before {\\n content: \\\"\\\\f1ba\\\"; }\\n\\n.fa-tree:before {\\n content: \\\"\\\\f1bb\\\"; }\\n\\n.fa-spotify:before {\\n content: \\\"\\\\f1bc\\\"; }\\n\\n.fa-deviantart:before {\\n content: \\\"\\\\f1bd\\\"; }\\n\\n.fa-soundcloud:before {\\n content: \\\"\\\\f1be\\\"; }\\n\\n.fa-database:before {\\n content: \\\"\\\\f1c0\\\"; }\\n\\n.fa-file-pdf-o:before {\\n content: \\\"\\\\f1c1\\\"; }\\n\\n.fa-file-word-o:before {\\n content: \\\"\\\\f1c2\\\"; }\\n\\n.fa-file-excel-o:before {\\n content: \\\"\\\\f1c3\\\"; }\\n\\n.fa-file-powerpoint-o:before {\\n content: \\\"\\\\f1c4\\\"; }\\n\\n.fa-file-photo-o:before,\\n.fa-file-picture-o:before,\\n.fa-file-image-o:before {\\n content: \\\"\\\\f1c5\\\"; }\\n\\n.fa-file-zip-o:before,\\n.fa-file-archive-o:before {\\n content: \\\"\\\\f1c6\\\"; }\\n\\n.fa-file-sound-o:before,\\n.fa-file-audio-o:before {\\n content: \\\"\\\\f1c7\\\"; }\\n\\n.fa-file-movie-o:before,\\n.fa-file-video-o:before {\\n content: \\\"\\\\f1c8\\\"; }\\n\\n.fa-file-code-o:before {\\n content: \\\"\\\\f1c9\\\"; }\\n\\n.fa-vine:before {\\n content: \\\"\\\\f1ca\\\"; }\\n\\n.fa-codepen:before {\\n content: \\\"\\\\f1cb\\\"; }\\n\\n.fa-jsfiddle:before {\\n content: \\\"\\\\f1cc\\\"; }\\n\\n.fa-life-bouy:before,\\n.fa-life-buoy:before,\\n.fa-life-saver:before,\\n.fa-support:before,\\n.fa-life-ring:before {\\n content: \\\"\\\\f1cd\\\"; }\\n\\n.fa-circle-o-notch:before {\\n content: \\\"\\\\f1ce\\\"; }\\n\\n.fa-ra:before,\\n.fa-rebel:before {\\n content: \\\"\\\\f1d0\\\"; }\\n\\n.fa-ge:before,\\n.fa-empire:before {\\n content: \\\"\\\\f1d1\\\"; }\\n\\n.fa-git-square:before {\\n content: \\\"\\\\f1d2\\\"; }\\n\\n.fa-git:before {\\n content: \\\"\\\\f1d3\\\"; }\\n\\n.fa-y-combinator-square:before,\\n.fa-yc-square:before,\\n.fa-hacker-news:before {\\n content: \\\"\\\\f1d4\\\"; }\\n\\n.fa-tencent-weibo:before {\\n content: \\\"\\\\f1d5\\\"; }\\n\\n.fa-qq:before {\\n content: \\\"\\\\f1d6\\\"; }\\n\\n.fa-wechat:before,\\n.fa-weixin:before {\\n content: \\\"\\\\f1d7\\\"; }\\n\\n.fa-send:before,\\n.fa-paper-plane:before {\\n content: \\\"\\\\f1d8\\\"; }\\n\\n.fa-send-o:before,\\n.fa-paper-plane-o:before {\\n content: \\\"\\\\f1d9\\\"; }\\n\\n.fa-history:before {\\n content: \\\"\\\\f1da\\\"; }\\n\\n.fa-circle-thin:before {\\n content: \\\"\\\\f1db\\\"; }\\n\\n.fa-header:before {\\n content: \\\"\\\\f1dc\\\"; }\\n\\n.fa-paragraph:before {\\n content: \\\"\\\\f1dd\\\"; }\\n\\n.fa-sliders:before {\\n content: \\\"\\\\f1de\\\"; }\\n\\n.fa-share-alt:before {\\n content: \\\"\\\\f1e0\\\"; }\\n\\n.fa-share-alt-square:before {\\n content: \\\"\\\\f1e1\\\"; }\\n\\n.fa-bomb:before {\\n content: \\\"\\\\f1e2\\\"; }\\n\\n.fa-soccer-ball-o:before,\\n.fa-futbol-o:before {\\n content: \\\"\\\\f1e3\\\"; }\\n\\n.fa-tty:before {\\n content: \\\"\\\\f1e4\\\"; }\\n\\n.fa-binoculars:before {\\n content: \\\"\\\\f1e5\\\"; }\\n\\n.fa-plug:before {\\n content: \\\"\\\\f1e6\\\"; }\\n\\n.fa-slideshare:before {\\n content: \\\"\\\\f1e7\\\"; }\\n\\n.fa-twitch:before {\\n content: \\\"\\\\f1e8\\\"; }\\n\\n.fa-yelp:before {\\n content: \\\"\\\\f1e9\\\"; }\\n\\n.fa-newspaper-o:before {\\n content: \\\"\\\\f1ea\\\"; }\\n\\n.fa-wifi:before {\\n content: \\\"\\\\f1eb\\\"; }\\n\\n.fa-calculator:before {\\n content: \\\"\\\\f1ec\\\"; }\\n\\n.fa-paypal:before {\\n content: \\\"\\\\f1ed\\\"; }\\n\\n.fa-google-wallet:before {\\n content: \\\"\\\\f1ee\\\"; }\\n\\n.fa-cc-visa:before {\\n content: \\\"\\\\f1f0\\\"; }\\n\\n.fa-cc-mastercard:before {\\n content: \\\"\\\\f1f1\\\"; }\\n\\n.fa-cc-discover:before {\\n content: \\\"\\\\f1f2\\\"; }\\n\\n.fa-cc-amex:before {\\n content: \\\"\\\\f1f3\\\"; }\\n\\n.fa-cc-paypal:before {\\n content: \\\"\\\\f1f4\\\"; }\\n\\n.fa-cc-stripe:before {\\n content: \\\"\\\\f1f5\\\"; }\\n\\n.fa-bell-slash:before {\\n content: \\\"\\\\f1f6\\\"; }\\n\\n.fa-bell-slash-o:before {\\n content: \\\"\\\\f1f7\\\"; }\\n\\n.fa-trash:before {\\n content: \\\"\\\\f1f8\\\"; }\\n\\n.fa-copyright:before {\\n content: \\\"\\\\f1f9\\\"; }\\n\\n.fa-at:before {\\n content: \\\"\\\\f1fa\\\"; }\\n\\n.fa-eyedropper:before {\\n content: \\\"\\\\f1fb\\\"; }\\n\\n.fa-paint-brush:before {\\n content: \\\"\\\\f1fc\\\"; }\\n\\n.fa-birthday-cake:before {\\n content: \\\"\\\\f1fd\\\"; }\\n\\n.fa-area-chart:before {\\n content: \\\"\\\\f1fe\\\"; }\\n\\n.fa-pie-chart:before {\\n content: \\\"\\\\f200\\\"; }\\n\\n.fa-line-chart:before {\\n content: \\\"\\\\f201\\\"; }\\n\\n.fa-lastfm:before {\\n content: \\\"\\\\f202\\\"; }\\n\\n.fa-lastfm-square:before {\\n content: \\\"\\\\f203\\\"; }\\n\\n.fa-toggle-off:before {\\n content: \\\"\\\\f204\\\"; }\\n\\n.fa-toggle-on:before {\\n content: \\\"\\\\f205\\\"; }\\n\\n.fa-bicycle:before {\\n content: \\\"\\\\f206\\\"; }\\n\\n.fa-bus:before {\\n content: \\\"\\\\f207\\\"; }\\n\\n.fa-ioxhost:before {\\n content: \\\"\\\\f208\\\"; }\\n\\n.fa-angellist:before {\\n content: \\\"\\\\f209\\\"; }\\n\\n.fa-cc:before {\\n content: \\\"\\\\f20a\\\"; }\\n\\n.fa-shekel:before,\\n.fa-sheqel:before,\\n.fa-ils:before {\\n content: \\\"\\\\f20b\\\"; }\\n\\n.fa-meanpath:before {\\n content: \\\"\\\\f20c\\\"; }\\n\\n.fa-buysellads:before {\\n content: \\\"\\\\f20d\\\"; }\\n\\n.fa-connectdevelop:before {\\n content: \\\"\\\\f20e\\\"; }\\n\\n.fa-dashcube:before {\\n content: \\\"\\\\f210\\\"; }\\n\\n.fa-forumbee:before {\\n content: \\\"\\\\f211\\\"; }\\n\\n.fa-leanpub:before {\\n content: \\\"\\\\f212\\\"; }\\n\\n.fa-sellsy:before {\\n content: \\\"\\\\f213\\\"; }\\n\\n.fa-shirtsinbulk:before {\\n content: \\\"\\\\f214\\\"; }\\n\\n.fa-simplybuilt:before {\\n content: \\\"\\\\f215\\\"; }\\n\\n.fa-skyatlas:before {\\n content: \\\"\\\\f216\\\"; }\\n\\n.fa-cart-plus:before {\\n content: \\\"\\\\f217\\\"; }\\n\\n.fa-cart-arrow-down:before {\\n content: \\\"\\\\f218\\\"; }\\n\\n.fa-diamond:before {\\n content: \\\"\\\\f219\\\"; }\\n\\n.fa-ship:before {\\n content: \\\"\\\\f21a\\\"; }\\n\\n.fa-user-secret:before {\\n content: \\\"\\\\f21b\\\"; }\\n\\n.fa-motorcycle:before {\\n content: \\\"\\\\f21c\\\"; }\\n\\n.fa-street-view:before {\\n content: \\\"\\\\f21d\\\"; }\\n\\n.fa-heartbeat:before {\\n content: \\\"\\\\f21e\\\"; }\\n\\n.fa-venus:before {\\n content: \\\"\\\\f221\\\"; }\\n\\n.fa-mars:before {\\n content: \\\"\\\\f222\\\"; }\\n\\n.fa-mercury:before {\\n content: \\\"\\\\f223\\\"; }\\n\\n.fa-intersex:before,\\n.fa-transgender:before {\\n content: \\\"\\\\f224\\\"; }\\n\\n.fa-transgender-alt:before {\\n content: \\\"\\\\f225\\\"; }\\n\\n.fa-venus-double:before {\\n content: \\\"\\\\f226\\\"; }\\n\\n.fa-mars-double:before {\\n content: \\\"\\\\f227\\\"; }\\n\\n.fa-venus-mars:before {\\n content: \\\"\\\\f228\\\"; }\\n\\n.fa-mars-stroke:before {\\n content: \\\"\\\\f229\\\"; }\\n\\n.fa-mars-stroke-v:before {\\n content: \\\"\\\\f22a\\\"; }\\n\\n.fa-mars-stroke-h:before {\\n content: \\\"\\\\f22b\\\"; }\\n\\n.fa-neuter:before {\\n content: \\\"\\\\f22c\\\"; }\\n\\n.fa-genderless:before {\\n content: \\\"\\\\f22d\\\"; }\\n\\n.fa-facebook-official:before {\\n content: \\\"\\\\f230\\\"; }\\n\\n.fa-pinterest-p:before {\\n content: \\\"\\\\f231\\\"; }\\n\\n.fa-whatsapp:before {\\n content: \\\"\\\\f232\\\"; }\\n\\n.fa-server:before {\\n content: \\\"\\\\f233\\\"; }\\n\\n.fa-user-plus:before {\\n content: \\\"\\\\f234\\\"; }\\n\\n.fa-user-times:before {\\n content: \\\"\\\\f235\\\"; }\\n\\n.fa-hotel:before,\\n.fa-bed:before {\\n content: \\\"\\\\f236\\\"; }\\n\\n.fa-viacoin:before {\\n content: \\\"\\\\f237\\\"; }\\n\\n.fa-train:before {\\n content: \\\"\\\\f238\\\"; }\\n\\n.fa-subway:before {\\n content: \\\"\\\\f239\\\"; }\\n\\n.fa-medium:before {\\n content: \\\"\\\\f23a\\\"; }\\n\\n.fa-yc:before,\\n.fa-y-combinator:before {\\n content: \\\"\\\\f23b\\\"; }\\n\\n.fa-optin-monster:before {\\n content: \\\"\\\\f23c\\\"; }\\n\\n.fa-opencart:before {\\n content: \\\"\\\\f23d\\\"; }\\n\\n.fa-expeditedssl:before {\\n content: \\\"\\\\f23e\\\"; }\\n\\n.fa-battery-4:before,\\n.fa-battery-full:before {\\n content: \\\"\\\\f240\\\"; }\\n\\n.fa-battery-3:before,\\n.fa-battery-three-quarters:before {\\n content: \\\"\\\\f241\\\"; }\\n\\n.fa-battery-2:before,\\n.fa-battery-half:before {\\n content: \\\"\\\\f242\\\"; }\\n\\n.fa-battery-1:before,\\n.fa-battery-quarter:before {\\n content: \\\"\\\\f243\\\"; }\\n\\n.fa-battery-0:before,\\n.fa-battery-empty:before {\\n content: \\\"\\\\f244\\\"; }\\n\\n.fa-mouse-pointer:before {\\n content: \\\"\\\\f245\\\"; }\\n\\n.fa-i-cursor:before {\\n content: \\\"\\\\f246\\\"; }\\n\\n.fa-object-group:before {\\n content: \\\"\\\\f247\\\"; }\\n\\n.fa-object-ungroup:before {\\n content: \\\"\\\\f248\\\"; }\\n\\n.fa-sticky-note:before {\\n content: \\\"\\\\f249\\\"; }\\n\\n.fa-sticky-note-o:before {\\n content: \\\"\\\\f24a\\\"; }\\n\\n.fa-cc-jcb:before {\\n content: \\\"\\\\f24b\\\"; }\\n\\n.fa-cc-diners-club:before {\\n content: \\\"\\\\f24c\\\"; }\\n\\n.fa-clone:before {\\n content: \\\"\\\\f24d\\\"; }\\n\\n.fa-balance-scale:before {\\n content: \\\"\\\\f24e\\\"; }\\n\\n.fa-hourglass-o:before {\\n content: \\\"\\\\f250\\\"; }\\n\\n.fa-hourglass-1:before,\\n.fa-hourglass-start:before {\\n content: \\\"\\\\f251\\\"; }\\n\\n.fa-hourglass-2:before,\\n.fa-hourglass-half:before {\\n content: \\\"\\\\f252\\\"; }\\n\\n.fa-hourglass-3:before,\\n.fa-hourglass-end:before {\\n content: \\\"\\\\f253\\\"; }\\n\\n.fa-hourglass:before {\\n content: \\\"\\\\f254\\\"; }\\n\\n.fa-hand-grab-o:before,\\n.fa-hand-rock-o:before {\\n content: \\\"\\\\f255\\\"; }\\n\\n.fa-hand-stop-o:before,\\n.fa-hand-paper-o:before {\\n content: \\\"\\\\f256\\\"; }\\n\\n.fa-hand-scissors-o:before {\\n content: \\\"\\\\f257\\\"; }\\n\\n.fa-hand-lizard-o:before {\\n content: \\\"\\\\f258\\\"; }\\n\\n.fa-hand-spock-o:before {\\n content: \\\"\\\\f259\\\"; }\\n\\n.fa-hand-pointer-o:before {\\n content: \\\"\\\\f25a\\\"; }\\n\\n.fa-hand-peace-o:before {\\n content: \\\"\\\\f25b\\\"; }\\n\\n.fa-trademark:before {\\n content: \\\"\\\\f25c\\\"; }\\n\\n.fa-registered:before {\\n content: \\\"\\\\f25d\\\"; }\\n\\n.fa-creative-commons:before {\\n content: \\\"\\\\f25e\\\"; }\\n\\n.fa-gg:before {\\n content: \\\"\\\\f260\\\"; }\\n\\n.fa-gg-circle:before {\\n content: \\\"\\\\f261\\\"; }\\n\\n.fa-tripadvisor:before {\\n content: \\\"\\\\f262\\\"; }\\n\\n.fa-odnoklassniki:before {\\n content: \\\"\\\\f263\\\"; }\\n\\n.fa-odnoklassniki-square:before {\\n content: \\\"\\\\f264\\\"; }\\n\\n.fa-get-pocket:before {\\n content: \\\"\\\\f265\\\"; }\\n\\n.fa-wikipedia-w:before {\\n content: \\\"\\\\f266\\\"; }\\n\\n.fa-safari:before {\\n content: \\\"\\\\f267\\\"; }\\n\\n.fa-chrome:before {\\n content: \\\"\\\\f268\\\"; }\\n\\n.fa-firefox:before {\\n content: \\\"\\\\f269\\\"; }\\n\\n.fa-opera:before {\\n content: \\\"\\\\f26a\\\"; }\\n\\n.fa-internet-explorer:before {\\n content: \\\"\\\\f26b\\\"; }\\n\\n.fa-tv:before,\\n.fa-television:before {\\n content: \\\"\\\\f26c\\\"; }\\n\\n.fa-contao:before {\\n content: \\\"\\\\f26d\\\"; }\\n\\n.fa-500px:before {\\n content: \\\"\\\\f26e\\\"; }\\n\\n.fa-amazon:before {\\n content: \\\"\\\\f270\\\"; }\\n\\n.fa-calendar-plus-o:before {\\n content: \\\"\\\\f271\\\"; }\\n\\n.fa-calendar-minus-o:before {\\n content: \\\"\\\\f272\\\"; }\\n\\n.fa-calendar-times-o:before {\\n content: \\\"\\\\f273\\\"; }\\n\\n.fa-calendar-check-o:before {\\n content: \\\"\\\\f274\\\"; }\\n\\n.fa-industry:before {\\n content: \\\"\\\\f275\\\"; }\\n\\n.fa-map-pin:before {\\n content: \\\"\\\\f276\\\"; }\\n\\n.fa-map-signs:before {\\n content: \\\"\\\\f277\\\"; }\\n\\n.fa-map-o:before {\\n content: \\\"\\\\f278\\\"; }\\n\\n.fa-map:before {\\n content: \\\"\\\\f279\\\"; }\\n\\n.fa-commenting:before {\\n content: \\\"\\\\f27a\\\"; }\\n\\n.fa-commenting-o:before {\\n content: \\\"\\\\f27b\\\"; }\\n\\n.fa-houzz:before {\\n content: \\\"\\\\f27c\\\"; }\\n\\n.fa-vimeo:before {\\n content: \\\"\\\\f27d\\\"; }\\n\\n.fa-black-tie:before {\\n content: \\\"\\\\f27e\\\"; }\\n\\n.fa-fonticons:before {\\n content: \\\"\\\\f280\\\"; }\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"fonts/vorne-icon.ttf?j92v9j\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"fonts/vorne-icon.woff?j92v9j\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_2___ = new URL(\"fonts/vorne-icon.svg?j92v9j\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___, { hash: \"#vorne-icon\" });\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@font-face {\n font-family: 'vorne-icon';\n src:\n url(${___CSS_LOADER_URL_REPLACEMENT_0___}) format('truetype'),\n url(${___CSS_LOADER_URL_REPLACEMENT_1___}) format('woff'),\n url(${___CSS_LOADER_URL_REPLACEMENT_2___}) format('svg');\n font-weight: normal;\n font-style: normal;\n}\n\n[class^=\"vorne-icon-\"], [class*=\" vorne-icon-\"] {\n /* use !important to prevent issues with browser extensions that change fonts */\n font-family: 'vorne-icon' !important;\n speak: none;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n line-height: 1;\n\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.vorne-icon-division:before {\n content: \"\\\\e91c\";\n}\n.vorne-icon-department:before {\n content: \"\\\\e900\";\n}\n.vorne-icon-factory:before {\n content: \"\\\\e901\";\n}\n.vorne-icon-gear:before {\n content: \"\\\\e902\";\n}\n.vorne-icon-globe:before {\n content: \"\\\\e903\";\n}\n.vorne-icon-hierarchy:before {\n content: \"\\\\e904\";\n}\n.vorne-icon-list:before {\n content: \"\\\\e905\";\n}\n.vorne-icon-trend-control:before {\n content: \"\\\\e906\";\n}\n.vorne-icon-chart-control:before {\n content: \"\\\\e907\";\n}\n.vorne-icon-up-down-arrow:before {\n content: \"\\\\e908\";\n}\n.vorne-icon-view:before {\n content: \"\\\\e909\";\n}\n.vorne-icon-inverse-view:before {\n content: \"\\\\e90a\";\n}\n.vorne-icon-zoom-in:before {\n content: \"\\\\e90b\";\n}\n.vorne-icon-zoom-out:before {\n content: \"\\\\e90c\";\n}\n.vorne-icon-export:before {\n content: \"\\\\e90d\";\n}\n.vorne-icon-filter:before {\n content: \"\\\\e90e\";\n}\n.vorne-icon-level-control:before {\n content: \"\\\\e90f\";\n}\n.vorne-icon-value:before {\n content: \"\\\\e911\";\n}\n.vorne-icon-column-control:before {\n content: \"\\\\e911\";\n}\n.vorne-icon-configure:before {\n content: \"\\\\e912\";\n}\n.vorne-icon-help:before {\n content: \"\\\\e913\";\n}\n.vorne-icon-print:before {\n content: \"\\\\e914\";\n}\n.vorne-icon-row-control:before {\n content: \"\\\\e915\";\n}\n.vorne-icon-login:before {\n content: \"\\\\e916\";\n}\n.vorne-icon-notification:before {\n content: \"\\\\e917\";\n}\n.vorne-icon-search:before {\n content: \"\\\\e918\";\n}\n.vorne-icon-drag-handles:before {\n content: \"\\\\e919\";\n}\n.vorne-icon-xl-logo:before {\n content: \"\\\\e91a\";\n}\n.vorne-icon-xl-vorne-logo:before {\n content: \"\\\\e91b\";\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./enterprise/fonts/vornefont/style.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,yBAAyB;EACzB;;;yDAG6D;EAC7D,mBAAmB;EACnB,kBAAkB;AACpB;;AAEA;EACE,+EAA+E;EAC/E,oCAAoC;EACpC,WAAW;EACX,kBAAkB;EAClB,mBAAmB;EACnB,oBAAoB;EACpB,oBAAoB;EACpB,cAAc;;EAEd,sCAAsC;EACtC,mCAAmC;EACnC,kCAAkC;AACpC;;AAEA;EACE,gBAAgB;AAClB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,gBAAgB;AAClB\",\"sourcesContent\":[\"@font-face {\\n font-family: 'vorne-icon';\\n src:\\n url('fonts/vorne-icon.ttf?j92v9j') format('truetype'),\\n url('fonts/vorne-icon.woff?j92v9j') format('woff'),\\n url('fonts/vorne-icon.svg?j92v9j#vorne-icon') format('svg');\\n font-weight: normal;\\n font-style: normal;\\n}\\n\\n[class^=\\\"vorne-icon-\\\"], [class*=\\\" vorne-icon-\\\"] {\\n /* use !important to prevent issues with browser extensions that change fonts */\\n font-family: 'vorne-icon' !important;\\n speak: none;\\n font-style: normal;\\n font-weight: normal;\\n font-variant: normal;\\n text-transform: none;\\n line-height: 1;\\n\\n /* Better Font Rendering =========== */\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\n.vorne-icon-division:before {\\n content: \\\"\\\\e91c\\\";\\n}\\n.vorne-icon-department:before {\\n content: \\\"\\\\e900\\\";\\n}\\n.vorne-icon-factory:before {\\n content: \\\"\\\\e901\\\";\\n}\\n.vorne-icon-gear:before {\\n content: \\\"\\\\e902\\\";\\n}\\n.vorne-icon-globe:before {\\n content: \\\"\\\\e903\\\";\\n}\\n.vorne-icon-hierarchy:before {\\n content: \\\"\\\\e904\\\";\\n}\\n.vorne-icon-list:before {\\n content: \\\"\\\\e905\\\";\\n}\\n.vorne-icon-trend-control:before {\\n content: \\\"\\\\e906\\\";\\n}\\n.vorne-icon-chart-control:before {\\n content: \\\"\\\\e907\\\";\\n}\\n.vorne-icon-up-down-arrow:before {\\n content: \\\"\\\\e908\\\";\\n}\\n.vorne-icon-view:before {\\n content: \\\"\\\\e909\\\";\\n}\\n.vorne-icon-inverse-view:before {\\n content: \\\"\\\\e90a\\\";\\n}\\n.vorne-icon-zoom-in:before {\\n content: \\\"\\\\e90b\\\";\\n}\\n.vorne-icon-zoom-out:before {\\n content: \\\"\\\\e90c\\\";\\n}\\n.vorne-icon-export:before {\\n content: \\\"\\\\e90d\\\";\\n}\\n.vorne-icon-filter:before {\\n content: \\\"\\\\e90e\\\";\\n}\\n.vorne-icon-level-control:before {\\n content: \\\"\\\\e90f\\\";\\n}\\n.vorne-icon-value:before {\\n content: \\\"\\\\e911\\\";\\n}\\n.vorne-icon-column-control:before {\\n content: \\\"\\\\e911\\\";\\n}\\n.vorne-icon-configure:before {\\n content: \\\"\\\\e912\\\";\\n}\\n.vorne-icon-help:before {\\n content: \\\"\\\\e913\\\";\\n}\\n.vorne-icon-print:before {\\n content: \\\"\\\\e914\\\";\\n}\\n.vorne-icon-row-control:before {\\n content: \\\"\\\\e915\\\";\\n}\\n.vorne-icon-login:before {\\n content: \\\"\\\\e916\\\";\\n}\\n.vorne-icon-notification:before {\\n content: \\\"\\\\e917\\\";\\n}\\n.vorne-icon-search:before {\\n content: \\\"\\\\e918\\\";\\n}\\n.vorne-icon-drag-handles:before {\\n content: \\\"\\\\e919\\\";\\n}\\n.vorne-icon-xl-logo:before {\\n content: \\\"\\\\e91a\\\";\\n}\\n.vorne-icon-xl-vorne-logo:before {\\n content: \\\"\\\\e91b\\\";\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"./woff/Roboto-Bold-webfont.woff\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"./woff/Roboto-BoldItalic-webfont.woff\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@font-face{font-family:\"Roboto\";src:url(${___CSS_LOADER_URL_REPLACEMENT_0___}) format(\"woff\");font-weight:bold;font-style:normal}@font-face{font-family:\"Roboto\";src:url(${___CSS_LOADER_URL_REPLACEMENT_1___}) format(\"woff\");font-weight:bold;font-style:italic}`, \"\",{\"version\":3,\"sources\":[\"webpack://./common/font/roboto/bold.scss\"],\"names\":[],\"mappings\":\"AAAA,WACI,oBAAA,CACA,0DAAA,CACA,gBAAA,CACA,iBAAA,CAGJ,WACI,oBAAA,CACA,0DAAA,CACA,gBAAA,CACA,iBAAA\",\"sourcesContent\":[\"@font-face {\\n font-family: 'Roboto';\\n src: url('./woff/Roboto-Bold-webfont.woff') format('woff');\\n font-weight: bold;\\n font-style: normal;\\n}\\n\\n@font-face {\\n font-family: 'Roboto';\\n src: url('./woff/Roboto-BoldItalic-webfont.woff') format('woff');\\n font-weight: bold;\\n font-style: italic;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"./woff/Roboto-Light-webfont.woff\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"./woff/Roboto-LightItalic-webfont.woff\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@font-face{font-family:\"Roboto\";src:url(${___CSS_LOADER_URL_REPLACEMENT_0___}) format(\"woff\");font-weight:300;font-style:normal}@font-face{font-family:\"Roboto\";src:url(${___CSS_LOADER_URL_REPLACEMENT_1___}) format(\"woff\");font-weight:300;font-style:italic}`, \"\",{\"version\":3,\"sources\":[\"webpack://./common/font/roboto/light.scss\"],\"names\":[],\"mappings\":\"AAAA,WACI,oBAAA,CACA,0DAAA,CACA,eAAA,CACA,iBAAA,CAGJ,WACI,oBAAA,CACA,0DAAA,CACA,eAAA,CACA,iBAAA\",\"sourcesContent\":[\"@font-face {\\n font-family: 'Roboto';\\n src: url('./woff/Roboto-Light-webfont.woff') format('woff');\\n font-weight: 300;\\n font-style: normal;\\n}\\n\\n@font-face {\\n font-family: 'Roboto';\\n src: url('./woff/Roboto-LightItalic-webfont.woff') format('woff');\\n font-weight: 300;\\n font-style: italic;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"./woff/Roboto-Medium-webfont.woff\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"./woff/Roboto-MediumItalic-webfont.woff\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@font-face{font-family:\"Roboto\";src:url(${___CSS_LOADER_URL_REPLACEMENT_0___}) format(\"woff\");font-weight:500;font-style:normal}@font-face{font-family:\"Roboto\";src:url(${___CSS_LOADER_URL_REPLACEMENT_1___}) format(\"woff\");font-weight:500;font-style:italic}`, \"\",{\"version\":3,\"sources\":[\"webpack://./common/font/roboto/medium.scss\"],\"names\":[],\"mappings\":\"AAAA,WACI,oBAAA,CACA,0DAAA,CACA,eAAA,CACA,iBAAA,CAGJ,WACI,oBAAA,CACA,0DAAA,CACA,eAAA,CACA,iBAAA\",\"sourcesContent\":[\"@font-face {\\n font-family: 'Roboto';\\n src: url('./woff/Roboto-Medium-webfont.woff') format('woff');\\n font-weight: 500;\\n font-style: normal;\\n}\\n\\n@font-face {\\n font-family: 'Roboto';\\n src: url('./woff/Roboto-MediumItalic-webfont.woff') format('woff');\\n font-weight: 500;\\n font-style: italic;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"./woff/Roboto-Regular-webfont.woff\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"./woff/Roboto-Italic-webfont.woff\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@font-face{font-family:\"Roboto\";src:url(${___CSS_LOADER_URL_REPLACEMENT_0___}) format(\"woff\");font-weight:normal;font-style:normal}@font-face{font-family:\"Roboto\";src:url(${___CSS_LOADER_URL_REPLACEMENT_1___}) format(\"woff\");font-weight:normal;font-style:italic}`, \"\",{\"version\":3,\"sources\":[\"webpack://./common/font/roboto/regular.scss\"],\"names\":[],\"mappings\":\"AAAA,WACI,oBAAA,CACA,0DAAA,CACA,kBAAA,CACA,iBAAA,CAGJ,WACI,oBAAA,CACA,0DAAA,CACA,kBAAA,CACA,iBAAA\",\"sourcesContent\":[\"@font-face {\\n font-family: 'Roboto';\\n src: url('./woff/Roboto-Regular-webfont.woff') format('woff');\\n font-weight: normal;\\n font-style: normal;\\n}\\n\\n@font-face {\\n font-family: 'Roboto';\\n src: url('./woff/Roboto-Italic-webfont.woff') format('woff');\\n font-weight: normal;\\n font-style: italic;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"fonts/vorne-icon.ttf?yq9nq0\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"fonts/vorne-icon.woff?yq9nq0\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_2___ = new URL(\"fonts/vorne-icon.svg?yq9nq0\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___, { hash: \"#vorne-icon\" });\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@font-face{font-family:\"vorne-icon\";src:url(${___CSS_LOADER_URL_REPLACEMENT_0___}) format(\"truetype\"),url(${___CSS_LOADER_URL_REPLACEMENT_1___}) format(\"woff\"),url(${___CSS_LOADER_URL_REPLACEMENT_2___}) format(\"svg\");font-weight:normal;font-style:normal;font-display:block}[class^=vorne-icon-],[class*=\" vorne-icon-\"]{font-family:\"vorne-icon\" !important;speak:never;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.vorne-icon-expanded-headings:before{content:\"\"}.vorne-icon-rejects:before{content:\"\"}.vorne-icon-department:before{content:\"\"}.vorne-icon-factory:before{content:\"\"}.vorne-icon-gear:before{content:\"\"}.vorne-icon-globe:before{content:\"\"}.vorne-icon-hierarchy:before{content:\"\"}.vorne-icon-list:before{content:\"\"}.vorne-icon-trend-control:before{content:\"\"}.vorne-icon-chart-control:before{content:\"\"}.vorne-icon-up-down-arrow:before{content:\"\"}.vorne-icon-view:before{content:\"\"}.vorne-icon-inverse-view:before{content:\"\"}.vorne-icon-zoom-in:before{content:\"\"}.vorne-icon-zoom-out:before{content:\"\"}.vorne-icon-export:before{content:\"\"}.vorne-icon-filter:before{content:\"\"}.vorne-icon-level-control:before{content:\"\"}.vorne-icon-value:before{content:\"\"}.vorne-icon-column-control:before{content:\"\"}.vorne-icon-configure:before{content:\"\"}.vorne-icon-help:before{content:\"\"}.vorne-icon-print:before{content:\"\"}.vorne-icon-row-control:before{content:\"\"}.vorne-icon-login:before{content:\"\"}.vorne-icon-notification:before{content:\"\"}.vorne-icon-search:before{content:\"\"}.vorne-icon-drag-handles:before{content:\"\"}.vorne-icon-xl-logo:before{content:\"\"}.vorne-icon-xl-vorne-logo:before{content:\"\"}.vorne-icon-division:before{content:\"\"}.vorne-icon-drag-handles-square:before{content:\"\"}.vorne-icon-add:before{content:\"\"}.vorne-icon-strip-height:before{content:\"\"}.vorne-icon-delete-strip:before{content:\"\"}.vorne-icon-delete:before{content:\"\"}.vorne-icon-duplicate:before{content:\"\"}.vorne-icon-horizontal-ellipse:before{content:\"\"}.vorne-icon-move-down:before{content:\"\"}.vorne-icon-move-up:before{content:\"\"}.vorne-icon-type:before{content:\"\"}.vorne-icon-label:before{content:\"\"}.vorne-icon-edit:before{content:\"\"}.vorne-icon-info:before{content:\"\"}.vorne-icon-double-chevron:before{content:\"\"}.vorne-icon-color-palette:before{content:\"\"}.vorne-icon-no-grouping:before{content:\"\"}.vorne-icon-aggregated-grouping:before{content:\"\"}.vorne-icon-hierarchical-grouping:before{content:\"\"}.vorne-icon-column-resize-handle:before{content:\"\"}.vorne-icon-collapse-arrow-closed:before{content:\"\"}.vorne-icon-collapse-arrow-open:before{content:\"\"}.vorne-icon-comment:before{content:\"\"}.vorne-icon-reports:before{content:\"\"}.vorne-icon-sort-down-arrow:before{content:\"\"}.vorne-icon-sort-up-arrow:before{content:\"\"}.vorne-icon-sort:before{content:\"\"}.vorne-icon-alert:before{content:\"\"}.vorne-icon-time-range-arrow-left:before{content:\"\"}.vorne-icon-time-range-arrow-right:before{content:\"\"}.vorne-icon-calendar:before{content:\"\"}.vorne-icon-checkmark:before{content:\"\"}.vorne-icon-chip-delete:before{content:\"\"}.vorne-icon-clock:before{content:\"\"}.vorne-icon-duration:before{content:\"\"}.vorne-icon-form:before{content:\"\"}.vorne-icon-link:before{content:\"\"}.vorne-icon-locale:before{content:\"\"}.vorne-icon-menu:before{content:\"\"}.vorne-icon-save:before{content:\"\"}.vorne-icon-time:before{content:\"\"}.vorne-icon-radio-button-unselected:before{content:\"\"}.vorne-icon-radio-button-selected:before{content:\"\"}.vorne-icon-asterisk:before{content:\"\"}.vorne-icon-layout-mode:before{content:\"\"}.vorne-icon-1-column-section:before{content:\"\"}.vorne-icon-2-column-section:before{content:\"\"}.vorne-icon-2-column-section-1-2:before{content:\"\"}.vorne-icon-2-column-section-2-1:before{content:\"\"}.vorne-icon-3-column-section:before{content:\"\"}.vorne-icon-4-column-section:before{content:\"\"}.vorne-icon-5-column-section:before{content:\"\"}.vorne-icon-6-column-section:before{content:\"\"}.vorne-icon-delete-section:before{content:\"\"}.vorne-icon-move-section-down:before{content:\"\"}.vorne-icon-move-section-up:before{content:\"\"}.vorne-icon-options:before{content:\"\"}.vorne-icon-equipment:before{content:\"\"}.vorne-icon-work-center-list:before{content:\"\"}.vorne-icon-archive:before{content:\"\"}.vorne-icon-restore:before{content:\"\"}.vorne-icon-cloud:before{content:\"\"}`, \"\",{\"version\":3,\"sources\":[\"webpack://./common/font/vorne-icon/style.scss\",\"webpack://./common/font/vorne-icon/variables.scss\"],\"names\":[],\"mappings\":\"AAAA,WAEA,wBACE,CAAA,2KAEE,CAAA,kBAGF,CAAA,iBACA,CAAA,kBACA,CAAA,6CAGF,mCAEE,CAAA,WACA,CAAA,iBACA,CAAA,kBACA,CAAA,mBACA,CAAA,mBACA,CAAA,aACA,CAAA,kCAGA,CAAA,iCACA,CAAA,qCAIA,WC1B6B,CAAA,2BD+B7B,WC9BmB,CAAA,8BDmCnB,WClCsB,CAAA,2BDuCtB,WCtCmB,CAAA,wBD2CnB,WC1CgB,CAAA,yBD+ChB,WC9CiB,CAAA,6BDmDjB,WClDqB,CAAA,wBDuDrB,WCtDgB,CAAA,iCD2DhB,WC1DyB,CAAA,iCD+DzB,WC9DyB,CAAA,iCDmEzB,WClEyB,CAAA,wBDuEzB,WCtEgB,CAAA,gCD2EhB,WC1EwB,CAAA,2BD+ExB,WC9EmB,CAAA,4BDmFnB,WClFoB,CAAA,0BDuFpB,WCtFkB,CAAA,0BD2FlB,WC1FkB,CAAA,iCD+FlB,WC9FyB,CAAA,yBDmGzB,WClGiB,CAAA,kCDuGjB,WCtG0B,CAAA,6BD2G1B,WC1GqB,CAAA,wBD+GrB,WC9GgB,CAAA,yBDmHhB,WClHiB,CAAA,+BDuHjB,WCtHuB,CAAA,yBD2HvB,WC1HiB,CAAA,gCD+HjB,WC9HwB,CAAA,0BDmIxB,WClIkB,CAAA,gCDuIlB,WCtIwB,CAAA,2BD2IxB,WC1ImB,CAAA,iCD+InB,WC9IyB,CAAA,4BDmJzB,WClJoB,CAAA,uCDuJpB,WCtJ+B,CAAA,uBD2J/B,WC1Je,CAAA,gCD+Jf,WC9JwB,CAAA,gCDmKxB,WClKwB,CAAA,0BDuKxB,WCtKkB,CAAA,6BD2KlB,WC1KqB,CAAA,sCD+KrB,WC9K8B,CAAA,6BDmL9B,WClLqB,CAAA,2BDuLrB,WCtLmB,CAAA,wBD2LnB,WC1LgB,CAAA,yBD+LhB,WC9LiB,CAAA,wBDmMjB,WClMgB,CAAA,wBDuMhB,WCtMgB,CAAA,kCD2MhB,WC1M0B,CAAA,iCD+M1B,WC9MyB,CAAA,+BDmNzB,WClNuB,CAAA,uCDuNvB,WCtN+B,CAAA,yCD2N/B,WC1NiC,CAAA,wCD+NjC,WC9NgC,CAAA,yCDmOhC,WClOiC,CAAA,uCDuOjC,WCtO+B,CAAA,2BD2O/B,WC1OmB,CAAA,2BD+OnB,WC9OmB,CAAA,mCDmPnB,WClP2B,CAAA,iCDuP3B,WCtPyB,CAAA,wBD2PzB,WC1PgB,CAAA,yBD+PhB,WC9PiB,CAAA,yCDmQjB,WClQiC,CAAA,0CDuQjC,WCtQkC,CAAA,4BD2QlC,WC1QoB,CAAA,6BD+QpB,WC9QqB,CAAA,+BDmRrB,WClRuB,CAAA,yBDuRvB,WCtRiB,CAAA,4BD2RjB,WC1RoB,CAAA,wBD+RpB,WC9RgB,CAAA,wBDmShB,WClSgB,CAAA,0BDuShB,WCtSkB,CAAA,wBD2SlB,WC1SgB,CAAA,wBD+ShB,WC9SgB,CAAA,wBDmThB,WClTgB,CAAA,2CDuThB,WCtTmC,CAAA,yCD2TnC,WC1TiC,CAAA,4BD+TjC,WC9ToB,CAAA,+BDmUpB,WClUuB,CAAA,oCDuUvB,WCtU4B,CAAA,oCD2U5B,WC1U4B,CAAA,wCD+U5B,WC9UgC,CAAA,wCDmVhC,WClVgC,CAAA,oCDuVhC,WCtV4B,CAAA,oCD2V5B,WC1V4B,CAAA,oCD+V5B,WC9V4B,CAAA,oCDmW5B,WClW4B,CAAA,kCDuW5B,WCtW0B,CAAA,qCD2W1B,WC1W6B,CAAA,mCD+W7B,WC9W2B,CAAA,2BDmX3B,WClXmB,CAAA,6BDuXnB,WCtXqB,CAAA,oCD2XrB,WC1X4B,CAAA,2BD+X5B,WC9XmB,CAAA,2BDmYnB,WClYmB,CAAA,yBDuYnB,WCtYiB\",\"sourcesContent\":[\"@import \\\"variables\\\";\\n\\n@font-face {\\n font-family: '#{$icomoon-font-family}';\\n src:\\n url('#{$icomoon-font-path}/#{$icomoon-font-family}.ttf?yq9nq0') format('truetype'),\\n url('#{$icomoon-font-path}/#{$icomoon-font-family}.woff?yq9nq0') format('woff'),\\n url('#{$icomoon-font-path}/#{$icomoon-font-family}.svg?yq9nq0##{$icomoon-font-family}') format('svg');\\n font-weight: normal;\\n font-style: normal;\\n font-display: block;\\n}\\n\\n[class^=\\\"vorne-icon-\\\"], [class*=\\\" vorne-icon-\\\"] {\\n /* use !important to prevent issues with browser extensions that change fonts */\\n font-family: '#{$icomoon-font-family}' !important;\\n speak: never;\\n font-style: normal;\\n font-weight: normal;\\n font-variant: normal;\\n text-transform: none;\\n line-height: 1;\\n\\n /* Better Font Rendering =========== */\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\n.vorne-icon-expanded-headings {\\n &:before {\\n content: $vorne-icon-expanded-headings; \\n }\\n}\\n.vorne-icon-rejects {\\n &:before {\\n content: $vorne-icon-rejects; \\n }\\n}\\n.vorne-icon-department {\\n &:before {\\n content: $vorne-icon-department; \\n }\\n}\\n.vorne-icon-factory {\\n &:before {\\n content: $vorne-icon-factory; \\n }\\n}\\n.vorne-icon-gear {\\n &:before {\\n content: $vorne-icon-gear; \\n }\\n}\\n.vorne-icon-globe {\\n &:before {\\n content: $vorne-icon-globe; \\n }\\n}\\n.vorne-icon-hierarchy {\\n &:before {\\n content: $vorne-icon-hierarchy; \\n }\\n}\\n.vorne-icon-list {\\n &:before {\\n content: $vorne-icon-list; \\n }\\n}\\n.vorne-icon-trend-control {\\n &:before {\\n content: $vorne-icon-trend-control; \\n }\\n}\\n.vorne-icon-chart-control {\\n &:before {\\n content: $vorne-icon-chart-control; \\n }\\n}\\n.vorne-icon-up-down-arrow {\\n &:before {\\n content: $vorne-icon-up-down-arrow; \\n }\\n}\\n.vorne-icon-view {\\n &:before {\\n content: $vorne-icon-view; \\n }\\n}\\n.vorne-icon-inverse-view {\\n &:before {\\n content: $vorne-icon-inverse-view; \\n }\\n}\\n.vorne-icon-zoom-in {\\n &:before {\\n content: $vorne-icon-zoom-in; \\n }\\n}\\n.vorne-icon-zoom-out {\\n &:before {\\n content: $vorne-icon-zoom-out; \\n }\\n}\\n.vorne-icon-export {\\n &:before {\\n content: $vorne-icon-export; \\n }\\n}\\n.vorne-icon-filter {\\n &:before {\\n content: $vorne-icon-filter; \\n }\\n}\\n.vorne-icon-level-control {\\n &:before {\\n content: $vorne-icon-level-control; \\n }\\n}\\n.vorne-icon-value {\\n &:before {\\n content: $vorne-icon-value; \\n }\\n}\\n.vorne-icon-column-control {\\n &:before {\\n content: $vorne-icon-column-control; \\n }\\n}\\n.vorne-icon-configure {\\n &:before {\\n content: $vorne-icon-configure; \\n }\\n}\\n.vorne-icon-help {\\n &:before {\\n content: $vorne-icon-help; \\n }\\n}\\n.vorne-icon-print {\\n &:before {\\n content: $vorne-icon-print; \\n }\\n}\\n.vorne-icon-row-control {\\n &:before {\\n content: $vorne-icon-row-control; \\n }\\n}\\n.vorne-icon-login {\\n &:before {\\n content: $vorne-icon-login; \\n }\\n}\\n.vorne-icon-notification {\\n &:before {\\n content: $vorne-icon-notification; \\n }\\n}\\n.vorne-icon-search {\\n &:before {\\n content: $vorne-icon-search; \\n }\\n}\\n.vorne-icon-drag-handles {\\n &:before {\\n content: $vorne-icon-drag-handles; \\n }\\n}\\n.vorne-icon-xl-logo {\\n &:before {\\n content: $vorne-icon-xl-logo; \\n }\\n}\\n.vorne-icon-xl-vorne-logo {\\n &:before {\\n content: $vorne-icon-xl-vorne-logo; \\n }\\n}\\n.vorne-icon-division {\\n &:before {\\n content: $vorne-icon-division; \\n }\\n}\\n.vorne-icon-drag-handles-square {\\n &:before {\\n content: $vorne-icon-drag-handles-square; \\n }\\n}\\n.vorne-icon-add {\\n &:before {\\n content: $vorne-icon-add; \\n }\\n}\\n.vorne-icon-strip-height {\\n &:before {\\n content: $vorne-icon-strip-height; \\n }\\n}\\n.vorne-icon-delete-strip {\\n &:before {\\n content: $vorne-icon-delete-strip; \\n }\\n}\\n.vorne-icon-delete {\\n &:before {\\n content: $vorne-icon-delete; \\n }\\n}\\n.vorne-icon-duplicate {\\n &:before {\\n content: $vorne-icon-duplicate; \\n }\\n}\\n.vorne-icon-horizontal-ellipse {\\n &:before {\\n content: $vorne-icon-horizontal-ellipse; \\n }\\n}\\n.vorne-icon-move-down {\\n &:before {\\n content: $vorne-icon-move-down; \\n }\\n}\\n.vorne-icon-move-up {\\n &:before {\\n content: $vorne-icon-move-up; \\n }\\n}\\n.vorne-icon-type {\\n &:before {\\n content: $vorne-icon-type; \\n }\\n}\\n.vorne-icon-label {\\n &:before {\\n content: $vorne-icon-label; \\n }\\n}\\n.vorne-icon-edit {\\n &:before {\\n content: $vorne-icon-edit; \\n }\\n}\\n.vorne-icon-info {\\n &:before {\\n content: $vorne-icon-info; \\n }\\n}\\n.vorne-icon-double-chevron {\\n &:before {\\n content: $vorne-icon-double-chevron; \\n }\\n}\\n.vorne-icon-color-palette {\\n &:before {\\n content: $vorne-icon-color-palette; \\n }\\n}\\n.vorne-icon-no-grouping {\\n &:before {\\n content: $vorne-icon-no-grouping; \\n }\\n}\\n.vorne-icon-aggregated-grouping {\\n &:before {\\n content: $vorne-icon-aggregated-grouping; \\n }\\n}\\n.vorne-icon-hierarchical-grouping {\\n &:before {\\n content: $vorne-icon-hierarchical-grouping; \\n }\\n}\\n.vorne-icon-column-resize-handle {\\n &:before {\\n content: $vorne-icon-column-resize-handle; \\n }\\n}\\n.vorne-icon-collapse-arrow-closed {\\n &:before {\\n content: $vorne-icon-collapse-arrow-closed; \\n }\\n}\\n.vorne-icon-collapse-arrow-open {\\n &:before {\\n content: $vorne-icon-collapse-arrow-open; \\n }\\n}\\n.vorne-icon-comment {\\n &:before {\\n content: $vorne-icon-comment; \\n }\\n}\\n.vorne-icon-reports {\\n &:before {\\n content: $vorne-icon-reports; \\n }\\n}\\n.vorne-icon-sort-down-arrow {\\n &:before {\\n content: $vorne-icon-sort-down-arrow; \\n }\\n}\\n.vorne-icon-sort-up-arrow {\\n &:before {\\n content: $vorne-icon-sort-up-arrow; \\n }\\n}\\n.vorne-icon-sort {\\n &:before {\\n content: $vorne-icon-sort; \\n }\\n}\\n.vorne-icon-alert {\\n &:before {\\n content: $vorne-icon-alert; \\n }\\n}\\n.vorne-icon-time-range-arrow-left {\\n &:before {\\n content: $vorne-icon-time-range-arrow-left; \\n }\\n}\\n.vorne-icon-time-range-arrow-right {\\n &:before {\\n content: $vorne-icon-time-range-arrow-right; \\n }\\n}\\n.vorne-icon-calendar {\\n &:before {\\n content: $vorne-icon-calendar; \\n }\\n}\\n.vorne-icon-checkmark {\\n &:before {\\n content: $vorne-icon-checkmark; \\n }\\n}\\n.vorne-icon-chip-delete {\\n &:before {\\n content: $vorne-icon-chip-delete; \\n }\\n}\\n.vorne-icon-clock {\\n &:before {\\n content: $vorne-icon-clock; \\n }\\n}\\n.vorne-icon-duration {\\n &:before {\\n content: $vorne-icon-duration; \\n }\\n}\\n.vorne-icon-form {\\n &:before {\\n content: $vorne-icon-form; \\n }\\n}\\n.vorne-icon-link {\\n &:before {\\n content: $vorne-icon-link; \\n }\\n}\\n.vorne-icon-locale {\\n &:before {\\n content: $vorne-icon-locale; \\n }\\n}\\n.vorne-icon-menu {\\n &:before {\\n content: $vorne-icon-menu; \\n }\\n}\\n.vorne-icon-save {\\n &:before {\\n content: $vorne-icon-save; \\n }\\n}\\n.vorne-icon-time {\\n &:before {\\n content: $vorne-icon-time; \\n }\\n}\\n.vorne-icon-radio-button-unselected {\\n &:before {\\n content: $vorne-icon-radio-button-unselected; \\n }\\n}\\n.vorne-icon-radio-button-selected {\\n &:before {\\n content: $vorne-icon-radio-button-selected; \\n }\\n}\\n.vorne-icon-asterisk {\\n &:before {\\n content: $vorne-icon-asterisk; \\n }\\n}\\n.vorne-icon-layout-mode {\\n &:before {\\n content: $vorne-icon-layout-mode; \\n }\\n}\\n.vorne-icon-1-column-section {\\n &:before {\\n content: $vorne-icon-1-column-section; \\n }\\n}\\n.vorne-icon-2-column-section {\\n &:before {\\n content: $vorne-icon-2-column-section; \\n }\\n}\\n.vorne-icon-2-column-section-1-2 {\\n &:before {\\n content: $vorne-icon-2-column-section-1-2; \\n }\\n}\\n.vorne-icon-2-column-section-2-1 {\\n &:before {\\n content: $vorne-icon-2-column-section-2-1; \\n }\\n}\\n.vorne-icon-3-column-section {\\n &:before {\\n content: $vorne-icon-3-column-section; \\n }\\n}\\n.vorne-icon-4-column-section {\\n &:before {\\n content: $vorne-icon-4-column-section; \\n }\\n}\\n.vorne-icon-5-column-section {\\n &:before {\\n content: $vorne-icon-5-column-section; \\n }\\n}\\n.vorne-icon-6-column-section {\\n &:before {\\n content: $vorne-icon-6-column-section; \\n }\\n}\\n.vorne-icon-delete-section {\\n &:before {\\n content: $vorne-icon-delete-section; \\n }\\n}\\n.vorne-icon-move-section-down {\\n &:before {\\n content: $vorne-icon-move-section-down; \\n }\\n}\\n.vorne-icon-move-section-up {\\n &:before {\\n content: $vorne-icon-move-section-up; \\n }\\n}\\n.vorne-icon-options {\\n &:before {\\n content: $vorne-icon-options; \\n }\\n}\\n.vorne-icon-equipment {\\n &:before {\\n content: $vorne-icon-equipment; \\n }\\n}\\n.vorne-icon-work-center-list {\\n &:before {\\n content: $vorne-icon-work-center-list; \\n }\\n}\\n.vorne-icon-archive {\\n &:before {\\n content: $vorne-icon-archive; \\n }\\n}\\n.vorne-icon-restore {\\n &:before {\\n content: $vorne-icon-restore; \\n }\\n}\\n.vorne-icon-cloud {\\n &:before {\\n content: $vorne-icon-cloud; \\n }\\n}\\n\\n\",\"$icomoon-font-family: \\\"vorne-icon\\\" !default;\\n$icomoon-font-path: \\\"fonts\\\" !default;\\n\\n$vorne-icon-expanded-headings: \\\"\\\\e947\\\";\\n$vorne-icon-rejects: \\\"\\\\e948\\\";\\n$vorne-icon-department: \\\"\\\\e900\\\";\\n$vorne-icon-factory: \\\"\\\\e901\\\";\\n$vorne-icon-gear: \\\"\\\\e902\\\";\\n$vorne-icon-globe: \\\"\\\\e903\\\";\\n$vorne-icon-hierarchy: \\\"\\\\e904\\\";\\n$vorne-icon-list: \\\"\\\\e905\\\";\\n$vorne-icon-trend-control: \\\"\\\\e906\\\";\\n$vorne-icon-chart-control: \\\"\\\\e907\\\";\\n$vorne-icon-up-down-arrow: \\\"\\\\e908\\\";\\n$vorne-icon-view: \\\"\\\\e909\\\";\\n$vorne-icon-inverse-view: \\\"\\\\e90a\\\";\\n$vorne-icon-zoom-in: \\\"\\\\e90b\\\";\\n$vorne-icon-zoom-out: \\\"\\\\e90c\\\";\\n$vorne-icon-export: \\\"\\\\e90d\\\";\\n$vorne-icon-filter: \\\"\\\\e90e\\\";\\n$vorne-icon-level-control: \\\"\\\\e90f\\\";\\n$vorne-icon-value: \\\"\\\\e910\\\";\\n$vorne-icon-column-control: \\\"\\\\e911\\\";\\n$vorne-icon-configure: \\\"\\\\e912\\\";\\n$vorne-icon-help: \\\"\\\\e913\\\";\\n$vorne-icon-print: \\\"\\\\e914\\\";\\n$vorne-icon-row-control: \\\"\\\\e915\\\";\\n$vorne-icon-login: \\\"\\\\e916\\\";\\n$vorne-icon-notification: \\\"\\\\e917\\\";\\n$vorne-icon-search: \\\"\\\\e918\\\";\\n$vorne-icon-drag-handles: \\\"\\\\e919\\\";\\n$vorne-icon-xl-logo: \\\"\\\\e91a\\\";\\n$vorne-icon-xl-vorne-logo: \\\"\\\\e91b\\\";\\n$vorne-icon-division: \\\"\\\\e91c\\\";\\n$vorne-icon-drag-handles-square: \\\"\\\\e91d\\\";\\n$vorne-icon-add: \\\"\\\\e91e\\\";\\n$vorne-icon-strip-height: \\\"\\\\e91f\\\";\\n$vorne-icon-delete-strip: \\\"\\\\e920\\\";\\n$vorne-icon-delete: \\\"\\\\e921\\\";\\n$vorne-icon-duplicate: \\\"\\\\e922\\\";\\n$vorne-icon-horizontal-ellipse: \\\"\\\\e923\\\";\\n$vorne-icon-move-down: \\\"\\\\e924\\\";\\n$vorne-icon-move-up: \\\"\\\\e925\\\";\\n$vorne-icon-type: \\\"\\\\e926\\\";\\n$vorne-icon-label: \\\"\\\\e927\\\";\\n$vorne-icon-edit: \\\"\\\\e928\\\";\\n$vorne-icon-info: \\\"\\\\e929\\\";\\n$vorne-icon-double-chevron: \\\"\\\\e92a\\\";\\n$vorne-icon-color-palette: \\\"\\\\e92b\\\";\\n$vorne-icon-no-grouping: \\\"\\\\e92c\\\";\\n$vorne-icon-aggregated-grouping: \\\"\\\\e92d\\\";\\n$vorne-icon-hierarchical-grouping: \\\"\\\\e92e\\\";\\n$vorne-icon-column-resize-handle: \\\"\\\\e92f\\\";\\n$vorne-icon-collapse-arrow-closed: \\\"\\\\e930\\\";\\n$vorne-icon-collapse-arrow-open: \\\"\\\\e931\\\";\\n$vorne-icon-comment: \\\"\\\\e932\\\";\\n$vorne-icon-reports: \\\"\\\\e933\\\";\\n$vorne-icon-sort-down-arrow: \\\"\\\\e934\\\";\\n$vorne-icon-sort-up-arrow: \\\"\\\\e935\\\";\\n$vorne-icon-sort: \\\"\\\\e936\\\";\\n$vorne-icon-alert: \\\"\\\\e937\\\";\\n$vorne-icon-time-range-arrow-left: \\\"\\\\e938\\\";\\n$vorne-icon-time-range-arrow-right: \\\"\\\\e939\\\";\\n$vorne-icon-calendar: \\\"\\\\e93a\\\";\\n$vorne-icon-checkmark: \\\"\\\\e93b\\\";\\n$vorne-icon-chip-delete: \\\"\\\\e93c\\\";\\n$vorne-icon-clock: \\\"\\\\e93d\\\";\\n$vorne-icon-duration: \\\"\\\\e93e\\\";\\n$vorne-icon-form: \\\"\\\\e93f\\\";\\n$vorne-icon-link: \\\"\\\\e941\\\";\\n$vorne-icon-locale: \\\"\\\\e942\\\";\\n$vorne-icon-menu: \\\"\\\\e943\\\";\\n$vorne-icon-save: \\\"\\\\e944\\\";\\n$vorne-icon-time: \\\"\\\\e945\\\";\\n$vorne-icon-radio-button-unselected: \\\"\\\\e940\\\";\\n$vorne-icon-radio-button-selected: \\\"\\\\e946\\\";\\n$vorne-icon-asterisk: \\\"\\\\e949\\\";\\n$vorne-icon-layout-mode: \\\"\\\\e94a\\\";\\n$vorne-icon-1-column-section: \\\"\\\\e94b\\\";\\n$vorne-icon-2-column-section: \\\"\\\\e94c\\\";\\n$vorne-icon-2-column-section-1-2: \\\"\\\\e94d\\\";\\n$vorne-icon-2-column-section-2-1: \\\"\\\\e94e\\\";\\n$vorne-icon-3-column-section: \\\"\\\\e94f\\\";\\n$vorne-icon-4-column-section: \\\"\\\\e950\\\";\\n$vorne-icon-5-column-section: \\\"\\\\e951\\\";\\n$vorne-icon-6-column-section: \\\"\\\\e952\\\";\\n$vorne-icon-delete-section: \\\"\\\\e953\\\";\\n$vorne-icon-move-section-down: \\\"\\\\e954\\\";\\n$vorne-icon-move-section-up: \\\"\\\\e955\\\";\\n$vorne-icon-options: \\\"\\\\e956\\\";\\n$vorne-icon-equipment: \\\"\\\\e957\\\";\\n$vorne-icon-work-center-list: \\\"\\\\e958\\\";\\n$vorne-icon-archive: \\\"\\\\e959\\\";\\n$vorne-icon-restore: \\\"\\\\e95a\\\";\\n$vorne-icon-cloud: \\\"\\\\e95b\\\";\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.number-field-overrides{display:inline;width:inherit !important}.number-field-overrides>div{display:inline-block;width:inherit}.number-field-overrides>div>input{width:inherit;display:inline-block;position:inherit}`, \"\",{\"version\":3,\"sources\":[\"webpack://./enterprise/components/pages/metric-thresholds/MetricThresholds.scss\"],\"names\":[],\"mappings\":\"AAGA,wBACE,cAAA,CACA,wBAAA,CAEA,4BACE,oBAAA,CACA,aAAA,CAGF,kCACE,aAAA,CACA,oBAAA,CACA,gBAAA\",\"sourcesContent\":[\"\\n// these overrides exist to allow the number field to sit on the same line as the trailing percentage range values\\n\\n.number-field-overrides {\\n display: inline;\\n width: inherit !important;\\n\\n & > div {\\n display: inline-block;\\n width: inherit;\\n }\\n\\n & > div > input {\\n width: inherit;\\n display: inline-block;\\n position: inherit;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var map = {\n\t\"./af\": 42786,\n\t\"./af.js\": 42786,\n\t\"./ar\": 30867,\n\t\"./ar-dz\": 14130,\n\t\"./ar-dz.js\": 14130,\n\t\"./ar-kw\": 96135,\n\t\"./ar-kw.js\": 96135,\n\t\"./ar-ly\": 56440,\n\t\"./ar-ly.js\": 56440,\n\t\"./ar-ma\": 47702,\n\t\"./ar-ma.js\": 47702,\n\t\"./ar-sa\": 16040,\n\t\"./ar-sa.js\": 16040,\n\t\"./ar-tn\": 37100,\n\t\"./ar-tn.js\": 37100,\n\t\"./ar.js\": 30867,\n\t\"./az\": 31083,\n\t\"./az.js\": 31083,\n\t\"./be\": 9808,\n\t\"./be.js\": 9808,\n\t\"./bg\": 68338,\n\t\"./bg.js\": 68338,\n\t\"./bm\": 67438,\n\t\"./bm.js\": 67438,\n\t\"./bn\": 8905,\n\t\"./bn-bd\": 76225,\n\t\"./bn-bd.js\": 76225,\n\t\"./bn.js\": 8905,\n\t\"./bo\": 11560,\n\t\"./bo.js\": 11560,\n\t\"./br\": 1278,\n\t\"./br.js\": 1278,\n\t\"./bs\": 80622,\n\t\"./bs.js\": 80622,\n\t\"./ca\": 2468,\n\t\"./ca.js\": 2468,\n\t\"./cs\": 5822,\n\t\"./cs.js\": 5822,\n\t\"./cv\": 50877,\n\t\"./cv.js\": 50877,\n\t\"./cy\": 47373,\n\t\"./cy.js\": 47373,\n\t\"./da\": 24780,\n\t\"./da.js\": 24780,\n\t\"./de\": 59740,\n\t\"./de-at\": 60217,\n\t\"./de-at.js\": 60217,\n\t\"./de-ch\": 60894,\n\t\"./de-ch.js\": 60894,\n\t\"./de.js\": 59740,\n\t\"./dv\": 5300,\n\t\"./dv.js\": 5300,\n\t\"./el\": 50837,\n\t\"./el.js\": 50837,\n\t\"./en-au\": 78348,\n\t\"./en-au.js\": 78348,\n\t\"./en-ca\": 77925,\n\t\"./en-ca.js\": 77925,\n\t\"./en-gb\": 22243,\n\t\"./en-gb.js\": 22243,\n\t\"./en-ie\": 46436,\n\t\"./en-ie.js\": 46436,\n\t\"./en-il\": 47207,\n\t\"./en-il.js\": 47207,\n\t\"./en-in\": 44175,\n\t\"./en-in.js\": 44175,\n\t\"./en-nz\": 76319,\n\t\"./en-nz.js\": 76319,\n\t\"./en-sg\": 31662,\n\t\"./en-sg.js\": 31662,\n\t\"./eo\": 92915,\n\t\"./eo.js\": 92915,\n\t\"./es\": 55655,\n\t\"./es-do\": 55251,\n\t\"./es-do.js\": 55251,\n\t\"./es-mx\": 96112,\n\t\"./es-mx.js\": 96112,\n\t\"./es-us\": 71146,\n\t\"./es-us.js\": 71146,\n\t\"./es.js\": 55655,\n\t\"./et\": 5603,\n\t\"./et.js\": 5603,\n\t\"./eu\": 77763,\n\t\"./eu.js\": 77763,\n\t\"./fa\": 76959,\n\t\"./fa.js\": 76959,\n\t\"./fi\": 11897,\n\t\"./fi.js\": 11897,\n\t\"./fil\": 42549,\n\t\"./fil.js\": 42549,\n\t\"./fo\": 94694,\n\t\"./fo.js\": 94694,\n\t\"./fr\": 94470,\n\t\"./fr-ca\": 63049,\n\t\"./fr-ca.js\": 63049,\n\t\"./fr-ch\": 52330,\n\t\"./fr-ch.js\": 52330,\n\t\"./fr.js\": 94470,\n\t\"./fy\": 5044,\n\t\"./fy.js\": 5044,\n\t\"./ga\": 29295,\n\t\"./ga.js\": 29295,\n\t\"./gd\": 2101,\n\t\"./gd.js\": 2101,\n\t\"./gl\": 38794,\n\t\"./gl.js\": 38794,\n\t\"./gom-deva\": 27884,\n\t\"./gom-deva.js\": 27884,\n\t\"./gom-latn\": 23168,\n\t\"./gom-latn.js\": 23168,\n\t\"./gu\": 95349,\n\t\"./gu.js\": 95349,\n\t\"./he\": 24206,\n\t\"./he.js\": 24206,\n\t\"./hi\": 30094,\n\t\"./hi.js\": 30094,\n\t\"./hr\": 30316,\n\t\"./hr.js\": 30316,\n\t\"./hu\": 22138,\n\t\"./hu.js\": 22138,\n\t\"./hy-am\": 11423,\n\t\"./hy-am.js\": 11423,\n\t\"./id\": 29218,\n\t\"./id.js\": 29218,\n\t\"./is\": 90135,\n\t\"./is.js\": 90135,\n\t\"./it\": 90626,\n\t\"./it-ch\": 10150,\n\t\"./it-ch.js\": 10150,\n\t\"./it.js\": 90626,\n\t\"./ja\": 39183,\n\t\"./ja.js\": 39183,\n\t\"./jv\": 24286,\n\t\"./jv.js\": 24286,\n\t\"./ka\": 12105,\n\t\"./ka.js\": 12105,\n\t\"./kk\": 47772,\n\t\"./kk.js\": 47772,\n\t\"./km\": 18758,\n\t\"./km.js\": 18758,\n\t\"./kn\": 79282,\n\t\"./kn.js\": 79282,\n\t\"./ko\": 33730,\n\t\"./ko.js\": 33730,\n\t\"./ku\": 1408,\n\t\"./ku.js\": 1408,\n\t\"./ky\": 33291,\n\t\"./ky.js\": 33291,\n\t\"./lb\": 36841,\n\t\"./lb.js\": 36841,\n\t\"./lo\": 55466,\n\t\"./lo.js\": 55466,\n\t\"./lt\": 57010,\n\t\"./lt.js\": 57010,\n\t\"./lv\": 37595,\n\t\"./lv.js\": 37595,\n\t\"./me\": 39861,\n\t\"./me.js\": 39861,\n\t\"./mi\": 35493,\n\t\"./mi.js\": 35493,\n\t\"./mk\": 95966,\n\t\"./mk.js\": 95966,\n\t\"./ml\": 87341,\n\t\"./ml.js\": 87341,\n\t\"./mn\": 5115,\n\t\"./mn.js\": 5115,\n\t\"./mr\": 10370,\n\t\"./mr.js\": 10370,\n\t\"./ms\": 9847,\n\t\"./ms-my\": 41237,\n\t\"./ms-my.js\": 41237,\n\t\"./ms.js\": 9847,\n\t\"./mt\": 72126,\n\t\"./mt.js\": 72126,\n\t\"./my\": 56165,\n\t\"./my.js\": 56165,\n\t\"./nb\": 64924,\n\t\"./nb.js\": 64924,\n\t\"./ne\": 16744,\n\t\"./ne.js\": 16744,\n\t\"./nl\": 93901,\n\t\"./nl-be\": 59814,\n\t\"./nl-be.js\": 59814,\n\t\"./nl.js\": 93901,\n\t\"./nn\": 83877,\n\t\"./nn.js\": 83877,\n\t\"./oc-lnc\": 92135,\n\t\"./oc-lnc.js\": 92135,\n\t\"./pa-in\": 15858,\n\t\"./pa-in.js\": 15858,\n\t\"./pl\": 64495,\n\t\"./pl.js\": 64495,\n\t\"./pt\": 89520,\n\t\"./pt-br\": 57971,\n\t\"./pt-br.js\": 57971,\n\t\"./pt.js\": 89520,\n\t\"./ro\": 96459,\n\t\"./ro.js\": 96459,\n\t\"./ru\": 21793,\n\t\"./ru.js\": 21793,\n\t\"./sd\": 40950,\n\t\"./sd.js\": 40950,\n\t\"./se\": 10490,\n\t\"./se.js\": 10490,\n\t\"./si\": 90124,\n\t\"./si.js\": 90124,\n\t\"./sk\": 64249,\n\t\"./sk.js\": 64249,\n\t\"./sl\": 14985,\n\t\"./sl.js\": 14985,\n\t\"./sq\": 51104,\n\t\"./sq.js\": 51104,\n\t\"./sr\": 49131,\n\t\"./sr-cyrl\": 79915,\n\t\"./sr-cyrl.js\": 79915,\n\t\"./sr.js\": 49131,\n\t\"./ss\": 85893,\n\t\"./ss.js\": 85893,\n\t\"./sv\": 98760,\n\t\"./sv.js\": 98760,\n\t\"./sw\": 91172,\n\t\"./sw.js\": 91172,\n\t\"./ta\": 27333,\n\t\"./ta.js\": 27333,\n\t\"./te\": 23110,\n\t\"./te.js\": 23110,\n\t\"./tet\": 52095,\n\t\"./tet.js\": 52095,\n\t\"./tg\": 27321,\n\t\"./tg.js\": 27321,\n\t\"./th\": 9041,\n\t\"./th.js\": 9041,\n\t\"./tk\": 19005,\n\t\"./tk.js\": 19005,\n\t\"./tl-ph\": 75768,\n\t\"./tl-ph.js\": 75768,\n\t\"./tlh\": 89444,\n\t\"./tlh.js\": 89444,\n\t\"./tr\": 72397,\n\t\"./tr.js\": 72397,\n\t\"./tzl\": 28254,\n\t\"./tzl.js\": 28254,\n\t\"./tzm\": 51106,\n\t\"./tzm-latn\": 30699,\n\t\"./tzm-latn.js\": 30699,\n\t\"./tzm.js\": 51106,\n\t\"./ug-cn\": 9288,\n\t\"./ug-cn.js\": 9288,\n\t\"./uk\": 67691,\n\t\"./uk.js\": 67691,\n\t\"./ur\": 13795,\n\t\"./ur.js\": 13795,\n\t\"./uz\": 6791,\n\t\"./uz-latn\": 60588,\n\t\"./uz-latn.js\": 60588,\n\t\"./uz.js\": 6791,\n\t\"./vi\": 65666,\n\t\"./vi.js\": 65666,\n\t\"./x-pseudo\": 14378,\n\t\"./x-pseudo.js\": 14378,\n\t\"./yo\": 75805,\n\t\"./yo.js\": 75805,\n\t\"./zh-cn\": 83839,\n\t\"./zh-cn.js\": 83839,\n\t\"./zh-hk\": 55726,\n\t\"./zh-hk.js\": 55726,\n\t\"./zh-mo\": 99807,\n\t\"./zh-mo.js\": 99807,\n\t\"./zh-tw\": 74152,\n\t\"./zh-tw.js\": 74152\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;"],"names":["NetworkError","_Error","_inherits","_super","_classCallCheck","apply","arguments","_wrapNativeSuper","Error","ResponseFormatError","_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","err","undefined","defaultRequestConfig","mode","headers","Request","url","config","_send","_callee","response","statusCode","responseJson","ok","_context","fetch","t0","status","json","t1","concat","message","data","send","abort","mergeTwoRequestConfigs","defaultConfig","mergedConfig","_objectSpread","mergeRequestConfigs","_len","configs","Array","_key","merged","GetRequest","PostRequest","body","JSON","stringify","PatchRequest","PutRequest","DeleteRequest","sendGetRequest","_x","_x2","_sendGetRequest","_callee2","request","_context2","sendPostRequest","_x3","_x4","_sendPostRequest","_callee3","_context3","sendPatchRequest","_x5","_x6","_sendPatchRequest","_callee4","_context4","sendPutRequest","_x7","_x8","_sendPutRequest","_callee5","_context5","sendDeleteRequest","_x9","_x10","_sendDeleteRequest","_callee6","_context6","requestActionCreator","actions","sendRequest","_ref","dispatch","failure","success","SET_RESOURCE","REQUEST_RESET","REQUEST_PENDING","REQUEST_SUCCESS","REQUEST_FAILURE","getResources","options","resourceType","requestId","requestMethod","payload","patchResources","requestData","resetResourcesRequest","getResource","resourceId","patchResource","putResource","deleteResource","resetResourceRequest","IDLE","PENDING","SUCCESS","FAILURE","initialState","RequestStatus","requestReducer","state","action","actionFilter","filterFn","reducer","actionMap","mapFn","reducerMap","_defineProperty","resourceCollectionReducer","resourceReducer","getResourceId","requestIds","requests","sortFunction","sort","additionalReducers","_options$numericResou","numericResourceIdsOnly","requestsReducer","reduce","reducers","createRequestsReducer","list","resources","_missingResourceState","_isIndividualResourceAction","resourceState","nextResourceState","nextList","filter","id","_toConsumableArray","map","resource","_handleGetResources","_handlePostResource","_handlePatchResource","selectResource","selectResources","_options$setResource","setResource","dataReducer","handleGetRequest","handlePatchRequest","handleDeleteRequest","handlePutRequest","createDataReducer","combinedReducer","combineReducers","selectResourceData","selectResourceRequest","getHierarchy","_sendRequest","getHierarchyReset","putHierarchy","newHierarchy","getSessionUser","getUser","userId","getUsers","getUsersReset","getSupportUsers","getSupportUsersReset","sortSupportUsers","accessor","direction","b","deleteSupportUser","patchSupportUser","patch","GET_ENVIRONMENT_REQUEST","GET_ENVIRONMENT_SUCCESS","GET_ENVIRONMENT_FAILURE","INIT_APP_COMPLETE","login","email","password","logout","val","document","location","href","cleanUpEmail","trim","toLowerCase","generateSessionUserPatch","initialData","modifiedData","patchData","current_password","new_password","patchSessionUserReset","patchSessionUser","changes","patchSessionUserEmailReset","patchSessionUserEmail","patchSessionUserSmsEmailReset","patchSessionUserSmsEmail","generateUserPatch","patchUser","patchUserReset","GET_ORGANIZATION_REQUEST","GET_ORGANIZATION_SUCCESS","GET_ORGANIZATION_FAILURE","PATCH_ORGANIZATION_RESET","PATCH_ORGANIZATION_REQUEST","PATCH_ORGANIZATION_SUCCESS","PATCH_ORGANIZATION_FAILURE","getAlerts","ownKeys","getOwnPropertySymbols","getOwnPropertyDescriptor","getOwnPropertyDescriptors","defineProperties","obj","input","hint","prim","toPrimitive","res","String","_toPrimitive","_toPropertyKey","PATCH_KEYS","extractPatchKeys","alert","rv","generateAlertsPatch","add","replace","remove","alertType","initialAlerts","modifiedAlerts","initial","modified","alertId","isEqual","source","excluded","target","sourceKeys","indexOf","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_objectWithoutProperties","_excluded","withoutId","Number","getDeviceSubscriptions","patchDeviceSubscriptions","getAlertWindow","patchAlertWindow","GET_VERSION_REQUEST","GET_VERSION_SUCCESS","GET_VERSION_FAILURE","postEmailTemplate","post","onSuccess","postResource","promise","patchEmailTemplate","emailTemplateId","getEmailTemplates","deleteEmailTemplate","getEmailSubscriptions","patchEmailSubscriptions","getMetricThresholds","putMetricThresholds","newMetricThresholds","defaultLocale","LocaleContext","React","LocaleProvider","getLocale","children","Provider","__self","__source","fileName","lineNumber","columnNumber","Consumer","propTypes","PropTypes","isRequired","FontWeight","FontFamily","T1","styled","span","withConfig","componentId","T2","T3","Subtitle1","Subtitle2","Body1","Body2","Button","Caption","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","VorneIcon","_React$Component","_this$props","this","props","className","otherProps","_extends","classNames","defaultProps","Box","div","Root","theme","colors","palette","blue","awesome","_jsxFileName","NoticeBox","background","text","border","Notice","textColor","backgroundColor","borderColor","boxColors","ErrorNotice","white","red","withTheme","ErrorLoadingMessage","LoadingIndicatorWrapper","LoadingWrapper","internalJsx","loading","render","console","LoadingIndicator","anyOf","validators","validate","propName","componentName","rest","passed","errors","validator","join","_len2","_key2","_assertChildrenPropName","_validateElementType","el","allowedTypes","elemDisplayType","elementsOfType","strictNull","nullable","propType","Overlay","button","black","ButtonLike","ref","Component","classNameProp","selected","disabled","as","role","tabIndex","_this","ButtonTypography","childrenProp","toArray","ButtonText","getDisplayName","interceptProps","propNames","WrappedComponent","__textColor","TextButton","color","bgColor","ContainedButton","defaultContext","focused","required","onFocus","onBlur","FormElement","_handleFocus","bind","_assertThisInitialized","_handleBlur","setState","contextValue","FormElementContext","withFormElementContext","WithFormElementContext","context","formElementContext","attrs","darkText","TextInputField","event","readOnly","disabledProps","disabledFormContext","mediumEmphasis","highEmphasis","FormElementLabel","FormElementHelperText","uniqueId","prefix","_uniqueId","TextInputWrapper","RightButtonWrapper","TextInput","label","helperText","placeholder","autoComplete","autoFocus","rightButton","onChange","helperTextElem","TextInputLabel","htmlFor","Spacing","OutlinedButton","sourceIdPrefix","PortalHelper","_Component","sourceId","createElement","appendChild","parentStyle","style","position","top","left","ReactDOM","renderChildren","nextPortalSourceNumber","PortalSource","Portal","_useState","useState","getNextPortalSourceId","_slicedToArray","FontSize","HeadingBase","Heading2","Heading3","Heading4","Heading5","SubheadingBase","_ref2","Subheading2","Subheading5","PrimaryBase","_ref3","Primary4","Primary5","SecondaryBase","_ref4","Secondary5","BodyBase","_ref5","Body4","Body5","Body6","Body7","ButtonBase","Icon","classes","iconName","fullClassName","useUniqueId","useRef","current","StyledWindowContainer","borderRadius","StyledWindow","grey","emperor","StyledBar","StyledTopBar","hasTitle","css","cloud","StyledBottomBar","TitleText","WindowBody","_ref6","StyledMask","Mask","CloseButton","CloseButtonIcon","ModalWindow","buttons","title","bodyHeight","bodyWidth","bodyMaxHeight","bodyMaxWidth","onClose","onMaskClick","windowTitle","onClick","bodyStyle","width","height","maxWidth","maxHeight","labelId","cssUnitType","StyledButton","size","deep","ice","cruise","useNavigationPrevention","isDirty","history","useHistory","_useState2","showModal","confirmedNavigation","handleModelLeave","handleModalStay","useEffect","pathname","_useState4","cancelled","setCancelled","component","Prompt","when","nextLocation","modalButtons","index","getModal","cancel","StyledErrorNotice","ErrorList","ul","ErrorListItem","li","FormError","renderPayload","status_code","SubmitButton","CancelButton","Form","allowSubmit","allowCancel","disableNavigationPrevention","showCancel","showSubmit","submitButtonText","cancelButtonText","navigationPrevention","onSubmit","preventDefault","onReset","noValidate","StyledTextInput","LoginButtonsContainer","ForgotPasswordLink","LoginFormBody","LoginForm","_props$initialValue","_props$initialValue2","initialValue","_this$state","isLoading","_handleSubmit","_handleEmailChange","_handlePasswordChange","Link","to","LogoutFormBody","StatusMessage","LogoutForm","sessionData","sessionDataInitialState","active","created","email_address","first_day_of_week","hierarchy_visibility","last_login","organization_id","pending_email_address","sms_email_address","timezone","vorne_support","updatePassword","verifyAccount","verifyEmailChange","verifyEmailResend","verifySmsEmailResend","isInitialized","selectIsInitialized","selectSessionUser","selectIsLoggedIn","selectIsSupport","_state$sessionData","selectSessionRequest","Base","LoginLogoutForm","onLoginSubmit","onLogoutSubmit","_this2","session","isLoggedIn","_handleLogoutSubmit","_handleLoginSubmit","mapDispatchToProps","connect","FaIcon","MainMenuText","IconLink","Roles","ADMIN","MEMBER","roleOrder","isAtLeastMinimumRole","minRole","minRoleNum","roleNum","getRoleDisplayText","getRoleValues","NavListItem","NavItem","NavSeparator","NavLink","only","SubMenu","MenuHeading","MenuList","NavSubMenu","heading","NavMenu","StyledNavMenu","StaticNavMenu","_React$PureComponent","innerItem","subMenuContents","menuItems","menuTitle","item","itemIndex","_renderNavItem","_renderMenuList","MenuLabel","MenuLabelIcon","MenuLabelText","CollapseIcon","open","ChildListItem","ChildList","indentLevelPadding","MenuLabelWrapper","indentLevel","MobileNavMenuNode","count","_this3","icon","link","isLink","hasChildren","_handleClick","child","MobileNavMenu","menuItem","menuItemIndex","filterNavItems","subMenus","currentRole","subMenu","mainMenuContent","MainMenu","mobile","configMenuContent","ConfigMenu","menuContext","SupportMenu","DisplayMode","LARGE_DESKTOP","DESKTOP","TABLET","MOBILE","DisplayModeBreakpoints","DisplayModeContext","createContext","InternalDisplayModeProvider","displayMode","useMemo","getDisplayModeFromScreenWidth","DisplayModeProvider","_useScreenSize","window","innerWidth","innerHeight","setSize","handleResize","addEventListener","removeEventListener","useScreenSize","DisplayModeConsumer","BigLogo","SmallLogo","$displayMode","HeaderLogoIcon","isDefault","getAnchorNode","DropdownContext","DropdownContextProvider","withDropdownContext","WithDropdownContext","dropdownContext","isInTree","rootNode","testNode","contains","isWithinDropdown","anchorNode","contentNode","Dropdown","_anchorRef","_contentRef","relatedTarget","activeElement","onBlurDeep","mounted","contentRef","DropdownContentBox","getCurrentWindowSize","documentElement","clientWidth","clientHeight","DropdownContent","windowSize","anchorRect","get","getBoundingClientRect","_handleWindowResize","prevProps","prevState","_rootRef","focus","opacity","spaceAboveAnchor","spaceBelowAnchor","bottom","spaceLeftOfAnchor","right","spaceRightOfAnchor","calculateAbsolutePosition","BlockedRender","FixedDropdownContent","HeaderBar","LeftItems","RightItems","VerticalDivider","Details","DesktopDropdown","MobileDropdown","MobileDropdownContent","LoginWrapper","DropdownTitle","UnstyledLink","Header","activeDropdown","_toggleActiveDropdownHandlers","unlistenHistory","listen","closeAllMenus","handlerKey","_toggleActiveDropdown","trigger","content","_getDropdownToggleHandler","LoginFormContainer","currentDisplayMode","currentPathname","prevDisplayMode","onOpenMenuChange","isSupport","_renderDesktopDropdown","MainMenuIconLink","_renderMobileDropdown","MainMenuMobileIconLink","_renderOverflowMenu","WithDisplayMode","warn","useContext","withRouter","Footer","Line1","Line2","Spacer","FooterContainer","_renderSpacer","Date","getFullYear","manatee","ash","silver","greyOpacity","summer","pool","helios","heatMap","deepGreen","green","amber","deepRed","separator","warning","warningSurface","onWarning","editorGreen","primary","onPrimary","trend","good","bad","neutral","none","layout","widget","horizontalPadding","verticalPadding","PageTitle","preface","Helmet","ConfigPageTitle","PageContentStandard","_defineProperties","descriptor","_setPrototypeOf","ReferenceError","_getPrototypeOf","ANIMATION_LENGTH_MS","TitleLineWrapper","Title","TitleCaret","Content","ContentMeasureable","ContentWrapper","_height","overflow","PageFrame","subClass","superClass","Constructor","protoProps","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","_isNativeReflectConstruct","result","Super","NewTarget","_possibleConstructorReturn","instance","animation","collapsible","isOpen","_closeAnimation","_openAnimation","_runAnimation","contentHeight","_contentWrapperRef","_contentMeasureableRef","_isAnimating","_abortCurrentAnimation","_currentAnimation","step","cb","_gen$next","requestAnimationFrame","setTimeout","_this4","_handleTitleClick","Page","PageDescription","PageContentWide","PageContentFull","ForbiddenPage","PageContent","PrivateRoute","showLoading","fromObj","path","search","Route","LoadingPage","Redirect","from","SupportRoute","StrictlyPublicRoute","redirectToPrevious","redirectPath","_otherProps$location","_otherProps$location$","StyledPage","DumboTron","heroUrl","FlexCenter","WelcomeBox","LoginBox","NewUserBox","HomeText","WelcomeText","NewUserText","PrimaryHeading","SecondaryHeading","CreateAccountLink","HomePage","_props$location","createAccountLinkTo","InvalidUrlPage","POPUP_ROOT_ID","PopupLayer","popupRoot","_popupRoot","getElementById","setAttribute","_el","removeChild","_renderChildren","PopupMask","maskRef","dark","container","isFinite","measured","SelectOptionsPopup","originTop","originLeft","_overlayRef","_afterRender","widthProp","overlayRect","contentRect","preferredWidth","Math","min","topOffset","leftOffset","onOverlayClick","_this$state2","SelectOption","SelectGroup","BaseCheckboxInput","checked","_handleChange","tick","ThemedCheckboxInput","stopPropagation","idProp","_handleLabelClick","StyledButtonLike","OptionContent","SelectOptionWrapper","depth","multiple","paddingLeft","RootButton","SelectOpenButton","forwardedRef","HiddenInput","OptionsContainer","SelectInput","openButton","_openButtonRef","click","_preventBlur","rect","popupOriginTop","round","popupOriginLeft","prevValue","_getValue","isSelected","nextValue","selectedVal","didChange","_this$props2","maxOptionsHeight","optionsWidth","_handleClose","indices","_mapChildOptionsRecursive","_this$props3","selectionDisplay","valueMap","selectedValue","selectedChild","_handleOptionSelect","SelectOptionContent","selectedChildDiv","_handleHiddenInputClick","_handleOpen","_renderOptions","isArray","StyledTimezoneInput","moment","names","parts","match","timeZoneName","tzChunks","matched","continent","zone","offset","format","getTimeZoneChunks","renderTimeZones","TimezoneSelect","Container","ToggleMaskingButton","UnmaskablePasswordInput","_toggleMasking","_showText","_hideText","inputType","isValidationValid","validation","isObject","every","combineValidators","isPlainObject","validatorFn","isFunction","mapValues","pickBy","subValidation","organization_name","validateRules","createPath","keyOrIndex","isInteger","getAtPath","isEmpty","setAtPath","setWith","clone","updateAtPath","updater","cancelablePromise","resolvePromise","rejectPromise","isDone","wrappedPromise","isCanceled","FormController","staticProps","initialTouched","touched","isSubmitting","submitError","_pendingSubmit","_setIsSubmitting","_setSubmitError","_getInterface","_resetValue","_resetTouched","transformValue","_event$target","hasChanges","resetValue","setTouched","_setTouched","setIsSubmitting","setSubmitError","handleSubmit","handleReset","_handleReset","handleChange","handleBlur","derivedState","detectChanges","updateValueIfNoChanges","CreateAccountForm","formController","pendingAssetName","pendingLinkingToken","requestBody","pending_linking_token","pending_asset_name","guess","inputError","inputName","inputProps","defaults","Description","CreateAccountSuccessPage","CreateAccountPage","_props$location$state","_props$location$state2","qs","params","queryString","asset_name","linking_token","pendingLinkInfo","_getPendingLinkInformation","_handleCreateAccountSuccess","DatauseDescription","NodeType","DEVICE","AREA","PLANT","ENTERPRISE","getNodeTypeIconName","nodeType","getNodeTypeIconColor","getNodeTypeDisplayText","getNodeTypePlaceholderText","flattenHierarchy","parents","rootId","rootChildren","newNode","childNode","device","nodes","childParents","hierarchy","flattenedHierarchy","devicesList","nodeId","node","node_type","deviceA","deviceB","localeCompare","normalizeHierarchyData","selectHierarchyRequest","selectFlattenedHierarchy","prepareDraggables","items","draggingId","allowDropAtIndexFn","before","middle","after","dragStartIndex","otherItems","allowDropAtIndex","groups","currentGroup","allowDrop","itemAbove","itemBelow","draggingItem","totalItemCount","group","GroupedDragDropList","beforeCapture","draggableId","onBeforeCapture","start","onDragStart","_translateSource","update","destination","onDragUpdate","_translateDestination","dragEnd","onDragEnd","idToIndexMap","draggables","findIndex","translatedDestination","draggableGroups","draggable","translatedDestinationIndex","curr","groupIndex","provided","snapshot","mergedProvided","dragHandleProps","renderItem","_renderItem","Draggable","isDragDisabled","innerRef","draggableProps","_this5","droppableId","DragDropContext","_handleBeforeCapture","_handleDragStart","_handleDragUpdate","_handleDragEnd","_renderItemsBefore","Droppable","ignoreContainerClipping","_renderDraggableItems","_renderItemsAfter","triggerEscape","KeyboardEvent","bubbles","cancelable","keyCode","dispatchEvent","getNodeLevel","getFlatNodeParentId","flatNode","flattenNodes","dragSource","_nodes$rootId","currNode","isDragging","groupedChildren","allowedDropLevels","flatChildNodes","childId","siblingIndex","allowDropChildFn","allowDropChildMap","flatNodes","allowDropChild","dragSourceIndex","blockDropAfter","_calculateDropLevelRa","dropIndex","indexAfter","nodeBefore","nodeAfter","calculateDropLevelRange","_calculateDropLevelRa2","minDropLevel","maxDropLevel","dropLevel","calculatePlaceholderTop","flatNodeHeights","dropDestination","DropPlaceholder","_top","_left","HierarchyEditor","fakeDropDestination","_draggableOuterElems","placeholderHeight","placeholderTop","placeholderLevel","showPlaceholder","sourceParentId","otherFlatNodes","firstSiblingIndex","destinationParentId","dropPath","siblingsBefore","newNodes","updatedNodes","newSiblings","splice","recurse","currentNode","childNodeId","_isDropAnimating","indentPerLevel","dragElem","_draggableInnerElems","dropElem","_droppableInnerElem","dragRect","dropRect","dropLevelPx","max","dropLevelIndent","isLevelAllowed","calculateDropLevel","floor","valueProp","renderNode","mergedSnapshot","isParentDragging","isDropAnimating","visibleIndentLevel","transition","dropAnimation","duration","curve","level","dropLevelChange","elem","_renderNode","_nodes$rootId2","_excluded2","flatRootNode","_excluded3","_renderRootNode","otherNodes","nodeAbove","droppableProps","pointerEvents","onMouseMove","_handleMouseMove","draggedNode","DropdownItem","StyledIcon","AddNodeDropdown","onSelect","_itemClickHandlers","_handleDropdownBlurDeep","_handleOpenButtonClick","_handleItemClick","PrimaryContent","paddingRight","ListItem","clickable","secondaryAction","isListItemSecondaryAction","TextLine","ListItemText","regex","parseVersion","version","isString","cleanedVersionString","split","numStr","num","compareVersions","versionStringA","versionStringB","versionA","versionB","partA","partB","paramTypeWrapper","test","_required","_test","basicTypeWrapper","object","array","string","number","boolean","func","any","paramType","testType","typeChecker","exactly","option","paramTest","ParamTypes","oneOfType","throwError","failures","formattedOption","bool","shape","shapeObj","parentKey","shapeMember","argsMember","nextKey","oneOf","arrayOf","some","formattedOptions","exact","types","allFailures","typeFailures","objectOf","paramTypeArg","noLog","internalTestType","paramTypeToPropType","propTypeValidator","errorMessage","AVG_STRING_CHAR_WIDTH","AVG_NUMBER_CHAR_WIDTH","measureString","dataString","_ref$numeric","numeric","avgCharWidth","isScrollStyle","styleProp","getScrollParent","_node$hasAttribute","parentNode","_document$getElementB","computedStyle","hasAttribute","getAttribute","element","getComputedStyle","overflowX","overflowY","getAllScrollParents","scrollParentArr","scrollParent","useParentScrollTracking","onScroll","scrollParents","useScrollParents","areEqualRects","rectA","rectB","$windowPos","$shadow","DropdownWindow","anchorElement","minWidth","shadow","windowRef","viewportRect","x","setViewportRect","useViewportRect","_useElementRect","elementRef","setRect","setRectIfChanged","useCallback","newRect","prevRect","updateRect","useLayoutEffect","forceUpdate","useElementRect","windowPos","pos","spaceAbove","spaceBelow","spaceToLeft","spaceToRight","nudgeLeft","nudgeRight","calculateWindowPosition","DropdownAnchor","renderContent","setAnchorElement","setAnchorRef","Layout","_ref7","_ref8","_ref9","_ref10","_ref11","_ref12","_ref13","CheckboxInput","_ref14","readonly","setFocused","isReadonly","handleOnFocus","handleOnBlur","handleOnChange","StyledSelectOptionWrapper","isMultiSelect","isFocused","hasSearch","CheckboxOptionContainer","StyledCheckboxInput","handleOnClick","childrenAreOneOf","elementTypes","propShapes","propError","typeError","propShape","requiredProps","_validateRequiredProps","StyledSeparator","SelectSeparator","Label","LabelText","SelectOptionGroup","ChildrenContainer","CollapsibleSelectOptionGroup","groupName","onLabelClick","handleLabelClick","findChildIndexByValue","childArray","isItemSelected","find","organizeVisibleChildren","_filteredChildren$","_filteredChildren","searchFilter","separateSelected","selectedGroupNames","filteredChildren","prevSelectedLength","groupChildren","optionChild","includes","toLower","searchValue","doesOptionMatchSearchFilter","hideChild","newChildren","_newChildren","shift","flattenOptions","$verticalPadding","StyledNoSelection","StyledInstructionContainer","SelectList","openGroups","newItem","newValue","childIndex","focusedValue","selectableChildren","firstValue","_shouldScrollOnUpdate","nextIndex","newFocusedValue","_handleSelectOptionClick","onKeyDown","containerHeight","containerWidth","defaultGroupOpen","searchFilterClean","visibleChildren","userHasSearched","_containerRef","_focusedRef","noSelectionText","childProps","_isCollapsibleGroupOpen","_handleCollapsibleGroupClick","childValue","isDisabled","containerEl","containerTop","scrollTop","containerBottom","elTop","offsetTop","opts","currentScrollTop","scrollElHeight","currentScrollBottom","elHeight","elOffsetTop","elOffsetBottom","newScrollTop","center","focusedEl","_isScrolledIntoView","_scrollIntoView","instruction","instructionArea","containerStyle","_handleKeyDown","nextProps","newState","hasError","hasFocus","LeftIconContainer","hasLeftIcon","_ref15","_ref16","_ref17","_ref18","_ref19","TextField","_ref20","inputRef","leftIcon","setHasFocus","handleFocus","StyledTextField","SearchField","doesValueMatchSearch","useSearchBox","_ref$autoFocus","_ref$disabled","_ref$placeholder","setSearchValue","onSearchChange","renderSearchBox","StyledSearchFieldContainer","SearchableSelectList","searchBoxPlaceholder","selectListProps","_useSearchBox","StyledEntryLayout","StyledEntry","HierarchyListOption","asset","showSelectedIcon","iconClass","EnterpriseHierarchySelectList","hierarchyList","onlyAssets","isAsset","showIconForSelected","OpenButton","TextContent","NoVisibilityText","EnterpriseHierarchySelectInput","enterpriseHierarchy","optionsFilter","preventNextBlur","_useFormElementContex","openButtonRef","setIsOpen","handleMaskClick","handleOpenButtonClick","node_name","createListItem","createList","visibilityName","visibilityNode","canEdit","EnterpriseHierarchySelect","ReadOnlyName","Indicator","RedIndicator","AmberIndicator","GreenIndicator","DeviceItem","optionNodeId","alertDataTimestamp","upperFirst","fromNow","timeStamp","dataTime","toDate","now","elapsed","getTime","renderIndicator","_formatLastDataReceivedText","_value$alert_data","firmwareVersion","alert_data","xl_firmware_version","isVisibilityChangeSupported","_enterpriseVisibilityOptionsFilter","_value$alert_data2","_value$alert_data3","isNameChangeSupported","ip_address","toDateString","_renderLastDataReceived","updated","_renderEnterpriseVisibility","IconButton","SvgIcon","svg","viewBox","fill","StyledDeviceItemContainer","StyledDeviceItem","StyledIconButtonContainer","StyledIconButton","StyledTrashIcon","TrashIcon","HierarchyNodeEditor","onDelete","isNew","nodeBody","_renderDeviceNode","_renderNonDeviceNode","deleteable","dragging","_handleDeleteClick","AddNodeDropdownWrapper","EnterpriseHierarchyEditor","_emitOnChange","newNodeType","_newNodeIdGen","nodeToDelete","flatChildIds","getChildIds","_handleAddNodeSelect","_handleHierarchyChange","_validation$nodes","_handleNodeChange","_handleNodeDelete","_renderAddNodeDropdown","validateName","validateNonDeviceNode","validateEnterpriseHierarchy","nodesValidation","ii","nodeValidation","deviceNode","addDeviceError","assetNameValidation","isDeviceInVisibility","isVisibilityNodeNew","validateDeviceNode","rebuildTree","EnterpriseHierarchyForm","responseAction","_responseAction$paylo","setHierarchyReset","charCode","innerProps","onKeyPress","_handleKeyPress","hierarchyStore","DevicesPagePresentation","_loadData2","initialRequestFinished","initialRequestErrorMessage","_loadData","interval","setInterval","clearInterval","_responseAction$paylo2","updates","sessionRole","DevicesPageContainer","ownProps","_selectSessionUser","bindActionCreators","assign","CheckIcon","XLConnectPage","_handleDeviceLink2","linking","redirecting","_handleDeviceLink","redirectTimeoutId","clearTimeout","errorInfo","_valid","asset_id","_renderInProgress","_renderLinkingError","_renderSuccess","_renderReady","StyledSelectInput","RoleSelect","roleValues","roleValue","RequestLoadingWrapper","AddUserPagePresentation","isComplete","_transformValue","AddUserPage","SuccessNotice","SetPasswordForm","dirty","validatePassword","isPasswordValid","showPasswordError","STEPS","SetupNewUserPagePresentation","logoutAction","updatePasswordAction","urlParams","token","currentStep","loginAction","updatePasswordReset","logoutRequest","mergedRequest","updatePasswordRequest","_handleUpdatePasswordSubmit","loginRequest","_validUrl","_renderInvalidUrl","_renderUpdatePassword","_renderLogin","_renderSettings","ResetPasswordPage","invalidReason","submit","_handleResponse","_handleResponseError","EmailInput","CancelLink","FormButtonsContainer","ForgotPasswordForm","_sendRequest2","initialEmail","_validate","StyledForm","ForgotPasswordPage","successEmail","_handleFormSuccess","_renderPageTitle","_renderPageDescription","_renderPageContent","userA","userB","getUsersList","selectUserData","selectUserRequest","selectAdminUsers","_selectResourceData","selectUsersRequest","selectResourcesRequest","MultiRequestLoadingWrapper","ActionButton","RequestState","ResendWelcomeButton","_handleClick2","requestStatus","resendControl","StyledFormElement","RightLabel","CheckboxFormElement","inputId","Warning","ThemedTableHeaderColumn","th","TableHeaderColumn","ThemedTableHeaderRow","tr","TableHeaderRow","ThemedTableHeader","thead","TableHeader","ThemedTableColumn","td","TableColumn","ThemedTableRow","TableRow","TableErrorColumn","TableErrorRow","ThemedTableBody","tbody","TableBody","rows","nonErrorRows","row","evenRow","even","odd","roundingRadius","ThemedTable","table","Row","Table","noFooter","passedProps","colSpan","printFooter","StyledResendWelcomeButton","getDateString","dateTime","UserEditor","nameProp","currentValue","newRoleValue","allowDeactivate","roleElementId","verified","WarningNotice","_handleRoleChange","_handleHierarchyVisibilityChange","EditUserForm","modifiedValue","_response$payload","sessionUserId","allowEdit","EditUserPagePresentation","user","sessionUser","EditUserPage","users","PrimaryEmailEditor","primaryEmailDescription","SectionDescription","smsEmailDescription","smsEmailShortDescription","RENDER_PHASE","Popup","_measureMask","phase","maskWidth","maskHeight","contentWidth","_animationFrameRequest","_maskRef","_contentMeasureRef","cancelAnimationFrame","_measureContent","maskRect","darkenMask","heightProp","contentWrapperStyle","contentStyle","display","visible","_handleContentWrapperClick","TopBar","BottomBar","WindowWrapper","PopupWindow","PendingEmailChange","PendingEmailChangeText","PendingEmailChangeButtons","PendingEmailChangeError","PendingEmailChangeSuccess","VerificationNotice","onCancelVerificationClick","onResendVerificationClick","PendingEmailEditor","_emitChange","hasPendingEmail","isSaved","_handleChangeClick","_handleConfirmClick","_handleCancelClick","emailAddressValidator","validationObjects","validationObject","currentValidation","forOwn","mergeObjectValidators","editorData","getInitialStateFromProps","serverError","verifyEmailResendSuccess","PrimaryEmailForm","changedName","changedValue","pendingEmailAddressValue","initialEmailValue","emailPatch","nextInitialValue","verifyEmailResendReset","_serverError$payload","_serverError$payload$","_emailErrorMessages$m","pendingEmailAddressValidator","topLevelErrorMessage","emailErrorMessages","_handleCancelVerificationClick","_handleResendVerificationClick","msg","PopupWindowDescription","SmsEmailEditor","onDeleteCurrentClick","hasValue","hasVerifiedEmail","isAddingEmail","_handleAddEmailClick","_handleAddConfirmClick","_handleAddCancelClick","verifySmsEmailResendSuccess","SmsEmailForm","smsEmailAddressValue","verifySmsEmailResendReset","emailValidation","smsEmailAddressValidator","_handleDeleteCurrentClick","ChangePasswordControl","newPasswordDisabled","ChangePasswordLabel","ChangePasswordButton","SessionUserEditor","showChangePassword","password_validation","timezoneElementId","_handleShowPasswordClick","SessionUserForm","EditSessionUserPagePresentation","EditSessionUserPage","List","ListItemRightComponent","FirstLine","SecondLine","RoleText","AccessText","EmailPendingText","StyledListItem","UserListItem","visibilityText","visibility","roleString","UserList","AddUserButton","UsersPagePresentation","_renderUsers","userobj","hierarchyNode","selectHierarchyNode","_renderUserList","UsersPage","OrganizationEditor","OrganizationPagePresentation","organization","_renderForm","onDidMount","onWillUnmount","fields","_requests$patchOrgani","originalOrganization","patchOrganization","getOrganization","isLoaded","metrics","IntegerInputField","valueNumber","NaN","toFixed","_forceInteger","propValue","objectShallowEquality","skipKeys","firstChangedKey","didPropsChange","nestedProps","arrayShallowEquality","StyledSelectElement","ThresholdWrapper","ThresholdInputField","Percent","ThresholdElement","MetricAlertEditor","metric","comparison","threshold","FirstSelectInput","processStates","hasTargetTime","getProcessStatesWithTargetTimes","ps","getProcessStatesMap","processState","ComparisonText","TimeUnitLabel","ProcessStateDurationAlertEditor","process_state","ComparisonSelectInput","ProcessStateTargetTimeAlertEditor","AddAlertButtonWrapper","AlertList","EmptyAlerts","AlertsEditorSection","description","addButtonEnabled","showAddButton","onAddClick","hasAlerts","ListItemSecondaryAction","TrashIconButton","AlertItemDeleteButton","ListContent","NoSubscribers","AlertItemSubscriberList","subscribers","EditorWrapper","ListWrapper","AlertItem","onDeleteClick","allowDelete","Editor","EditorProps","DEFAULT_ALERTS","process_state_duration","process_state_target_time","AlertsEditor","listName","alerts","defaultAlert","temp_id","_getNextTempId","itemName","_listHandlers","_nextTempId","_handleAlertChange","_handleAddAlertClick","_handleDeleteAlertClick","_validation$listName","alertValidation","_getValidationForItem","_getDeleteAlertHandler","_getChangeAlertHandler","_this$props4","AlertsSection","_getAddAlertHandler","_renderAlertItem","validateMetric","validateComparison","validateThreshold","metricAlert","validateProcessState","processStateDurationAlert","_timeBasedAlertTypes","_cleanUpDataForState","cleanedUpData","seconds","cleanedUpAlert","_cleanUpDataForSubmit","minutes","EditAlertsForm","_props$requests","_props$requests$patch","lastPatchStatus","patchAlerts","_requests$patchAlerts","validateMetricAlert","validateProcessStateDurationAlert","validateProcessStateTargetTimeAlert","isValid","_props$requests2","_props$requests2$patc","nextPatchStatus","nextModifiedData","nextInitialData","EditAlertsPagePresentation","EditAlertsPage","$hasDescription","IconWrapper","TextAndDescriptionWrapper","OptionText","OptionDescription","BasicSelectOption","hasDescription","BasicSelectList","selectedOption","getOptionName","opt","optionElements","separateAll","acc","optionKey","getColor","_theme$colors","_theme$colors$palette","controlIcon","badgeBackground","disabledIconColor","hoverIconColor","hoverBackground","selectedIconColor","selectedBackground","selectedHoverIconColor","selectedHoverBackground","ButtonContentWrapper","ButtonBadge","$size","$selected","boxShadowColor","forwardRef","badge","showBadge","IconSizeProp","LiveControlIcon","controlIconBadge","controlIconBackground","disabledControlIcon","hoverControlIconBackground","selectedControlIcon","selectedControlIconBackground","selectedHoverControlIcon","selectedHoverControlIconBackground","LiveControlOverflowMenuItem","buttonRef","useHover","hovered","setHovered","onMouseEnter","onMouseLeave","TOOLTIP_LARGE","borderCss","TooltipArrow","TooltipContainer","MASK_Z_INDEX","Tooltip","_state$styles","placement","delay","stickyOnClick","scrollContentOnOverflow","referenceElement","setReferenceElement","popperElement","setPopperElement","_useState6","arrowElement","setArrowElement","_useState8","opened","setOpened","sustainedHover","_ref$delay","isHovered","hoverTimeoutRef","setSustainedHover","useDelayedHover","scrollContentOnOverflowModifier","enabled","detectOverflow","rects","popper","styles","popperContent","_usePopper","usePopper","strategy","modifiers","attributes","shown","arrow","TargetContainer","TouchableTooltipTarget","tooltipProps","LiveControl","liveControlButton","showTooltip","contentRender","controlRender","handleContentLayout","inOverflow","iconSize","MenuTitleContainer","hasBackButton","GuideText","MenuTitle","MenuIconContainer","MenuHeaderLabel","BackButton","LiveControlDropdownHeader","goBack","guideText","renderGuideText","MenuHeader","MenuSeparator","LiveControlDropdownLayout","header","MenuSelection","MenuMoreIndicator","MenuItemLabel","hasControl","LiveControlOverflowMenu","onSelectionChange","openChild","headerGoBack","_child$props","childIcon","childControlRender","childDisplayName","childDisabled","childContent","LiveControlSeparator","useElidedChildren","childCount","_React$useState2","visibleItems","setVisibleItems","_React$useState4","previousWidth","setPreviousWidth","setRef","useResizeObserver","visibleCount","cumeWidth","childElementCount","_calculateVisibleItems","containerRef","LiveControlBarContainer","LiveControlButtons","OverflowLiveControlContainer","VisibleLiveControls","OverflowLiveControl","OVERFLOW_MENU_NAME","LiveControlBar","selection","separatorBeforeOverflow","selectedBox","setSelectedBox","selectedButtonRef","setBoxSelection","newAnchorElement","newSelectedBox","prevSelectionRef","onControlClick","newSelection","updateSelection","aSelection","closeOverflowMenu","filterExtraSeparators","childrenArray","_first","_last","first","last","totalChildCount","_useElidedChildren","visibleLiveControlsRef","selectedControlRender","selectedIcon","selectedDisplayName","selectedHandlesDropdownLayout","showSelectedControlHeader","overflowChildren","itemCountThatCanFit","newChild","_child$props$neverOve","neverOverflow","clonedChildProps","suppressControlHeader","overflowMenuOpen","dropdownContent","overflowLiveControl","inputBox","LayoutWrapper","ChildWrapper","isPlaceholderText","SelectDisplay","StyledSelectDisplay","SelectDropdownButton","BasicSelectField","buttonProps","closeHandler","onChangeHandler","displayKey","StyledOption","ListButton","elideTextCss","dragDropCursor","$isDragging","$overTrash","PrimaryContainer","PrimaryText","SecondaryContainer","DraggableFieldItem","primaryText","secondaryText","onEdit","overTrash","handleEdit","DropZone","ItemContainer","DraggableListItem","highlightDropZone","_useSortable","useSortable","listeners","setNodeRef","transform","CSS","Transform","toString","handleKeyDelete","TrashCanDrop","useDroppable","TRASH_CAN_HEIGHT","DropTargetContainer","$isOver","StyledText","TrashCan","deleteHelperText","isOver","TRASH_ID","HALF_TRASH_CAN_HEIGHT","SortableContainer","customCollisionDetectionStrategy","trashRect","otherRects","currentRect","updatedRects","rectIntersection","DraggableListWithTrashCan","activeId","setActiveId","setOverTrash","handleDragStart","handleDragOver","_event$over","_event$over2","over","handleDragEnd","handleDragCancel","childNames","childrenByName","sensors","useSensors","useSensor","MouseSensor","activationConstraint","distance","TouchSensor","tolerance","KeyboardSensor","DndContext","onDragOver","onDragCancel","collisionDetection","autoScroll","SortableContext","verticalListSortingStrategy","childName","DragOverlay","DraggableList","INFO","ERROR","InfoIcon","fontSize","typeMap","_typeMap","InfoCircle","circleColor","useTheme","typeInfo","RootLayout","LeftContentContainer","CenterContentContainer","DeleteButtonContainer","DeleteButtonIcon","Chip","leftContent","canDelete","noDeleteMessage","handleDeleteClick","rightContent","DragHandleContainer","TextContainer","DraggableChip","touchTargetPadding","CheckboxWithTouchTarget","Checkbox","fallbackId","defaultTranslator","TranslationContext","TranslationProvider","translator","deepEqualityCheck","useTranslator","useTranslation","substitutions","_useMemoizedArgs","equalityCheck","prevArgs","argsAreEqual","useMemoizedArgs","_useMemoizedArgs2","memoKey","memoSubstitutions","getFullyQualifiedName","OptionContainer","MetricSetIcon","TooltipHeaderText","useOptionElements","optionGroups","collapsibleGroups","tooltipTextLiteral","lastGroup","entries","entry","optionFqn","isSeparator","fieldType","renderIcons","columns","renderTooltip","short_description_key","literal","renderDescription","isDummyGroup","findOptionByFqn","fullyQualifiedName","foundEntry","categoryValue","FlattenCheckboxContainer","HorizontalSeparator","FieldSelectControl","sortFn","optionsProp","showFlattenCheckbox","entriesSortFn","flattenGroups","setFlattenGroups","selectedOptionFqn","typeToSearchLiteral","filterboxNoSelectionsCopyLiteral","alphabeticalListLiteral","nextSelectedOptionFqn","nextSelected","entryA","entryB","CategorySelectList","nextSelectedOption","optionPropType","channel","groupPropType","SEPARATOR_TYPE","flattenEntries","flatList","StyledBasicSelectOption","OptionContentWrapper","StyledMetricType","SearchOptionText","FieldBuilderTypeSelect","searchOptions","hasSearchValue","selectListOptions","nextSelectedOptionName","optionIndex","displayType","generatePrimaryMenuOptions","memoizeOne","metricFields","categoryFields","disableEventsToInclude","primaryMenuOptions","FieldBuilderSelect","selectedMenu","setSelectedMenu","handleMainMenuChange","omit","valueIsDimension","dimensionField","flattenedMetricFields","primaryMenuSearchOptions","TouchTargetSpacing","filterFields","valueFieldsByName","byName","col","field","filterGroupedFields","filteredFields","filteredGroup","FieldBuilder","startIndex","endIndex","removed","reorder","_triggerChangeEvent","_setIsPickerOpen","_closePicker","dimensionFields","_pickField","isPickerOpen","addButtonText","maxFields","minFields","onFieldDoubleClick","renderFieldText","_renderPicker","_openPicker","_onDragEnd","_handleDeleteButtonClick","onDoubleClick","Infinity","filterCombinedMetricAndMetricSets","selectedColumnsByName","filteredEntries","column","mergeMetricAndMetricSet","metricSets","mergedMetrics","metricSetGroupByName","metricSetGroup","combinedMetricSetGroups","metricGroup","newMetricGroup","metricSetGroupName","MetricAndMetricSetOption","fieldOptions","selectedColumns","selectedColumnIndex","initialCategoryColumn","unselectableFields","metric_set","newSelectedColumns","newColumns","newColumn","StyledDiv","StyledLabel","RadioButton","handleClick","RadioButtonGroup","jsxChildren","trunc","precision","factor","pow","ceil","getPlacesForNumericRange","range","defaultPlaces","places","end","mag","abs","base","log","variableRegEx","exformat","fmt","m","escapeHTML","escape","MINUTES","SECONDS","BASE_DATE","parse","EPOCH_JULIAN_DAY","dt","portion","addMinutes","toJulianDay","year","month","day","getMonth","getDate","diff","fromJulianDay","J","details","secondsBetween","startDate","endDate","configFromDate","offsetMinutes","date","freeze","sunday","monday","tuesday","wednesday","thursday","friday","saturday","OffsetDate","src","iso8601","exec","parseInt","configFromString","getOffsetMinutes","_date","_offsetMinutes","convertDateToOffset","getTimezoneOffset","forceMinutes","hours","dateStr","getOffsetDate","offsetSign","offsetMinutesAbs","offsetHoursStr","offsetMinutesStr","_class","str","DAYS","getNumberFromJulianDay","julianDay","getNumberFromYMD","getNumberFromISOString","matcher","RegExp","ProductionDay","arg1","arg2","arg3","CalendarDay","_number","toISOString","getProductionDayNumber","isDate","isNumber","_createClass","ymd","toYearMonthDay","Y","Mz","M","Dz","D","productionWeekStartsOn","dow","isDateValid","setMilliseconds","setSeconds","setMinutes","setHours","setFullYear","setMonth","setDate","clearTime","isoWeek","getWeekNumberFromDate","newDay","_setYearMonthDay","newMonth","newJd","addToJulianDay","that","getDistanceTo","compare","_ProductionDay","getCategoryBounds","pd","category","getDayOfWeek","getQuarter","getFormatString","preprocessOptions","cloneDeep","pattern","datePattern","timePattern","locale","stripDirectionalityMarkers","formatNumber","minimumFractionDigits","maximumFractionDigits","extend","pieces","wholeText","fractText","hasComma","whole","extra","fract","optional","hasPercent","extraText","minDigits","useGrouping","parseNumberPattern","preprocessNumberOptions","Intl","NumberFormat","isNegative","startsWith","toLocaleString","substring","padding","template","formatItems","selectors","time","dateFormatItems","MMMd","timeFormatItems","ha","hour","minute","hms","second","canned","short","medium","full","weekday","formatDate","formatOpts","selectorItems","selector","timeKey","timeFormatItem","dateKey","dateFormatItem","formatLength","pick","preprocessDateOptions","DateTimeFormat","iso","relative","subtractMinutes","toJSON","stripZ","dateToJSON","formatToParts","toLocaleLowerCase","commaSeparator","sortDurationFormatterItems","getOrder","DurationFormatterItem","code","units","DurationFormatterUnitItem","_DurationFormatterIte","_createSuper","orderMap","getValue","code2","DurationFormatterUnits","scalar","largeUnit","smallUnit","_setDuration","_duration","getRawValue","point","fractional","parseFloat","soak","_order","unit","_fractional","FractionalItemFormatter","_DurationFormatterIte2","_super2","getFractionalValue","createItem","SPECIAL_FORMATS","formatDuration","formatName","specialFormat","negative","formatItem","mapArgs","_commonRate","DEFAULT_FORMATTERS","date_time","time_span","cycle","roundedData","noDecimal","cycle_time","double","percent","rate","rate_per_hour","id_array","invalid","react","uint64","getDefaultFormatter","FILTER_COMBINE_TYPE_AND","FILTER_TYPE_GROUP","FILTER_TYPE_SLICE","GROUP_FILTER_COMPARE_TYPES","gt","rawValue","filterValue","ge","lt","le","ne","eq","SLICE_FILTER_COMPARE_TYPES","plainCategory","validFilter","dimensionValue","Filters","filters","sliceFilters","columnNames","expressions","lhs","groupFilters","getColumnsFromGroupFilters","categoryValues","categoryValueIdentifiers","rhs","categoryValueName","columnConfigs","categoryValueConfigs","convertedFilters","expression","lhsString","rhsStringArray","convertSliceFilterExpressionToDisplayValues","lhsItemColumnConfig","rhsFormatter","formatType","rhsString","convertGroupFilterExpressionToDisplayValues","_filters$slice","_filters$group","isSliceExpressionActive","isGroupExpressionActive","_filters$slice2","pageFitlers","widgetFilters","plainCategories","mergeFilters","filterType","_filterType$expressio","compareType","subFilterResults","rowValue","op","combine_type","filtersA","filtersB","activeExpressions","sliceFilterExpressionParamType","groupFilterExpressionParamType","sliceFiltersParamType","groupFiltersParamType","Instructions","IncludeLabel","StyledRadioButtonGroup","ApplyContainer","StyledInlineError","InlineError","INCLUDE_ALL_COMMENTS","INCLUDE_EVENT_COMMENTS","getRadioValue","includeAllComments","getIncludeAllCommentsValue","radioValue","CommentListColumnSelector","_value$commentList3","startingValue","comment_list","setValue","onRadioGroupChange","newRadioValue","commentList","_value$commentList","hasAnySliceFilters","validateCommentList","onApply","canApplyChanges","_initialValue$comment","_value$commentList2","commentListPropType","commentListColumnPropType","MetricListColumnSelect","metricListMetrics","metricListAddMetrics","_foundMetricSet","foundMetricSet","metricSet","isFound","NoDataMessage","SHOW_AS_BAR_CHART","SHOW_AS_TEXT_ONLY","SHOW_WITH_HEAT_MAP_INDICATORS","METRIC_LIST_TYPE","MetricListColumnEditorContainer","DisplayNameContainer","DisplayNameLabel","RadioButtonGroupContainer","AddButtonContainer","EmptyMetricsMessageContainer","FieldBuilderContainer","MetricListColumnEditor","transitionForward","transitionBackward","initialStartingValue","uuid","showAs","colA","colB","subType","endsWith","typeKeyA","typeKeyB","equivalences","isCompatibleColumn","getErrors","handleFieldBuilderChange","newFieldValue","previousValue","handleHeaderChange","newHeaderValue","handleRadioGroupChange","getShowMetricListWithValue","handleAddMetric","propsForCurrentControl","propsForNextControl","updatedPropsForCurrentControl","control","Fragment","add_text","paddingTop","metricListColumnPropType","limitOptions","emptyValue","attentionList","limit","getColumnLimit","setColumnLimit","newAttentionListPortion","sameLimit","ListDropdownContainer","LimitContainer","LimitLabelContainer","AttentionListLabel","AttentionListContainer","HelperTextContainer","AttentionListColumnSelector","_value$attentionList","unselectableColumns","attention_list","handleColumnChange","targetName","targetValue","attentionListPropType","attentionListColumnPropType","ATTENTION_LIST_TYPE","COMMENT_LIST_TYPE","TEXT_VISUALIZATION_TYPE","BAR_VISUALIZATION_TYPE","COLUMN_VISUALIZATION_TYPE","CHRONOGRAM_VISUALIZATION_TYPE","DIMENSION_ORDER","VALUE_ORDER","TIME_ORDER","TEXT_FORMAT_TYPE","BAR_FORMAT_TYPE","COLUMN_FORMAT_TYPE","DIMENSION_VISUALIZATION_TYPES","DIMENSION_VISUALIZATION_ORDER_BY_TYPES","DIMENSION_VISUALIZATION_FORMAT_TYPES","CHRONOGRAM_FORMAT_TYPE","NumberInput","isEditing","convertInputValue","newInputValue","NumberField","onChangeProp","minLeftDigits","minFractionDigits","showErrorInline","setIsEditing","inputValue","setInputValue","stringValue","newValueString","_ref5$shouldTruncate","shouldTruncate","MetricSelectField","selectedItem","placeholderText","CategorySelectField","validateNumber","_ref$min","MIN_SAFE_INTEGER","_ref$max","MAX_SAFE_INTEGER","integral","percentage","allowEmpty","originalNum","nanErrorLiteral","gteErrorLiteral","lteErrorLiteral","wholeNumberErrorLiteral","adjustedNum","NO_METRIC","getMetricOptions","visualization","category_value_metrics","findOptionRecursive","_step","_iterator","_createForOfIteratorHelper","findMetricOption","metricOptions","LimitErrorContainer","SparkColumnLabel","SparkColumnContainer","ValidationText","ValidationContainer","NumberFieldContainer","SparkDimensionColumnSelector","newConfig","initialConfig","_initialConfig$dimens","_initialConfig$dimens2","_initialConfig$dimens3","_initialConfig$dimens4","initalDimensionVisualization","dimensionVisualization","dimension","setDimension","setVisualization","setMetric","orderBy","order","setOrder","_useState10","maxElementsShown","setLimit","usesLimit","limitNumberError","configurationError","dimensionList","category_value","selectedDimension","handleDimensionChange","handleVisualizationChange","currentLimit","currentMetric","newMetricOptions","handleMetricChange","handleOrderChange","handleLimitChange","sparkDimension","visualizationOptions","getVisualizationOptions","selectedVisualizationOption","selectedMetric","orderOptions","getOrderOptions","selectedOrderOption","categoryPlaceholderText","metricPlaceholderText","categoryValueMetricOptionsPropType","_PropTypes$exact","METRIC","CATEGORY_VALUE","METRIC_SET","TableFieldsOption","initialMenuSelection","menuOptions","selectedFields","searchableMenuOptions","generateOptions","_ref$searchFilter","generateSeparator","numberOfOptions","metric_list","searchable","generateMenuOptions","menuSelection","newControlOptions","updatedColumns","modifiedColumn","ButtonContainer","getSecondaryTextFromField","visualizationDisplayName","orderDisplayName","fieldTypeDisplayName","metricDisplayName","_item$attentionList","displayAs","TableSelectedFieldsOption","handleAddField","handleUpdateFields","columnIndex","columnFieldType","useStackHistory","initialItem","historyStack","setHistoryStack","currentItem","currHistoryStack","newStack","clear","canPop","defaultDetectChanges","InvalidLiveControlDialog","onContinue","onCancel","cancelText","continueText","initialColumns","updatedColumn","isSameColumn","TableColumnControl","defaultTitle","initialSelectedColumns","maxNumColumns","_useValidationState","_ref$detectChanges","setModifiedValue","_useDialogState","isInvalidDialogVisible","setIsInvalidDialogVisible","showInvalidDialog","hideInvalidDialog","useDialogState","validationErrors","useValidationState","useImperativeHandle","_useStackHistory","currentProps","internalCanGoBack","internalGoBack","handleOnColumnsChange","handleHeaderGoBack","invalidChangesPopupTitleLiteral","invalidChangesPopupMessageLiteral","handleInvalidDialogCancel","channel_schema","ErrorIcon","ErrorIndicator","categoryValueFormatTypes","MultipleCategoriesListItem","MultipleCategoriesList","ErrorContainer","ValueText","CategoryValue","noColorIndicatorOnText","noColor","noTooltip","nullValue","hasColorIndicator","assetLink","renderValueText","noColorIndicator","showColorIndicator","multipleCategoriesLabel","tooltipContent","categoryJsx","renderValue","innerContent","tooltipDataPropType","categoryValuePropType","useLocale","localeContext","Q_PALETTE","cssToRGB","inputLength","rgbArray","colLength","substr","MetricContent","MetricText","HeatBlobElement","Metric","showHeatBlob","heatConfig","formattedValue","parameters","isNull","isNullValue","newRawValue","valueFormatter","getMetricText","blobStyle","heatColor","_cssToRGB","sqrt","getBlobStyleForHeat","metricStyle","severity","fontWeight","getMetricStyleFromBlob","getReactHeatBlob","FormattedDatum","BASE_HEAT_MAP_CONFIG","baseColor","baseMonochrome","METRIC_LIMITS","efficiency","default","getHeatMapColor","columnName","metricAlertConfig","rgbColor","rgb1","rgb2","_ref2$noColor","heatMapConfig","directionality","rangesBySeverity","keyBy","ranges","heatMapConfigBySeverity","heatMapConfigItem","metricLimits","critical","best","severityOrder","getHeatMapConfig","firstMin","firstMax","colorKey","thresholdIndex","configItem","_heatMapConfig$thresh","oldMin","comp","rgb","decimalToHexString","decimal","hexStr","rgbToCss","hierarchyNodeOptions","filterOptions","mockDimensionValues","part","process_state_reason","reject_reason","getColumnChannelName","columnId","getColumnConfig","columnConfig","category_values","display_name","help_text","indexed","indexed_with","persist","rollup","getMockData","metricThresholds","_getColumnChannelName","columnSchema","isCategoryValue","subtype","post_process","getColumnFormatType","randomValues","getMinutes","fromDate","stateSet","_state$min","_state$max","getHeatSeverity","getHeatConfig","getKpiGroupData","widgetData","getKpiData","metricData","hierarchyNodeDisplayName","timeRangePrimaryDetails","timeRangeSecondaryDetails","emailWidgetFieldOptions","getEmailTableMetricListMetricOptions","metricName","found","mm","getMockTableData","rowCount","getMockTableHeaderColumns","_getColumnChannelName2","fillCellWidth","datum","rowIndex","dataItem","MAX_ROWS_OPTIONS","TABLE_TYPES_WITH_MAX_ROW_ENABLED","Set","RowOptionsContainer","MaxRowLabel","MaxRowLabelDisabled","RowLimitContainer","RowOptionsHeading","EmailTableLiveControls","onDimensionOptionsChange","maxRowCount","onColumnsChange","tableType","maxNumUserSelectedColumns","columnControlRef","selectedControl","setSelectedControl","tableTypeState","setTableTypeState","maxRowCountState","setMaxRowCountState","handleSelectionChange","blockSelectionChange","columnControlIcon","handleColumnsChange","evt","columnControlDisplayName","rowControlIcon","groupOptionsWithIcons","groupId","enableMaxRowControl","has","handleDimensionApplyButton","handleTableTypeChange","handleMaxRowCountChange","columnProps","$showBorder","WidgetFrame","isPrint","frameHeader","liveControls","showBorder","useBounds","bounds","setBounds","COLUMN_PADDING","SORT_ARROW_WIDTH_ALLOWANCE","EXPANDABLE_COLUMN_INDENT_PER_DEPTH","COLUMN_LEFT_INDENT_PER_DEPTH","COLUMN_RIGHT_INDENT_PER_DEPTH","COLUMN_BORDER_WIDTH","MAX_METRIC_PADDING","MIN_COLUMN_WIDTH","MAX_COLUMN_WIDTH","FORCE_FULL_WIDTH_PROPORTION","CONTAINER_FULL_WIDTH_ADJUSTMENT","CONTAINER_FORCE_FULL_WIDTH_PROPORTION_ADJUSTMENT","scrollBarWidth","outer","inner","scrollbarWidth","offsetWidth","getScrollBarWidth","forEachDataRow","subRows","measureColumn","isLastColumn","headerTextWidthMap","savedWidth","measuredWidth","optimalWidth","maxMeasuredWidth","measureCell","measureFunction","w","accessorType","getCellData","indentPerDepth","expandable","TableConstants","align","getIndentPerDepth","maxOptimalWidth","_measureCell","approximateWidth","sortOrder","fontName","headerText","_column$textOnlyHeade","textOnlyHeader","getHeaderText","headerTextWidth","getContext","font","measureText","sortable","mapEachColumn","isLast","newIsLast","aggregateTotalsForLowestLevelColumns","totals","fixedWidth","PRIMARY_COLUMN_WIDTH","useSizedColumns","isAuto","colIsPrimary","isPrimary","countColumns","cols","numTopLevelColumns","numPrimaryColumns","numRegularColumns","primaryColumnWidth","columnWidth","subColumn","roomToExpand","totalStartingWidth","spreadableWidth","getMaxDepth","dd","cssUnitRegexString","regexString","cssValueRegex","IconContainer","NoDataPlaceholder","iconTitle","noDataText","printBorderColor","ExpanderContainer","CellContent","leftPadding","rightPadding","leftShadow","rightShadow","TableCell","showCellBorders","HeaderCell","showTopBorder","hasContent","ResizeHandle","CellBorderResizeTarget","bodyHasScrollbar","SortClickTarget","CellContentAndSortContainer","SortOrderSubScript","sub","TableRowBase","HeaderRow","isSecondaryHeaderRow","BodyRow","stripedRow","isTotal","Thead","Tbody","TableFooter","EmptyTableHeader","_ref21","_ref22","_ref23","_ref24","_ref25","_ref26","_ref27","_ref28","_ref29","_ref30","_ref31","_ref32","getStyle","justifyContent","alignItems","getStyles","headerProps","_ref33","cellProps","_ref34","cell","TableComponent","_ref35","_state$columnResizing","_state$columnResizing2","_state$columnResizing3","originalColumns","expandedRows","maxRowsShown","rowHeight","showNoDataPlaceholder","onSortByColumnChange","setExpandedRows","setResizedColumnWidths","onColumnResizeStart","onColumnResizeEnd","defaultColumn","rootNodeCount","maxDepth","_useTable","useTable","useResizeColumns","useFlexLayout","useRowSelect","getTableProps","headerGroups","totalColumnsWidth","prepareRow","columnResizedWidths","columnResizing","columnWidths","resizingHasFinished","isResizingColumn","rowsWithExpandedDetails","expanded","handleExpandRow","_row$subRows","isExpanded","handleExpandToggle","updatedExpandedState","useExpandedRows","readonlySort","tableProps","initialTableProps","cssValue","parseFail","unitValueMatches","numericValue","cssValueToNumber","renderRow","_ref36","getRowProps","original","cells","cellIndex","inverseDepth","canExpand","expander","contentProps","expandedIconOffset","cursor","boldDepth","getCellFontWeight","getCellProps","renderHeaderRows","headerGroupsToRender","maxGroupIndex","headerGroup","showSortOrder","hh","sortIndex","isHigherOrderHeader","isLightweightHeaderRow","getHeaderGroupProps","getHeaderProps","headerAlign","shiftKey","canResize","getResizerProps","isResizing","rowPixelHeight","totalRowHeight","FixedSizeList","itemCount","itemSize","overscanCount","ColumnPropType","_lastTableBounds$curr","setContainer","setIsResizing","handleColumnResizeStart","handleColumnResizeEnd","lastTablePropsRef","lastTableBounds","CONFIG_BY_TABLE_TYPE","hardCodedColumns","getHardCodedColumnsForTableType","getMaxNumUserSelectedColumnsForTableType","EmailTableWidget","widgetStf","areLiveControlsVisible","widgetState","mutable","timeRange","explorationPath","isDragEnabled","isLayoutModeActive","dataService","suppressedControls","hideTrend","printConfig","showLiveControls","suppressDelete","updateColumnsInFieldSet","origState","newFieldSet","exploration_path","field_set","newExplorationPath","dirtyUserSelectedColumns","setDirtyUserSelectedColumns","row_limit","tableColumns","setWidgetStf","stf","newStf","userSelectedColumns","setWidgetState","setWidgetPrintStatus","setWidgetExportItem","exportWidgetData","deleteWidget","duplicateWidget","setWidgetLiveControlsVisibility","parentTitle","getKpiWidgetData","getWorkCenterCount","getColumnHelpText","getTimeRangePrimaryDetails","getTimeRangeSecondaryDetails","getHierarchyNodeDisplayName","SparkLineContainer","defaultChartOptions","chart","borderWidth","margin","skipClone","credits","xAxis","yAxis","legend","tooltip","plotOptions","series","states","hover","marker","fillOpacity","SparkLine","lineWidth","fillColor","lineColor","sparkLineContainerEl","chartOptions","renderTo","Highcharts","KPISparkLine","sparkLineProps","StyledKpiValue","KPIValue","TrendDotContainer","BottomContainer","TrendInfo","StyledSparkLine","KPIDataContainer","condensed","KPIData","trendDot","sparkLineData","renderTrendInfo","GOOD","BAD","NEUTRAL","NONE","UGLY","TrendNotAvailableIcon","TrendIndicator","trendGoodness","TrendValue","TrendDot","notAvailable","showTrendLabel","showPositiveTrendQualifier","naSymbol","nullMetricLiteral","trendLiteral","trendValue","qualifier","trendConfig","limitTrendPercent","hasPositiveTrendQualifier","TrendContainer","trendLabel","trendGoodnessColor","TrendGoodness","KPIContent","kpiData","finalTrendGoodness","KPITrendDot","basicTimeRangeParamType","sameDimensionValue","dayBasis","ordinalShiftRangeParamType","productionDayOffset","ordinalShiftValue","allTimeRangeParamType","timeRangeParamType","productionDayBasedUnits","TimeRange","timeRangeUnit","today","isProductionDayBasedUnit","productionDay","unitsToUse","rangeContainsOpenInterval","getEstimatedNumberOfDays","dayCount","startAsDate","julianStart","shift_hour","isCalendarDayBased","isCalendarDayBasis","alternate_display","DashboardCacheContext","_arrayLikeToArray","arr","len","arr2","AsyncValueCacheEntry","load","_getTime","_loadFunction","_loadArgs","_loadAbortController","AbortController","_loadPromise","_loadComplete","_loadCompleteTime","_getters","signal","aborted","abortSignal","getter","cleanupGetter","handleGetAbort","_load","_arrayWithoutHoles","iter","_iterableToArray","minLen","_unsupportedIterableToArray","_nonIterableSpread","AsyncValueCache","_opts$getTime","_lastCompleted","_pending","_get","cacheOptions","_cacheOptions$maxAge","maxAge","_args","isAborted","getAge","getArgs","validateWidgetId","widgetId","validateCacheId","cacheId","DashboardCache","_widgetCaches","DashboardCacheProvider","WidgetCacheContext","WidgetCacheProvider","dashboardCache","useDashboardCache","getValueCache","getWidgetValueCache","clearValueCache","clearWidgetValueCache","useWidgetCache","loadRef","widgetCache","widgetValueCache","getDataUpdateInterval","updateTimeInterval","defaultInterval","getMaxAgeForRepeatingRequest","disableRepeat","updateInterval","abortableAsyncDelay","_abortableAsyncDelay","delayMs","timeout","cleanup","handleAbort","useRepeatingRequest","abortController","isInitialRequest","isRunning","_runLoop","runLoop","checkRequestResult","codingMistakeMsg","useRequestWithStatus","sendFn","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","requestState","setRequestState","_sendInternal","resend","useRepeatingRequestWithStatus","_useRequestWithStatus","internalSendRequest","filtersParamType","slice_filter","group_filter","paramTypes","fieldParamType","pageFilters","useKpiWidgetData","shouldRepeatRequestWithTimeRange","getKpiWidgetDataCache","getKpiWidgetDataCached","otherArgs","sortRule","isCategoriesAll","default_channel","grouped_fields","asset_control","root","fieldSetParamType","getHierarchyOptions","getAllFilterOptions","getAllMetricOptions","dimensionDetailsDisplayName","dimensionDetailsIsMixed","timeRangeStart","timeRangeEnd","timeRangeSameDimensionValue","timeRangeUnits","timeRangeProductionDayOffset","atEndOfData","formattedCount","dimensionName","detail","handleDimensions","handleTime","handleAllTime","isSingleUnit","handleTimeRange","getDaysBetween","getDayDuration","getFormattedStartDate","startOfWeekToday","startOf","startOfWeekOffset","weeksBetween","daysBetween","dayOfWeek","getDay","errorType","startTime","startIntervalLiteral","numberOfDays","originDay","_range$start$startTim","productionDayRange","computeProductionDayRangeFromToday","dataStart","_range$start$startTim2","startAsDay","endAsDay","dataStartDate","isOnOrAfter","isOnOrBefore","timeRangeEndDate","responseParamType","requestStatusParamType","responsePropType","requestStatusPropType","requestStates","isRequestCompleted","paramTypeWithResponseOf","propTypeWithResponseOf","TIME_RANGE_PRIMARY_DETAILS","TIME_RANGE_SECONDARY_DETAILS","useTimeRangeData","updateIntervalMs","hierarchyNodes","getTimeRangePrimaryDetailsCache","getTimeRangePrimaryDetailsCached","getTimeRangeSecondaryDetailsCache","timeRangePrimaryRequest","timeRangeSecondaryRequest","sendTimeRangePrimaryRequest","resendTimeRangePrimaryRequest","timeRangePrimaryRequestState","sendTimeRangeSecondaryRequest","resendTimeRangeSecondaryRequest","timeRangeSecondaryRequestState","requestTimeRangeData","allSettled","useTimeRangeDataInternal","formatFiltersForRequest","formatted","filterActiveFilters","HUMAN_READABLE","FOR_URL","FOR_FORMULA","isHumanReadable","printType","handleTranslate","validPrintTypes","validTypes","generateFilterExpressionText","rhsArray","showExcessSpacing","combineRHS","opString","uglyOp","getPrettyOperator","rhsStrings","singleValue","_lhs$getConfiguration2","getConfigurationCategoryValue","getFormatter","handlePostProcess","formatter","rhsFinalString","lastRHSValue","formatForReadable","rr","stringExpression","getFormulaOperator","getName","formatForFormula","list_occurrences","_lhs$getConfiguration","displayNameColumn","getTable","getColumn","formatForURL","generateFilterText","agg","exp","expIndex","translatedOp","rhsLength","getMultipleColumnConfigs","getMultipleCategoryValueConfigs","useFormattedFilters","formattedFilters","setFormattedFilter","_run","filterColumnNames","filterCategoryValueNames","filtersWithDisplayValues","getColumnsFromFilters","getCategoryValuesFromFilters","convertToDisplayValues","run","extractFiltersFromExplorationPath","explorationPathParamType","rangeSelection","hideLiveControls","showLiveControlsOnImmutablePages","pageTimeRange","pageExplorationPath","reportHierarchyNode","_widgetStf$exploratio","_widgetStf$exploratio2","_widgetStf$exploratio3","_widgetStf$exploratio4","_widgetStf$exploratio5","_useKpiWidgetInitiali","setIsInitialized","liveControlOptions","setLiveControlOptions","_yield$Promise$all","_yield$Promise$all2","all","useKpiWidgetInitialization","setColumnConfig","supportsLiveControls","toggleShowLiveControls","rawSliceFilters","followPageTimeRange","widgetHierarchyNode","followAppBarHierarchyNode","mergedHierarchyNode","setHierarchyNode","newHierarchyNode","widgetExplorationPath","isMounted","_getColumnConfig","helpText","widgetUpdateTimeInterval","dataRequest","titleKey","trendDescription","timeRangeRequests","timeRangeDescription","_timeRangeRequests$TI","_timeRangeRequests$TI2","primaryDetails","secondaryDetails","getPrimaryDescription","dimensionDetails","isMixed","secondary","getSecondaryDescription","kpiWidgetDataRequest","areAllRequestsCompleted","useKpiWidgetPrintStatus","setSliceFilters","newFilters","setTimeRange","rs","setTitle","newTitle","shouldShowFilterText","StyledCheckbox","EnterpriseHierarchyControl","hierarchySelection","onHierarchySelectionChange","collapseHierarchyValue","showCollapseHierarchyCheckbox","onCollapseHierarchyChange","followAppBar","showFollowAppBarCheckbox","onFollowAppBar","collapseHierarchyLiteral","searchAssetLiteral","loadingLiteral","followAppBarCheckboxText","ValidatedLiveControl","renderControl","renderInvalidDialog","isDialogVisible","setIsDialogVisible","showDialog","hideDialog","handleApply","handleCancel","handleOuterClose","DurationFieldError","joiner","joinedArray","arrayJoin","errorJsx","DropdownErrorContainer","FieldContainer","FieldsRoot","getPrecision","DurationField","labels","isDropdownOpen","setIsDropdownOpen","eventValue","eventName","renderField","formatHmsValue","RowContainer","ExpressionInfoContainer","OperatorContainer","DeleteButtonWidthStyle","DeleteButton","didUserSelectMetricComparedToZero","opValue","isDuration","ExpressionRow","onDeleteRow","categoryOptions","categoryValueOptions","categoryOperators","metricOperators","handleDeleteRow","isLHSPickerOpen","setIsLHSPickerOpen","isRHSPickerOpen","setIsRHSPickerOpen","onRowChange","_ref2$isCategoryValue","onPickerChangeClosePicker","selectedFieldDisplayName","operatorList","selectedOp","operator","showValueField","valueField","valueOptions","displayNameMap","valueOption","displayMap","selectedValueDisplayName","fieldSelectListValue","rhsValue","opName","renderDeleteButton","TitleContainer","ExpressionsContainer","EmptyExpressionsTextContainer","CombinedFilterContainer","Separator","CommentsContainer","CommentsContainerTitle","getDefaultRhsValue","selectedExpression","FilterBuilder","_value$showEvents","_value$showEvents2","_value$showEvents4","_value$showEvents5","_value$showEvents3","noMetricOptionsMsg","combineTypes","disableCommentsToInclude","withAllCommentsSelected","showEvents","with_all_comments_within_time","categoryOptionsInternal","noCategoryOptionsMsg","isAddExpressionOpen","setIsAddExpressionOpen","openAddExpression","closeAddExpression","handleAddExpression","selectedField","expressionType","renderAddExpressionContent","handleExpressionChange","_value$expressionType","targetDetails","expressionIndex","nextExpressions","updatedExpression","updatedFilterSection","handleDeleteButtonClick","expressionName","_value$expressionType2","handleCombineTypeChange","addExpressionText","combineExpressionOptions","createFilterTitle","filterTitle","filterHelpText","createFilter","expressionRowProps","renderCombineFilterContainer","createNoOptionsMsg","noMessageType","INCLUDE_EVENTS_ALL","INCLUDE_EVENTS_DIRECTLY_LINKED","INCLUDE_EVENTS_NOT_DIRECTLY_LINKED","onEventsRadioGroupChange","with_comments","without_comments","initialEventsValue","INCLUDE_COMMENTS_ALL","INCLUDE_COMMENTS_DIRECTLY_LINKED","onCommentsRadioGroupChange","initialCommentsValue","categoryFilters","metricFilters","marginBottom","marginTop","filterProp","hmsTypeDisplayKeys","maxHours","DEFAULT_COMBINE_TYPE","convertToOutgoingValue","sliceFilterExpressions","rhsPart","groupFilterExpressions","newRhs","FilterBuilderContainer","FilterControl","convertedInitialValue","initialValueWithColumnInfo","_filters$group2","filterLhsOptions","_filterLhsOptions$exp","_filterLhsOptions$exp2","addColumnInfoToFilters","_exp$lhs","validateExpression","rhsError","hmsValue","_ref$maxHours","numberError","validateDuration","sliceErrors","groupErrors","validateFilters","onDialogCancel","DatePickerWrapper","CalendarContainer","DatePickerControl","ApplyButton","INITIAL","lastNOptions","week","quarter","staticMenuOptions","handleUnits","TimeRangeControl","monthLimited","isDayBased","showFollowPageCheckbox","dimensionValueDetails","selectionValue","followPageValue","onFollowPageChange","onSameOnlyOptionChange","shownItemProps","shownItemName","customStartDate","setCustomStartDate","customEndDate","setCustomEndDate","currentControl","handleInnerMenuSelection","identifier","menuValue","getTimeRangeFromMenuOption","buildWrapper","followPageCheckbox","currentMenuOption","timeRangeValue","openMenuName","menuOption","staticOption","staticTimeRange","matchingLastNKey","lastNOptionKey","getMenuOptionFromTimeRange","DatePicker","calendarContainer","dates","_dates","newStartDate","newEndDate","openToDate","inline","selectsRange","lastNStart","sameOnlyOption","_dimensionValueDetail","_dimensionValueDetail2","_dimensionValueDetail3","_dimensionValueDetail4","sameOnlyKeyPart","sameBackDetails","sameOnlyKeyParams","shouldBeDisabled","renderDuplicateLiveControl","KPIWidgetLiveControls","controller","closeSelectedControl","hideControl","controlName","filterControlRef","onFilterClose","activeFilterCount","countActiveExpressions","transformedFilterValue","handleFilterApply","newSliceFilters","transformedMetricValue","handleHierarchyNodeChange","handleFollowAppBarHierarchyNodeChange","newFollowAppBarHierarchyNode","handleTimeRangeChange","handleFollowPageTimeRangeChange","newFollowPageTimeRange","assetHierarchyLiteral","timeRangeLiteral","kpiMetricLiteral","filterLiteral","showDuplicateControl","categories","WidgetValidationErrorMessage","variant","WidgetLoadingIndicator","$canEdit","BaseTitle","StyledInputTitle","HiddenTitle","inputMinWidth","inputMaxWidth","ShownTitle","AutoResizeTitle","_this$inputEl$current","_this$inputEl$current2","inputEl","scrollLeft","_getPlaceholder","defaultTitleText","defaultValue","_getTitleValue","themeColors","$isPrint","$isDragEnabled","minHeight","AssetTitleActionContainer","DragHandle","containerMinWidth","AssetDisplay","FrameTitleIconButton","DeleteIconButton","ShowHideIcon","inverted","DeleteIcon","TimeRangeDisplayContainer","InfoCircleContainer","assetMinWidth","FrameTitle","assetError","assetValue","showAsset","showDelete","shouldShowLiveControls","canEditTitle","showLiveControlsOnClick","showLiveControlsButton","titleValue","titleOnChange","infoTooltipContent","deleteOnClick","timeRangeDisplay","hasInfoCircle","minTitleWidth","assets","SectionContainer","SectionAction","collapsed","SectionFrameTitle","isCollapsed","sectionOnClick","TimeRangeDisplaySmall","FilterBuilderPrettyFormat","prettyFormattedText","numberOfFilters","hasMultipleFilters","filterIndex","combineType","hasMultipleExpressions","expandedExpressions","expandedExps","expressionText","textAlign","toUpperCase","HelpText","FilterBuilderTextContainer","FilterBuilderText","StyledPrimary","StyledPrimaryTitle","StyledPrimaryDetails","StyledSubtitle","PaddedIcon","isDropdownTrigger","TimeRangeDisplay","FrameHeader","hierarchyNodeValue","isSectionFrameTitle","containerBounds","doesTimeRangeFit","_useMemo","fullHierarchyNode","renderFilterText","finalFiltersText","frame","timeRangeDetail","usePersistWidgetHeight","dataRequestStatus","widgetContainerRef","lastWidgetHeightRef","_widgetContainerRef$c","_widgetContainerRef$c2","lastWidgetHeight","emptyArray","LoadingContainer","$minHeight","KPIContainer","KPIWidget","alwaysShowAsset","useKpiController","handleTitleChange","_usePersistWidgetHeig","contentElement","trendData","isSelectable","erroMessage","finalTooltipContent","filtersLabelLiteral","filtersText","getSliceFilterOptions","getKPIGroupWidgetFieldOptions","BLANK_ROW_TYPE","HEADING_TYPE","FIELD_TYPE","KPI_GROUP_COLUMNS_PROPTYPE","getKPIGroupWidgetData","contents","useKPIGroupWidgetData","getKPIGroupWidgetDataCache","getKPIGroupWidgetDataCached","_result","contentRowParamType","hideTimeRange","_widgetExplorationPat","_useKPIGroupWidgetIni","columnOptions","useKPIGroupWidgetInitialization","widgetContents","setContents","updatedContents","widgetTimeRange","setColumns","HeadingContainer","HeadingLabel","KPIGroupHeadingOption","initialHeadingColumn","setHeading","headingHasChanged","setHeadingHasChanged","onHeadingChange","REJECT_REASON_DIMENSION","REJECT_COUNT_METRIC","createKeyFromColumn","KPIGroupFieldsOption","KPIGroupFieldChipText","InstructionLabel","KPIGroupSelectedFieldsOption","columnType","KPIGroupColumnControl","setSelectedColumns","KPIGroupWidgetLiveControls","rowLiteral","onColumnClose","modifiedColumns","fieldStf","dv","fullSelectedColumns","columnsByName","_field$heading","_field$heading2","_field$heading3","fullField","RowCell","$singleLine","$alignRight","RowText","EventDataCell","allowOverflow","alignRight","colspan","striped","EventDataRow","columnOrder","cellMap","totalRowSize","sum","cellSize","percentWidth","flex","EventDataGroup","WrapperRow","KPIGroupContent","StyledCategoryValue","StyledMetric","InformationalText","TooltipHeader","TooltipContent","dataValues","orignalValuesLength","hasTooManyItems","MAX_ITEMS","contentValues","numItems","SparkTextContainer","$width","$height","TextSparkVisualization","textContent","disableTooltip","_values$","_values$$dimension","addDimensionColors","_ref$maxElements","maxElements","_ref$otherColor","otherColor","enableOtherColoring","_value$dimension","_value$dimension$rawV","colorIndex","getQualitativeColor","PADDING","MAX_HEIGHT","MIN_BAR_WIDTH","$showBars","BarContainer","ChronogramEvent","$left","$backgroundColor","getMinStartTime","_data$values$","_data$values$$start_t","_data$values$$start_t2","_data$values$$start_t3","start_time","ChronogramSparkVisualization","widthSansPadding","heightSansPadding","coloredData","bars","totalStartTimeDate","totalDuration","_lastValue$start_time","_lastValue$start_time2","_lastValue$start_time3","_lastValue$duration","lastValue","endTime","addSeconds","getTotalDuration","noChronogramValue","chronogramContent","offsetLeft","startTimeDate","totalWidth","calcOffsetLeft","newWidth","calcWidth","bar","isCombined","tooltipData","getTotalMetricValue","total","mergeValuesAfterMaxElements","graphableData","otherData","otherMetricValue","metricProps","SparkBar","SparkBarContainer","BarSparkVisualization","mergedValues","barDetails","allValuesAreZero","allValuesAreNull","barValues","_elem$dimension","barWidth","totWidth","barHeight","SparkColumn","$margin","marginLeft","marginRight","NoValueContainer","ColumnSparkVisualization","columnDetails","colWidth","currValue","colHeight","KPIGroupFormattedDatum","validationError","KPIGroupContainer","DataCellContentContainer","AssetLabelContainer","calculateSparkVisualizationWidth","KPIGroupWidget","_useKPIGroupWidgetCon","useKPIGroupWidgetController","dataCellContentContainer","setDataCellContentContainer","dataCellContentContainerBounds","dataCellContentContainerWidth","rowElements","_row$heading","_row$heading2","KPIGroupHeading","_row$field","_row$field$dimensionV","dataCellWidth","_dataItem$values","assetData","finalDataItem","dataCellContent","finalDataItemError","finalDataItemValidationError","newValues","widgetSchema","kpi_widget","descriptionKey","iconUrl","__meta__","kpi_group_widget","email_table_widget","hideEditableLiveControls","DroppableSpot","sectionIndex","widgetIndex","outerHeight","_useDroppable","WorkaroundDndMonitorContext","addListener","removeListener","emptyFn","WorkaroundDndContext","onDragMove","callListeners","handleDragMove","_len3","_key3","_len4","_key4","_len5","_key5","_len6","_key6","valueRef","$isFirstWidget","DraggableWrapper","_ref$onDragStart","_ref$onDragMove","_ref$onDragOver","_ref$onDragEnd","_ref$onDragCancel","monitorContext","renderWidget","isDragInProgress","setIsDragInProgress","initialWindowScroll","setInitialWindowScroll","translate","setTranslate","_useDraggable","useDraggable","scrollPosition","scrollX","scrollY","getScrollPosition","delta","zIndex","memoizedWidget","touchAction","$url","backgroundImage","ImageIcon","StyledDropdown","DropdownContentContainer","ButtonIcon","AddWidgetButton","onAddWidget","openDropdown","closeDropdown","WidgetHolder","WidgetHolderAsSelection","$isLayoutModeActive","$showHover","$showSelected","$showDeleteHover","Column","maxWidgets","widgets","showHover","showDeleteHover","showSelected","sectionAsSelection","numWidgets","handleAddWidget","widgetType","WidgetHolderComponent","dropBeforeId","COLUMN_PROPERTIES","halves","thirds","fourths","fifths","sixths","scoreboard","SectionToolbarButton","ShadowBorderWrapper","ChildRow","SelectFieldWrapper","SectionToolbarBase","onSectionTypeChange","sectionTypeOptions","sectionTypeValue","childRows","handleSectionTypeDropdownChange","rowChildren","SectionToolbar","sectionConfig","isLastSection","isDeleteDisabled","onAddSection","onDeleteSection","onMoveSection","onModifySection","onDeleteSectionHovered","sc","moveUpEnabled","moveDownEnabled","deleteSectionElement","setDeleteSectionElement","isDeleteSectionHovered","handleSectionTypeChange","sectionType","handleActionButtonClick","currentTarget","sectionSrcIndex","sectionDestIndex","SectionHeadingEditor","onTextFieldChange","sectionHeading","breakMap","lg","md","sm","xs","SectionRoot","SectionToolbarContainer","$isEntering","$isEntered","$isLeaving","animationReducer","isEntering","isEntered","isLeaving","toolbarHeight","renderToolbar","toolbarContainerRef","ColumnContainer","$isFullSection","$colOpts","ColumnContainerAsSelection","Section","addSection","deleteSection","modifySection","moveSection","maxWidgetsPerColumn","numColumns","deleteSectionHovered","setDeleteSectionHovered","sectionElement","setSectionElement","showToolbar","_useReducer2","useReducer","_useReducer2$","firstRender","animationTimer","handleSectionToolbarContainerClick","ColumnContainerComponent","_","_sectionConfig$column","closestTopLeftCorner","testFn","closestId","minDistance","testRect","closest","DashboardLayoutEditor","sections","onWidgetMove","PointerSensor","setIsDragging","destinationOffset","selectedSection","setSelectedSection","deleteSectionConfirmationState","setDeleteSectionConfirmationState","onDeleteSectionContinue","onDeleteSectionCancel","onDeleteSelection","sectionToDelete","sectionToDeleteHasColumns","layoutMeasuring","LayoutMeasuringStrategy","Always","section","hasText","MenuItem","dropdownIcon","itemOnClick","StyledMenuItem","MenuButton","dropdownIconStyle","alignSelf","MenuDropdown","buttonStyle","onOpen","PageSelectField","hideSearch","views","groupsOrder","viewsByGroup","grouped","view","createListNode","isPlaceHolder","noneDisplayName","groupDisplayName","viewIndex","sortedViews","generateViewsList","openHandler","showChildren","setShowChildren","onToggleChildren","displayedChildren","MenuToolbarOverflow","MenuToolbar","vc","overflowDropdown","ActionTypes","INIT_PAGE","ADD_WIDGET","DELETE_WIDGET","SET_WIDGET_STF","SET_WIDGET_STATE","SET_WIDGET_EXPORT_ITEM","SET_WIDGET_PRINT_STATUS","SET_WIDGET_LIVE_CONTROLS_VISIBILITY","MOVE_WIDGET","ADD_SECTION","DELETE_SECTION","MOVE_SECTION","MODIFY_SECTION","SET_PAGE_CLEAN","SET_ALL_LIVE_CONTROL_VISIBILITIES","SET_EXPLORATION_PATH","SET_HIERARCHY_NODE","SET_SLICE_FILTERS","SET_GROUPED_FIELDS","SET_FIELDS","SET_SORT_FIELDS","SET_TABLE_STRUCTURE","SET_TABLE_LEVEL","SET_TIME_RANGE","mapWidgetsInLayout","mapFunc","pageStf","isWithinInclusive","validateSourceLocation","validateDestinationLocation","widgetInitialState","exportItem","dataAssets","printStatus","widgetReducer","widgetsById","isPageDirty","dashboardLayoutReducer","_state$pageStf$sectio","_action$payload","newSections","destinationValidation","isDestinationSection","isDestinationColumn","_action$payload2","sourceValidation","isSourceSection","isSourceColumn","deletedWidgetId","_widgets$splice2","newWidgetsById","_action$payload3","deletedWidgetIds","_action$payload4","sectionToMove","_action$payload5","newSection","selectSectionWidgets","numWidgetsPerColumn","sliceStart","widgetAction","newWidgets","_state$pageStf","forEachWidgetsInLayout","newAssetControl","groupedFields","fieldsByName","columnField","tableStructure","tableLevel","selectWidgetStf","_state$widgetsById$wi","selectPageStf","stfObject","addWidget","isExportReady","exportData","getDataToExport","worksheetTitle","reportA","reportB","getEmailTemplatesList","selectMetricThresholds","selectMetricThresholdsByColumnName","getNextWidgetId","NewTitleTextInput","ToolbarContainer","PageHeaderContainer","PageLiveControlBarContainer","PageSelectContainer","PageSelectDisplayContainer","DropdownDisplay","PageName","NewTitleDialogState","DEFAULT_NEW_PAGE_STF","getRenderWidget","contentAreaProps","newWidgetId","widgetOpts","widgetProps","reducerState","originName","onSavePage","onExportReadyChange","selectedLossCount","collapseHierarchy","onLossCountSelectorChange","scheduleTab","onScheduleTabSelectorChange","timeSelector","onTimeSelectorChange","_state$widgetsById$wi2","selectWidgetState","sortTemplates","built_in","EmailTemplatesPage","_savedPageData$data","emailTemplates","showNewTitleDialog","setShowNewTitleDialog","newTitleValue","setNewTitleValue","showDeleteDialog","setShowDeleteDialog","useLocation","pageId","useParams","pageIdNumber","defaultId","savedPageData","allEmailTemplatesView","isReady","pageState","newHeading","_useNavigationPrevent","cancelNav","resetNav","onDeleteReport","newPage","report","dispatchNewWidget","defaultStf","_getKPIGroupWidgetFieldOptions","_getKPIGroupWidgetData","_getKpiWidgetData","production_metric","_getTimeRangePrimaryDetails","_getTimeRangeSecondaryDetails","_getHierarchyNodeDisplayName","_callee7","_context7","getDataService","renderWidgetFn","viewPath","viewDisplayName","canModifyCurrentPage","newContent","newReportList","origTemplateIds","et","added","emailTemplate","RangeDiv","convertToIntPercent","MetricThresholdsTable","errorList","metricThreshold","idx","directionInfo","crit","highSide","lowSide","adjust","rangeMap","warningError","cautionError","caution","MetricThresholdsForm","_requests$putMetricTh","_requests$putMetricTh3","_requests$putMetricTh4","modifiedThresholds","setModifiedThresholds","setIsDirty","setLastPatchStatus","_requests$putMetricTh2","thresholds","_useErrorList","thresh","rangeName","adjacentRange","rangeSide","adjacentRangeSide","newThresholds","newRange","MetricThresholdsPage","MetricThresholdsionForm","patchAlertSubscriptions","initialListState","getAlertSubscriptions","selectAlertSubscriptions","selectAlertSubscriptionsRequest","multiCompare","compareResults","sortAlerts","alertA","alertB","comparisonOrder","initialDataState","sorted","selectAlerts","selectAlertsRequest","selectAlertWindow","selectAlertWindowRequest","subscribed","selectDeviceSubscriptions","selectDeviceSubscriptionsRequest","metricsMap","comparisonMap","greater_than","less_than","MetricAlertText","processStatesMap","ProcessStateDurationAlertText","thresholdMin","over_target","before_target","ProcessStateTargetTimeAlertText","AlertSubscriptionsEditor","subscriptions","_selectedValue$split2","noAlerts","AlertText","alertList","SelectGroupLabel","AlertListPropType","AlertSubscriptionsForm","_requests$patchAlertS","acceptedTimeFormats","parseTime","timeString","parsedTime","_ref$useStrictParsing","useStrictParsing","timeFormat","format24HourTime","formatLocaleTime","DndSelect","timeInputSupported","StyledInput","TimeInput","internalValue","normalizedValue","parsedValue","lastPropValue","derived","parsedInternalValue","formattedInternalValue","AlertWindowEditor","fullName","fullChildName","thisName","dayNames","dayKey","dayValue","dayError","startError","endError","_handleChildChange","_renderRows","defaultDayWindow","getDndSelectValueFromWindow","alertWindow","getInitialDefaultWindowValue","dndSelection","transformIncomingData","StyledAlertWindowEditor","AlertWindowForm","transformOutgoingData","defaultWindow","newDndSelection","newData","_requests$patchAlertW","_this$state3","timeInputValidation","isSame","isBefore","startBeforeEnd","showReceiveWindow","_handleDndSelectChange","nextDefaultWindow","DeviceSubscriptionsEditor","devices","deviceId","DeviceSubscriptionsForm","_requests$patchDevice","DeviceSubscriptionEditor","AlertsSubscribePagePresentation","alertSubscriptions","subPatch","generateMap","ids","initialDataMap","modifiedDataMap","generateAlertSubscriptionsPatchSection","_handleAlertSubscriptionsSubmit","deviceSubscriptions","hasNoVisibility","_handleDeviceSubscriptionsSubmit","admins","_handleAlertWindowSubmit","alertSubscriptionsCount","_renderAlertSubscriptionsForm","_renderDeviceSubscriptionsForm","_renderAlertWindowForm","AlertsSubscribePage","Body","VersionPagePresentation","_renderVersions","versionData","container_tag","db_schema_version","source_version","getVersion","PrivacyPage","Heading","CookiePolicyPage","LicenseContainer","LicenseName","LicenseIntro","LicenseText","LicenseDescription","LicensesPage","licenses","license","packageName","licenseText","TermsOfUsePage","subscriptionA","subscriptionB","getEmailSubscriptionsList","CreateNewSubscriptionText","SubTable","ReportingPeriodOptions","getCombinedSubscriptionPseudoId","subscription","report_template_id","hierarchy_node_id","EmailsSubscriptionTable","willBeComplete","clearNewSubscriptionState","getSelectionDisplay","onTemplateChange","onHierarchyChange","displayedCombinedSubscription","emailSubscriptions","onAddRemove","partialRowStatus","combinedEmailSubscriptions","subscriptionPseudoId","reporting_period","subscription_id","renderEmailTemplateOptions","renderReportingPeriodOptions","newSubscription","setNewSubscription","_subscription$data","selectedReportingPeriods","ss","newPeriods","previousReportingPeriods","removedSubscriptions","onReportingPeriodClose","addedPiece","testSub","orig","getReportPeriodSelectionDisplay","getUniqueSubscriptionId","getSetOfSubscriptionIds","modifiedSubscriptions","EmailsSubscriptionForm","_requests$patchEmailS","_requests$patchEmailS3","_requests$patchEmailS4","setModifiedSubscriptions","fullRow","setFullRow","_requests$patchEmailS2","createdSub","deletedSubs","newSubs","currentSubscriptions","newBackendSubscriptions","rp","deletedSubIds","subscriptionId","originalSubscription","deletedSub","day_of_week","DayOfWeekForm","_requests$patchSessio","_requests$patchSessio3","_requests$patchSessio4","selectedDOW","setSelectedDOW","_requests$patchSessio2","EmailsSubscribePage","handleEmailSubscriptionPatch","mod","handleDOWPatch","TocItem","AnchorTocItem","Toc","AnchorToc","MobileGatewaysHelpPage","gateways","getMobileGateways","country","gatewayA","gatewayB","carrier","activationRequired","countryName","renderCountryMessage","renderGatewayRow","renderToc","renderSmsGateways","VerifyAccountPagePresentation","showSuccessMessage","_submitToken","linkingToken","dlt","assetName","an","_renderVerifyToken","_renderComplete","InitializationRequiredRoute","SuccessPage","SuccessContent","PrimarySuccessButton","VerifyEmailChangePagePresentation","newOrder","lUser","rUser","getSupportUsersList","TableContainer","SupportUserPage","deleteConfirm","setDeleteConfirm","sortColumn","setSortColumn","sortDirection","setSortDirection","_user$data$pending_em","sortAccessor","newRole","kk","renderRole","renderDelete","_dd","_dd$organization","_dd2","_dd3","_dd3$email_address","_dd4","_dd4$pending_email_ad","headerColumnIndex","unsetOtherColumns","supportUsers","Main","loginReset","Switch","VersionPage","SetupNewUserPage","VerifyAccountPage","VerifyEmailChangePage","OrganizationPage","DevicesPage","SupportUsersPage","flatTable","substitutionOverrides","translationTable","flattenTable","nestedTable","flattenedTable","subKey","subValue","EnterpriseTranslationTable","replaceSubstitutionKey","lookupKey","substituteValue","entTranslator","templateParams","GlobalStyle","createGlobalStyle","AppContent","$noScroll","StyledMain","StyledFooter","App","menuName","openMenu","initApp","environment","getEnvironment","ThemeProvider","_handleHeaderOpenMenuChange","environmentData","activeSoftwareUpdates","completedSoftwareUpdates","availableSoftwareUpdates","createStore","rootReducer","applyMiddleware","thunk","rootElement","BrowserRouter","HelmetProvider","titleTemplate","store","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_URL_IMPORT_1___","___CSS_LOADER_URL_IMPORT_2___","___CSS_LOADER_URL_IMPORT_3___","___CSS_LOADER_URL_IMPORT_4___","___CSS_LOADER_URL_IMPORT_5___","___CSS_LOADER_EXPORT___","___CSS_LOADER_URL_REPLACEMENT_0___","___CSS_LOADER_URL_REPLACEMENT_1___","hash","___CSS_LOADER_URL_REPLACEMENT_2___","___CSS_LOADER_URL_REPLACEMENT_3___","___CSS_LOADER_URL_REPLACEMENT_4___","___CSS_LOADER_URL_REPLACEMENT_5___","module","webpackContext","req","webpackContextResolve","__webpack_require__","exports"],"sourceRoot":""}